From b3326dfec2573f66945756905d2cb3d4fb945c2c Mon Sep 17 00:00:00 2001 From: tothemax Date: Mon, 18 May 2026 14:16:48 +0700 Subject: [PATCH] add gitignore and untrack virtualenv, cache, env, and logs --- .env | 7 - .gitignore | 17 + .venv/bin/Activate.ps1 | 247 - .venv/bin/activate | 70 - .venv/bin/activate.csh | 27 - .venv/bin/activate.fish | 69 - .venv/bin/distro | 8 - .venv/bin/dotenv | 8 - .venv/bin/faker | 8 - .venv/bin/httpx | 8 - .venv/bin/normalizer | 8 - .venv/bin/pip | 8 - .venv/bin/pip3 | 8 - .venv/bin/pip3.12 | 8 - .venv/bin/python | 1 - .venv/bin/python3 | 1 - .venv/bin/python3.12 | 1 - .venv/bin/tqdm | 8 - ...821__mypyc.cpython-312-x86_64-linux-gnu.so | Bin 433312 -> 0 bytes .../typing_extensions.cpython-312.pyc | Bin 163768 -> 0 bytes .../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 - .../__pycache__/__init__.cpython-312.pyc | Bin 18639 -> 0 bytes .../__pycache__/test_cases.cpython-312.pyc | Bin 13258 -> 0 bytes .../site-packages/annotated_types/py.typed | 0 .../annotated_types/test_cases.py | 151 - .../anyio-4.13.0.dist-info/INSTALLER | 1 - .../anyio-4.13.0.dist-info/METADATA | 105 - .../anyio-4.13.0.dist-info/RECORD | 92 - .../anyio-4.13.0.dist-info/WHEEL | 5 - .../anyio-4.13.0.dist-info/entry_points.txt | 2 - .../anyio-4.13.0.dist-info/licenses/LICENSE | 20 - .../anyio-4.13.0.dist-info/top_level.txt | 1 - .../site-packages/anyio/__init__.py | 111 - .../__pycache__/__init__.cpython-312.pyc | Bin 4647 -> 0 bytes .../__pycache__/from_thread.cpython-312.pyc | Bin 25890 -> 0 bytes .../__pycache__/functools.cpython-312.pyc | Bin 16613 -> 0 bytes .../__pycache__/lowlevel.cpython-312.pyc | Bin 8013 -> 0 bytes .../__pycache__/pytest_plugin.cpython-312.pyc | Bin 16842 -> 0 bytes .../to_interpreter.cpython-312.pyc | Bin 10370 -> 0 bytes .../__pycache__/to_process.cpython-312.pyc | Bin 12042 -> 0 bytes .../__pycache__/to_thread.cpython-312.pyc | Bin 3222 -> 0 bytes .../site-packages/anyio/_backends/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 208 -> 0 bytes .../__pycache__/_asyncio.cpython-312.pyc | Bin 138987 -> 0 bytes .../__pycache__/_trio.cpython-312.pyc | Bin 71667 -> 0 bytes .../site-packages/anyio/_backends/_asyncio.py | 2996 - .../site-packages/anyio/_backends/_trio.py | 1343 - .../site-packages/anyio/_core/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 204 -> 0 bytes .../_asyncio_selector_thread.cpython-312.pyc | Bin 8435 -> 0 bytes .../_contextmanagers.cpython-312.pyc | Bin 9010 -> 0 bytes .../__pycache__/_eventloop.cpython-312.pyc | Bin 8203 -> 0 bytes .../__pycache__/_exceptions.cpython-312.pyc | Bin 7446 -> 0 bytes .../_core/__pycache__/_fileio.cpython-312.pyc | Bin 43320 -> 0 bytes .../__pycache__/_resources.cpython-312.pyc | Bin 957 -> 0 bytes .../__pycache__/_signals.cpython-312.pyc | Bin 1400 -> 0 bytes .../__pycache__/_sockets.cpython-312.pyc | Bin 40656 -> 0 bytes .../__pycache__/_streams.cpython-312.pyc | Bin 2353 -> 0 bytes .../__pycache__/_subprocesses.cpython-312.pyc | Bin 9504 -> 0 bytes .../_synchronization.cpython-312.pyc | Bin 33140 -> 0 bytes .../_core/__pycache__/_tasks.cpython-312.pyc | Bin 7708 -> 0 bytes .../__pycache__/_tempfile.cpython-312.pyc | Bin 28064 -> 0 bytes .../__pycache__/_testing.cpython-312.pyc | Bin 3806 -> 0 bytes .../__pycache__/_typedattr.cpython-312.pyc | Bin 3854 -> 0 bytes .../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 | 799 - .../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 | 196 - .../anyio/_core/_synchronization.py | 757 - .../site-packages/anyio/_core/_tasks.py | 173 - .../site-packages/anyio/_core/_tempfile.py | 613 - .../site-packages/anyio/_core/_testing.py | 82 - .../site-packages/anyio/_core/_typedattr.py | 81 - .../site-packages/anyio/abc/__init__.py | 58 - .../abc/__pycache__/__init__.cpython-312.pyc | Bin 2384 -> 0 bytes .../__pycache__/_eventloop.cpython-312.pyc | Bin 16549 -> 0 bytes .../__pycache__/_resources.cpython-312.pyc | Bin 1651 -> 0 bytes .../abc/__pycache__/_sockets.cpython-312.pyc | Bin 18308 -> 0 bytes .../abc/__pycache__/_streams.cpython-312.pyc | Bin 9685 -> 0 bytes .../__pycache__/_subprocesses.cpython-312.pyc | Bin 3259 -> 0 bytes .../abc/__pycache__/_tasks.cpython-312.pyc | Bin 5158 -> 0 bytes .../abc/__pycache__/_testing.cpython-312.pyc | Bin 2854 -> 0 bytes .../site-packages/anyio/abc/_eventloop.py | 409 - .../site-packages/anyio/abc/_resources.py | 33 - .../site-packages/anyio/abc/_sockets.py | 399 - .../site-packages/anyio/abc/_streams.py | 233 - .../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 | 409 - .../site-packages/anyio/lowlevel.py | 196 - .../python3.12/site-packages/anyio/py.typed | 0 .../site-packages/anyio/pytest_plugin.py | 363 - .../site-packages/anyio/streams/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 206 -> 0 bytes .../__pycache__/buffered.cpython-312.pyc | Bin 9085 -> 0 bytes .../streams/__pycache__/file.cpython-312.pyc | Bin 7483 -> 0 bytes .../__pycache__/memory.cpython-312.pyc | Bin 15037 -> 0 bytes .../__pycache__/stapled.cpython-312.pyc | Bin 7606 -> 0 bytes .../streams/__pycache__/text.cpython-312.pyc | Bin 9352 -> 0 bytes .../streams/__pycache__/tls.cpython-312.pyc | Bin 20173 -> 0 bytes .../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 | 421 - .../site-packages/anyio/to_interpreter.py | 246 - .../site-packages/anyio/to_process.py | 266 - .../site-packages/anyio/to_thread.py | 78 - .../certifi-2026.4.22.dist-info/INSTALLER | 1 - .../certifi-2026.4.22.dist-info/METADATA | 78 - .../certifi-2026.4.22.dist-info/RECORD | 14 - .../certifi-2026.4.22.dist-info/WHEEL | 5 - .../licenses/LICENSE | 20 - .../certifi-2026.4.22.dist-info/top_level.txt | 1 - .../site-packages/certifi/__init__.py | 4 - .../site-packages/certifi/__main__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 327 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 642 -> 0 bytes .../certifi/__pycache__/core.cpython-312.pyc | Bin 2074 -> 0 bytes .../site-packages/certifi/cacert.pem | 3933 - .../python3.12/site-packages/certifi/core.py | 83 - .../python3.12/site-packages/certifi/py.typed | 0 .../INSTALLER | 1 - .../METADATA | 808 - .../charset_normalizer-3.4.7.dist-info/RECORD | 36 - .../charset_normalizer-3.4.7.dist-info/WHEEL | 7 - .../entry_points.txt | 2 - .../licenses/LICENSE | 21 - .../top_level.txt | 2 - .../charset_normalizer/__init__.py | 48 - .../charset_normalizer/__main__.py | 6 - .../__pycache__/__init__.cpython-312.pyc | Bin 1793 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 368 -> 0 bytes .../__pycache__/api.cpython-312.pyc | Bin 23392 -> 0 bytes .../__pycache__/cd.cpython-312.pyc | Bin 14042 -> 0 bytes .../__pycache__/constant.cpython-312.pyc | Bin 43304 -> 0 bytes .../__pycache__/legacy.cpython-312.pyc | Bin 3002 -> 0 bytes .../__pycache__/md.cpython-312.pyc | Bin 29476 -> 0 bytes .../__pycache__/models.cpython-312.pyc | Bin 17279 -> 0 bytes .../__pycache__/utils.cpython-312.pyc | Bin 14902 -> 0 bytes .../__pycache__/version.cpython-312.pyc | Bin 395 -> 0 bytes .../site-packages/charset_normalizer/api.py | 988 - .../cd.cpython-312-x86_64-linux-gnu.so | Bin 15912 -> 0 bytes .../site-packages/charset_normalizer/cd.py | 454 - .../charset_normalizer/cli/__init__.py | 8 - .../charset_normalizer/cli/__main__.py | 362 - .../cli/__pycache__/__init__.cpython-312.pyc | Bin 356 -> 0 bytes .../cli/__pycache__/__main__.cpython-312.pyc | Bin 13693 -> 0 bytes .../charset_normalizer/constant.py | 2050 - .../charset_normalizer/legacy.py | 79 - .../md.cpython-312-x86_64-linux-gnu.so | Bin 15912 -> 0 bytes .../site-packages/charset_normalizer/md.py | 936 - .../charset_normalizer/models.py | 369 - .../site-packages/charset_normalizer/py.typed | 0 .../site-packages/charset_normalizer/utils.py | 422 - .../charset_normalizer/version.py | 8 - .../distro-1.9.0.dist-info/INSTALLER | 1 - .../distro-1.9.0.dist-info/LICENSE | 202 - .../distro-1.9.0.dist-info/METADATA | 184 - .../distro-1.9.0.dist-info/RECORD | 15 - .../distro-1.9.0.dist-info/WHEEL | 5 - .../distro-1.9.0.dist-info/entry_points.txt | 2 - .../distro-1.9.0.dist-info/top_level.txt | 1 - .../site-packages/distro/__init__.py | 54 - .../site-packages/distro/__main__.py | 4 - .../__pycache__/__init__.cpython-312.pyc | Bin 969 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 301 -> 0 bytes .../distro/__pycache__/distro.cpython-312.pyc | Bin 53854 -> 0 bytes .../python3.12/site-packages/distro/distro.py | 1403 - .../python3.12/site-packages/distro/py.typed | 0 .../site-packages/dotenv/__init__.py | 51 - .../site-packages/dotenv/__main__.py | 6 - .../__pycache__/__init__.cpython-312.pyc | Bin 1704 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 372 -> 0 bytes .../dotenv/__pycache__/cli.cpython-312.pyc | Bin 10692 -> 0 bytes .../__pycache__/ipython.cpython-312.pyc | Bin 1988 -> 0 bytes .../dotenv/__pycache__/main.cpython-312.pyc | Bin 19782 -> 0 bytes .../dotenv/__pycache__/parser.cpython-312.pyc | Bin 9998 -> 0 bytes .../__pycache__/variables.cpython-312.pyc | Bin 5045 -> 0 bytes .../__pycache__/version.cpython-312.pyc | Bin 224 -> 0 bytes .../python3.12/site-packages/dotenv/cli.py | 236 - .../site-packages/dotenv/ipython.py | 50 - .../python3.12/site-packages/dotenv/main.py | 480 - .../python3.12/site-packages/dotenv/parser.py | 182 - .../python3.12/site-packages/dotenv/py.typed | 1 - .../site-packages/dotenv/variables.py | 86 - .../site-packages/dotenv/version.py | 1 - .../faker-40.18.0.dist-info/INSTALLER | 1 - .../faker-40.18.0.dist-info/METADATA | 551 - .../faker-40.18.0.dist-info/RECORD | 1464 - .../faker-40.18.0.dist-info/REQUESTED | 0 .../faker-40.18.0.dist-info/WHEEL | 5 - .../faker-40.18.0.dist-info/entry_points.txt | 5 - .../licenses/LICENSE.txt | 19 - .../faker-40.18.0.dist-info/top_level.txt | 1 - .../faker-40.18.0.dist-info/zip-safe | 1 - .../site-packages/faker/__init__.py | 7 - .../site-packages/faker/__main__.py | 4 - .../__pycache__/__init__.cpython-312.pyc | Bin 400 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 319 -> 0 bytes .../faker/__pycache__/cli.cpython-312.pyc | Bin 11814 -> 0 bytes .../faker/__pycache__/config.cpython-312.pyc | Bin 608 -> 0 bytes .../__pycache__/documentor.cpython-312.pyc | Bin 5506 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 1310 -> 0 bytes .../faker/__pycache__/factory.cpython-312.pyc | Bin 4191 -> 0 bytes .../__pycache__/generator.cpython-312.pyc | Bin 9755 -> 0 bytes .../faker/__pycache__/proxy.cpython-312.pyc | Bin 22469 -> 0 bytes .../faker/__pycache__/typing.cpython-312.pyc | Bin 1989 -> 0 bytes .../lib/python3.12/site-packages/faker/cli.py | 310 - .../python3.12/site-packages/faker/config.py | 13 - .../site-packages/faker/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 206 -> 0 bytes .../faker/contrib/pytest/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 213 -> 0 bytes .../pytest/__pycache__/plugin.cpython-312.pyc | Bin 1758 -> 0 bytes .../faker/contrib/pytest/plugin.py | 38 - .../site-packages/faker/decode/__init__.py | 13 - .../__pycache__/__init__.cpython-312.pyc | Bin 614 -> 0 bytes .../decode/__pycache__/codes.cpython-312.pyc | Bin 348885 -> 0 bytes .../site-packages/faker/decode/codes.py | 65538 ---------------- .../site-packages/faker/documentor.py | 127 - .../site-packages/faker/exceptions.py | 16 - .../python3.12/site-packages/faker/factory.py | 114 - .../site-packages/faker/generator.py | 191 - .../site-packages/faker/providers/__init__.py | 742 - .../__pycache__/__init__.cpython-312.pyc | Bin 31624 -> 0 bytes .../faker/providers/address/__init__.py | 116 - .../__pycache__/__init__.cpython-312.pyc | Bin 6615 -> 0 bytes .../faker/providers/address/ar_DZ/__init__.py | 347 - .../__pycache__/__init__.cpython-312.pyc | Bin 6430 -> 0 bytes .../faker/providers/address/az_AZ/__init__.py | 691 - .../__pycache__/__init__.cpython-312.pyc | Bin 13129 -> 0 bytes .../faker/providers/address/bn_BD/__init__.py | 547 - .../__pycache__/__init__.cpython-312.pyc | Bin 18723 -> 0 bytes .../faker/providers/address/cs_CZ/__init__.py | 1202 - .../__pycache__/__init__.cpython-312.pyc | Bin 19951 -> 0 bytes .../faker/providers/address/da_DK/__init__.py | 2522 - .../__pycache__/__init__.cpython-312.pyc | Bin 28530 -> 0 bytes .../faker/providers/address/de/__init__.py | 253 - .../de/__pycache__/__init__.cpython-312.pyc | Bin 3632 -> 0 bytes .../faker/providers/address/de_AT/__init__.py | 280 - .../__pycache__/__init__.cpython-312.pyc | Bin 5123 -> 0 bytes .../faker/providers/address/de_CH/__init__.py | 247 - .../__pycache__/__init__.cpython-312.pyc | Bin 4211 -> 0 bytes .../faker/providers/address/de_DE/__init__.py | 470 - .../__pycache__/__init__.cpython-312.pyc | Bin 7246 -> 0 bytes .../faker/providers/address/el_GR/__init__.py | 4952 -- .../__pycache__/__init__.cpython-312.pyc | Bin 115356 -> 0 bytes .../faker/providers/address/en/__init__.py | 251 - .../en/__pycache__/__init__.cpython-312.pyc | Bin 3555 -> 0 bytes .../faker/providers/address/en_AU/__init__.py | 342 - .../__pycache__/__init__.cpython-312.pyc | Bin 4455 -> 0 bytes .../faker/providers/address/en_BD/__init__.py | 547 - .../__pycache__/__init__.cpython-312.pyc | Bin 9053 -> 0 bytes .../faker/providers/address/en_CA/__init__.py | 417 - .../__pycache__/__init__.cpython-312.pyc | Bin 7550 -> 0 bytes .../faker/providers/address/en_GB/__init__.py | 550 - .../__pycache__/__init__.cpython-312.pyc | Bin 6937 -> 0 bytes .../faker/providers/address/en_IE/__init__.py | 61 - .../__pycache__/__init__.cpython-312.pyc | Bin 1794 -> 0 bytes .../faker/providers/address/en_IN/__init__.py | 572 - .../__pycache__/__init__.cpython-312.pyc | Bin 10659 -> 0 bytes .../faker/providers/address/en_MS/__init__.py | 486 - .../__pycache__/__init__.cpython-312.pyc | Bin 10584 -> 0 bytes .../faker/providers/address/en_NZ/__init__.py | 340 - .../__pycache__/__init__.cpython-312.pyc | Bin 4915 -> 0 bytes .../faker/providers/address/en_PH/__init__.py | 1799 - .../__pycache__/__init__.cpython-312.pyc | Bin 34930 -> 0 bytes .../faker/providers/address/en_US/__init__.py | 599 - .../__pycache__/__init__.cpython-312.pyc | Bin 11926 -> 0 bytes .../faker/providers/address/es/__init__.py | 200 - .../es/__pycache__/__init__.cpython-312.pyc | Bin 2938 -> 0 bytes .../faker/providers/address/es_AR/__init__.py | 231 - .../__pycache__/__init__.cpython-312.pyc | Bin 8214 -> 0 bytes .../faker/providers/address/es_CL/__init__.py | 648 - .../__pycache__/__init__.cpython-312.pyc | Bin 26198 -> 0 bytes .../faker/providers/address/es_CO/__init__.py | 1334 - .../__pycache__/__init__.cpython-312.pyc | Bin 31662 -> 0 bytes .../faker/providers/address/es_ES/__init__.py | 140 - .../__pycache__/__init__.cpython-312.pyc | Bin 3612 -> 0 bytes .../faker/providers/address/es_MX/__init__.py | 163 - .../__pycache__/__init__.cpython-312.pyc | Bin 4666 -> 0 bytes .../faker/providers/address/fa_IR/__init__.py | 296 - .../__pycache__/__init__.cpython-312.pyc | Bin 6948 -> 0 bytes .../faker/providers/address/fi_FI/__init__.py | 800 - .../__pycache__/__init__.cpython-312.pyc | Bin 10119 -> 0 bytes .../providers/address/fil_PH/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 523 -> 0 bytes .../faker/providers/address/fr_CA/__init__.py | 81 - .../__pycache__/__init__.cpython-312.pyc | Bin 1916 -> 0 bytes .../faker/providers/address/fr_CH/__init__.py | 367 - .../__pycache__/__init__.cpython-312.pyc | Bin 6579 -> 0 bytes .../faker/providers/address/fr_DZ/__init__.py | 355 - .../__pycache__/__init__.cpython-312.pyc | Bin 5108 -> 0 bytes .../faker/providers/address/fr_FR/__init__.py | 478 - .../__pycache__/__init__.cpython-312.pyc | Bin 9118 -> 0 bytes .../faker/providers/address/he_IL/__init__.py | 871 - .../__pycache__/__init__.cpython-312.pyc | Bin 17992 -> 0 bytes .../faker/providers/address/hi_IN/__init__.py | 244 - .../__pycache__/__init__.cpython-312.pyc | Bin 6740 -> 0 bytes .../faker/providers/address/hr_HR/__init__.py | 588 - .../__pycache__/__init__.cpython-312.pyc | Bin 8434 -> 0 bytes .../faker/providers/address/hu_HU/__init__.py | 479 - .../__pycache__/__init__.cpython-312.pyc | Bin 9135 -> 0 bytes .../faker/providers/address/hy_AM/__init__.py | 686 - .../__pycache__/__init__.cpython-312.pyc | Bin 17763 -> 0 bytes .../faker/providers/address/id_ID/__init__.py | 526 - .../__pycache__/__init__.cpython-312.pyc | Bin 7604 -> 0 bytes .../faker/providers/address/it_IT/__init__.py | 17659 ----- .../__pycache__/__init__.cpython-312.pyc | Bin 729558 -> 0 bytes .../faker/providers/address/ja_JP/__init__.py | 649 - .../__pycache__/__init__.cpython-312.pyc | Bin 13808 -> 0 bytes .../faker/providers/address/ka_GE/__init__.py | 1297 - .../__pycache__/__init__.cpython-312.pyc | Bin 45091 -> 0 bytes .../faker/providers/address/ko_KR/__init__.py | 643 - .../__pycache__/__init__.cpython-312.pyc | Bin 17232 -> 0 bytes .../faker/providers/address/ne_NP/__init__.py | 621 - .../__pycache__/__init__.cpython-312.pyc | Bin 17870 -> 0 bytes .../faker/providers/address/nl_BE/__init__.py | 3047 - .../__pycache__/__init__.cpython-312.pyc | Bin 36211 -> 0 bytes .../faker/providers/address/nl_NL/__init__.py | 2737 - .../__pycache__/__init__.cpython-312.pyc | Bin 31440 -> 0 bytes .../faker/providers/address/no_NO/__init__.py | 114 - .../__pycache__/__init__.cpython-312.pyc | Bin 2583 -> 0 bytes .../faker/providers/address/pl_PL/__init__.py | 750 - .../__pycache__/__init__.cpython-312.pyc | Bin 13651 -> 0 bytes .../faker/providers/address/pt_BR/__init__.py | 935 - .../__pycache__/__init__.cpython-312.pyc | Bin 16487 -> 0 bytes .../faker/providers/address/pt_PT/__init__.py | 1592 - .../__pycache__/__init__.cpython-312.pyc | Bin 21483 -> 0 bytes .../faker/providers/address/ro_RO/__init__.py | 438 - .../__pycache__/__init__.cpython-312.pyc | Bin 6969 -> 0 bytes .../faker/providers/address/ru_RU/__init__.py | 1597 - .../__pycache__/__init__.cpython-312.pyc | Bin 38881 -> 0 bytes .../faker/providers/address/sk_SK/__init__.py | 5266 -- .../__pycache__/__init__.cpython-312.pyc | Bin 79625 -> 0 bytes .../faker/providers/address/sl_SI/__init__.py | 1601 - .../__pycache__/__init__.cpython-312.pyc | Bin 29248 -> 0 bytes .../faker/providers/address/sv_SE/__init__.py | 375 - .../__pycache__/__init__.cpython-312.pyc | Bin 5591 -> 0 bytes .../faker/providers/address/ta_IN/__init__.py | 429 - .../__pycache__/__init__.cpython-312.pyc | Bin 14016 -> 0 bytes .../faker/providers/address/th/__init__.py | 251 - .../th/__pycache__/__init__.cpython-312.pyc | Bin 8363 -> 0 bytes .../faker/providers/address/th_TH/__init__.py | 390 - .../__pycache__/__init__.cpython-312.pyc | Bin 10653 -> 0 bytes .../faker/providers/address/tl_PH/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 522 -> 0 bytes .../faker/providers/address/uk_UA/__init__.py | 2200 - .../__pycache__/__init__.cpython-312.pyc | Bin 59010 -> 0 bytes .../faker/providers/address/vi_VN/__init__.py | 307 - .../__pycache__/__init__.cpython-312.pyc | Bin 7528 -> 0 bytes .../faker/providers/address/zh_CN/__init__.py | 449 - .../__pycache__/__init__.cpython-312.pyc | Bin 7948 -> 0 bytes .../faker/providers/address/zh_TW/__init__.py | 388 - .../__pycache__/__init__.cpython-312.pyc | Bin 7240 -> 0 bytes .../faker/providers/address/zu_ZA/__init__.py | 230 - .../__pycache__/__init__.cpython-312.pyc | Bin 5050 -> 0 bytes .../faker/providers/automotive/__init__.py | 63 - .../__pycache__/__init__.cpython-312.pyc | Bin 3287 -> 0 bytes .../providers/automotive/ar_BH/__init__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 649 -> 0 bytes .../providers/automotive/ar_DZ/__init__.py | 20 - .../__pycache__/__init__.cpython-312.pyc | Bin 1478 -> 0 bytes .../providers/automotive/ar_JO/__init__.py | 53 - .../__pycache__/__init__.cpython-312.pyc | Bin 1442 -> 0 bytes .../providers/automotive/ar_PS/__init__.py | 64 - .../__pycache__/__init__.cpython-312.pyc | Bin 1591 -> 0 bytes .../providers/automotive/ar_SA/__init__.py | 89 - .../__pycache__/__init__.cpython-312.pyc | Bin 3816 -> 0 bytes .../providers/automotive/az_AZ/__init__.py | 97 - .../__pycache__/__init__.cpython-312.pyc | Bin 1754 -> 0 bytes .../providers/automotive/bn_BD/__init__.py | 253 - .../__pycache__/__init__.cpython-312.pyc | Bin 6010 -> 0 bytes .../providers/automotive/da_DK/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 644 -> 0 bytes .../providers/automotive/de_AT/__init__.py | 177 - .../__pycache__/__init__.cpython-312.pyc | Bin 2177 -> 0 bytes .../providers/automotive/de_CH/__init__.py | 44 - .../__pycache__/__init__.cpython-312.pyc | Bin 1367 -> 0 bytes .../providers/automotive/de_DE/__init__.py | 430 - .../__pycache__/__init__.cpython-312.pyc | Bin 3075 -> 0 bytes .../providers/automotive/el_GR/__init__.py | 23 - .../__pycache__/__init__.cpython-312.pyc | Bin 1263 -> 0 bytes .../providers/automotive/en_CA/__init__.py | 45 - .../__pycache__/__init__.cpython-312.pyc | Bin 827 -> 0 bytes .../providers/automotive/en_GB/__init__.py | 15 - .../__pycache__/__init__.cpython-312.pyc | Bin 672 -> 0 bytes .../providers/automotive/en_NZ/__init__.py | 32 - .../__pycache__/__init__.cpython-312.pyc | Bin 770 -> 0 bytes .../providers/automotive/en_PH/__init__.py | 70 - .../__pycache__/__init__.cpython-312.pyc | Bin 3551 -> 0 bytes .../providers/automotive/en_US/__init__.py | 170 - .../__pycache__/__init__.cpython-312.pyc | Bin 1423 -> 0 bytes .../providers/automotive/es_AR/__init__.py | 87 - .../__pycache__/__init__.cpython-312.pyc | Bin 2941 -> 0 bytes .../providers/automotive/es_CL/__init__.py | 64 - .../__pycache__/__init__.cpython-312.pyc | Bin 3376 -> 0 bytes .../providers/automotive/es_CO/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 663 -> 0 bytes .../providers/automotive/es_ES/__init__.py | 124 - .../__pycache__/__init__.cpython-312.pyc | Bin 3537 -> 0 bytes .../providers/automotive/et_EE/__init__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 650 -> 0 bytes .../providers/automotive/fi_FI/__init__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 650 -> 0 bytes .../providers/automotive/fil_PH/__init__.py | 10 - .../__pycache__/__init__.cpython-312.pyc | Bin 601 -> 0 bytes .../providers/automotive/fr_DZ/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 458 -> 0 bytes .../providers/automotive/fr_FR/__init__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 664 -> 0 bytes .../providers/automotive/he_IL/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 573 -> 0 bytes .../providers/automotive/hu_HU/__init__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 651 -> 0 bytes .../providers/automotive/id_ID/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 637 -> 0 bytes .../providers/automotive/it_IT/__init__.py | 15 - .../__pycache__/__init__.cpython-312.pyc | Bin 649 -> 0 bytes .../providers/automotive/ja_JP/__init__.py | 116 - .../__pycache__/__init__.cpython-312.pyc | Bin 3621 -> 0 bytes .../providers/automotive/ko_KR/__init__.py | 52 - .../__pycache__/__init__.cpython-312.pyc | Bin 1341 -> 0 bytes .../providers/automotive/lt_LT/__init__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 652 -> 0 bytes .../providers/automotive/nl_BE/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 643 -> 0 bytes .../providers/automotive/nl_NL/__init__.py | 77 - .../__pycache__/__init__.cpython-312.pyc | Bin 2920 -> 0 bytes .../providers/automotive/no_NO/__init__.py | 15 - .../__pycache__/__init__.cpython-312.pyc | Bin 651 -> 0 bytes .../providers/automotive/pl_PL/__init__.py | 39 - .../__pycache__/__init__.cpython-312.pyc | Bin 1503 -> 0 bytes .../providers/automotive/pt_BR/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 553 -> 0 bytes .../providers/automotive/pt_PT/__init__.py | 18 - .../__pycache__/__init__.cpython-312.pyc | Bin 683 -> 0 bytes .../providers/automotive/ro_RO/__init__.py | 66 - .../__pycache__/__init__.cpython-312.pyc | Bin 1321 -> 0 bytes .../providers/automotive/ru_RU/__init__.py | 321 - .../__pycache__/__init__.cpython-312.pyc | Bin 4254 -> 0 bytes .../providers/automotive/sk_SK/__init__.py | 100 - .../__pycache__/__init__.cpython-312.pyc | Bin 1543 -> 0 bytes .../providers/automotive/sq_AL/__init__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 651 -> 0 bytes .../providers/automotive/sv_SE/__init__.py | 18 - .../__pycache__/__init__.cpython-312.pyc | Bin 732 -> 0 bytes .../providers/automotive/th_TH/__init__.py | 39 - .../__pycache__/__init__.cpython-312.pyc | Bin 1566 -> 0 bytes .../providers/automotive/tl_PH/__init__.py | 10 - .../__pycache__/__init__.cpython-312.pyc | Bin 599 -> 0 bytes .../providers/automotive/tr_TR/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 1643 -> 0 bytes .../providers/automotive/uk_UA/__init__.py | 291 - .../__pycache__/__init__.cpython-312.pyc | Bin 7247 -> 0 bytes .../providers/automotive/vi_VN/__init__.py | 24 - .../__pycache__/__init__.cpython-312.pyc | Bin 1372 -> 0 bytes .../providers/automotive/zh_CN/__init__.py | 47 - .../__pycache__/__init__.cpython-312.pyc | Bin 1416 -> 0 bytes .../providers/automotive/zh_TW/__init__.py | 19 - .../__pycache__/__init__.cpython-312.pyc | Bin 678 -> 0 bytes .../faker/providers/bank/__init__.py | 165 - .../bank/__pycache__/__init__.cpython-312.pyc | Bin 8975 -> 0 bytes .../faker/providers/bank/az_AZ/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1000 -> 0 bytes .../faker/providers/bank/bn_BD/__init__.py | 83 - .../__pycache__/__init__.cpython-312.pyc | Bin 2161 -> 0 bytes .../faker/providers/bank/cs_CZ/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 655 -> 0 bytes .../faker/providers/bank/da_DK/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 563 -> 0 bytes .../faker/providers/bank/de_AT/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 563 -> 0 bytes .../faker/providers/bank/de_CH/__init__.py | 24 - .../__pycache__/__init__.cpython-312.pyc | Bin 800 -> 0 bytes .../faker/providers/bank/de_DE/__init__.py | 21 - .../__pycache__/__init__.cpython-312.pyc | Bin 1020 -> 0 bytes .../faker/providers/bank/el_GR/__init__.py | 28 - .../__pycache__/__init__.cpython-312.pyc | Bin 973 -> 0 bytes .../faker/providers/bank/en_GB/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 565 -> 0 bytes .../faker/providers/bank/en_IE/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 570 -> 0 bytes .../faker/providers/bank/en_IN/__init__.py | 47 - .../__pycache__/__init__.cpython-312.pyc | Bin 1372 -> 0 bytes .../faker/providers/bank/en_PH/__init__.py | 109 - .../__pycache__/__init__.cpython-312.pyc | Bin 2787 -> 0 bytes .../faker/providers/bank/es_AR/__init__.py | 32 - .../__pycache__/__init__.cpython-312.pyc | Bin 1191 -> 0 bytes .../faker/providers/bank/es_ES/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 567 -> 0 bytes .../faker/providers/bank/es_MX/__init__.py | 274 - .../__pycache__/__init__.cpython-312.pyc | Bin 7205 -> 0 bytes .../faker/providers/bank/fa_IR/__init__.py | 56 - .../__pycache__/__init__.cpython-312.pyc | Bin 1749 -> 0 bytes .../faker/providers/bank/fi_FI/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 561 -> 0 bytes .../faker/providers/bank/fil_PH/__init__.py | 10 - .../__pycache__/__init__.cpython-312.pyc | Bin 583 -> 0 bytes .../faker/providers/bank/fr_CH/__init__.py | 10 - .../__pycache__/__init__.cpython-312.pyc | Bin 581 -> 0 bytes .../faker/providers/bank/fr_FR/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 570 -> 0 bytes .../faker/providers/bank/it_CH/__init__.py | 10 - .../__pycache__/__init__.cpython-312.pyc | Bin 581 -> 0 bytes .../faker/providers/bank/it_IT/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 570 -> 0 bytes .../faker/providers/bank/nl_BE/__init__.py | 92 - .../__pycache__/__init__.cpython-312.pyc | Bin 3426 -> 0 bytes .../faker/providers/bank/nl_NL/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 561 -> 0 bytes .../faker/providers/bank/no_NO/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 558 -> 0 bytes .../faker/providers/bank/pl_PL/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 571 -> 0 bytes .../faker/providers/bank/pt_PT/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 568 -> 0 bytes .../faker/providers/bank/ro_RO/__init__.py | 50 - .../__pycache__/__init__.cpython-312.pyc | Bin 859 -> 0 bytes .../faker/providers/bank/ru_RU/__init__.py | 755 - .../__pycache__/__init__.cpython-312.pyc | Bin 17543 -> 0 bytes .../faker/providers/bank/sk_SK/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 655 -> 0 bytes .../faker/providers/bank/th_TH/__init__.py | 64 - .../__pycache__/__init__.cpython-312.pyc | Bin 940 -> 0 bytes .../faker/providers/bank/tl_PH/__init__.py | 10 - .../__pycache__/__init__.cpython-312.pyc | Bin 581 -> 0 bytes .../faker/providers/bank/tr_TR/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 569 -> 0 bytes .../faker/providers/bank/uk_UA/__init__.py | 83 - .../__pycache__/__init__.cpython-312.pyc | Bin 2747 -> 0 bytes .../faker/providers/bank/zh_CN/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 1071 -> 0 bytes .../faker/providers/barcode/__init__.py | 122 - .../__pycache__/__init__.cpython-312.pyc | Bin 5895 -> 0 bytes .../faker/providers/barcode/en_CA/__init__.py | 24 - .../__pycache__/__init__.cpython-312.pyc | Bin 1003 -> 0 bytes .../faker/providers/barcode/en_US/__init__.py | 249 - .../__pycache__/__init__.cpython-312.pyc | Bin 12930 -> 0 bytes .../faker/providers/barcode/es_ES/__init__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 623 -> 0 bytes .../faker/providers/barcode/fr_CA/__init__.py | 10 - .../__pycache__/__init__.cpython-312.pyc | Bin 582 -> 0 bytes .../faker/providers/barcode/ja_JP/__init__.py | 49 - .../__pycache__/__init__.cpython-312.pyc | Bin 2205 -> 0 bytes .../faker/providers/color/__init__.py | 330 - .../__pycache__/__init__.cpython-312.pyc | Bin 11046 -> 0 bytes .../color/__pycache__/color.cpython-312.pyc | Bin 14265 -> 0 bytes .../faker/providers/color/ar_PS/__init__.py | 170 - .../__pycache__/__init__.cpython-312.pyc | Bin 5246 -> 0 bytes .../faker/providers/color/az_AZ/__init__.py | 70 - .../__pycache__/__init__.cpython-312.pyc | Bin 1828 -> 0 bytes .../faker/providers/color/bg_BG/__init__.py | 86 - .../__pycache__/__init__.cpython-312.pyc | Bin 2861 -> 0 bytes .../faker/providers/color/bn_BD/__init__.py | 172 - .../__pycache__/__init__.cpython-312.pyc | Bin 7260 -> 0 bytes .../faker/providers/color/color.py | 386 - .../faker/providers/color/cs_CZ/__init__.py | 23 - .../__pycache__/__init__.cpython-312.pyc | Bin 735 -> 0 bytes .../faker/providers/color/da_DK/__init__.py | 334 - .../__pycache__/__init__.cpython-312.pyc | Bin 8540 -> 0 bytes .../faker/providers/color/de/__init__.py | 158 - .../de/__pycache__/__init__.cpython-312.pyc | Bin 4187 -> 0 bytes .../faker/providers/color/de_AT/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 439 -> 0 bytes .../faker/providers/color/de_CH/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 1020 -> 0 bytes .../faker/providers/color/de_DE/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 439 -> 0 bytes .../faker/providers/color/el_GR/__init__.py | 113 - .../__pycache__/__init__.cpython-312.pyc | Bin 3372 -> 0 bytes .../faker/providers/color/en_US/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 502 -> 0 bytes .../faker/providers/color/es/__init__.py | 169 - .../es/__pycache__/__init__.cpython-312.pyc | Bin 4312 -> 0 bytes .../faker/providers/color/es_CL/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 461 -> 0 bytes .../faker/providers/color/es_ES/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 461 -> 0 bytes .../faker/providers/color/fa_IR/__init__.py | 175 - .../__pycache__/__init__.cpython-312.pyc | Bin 5320 -> 0 bytes .../faker/providers/color/fr_FR/__init__.py | 167 - .../__pycache__/__init__.cpython-312.pyc | Bin 4202 -> 0 bytes .../faker/providers/color/he_IL/__init__.py | 49 - .../__pycache__/__init__.cpython-312.pyc | Bin 1255 -> 0 bytes .../faker/providers/color/hr_HR/__init__.py | 172 - .../__pycache__/__init__.cpython-312.pyc | Bin 4474 -> 0 bytes .../faker/providers/color/hu_HU/__init__.py | 23 - .../__pycache__/__init__.cpython-312.pyc | Bin 697 -> 0 bytes .../faker/providers/color/hy_AM/__init__.py | 168 - .../__pycache__/__init__.cpython-312.pyc | Bin 6730 -> 0 bytes .../faker/providers/color/id_ID/__init__.py | 60 - .../__pycache__/__init__.cpython-312.pyc | Bin 1334 -> 0 bytes .../faker/providers/color/ka_GE/__init__.py | 92 - .../__pycache__/__init__.cpython-312.pyc | Bin 3680 -> 0 bytes .../faker/providers/color/pt_BR/__init__.py | 261 - .../__pycache__/__init__.cpython-312.pyc | Bin 6401 -> 0 bytes .../faker/providers/color/ru_RU/__init__.py | 86 - .../__pycache__/__init__.cpython-312.pyc | Bin 2907 -> 0 bytes .../faker/providers/color/sk_SK/__init__.py | 23 - .../__pycache__/__init__.cpython-312.pyc | Bin 728 -> 0 bytes .../faker/providers/color/th_TH/__init__.py | 52 - .../__pycache__/__init__.cpython-312.pyc | Bin 1502 -> 0 bytes .../faker/providers/color/uk_UA/__init__.py | 222 - .../__pycache__/__init__.cpython-312.pyc | Bin 9022 -> 0 bytes .../faker/providers/color/uz_UZ/__init__.py | 69 - .../__pycache__/__init__.cpython-312.pyc | Bin 1493 -> 0 bytes .../faker/providers/color/vi_VN/__init__.py | 90 - .../__pycache__/__init__.cpython-312.pyc | Bin 2339 -> 0 bytes .../faker/providers/company/__init__.py | 531 - .../__pycache__/__init__.cpython-312.pyc | Bin 7956 -> 0 bytes .../faker/providers/company/ar_DZ/__init__.py | 80 - .../__pycache__/__init__.cpython-312.pyc | Bin 2673 -> 0 bytes .../faker/providers/company/az_AZ/__init__.py | 52 - .../__pycache__/__init__.cpython-312.pyc | Bin 1475 -> 0 bytes .../faker/providers/company/bg_BG/__init__.py | 30 - .../__pycache__/__init__.cpython-312.pyc | Bin 728 -> 0 bytes .../faker/providers/company/bn_BD/__init__.py | 640 - .../__pycache__/__init__.cpython-312.pyc | Bin 22999 -> 0 bytes .../faker/providers/company/cs_CZ/__init__.py | 19 - .../__pycache__/__init__.cpython-312.pyc | Bin 624 -> 0 bytes .../faker/providers/company/da_DK/__init__.py | 14 - .../__pycache__/__init__.cpython-312.pyc | Bin 631 -> 0 bytes .../faker/providers/company/de_AT/__init__.py | 26 - .../__pycache__/__init__.cpython-312.pyc | Bin 686 -> 0 bytes .../faker/providers/company/de_CH/__init__.py | 23 - .../__pycache__/__init__.cpython-312.pyc | Bin 644 -> 0 bytes .../faker/providers/company/de_DE/__init__.py | 38 - .../__pycache__/__init__.cpython-312.pyc | Bin 816 -> 0 bytes .../faker/providers/company/el_GR/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 763 -> 0 bytes .../faker/providers/company/en_PH/__init__.py | 147 - .../__pycache__/__init__.cpython-312.pyc | Bin 3920 -> 0 bytes .../faker/providers/company/en_US/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 442 -> 0 bytes .../faker/providers/company/es_CL/__init__.py | 442 - .../__pycache__/__init__.cpython-312.pyc | Bin 6703 -> 0 bytes .../faker/providers/company/es_ES/__init__.py | 127 - .../__pycache__/__init__.cpython-312.pyc | Bin 3981 -> 0 bytes .../faker/providers/company/es_MX/__init__.py | 439 - .../__pycache__/__init__.cpython-312.pyc | Bin 6516 -> 0 bytes .../faker/providers/company/fa_IR/__init__.py | 1113 - .../__pycache__/__init__.cpython-312.pyc | Bin 42481 -> 0 bytes .../faker/providers/company/fi_FI/__init__.py | 66 - .../__pycache__/__init__.cpython-312.pyc | Bin 2922 -> 0 bytes .../providers/company/fil_PH/__init__.py | 94 - .../__pycache__/__init__.cpython-312.pyc | Bin 3522 -> 0 bytes .../faker/providers/company/fr_CH/__init__.py | 40 - .../__pycache__/__init__.cpython-312.pyc | Bin 1904 -> 0 bytes .../faker/providers/company/fr_DZ/__init__.py | 87 - .../__pycache__/__init__.cpython-312.pyc | Bin 2552 -> 0 bytes .../faker/providers/company/fr_FR/__init__.py | 439 - .../__pycache__/__init__.cpython-312.pyc | Bin 20554 -> 0 bytes .../faker/providers/company/hr_HR/__init__.py | 15 - .../__pycache__/__init__.cpython-312.pyc | Bin 614 -> 0 bytes .../faker/providers/company/hu_HU/__init__.py | 15 - .../__pycache__/__init__.cpython-312.pyc | Bin 964 -> 0 bytes .../faker/providers/company/hy_AM/__init__.py | 283 - .../__pycache__/__init__.cpython-312.pyc | Bin 6985 -> 0 bytes .../faker/providers/company/id_ID/__init__.py | 32 - .../__pycache__/__init__.cpython-312.pyc | Bin 1019 -> 0 bytes .../faker/providers/company/it_IT/__init__.py | 375 - .../__pycache__/__init__.cpython-312.pyc | Bin 5727 -> 0 bytes .../faker/providers/company/ja_JP/__init__.py | 31 - .../__pycache__/__init__.cpython-312.pyc | Bin 1305 -> 0 bytes .../faker/providers/company/ko_KR/__init__.py | 470 - .../__pycache__/__init__.cpython-312.pyc | Bin 7459 -> 0 bytes .../faker/providers/company/nl_BE/__init__.py | 10 - .../__pycache__/__init__.cpython-312.pyc | Bin 665 -> 0 bytes .../faker/providers/company/nl_NL/__init__.py | 521 - .../__pycache__/__init__.cpython-312.pyc | Bin 7476 -> 0 bytes .../faker/providers/company/no_NO/__init__.py | 22 - .../__pycache__/__init__.cpython-312.pyc | Bin 718 -> 0 bytes .../faker/providers/company/pl_PL/__init__.py | 149 - .../__pycache__/__init__.cpython-312.pyc | Bin 5863 -> 0 bytes .../faker/providers/company/pt_BR/__init__.py | 111 - .../__pycache__/__init__.cpython-312.pyc | Bin 4835 -> 0 bytes .../faker/providers/company/pt_PT/__init__.py | 53 - .../__pycache__/__init__.cpython-312.pyc | Bin 1200 -> 0 bytes .../faker/providers/company/ro_RO/__init__.py | 34 - .../__pycache__/__init__.cpython-312.pyc | Bin 984 -> 0 bytes .../faker/providers/company/ru_RU/__init__.py | 1182 - .../__pycache__/__init__.cpython-312.pyc | Bin 39477 -> 0 bytes .../faker/providers/company/sk_SK/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 618 -> 0 bytes .../faker/providers/company/sl_SI/__init__.py | 13 - .../__pycache__/__init__.cpython-312.pyc | Bin 576 -> 0 bytes .../faker/providers/company/sv_SE/__init__.py | 14 - .../__pycache__/__init__.cpython-312.pyc | Bin 633 -> 0 bytes .../faker/providers/company/th_TH/__init__.py | 126 - .../__pycache__/__init__.cpython-312.pyc | Bin 4305 -> 0 bytes .../faker/providers/company/tl_PH/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 517 -> 0 bytes .../faker/providers/company/tr_TR/__init__.py | 123 - .../__pycache__/__init__.cpython-312.pyc | Bin 3022 -> 0 bytes .../faker/providers/company/vi_VN/__init__.py | 24 - .../__pycache__/__init__.cpython-312.pyc | Bin 1107 -> 0 bytes .../faker/providers/company/zh_CN/__init__.py | 95 - .../__pycache__/__init__.cpython-312.pyc | Bin 2172 -> 0 bytes .../faker/providers/company/zh_TW/__init__.py | 113 - .../__pycache__/__init__.cpython-312.pyc | Bin 2883 -> 0 bytes .../faker/providers/credit_card/__init__.py | 195 - .../__pycache__/__init__.cpython-312.pyc | Bin 7883 -> 0 bytes .../providers/credit_card/en_US/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 520 -> 0 bytes .../providers/credit_card/fa_IR/__init__.py | 124 - .../__pycache__/__init__.cpython-312.pyc | Bin 4604 -> 0 bytes .../providers/credit_card/pt_PT/__init__.py | 299 - .../__pycache__/__init__.cpython-312.pyc | Bin 3361 -> 0 bytes .../providers/credit_card/ru_RU/__init__.py | 115 - .../__pycache__/__init__.cpython-312.pyc | Bin 3286 -> 0 bytes .../providers/credit_card/uk_UA/__init__.py | 58 - .../__pycache__/__init__.cpython-312.pyc | Bin 2756 -> 0 bytes .../providers/credit_card/zh_CN/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 2198 -> 0 bytes .../faker/providers/currency/__init__.py | 425 - .../__pycache__/__init__.cpython-312.pyc | Bin 12583 -> 0 bytes .../providers/currency/ar_DZ/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 827 -> 0 bytes .../providers/currency/az_AZ/__init__.py | 178 - .../__pycache__/__init__.cpython-312.pyc | Bin 5393 -> 0 bytes .../providers/currency/bn_BD/__init__.py | 231 - .../__pycache__/__init__.cpython-312.pyc | Bin 12468 -> 0 bytes .../providers/currency/cs_CZ/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 826 -> 0 bytes .../providers/currency/da_DK/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 794 -> 0 bytes .../faker/providers/currency/de/__init__.py | 174 - .../de/__pycache__/__init__.cpython-312.pyc | Bin 4959 -> 0 bytes .../providers/currency/de_AT/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 828 -> 0 bytes .../providers/currency/de_CH/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 811 -> 0 bytes .../providers/currency/de_DE/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 801 -> 0 bytes .../providers/currency/el_GR/__init__.py | 158 - .../__pycache__/__init__.cpython-312.pyc | Bin 6710 -> 0 bytes .../providers/currency/en_AU/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 823 -> 0 bytes .../providers/currency/en_CA/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 796 -> 0 bytes .../providers/currency/en_US/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 818 -> 0 bytes .../faker/providers/currency/es/__init__.py | 171 - .../es/__pycache__/__init__.cpython-312.pyc | Bin 4670 -> 0 bytes .../providers/currency/es_AR/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 830 -> 0 bytes .../providers/currency/es_CL/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 829 -> 0 bytes .../providers/currency/es_ES/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 828 -> 0 bytes .../providers/currency/fa_IR/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 851 -> 0 bytes .../providers/currency/fr_CA/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 824 -> 0 bytes .../providers/currency/fr_DZ/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 825 -> 0 bytes .../providers/currency/fr_FR/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 799 -> 0 bytes .../providers/currency/it_IT/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 799 -> 0 bytes .../providers/currency/ng_NG/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 815 -> 0 bytes .../providers/currency/nl_NL/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 847 -> 0 bytes .../providers/currency/pl_PL/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 826 -> 0 bytes .../providers/currency/pt_BR/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 819 -> 0 bytes .../providers/currency/ro_RO/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 826 -> 0 bytes .../providers/currency/ru_RU/__init__.py | 179 - .../__pycache__/__init__.cpython-312.pyc | Bin 7067 -> 0 bytes .../providers/currency/sk_SK/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 799 -> 0 bytes .../providers/currency/sv_SE/__init__.py | 178 - .../__pycache__/__init__.cpython-312.pyc | Bin 4129 -> 0 bytes .../providers/currency/th_TH/__init__.py | 186 - .../__pycache__/__init__.cpython-312.pyc | Bin 9276 -> 0 bytes .../providers/currency/tr_TR/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 827 -> 0 bytes .../providers/currency/uk_UA/__init__.py | 173 - .../__pycache__/__init__.cpython-312.pyc | Bin 8282 -> 0 bytes .../providers/currency/uz_UZ/__init__.py | 178 - .../__pycache__/__init__.cpython-312.pyc | Bin 4387 -> 0 bytes .../providers/currency/vi_VN/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 823 -> 0 bytes .../faker/providers/date_time/__init__.py | 2616 - .../__pycache__/__init__.cpython-312.pyc | Bin 65400 -> 0 bytes .../providers/date_time/ar_AA/__init__.py | 1765 - .../__pycache__/__init__.cpython-312.pyc | Bin 37819 -> 0 bytes .../providers/date_time/ar_DZ/__init__.py | 19 - .../__pycache__/__init__.cpython-312.pyc | Bin 770 -> 0 bytes .../providers/date_time/ar_EG/__init__.py | 18 - .../__pycache__/__init__.cpython-312.pyc | Bin 776 -> 0 bytes .../providers/date_time/az_AZ/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1330 -> 0 bytes .../providers/date_time/bn_BD/__init__.py | 1740 - .../__pycache__/__init__.cpython-312.pyc | Bin 47873 -> 0 bytes .../providers/date_time/cs_CZ/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1326 -> 0 bytes .../providers/date_time/da_DK/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1282 -> 0 bytes .../providers/date_time/de_AT/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1289 -> 0 bytes .../providers/date_time/de_DE/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1285 -> 0 bytes .../providers/date_time/el_GR/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1516 -> 0 bytes .../providers/date_time/en_PH/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 507 -> 0 bytes .../providers/date_time/en_US/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 446 -> 0 bytes .../faker/providers/date_time/es/__init__.py | 36 - .../es/__pycache__/__init__.cpython-312.pyc | Bin 1285 -> 0 bytes .../providers/date_time/es_AR/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 448 -> 0 bytes .../providers/date_time/es_CL/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 448 -> 0 bytes .../providers/date_time/es_ES/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 448 -> 0 bytes .../providers/date_time/fil_PH/__init__.py | 37 - .../__pycache__/__init__.cpython-312.pyc | Bin 1342 -> 0 bytes .../providers/date_time/fr_CA/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 783 -> 0 bytes .../providers/date_time/fr_DZ/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 447 -> 0 bytes .../providers/date_time/fr_FR/__init__.py | 35 - .../__pycache__/__init__.cpython-312.pyc | Bin 1326 -> 0 bytes .../providers/date_time/gu_IN/__init__.py | 76 - .../__pycache__/__init__.cpython-312.pyc | Bin 2640 -> 0 bytes .../providers/date_time/hi_IN/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1511 -> 0 bytes .../providers/date_time/hr_HR/__init__.py | 34 - .../__pycache__/__init__.cpython-312.pyc | Bin 1288 -> 0 bytes .../providers/date_time/hu_HU/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1313 -> 0 bytes .../providers/date_time/hy_AM/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1488 -> 0 bytes .../providers/date_time/id_ID/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1250 -> 0 bytes .../providers/date_time/it_IT/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1309 -> 0 bytes .../providers/date_time/ja_JP/__init__.py | 54 - .../__pycache__/__init__.cpython-312.pyc | Bin 1887 -> 0 bytes .../providers/date_time/ka_GE/__init__.py | 37 - .../__pycache__/__init__.cpython-312.pyc | Bin 1642 -> 0 bytes .../providers/date_time/ko_KR/__init__.py | 34 - .../__pycache__/__init__.cpython-312.pyc | Bin 1310 -> 0 bytes .../providers/date_time/nl_NL/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1285 -> 0 bytes .../providers/date_time/no_NO/__init__.py | 35 - .../__pycache__/__init__.cpython-312.pyc | Bin 1319 -> 0 bytes .../providers/date_time/pl_PL/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1330 -> 0 bytes .../providers/date_time/pt_BR/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1318 -> 0 bytes .../providers/date_time/pt_PT/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1318 -> 0 bytes .../providers/date_time/ro_RO/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1284 -> 0 bytes .../providers/date_time/ru_RU/__init__.py | 1640 - .../__pycache__/__init__.cpython-312.pyc | Bin 33268 -> 0 bytes .../providers/date_time/sk_SK/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1308 -> 0 bytes .../providers/date_time/sl_SI/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1319 -> 0 bytes .../providers/date_time/ta_IN/__init__.py | 37 - .../__pycache__/__init__.cpython-312.pyc | Bin 1603 -> 0 bytes .../providers/date_time/th_TH/__init__.py | 340 - .../__pycache__/__init__.cpython-312.pyc | Bin 9974 -> 0 bytes .../providers/date_time/tl_PH/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 520 -> 0 bytes .../providers/date_time/tr_TR/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1304 -> 0 bytes .../providers/date_time/uz_UZ/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 1313 -> 0 bytes .../providers/date_time/vi_VN/__init__.py | 37 - .../__pycache__/__init__.cpython-312.pyc | Bin 1435 -> 0 bytes .../providers/date_time/zh_CN/__init__.py | 35 - .../__pycache__/__init__.cpython-312.pyc | Bin 1394 -> 0 bytes .../providers/date_time/zh_TW/__init__.py | 39 - .../__pycache__/__init__.cpython-312.pyc | Bin 1661 -> 0 bytes .../faker/providers/doi/__init__.py | 22 - .../doi/__pycache__/__init__.cpython-312.pyc | Bin 1298 -> 0 bytes .../faker/providers/emoji/__init__.py | 3528 - .../__pycache__/__init__.cpython-312.pyc | Bin 55653 -> 0 bytes .../faker/providers/emoji/en_US/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 438 -> 0 bytes .../faker/providers/file/__init__.py | 354 - .../file/__pycache__/__init__.cpython-312.pyc | Bin 9917 -> 0 bytes .../faker/providers/file/en_US/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 436 -> 0 bytes .../faker/providers/geo/__init__.py | 1049 - .../geo/__pycache__/__init__.cpython-312.pyc | Bin 47631 -> 0 bytes .../faker/providers/geo/ar_DZ/__init__.py | 65 - .../__pycache__/__init__.cpython-312.pyc | Bin 2923 -> 0 bytes .../faker/providers/geo/bn_BD/__init__.py | 989 - .../__pycache__/__init__.cpython-312.pyc | Bin 70671 -> 0 bytes .../faker/providers/geo/cs_CZ/__init__.py | 156 - .../__pycache__/__init__.cpython-312.pyc | Bin 8263 -> 0 bytes .../faker/providers/geo/de_AT/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 923 -> 0 bytes .../faker/providers/geo/el_GR/__init__.py | 28 - .../__pycache__/__init__.cpython-312.pyc | Bin 2303 -> 0 bytes .../faker/providers/geo/en_IE/__init__.py | 52 - .../__pycache__/__init__.cpython-312.pyc | Bin 2271 -> 0 bytes .../faker/providers/geo/en_US/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 435 -> 0 bytes .../faker/providers/geo/fr_DZ/__init__.py | 65 - .../__pycache__/__init__.cpython-312.pyc | Bin 2539 -> 0 bytes .../faker/providers/geo/pl_PL/__init__.py | 48 - .../__pycache__/__init__.cpython-312.pyc | Bin 2208 -> 0 bytes .../faker/providers/geo/pt_PT/__init__.py | 127 - .../__pycache__/__init__.cpython-312.pyc | Bin 2082 -> 0 bytes .../faker/providers/geo/sk_SK/__init__.py | 104 - .../__pycache__/__init__.cpython-312.pyc | Bin 6312 -> 0 bytes .../faker/providers/geo/tr_TR/__init__.py | 106 - .../__pycache__/__init__.cpython-312.pyc | Bin 4578 -> 0 bytes .../faker/providers/internet/__init__.py | 802 - .../__pycache__/__init__.cpython-312.pyc | Bin 33120 -> 0 bytes .../providers/internet/ar_AA/__init__.py | 53 - .../__pycache__/__init__.cpython-312.pyc | Bin 1033 -> 0 bytes .../providers/internet/az_AZ/__init__.py | 38 - .../__pycache__/__init__.cpython-312.pyc | Bin 1205 -> 0 bytes .../providers/internet/bg_BG/__init__.py | 112 - .../__pycache__/__init__.cpython-312.pyc | Bin 1701 -> 0 bytes .../providers/internet/bn_BD/__init__.py | 30 - .../__pycache__/__init__.cpython-312.pyc | Bin 700 -> 0 bytes .../providers/internet/bs_BA/__init__.py | 27 - .../__pycache__/__init__.cpython-312.pyc | Bin 774 -> 0 bytes .../providers/internet/cs_CZ/__init__.py | 28 - .../__pycache__/__init__.cpython-312.pyc | Bin 893 -> 0 bytes .../providers/internet/de_AT/__init__.py | 21 - .../__pycache__/__init__.cpython-312.pyc | Bin 679 -> 0 bytes .../providers/internet/de_DE/__init__.py | 28 - .../__pycache__/__init__.cpython-312.pyc | Bin 774 -> 0 bytes .../providers/internet/el_GR/__init__.py | 81 - .../__pycache__/__init__.cpython-312.pyc | Bin 4178 -> 0 bytes .../providers/internet/en_AU/__init__.py | 24 - .../__pycache__/__init__.cpython-312.pyc | Bin 623 -> 0 bytes .../providers/internet/en_GB/__init__.py | 29 - .../__pycache__/__init__.cpython-312.pyc | Bin 629 -> 0 bytes .../providers/internet/en_NZ/__init__.py | 24 - .../__pycache__/__init__.cpython-312.pyc | Bin 637 -> 0 bytes .../providers/internet/en_PH/__init__.py | 65 - .../__pycache__/__init__.cpython-312.pyc | Bin 2663 -> 0 bytes .../providers/internet/en_US/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 445 -> 0 bytes .../providers/internet/es_AR/__init__.py | 21 - .../__pycache__/__init__.cpython-312.pyc | Bin 744 -> 0 bytes .../providers/internet/es_CL/__init__.py | 34 - .../__pycache__/__init__.cpython-312.pyc | Bin 1403 -> 0 bytes .../providers/internet/es_ES/__init__.py | 21 - .../__pycache__/__init__.cpython-312.pyc | Bin 743 -> 0 bytes .../providers/internet/fa_IR/__init__.py | 13 - .../__pycache__/__init__.cpython-312.pyc | Bin 638 -> 0 bytes .../providers/internet/fi_FI/__init__.py | 15 - .../__pycache__/__init__.cpython-312.pyc | Bin 618 -> 0 bytes .../providers/internet/fil_PH/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 526 -> 0 bytes .../providers/internet/fr_CH/__init__.py | 35 - .../__pycache__/__init__.cpython-312.pyc | Bin 910 -> 0 bytes .../providers/internet/fr_FR/__init__.py | 42 - .../__pycache__/__init__.cpython-312.pyc | Bin 1001 -> 0 bytes .../providers/internet/hr_HR/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 813 -> 0 bytes .../providers/internet/hu_HU/__init__.py | 37 - .../__pycache__/__init__.cpython-312.pyc | Bin 763 -> 0 bytes .../providers/internet/id_ID/__init__.py | 28 - .../__pycache__/__init__.cpython-312.pyc | Bin 595 -> 0 bytes .../providers/internet/it_IT/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 903 -> 0 bytes .../providers/internet/ja_JP/__init__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 1037 -> 0 bytes .../providers/internet/ko_KR/__init__.py | 15 - .../__pycache__/__init__.cpython-312.pyc | Bin 621 -> 0 bytes .../providers/internet/no_NO/__init__.py | 20 - .../__pycache__/__init__.cpython-312.pyc | Bin 695 -> 0 bytes .../providers/internet/pl_PL/__init__.py | 26 - .../__pycache__/__init__.cpython-312.pyc | Bin 735 -> 0 bytes .../providers/internet/pt_BR/__init__.py | 47 - .../__pycache__/__init__.cpython-312.pyc | Bin 932 -> 0 bytes .../providers/internet/pt_PT/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 622 -> 0 bytes .../providers/internet/ro_RO/__init__.py | 28 - .../__pycache__/__init__.cpython-312.pyc | Bin 886 -> 0 bytes .../providers/internet/ru_RU/__init__.py | 100 - .../__pycache__/__init__.cpython-312.pyc | Bin 1903 -> 0 bytes .../providers/internet/sk_SK/__init__.py | 31 - .../__pycache__/__init__.cpython-312.pyc | Bin 916 -> 0 bytes .../providers/internet/sl_SI/__init__.py | 63 - .../__pycache__/__init__.cpython-312.pyc | Bin 1135 -> 0 bytes .../providers/internet/sv_SE/__init__.py | 23 - .../__pycache__/__init__.cpython-312.pyc | Bin 717 -> 0 bytes .../providers/internet/th_TH/__init__.py | 32 - .../__pycache__/__init__.cpython-312.pyc | Bin 819 -> 0 bytes .../providers/internet/tl_PH/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 525 -> 0 bytes .../providers/internet/tr_TR/__init__.py | 28 - .../__pycache__/__init__.cpython-312.pyc | Bin 756 -> 0 bytes .../providers/internet/uk_UA/__init__.py | 82 - .../__pycache__/__init__.cpython-312.pyc | Bin 1487 -> 0 bytes .../providers/internet/zh_CN/__init__.py | 103 - .../__pycache__/__init__.cpython-312.pyc | Bin 2782 -> 0 bytes .../providers/internet/zh_TW/__init__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 1011 -> 0 bytes .../faker/providers/isbn/__init__.py | 75 - .../isbn/__pycache__/__init__.cpython-312.pyc | Bin 3608 -> 0 bytes .../isbn/__pycache__/isbn.cpython-312.pyc | Bin 5074 -> 0 bytes .../faker/providers/isbn/en_US/__init__.py | 35 - .../__pycache__/__init__.cpython-312.pyc | Bin 998 -> 0 bytes .../faker/providers/isbn/es_ES/__init__.py | 37 - .../__pycache__/__init__.cpython-312.pyc | Bin 1107 -> 0 bytes .../faker/providers/isbn/isbn.py | 86 - .../faker/providers/job/__init__.py | 660 - .../job/__pycache__/__init__.cpython-312.pyc | Bin 15979 -> 0 bytes .../faker/providers/job/ar_AA/__init__.py | 140 - .../__pycache__/__init__.cpython-312.pyc | Bin 3003 -> 0 bytes .../faker/providers/job/ar_DZ/__init__.py | 113 - .../__pycache__/__init__.cpython-312.pyc | Bin 2419 -> 0 bytes .../faker/providers/job/az_AZ/__init__.py | 112 - .../__pycache__/__init__.cpython-312.pyc | Bin 2126 -> 0 bytes .../faker/providers/job/bn_BD/__init__.py | 649 - .../__pycache__/__init__.cpython-312.pyc | Bin 40543 -> 0 bytes .../faker/providers/job/bs_BA/__init__.py | 4319 - .../__pycache__/__init__.cpython-312.pyc | Bin 145439 -> 0 bytes .../faker/providers/job/cs_CZ/__init__.py | 487 - .../__pycache__/__init__.cpython-312.pyc | Bin 13690 -> 0 bytes .../faker/providers/job/da_DK/__init__.py | 962 - .../__pycache__/__init__.cpython-312.pyc | Bin 17455 -> 0 bytes .../faker/providers/job/de_AT/__init__.py | 4997 -- .../__pycache__/__init__.cpython-312.pyc | Bin 234035 -> 0 bytes .../faker/providers/job/de_DE/__init__.py | 44 - .../__pycache__/__init__.cpython-312.pyc | Bin 988 -> 0 bytes .../faker/providers/job/el_GR/__init__.py | 451 - .../__pycache__/__init__.cpython-312.pyc | Bin 23897 -> 0 bytes .../faker/providers/job/en_US/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 435 -> 0 bytes .../faker/providers/job/es/__init__.py | 483 - .../es/__pycache__/__init__.cpython-312.pyc | Bin 15414 -> 0 bytes .../faker/providers/job/es_AR/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 437 -> 0 bytes .../faker/providers/job/es_CL/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 437 -> 0 bytes .../faker/providers/job/es_CO/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 437 -> 0 bytes .../faker/providers/job/es_ES/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 437 -> 0 bytes .../faker/providers/job/es_MX/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 437 -> 0 bytes .../faker/providers/job/fa_IR/__init__.py | 101 - .../__pycache__/__init__.cpython-312.pyc | Bin 2135 -> 0 bytes .../faker/providers/job/fi_FI/__init__.py | 202 - .../__pycache__/__init__.cpython-312.pyc | Bin 4518 -> 0 bytes .../faker/providers/job/fr_CH/__init__.py | 849 - .../__pycache__/__init__.cpython-312.pyc | Bin 35591 -> 0 bytes .../faker/providers/job/fr_DZ/__init__.py | 240 - .../__pycache__/__init__.cpython-312.pyc | Bin 5099 -> 0 bytes .../faker/providers/job/fr_FR/__init__.py | 1587 - .../__pycache__/__init__.cpython-312.pyc | Bin 43423 -> 0 bytes .../faker/providers/job/hr_HR/__init__.py | 290 - .../__pycache__/__init__.cpython-312.pyc | Bin 8448 -> 0 bytes .../faker/providers/job/hu_HU/__init__.py | 418 - .../__pycache__/__init__.cpython-312.pyc | Bin 10488 -> 0 bytes .../faker/providers/job/hy_AM/__init__.py | 250 - .../__pycache__/__init__.cpython-312.pyc | Bin 9533 -> 0 bytes .../faker/providers/job/ja_JP/__init__.py | 66 - .../__pycache__/__init__.cpython-312.pyc | Bin 1609 -> 0 bytes .../faker/providers/job/ka_GE/__init__.py | 392 - .../__pycache__/__init__.cpython-312.pyc | Bin 16359 -> 0 bytes .../faker/providers/job/ko_KR/__init__.py | 434 - .../__pycache__/__init__.cpython-312.pyc | Bin 13868 -> 0 bytes .../faker/providers/job/pl_PL/__init__.py | 224 - .../__pycache__/__init__.cpython-312.pyc | Bin 3867 -> 0 bytes .../faker/providers/job/pt_BR/__init__.py | 758 - .../__pycache__/__init__.cpython-312.pyc | Bin 14116 -> 0 bytes .../faker/providers/job/pt_PT/__init__.py | 391 - .../__pycache__/__init__.cpython-312.pyc | Bin 15793 -> 0 bytes .../faker/providers/job/ro_RO/__init__.py | 4045 - .../__pycache__/__init__.cpython-312.pyc | Bin 130157 -> 0 bytes .../faker/providers/job/ru_RU/__init__.py | 526 - .../__pycache__/__init__.cpython-312.pyc | Bin 14024 -> 0 bytes .../faker/providers/job/sk_SK/__init__.py | 511 - .../__pycache__/__init__.cpython-312.pyc | Bin 14315 -> 0 bytes .../faker/providers/job/th_TH/__init__.py | 93 - .../__pycache__/__init__.cpython-312.pyc | Bin 3481 -> 0 bytes .../faker/providers/job/tr_TR/__init__.py | 738 - .../__pycache__/__init__.cpython-312.pyc | Bin 11498 -> 0 bytes .../faker/providers/job/uk_UA/__init__.py | 185 - .../__pycache__/__init__.cpython-312.pyc | Bin 3892 -> 0 bytes .../faker/providers/job/vi_VN/__init__.py | 75 - .../__pycache__/__init__.cpython-312.pyc | Bin 2000 -> 0 bytes .../faker/providers/job/zh_CN/__init__.py | 1025 - .../__pycache__/__init__.cpython-312.pyc | Bin 21618 -> 0 bytes .../faker/providers/job/zh_TW/__init__.py | 481 - .../__pycache__/__init__.cpython-312.pyc | Bin 11292 -> 0 bytes .../faker/providers/lorem/__init__.py | 275 - .../__pycache__/__init__.cpython-312.pyc | Bin 12734 -> 0 bytes .../faker/providers/lorem/ar_AA/__init__.py | 705 - .../__pycache__/__init__.cpython-312.pyc | Bin 11650 -> 0 bytes .../faker/providers/lorem/az_AZ/__init__.py | 106 - .../__pycache__/__init__.cpython-312.pyc | Bin 1614 -> 0 bytes .../faker/providers/lorem/bn_BD/__init__.py | 237 - .../__pycache__/__init__.cpython-312.pyc | Bin 4943 -> 0 bytes .../faker/providers/lorem/cs_CZ/__init__.py | 5039 -- .../__pycache__/__init__.cpython-312.pyc | Bin 58216 -> 0 bytes .../faker/providers/lorem/da_DK/__init__.py | 1012 - .../__pycache__/__init__.cpython-312.pyc | Bin 9751 -> 0 bytes .../faker/providers/lorem/de_AT/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 555 -> 0 bytes .../faker/providers/lorem/de_DE/__init__.py | 527 - .../__pycache__/__init__.cpython-312.pyc | Bin 4698 -> 0 bytes .../faker/providers/lorem/el_GR/__init__.py | 395 - .../__pycache__/__init__.cpython-312.pyc | Bin 7700 -> 0 bytes .../faker/providers/lorem/en_PH/__init__.py | 85 - .../__pycache__/__init__.cpython-312.pyc | Bin 4498 -> 0 bytes .../faker/providers/lorem/en_US/__init__.py | 3180 - .../__pycache__/__init__.cpython-312.pyc | Bin 24033 -> 0 bytes .../faker/providers/lorem/es_AR/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 551 -> 0 bytes .../faker/providers/lorem/es_ES/__init__.py | 1016 - .../__pycache__/__init__.cpython-312.pyc | Bin 9390 -> 0 bytes .../faker/providers/lorem/es_MX/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 551 -> 0 bytes .../faker/providers/lorem/fa_IR/__init__.py | 929 - .../__pycache__/__init__.cpython-312.pyc | Bin 11991 -> 0 bytes .../faker/providers/lorem/fil_PH/__init__.py | 639 - .../__pycache__/__init__.cpython-312.pyc | Bin 5613 -> 0 bytes .../faker/providers/lorem/fr_FR/__init__.py | 1482 - .../__pycache__/__init__.cpython-312.pyc | Bin 13593 -> 0 bytes .../faker/providers/lorem/he_IL/__init__.py | 156 - .../__pycache__/__init__.cpython-312.pyc | Bin 2794 -> 0 bytes .../faker/providers/lorem/hy_AM/__init__.py | 230 - .../__pycache__/__init__.cpython-312.pyc | Bin 3697 -> 0 bytes .../faker/providers/lorem/it_IT/__init__.py | 3094 - .../__pycache__/__init__.cpython-312.pyc | Bin 33947 -> 0 bytes .../faker/providers/lorem/ja_JP/__init__.py | 232 - .../__pycache__/__init__.cpython-312.pyc | Bin 3784 -> 0 bytes .../faker/providers/lorem/la/__init__.py | 194 - .../la/__pycache__/__init__.cpython-312.pyc | Bin 2198 -> 0 bytes .../faker/providers/lorem/nl_BE/__init__.py | 1015 - .../__pycache__/__init__.cpython-312.pyc | Bin 8412 -> 0 bytes .../faker/providers/lorem/nl_NL/__init__.py | 14 - .../__pycache__/__init__.cpython-312.pyc | Bin 831 -> 0 bytes .../faker/providers/lorem/pl_PL/__init__.py | 2014 - .../__pycache__/__init__.cpython-312.pyc | Bin 21686 -> 0 bytes .../faker/providers/lorem/ru_RU/__init__.py | 512 - .../__pycache__/__init__.cpython-312.pyc | Bin 9970 -> 0 bytes .../faker/providers/lorem/th_TH/__init__.py | 426 - .../__pycache__/__init__.cpython-312.pyc | Bin 8975 -> 0 bytes .../faker/providers/lorem/tl_PH/__init__.py | 13 - .../__pycache__/__init__.cpython-312.pyc | Bin 690 -> 0 bytes .../faker/providers/lorem/uk_UA/__init__.py | 506 - .../__pycache__/__init__.cpython-312.pyc | Bin 9679 -> 0 bytes .../faker/providers/lorem/vi_VN/__init__.py | 193 - .../__pycache__/__init__.cpython-312.pyc | Bin 2344 -> 0 bytes .../faker/providers/lorem/zh_CN/__init__.py | 359 - .../__pycache__/__init__.cpython-312.pyc | Bin 4498 -> 0 bytes .../faker/providers/lorem/zh_TW/__init__.py | 359 - .../__pycache__/__init__.cpython-312.pyc | Bin 4498 -> 0 bytes .../faker/providers/misc/__init__.py | 781 - .../misc/__pycache__/__init__.cpython-312.pyc | Bin 37453 -> 0 bytes .../faker/providers/misc/en_PH/__init__.py | 218 - .../__pycache__/__init__.cpython-312.pyc | Bin 3555 -> 0 bytes .../faker/providers/misc/en_US/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 436 -> 0 bytes .../faker/providers/misc/fil_PH/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 519 -> 0 bytes .../faker/providers/misc/tl_PH/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 518 -> 0 bytes .../faker/providers/passport/__init__.py | 47 - .../__pycache__/__init__.cpython-312.pyc | Bin 2680 -> 0 bytes .../providers/passport/de_AT/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 736 -> 0 bytes .../providers/passport/en_US/__init__.py | 101 - .../__pycache__/__init__.cpython-312.pyc | Bin 4532 -> 0 bytes .../providers/passport/it_IT/__init__.py | 30 - .../__pycache__/__init__.cpython-312.pyc | Bin 1289 -> 0 bytes .../providers/passport/ru_RU/__init__.py | 26 - .../__pycache__/__init__.cpython-312.pyc | Bin 1487 -> 0 bytes .../faker/providers/person/__init__.py | 330 - .../__pycache__/__init__.cpython-312.pyc | Bin 10124 -> 0 bytes .../faker/providers/person/ar_AA/__init__.py | 1096 - .../__pycache__/__init__.cpython-312.pyc | Bin 17447 -> 0 bytes .../faker/providers/person/ar_DZ/__init__.py | 379 - .../__pycache__/__init__.cpython-312.pyc | Bin 6076 -> 0 bytes .../faker/providers/person/ar_PS/__init__.py | 48 - .../__pycache__/__init__.cpython-312.pyc | Bin 1203 -> 0 bytes .../faker/providers/person/ar_SA/__init__.py | 50 - .../__pycache__/__init__.cpython-312.pyc | Bin 1298 -> 0 bytes .../faker/providers/person/az_AZ/__init__.py | 913 - .../__pycache__/__init__.cpython-312.pyc | Bin 12486 -> 0 bytes .../faker/providers/person/bg_BG/__init__.py | 1767 - .../__pycache__/__init__.cpython-312.pyc | Bin 31363 -> 0 bytes .../faker/providers/person/bn_BD/__init__.py | 608 - .../__pycache__/__init__.cpython-312.pyc | Bin 16741 -> 0 bytes .../faker/providers/person/cs_CZ/__init__.py | 546 - .../__pycache__/__init__.cpython-312.pyc | Bin 6869 -> 0 bytes .../faker/providers/person/da_DK/__init__.py | 633 - .../__pycache__/__init__.cpython-312.pyc | Bin 5675 -> 0 bytes .../faker/providers/person/de_AT/__init__.py | 1614 - .../__pycache__/__init__.cpython-312.pyc | Bin 14992 -> 0 bytes .../faker/providers/person/de_CH/__init__.py | 2239 - .../__pycache__/__init__.cpython-312.pyc | Bin 19115 -> 0 bytes .../faker/providers/person/de_DE/__init__.py | 2497 - .../__pycache__/__init__.cpython-312.pyc | Bin 23592 -> 0 bytes .../faker/providers/person/de_LI/__init__.py | 553 - .../__pycache__/__init__.cpython-312.pyc | Bin 8753 -> 0 bytes .../faker/providers/person/de_LU/__init__.py | 940 - .../__pycache__/__init__.cpython-312.pyc | Bin 15359 -> 0 bytes .../faker/providers/person/el_GR/__init__.py | 2310 - .../__pycache__/__init__.cpython-312.pyc | Bin 49415 -> 0 bytes .../faker/providers/person/en/__init__.py | 7732 -- .../en/__pycache__/__init__.cpython-312.pyc | Bin 61173 -> 0 bytes .../faker/providers/person/en_GB/__init__.py | 910 - .../__pycache__/__init__.cpython-312.pyc | Bin 11539 -> 0 bytes .../faker/providers/person/en_IE/__init__.py | 3141 - .../__pycache__/__init__.cpython-312.pyc | Bin 27394 -> 0 bytes .../faker/providers/person/en_IN/__init__.py | 1108 - .../__pycache__/__init__.cpython-312.pyc | Bin 9151 -> 0 bytes .../faker/providers/person/en_KE/__init__.py | 1976 - .../__pycache__/__init__.cpython-312.pyc | Bin 36957 -> 0 bytes .../faker/providers/person/en_NG/__init__.py | 93 - .../__pycache__/__init__.cpython-312.pyc | Bin 1242 -> 0 bytes .../faker/providers/person/en_NZ/__init__.py | 1420 - .../__pycache__/__init__.cpython-312.pyc | Bin 21502 -> 0 bytes .../faker/providers/person/en_PK/__init__.py | 995 - .../__pycache__/__init__.cpython-312.pyc | Bin 7100 -> 0 bytes .../faker/providers/person/en_TH/__init__.py | 308 - .../__pycache__/__init__.cpython-312.pyc | Bin 3172 -> 0 bytes .../faker/providers/person/en_US/__init__.py | 1830 - .../__pycache__/__init__.cpython-312.pyc | Bin 34498 -> 0 bytes .../faker/providers/person/es/__init__.py | 186 - .../es/__pycache__/__init__.cpython-312.pyc | Bin 2334 -> 0 bytes .../faker/providers/person/es_AR/__init__.py | 615 - .../__pycache__/__init__.cpython-312.pyc | Bin 12115 -> 0 bytes .../faker/providers/person/es_CA/__init__.py | 93 - .../__pycache__/__init__.cpython-312.pyc | Bin 1367 -> 0 bytes .../faker/providers/person/es_CL/__init__.py | 1602 - .../__pycache__/__init__.cpython-312.pyc | Bin 34254 -> 0 bytes .../faker/providers/person/es_CO/__init__.py | 970 - .../__pycache__/__init__.cpython-312.pyc | Bin 19111 -> 0 bytes .../faker/providers/person/es_ES/__init__.py | 2087 - .../__pycache__/__init__.cpython-312.pyc | Bin 20026 -> 0 bytes .../faker/providers/person/es_MX/__init__.py | 1006 - .../__pycache__/__init__.cpython-312.pyc | Bin 10554 -> 0 bytes .../faker/providers/person/et_EE/__init__.py | 708 - .../__pycache__/__init__.cpython-312.pyc | Bin 8679 -> 0 bytes .../faker/providers/person/fa_IR/__init__.py | 346 - .../__pycache__/__init__.cpython-312.pyc | Bin 5480 -> 0 bytes .../faker/providers/person/fi_FI/__init__.py | 855 - .../__pycache__/__init__.cpython-312.pyc | Bin 16814 -> 0 bytes .../faker/providers/person/fr_BE/__init__.py | 1564 - .../__pycache__/__init__.cpython-312.pyc | Bin 25239 -> 0 bytes .../faker/providers/person/fr_CA/__init__.py | 481 - .../__pycache__/__init__.cpython-312.pyc | Bin 5170 -> 0 bytes .../faker/providers/person/fr_CH/__init__.py | 349 - .../__pycache__/__init__.cpython-312.pyc | Bin 3730 -> 0 bytes .../faker/providers/person/fr_DZ/__init__.py | 489 - .../__pycache__/__init__.cpython-312.pyc | Bin 4462 -> 0 bytes .../faker/providers/person/fr_FR/__init__.py | 663 - .../__pycache__/__init__.cpython-312.pyc | Bin 6688 -> 0 bytes .../faker/providers/person/fr_QC/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 914 -> 0 bytes .../faker/providers/person/ga_IE/__init__.py | 3273 - .../__pycache__/__init__.cpython-312.pyc | Bin 46945 -> 0 bytes .../faker/providers/person/gu_IN/__init__.py | 157 - .../__pycache__/__init__.cpython-312.pyc | Bin 3135 -> 0 bytes .../faker/providers/person/ha_NG/__init__.py | 89 - .../__pycache__/__init__.cpython-312.pyc | Bin 1232 -> 0 bytes .../faker/providers/person/he_IL/__init__.py | 1500 - .../__pycache__/__init__.cpython-312.pyc | Bin 32426 -> 0 bytes .../faker/providers/person/hi_IN/__init__.py | 525 - .../__pycache__/__init__.cpython-312.pyc | Bin 10790 -> 0 bytes .../faker/providers/person/hr_HR/__init__.py | 1031 - .../__pycache__/__init__.cpython-312.pyc | Bin 11730 -> 0 bytes .../faker/providers/person/hu_HU/__init__.py | 440 - .../__pycache__/__init__.cpython-312.pyc | Bin 10330 -> 0 bytes .../faker/providers/person/hy_AM/__init__.py | 981 - .../__pycache__/__init__.cpython-312.pyc | Bin 20439 -> 0 bytes .../faker/providers/person/id_ID/__init__.py | 1004 - .../__pycache__/__init__.cpython-312.pyc | Bin 8531 -> 0 bytes .../faker/providers/person/ig_NG/__init__.py | 89 - .../__pycache__/__init__.cpython-312.pyc | Bin 1266 -> 0 bytes .../faker/providers/person/is_IS/__init__.py | 3941 - .../__pycache__/__init__.cpython-312.pyc | Bin 45523 -> 0 bytes .../faker/providers/person/it_IT/__init__.py | 1667 - .../__pycache__/__init__.cpython-312.pyc | Bin 16196 -> 0 bytes .../faker/providers/person/ja_JP/__init__.py | 299 - .../__pycache__/__init__.cpython-312.pyc | Bin 12152 -> 0 bytes .../faker/providers/person/ka_GE/__init__.py | 773 - .../__pycache__/__init__.cpython-312.pyc | Bin 20589 -> 0 bytes .../faker/providers/person/ko_KR/__init__.py | 202 - .../__pycache__/__init__.cpython-312.pyc | Bin 4157 -> 0 bytes .../faker/providers/person/lt_LT/__init__.py | 250 - .../__pycache__/__init__.cpython-312.pyc | Bin 2807 -> 0 bytes .../faker/providers/person/lv_LV/__init__.py | 441 - .../__pycache__/__init__.cpython-312.pyc | Bin 4925 -> 0 bytes .../faker/providers/person/ne_NP/__init__.py | 1543 - .../__pycache__/__init__.cpython-312.pyc | Bin 22399 -> 0 bytes .../faker/providers/person/nl_BE/__init__.py | 1564 - .../__pycache__/__init__.cpython-312.pyc | Bin 24875 -> 0 bytes .../faker/providers/person/nl_NL/__init__.py | 1660 - .../__pycache__/__init__.cpython-312.pyc | Bin 16190 -> 0 bytes .../faker/providers/person/no_NO/__init__.py | 352 - .../__pycache__/__init__.cpython-312.pyc | Bin 3362 -> 0 bytes .../faker/providers/person/or_IN/__init__.py | 1172 - .../__pycache__/__init__.cpython-312.pyc | Bin 27704 -> 0 bytes .../faker/providers/person/pl_PL/__init__.py | 5001 -- .../__pycache__/__init__.cpython-312.pyc | Bin 54420 -> 0 bytes .../faker/providers/person/pt_BR/__init__.py | 444 - .../__pycache__/__init__.cpython-312.pyc | Bin 4664 -> 0 bytes .../faker/providers/person/pt_PT/__init__.py | 343 - .../__pycache__/__init__.cpython-312.pyc | Bin 3876 -> 0 bytes .../faker/providers/person/ro_RO/__init__.py | 753 - .../__pycache__/__init__.cpython-312.pyc | Bin 7205 -> 0 bytes .../faker/providers/person/ru_RU/__init__.py | 1391 - .../__pycache__/__init__.cpython-312.pyc | Bin 29909 -> 0 bytes .../faker/providers/person/sk_SK/__init__.py | 2290 - .../__pycache__/__init__.cpython-312.pyc | Bin 28585 -> 0 bytes .../faker/providers/person/sl_SI/__init__.py | 529 - .../__pycache__/__init__.cpython-312.pyc | Bin 5075 -> 0 bytes .../faker/providers/person/sv_SE/__init__.py | 1562 - .../__pycache__/__init__.cpython-312.pyc | Bin 29000 -> 0 bytes .../faker/providers/person/sw/__init__.py | 409 - .../sw/__pycache__/__init__.cpython-312.pyc | Bin 3906 -> 0 bytes .../faker/providers/person/ta_IN/__init__.py | 1030 - .../__pycache__/__init__.cpython-312.pyc | Bin 28004 -> 0 bytes .../faker/providers/person/th_TH/__init__.py | 1020 - .../__pycache__/__init__.cpython-312.pyc | Bin 25097 -> 0 bytes .../faker/providers/person/tr_TR/__init__.py | 1643 - .../__pycache__/__init__.cpython-312.pyc | Bin 17428 -> 0 bytes .../faker/providers/person/tw_GH/__init__.py | 601 - .../__pycache__/__init__.cpython-312.pyc | Bin 5190 -> 0 bytes .../faker/providers/person/uk_UA/__init__.py | 1347 - .../__pycache__/__init__.cpython-312.pyc | Bin 30322 -> 0 bytes .../faker/providers/person/uz_UZ/__init__.py | 433 - .../__pycache__/__init__.cpython-312.pyc | Bin 4860 -> 0 bytes .../faker/providers/person/vi_VN/__init__.py | 110 - .../__pycache__/__init__.cpython-312.pyc | Bin 2258 -> 0 bytes .../faker/providers/person/yo_NG/__init__.py | 340 - .../__pycache__/__init__.cpython-312.pyc | Bin 3795 -> 0 bytes .../faker/providers/person/zh_CN/__init__.py | 697 - .../__pycache__/__init__.cpython-312.pyc | Bin 10151 -> 0 bytes .../faker/providers/person/zh_TW/__init__.py | 951 - .../__pycache__/__init__.cpython-312.pyc | Bin 16648 -> 0 bytes .../faker/providers/person/zu_ZA/__init__.py | 934 - .../__pycache__/__init__.cpython-312.pyc | Bin 9282 -> 0 bytes .../faker/providers/phone_number/__init__.py | 331 - .../__pycache__/__init__.cpython-312.pyc | Bin 3461 -> 0 bytes .../providers/phone_number/am_ET/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 527 -> 0 bytes .../providers/phone_number/ar_AE/__init__.py | 94 - .../__pycache__/__init__.cpython-312.pyc | Bin 3562 -> 0 bytes .../providers/phone_number/ar_DZ/__init__.py | 60 - .../__pycache__/__init__.cpython-312.pyc | Bin 2215 -> 0 bytes .../providers/phone_number/ar_JO/__init__.py | 65 - .../__pycache__/__init__.cpython-312.pyc | Bin 2679 -> 0 bytes .../providers/phone_number/ar_PS/__init__.py | 129 - .../__pycache__/__init__.cpython-312.pyc | Bin 4147 -> 0 bytes .../providers/phone_number/az_AZ/__init__.py | 57 - .../__pycache__/__init__.cpython-312.pyc | Bin 2661 -> 0 bytes .../providers/phone_number/bg_BG/__init__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 643 -> 0 bytes .../providers/phone_number/bn_BD/__init__.py | 334 - .../__pycache__/__init__.cpython-312.pyc | Bin 5728 -> 0 bytes .../providers/phone_number/bs_BA/__init__.py | 39 - .../__pycache__/__init__.cpython-312.pyc | Bin 912 -> 0 bytes .../providers/phone_number/cs_CZ/__init__.py | 54 - .../__pycache__/__init__.cpython-312.pyc | Bin 1063 -> 0 bytes .../providers/phone_number/da_DK/__init__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 551 -> 0 bytes .../providers/phone_number/de_AT/__init__.py | 120 - .../__pycache__/__init__.cpython-312.pyc | Bin 2640 -> 0 bytes .../providers/phone_number/de_CH/__init__.py | 81 - .../__pycache__/__init__.cpython-312.pyc | Bin 2163 -> 0 bytes .../providers/phone_number/de_DE/__init__.py | 18 - .../__pycache__/__init__.cpython-312.pyc | Bin 648 -> 0 bytes .../providers/phone_number/de_LI/__init__.py | 6 - .../__pycache__/__init__.cpython-312.pyc | Bin 496 -> 0 bytes .../providers/phone_number/de_LU/__init__.py | 37 - .../__pycache__/__init__.cpython-312.pyc | Bin 1145 -> 0 bytes .../providers/phone_number/el_GR/__init__.py | 23 - .../__pycache__/__init__.cpython-312.pyc | Bin 716 -> 0 bytes .../providers/phone_number/en_AU/__init__.py | 41 - .../__pycache__/__init__.cpython-312.pyc | Bin 1574 -> 0 bytes .../providers/phone_number/en_CA/__init__.py | 15 - .../__pycache__/__init__.cpython-312.pyc | Bin 622 -> 0 bytes .../providers/phone_number/en_GB/__init__.py | 267 - .../__pycache__/__init__.cpython-312.pyc | Bin 4796 -> 0 bytes .../providers/phone_number/en_IN/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 511 -> 0 bytes .../providers/phone_number/en_NZ/__init__.py | 46 - .../__pycache__/__init__.cpython-312.pyc | Bin 1533 -> 0 bytes .../providers/phone_number/en_PH/__init__.py | 252 - .../__pycache__/__init__.cpython-312.pyc | Bin 10431 -> 0 bytes .../providers/phone_number/en_US/__init__.py | 50 - .../__pycache__/__init__.cpython-312.pyc | Bin 1342 -> 0 bytes .../providers/phone_number/es_AR/__init__.py | 46 - .../__pycache__/__init__.cpython-312.pyc | Bin 935 -> 0 bytes .../providers/phone_number/es_CL/__init__.py | 65 - .../__pycache__/__init__.cpython-312.pyc | Bin 2251 -> 0 bytes .../providers/phone_number/es_CO/__init__.py | 42 - .../__pycache__/__init__.cpython-312.pyc | Bin 1050 -> 0 bytes .../providers/phone_number/es_ES/__init__.py | 128 - .../__pycache__/__init__.cpython-312.pyc | Bin 1627 -> 0 bytes .../providers/phone_number/es_MX/__init__.py | 30 - .../__pycache__/__init__.cpython-312.pyc | Bin 828 -> 0 bytes .../providers/phone_number/fa_IR/__init__.py | 101 - .../__pycache__/__init__.cpython-312.pyc | Bin 1927 -> 0 bytes .../providers/phone_number/fi_FI/__init__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 563 -> 0 bytes .../providers/phone_number/fil_PH/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 537 -> 0 bytes .../providers/phone_number/fr_CH/__init__.py | 37 - .../__pycache__/__init__.cpython-312.pyc | Bin 973 -> 0 bytes .../providers/phone_number/fr_DZ/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 450 -> 0 bytes .../providers/phone_number/fr_FR/__init__.py | 284 - .../__pycache__/__init__.cpython-312.pyc | Bin 3007 -> 0 bytes .../providers/phone_number/he_IL/__init__.py | 22 - .../__pycache__/__init__.cpython-312.pyc | Bin 671 -> 0 bytes .../providers/phone_number/hi_IN/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 545 -> 0 bytes .../providers/phone_number/hr_HR/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 866 -> 0 bytes .../providers/phone_number/hu_HU/__init__.py | 13 - .../__pycache__/__init__.cpython-312.pyc | Bin 577 -> 0 bytes .../providers/phone_number/hy_AM/__init__.py | 19 - .../__pycache__/__init__.cpython-312.pyc | Bin 611 -> 0 bytes .../providers/phone_number/id_ID/__init__.py | 25 - .../__pycache__/__init__.cpython-312.pyc | Bin 795 -> 0 bytes .../providers/phone_number/it_CH/__init__.py | 37 - .../__pycache__/__init__.cpython-312.pyc | Bin 973 -> 0 bytes .../providers/phone_number/it_IT/__init__.py | 270 - .../__pycache__/__init__.cpython-312.pyc | Bin 2699 -> 0 bytes .../providers/phone_number/ja_JP/__init__.py | 10 - .../__pycache__/__init__.cpython-312.pyc | Bin 530 -> 0 bytes .../providers/phone_number/ka_GE/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 627 -> 0 bytes .../providers/phone_number/ko_KR/__init__.py | 30 - .../__pycache__/__init__.cpython-312.pyc | Bin 809 -> 0 bytes .../providers/phone_number/lt_LT/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 517 -> 0 bytes .../providers/phone_number/lv_LV/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 517 -> 0 bytes .../providers/phone_number/ne_NP/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 542 -> 0 bytes .../providers/phone_number/nl_BE/__init__.py | 24 - .../__pycache__/__init__.cpython-312.pyc | Bin 744 -> 0 bytes .../providers/phone_number/nl_NL/__init__.py | 22 - .../__pycache__/__init__.cpython-312.pyc | Bin 715 -> 0 bytes .../providers/phone_number/no_NO/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 578 -> 0 bytes .../providers/phone_number/pl_PL/__init__.py | 36 - .../__pycache__/__init__.cpython-312.pyc | Bin 895 -> 0 bytes .../providers/phone_number/pt_BR/__init__.py | 140 - .../__pycache__/__init__.cpython-312.pyc | Bin 3136 -> 0 bytes .../providers/phone_number/pt_PT/__init__.py | 41 - .../__pycache__/__init__.cpython-312.pyc | Bin 896 -> 0 bytes .../providers/phone_number/ro_RO/__init__.py | 105 - .../__pycache__/__init__.cpython-312.pyc | Bin 1860 -> 0 bytes .../providers/phone_number/ru_RU/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 642 -> 0 bytes .../providers/phone_number/sk_SK/__init__.py | 29 - .../__pycache__/__init__.cpython-312.pyc | Bin 839 -> 0 bytes .../providers/phone_number/sl_SI/__init__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 614 -> 0 bytes .../providers/phone_number/sv_SE/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 630 -> 0 bytes .../providers/phone_number/ta_IN/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 545 -> 0 bytes .../providers/phone_number/th_TH/__init__.py | 72 - .../__pycache__/__init__.cpython-312.pyc | Bin 1368 -> 0 bytes .../providers/phone_number/tl_PH/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 536 -> 0 bytes .../providers/phone_number/tr_TR/__init__.py | 15 - .../__pycache__/__init__.cpython-312.pyc | Bin 622 -> 0 bytes .../providers/phone_number/tw_GH/__init__.py | 26 - .../__pycache__/__init__.cpython-312.pyc | Bin 741 -> 0 bytes .../providers/phone_number/uk_UA/__init__.py | 69 - .../__pycache__/__init__.cpython-312.pyc | Bin 1204 -> 0 bytes .../providers/phone_number/uz_UZ/__init__.py | 15 - .../__pycache__/__init__.cpython-312.pyc | Bin 642 -> 0 bytes .../providers/phone_number/vi_VN/__init__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 755 -> 0 bytes .../providers/phone_number/zh_CN/__init__.py | 39 - .../__pycache__/__init__.cpython-312.pyc | Bin 1046 -> 0 bytes .../providers/phone_number/zh_TW/__init__.py | 15 - .../__pycache__/__init__.cpython-312.pyc | Bin 562 -> 0 bytes .../faker/providers/profile/__init__.py | 60 - .../__pycache__/__init__.cpython-312.pyc | Bin 3636 -> 0 bytes .../faker/providers/profile/en_US/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 442 -> 0 bytes .../faker/providers/python/__init__.py | 583 - .../__pycache__/__init__.cpython-312.pyc | Bin 22837 -> 0 bytes .../faker/providers/python/en_US/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 440 -> 0 bytes .../faker/providers/sbn/__init__.py | 53 - .../sbn/__pycache__/__init__.cpython-312.pyc | Bin 2793 -> 0 bytes .../sbn/__pycache__/rules.cpython-312.pyc | Bin 1153 -> 0 bytes .../sbn/__pycache__/sbn.cpython-312.pyc | Bin 2940 -> 0 bytes .../faker/providers/sbn/en_US/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 434 -> 0 bytes .../faker/providers/sbn/rules.py | 24 - .../site-packages/faker/providers/sbn/sbn.py | 50 - .../faker/providers/ssn/__init__.py | 10 - .../ssn/__pycache__/__init__.cpython-312.pyc | Bin 841 -> 0 bytes .../faker/providers/ssn/ar_DZ/__init__.py | 43 - .../__pycache__/__init__.cpython-312.pyc | Bin 2710 -> 0 bytes .../faker/providers/ssn/az_AZ/__init__.py | 39 - .../__pycache__/__init__.cpython-312.pyc | Bin 952 -> 0 bytes .../faker/providers/ssn/bg_BG/__init__.py | 20 - .../__pycache__/__init__.cpython-312.pyc | Bin 967 -> 0 bytes .../faker/providers/ssn/bn_BD/__init__.py | 15 - .../__pycache__/__init__.cpython-312.pyc | Bin 675 -> 0 bytes .../faker/providers/ssn/cs_CZ/__init__.py | 42 - .../__pycache__/__init__.cpython-312.pyc | Bin 2464 -> 0 bytes .../faker/providers/ssn/de_AT/__init__.py | 48 - .../__pycache__/__init__.cpython-312.pyc | Bin 2549 -> 0 bytes .../faker/providers/ssn/de_CH/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 440 -> 0 bytes .../faker/providers/ssn/de_DE/__init__.py | 100 - .../__pycache__/__init__.cpython-312.pyc | Bin 4608 -> 0 bytes .../faker/providers/ssn/dk_DK/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 888 -> 0 bytes .../faker/providers/ssn/el_CY/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 892 -> 0 bytes .../faker/providers/ssn/el_GR/__init__.py | 84 - .../__pycache__/__init__.cpython-312.pyc | Bin 3580 -> 0 bytes .../faker/providers/ssn/en_CA/__init__.py | 80 - .../__pycache__/__init__.cpython-312.pyc | Bin 2446 -> 0 bytes .../faker/providers/ssn/en_GB/__init__.py | 39 - .../__pycache__/__init__.cpython-312.pyc | Bin 1484 -> 0 bytes .../faker/providers/ssn/en_IE/__init__.py | 21 - .../__pycache__/__init__.cpython-312.pyc | Bin 969 -> 0 bytes .../faker/providers/ssn/en_IN/__init__.py | 26 - .../__pycache__/__init__.cpython-312.pyc | Bin 1314 -> 0 bytes .../faker/providers/ssn/en_PH/__init__.py | 53 - .../__pycache__/__init__.cpython-312.pyc | Bin 3842 -> 0 bytes .../faker/providers/ssn/en_US/__init__.py | 235 - .../__pycache__/__init__.cpython-312.pyc | Bin 5906 -> 0 bytes .../faker/providers/ssn/es_CA/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 521 -> 0 bytes .../faker/providers/ssn/es_CL/__init__.py | 67 - .../__pycache__/__init__.cpython-312.pyc | Bin 2978 -> 0 bytes .../faker/providers/ssn/es_CO/__init__.py | 72 - .../__pycache__/__init__.cpython-312.pyc | Bin 3396 -> 0 bytes .../faker/providers/ssn/es_ES/__init__.py | 123 - .../__pycache__/__init__.cpython-312.pyc | Bin 5724 -> 0 bytes .../faker/providers/ssn/es_MX/__init__.py | 255 - .../__pycache__/__init__.cpython-312.pyc | Bin 9216 -> 0 bytes .../faker/providers/ssn/et_EE/__init__.py | 69 - .../__pycache__/__init__.cpython-312.pyc | Bin 4240 -> 0 bytes .../faker/providers/ssn/fi_FI/__init__.py | 67 - .../__pycache__/__init__.cpython-312.pyc | Bin 3947 -> 0 bytes .../faker/providers/ssn/fil_PH/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 510 -> 0 bytes .../faker/providers/ssn/fr_CH/__init__.py | 46 - .../__pycache__/__init__.cpython-312.pyc | Bin 2621 -> 0 bytes .../faker/providers/ssn/fr_DZ/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 443 -> 0 bytes .../faker/providers/ssn/fr_FR/__init__.py | 159 - .../__pycache__/__init__.cpython-312.pyc | Bin 5791 -> 0 bytes .../faker/providers/ssn/he_IL/__init__.py | 28 - .../__pycache__/__init__.cpython-312.pyc | Bin 1521 -> 0 bytes .../faker/providers/ssn/hr_HR/__init__.py | 49 - .../__pycache__/__init__.cpython-312.pyc | Bin 2363 -> 0 bytes .../faker/providers/ssn/hu_HU/__init__.py | 135 - .../__pycache__/__init__.cpython-312.pyc | Bin 4569 -> 0 bytes .../faker/providers/ssn/it_IT/__init__.py | 8165 -- .../__pycache__/__init__.cpython-312.pyc | Bin 56729 -> 0 bytes .../faker/providers/ssn/ko_KR/__init__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 553 -> 0 bytes .../faker/providers/ssn/lb_LU/__init__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 960 -> 0 bytes .../faker/providers/ssn/lt_LT/__init__.py | 20 - .../__pycache__/__init__.cpython-312.pyc | Bin 971 -> 0 bytes .../faker/providers/ssn/lv_LV/__init__.py | 62 - .../__pycache__/__init__.cpython-312.pyc | Bin 3655 -> 0 bytes .../faker/providers/ssn/mt_MT/__init__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 948 -> 0 bytes .../faker/providers/ssn/nl_BE/__init__.py | 74 - .../__pycache__/__init__.cpython-312.pyc | Bin 2879 -> 0 bytes .../faker/providers/ssn/nl_NL/__init__.py | 45 - .../__pycache__/__init__.cpython-312.pyc | Bin 2198 -> 0 bytes .../faker/providers/ssn/no_NO/__init__.py | 83 - .../__pycache__/__init__.cpython-312.pyc | Bin 4677 -> 0 bytes .../faker/providers/ssn/pl_PL/__init__.py | 65 - .../__pycache__/__init__.cpython-312.pyc | Bin 3363 -> 0 bytes .../faker/providers/ssn/pt_BR/__init__.py | 64 - .../__pycache__/__init__.cpython-312.pyc | Bin 3463 -> 0 bytes .../faker/providers/ssn/pt_PT/__init__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 955 -> 0 bytes .../faker/providers/ssn/ro_RO/__init__.py | 135 - .../__pycache__/__init__.cpython-312.pyc | Bin 3837 -> 0 bytes .../faker/providers/ssn/ru_RU/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 469 -> 0 bytes .../faker/providers/ssn/sk_SK/__init__.py | 42 - .../__pycache__/__init__.cpython-312.pyc | Bin 2358 -> 0 bytes .../faker/providers/ssn/sl_SI/__init__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 952 -> 0 bytes .../faker/providers/ssn/sv_SE/__init__.py | 86 - .../__pycache__/__init__.cpython-312.pyc | Bin 4946 -> 0 bytes .../faker/providers/ssn/th_TH/__init__.py | 59 - .../__pycache__/__init__.cpython-312.pyc | Bin 2328 -> 0 bytes .../faker/providers/ssn/tl_PH/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 509 -> 0 bytes .../faker/providers/ssn/tr_TR/__init__.py | 34 - .../__pycache__/__init__.cpython-312.pyc | Bin 1895 -> 0 bytes .../faker/providers/ssn/uk_UA/__init__.py | 59 - .../__pycache__/__init__.cpython-312.pyc | Bin 3497 -> 0 bytes .../faker/providers/ssn/zh_CN/__init__.py | 3562 - .../__pycache__/__init__.cpython-312.pyc | Bin 30788 -> 0 bytes .../faker/providers/ssn/zh_TW/__init__.py | 45 - .../__pycache__/__init__.cpython-312.pyc | Bin 2496 -> 0 bytes .../faker/providers/user_agent/__init__.py | 360 - .../__pycache__/__init__.cpython-312.pyc | Bin 15500 -> 0 bytes .../providers/user_agent/en_US/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 448 -> 0 bytes .../python3.12/site-packages/faker/proxy.py | 441 - .../python3.12/site-packages/faker/proxy.pyi | 4691 -- .../python3.12/site-packages/faker/py.typed | 0 .../site-packages/faker/sphinx/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 205 -> 0 bytes .../__pycache__/autodoc.cpython-312.pyc | Bin 1177 -> 0 bytes .../__pycache__/docstring.cpython-312.pyc | Bin 10781 -> 0 bytes .../__pycache__/documentor.cpython-312.pyc | Bin 8367 -> 0 bytes .../__pycache__/validator.cpython-312.pyc | Bin 8329 -> 0 bytes .../site-packages/faker/sphinx/autodoc.py | 18 - .../site-packages/faker/sphinx/docstring.py | 223 - .../site-packages/faker/sphinx/documentor.py | 169 - .../site-packages/faker/sphinx/validator.py | 174 - .../python3.12/site-packages/faker/typing.py | 43 - .../site-packages/faker/utils/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 204 -> 0 bytes .../__pycache__/checksums.cpython-312.pyc | Bin 1519 -> 0 bytes .../__pycache__/datasets.cpython-312.pyc | Bin 627 -> 0 bytes .../__pycache__/decorators.cpython-312.pyc | Bin 2627 -> 0 bytes .../__pycache__/distribution.cpython-312.pyc | Bin 3485 -> 0 bytes .../utils/__pycache__/loading.cpython-312.pyc | Bin 3204 -> 0 bytes .../utils/__pycache__/text.cpython-312.pyc | Bin 1939 -> 0 bytes .../site-packages/faker/utils/checksums.py | 23 - .../site-packages/faker/utils/datasets.py | 8 - .../site-packages/faker/utils/decorators.py | 38 - .../site-packages/faker/utils/distribution.py | 88 - .../site-packages/faker/utils/loading.py | 60 - .../site-packages/faker/utils/text.py | 28 - .../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 - .../h11/__pycache__/__init__.cpython-312.pyc | Bin 1087 -> 0 bytes .../h11/__pycache__/_abnf.cpython-312.pyc | Bin 1793 -> 0 bytes .../__pycache__/_connection.cpython-312.pyc | Bin 23143 -> 0 bytes .../h11/__pycache__/_events.cpython-312.pyc | Bin 13238 -> 0 bytes .../h11/__pycache__/_headers.cpython-312.pyc | Bin 8014 -> 0 bytes .../h11/__pycache__/_readers.cpython-312.pyc | Bin 9670 -> 0 bytes .../_receivebuffer.cpython-312.pyc | Bin 4716 -> 0 bytes .../h11/__pycache__/_state.cpython-312.pyc | Bin 8480 -> 0 bytes .../h11/__pycache__/_util.cpython-312.pyc | Bin 4731 -> 0 bytes .../h11/__pycache__/_version.cpython-312.pyc | Bin 225 -> 0 bytes .../h11/__pycache__/_writers.cpython-312.pyc | Bin 6307 -> 0 bytes .../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 - .../__pycache__/__init__.cpython-312.pyc | Bin 3183 -> 0 bytes .../httpcore/__pycache__/_api.cpython-312.pyc | Bin 3787 -> 0 bytes .../__pycache__/_exceptions.cpython-312.pyc | Bin 3202 -> 0 bytes .../__pycache__/_models.cpython-312.pyc | Bin 23133 -> 0 bytes .../httpcore/__pycache__/_ssl.cpython-312.pyc | Bin 622 -> 0 bytes .../_synchronization.cpython-312.pyc | Bin 14197 -> 0 bytes .../__pycache__/_trace.cpython-312.pyc | Bin 5614 -> 0 bytes .../__pycache__/_utils.cpython-312.pyc | Bin 1302 -> 0 bytes .../python3.12/site-packages/httpcore/_api.py | 94 - .../site-packages/httpcore/_async/__init__.py | 39 - .../__pycache__/__init__.cpython-312.pyc | Bin 1635 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 11812 -> 0 bytes .../connection_pool.cpython-312.pyc | Bin 19692 -> 0 bytes .../_async/__pycache__/http11.cpython-312.pyc | Bin 20254 -> 0 bytes .../_async/__pycache__/http2.cpython-312.pyc | Bin 31457 -> 0 bytes .../__pycache__/http_proxy.cpython-312.pyc | Bin 18012 -> 0 bytes .../__pycache__/interfaces.cpython-312.pyc | Bin 5766 -> 0 bytes .../__pycache__/socks_proxy.cpython-312.pyc | Bin 16909 -> 0 bytes .../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 .../__pycache__/__init__.cpython-312.pyc | Bin 211 -> 0 bytes .../__pycache__/anyio.cpython-312.pyc | Bin 8641 -> 0 bytes .../__pycache__/auto.cpython-312.pyc | Bin 2703 -> 0 bytes .../__pycache__/base.cpython-312.pyc | Bin 4905 -> 0 bytes .../__pycache__/mock.cpython-312.pyc | Bin 7169 -> 0 bytes .../__pycache__/sync.cpython-312.pyc | Bin 11442 -> 0 bytes .../__pycache__/trio.cpython-312.pyc | Bin 8978 -> 0 bytes .../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 - .../__pycache__/__init__.cpython-312.pyc | Bin 1589 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 10432 -> 0 bytes .../connection_pool.cpython-312.pyc | Bin 18771 -> 0 bytes .../_sync/__pycache__/http11.cpython-312.pyc | Bin 17798 -> 0 bytes .../_sync/__pycache__/http2.cpython-312.pyc | Bin 27462 -> 0 bytes .../__pycache__/http_proxy.cpython-312.pyc | Bin 17195 -> 0 bytes .../__pycache__/interfaces.cpython-312.pyc | Bin 5313 -> 0 bytes .../__pycache__/socks_proxy.cpython-312.pyc | Bin 15660 -> 0 bytes .../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 .../httpx-0.28.1.dist-info/INSTALLER | 1 - .../httpx-0.28.1.dist-info/METADATA | 203 - .../httpx-0.28.1.dist-info/RECORD | 54 - .../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 - .../__pycache__/__init__.cpython-312.pyc | Bin 2137 -> 0 bytes .../__pycache__/__version__.cpython-312.pyc | Bin 327 -> 0 bytes .../httpx/__pycache__/_api.cpython-312.pyc | Bin 10362 -> 0 bytes .../httpx/__pycache__/_auth.cpython-312.pyc | Bin 15614 -> 0 bytes .../httpx/__pycache__/_client.cpython-312.pyc | Bin 64199 -> 0 bytes .../httpx/__pycache__/_config.cpython-312.pyc | Bin 10995 -> 0 bytes .../__pycache__/_content.cpython-312.pyc | Bin 10420 -> 0 bytes .../__pycache__/_decoders.cpython-312.pyc | Bin 16772 -> 0 bytes .../__pycache__/_exceptions.cpython-312.pyc | Bin 12097 -> 0 bytes .../httpx/__pycache__/_main.cpython-312.pyc | Bin 20635 -> 0 bytes .../httpx/__pycache__/_models.cpython-312.pyc | Bin 58609 -> 0 bytes .../__pycache__/_multipart.cpython-312.pyc | Bin 13620 -> 0 bytes .../__pycache__/_status_codes.cpython-312.pyc | Bin 7207 -> 0 bytes .../httpx/__pycache__/_types.cpython-312.pyc | Bin 3839 -> 0 bytes .../__pycache__/_urlparse.cpython-312.pyc | Bin 17500 -> 0 bytes .../httpx/__pycache__/_urls.cpython-312.pyc | Bin 27943 -> 0 bytes .../httpx/__pycache__/_utils.cpython-312.pyc | Bin 9376 -> 0 bytes .../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 - .../__pycache__/__init__.cpython-312.pyc | Bin 456 -> 0 bytes .../__pycache__/asgi.cpython-312.pyc | Bin 7593 -> 0 bytes .../__pycache__/base.cpython-312.pyc | Bin 3886 -> 0 bytes .../__pycache__/default.cpython-312.pyc | Bin 17139 -> 0 bytes .../__pycache__/mock.cpython-312.pyc | Bin 1954 -> 0 bytes .../__pycache__/wsgi.cpython-312.pyc | Bin 6828 -> 0 bytes .../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.15.dist-info/INSTALLER | 1 - .../idna-3.15.dist-info/METADATA | 194 - .../site-packages/idna-3.15.dist-info/RECORD | 22 - .../site-packages/idna-3.15.dist-info/WHEEL | 4 - .../idna-3.15.dist-info/licenses/LICENSE.md | 31 - .../python3.12/site-packages/idna/__init__.py | 45 - .../idna/__pycache__/__init__.cpython-312.pyc | Bin 895 -> 0 bytes .../idna/__pycache__/codec.cpython-312.pyc | Bin 6364 -> 0 bytes .../idna/__pycache__/compat.cpython-312.pyc | Bin 1917 -> 0 bytes .../idna/__pycache__/core.cpython-312.pyc | Bin 26230 -> 0 bytes .../idna/__pycache__/idnadata.cpython-312.pyc | Bin 102380 -> 0 bytes .../__pycache__/intranges.cpython-312.pyc | Bin 2646 -> 0 bytes .../__pycache__/package_data.cpython-312.pyc | Bin 226 -> 0 bytes .../__pycache__/uts46data.cpython-312.pyc | Bin 144085 -> 0 bytes .../python3.12/site-packages/idna/codec.py | 159 - .../python3.12/site-packages/idna/compat.py | 41 - .../lib/python3.12/site-packages/idna/core.py | 620 - .../python3.12/site-packages/idna/idnadata.py | 4367 - .../site-packages/idna/intranges.py | 56 - .../site-packages/idna/package_data.py | 1 - .../python3.12/site-packages/idna/py.typed | 0 .../site-packages/idna/uts46data.py | 8383 -- .../jiter-0.14.0.dist-info/INSTALLER | 1 - .../jiter-0.14.0.dist-info/METADATA | 148 - .../jiter-0.14.0.dist-info/RECORD | 11 - .../jiter-0.14.0.dist-info/WHEEL | 5 - .../jiter-0.14.0.dist-info/licenses/LICENSE | 21 - .../sboms/jiter-python.cyclonedx.json | 2629 - .../site-packages/jiter/__init__.py | 5 - .../site-packages/jiter/__init__.pyi | 68 - .../__pycache__/__init__.cpython-312.pyc | Bin 358 -> 0 bytes .../jiter.cpython-312-x86_64-linux-gnu.so | Bin 826152 -> 0 bytes .../python3.12/site-packages/jiter/py.typed | 0 .../openai-2.37.0.dist-info/INSTALLER | 1 - .../openai-2.37.0.dist-info/METADATA | 1005 - .../openai-2.37.0.dist-info/RECORD | 2434 - .../openai-2.37.0.dist-info/REQUESTED | 0 .../openai-2.37.0.dist-info/WHEEL | 4 - .../openai-2.37.0.dist-info/licenses/LICENSE | 201 - .../site-packages/openai/__init__.py | 421 - .../__pycache__/__init__.cpython-312.pyc | Bin 13068 -> 0 bytes .../__pycache__/_base_client.cpython-312.pyc | Bin 78977 -> 0 bytes .../__pycache__/_client.cpython-312.pyc | Bin 70079 -> 0 bytes .../__pycache__/_compat.cpython-312.pyc | Bin 8631 -> 0 bytes .../__pycache__/_constants.cpython-312.pyc | Bin 729 -> 0 bytes .../_event_handler.cpython-312.pyc | Bin 5134 -> 0 bytes .../__pycache__/_exceptions.cpython-312.pyc | Bin 9829 -> 0 bytes .../openai/__pycache__/_files.cpython-312.pyc | Bin 8271 -> 0 bytes .../_legacy_response.cpython-312.pyc | Bin 22855 -> 0 bytes .../__pycache__/_models.cpython-312.pyc | Bin 36478 -> 0 bytes .../_module_client.cpython-312.pyc | Bin 11378 -> 0 bytes .../openai/__pycache__/_qs.cpython-312.pyc | Bin 5891 -> 0 bytes .../__pycache__/_resource.cpython-312.pyc | Bin 2161 -> 0 bytes .../__pycache__/_response.cpython-312.pyc | Bin 37337 -> 0 bytes .../__pycache__/_send_queue.cpython-312.pyc | Bin 5620 -> 0 bytes .../__pycache__/_streaming.cpython-312.pyc | Bin 18030 -> 0 bytes .../openai/__pycache__/_types.cpython-312.pyc | Bin 8859 -> 0 bytes .../__pycache__/_version.cpython-312.pyc | Bin 256 -> 0 bytes .../__pycache__/pagination.cpython-312.pyc | Bin 8634 -> 0 bytes .../__pycache__/version.cpython-312.pyc | Bin 307 -> 0 bytes .../site-packages/openai/_base_client.py | 2214 - .../site-packages/openai/_client.py | 1721 - .../site-packages/openai/_compat.py | 238 - .../site-packages/openai/_constants.py | 14 - .../site-packages/openai/_event_handler.py | 85 - .../site-packages/openai/_exceptions.py | 207 - .../site-packages/openai/_extras/__init__.py | 3 - .../__pycache__/__init__.cpython-312.pyc | Bin 369 -> 0 bytes .../__pycache__/_common.cpython-312.pyc | Bin 864 -> 0 bytes .../__pycache__/numpy_proxy.cpython-312.pyc | Bin 1408 -> 0 bytes .../__pycache__/pandas_proxy.cpython-312.pyc | Bin 1196 -> 0 bytes .../sounddevice_proxy.cpython-312.pyc | Bin 1229 -> 0 bytes .../site-packages/openai/_extras/_common.py | 21 - .../openai/_extras/numpy_proxy.py | 37 - .../openai/_extras/pandas_proxy.py | 28 - .../openai/_extras/sounddevice_proxy.py | 28 - .../python3.12/site-packages/openai/_files.py | 173 - .../site-packages/openai/_legacy_response.py | 491 - .../site-packages/openai/_models.py | 1005 - .../site-packages/openai/_module_client.py | 189 - .../python3.12/site-packages/openai/_qs.py | 149 - .../site-packages/openai/_resource.py | 43 - .../site-packages/openai/_response.py | 851 - .../site-packages/openai/_send_queue.py | 90 - .../site-packages/openai/_streaming.py | 427 - .../python3.12/site-packages/openai/_types.py | 279 - .../site-packages/openai/_utils/__init__.py | 67 - .../__pycache__/__init__.cpython-312.pyc | Bin 2012 -> 0 bytes .../__pycache__/_compat.cpython-312.pyc | Bin 2178 -> 0 bytes .../_datetime_parse.cpython-312.pyc | Bin 5815 -> 0 bytes .../_utils/__pycache__/_json.cpython-312.pyc | Bin 1770 -> 0 bytes .../_utils/__pycache__/_logs.cpython-312.pyc | Bin 2610 -> 0 bytes .../_utils/__pycache__/_path.cpython-312.pyc | Bin 4742 -> 0 bytes .../_utils/__pycache__/_proxy.cpython-312.pyc | Bin 3365 -> 0 bytes .../__pycache__/_reflection.cpython-312.pyc | Bin 2265 -> 0 bytes .../_resources_proxy.cpython-312.pyc | Bin 1203 -> 0 bytes .../__pycache__/_streams.cpython-312.pyc | Bin 771 -> 0 bytes .../_utils/__pycache__/_sync.cpython-312.pyc | Bin 2395 -> 0 bytes .../__pycache__/_transform.cpython-312.pyc | Bin 15396 -> 0 bytes .../__pycache__/_typing.cpython-312.pyc | Bin 5584 -> 0 bytes .../_utils/__pycache__/_utils.cpython-312.pyc | Bin 17742 -> 0 bytes .../site-packages/openai/_utils/_compat.py | 45 - .../openai/_utils/_datetime_parse.py | 136 - .../site-packages/openai/_utils/_json.py | 35 - .../site-packages/openai/_utils/_logs.py | 42 - .../site-packages/openai/_utils/_path.py | 127 - .../site-packages/openai/_utils/_proxy.py | 65 - .../openai/_utils/_reflection.py | 45 - .../openai/_utils/_resources_proxy.py | 24 - .../site-packages/openai/_utils/_streams.py | 12 - .../site-packages/openai/_utils/_sync.py | 58 - .../site-packages/openai/_utils/_transform.py | 457 - .../site-packages/openai/_utils/_typing.py | 156 - .../site-packages/openai/_utils/_utils.py | 449 - .../site-packages/openai/_version.py | 4 - .../site-packages/openai/auth/__init__.py | 19 - .../auth/__pycache__/__init__.cpython-312.pyc | Bin 559 -> 0 bytes .../__pycache__/_workload.cpython-312.pyc | Bin 16560 -> 0 bytes .../site-packages/openai/auth/_workload.py | 308 - .../site-packages/openai/helpers/__init__.py | 4 - .../__pycache__/__init__.cpython-312.pyc | Bin 353 -> 0 bytes .../local_audio_player.cpython-312.pyc | Bin 8245 -> 0 bytes .../__pycache__/microphone.cpython-312.pyc | Bin 5499 -> 0 bytes .../openai/helpers/local_audio_player.py | 165 - .../openai/helpers/microphone.py | 100 - .../python3.12/site-packages/openai/lib/.keep | 4 - .../site-packages/openai/lib/__init__.py | 2 - .../lib/__pycache__/__init__.cpython-312.pyc | Bin 308 -> 0 bytes .../lib/__pycache__/_old_api.cpython-312.pyc | Bin 2678 -> 0 bytes .../lib/__pycache__/_pydantic.cpython-312.pyc | Bin 6559 -> 0 bytes .../lib/__pycache__/_realtime.cpython-312.pyc | Bin 3893 -> 0 bytes .../lib/__pycache__/_tools.cpython-312.pyc | Bin 2857 -> 0 bytes .../__pycache__/_validators.cpython-312.pyc | Bin 42066 -> 0 bytes .../lib/__pycache__/azure.cpython-312.pyc | Bin 27373 -> 0 bytes .../site-packages/openai/lib/_old_api.py | 72 - .../openai/lib/_parsing/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 524 -> 0 bytes .../__pycache__/_completions.cpython-312.pyc | Bin 10930 -> 0 bytes .../__pycache__/_responses.cpython-312.pyc | Bin 7130 -> 0 bytes .../openai/lib/_parsing/_completions.py | 288 - .../openai/lib/_parsing/_responses.py | 184 - .../site-packages/openai/lib/_pydantic.py | 155 - .../site-packages/openai/lib/_realtime.py | 92 - .../site-packages/openai/lib/_tools.py | 66 - .../site-packages/openai/lib/_validators.py | 809 - .../site-packages/openai/lib/azure.py | 735 - .../openai/lib/streaming/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 464 -> 0 bytes .../__pycache__/_assistants.cpython-312.pyc | Bin 46145 -> 0 bytes .../__pycache__/_deltas.cpython-312.pyc | Bin 2514 -> 0 bytes .../openai/lib/streaming/_assistants.py | 1038 - .../openai/lib/streaming/_deltas.py | 64 - .../openai/lib/streaming/chat/__init__.py | 27 - .../chat/__pycache__/__init__.cpython-312.pyc | Bin 1030 -> 0 bytes .../__pycache__/_completions.cpython-312.pyc | Bin 30933 -> 0 bytes .../chat/__pycache__/_events.cpython-312.pyc | Bin 4061 -> 0 bytes .../chat/__pycache__/_types.cpython-312.pyc | Bin 705 -> 0 bytes .../openai/lib/streaming/chat/_completions.py | 769 - .../openai/lib/streaming/chat/_events.py | 123 - .../openai/lib/streaming/chat/_types.py | 20 - .../lib/streaming/responses/__init__.py | 13 - .../__pycache__/__init__.cpython-312.pyc | Bin 590 -> 0 bytes .../__pycache__/_events.cpython-312.pyc | Bin 5014 -> 0 bytes .../__pycache__/_responses.cpython-312.pyc | Bin 17706 -> 0 bytes .../__pycache__/_types.cpython-312.pyc | Bin 484 -> 0 bytes .../openai/lib/streaming/responses/_events.py | 148 - .../lib/streaming/responses/_responses.py | 372 - .../openai/lib/streaming/responses/_types.py | 10 - .../site-packages/openai/pagination.py | 250 - .../python3.12/site-packages/openai/py.typed | 0 .../openai/resources/__init__.py | 257 - .../__pycache__/__init__.cpython-312.pyc | Bin 4840 -> 0 bytes .../__pycache__/batches.cpython-312.pyc | Bin 15311 -> 0 bytes .../__pycache__/completions.cpython-312.pyc | Bin 28224 -> 0 bytes .../__pycache__/embeddings.cpython-312.pyc | Bin 10435 -> 0 bytes .../__pycache__/files.cpython-312.pyc | Bin 22605 -> 0 bytes .../__pycache__/images.cpython-312.pyc | Bin 49108 -> 0 bytes .../__pycache__/models.cpython-312.pyc | Bin 9638 -> 0 bytes .../__pycache__/moderations.cpython-312.pyc | Bin 7379 -> 0 bytes .../__pycache__/videos.cpython-312.pyc | Bin 34737 -> 0 bytes .../openai/resources/admin/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 772 -> 0 bytes .../admin/__pycache__/admin.cpython-312.pyc | Bin 5094 -> 0 bytes .../openai/resources/admin/admin.py | 102 - .../resources/admin/organization/__init__.py | 145 - .../__pycache__/__init__.cpython-312.pyc | Bin 2876 -> 0 bytes .../admin_api_keys.cpython-312.pyc | Bin 13209 -> 0 bytes .../__pycache__/audit_logs.cpython-312.pyc | Bin 10333 -> 0 bytes .../__pycache__/certificates.cpython-312.pyc | Bin 22044 -> 0 bytes .../__pycache__/invites.cpython-312.pyc | Bin 13711 -> 0 bytes .../__pycache__/organization.cpython-312.pyc | Bin 18902 -> 0 bytes .../__pycache__/roles.cpython-312.pyc | Bin 14023 -> 0 bytes .../__pycache__/usage.cpython-312.pyc | Bin 39197 -> 0 bytes .../admin/organization/admin_api_keys.py | 469 - .../admin/organization/audit_logs.py | 387 - .../admin/organization/certificates.py | 818 - .../admin/organization/groups/__init__.py | 47 - .../__pycache__/__init__.cpython-312.pyc | Bin 990 -> 0 bytes .../groups/__pycache__/groups.cpython-312.pyc | Bin 16835 -> 0 bytes .../groups/__pycache__/roles.cpython-312.pyc | Bin 12076 -> 0 bytes .../groups/__pycache__/users.cpython-312.pyc | Bin 12047 -> 0 bytes .../admin/organization/groups/groups.py | 544 - .../admin/organization/groups/roles.py | 398 - .../admin/organization/groups/users.py | 400 - .../resources/admin/organization/invites.py | 500 - .../admin/organization/organization.py | 364 - .../admin/organization/projects/__init__.py | 117 - .../__pycache__/__init__.cpython-312.pyc | Bin 2384 -> 0 bytes .../__pycache__/api_keys.cpython-312.pyc | Bin 11826 -> 0 bytes .../__pycache__/certificates.cpython-312.pyc | Bin 13327 -> 0 bytes .../__pycache__/projects.cpython-312.pyc | Bin 28553 -> 0 bytes .../__pycache__/rate_limits.cpython-312.pyc | Bin 11781 -> 0 bytes .../__pycache__/roles.cpython-312.pyc | Bin 14975 -> 0 bytes .../service_accounts.cpython-312.pyc | Bin 14761 -> 0 bytes .../admin/organization/projects/api_keys.py | 413 - .../organization/projects/certificates.py | 428 - .../organization/projects/groups/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 759 -> 0 bytes .../groups/__pycache__/groups.cpython-312.pyc | Bin 13775 -> 0 bytes .../groups/__pycache__/roles.cpython-312.pyc | Bin 12705 -> 0 bytes .../organization/projects/groups/groups.py | 451 - .../organization/projects/groups/roles.py | 426 - .../admin/organization/projects/projects.py | 858 - .../organization/projects/rate_limits.py | 379 - .../admin/organization/projects/roles.py | 552 - .../organization/projects/service_accounts.py | 512 - .../organization/projects/users/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 751 -> 0 bytes .../users/__pycache__/roles.cpython-312.pyc | Bin 12691 -> 0 bytes .../users/__pycache__/users.cpython-312.pyc | Bin 18605 -> 0 bytes .../organization/projects/users/roles.py | 426 - .../organization/projects/users/users.py | 667 - .../resources/admin/organization/roles.py | 526 - .../resources/admin/organization/usage.py | 1724 - .../admin/organization/users/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 742 -> 0 bytes .../users/__pycache__/roles.cpython-312.pyc | Bin 12062 -> 0 bytes .../users/__pycache__/users.cpython-312.pyc | Bin 15590 -> 0 bytes .../admin/organization/users/roles.py | 398 - .../admin/organization/users/users.py | 543 - .../openai/resources/audio/__init__.py | 61 - .../__pycache__/__init__.cpython-312.pyc | Bin 1322 -> 0 bytes .../audio/__pycache__/audio.cpython-312.pyc | Bin 8571 -> 0 bytes .../audio/__pycache__/speech.cpython-312.pyc | Bin 8740 -> 0 bytes .../transcriptions.cpython-312.pyc | Bin 32223 -> 0 bytes .../__pycache__/translations.cpython-312.pyc | Bin 12565 -> 0 bytes .../openai/resources/audio/audio.py | 184 - .../openai/resources/audio/speech.py | 271 - .../openai/resources/audio/transcriptions.py | 1020 - .../openai/resources/audio/translations.py | 382 - .../site-packages/openai/resources/batches.py | 576 - .../openai/resources/beta/__init__.py | 61 - .../beta/__pycache__/__init__.cpython-312.pyc | Bin 1258 -> 0 bytes .../__pycache__/assistants.cpython-312.pyc | Bin 29592 -> 0 bytes .../beta/__pycache__/beta.cpython-312.pyc | Bin 9432 -> 0 bytes .../openai/resources/beta/assistants.py | 1142 - .../openai/resources/beta/beta.py | 199 - .../openai/resources/beta/chatkit/__init__.py | 47 - .../__pycache__/__init__.cpython-312.pyc | Bin 1019 -> 0 bytes .../__pycache__/chatkit.cpython-312.pyc | Bin 6756 -> 0 bytes .../__pycache__/sessions.cpython-312.pyc | Bin 9968 -> 0 bytes .../__pycache__/threads.cpython-312.pyc | Bin 15003 -> 0 bytes .../openai/resources/beta/chatkit/chatkit.py | 134 - .../openai/resources/beta/chatkit/sessions.py | 321 - .../openai/resources/beta/chatkit/threads.py | 541 - .../resources/beta/realtime/__init__.py | 47 - .../__pycache__/__init__.cpython-312.pyc | Bin 1126 -> 0 bytes .../__pycache__/realtime.cpython-312.pyc | Bin 45036 -> 0 bytes .../__pycache__/sessions.cpython-312.pyc | Bin 14524 -> 0 bytes .../transcription_sessions.cpython-312.pyc | Bin 10199 -> 0 bytes .../resources/beta/realtime/realtime.py | 1094 - .../resources/beta/realtime/sessions.py | 424 - .../beta/realtime/transcription_sessions.py | 282 - .../openai/resources/beta/threads/__init__.py | 47 - .../__pycache__/__init__.cpython-312.pyc | Bin 998 -> 0 bytes .../__pycache__/messages.cpython-312.pyc | Bin 20647 -> 0 bytes .../__pycache__/threads.cpython-312.pyc | Bin 52397 -> 0 bytes .../openai/resources/beta/threads/messages.py | 756 - .../resources/beta/threads/runs/__init__.py | 33 - .../runs/__pycache__/__init__.cpython-312.pyc | Bin 728 -> 0 bytes .../runs/__pycache__/runs.cpython-312.pyc | Bin 81608 -> 0 bytes .../runs/__pycache__/steps.cpython-312.pyc | Bin 12824 -> 0 bytes .../resources/beta/threads/runs/runs.py | 3197 - .../resources/beta/threads/runs/steps.py | 417 - .../openai/resources/beta/threads/threads.py | 2001 - .../openai/resources/chat/__init__.py | 33 - .../chat/__pycache__/__init__.cpython-312.pyc | Bin 757 -> 0 bytes .../chat/__pycache__/chat.cpython-312.pyc | Bin 5169 -> 0 bytes .../openai/resources/chat/chat.py | 120 - .../resources/chat/completions/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 797 -> 0 bytes .../__pycache__/completions.cpython-312.pyc | Bin 82271 -> 0 bytes .../__pycache__/messages.cpython-312.pyc | Bin 7607 -> 0 bytes .../resources/chat/completions/completions.py | 3237 - .../resources/chat/completions/messages.py | 222 - .../openai/resources/completions.py | 1194 - .../openai/resources/containers/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 763 -> 0 bytes .../__pycache__/containers.cpython-312.pyc | Bin 16431 -> 0 bytes .../openai/resources/containers/containers.py | 569 - .../resources/containers/files/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 748 -> 0 bytes .../files/__pycache__/content.cpython-312.pyc | Bin 6598 -> 0 bytes .../files/__pycache__/files.cpython-312.pyc | Bin 17055 -> 0 bytes .../resources/containers/files/content.py | 186 - .../resources/containers/files/files.py | 576 - .../resources/conversations/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 787 -> 0 bytes .../__pycache__/conversations.cpython-312.pyc | Bin 15650 -> 0 bytes .../__pycache__/items.cpython-312.pyc | Bin 17470 -> 0 bytes .../openai/resources/conversations/api.md | 42 - .../resources/conversations/conversations.py | 528 - .../openai/resources/conversations/items.py | 583 - .../openai/resources/embeddings.py | 308 - .../openai/resources/evals/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 716 -> 0 bytes .../evals/__pycache__/evals.cpython-312.pyc | Bin 19595 -> 0 bytes .../openai/resources/evals/evals.py | 706 - .../openai/resources/evals/runs/__init__.py | 33 - .../runs/__pycache__/__init__.cpython-312.pyc | Bin 764 -> 0 bytes .../__pycache__/output_items.cpython-312.pyc | Bin 10539 -> 0 bytes .../runs/__pycache__/runs.cpython-312.pyc | Bin 18981 -> 0 bytes .../resources/evals/runs/output_items.py | 339 - .../openai/resources/evals/runs/runs.py | 678 - .../site-packages/openai/resources/files.py | 847 - .../openai/resources/fine_tuning/__init__.py | 61 - .../__pycache__/__init__.cpython-312.pyc | Bin 1280 -> 0 bytes .../__pycache__/fine_tuning.cpython-312.pyc | Bin 8674 -> 0 bytes .../resources/fine_tuning/alpha/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 749 -> 0 bytes .../alpha/__pycache__/alpha.cpython-312.pyc | Bin 5099 -> 0 bytes .../alpha/__pycache__/graders.cpython-312.pyc | Bin 9248 -> 0 bytes .../resources/fine_tuning/alpha/alpha.py | 108 - .../resources/fine_tuning/alpha/graders.py | 302 - .../fine_tuning/checkpoints/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 825 -> 0 bytes .../__pycache__/checkpoints.cpython-312.pyc | Bin 5309 -> 0 bytes .../__pycache__/permissions.cpython-312.pyc | Bin 15831 -> 0 bytes .../fine_tuning/checkpoints/checkpoints.py | 108 - .../fine_tuning/checkpoints/permissions.py | 622 - .../resources/fine_tuning/fine_tuning.py | 172 - .../resources/fine_tuning/jobs/__init__.py | 33 - .../jobs/__pycache__/__init__.cpython-312.pyc | Bin 769 -> 0 bytes .../__pycache__/checkpoints.cpython-312.pyc | Bin 7247 -> 0 bytes .../jobs/__pycache__/jobs.cpython-312.pyc | Bin 25219 -> 0 bytes .../resources/fine_tuning/jobs/checkpoints.py | 205 - .../openai/resources/fine_tuning/jobs/jobs.py | 972 - .../site-packages/openai/resources/images.py | 2095 - .../site-packages/openai/resources/models.py | 335 - .../openai/resources/moderations.py | 213 - .../openai/resources/realtime/__init__.py | 47 - .../__pycache__/__init__.cpython-312.pyc | Bin 1044 -> 0 bytes .../__pycache__/calls.cpython-312.pyc | Bin 23540 -> 0 bytes .../client_secrets.cpython-312.pyc | Bin 7830 -> 0 bytes .../__pycache__/realtime.cpython-312.pyc | Bin 70429 -> 0 bytes .../openai/resources/realtime/api.md | 154 - .../openai/resources/realtime/calls.py | 845 - .../resources/realtime/client_secrets.py | 225 - .../openai/resources/realtime/realtime.py | 1675 - .../openai/resources/responses/__init__.py | 47 - .../__pycache__/__init__.cpython-312.pyc | Bin 1074 -> 0 bytes .../__pycache__/input_items.cpython-312.pyc | Bin 7976 -> 0 bytes .../__pycache__/input_tokens.cpython-312.pyc | Bin 10681 -> 0 bytes .../__pycache__/responses.cpython-312.pyc | Bin 133368 -> 0 bytes .../openai/resources/responses/api.md | 187 - .../openai/resources/responses/input_items.py | 228 - .../resources/responses/input_tokens.py | 319 - .../openai/resources/responses/responses.py | 4738 -- .../openai/resources/skills/__init__.py | 47 - .../__pycache__/__init__.cpython-312.pyc | Bin 1006 -> 0 bytes .../__pycache__/content.cpython-312.pyc | Bin 6316 -> 0 bytes .../skills/__pycache__/skills.cpython-312.pyc | Bin 19377 -> 0 bytes .../openai/resources/skills/content.py | 176 - .../openai/resources/skills/skills.py | 653 - .../resources/skills/versions/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 768 -> 0 bytes .../__pycache__/content.cpython-312.pyc | Bin 6627 -> 0 bytes .../__pycache__/versions.cpython-312.pyc | Bin 16661 -> 0 bytes .../resources/skills/versions/content.py | 186 - .../resources/skills/versions/versions.py | 573 - .../openai/resources/uploads/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 739 -> 0 bytes .../uploads/__pycache__/parts.cpython-312.pyc | Bin 7795 -> 0 bytes .../__pycache__/uploads.cpython-312.pyc | Bin 22570 -> 0 bytes .../openai/resources/uploads/parts.py | 218 - .../openai/resources/uploads/uploads.py | 765 - .../resources/vector_stores/__init__.py | 47 - .../__pycache__/__init__.cpython-312.pyc | Bin 1064 -> 0 bytes .../__pycache__/file_batches.cpython-312.pyc | Bin 27361 -> 0 bytes .../__pycache__/files.cpython-312.pyc | Bin 29118 -> 0 bytes .../__pycache__/vector_stores.cpython-312.pyc | Bin 26327 -> 0 bytes .../resources/vector_stores/file_batches.py | 899 - .../openai/resources/vector_stores/files.py | 1031 - .../resources/vector_stores/vector_stores.py | 917 - .../site-packages/openai/resources/videos.py | 1352 - .../openai/resources/webhooks/__init__.py | 14 - .../__pycache__/__init__.cpython-312.pyc | Bin 641 -> 0 bytes .../__pycache__/webhooks.cpython-312.pyc | Bin 7611 -> 0 bytes .../openai/resources/webhooks/api.md | 24 - .../openai/resources/webhooks/webhooks.py | 210 - .../site-packages/openai/types/__init__.py | 136 - .../__pycache__/__init__.cpython-312.pyc | Bin 7429 -> 0 bytes .../__pycache__/audio_model.cpython-312.pyc | Bin 503 -> 0 bytes .../audio_response_format.cpython-312.pyc | Bin 453 -> 0 bytes ...le_chunking_strategy_param.cpython-312.pyc | Bin 832 -> 0 bytes .../types/__pycache__/batch.cpython-312.pyc | Bin 2308 -> 0 bytes .../batch_create_params.cpython-312.pyc | Bin 1553 -> 0 bytes .../__pycache__/batch_error.cpython-312.pyc | Bin 735 -> 0 bytes .../batch_list_params.cpython-312.pyc | Bin 624 -> 0 bytes .../batch_request_counts.cpython-312.pyc | Bin 655 -> 0 bytes .../__pycache__/batch_usage.cpython-312.pyc | Bin 1427 -> 0 bytes .../__pycache__/chat_model.cpython-312.pyc | Bin 326 -> 0 bytes .../__pycache__/completion.cpython-312.pyc | Bin 1220 -> 0 bytes .../completion_choice.cpython-312.pyc | Bin 1281 -> 0 bytes .../completion_create_params.cpython-312.pyc | Bin 2330 -> 0 bytes .../completion_usage.cpython-312.pyc | Bin 1729 -> 0 bytes .../container_create_params.cpython-312.pyc | Bin 1925 -> 0 bytes .../container_create_response.cpython-312.pyc | Bin 1967 -> 0 bytes .../container_list_params.cpython-312.pyc | Bin 732 -> 0 bytes .../container_list_response.cpython-312.pyc | Bin 1963 -> 0 bytes ...ontainer_retrieve_response.cpython-312.pyc | Bin 1971 -> 0 bytes .../create_embedding_response.cpython-312.pyc | Bin 1089 -> 0 bytes .../__pycache__/deleted_skill.cpython-312.pyc | Bin 640 -> 0 bytes .../__pycache__/embedding.cpython-312.pyc | Bin 772 -> 0 bytes .../embedding_create_params.cpython-312.pyc | Bin 1102 -> 0 bytes .../embedding_model.cpython-312.pyc | Bin 462 -> 0 bytes .../eval_create_params.cpython-312.pyc | Bin 6709 -> 0 bytes .../eval_create_response.cpython-312.pyc | Bin 3818 -> 0 bytes ..._custom_data_source_config.cpython-312.pyc | Bin 1122 -> 0 bytes .../eval_delete_response.cpython-312.pyc | Bin 571 -> 0 bytes .../eval_list_params.cpython-312.pyc | Bin 760 -> 0 bytes .../eval_list_response.cpython-312.pyc | Bin 3814 -> 0 bytes .../eval_retrieve_response.cpython-312.pyc | Bin 3822 -> 0 bytes ...letions_data_source_config.cpython-312.pyc | Bin 1060 -> 0 bytes .../eval_update_params.cpython-312.pyc | Bin 743 -> 0 bytes .../eval_update_response.cpython-312.pyc | Bin 3818 -> 0 bytes .../file_chunking_strategy.cpython-312.pyc | Bin 756 -> 0 bytes ...le_chunking_strategy_param.cpython-312.pyc | Bin 689 -> 0 bytes .../__pycache__/file_content.cpython-312.pyc | Bin 353 -> 0 bytes .../file_create_params.cpython-312.pyc | Bin 1321 -> 0 bytes .../__pycache__/file_deleted.cpython-312.pyc | Bin 627 -> 0 bytes .../file_list_params.cpython-312.pyc | Bin 727 -> 0 bytes .../__pycache__/file_object.cpython-312.pyc | Bin 1181 -> 0 bytes .../__pycache__/file_purpose.cpython-312.pyc | Bin 439 -> 0 bytes .../types/__pycache__/image.cpython-312.pyc | Bin 774 -> 0 bytes ...ge_create_variation_params.cpython-312.pyc | Bin 1123 -> 0 bytes ...image_edit_completed_event.cpython-312.pyc | Bin 1873 -> 0 bytes .../image_edit_params.cpython-312.pyc | Bin 2225 -> 0 bytes ...e_edit_partial_image_event.cpython-312.pyc | Bin 1125 -> 0 bytes .../image_edit_stream_event.cpython-312.pyc | Bin 728 -> 0 bytes .../image_gen_completed_event.cpython-312.pyc | Bin 1880 -> 0 bytes ...ge_gen_partial_image_event.cpython-312.pyc | Bin 1132 -> 0 bytes .../image_gen_stream_event.cpython-312.pyc | Bin 722 -> 0 bytes .../image_generate_params.cpython-312.pyc | Bin 2157 -> 0 bytes ...mage_input_reference_param.cpython-312.pyc | Bin 633 -> 0 bytes .../__pycache__/image_model.cpython-312.pyc | Bin 512 -> 0 bytes .../images_response.cpython-312.pyc | Bin 2344 -> 0 bytes .../types/__pycache__/model.cpython-312.pyc | Bin 741 -> 0 bytes .../__pycache__/model_deleted.cpython-312.pyc | Bin 553 -> 0 bytes .../__pycache__/moderation.cpython-312.pyc | Bin 4219 -> 0 bytes .../moderation_create_params.cpython-312.pyc | Bin 1022 -> 0 bytes ...moderation_create_response.cpython-312.pyc | Bin 772 -> 0 bytes ...tion_image_url_input_param.cpython-312.pyc | Bin 1066 -> 0 bytes .../moderation_model.cpython-312.pyc | Bin 496 -> 0 bytes ...on_multi_modal_input_param.cpython-312.pyc | Bin 670 -> 0 bytes ...oderation_text_input_param.cpython-312.pyc | Bin 765 -> 0 bytes ...e_chunking_strategy_object.cpython-312.pyc | Bin 821 -> 0 bytes .../types/__pycache__/skill.cpython-312.pyc | Bin 766 -> 0 bytes .../skill_create_params.cpython-312.pyc | Bin 741 -> 0 bytes .../__pycache__/skill_list.cpython-312.pyc | Bin 868 -> 0 bytes .../skill_list_params.cpython-312.pyc | Bin 690 -> 0 bytes .../skill_update_params.cpython-312.pyc | Bin 630 -> 0 bytes ...tic_file_chunking_strategy.cpython-312.pyc | Bin 602 -> 0 bytes ...e_chunking_strategy_object.cpython-312.pyc | Bin 730 -> 0 bytes ...king_strategy_object_param.cpython-312.pyc | Bin 956 -> 0 bytes ...le_chunking_strategy_param.cpython-312.pyc | Bin 715 -> 0 bytes .../types/__pycache__/upload.cpython-312.pyc | Bin 1074 -> 0 bytes .../upload_complete_params.cpython-312.pyc | Bin 728 -> 0 bytes .../upload_create_params.cpython-312.pyc | Bin 1346 -> 0 bytes .../__pycache__/vector_store.cpython-312.pyc | Bin 1915 -> 0 bytes ...vector_store_create_params.cpython-312.pyc | Bin 1458 -> 0 bytes .../vector_store_deleted.cpython-312.pyc | Bin 661 -> 0 bytes .../vector_store_list_params.cpython-312.pyc | Bin 743 -> 0 bytes ...vector_store_search_params.cpython-312.pyc | Bin 1528 -> 0 bytes ...ctor_store_search_response.cpython-312.pyc | Bin 1154 -> 0 bytes ...vector_store_update_params.cpython-312.pyc | Bin 1214 -> 0 bytes .../types/__pycache__/video.cpython-312.pyc | Bin 1507 -> 0 bytes ...eo_create_character_params.cpython-312.pyc | Bin 733 -> 0 bytes ..._create_character_response.cpython-312.pyc | Bin 698 -> 0 bytes .../video_create_error.cpython-312.pyc | Bin 616 -> 0 bytes .../video_create_params.cpython-312.pyc | Bin 1196 -> 0 bytes .../video_delete_response.cpython-312.pyc | Bin 739 -> 0 bytes ...eo_download_content_params.cpython-312.pyc | Bin 673 -> 0 bytes .../video_edit_params.cpython-312.pyc | Bin 1121 -> 0 bytes .../video_extend_params.cpython-312.pyc | Bin 1239 -> 0 bytes ...deo_get_character_response.cpython-312.pyc | Bin 692 -> 0 bytes .../video_list_params.cpython-312.pyc | Bin 690 -> 0 bytes .../__pycache__/video_model.cpython-312.pyc | Bin 526 -> 0 bytes .../video_model_param.cpython-312.pyc | Bin 590 -> 0 bytes .../video_remix_params.cpython-312.pyc | Bin 621 -> 0 bytes .../__pycache__/video_seconds.cpython-312.pyc | Bin 395 -> 0 bytes .../__pycache__/video_size.cpython-312.pyc | Bin 421 -> 0 bytes ...bsocket_connection_options.cpython-312.pyc | Bin 1452 -> 0 bytes .../websocket_reconnection.cpython-312.pyc | Bin 1801 -> 0 bytes .../openai/types/admin/__init__.py | 3 - .../__pycache__/__init__.cpython-312.pyc | Bin 262 -> 0 bytes .../types/admin/organization/__init__.py | 67 - .../__pycache__/__init__.cpython-312.pyc | Bin 4313 -> 0 bytes .../__pycache__/admin_api_key.cpython-312.pyc | Bin 1441 -> 0 bytes ...dmin_api_key_create_params.cpython-312.pyc | Bin 649 -> 0 bytes ...in_api_key_create_response.cpython-312.pyc | Bin 629 -> 0 bytes ...in_api_key_delete_response.cpython-312.pyc | Bin 710 -> 0 bytes .../admin_api_key_list_params.cpython-312.pyc | Bin 774 -> 0 bytes .../audit_log_list_params.cpython-312.pyc | Bin 2523 -> 0 bytes .../audit_log_list_response.cpython-312.pyc | Bin 28642 -> 0 bytes .../__pycache__/certificate.cpython-312.pyc | Bin 1372 -> 0 bytes ...ertificate_activate_params.cpython-312.pyc | Bin 729 -> 0 bytes ...tificate_activate_response.cpython-312.pyc | Bin 1277 -> 0 bytes .../certificate_create_params.cpython-312.pyc | Bin 688 -> 0 bytes ...tificate_deactivate_params.cpython-312.pyc | Bin 733 -> 0 bytes ...ficate_deactivate_response.cpython-312.pyc | Bin 1281 -> 0 bytes ...ertificate_delete_response.cpython-312.pyc | Bin 671 -> 0 bytes .../certificate_list_params.cpython-312.pyc | Bin 729 -> 0 bytes .../certificate_list_response.cpython-312.pyc | Bin 1269 -> 0 bytes ...ertificate_retrieve_params.cpython-312.pyc | Bin 705 -> 0 bytes .../certificate_update_params.cpython-312.pyc | Bin 620 -> 0 bytes .../__pycache__/group.cpython-312.pyc | Bin 703 -> 0 bytes .../group_create_params.cpython-312.pyc | Bin 638 -> 0 bytes .../group_delete_response.cpython-312.pyc | Bin 758 -> 0 bytes .../group_list_params.cpython-312.pyc | Bin 715 -> 0 bytes .../group_update_params.cpython-312.pyc | Bin 638 -> 0 bytes .../group_update_response.cpython-312.pyc | Bin 707 -> 0 bytes .../__pycache__/invite.cpython-312.pyc | Bin 1369 -> 0 bytes .../invite_create_params.cpython-312.pyc | Bin 1063 -> 0 bytes .../invite_delete_response.cpython-312.pyc | Bin 696 -> 0 bytes .../invite_list_params.cpython-312.pyc | Bin 645 -> 0 bytes .../organization_user.cpython-312.pyc | Bin 2783 -> 0 bytes .../__pycache__/project.cpython-312.pyc | Bin 986 -> 0 bytes .../project_create_params.cpython-312.pyc | Bin 769 -> 0 bytes .../project_list_params.cpython-312.pyc | Bin 696 -> 0 bytes .../project_update_params.cpython-312.pyc | Bin 735 -> 0 bytes .../__pycache__/role.cpython-312.pyc | Bin 972 -> 0 bytes .../role_create_params.cpython-312.pyc | Bin 846 -> 0 bytes .../role_delete_response.cpython-312.pyc | Bin 754 -> 0 bytes .../role_list_params.cpython-312.pyc | Bin 709 -> 0 bytes .../role_update_params.cpython-312.pyc | Bin 812 -> 0 bytes ...sage_audio_speeches_params.cpython-312.pyc | Bin 1181 -> 0 bytes ...ge_audio_speeches_response.cpython-312.pyc | Bin 7587 -> 0 bytes ...udio_transcriptions_params.cpython-312.pyc | Bin 1193 -> 0 bytes ...io_transcriptions_response.cpython-312.pyc | Bin 7599 -> 0 bytes ...nterpreter_sessions_params.cpython-312.pyc | Bin 1074 -> 0 bytes ...erpreter_sessions_response.cpython-312.pyc | Bin 7608 -> 0 bytes .../usage_completions_params.cpython-312.pyc | Bin 1238 -> 0 bytes ...usage_completions_response.cpython-312.pyc | Bin 7582 -> 0 bytes .../usage_costs_params.cpython-312.pyc | Bin 1085 -> 0 bytes .../usage_costs_response.cpython-312.pyc | Bin 7570 -> 0 bytes .../usage_embeddings_params.cpython-312.pyc | Bin 1174 -> 0 bytes .../usage_embeddings_response.cpython-312.pyc | Bin 7580 -> 0 bytes .../usage_images_params.cpython-312.pyc | Bin 1395 -> 0 bytes .../usage_images_response.cpython-312.pyc | Bin 7572 -> 0 bytes .../usage_moderations_params.cpython-312.pyc | Bin 1176 -> 0 bytes ...usage_moderations_response.cpython-312.pyc | Bin 7582 -> 0 bytes ...usage_vector_stores_params.cpython-312.pyc | Bin 1051 -> 0 bytes ...age_vector_stores_response.cpython-312.pyc | Bin 7585 -> 0 bytes .../user_delete_response.cpython-312.pyc | Bin 685 -> 0 bytes .../user_list_params.cpython-312.pyc | Bin 742 -> 0 bytes .../user_update_params.cpython-312.pyc | Bin 765 -> 0 bytes .../types/admin/organization/admin_api_key.py | 52 - .../admin_api_key_create_params.py | 11 - .../admin_api_key_create_response.py | 12 - .../admin_api_key_delete_response.py | 15 - .../organization/admin_api_key_list_params.py | 19 - .../organization/audit_log_list_params.py | 143 - .../organization/audit_log_list_response.py | 1033 - .../types/admin/organization/certificate.py | 51 - .../certificate_activate_params.py | 13 - .../certificate_activate_response.py | 37 - .../organization/certificate_create_params.py | 15 - .../certificate_deactivate_params.py | 13 - .../certificate_deactivate_response.py | 37 - .../certificate_delete_response.py | 15 - .../organization/certificate_list_params.py | 30 - .../organization/certificate_list_response.py | 37 - .../certificate_retrieve_params.py | 17 - .../organization/certificate_update_params.py | 12 - .../openai/types/admin/organization/group.py | 27 - .../admin/organization/group_create_params.py | 12 - .../organization/group_delete_response.py | 20 - .../admin/organization/group_list_params.py | 27 - .../admin/organization/group_update_params.py | 12 - .../organization/group_update_response.py | 24 - .../admin/organization/groups/__init__.py | 14 - .../__pycache__/__init__.cpython-312.pyc | Bin 905 -> 0 bytes .../organization_group_user.cpython-312.pyc | Bin 765 -> 0 bytes .../role_create_params.cpython-312.pyc | Bin 646 -> 0 bytes .../role_create_response.cpython-312.pyc | Bin 1213 -> 0 bytes .../role_delete_response.cpython-312.pyc | Bin 656 -> 0 bytes .../role_list_params.cpython-312.pyc | Bin 716 -> 0 bytes .../role_list_response.cpython-312.pyc | Bin 1296 -> 0 bytes .../user_create_params.cpython-312.pyc | Bin 646 -> 0 bytes .../user_create_response.cpython-312.pyc | Bin 768 -> 0 bytes .../user_delete_response.cpython-312.pyc | Bin 752 -> 0 bytes .../user_list_params.cpython-312.pyc | Bin 720 -> 0 bytes .../groups/organization_group_user.py | 20 - .../organization/groups/role_create_params.py | 12 - .../groups/role_create_response.py | 40 - .../groups/role_delete_response.py | 18 - .../organization/groups/role_list_params.py | 22 - .../organization/groups/role_list_response.py | 46 - .../organization/groups/user_create_params.py | 12 - .../groups/user_create_response.py | 20 - .../groups/user_delete_response.py | 17 - .../organization/groups/user_list_params.py | 25 - .../openai/types/admin/organization/invite.py | 47 - .../organization/invite_create_params.py | 31 - .../organization/invite_delete_response.py | 16 - .../admin/organization/invite_list_params.py | 24 - .../admin/organization/organization_user.py | 96 - .../types/admin/organization/project.py | 33 - .../organization/project_create_params.py | 25 - .../admin/organization/project_list_params.py | 30 - .../organization/project_update_params.py | 19 - .../admin/organization/projects/__init__.py | 34 - .../__pycache__/__init__.cpython-312.pyc | Bin 2349 -> 0 bytes .../api_key_delete_response.cpython-312.pyc | Bin 710 -> 0 bytes .../api_key_list_params.cpython-312.pyc | Bin 655 -> 0 bytes ...ertificate_activate_params.cpython-312.pyc | Bin 738 -> 0 bytes ...tificate_activate_response.cpython-312.pyc | Bin 1289 -> 0 bytes ...tificate_deactivate_params.cpython-312.pyc | Bin 742 -> 0 bytes ...ficate_deactivate_response.cpython-312.pyc | Bin 1293 -> 0 bytes .../certificate_list_params.cpython-312.pyc | Bin 738 -> 0 bytes .../certificate_list_response.cpython-312.pyc | Bin 1281 -> 0 bytes .../group_create_params.cpython-312.pyc | Bin 680 -> 0 bytes .../group_delete_response.cpython-312.pyc | Bin 762 -> 0 bytes .../group_list_params.cpython-312.pyc | Bin 720 -> 0 bytes .../project_api_key.cpython-312.pyc | Bin 2001 -> 0 bytes .../__pycache__/project_group.cpython-312.pyc | Bin 851 -> 0 bytes .../project_rate_limit.cpython-312.pyc | Bin 1184 -> 0 bytes .../project_service_account.cpython-312.pyc | Bin 880 -> 0 bytes .../__pycache__/project_user.cpython-312.pyc | Bin 924 -> 0 bytes ...it_list_rate_limits_params.cpython-312.pyc | Bin 715 -> 0 bytes ...t_update_rate_limit_params.cpython-312.pyc | Bin 973 -> 0 bytes .../role_create_params.cpython-312.pyc | Bin 855 -> 0 bytes .../role_delete_response.cpython-312.pyc | Bin 763 -> 0 bytes .../role_list_params.cpython-312.pyc | Bin 718 -> 0 bytes .../role_update_params.cpython-312.pyc | Bin 883 -> 0 bytes ...vice_account_create_params.cpython-312.pyc | Bin 666 -> 0 bytes ...ce_account_create_response.cpython-312.pyc | Bin 1237 -> 0 bytes ...ce_account_delete_response.cpython-312.pyc | Bin 736 -> 0 bytes ...ervice_account_list_params.cpython-312.pyc | Bin 671 -> 0 bytes .../user_create_params.cpython-312.pyc | Bin 758 -> 0 bytes .../user_delete_response.cpython-312.pyc | Bin 702 -> 0 bytes .../user_list_params.cpython-312.pyc | Bin 650 -> 0 bytes .../user_update_params.cpython-312.pyc | Bin 728 -> 0 bytes .../projects/api_key_delete_response.py | 15 - .../projects/api_key_list_params.py | 24 - .../projects/certificate_activate_params.py | 13 - .../projects/certificate_activate_response.py | 37 - .../projects/certificate_deactivate_params.py | 13 - .../certificate_deactivate_response.py | 37 - .../projects/certificate_list_params.py | 30 - .../projects/certificate_list_response.py | 37 - .../projects/group_create_params.py | 15 - .../projects/group_delete_response.py | 17 - .../projects/group_list_params.py | 22 - .../organization/projects/groups/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 600 -> 0 bytes .../role_create_params.cpython-312.pyc | Bin 683 -> 0 bytes .../role_create_response.cpython-312.pyc | Bin 1222 -> 0 bytes .../role_delete_response.cpython-312.pyc | Bin 665 -> 0 bytes .../role_list_params.cpython-312.pyc | Bin 790 -> 0 bytes .../role_list_response.cpython-312.pyc | Bin 1305 -> 0 bytes .../projects/groups/role_create_params.py | 14 - .../projects/groups/role_create_response.py | 40 - .../projects/groups/role_delete_response.py | 18 - .../projects/groups/role_list_params.py | 24 - .../projects/groups/role_list_response.py | 46 - .../organization/projects/project_api_key.py | 78 - .../organization/projects/project_group.py | 29 - .../projects/project_rate_limit.py | 39 - .../projects/project_service_account.py | 26 - .../organization/projects/project_user.py | 30 - .../rate_limit_list_rate_limits_params.py | 30 - .../rate_limit_update_rate_limit_params.py | 29 - .../projects/role_create_params.py | 21 - .../projects/role_delete_response.py | 20 - .../organization/projects/role_list_params.py | 22 - .../projects/role_update_params.py | 23 - .../projects/service_account_create_params.py | 12 - .../service_account_create_response.py | 36 - .../service_account_delete_response.py | 15 - .../projects/service_account_list_params.py | 24 - .../projects/user_create_params.py | 19 - .../projects/user_delete_response.py | 15 - .../organization/projects/user_list_params.py | 24 - .../projects/user_update_params.py | 15 - .../organization/projects/users/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 599 -> 0 bytes .../role_create_params.cpython-312.pyc | Bin 682 -> 0 bytes .../role_create_response.cpython-312.pyc | Bin 853 -> 0 bytes .../role_delete_response.cpython-312.pyc | Bin 664 -> 0 bytes .../role_list_params.cpython-312.pyc | Bin 789 -> 0 bytes .../role_list_response.cpython-312.pyc | Bin 1304 -> 0 bytes .../projects/users/role_create_params.py | 14 - .../projects/users/role_create_response.py | 22 - .../projects/users/role_delete_response.py | 18 - .../projects/users/role_list_params.py | 24 - .../projects/users/role_list_response.py | 46 - .../openai/types/admin/organization/role.py | 36 - .../admin/organization/role_create_params.py | 21 - .../organization/role_delete_response.py | 20 - .../admin/organization/role_list_params.py | 22 - .../admin/organization/role_update_params.py | 21 - .../usage_audio_speeches_params.py | 57 - .../usage_audio_speeches_response.py | 396 - .../usage_audio_transcriptions_params.py | 57 - .../usage_audio_transcriptions_response.py | 396 - .../usage_code_interpreter_sessions_params.py | 47 - ...sage_code_interpreter_sessions_response.py | 396 - .../organization/usage_completions_params.py | 63 - .../usage_completions_response.py | 396 - .../admin/organization/usage_costs_params.py | 49 - .../organization/usage_costs_response.py | 396 - .../organization/usage_embeddings_params.py | 57 - .../organization/usage_embeddings_response.py | 396 - .../admin/organization/usage_images_params.py | 71 - .../organization/usage_images_response.py | 396 - .../organization/usage_moderations_params.py | 57 - .../usage_moderations_response.py | 396 - .../usage_vector_stores_params.py | 47 - .../usage_vector_stores_response.py | 396 - .../organization/user_delete_response.py | 15 - .../admin/organization/user_list_params.py | 29 - .../admin/organization/user_update_params.py | 22 - .../admin/organization/users/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 590 -> 0 bytes .../role_create_params.cpython-312.pyc | Bin 645 -> 0 bytes .../role_create_response.cpython-312.pyc | Bin 844 -> 0 bytes .../role_delete_response.cpython-312.pyc | Bin 655 -> 0 bytes .../role_list_params.cpython-312.pyc | Bin 715 -> 0 bytes .../role_list_response.cpython-312.pyc | Bin 1295 -> 0 bytes .../organization/users/role_create_params.py | 12 - .../users/role_create_response.py | 22 - .../users/role_delete_response.py | 18 - .../organization/users/role_list_params.py | 22 - .../organization/users/role_list_response.py | 46 - .../openai/types/audio/__init__.py | 23 - .../__pycache__/__init__.cpython-312.pyc | Bin 1597 -> 0 bytes .../speech_create_params.cpython-312.pyc | Bin 1536 -> 0 bytes .../__pycache__/speech_model.cpython-312.pyc | Bin 451 -> 0 bytes .../__pycache__/transcription.cpython-312.pyc | Bin 2649 -> 0 bytes ...ranscription_create_params.cpython-312.pyc | Bin 2595 -> 0 bytes ...nscription_create_response.cpython-312.pyc | Bin 645 -> 0 bytes .../transcription_diarized.cpython-312.pyc | Bin 2517 -> 0 bytes ...scription_diarized_segment.cpython-312.pyc | Bin 864 -> 0 bytes .../transcription_include.cpython-312.pyc | Bin 416 -> 0 bytes .../transcription_segment.cpython-312.pyc | Bin 883 -> 0 bytes ...transcription_stream_event.cpython-312.pyc | Bin 842 -> 0 bytes ...scription_text_delta_event.cpython-312.pyc | Bin 1532 -> 0 bytes ...nscription_text_done_event.cpython-312.pyc | Bin 2339 -> 0 bytes ...ription_text_segment_event.cpython-312.pyc | Bin 1107 -> 0 bytes .../transcription_verbose.cpython-312.pyc | Bin 1488 -> 0 bytes .../transcription_word.cpython-312.pyc | Bin 580 -> 0 bytes .../__pycache__/translation.cpython-312.pyc | Bin 504 -> 0 bytes .../translation_create_params.cpython-312.pyc | Bin 1047 -> 0 bytes ...ranslation_create_response.cpython-312.pyc | Bin 559 -> 0 bytes .../translation_verbose.cpython-312.pyc | Bin 806 -> 0 bytes .../types/audio/speech_create_params.py | 68 - .../openai/types/audio/speech_model.py | 7 - .../openai/types/audio/transcription.py | 81 - .../audio/transcription_create_params.py | 172 - .../audio/transcription_create_response.py | 12 - .../types/audio/transcription_diarized.py | 73 - .../audio/transcription_diarized_segment.py | 34 - .../types/audio/transcription_include.py | 7 - .../types/audio/transcription_segment.py | 49 - .../types/audio/transcription_stream_event.py | 16 - .../audio/transcription_text_delta_event.py | 46 - .../audio/transcription_text_done_event.py | 72 - .../audio/transcription_text_segment_event.py | 31 - .../types/audio/transcription_verbose.py | 44 - .../openai/types/audio/transcription_word.py | 16 - .../openai/types/audio/translation.py | 9 - .../types/audio/translation_create_params.py | 49 - .../audio/translation_create_response.py | 11 - .../openai/types/audio/translation_verbose.py | 22 - .../site-packages/openai/types/audio_model.py | 13 - .../openai/types/audio_response_format.py | 7 - .../auto_file_chunking_strategy_param.py | 17 - .../site-packages/openai/types/batch.py | 104 - .../openai/types/batch_create_params.py | 86 - .../site-packages/openai/types/batch_error.py | 21 - .../openai/types/batch_list_params.py | 24 - .../openai/types/batch_request_counts.py | 18 - .../site-packages/openai/types/batch_usage.py | 45 - .../openai/types/beta/__init__.py | 34 - .../beta/__pycache__/__init__.cpython-312.pyc | Bin 2169 -> 0 bytes .../__pycache__/assistant.cpython-312.pyc | Bin 2685 -> 0 bytes .../assistant_create_params.cpython-312.pyc | Bin 4262 -> 0 bytes .../assistant_deleted.cpython-312.pyc | Bin 658 -> 0 bytes .../assistant_list_params.cpython-312.pyc | Bin 743 -> 0 bytes ...ant_response_format_option.cpython-312.pyc | Bin 744 -> 0 bytes ...sponse_format_option_param.cpython-312.pyc | Bin 828 -> 0 bytes .../assistant_stream_event.cpython-312.pyc | Bin 10265 -> 0 bytes .../assistant_tool.cpython-312.pyc | Bin 735 -> 0 bytes .../assistant_tool_choice.cpython-312.pyc | Bin 940 -> 0 bytes ...stant_tool_choice_function.cpython-312.pyc | Bin 542 -> 0 bytes ...tool_choice_function_param.cpython-312.pyc | Bin 656 -> 0 bytes ...sistant_tool_choice_option.cpython-312.pyc | Bin 568 -> 0 bytes ...t_tool_choice_option_param.cpython-312.pyc | Bin 642 -> 0 bytes ...ssistant_tool_choice_param.cpython-312.pyc | Bin 962 -> 0 bytes .../assistant_tool_param.cpython-312.pyc | Bin 697 -> 0 bytes .../assistant_update_params.cpython-312.pyc | Bin 3375 -> 0 bytes .../chatkit_workflow.cpython-312.pyc | Bin 1142 -> 0 bytes .../code_interpreter_tool.cpython-312.pyc | Bin 611 -> 0 bytes ...ode_interpreter_tool_param.cpython-312.pyc | Bin 684 -> 0 bytes .../file_search_tool.cpython-312.pyc | Bin 1722 -> 0 bytes .../file_search_tool_param.cpython-312.pyc | Bin 1651 -> 0 bytes .../__pycache__/function_tool.cpython-312.pyc | Bin 683 -> 0 bytes .../function_tool_param.cpython-312.pyc | Bin 799 -> 0 bytes .../beta/__pycache__/thread.cpython-312.pyc | Bin 2159 -> 0 bytes ...read_create_and_run_params.cpython-312.pyc | Bin 8113 -> 0 bytes .../thread_create_params.cpython-312.pyc | Bin 4717 -> 0 bytes .../thread_deleted.cpython-312.pyc | Bin 649 -> 0 bytes .../thread_update_params.cpython-312.pyc | Bin 1832 -> 0 bytes .../openai/types/beta/assistant.py | 141 - .../types/beta/assistant_create_params.py | 232 - .../openai/types/beta/assistant_deleted.py | 15 - .../types/beta/assistant_list_params.py | 39 - .../beta/assistant_response_format_option.py | 14 - .../assistant_response_format_option_param.py | 16 - .../types/beta/assistant_stream_event.py | 390 - .../openai/types/beta/assistant_tool.py | 15 - .../types/beta/assistant_tool_choice.py | 21 - .../beta/assistant_tool_choice_function.py | 10 - .../assistant_tool_choice_function_param.py | 12 - .../beta/assistant_tool_choice_option.py | 10 - .../assistant_tool_choice_option_param.py | 12 - .../types/beta/assistant_tool_choice_param.py | 21 - .../openai/types/beta/assistant_tool_param.py | 14 - .../types/beta/assistant_update_params.py | 197 - .../openai/types/beta/chat/__init__.py | 3 - .../chat/__pycache__/__init__.cpython-312.pyc | Bin 266 -> 0 bytes .../openai/types/beta/chatkit/__init__.py | 32 - .../__pycache__/__init__.cpython-312.pyc | Bin 1904 -> 0 bytes .../__pycache__/chat_session.cpython-312.pyc | Bin 1305 -> 0 bytes ...n_automatic_thread_titling.cpython-312.pyc | Bin 636 -> 0 bytes ...sion_chatkit_configuration.cpython-312.pyc | Bin 945 -> 0 bytes ...hatkit_configuration_param.cpython-312.pyc | Bin 1956 -> 0 bytes ...ession_expires_after_param.cpython-312.pyc | Bin 828 -> 0 bytes .../chat_session_file_upload.cpython-312.pyc | Bin 784 -> 0 bytes .../chat_session_history.cpython-312.pyc | Bin 725 -> 0 bytes .../chat_session_rate_limits.cpython-312.pyc | Bin 626 -> 0 bytes ..._session_rate_limits_param.cpython-312.pyc | Bin 709 -> 0 bytes .../chat_session_status.cpython-312.pyc | Bin 439 -> 0 bytes ...hat_session_workflow_param.cpython-312.pyc | Bin 1239 -> 0 bytes .../chatkit_attachment.cpython-312.pyc | Bin 861 -> 0 bytes ...atkit_response_output_text.cpython-312.pyc | Bin 2288 -> 0 bytes .../chatkit_thread.cpython-312.pyc | Bin 2060 -> 0 bytes ...ead_assistant_message_item.cpython-312.pyc | Bin 1052 -> 0 bytes .../chatkit_thread_item_list.cpython-312.pyc | Bin 3675 -> 0 bytes ...t_thread_user_message_item.cpython-312.pyc | Bin 2707 -> 0 bytes .../chatkit_widget_item.cpython-312.pyc | Bin 860 -> 0 bytes .../session_create_params.cpython-312.pyc | Bin 1194 -> 0 bytes .../thread_delete_response.cpython-312.pyc | Bin 767 -> 0 bytes .../thread_list_items_params.cpython-312.pyc | Bin 752 -> 0 bytes .../thread_list_params.cpython-312.pyc | Bin 767 -> 0 bytes .../openai/types/beta/chatkit/chat_session.py | 45 - .../chat_session_automatic_thread_titling.py | 12 - .../chat_session_chatkit_configuration.py | 21 - ...hat_session_chatkit_configuration_param.py | 76 - .../chat_session_expires_after_param.py | 17 - .../beta/chatkit/chat_session_file_upload.py | 20 - .../beta/chatkit/chat_session_history.py | 20 - .../beta/chatkit/chat_session_rate_limits.py | 12 - .../chatkit/chat_session_rate_limits_param.py | 14 - .../types/beta/chatkit/chat_session_status.py | 7 - .../chatkit/chat_session_workflow_param.py | 41 - .../types/beta/chatkit/chatkit_attachment.py | 27 - .../chatkit/chatkit_response_output_text.py | 72 - .../types/beta/chatkit/chatkit_thread.py | 64 - .../chatkit_thread_assistant_message_item.py | 31 - .../beta/chatkit/chatkit_thread_item_list.py | 154 - .../chatkit_thread_user_message_item.py | 87 - .../types/beta/chatkit/chatkit_widget_item.py | 29 - .../beta/chatkit/session_create_params.py | 35 - .../beta/chatkit/thread_delete_response.py | 20 - .../beta/chatkit/thread_list_items_params.py | 27 - .../types/beta/chatkit/thread_list_params.py | 33 - .../openai/types/beta/chatkit_workflow.py | 36 - .../types/beta/code_interpreter_tool.py | 12 - .../types/beta/code_interpreter_tool_param.py | 12 - .../openai/types/beta/file_search_tool.py | 64 - .../types/beta/file_search_tool_param.py | 63 - .../openai/types/beta/function_tool.py | 15 - .../openai/types/beta/function_tool_param.py | 16 - .../openai/types/beta/realtime/__init__.py | 96 - .../__pycache__/__init__.cpython-312.pyc | Bin 6065 -> 0 bytes ...conversation_created_event.cpython-312.pyc | Bin 1066 -> 0 bytes .../conversation_item.cpython-312.pyc | Bin 1443 -> 0 bytes .../conversation_item_content.cpython-312.pyc | Bin 948 -> 0 bytes ...rsation_item_content_param.cpython-312.pyc | Bin 833 -> 0 bytes ...ersation_item_create_event.cpython-312.pyc | Bin 910 -> 0 bytes ...on_item_create_event_param.cpython-312.pyc | Bin 929 -> 0 bytes ...rsation_item_created_event.cpython-312.pyc | Bin 889 -> 0 bytes ...ersation_item_delete_event.cpython-312.pyc | Bin 780 -> 0 bytes ...on_item_delete_event_param.cpython-312.pyc | Bin 800 -> 0 bytes ...rsation_item_deleted_event.cpython-312.pyc | Bin 712 -> 0 bytes ...nscription_completed_event.cpython-312.pyc | Bin 2462 -> 0 bytes ..._transcription_delta_event.cpython-312.pyc | Bin 1308 -> 0 bytes ...transcription_failed_event.cpython-312.pyc | Bin 1271 -> 0 bytes .../conversation_item_param.cpython-312.pyc | Bin 1254 -> 0 bytes ...sation_item_retrieve_event.cpython-312.pyc | Bin 786 -> 0 bytes ..._item_retrieve_event_param.cpython-312.pyc | Bin 806 -> 0 bytes ...sation_item_truncate_event.cpython-312.pyc | Bin 870 -> 0 bytes ..._item_truncate_event_param.cpython-312.pyc | Bin 900 -> 0 bytes ...ation_item_truncated_event.cpython-312.pyc | Bin 796 -> 0 bytes ...sation_item_with_reference.cpython-312.pyc | Bin 1893 -> 0 bytes ..._item_with_reference_param.cpython-312.pyc | Bin 1550 -> 0 bytes .../__pycache__/error_event.cpython-312.pyc | Bin 1062 -> 0 bytes ..._audio_buffer_append_event.cpython-312.pyc | Bin 784 -> 0 bytes ..._buffer_append_event_param.cpython-312.pyc | Bin 804 -> 0 bytes ...t_audio_buffer_clear_event.cpython-312.pyc | Bin 750 -> 0 bytes ...o_buffer_clear_event_param.cpython-312.pyc | Bin 754 -> 0 bytes ...audio_buffer_cleared_event.cpython-312.pyc | Bin 687 -> 0 bytes ..._audio_buffer_commit_event.cpython-312.pyc | Bin 753 -> 0 bytes ..._buffer_commit_event_param.cpython-312.pyc | Bin 757 -> 0 bytes ...dio_buffer_committed_event.cpython-312.pyc | Bin 830 -> 0 bytes ...uffer_speech_started_event.cpython-312.pyc | Bin 782 -> 0 bytes ...uffer_speech_stopped_event.cpython-312.pyc | Bin 780 -> 0 bytes .../rate_limits_updated_event.cpython-312.pyc | Bin 1207 -> 0 bytes .../realtime_client_event.cpython-312.pyc | Bin 1927 -> 0 bytes ...ealtime_client_event_param.cpython-312.pyc | Bin 1939 -> 0 bytes .../realtime_connect_params.cpython-312.pyc | Bin 639 -> 0 bytes .../realtime_response.cpython-312.pyc | Bin 2012 -> 0 bytes .../realtime_response_status.cpython-312.pyc | Bin 1194 -> 0 bytes .../realtime_response_usage.cpython-312.pyc | Bin 1537 -> 0 bytes .../realtime_server_event.cpython-312.pyc | Bin 4973 -> 0 bytes ...response_audio_delta_event.cpython-312.pyc | Bin 834 -> 0 bytes .../response_audio_done_event.cpython-312.pyc | Bin 804 -> 0 bytes ...dio_transcript_delta_event.cpython-312.pyc | Bin 868 -> 0 bytes ...udio_transcript_done_event.cpython-312.pyc | Bin 870 -> 0 bytes .../response_cancel_event.cpython-312.pyc | Bin 782 -> 0 bytes ...esponse_cancel_event_param.cpython-312.pyc | Bin 763 -> 0 bytes ...e_content_part_added_event.cpython-312.pyc | Bin 1303 -> 0 bytes ...se_content_part_done_event.cpython-312.pyc | Bin 1300 -> 0 bytes .../response_create_event.cpython-312.pyc | Bin 2544 -> 0 bytes ...esponse_create_event_param.cpython-312.pyc | Bin 2237 -> 0 bytes .../response_created_event.cpython-312.pyc | Bin 757 -> 0 bytes .../response_done_event.cpython-312.pyc | Bin 747 -> 0 bytes ...call_arguments_delta_event.cpython-312.pyc | Bin 881 -> 0 bytes ..._call_arguments_done_event.cpython-312.pyc | Bin 882 -> 0 bytes ...se_output_item_added_event.cpython-312.pyc | Bin 857 -> 0 bytes ...nse_output_item_done_event.cpython-312.pyc | Bin 852 -> 0 bytes .../response_text_delta_event.cpython-312.pyc | Bin 831 -> 0 bytes .../response_text_done_event.cpython-312.pyc | Bin 827 -> 0 bytes .../__pycache__/session.cpython-312.pyc | Bin 4431 -> 0 bytes .../session_create_params.cpython-312.pyc | Bin 4057 -> 0 bytes .../session_create_response.cpython-312.pyc | Bin 3542 -> 0 bytes .../session_created_event.cpython-312.pyc | Bin 730 -> 0 bytes .../session_update_event.cpython-312.pyc | Bin 5397 -> 0 bytes ...session_update_event_param.cpython-312.pyc | Bin 4431 -> 0 bytes .../session_updated_event.cpython-312.pyc | Bin 730 -> 0 bytes .../transcription_session.cpython-312.pyc | Bin 2107 -> 0 bytes ...tion_session_create_params.cpython-312.pyc | Bin 2624 -> 0 bytes ...anscription_session_update.cpython-312.pyc | Bin 3607 -> 0 bytes ...ption_session_update_param.cpython-312.pyc | Bin 2995 -> 0 bytes ...tion_session_updated_event.cpython-312.pyc | Bin 808 -> 0 bytes .../realtime/conversation_created_event.py | 27 - .../types/beta/realtime/conversation_item.py | 61 - .../realtime/conversation_item_content.py | 32 - .../conversation_item_content_param.py | 31 - .../conversation_item_create_event.py | 29 - .../conversation_item_create_event_param.py | 29 - .../conversation_item_created_event.py | 27 - .../conversation_item_delete_event.py | 19 - .../conversation_item_delete_event_param.py | 18 - .../conversation_item_deleted_event.py | 18 - ...put_audio_transcription_completed_event.py | 87 - ...m_input_audio_transcription_delta_event.py | 39 - ..._input_audio_transcription_failed_event.py | 39 - .../beta/realtime/conversation_item_param.py | 62 - .../conversation_item_retrieve_event.py | 19 - .../conversation_item_retrieve_event_param.py | 18 - .../conversation_item_truncate_event.py | 32 - .../conversation_item_truncate_event_param.py | 31 - .../conversation_item_truncated_event.py | 24 - .../conversation_item_with_reference.py | 87 - .../conversation_item_with_reference_param.py | 87 - .../openai/types/beta/realtime/error_event.py | 36 - .../input_audio_buffer_append_event.py | 23 - .../input_audio_buffer_append_event_param.py | 22 - .../input_audio_buffer_clear_event.py | 16 - .../input_audio_buffer_clear_event_param.py | 15 - .../input_audio_buffer_cleared_event.py | 15 - .../input_audio_buffer_commit_event.py | 16 - .../input_audio_buffer_commit_event_param.py | 15 - .../input_audio_buffer_committed_event.py | 25 - ...input_audio_buffer_speech_started_event.py | 26 - ...input_audio_buffer_speech_stopped_event.py | 25 - .../realtime/rate_limits_updated_event.py | 33 - .../beta/realtime/realtime_client_event.py | 47 - .../realtime/realtime_client_event_param.py | 44 - .../beta/realtime/realtime_connect_params.py | 11 - .../types/beta/realtime/realtime_response.py | 87 - .../beta/realtime/realtime_response_status.py | 39 - .../beta/realtime/realtime_response_usage.py | 52 - .../beta/realtime/realtime_server_event.py | 133 - .../realtime/response_audio_delta_event.py | 30 - .../realtime/response_audio_done_event.py | 27 - .../response_audio_transcript_delta_event.py | 30 - .../response_audio_transcript_done_event.py | 30 - .../beta/realtime/response_cancel_event.py | 22 - .../realtime/response_cancel_event_param.py | 21 - .../response_content_part_added_event.py | 45 - .../response_content_part_done_event.py | 45 - .../beta/realtime/response_create_event.py | 121 - .../realtime/response_create_event_param.py | 122 - .../beta/realtime/response_created_event.py | 19 - .../beta/realtime/response_done_event.py | 19 - ...nse_function_call_arguments_delta_event.py | 30 - ...onse_function_call_arguments_done_event.py | 30 - .../response_output_item_added_event.py | 25 - .../response_output_item_done_event.py | 25 - .../realtime/response_text_delta_event.py | 30 - .../beta/realtime/response_text_done_event.py | 30 - .../openai/types/beta/realtime/session.py | 279 - .../beta/realtime/session_create_params.py | 298 - .../beta/realtime/session_create_response.py | 196 - .../beta/realtime/session_created_event.py | 19 - .../beta/realtime/session_update_event.py | 312 - .../realtime/session_update_event_param.py | 310 - .../beta/realtime/session_updated_event.py | 19 - .../beta/realtime/transcription_session.py | 100 - .../transcription_session_create_params.py | 173 - .../realtime/transcription_session_update.py | 185 - .../transcription_session_update_param.py | 185 - .../transcription_session_updated_event.py | 24 - .../site-packages/openai/types/beta/thread.py | 71 - .../beta/thread_create_and_run_params.py | 423 - .../openai/types/beta/thread_create_params.py | 196 - .../openai/types/beta/thread_deleted.py | 15 - .../openai/types/beta/thread_update_params.py | 60 - .../openai/types/beta/threads/__init__.py | 46 - .../__pycache__/__init__.cpython-312.pyc | Bin 2824 -> 0 bytes .../__pycache__/annotation.cpython-312.pyc | Bin 691 -> 0 bytes .../annotation_delta.cpython-312.pyc | Bin 729 -> 0 bytes .../file_citation_annotation.cpython-312.pyc | Bin 1167 -> 0 bytes ..._citation_delta_annotation.cpython-312.pyc | Bin 1427 -> 0 bytes .../file_path_annotation.cpython-312.pyc | Bin 1056 -> 0 bytes ...file_path_delta_annotation.cpython-312.pyc | Bin 1265 -> 0 bytes .../__pycache__/image_file.cpython-312.pyc | Bin 709 -> 0 bytes .../image_file_content_block.cpython-312.pyc | Bin 822 -> 0 bytes ...e_file_content_block_param.cpython-312.pyc | Bin 947 -> 0 bytes .../image_file_delta.cpython-312.pyc | Bin 745 -> 0 bytes .../image_file_delta_block.cpython-312.pyc | Bin 939 -> 0 bytes .../image_file_param.cpython-312.pyc | Bin 717 -> 0 bytes .../__pycache__/image_url.cpython-312.pyc | Bin 703 -> 0 bytes .../image_url_content_block.cpython-312.pyc | Bin 747 -> 0 bytes ...ge_url_content_block_param.cpython-312.pyc | Bin 869 -> 0 bytes .../image_url_delta.cpython-312.pyc | Bin 739 -> 0 bytes .../image_url_delta_block.cpython-312.pyc | Bin 863 -> 0 bytes .../image_url_param.cpython-312.pyc | Bin 711 -> 0 bytes .../__pycache__/message.cpython-312.pyc | Bin 2761 -> 0 bytes .../message_content.cpython-312.pyc | Bin 849 -> 0 bytes .../message_content_delta.cpython-312.pyc | Bin 842 -> 0 bytes ...message_content_part_param.cpython-312.pyc | Bin 743 -> 0 bytes .../message_create_params.cpython-312.pyc | Bin 1776 -> 0 bytes .../message_deleted.cpython-312.pyc | Bin 667 -> 0 bytes .../__pycache__/message_delta.cpython-312.pyc | Bin 921 -> 0 bytes .../message_delta_event.cpython-312.pyc | Bin 854 -> 0 bytes .../message_list_params.cpython-312.pyc | Bin 777 -> 0 bytes .../message_update_params.cpython-312.pyc | Bin 790 -> 0 bytes .../refusal_content_block.cpython-312.pyc | Bin 694 -> 0 bytes .../refusal_delta_block.cpython-312.pyc | Bin 792 -> 0 bytes ..._action_function_tool_call.cpython-312.pyc | Bin 992 -> 0 bytes .../threads/__pycache__/run.cpython-312.pyc | Bin 4993 -> 0 bytes .../run_create_params.cpython-312.pyc | Bin 4432 -> 0 bytes .../run_list_params.cpython-312.pyc | Bin 739 -> 0 bytes .../__pycache__/run_status.cpython-312.pyc | Bin 499 -> 0 bytes ...submit_tool_outputs_params.cpython-312.pyc | Bin 1586 -> 0 bytes .../run_update_params.cpython-312.pyc | Bin 782 -> 0 bytes .../threads/__pycache__/text.cpython-312.pyc | Bin 643 -> 0 bytes .../text_content_block.cpython-312.pyc | Bin 718 -> 0 bytes .../text_content_block_param.cpython-312.pyc | Bin 777 -> 0 bytes .../__pycache__/text_delta.cpython-312.pyc | Bin 737 -> 0 bytes .../text_delta_block.cpython-312.pyc | Bin 830 -> 0 bytes .../openai/types/beta/threads/annotation.py | 12 - .../types/beta/threads/annotation_delta.py | 14 - .../beta/threads/file_citation_annotation.py | 30 - .../threads/file_citation_delta_annotation.py | 37 - .../beta/threads/file_path_annotation.py | 30 - .../threads/file_path_delta_annotation.py | 34 - .../openai/types/beta/threads/image_file.py | 23 - .../beta/threads/image_file_content_block.py | 19 - .../threads/image_file_content_block_param.py | 20 - .../types/beta/threads/image_file_delta.py | 23 - .../beta/threads/image_file_delta_block.py | 23 - .../types/beta/threads/image_file_param.py | 22 - .../openai/types/beta/threads/image_url.py | 23 - .../beta/threads/image_url_content_block.py | 17 - .../threads/image_url_content_block_param.py | 18 - .../types/beta/threads/image_url_delta.py | 22 - .../beta/threads/image_url_delta_block.py | 21 - .../types/beta/threads/image_url_param.py | 22 - .../openai/types/beta/threads/message.py | 109 - .../types/beta/threads/message_content.py | 18 - .../beta/threads/message_content_delta.py | 17 - .../threads/message_content_part_param.py | 14 - .../beta/threads/message_create_params.py | 55 - .../types/beta/threads/message_deleted.py | 15 - .../types/beta/threads/message_delta.py | 19 - .../types/beta/threads/message_delta_event.py | 24 - .../types/beta/threads/message_list_params.py | 42 - .../beta/threads/message_update_params.py | 24 - .../beta/threads/refusal_content_block.py | 16 - .../types/beta/threads/refusal_delta_block.py | 20 - .../required_action_function_tool_call.py | 38 - .../openai/types/beta/threads/run.py | 273 - .../types/beta/threads/run_create_params.py | 274 - .../types/beta/threads/run_list_params.py | 39 - .../openai/types/beta/threads/run_status.py | 17 - .../threads/run_submit_tool_outputs_params.py | 52 - .../types/beta/threads/run_update_params.py | 24 - .../types/beta/threads/runs/__init__.py | 24 - .../runs/__pycache__/__init__.cpython-312.pyc | Bin 1583 -> 0 bytes .../code_interpreter_logs.cpython-312.pyc | Bin 824 -> 0 bytes ...e_interpreter_output_image.cpython-312.pyc | Bin 974 -> 0 bytes ...code_interpreter_tool_call.cpython-312.pyc | Bin 2206 -> 0 bytes ...nterpreter_tool_call_delta.cpython-312.pyc | Bin 1716 -> 0 bytes .../file_search_tool_call.cpython-312.pyc | Bin 2188 -> 0 bytes ...ile_search_tool_call_delta.cpython-312.pyc | Bin 791 -> 0 bytes .../function_tool_call.cpython-312.pyc | Bin 1054 -> 0 bytes .../function_tool_call_delta.cpython-312.pyc | Bin 1200 -> 0 bytes ...sage_creation_step_details.cpython-312.pyc | Bin 935 -> 0 bytes .../runs/__pycache__/run_step.cpython-312.pyc | Bin 2780 -> 0 bytes .../run_step_delta.cpython-312.pyc | Bin 1119 -> 0 bytes .../run_step_delta_event.cpython-312.pyc | Bin 864 -> 0 bytes ...n_step_delta_message_delta.cpython-312.pyc | Bin 1033 -> 0 bytes .../run_step_include.cpython-312.pyc | Bin 466 -> 0 bytes .../step_list_params.cpython-312.pyc | Bin 963 -> 0 bytes .../step_retrieve_params.cpython-312.pyc | Bin 814 -> 0 bytes .../__pycache__/tool_call.cpython-312.pyc | Bin 766 -> 0 bytes .../tool_call_delta.cpython-312.pyc | Bin 813 -> 0 bytes .../tool_call_delta_object.cpython-312.pyc | Bin 848 -> 0 bytes .../tool_calls_step_details.cpython-312.pyc | Bin 792 -> 0 bytes .../threads/runs/code_interpreter_logs.py | 21 - .../runs/code_interpreter_output_image.py | 26 - .../runs/code_interpreter_tool_call.py | 76 - .../runs/code_interpreter_tool_call_delta.py | 48 - .../threads/runs/file_search_tool_call.py | 84 - .../runs/file_search_tool_call_delta.py | 25 - .../beta/threads/runs/function_tool_call.py | 40 - .../threads/runs/function_tool_call_delta.py | 43 - .../runs/message_creation_step_details.py | 21 - .../types/beta/threads/runs/run_step.py | 127 - .../types/beta/threads/runs/run_step_delta.py | 22 - .../beta/threads/runs/run_step_delta_event.py | 24 - .../runs/run_step_delta_message_delta.py | 22 - .../beta/threads/runs/run_step_include.py | 7 - .../beta/threads/runs/step_list_params.py | 56 - .../beta/threads/runs/step_retrieve_params.py | 28 - .../types/beta/threads/runs/tool_call.py | 15 - .../beta/threads/runs/tool_call_delta.py | 16 - .../threads/runs/tool_call_delta_object.py | 23 - .../threads/runs/tool_calls_step_details.py | 23 - .../openai/types/beta/threads/text.py | 15 - .../types/beta/threads/text_content_block.py | 17 - .../beta/threads/text_content_block_param.py | 17 - .../openai/types/beta/threads/text_delta.py | 15 - .../types/beta/threads/text_delta_block.py | 21 - .../openai/types/chat/__init__.py | 102 - .../chat/__pycache__/__init__.cpython-312.pyc | Bin 4896 -> 0 bytes .../chat_completion.cpython-312.pyc | Bin 2171 -> 0 bytes ..._allowed_tool_choice_param.cpython-312.pyc | Bin 968 -> 0 bytes ...letion_allowed_tools_param.cpython-312.pyc | Bin 910 -> 0 bytes ...on_assistant_message_param.cpython-312.pyc | Bin 2368 -> 0 bytes .../chat_completion_audio.cpython-312.pyc | Bin 832 -> 0 bytes ...hat_completion_audio_param.cpython-312.pyc | Bin 1418 -> 0 bytes .../chat_completion_chunk.cpython-312.pyc | Bin 3977 -> 0 bytes ...pletion_content_part_image.cpython-312.pyc | Bin 1069 -> 0 bytes ...n_content_part_image_param.cpython-312.pyc | Bin 1113 -> 0 bytes ...ent_part_input_audio_param.cpython-312.pyc | Bin 1133 -> 0 bytes ...pletion_content_part_param.cpython-312.pyc | Bin 1594 -> 0 bytes ...content_part_refusal_param.cpython-312.pyc | Bin 748 -> 0 bytes ...mpletion_content_part_text.cpython-312.pyc | Bin 759 -> 0 bytes ...on_content_part_text_param.cpython-312.pyc | Bin 851 -> 0 bytes ...mpletion_custom_tool_param.cpython-312.pyc | Bin 2146 -> 0 bytes .../chat_completion_deleted.cpython-312.pyc | Bin 688 -> 0 bytes ...on_developer_message_param.cpython-312.pyc | Bin 1221 -> 0 bytes ...function_call_option_param.cpython-312.pyc | Bin 801 -> 0 bytes ...ion_function_message_param.cpython-312.pyc | Bin 836 -> 0 bytes ...t_completion_function_tool.cpython-312.pyc | Bin 789 -> 0 bytes ...letion_function_tool_param.cpython-312.pyc | Bin 905 -> 0 bytes .../chat_completion_message.cpython-312.pyc | Bin 2314 -> 0 bytes ...n_message_custom_tool_call.cpython-312.pyc | Bin 1022 -> 0 bytes ...age_custom_tool_call_param.cpython-312.pyc | Bin 1115 -> 0 bytes ...message_function_tool_call.cpython-312.pyc | Bin 1040 -> 0 bytes ...e_function_tool_call_param.cpython-312.pyc | Bin 1136 -> 0 bytes ...t_completion_message_param.cpython-312.pyc | Bin 1101 -> 0 bytes ...mpletion_message_tool_call.cpython-312.pyc | Bin 901 -> 0 bytes ...on_message_tool_call_param.cpython-312.pyc | Bin 610 -> 0 bytes ...sage_tool_call_union_param.cpython-312.pyc | Bin 764 -> 0 bytes .../chat_completion_modality.cpython-312.pyc | Bin 425 -> 0 bytes ...d_tool_choice_custom_param.cpython-312.pyc | Bin 1086 -> 0 bytes ...on_named_tool_choice_param.cpython-312.pyc | Bin 1076 -> 0 bytes ...n_prediction_content_param.cpython-312.pyc | Bin 1095 -> 0 bytes ...ompletion_reasoning_effort.cpython-312.pyc | Bin 371 -> 0 bytes .../chat_completion_role.cpython-312.pyc | Bin 457 -> 0 bytes ...t_completion_store_message.cpython-312.pyc | Bin 1135 -> 0 bytes ...etion_stream_options_param.cpython-312.pyc | Bin 777 -> 0 bytes ...etion_system_message_param.cpython-312.pyc | Bin 1202 -> 0 bytes ...t_completion_token_logprob.cpython-312.pyc | Bin 1080 -> 0 bytes ...n_tool_choice_option_param.cpython-312.pyc | Bin 907 -> 0 bytes ...pletion_tool_message_param.cpython-312.pyc | Bin 993 -> 0 bytes ...chat_completion_tool_param.cpython-312.pyc | Bin 573 -> 0 bytes ...ompletion_tool_union_param.cpython-312.pyc | Bin 688 -> 0 bytes ...pletion_user_message_param.cpython-312.pyc | Bin 1083 -> 0 bytes .../completion_create_params.cpython-312.pyc | Bin 6147 -> 0 bytes .../completion_list_params.cpython-312.pyc | Bin 888 -> 0 bytes .../completion_update_params.cpython-312.pyc | Bin 756 -> 0 bytes .../parsed_chat_completion.cpython-312.pyc | Bin 1529 -> 0 bytes .../parsed_function_tool_call.cpython-312.pyc | Bin 913 -> 0 bytes .../openai/types/chat/chat_completion.py | 95 - ...at_completion_allowed_tool_choice_param.py | 19 - .../chat_completion_allowed_tools_param.py | 34 - ...chat_completion_assistant_message_param.py | 82 - .../types/chat/chat_completion_audio.py | 30 - .../types/chat/chat_completion_audio_param.py | 43 - .../types/chat/chat_completion_chunk.py | 181 - .../chat_completion_content_part_image.py | 29 - ...hat_completion_content_part_image_param.py | 28 - ...mpletion_content_part_input_audio_param.py | 24 - .../chat_completion_content_part_param.py | 45 - ...t_completion_content_part_refusal_param.py | 15 - .../chat/chat_completion_content_part_text.py | 19 - ...chat_completion_content_part_text_param.py | 19 - .../chat/chat_completion_custom_tool_param.py | 68 - .../types/chat/chat_completion_deleted.py | 18 - ...chat_completion_developer_message_param.py | 31 - ...t_completion_function_call_option_param.py | 16 - .../chat_completion_function_message_param.py | 19 - .../chat/chat_completion_function_tool.py | 17 - .../chat_completion_function_tool_param.py | 18 - .../types/chat/chat_completion_message.py | 90 - ...hat_completion_message_custom_tool_call.py | 30 - ...mpletion_message_custom_tool_call_param.py | 30 - ...t_completion_message_function_tool_call.py | 35 - ...letion_message_function_tool_call_param.py | 35 - .../chat/chat_completion_message_param.py | 24 - .../chat/chat_completion_message_tool_call.py | 17 - ...chat_completion_message_tool_call_param.py | 14 - ...ompletion_message_tool_call_union_param.py | 15 - .../types/chat/chat_completion_modality.py | 7 - ...mpletion_named_tool_choice_custom_param.py | 24 - ...chat_completion_named_tool_choice_param.py | 24 - ...hat_completion_prediction_content_param.py | 30 - .../chat/chat_completion_reasoning_effort.py | 7 - .../openai/types/chat/chat_completion_role.py | 7 - .../chat/chat_completion_store_message.py | 25 - .../chat_completion_stream_options_param.py | 33 - .../chat_completion_system_message_param.py | 31 - .../chat/chat_completion_token_logprob.py | 56 - ...hat_completion_tool_choice_option_param.py | 19 - .../chat_completion_tool_message_param.py | 21 - .../types/chat/chat_completion_tool_param.py | 14 - .../chat/chat_completion_tool_union_param.py | 13 - .../chat_completion_user_message_param.py | 30 - .../types/chat/completion_create_params.py | 462 - .../types/chat/completion_list_params.py | 33 - .../types/chat/completion_update_params.py | 22 - .../openai/types/chat/completions/__init__.py | 5 - .../__pycache__/__init__.cpython-312.pyc | Bin 340 -> 0 bytes .../message_list_params.cpython-312.pyc | Bin 711 -> 0 bytes .../chat/completions/message_list_params.py | 21 - .../types/chat/parsed_chat_completion.py | 40 - .../types/chat/parsed_function_tool_call.py | 29 - .../site-packages/openai/types/chat_model.py | 7 - .../site-packages/openai/types/completion.py | 42 - .../openai/types/completion_choice.py | 35 - .../openai/types/completion_create_params.py | 189 - .../openai/types/completion_usage.py | 60 - .../openai/types/container_create_params.py | 51 - .../openai/types/container_create_response.py | 65 - .../openai/types/container_list_params.py | 33 - .../openai/types/container_list_response.py | 65 - .../types/container_retrieve_response.py | 65 - .../openai/types/containers/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 580 -> 0 bytes .../file_create_params.cpython-312.pyc | Bin 678 -> 0 bytes .../file_create_response.cpython-312.pyc | Bin 797 -> 0 bytes .../file_list_params.cpython-312.pyc | Bin 707 -> 0 bytes .../file_list_response.cpython-312.pyc | Bin 793 -> 0 bytes .../file_retrieve_response.cpython-312.pyc | Bin 801 -> 0 bytes .../types/containers/file_create_params.py | 17 - .../types/containers/file_create_response.py | 30 - .../types/containers/file_list_params.py | 30 - .../types/containers/file_list_response.py | 30 - .../containers/file_retrieve_response.py | 30 - .../openai/types/containers/files/__init__.py | 3 - .../__pycache__/__init__.cpython-312.pyc | Bin 273 -> 0 bytes .../openai/types/conversations/__init__.py | 27 - .../__pycache__/__init__.cpython-312.pyc | Bin 1750 -> 0 bytes ...omputer_screenshot_content.cpython-312.pyc | Bin 914 -> 0 bytes .../__pycache__/conversation.cpython-312.pyc | Bin 711 -> 0 bytes ...conversation_create_params.cpython-312.pyc | Bin 918 -> 0 bytes ...versation_deleted_resource.cpython-312.pyc | Bin 693 -> 0 bytes .../conversation_item.cpython-312.pyc | Bin 6772 -> 0 bytes .../conversation_item_list.cpython-312.pyc | Bin 906 -> 0 bytes ...conversation_update_params.cpython-312.pyc | Bin 769 -> 0 bytes .../input_file_content.cpython-312.pyc | Bin 361 -> 0 bytes .../input_file_content_param.cpython-312.pyc | Bin 407 -> 0 bytes .../input_image_content.cpython-312.pyc | Bin 366 -> 0 bytes .../input_image_content_param.cpython-312.pyc | Bin 411 -> 0 bytes .../input_text_content.cpython-312.pyc | Bin 361 -> 0 bytes .../input_text_content_param.cpython-312.pyc | Bin 407 -> 0 bytes .../item_create_params.cpython-312.pyc | Bin 935 -> 0 bytes .../item_list_params.cpython-312.pyc | Bin 880 -> 0 bytes .../item_retrieve_params.cpython-312.pyc | Bin 813 -> 0 bytes .../__pycache__/message.cpython-312.pyc | Bin 2238 -> 0 bytes .../output_text_content.cpython-312.pyc | Bin 366 -> 0 bytes .../output_text_content_param.cpython-312.pyc | Bin 411 -> 0 bytes .../refusal_content.cpython-312.pyc | Bin 364 -> 0 bytes .../refusal_content_param.cpython-312.pyc | Bin 410 -> 0 bytes .../summary_text_content.cpython-312.pyc | Bin 692 -> 0 bytes .../__pycache__/text_content.cpython-312.pyc | Bin 638 -> 0 bytes .../computer_screenshot_content.py | 30 - .../types/conversations/conversation.py | 30 - .../conversation_create_params.py | 29 - .../conversation_deleted_resource.py | 15 - .../types/conversations/conversation_item.py | 254 - .../conversations/conversation_item_list.py | 28 - .../conversation_update_params.py | 22 - .../types/conversations/input_file_content.py | 7 - .../conversations/input_file_content_param.py | 7 - .../conversations/input_image_content.py | 7 - .../input_image_content_param.py | 7 - .../types/conversations/input_text_content.py | 7 - .../conversations/input_text_content_param.py | 7 - .../types/conversations/item_create_params.py | 24 - .../types/conversations/item_list_params.py | 50 - .../conversations/item_retrieve_params.py | 22 - .../openai/types/conversations/message.py | 78 - .../conversations/output_text_content.py | 7 - .../output_text_content_param.py | 7 - .../types/conversations/refusal_content.py | 7 - .../conversations/refusal_content_param.py | 7 - .../conversations/summary_text_content.py | 17 - .../types/conversations/text_content.py | 15 - .../openai/types/create_embedding_response.py | 33 - .../openai/types/deleted_skill.py | 15 - .../site-packages/openai/types/embedding.py | 25 - .../openai/types/embedding_create_params.py | 55 - .../openai/types/embedding_model.py | 7 - .../openai/types/eval_create_params.py | 244 - .../openai/types/eval_create_response.py | 130 - .../types/eval_custom_data_source_config.py | 28 - .../openai/types/eval_delete_response.py | 13 - .../openai/types/eval_list_params.py | 27 - .../openai/types/eval_list_response.py | 130 - .../openai/types/eval_retrieve_response.py | 130 - ...l_stored_completions_data_source_config.py | 34 - .../openai/types/eval_update_params.py | 25 - .../openai/types/eval_update_response.py | 130 - .../openai/types/evals/__init__.py | 22 - .../__pycache__/__init__.cpython-312.pyc | Bin 1141 -> 0 bytes ...ompletions_run_data_source.cpython-312.pyc | Bin 6581 -> 0 bytes ...ions_run_data_source_param.cpython-312.pyc | Bin 6295 -> 0 bytes ...eval_jsonl_run_data_source.cpython-312.pyc | Bin 1923 -> 0 bytes ...sonl_run_data_source_param.cpython-312.pyc | Bin 1866 -> 0 bytes .../eval_api_error.cpython-312.pyc | Bin 618 -> 0 bytes .../run_cancel_response.cpython-312.pyc | Bin 9893 -> 0 bytes .../run_create_params.cpython-312.pyc | Bin 8311 -> 0 bytes .../run_create_response.cpython-312.pyc | Bin 9893 -> 0 bytes .../run_delete_response.cpython-312.pyc | Bin 696 -> 0 bytes .../run_list_params.cpython-312.pyc | Bin 795 -> 0 bytes .../run_list_response.cpython-312.pyc | Bin 9889 -> 0 bytes .../run_retrieve_response.cpython-312.pyc | Bin 9897 -> 0 bytes ...create_eval_completions_run_data_source.py | 258 - ..._eval_completions_run_data_source_param.py | 254 - .../create_eval_jsonl_run_data_source.py | 46 - ...create_eval_jsonl_run_data_source_param.py | 51 - .../openai/types/evals/eval_api_error.py | 15 - .../openai/types/evals/run_cancel_response.py | 452 - .../openai/types/evals/run_create_params.py | 371 - .../openai/types/evals/run_create_response.py | 452 - .../openai/types/evals/run_delete_response.py | 15 - .../openai/types/evals/run_list_params.py | 27 - .../openai/types/evals/run_list_response.py | 452 - .../types/evals/run_retrieve_response.py | 452 - .../openai/types/evals/runs/__init__.py | 7 - .../runs/__pycache__/__init__.cpython-312.pyc | Bin 495 -> 0 bytes .../output_item_list_params.cpython-312.pyc | Bin 832 -> 0 bytes .../output_item_list_response.cpython-312.pyc | Bin 3545 -> 0 bytes ...put_item_retrieve_response.cpython-312.pyc | Bin 3553 -> 0 bytes .../evals/runs/output_item_list_params.py | 30 - .../evals/runs/output_item_list_response.py | 144 - .../runs/output_item_retrieve_response.py | 144 - .../openai/types/file_chunking_strategy.py | 14 - .../types/file_chunking_strategy_param.py | 13 - .../openai/types/file_content.py | 7 - .../openai/types/file_create_params.py | 52 - .../openai/types/file_deleted.py | 15 - .../openai/types/file_list_params.py | 33 - .../site-packages/openai/types/file_object.py | 60 - .../openai/types/file_purpose.py | 7 - .../openai/types/fine_tuning/__init__.py | 26 - .../__pycache__/__init__.cpython-312.pyc | Bin 1689 -> 0 bytes .../dpo_hyperparameters.cpython-312.pyc | Bin 1032 -> 0 bytes .../dpo_hyperparameters_param.cpython-312.pyc | Bin 920 -> 0 bytes .../__pycache__/dpo_method.cpython-312.pyc | Bin 730 -> 0 bytes .../dpo_method_param.cpython-312.pyc | Bin 751 -> 0 bytes .../fine_tuning_job.cpython-312.pyc | Bin 3617 -> 0 bytes .../fine_tuning_job_event.cpython-312.pyc | Bin 1056 -> 0 bytes ...ine_tuning_job_integration.cpython-312.pyc | Bin 378 -> 0 bytes ...ning_job_wandb_integration.cpython-312.pyc | Bin 1130 -> 0 bytes ...b_wandb_integration_object.cpython-312.pyc | Bin 762 -> 0 bytes .../job_create_params.cpython-312.pyc | Bin 3368 -> 0 bytes .../job_list_events_params.cpython-312.pyc | Bin 639 -> 0 bytes .../job_list_params.cpython-312.pyc | Bin 740 -> 0 bytes ...nforcement_hyperparameters.cpython-312.pyc | Bin 1375 -> 0 bytes ...ment_hyperparameters_param.cpython-312.pyc | Bin 1122 -> 0 bytes .../reinforcement_method.cpython-312.pyc | Bin 1304 -> 0 bytes ...reinforcement_method_param.cpython-312.pyc | Bin 1411 -> 0 bytes ...supervised_hyperparameters.cpython-312.pyc | Bin 964 -> 0 bytes ...ised_hyperparameters_param.cpython-312.pyc | Bin 899 -> 0 bytes .../supervised_method.cpython-312.pyc | Bin 764 -> 0 bytes .../supervised_method_param.cpython-312.pyc | Bin 784 -> 0 bytes .../types/fine_tuning/alpha/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 539 -> 0 bytes .../grader_run_params.cpython-312.pyc | Bin 1274 -> 0 bytes .../grader_run_response.cpython-312.pyc | Bin 2511 -> 0 bytes .../grader_validate_params.cpython-312.pyc | Bin 1194 -> 0 bytes .../grader_validate_response.cpython-312.pyc | Bin 1111 -> 0 bytes .../fine_tuning/alpha/grader_run_params.py | 40 - .../fine_tuning/alpha/grader_run_response.py | 67 - .../alpha/grader_validate_params.py | 24 - .../alpha/grader_validate_response.py | 20 - .../types/fine_tuning/checkpoints/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 805 -> 0 bytes .../permission_create_params.cpython-312.pyc | Bin 727 -> 0 bytes ...permission_create_response.cpython-312.pyc | Bin 870 -> 0 bytes ...permission_delete_response.cpython-312.pyc | Bin 713 -> 0 bytes .../permission_list_params.cpython-312.pyc | Bin 766 -> 0 bytes .../permission_list_response.cpython-312.pyc | Bin 866 -> 0 bytes ...permission_retrieve_params.cpython-312.pyc | Bin 774 -> 0 bytes ...rmission_retrieve_response.cpython-312.pyc | Bin 1311 -> 0 bytes .../checkpoints/permission_create_params.py | 14 - .../checkpoints/permission_create_response.py | 25 - .../checkpoints/permission_delete_response.py | 18 - .../checkpoints/permission_list_params.py | 21 - .../checkpoints/permission_list_response.py | 25 - .../checkpoints/permission_retrieve_params.py | 21 - .../permission_retrieve_response.py | 38 - .../types/fine_tuning/dpo_hyperparameters.py | 38 - .../fine_tuning/dpo_hyperparameters_param.py | 38 - .../openai/types/fine_tuning/dpo_method.py | 15 - .../types/fine_tuning/dpo_method_param.py | 16 - .../types/fine_tuning/fine_tuning_job.py | 176 - .../fine_tuning/fine_tuning_job_event.py | 34 - .../fine_tuning_job_integration.py | 5 - .../fine_tuning_job_wandb_integration.py | 40 - ...ine_tuning_job_wandb_integration_object.py | 21 - .../types/fine_tuning/job_create_params.py | 190 - .../fine_tuning/job_list_events_params.py | 15 - .../types/fine_tuning/job_list_params.py | 23 - .../openai/types/fine_tuning/jobs/__init__.py | 6 - .../jobs/__pycache__/__init__.cpython-312.pyc | Bin 421 -> 0 bytes .../checkpoint_list_params.cpython-312.pyc | Bin 645 -> 0 bytes ...fine_tuning_job_checkpoint.cpython-312.pyc | Bin 1707 -> 0 bytes .../jobs/checkpoint_list_params.py | 15 - .../jobs/fine_tuning_job_checkpoint.py | 53 - .../reinforcement_hyperparameters.py | 45 - .../reinforcement_hyperparameters_param.py | 45 - .../types/fine_tuning/reinforcement_method.py | 26 - .../fine_tuning/reinforcement_method_param.py | 29 - .../fine_tuning/supervised_hyperparameters.py | 31 - .../supervised_hyperparameters_param.py | 31 - .../types/fine_tuning/supervised_method.py | 15 - .../fine_tuning/supervised_method_param.py | 16 - .../openai/types/graders/__init__.py | 18 - .../__pycache__/__init__.cpython-312.pyc | Bin 1148 -> 0 bytes .../__pycache__/grader_inputs.cpython-312.pyc | Bin 1503 -> 0 bytes .../grader_inputs_param.cpython-312.pyc | Bin 1584 -> 0 bytes .../label_model_grader.cpython-312.pyc | Bin 2757 -> 0 bytes .../label_model_grader_param.cpython-312.pyc | Bin 2873 -> 0 bytes .../__pycache__/multi_grader.cpython-312.pyc | Bin 1261 -> 0 bytes .../multi_grader_param.cpython-312.pyc | Bin 1425 -> 0 bytes .../__pycache__/python_grader.cpython-312.pyc | Bin 826 -> 0 bytes .../python_grader_param.cpython-312.pyc | Bin 848 -> 0 bytes .../score_model_grader.cpython-312.pyc | Bin 3390 -> 0 bytes .../score_model_grader_param.cpython-312.pyc | Bin 3318 -> 0 bytes .../string_check_grader.cpython-312.pyc | Bin 910 -> 0 bytes .../string_check_grader_param.cpython-312.pyc | Bin 1010 -> 0 bytes .../text_similarity_grader.cpython-312.pyc | Bin 957 -> 0 bytes ...xt_similarity_grader_param.cpython-312.pyc | Bin 1068 -> 0 bytes .../openai/types/graders/grader_inputs.py | 43 - .../types/graders/grader_inputs_param.py | 53 - .../types/graders/label_model_grader.py | 92 - .../types/graders/label_model_grader_param.py | 99 - .../openai/types/graders/multi_grader.py | 36 - .../types/graders/multi_grader_param.py | 39 - .../openai/types/graders/python_grader.py | 24 - .../types/graders/python_grader_param.py | 23 - .../types/graders/score_model_grader.py | 135 - .../types/graders/score_model_grader_param.py | 141 - .../types/graders/string_check_grader.py | 28 - .../graders/string_check_grader_param.py | 28 - .../types/graders/text_similarity_grader.py | 42 - .../graders/text_similarity_grader_param.py | 44 - .../site-packages/openai/types/image.py | 28 - .../types/image_create_variation_params.py | 48 - .../types/image_edit_completed_event.py | 66 - .../openai/types/image_edit_params.py | 160 - .../types/image_edit_partial_image_event.py | 35 - .../openai/types/image_edit_stream_event.py | 14 - .../openai/types/image_gen_completed_event.py | 66 - .../types/image_gen_partial_image_event.py | 35 - .../openai/types/image_gen_stream_event.py | 14 - .../openai/types/image_generate_params.py | 159 - .../types/image_input_reference_param.py | 14 - .../site-packages/openai/types/image_model.py | 16 - .../openai/types/images_response.py | 79 - .../site-packages/openai/types/model.py | 23 - .../openai/types/model_deleted.py | 13 - .../site-packages/openai/types/moderation.py | 194 - .../openai/types/moderation_create_params.py | 30 - .../types/moderation_create_response.py | 21 - .../types/moderation_image_url_input_param.py | 24 - .../openai/types/moderation_model.py | 9 - .../moderation_multi_modal_input_param.py | 13 - .../types/moderation_text_input_param.py | 17 - .../other_file_chunking_strategy_object.py | 17 - .../openai/types/realtime/__init__.py | 242 - .../__pycache__/__init__.cpython-312.pyc | Bin 14091 -> 0 bytes .../audio_transcription.cpython-312.pyc | Bin 1082 -> 0 bytes .../audio_transcription_param.cpython-312.pyc | Bin 994 -> 0 bytes .../call_accept_params.cpython-312.pyc | Bin 2483 -> 0 bytes .../call_create_params.cpython-312.pyc | Bin 761 -> 0 bytes .../call_refer_params.cpython-312.pyc | Bin 632 -> 0 bytes .../call_reject_params.cpython-312.pyc | Bin 606 -> 0 bytes ...lient_secret_create_params.cpython-312.pyc | Bin 1644 -> 0 bytes ...ent_secret_create_response.cpython-312.pyc | Bin 1211 -> 0 bytes ...conversation_created_event.cpython-312.pyc | Bin 1197 -> 0 bytes .../conversation_item.cpython-312.pyc | Bin 1444 -> 0 bytes .../conversation_item_added.cpython-312.pyc | Bin 1654 -> 0 bytes ...ersation_item_create_event.cpython-312.pyc | Bin 1379 -> 0 bytes ...on_item_create_event_param.cpython-312.pyc | Bin 1398 -> 0 bytes ...rsation_item_created_event.cpython-312.pyc | Bin 1546 -> 0 bytes ...ersation_item_delete_event.cpython-312.pyc | Bin 1080 -> 0 bytes ...on_item_delete_event_param.cpython-312.pyc | Bin 1100 -> 0 bytes ...rsation_item_deleted_event.cpython-312.pyc | Bin 967 -> 0 bytes .../conversation_item_done.cpython-312.pyc | Bin 1105 -> 0 bytes ...nscription_completed_event.cpython-312.pyc | Bin 3114 -> 0 bytes ..._transcription_delta_event.cpython-312.pyc | Bin 1253 -> 0 bytes ...transcription_failed_event.cpython-312.pyc | Bin 1566 -> 0 bytes ...udio_transcription_segment.cpython-312.pyc | Bin 1047 -> 0 bytes .../conversation_item_param.cpython-312.pyc | Bin 1467 -> 0 bytes ...sation_item_retrieve_event.cpython-312.pyc | Bin 1211 -> 0 bytes ..._item_retrieve_event_param.cpython-312.pyc | Bin 1231 -> 0 bytes ...sation_item_truncate_event.cpython-312.pyc | Bin 1494 -> 0 bytes ..._item_truncate_event_param.cpython-312.pyc | Bin 1524 -> 0 bytes ...ation_item_truncated_event.cpython-312.pyc | Bin 1225 -> 0 bytes ..._audio_buffer_append_event.cpython-312.pyc | Bin 1722 -> 0 bytes ..._buffer_append_event_param.cpython-312.pyc | Bin 1742 -> 0 bytes ...t_audio_buffer_clear_event.cpython-312.pyc | Bin 904 -> 0 bytes ...o_buffer_clear_event_param.cpython-312.pyc | Bin 908 -> 0 bytes ...audio_buffer_cleared_event.cpython-312.pyc | Bin 820 -> 0 bytes ..._audio_buffer_commit_event.cpython-312.pyc | Bin 1337 -> 0 bytes ..._buffer_commit_event_param.cpython-312.pyc | Bin 1341 -> 0 bytes ...dio_buffer_committed_event.cpython-312.pyc | Bin 1133 -> 0 bytes ..._dtmf_event_received_event.cpython-312.pyc | Bin 1078 -> 0 bytes ...uffer_speech_started_event.cpython-312.pyc | Bin 1497 -> 0 bytes ...uffer_speech_stopped_event.cpython-312.pyc | Bin 1036 -> 0 bytes ...o_buffer_timeout_triggered.cpython-312.pyc | Bin 1872 -> 0 bytes .../log_prob_properties.cpython-312.pyc | Bin 694 -> 0 bytes .../mcp_list_tools_completed.cpython-312.pyc | Bin 768 -> 0 bytes .../mcp_list_tools_failed.cpython-312.pyc | Bin 756 -> 0 bytes ...mcp_list_tools_in_progress.cpython-312.pyc | Bin 776 -> 0 bytes .../noise_reduction_type.cpython-312.pyc | Bin 432 -> 0 bytes ...t_audio_buffer_clear_event.cpython-312.pyc | Bin 1202 -> 0 bytes ...o_buffer_clear_event_param.cpython-312.pyc | Bin 1206 -> 0 bytes .../rate_limits_updated_event.cpython-312.pyc | Bin 1522 -> 0 bytes .../realtime_audio_config.cpython-312.pyc | Bin 877 -> 0 bytes ...ealtime_audio_config_input.cpython-312.pyc | Bin 1742 -> 0 bytes ...e_audio_config_input_param.cpython-312.pyc | Bin 1768 -> 0 bytes ...altime_audio_config_output.cpython-312.pyc | Bin 1308 -> 0 bytes ..._audio_config_output_param.cpython-312.pyc | Bin 1310 -> 0 bytes ...ealtime_audio_config_param.cpython-312.pyc | Bin 883 -> 0 bytes .../realtime_audio_formats.cpython-312.pyc | Bin 1610 -> 0 bytes ...altime_audio_formats_param.cpython-312.pyc | Bin 1393 -> 0 bytes ...audio_input_turn_detection.cpython-312.pyc | Bin 2074 -> 0 bytes ...input_turn_detection_param.cpython-312.pyc | Bin 1796 -> 0 bytes .../realtime_client_event.cpython-312.pyc | Bin 1500 -> 0 bytes ...ealtime_client_event_param.cpython-312.pyc | Bin 1545 -> 0 bytes .../realtime_connect_params.cpython-312.pyc | Bin 628 -> 0 bytes ...ion_item_assistant_message.cpython-312.pyc | Bin 1561 -> 0 bytes ...em_assistant_message_param.cpython-312.pyc | Bin 1459 -> 0 bytes ...rsation_item_function_call.cpython-312.pyc | Bin 1119 -> 0 bytes ..._item_function_call_output.cpython-312.pyc | Bin 1094 -> 0 bytes ...function_call_output_param.cpython-312.pyc | Bin 1066 -> 0 bytes ...n_item_function_call_param.cpython-312.pyc | Bin 1068 -> 0 bytes ...sation_item_system_message.cpython-312.pyc | Bin 1831 -> 0 bytes ..._item_system_message_param.cpython-312.pyc | Bin 1779 -> 0 bytes ...ersation_item_user_message.cpython-312.pyc | Bin 1699 -> 0 bytes ...on_item_user_message_param.cpython-312.pyc | Bin 1552 -> 0 bytes .../realtime_error.cpython-312.pyc | Bin 789 -> 0 bytes .../realtime_error_event.cpython-312.pyc | Bin 978 -> 0 bytes .../realtime_function_tool.cpython-312.pyc | Bin 858 -> 0 bytes ...altime_function_tool_param.cpython-312.pyc | Bin 760 -> 0 bytes ...ltime_mcp_approval_request.cpython-312.pyc | Bin 836 -> 0 bytes ...mcp_approval_request_param.cpython-312.pyc | Bin 922 -> 0 bytes ...time_mcp_approval_response.cpython-312.pyc | Bin 912 -> 0 bytes ...cp_approval_response_param.cpython-312.pyc | Bin 994 -> 0 bytes .../realtime_mcp_list_tools.cpython-312.pyc | Bin 1287 -> 0 bytes ...ltime_mcp_list_tools_param.cpython-312.pyc | Bin 1324 -> 0 bytes ...ealtime_mcp_protocol_error.cpython-312.pyc | Bin 676 -> 0 bytes ...e_mcp_protocol_error_param.cpython-312.pyc | Bin 771 -> 0 bytes .../realtime_mcp_tool_call.cpython-312.pyc | Bin 1527 -> 0 bytes ...altime_mcp_tool_call_param.cpython-312.pyc | Bin 1460 -> 0 bytes ...e_mcp_tool_execution_error.cpython-312.pyc | Bin 667 -> 0 bytes ...tool_execution_error_param.cpython-312.pyc | Bin 751 -> 0 bytes .../realtime_mcphttp_error.cpython-312.pyc | Bin 662 -> 0 bytes ...altime_mcphttp_error_param.cpython-312.pyc | Bin 758 -> 0 bytes .../realtime_reasoning.cpython-312.pyc | Bin 778 -> 0 bytes .../realtime_reasoning_effort.cpython-312.pyc | Bin 454 -> 0 bytes .../realtime_reasoning_param.cpython-312.pyc | Bin 787 -> 0 bytes .../realtime_response.cpython-312.pyc | Bin 2537 -> 0 bytes ...sponse_create_audio_output.cpython-312.pyc | Bin 1552 -> 0 bytes ..._create_audio_output_param.cpython-312.pyc | Bin 1532 -> 0 bytes ...e_response_create_mcp_tool.cpython-312.pyc | Bin 3315 -> 0 bytes ...onse_create_mcp_tool_param.cpython-312.pyc | Bin 3126 -> 0 bytes ...ime_response_create_params.cpython-312.pyc | Bin 2516 -> 0 bytes ...sponse_create_params_param.cpython-312.pyc | Bin 2422 -> 0 bytes .../realtime_response_status.cpython-312.pyc | Bin 1376 -> 0 bytes .../realtime_response_usage.cpython-312.pyc | Bin 1429 -> 0 bytes ..._usage_input_token_details.cpython-312.pyc | Bin 1642 -> 0 bytes ...usage_output_token_details.cpython-312.pyc | Bin 782 -> 0 bytes .../realtime_server_event.cpython-312.pyc | Bin 7741 -> 0 bytes ...ime_session_create_request.cpython-312.pyc | Bin 2698 -> 0 bytes ...ssion_create_request_param.cpython-312.pyc | Bin 2575 -> 0 bytes ...me_session_create_response.cpython-312.pyc | Bin 9986 -> 0 bytes ...ealtime_tool_choice_config.cpython-312.pyc | Bin 666 -> 0 bytes ...e_tool_choice_config_param.cpython-312.pyc | Bin 751 -> 0 bytes .../realtime_tools_config.cpython-312.pyc | Bin 506 -> 0 bytes ...ealtime_tools_config_param.cpython-312.pyc | Bin 3370 -> 0 bytes ...ealtime_tools_config_union.cpython-312.pyc | Bin 3591 -> 0 bytes ...e_tools_config_union_param.cpython-312.pyc | Bin 3288 -> 0 bytes .../realtime_tracing_config.cpython-312.pyc | Bin 993 -> 0 bytes ...ltime_tracing_config_param.cpython-312.pyc | Bin 945 -> 0 bytes ...ranscription_session_audio.cpython-312.pyc | Bin 804 -> 0 bytes ...iption_session_audio_input.cpython-312.pyc | Bin 1817 -> 0 bytes ..._session_audio_input_param.cpython-312.pyc | Bin 1863 -> 0 bytes ...audio_input_turn_detection.cpython-312.pyc | Bin 2119 -> 0 bytes ...input_turn_detection_param.cpython-312.pyc | Bin 1841 -> 0 bytes ...iption_session_audio_param.cpython-312.pyc | Bin 822 -> 0 bytes ...ion_session_create_request.cpython-312.pyc | Bin 1074 -> 0 bytes ...ssion_create_request_param.cpython-312.pyc | Bin 1075 -> 0 bytes ...on_session_create_response.cpython-312.pyc | Bin 2406 -> 0 bytes ...ion_session_turn_detection.cpython-312.pyc | Bin 1174 -> 0 bytes .../realtime_truncation.cpython-312.pyc | Bin 577 -> 0 bytes .../realtime_truncation_param.cpython-312.pyc | Bin 651 -> 0 bytes ...truncation_retention_ratio.cpython-312.pyc | Bin 1410 -> 0 bytes ...tion_retention_ratio_param.cpython-312.pyc | Bin 1396 -> 0 bytes ...response_audio_delta_event.cpython-312.pyc | Bin 907 -> 0 bytes .../response_audio_done_event.cpython-312.pyc | Bin 963 -> 0 bytes ...dio_transcript_delta_event.cpython-312.pyc | Bin 963 -> 0 bytes ...udio_transcript_done_event.cpython-312.pyc | Bin 1065 -> 0 bytes .../response_cancel_event.cpython-312.pyc | Bin 1185 -> 0 bytes ...esponse_cancel_event_param.cpython-312.pyc | Bin 1166 -> 0 bytes ...e_content_part_added_event.cpython-312.pyc | Bin 1478 -> 0 bytes ...se_content_part_done_event.cpython-312.pyc | Bin 1522 -> 0 bytes .../response_create_event.cpython-312.pyc | Bin 2313 -> 0 bytes ...esponse_create_event_param.cpython-312.pyc | Bin 2303 -> 0 bytes .../response_created_event.cpython-312.pyc | Bin 926 -> 0 bytes .../response_done_event.cpython-312.pyc | Bin 1315 -> 0 bytes ...call_arguments_delta_event.cpython-312.pyc | Bin 964 -> 0 bytes ..._call_arguments_done_event.cpython-312.pyc | Bin 1087 -> 0 bytes ...e_mcp_call_arguments_delta.cpython-312.pyc | Bin 1016 -> 0 bytes ...se_mcp_call_arguments_done.cpython-312.pyc | Bin 919 -> 0 bytes ...esponse_mcp_call_completed.cpython-312.pyc | Bin 819 -> 0 bytes .../response_mcp_call_failed.cpython-312.pyc | Bin 792 -> 0 bytes ...ponse_mcp_call_in_progress.cpython-312.pyc | Bin 828 -> 0 bytes ...se_output_item_added_event.cpython-312.pyc | Bin 933 -> 0 bytes ...nse_output_item_done_event.cpython-312.pyc | Bin 994 -> 0 bytes .../response_text_delta_event.cpython-312.pyc | Bin 926 -> 0 bytes .../response_text_done_event.cpython-312.pyc | Bin 1016 -> 0 bytes .../session_created_event.cpython-312.pyc | Bin 1234 -> 0 bytes .../session_update_event.cpython-312.pyc | Bin 1728 -> 0 bytes ...session_update_event_param.cpython-312.pyc | Bin 1791 -> 0 bytes .../session_updated_event.cpython-312.pyc | Bin 1141 -> 0 bytes .../types/realtime/audio_transcription.py | 55 - .../realtime/audio_transcription_param.py | 54 - .../types/realtime/call_accept_params.py | 143 - .../types/realtime/call_create_params.py | 17 - .../types/realtime/call_refer_params.py | 15 - .../types/realtime/call_reject_params.py | 15 - .../realtime/client_secret_create_params.py | 54 - .../realtime/client_secret_create_response.py | 28 - .../realtime/conversation_created_event.py | 31 - .../types/realtime/conversation_item.py | 32 - .../types/realtime/conversation_item_added.py | 36 - .../conversation_item_create_event.py | 43 - .../conversation_item_create_event_param.py | 43 - .../conversation_item_created_event.py | 40 - .../conversation_item_delete_event.py | 27 - .../conversation_item_delete_event_param.py | 26 - .../conversation_item_deleted_event.py | 24 - .../types/realtime/conversation_item_done.py | 31 - ...put_audio_transcription_completed_event.py | 98 - ...m_input_audio_transcription_delta_event.py | 40 - ..._input_audio_transcription_failed_event.py | 47 - ..._item_input_audio_transcription_segment.py | 38 - .../types/realtime/conversation_item_param.py | 30 - .../conversation_item_retrieve_event.py | 26 - .../conversation_item_retrieve_event_param.py | 25 - .../conversation_item_truncate_event.py | 47 - .../conversation_item_truncate_event_param.py | 46 - .../conversation_item_truncated_event.py | 33 - .../input_audio_buffer_append_event.py | 40 - .../input_audio_buffer_append_event_param.py | 39 - .../input_audio_buffer_clear_event.py | 22 - .../input_audio_buffer_clear_event_param.py | 21 - .../input_audio_buffer_cleared_event.py | 20 - .../input_audio_buffer_commit_event.py | 22 - .../input_audio_buffer_commit_event_param.py | 21 - .../input_audio_buffer_committed_event.py | 32 - ..._audio_buffer_dtmf_event_received_event.py | 26 - ...input_audio_buffer_speech_started_event.py | 39 - ...input_audio_buffer_speech_stopped_event.py | 31 - .../input_audio_buffer_timeout_triggered.py | 47 - .../types/realtime/log_prob_properties.py | 20 - .../realtime/mcp_list_tools_completed.py | 20 - .../types/realtime/mcp_list_tools_failed.py | 20 - .../realtime/mcp_list_tools_in_progress.py | 20 - .../types/realtime/noise_reduction_type.py | 7 - .../output_audio_buffer_clear_event.py | 25 - .../output_audio_buffer_clear_event_param.py | 24 - .../realtime/rate_limits_updated_event.py | 41 - .../types/realtime/realtime_audio_config.py | 17 - .../realtime/realtime_audio_config_input.py | 73 - .../realtime_audio_config_input_param.py | 75 - .../realtime/realtime_audio_config_output.py | 47 - .../realtime_audio_config_output_param.py | 48 - .../realtime/realtime_audio_config_param.py | 18 - .../types/realtime/realtime_audio_formats.py | 36 - .../realtime/realtime_audio_formats_param.py | 35 - .../realtime_audio_input_turn_detection.py | 115 - ...altime_audio_input_turn_detection_param.py | 112 - .../types/realtime/realtime_client_event.py | 36 - .../realtime/realtime_client_event_param.py | 34 - .../types/realtime/realtime_connect_params.py | 13 - ...ime_conversation_item_assistant_message.py | 60 - ...nversation_item_assistant_message_param.py | 60 - ...ealtime_conversation_item_function_call.py | 43 - ..._conversation_item_function_call_output.py | 39 - ...rsation_item_function_call_output_param.py | 38 - ...e_conversation_item_function_call_param.py | 42 - ...altime_conversation_item_system_message.py | 46 - ..._conversation_item_system_message_param.py | 46 - ...realtime_conversation_item_user_message.py | 71 - ...me_conversation_item_user_message_param.py | 71 - .../openai/types/realtime/realtime_error.py | 26 - .../types/realtime/realtime_error_event.py | 25 - .../types/realtime/realtime_function_tool.py | 25 - .../realtime/realtime_function_tool_param.py | 24 - .../realtime/realtime_mcp_approval_request.py | 26 - .../realtime_mcp_approval_request_param.py | 26 - .../realtime_mcp_approval_response.py | 27 - .../realtime_mcp_approval_response_param.py | 27 - .../types/realtime/realtime_mcp_list_tools.py | 40 - .../realtime/realtime_mcp_list_tools_param.py | 40 - .../realtime/realtime_mcp_protocol_error.py | 15 - .../realtime_mcp_protocol_error_param.py | 15 - .../types/realtime/realtime_mcp_tool_call.py | 45 - .../realtime/realtime_mcp_tool_call_param.py | 42 - .../realtime_mcp_tool_execution_error.py | 13 - ...realtime_mcp_tool_execution_error_param.py | 13 - .../types/realtime/realtime_mcphttp_error.py | 15 - .../realtime/realtime_mcphttp_error_param.py | 15 - .../types/realtime/realtime_reasoning.py | 18 - .../realtime/realtime_reasoning_effort.py | 7 - .../realtime/realtime_reasoning_param.py | 19 - .../types/realtime/realtime_response.py | 102 - .../realtime_response_create_audio_output.py | 42 - ...time_response_create_audio_output_param.py | 43 - .../realtime_response_create_mcp_tool.py | 156 - ...realtime_response_create_mcp_tool_param.py | 156 - .../realtime_response_create_params.py | 110 - .../realtime_response_create_params_param.py | 111 - .../realtime/realtime_response_status.py | 46 - .../types/realtime/realtime_response_usage.py | 49 - ...time_response_usage_input_token_details.py | 42 - ...ime_response_usage_output_token_details.py | 17 - .../types/realtime/realtime_server_event.py | 185 - .../realtime_session_create_request.py | 145 - .../realtime_session_create_request_param.py | 145 - .../realtime_session_create_response.py | 539 - .../realtime/realtime_tool_choice_config.py | 12 - .../realtime_tool_choice_config_param.py | 14 - .../types/realtime/realtime_tools_config.py | 10 - .../realtime/realtime_tools_config_param.py | 164 - .../realtime/realtime_tools_config_union.py | 162 - .../realtime_tools_config_union_param.py | 161 - .../types/realtime/realtime_tracing_config.py | 33 - .../realtime/realtime_tracing_config_param.py | 33 - .../realtime_transcription_session_audio.py | 14 - ...ltime_transcription_session_audio_input.py | 75 - ...transcription_session_audio_input_param.py | 77 - ...tion_session_audio_input_turn_detection.py | 115 - ...ession_audio_input_turn_detection_param.py | 112 - ...ltime_transcription_session_audio_param.py | 15 - ...me_transcription_session_create_request.py | 29 - ...nscription_session_create_request_param.py | 30 - ...e_transcription_session_create_response.py | 73 - ...me_transcription_session_turn_detection.py | 39 - .../types/realtime/realtime_truncation.py | 10 - .../realtime/realtime_truncation_param.py | 12 - .../realtime_truncation_retention_ratio.py | 47 - ...altime_truncation_retention_ratio_param.py | 46 - .../realtime/response_audio_delta_event.py | 32 - .../realtime/response_audio_done_event.py | 33 - .../response_audio_transcript_delta_event.py | 32 - .../response_audio_transcript_done_event.py | 36 - .../types/realtime/response_cancel_event.py | 31 - .../realtime/response_cancel_event_param.py | 30 - .../response_content_part_added_event.py | 52 - .../response_content_part_done_event.py | 52 - .../types/realtime/response_create_event.py | 48 - .../realtime/response_create_event_param.py | 48 - .../types/realtime/response_created_event.py | 25 - .../types/realtime/response_done_event.py | 32 - ...nse_function_call_arguments_delta_event.py | 32 - ...onse_function_call_arguments_done_event.py | 38 - .../response_mcp_call_arguments_delta.py | 33 - .../response_mcp_call_arguments_done.py | 29 - .../realtime/response_mcp_call_completed.py | 23 - .../realtime/response_mcp_call_failed.py | 23 - .../realtime/response_mcp_call_in_progress.py | 23 - .../response_output_item_added_event.py | 27 - .../response_output_item_done_event.py | 31 - .../realtime/response_text_delta_event.py | 32 - .../realtime/response_text_done_event.py | 36 - .../types/realtime/session_created_event.py | 30 - .../types/realtime/session_update_event.py | 43 - .../realtime/session_update_event_param.py | 44 - .../types/realtime/session_updated_event.py | 28 - .../openai/types/responses/__init__.py | 330 - .../__pycache__/__init__.cpython-312.pyc | Bin 18779 -> 0 bytes .../apply_patch_tool.cpython-312.pyc | Bin 694 -> 0 bytes .../apply_patch_tool_param.cpython-312.pyc | Bin 768 -> 0 bytes .../compacted_response.cpython-312.pyc | Bin 930 -> 0 bytes .../computer_action.cpython-312.pyc | Bin 4036 -> 0 bytes .../computer_action_list.cpython-312.pyc | Bin 482 -> 0 bytes ...computer_action_list_param.cpython-312.pyc | Bin 4034 -> 0 bytes .../computer_action_param.cpython-312.pyc | Bin 3942 -> 0 bytes .../__pycache__/computer_tool.cpython-312.pyc | Bin 762 -> 0 bytes .../computer_tool_param.cpython-312.pyc | Bin 836 -> 0 bytes .../computer_use_preview_tool.cpython-312.pyc | Bin 963 -> 0 bytes ...ter_use_preview_tool_param.cpython-312.pyc | Bin 1061 -> 0 bytes .../container_auto.cpython-312.pyc | Bin 1612 -> 0 bytes .../container_auto_param.cpython-312.pyc | Bin 1530 -> 0 bytes ...r_network_policy_allowlist.cpython-312.pyc | Bin 934 -> 0 bytes ...ork_policy_allowlist_param.cpython-312.pyc | Bin 1071 -> 0 bytes ...er_network_policy_disabled.cpython-312.pyc | Bin 630 -> 0 bytes ...work_policy_disabled_param.cpython-312.pyc | Bin 704 -> 0 bytes ...twork_policy_domain_secret.cpython-312.pyc | Bin 617 -> 0 bytes ...policy_domain_secret_param.cpython-312.pyc | Bin 733 -> 0 bytes .../container_reference.cpython-312.pyc | Bin 658 -> 0 bytes .../container_reference_param.cpython-312.pyc | Bin 741 -> 0 bytes .../__pycache__/custom_tool.cpython-312.pyc | Bin 1124 -> 0 bytes .../custom_tool_param.cpython-312.pyc | Bin 1106 -> 0 bytes .../easy_input_message.cpython-312.pyc | Bin 1394 -> 0 bytes .../easy_input_message_param.cpython-312.pyc | Bin 1463 -> 0 bytes .../file_search_tool.cpython-312.pyc | Bin 2249 -> 0 bytes .../file_search_tool_param.cpython-312.pyc | Bin 2216 -> 0 bytes .../function_shell_tool.cpython-312.pyc | Bin 1214 -> 0 bytes .../function_shell_tool_param.cpython-312.pyc | Bin 1175 -> 0 bytes .../__pycache__/function_tool.cpython-312.pyc | Bin 1140 -> 0 bytes .../function_tool_param.cpython-312.pyc | Bin 1175 -> 0 bytes .../__pycache__/inline_skill.cpython-312.pyc | Bin 753 -> 0 bytes .../inline_skill_param.cpython-312.pyc | Bin 879 -> 0 bytes .../inline_skill_source.cpython-312.pyc | Bin 734 -> 0 bytes .../inline_skill_source_param.cpython-312.pyc | Bin 828 -> 0 bytes .../input_item_list_params.cpython-312.pyc | Bin 877 -> 0 bytes .../input_token_count_params.cpython-312.pyc | Bin 3045 -> 0 bytes ...input_token_count_response.cpython-312.pyc | Bin 664 -> 0 bytes .../local_environment.cpython-312.pyc | Bin 783 -> 0 bytes .../local_environment_param.cpython-312.pyc | Bin 830 -> 0 bytes .../__pycache__/local_skill.cpython-312.pyc | Bin 570 -> 0 bytes .../local_skill_param.cpython-312.pyc | Bin 686 -> 0 bytes .../namespace_tool.cpython-312.pyc | Bin 1592 -> 0 bytes .../namespace_tool_param.cpython-312.pyc | Bin 1529 -> 0 bytes .../parsed_response.cpython-312.pyc | Bin 4665 -> 0 bytes .../__pycache__/response.cpython-312.pyc | Bin 5340 -> 0 bytes ...onse_apply_patch_tool_call.cpython-312.pyc | Bin 2274 -> 0 bytes ...ply_patch_tool_call_output.cpython-312.pyc | Bin 996 -> 0 bytes ...response_audio_delta_event.cpython-312.pyc | Bin 771 -> 0 bytes .../response_audio_done_event.cpython-312.pyc | Bin 731 -> 0 bytes ...dio_transcript_delta_event.cpython-312.pyc | Bin 808 -> 0 bytes ...udio_transcript_done_event.cpython-312.pyc | Bin 773 -> 0 bytes ...eter_call_code_delta_event.cpython-312.pyc | Bin 924 -> 0 bytes ...reter_call_code_done_event.cpython-312.pyc | Bin 911 -> 0 bytes ...reter_call_completed_event.cpython-312.pyc | Bin 875 -> 0 bytes ...ter_call_in_progress_event.cpython-312.pyc | Bin 880 -> 0 bytes ...er_call_interpreting_event.cpython-312.pyc | Bin 908 -> 0 bytes ...code_interpreter_tool_call.cpython-312.pyc | Bin 1890 -> 0 bytes ...nterpreter_tool_call_param.cpython-312.pyc | Bin 1848 -> 0 bytes .../response_compact_params.cpython-312.pyc | Bin 3149 -> 0 bytes .../response_compaction_item.cpython-312.pyc | Bin 947 -> 0 bytes ...onse_compaction_item_param.cpython-312.pyc | Bin 926 -> 0 bytes ...ompaction_item_param_param.cpython-312.pyc | Bin 997 -> 0 bytes .../response_completed_event.cpython-312.pyc | Bin 807 -> 0 bytes ...esponse_computer_tool_call.cpython-312.pyc | Bin 5302 -> 0 bytes ...uter_tool_call_output_item.cpython-312.pyc | Bin 1547 -> 0 bytes ...ool_call_output_screenshot.cpython-312.pyc | Bin 904 -> 0 bytes ...ll_output_screenshot_param.cpython-312.pyc | Bin 884 -> 0 bytes ...e_computer_tool_call_param.cpython-312.pyc | Bin 5132 -> 0 bytes ...sponse_container_reference.cpython-312.pyc | Bin 737 -> 0 bytes ...e_content_part_added_event.cpython-312.pyc | Bin 1609 -> 0 bytes ...se_content_part_done_event.cpython-312.pyc | Bin 1601 -> 0 bytes ...esponse_conversation_param.cpython-312.pyc | Bin 605 -> 0 bytes ...e_conversation_param_param.cpython-312.pyc | Bin 719 -> 0 bytes .../response_create_params.cpython-312.pyc | Bin 4699 -> 0 bytes .../response_created_event.cpython-312.pyc | Bin 809 -> 0 bytes .../response_custom_tool_call.cpython-312.pyc | Bin 921 -> 0 bytes ...ool_call_input_delta_event.cpython-312.pyc | Bin 913 -> 0 bytes ...tool_call_input_done_event.cpython-312.pyc | Bin 894 -> 0 bytes ...onse_custom_tool_call_item.cpython-312.pyc | Bin 883 -> 0 bytes ...se_custom_tool_call_output.cpython-312.pyc | Bin 1423 -> 0 bytes ...stom_tool_call_output_item.cpython-312.pyc | Bin 942 -> 0 bytes ...tom_tool_call_output_param.cpython-312.pyc | Bin 1379 -> 0 bytes ...nse_custom_tool_call_param.cpython-312.pyc | Bin 919 -> 0 bytes .../response_error.cpython-312.pyc | Bin 1090 -> 0 bytes .../response_error_event.cpython-312.pyc | Bin 872 -> 0 bytes .../response_failed_event.cpython-312.pyc | Bin 801 -> 0 bytes ...earch_call_completed_event.cpython-312.pyc | Bin 865 -> 0 bytes ...rch_call_in_progress_event.cpython-312.pyc | Bin 854 -> 0 bytes ...earch_call_searching_event.cpython-312.pyc | Bin 854 -> 0 bytes ...onse_file_search_tool_call.cpython-312.pyc | Bin 1661 -> 0 bytes ...ile_search_tool_call_param.cpython-312.pyc | Bin 1682 -> 0 bytes ...esponse_format_text_config.cpython-312.pyc | Bin 855 -> 0 bytes ...e_format_text_config_param.cpython-312.pyc | Bin 808 -> 0 bytes ...at_text_json_schema_config.cpython-312.pyc | Bin 1236 -> 0 bytes ...t_json_schema_config_param.cpython-312.pyc | Bin 1177 -> 0 bytes ...call_arguments_delta_event.cpython-312.pyc | Bin 906 -> 0 bytes ..._call_arguments_done_event.cpython-312.pyc | Bin 913 -> 0 bytes ..._function_call_output_item.cpython-312.pyc | Bin 842 -> 0 bytes ...tion_call_output_item_list.cpython-312.pyc | Bin 553 -> 0 bytes ...all_output_item_list_param.cpython-312.pyc | Bin 913 -> 0 bytes ...ion_call_output_item_param.cpython-312.pyc | Bin 803 -> 0 bytes ..._shell_call_output_content.cpython-312.pyc | Bin 1674 -> 0 bytes ..._call_output_content_param.cpython-312.pyc | Bin 1635 -> 0 bytes ...e_function_shell_tool_call.cpython-312.pyc | Bin 1926 -> 0 bytes ...ion_shell_tool_call_output.cpython-312.pyc | Bin 2388 -> 0 bytes ...esponse_function_tool_call.cpython-312.pyc | Bin 1146 -> 0 bytes ...se_function_tool_call_item.cpython-312.pyc | Bin 1007 -> 0 bytes ...tion_tool_call_output_item.cpython-312.pyc | Bin 1450 -> 0 bytes ...e_function_tool_call_param.cpython-312.pyc | Bin 1122 -> 0 bytes ...sponse_function_web_search.cpython-312.pyc | Bin 2742 -> 0 bytes ..._function_web_search_param.cpython-312.pyc | Bin 2699 -> 0 bytes ...e_gen_call_completed_event.cpython-312.pyc | Bin 909 -> 0 bytes ..._gen_call_generating_event.cpython-312.pyc | Bin 918 -> 0 bytes ...gen_call_in_progress_event.cpython-312.pyc | Bin 868 -> 0 bytes ...n_call_partial_image_event.cpython-312.pyc | Bin 978 -> 0 bytes ...response_in_progress_event.cpython-312.pyc | Bin 811 -> 0 bytes .../response_includable.cpython-312.pyc | Bin 658 -> 0 bytes .../response_incomplete_event.cpython-312.pyc | Bin 830 -> 0 bytes .../response_input.cpython-312.pyc | Bin 478 -> 0 bytes .../response_input_audio.cpython-312.pyc | Bin 929 -> 0 bytes ...response_input_audio_param.cpython-312.pyc | Bin 1055 -> 0 bytes .../response_input_content.cpython-312.pyc | Bin 773 -> 0 bytes ...sponse_input_content_param.cpython-312.pyc | Bin 732 -> 0 bytes .../response_input_file.cpython-312.pyc | Bin 996 -> 0 bytes ...esponse_input_file_content.cpython-312.pyc | Bin 1011 -> 0 bytes ...e_input_file_content_param.cpython-312.pyc | Bin 974 -> 0 bytes .../response_input_file_param.cpython-312.pyc | Bin 961 -> 0 bytes .../response_input_image.cpython-312.pyc | Bin 978 -> 0 bytes ...sponse_input_image_content.cpython-312.pyc | Bin 1016 -> 0 bytes ..._input_image_content_param.cpython-312.pyc | Bin 1038 -> 0 bytes ...response_input_image_param.cpython-312.pyc | Bin 1025 -> 0 bytes .../response_input_item.cpython-312.pyc | Bin 13485 -> 0 bytes .../response_input_item_param.cpython-312.pyc | Bin 13063 -> 0 bytes ...input_message_content_list.cpython-312.pyc | Bin 524 -> 0 bytes ...message_content_list_param.cpython-312.pyc | Bin 845 -> 0 bytes ...esponse_input_message_item.cpython-312.pyc | Bin 998 -> 0 bytes .../response_input_param.cpython-312.pyc | Bin 13142 -> 0 bytes .../response_input_text.cpython-312.pyc | Bin 680 -> 0 bytes ...esponse_input_text_content.cpython-312.pyc | Bin 695 -> 0 bytes ...e_input_text_content_param.cpython-312.pyc | Bin 780 -> 0 bytes .../response_input_text_param.cpython-312.pyc | Bin 765 -> 0 bytes .../__pycache__/response_item.cpython-312.pyc | Bin 6714 -> 0 bytes .../response_item_list.cpython-312.pyc | Bin 881 -> 0 bytes ...response_local_environment.cpython-312.pyc | Bin 699 -> 0 bytes ...call_arguments_delta_event.cpython-312.pyc | Bin 927 -> 0 bytes ..._call_arguments_done_event.cpython-312.pyc | Bin 888 -> 0 bytes ...e_mcp_call_completed_event.cpython-312.pyc | Bin 839 -> 0 bytes ...onse_mcp_call_failed_event.cpython-312.pyc | Bin 814 -> 0 bytes ...mcp_call_in_progress_event.cpython-312.pyc | Bin 832 -> 0 bytes ...list_tools_completed_event.cpython-312.pyc | Bin 875 -> 0 bytes ...cp_list_tools_failed_event.cpython-312.pyc | Bin 853 -> 0 bytes ...st_tools_in_progress_event.cpython-312.pyc | Bin 905 -> 0 bytes .../response_output_item.cpython-312.pyc | Bin 6628 -> 0 bytes ...se_output_item_added_event.cpython-312.pyc | Bin 885 -> 0 bytes ...nse_output_item_done_event.cpython-312.pyc | Bin 885 -> 0 bytes .../response_output_message.cpython-312.pyc | Bin 1405 -> 0 bytes ...ponse_output_message_param.cpython-312.pyc | Bin 1401 -> 0 bytes .../response_output_refusal.cpython-312.pyc | Bin 678 -> 0 bytes ...ponse_output_refusal_param.cpython-312.pyc | Bin 772 -> 0 bytes .../response_output_text.cpython-312.pyc | Bin 3338 -> 0 bytes ...ext_annotation_added_event.cpython-312.pyc | Bin 985 -> 0 bytes ...response_output_text_param.cpython-312.pyc | Bin 3300 -> 0 bytes .../response_prompt.cpython-312.pyc | Bin 1256 -> 0 bytes .../response_prompt_param.cpython-312.pyc | Bin 1340 -> 0 bytes .../response_queued_event.cpython-312.pyc | Bin 816 -> 0 bytes .../response_reasoning_item.cpython-312.pyc | Bin 1905 -> 0 bytes ...ponse_reasoning_item_param.cpython-312.pyc | Bin 1955 -> 0 bytes ...g_summary_part_added_event.cpython-312.pyc | Bin 1219 -> 0 bytes ...ng_summary_part_done_event.cpython-312.pyc | Bin 1211 -> 0 bytes ...g_summary_text_delta_event.cpython-312.pyc | Bin 931 -> 0 bytes ...ng_summary_text_done_event.cpython-312.pyc | Bin 920 -> 0 bytes ...reasoning_text_delta_event.cpython-312.pyc | Bin 900 -> 0 bytes ..._reasoning_text_done_event.cpython-312.pyc | Bin 889 -> 0 bytes ...sponse_refusal_delta_event.cpython-312.pyc | Bin 875 -> 0 bytes ...esponse_refusal_done_event.cpython-312.pyc | Bin 868 -> 0 bytes .../response_retrieve_params.cpython-312.pyc | Bin 1411 -> 0 bytes .../response_status.cpython-312.pyc | Bin 463 -> 0 bytes .../response_stream_event.cpython-312.pyc | Bin 6315 -> 0 bytes .../response_text_config.cpython-312.pyc | Bin 1155 -> 0 bytes ...response_text_config_param.cpython-312.pyc | Bin 1164 -> 0 bytes .../response_text_delta_event.cpython-312.pyc | Bin 1852 -> 0 bytes .../response_text_done_event.cpython-312.pyc | Bin 1840 -> 0 bytes .../response_tool_search_call.cpython-312.pyc | Bin 987 -> 0 bytes ...se_tool_search_output_item.cpython-312.pyc | Bin 1064 -> 0 bytes ...l_search_output_item_param.cpython-312.pyc | Bin 1091 -> 0 bytes ...ch_output_item_param_param.cpython-312.pyc | Bin 1111 -> 0 bytes .../response_usage.cpython-312.pyc | Bin 1380 -> 0 bytes ...earch_call_completed_event.cpython-312.pyc | Bin 845 -> 0 bytes ...rch_call_in_progress_event.cpython-312.pyc | Bin 850 -> 0 bytes ...earch_call_searching_event.cpython-312.pyc | Bin 845 -> 0 bytes .../responses_client_event.cpython-312.pyc | Bin 4567 -> 0 bytes ...sponses_client_event_param.cpython-312.pyc | Bin 4289 -> 0 bytes .../responses_server_event.cpython-312.pyc | Bin 6317 -> 0 bytes .../skill_reference.cpython-312.pyc | Bin 739 -> 0 bytes .../skill_reference_param.cpython-312.pyc | Bin 759 -> 0 bytes .../__pycache__/tool.cpython-312.pyc | Bin 7928 -> 0 bytes .../tool_choice_allowed.cpython-312.pyc | Bin 890 -> 0 bytes .../tool_choice_allowed_param.cpython-312.pyc | Bin 963 -> 0 bytes .../tool_choice_apply_patch.cpython-312.pyc | Bin 704 -> 0 bytes ...l_choice_apply_patch_param.cpython-312.pyc | Bin 778 -> 0 bytes .../tool_choice_custom.cpython-312.pyc | Bin 716 -> 0 bytes .../tool_choice_custom_param.cpython-312.pyc | Bin 801 -> 0 bytes .../tool_choice_function.cpython-312.pyc | Bin 717 -> 0 bytes ...tool_choice_function_param.cpython-312.pyc | Bin 802 -> 0 bytes .../tool_choice_mcp.cpython-312.pyc | Bin 838 -> 0 bytes .../tool_choice_mcp_param.cpython-312.pyc | Bin 910 -> 0 bytes .../tool_choice_options.cpython-312.pyc | Bin 430 -> 0 bytes .../tool_choice_shell.cpython-312.pyc | Bin 683 -> 0 bytes .../tool_choice_shell_param.cpython-312.pyc | Bin 757 -> 0 bytes .../tool_choice_types.cpython-312.pyc | Bin 939 -> 0 bytes .../tool_choice_types_param.cpython-312.pyc | Bin 1020 -> 0 bytes .../__pycache__/tool_param.cpython-312.pyc | Bin 7460 -> 0 bytes .../tool_search_tool.cpython-312.pyc | Bin 938 -> 0 bytes .../tool_search_tool_param.cpython-312.pyc | Bin 955 -> 0 bytes .../web_search_preview_tool.cpython-312.pyc | Bin 1673 -> 0 bytes ..._search_preview_tool_param.cpython-312.pyc | Bin 1578 -> 0 bytes .../web_search_tool.cpython-312.pyc | Bin 1923 -> 0 bytes .../web_search_tool_param.cpython-312.pyc | Bin 1823 -> 0 bytes .../types/responses/apply_patch_tool.py | 14 - .../types/responses/apply_patch_tool_param.py | 14 - .../types/responses/compacted_response.py | 33 - .../openai/types/responses/computer_action.py | 196 - .../types/responses/computer_action_list.py | 10 - .../responses/computer_action_list_param.py | 198 - .../types/responses/computer_action_param.py | 195 - .../openai/types/responses/computer_tool.py | 17 - .../types/responses/computer_tool_param.py | 17 - .../responses/computer_use_preview_tool.py | 26 - .../computer_use_preview_tool_param.py | 26 - .../openai/types/responses/container_auto.py | 36 - .../types/responses/container_auto_param.py | 35 - .../container_network_policy_allowlist.py | 20 - ...ontainer_network_policy_allowlist_param.py | 22 - .../container_network_policy_disabled.py | 12 - ...container_network_policy_disabled_param.py | 12 - .../container_network_policy_domain_secret.py | 16 - ...iner_network_policy_domain_secret_param.py | 18 - .../types/responses/container_reference.py | 15 - .../responses/container_reference_param.py | 15 - .../openai/types/responses/custom_tool.py | 31 - .../types/responses/custom_tool_param.py | 31 - .../types/responses/easy_input_message.py | 42 - .../responses/easy_input_message_param.py | 43 - .../types/responses/file_search_tool.py | 69 - .../types/responses/file_search_tool_param.py | 71 - .../types/responses/function_shell_tool.py | 25 - .../responses/function_shell_tool_param.py | 23 - .../openai/types/responses/function_tool.py | 36 - .../types/responses/function_tool_param.py | 36 - .../openai/types/responses/inline_skill.py | 22 - .../types/responses/inline_skill_param.py | 23 - .../types/responses/inline_skill_source.py | 20 - .../responses/inline_skill_source_param.py | 20 - .../types/responses/input_item_list_params.py | 34 - .../responses/input_token_count_params.py | 146 - .../responses/input_token_count_response.py | 13 - .../types/responses/local_environment.py | 17 - .../responses/local_environment_param.py | 18 - .../openai/types/responses/local_skill.py | 16 - .../types/responses/local_skill_param.py | 18 - .../openai/types/responses/namespace_tool.py | 44 - .../types/responses/namespace_tool_param.py | 44 - .../openai/types/responses/parsed_response.py | 120 - .../openai/types/responses/response.py | 322 - .../response_apply_patch_tool_call.py | 84 - .../response_apply_patch_tool_call_output.py | 33 - .../responses/response_audio_delta_event.py | 20 - .../responses/response_audio_done_event.py | 17 - .../response_audio_transcript_delta_event.py | 20 - .../response_audio_transcript_done_event.py | 17 - ..._code_interpreter_call_code_delta_event.py | 29 - ...e_code_interpreter_call_code_done_event.py | 26 - ...e_code_interpreter_call_completed_event.py | 26 - ...code_interpreter_call_in_progress_event.py | 26 - ...ode_interpreter_call_interpreting_event.py | 26 - .../response_code_interpreter_tool_call.py | 61 - ...sponse_code_interpreter_tool_call_param.py | 60 - .../responses/response_compact_params.py | 148 - .../responses/response_compaction_item.py | 26 - .../response_compaction_item_param.py | 23 - .../response_compaction_item_param_param.py | 23 - .../responses/response_completed_event.py | 21 - .../responses/response_computer_tool_call.py | 259 - ...response_computer_tool_call_output_item.py | 52 - ...se_computer_tool_call_output_screenshot.py | 24 - ...puter_tool_call_output_screenshot_param.py | 23 - .../response_computer_tool_call_param.py | 257 - .../responses/response_container_reference.py | 16 - .../response_content_part_added_event.py | 48 - .../response_content_part_done_event.py | 48 - .../responses/response_conversation_param.py | 12 - .../response_conversation_param_param.py | 14 - .../types/responses/response_create_params.py | 350 - .../types/responses/response_created_event.py | 21 - .../responses/response_custom_tool_call.py | 30 - ...onse_custom_tool_call_input_delta_event.py | 26 - ...ponse_custom_tool_call_input_done_event.py | 26 - .../response_custom_tool_call_item.py | 25 - .../response_custom_tool_call_output.py | 35 - .../response_custom_tool_call_output_item.py | 25 - .../response_custom_tool_call_output_param.py | 33 - .../response_custom_tool_call_param.py | 29 - .../openai/types/responses/response_error.py | 36 - .../types/responses/response_error_event.py | 27 - .../types/responses/response_failed_event.py | 21 - ...sponse_file_search_call_completed_event.py | 23 - ...onse_file_search_call_in_progress_event.py | 23 - ...sponse_file_search_call_searching_event.py | 23 - .../response_file_search_tool_call.py | 57 - .../response_file_search_tool_call_param.py | 59 - .../responses/response_format_text_config.py | 16 - .../response_format_text_config_param.py | 16 - ...response_format_text_json_schema_config.py | 49 - ...se_format_text_json_schema_config_param.py | 47 - ...nse_function_call_arguments_delta_event.py | 28 - ...onse_function_call_arguments_done_event.py | 28 - .../response_function_call_output_item.py | 16 - ...response_function_call_output_item_list.py | 10 - ...se_function_call_output_item_list_param.py | 18 - ...esponse_function_call_output_item_param.py | 16 - ...onse_function_shell_call_output_content.py | 42 - ...unction_shell_call_output_content_param.py | 41 - .../response_function_shell_tool_call.py | 59 - ...esponse_function_shell_tool_call_output.py | 88 - .../responses/response_function_tool_call.py | 41 - .../response_function_tool_call_item.py | 29 - ...response_function_tool_call_output_item.py | 43 - .../response_function_tool_call_param.py | 40 - .../responses/response_function_web_search.py | 91 - .../response_function_web_search_param.py | 92 - ...response_image_gen_call_completed_event.py | 25 - ...esponse_image_gen_call_generating_event.py | 25 - ...sponse_image_gen_call_in_progress_event.py | 23 - ...onse_image_gen_call_partial_image_event.py | 32 - .../responses/response_in_progress_event.py | 21 - .../types/responses/response_includable.py | 16 - .../responses/response_incomplete_event.py | 21 - .../openai/types/responses/response_input.py | 10 - .../types/responses/response_input_audio.py | 24 - .../responses/response_input_audio_param.py | 24 - .../types/responses/response_input_content.py | 15 - .../responses/response_input_content_param.py | 14 - .../types/responses/response_input_file.py | 34 - .../responses/response_input_file_content.py | 34 - .../response_input_file_content_param.py | 34 - .../responses/response_input_file_param.py | 34 - .../types/responses/response_input_image.py | 33 - .../responses/response_input_image_content.py | 33 - .../response_input_image_content_param.py | 33 - .../responses/response_input_image_param.py | 33 - .../types/responses/response_input_item.py | 572 - .../responses/response_input_item_param.py | 567 - .../response_input_message_content_list.py | 10 - ...sponse_input_message_content_list_param.py | 16 - .../responses/response_input_message_item.py | 33 - .../types/responses/response_input_param.py | 570 - .../types/responses/response_input_text.py | 17 - .../responses/response_input_text_content.py | 17 - .../response_input_text_content_param.py | 17 - .../responses/response_input_text_param.py | 17 - .../openai/types/responses/response_item.py | 256 - .../types/responses/response_item_list.py | 28 - .../responses/response_local_environment.py | 14 - ...response_mcp_call_arguments_delta_event.py | 31 - .../response_mcp_call_arguments_done_event.py | 26 - .../response_mcp_call_completed_event.py | 23 - .../response_mcp_call_failed_event.py | 23 - .../response_mcp_call_in_progress_event.py | 23 - ...response_mcp_list_tools_completed_event.py | 23 - .../response_mcp_list_tools_failed_event.py | 23 - ...sponse_mcp_list_tools_in_progress_event.py | 25 - .../types/responses/response_output_item.py | 254 - .../response_output_item_added_event.py | 24 - .../response_output_item_done_event.py | 24 - .../responses/response_output_message.py | 44 - .../response_output_message_param.py | 44 - .../responses/response_output_refusal.py | 17 - .../response_output_refusal_param.py | 17 - .../types/responses/response_output_text.py | 131 - ...onse_output_text_annotation_added_event.py | 32 - .../responses/response_output_text_param.py | 129 - .../openai/types/responses/response_prompt.py | 33 - .../types/responses/response_prompt_param.py | 34 - .../types/responses/response_queued_event.py | 21 - .../responses/response_reasoning_item.py | 62 - .../response_reasoning_item_param.py | 62 - ...onse_reasoning_summary_part_added_event.py | 39 - ...ponse_reasoning_summary_part_done_event.py | 39 - ...onse_reasoning_summary_text_delta_event.py | 29 - ...ponse_reasoning_summary_text_done_event.py | 29 - .../response_reasoning_text_delta_event.py | 29 - .../response_reasoning_text_done_event.py | 29 - .../responses/response_refusal_delta_event.py | 29 - .../responses/response_refusal_done_event.py | 29 - .../responses/response_retrieve_params.py | 59 - .../openai/types/responses/response_status.py | 7 - .../types/responses/response_stream_event.py | 120 - .../types/responses/response_text_config.py | 43 - .../responses/response_text_config_param.py | 44 - .../responses/response_text_delta_event.py | 58 - .../responses/response_text_done_event.py | 58 - .../responses/response_tool_search_call.py | 31 - .../response_tool_search_output_item.py | 32 - .../response_tool_search_output_item_param.py | 29 - ...nse_tool_search_output_item_param_param.py | 30 - .../openai/types/responses/response_usage.py | 44 - ...esponse_web_search_call_completed_event.py | 23 - ...ponse_web_search_call_in_progress_event.py | 23 - ...esponse_web_search_call_searching_event.py | 23 - .../types/responses/responses_client_event.py | 327 - .../responses/responses_client_event_param.py | 328 - .../types/responses/responses_server_event.py | 120 - .../openai/types/responses/skill_reference.py | 19 - .../types/responses/skill_reference_param.py | 18 - .../openai/types/responses/tool.py | 360 - .../types/responses/tool_choice_allowed.py | 38 - .../responses/tool_choice_allowed_param.py | 38 - .../responses/tool_choice_apply_patch.py | 14 - .../tool_choice_apply_patch_param.py | 14 - .../types/responses/tool_choice_custom.py | 17 - .../responses/tool_choice_custom_param.py | 17 - .../types/responses/tool_choice_function.py | 17 - .../responses/tool_choice_function_param.py | 17 - .../openai/types/responses/tool_choice_mcp.py | 23 - .../types/responses/tool_choice_mcp_param.py | 23 - .../types/responses/tool_choice_options.py | 7 - .../types/responses/tool_choice_shell.py | 14 - .../responses/tool_choice_shell_param.py | 14 - .../types/responses/tool_choice_types.py | 40 - .../responses/tool_choice_types_param.py | 42 - .../openai/types/responses/tool_param.py | 359 - .../types/responses/tool_search_tool.py | 24 - .../types/responses/tool_search_tool_param.py | 24 - .../responses/web_search_preview_tool.py | 58 - .../web_search_preview_tool_param.py | 58 - .../openai/types/responses/web_search_tool.py | 73 - .../types/responses/web_search_tool_param.py | 75 - .../openai/types/shared/__init__.py | 20 - .../__pycache__/__init__.cpython-312.pyc | Bin 1294 -> 0 bytes .../__pycache__/all_models.cpython-312.pyc | Bin 790 -> 0 bytes .../__pycache__/chat_model.cpython-312.pyc | Bin 1832 -> 0 bytes .../comparison_filter.cpython-312.pyc | Bin 959 -> 0 bytes .../compound_filter.cpython-312.pyc | Bin 927 -> 0 bytes .../custom_tool_input_format.cpython-312.pyc | Bin 1261 -> 0 bytes .../__pycache__/error_object.cpython-312.pyc | Bin 671 -> 0 bytes .../function_definition.cpython-312.pyc | Bin 834 -> 0 bytes .../function_parameters.cpython-312.pyc | Bin 439 -> 0 bytes .../__pycache__/metadata.cpython-312.pyc | Bin 407 -> 0 bytes .../oauth_error_code.cpython-312.pyc | Bin 496 -> 0 bytes .../__pycache__/reasoning.cpython-312.pyc | Bin 1048 -> 0 bytes .../reasoning_effort.cpython-312.pyc | Bin 488 -> 0 bytes ...esponse_format_json_object.cpython-312.pyc | Bin 905 -> 0 bytes ...esponse_format_json_schema.cpython-312.pyc | Bin 1508 -> 0 bytes .../response_format_text.cpython-312.pyc | Bin 674 -> 0 bytes ...sponse_format_text_grammar.cpython-312.pyc | Bin 841 -> 0 bytes ...esponse_format_text_python.cpython-312.pyc | Bin 808 -> 0 bytes .../responses_model.cpython-312.pyc | Bin 801 -> 0 bytes .../openai/types/shared/all_models.py | 29 - .../openai/types/shared/chat_model.py | 86 - .../openai/types/shared/comparison_filter.py | 38 - .../openai/types/shared/compound_filter.py | 24 - .../types/shared/custom_tool_input_format.py | 32 - .../openai/types/shared/error_object.py | 17 - .../types/shared/function_definition.py | 43 - .../types/shared/function_parameters.py | 8 - .../openai/types/shared/metadata.py | 8 - .../openai/types/shared/oauth_error_code.py | 8 - .../openai/types/shared/reasoning.py | 52 - .../openai/types/shared/reasoning_effort.py | 8 - .../shared/response_format_json_object.py | 20 - .../shared/response_format_json_schema.py | 56 - .../types/shared/response_format_text.py | 14 - .../shared/response_format_text_grammar.py | 20 - .../shared/response_format_text_python.py | 18 - .../openai/types/shared/responses_model.py | 29 - .../openai/types/shared_params/__init__.py | 16 - .../__pycache__/__init__.cpython-312.pyc | Bin 1051 -> 0 bytes .../__pycache__/chat_model.cpython-312.pyc | Bin 1888 -> 0 bytes .../comparison_filter.cpython-312.pyc | Bin 1077 -> 0 bytes .../compound_filter.cpython-312.pyc | Bin 1011 -> 0 bytes .../custom_tool_input_format.cpython-312.pyc | Bin 1218 -> 0 bytes .../function_definition.cpython-312.pyc | Bin 878 -> 0 bytes .../function_parameters.cpython-312.pyc | Bin 498 -> 0 bytes .../__pycache__/metadata.cpython-312.pyc | Bin 466 -> 0 bytes .../oauth_error_code.cpython-312.pyc | Bin 555 -> 0 bytes .../__pycache__/reasoning.cpython-312.pyc | Bin 1033 -> 0 bytes .../reasoning_effort.cpython-312.pyc | Bin 547 -> 0 bytes ...esponse_format_json_object.cpython-312.pyc | Bin 975 -> 0 bytes ...esponse_format_json_schema.cpython-312.pyc | Bin 1425 -> 0 bytes .../response_format_text.cpython-312.pyc | Bin 745 -> 0 bytes .../responses_model.cpython-312.pyc | Bin 867 -> 0 bytes .../openai/types/shared_params/chat_model.py | 88 - .../types/shared_params/comparison_filter.py | 40 - .../types/shared_params/compound_filter.py | 25 - .../shared_params/custom_tool_input_format.py | 31 - .../shared_params/function_definition.py | 45 - .../shared_params/function_parameters.py | 10 - .../openai/types/shared_params/metadata.py | 10 - .../types/shared_params/oauth_error_code.py | 10 - .../openai/types/shared_params/reasoning.py | 53 - .../types/shared_params/reasoning_effort.py | 10 - .../response_format_json_object.py | 20 - .../response_format_json_schema.py | 54 - .../shared_params/response_format_text.py | 14 - .../types/shared_params/responses_model.py | 31 - .../site-packages/openai/types/skill.py | 30 - .../openai/types/skill_create_params.py | 15 - .../site-packages/openai/types/skill_list.py | 26 - .../openai/types/skill_list_params.py | 21 - .../openai/types/skill_update_params.py | 12 - .../openai/types/skills/__init__.py | 9 - .../__pycache__/__init__.cpython-312.pyc | Bin 573 -> 0 bytes .../deleted_skill_version.cpython-312.pyc | Bin 698 -> 0 bytes .../__pycache__/skill_version.cpython-312.pyc | Bin 781 -> 0 bytes .../skill_version_list.cpython-312.pyc | Bin 907 -> 0 bytes .../version_create_params.cpython-312.pyc | Bin 787 -> 0 bytes .../version_list_params.cpython-312.pyc | Bin 699 -> 0 bytes .../types/skills/deleted_skill_version.py | 18 - .../openai/types/skills/skill_version.py | 30 - .../openai/types/skills/skill_version_list.py | 26 - .../types/skills/version_create_params.py | 18 - .../types/skills/version_list_params.py | 18 - .../openai/types/skills/versions/__init__.py | 3 - .../__pycache__/__init__.cpython-312.pyc | Bin 272 -> 0 bytes .../types/static_file_chunking_strategy.py | 20 - .../static_file_chunking_strategy_object.py | 15 - ...tic_file_chunking_strategy_object_param.py | 18 - .../static_file_chunking_strategy_param.py | 22 - .../site-packages/openai/types/upload.py | 44 - .../openai/types/upload_complete_params.py | 20 - .../openai/types/upload_create_params.py | 57 - .../openai/types/uploads/__init__.py | 6 - .../__pycache__/__init__.cpython-312.pyc | Bin 376 -> 0 bytes .../part_create_params.cpython-312.pyc | Bin 677 -> 0 bytes .../__pycache__/upload_part.cpython-312.pyc | Bin 782 -> 0 bytes .../types/uploads/part_create_params.py | 14 - .../openai/types/uploads/upload_part.py | 23 - .../openai/types/vector_store.py | 88 - .../types/vector_store_create_params.py | 63 - .../openai/types/vector_store_deleted.py | 15 - .../openai/types/vector_store_list_params.py | 39 - .../types/vector_store_search_params.py | 44 - .../types/vector_store_search_response.py | 39 - .../types/vector_store_update_params.py | 41 - .../openai/types/vector_stores/__init__.py | 13 - .../__pycache__/__init__.cpython-312.pyc | Bin 866 -> 0 bytes .../file_batch_create_params.cpython-312.pyc | Bin 1327 -> 0 bytes ...le_batch_list_files_params.cpython-312.pyc | Bin 928 -> 0 bytes .../file_content_response.cpython-312.pyc | Bin 658 -> 0 bytes .../file_create_params.cpython-312.pyc | Bin 926 -> 0 bytes .../file_list_params.cpython-312.pyc | Bin 836 -> 0 bytes .../file_update_params.cpython-312.pyc | Bin 802 -> 0 bytes .../vector_store_file.cpython-312.pyc | Bin 1741 -> 0 bytes .../vector_store_file_batch.cpython-312.pyc | Bin 1226 -> 0 bytes .../vector_store_file_deleted.cpython-312.pyc | Bin 689 -> 0 bytes .../vector_stores/file_batch_create_params.py | 76 - .../file_batch_list_files_params.py | 47 - .../vector_stores/file_content_response.py | 15 - .../types/vector_stores/file_create_params.py | 37 - .../types/vector_stores/file_list_params.py | 45 - .../types/vector_stores/file_update_params.py | 21 - .../types/vector_stores/vector_store_file.py | 74 - .../vector_stores/vector_store_file_batch.py | 56 - .../vector_store_file_deleted.py | 15 - .../site-packages/openai/types/video.py | 58 - .../types/video_create_character_params.py | 17 - .../types/video_create_character_response.py | 18 - .../openai/types/video_create_error.py | 15 - .../openai/types/video_create_params.py | 40 - .../openai/types/video_delete_response.py | 20 - .../types/video_download_content_params.py | 12 - .../openai/types/video_edit_params.py | 28 - .../openai/types/video_extend_params.py | 35 - .../types/video_get_character_response.py | 18 - .../openai/types/video_list_params.py | 21 - .../site-packages/openai/types/video_model.py | 10 - .../openai/types/video_model_param.py | 12 - .../openai/types/video_remix_params.py | 12 - .../openai/types/video_seconds.py | 7 - .../site-packages/openai/types/video_size.py | 7 - .../openai/types/webhooks/__init__.py | 24 - .../__pycache__/__init__.cpython-312.pyc | Bin 1631 -> 0 bytes ...ch_cancelled_webhook_event.cpython-312.pyc | Bin 1130 -> 0 bytes ...ch_completed_webhook_event.cpython-312.pyc | Bin 1130 -> 0 bytes ...atch_expired_webhook_event.cpython-312.pyc | Bin 1116 -> 0 bytes ...batch_failed_webhook_event.cpython-312.pyc | Bin 1112 -> 0 bytes ...run_canceled_webhook_event.cpython-312.pyc | Bin 1126 -> 0 bytes ...l_run_failed_webhook_event.cpython-312.pyc | Bin 1113 -> 0 bytes ...un_succeeded_webhook_event.cpython-312.pyc | Bin 1125 -> 0 bytes ...ob_cancelled_webhook_event.cpython-312.pyc | Bin 1156 -> 0 bytes ...g_job_failed_webhook_event.cpython-312.pyc | Bin 1139 -> 0 bytes ...ob_succeeded_webhook_event.cpython-312.pyc | Bin 1151 -> 0 bytes ...all_incoming_webhook_event.cpython-312.pyc | Bin 1503 -> 0 bytes ...se_cancelled_webhook_event.cpython-312.pyc | Bin 1141 -> 0 bytes ...se_completed_webhook_event.cpython-312.pyc | Bin 1141 -> 0 bytes ...ponse_failed_webhook_event.cpython-312.pyc | Bin 1124 -> 0 bytes ...e_incomplete_webhook_event.cpython-312.pyc | Bin 1146 -> 0 bytes .../unwrap_webhook_event.cpython-312.pyc | Bin 1941 -> 0 bytes .../webhooks/batch_cancelled_webhook_event.py | 34 - .../webhooks/batch_completed_webhook_event.py | 34 - .../webhooks/batch_expired_webhook_event.py | 34 - .../webhooks/batch_failed_webhook_event.py | 34 - .../eval_run_canceled_webhook_event.py | 34 - .../webhooks/eval_run_failed_webhook_event.py | 34 - .../eval_run_succeeded_webhook_event.py | 34 - ...fine_tuning_job_cancelled_webhook_event.py | 34 - .../fine_tuning_job_failed_webhook_event.py | 34 - ...fine_tuning_job_succeeded_webhook_event.py | 34 - .../realtime_call_incoming_webhook_event.py | 47 - .../response_cancelled_webhook_event.py | 34 - .../response_completed_webhook_event.py | 34 - .../webhooks/response_failed_webhook_event.py | 34 - .../response_incomplete_webhook_event.py | 34 - .../types/webhooks/unwrap_webhook_event.py | 44 - .../types/websocket_connection_options.py | 42 - .../openai/types/websocket_reconnection.py | 64 - .../site-packages/openai/version.py | 3 - .../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 | 1005 - .../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 - .../pip/__pycache__/__init__.cpython-312.pyc | Bin 705 -> 0 bytes .../pip/__pycache__/__main__.cpython-312.pyc | Bin 861 -> 0 bytes .../__pip-runner__.cpython-312.pyc | Bin 2224 -> 0 bytes .../site-packages/pip/_internal/__init__.py | 18 - .../__pycache__/__init__.cpython-312.pyc | Bin 807 -> 0 bytes .../__pycache__/build_env.cpython-312.pyc | Bin 14314 -> 0 bytes .../__pycache__/cache.cpython-312.pyc | Bin 12685 -> 0 bytes .../__pycache__/configuration.cpython-312.pyc | Bin 17686 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 33304 -> 0 bytes .../__pycache__/main.cpython-312.pyc | Bin 690 -> 0 bytes .../__pycache__/pyproject.cpython-312.pyc | Bin 4991 -> 0 bytes .../self_outdated_check.cpython-312.pyc | Bin 10572 -> 0 bytes .../__pycache__/wheel_builder.cpython-312.pyc | Bin 13669 -> 0 bytes .../site-packages/pip/_internal/build_env.py | 311 - .../site-packages/pip/_internal/cache.py | 290 - .../pip/_internal/cli/__init__.py | 4 - .../cli/__pycache__/__init__.cpython-312.pyc | Bin 298 -> 0 bytes .../autocompletion.cpython-312.pyc | Bin 8485 -> 0 bytes .../__pycache__/base_command.cpython-312.pyc | Bin 10475 -> 0 bytes .../__pycache__/cmdoptions.cpython-312.pyc | Bin 30394 -> 0 bytes .../command_context.cpython-312.pyc | Bin 1801 -> 0 bytes .../cli/__pycache__/main.cpython-312.pyc | Bin 2318 -> 0 bytes .../__pycache__/main_parser.cpython-312.pyc | Bin 4925 -> 0 bytes .../cli/__pycache__/parser.cpython-312.pyc | Bin 15042 -> 0 bytes .../__pycache__/progress_bars.cpython-312.pyc | Bin 2640 -> 0 bytes .../__pycache__/req_command.cpython-312.pyc | Bin 18872 -> 0 bytes .../cli/__pycache__/spinners.cpython-312.pyc | Bin 7860 -> 0 bytes .../__pycache__/status_codes.cpython-312.pyc | Bin 395 -> 0 bytes .../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 - .../__pycache__/__init__.cpython-312.pyc | Bin 4022 -> 0 bytes .../__pycache__/cache.cpython-312.pyc | Bin 9731 -> 0 bytes .../__pycache__/check.cpython-312.pyc | Bin 2110 -> 0 bytes .../__pycache__/completion.cpython-312.pyc | Bin 5212 -> 0 bytes .../__pycache__/configuration.cpython-312.pyc | Bin 13232 -> 0 bytes .../__pycache__/debug.cpython-312.pyc | Bin 10181 -> 0 bytes .../__pycache__/download.cpython-312.pyc | Bin 7609 -> 0 bytes .../__pycache__/freeze.cpython-312.pyc | Bin 4436 -> 0 bytes .../commands/__pycache__/hash.cpython-312.pyc | Bin 3003 -> 0 bytes .../commands/__pycache__/help.cpython-312.pyc | Bin 1693 -> 0 bytes .../__pycache__/index.cpython-312.pyc | Bin 6740 -> 0 bytes .../__pycache__/inspect.cpython-312.pyc | Bin 3995 -> 0 bytes .../__pycache__/install.cpython-312.pyc | Bin 28933 -> 0 bytes .../commands/__pycache__/list.cpython-312.pyc | Bin 15676 -> 0 bytes .../__pycache__/search.cpython-312.pyc | Bin 7641 -> 0 bytes .../commands/__pycache__/show.cpython-312.pyc | Bin 9748 -> 0 bytes .../__pycache__/uninstall.cpython-312.pyc | Bin 4746 -> 0 bytes .../__pycache__/wheel.cpython-312.pyc | Bin 8976 -> 0 bytes .../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 | 109 - .../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 | 370 - .../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 - .../__pycache__/__init__.cpython-312.pyc | Bin 961 -> 0 bytes .../__pycache__/base.cpython-312.pyc | Bin 2882 -> 0 bytes .../__pycache__/installed.cpython-312.pyc | Bin 1720 -> 0 bytes .../__pycache__/sdist.cpython-312.pyc | Bin 8508 -> 0 bytes .../__pycache__/wheel.cpython-312.pyc | Bin 2268 -> 0 bytes .../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 - .../__pycache__/__init__.cpython-312.pyc | Bin 252 -> 0 bytes .../__pycache__/collector.cpython-312.pyc | Bin 21906 -> 0 bytes .../package_finder.cpython-312.pyc | Bin 40755 -> 0 bytes .../index/__pycache__/sources.cpython-312.pyc | Bin 12624 -> 0 bytes .../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 - .../__pycache__/__init__.cpython-312.pyc | Bin 16796 -> 0 bytes .../__pycache__/_distutils.cpython-312.pyc | Bin 6876 -> 0 bytes .../__pycache__/_sysconfig.cpython-312.pyc | Bin 8031 -> 0 bytes .../__pycache__/base.cpython-312.pyc | Bin 3801 -> 0 bytes .../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 - .../__pycache__/__init__.cpython-312.pyc | Bin 5902 -> 0 bytes .../__pycache__/_json.cpython-312.pyc | Bin 2895 -> 0 bytes .../metadata/__pycache__/base.cpython-312.pyc | Bin 35732 -> 0 bytes .../__pycache__/pkg_resources.cpython-312.pyc | Bin 15810 -> 0 bytes .../pip/_internal/metadata/_json.py | 84 - .../pip/_internal/metadata/base.py | 702 - .../_internal/metadata/importlib/__init__.py | 6 - .../__pycache__/__init__.cpython-312.pyc | Bin 378 -> 0 bytes .../__pycache__/_compat.cpython-312.pyc | Bin 3353 -> 0 bytes .../__pycache__/_dists.cpython-312.pyc | Bin 13445 -> 0 bytes .../__pycache__/_envs.cpython-312.pyc | Bin 11200 -> 0 bytes .../_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 - .../__pycache__/__init__.cpython-312.pyc | Bin 286 -> 0 bytes .../__pycache__/candidate.cpython-312.pyc | Bin 1925 -> 0 bytes .../__pycache__/direct_url.cpython-312.pyc | Bin 11219 -> 0 bytes .../format_control.cpython-312.pyc | Bin 4247 -> 0 bytes .../models/__pycache__/index.cpython-312.pyc | Bin 1714 -> 0 bytes .../installation_report.cpython-312.pyc | Bin 2292 -> 0 bytes .../models/__pycache__/link.cpython-312.pyc | Bin 26022 -> 0 bytes .../models/__pycache__/scheme.cpython-312.pyc | Bin 1189 -> 0 bytes .../__pycache__/search_scope.cpython-312.pyc | Bin 5108 -> 0 bytes .../selection_prefs.cpython-312.pyc | Bin 1871 -> 0 bytes .../__pycache__/target_python.cpython-312.pyc | Bin 4974 -> 0 bytes .../models/__pycache__/wheel.cpython-312.pyc | Bin 5800 -> 0 bytes .../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 - .../__pycache__/__init__.cpython-312.pyc | Bin 274 -> 0 bytes .../network/__pycache__/auth.cpython-312.pyc | Bin 22016 -> 0 bytes .../network/__pycache__/cache.cpython-312.pyc | Bin 6538 -> 0 bytes .../__pycache__/download.cpython-312.pyc | Bin 8573 -> 0 bytes .../__pycache__/lazy_wheel.cpython-312.pyc | Bin 11683 -> 0 bytes .../__pycache__/session.cpython-312.pyc | Bin 18794 -> 0 bytes .../network/__pycache__/utils.cpython-312.pyc | Bin 2273 -> 0 bytes .../__pycache__/xmlrpc.cpython-312.pyc | Bin 2969 -> 0 bytes .../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 .../__pycache__/__init__.cpython-312.pyc | Bin 217 -> 0 bytes .../__pycache__/check.cpython-312.pyc | Bin 7599 -> 0 bytes .../__pycache__/freeze.cpython-312.pyc | Bin 10137 -> 0 bytes .../__pycache__/prepare.cpython-312.pyc | Bin 25767 -> 0 bytes .../_internal/operations/build/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 223 -> 0 bytes .../__pycache__/build_tracker.cpython-312.pyc | Bin 7843 -> 0 bytes .../__pycache__/metadata.cpython-312.pyc | Bin 1900 -> 0 bytes .../metadata_editable.cpython-312.pyc | Bin 1934 -> 0 bytes .../metadata_legacy.cpython-312.pyc | Bin 3085 -> 0 bytes .../build/__pycache__/wheel.cpython-312.pyc | Bin 1704 -> 0 bytes .../wheel_editable.cpython-312.pyc | Bin 2045 -> 0 bytes .../__pycache__/wheel_legacy.cpython-312.pyc | Bin 3949 -> 0 bytes .../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 - .../__pycache__/__init__.cpython-312.pyc | Bin 286 -> 0 bytes .../editable_legacy.cpython-312.pyc | Bin 1837 -> 0 bytes .../install/__pycache__/wheel.cpython-312.pyc | Bin 33879 -> 0 bytes .../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 - .../req/__pycache__/__init__.cpython-312.pyc | Bin 3763 -> 0 bytes .../__pycache__/constructors.cpython-312.pyc | Bin 21602 -> 0 bytes .../req/__pycache__/req_file.cpython-312.pyc | Bin 21481 -> 0 bytes .../__pycache__/req_install.cpython-312.pyc | Bin 38434 -> 0 bytes .../req/__pycache__/req_set.cpython-312.pyc | Bin 7238 -> 0 bytes .../__pycache__/req_uninstall.cpython-312.pyc | Bin 32997 -> 0 bytes .../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 .../__pycache__/__init__.cpython-312.pyc | Bin 217 -> 0 bytes .../__pycache__/base.cpython-312.pyc | Bin 1205 -> 0 bytes .../pip/_internal/resolution/base.py | 20 - .../_internal/resolution/legacy/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 224 -> 0 bytes .../__pycache__/resolver.cpython-312.pyc | Bin 22459 -> 0 bytes .../_internal/resolution/legacy/resolver.py | 598 - .../resolution/resolvelib/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 228 -> 0 bytes .../__pycache__/base.cpython-312.pyc | Bin 8357 -> 0 bytes .../__pycache__/candidates.cpython-312.pyc | Bin 30418 -> 0 bytes .../__pycache__/factory.cpython-312.pyc | Bin 32134 -> 0 bytes .../found_candidates.cpython-312.pyc | Bin 6228 -> 0 bytes .../__pycache__/provider.cpython-312.pyc | Bin 10398 -> 0 bytes .../__pycache__/reporter.cpython-312.pyc | Bin 4955 -> 0 bytes .../__pycache__/requirements.cpython-312.pyc | Bin 11449 -> 0 bytes .../__pycache__/resolver.cpython-312.pyc | Bin 12371 -> 0 bytes .../_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 .../__pycache__/__init__.cpython-312.pyc | Bin 212 -> 0 bytes .../__pycache__/_jaraco_text.cpython-312.pyc | Bin 4553 -> 0 bytes .../utils/__pycache__/_log.cpython-312.pyc | Bin 1883 -> 0 bytes .../utils/__pycache__/appdirs.cpython-312.pyc | Bin 2427 -> 0 bytes .../utils/__pycache__/compat.cpython-312.pyc | Bin 2230 -> 0 bytes .../compatibility_tags.cpython-312.pyc | Bin 5578 -> 0 bytes .../__pycache__/datetime.cpython-312.pyc | Bin 701 -> 0 bytes .../__pycache__/deprecation.cpython-312.pyc | Bin 4203 -> 0 bytes .../direct_url_helpers.cpython-312.pyc | Bin 3580 -> 0 bytes .../__pycache__/egg_link.cpython-312.pyc | Bin 3243 -> 0 bytes .../__pycache__/encoding.cpython-312.pyc | Bin 2175 -> 0 bytes .../__pycache__/entrypoints.cpython-312.pyc | Bin 4010 -> 0 bytes .../__pycache__/filesystem.cpython-312.pyc | Bin 7475 -> 0 bytes .../__pycache__/filetypes.cpython-312.pyc | Bin 1181 -> 0 bytes .../utils/__pycache__/glibc.cpython-312.pyc | Bin 2359 -> 0 bytes .../utils/__pycache__/hashes.cpython-312.pyc | Bin 7571 -> 0 bytes .../utils/__pycache__/logging.cpython-312.pyc | Bin 13574 -> 0 bytes .../utils/__pycache__/misc.cpython-312.pyc | Bin 34138 -> 0 bytes .../utils/__pycache__/models.cpython-312.pyc | Bin 2729 -> 0 bytes .../__pycache__/packaging.cpython-312.pyc | Bin 2600 -> 0 bytes .../setuptools_build.cpython-312.pyc | Bin 4567 -> 0 bytes .../__pycache__/subprocess.cpython-312.pyc | Bin 8735 -> 0 bytes .../__pycache__/temp_dir.cpython-312.pyc | Bin 12079 -> 0 bytes .../__pycache__/unpacking.cpython-312.pyc | Bin 11125 -> 0 bytes .../utils/__pycache__/urls.cpython-312.pyc | Bin 2422 -> 0 bytes .../__pycache__/virtualenv.cpython-312.pyc | Bin 4497 -> 0 bytes .../utils/__pycache__/wheel.cpython-312.pyc | Bin 5943 -> 0 bytes .../pip/_internal/utils/_jaraco_text.py | 109 - .../site-packages/pip/_internal/utils/_log.py | 38 - .../pip/_internal/utils/appdirs.py | 52 - .../pip/_internal/utils/compat.py | 63 - .../pip/_internal/utils/compatibility_tags.py | 165 - .../pip/_internal/utils/datetime.py | 11 - .../pip/_internal/utils/deprecation.py | 120 - .../pip/_internal/utils/direct_url_helpers.py | 87 - .../pip/_internal/utils/egg_link.py | 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 - .../vcs/__pycache__/__init__.cpython-312.pyc | Bin 551 -> 0 bytes .../vcs/__pycache__/bazaar.cpython-312.pyc | Bin 5043 -> 0 bytes .../vcs/__pycache__/git.cpython-312.pyc | Bin 19012 -> 0 bytes .../vcs/__pycache__/mercurial.cpython-312.pyc | Bin 7632 -> 0 bytes .../__pycache__/subversion.cpython-312.pyc | Bin 12504 -> 0 bytes .../versioncontrol.cpython-312.pyc | Bin 29030 -> 0 bytes .../site-packages/pip/_internal/vcs/bazaar.py | 112 - .../site-packages/pip/_internal/vcs/git.py | 526 - .../pip/_internal/vcs/mercurial.py | 163 - .../pip/_internal/vcs/subversion.py | 324 - .../pip/_internal/vcs/versioncontrol.py | 705 - .../pip/_internal/wheel_builder.py | 354 - .../site-packages/pip/_vendor/__init__.py | 121 - .../__pycache__/__init__.cpython-312.pyc | Bin 4713 -> 0 bytes .../_vendor/__pycache__/six.cpython-312.pyc | Bin 41290 -> 0 bytes .../typing_extensions.cpython-312.pyc | Bin 122070 -> 0 bytes .../pip/_vendor/cachecontrol/__init__.py | 28 - .../__pycache__/__init__.cpython-312.pyc | Bin 923 -> 0 bytes .../__pycache__/_cmd.cpython-312.pyc | Bin 2667 -> 0 bytes .../__pycache__/adapter.cpython-312.pyc | Bin 6485 -> 0 bytes .../__pycache__/cache.cpython-312.pyc | Bin 3830 -> 0 bytes .../__pycache__/controller.cpython-312.pyc | Bin 16188 -> 0 bytes .../__pycache__/filewrapper.cpython-312.pyc | Bin 4368 -> 0 bytes .../__pycache__/heuristics.cpython-312.pyc | Bin 6715 -> 0 bytes .../__pycache__/serialize.cpython-312.pyc | Bin 6426 -> 0 bytes .../__pycache__/wrapper.cpython-312.pyc | Bin 1695 -> 0 bytes .../pip/_vendor/cachecontrol/_cmd.py | 70 - .../pip/_vendor/cachecontrol/adapter.py | 161 - .../pip/_vendor/cachecontrol/cache.py | 74 - .../_vendor/cachecontrol/caches/__init__.py | 8 - .../__pycache__/__init__.cpython-312.pyc | Bin 456 -> 0 bytes .../__pycache__/file_cache.cpython-312.pyc | Bin 7731 -> 0 bytes .../__pycache__/redis_cache.cpython-312.pyc | Bin 2759 -> 0 bytes .../_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/serialize.py | 206 - .../pip/_vendor/cachecontrol/wrapper.py | 43 - .../pip/_vendor/certifi/__init__.py | 4 - .../pip/_vendor/certifi/__main__.py | 12 - .../__pycache__/__init__.cpython-312.pyc | Bin 339 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 666 -> 0 bytes .../certifi/__pycache__/core.cpython-312.pyc | Bin 3348 -> 0 bytes .../pip/_vendor/certifi/cacert.pem | 4635 -- .../site-packages/pip/_vendor/certifi/core.py | 119 - .../pip/_vendor/chardet/__init__.py | 115 - .../__pycache__/__init__.cpython-312.pyc | Bin 4589 -> 0 bytes .../__pycache__/big5freq.cpython-312.pyc | Bin 27220 -> 0 bytes .../__pycache__/big5prober.cpython-312.pyc | Bin 1408 -> 0 bytes .../chardistribution.cpython-312.pyc | Bin 9659 -> 0 bytes .../charsetgroupprober.cpython-312.pyc | Bin 4143 -> 0 bytes .../__pycache__/charsetprober.cpython-312.pyc | Bin 5039 -> 0 bytes .../codingstatemachine.cpython-312.pyc | Bin 3899 -> 0 bytes .../codingstatemachinedict.cpython-312.pyc | Bin 810 -> 0 bytes .../__pycache__/cp949prober.cpython-312.pyc | Bin 1417 -> 0 bytes .../chardet/__pycache__/enums.cpython-312.pyc | Bin 3017 -> 0 bytes .../__pycache__/escprober.cpython-312.pyc | Bin 4587 -> 0 bytes .../chardet/__pycache__/escsm.cpython-312.pyc | Bin 15331 -> 0 bytes .../__pycache__/eucjpprober.cpython-312.pyc | Bin 4404 -> 0 bytes .../__pycache__/euckrfreq.cpython-312.pyc | Bin 12103 -> 0 bytes .../__pycache__/euckrprober.cpython-312.pyc | Bin 1411 -> 0 bytes .../__pycache__/euctwfreq.cpython-312.pyc | Bin 27225 -> 0 bytes .../__pycache__/euctwprober.cpython-312.pyc | Bin 1411 -> 0 bytes .../__pycache__/gb2312freq.cpython-312.pyc | Bin 19147 -> 0 bytes .../__pycache__/gb2312prober.cpython-312.pyc | Bin 1424 -> 0 bytes .../__pycache__/hebrewprober.cpython-312.pyc | Bin 5843 -> 0 bytes .../__pycache__/jisfreq.cpython-312.pyc | Bin 22176 -> 0 bytes .../__pycache__/johabfreq.cpython-312.pyc | Bin 83024 -> 0 bytes .../__pycache__/johabprober.cpython-312.pyc | Bin 1415 -> 0 bytes .../__pycache__/jpcntx.cpython-312.pyc | Bin 39570 -> 0 bytes .../langbulgarianmodel.cpython-312.pyc | Bin 83143 -> 0 bytes .../langgreekmodel.cpython-312.pyc | Bin 77009 -> 0 bytes .../langhebrewmodel.cpython-312.pyc | Bin 77520 -> 0 bytes .../langhungarianmodel.cpython-312.pyc | Bin 83097 -> 0 bytes .../langrussianmodel.cpython-312.pyc | Bin 105272 -> 0 bytes .../__pycache__/langthaimodel.cpython-312.pyc | Bin 77698 -> 0 bytes .../langturkishmodel.cpython-312.pyc | Bin 77537 -> 0 bytes .../__pycache__/latin1prober.cpython-312.pyc | Bin 7023 -> 0 bytes .../macromanprober.cpython-312.pyc | Bin 7203 -> 0 bytes .../mbcharsetprober.cpython-312.pyc | Bin 3924 -> 0 bytes .../mbcsgroupprober.cpython-312.pyc | Bin 1609 -> 0 bytes .../__pycache__/mbcssm.cpython-312.pyc | Bin 38666 -> 0 bytes .../__pycache__/resultdict.cpython-312.pyc | Bin 653 -> 0 bytes .../sbcharsetprober.cpython-312.pyc | Bin 6408 -> 0 bytes .../sbcsgroupprober.cpython-312.pyc | Bin 2378 -> 0 bytes .../__pycache__/sjisprober.cpython-312.pyc | Bin 4516 -> 0 bytes .../universaldetector.cpython-312.pyc | Bin 12290 -> 0 bytes .../__pycache__/utf1632prober.cpython-312.pyc | Bin 10000 -> 0 bytes .../__pycache__/utf8prober.cpython-312.pyc | Bin 3196 -> 0 bytes .../__pycache__/version.cpython-312.pyc | Bin 509 -> 0 bytes .../pip/_vendor/chardet/big5freq.py | 386 - .../pip/_vendor/chardet/big5prober.py | 47 - .../pip/_vendor/chardet/chardistribution.py | 261 - .../pip/_vendor/chardet/charsetgroupprober.py | 106 - .../pip/_vendor/chardet/charsetprober.py | 147 - .../pip/_vendor/chardet/cli/__init__.py | 0 .../cli/__pycache__/__init__.cpython-312.pyc | Bin 216 -> 0 bytes .../__pycache__/chardetect.cpython-312.pyc | Bin 4033 -> 0 bytes .../pip/_vendor/chardet/cli/chardetect.py | 112 - .../pip/_vendor/chardet/codingstatemachine.py | 90 - .../_vendor/chardet/codingstatemachinedict.py | 19 - .../pip/_vendor/chardet/cp949prober.py | 49 - .../pip/_vendor/chardet/enums.py | 85 - .../pip/_vendor/chardet/escprober.py | 102 - .../pip/_vendor/chardet/escsm.py | 261 - .../pip/_vendor/chardet/eucjpprober.py | 102 - .../pip/_vendor/chardet/euckrfreq.py | 196 - .../pip/_vendor/chardet/euckrprober.py | 47 - .../pip/_vendor/chardet/euctwfreq.py | 388 - .../pip/_vendor/chardet/euctwprober.py | 47 - .../pip/_vendor/chardet/gb2312freq.py | 284 - .../pip/_vendor/chardet/gb2312prober.py | 47 - .../pip/_vendor/chardet/hebrewprober.py | 316 - .../pip/_vendor/chardet/jisfreq.py | 325 - .../pip/_vendor/chardet/johabfreq.py | 2382 - .../pip/_vendor/chardet/johabprober.py | 47 - .../pip/_vendor/chardet/jpcntx.py | 238 - .../pip/_vendor/chardet/langbulgarianmodel.py | 4649 -- .../pip/_vendor/chardet/langgreekmodel.py | 4397 -- .../pip/_vendor/chardet/langhebrewmodel.py | 4380 -- .../pip/_vendor/chardet/langhungarianmodel.py | 4649 -- .../pip/_vendor/chardet/langrussianmodel.py | 5725 -- .../pip/_vendor/chardet/langthaimodel.py | 4380 -- .../pip/_vendor/chardet/langturkishmodel.py | 4380 -- .../pip/_vendor/chardet/latin1prober.py | 147 - .../pip/_vendor/chardet/macromanprober.py | 162 - .../pip/_vendor/chardet/mbcharsetprober.py | 95 - .../pip/_vendor/chardet/mbcsgroupprober.py | 57 - .../pip/_vendor/chardet/mbcssm.py | 661 - .../pip/_vendor/chardet/metadata/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 221 -> 0 bytes .../__pycache__/languages.cpython-312.pyc | Bin 9776 -> 0 bytes .../pip/_vendor/chardet/metadata/languages.py | 352 - .../pip/_vendor/chardet/resultdict.py | 16 - .../pip/_vendor/chardet/sbcharsetprober.py | 162 - .../pip/_vendor/chardet/sbcsgroupprober.py | 88 - .../pip/_vendor/chardet/sjisprober.py | 105 - .../pip/_vendor/chardet/universaldetector.py | 362 - .../pip/_vendor/chardet/utf1632prober.py | 225 - .../pip/_vendor/chardet/utf8prober.py | 82 - .../pip/_vendor/chardet/version.py | 9 - .../pip/_vendor/colorama/__init__.py | 7 - .../__pycache__/__init__.cpython-312.pyc | Bin 513 -> 0 bytes .../colorama/__pycache__/ansi.cpython-312.pyc | Bin 3971 -> 0 bytes .../__pycache__/ansitowin32.cpython-312.pyc | Bin 16442 -> 0 bytes .../__pycache__/initialise.cpython-312.pyc | Bin 3571 -> 0 bytes .../__pycache__/win32.cpython-312.pyc | Bin 8147 -> 0 bytes .../__pycache__/winterm.cpython-312.pyc | Bin 9109 -> 0 bytes .../pip/_vendor/colorama/ansi.py | 102 - .../pip/_vendor/colorama/ansitowin32.py | 277 - .../pip/_vendor/colorama/initialise.py | 121 - .../pip/_vendor/colorama/tests/__init__.py | 1 - .../__pycache__/__init__.cpython-312.pyc | Bin 219 -> 0 bytes .../__pycache__/ansi_test.cpython-312.pyc | Bin 5488 -> 0 bytes .../ansitowin32_test.cpython-312.pyc | Bin 18124 -> 0 bytes .../initialise_test.cpython-312.pyc | Bin 11769 -> 0 bytes .../__pycache__/isatty_test.cpython-312.pyc | Bin 4925 -> 0 bytes .../tests/__pycache__/utils.cpython-312.pyc | Bin 2509 -> 0 bytes .../__pycache__/winterm_test.cpython-312.pyc | Bin 6633 -> 0 bytes .../pip/_vendor/colorama/tests/ansi_test.py | 76 - .../colorama/tests/ansitowin32_test.py | 294 - .../_vendor/colorama/tests/initialise_test.py | 189 - .../pip/_vendor/colorama/tests/isatty_test.py | 57 - .../pip/_vendor/colorama/tests/utils.py | 49 - .../_vendor/colorama/tests/winterm_test.py | 131 - .../pip/_vendor/colorama/win32.py | 180 - .../pip/_vendor/colorama/winterm.py | 195 - .../pip/_vendor/distlib/__init__.py | 33 - .../__pycache__/__init__.cpython-312.pyc | Bin 1290 -> 0 bytes .../__pycache__/compat.cpython-312.pyc | Bin 45626 -> 0 bytes .../__pycache__/database.cpython-312.pyc | Bin 66048 -> 0 bytes .../distlib/__pycache__/index.cpython-312.pyc | Bin 24387 -> 0 bytes .../__pycache__/locators.cpython-312.pyc | Bin 60179 -> 0 bytes .../__pycache__/manifest.cpython-312.pyc | Bin 15146 -> 0 bytes .../__pycache__/markers.cpython-312.pyc | Bin 7703 -> 0 bytes .../__pycache__/metadata.cpython-312.pyc | Bin 41820 -> 0 bytes .../__pycache__/resources.cpython-312.pyc | Bin 17346 -> 0 bytes .../__pycache__/scripts.cpython-312.pyc | Bin 19601 -> 0 bytes .../distlib/__pycache__/util.cpython-312.pyc | Bin 88277 -> 0 bytes .../__pycache__/version.cpython-312.pyc | Bin 30387 -> 0 bytes .../distlib/__pycache__/wheel.cpython-312.pyc | Bin 51882 -> 0 bytes .../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/util.py | 2025 - .../pip/_vendor/distlib/version.py | 751 - .../pip/_vendor/distlib/wheel.py | 1099 - .../pip/_vendor/distro/__init__.py | 54 - .../pip/_vendor/distro/__main__.py | 4 - .../__pycache__/__init__.cpython-312.pyc | Bin 981 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 313 -> 0 bytes .../distro/__pycache__/distro.cpython-312.pyc | Bin 53775 -> 0 bytes .../pip/_vendor/distro/distro.py | 1399 - .../pip/_vendor/idna/__init__.py | 44 - .../idna/__pycache__/__init__.cpython-312.pyc | Bin 902 -> 0 bytes .../idna/__pycache__/codec.cpython-312.pyc | Bin 4654 -> 0 bytes .../idna/__pycache__/compat.cpython-312.pyc | Bin 908 -> 0 bytes .../idna/__pycache__/core.cpython-312.pyc | Bin 16044 -> 0 bytes .../idna/__pycache__/idnadata.cpython-312.pyc | Bin 99518 -> 0 bytes .../__pycache__/intranges.cpython-312.pyc | Bin 2659 -> 0 bytes .../__pycache__/package_data.cpython-312.pyc | Bin 237 -> 0 bytes .../__pycache__/uts46data.cpython-312.pyc | Bin 158891 -> 0 bytes .../site-packages/pip/_vendor/idna/codec.py | 112 - .../site-packages/pip/_vendor/idna/compat.py | 13 - .../site-packages/pip/_vendor/idna/core.py | 400 - .../pip/_vendor/idna/idnadata.py | 4246 - .../pip/_vendor/idna/intranges.py | 54 - .../pip/_vendor/idna/package_data.py | 2 - .../pip/_vendor/idna/uts46data.py | 8600 -- .../pip/_vendor/msgpack/__init__.py | 57 - .../__pycache__/__init__.cpython-312.pyc | Bin 1852 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 2046 -> 0 bytes .../msgpack/__pycache__/ext.cpython-312.pyc | Bin 8689 -> 0 bytes .../__pycache__/fallback.cpython-312.pyc | Bin 43597 -> 0 bytes .../pip/_vendor/msgpack/exceptions.py | 48 - .../site-packages/pip/_vendor/msgpack/ext.py | 193 - .../pip/_vendor/msgpack/fallback.py | 1010 - .../pip/_vendor/packaging/__about__.py | 26 - .../pip/_vendor/packaging/__init__.py | 25 - .../__pycache__/__about__.cpython-312.pyc | Bin 651 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 487 -> 0 bytes .../__pycache__/_manylinux.cpython-312.pyc | Bin 12097 -> 0 bytes .../__pycache__/_musllinux.cpython-312.pyc | Bin 6931 -> 0 bytes .../__pycache__/_structures.cpython-312.pyc | Bin 3262 -> 0 bytes .../__pycache__/markers.cpython-312.pyc | Bin 14079 -> 0 bytes .../__pycache__/requirements.cpython-312.pyc | Bin 6967 -> 0 bytes .../__pycache__/specifiers.cpython-312.pyc | Bin 31268 -> 0 bytes .../__pycache__/tags.cpython-312.pyc | Bin 18977 -> 0 bytes .../__pycache__/utils.cpython-312.pyc | Bin 5889 -> 0 bytes .../__pycache__/version.cpython-312.pyc | Bin 19960 -> 0 bytes .../pip/_vendor/packaging/_manylinux.py | 301 - .../pip/_vendor/packaging/_musllinux.py | 136 - .../pip/_vendor/packaging/_structures.py | 61 - .../pip/_vendor/packaging/markers.py | 304 - .../pip/_vendor/packaging/requirements.py | 146 - .../pip/_vendor/packaging/specifiers.py | 802 - .../pip/_vendor/packaging/tags.py | 487 - .../pip/_vendor/packaging/utils.py | 136 - .../pip/_vendor/packaging/version.py | 504 - .../pip/_vendor/pkg_resources/__init__.py | 3361 - .../__pycache__/__init__.cpython-312.pyc | Bin 146495 -> 0 bytes .../pip/_vendor/platformdirs/__init__.py | 566 - .../pip/_vendor/platformdirs/__main__.py | 53 - .../__pycache__/__init__.cpython-312.pyc | Bin 18050 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 1967 -> 0 bytes .../__pycache__/android.cpython-312.pyc | Bin 9465 -> 0 bytes .../__pycache__/api.cpython-312.pyc | Bin 9693 -> 0 bytes .../__pycache__/macos.cpython-312.pyc | Bin 5658 -> 0 bytes .../__pycache__/unix.cpython-312.pyc | Bin 12462 -> 0 bytes .../__pycache__/version.cpython-312.pyc | Bin 332 -> 0 bytes .../__pycache__/windows.cpython-312.pyc | Bin 13020 -> 0 bytes .../pip/_vendor/platformdirs/android.py | 210 - .../pip/_vendor/platformdirs/api.py | 223 - .../pip/_vendor/platformdirs/macos.py | 91 - .../pip/_vendor/platformdirs/unix.py | 223 - .../pip/_vendor/platformdirs/version.py | 4 - .../pip/_vendor/platformdirs/windows.py | 255 - .../pip/_vendor/pygments/__init__.py | 82 - .../pip/_vendor/pygments/__main__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 3510 -> 0 bytes .../__pycache__/__main__.cpython-312.pyc | Bin 756 -> 0 bytes .../__pycache__/cmdline.cpython-312.pyc | Bin 26627 -> 0 bytes .../__pycache__/console.cpython-312.pyc | Bin 2648 -> 0 bytes .../__pycache__/filter.cpython-312.pyc | Bin 3254 -> 0 bytes .../__pycache__/formatter.cpython-312.pyc | Bin 4591 -> 0 bytes .../__pycache__/lexer.cpython-312.pyc | Bin 38351 -> 0 bytes .../__pycache__/modeline.cpython-312.pyc | Bin 1590 -> 0 bytes .../__pycache__/plugin.cpython-312.pyc | Bin 3418 -> 0 bytes .../__pycache__/regexopt.cpython-312.pyc | Bin 4103 -> 0 bytes .../__pycache__/scanner.cpython-312.pyc | Bin 4778 -> 0 bytes .../__pycache__/sphinxext.cpython-312.pyc | Bin 11068 -> 0 bytes .../__pycache__/style.cpython-312.pyc | Bin 6696 -> 0 bytes .../__pycache__/token.cpython-312.pyc | Bin 8164 -> 0 bytes .../__pycache__/unistring.cpython-312.pyc | Bin 33010 -> 0 bytes .../pygments/__pycache__/util.cpython-312.pyc | Bin 14003 -> 0 bytes .../pip/_vendor/pygments/cmdline.py | 668 - .../pip/_vendor/pygments/console.py | 70 - .../pip/_vendor/pygments/filter.py | 71 - .../pip/_vendor/pygments/filters/__init__.py | 940 - .../__pycache__/__init__.cpython-312.pyc | Bin 37958 -> 0 bytes .../pip/_vendor/pygments/formatter.py | 124 - .../_vendor/pygments/formatters/__init__.py | 158 - .../__pycache__/__init__.cpython-312.pyc | Bin 6948 -> 0 bytes .../__pycache__/_mapping.cpython-312.pyc | Bin 4237 -> 0 bytes .../__pycache__/bbcode.cpython-312.pyc | Bin 4216 -> 0 bytes .../__pycache__/groff.cpython-312.pyc | Bin 7286 -> 0 bytes .../__pycache__/html.cpython-312.pyc | Bin 40594 -> 0 bytes .../__pycache__/img.cpython-312.pyc | Bin 27065 -> 0 bytes .../__pycache__/irc.cpython-312.pyc | Bin 6087 -> 0 bytes .../__pycache__/latex.cpython-312.pyc | Bin 19976 -> 0 bytes .../__pycache__/other.cpython-312.pyc | Bin 6906 -> 0 bytes .../__pycache__/pangomarkup.cpython-312.pyc | Bin 2952 -> 0 bytes .../__pycache__/rtf.cpython-312.pyc | Bin 6148 -> 0 bytes .../__pycache__/svg.cpython-312.pyc | Bin 9088 -> 0 bytes .../__pycache__/terminal.cpython-312.pyc | Bin 5851 -> 0 bytes .../__pycache__/terminal256.cpython-312.pyc | Bin 15179 -> 0 bytes .../_vendor/pygments/formatters/_mapping.py | 23 - .../pip/_vendor/pygments/formatters/bbcode.py | 108 - .../pip/_vendor/pygments/formatters/groff.py | 170 - .../pip/_vendor/pygments/formatters/html.py | 989 - .../pip/_vendor/pygments/formatters/img.py | 645 - .../pip/_vendor/pygments/formatters/irc.py | 154 - .../pip/_vendor/pygments/formatters/latex.py | 521 - .../pip/_vendor/pygments/formatters/other.py | 161 - .../pygments/formatters/pangomarkup.py | 83 - .../pip/_vendor/pygments/formatters/rtf.py | 146 - .../pip/_vendor/pygments/formatters/svg.py | 188 - .../_vendor/pygments/formatters/terminal.py | 127 - .../pygments/formatters/terminal256.py | 338 - .../pip/_vendor/pygments/lexer.py | 943 - .../pip/_vendor/pygments/lexers/__init__.py | 362 - .../__pycache__/__init__.cpython-312.pyc | Bin 14674 -> 0 bytes .../__pycache__/_mapping.cpython-312.pyc | Bin 64426 -> 0 bytes .../lexers/__pycache__/python.cpython-312.pyc | Bin 42661 -> 0 bytes .../pip/_vendor/pygments/lexers/_mapping.py | 559 - .../pip/_vendor/pygments/lexers/python.py | 1198 - .../pip/_vendor/pygments/modeline.py | 43 - .../pip/_vendor/pygments/plugin.py | 88 - .../pip/_vendor/pygments/regexopt.py | 91 - .../pip/_vendor/pygments/scanner.py | 104 - .../pip/_vendor/pygments/sphinxext.py | 217 - .../pip/_vendor/pygments/style.py | 197 - .../pip/_vendor/pygments/styles/__init__.py | 103 - .../__pycache__/__init__.cpython-312.pyc | Bin 4470 -> 0 bytes .../pip/_vendor/pygments/token.py | 213 - .../pip/_vendor/pygments/unistring.py | 153 - .../pip/_vendor/pygments/util.py | 330 - .../pip/_vendor/pyparsing/__init__.py | 322 - .../__pycache__/__init__.cpython-312.pyc | Bin 7933 -> 0 bytes .../__pycache__/actions.cpython-312.pyc | Bin 8417 -> 0 bytes .../__pycache__/common.cpython-312.pyc | Bin 13436 -> 0 bytes .../__pycache__/core.cpython-312.pyc | Bin 267730 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 13016 -> 0 bytes .../__pycache__/helpers.cpython-312.pyc | Bin 48523 -> 0 bytes .../__pycache__/results.cpython-312.pyc | Bin 34132 -> 0 bytes .../__pycache__/testing.cpython-312.pyc | Bin 17210 -> 0 bytes .../__pycache__/unicode.cpython-312.pyc | Bin 13206 -> 0 bytes .../__pycache__/util.cpython-312.pyc | Bin 14926 -> 0 bytes .../pip/_vendor/pyparsing/actions.py | 217 - .../pip/_vendor/pyparsing/common.py | 432 - .../pip/_vendor/pyparsing/core.py | 6115 -- .../pip/_vendor/pyparsing/diagram/__init__.py | 656 - .../__pycache__/__init__.cpython-312.pyc | Bin 26835 -> 0 bytes .../pip/_vendor/pyparsing/exceptions.py | 299 - .../pip/_vendor/pyparsing/helpers.py | 1100 - .../pip/_vendor/pyparsing/results.py | 796 - .../pip/_vendor/pyparsing/testing.py | 331 - .../pip/_vendor/pyparsing/unicode.py | 361 - .../pip/_vendor/pyparsing/util.py | 284 - .../pip/_vendor/pyproject_hooks/__init__.py | 23 - .../__pycache__/__init__.cpython-312.pyc | Bin 635 -> 0 bytes .../__pycache__/_compat.cpython-312.pyc | Bin 396 -> 0 bytes .../__pycache__/_impl.cpython-312.pyc | Bin 14747 -> 0 bytes .../pip/_vendor/pyproject_hooks/_compat.py | 8 - .../pip/_vendor/pyproject_hooks/_impl.py | 330 - .../pyproject_hooks/_in_process/__init__.py | 18 - .../__pycache__/__init__.cpython-312.pyc | Bin 1102 -> 0 bytes .../__pycache__/_in_process.cpython-312.pyc | Bin 14419 -> 0 bytes .../_in_process/_in_process.py | 353 - .../pip/_vendor/requests/__init__.py | 182 - .../__pycache__/__init__.cpython-312.pyc | Bin 5475 -> 0 bytes .../__pycache__/__version__.cpython-312.pyc | Bin 606 -> 0 bytes .../_internal_utils.cpython-312.pyc | Bin 2046 -> 0 bytes .../__pycache__/adapters.cpython-312.pyc | Bin 21302 -> 0 bytes .../requests/__pycache__/api.cpython-312.pyc | Bin 7226 -> 0 bytes .../requests/__pycache__/auth.cpython-312.pyc | Bin 13945 -> 0 bytes .../__pycache__/certs.cpython-312.pyc | Bin 944 -> 0 bytes .../__pycache__/compat.cpython-312.pyc | Bin 1529 -> 0 bytes .../__pycache__/cookies.cpython-312.pyc | Bin 25268 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 7069 -> 0 bytes .../requests/__pycache__/help.cpython-312.pyc | Bin 4334 -> 0 bytes .../__pycache__/hooks.cpython-312.pyc | Bin 1074 -> 0 bytes .../__pycache__/models.cpython-312.pyc | Bin 35470 -> 0 bytes .../__pycache__/packages.cpython-312.pyc | Bin 794 -> 0 bytes .../__pycache__/sessions.cpython-312.pyc | Bin 27779 -> 0 bytes .../__pycache__/status_codes.cpython-312.pyc | Bin 5981 -> 0 bytes .../__pycache__/structures.cpython-312.pyc | Bin 5639 -> 0 bytes .../__pycache__/utils.cpython-312.pyc | Bin 36097 -> 0 bytes .../pip/_vendor/requests/__version__.py | 14 - .../pip/_vendor/requests/_internal_utils.py | 50 - .../pip/_vendor/requests/adapters.py | 538 - .../site-packages/pip/_vendor/requests/api.py | 157 - .../pip/_vendor/requests/auth.py | 315 - .../pip/_vendor/requests/certs.py | 24 - .../pip/_vendor/requests/compat.py | 67 - .../pip/_vendor/requests/cookies.py | 561 - .../pip/_vendor/requests/exceptions.py | 141 - .../pip/_vendor/requests/help.py | 131 - .../pip/_vendor/requests/hooks.py | 33 - .../pip/_vendor/requests/models.py | 1034 - .../pip/_vendor/requests/packages.py | 16 - .../pip/_vendor/requests/sessions.py | 833 - .../pip/_vendor/requests/status_codes.py | 128 - .../pip/_vendor/requests/structures.py | 99 - .../pip/_vendor/requests/utils.py | 1088 - .../pip/_vendor/resolvelib/__init__.py | 26 - .../__pycache__/__init__.cpython-312.pyc | Bin 656 -> 0 bytes .../__pycache__/providers.cpython-312.pyc | Bin 6873 -> 0 bytes .../__pycache__/reporters.cpython-312.pyc | Bin 2676 -> 0 bytes .../__pycache__/resolvers.cpython-312.pyc | Bin 25919 -> 0 bytes .../__pycache__/structs.cpython-312.pyc | Bin 10528 -> 0 bytes .../pip/_vendor/resolvelib/compat/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 222 -> 0 bytes .../collections_abc.cpython-312.pyc | Bin 442 -> 0 bytes .../resolvelib/compat/collections_abc.py | 6 - .../pip/_vendor/resolvelib/providers.py | 133 - .../pip/_vendor/resolvelib/reporters.py | 43 - .../pip/_vendor/resolvelib/resolvers.py | 547 - .../pip/_vendor/resolvelib/structs.py | 170 - .../pip/_vendor/rich/__init__.py | 177 - .../pip/_vendor/rich/__main__.py | 274 - .../rich/__pycache__/__init__.cpython-312.pyc | Bin 7037 -> 0 bytes .../rich/__pycache__/__main__.cpython-312.pyc | Bin 10326 -> 0 bytes .../__pycache__/_cell_widths.cpython-312.pyc | Bin 7843 -> 0 bytes .../__pycache__/_emoji_codes.cpython-312.pyc | Bin 205998 -> 0 bytes .../_emoji_replace.cpython-312.pyc | Bin 1751 -> 0 bytes .../_export_format.cpython-312.pyc | Bin 2343 -> 0 bytes .../__pycache__/_extension.cpython-312.pyc | Bin 559 -> 0 bytes .../rich/__pycache__/_fileno.cpython-312.pyc | Bin 877 -> 0 bytes .../rich/__pycache__/_inspect.cpython-312.pyc | Bin 12099 -> 0 bytes .../__pycache__/_log_render.cpython-312.pyc | Bin 4169 -> 0 bytes .../rich/__pycache__/_loop.cpython-312.pyc | Bin 1907 -> 0 bytes .../__pycache__/_null_file.cpython-312.pyc | Bin 3642 -> 0 bytes .../__pycache__/_palettes.cpython-312.pyc | Bin 5182 -> 0 bytes .../rich/__pycache__/_pick.cpython-312.pyc | Bin 748 -> 0 bytes .../rich/__pycache__/_ratio.cpython-312.pyc | Bin 6601 -> 0 bytes .../__pycache__/_spinners.cpython-312.pyc | Bin 13201 -> 0 bytes .../rich/__pycache__/_stack.cpython-312.pyc | Bin 987 -> 0 bytes .../rich/__pycache__/_timer.cpython-312.pyc | Bin 887 -> 0 bytes .../_win32_console.cpython-312.pyc | Bin 28998 -> 0 bytes .../rich/__pycache__/_windows.cpython-312.pyc | Bin 2512 -> 0 bytes .../_windows_renderer.cpython-312.pyc | Bin 3595 -> 0 bytes .../rich/__pycache__/_wrap.cpython-312.pyc | Bin 2382 -> 0 bytes .../rich/__pycache__/abc.cpython-312.pyc | Bin 1630 -> 0 bytes .../rich/__pycache__/align.cpython-312.pyc | Bin 12344 -> 0 bytes .../rich/__pycache__/ansi.cpython-312.pyc | Bin 9128 -> 0 bytes .../rich/__pycache__/bar.cpython-312.pyc | Bin 4294 -> 0 bytes .../rich/__pycache__/box.cpython-312.pyc | Bin 11880 -> 0 bytes .../rich/__pycache__/cells.cpython-312.pyc | Bin 5640 -> 0 bytes .../rich/__pycache__/color.cpython-312.pyc | Bin 26592 -> 0 bytes .../__pycache__/color_triplet.cpython-312.pyc | Bin 1723 -> 0 bytes .../rich/__pycache__/columns.cpython-312.pyc | Bin 8609 -> 0 bytes .../rich/__pycache__/console.cpython-312.pyc | Bin 113815 -> 0 bytes .../__pycache__/constrain.cpython-312.pyc | Bin 2280 -> 0 bytes .../__pycache__/containers.cpython-312.pyc | Bin 9248 -> 0 bytes .../rich/__pycache__/control.cpython-312.pyc | Bin 10951 -> 0 bytes .../default_styles.cpython-312.pyc | Bin 10395 -> 0 bytes .../rich/__pycache__/diagnose.cpython-312.pyc | Bin 1509 -> 0 bytes .../rich/__pycache__/emoji.cpython-312.pyc | Bin 4231 -> 0 bytes .../rich/__pycache__/errors.cpython-312.pyc | Bin 1867 -> 0 bytes .../__pycache__/file_proxy.cpython-312.pyc | Bin 3599 -> 0 bytes .../rich/__pycache__/filesize.cpython-312.pyc | Bin 3104 -> 0 bytes .../__pycache__/highlighter.cpython-312.pyc | Bin 9920 -> 0 bytes .../rich/__pycache__/json.cpython-312.pyc | Bin 6057 -> 0 bytes .../rich/__pycache__/jupyter.cpython-312.pyc | Bin 5231 -> 0 bytes .../rich/__pycache__/layout.cpython-312.pyc | Bin 20242 -> 0 bytes .../rich/__pycache__/live.cpython-312.pyc | Bin 19165 -> 0 bytes .../__pycache__/live_render.cpython-312.pyc | Bin 4916 -> 0 bytes .../rich/__pycache__/logging.cpython-312.pyc | Bin 13576 -> 0 bytes .../rich/__pycache__/markup.cpython-312.pyc | Bin 9320 -> 0 bytes .../rich/__pycache__/measure.cpython-312.pyc | Bin 6398 -> 0 bytes .../rich/__pycache__/padding.cpython-312.pyc | Bin 7156 -> 0 bytes .../rich/__pycache__/pager.cpython-312.pyc | Bin 1842 -> 0 bytes .../rich/__pycache__/palette.cpython-312.pyc | Bin 5336 -> 0 bytes .../rich/__pycache__/panel.cpython-312.pyc | Bin 12119 -> 0 bytes .../rich/__pycache__/pretty.cpython-312.pyc | Bin 40078 -> 0 bytes .../rich/__pycache__/progress.cpython-312.pyc | Bin 75100 -> 0 bytes .../__pycache__/progress_bar.cpython-312.pyc | Bin 10411 -> 0 bytes .../rich/__pycache__/prompt.cpython-312.pyc | Bin 14803 -> 0 bytes .../rich/__pycache__/protocol.cpython-312.pyc | Bin 1814 -> 0 bytes .../rich/__pycache__/region.cpython-312.pyc | Bin 589 -> 0 bytes .../rich/__pycache__/repr.cpython-312.pyc | Bin 6648 -> 0 bytes .../rich/__pycache__/rule.cpython-312.pyc | Bin 6590 -> 0 bytes .../rich/__pycache__/scope.cpython-312.pyc | Bin 3852 -> 0 bytes .../rich/__pycache__/screen.cpython-312.pyc | Bin 2506 -> 0 bytes .../rich/__pycache__/segment.cpython-312.pyc | Bin 28183 -> 0 bytes .../rich/__pycache__/spinner.cpython-312.pyc | Bin 6086 -> 0 bytes .../rich/__pycache__/status.cpython-312.pyc | Bin 6090 -> 0 bytes .../rich/__pycache__/style.cpython-312.pyc | Bin 33536 -> 0 bytes .../rich/__pycache__/styled.cpython-312.pyc | Bin 2161 -> 0 bytes .../rich/__pycache__/syntax.cpython-312.pyc | Bin 39634 -> 0 bytes .../rich/__pycache__/table.cpython-312.pyc | Bin 43606 -> 0 bytes .../terminal_theme.cpython-312.pyc | Bin 3370 -> 0 bytes .../rich/__pycache__/text.cpython-312.pyc | Bin 58985 -> 0 bytes .../rich/__pycache__/theme.cpython-312.pyc | Bin 6362 -> 0 bytes .../rich/__pycache__/themes.cpython-312.pyc | Bin 336 -> 0 bytes .../__pycache__/traceback.cpython-312.pyc | Bin 31570 -> 0 bytes .../rich/__pycache__/tree.cpython-312.pyc | Bin 11461 -> 0 bytes .../pip/_vendor/rich/_cell_widths.py | 451 - .../pip/_vendor/rich/_emoji_codes.py | 3610 - .../pip/_vendor/rich/_emoji_replace.py | 32 - .../pip/_vendor/rich/_export_format.py | 76 - .../pip/_vendor/rich/_extension.py | 10 - .../site-packages/pip/_vendor/rich/_fileno.py | 24 - .../pip/_vendor/rich/_inspect.py | 270 - .../pip/_vendor/rich/_log_render.py | 94 - .../site-packages/pip/_vendor/rich/_loop.py | 43 - .../pip/_vendor/rich/_null_file.py | 69 - .../pip/_vendor/rich/_palettes.py | 309 - .../site-packages/pip/_vendor/rich/_pick.py | 17 - .../site-packages/pip/_vendor/rich/_ratio.py | 160 - .../pip/_vendor/rich/_spinners.py | 482 - .../site-packages/pip/_vendor/rich/_stack.py | 16 - .../site-packages/pip/_vendor/rich/_timer.py | 19 - .../pip/_vendor/rich/_win32_console.py | 662 - .../pip/_vendor/rich/_windows.py | 72 - .../pip/_vendor/rich/_windows_renderer.py | 56 - .../site-packages/pip/_vendor/rich/_wrap.py | 56 - .../site-packages/pip/_vendor/rich/abc.py | 33 - .../site-packages/pip/_vendor/rich/align.py | 311 - .../site-packages/pip/_vendor/rich/ansi.py | 240 - .../site-packages/pip/_vendor/rich/bar.py | 94 - .../site-packages/pip/_vendor/rich/box.py | 517 - .../site-packages/pip/_vendor/rich/cells.py | 154 - .../site-packages/pip/_vendor/rich/color.py | 622 - .../pip/_vendor/rich/color_triplet.py | 38 - .../site-packages/pip/_vendor/rich/columns.py | 187 - .../site-packages/pip/_vendor/rich/console.py | 2633 - .../pip/_vendor/rich/constrain.py | 37 - .../pip/_vendor/rich/containers.py | 167 - .../site-packages/pip/_vendor/rich/control.py | 225 - .../pip/_vendor/rich/default_styles.py | 190 - .../pip/_vendor/rich/diagnose.py | 37 - .../site-packages/pip/_vendor/rich/emoji.py | 96 - .../site-packages/pip/_vendor/rich/errors.py | 34 - .../pip/_vendor/rich/file_proxy.py | 57 - .../pip/_vendor/rich/filesize.py | 89 - .../pip/_vendor/rich/highlighter.py | 232 - .../site-packages/pip/_vendor/rich/json.py | 140 - .../site-packages/pip/_vendor/rich/jupyter.py | 101 - .../site-packages/pip/_vendor/rich/layout.py | 443 - .../site-packages/pip/_vendor/rich/live.py | 375 - .../pip/_vendor/rich/live_render.py | 113 - .../site-packages/pip/_vendor/rich/logging.py | 289 - .../site-packages/pip/_vendor/rich/markup.py | 246 - .../site-packages/pip/_vendor/rich/measure.py | 151 - .../site-packages/pip/_vendor/rich/padding.py | 141 - .../site-packages/pip/_vendor/rich/pager.py | 34 - .../site-packages/pip/_vendor/rich/palette.py | 100 - .../site-packages/pip/_vendor/rich/panel.py | 308 - .../site-packages/pip/_vendor/rich/pretty.py | 994 - .../pip/_vendor/rich/progress.py | 1702 - .../pip/_vendor/rich/progress_bar.py | 224 - .../site-packages/pip/_vendor/rich/prompt.py | 376 - .../pip/_vendor/rich/protocol.py | 42 - .../site-packages/pip/_vendor/rich/region.py | 10 - .../site-packages/pip/_vendor/rich/repr.py | 149 - .../site-packages/pip/_vendor/rich/rule.py | 130 - .../site-packages/pip/_vendor/rich/scope.py | 86 - .../site-packages/pip/_vendor/rich/screen.py | 54 - .../site-packages/pip/_vendor/rich/segment.py | 739 - .../site-packages/pip/_vendor/rich/spinner.py | 137 - .../site-packages/pip/_vendor/rich/status.py | 132 - .../site-packages/pip/_vendor/rich/style.py | 796 - .../site-packages/pip/_vendor/rich/styled.py | 42 - .../site-packages/pip/_vendor/rich/syntax.py | 948 - .../site-packages/pip/_vendor/rich/table.py | 1002 - .../pip/_vendor/rich/terminal_theme.py | 153 - .../site-packages/pip/_vendor/rich/text.py | 1307 - .../site-packages/pip/_vendor/rich/theme.py | 115 - .../site-packages/pip/_vendor/rich/themes.py | 5 - .../pip/_vendor/rich/traceback.py | 756 - .../site-packages/pip/_vendor/rich/tree.py | 251 - .../site-packages/pip/_vendor/six.py | 998 - .../pip/_vendor/tenacity/__init__.py | 608 - .../__pycache__/__init__.cpython-312.pyc | Bin 27108 -> 0 bytes .../__pycache__/_asyncio.cpython-312.pyc | Bin 4828 -> 0 bytes .../__pycache__/_utils.cpython-312.pyc | Bin 2337 -> 0 bytes .../__pycache__/after.cpython-312.pyc | Bin 1646 -> 0 bytes .../__pycache__/before.cpython-312.pyc | Bin 1486 -> 0 bytes .../__pycache__/before_sleep.cpython-312.pyc | Bin 2324 -> 0 bytes .../tenacity/__pycache__/nap.cpython-312.pyc | Bin 1434 -> 0 bytes .../__pycache__/retry.cpython-312.pyc | Bin 14303 -> 0 bytes .../tenacity/__pycache__/stop.cpython-312.pyc | Bin 5590 -> 0 bytes .../__pycache__/tornadoweb.cpython-312.pyc | Bin 2608 -> 0 bytes .../tenacity/__pycache__/wait.cpython-312.pyc | Bin 12435 -> 0 bytes .../pip/_vendor/tenacity/_asyncio.py | 94 - .../pip/_vendor/tenacity/_utils.py | 76 - .../pip/_vendor/tenacity/after.py | 51 - .../pip/_vendor/tenacity/before.py | 46 - .../pip/_vendor/tenacity/before_sleep.py | 71 - .../site-packages/pip/_vendor/tenacity/nap.py | 43 - .../pip/_vendor/tenacity/retry.py | 272 - .../pip/_vendor/tenacity/stop.py | 103 - .../pip/_vendor/tenacity/tornadoweb.py | 59 - .../pip/_vendor/tenacity/wait.py | 228 - .../pip/_vendor/tomli/__init__.py | 11 - .../__pycache__/__init__.cpython-312.pyc | Bin 406 -> 0 bytes .../tomli/__pycache__/_parser.cpython-312.pyc | Bin 26949 -> 0 bytes .../tomli/__pycache__/_re.cpython-312.pyc | Bin 3930 -> 0 bytes .../tomli/__pycache__/_types.cpython-312.pyc | Bin 388 -> 0 bytes .../pip/_vendor/tomli/_parser.py | 691 - .../site-packages/pip/_vendor/tomli/_re.py | 107 - .../site-packages/pip/_vendor/tomli/_types.py | 10 - .../pip/_vendor/truststore/__init__.py | 13 - .../__pycache__/__init__.cpython-312.pyc | Bin 640 -> 0 bytes .../__pycache__/_api.cpython-312.pyc | Bin 15819 -> 0 bytes .../__pycache__/_macos.cpython-312.pyc | Bin 16684 -> 0 bytes .../__pycache__/_openssl.cpython-312.pyc | Bin 2237 -> 0 bytes .../_ssl_constants.cpython-312.pyc | Bin 1121 -> 0 bytes .../__pycache__/_windows.cpython-312.pyc | Bin 15528 -> 0 bytes .../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/typing_extensions.py | 3072 - .../pip/_vendor/urllib3/__init__.py | 102 - .../__pycache__/__init__.cpython-312.pyc | Bin 3427 -> 0 bytes .../__pycache__/_collections.cpython-312.pyc | Bin 16510 -> 0 bytes .../__pycache__/_version.cpython-312.pyc | Bin 240 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 20429 -> 0 bytes .../connectionpool.cpython-312.pyc | Bin 36464 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 13515 -> 0 bytes .../__pycache__/fields.cpython-312.pyc | Bin 10435 -> 0 bytes .../__pycache__/filepost.cpython-312.pyc | Bin 4040 -> 0 bytes .../__pycache__/poolmanager.cpython-312.pyc | Bin 20822 -> 0 bytes .../__pycache__/request.cpython-312.pyc | Bin 7316 -> 0 bytes .../__pycache__/response.cpython-312.pyc | Bin 33990 -> 0 bytes .../pip/_vendor/urllib3/_collections.py | 355 - .../pip/_vendor/urllib3/_version.py | 2 - .../pip/_vendor/urllib3/connection.py | 572 - .../pip/_vendor/urllib3/connectionpool.py | 1137 - .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 220 -> 0 bytes .../_appengine_environ.cpython-312.pyc | Bin 1870 -> 0 bytes .../__pycache__/appengine.cpython-312.pyc | Bin 11586 -> 0 bytes .../__pycache__/ntlmpool.cpython-312.pyc | Bin 5741 -> 0 bytes .../__pycache__/pyopenssl.cpython-312.pyc | Bin 24472 -> 0 bytes .../securetransport.cpython-312.pyc | Bin 35578 -> 0 bytes .../contrib/__pycache__/socks.cpython-312.pyc | Bin 7533 -> 0 bytes .../urllib3/contrib/_appengine_environ.py | 36 - .../contrib/_securetransport/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 237 -> 0 bytes .../__pycache__/bindings.cpython-312.pyc | Bin 17449 -> 0 bytes .../__pycache__/low_level.cpython-312.pyc | Bin 14823 -> 0 bytes .../contrib/_securetransport/bindings.py | 519 - .../contrib/_securetransport/low_level.py | 397 - .../pip/_vendor/urllib3/contrib/appengine.py | 314 - .../pip/_vendor/urllib3/contrib/ntlmpool.py | 130 - .../pip/_vendor/urllib3/contrib/pyopenssl.py | 518 - .../urllib3/contrib/securetransport.py | 921 - .../pip/_vendor/urllib3/contrib/socks.py | 216 - .../pip/_vendor/urllib3/exceptions.py | 323 - .../pip/_vendor/urllib3/fields.py | 274 - .../pip/_vendor/urllib3/filepost.py | 98 - .../pip/_vendor/urllib3/packages/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 221 -> 0 bytes .../packages/__pycache__/six.cpython-312.pyc | Bin 41341 -> 0 bytes .../urllib3/packages/backports/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 231 -> 0 bytes .../__pycache__/makefile.cpython-312.pyc | Bin 1847 -> 0 bytes .../weakref_finalize.cpython-312.pyc | Bin 7353 -> 0 bytes .../urllib3/packages/backports/makefile.py | 51 - .../packages/backports/weakref_finalize.py | 155 - .../pip/_vendor/urllib3/packages/six.py | 1076 - .../pip/_vendor/urllib3/poolmanager.py | 556 - .../pip/_vendor/urllib3/request.py | 191 - .../pip/_vendor/urllib3/response.py | 879 - .../pip/_vendor/urllib3/util/__init__.py | 49 - .../util/__pycache__/__init__.cpython-312.pyc | Bin 1168 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 4778 -> 0 bytes .../util/__pycache__/proxy.cpython-312.pyc | Bin 1574 -> 0 bytes .../util/__pycache__/queue.cpython-312.pyc | Bin 1374 -> 0 bytes .../util/__pycache__/request.cpython-312.pyc | Bin 4205 -> 0 bytes .../util/__pycache__/response.cpython-312.pyc | Bin 3011 -> 0 bytes .../util/__pycache__/retry.cpython-312.pyc | Bin 21740 -> 0 bytes .../util/__pycache__/ssl_.cpython-312.pyc | Bin 15125 -> 0 bytes .../ssl_match_hostname.cpython-312.pyc | Bin 5093 -> 0 bytes .../__pycache__/ssltransport.cpython-312.pyc | Bin 10794 -> 0 bytes .../util/__pycache__/timeout.cpython-312.pyc | Bin 11161 -> 0 bytes .../util/__pycache__/url.cpython-312.pyc | Bin 15817 -> 0 bytes .../util/__pycache__/wait.cpython-312.pyc | Bin 4425 -> 0 bytes .../pip/_vendor/urllib3/util/connection.py | 149 - .../pip/_vendor/urllib3/util/proxy.py | 57 - .../pip/_vendor/urllib3/util/queue.py | 22 - .../pip/_vendor/urllib3/util/request.py | 137 - .../pip/_vendor/urllib3/util/response.py | 107 - .../pip/_vendor/urllib3/util/retry.py | 622 - .../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 - .../__pycache__/__init__.cpython-312.pyc | Bin 12023 -> 0 bytes .../__pycache__/labels.cpython-312.pyc | Bin 7154 -> 0 bytes .../__pycache__/mklabels.cpython-312.pyc | Bin 2721 -> 0 bytes .../__pycache__/tests.cpython-312.pyc | Bin 9273 -> 0 bytes .../x_user_defined.cpython-312.pyc | Bin 3317 -> 0 bytes .../pip/_vendor/webencodings/labels.py | 231 - .../pip/_vendor/webencodings/mklabels.py | 59 - .../pip/_vendor/webencodings/tests.py | 153 - .../_vendor/webencodings/x_user_defined.py | 325 - .../lib/python3.12/site-packages/pip/py.typed | 4 - .../pydantic-2.13.4.dist-info/INSTALLER | 1 - .../pydantic-2.13.4.dist-info/METADATA | 1294 - .../pydantic-2.13.4.dist-info/RECORD | 217 - .../pydantic-2.13.4.dist-info/WHEEL | 4 - .../licenses/LICENSE | 21 - .../site-packages/pydantic/__init__.py | 456 - .../__pycache__/__init__.cpython-312.pyc | Bin 14446 -> 0 bytes .../__pycache__/_migration.cpython-312.pyc | Bin 11039 -> 0 bytes .../alias_generators.cpython-312.pyc | Bin 3306 -> 0 bytes .../__pycache__/aliases.cpython-312.pyc | Bin 6588 -> 0 bytes .../annotated_handlers.cpython-312.pyc | Bin 5512 -> 0 bytes .../class_validators.cpython-312.pyc | Bin 386 -> 0 bytes .../__pycache__/color.cpython-312.pyc | Bin 30169 -> 0 bytes .../__pycache__/config.cpython-312.pyc | Bin 7570 -> 0 bytes .../__pycache__/dataclasses.cpython-312.pyc | Bin 17393 -> 0 bytes .../datetime_parse.cpython-312.pyc | Bin 386 -> 0 bytes .../__pycache__/decorator.cpython-312.pyc | Bin 376 -> 0 bytes .../__pycache__/env_settings.cpython-312.pyc | Bin 382 -> 0 bytes .../error_wrappers.cpython-312.pyc | Bin 386 -> 0 bytes .../__pycache__/errors.cpython-312.pyc | Bin 7658 -> 0 bytes .../__pycache__/fields.cpython-312.pyc | Bin 75273 -> 0 bytes .../functional_serializers.cpython-312.pyc | Bin 19101 -> 0 bytes .../functional_validators.cpython-312.pyc | Bin 34660 -> 0 bytes .../__pycache__/generics.cpython-312.pyc | Bin 374 -> 0 bytes .../pydantic/__pycache__/json.cpython-312.pyc | Bin 366 -> 0 bytes .../__pycache__/json_schema.cpython-312.pyc | Bin 121984 -> 0 bytes .../pydantic/__pycache__/main.cpython-312.pyc | Bin 78139 -> 0 bytes .../pydantic/__pycache__/mypy.cpython-312.pyc | Bin 64315 -> 0 bytes .../__pycache__/networks.cpython-312.pyc | Bin 50235 -> 0 bytes .../__pycache__/parse.cpython-312.pyc | Bin 368 -> 0 bytes .../__pycache__/root_model.cpython-312.pyc | Bin 7932 -> 0 bytes .../__pycache__/schema.cpython-312.pyc | Bin 370 -> 0 bytes .../__pycache__/tools.cpython-312.pyc | Bin 368 -> 0 bytes .../__pycache__/type_adapter.cpython-312.pyc | Bin 35918 -> 0 bytes .../__pycache__/types.cpython-312.pyc | Bin 97219 -> 0 bytes .../__pycache__/typing.cpython-312.pyc | Bin 366 -> 0 bytes .../__pycache__/utils.cpython-312.pyc | Bin 368 -> 0 bytes .../validate_call_decorator.cpython-312.pyc | Bin 5505 -> 0 bytes .../__pycache__/validators.cpython-312.pyc | Bin 378 -> 0 bytes .../__pycache__/version.cpython-312.pyc | Bin 4816 -> 0 bytes .../__pycache__/warnings.cpython-312.pyc | Bin 7230 -> 0 bytes .../pydantic/_internal/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 211 -> 0 bytes .../__pycache__/_config.cpython-312.pyc | Bin 15804 -> 0 bytes .../_core_metadata.cpython-312.pyc | Bin 4631 -> 0 bytes .../__pycache__/_core_utils.cpython-312.pyc | Bin 7741 -> 0 bytes .../__pycache__/_dataclasses.cpython-312.pyc | Bin 13472 -> 0 bytes .../__pycache__/_decorators.cpython-312.pyc | Bin 38161 -> 0 bytes .../_decorators_v1.cpython-312.pyc | Bin 8612 -> 0 bytes .../_discriminated_union.cpython-312.pyc | Bin 21368 -> 0 bytes .../_docs_extraction.cpython-312.pyc | Bin 5324 -> 0 bytes .../__pycache__/_fields.cpython-312.pyc | Bin 27434 -> 0 bytes .../__pycache__/_forward_ref.cpython-312.pyc | Bin 1320 -> 0 bytes .../_generate_schema.cpython-312.pyc | Bin 132775 -> 0 bytes .../__pycache__/_generics.cpython-312.pyc | Bin 23854 -> 0 bytes .../__pycache__/_git.cpython-312.pyc | Bin 1526 -> 0 bytes .../__pycache__/_import_utils.cpython-312.pyc | Bin 839 -> 0 bytes .../_internal_dataclass.cpython-312.pyc | Bin 360 -> 0 bytes .../_known_annotated_metadata.cpython-312.pyc | Bin 14294 -> 0 bytes .../__pycache__/_mock_val_ser.cpython-312.pyc | Bin 11121 -> 0 bytes .../_model_construction.cpython-312.pyc | Bin 36026 -> 0 bytes .../_namespace_utils.cpython-312.pyc | Bin 12322 -> 0 bytes .../__pycache__/_repr.cpython-312.pyc | Bin 7869 -> 0 bytes .../_schema_gather.cpython-312.pyc | Bin 7651 -> 0 bytes .../_schema_generation_shared.cpython-312.pyc | Bin 6237 -> 0 bytes .../__pycache__/_serializers.cpython-312.pyc | Bin 2132 -> 0 bytes .../__pycache__/_signature.cpython-312.pyc | Bin 6799 -> 0 bytes .../__pycache__/_typing_extra.cpython-312.pyc | Bin 29177 -> 0 bytes .../__pycache__/_utils.cpython-312.pyc | Bin 19866 -> 0 bytes .../_validate_call.cpython-312.pyc | Bin 7028 -> 0 bytes .../__pycache__/_validators.cpython-312.pyc | Bin 22861 -> 0 bytes .../pydantic/_internal/_config.py | 386 - .../pydantic/_internal/_core_metadata.py | 97 - .../pydantic/_internal/_core_utils.py | 174 - .../pydantic/_internal/_dataclasses.py | 315 - .../pydantic/_internal/_decorators.py | 873 - .../pydantic/_internal/_decorators_v1.py | 174 - .../_internal/_discriminated_union.py | 494 - .../pydantic/_internal/_docs_extraction.py | 113 - .../pydantic/_internal/_fields.py | 729 - .../pydantic/_internal/_forward_ref.py | 23 - .../pydantic/_internal/_generate_schema.py | 2934 - .../pydantic/_internal/_generics.py | 530 - .../site-packages/pydantic/_internal/_git.py | 27 - .../pydantic/_internal/_import_utils.py | 20 - .../pydantic/_internal/_internal_dataclass.py | 7 - .../_internal/_known_annotated_metadata.py | 403 - .../pydantic/_internal/_mock_val_ser.py | 228 - .../pydantic/_internal/_model_construction.py | 868 - .../pydantic/_internal/_namespace_utils.py | 293 - .../site-packages/pydantic/_internal/_repr.py | 124 - .../pydantic/_internal/_schema_gather.py | 212 - .../_internal/_schema_generation_shared.py | 125 - .../pydantic/_internal/_serializers.py | 53 - .../pydantic/_internal/_signature.py | 189 - .../pydantic/_internal/_typing_extra.py | 785 - .../pydantic/_internal/_utils.py | 446 - .../pydantic/_internal/_validate_call.py | 141 - .../pydantic/_internal/_validators.py | 534 - .../site-packages/pydantic/_migration.py | 316 - .../pydantic/alias_generators.py | 62 - .../site-packages/pydantic/aliases.py | 135 - .../pydantic/annotated_handlers.py | 122 - .../pydantic/class_validators.py | 5 - .../site-packages/pydantic/color.py | 604 - .../site-packages/pydantic/config.py | 1296 - .../site-packages/pydantic/dataclasses.py | 413 - .../site-packages/pydantic/datetime_parse.py | 5 - .../site-packages/pydantic/decorator.py | 5 - .../pydantic/deprecated/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 212 -> 0 bytes .../class_validators.cpython-312.pyc | Bin 11756 -> 0 bytes .../__pycache__/config.cpython-312.pyc | Bin 4089 -> 0 bytes .../copy_internals.cpython-312.pyc | Bin 8662 -> 0 bytes .../__pycache__/decorator.cpython-312.pyc | Bin 14050 -> 0 bytes .../__pycache__/json.cpython-312.pyc | Bin 6208 -> 0 bytes .../__pycache__/parse.cpython-312.pyc | Bin 3418 -> 0 bytes .../__pycache__/tools.cpython-312.pyc | Bin 3554 -> 0 bytes .../pydantic/deprecated/class_validators.py | 256 - .../pydantic/deprecated/config.py | 72 - .../pydantic/deprecated/copy_internals.py | 224 - .../pydantic/deprecated/decorator.py | 284 - .../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 | 189 - .../pydantic/experimental/__init__.py | 1 - .../__pycache__/__init__.cpython-312.pyc | Bin 326 -> 0 bytes .../arguments_schema.cpython-312.pyc | Bin 2418 -> 0 bytes .../missing_sentinel.cpython-312.pyc | Bin 367 -> 0 bytes .../__pycache__/pipeline.cpython-312.pyc | Bin 34708 -> 0 bytes .../pydantic/experimental/arguments_schema.py | 44 - .../pydantic/experimental/missing_sentinel.py | 5 - .../pydantic/experimental/pipeline.py | 663 - .../site-packages/pydantic/fields.py | 1892 - .../pydantic/functional_serializers.py | 470 - .../pydantic/functional_validators.py | 889 - .../site-packages/pydantic/generics.py | 5 - .../python3.12/site-packages/pydantic/json.py | 5 - .../site-packages/pydantic/json_schema.py | 2911 - .../python3.12/site-packages/pydantic/main.py | 1838 - .../python3.12/site-packages/pydantic/mypy.py | 1412 - .../site-packages/pydantic/networks.py | 1332 - .../site-packages/pydantic/parse.py | 5 - .../site-packages/pydantic/plugin/__init__.py | 193 - .../__pycache__/__init__.cpython-312.pyc | Bin 8954 -> 0 bytes .../__pycache__/_loader.cpython-312.pyc | Bin 2454 -> 0 bytes .../_schema_validator.cpython-312.pyc | Bin 7093 -> 0 bytes .../site-packages/pydantic/plugin/_loader.py | 58 - .../pydantic/plugin/_schema_validator.py | 143 - .../site-packages/pydantic/py.typed | 0 .../site-packages/pydantic/root_model.py | 157 - .../site-packages/pydantic/schema.py | 5 - .../site-packages/pydantic/tools.py | 5 - .../site-packages/pydantic/type_adapter.py | 801 - .../site-packages/pydantic/types.py | 3310 - .../site-packages/pydantic/typing.py | 5 - .../site-packages/pydantic/utils.py | 5 - .../site-packages/pydantic/v1/__init__.py | 131 - .../v1/__pycache__/__init__.cpython-312.pyc | Bin 2235 -> 0 bytes .../_hypothesis_plugin.cpython-312.pyc | Bin 20557 -> 0 bytes .../annotated_types.cpython-312.pyc | Bin 3888 -> 0 bytes .../class_validators.cpython-312.pyc | Bin 19687 -> 0 bytes .../v1/__pycache__/color.cpython-312.pyc | Bin 25842 -> 0 bytes .../v1/__pycache__/config.cpython-312.pyc | Bin 8415 -> 0 bytes .../__pycache__/dataclasses.cpython-312.pyc | Bin 22785 -> 0 bytes .../datetime_parse.cpython-312.pyc | Bin 10361 -> 0 bytes .../v1/__pycache__/decorator.cpython-312.pyc | Bin 13944 -> 0 bytes .../__pycache__/env_settings.cpython-312.pyc | Bin 17751 -> 0 bytes .../error_wrappers.cpython-312.pyc | Bin 8944 -> 0 bytes .../v1/__pycache__/errors.cpython-312.pyc | Bin 29613 -> 0 bytes .../v1/__pycache__/fields.cpython-312.pyc | Bin 57442 -> 0 bytes .../v1/__pycache__/generics.cpython-312.pyc | Bin 17036 -> 0 bytes .../v1/__pycache__/json.cpython-312.pyc | Bin 5245 -> 0 bytes .../v1/__pycache__/main.cpython-312.pyc | Bin 48738 -> 0 bytes .../v1/__pycache__/mypy.cpython-312.pyc | Bin 46448 -> 0 bytes .../v1/__pycache__/networks.cpython-312.pyc | Bin 29574 -> 0 bytes .../v1/__pycache__/parse.cpython-312.pyc | Bin 2762 -> 0 bytes .../v1/__pycache__/schema.cpython-312.pyc | Bin 48514 -> 0 bytes .../v1/__pycache__/tools.cpython-312.pyc | Bin 3895 -> 0 bytes .../v1/__pycache__/types.cpython-312.pyc | Bin 48517 -> 0 bytes .../v1/__pycache__/typing.cpython-312.pyc | Bin 23052 -> 0 bytes .../v1/__pycache__/utils.cpython-312.pyc | Bin 35318 -> 0 bytes .../v1/__pycache__/validators.cpython-312.pyc | Bin 30913 -> 0 bytes .../v1/__pycache__/version.cpython-312.pyc | Bin 1974 -> 0 bytes .../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 | 1130 - .../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 | 627 - .../site-packages/pydantic/v1/utils.py | 807 - .../site-packages/pydantic/v1/validators.py | 768 - .../site-packages/pydantic/v1/version.py | 38 - .../pydantic/validate_call_decorator.py | 116 - .../site-packages/pydantic/validators.py | 5 - .../site-packages/pydantic/version.py | 113 - .../site-packages/pydantic/warnings.py | 122 - .../pydantic_core-2.46.4.dist-info/INSTALLER | 1 - .../pydantic_core-2.46.4.dist-info/METADATA | 173 - .../pydantic_core-2.46.4.dist-info/RECORD | 13 - .../pydantic_core-2.46.4.dist-info/WHEEL | 5 - .../licenses/LICENSE | 21 - .../sboms/pydantic-core.cyclonedx.json | 3961 - .../site-packages/pydantic_core/__init__.py | 171 - .../__pycache__/__init__.cpython-312.pyc | Bin 3167 -> 0 bytes .../__pycache__/core_schema.cpython-312.pyc | Bin 156019 -> 0 bytes ...antic_core.cpython-312-x86_64-linux-gnu.so | Bin 4752552 -> 0 bytes .../pydantic_core/_pydantic_core.pyi | 1056 - .../pydantic_core/core_schema.py | 4461 -- .../site-packages/pydantic_core/py.typed | 0 .../python_dotenv-1.2.2.dist-info/INSTALLER | 1 - .../python_dotenv-1.2.2.dist-info/METADATA | 794 - .../python_dotenv-1.2.2.dist-info/RECORD | 26 - .../python_dotenv-1.2.2.dist-info/REQUESTED | 0 .../python_dotenv-1.2.2.dist-info/WHEEL | 5 - .../entry_points.txt | 2 - .../licenses/LICENSE | 27 - .../top_level.txt | 1 - .../requests-2.34.2.dist-info/INSTALLER | 1 - .../requests-2.34.2.dist-info/METADATA | 120 - .../requests-2.34.2.dist-info/RECORD | 47 - .../requests-2.34.2.dist-info/REQUESTED | 0 .../requests-2.34.2.dist-info/WHEEL | 5 - .../licenses/LICENSE | 175 - .../requests-2.34.2.dist-info/licenses/NOTICE | 2 - .../requests-2.34.2.dist-info/top_level.txt | 1 - .../site-packages/requests/__init__.py | 219 - .../__pycache__/__init__.cpython-312.pyc | Bin 5791 -> 0 bytes .../__pycache__/__version__.cpython-312.pyc | Bin 594 -> 0 bytes .../_internal_utils.cpython-312.pyc | Bin 2138 -> 0 bytes .../__pycache__/_types.cpython-312.pyc | Bin 7270 -> 0 bytes .../__pycache__/adapters.cpython-312.pyc | Bin 29638 -> 0 bytes .../requests/__pycache__/api.cpython-312.pyc | Bin 8069 -> 0 bytes .../requests/__pycache__/auth.cpython-312.pyc | Bin 15796 -> 0 bytes .../__pycache__/certs.cpython-312.pyc | Bin 676 -> 0 bytes .../__pycache__/compat.cpython-312.pyc | Bin 2509 -> 0 bytes .../__pycache__/cookies.cpython-312.pyc | Bin 28453 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 7962 -> 0 bytes .../requests/__pycache__/help.cpython-312.pyc | Bin 4328 -> 0 bytes .../__pycache__/hooks.cpython-312.pyc | Bin 1596 -> 0 bytes .../__pycache__/models.cpython-312.pyc | Bin 41970 -> 0 bytes .../__pycache__/packages.cpython-312.pyc | Bin 1149 -> 0 bytes .../__pycache__/sessions.cpython-312.pyc | Bin 31952 -> 0 bytes .../__pycache__/status_codes.cpython-312.pyc | Bin 6158 -> 0 bytes .../__pycache__/structures.cpython-312.pyc | Bin 7289 -> 0 bytes .../__pycache__/utils.cpython-312.pyc | Bin 40110 -> 0 bytes .../site-packages/requests/__version__.py | 14 - .../site-packages/requests/_internal_utils.py | 51 - .../site-packages/requests/_types.py | 183 - .../site-packages/requests/adapters.py | 748 - .../python3.12/site-packages/requests/api.py | 180 - .../python3.12/site-packages/requests/auth.py | 354 - .../site-packages/requests/certs.py | 18 - .../site-packages/requests/compat.py | 113 - .../site-packages/requests/cookies.py | 625 - .../site-packages/requests/exceptions.py | 162 - .../python3.12/site-packages/requests/help.py | 134 - .../site-packages/requests/hooks.py | 48 - .../site-packages/requests/models.py | 1180 - .../site-packages/requests/packages.py | 23 - .../site-packages/requests/py.typed | 0 .../site-packages/requests/sessions.py | 920 - .../site-packages/requests/status_codes.py | 128 - .../site-packages/requests/structures.py | 130 - .../site-packages/requests/utils.py | 1155 - .../schedule-1.2.2.dist-info/AUTHORS.rst | 47 - .../schedule-1.2.2.dist-info/INSTALLER | 1 - .../schedule-1.2.2.dist-info/LICENSE.txt | 21 - .../schedule-1.2.2.dist-info/METADATA | 106 - .../schedule-1.2.2.dist-info/RECORD | 11 - .../schedule-1.2.2.dist-info/REQUESTED | 0 .../schedule-1.2.2.dist-info/WHEEL | 5 - .../schedule-1.2.2.dist-info/top_level.txt | 1 - .../site-packages/schedule/__init__.py | 945 - .../__pycache__/__init__.cpython-312.pyc | Bin 37735 -> 0 bytes .../site-packages/schedule/py.typed | 0 .../sniffio-1.3.1.dist-info/INSTALLER | 1 - .../sniffio-1.3.1.dist-info/LICENSE | 3 - .../sniffio-1.3.1.dist-info/LICENSE.APACHE2 | 202 - .../sniffio-1.3.1.dist-info/LICENSE.MIT | 20 - .../sniffio-1.3.1.dist-info/METADATA | 104 - .../sniffio-1.3.1.dist-info/RECORD | 19 - .../sniffio-1.3.1.dist-info/WHEEL | 5 - .../sniffio-1.3.1.dist-info/top_level.txt | 1 - .../site-packages/sniffio/__init__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 476 -> 0 bytes .../sniffio/__pycache__/_impl.cpython-312.pyc | Bin 3187 -> 0 bytes .../__pycache__/_version.cpython-312.pyc | Bin 228 -> 0 bytes .../python3.12/site-packages/sniffio/_impl.py | 95 - .../site-packages/sniffio/_tests/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 207 -> 0 bytes .../__pycache__/test_sniffio.cpython-312.pyc | Bin 3936 -> 0 bytes .../sniffio/_tests/test_sniffio.py | 84 - .../site-packages/sniffio/_version.py | 3 - .../python3.12/site-packages/sniffio/py.typed | 0 .../tqdm-4.67.3.dist-info/INSTALLER | 1 - .../tqdm-4.67.3.dist-info/METADATA | 1595 - .../tqdm-4.67.3.dist-info/RECORD | 72 - .../site-packages/tqdm-4.67.3.dist-info/WHEEL | 5 - .../tqdm-4.67.3.dist-info/entry_points.txt | 2 - .../tqdm-4.67.3.dist-info/licenses/LICENCE | 49 - .../tqdm-4.67.3.dist-info/top_level.txt | 1 - .../python3.12/site-packages/tqdm/__init__.py | 38 - .../python3.12/site-packages/tqdm/__main__.py | 3 - .../tqdm/__pycache__/__init__.cpython-312.pyc | Bin 1697 -> 0 bytes .../tqdm/__pycache__/__main__.cpython-312.pyc | Bin 251 -> 0 bytes .../tqdm/__pycache__/_main.cpython-312.pyc | Bin 499 -> 0 bytes .../tqdm/__pycache__/_monitor.cpython-312.pyc | Bin 4188 -> 0 bytes .../tqdm/__pycache__/_tqdm.cpython-312.pyc | Bin 494 -> 0 bytes .../__pycache__/_tqdm_gui.cpython-312.pyc | Bin 507 -> 0 bytes .../_tqdm_notebook.cpython-312.pyc | Bin 528 -> 0 bytes .../__pycache__/_tqdm_pandas.cpython-312.pyc | Bin 1432 -> 0 bytes .../tqdm/__pycache__/_utils.cpython-312.pyc | Bin 906 -> 0 bytes .../tqdm/__pycache__/asyncio.cpython-312.pyc | Bin 4475 -> 0 bytes .../tqdm/__pycache__/auto.cpython-312.pyc | Bin 1367 -> 0 bytes .../__pycache__/autonotebook.cpython-312.pyc | Bin 1271 -> 0 bytes .../tqdm/__pycache__/cli.cpython-312.pyc | Bin 15471 -> 0 bytes .../tqdm/__pycache__/dask.cpython-312.pyc | Bin 2570 -> 0 bytes .../tqdm/__pycache__/gui.cpython-312.pyc | Bin 7814 -> 0 bytes .../tqdm/__pycache__/keras.cpython-312.pyc | Bin 6919 -> 0 bytes .../tqdm/__pycache__/notebook.cpython-312.pyc | Bin 11660 -> 0 bytes .../tqdm/__pycache__/rich.cpython-312.pyc | Bin 7245 -> 0 bytes .../tqdm/__pycache__/std.cpython-312.pyc | Bin 64835 -> 0 bytes .../tqdm/__pycache__/tk.cpython-312.pyc | Bin 9965 -> 0 bytes .../tqdm/__pycache__/utils.cpython-312.pyc | Bin 18776 -> 0 bytes .../tqdm/__pycache__/version.cpython-312.pyc | Bin 601 -> 0 bytes .../python3.12/site-packages/tqdm/_main.py | 9 - .../python3.12/site-packages/tqdm/_monitor.py | 95 - .../python3.12/site-packages/tqdm/_tqdm.py | 9 - .../site-packages/tqdm/_tqdm_gui.py | 9 - .../site-packages/tqdm/_tqdm_notebook.py | 9 - .../site-packages/tqdm/_tqdm_pandas.py | 24 - .../python3.12/site-packages/tqdm/_utils.py | 11 - .../python3.12/site-packages/tqdm/asyncio.py | 93 - .../lib/python3.12/site-packages/tqdm/auto.py | 40 - .../site-packages/tqdm/autonotebook.py | 29 - .../lib/python3.12/site-packages/tqdm/cli.py | 324 - .../site-packages/tqdm/completion.sh | 19 - .../site-packages/tqdm/contrib/__init__.py | 91 - .../__pycache__/__init__.cpython-312.pyc | Bin 4215 -> 0 bytes .../contrib/__pycache__/bells.cpython-312.pyc | Bin 1340 -> 0 bytes .../__pycache__/concurrent.cpython-312.pyc | Bin 4710 -> 0 bytes .../__pycache__/discord.cpython-312.pyc | Bin 8101 -> 0 bytes .../__pycache__/itertools.cpython-312.pyc | Bin 1464 -> 0 bytes .../__pycache__/logging.cpython-312.pyc | Bin 5185 -> 0 bytes .../contrib/__pycache__/slack.cpython-312.pyc | Bin 6110 -> 0 bytes .../__pycache__/telegram.cpython-312.pyc | Bin 7748 -> 0 bytes .../__pycache__/utils_worker.cpython-312.pyc | Bin 2087 -> 0 bytes .../site-packages/tqdm/contrib/bells.py | 26 - .../site-packages/tqdm/contrib/concurrent.py | 105 - .../site-packages/tqdm/contrib/discord.py | 156 - .../site-packages/tqdm/contrib/itertools.py | 35 - .../site-packages/tqdm/contrib/logging.py | 126 - .../site-packages/tqdm/contrib/slack.py | 120 - .../site-packages/tqdm/contrib/telegram.py | 153 - .../tqdm/contrib/utils_worker.py | 38 - .../lib/python3.12/site-packages/tqdm/dask.py | 44 - .../lib/python3.12/site-packages/tqdm/gui.py | 179 - .../python3.12/site-packages/tqdm/keras.py | 122 - .../python3.12/site-packages/tqdm/notebook.py | 315 - .../lib/python3.12/site-packages/tqdm/rich.py | 151 - .../lib/python3.12/site-packages/tqdm/std.py | 1524 - .venv/lib/python3.12/site-packages/tqdm/tk.py | 196 - .../lib/python3.12/site-packages/tqdm/tqdm.1 | 243 - .../python3.12/site-packages/tqdm/utils.py | 399 - .../python3.12/site-packages/tqdm/version.py | 10 - .../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 - .../INSTALLER | 1 - .../METADATA | 49 - .../typing_inspection-0.4.2.dist-info/RECORD | 13 - .../typing_inspection-0.4.2.dist-info/WHEEL | 4 - .../licenses/LICENSE | 21 - .../typing_inspection/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 210 -> 0 bytes .../__pycache__/introspection.cpython-312.pyc | Bin 17814 -> 0 bytes .../typing_objects.cpython-312.pyc | Bin 17391 -> 0 bytes .../typing_inspection/introspection.py | 587 - .../site-packages/typing_inspection/py.typed | 0 .../typing_inspection/typing_objects.py | 607 - .../typing_inspection/typing_objects.pyi | 417 - .../urllib3-2.7.0.dist-info/INSTALLER | 1 - .../urllib3-2.7.0.dist-info/METADATA | 163 - .../urllib3-2.7.0.dist-info/RECORD | 79 - .../urllib3-2.7.0.dist-info/WHEEL | 4 - .../licenses/LICENSE.txt | 21 - .../site-packages/urllib3/__init__.py | 211 - .../__pycache__/__init__.cpython-312.pyc | Bin 7325 -> 0 bytes .../_base_connection.cpython-312.pyc | Bin 6875 -> 0 bytes .../__pycache__/_collections.cpython-312.pyc | Bin 22854 -> 0 bytes .../_request_methods.cpython-312.pyc | Bin 10617 -> 0 bytes .../__pycache__/_version.cpython-312.pyc | Bin 654 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 38926 -> 0 bytes .../connectionpool.cpython-312.pyc | Bin 40119 -> 0 bytes .../__pycache__/exceptions.cpython-312.pyc | Bin 16619 -> 0 bytes .../__pycache__/fields.cpython-312.pyc | Bin 12026 -> 0 bytes .../__pycache__/filepost.cpython-312.pyc | Bin 3504 -> 0 bytes .../__pycache__/poolmanager.cpython-312.pyc | Bin 24439 -> 0 bytes .../__pycache__/response.cpython-312.pyc | Bin 57715 -> 0 bytes .../site-packages/urllib3/_base_connection.py | 167 - .../site-packages/urllib3/_collections.py | 486 - .../site-packages/urllib3/_request_methods.py | 278 - .../site-packages/urllib3/_version.py | 24 - .../site-packages/urllib3/connection.py | 1099 - .../site-packages/urllib3/connectionpool.py | 1191 - .../site-packages/urllib3/contrib/__init__.py | 0 .../__pycache__/__init__.cpython-312.pyc | Bin 208 -> 0 bytes .../__pycache__/pyopenssl.cpython-312.pyc | Bin 28230 -> 0 bytes .../contrib/__pycache__/socks.cpython-312.pyc | Bin 8186 -> 0 bytes .../urllib3/contrib/emscripten/__init__.py | 17 - .../__pycache__/__init__.cpython-312.pyc | Bin 1005 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 10402 -> 0 bytes .../__pycache__/fetch.cpython-312.pyc | Bin 28653 -> 0 bytes .../__pycache__/request.cpython-312.pyc | Bin 1436 -> 0 bytes .../__pycache__/response.cpython-312.pyc | Bin 12360 -> 0 bytes .../urllib3/contrib/emscripten/connection.py | 260 - .../emscripten/emscripten_fetch_worker.js | 110 - .../urllib3/contrib/emscripten/fetch.py | 726 - .../urllib3/contrib/emscripten/request.py | 22 - .../urllib3/contrib/emscripten/response.py | 281 - .../urllib3/contrib/pyopenssl.py | 563 - .../site-packages/urllib3/contrib/socks.py | 228 - .../site-packages/urllib3/exceptions.py | 335 - .../site-packages/urllib3/fields.py | 341 - .../site-packages/urllib3/filepost.py | 89 - .../site-packages/urllib3/http2/__init__.py | 53 - .../__pycache__/__init__.cpython-312.pyc | Bin 1761 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 17068 -> 0 bytes .../http2/__pycache__/probe.cpython-312.pyc | Bin 3712 -> 0 bytes .../site-packages/urllib3/http2/connection.py | 356 - .../site-packages/urllib3/http2/probe.py | 87 - .../site-packages/urllib3/poolmanager.py | 653 - .../python3.12/site-packages/urllib3/py.typed | 2 - .../site-packages/urllib3/response.py | 1493 - .../site-packages/urllib3/util/__init__.py | 42 - .../util/__pycache__/__init__.cpython-312.pyc | Bin 1021 -> 0 bytes .../__pycache__/connection.cpython-312.pyc | Bin 4711 -> 0 bytes .../util/__pycache__/proxy.cpython-312.pyc | Bin 1233 -> 0 bytes .../util/__pycache__/request.cpython-312.pyc | Bin 8357 -> 0 bytes .../util/__pycache__/response.cpython-312.pyc | Bin 2889 -> 0 bytes .../util/__pycache__/retry.cpython-312.pyc | Bin 21191 -> 0 bytes .../util/__pycache__/ssl_.cpython-312.pyc | Bin 15688 -> 0 bytes .../ssl_match_hostname.cpython-312.pyc | Bin 5430 -> 0 bytes .../__pycache__/ssltransport.cpython-312.pyc | Bin 13340 -> 0 bytes .../util/__pycache__/timeout.cpython-312.pyc | Bin 11705 -> 0 bytes .../util/__pycache__/url.cpython-312.pyc | Bin 16242 -> 0 bytes .../util/__pycache__/util.cpython-312.pyc | Bin 2010 -> 0 bytes .../util/__pycache__/wait.cpython-312.pyc | Bin 3456 -> 0 bytes .../site-packages/urllib3/util/connection.py | 137 - .../site-packages/urllib3/util/proxy.py | 43 - .../site-packages/urllib3/util/request.py | 263 - .../site-packages/urllib3/util/response.py | 101 - .../site-packages/urllib3/util/retry.py | 557 - .../site-packages/urllib3/util/ssl_.py | 477 - .../urllib3/util/ssl_match_hostname.py | 153 - .../urllib3/util/ssltransport.py | 271 - .../site-packages/urllib3/util/timeout.py | 275 - .../site-packages/urllib3/util/url.py | 469 - .../site-packages/urllib3/util/util.py | 42 - .../site-packages/urllib3/util/wait.py | 124 - .venv/lib64 | 1 - .venv/pyvenv.cfg | 5 - __pycache__/ai_generator.cpython-312.pyc | Bin 11304 -> 0 bytes bot_activity.log | 466 - used_data.txt | 16 - 5772 files changed, 17 insertions(+), 832423 deletions(-) delete mode 100644 .env create mode 100644 .gitignore delete mode 100644 .venv/bin/Activate.ps1 delete mode 100644 .venv/bin/activate delete mode 100644 .venv/bin/activate.csh delete mode 100644 .venv/bin/activate.fish delete mode 100755 .venv/bin/distro delete mode 100755 .venv/bin/dotenv delete mode 100755 .venv/bin/faker delete mode 100755 .venv/bin/httpx delete mode 100755 .venv/bin/normalizer delete mode 100755 .venv/bin/pip delete mode 100755 .venv/bin/pip3 delete mode 100755 .venv/bin/pip3.12 delete mode 120000 .venv/bin/python delete mode 120000 .venv/bin/python3 delete mode 120000 .venv/bin/python3.12 delete mode 100755 .venv/bin/tqdm delete mode 100755 .venv/lib/python3.12/site-packages/81d243bd2c585b0f4821__mypyc.cpython-312-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.12/site-packages/__pycache__/typing_extensions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/annotated_types/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/annotated_types/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/annotated_types/__pycache__/test_cases.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/annotated_types/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/annotated_types/test_cases.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/anyio/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/__pycache__/from_thread.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/__pycache__/functools.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/__pycache__/lowlevel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/__pycache__/pytest_plugin.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/__pycache__/to_interpreter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/__pycache__/to_process.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/__pycache__/to_thread.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_backends/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_trio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_backends/_trio.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_asyncio_selector_thread.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_contextmanagers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_eventloop.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_fileio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_resources.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_signals.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_sockets.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_streams.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_subprocesses.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_synchronization.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_tasks.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_tempfile.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_testing.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_typedattr.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_asyncio_selector_thread.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_contextmanagers.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_eventloop.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_fileio.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_resources.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_signals.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_sockets.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_streams.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_subprocesses.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_synchronization.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_tasks.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_tempfile.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_testing.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/_core/_typedattr.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_eventloop.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_resources.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_sockets.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_streams.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_subprocesses.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_tasks.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_testing.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/_eventloop.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/_resources.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/_sockets.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/_streams.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/_subprocesses.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/_tasks.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/abc/_testing.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/from_thread.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/functools.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/lowlevel.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/anyio/pytest_plugin.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/__pycache__/buffered.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/__pycache__/file.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/__pycache__/memory.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/__pycache__/stapled.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/__pycache__/text.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/__pycache__/tls.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/buffered.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/file.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/memory.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/stapled.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/text.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/streams/tls.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/to_interpreter.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/to_process.py delete mode 100644 .venv/lib/python3.12/site-packages/anyio/to_thread.py delete mode 100644 .venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/certifi/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/certifi/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/certifi/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/certifi/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/certifi/__pycache__/core.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/certifi/cacert.pem delete mode 100644 .venv/lib/python3.12/site-packages/certifi/core.py delete mode 100644 .venv/lib/python3.12/site-packages/certifi/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/api.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/cd.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/constant.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/legacy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/md.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/models.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/api.py delete mode 100755 .venv/lib/python3.12/site-packages/charset_normalizer/cd.cpython-312-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/cd.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/cli/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/cli/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/constant.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/legacy.py delete mode 100755 .venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/md.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/models.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/charset_normalizer/version.py delete mode 100644 .venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/distro/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/distro/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/distro/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/distro/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/distro/__pycache__/distro.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/distro/distro.py delete mode 100644 .venv/lib/python3.12/site-packages/distro/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/__pycache__/cli.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/__pycache__/ipython.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/__pycache__/main.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/__pycache__/parser.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/__pycache__/variables.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/cli.py delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/ipython.py delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/main.py delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/parser.py delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/variables.py delete mode 100644 .venv/lib/python3.12/site-packages/dotenv/version.py delete mode 100644 .venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/licenses/LICENSE.txt delete mode 100644 .venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/zip-safe delete mode 100644 .venv/lib/python3.12/site-packages/faker/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/__pycache__/cli.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/__pycache__/config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/__pycache__/documentor.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/__pycache__/factory.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/__pycache__/generator.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/__pycache__/proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/__pycache__/typing.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/cli.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/config.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/contrib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/contrib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/contrib/pytest/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/contrib/pytest/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/contrib/pytest/__pycache__/plugin.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/contrib/pytest/plugin.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/decode/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/decode/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/decode/__pycache__/codes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/decode/codes.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/documentor.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/factory.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/generator.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ar_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ar_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/az_AZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/az_AZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/cs_CZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/cs_CZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/da_DK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/da_DK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/de/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/de/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/de_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/de_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/de_DE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/de_DE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_AU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_AU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_CA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_CA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_GB/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_GB/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_IE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_IE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_MS/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_MS/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_NZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_NZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/es/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/es/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/es_AR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/es_AR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/es_CL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/es_CL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/es_CO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/es_CO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/es_MX/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/es_MX/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fa_IR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fa_IR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fi_FI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fi_FI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fil_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fil_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fr_CA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fr_CA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fr_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fr_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fr_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fr_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fr_FR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/fr_FR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/he_IL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/he_IL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/hi_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/hi_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/hr_HR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/hr_HR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/hu_HU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/hu_HU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/hy_AM/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/hy_AM/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/id_ID/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/id_ID/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/it_IT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/it_IT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ja_JP/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ja_JP/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ka_GE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ka_GE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ko_KR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ko_KR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ne_NP/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ne_NP/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/nl_BE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/nl_BE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/nl_NL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/nl_NL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/no_NO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/no_NO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/pl_PL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/pl_PL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/pt_BR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/pt_BR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/pt_PT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/pt_PT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ro_RO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ro_RO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/sk_SK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/sk_SK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/sl_SI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/sl_SI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/sv_SE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/sv_SE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ta_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/ta_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/th/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/th/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/th_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/th_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/tl_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/tl_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/uk_UA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/uk_UA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/vi_VN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/vi_VN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/zh_CN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/zh_CN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/zh_TW/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/zh_TW/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/zu_ZA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/address/zu_ZA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ar_BH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ar_BH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ar_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ar_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ar_JO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ar_JO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ar_PS/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ar_PS/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ar_SA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ar_SA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/az_AZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/az_AZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/da_DK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/da_DK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/de_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/de_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/de_DE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/de_DE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/en_CA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/en_CA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/en_GB/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/en_GB/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/en_NZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/en_NZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/en_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/en_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/es_AR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/es_AR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/es_CL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/es_CL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/es_CO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/es_CO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/et_EE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/et_EE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/fi_FI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/fi_FI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/fil_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/fil_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/fr_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/fr_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/fr_FR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/fr_FR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/he_IL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/he_IL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/hu_HU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/hu_HU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/id_ID/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/id_ID/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/it_IT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/it_IT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ja_JP/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ja_JP/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ko_KR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ko_KR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/lt_LT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/lt_LT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/nl_BE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/nl_BE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/nl_NL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/nl_NL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/no_NO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/no_NO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/pl_PL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/pl_PL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/pt_BR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/pt_BR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/pt_PT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/pt_PT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ro_RO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ro_RO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/sk_SK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/sk_SK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/sq_AL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/sq_AL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/sv_SE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/sv_SE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/th_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/th_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/tl_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/tl_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/tr_TR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/tr_TR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/uk_UA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/uk_UA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/vi_VN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/vi_VN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/zh_CN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/zh_CN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/zh_TW/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/automotive/zh_TW/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/az_AZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/az_AZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/cs_CZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/cs_CZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/da_DK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/da_DK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/de_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/de_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/de_DE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/de_DE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/en_GB/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/en_GB/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/en_IE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/en_IE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/en_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/en_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/en_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/en_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/es_AR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/es_AR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/es_MX/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/es_MX/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/fa_IR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/fa_IR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/fi_FI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/fi_FI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/fil_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/fil_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/fr_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/fr_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/fr_FR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/fr_FR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/it_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/it_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/it_IT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/it_IT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/nl_BE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/nl_BE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/nl_NL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/nl_NL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/no_NO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/no_NO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/pl_PL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/pl_PL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/pt_PT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/pt_PT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/ro_RO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/ro_RO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/sk_SK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/sk_SK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/th_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/th_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/tl_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/tl_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/tr_TR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/tr_TR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/uk_UA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/uk_UA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/zh_CN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/bank/zh_CN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/barcode/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/barcode/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/barcode/en_CA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/barcode/en_CA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/barcode/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/barcode/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/barcode/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/barcode/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/barcode/fr_CA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/barcode/fr_CA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/barcode/ja_JP/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/barcode/ja_JP/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/__pycache__/color.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/ar_PS/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/ar_PS/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/az_AZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/az_AZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/bg_BG/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/bg_BG/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/color.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/cs_CZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/cs_CZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/da_DK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/da_DK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/de/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/de/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/de_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/de_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/de_DE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/de_DE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/es/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/es/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/es_CL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/es_CL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/fa_IR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/fa_IR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/fr_FR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/fr_FR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/he_IL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/he_IL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/hr_HR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/hr_HR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/hu_HU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/hu_HU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/hy_AM/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/hy_AM/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/id_ID/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/id_ID/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/ka_GE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/ka_GE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/pt_BR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/pt_BR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/sk_SK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/sk_SK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/th_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/th_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/uk_UA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/uk_UA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/uz_UZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/uz_UZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/vi_VN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/color/vi_VN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/ar_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/ar_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/az_AZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/az_AZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/bg_BG/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/bg_BG/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/cs_CZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/cs_CZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/da_DK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/da_DK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/de_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/de_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/de_DE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/de_DE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/en_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/en_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/es_CL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/es_CL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/es_MX/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/es_MX/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/fa_IR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/fa_IR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/fi_FI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/fi_FI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/fil_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/fil_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/fr_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/fr_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/fr_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/fr_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/fr_FR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/fr_FR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/hr_HR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/hr_HR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/hu_HU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/hu_HU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/hy_AM/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/hy_AM/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/id_ID/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/id_ID/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/it_IT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/it_IT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/ja_JP/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/ja_JP/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/ko_KR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/ko_KR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/nl_BE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/nl_BE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/nl_NL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/nl_NL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/no_NO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/no_NO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/pl_PL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/pl_PL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/pt_BR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/pt_BR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/pt_PT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/pt_PT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/ro_RO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/ro_RO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/sk_SK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/sk_SK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/sl_SI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/sl_SI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/sv_SE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/sv_SE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/th_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/th_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/tl_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/tl_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/tr_TR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/tr_TR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/vi_VN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/vi_VN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/zh_CN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/zh_CN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/zh_TW/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/company/zh_TW/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/fa_IR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/fa_IR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/pt_PT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/pt_PT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/uk_UA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/uk_UA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/zh_CN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/credit_card/zh_CN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/ar_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/ar_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/az_AZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/az_AZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/cs_CZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/cs_CZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/da_DK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/da_DK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/de/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/de/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/de_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/de_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/de_DE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/de_DE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/en_AU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/en_AU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/en_CA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/en_CA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/es/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/es/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/es_AR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/es_AR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/es_CL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/es_CL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/fa_IR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/fa_IR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/fr_CA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/fr_CA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/fr_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/fr_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/fr_FR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/fr_FR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/it_IT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/it_IT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/ng_NG/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/ng_NG/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/nl_NL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/nl_NL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/pl_PL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/pl_PL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/pt_BR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/pt_BR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/ro_RO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/ro_RO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/sk_SK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/sk_SK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/sv_SE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/sv_SE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/th_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/th_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/tr_TR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/tr_TR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/uk_UA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/uk_UA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/uz_UZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/uz_UZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/vi_VN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/currency/vi_VN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ar_AA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ar_AA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ar_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ar_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ar_EG/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ar_EG/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/az_AZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/az_AZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/cs_CZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/cs_CZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/da_DK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/da_DK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/de_DE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/de_DE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/en_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/en_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/es/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/es/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/es_AR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/es_AR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/es_CL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/es_CL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/fil_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/fil_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/fr_CA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/fr_CA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/fr_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/fr_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/fr_FR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/fr_FR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/gu_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/gu_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/hi_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/hi_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/hr_HR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/hr_HR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/hu_HU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/hu_HU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/hy_AM/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/hy_AM/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/id_ID/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/id_ID/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/it_IT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/it_IT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ja_JP/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ja_JP/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ka_GE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ka_GE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ko_KR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ko_KR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/nl_NL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/nl_NL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/no_NO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/no_NO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/pl_PL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/pl_PL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/pt_BR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/pt_BR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/pt_PT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/pt_PT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ro_RO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ro_RO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/sk_SK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/sk_SK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/sl_SI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/sl_SI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ta_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/ta_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/th_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/th_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/tl_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/tl_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/tr_TR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/tr_TR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/uz_UZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/uz_UZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/vi_VN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/vi_VN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/zh_CN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/zh_CN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/zh_TW/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/date_time/zh_TW/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/doi/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/doi/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/emoji/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/emoji/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/emoji/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/emoji/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/file/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/file/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/file/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/file/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/ar_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/ar_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/cs_CZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/cs_CZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/en_IE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/en_IE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/fr_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/fr_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/pl_PL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/pl_PL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/pt_PT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/pt_PT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/sk_SK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/sk_SK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/tr_TR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/geo/tr_TR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/ar_AA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/ar_AA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/az_AZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/az_AZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/bg_BG/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/bg_BG/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/bs_BA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/bs_BA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/cs_CZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/cs_CZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/de_DE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/de_DE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/en_AU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/en_AU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/en_GB/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/en_GB/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/en_NZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/en_NZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/en_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/en_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/es_AR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/es_AR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/es_CL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/es_CL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/fa_IR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/fa_IR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/fi_FI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/fi_FI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/fil_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/fil_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/fr_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/fr_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/fr_FR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/fr_FR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/hr_HR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/hr_HR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/hu_HU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/hu_HU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/id_ID/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/id_ID/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/it_IT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/it_IT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/ja_JP/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/ja_JP/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/ko_KR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/ko_KR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/no_NO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/no_NO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/pl_PL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/pl_PL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/pt_BR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/pt_BR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/pt_PT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/pt_PT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/ro_RO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/ro_RO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/sk_SK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/sk_SK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/sl_SI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/sl_SI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/sv_SE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/sv_SE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/th_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/th_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/tl_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/tl_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/tr_TR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/tr_TR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/uk_UA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/uk_UA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/zh_CN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/zh_CN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/zh_TW/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/internet/zh_TW/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/isbn/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/isbn/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/isbn/__pycache__/isbn.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/isbn/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/isbn/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/isbn/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/isbn/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/isbn/isbn.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ar_AA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ar_AA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ar_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ar_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/az_AZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/az_AZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/bs_BA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/bs_BA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/cs_CZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/cs_CZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/da_DK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/da_DK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/de_DE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/de_DE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/es/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/es/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/es_AR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/es_AR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/es_CL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/es_CL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/es_CO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/es_CO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/es_MX/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/es_MX/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/fa_IR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/fa_IR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/fi_FI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/fi_FI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/fr_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/fr_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/fr_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/fr_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/fr_FR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/fr_FR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/hr_HR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/hr_HR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/hu_HU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/hu_HU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/hy_AM/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/hy_AM/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ja_JP/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ja_JP/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ka_GE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ka_GE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ko_KR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ko_KR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/pl_PL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/pl_PL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/pt_BR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/pt_BR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/pt_PT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/pt_PT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ro_RO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ro_RO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/sk_SK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/sk_SK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/th_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/th_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/tr_TR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/tr_TR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/uk_UA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/uk_UA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/vi_VN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/vi_VN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/zh_CN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/zh_CN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/zh_TW/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/job/zh_TW/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/ar_AA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/ar_AA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/az_AZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/az_AZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/cs_CZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/cs_CZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/da_DK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/da_DK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/de_DE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/de_DE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/en_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/en_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/es_AR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/es_AR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/es_MX/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/es_MX/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/fa_IR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/fa_IR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/fil_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/fil_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/fr_FR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/fr_FR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/he_IL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/he_IL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/hy_AM/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/hy_AM/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/it_IT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/it_IT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/ja_JP/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/ja_JP/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/la/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/la/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/nl_BE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/nl_BE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/nl_NL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/nl_NL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/pl_PL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/pl_PL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/th_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/th_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/tl_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/tl_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/uk_UA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/uk_UA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/vi_VN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/vi_VN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/zh_CN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/zh_CN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/zh_TW/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/lorem/zh_TW/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/misc/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/misc/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/misc/en_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/misc/en_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/misc/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/misc/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/misc/fil_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/misc/fil_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/misc/tl_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/misc/tl_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/passport/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/passport/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/passport/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/passport/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/passport/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/passport/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/passport/it_IT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/passport/it_IT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/passport/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/passport/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ar_AA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ar_AA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ar_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ar_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ar_PS/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ar_PS/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ar_SA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ar_SA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/az_AZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/az_AZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/bg_BG/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/bg_BG/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/cs_CZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/cs_CZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/da_DK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/da_DK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/de_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/de_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/de_DE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/de_DE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/de_LI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/de_LI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/de_LU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/de_LU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_GB/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_GB/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_IE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_IE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_KE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_KE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_NG/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_NG/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_NZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_NZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_PK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_PK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es_AR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es_AR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es_CA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es_CA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es_CL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es_CL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es_CO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es_CO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es_MX/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/es_MX/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/et_EE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/et_EE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fa_IR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fa_IR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fi_FI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fi_FI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fr_BE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fr_BE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fr_CA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fr_CA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fr_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fr_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fr_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fr_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fr_FR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fr_FR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fr_QC/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/fr_QC/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ga_IE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ga_IE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/gu_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/gu_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ha_NG/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ha_NG/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/he_IL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/he_IL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/hi_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/hi_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/hr_HR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/hr_HR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/hu_HU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/hu_HU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/hy_AM/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/hy_AM/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/id_ID/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/id_ID/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ig_NG/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ig_NG/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/is_IS/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/is_IS/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/it_IT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/it_IT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ja_JP/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ja_JP/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ka_GE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ka_GE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ko_KR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ko_KR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/lt_LT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/lt_LT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/lv_LV/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/lv_LV/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ne_NP/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ne_NP/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/nl_BE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/nl_BE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/nl_NL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/nl_NL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/no_NO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/no_NO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/or_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/or_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/pl_PL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/pl_PL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/pt_BR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/pt_BR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/pt_PT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/pt_PT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ro_RO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ro_RO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/sk_SK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/sk_SK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/sl_SI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/sl_SI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/sv_SE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/sv_SE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/sw/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/sw/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ta_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/ta_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/th_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/th_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/tr_TR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/tr_TR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/tw_GH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/tw_GH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/uk_UA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/uk_UA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/uz_UZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/uz_UZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/vi_VN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/vi_VN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/yo_NG/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/yo_NG/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/zh_CN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/zh_CN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/zh_TW/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/zh_TW/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/zu_ZA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/person/zu_ZA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/am_ET/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/am_ET/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ar_AE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ar_AE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ar_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ar_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ar_JO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ar_JO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ar_PS/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ar_PS/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/az_AZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/az_AZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/bg_BG/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/bg_BG/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/bs_BA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/bs_BA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/cs_CZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/cs_CZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/da_DK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/da_DK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/de_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/de_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/de_DE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/de_DE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/de_LI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/de_LI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/de_LU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/de_LU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_AU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_AU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_CA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_CA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_GB/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_GB/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_NZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_NZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/es_AR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/es_AR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/es_CL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/es_CL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/es_CO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/es_CO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/es_MX/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/es_MX/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/fa_IR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/fa_IR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/fi_FI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/fi_FI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/fil_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/fil_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/fr_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/fr_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/fr_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/fr_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/fr_FR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/fr_FR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/he_IL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/he_IL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/hi_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/hi_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/hr_HR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/hr_HR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/hu_HU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/hu_HU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/hy_AM/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/hy_AM/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/id_ID/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/id_ID/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/it_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/it_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/it_IT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/it_IT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ja_JP/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ja_JP/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ka_GE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ka_GE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ko_KR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ko_KR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/lt_LT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/lt_LT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/lv_LV/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/lv_LV/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ne_NP/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ne_NP/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/nl_BE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/nl_BE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/nl_NL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/nl_NL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/no_NO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/no_NO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/pl_PL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/pl_PL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/pt_BR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/pt_BR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/pt_PT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/pt_PT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ro_RO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ro_RO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/sk_SK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/sk_SK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/sl_SI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/sl_SI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/sv_SE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/sv_SE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ta_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/ta_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/th_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/th_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/tl_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/tl_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/tr_TR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/tr_TR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/tw_GH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/tw_GH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/uk_UA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/uk_UA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/uz_UZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/uz_UZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/vi_VN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/vi_VN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/zh_CN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/zh_CN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/zh_TW/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/phone_number/zh_TW/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/profile/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/profile/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/profile/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/profile/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/python/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/python/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/python/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/python/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/sbn/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/sbn/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/sbn/__pycache__/rules.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/sbn/__pycache__/sbn.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/sbn/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/sbn/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/sbn/rules.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/sbn/sbn.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/ar_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/ar_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/az_AZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/az_AZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/bg_BG/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/bg_BG/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/bn_BD/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/bn_BD/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/cs_CZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/cs_CZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/de_AT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/de_AT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/de_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/de_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/de_DE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/de_DE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/dk_DK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/dk_DK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/el_CY/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/el_CY/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/el_GR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/el_GR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/en_CA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/en_CA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/en_GB/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/en_GB/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/en_IE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/en_IE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/en_IN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/en_IN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/en_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/en_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/es_CA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/es_CA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/es_CL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/es_CL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/es_CO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/es_CO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/es_ES/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/es_ES/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/es_MX/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/es_MX/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/et_EE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/et_EE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/fi_FI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/fi_FI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/fil_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/fil_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/fr_CH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/fr_CH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/fr_DZ/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/fr_DZ/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/fr_FR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/fr_FR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/he_IL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/he_IL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/hr_HR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/hr_HR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/hu_HU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/hu_HU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/it_IT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/it_IT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/ko_KR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/ko_KR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/lb_LU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/lb_LU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/lt_LT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/lt_LT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/lv_LV/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/lv_LV/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/mt_MT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/mt_MT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/nl_BE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/nl_BE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/nl_NL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/nl_NL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/no_NO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/no_NO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/pl_PL/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/pl_PL/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/pt_BR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/pt_BR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/pt_PT/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/pt_PT/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/ro_RO/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/ro_RO/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/ru_RU/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/ru_RU/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/sk_SK/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/sk_SK/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/sl_SI/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/sl_SI/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/sv_SE/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/sv_SE/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/th_TH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/th_TH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/tl_PH/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/tl_PH/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/tr_TR/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/tr_TR/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/uk_UA/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/uk_UA/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/zh_CN/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/zh_CN/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/zh_TW/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/ssn/zh_TW/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/user_agent/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/user_agent/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/user_agent/en_US/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/providers/user_agent/en_US/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/proxy.pyi delete mode 100644 .venv/lib/python3.12/site-packages/faker/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/faker/sphinx/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/sphinx/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/sphinx/__pycache__/autodoc.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/sphinx/__pycache__/docstring.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/sphinx/__pycache__/documentor.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/sphinx/__pycache__/validator.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/sphinx/autodoc.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/sphinx/docstring.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/sphinx/documentor.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/sphinx/validator.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/typing.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/__pycache__/checksums.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/__pycache__/datasets.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/__pycache__/decorators.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/__pycache__/distribution.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/__pycache__/loading.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/__pycache__/text.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/checksums.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/datasets.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/decorators.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/distribution.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/loading.py delete mode 100644 .venv/lib/python3.12/site-packages/faker/utils/text.py delete mode 100644 .venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/licenses/LICENSE.txt delete mode 100644 .venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/h11/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/h11/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/h11/__pycache__/_abnf.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/h11/__pycache__/_connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/h11/__pycache__/_events.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/h11/__pycache__/_headers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/h11/__pycache__/_readers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/h11/__pycache__/_receivebuffer.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/h11/__pycache__/_state.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/h11/__pycache__/_util.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/h11/__pycache__/_version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/h11/__pycache__/_writers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/h11/_abnf.py delete mode 100644 .venv/lib/python3.12/site-packages/h11/_connection.py delete mode 100644 .venv/lib/python3.12/site-packages/h11/_events.py delete mode 100644 .venv/lib/python3.12/site-packages/h11/_headers.py delete mode 100644 .venv/lib/python3.12/site-packages/h11/_readers.py delete mode 100644 .venv/lib/python3.12/site-packages/h11/_receivebuffer.py delete mode 100644 .venv/lib/python3.12/site-packages/h11/_state.py delete mode 100644 .venv/lib/python3.12/site-packages/h11/_util.py delete mode 100644 .venv/lib/python3.12/site-packages/h11/_version.py delete mode 100644 .venv/lib/python3.12/site-packages/h11/_writers.py delete mode 100644 .venv/lib/python3.12/site-packages/h11/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/httpcore-1.0.9.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/httpcore-1.0.9.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/httpcore-1.0.9.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/httpcore-1.0.9.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/httpcore-1.0.9.dist-info/licenses/LICENSE.md delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/__pycache__/_api.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/__pycache__/_exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/__pycache__/_models.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/__pycache__/_ssl.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/__pycache__/_synchronization.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/__pycache__/_trace.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/__pycache__/_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_api.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/__pycache__/connection_pool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/__pycache__/http11.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/__pycache__/http2.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/__pycache__/http_proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/__pycache__/interfaces.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/__pycache__/socks_proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/http11.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/http2.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/http_proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/interfaces.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_async/socks_proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/__pycache__/anyio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/__pycache__/auto.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/__pycache__/base.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/__pycache__/mock.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/__pycache__/sync.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/__pycache__/trio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/auto.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/base.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/mock.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/sync.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_backends/trio.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_models.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_ssl.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/__pycache__/connection_pool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/__pycache__/http11.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/__pycache__/http2.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/__pycache__/http_proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/__pycache__/interfaces.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/__pycache__/socks_proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/http11.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/http2.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/http_proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/interfaces.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_sync/socks_proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_synchronization.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_trace.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/httpcore/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/licenses/LICENSE.md delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/__version__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_api.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_auth.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_client.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_decoders.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_main.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_models.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_multipart.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_status_codes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_types.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_urlparse.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_urls.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__pycache__/_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/__version__.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_api.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_auth.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_client.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_config.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_content.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_decoders.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_main.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_models.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_multipart.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_status_codes.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_transports/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_transports/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_transports/__pycache__/asgi.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_transports/__pycache__/base.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_transports/__pycache__/default.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_transports/__pycache__/mock.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_transports/__pycache__/wsgi.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_transports/asgi.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_transports/base.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_transports/default.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_transports/mock.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_transports/wsgi.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_types.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_urlparse.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_urls.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/httpx/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/idna-3.15.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/idna-3.15.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/idna-3.15.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/idna-3.15.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/idna-3.15.dist-info/licenses/LICENSE.md delete mode 100644 .venv/lib/python3.12/site-packages/idna/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/codec.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/core.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/idnadata.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/intranges.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/package_data.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/__pycache__/uts46data.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/idna/codec.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/compat.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/core.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/idnadata.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/intranges.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/package_data.py delete mode 100644 .venv/lib/python3.12/site-packages/idna/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/idna/uts46data.py delete mode 100644 .venv/lib/python3.12/site-packages/jiter-0.14.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/jiter-0.14.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/jiter-0.14.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/jiter-0.14.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/jiter-0.14.0.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/jiter-0.14.0.dist-info/sboms/jiter-python.cyclonedx.json delete mode 100644 .venv/lib/python3.12/site-packages/jiter/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/jiter/__init__.pyi delete mode 100644 .venv/lib/python3.12/site-packages/jiter/__pycache__/__init__.cpython-312.pyc delete mode 100755 .venv/lib/python3.12/site-packages/jiter/jiter.cpython-312-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.12/site-packages/jiter/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/openai-2.37.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/openai-2.37.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/openai-2.37.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/openai-2.37.0.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.12/site-packages/openai-2.37.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/openai-2.37.0.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/openai/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_base_client.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_client.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_constants.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_event_handler.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_files.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_legacy_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_models.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_module_client.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_qs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_resource.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_send_queue.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_streaming.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_types.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/_version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/pagination.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_base_client.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_client.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_compat.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_constants.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_event_handler.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_extras/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_extras/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_extras/__pycache__/_common.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_extras/__pycache__/numpy_proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_extras/__pycache__/pandas_proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_extras/__pycache__/sounddevice_proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_extras/_common.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_extras/numpy_proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_extras/pandas_proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_extras/sounddevice_proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_files.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_legacy_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_models.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_module_client.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_qs.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_resource.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_send_queue.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_streaming.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_types.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/_compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/_datetime_parse.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/_json.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/_logs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/_path.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/_proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/_reflection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/_resources_proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/_streams.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/_sync.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/_transform.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/_typing.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/__pycache__/_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/_compat.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/_datetime_parse.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/_json.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/_logs.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/_path.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/_proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/_reflection.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/_resources_proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/_streams.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/_sync.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/_transform.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/_typing.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_utils/_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/_version.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/auth/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/auth/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/auth/__pycache__/_workload.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/auth/_workload.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/helpers/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/helpers/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/helpers/__pycache__/local_audio_player.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/helpers/__pycache__/microphone.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/helpers/local_audio_player.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/helpers/microphone.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/.keep delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/__pycache__/_old_api.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/__pycache__/_pydantic.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/__pycache__/_realtime.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/__pycache__/_tools.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/__pycache__/_validators.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/__pycache__/azure.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/_old_api.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/_parsing/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/_parsing/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/_parsing/__pycache__/_completions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/_parsing/__pycache__/_responses.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/_parsing/_completions.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/_parsing/_responses.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/_pydantic.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/_realtime.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/_tools.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/_validators.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/azure.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/__pycache__/_assistants.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/__pycache__/_deltas.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/_assistants.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/_deltas.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/chat/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/chat/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/chat/__pycache__/_completions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/chat/__pycache__/_events.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/chat/__pycache__/_types.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/chat/_completions.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/chat/_events.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/chat/_types.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/responses/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/responses/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/responses/__pycache__/_events.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/responses/__pycache__/_responses.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/responses/__pycache__/_types.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/responses/_events.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/responses/_responses.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/lib/streaming/responses/_types.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/pagination.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/__pycache__/batches.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/__pycache__/completions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/__pycache__/embeddings.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/__pycache__/files.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/__pycache__/images.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/__pycache__/models.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/__pycache__/moderations.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/__pycache__/videos.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/__pycache__/admin.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/admin.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/__pycache__/admin_api_keys.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/__pycache__/audit_logs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/__pycache__/certificates.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/__pycache__/invites.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/__pycache__/organization.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/__pycache__/roles.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/__pycache__/usage.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/admin_api_keys.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/audit_logs.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/certificates.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/groups/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/groups/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/groups/__pycache__/groups.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/groups/__pycache__/roles.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/groups/__pycache__/users.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/groups/groups.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/groups/roles.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/groups/users.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/invites.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/organization.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/__pycache__/api_keys.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/__pycache__/certificates.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/__pycache__/projects.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/__pycache__/rate_limits.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/__pycache__/roles.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/__pycache__/service_accounts.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/api_keys.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/certificates.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/groups/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/groups/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/groups/__pycache__/groups.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/groups/__pycache__/roles.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/groups/groups.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/groups/roles.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/projects.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/rate_limits.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/roles.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/service_accounts.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/users/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/users/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/users/__pycache__/roles.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/users/__pycache__/users.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/users/roles.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/projects/users/users.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/roles.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/usage.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/users/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/users/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/users/__pycache__/roles.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/users/__pycache__/users.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/users/roles.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/admin/organization/users/users.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/audio/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/audio/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/audio/__pycache__/audio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/audio/__pycache__/speech.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/audio/__pycache__/transcriptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/audio/__pycache__/translations.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/audio/audio.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/audio/speech.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/audio/transcriptions.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/audio/translations.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/batches.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/__pycache__/assistants.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/__pycache__/beta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/assistants.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/beta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/chatkit/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/chatkit/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/chatkit/__pycache__/chatkit.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/chatkit/__pycache__/sessions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/chatkit/__pycache__/threads.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/chatkit/chatkit.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/chatkit/sessions.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/chatkit/threads.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/realtime/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/realtime/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/realtime/__pycache__/realtime.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/realtime/__pycache__/sessions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/realtime/__pycache__/transcription_sessions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/realtime/realtime.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/realtime/sessions.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/realtime/transcription_sessions.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/threads/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/threads/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/threads/__pycache__/messages.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/threads/__pycache__/threads.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/threads/messages.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/threads/runs/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/threads/runs/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/threads/runs/__pycache__/runs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/threads/runs/__pycache__/steps.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/threads/runs/runs.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/threads/runs/steps.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/beta/threads/threads.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/chat/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/chat/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/chat/__pycache__/chat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/chat/chat.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/chat/completions/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/chat/completions/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/chat/completions/__pycache__/completions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/chat/completions/__pycache__/messages.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/chat/completions/completions.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/chat/completions/messages.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/completions.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/containers/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/containers/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/containers/__pycache__/containers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/containers/containers.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/containers/files/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/containers/files/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/containers/files/__pycache__/content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/containers/files/__pycache__/files.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/containers/files/content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/containers/files/files.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/conversations/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/conversations/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/conversations/__pycache__/conversations.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/conversations/__pycache__/items.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/conversations/api.md delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/conversations/conversations.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/conversations/items.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/embeddings.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/evals/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/evals/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/evals/__pycache__/evals.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/evals/evals.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/evals/runs/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/evals/runs/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/evals/runs/__pycache__/output_items.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/evals/runs/__pycache__/runs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/evals/runs/output_items.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/evals/runs/runs.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/files.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/__pycache__/fine_tuning.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/alpha/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/alpha/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/alpha/__pycache__/alpha.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/alpha/__pycache__/graders.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/alpha/alpha.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/alpha/graders.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/checkpoints/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/checkpoints/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/checkpoints/__pycache__/checkpoints.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/checkpoints/__pycache__/permissions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/checkpoints/checkpoints.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/checkpoints/permissions.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/fine_tuning.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/jobs/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/jobs/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/jobs/__pycache__/checkpoints.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/jobs/__pycache__/jobs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/jobs/checkpoints.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/fine_tuning/jobs/jobs.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/images.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/models.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/moderations.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/realtime/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/realtime/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/realtime/__pycache__/calls.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/realtime/__pycache__/client_secrets.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/realtime/__pycache__/realtime.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/realtime/api.md delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/realtime/calls.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/realtime/client_secrets.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/realtime/realtime.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/responses/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/responses/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/responses/__pycache__/input_items.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/responses/__pycache__/input_tokens.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/responses/__pycache__/responses.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/responses/api.md delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/responses/input_items.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/responses/input_tokens.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/responses/responses.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/skills/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/skills/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/skills/__pycache__/content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/skills/__pycache__/skills.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/skills/content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/skills/skills.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/skills/versions/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/skills/versions/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/skills/versions/__pycache__/content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/skills/versions/__pycache__/versions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/skills/versions/content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/skills/versions/versions.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/uploads/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/uploads/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/uploads/__pycache__/parts.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/uploads/__pycache__/uploads.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/uploads/parts.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/uploads/uploads.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/vector_stores/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/vector_stores/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/vector_stores/__pycache__/file_batches.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/vector_stores/__pycache__/files.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/vector_stores/__pycache__/vector_stores.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/vector_stores/file_batches.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/vector_stores/files.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/vector_stores/vector_stores.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/videos.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/webhooks/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/webhooks/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/webhooks/__pycache__/webhooks.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/webhooks/api.md delete mode 100644 .venv/lib/python3.12/site-packages/openai/resources/webhooks/webhooks.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/audio_model.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/audio_response_format.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/auto_file_chunking_strategy_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/batch.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/batch_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/batch_error.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/batch_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/batch_request_counts.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/batch_usage.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/chat_model.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/completion.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/completion_choice.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/completion_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/completion_usage.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/container_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/container_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/container_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/container_list_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/container_retrieve_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/create_embedding_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/deleted_skill.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/embedding.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/embedding_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/embedding_model.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/eval_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/eval_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/eval_custom_data_source_config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/eval_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/eval_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/eval_list_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/eval_retrieve_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/eval_stored_completions_data_source_config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/eval_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/eval_update_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/file_chunking_strategy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/file_chunking_strategy_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/file_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/file_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/file_deleted.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/file_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/file_object.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/file_purpose.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/image.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/image_create_variation_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/image_edit_completed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/image_edit_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/image_edit_partial_image_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/image_edit_stream_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/image_gen_completed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/image_gen_partial_image_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/image_gen_stream_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/image_generate_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/image_input_reference_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/image_model.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/images_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/model.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/model_deleted.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/moderation.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/moderation_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/moderation_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/moderation_image_url_input_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/moderation_model.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/moderation_multi_modal_input_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/moderation_text_input_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/other_file_chunking_strategy_object.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/skill.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/skill_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/skill_list.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/skill_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/skill_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/static_file_chunking_strategy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/static_file_chunking_strategy_object.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/static_file_chunking_strategy_object_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/static_file_chunking_strategy_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/upload.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/upload_complete_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/upload_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/vector_store.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/vector_store_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/vector_store_deleted.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/vector_store_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/vector_store_search_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/vector_store_search_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/vector_store_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_create_character_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_create_character_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_create_error.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_download_content_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_edit_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_extend_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_get_character_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_model.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_model_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_remix_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_seconds.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/video_size.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/websocket_connection_options.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/__pycache__/websocket_reconnection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/admin_api_key.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/admin_api_key_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/admin_api_key_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/admin_api_key_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/admin_api_key_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/audit_log_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/audit_log_list_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/certificate.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/certificate_activate_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/certificate_activate_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/certificate_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/certificate_deactivate_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/certificate_deactivate_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/certificate_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/certificate_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/certificate_list_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/certificate_retrieve_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/certificate_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/group.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/group_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/group_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/group_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/group_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/group_update_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/invite.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/invite_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/invite_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/invite_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/organization_user.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/project.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/project_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/project_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/project_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/role.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/role_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/role_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/role_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/role_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_audio_speeches_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_audio_speeches_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_audio_transcriptions_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_audio_transcriptions_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_code_interpreter_sessions_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_code_interpreter_sessions_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_completions_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_completions_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_costs_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_costs_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_embeddings_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_embeddings_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_images_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_images_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_moderations_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_moderations_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_vector_stores_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/usage_vector_stores_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/user_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/user_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/__pycache__/user_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/admin_api_key.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/admin_api_key_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/admin_api_key_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/admin_api_key_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/admin_api_key_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/audit_log_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/audit_log_list_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/certificate.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/certificate_activate_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/certificate_activate_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/certificate_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/certificate_deactivate_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/certificate_deactivate_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/certificate_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/certificate_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/certificate_list_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/certificate_retrieve_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/certificate_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/group.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/group_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/group_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/group_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/group_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/group_update_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/__pycache__/organization_group_user.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/__pycache__/role_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/__pycache__/role_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/__pycache__/role_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/__pycache__/role_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/__pycache__/role_list_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/__pycache__/user_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/__pycache__/user_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/__pycache__/user_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/__pycache__/user_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/organization_group_user.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/role_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/role_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/role_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/role_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/role_list_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/user_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/user_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/user_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/groups/user_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/invite.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/invite_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/invite_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/invite_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/organization_user.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/project.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/project_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/project_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/project_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/api_key_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/api_key_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/certificate_activate_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/certificate_activate_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/certificate_deactivate_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/certificate_deactivate_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/certificate_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/certificate_list_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/group_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/group_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/group_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/project_api_key.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/project_group.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/project_rate_limit.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/project_service_account.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/project_user.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/rate_limit_list_rate_limits_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/rate_limit_update_rate_limit_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/role_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/role_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/role_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/role_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/service_account_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/service_account_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/service_account_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/service_account_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/user_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/user_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/user_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/__pycache__/user_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/api_key_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/api_key_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/certificate_activate_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/certificate_activate_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/certificate_deactivate_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/certificate_deactivate_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/certificate_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/certificate_list_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/group_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/group_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/group_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/groups/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/groups/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/groups/__pycache__/role_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/groups/__pycache__/role_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/groups/__pycache__/role_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/groups/__pycache__/role_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/groups/__pycache__/role_list_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/groups/role_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/groups/role_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/groups/role_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/groups/role_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/groups/role_list_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/project_api_key.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/project_group.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/project_rate_limit.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/project_service_account.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/project_user.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/rate_limit_list_rate_limits_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/rate_limit_update_rate_limit_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/role_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/role_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/role_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/role_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/service_account_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/service_account_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/service_account_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/service_account_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/user_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/user_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/user_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/user_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/users/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/users/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/users/__pycache__/role_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/users/__pycache__/role_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/users/__pycache__/role_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/users/__pycache__/role_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/users/__pycache__/role_list_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/users/role_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/users/role_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/users/role_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/users/role_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/projects/users/role_list_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/role.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/role_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/role_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/role_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/role_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_audio_speeches_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_audio_speeches_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_audio_transcriptions_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_audio_transcriptions_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_code_interpreter_sessions_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_code_interpreter_sessions_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_completions_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_completions_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_costs_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_costs_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_embeddings_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_embeddings_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_images_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_images_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_moderations_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_moderations_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_vector_stores_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/usage_vector_stores_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/user_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/user_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/user_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/users/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/users/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/users/__pycache__/role_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/users/__pycache__/role_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/users/__pycache__/role_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/users/__pycache__/role_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/users/__pycache__/role_list_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/users/role_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/users/role_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/users/role_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/users/role_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/admin/organization/users/role_list_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/speech_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/speech_model.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/transcription.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/transcription_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/transcription_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/transcription_diarized.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/transcription_diarized_segment.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/transcription_include.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/transcription_segment.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/transcription_stream_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/transcription_text_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/transcription_text_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/transcription_text_segment_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/transcription_verbose.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/transcription_word.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/translation.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/translation_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/translation_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/__pycache__/translation_verbose.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/speech_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/speech_model.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/transcription.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/transcription_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/transcription_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/transcription_diarized.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/transcription_diarized_segment.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/transcription_include.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/transcription_segment.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/transcription_stream_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/transcription_text_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/transcription_text_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/transcription_text_segment_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/transcription_verbose.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/transcription_word.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/translation.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/translation_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/translation_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio/translation_verbose.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio_model.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/audio_response_format.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/auto_file_chunking_strategy_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/batch.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/batch_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/batch_error.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/batch_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/batch_request_counts.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/batch_usage.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_deleted.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_response_format_option.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_response_format_option_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_stream_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_tool_choice.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_tool_choice_function.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_tool_choice_function_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_tool_choice_option.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_tool_choice_option_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_tool_choice_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/assistant_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/chatkit_workflow.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/code_interpreter_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/code_interpreter_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/file_search_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/file_search_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/function_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/function_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/thread.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/thread_create_and_run_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/thread_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/thread_deleted.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/__pycache__/thread_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_deleted.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_response_format_option.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_response_format_option_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_stream_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_tool_choice.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_tool_choice_function.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_tool_choice_function_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_tool_choice_option.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_tool_choice_option_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_tool_choice_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/assistant_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chat/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chat/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chat_session.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chat_session_automatic_thread_titling.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chat_session_chatkit_configuration.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chat_session_chatkit_configuration_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chat_session_expires_after_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chat_session_file_upload.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chat_session_history.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chat_session_rate_limits.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chat_session_rate_limits_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chat_session_status.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chat_session_workflow_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chatkit_attachment.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chatkit_response_output_text.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chatkit_thread.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chatkit_thread_assistant_message_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chatkit_thread_item_list.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chatkit_thread_user_message_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/chatkit_widget_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/session_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/thread_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/thread_list_items_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/__pycache__/thread_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chat_session.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chat_session_automatic_thread_titling.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chat_session_chatkit_configuration.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chat_session_chatkit_configuration_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chat_session_expires_after_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chat_session_file_upload.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chat_session_history.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chat_session_rate_limits.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chat_session_rate_limits_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chat_session_status.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chat_session_workflow_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chatkit_attachment.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chatkit_response_output_text.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chatkit_thread.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chatkit_thread_assistant_message_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chatkit_thread_item_list.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chatkit_thread_user_message_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/chatkit_widget_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/session_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/thread_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/thread_list_items_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit/thread_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/chatkit_workflow.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/code_interpreter_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/code_interpreter_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/file_search_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/file_search_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/function_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/function_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_created_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_content_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_create_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_create_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_created_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_delete_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_delete_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_deleted_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_input_audio_transcription_completed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_input_audio_transcription_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_input_audio_transcription_failed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_retrieve_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_retrieve_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_truncate_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_truncate_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_truncated_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_with_reference.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/conversation_item_with_reference_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/error_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/input_audio_buffer_append_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/input_audio_buffer_append_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/input_audio_buffer_clear_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/input_audio_buffer_clear_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/input_audio_buffer_cleared_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/input_audio_buffer_commit_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/input_audio_buffer_commit_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/input_audio_buffer_committed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/input_audio_buffer_speech_started_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/input_audio_buffer_speech_stopped_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/rate_limits_updated_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/realtime_client_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/realtime_client_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/realtime_connect_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/realtime_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/realtime_response_status.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/realtime_response_usage.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/realtime_server_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_audio_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_audio_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_audio_transcript_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_audio_transcript_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_cancel_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_cancel_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_content_part_added_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_content_part_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_create_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_create_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_created_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_function_call_arguments_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_function_call_arguments_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_output_item_added_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_output_item_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_text_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/response_text_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/session.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/session_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/session_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/session_created_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/session_update_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/session_update_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/session_updated_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/transcription_session.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/transcription_session_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/transcription_session_update.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/transcription_session_update_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/__pycache__/transcription_session_updated_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_created_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_content_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_create_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_create_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_created_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_delete_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_delete_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_deleted_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_input_audio_transcription_completed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_input_audio_transcription_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_input_audio_transcription_failed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_retrieve_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_retrieve_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_truncate_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_truncate_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_truncated_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_with_reference.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/conversation_item_with_reference_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/error_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/input_audio_buffer_append_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/input_audio_buffer_append_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/input_audio_buffer_clear_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/input_audio_buffer_clear_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/input_audio_buffer_cleared_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/input_audio_buffer_commit_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/input_audio_buffer_commit_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/input_audio_buffer_committed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/input_audio_buffer_speech_started_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/input_audio_buffer_speech_stopped_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/rate_limits_updated_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/realtime_client_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/realtime_client_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/realtime_connect_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/realtime_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/realtime_response_status.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/realtime_response_usage.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/realtime_server_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_audio_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_audio_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_audio_transcript_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_audio_transcript_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_cancel_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_cancel_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_content_part_added_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_content_part_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_create_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_create_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_created_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_function_call_arguments_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_function_call_arguments_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_output_item_added_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_output_item_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_text_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/response_text_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/session.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/session_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/session_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/session_created_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/session_update_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/session_update_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/session_updated_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/transcription_session.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/transcription_session_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/transcription_session_update.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/transcription_session_update_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/realtime/transcription_session_updated_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/thread.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/thread_create_and_run_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/thread_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/thread_deleted.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/thread_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/annotation.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/annotation_delta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/file_citation_annotation.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/file_citation_delta_annotation.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/file_path_annotation.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/file_path_delta_annotation.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/image_file.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/image_file_content_block.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/image_file_content_block_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/image_file_delta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/image_file_delta_block.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/image_file_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/image_url.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/image_url_content_block.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/image_url_content_block_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/image_url_delta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/image_url_delta_block.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/image_url_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/message.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/message_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/message_content_delta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/message_content_part_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/message_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/message_deleted.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/message_delta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/message_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/message_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/message_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/refusal_content_block.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/refusal_delta_block.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/required_action_function_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/run.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/run_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/run_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/run_status.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/run_submit_tool_outputs_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/run_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/text.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/text_content_block.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/text_content_block_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/text_delta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/__pycache__/text_delta_block.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/annotation.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/annotation_delta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/file_citation_annotation.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/file_citation_delta_annotation.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/file_path_annotation.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/file_path_delta_annotation.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/image_file.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/image_file_content_block.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/image_file_content_block_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/image_file_delta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/image_file_delta_block.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/image_file_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/image_url.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/image_url_content_block.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/image_url_content_block_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/image_url_delta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/image_url_delta_block.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/image_url_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/message.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/message_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/message_content_delta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/message_content_part_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/message_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/message_deleted.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/message_delta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/message_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/message_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/message_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/refusal_content_block.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/refusal_delta_block.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/required_action_function_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/run.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/run_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/run_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/run_status.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/run_submit_tool_outputs_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/run_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/code_interpreter_logs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/code_interpreter_output_image.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/code_interpreter_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/code_interpreter_tool_call_delta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/file_search_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/file_search_tool_call_delta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/function_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/function_tool_call_delta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/message_creation_step_details.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/run_step.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/run_step_delta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/run_step_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/run_step_delta_message_delta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/run_step_include.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/step_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/step_retrieve_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/tool_call_delta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/tool_call_delta_object.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/__pycache__/tool_calls_step_details.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/code_interpreter_logs.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/code_interpreter_output_image.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/code_interpreter_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/code_interpreter_tool_call_delta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/file_search_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/file_search_tool_call_delta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/function_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/function_tool_call_delta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/message_creation_step_details.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/run_step.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/run_step_delta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/run_step_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/run_step_delta_message_delta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/run_step_include.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/step_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/step_retrieve_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/tool_call_delta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/tool_call_delta_object.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/runs/tool_calls_step_details.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/text.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/text_content_block.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/text_content_block_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/text_delta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/beta/threads/text_delta_block.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_allowed_tool_choice_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_allowed_tools_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_assistant_message_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_audio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_audio_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_chunk.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_content_part_image.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_content_part_image_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_content_part_input_audio_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_content_part_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_content_part_refusal_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_content_part_text.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_content_part_text_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_custom_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_deleted.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_developer_message_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_function_call_option_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_function_message_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_function_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_function_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_message.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_message_custom_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_message_custom_tool_call_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_message_function_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_message_function_tool_call_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_message_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_message_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_message_tool_call_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_message_tool_call_union_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_modality.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_named_tool_choice_custom_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_named_tool_choice_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_prediction_content_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_reasoning_effort.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_role.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_store_message.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_stream_options_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_system_message_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_token_logprob.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_tool_choice_option_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_tool_message_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_tool_union_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/chat_completion_user_message_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/completion_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/completion_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/completion_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/parsed_chat_completion.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/__pycache__/parsed_function_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_allowed_tool_choice_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_allowed_tools_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_assistant_message_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_audio.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_audio_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_chunk.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_content_part_image.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_content_part_image_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_content_part_input_audio_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_content_part_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_content_part_refusal_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_content_part_text.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_content_part_text_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_custom_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_deleted.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_developer_message_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_function_call_option_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_function_message_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_function_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_function_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_message.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_message_custom_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_message_custom_tool_call_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_message_function_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_message_function_tool_call_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_message_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_message_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_message_tool_call_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_message_tool_call_union_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_modality.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_named_tool_choice_custom_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_named_tool_choice_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_prediction_content_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_reasoning_effort.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_role.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_store_message.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_stream_options_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_system_message_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_token_logprob.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_tool_choice_option_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_tool_message_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_tool_union_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/chat_completion_user_message_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/completion_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/completion_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/completion_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/completions/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/completions/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/completions/__pycache__/message_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/completions/message_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/parsed_chat_completion.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat/parsed_function_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/chat_model.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/completion.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/completion_choice.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/completion_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/completion_usage.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/container_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/container_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/container_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/container_list_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/container_retrieve_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/__pycache__/file_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/__pycache__/file_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/__pycache__/file_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/__pycache__/file_list_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/__pycache__/file_retrieve_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/file_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/file_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/file_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/file_list_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/file_retrieve_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/files/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/containers/files/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/computer_screenshot_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/conversation.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/conversation_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/conversation_deleted_resource.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/conversation_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/conversation_item_list.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/conversation_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/input_file_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/input_file_content_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/input_image_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/input_image_content_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/input_text_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/input_text_content_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/item_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/item_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/item_retrieve_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/message.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/output_text_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/output_text_content_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/refusal_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/refusal_content_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/summary_text_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/__pycache__/text_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/computer_screenshot_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/conversation.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/conversation_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/conversation_deleted_resource.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/conversation_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/conversation_item_list.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/conversation_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/input_file_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/input_file_content_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/input_image_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/input_image_content_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/input_text_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/input_text_content_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/item_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/item_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/item_retrieve_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/message.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/output_text_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/output_text_content_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/refusal_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/refusal_content_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/summary_text_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/conversations/text_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/create_embedding_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/deleted_skill.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/embedding.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/embedding_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/embedding_model.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/eval_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/eval_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/eval_custom_data_source_config.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/eval_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/eval_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/eval_list_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/eval_retrieve_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/eval_stored_completions_data_source_config.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/eval_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/eval_update_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__pycache__/create_eval_completions_run_data_source.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__pycache__/create_eval_completions_run_data_source_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__pycache__/create_eval_jsonl_run_data_source.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__pycache__/create_eval_jsonl_run_data_source_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__pycache__/eval_api_error.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__pycache__/run_cancel_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__pycache__/run_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__pycache__/run_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__pycache__/run_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__pycache__/run_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__pycache__/run_list_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/__pycache__/run_retrieve_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/create_eval_completions_run_data_source.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/create_eval_completions_run_data_source_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/create_eval_jsonl_run_data_source.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/create_eval_jsonl_run_data_source_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/eval_api_error.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/run_cancel_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/run_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/run_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/run_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/run_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/run_list_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/run_retrieve_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/runs/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/runs/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/runs/__pycache__/output_item_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/runs/__pycache__/output_item_list_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/runs/__pycache__/output_item_retrieve_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/runs/output_item_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/runs/output_item_list_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/evals/runs/output_item_retrieve_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/file_chunking_strategy.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/file_chunking_strategy_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/file_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/file_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/file_deleted.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/file_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/file_object.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/file_purpose.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/dpo_hyperparameters.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/dpo_hyperparameters_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/dpo_method.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/dpo_method_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/fine_tuning_job.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/fine_tuning_job_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/fine_tuning_job_integration.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/fine_tuning_job_wandb_integration.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/fine_tuning_job_wandb_integration_object.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/job_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/job_list_events_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/job_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/reinforcement_hyperparameters.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/reinforcement_hyperparameters_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/reinforcement_method.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/reinforcement_method_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/supervised_hyperparameters.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/supervised_hyperparameters_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/supervised_method.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/__pycache__/supervised_method_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/alpha/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/alpha/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/alpha/__pycache__/grader_run_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/alpha/__pycache__/grader_run_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/alpha/__pycache__/grader_validate_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/alpha/__pycache__/grader_validate_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/alpha/grader_run_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/alpha/grader_run_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/alpha/grader_validate_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/alpha/grader_validate_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/__pycache__/permission_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/__pycache__/permission_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/__pycache__/permission_delete_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/__pycache__/permission_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/__pycache__/permission_list_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/__pycache__/permission_retrieve_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/__pycache__/permission_retrieve_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/permission_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/permission_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/permission_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/permission_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/permission_list_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/permission_retrieve_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/checkpoints/permission_retrieve_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/dpo_hyperparameters.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/dpo_hyperparameters_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/dpo_method.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/dpo_method_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/fine_tuning_job.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/fine_tuning_job_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/fine_tuning_job_integration.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/fine_tuning_job_wandb_integration.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/fine_tuning_job_wandb_integration_object.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/job_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/job_list_events_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/job_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/jobs/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/jobs/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/jobs/__pycache__/checkpoint_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/jobs/__pycache__/fine_tuning_job_checkpoint.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/jobs/checkpoint_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/jobs/fine_tuning_job_checkpoint.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/reinforcement_hyperparameters.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/reinforcement_hyperparameters_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/reinforcement_method.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/reinforcement_method_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/supervised_hyperparameters.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/supervised_hyperparameters_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/supervised_method.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/fine_tuning/supervised_method_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/grader_inputs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/grader_inputs_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/label_model_grader.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/label_model_grader_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/multi_grader.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/multi_grader_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/python_grader.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/python_grader_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/score_model_grader.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/score_model_grader_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/string_check_grader.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/string_check_grader_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/text_similarity_grader.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/__pycache__/text_similarity_grader_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/grader_inputs.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/grader_inputs_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/label_model_grader.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/label_model_grader_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/multi_grader.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/multi_grader_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/python_grader.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/python_grader_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/score_model_grader.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/score_model_grader_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/string_check_grader.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/string_check_grader_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/text_similarity_grader.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/graders/text_similarity_grader_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/image.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/image_create_variation_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/image_edit_completed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/image_edit_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/image_edit_partial_image_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/image_edit_stream_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/image_gen_completed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/image_gen_partial_image_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/image_gen_stream_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/image_generate_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/image_input_reference_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/image_model.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/images_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/model.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/model_deleted.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/moderation.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/moderation_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/moderation_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/moderation_image_url_input_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/moderation_model.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/moderation_multi_modal_input_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/moderation_text_input_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/other_file_chunking_strategy_object.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/audio_transcription.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/audio_transcription_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/call_accept_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/call_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/call_refer_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/call_reject_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/client_secret_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/client_secret_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_created_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_added.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_create_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_create_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_created_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_delete_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_delete_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_deleted_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_done.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_input_audio_transcription_completed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_input_audio_transcription_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_input_audio_transcription_failed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_input_audio_transcription_segment.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_retrieve_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_retrieve_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_truncate_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_truncate_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/conversation_item_truncated_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/input_audio_buffer_append_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/input_audio_buffer_append_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/input_audio_buffer_clear_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/input_audio_buffer_clear_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/input_audio_buffer_cleared_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/input_audio_buffer_commit_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/input_audio_buffer_commit_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/input_audio_buffer_committed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/input_audio_buffer_dtmf_event_received_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/input_audio_buffer_speech_started_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/input_audio_buffer_speech_stopped_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/input_audio_buffer_timeout_triggered.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/log_prob_properties.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/mcp_list_tools_completed.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/mcp_list_tools_failed.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/mcp_list_tools_in_progress.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/noise_reduction_type.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/output_audio_buffer_clear_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/output_audio_buffer_clear_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/rate_limits_updated_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_audio_config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_audio_config_input.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_audio_config_input_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_audio_config_output.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_audio_config_output_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_audio_config_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_audio_formats.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_audio_formats_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_audio_input_turn_detection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_audio_input_turn_detection_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_client_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_client_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_connect_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_conversation_item_assistant_message.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_conversation_item_assistant_message_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_conversation_item_function_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_conversation_item_function_call_output.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_conversation_item_function_call_output_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_conversation_item_function_call_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_conversation_item_system_message.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_conversation_item_system_message_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_conversation_item_user_message.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_conversation_item_user_message_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_error.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_error_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_function_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_function_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcp_approval_request.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcp_approval_request_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcp_approval_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcp_approval_response_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcp_list_tools.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcp_list_tools_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcp_protocol_error.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcp_protocol_error_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcp_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcp_tool_call_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcp_tool_execution_error.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcp_tool_execution_error_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcphttp_error.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_mcphttp_error_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_reasoning.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_reasoning_effort.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_reasoning_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_response_create_audio_output.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_response_create_audio_output_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_response_create_mcp_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_response_create_mcp_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_response_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_response_create_params_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_response_status.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_response_usage.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_response_usage_input_token_details.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_response_usage_output_token_details.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_server_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_session_create_request.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_session_create_request_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_session_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_tool_choice_config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_tool_choice_config_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_tools_config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_tools_config_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_tools_config_union.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_tools_config_union_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_tracing_config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_tracing_config_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_transcription_session_audio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_transcription_session_audio_input.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_transcription_session_audio_input_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_transcription_session_audio_input_turn_detection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_transcription_session_audio_input_turn_detection_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_transcription_session_audio_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_transcription_session_create_request.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_transcription_session_create_request_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_transcription_session_create_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_transcription_session_turn_detection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_truncation.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_truncation_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_truncation_retention_ratio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/realtime_truncation_retention_ratio_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_audio_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_audio_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_audio_transcript_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_audio_transcript_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_cancel_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_cancel_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_content_part_added_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_content_part_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_create_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_create_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_created_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_function_call_arguments_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_function_call_arguments_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_mcp_call_arguments_delta.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_mcp_call_arguments_done.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_mcp_call_completed.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_mcp_call_failed.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_mcp_call_in_progress.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_output_item_added_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_output_item_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_text_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/response_text_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/session_created_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/session_update_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/session_update_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/__pycache__/session_updated_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/audio_transcription.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/audio_transcription_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/call_accept_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/call_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/call_refer_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/call_reject_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/client_secret_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/client_secret_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_created_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_added.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_create_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_create_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_created_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_delete_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_delete_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_deleted_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_done.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_input_audio_transcription_completed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_input_audio_transcription_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_input_audio_transcription_failed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_input_audio_transcription_segment.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_retrieve_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_retrieve_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_truncate_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_truncate_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/conversation_item_truncated_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/input_audio_buffer_append_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/input_audio_buffer_append_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/input_audio_buffer_clear_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/input_audio_buffer_clear_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/input_audio_buffer_cleared_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/input_audio_buffer_commit_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/input_audio_buffer_commit_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/input_audio_buffer_committed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/input_audio_buffer_dtmf_event_received_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/input_audio_buffer_speech_started_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/input_audio_buffer_speech_stopped_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/input_audio_buffer_timeout_triggered.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/log_prob_properties.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/mcp_list_tools_completed.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/mcp_list_tools_failed.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/mcp_list_tools_in_progress.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/noise_reduction_type.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/output_audio_buffer_clear_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/output_audio_buffer_clear_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/rate_limits_updated_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_audio_config.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_audio_config_input.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_audio_config_input_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_audio_config_output.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_audio_config_output_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_audio_config_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_audio_formats.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_audio_formats_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_audio_input_turn_detection.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_audio_input_turn_detection_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_client_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_client_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_connect_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_conversation_item_assistant_message.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_conversation_item_assistant_message_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_conversation_item_function_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_conversation_item_function_call_output.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_conversation_item_function_call_output_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_conversation_item_function_call_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_conversation_item_system_message.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_conversation_item_system_message_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_conversation_item_user_message.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_conversation_item_user_message_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_error.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_error_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_function_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_function_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcp_approval_request.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcp_approval_request_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcp_approval_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcp_approval_response_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcp_list_tools.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcp_list_tools_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcp_protocol_error.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcp_protocol_error_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcp_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcp_tool_call_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcp_tool_execution_error.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcp_tool_execution_error_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcphttp_error.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_mcphttp_error_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_reasoning.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_reasoning_effort.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_reasoning_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_response_create_audio_output.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_response_create_audio_output_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_response_create_mcp_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_response_create_mcp_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_response_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_response_create_params_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_response_status.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_response_usage.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_response_usage_input_token_details.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_response_usage_output_token_details.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_server_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_session_create_request.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_session_create_request_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_session_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_tool_choice_config.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_tool_choice_config_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_tools_config.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_tools_config_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_tools_config_union.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_tools_config_union_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_tracing_config.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_tracing_config_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_transcription_session_audio.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_transcription_session_audio_input.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_transcription_session_audio_input_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_transcription_session_audio_input_turn_detection.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_transcription_session_audio_input_turn_detection_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_transcription_session_audio_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_transcription_session_create_request.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_transcription_session_create_request_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_transcription_session_create_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_transcription_session_turn_detection.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_truncation.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_truncation_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_truncation_retention_ratio.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/realtime_truncation_retention_ratio_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_audio_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_audio_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_audio_transcript_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_audio_transcript_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_cancel_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_cancel_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_content_part_added_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_content_part_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_create_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_create_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_created_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_function_call_arguments_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_function_call_arguments_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_mcp_call_arguments_delta.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_mcp_call_arguments_done.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_mcp_call_completed.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_mcp_call_failed.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_mcp_call_in_progress.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_output_item_added_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_output_item_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_text_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/response_text_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/session_created_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/session_update_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/session_update_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/realtime/session_updated_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/apply_patch_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/apply_patch_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/compacted_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/computer_action.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/computer_action_list.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/computer_action_list_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/computer_action_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/computer_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/computer_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/computer_use_preview_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/computer_use_preview_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/container_auto.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/container_auto_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/container_network_policy_allowlist.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/container_network_policy_allowlist_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/container_network_policy_disabled.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/container_network_policy_disabled_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/container_network_policy_domain_secret.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/container_network_policy_domain_secret_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/container_reference.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/container_reference_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/custom_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/custom_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/easy_input_message.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/easy_input_message_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/file_search_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/file_search_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/function_shell_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/function_shell_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/function_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/function_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/inline_skill.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/inline_skill_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/inline_skill_source.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/inline_skill_source_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/input_item_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/input_token_count_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/input_token_count_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/local_environment.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/local_environment_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/local_skill.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/local_skill_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/namespace_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/namespace_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/parsed_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_apply_patch_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_apply_patch_tool_call_output.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_audio_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_audio_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_audio_transcript_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_audio_transcript_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_code_interpreter_call_code_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_code_interpreter_call_code_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_code_interpreter_call_completed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_code_interpreter_call_in_progress_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_code_interpreter_call_interpreting_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_code_interpreter_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_code_interpreter_tool_call_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_compact_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_compaction_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_compaction_item_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_compaction_item_param_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_completed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_computer_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_computer_tool_call_output_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_computer_tool_call_output_screenshot.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_computer_tool_call_output_screenshot_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_computer_tool_call_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_container_reference.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_content_part_added_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_content_part_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_conversation_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_conversation_param_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_created_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_custom_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_custom_tool_call_input_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_custom_tool_call_input_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_custom_tool_call_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_custom_tool_call_output.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_custom_tool_call_output_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_custom_tool_call_output_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_custom_tool_call_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_error.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_error_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_failed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_file_search_call_completed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_file_search_call_in_progress_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_file_search_call_searching_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_file_search_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_file_search_tool_call_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_format_text_config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_format_text_config_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_format_text_json_schema_config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_format_text_json_schema_config_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_call_arguments_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_call_arguments_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_call_output_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_call_output_item_list.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_call_output_item_list_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_call_output_item_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_shell_call_output_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_shell_call_output_content_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_shell_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_shell_tool_call_output.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_tool_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_tool_call_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_tool_call_output_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_tool_call_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_web_search.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_function_web_search_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_image_gen_call_completed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_image_gen_call_generating_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_image_gen_call_in_progress_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_image_gen_call_partial_image_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_in_progress_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_includable.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_incomplete_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_audio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_audio_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_content_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_file.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_file_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_file_content_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_file_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_image.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_image_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_image_content_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_image_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_item_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_message_content_list.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_message_content_list_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_message_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_text.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_text_content.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_text_content_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_input_text_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_item_list.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_local_environment.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_mcp_call_arguments_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_mcp_call_arguments_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_mcp_call_completed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_mcp_call_failed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_mcp_call_in_progress_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_mcp_list_tools_completed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_mcp_list_tools_failed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_mcp_list_tools_in_progress_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_output_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_output_item_added_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_output_item_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_output_message.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_output_message_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_output_refusal.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_output_refusal_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_output_text.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_output_text_annotation_added_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_output_text_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_prompt.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_prompt_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_queued_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_reasoning_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_reasoning_item_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_reasoning_summary_part_added_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_reasoning_summary_part_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_reasoning_summary_text_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_reasoning_summary_text_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_reasoning_text_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_reasoning_text_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_refusal_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_refusal_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_retrieve_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_status.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_stream_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_text_config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_text_config_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_text_delta_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_text_done_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_tool_search_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_tool_search_output_item.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_tool_search_output_item_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_tool_search_output_item_param_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_usage.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_web_search_call_completed_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_web_search_call_in_progress_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/response_web_search_call_searching_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/responses_client_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/responses_client_event_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/responses_server_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/skill_reference.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/skill_reference_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_allowed.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_allowed_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_apply_patch.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_apply_patch_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_custom.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_custom_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_function.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_function_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_mcp.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_mcp_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_options.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_shell.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_shell_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_types.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_choice_types_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_search_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/tool_search_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/web_search_preview_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/web_search_preview_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/web_search_tool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/__pycache__/web_search_tool_param.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/apply_patch_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/apply_patch_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/compacted_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/computer_action.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/computer_action_list.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/computer_action_list_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/computer_action_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/computer_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/computer_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/computer_use_preview_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/computer_use_preview_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/container_auto.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/container_auto_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/container_network_policy_allowlist.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/container_network_policy_allowlist_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/container_network_policy_disabled.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/container_network_policy_disabled_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/container_network_policy_domain_secret.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/container_network_policy_domain_secret_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/container_reference.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/container_reference_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/custom_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/custom_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/easy_input_message.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/easy_input_message_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/file_search_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/file_search_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/function_shell_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/function_shell_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/function_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/function_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/inline_skill.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/inline_skill_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/inline_skill_source.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/inline_skill_source_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/input_item_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/input_token_count_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/input_token_count_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/local_environment.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/local_environment_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/local_skill.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/local_skill_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/namespace_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/namespace_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/parsed_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_apply_patch_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_apply_patch_tool_call_output.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_audio_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_audio_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_audio_transcript_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_audio_transcript_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_code_interpreter_call_code_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_code_interpreter_call_code_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_code_interpreter_call_completed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_code_interpreter_call_in_progress_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_code_interpreter_call_interpreting_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_code_interpreter_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_code_interpreter_tool_call_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_compact_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_compaction_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_compaction_item_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_compaction_item_param_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_completed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_computer_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_computer_tool_call_output_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_computer_tool_call_output_screenshot.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_computer_tool_call_output_screenshot_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_computer_tool_call_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_container_reference.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_content_part_added_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_content_part_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_conversation_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_conversation_param_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_created_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_custom_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_custom_tool_call_input_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_custom_tool_call_input_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_custom_tool_call_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_custom_tool_call_output.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_custom_tool_call_output_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_custom_tool_call_output_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_custom_tool_call_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_error.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_error_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_failed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_file_search_call_completed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_file_search_call_in_progress_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_file_search_call_searching_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_file_search_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_file_search_tool_call_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_format_text_config.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_format_text_config_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_format_text_json_schema_config.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_format_text_json_schema_config_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_call_arguments_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_call_arguments_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_call_output_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_call_output_item_list.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_call_output_item_list_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_call_output_item_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_shell_call_output_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_shell_call_output_content_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_shell_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_shell_tool_call_output.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_tool_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_tool_call_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_tool_call_output_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_tool_call_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_web_search.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_function_web_search_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_image_gen_call_completed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_image_gen_call_generating_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_image_gen_call_in_progress_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_image_gen_call_partial_image_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_in_progress_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_includable.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_incomplete_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_audio.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_audio_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_content_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_file.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_file_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_file_content_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_file_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_image.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_image_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_image_content_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_image_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_item_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_message_content_list.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_message_content_list_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_message_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_text.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_text_content.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_text_content_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_input_text_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_item_list.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_local_environment.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_mcp_call_arguments_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_mcp_call_arguments_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_mcp_call_completed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_mcp_call_failed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_mcp_call_in_progress_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_mcp_list_tools_completed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_mcp_list_tools_failed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_mcp_list_tools_in_progress_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_output_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_output_item_added_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_output_item_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_output_message.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_output_message_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_output_refusal.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_output_refusal_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_output_text.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_output_text_annotation_added_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_output_text_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_prompt.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_prompt_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_queued_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_reasoning_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_reasoning_item_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_reasoning_summary_part_added_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_reasoning_summary_part_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_reasoning_summary_text_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_reasoning_summary_text_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_reasoning_text_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_reasoning_text_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_refusal_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_refusal_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_retrieve_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_status.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_stream_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_text_config.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_text_config_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_text_delta_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_text_done_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_tool_search_call.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_tool_search_output_item.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_tool_search_output_item_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_tool_search_output_item_param_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_usage.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_web_search_call_completed_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_web_search_call_in_progress_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/response_web_search_call_searching_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/responses_client_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/responses_client_event_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/responses_server_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/skill_reference.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/skill_reference_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_allowed.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_allowed_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_apply_patch.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_apply_patch_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_custom.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_custom_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_function.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_function_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_mcp.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_mcp_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_options.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_shell.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_shell_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_types.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_choice_types_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_search_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/tool_search_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/web_search_preview_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/web_search_preview_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/web_search_tool.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/responses/web_search_tool_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/all_models.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/chat_model.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/comparison_filter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/compound_filter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/custom_tool_input_format.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/error_object.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/function_definition.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/function_parameters.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/metadata.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/oauth_error_code.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/reasoning.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/reasoning_effort.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/response_format_json_object.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/response_format_json_schema.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/response_format_text.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/response_format_text_grammar.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/response_format_text_python.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/__pycache__/responses_model.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/all_models.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/chat_model.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/comparison_filter.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/compound_filter.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/custom_tool_input_format.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/error_object.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/function_definition.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/function_parameters.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/metadata.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/oauth_error_code.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/reasoning.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/reasoning_effort.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/response_format_json_object.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/response_format_json_schema.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/response_format_text.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/response_format_text_grammar.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/response_format_text_python.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared/responses_model.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/chat_model.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/comparison_filter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/compound_filter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/custom_tool_input_format.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/function_definition.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/function_parameters.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/metadata.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/oauth_error_code.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/reasoning.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/reasoning_effort.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/response_format_json_object.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/response_format_json_schema.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/response_format_text.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/__pycache__/responses_model.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/chat_model.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/comparison_filter.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/compound_filter.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/custom_tool_input_format.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/function_definition.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/function_parameters.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/metadata.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/oauth_error_code.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/reasoning.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/reasoning_effort.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/response_format_json_object.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/response_format_json_schema.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/response_format_text.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/shared_params/responses_model.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skill.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skill_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skill_list.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skill_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skill_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/__pycache__/deleted_skill_version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/__pycache__/skill_version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/__pycache__/skill_version_list.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/__pycache__/version_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/__pycache__/version_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/deleted_skill_version.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/skill_version.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/skill_version_list.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/version_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/version_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/versions/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/skills/versions/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/static_file_chunking_strategy.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/static_file_chunking_strategy_object.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/static_file_chunking_strategy_object_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/static_file_chunking_strategy_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/upload.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/upload_complete_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/upload_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/uploads/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/uploads/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/uploads/__pycache__/part_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/uploads/__pycache__/upload_part.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/uploads/part_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/uploads/upload_part.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_store.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_store_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_store_deleted.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_store_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_store_search_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_store_search_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_store_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/__pycache__/file_batch_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/__pycache__/file_batch_list_files_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/__pycache__/file_content_response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/__pycache__/file_create_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/__pycache__/file_list_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/__pycache__/file_update_params.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/__pycache__/vector_store_file.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/__pycache__/vector_store_file_batch.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/__pycache__/vector_store_file_deleted.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/file_batch_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/file_batch_list_files_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/file_content_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/file_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/file_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/file_update_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/vector_store_file.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/vector_store_file_batch.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/vector_stores/vector_store_file_deleted.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_create_character_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_create_character_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_create_error.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_create_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_delete_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_download_content_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_edit_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_extend_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_get_character_response.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_list_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_model.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_model_param.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_remix_params.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_seconds.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/video_size.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/batch_cancelled_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/batch_completed_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/batch_expired_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/batch_failed_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/eval_run_canceled_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/eval_run_failed_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/eval_run_succeeded_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/fine_tuning_job_cancelled_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/fine_tuning_job_failed_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/fine_tuning_job_succeeded_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/realtime_call_incoming_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/response_cancelled_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/response_completed_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/response_failed_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/response_incomplete_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/__pycache__/unwrap_webhook_event.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/batch_cancelled_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/batch_completed_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/batch_expired_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/batch_failed_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/eval_run_canceled_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/eval_run_failed_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/eval_run_succeeded_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/fine_tuning_job_cancelled_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/fine_tuning_job_failed_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/fine_tuning_job_succeeded_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/realtime_call_incoming_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/response_cancelled_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/response_completed_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/response_failed_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/response_incomplete_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/webhooks/unwrap_webhook_event.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/websocket_connection_options.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/types/websocket_reconnection.py delete mode 100644 .venv/lib/python3.12/site-packages/openai/version.py delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/AUTHORS.txt delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/LICENSE.txt delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.12/site-packages/pip-24.0.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/pip/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/__pip-runner__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/__pycache__/__pip-runner__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/build_env.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/cache.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/configuration.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/main.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/pyproject.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/build_env.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cache.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/main.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/parser.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/autocompletion.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/base_command.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/cmdoptions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/command_context.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/main.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/main_parser.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/parser.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/progress_bars.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/req_command.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/spinners.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/cli/status_codes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/cache.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/check.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/completion.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/debug.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/download.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/hash.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/help.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/index.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/inspect.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/install.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/list.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/search.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/show.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/cache.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/check.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/completion.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/configuration.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/debug.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/download.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/freeze.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/hash.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/help.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/index.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/inspect.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/install.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/list.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/search.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/show.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/uninstall.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/commands/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/configuration.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/base.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/base.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/installed.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/distributions/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/collector.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/sources.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/collector.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/package_finder.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/index/sources.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/base.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/_distutils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/_sysconfig.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/locations/base.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/main.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/_json.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/base.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/_json.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/base.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/_compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/_dists.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/_envs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_compat.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_dists.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/metadata/pkg_resources.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/candidate.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/format_control.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/index.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/installation_report.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/link.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/scheme.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/target_python.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/candidate.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/direct_url.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/format_control.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/index.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/installation_report.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/link.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/scheme.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/search_scope.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/selection_prefs.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/target_python.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/models/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/auth.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/cache.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/download.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/session.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/auth.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/cache.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/download.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/lazy_wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/session.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/network/xmlrpc.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/check.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/build_tracker.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/wheel_editable.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/build_tracker.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_editable.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_legacy.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel_editable.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel_legacy.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/check.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/freeze.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/install/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/install/editable_legacy.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/operations/prepare.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/pyproject.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/constructors.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_file.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_install.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_set.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/constructors.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/req_file.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/req_install.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/req_set.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/req/req_uninstall.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/__pycache__/base.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/base.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/resolver.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/base.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/provider.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/reporter.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/requirements.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/self_outdated_check.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/_jaraco_text.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/_log.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/egg_link.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/encoding.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/logging.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/misc.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/models.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/urls.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/_jaraco_text.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/_log.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/appdirs.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/compat.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/compatibility_tags.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/datetime.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/deprecation.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/direct_url_helpers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/egg_link.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/encoding.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/entrypoints.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/filesystem.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/filetypes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/glibc.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/logging.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/misc.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/models.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/packaging.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/setuptools_build.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/temp_dir.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/unpacking.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/urls.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/virtualenv.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/utils/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/git.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/bazaar.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/git.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/mercurial.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/subversion.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/vcs/versioncontrol.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_internal/wheel_builder.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/__pycache__/six.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/__pycache__/typing_extensions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/_cmd.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/adapter.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/cache.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/controller.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/filewrapper.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/heuristics.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/serialize.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/wrapper.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/cacert.pem delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/certifi/core.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/big5freq.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/big5prober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/chardistribution.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/charsetgroupprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/charsetprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachine.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/codingstatemachinedict.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/cp949prober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/enums.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/escprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/escsm.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/eucjpprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/euckrfreq.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/euckrprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/euctwfreq.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/euctwprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/gb2312freq.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/gb2312prober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/hebrewprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/jisfreq.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/johabfreq.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/johabprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/jpcntx.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langbulgarianmodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langgreekmodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langhebrewmodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langhungarianmodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langrussianmodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langthaimodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/langturkishmodel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/latin1prober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/macromanprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/mbcharsetprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/mbcsgroupprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/mbcssm.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/resultdict.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/sbcharsetprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/sbcsgroupprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/sjisprober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/universaldetector.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/utf1632prober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/utf8prober.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/big5freq.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/big5prober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/chardistribution.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/charsetgroupprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/charsetprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/__pycache__/chardetect.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/cli/chardetect.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/codingstatemachine.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/codingstatemachinedict.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/cp949prober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/enums.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/escprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/escsm.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/eucjpprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/euckrfreq.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/euckrprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/euctwfreq.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/euctwprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/gb2312freq.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/gb2312prober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/hebrewprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/jisfreq.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/johabfreq.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/johabprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/jpcntx.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langbulgarianmodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langgreekmodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langhebrewmodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langhungarianmodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langrussianmodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langthaimodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/langturkishmodel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/latin1prober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/macromanprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/mbcharsetprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/mbcsgroupprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/mbcssm.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/__pycache__/languages.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/languages.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/resultdict.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/sbcharsetprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/sbcsgroupprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/sjisprober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/universaldetector.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/utf1632prober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/utf8prober.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/chardet/version.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/ansi.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/ansitowin32.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/initialise.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/win32.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__/winterm.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/ansi.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/ansitowin32.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/initialise.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/ansi_test.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/ansitowin32_test.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/initialise_test.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/isatty_test.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__/winterm_test.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/ansi_test.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/ansitowin32_test.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/initialise_test.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/isatty_test.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/tests/winterm_test.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/win32.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/colorama/winterm.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/compat.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/database.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/index.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/locators.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/manifest.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/markers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/metadata.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/resources.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/scripts.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/util.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/version.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distlib/wheel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distro/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distro/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distro/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distro/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distro/__pycache__/distro.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/distro/distro.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/core.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/codec.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/compat.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/core.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/idnadata.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/intranges.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/package_data.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/idna/uts46data.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/ext.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/msgpack/fallback.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__about__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/__about__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/_manylinux.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/_musllinux.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/_structures.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/markers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/requirements.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/specifiers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/tags.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/packaging/version.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/android.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/api.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/macos.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/unix.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/version.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/platformdirs/windows.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/cmdline.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/console.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/formatter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/lexer.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/scanner.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/sphinxext.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/unistring.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/cmdline.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/console.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/filter.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatter.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/groff.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/html.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/img.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/irc.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/latex.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/other.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/pangomarkup.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/svg.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/_mapping.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/bbcode.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/groff.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/html.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/img.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/irc.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/latex.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/other.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/rtf.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/svg.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/terminal.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/terminal256.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexer.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__pycache__/python.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/_mapping.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/python.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/modeline.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/plugin.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/regexopt.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/scanner.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/sphinxext.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/style.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/token.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/unistring.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pygments/util.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/actions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/common.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/core.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/helpers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/results.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/testing.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/unicode.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__/util.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/actions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/common.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/core.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/diagram/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/diagram/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/helpers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/results.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/testing.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/unicode.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyparsing/util.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__pycache__/_compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__pycache__/_impl.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_compat.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/_in_process.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/api.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/help.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/models.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/__version__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/_internal_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/adapters.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/api.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/auth.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/certs.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/compat.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/cookies.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/help.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/hooks.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/models.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/packages.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/sessions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/status_codes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/structures.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/requests/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/providers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/reporters.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_cell_widths.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_emoji_replace.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_export_format.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_extension.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_fileno.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_inspect.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_log_render.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_loop.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_null_file.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_palettes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_pick.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_ratio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_spinners.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_stack.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_timer.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_win32_console.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_windows.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_windows_renderer.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_wrap.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/abc.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/align.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/ansi.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/bar.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/box.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/color.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/color_triplet.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/columns.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/console.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/constrain.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/containers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/control.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/default_styles.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/diagnose.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/emoji.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/errors.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/file_proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/filesize.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/highlighter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/json.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/jupyter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/layout.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/live.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/live_render.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/logging.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/markup.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/measure.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/padding.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/pager.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/palette.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/panel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/pretty.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/progress.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/progress_bar.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/prompt.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/protocol.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/region.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/repr.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/rule.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/scope.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/screen.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/segment.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/spinner.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/status.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/style.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/styled.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/syntax.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/table.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/terminal_theme.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/text.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/theme.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/themes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/traceback.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/tree.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_cell_widths.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_codes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_replace.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_export_format.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_extension.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_fileno.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_inspect.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_log_render.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_loop.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_null_file.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_palettes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_pick.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_ratio.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_spinners.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_stack.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_timer.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_win32_console.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_windows.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_windows_renderer.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/_wrap.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/abc.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/align.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/ansi.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/bar.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/box.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/cells.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/color.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/color_triplet.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/columns.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/console.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/constrain.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/containers.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/control.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/default_styles.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/diagnose.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/emoji.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/errors.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/file_proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/filesize.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/highlighter.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/json.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/jupyter.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/layout.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/live.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/live_render.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/logging.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/markup.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/measure.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/padding.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/pager.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/palette.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/panel.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/pretty.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/progress.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/progress_bar.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/prompt.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/protocol.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/region.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/repr.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/rule.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/scope.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/screen.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/segment.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/spinner.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/status.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/style.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/styled.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/syntax.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/table.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/terminal_theme.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/text.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/theme.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/themes.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/traceback.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/rich/tree.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/six.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/_asyncio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/after.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/before.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/before_sleep.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/nap.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/retry.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/stop.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/tornadoweb.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__/wait.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/_asyncio.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/after.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/before.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/before_sleep.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/nap.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/retry.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/stop.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/tornadoweb.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tenacity/wait.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/_types.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/_parser.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/_re.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/tomli/_types.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_api.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_macos.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_openssl.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_ssl_constants.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_windows.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/_api.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/_macos.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/_openssl.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/_ssl_constants.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/truststore/_windows.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/typing_extensions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/_collections.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/_version.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/connectionpool.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/appengine.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/securetransport.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/socks.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/fields.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/filepost.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/weakref_finalize.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/six.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/poolmanager.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/request.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/response.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/queue.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/request.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/response.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/retry.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssltransport.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/timeout.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/url.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/wait.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/vendor.txt delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/labels.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/mklabels.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/tests.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__/x_user_defined.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/labels.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/mklabels.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/tests.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/_vendor/webencodings/x_user_defined.py delete mode 100644 .venv/lib/python3.12/site-packages/pip/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/pydantic-2.13.4.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/pydantic-2.13.4.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/pydantic-2.13.4.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/pydantic-2.13.4.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/pydantic-2.13.4.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/_migration.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/alias_generators.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/aliases.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/annotated_handlers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/class_validators.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/color.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/dataclasses.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/datetime_parse.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/decorator.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/env_settings.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/error_wrappers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/errors.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/fields.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/functional_serializers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/functional_validators.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/generics.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/json.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/json_schema.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/main.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/mypy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/networks.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/parse.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/root_model.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/schema.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/tools.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/type_adapter.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/types.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/typing.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/validate_call_decorator.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/validators.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/__pycache__/warnings.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_core_metadata.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_core_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_dataclasses.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_decorators.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_decorators_v1.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_discriminated_union.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_docs_extraction.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_fields.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_forward_ref.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_generate_schema.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_generics.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_git.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_import_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_internal_dataclass.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_known_annotated_metadata.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_mock_val_ser.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_model_construction.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_namespace_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_repr.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_schema_gather.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_schema_generation_shared.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_serializers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_signature.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_typing_extra.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_validate_call.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/__pycache__/_validators.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_config.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_core_metadata.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_core_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_dataclasses.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_decorators.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_decorators_v1.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_discriminated_union.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_docs_extraction.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_fields.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_forward_ref.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_generate_schema.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_generics.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_git.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_import_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_internal_dataclass.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_known_annotated_metadata.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_mock_val_ser.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_model_construction.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_namespace_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_repr.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_schema_gather.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_schema_generation_shared.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_serializers.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_signature.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_typing_extra.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_validate_call.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_internal/_validators.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/_migration.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/alias_generators.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/aliases.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/annotated_handlers.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/class_validators.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/color.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/config.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/dataclasses.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/datetime_parse.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/decorator.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/__pycache__/class_validators.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/__pycache__/config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/__pycache__/copy_internals.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/__pycache__/decorator.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/__pycache__/json.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/__pycache__/parse.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/__pycache__/tools.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/class_validators.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/config.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/copy_internals.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/decorator.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/json.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/parse.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/deprecated/tools.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/env_settings.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/error_wrappers.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/errors.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/experimental/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/experimental/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/experimental/__pycache__/arguments_schema.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/experimental/__pycache__/missing_sentinel.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/experimental/__pycache__/pipeline.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/experimental/arguments_schema.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/experimental/missing_sentinel.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/experimental/pipeline.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/fields.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/functional_serializers.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/functional_validators.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/generics.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/json.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/json_schema.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/main.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/mypy.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/networks.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/parse.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/plugin/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/plugin/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/plugin/__pycache__/_loader.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/plugin/__pycache__/_schema_validator.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/plugin/_loader.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/plugin/_schema_validator.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/root_model.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/schema.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/tools.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/type_adapter.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/types.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/typing.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/_hypothesis_plugin.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/annotated_types.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/class_validators.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/color.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/config.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/dataclasses.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/datetime_parse.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/decorator.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/env_settings.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/error_wrappers.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/errors.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/fields.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/generics.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/json.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/main.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/mypy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/networks.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/parse.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/schema.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/tools.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/types.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/typing.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/validators.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/_hypothesis_plugin.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/annotated_types.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/class_validators.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/color.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/config.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/dataclasses.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/datetime_parse.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/decorator.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/env_settings.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/error_wrappers.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/errors.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/fields.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/generics.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/json.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/main.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/mypy.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/networks.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/parse.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/schema.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/tools.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/types.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/typing.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/validators.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/v1/version.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/validate_call_decorator.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/validators.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/version.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic/warnings.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic_core-2.46.4.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/pydantic_core-2.46.4.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/pydantic_core-2.46.4.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/pydantic_core-2.46.4.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/pydantic_core-2.46.4.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/pydantic_core-2.46.4.dist-info/sboms/pydantic-core.cyclonedx.json delete mode 100644 .venv/lib/python3.12/site-packages/pydantic_core/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic_core/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/pydantic_core/__pycache__/core_schema.cpython-312.pyc delete mode 100755 .venv/lib/python3.12/site-packages/pydantic_core/_pydantic_core.cpython-312-x86_64-linux-gnu.so delete mode 100644 .venv/lib/python3.12/site-packages/pydantic_core/_pydantic_core.pyi delete mode 100644 .venv/lib/python3.12/site-packages/pydantic_core/core_schema.py delete mode 100644 .venv/lib/python3.12/site-packages/pydantic_core/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/python_dotenv-1.2.2.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/python_dotenv-1.2.2.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/python_dotenv-1.2.2.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/python_dotenv-1.2.2.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.12/site-packages/python_dotenv-1.2.2.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/python_dotenv-1.2.2.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.12/site-packages/python_dotenv-1.2.2.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/python_dotenv-1.2.2.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.34.2.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.34.2.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.34.2.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.34.2.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.34.2.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.34.2.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.34.2.dist-info/licenses/NOTICE delete mode 100644 .venv/lib/python3.12/site-packages/requests-2.34.2.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/requests/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/__version__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/_internal_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/_types.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/adapters.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/api.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/auth.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/certs.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/compat.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/cookies.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/help.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/hooks.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/models.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/packages.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/sessions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/status_codes.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/structures.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/requests/__version__.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/_internal_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/_types.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/adapters.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/api.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/auth.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/certs.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/compat.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/cookies.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/help.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/hooks.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/models.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/packages.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/requests/sessions.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/status_codes.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/structures.py delete mode 100644 .venv/lib/python3.12/site-packages/requests/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/schedule-1.2.2.dist-info/AUTHORS.rst delete mode 100644 .venv/lib/python3.12/site-packages/schedule-1.2.2.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/schedule-1.2.2.dist-info/LICENSE.txt delete mode 100644 .venv/lib/python3.12/site-packages/schedule-1.2.2.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/schedule-1.2.2.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/schedule-1.2.2.dist-info/REQUESTED delete mode 100644 .venv/lib/python3.12/site-packages/schedule-1.2.2.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/schedule-1.2.2.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/schedule/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/schedule/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/schedule/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/LICENSE.APACHE2 delete mode 100644 .venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/LICENSE.MIT delete mode 100644 .venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/sniffio/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/sniffio/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/sniffio/__pycache__/_impl.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/sniffio/__pycache__/_version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/sniffio/_impl.py delete mode 100644 .venv/lib/python3.12/site-packages/sniffio/_tests/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/sniffio/_tests/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/sniffio/_tests/__pycache__/test_sniffio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/sniffio/_tests/test_sniffio.py delete mode 100644 .venv/lib/python3.12/site-packages/sniffio/_version.py delete mode 100644 .venv/lib/python3.12/site-packages/sniffio/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/tqdm-4.67.3.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/tqdm-4.67.3.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/tqdm-4.67.3.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/tqdm-4.67.3.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/tqdm-4.67.3.dist-info/entry_points.txt delete mode 100644 .venv/lib/python3.12/site-packages/tqdm-4.67.3.dist-info/licenses/LICENCE delete mode 100644 .venv/lib/python3.12/site-packages/tqdm-4.67.3.dist-info/top_level.txt delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__main__.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/__main__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/_main.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/_monitor.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/_tqdm.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/_tqdm_gui.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/_tqdm_notebook.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/_tqdm_pandas.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/_utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/asyncio.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/auto.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/autonotebook.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/cli.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/dask.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/gui.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/keras.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/notebook.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/rich.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/std.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/tk.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/utils.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/__pycache__/version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/_main.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/_monitor.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/_tqdm.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/_tqdm_gui.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/_tqdm_notebook.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/_tqdm_pandas.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/_utils.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/asyncio.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/auto.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/autonotebook.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/cli.py delete mode 100755 .venv/lib/python3.12/site-packages/tqdm/completion.sh delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/__pycache__/bells.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/__pycache__/concurrent.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/__pycache__/discord.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/__pycache__/itertools.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/__pycache__/logging.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/__pycache__/slack.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/__pycache__/telegram.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/__pycache__/utils_worker.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/bells.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/concurrent.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/discord.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/itertools.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/logging.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/slack.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/telegram.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/contrib/utils_worker.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/dask.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/gui.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/keras.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/notebook.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/rich.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/std.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/tk.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/tqdm.1 delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/utils.py delete mode 100644 .venv/lib/python3.12/site-packages/tqdm/version.py delete mode 100644 .venv/lib/python3.12/site-packages/typing_extensions-4.15.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/typing_extensions-4.15.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/typing_extensions-4.15.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/typing_extensions-4.15.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/typing_extensions-4.15.0.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/typing_extensions.py delete mode 100644 .venv/lib/python3.12/site-packages/typing_inspection-0.4.2.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/typing_inspection-0.4.2.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/typing_inspection-0.4.2.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/typing_inspection-0.4.2.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/typing_inspection-0.4.2.dist-info/licenses/LICENSE delete mode 100644 .venv/lib/python3.12/site-packages/typing_inspection/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/typing_inspection/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/typing_inspection/__pycache__/introspection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/typing_inspection/__pycache__/typing_objects.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/typing_inspection/introspection.py delete mode 100644 .venv/lib/python3.12/site-packages/typing_inspection/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/typing_inspection/typing_objects.py delete mode 100644 .venv/lib/python3.12/site-packages/typing_inspection/typing_objects.pyi delete mode 100644 .venv/lib/python3.12/site-packages/urllib3-2.7.0.dist-info/INSTALLER delete mode 100644 .venv/lib/python3.12/site-packages/urllib3-2.7.0.dist-info/METADATA delete mode 100644 .venv/lib/python3.12/site-packages/urllib3-2.7.0.dist-info/RECORD delete mode 100644 .venv/lib/python3.12/site-packages/urllib3-2.7.0.dist-info/WHEEL delete mode 100644 .venv/lib/python3.12/site-packages/urllib3-2.7.0.dist-info/licenses/LICENSE.txt delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/_base_connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/_collections.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/_request_methods.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/_version.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/connectionpool.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/exceptions.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/fields.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/filepost.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/poolmanager.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/__pycache__/response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/_base_connection.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/_collections.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/_request_methods.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/_version.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/connectionpool.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/__pycache__/socks.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/fetch.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/request.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/__pycache__/response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/emscripten_fetch_worker.js delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/fetch.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/request.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/emscripten/response.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/pyopenssl.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/contrib/socks.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/exceptions.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/fields.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/filepost.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/http2/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/http2/__pycache__/probe.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/http2/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/http2/probe.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/poolmanager.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/py.typed delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/response.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__init__.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/__init__.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/connection.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/proxy.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/request.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/response.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/retry.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssl_.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/ssltransport.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/timeout.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/url.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/util.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/__pycache__/wait.cpython-312.pyc delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/connection.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/proxy.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/request.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/response.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/retry.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/ssl_.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/ssl_match_hostname.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/ssltransport.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/timeout.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/url.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/util.py delete mode 100644 .venv/lib/python3.12/site-packages/urllib3/util/wait.py delete mode 120000 .venv/lib64 delete mode 100644 .venv/pyvenv.cfg delete mode 100644 __pycache__/ai_generator.cpython-312.pyc delete mode 100644 bot_activity.log delete mode 100644 used_data.txt diff --git a/.env b/.env deleted file mode 100644 index b886499..0000000 --- a/.env +++ /dev/null @@ -1,7 +0,0 @@ -OPENROUTER_API_KEY=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 -BOT_API_SECRET=uRTv8KYdK7nGcUDgYQRfg181WPEd5Lfl -BACKEND_URL=https://api-micro.oxinos.id/api -# BACKEND_URL=http://localhost:3001/api -TRANSACTION_TYPES=SERVICE,JOB -COUNT_PER_TYPE=2 -BOT_MODE=PROD \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cae9258 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# Virtual Environments +.venv/ +venv/ +ENV/ +env/ + +# Local Environment Credentials +.env + +# Bot Persistence & Activity Log Files +bot_activity.log +used_data.txt diff --git a/.venv/bin/Activate.ps1 b/.venv/bin/Activate.ps1 deleted file mode 100644 index b49d77b..0000000 --- a/.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/.venv/bin/activate b/.venv/bin/activate deleted file mode 100644 index ae08244..0000000 --- a/.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 /home/tothemax/Tothemax/Project/microproject/bot/.venv) -else - # use the path as-is - export VIRTUAL_ENV=/home/tothemax/Tothemax/Project/microproject/bot/.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/.venv/bin/activate.csh b/.venv/bin/activate.csh deleted file mode 100644 index 948cda3..0000000 --- a/.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 /home/tothemax/Tothemax/Project/microproject/bot/.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/.venv/bin/activate.fish b/.venv/bin/activate.fish deleted file mode 100644 index e34baa9..0000000 --- a/.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 /home/tothemax/Tothemax/Project/microproject/bot/.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/.venv/bin/distro b/.venv/bin/distro deleted file mode 100755 index 11551a6..0000000 --- a/.venv/bin/distro +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from distro.distro import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/dotenv b/.venv/bin/dotenv deleted file mode 100755 index 087ab83..0000000 --- a/.venv/bin/dotenv +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- 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/.venv/bin/faker b/.venv/bin/faker deleted file mode 100755 index c06439c..0000000 --- a/.venv/bin/faker +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from faker.cli import execute_from_command_line -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(execute_from_command_line()) diff --git a/.venv/bin/httpx b/.venv/bin/httpx deleted file mode 100755 index 2b18f3e..0000000 --- a/.venv/bin/httpx +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- 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/.venv/bin/normalizer b/.venv/bin/normalizer deleted file mode 100755 index 7e83c72..0000000 --- a/.venv/bin/normalizer +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from charset_normalizer.cli import cli_detect -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(cli_detect()) diff --git a/.venv/bin/pip b/.venv/bin/pip deleted file mode 100755 index a997d31..0000000 --- a/.venv/bin/pip +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/pip3 b/.venv/bin/pip3 deleted file mode 100755 index a997d31..0000000 --- a/.venv/bin/pip3 +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/pip3.12 b/.venv/bin/pip3.12 deleted file mode 100755 index a997d31..0000000 --- a/.venv/bin/pip3.12 +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from pip._internal.cli.main import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/bin/python b/.venv/bin/python deleted file mode 120000 index b8a0adb..0000000 --- a/.venv/bin/python +++ /dev/null @@ -1 +0,0 @@ -python3 \ No newline at end of file diff --git a/.venv/bin/python3 b/.venv/bin/python3 deleted file mode 120000 index ae65fda..0000000 --- a/.venv/bin/python3 +++ /dev/null @@ -1 +0,0 @@ -/usr/bin/python3 \ No newline at end of file diff --git a/.venv/bin/python3.12 b/.venv/bin/python3.12 deleted file mode 120000 index b8a0adb..0000000 --- a/.venv/bin/python3.12 +++ /dev/null @@ -1 +0,0 @@ -python3 \ No newline at end of file diff --git a/.venv/bin/tqdm b/.venv/bin/tqdm deleted file mode 100755 index af27a81..0000000 --- a/.venv/bin/tqdm +++ /dev/null @@ -1,8 +0,0 @@ -#!/home/tothemax/Tothemax/Project/microproject/bot/.venv/bin/python3 -# -*- coding: utf-8 -*- -import re -import sys -from tqdm.cli import main -if __name__ == '__main__': - sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) - sys.exit(main()) diff --git a/.venv/lib/python3.12/site-packages/81d243bd2c585b0f4821__mypyc.cpython-312-x86_64-linux-gnu.so b/.venv/lib/python3.12/site-packages/81d243bd2c585b0f4821__mypyc.cpython-312-x86_64-linux-gnu.so deleted file mode 100755 index 83590cfe20797a86c79e0516414f52fc91b1acf1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433312 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 AZ~y=R diff --git a/.venv/lib/python3.12/site-packages/__pycache__/typing_extensions.cpython-312.pyc b/.venv/lib/python3.12/site-packages/__pycache__/typing_extensions.cpython-312.pyc deleted file mode 100644 index 032e1d53da9425d6ae7f782ced9d1c5c0ed0083a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163768 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 Zva{FHBl|h#qS+!%TOhA3hXUQ*fOo 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 diff --git a/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/METADATA b/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/METADATA deleted file mode 100644 index 3ac05cf..0000000 --- a/.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/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/RECORD b/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/RECORD deleted file mode 100644 index a66e278..0000000 --- a/.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/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/WHEEL deleted file mode 100644 index 516596c..0000000 --- a/.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/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE b/.venv/lib/python3.12/site-packages/annotated_types-0.7.0.dist-info/licenses/LICENSE deleted file mode 100644 index d99323a..0000000 --- a/.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/.venv/lib/python3.12/site-packages/annotated_types/__init__.py b/.venv/lib/python3.12/site-packages/annotated_types/__init__.py deleted file mode 100644 index 74e0dee..0000000 --- a/.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/.venv/lib/python3.12/site-packages/annotated_types/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/annotated_types/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5eb8367f946d5a8e600ac00d49d1bbb5f3c8f252..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18639 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 diff --git a/.venv/lib/python3.12/site-packages/annotated_types/__pycache__/test_cases.cpython-312.pyc b/.venv/lib/python3.12/site-packages/annotated_types/__pycache__/test_cases.cpython-312.pyc deleted file mode 100644 index 6d11b9b68de4082124e334168deede101cc117b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13258 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 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/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/METADATA b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/METADATA deleted file mode 100644 index 2de1cd5..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/METADATA +++ /dev/null @@ -1,105 +0,0 @@ -Metadata-Version: 2.4 -Name: anyio -Version: 4.13.0 -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.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.10 -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; 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 -.. image:: https://tidelift.com/badges/package/pypi/anyio - :target: https://tidelift.com/subscription/pkg/pypi-anyio - :alt: Tidelift - -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/ - -Security contact information ----------------------------- - -To report a security vulnerability, please use the `Tidelift security contact`_. -Tidelift will coordinate the fix and disclosure. - -.. _Tidelift security contact: https://tidelift.com/security diff --git a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/RECORD b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/RECORD deleted file mode 100644 index e5f678c..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/RECORD +++ /dev/null @@ -1,92 +0,0 @@ -anyio-4.13.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -anyio-4.13.0.dist-info/METADATA,sha256=F0EYfiPlmTRwmJN2JktNxJg1GNnl0wHhzOWmz7pFvjM,4513 -anyio-4.13.0.dist-info/RECORD,, -anyio-4.13.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91 -anyio-4.13.0.dist-info/entry_points.txt,sha256=_d6Yu6uiaZmNe0CydowirE9Cmg7zUL2g08tQpoS3Qvc,39 -anyio-4.13.0.dist-info/licenses/LICENSE,sha256=U2GsncWPLvX9LpsJxoKXwX8ElQkJu8gCO9uC6s8iwrA,1081 -anyio-4.13.0.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=kuqlg2sBUsFdgY80xSDAw60Gx_4WNCl9iSL5XlY6lCU,99476 -anyio/_backends/_trio.py,sha256=l9U-TsKRxzmTQxSMvOhn0bNeFn_iRx3Ho30jvR5Bdu0,41366 -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=CKi1gFNiW2G4knWeBE7He7-rptQwgYjDUWfG8DSlvLs,25665 -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=tkmkPKEkEaiMD8C9WRZBlmgjOYRDRbZdte6e-unay2E,7916 -anyio/_core/_synchronization.py,sha256=9G3fvRsPNrrWJ_Z6gD_80wXq8I8qgAyhwM8PvHQnT2c,21061 -anyio/_core/_tasks.py,sha256=pVB7K6AAulzUM8YgXAeqNZG44nSyZ1bYJjH8GznC00I,5435 -anyio/_core/_tempfile.py,sha256=jE2w59FRF3yRo4vjkjfZF2YcqsBZvc66VWRwrJGDYGk,19624 -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=39lYnmtvoHaZw22sWBKOTA_zv7bamOnr8O49PqgDXdw,10629 -anyio/abc/_resources.py,sha256=DrYvkNN1hH6Uvv5_5uKySvDsnknGVDe8FCKfko0VtN8,783 -anyio/abc/_sockets.py,sha256=OmVDrfemVvF9c5K1tpBgQyV6fn5v0XyCExLAqBOGz9o,13124 -anyio/abc/_streams.py,sha256=HYvna1iZbWcwLROTO6IhLX79RTRLPShZMWe0sG1q54I,7481 -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=5AWM1iYTKkTzptvUhQDdLSh5GvbBW-vcs-SAUfIfA9A,12076 -anyio/lowlevel.py,sha256=AyKLVK3LaWSoK39LkCKxE4_GDMLKZBNqTrLUgk63y80,5158 -anyio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -anyio/pytest_plugin.py,sha256=t6h4KJstqIxfxwTZ1YO8vpUVuB99nfCLltn0NHfatHo,12775 -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=msnrotVKGMQomUu_Rj2qz9MvIdUp6d3JGr7MOEO8kV4,4428 -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=DQVkXUvsTEYKkBO8dlVU7j_5H8QOtLy4sGi1Wrjqevo,15303 -anyio/to_interpreter.py,sha256=_mLngrMy97TMR6VbW4Y6YzDUk9ZuPcQMPlkuyRh3C9k,7100 -anyio/to_process.py,sha256=J7gAA_YOuoHqnpDAf5fm1Qu6kOmTzdFbiDNvnV755vk,9798 -anyio/to_thread.py,sha256=f6h_k2d743GBv9FhAnhM_YpTvWgIrzBy9cOE0eJ1UJw,2693 diff --git a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/WHEEL deleted file mode 100644 index 14a883f..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (82.0.1) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/entry_points.txt b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/entry_points.txt deleted file mode 100644 index 44dd9bd..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/entry_points.txt +++ /dev/null @@ -1,2 +0,0 @@ -[pytest11] -anyio = anyio.pytest_plugin diff --git a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/licenses/LICENSE b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/licenses/LICENSE deleted file mode 100644 index 104eebf..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.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/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/top_level.txt b/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/top_level.txt deleted file mode 100644 index c77c069..0000000 --- a/.venv/lib/python3.12/site-packages/anyio-4.13.0.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -anyio diff --git a/.venv/lib/python3.12/site-packages/anyio/__init__.py b/.venv/lib/python3.12/site-packages/anyio/__init__.py deleted file mode 100644 index d23c5a5..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 78bedc07800baad0aaf468c5feeaeb9219b0a5cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4647 zcmZ{n%THX_9mmhWz`*c+n3rRF;uproj34-IW8N4W17^UGu?B2`frj#O33qMIsRbkRQ`+p3GYwW6lejuffwB0IN9Hd*!i`^{W1u8Z)O&-wj+ z=W);DcaHzi(2x}PiTy75sHaPae^4R%sV+h6n=mfKGhqoU<_I??V=-Y>Sd~tNTPZ7< zxIE7MHn>;zG9Lz?kSCarfcs=0^HK0gd6M}U_>?@wd>q^_`h&zFN8}5)CV!jBzDQ_}g0uRe!=F8v_ zIl_DeJSs<-uY$+q81psoxEyD`4xW$`%s0T3a*}xnJSC@?Z-Q^hTg=1Gw0m3LW*!0G zk$0F!!83A(c?^74-en#K&&pZm3GkepW1e*8-FxyL^AvbNE->E$XJm$X8oVeMnQw!a zq_6XpV}ULZErT$XY*PsFEm2iRS0WdSD|4#juw~Xe4t=F4r z8*}_XS+AR$F)5zP(j-pe^OS{VTgH`RyEgim^}|U&?~$=?!n5YqGND$ci(=!nm-XG8 zgOMyKlLDG&{fWnz#~I(xMPqMX$a|BvX9pX~ifrABTRCNogrT-q^PxicW`3taa@o&2 z)~MrWH_>D*ujV9%g+hGZ3^&N==agrxm5jAdw3&+vEoPR!k!Con*7Apav*v!96Jb=#|z$4Ht%UP>XU}>hNjx1 zI^=$(tvc*n)3UVft@#)l6+P2cXPGL`_w#AXm9V4?ivbdBnrl)4-7AD3KT{p(LB$LI*qZloCXa<|cy7u$5 z>3X7!rPkKy=ss44g=KMUkE$fsaE=Xgt&}1fTpw=V+cC7xVv(&y<>q{C>aFtOYR}|+ zAE*Cyd+Uy2+{WPvu}^_5RoQHYKQF3OBu}X=8b5_URtb%0t*tSY%X0Ip12eB!nBxIOT z7AhnS!}YB^lDkn5+tsGGW%~o!@@>X<5xsnIhsD0x20Rn*zm5IsIY3@hyF4i-H$(x_0?|g z&*XDhy)b1dTm@O=8!Kfxwi&2kpwRL9by2!4bOqX*-CkMTP^sQGhxC>jN!h_G4fm(= z!5eCn@1Wk4?O{PpYv5~YAIp{uLR^~;Za8N9B&^liJ930W*l1n$E)k5RWWx;nyp~f&MQyE5IMIla2>W2smXauR$_bR>NyDA;} z;Ra6O)AV8l*b|gs(ypD=KJo|`R{bzNfNSe<+Ob#Dxvg-+_s$QTJ(mt}|D8sH*~Akf zNb`P38wT#O&@cvaTZKBqzz(I}4MSV#I!j}ihI}BtO4L1X>iu(~_ir_wU)41Ktl_5( zU)Hbvz5d{ron0>zqPF8(5wA^tn-tBx&ufnVGuidYrC(kCwEy|Q@aOHH*F5i@ev!QW zJbwEdG$v;I;(8T-3zbNWg=$>=dF^cr+-%EP`*+RtlwgkqL7?aD$2?j)@S z=w_m~kz0Bj1-c4OO*^sBT#mrnd7*<_Tqnp^LqgkA)4tSoB=sZ>B#n?lOH}h|R^|9T zrklt~tEXE?T1nbS+DZ12bdYqC;6Ir{ca!vx?1vN@%5Bm`Z~OW!avUHzNOFimq5Z!>Est93?qMa-5`>1m{}lK9Z9pr%3uqPLm9fq)E<@ zoFzF&avrkVJ>O%29wcL1G^YG&`36&gzCd*@k~>-)dc1CE-?O**S*tHm#AT8zBv(nU zkz6OaK{7;glVq4=1X8Fk_r^(5kCJ_iWSnGzWRheGQfP`|k(Oz$^(}JIKGwHM?vTuo z+$EVMnS<s|y-Y&K?$<&qVmf}`*IX~9oFV-q6e)WL^U#--u~@7q z4*yH66vb>&TrG-GhWVm6Q55|}alI%m7sYf@++&?!9V-gJm7=&=6kz-=6~(2ZI9n9G ztbp;NxW(0nSTAxr_rI&Ch*f-7En-vX7G2%vC^+$puFyX!;THhcjiR_#6q7rZP{1J1 z!BiAyxC=CaP#DqOU{MSg#R3Ol%%!11QR@N^FI^P)MMZ?6;!IR=_}|r{x&7nGpWk{m z_wn3|_G2%aj{iqg#EyS3_18q>hfhAK|8(_5qVF$>!9OJif4lNUV(7~Q$39GaQPcCX U3Q;eUqN@Je>iXE77|-~B0m;R0#Q*>R diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/from_thread.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/from_thread.cpython-312.pyc deleted file mode 100644 index c6147774553e98b1d31174fd438759e08bceda8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25890 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 L5`7}S#p?e6BpZyU diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/functools.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/functools.cpython-312.pyc deleted file mode 100644 index bb3c5cb02b1d5c33f3fc68f3e1d631b25d3713ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16613 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 diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/pytest_plugin.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/pytest_plugin.cpython-312.pyc deleted file mode 100644 index 6de8eea6973708c44df6400f5db5f753852f30cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16842 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�#OMmAO5dn?wPx=05?l8`*Uq{Suzm$oD`(kEdBYN0v!W|tcO@Mg zRycfaf(G!pb02-))0-dY;T`J>6mqq0E8DdK95USqB6*;zWt}M?NUa=(awl}6`qk>$ z^YP}Li_N>2*gX$)EL)CHds+Cffh`AaturCa10Bx_SOCL?6zF|<^B)!TvLF{hv@(&^ rfPaY<5OpVFs71`3h*@i2EAB`acVsopvh}HkA(bcpD?nFI>HPl#a&sYa diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_interpreter.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_interpreter.cpython-312.pyc deleted file mode 100644 index f1e860cd98fc1593b2bfc3deb8c9a4dbb06b0d33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10370 zcmcIKZEzdMb$d7*Z~#F9{Ddfy;_*|2M1z*~L5q@=&?G49i*h8=t|4m>2zQh~;wyUx zNo2uaZwG#Gr-|oJB`}Xa7Z{PBts;iv@68AUG>7TR^@~>DilVB9Mjg*Cu>tvG1 zMCM{7&ILJ+$d;f5>U@k3^6YC3TG>|!3h=eYY;k+g4*iHM#KgEG=wM}A%o(o=R>fUG zSG+n{4KTYb#%kj3pgZmfdRW~NtBuzM>sZ+ttB*GX8(6t2));RJHgQA|ru`<7rLXLo zd6^LEfElY{mTkdp@#bJNM-n1~Y%f7RVtfr7-v+(iv6gsiur=NmY~zTd?4P___I$w_ z++iU{iCp^yBG=sp-e3y0C(eHa-g<_26!7vfDJZdTN3cU~2zJViN|)Sp7{<#a*v)EQ zRvK=87qV&lva;w~Sn};f-ppQ|xqk>8&gSKym z%2IF_!_~oN?+oq+eARN-ZLWZ;AL`rW?qdB3s5dEgrM($C;7{%;w)t6G1B3P!p#yTi zyc2l$q|D2G-{H!+>LBtHvhNGF;2zm8?}9#0&GNp12ROBl)2qUXL{bZD(PTpPS#*)6 z6Crgr5z)IMX-buZ7Lt{za5|=iq6tl*DXKsoibdm5_>KbtK~_GKR-hn`gk!Prg_z>w zb$&Q8s|#b%L^!6~CuUR13t{>IR|`|POvG9=uILUe8PYCMB`gC9@3S;Hqaa+Y)v z4STZGO=!(LpW$W8lqF($2}Ew5|15vD@V&xaAy@gA$Q91VkB?0N_0`XYRV8pWqNI=x zpH;U`rGf3%FukbiHemB*;2p1Aji^Y71nJStz@=nd8PJm2B_$rdIxt}to~OxaC87<) zqY;`+6)G2!+JOJElDIq&i(VK=&1#pDiM{?kPYtNBbx$By!WR{FAe@+uCIM&p{`yn1 zx~l*PMPOTLJJ8SyKlN$I7D(PEI6B^LY`(E?>D=O2UL+0MZ|q-sX2m6a_|Q%~ZSND# z(Y99Kbi=xI@GV#Cf8=?nKT;cD@HL@|e9h6xe~WM9uXCOJp9!6O1mML~IAGkyCjoSw zC?v?i@wI@0xEvJGJNS-a1v+e3ytQQTZzn2IIC zn(l~&RV|cO6**EkglvB7!uGtA&8-#NZnI_r5)dlFX2~sX93;yNZAEsm^KpyQt*R26 zQn9Z@cVGuG1PqO8q0pSCK#<>r_@G^NLAF5FrQYv}i=%J3+BTq0wk8hu;5v{pja@3z zbb)>4V3T-`%o5rIEkJZHd~_iaOR5Up3FUH9?Xse3G&wuxHYqIt`mrN!;sRN7d2+6{ ztg9{O>dLyh-g5QOUCBE|-q2RNC$gT7C4TAU_eA1pU2AGya@?

Zv19;)^b@!7WI)**`-!=_b@pq~O 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 U0)Zx5&4vR?4=Ly7jELxe0Wc6j7XSbN diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_process.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_process.cpython-312.pyc deleted file mode 100644 index 83c1c24124d2fd4cd9505822f8c0cc42993a33d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12042 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 LR5|||Ow<1W&i(UK diff --git a/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_thread.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/__pycache__/to_thread.cpython-312.pyc deleted file mode 100644 index 0a39d7ecf433d486c92ea938da79bc3e818e75ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3222 zcmcgu&2JmW6`$oUKg6XzNU3(5IPx?$T(fb>BrR%ysqGq00t9uPpixqUuCZM1j>NT= zGsMiUWV$M#Htxrvhn(sj+CQLha?7PX_1=qIAFM7aG(}q^x-pQ87C!a8*(D{*K6feY zyqSIT=FR*4-kbT;^mLiPV|-G+@l%lgft~SVrGl~dIS6-%PkbXJeWPs{#Lu;J&^JS~ zZ9;2>RzKg)!#MHtVWD4a7qwgnOZ}<#6v#!t6qfsT+t%__Sm{rUEjnG-TV>pb z!P(31!1aP?cqKJf&+VF^zH8&0TvEwwEyaV7C53l6D6b}^CFgrAT64ps^tMo!Rl?w3xb0EatZ4kag3;=#3_v3|)+>eZC ztOxK%Iryv}-~7nBi!oOXwa3R@vTdjdB-M$V?3wG{hEYvP$-yk@uMF&E`CIojwx*sjv5JvZ@ z(++c~MLV4(88e7iBxn}KgWEk5GItH*6hx>2Th?wMj(}T_0p)!P;E8o!r$LHGPbg5v zAVcsEM6uI(!wproR=VYhu`#7_I~sA^!oH!HL&UXTV!)(MXWDZy^cpen0Z4*VQkqQ6 zrgS+Nx$#24h!*wPKr+vbkQ`wE_QWy-W@8^Kt|z$s|-ND2uQGC;a7AR6dtx;cfQaDZsy)EQV`Kox^+ zrPR$z+{8G*0>=G%>WZeNqF2T1kdDz6AqKBYDP#+`!39p5A2LAiimELnmkslApl4e0%SI6eR_iD!0l zZ0w5@a3>{i=4CyfSXdiVWAkH+iG{hZutH-J(nrh9p6Ih?1cYOK_hxfxEW9nn4dzA7 ze&9(l$U4BwW&@yGYlcC$IT%Jg!N1;k`IRPA681Gbh};#XnmS@&a~!e3P-2bOuVWyn z_u=(9`R^tfwMc1xtGKv*{3~0fV}C7GMmb~pyT(5&i`z$^`S(7o_bKd zaIbn{yHxpwzjgZDACHbqQoFcEa<#&LNUl;Ckz5{MmBJ%61J-|X?h-M6Z(OkckO#qo zk;#KGhhxUrdj*6$WdBH;99Qu5@H77Q4#4GFa0+TV!jX%G8cWBMIf$gpa)ow>z!ZH` zcswb2-0#AY%uQIl_Qbwos{7|loF5;AB2c8lCmt@rI0auZR66y3ivWGE~ zc$d=y`t=(0)Dd`Xl7|bV^89^!@qvB*o_+qleR0dWC{MtrdPP19&8^dyv!m+Twe(VR zZG4lte*G*R-*2wV=TLd>u!<&nVs(WGCDQ$tjUwHE%EXz@rdvl2U97T?Ng<7{oI_`F z^2^Xjec3valpSX|28@~GNMuD)bR6)~aS~GvRWj>|FofvivD0w7p2VwDQiz5FOi{e` zBqhA>K~JTrJm+|DRyQ170I~k1iEQFzTr;V_A)&w?WHg+`NM$*T_QaeBEB%H8i+@wZ}o*AhwOqp3uAbBQ@@4R$TSRNhrBSdOgpz(+$$5q-XW)U z$g?}-*uO|~htN;W!UJ>uo;m;F`k&3kzgaJCSucKOee>^j?ZXzJxLNv(ee~Dm`}WDr z(x^gCoZ3Eda{KgGzp&33h3)c7BNN(B?dL{$Xh#L|%<)kXr4p$5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%Gb}x&rQ`Y$uG%B z%}uP(4}mcPit@8klS}k-Gn0$*3!t2&{1Sb=vedjX{hZ7s{esGpjQl)fJwqe?;>?m% z-GapA?8NlcV*SLt%FKNI_#_}dH7})DKR!M)FS8^*Uaz3?7l%!5eoARhs$CH)(0)cB QE(S3^GBYwV7BK@^07No4>i_@% diff --git a/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-312.pyc deleted file mode 100644 index 534ccee46b314669e9d636484baa1be1d82648a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138987 zcmdSCdstg%dM~<`?m_|yBtYE7#ee{V@%@7BV6YwEa1xW75)Z*hwy`C|EQ#09zTbQM-tX_Tv$Hrn{P(kty>^c0{*gZ9$0RxUdB2t8 zE_07_0WQFYxG?YMd2;JQI=_zn>iv55Yw#P{ugPy>zh=Lg{aXAM_G|T9*>9FVi~ZXC zHuh`x+wrRp>BHIn>~M}hC+zS$!cM<4oa@gG=lS!(F29SFX$ZN)`Tl(7Hiinqh5o{@ z$M0d^rchD1*k2qj@t1^4{iWeDe_6QPUmmXTSA@NOZ@AK5$>NzqhH#a?in%SJ>Tr#} zCcMnQjD1@}rf{vlHeBbgW8Yb!`moRM3pe;1*tadz7;f@6g_rx6vu}H-Io#rJ39s<4 z2)FuM!z=wOnSXX@Rd}_3HFM{LEa5f&HO%b@tqrg9uVZd!XnlBte*<&phOFU@{*B>H z{!Q#VFJue1`P-P=71|u$;@=Y9>fg$~-JyrV?f&-gHvhJ8hrc7->F*40_iqpH@b6&Z z`5}9Fr++8h1%blQ!{J^2UE$sS-Qhj{J>k9nz2SZSeJsoq>I(1o?+-uXe;l-h+!+yV?xl2ONgrD_4%iN`*gW)gv zdziZn?&tiy%v}!mA%7opSHKD^G3pH&A!{S&kDNh+mKS_k#Zgskli`$I2E#J|l{ay&X99VJA;2+0tD}K-GxZw7{%J1;$@R!;5 zs=(^&Ym_vvz;86LR*7=~-<^SV%JwhD#3w78{ zbr{eEbpAJ3P4=KBds$7^FHNJ=gD(ekBW8{Z{s-yzu&xLR{BN;b_92(9V4D(u zlJ)$4rRT2%9zogrrS@Y?9#ukqKkyhr9!-b%0tc>l%V8|%$C2|BtbRN0Uq5B!-bT4g z^LP?@JjL?Z{VU}0zi8(1H1hDXJi2~`Jl?T#>c7CNfoCvxt_Cg!p2hDq)~_Z>@V#FSV24HmN>F^~O{nBQYDk0WM?l^=LOu7AYhh7osw#XbCh zxPQ#zMi6%}-Lj(^vE`P1pT+(%Vhicm#~u*-PuNV4%5&ELr-2ye^N=#rpI1VDz(P() zAsE$@C}B9*tE`#lSh*wceIeMV_#R@uqwpOI9#MP`Gv8D2eKFXh_d{tkS<%KG(rjke1p`xh+kIO3iU9#?YsVep6k zzZ};2F8zd(`uLQscVHkA>y7nC2BKX)b1Jv}P&6j=_Qke89~_A7jYI}hIUT(NeZf#D z7}zcd5g}#m4TXAQz0u>*l&wz)_QrzjD`oE+5(FfYzMMybu^wS)V4#2CNKc6JF-Akd z;2_E@Apf4Bfmna2r!Nv73+K8mMx!a?;r?JKK#>P~g;;-YC}lh$^bSUShLpWy|6}`m9(%m2YggA!bS`}z zc>KU4+q*iqccyaDZGCceqZpWA%GMuMe5kU!_HXNrQnf9Q^u~_v?LSU#NzPX152hOrp^pz2W}Qa4PFSr0;kzwx@p}K-qL3#n@35Egg|SuzPqgn9A

)F*m{l%cOT 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 diff --git a/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_trio.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_backends/__pycache__/_trio.cpython-312.pyc deleted file mode 100644 index ff7eab539d1f90514171a42c8227fbe9599744cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71667 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 AJ^%m! diff --git a/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py b/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py deleted file mode 100644 index 9f1ddc2..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_backends/_asyncio.py +++ /dev/null @@ -1,2996 +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, - ParamSpec, - 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, -) -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, 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 - if isinstance(exc_val, BaseExceptionGroup): - cancelleds_caught, remaining = exc_val.split( - lambda exc: ( - isinstance(exc, CancelledError) - and is_anyio_cancellation(exc) - ) - ) - - if cancelleds_caught is None: - return False - - self._cancelled_caught = True - - if remaining is None: - return True - - context = remaining.__context__ - try: - # Preserve __cause__ and __suppress_context__ by avoiding `raise - # ... from ...` - raise remaining - finally: - # Preserve __context__ - remaining.__context__ = context - del context - else: - if isinstance(exc_val, CancelledError) and is_anyio_cancellation( - exc_val - ): - self._cancelled_caught = True - return True - else: - return False - 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[T_Retval | None, BaseException | None] - - -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 not 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 = 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 BrokenResourceError from self._protocol.exception - 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 BrokenResourceError from 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/.venv/lib/python3.12/site-packages/anyio/_backends/_trio.py b/.venv/lib/python3.12/site-packages/anyio/_backends/_trio.py deleted file mode 100644 index b85a10a..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_backends/_trio.py +++ /dev/null @@ -1,1343 +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, - ParamSpec, - 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, 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/.venv/lib/python3.12/site-packages/anyio/_core/__init__.py b/.venv/lib/python3.12/site-packages/anyio/_core/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f012fef892648fa10cef475064237cfff7c53bb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 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 diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_contextmanagers.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_contextmanagers.cpython-312.pyc deleted file mode 100644 index d905731c0cfb4bfdcc1315e3fa5d0c08eb7e66aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9010 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 Y+t6W-3w=Yd{8s0Wz|T#BB@^Jk0H}T#;Q#;t diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_eventloop.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_eventloop.cpython-312.pyc deleted file mode 100644 index 9ccd8549c3638d3f31b46ab4cec746e2778b9f30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8203 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 O!Q+qeKYxUS^1lF0_6!dI diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_exceptions.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_exceptions.cpython-312.pyc deleted file mode 100644 index c04be7b3ee6f153a805ef637710cf414bfe3358f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7446 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 diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_resources.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_resources.cpython-312.pyc deleted file mode 100644 index 99fcace9254ef913aebc8a5321204300530da02a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 957 zcmY*XO=#3W6rM>o*)-cMsI)iP;LjlkH&zj$h_X~qLJ{@Sy@WKGcC$?~%S_VkY6Y<( z6f3=1Pu`_^@CUEbvlqdGB~TDVu(v`B7V+Sl?52won0)WO@4ffE$9y&n9l^mL^!9s< z&<|l0N9qH-e;&XF@{x~26yYYu$d`OMlp?t)11|YWSc;UU0$B6a$EBv)D_bMGBHhAS z#f@W{xJf``zAI{i&uH*o?A<1urpzO|&^c#Lxv@vWJ09&2Pxy+X0$2f+`!509L>Sa0 zNAb-8>k@i^mvLJzl7|0+fzdK*D?@*Qiuejlcpvhg%Nz0&MS(s(7T;#E3Dm=v(VB4@ zO(2fD5=Jw?!QfqzXHXZvk-ONE?!DGcI8!0z#B^iR6{EHojcLkFHW=9qAYgj=ydm*T zE@rOldFFK*#Pep-3b^TsA{;OoW_E+5MbpIWx=uoPoluY!xl8ul0^DM>O}xa8 z0*}$oz?h|pU0)>eq8$dab_ayg_+owHg3W`3oa?yWf;&&R4I>29c09_6?G%l9z0=E% z^#wU|6rRdl8iqYq1tCH-zX8`TbodY*97p=t)02BhQp^`;w>4vZbaiyCx?LS#r>pd9 zwf0S`ebH*a6^Q4g?^^9}X#M3DRC-it82H(l2A1FAYwEiafR7{K`h)>(VWpv$x70E? zrmYgIKmrqwDN`9qQWj^WX&Mu&oav4;mx6~l4im32ligWwKy?zAFYtWh`4q3vJ}?k7 p;QFIoiKw53`%AZjFuOIi`yhTV;ReWf|bD}2%Ow1T4j6EuH|;oDZ7(yEq97u*`M@D?q|+)AwsZTD`Pl}Zn-KyEeC!J9W{#v)Jc zXIfeD(0<7kp9^=>AIrJog?SNpORvp^O}KlW%y{}hs4R6pHiP10eTwzsLlT~`7PIbM zJ-%<&lP2b7TQA?RZ`qiD@~3ne0*$fdXaPkkCnGNVHc=Iz!lWd<*1cj7)U)KP&VS6v}>~b#)6-;|Sz2C=F&&RT{0x zE@Kf+84A({X#f{WIXt9wo}DOyQ;tr1G=jTQW%|@WrU?O6#m3u~ zGetZvMX>^-L0ac(CJY(Wz?WKPTTe(jb!r>{(jp)!YGd}Rf?MLL1YT8zOnuokiMj;k ztA=c;uXz)cWFng2lXnzkCnbzrt)N1&lrA3)n>klmA<(5`i-%Z%IU!e@NUjlmV1$LG zE9xuiJ`+>m zQpZWEQN#@d6ICm8zms}$f_a;!$L#!lcIA^_2k-ncc=xx#!Ow$(AMQRMTz}rVenHpl zXxPC4t=OY!-Sfr%b@cyTfA7-Y;ojIc+Wq^(!8%Nm;{`Q}ND_3dzJ4{;MM3eoA4|k% zDR$gx*mMm=huzwvXUn?}le&;y0&0%yP`+chN1Awrrk6XPmO5J$;s#!&tz*~>X*zEQ nL2$<2`-=_F*!~%Ni-hyu>%ooRU%7hTruC2R!QWk4Yg7LM??a@$ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_sockets.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_sockets.cpython-312.pyc deleted file mode 100644 index b4db288d86c754f3a1df5cf22dd2cf38b55e99ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40656 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 diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_subprocesses.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_subprocesses.cpython-312.pyc deleted file mode 100644 index e5ea94145d136e774dd305504f08f5920ebe1913..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9504 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%0AjG`wMCtyaBdA2W?n;T8Jq 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 U;wRn34e#Y_VG(DTAz*m^|Ch8o4gdfE diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_tasks.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_tasks.cpython-312.pyc deleted file mode 100644 index 2165a07f60576a6cbf9ca06a8e860cf8d7a92a76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7708 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 LJ6c-ZBkuIyx1);{ diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_tempfile.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/_core/__pycache__/_tempfile.cpython-312.pyc deleted file mode 100644 index 93495e394ce7aa1a4f39a7a47b2fe92393d2a868..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28064 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 aw3DLn#Di=>fJO 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/.venv/lib/python3.12/site-packages/anyio/_core/_contextmanagers.py b/.venv/lib/python3.12/site-packages/anyio/_core/_contextmanagers.py deleted file mode 100644 index 302f32b..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/_core/_eventloop.py b/.venv/lib/python3.12/site-packages/anyio/_core/_eventloop.py deleted file mode 100644 index 59a69cc..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/_core/_exceptions.py b/.venv/lib/python3.12/site-packages/anyio/_core/_exceptions.py deleted file mode 100644 index 3776bed..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/_core/_fileio.py b/.venv/lib/python3.12/site-packages/anyio/_core/_fileio.py deleted file mode 100644 index 3bb8c84..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_fileio.py +++ /dev/null @@ -1,799 +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__() - - if sys.version_info >= (3, 15): - - def __vfspath__(self) -> str: - return self._path.__vfspath__() - - 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 - ) - - if sys.version_info < (3, 15): - - 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: - return await to_thread.run_sync( - self._path.write_text, data, encoding, errors, newline - ) - - -PathLike.register(Path) diff --git a/.venv/lib/python3.12/site-packages/anyio/_core/_resources.py b/.venv/lib/python3.12/site-packages/anyio/_core/_resources.py deleted file mode 100644 index b9a5344..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/_core/_signals.py b/.venv/lib/python3.12/site-packages/anyio/_core/_signals.py deleted file mode 100644 index e24c79e..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/_core/_sockets.py b/.venv/lib/python3.12/site-packages/anyio/_core/_sockets.py deleted file mode 100644 index 6c99b3a..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/_core/_streams.py b/.venv/lib/python3.12/site-packages/anyio/_core/_streams.py deleted file mode 100644 index 2b9c7df..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/_core/_subprocesses.py b/.venv/lib/python3.12/site-packages/anyio/_core/_subprocesses.py deleted file mode 100644 index 9796f8b..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_subprocesses.py +++ /dev/null @@ -1,196 +0,0 @@ -from __future__ import annotations - -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, TypeAlias, cast - -from ..abc import Process -from ._eventloop import get_async_backend -from ._tasks import create_task_group - -StrOrBytesPath: TypeAlias = 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/.venv/lib/python3.12/site-packages/anyio/_core/_synchronization.py b/.venv/lib/python3.12/site-packages/anyio/_core/_synchronization.py deleted file mode 100644 index 9c6f9a0..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_synchronization.py +++ /dev/null @@ -1,757 +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) - elif self._waiters: - # This task was notified by could not act on it, so pass - # it on to the next task - self._waiters.popleft().set() - - 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/.venv/lib/python3.12/site-packages/anyio/_core/_tasks.py b/.venv/lib/python3.12/site-packages/anyio/_core/_tasks.py deleted file mode 100644 index 0688bfe..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/_core/_tempfile.py b/.venv/lib/python3.12/site-packages/anyio/_core/_tempfile.py deleted file mode 100644 index 75a09f7..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/_core/_tempfile.py +++ /dev/null @@ -1,613 +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 - :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, - "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/.venv/lib/python3.12/site-packages/anyio/_core/_testing.py b/.venv/lib/python3.12/site-packages/anyio/_core/_testing.py deleted file mode 100644 index 369e65c..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/_core/_typedattr.py b/.venv/lib/python3.12/site-packages/anyio/_core/_typedattr.py deleted file mode 100644 index f358a44..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/abc/__init__.py b/.venv/lib/python3.12/site-packages/anyio/abc/__init__.py deleted file mode 100644 index d560ce3..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7ad3811ece4b929ce5fcee1ccc11e22fc8e469e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2384 zcmZvd%WqRh6vpQ!@iTrUah#{~c8K%vO+t8-AWA|Cq(TspP*u}bSJ%Ene8YWMbH|~k zn=ZOw!3K3fm)%xuy5PTPHx)u{ujEzL1v@CJDzWN0V>^ifOZoDf@64GQ&zu?m5|2j- ze3WO=gEQTP{DqCyC)fbx&37GyJRt@#6pPpjRTN@$7@by!-AOwocUfI_fCeN7te_pD zA<04DFbzu%0Y_*=au_&Dqmm=Q-LzYB6gWm>lDmQ9G%h&?oS+HGao{9PN=^W$Xi9Pt zxQF&gP67AQUdcUHpPi;@$-Th+v|n-`aE4|ir-29PfaHGQK{_Zo13W~BBo6=&(_zVj zz$0`-@(}PS9hE!`oTXXGBfw*HO!6r3I31Uq1)iW2lE;82>7?Xw;3+yKc>;KvPD`Ey zo}n|6r+{-bCwUrpmd;9^u};}@bWU>4%G>jFUh*vP0$q@N%38FS=o0Xpk+%xAN>zKA zF54?~#a^YW_Gx-r#^$Xx`wTrJdBHkspQGm#(m~jH`1|N-vo;Q@ts*)8--Zy0K_1J?(5n4!$|gYLQWB<$21ZEW5rt5ewaX#>38(z&RZR(|a%rT%Hm+jlkbE~|>!05f=Iu0udX587@*>$0x0C(ir zy}AAQmM-*tuG>f9`1a0*VQ}Vod$kIVlGv8HXf~Z>qw|Ik+$>gw?9{Msn4Vw` zIJ<%~-G+7?*06(X70pp1Cl{5ub7C!R-Fi<(j#imM_njHi8%}MrCfIFOV&)+`nz^Ux z@4_}6nemp{THj!s(cB}wXyLaTgV-I1Gs{HdLvxJ0*Q0H=f%n6$d3!!ITmsFu5u(y* zCG{V-+E*GraRPm}iU)A|?`}t`VYiJQYkIBm2Tr!zXUHCJ#D~Wpez!y0OquthtvN$G z+$}-b!G1^fbno6Z?p7<%h+<GxlK3IGK6BbdHPzoq2h#zYvG{#*7v6nSlwo0-quY2qt1!e*IdZ=1vQLWTO*>z4AR#sIHifjog?w-ES zJXKbP3YDR1n(3HA(+ZW^+wjFk^<3iHFf%^b-mf69Iu%8!lc~SSTAiG&lS_57Q*ZKl z>8#4;Vx3%-(F=95Stl2z`DvYeCi`EP4x|_AWUEf*>*R8sKu^ep&|aO~l<7+{1Va`6 z3kQ{se+f#0D3EyJb&#aekFS1z{mHGzx1OhS&y%zNkPc<`+iQP@5)beH5c{$CJe2=E jwDwzQ?dLCFgf{=k<{pM#goj@Rpx5g#3B>p{_(J~!$YilH diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_eventloop.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_eventloop.cpython-312.pyc deleted file mode 100644 index bed8728392aa65c3d35c7cad8b0e6a10d675fcdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16549 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 diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_resources.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_resources.cpython-312.pyc deleted file mode 100644 index 1a4247b94267b6780538b648545afaedfc7e7d53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1651 zcmZux&2Jk;6rb5IukAQ#YC|Bc+EpZqEETVS15$+$X#@xX5h@W#i_m7gJBc0dhnZQY zap)m55h?T6CLXZ>h&Dts!jOE$ioA>6;d%yQ)zN^(L z1P1-4va_HQ@(T*nVHSXnHvt@zkc2cMG4&`#tVLR^dwOhmhLZKjj4jVn*oaE8?b(!Q zgxjHcN()b3StGBJ&^jVviR)k4r*I+;uQDt*E59LZ(!9!&B+XdXO%vJF^3v+fwYPZ2 z@_E*lnP5Q{^Q@DGU|HJ$k+)gU+ZgsaER^v3E)zN32+-SfOwOU>S7GItaN^OBcv?t3 zJ=8oSEQR`!;hAMJ`wQ*RfOU(P!g6RH8K)C}o;|dhmAtkphe>dY%XAS;aM&ZRE5|Geod5!n&JE=7#wJq{ zZ7Q?9Zq`y(CnT8EOQoy9dfh1;`L1r# z0Ks%%r>JaS1~AQb=ihuxET_G22zTKl*mYk!);}>#;Aco)AfKDakEnq$w53(>+%&`j zEaW!d3;YZ^H7_CBWl?UarM8L*yGUF>!!l+7b%E5D{+pUoEPU*3Z0h&mWWsl3k&D+xB}6t^d}>riR3Vl5aTU=8Vl{r(sJSxM0X;+{ z9B``+fmSQS#Rlr()md*=F`umgybh3$z|PKfxIhB?U4@*RNU{`Ipxgr7O}0e|wOAJA zQYBQJfGv4$zgQ6TlDGyU-V2Ffq*F@I$jSrq^clH&MwWjzs`u6o-#nmySW9%}%k4i2 Ie3YMm0GdptPyhe` diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_sockets.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_sockets.cpython-312.pyc deleted file mode 100644 index 0bcab76ed28adcfdc1653fadf9f213fc3f242fbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18308 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 diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_subprocesses.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_subprocesses.cpython-312.pyc deleted file mode 100644 index f8a3f8f09d2e664bb13380fd7ed8720491e16eb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3259 zcmcIn-ESL35Z|@W-ydz7RzQWSRYgTD+Ot|zfh+_~MHQl!G)jVs{J{Bqw@I$O53{>Y zYKxabANUXYH&hjG{V#ap4Nj^+f=cww)F45hn7Okr=QRC@5ce>iotfR4`R(lN`ukd~ zOyHvr$~WeVg#3zw>6eQcI&K4Vm)OLnF7araQsgsk#>=*|5ubH6FW1fiuh}^_?-kmG zh|jx4uhcGi<#w5p3|S<0;SRBjyl_7ouidT;N{#Yk95iTHF?~N!rg8#b!mw_3r4pv4 zJg&9^8zhA_XVW)b`IyENY727UTdQ0KePQuNCY-x8P<)kJ+}Y-9N^sK)>nK{|z8#OP z*l|p?_=k>v1LiK_q)lzo&e*h_<(gf!Gk3K66Z>`!BsDvmlH?l~aO%`PQmZPLzPRv?@tG@7Ckr67H71$i3NzF>Em+z5# zG}I(_HzbC{p8CzLz~fC7fVpShYOYTiNcaY~RMT@T5rFq-&<#{m-{$^y({;Md-T*4h ze^)U&@{VN)7Zs=OT9M;wH?T7ScTOQP8~-z2t?+A{7(M9 zP5zNsUtec5Is+QW2$Vk^qZR=Ju*OMV>s)w_Zz?X+X`f-6a1i)L-*pGf*AI42I?0NYNKZF99X;^}(^jsnEq%`9Kq~G{CrdamIC*Vp zasBe@r=1Q{K{}w6V_j#Gb2ybjtHoM)R-dgKT}{*KB%YTA!X@fJ;vE!+felNE>2Pj} zZ6Z1b7Gtcs+hh!sycF0U5_eY|gdIb3;+^G zksxdq!j}H_*5HE#D(sfbWHM^D(~aLP{}gbqwD(v`M!Z-jb=-TVFujSB_|Q)r`hBm< z1v}04O`WxDQ<+duQ7k%?<0qf3bQ(#haS=5#;t-@3=3_I7sWKMVQzhkoI6tkZl<*xe zPQjG!ZwS|3m`<#xdf3v(d-{|9oT|?D9D7)qdWXSTGGIU$QMz zGPqRPfGd_9BYV;!cA!dgxc9kG1Mw!xP9R}OP9k{=Npuxqn~a)l!`J*G`Ms?txWQvIlxY5z)$_j}caHAt6U;h!8q`9-vl1SMVUc40=ln9}|MP8Vr(QABw!H>wEvMjxJJ0J(rJ zNWv_O{nq=7L`)RszrB(z`v3p{ diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_tasks.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/abc/__pycache__/_tasks.cpython-312.pyc deleted file mode 100644 index be8b0d644213a2e93716194e7b306437df599a36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5158 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 (3, 11): - from typing import TypeVarTuple, Unpack -else: - from typing_extensions import TypeVarTuple, Unpack - -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 = 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/.venv/lib/python3.12/site-packages/anyio/abc/_resources.py b/.venv/lib/python3.12/site-packages/anyio/abc/_resources.py deleted file mode 100644 index 10df115..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/abc/_sockets.py b/.venv/lib/python3.12/site-packages/anyio/abc/_sockets.py deleted file mode 100644 index feb26bd..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/abc/_sockets.py +++ /dev/null @@ -1,399 +0,0 @@ -from __future__ import annotations - -import errno -import socket -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, TypeAlias, TypeVar - -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 - -IPAddressType: TypeAlias = str | IPv4Address | IPv6Address -IPSockAddrType: TypeAlias = tuple[str, int] -SockAddrType: TypeAlias = 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/.venv/lib/python3.12/site-packages/anyio/abc/_streams.py b/.venv/lib/python3.12/site-packages/anyio/abc/_streams.py deleted file mode 100644 index 186e3f5..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/abc/_streams.py +++ /dev/null @@ -1,233 +0,0 @@ -from __future__ import annotations - -from abc import ABCMeta, abstractmethod -from collections.abc import Callable -from typing import Any, Generic, TypeAlias, TypeVar - -from .._core._exceptions import EndOfStream -from .._core._typedattr import TypedAttributeProvider -from ._resources import AsyncResource -from ._tasks import TaskGroup - -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 = ( - UnreliableObjectReceiveStream[bytes] | ByteReceiveStream -) -#: Type alias for all unreliable bytes-oriented send streams. -AnyUnreliableByteSendStream: TypeAlias = ( - UnreliableObjectSendStream[bytes] | ByteSendStream -) -#: Type alias for all unreliable bytes-oriented streams. -AnyUnreliableByteStream: TypeAlias = UnreliableObjectStream[bytes] | ByteStream -#: Type alias for all bytes-oriented receive streams. -AnyByteReceiveStream: TypeAlias = ObjectReceiveStream[bytes] | ByteReceiveStream -#: Type alias for all bytes-oriented send streams. -AnyByteSendStream: TypeAlias = ObjectSendStream[bytes] | ByteSendStream -#: Type alias for all bytes-oriented streams. -AnyByteStream: TypeAlias = 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 = ( - ObjectStreamConnectable[bytes] | ByteStreamConnectable -) diff --git a/.venv/lib/python3.12/site-packages/anyio/abc/_subprocesses.py b/.venv/lib/python3.12/site-packages/anyio/abc/_subprocesses.py deleted file mode 100644 index ce0564c..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/abc/_tasks.py b/.venv/lib/python3.12/site-packages/anyio/abc/_tasks.py deleted file mode 100644 index 516b3ec..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/abc/_testing.py b/.venv/lib/python3.12/site-packages/anyio/abc/_testing.py deleted file mode 100644 index 7c50ed7..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/from_thread.py b/.venv/lib/python3.12/site-packages/anyio/from_thread.py deleted file mode 100644 index 837de5e..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/functools.py b/.venv/lib/python3.12/site-packages/anyio/functools.py deleted file mode 100644 index f1d6c7c..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/functools.py +++ /dev/null @@ -1,409 +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._eventloop import current_time -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, float | None] - | tuple[Any, None, float | None], - ], - ] -] = RunVar("lru_cache_items") - - -class _InitialMissingType: - pass - - -initial_missing: _InitialMissingType = _InitialMissingType() - - -class AsyncCacheInfo(NamedTuple): - hits: int - misses: int - maxsize: int | None - currsize: int - ttl: int | None - - -class AsyncCacheParameters(TypedDict): - maxsize: int | None - typed: bool - always_checkpoint: bool - ttl: int | None - - -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, - ttl: int | None, - ): - 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 - self._ttl = ttl - update_wrapper(self, func) - - def cache_info(self) -> AsyncCacheInfo: - return AsyncCacheInfo( - self._hits, self._misses, self._maxsize, self._currsize, self._ttl - ) - - def cache_parameters(self) -> AsyncCacheParameters: - return { - "maxsize": self._maxsize, - "typed": self._typed, - "always_checkpoint": self._always_checkpoint, - "ttl": self._ttl, - } - - 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, expires_at = cache_entry[key] - except KeyError: - # We're the first task to call this function - cached_value, lock, expires_at = ( - initial_missing, - Lock(fast_acquire=not self._always_checkpoint), - None, - ) - cache_entry[key] = cached_value, lock, expires_at - - if lock is None: - if expires_at is not None and current_time() >= expires_at: - self._currsize -= 1 - cached_value, lock, expires_at = ( - initial_missing, - Lock(fast_acquire=not self._always_checkpoint), - None, - ) - cache_entry[key] = cached_value, lock, expires_at - else: - # 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) - expires_at = ( - current_time() + self._ttl if self._ttl is not None else None - ) - cache_entry[key] = value, None, expires_at - 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, ttl: int | None - ): - self._maxsize = maxsize - self._typed = typed - self._always_checkpoint = always_checkpoint - self._ttl = ttl - - @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, self._ttl - ) - - 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 = ..., - ttl: int | None = ..., -) -> _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, - ttl: int | None = None, -) -> ( - 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 - :param ttl: time in seconds after which to invalidate cache entries - - .. note:: Caches and locks are managed on a per-event loop basis. - - """ - if func is None: - return _LRUCacheWrapper[Any](maxsize, typed, always_checkpoint, ttl) - - if not callable(func): - raise TypeError("the first argument must be callable") - - return _LRUCacheWrapper[T](maxsize, typed, always_checkpoint, ttl)(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/.venv/lib/python3.12/site-packages/anyio/lowlevel.py b/.venv/lib/python3.12/site-packages/anyio/lowlevel.py deleted file mode 100644 index ffbb75a..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/py.typed b/.venv/lib/python3.12/site-packages/anyio/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/anyio/pytest_plugin.py b/.venv/lib/python3.12/site-packages/anyio/pytest_plugin.py deleted file mode 100644 index a5183f0..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/pytest_plugin.py +++ /dev/null @@ -1,363 +0,0 @@ -from __future__ import annotations - -import dataclasses -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 FuncFixtureInfo, SubRequest -from _pytest.outcomes import Exit -from _pytest.python import CallSpec2 -from _pytest.scope import Scope - -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) - - -def pytest_collection_finish(session: pytest.Session) -> None: - for i, item in reversed(list(enumerate(session.items))): - if ( - isinstance(item, pytest.Function) - and iscoroutinefunction(item.function) - and item.get_closest_marker("anyio") is not None - and "anyio_backend" not in item.fixturenames - ): - new_items = [] - try: - cs_fields = {f.name for f in dataclasses.fields(CallSpec2)} - except TypeError: - cs_fields = set() - - for param_index, backend in enumerate(get_available_backends()): - if "_arg2scope" in cs_fields: # pytest >= 8 - callspec = CallSpec2( - params={"anyio_backend": backend}, - indices={"anyio_backend": param_index}, - _arg2scope={"anyio_backend": Scope.Module}, - _idlist=[backend], - marks=[], - ) - else: # pytest 7.x - callspec = CallSpec2( # type: ignore[call-arg] - funcargs={}, - params={"anyio_backend": backend}, - indices={"anyio_backend": param_index}, - arg2scope={"anyio_backend": Scope.Module}, - idlist=[backend], - marks=[], - ) - - fi = item._fixtureinfo - new_names_closure = list(fi.names_closure) - if "anyio_backend" not in new_names_closure: - new_names_closure.append("anyio_backend") - - new_fixtureinfo = FuncFixtureInfo( - argnames=fi.argnames, - initialnames=fi.initialnames, - names_closure=new_names_closure, - name2fixturedefs=fi.name2fixturedefs, - ) - new_item = pytest.Function.from_parent( - item.parent, - name=f"{item.originalname}[{backend}]", - callspec=callspec, - callobj=item.obj, - fixtureinfo=new_fixtureinfo, - keywords=item.keywords, - originalname=item.originalname, - ) - new_items.append(new_item) - - session.items[i : i + 1] = new_items - - -@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/.venv/lib/python3.12/site-packages/anyio/streams/__init__.py b/.venv/lib/python3.12/site-packages/anyio/streams/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b12ee5ae94df8eaf0d0bdb099a341352735ef6b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmX@j%ge<81dLm_vOx4>5P=Rpvj9b=GgLBYGWxA#C}INgK7-W!%GJ-v&rQ`Y$uG%B z%}uP(4}mcPit@8klS}k-Gn0$*3!t2&{1Sb=vedjX{hZ7s{esGpjQl)fJwqe?;>?m% z-GapA?8NlcV*SLt%FKNI;*z4&#N1;2`1s7c%#!$cy@JYL95%W6DWy57c15f}+Zlnl Q7{vI<%*e=C#0+Es0L;2LP5=M^ diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/buffered.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/buffered.cpython-312.pyc deleted file mode 100644 index 66ffc9e3e975731ba50b4dba038982cdf5b2ee02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9085 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 Q8oO*lSQOflHZ$=|`oWIVP9|+JLpni7eA3Og{Ag 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 diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/stapled.cpython-312.pyc b/.venv/lib/python3.12/site-packages/anyio/streams/__pycache__/stapled.cpython-312.pyc deleted file mode 100644 index e6da2555f9304cdeadfa668b17f4307a1ed666d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7606 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 HLZAN^;Q{B1 diff --git a/.venv/lib/python3.12/site-packages/anyio/streams/buffered.py b/.venv/lib/python3.12/site-packages/anyio/streams/buffered.py deleted file mode 100644 index 57c7cd7..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/streams/file.py b/.venv/lib/python3.12/site-packages/anyio/streams/file.py deleted file mode 100644 index 79c3d50..0000000 --- a/.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 IO, Any - -from .. import ( - BrokenResourceError, - ClosedResourceError, - EndOfStream, - TypedAttributeSet, - to_thread, - typed_attribute, -) -from ..abc import ByteReceiveStream, ByteSendStream - - -class FileStreamAttribute(TypedAttributeSet): - #: the open file descriptor - file: IO[bytes] = 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: IO[bytes]): - 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(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(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/.venv/lib/python3.12/site-packages/anyio/streams/memory.py b/.venv/lib/python3.12/site-packages/anyio/streams/memory.py deleted file mode 100644 index a3fa0c3..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/streams/stapled.py b/.venv/lib/python3.12/site-packages/anyio/streams/stapled.py deleted file mode 100644 index 9248b68..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/streams/text.py b/.venv/lib/python3.12/site-packages/anyio/streams/text.py deleted file mode 100644 index 296cd25..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/streams/tls.py b/.venv/lib/python3.12/site-packages/anyio/streams/tls.py deleted file mode 100644 index e2a7ca5..0000000 --- a/.venv/lib/python3.12/site-packages/anyio/streams/tls.py +++ /dev/null @@ -1,421 +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, TypeAlias, 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, 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/.venv/lib/python3.12/site-packages/anyio/to_interpreter.py b/.venv/lib/python3.12/site-packages/anyio/to_interpreter.py deleted file mode 100644 index 694dbe7..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/to_process.py b/.venv/lib/python3.12/site-packages/anyio/to_process.py deleted file mode 100644 index b289234..0000000 --- a/.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/.venv/lib/python3.12/site-packages/anyio/to_thread.py b/.venv/lib/python3.12/site-packages/anyio/to_thread.py deleted file mode 100644 index 83c79d1..0000000 --- a/.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 ``abandon_on_cancel`` 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/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/METADATA b/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/METADATA deleted file mode 100644 index 3816cc9..0000000 --- a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/METADATA +++ /dev/null @@ -1,78 +0,0 @@ -Metadata-Version: 2.4 -Name: certifi -Version: 2026.4.22 -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/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/RECORD b/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/RECORD deleted file mode 100644 index c8874c3..0000000 --- a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/RECORD +++ /dev/null @@ -1,14 +0,0 @@ -certifi-2026.4.22.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -certifi-2026.4.22.dist-info/METADATA,sha256=Ttb_6cy-0FBGq3v_ICTNPKcXKVs2i-0f4gpz42W8QVo,2474 -certifi-2026.4.22.dist-info/RECORD,, -certifi-2026.4.22.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91 -certifi-2026.4.22.dist-info/licenses/LICENSE,sha256=6TcW2mucDVpKHfYP5pWzcPBpVgPSH2-D8FPkLPwQyvc,989 -certifi-2026.4.22.dist-info/top_level.txt,sha256=KMu4vUCfsjLrkPbSNdgdekS-pVJzBAJFO__nI8NF6-U,8 -certifi/__init__.py,sha256=iBJYWtxRGHMaO1S73pWYpFn962WQ4ldof2GkfMSREJM,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=Fr4_b-sVQIGV3P46oade-dty9ka5brvv3Gj1YlX3mfg,238641 -certifi/core.py,sha256=XFXycndG5pf37ayeF8N32HUuDafsyhkVMbO4BAPWHa0,3394 -certifi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/WHEEL deleted file mode 100644 index 14a883f..0000000 --- a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (82.0.1) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/licenses/LICENSE b/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/licenses/LICENSE deleted file mode 100644 index 62b076c..0000000 --- a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.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/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/top_level.txt b/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/top_level.txt deleted file mode 100644 index 963eac5..0000000 --- a/.venv/lib/python3.12/site-packages/certifi-2026.4.22.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -certifi diff --git a/.venv/lib/python3.12/site-packages/certifi/__init__.py b/.venv/lib/python3.12/site-packages/certifi/__init__.py deleted file mode 100644 index 9d711f4..0000000 --- a/.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.04.22" diff --git a/.venv/lib/python3.12/site-packages/certifi/__main__.py b/.venv/lib/python3.12/site-packages/certifi/__main__.py deleted file mode 100644 index 8945b5d..0000000 --- a/.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/.venv/lib/python3.12/site-packages/certifi/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/certifi/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ea31ba8e103457c0fb8d5d280ca2068356c72990..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmYjMu};G<5Vf6zmPBPkNG!mZfw%<3g!lx+z?1ih>(_>MrcLI3z)lAuqbe;CC66VlFR%aU#-QZ(PK_6mVz2xugpkWoU~lExDq2= zPi?8yadMR6Mp%AW=kzu&c!Mc7R@?|oh)}{3lGM{h|4eFjSMhTbxx34!njJ^K9)$1{ X9DGIFPm}j>Z`S+R+I@`7rpx{S^Bq~9 diff --git a/.venv/lib/python3.12/site-packages/certifi/__pycache__/__main__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/certifi/__pycache__/__main__.cpython-312.pyc deleted file mode 100644 index 3c36dc26dcc878edfb8e67cab54f6f4190536b9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 642 zcmZuuzi$&U6n?(ncOq>?gcLDFMF@gOEMRSskeI6u3{{rX_0A-B7At69r z*x*k9g^~Y)rBPd@n5C#g)vZ#uPT1*PvtY@7-}}DL&(HR+TFnDF&`&S9knuz%)i6tN zaUj7Lh#*1(=&GmT)uwqIm#}LRGpWt_3PpNkMCK1`tY0w*q;IiO z=kdCZL!88z^A%zXvIAF6t#Xdhm4;x1N=^Tt*0Rr(ajm5ZC!`rC883wSx=$F{*4p8= z*KS|aUco6NK4(MHLc$6{9@DJl2`6B^JYWS8c1ReHU&c(`hp9%z!ZX$zrn2n1axh`d zoJ`yZqR5vUXPWS4tjY^v%vLjJamK%c`VzS8;XX|X=9KqI8oa?TDzMIILPCzyIAk<0 zlTFHTXNzQ8co1*me8l@Sd(wII7#A@o?K}uy1wB&WvRUl=X%J_=-^oXp&Pqz7;eb44 zH|4qN5sMAEoa+doKd^WTcaGiW$HvrcPTc0cyS!r^fi;Et1nQrke|`Av?H<$*VCBfJ qP3^|SZtUB)cZ_4*{;>LP^|#@Ey1)D2(75$iqPx5I-mkGGS^OXRV4ns6 diff --git a/.venv/lib/python3.12/site-packages/certifi/__pycache__/core.cpython-312.pyc b/.venv/lib/python3.12/site-packages/certifi/__pycache__/core.cpython-312.pyc deleted file mode 100644 index 0d3098f47e3f99da8f58ebad0ed47a62aa21af4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2074 zcmbVN&u<$=6rNe{#_M0*kc7mktJ*RGVt&{njapCurA?85L`juIh+0Ui?d~LA*Y;Yo zlQaPd<-nnw$gMe4C(ekYXLVxfF-vlpd??Lhi8K{U1YzP%x#BLOdf)O{wuf$@A;Iizu zb)zBO{|q5I4%Gt{sX9;`sD_JSj0{1OVML4&iLMGp7~T-`avAdYmH-_Q=tvYVRh6Rh zpN?oxN37G4OMFhEI-$&5HS_hY=$C;-qbnuT&QvX9y+SgSuytCqGps~1X3b_=rJ^y@ zs%0vc-bt+0jIQxF4lP2B?V@| z{;S$%VZ~4GP^(OIR;Zdfwd&r(J&P6c8>F^TsF?Q(^(|JiYS;2_O%`mEkvHp_eqUQ7 zcEN+Kpj(sxc8=oyW(NdSXPcC3gb#ZJ+%`HAm6n)nh{@fNUADLKi})Jl?B|4I{x!!j zH+RCCt*)9C;z-=vI?M(ZAoUEUdXd_`%L1$zuX4@62e^}!!`@U+Fa&?qkDAE%CR}5I zFv}qDemn3cf=cp;cW$nHNcmpq zC2)>hw#-^xVfX8PFJ~!;vXjGi{i2*`OQ;7j+upUDAURp@fb@ z{vr%}4%{|69YpcuVJv+*ic;C{Ufz#1vy-jtbR#?cbiSGWsCoJ0hjT}%tB=2ErKcL{ zsb>0mGj-$P{84=9o5imeA1^+SzwxJ%I+RoHFP&qMv&2XH6L7$w#}9%l!bj#p)dyUa z19ssBo*ALa%}@a<)(?&B zpIw@U!aNN76>uP9Wn|}WQ%Sd!iH0(?vmW`^WF!gD=*i*4U6`B;CeKcM5&kd-r27-FHiq( zRR#9~NBX>~48c_gM;mMz(G-Lnro6I$pPXoy?IlQTt|88La(8@h{^^b9%Iu*$>k&)& z`xbJ8PFPh9ONa9ovbXFG3>*O`zCoxB{|~BJTeX~Fvs$+(gWEJuiEXV@o!H%@>>gkj z;0~hvG`icM8J=aiyI{L#^1Gcsr}yaul<<>eZ-P4sVT}J4BrLY$2*-XyiMELG>nAc2 z!>!P8BQ(78;OEfQzr@Mkheo&OejOg$o<9-Cq$@ku+6cnQB$k%(j(&=G{3nW}8Qfc$ S>{LQHnZnX-ukto_q4^gsl%xXy diff --git a/.venv/lib/python3.12/site-packages/certifi/cacert.pem b/.venv/lib/python3.12/site-packages/certifi/cacert.pem deleted file mode 100644 index 27132f5..0000000 --- a/.venv/lib/python3.12/site-packages/certifi/cacert.pem +++ /dev/null @@ -1,3933 +0,0 @@ - -# 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: 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: 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=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=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 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=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----- - -# Issuer: CN=e-Szigno TLS Root CA 2023 O=Microsec Ltd. -# Subject: CN=e-Szigno TLS Root CA 2023 O=Microsec Ltd. -# Label: "e-Szigno TLS Root CA 2023" -# Serial: 71934828665710877219916191754 -# MD5 Fingerprint: 6a:e9:99:74:a5:da:5e:f1:d9:2e:f2:c8:d1:86:8b:71 -# SHA1 Fingerprint: 6f:9a:d5:d5:df:e8:2c:eb:be:37:07:ee:4f:4f:52:58:29:41:d1:fe -# SHA256 Fingerprint: b4:91:41:50:2d:00:66:3d:74:0f:2e:7e:c3:40:c5:28:00:96:26:66:12:1a:36:d0:9c:f7:dd:2b:90:38:4f:b4 ------BEGIN CERTIFICATE----- -MIICzzCCAjGgAwIBAgINAOhvGHvWOWuYSkmYCjAKBggqhkjOPQQDBDB1MQswCQYD -VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0 -ZC4xFzAVBgNVBGEMDlZBVEhVLTIzNTg0NDk3MSIwIAYDVQQDDBllLVN6aWdubyBU -TFMgUm9vdCBDQSAyMDIzMB4XDTIzMDcxNzE0MDAwMFoXDTM4MDcxNzE0MDAwMFow -dTELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRYwFAYDVQQKDA1NaWNy -b3NlYyBMdGQuMRcwFQYDVQRhDA5WQVRIVS0yMzU4NDQ5NzEiMCAGA1UEAwwZZS1T -emlnbm8gVExTIFJvb3QgQ0EgMjAyMzCBmzAQBgcqhkjOPQIBBgUrgQQAIwOBhgAE -AGgP36J8PKp0iGEKjcJMpQEiFNT3YHdCnAo4YKGMZz6zY+n6kbCLS+Y53wLCMAFS -AL/fjO1ZrTJlqwlZULUZwmgcAOAFX9pQJhzDrAQixTpN7+lXWDajwRlTEArRzT/v -SzUaQ49CE0y5LBqcvjC2xN7cS53kpDzLLtmt3999Cd8ukv+ho2MwYTAPBgNVHRMB -Af8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUWYQCYlpGePVd3I8K -ECgj3NXW+0UwHwYDVR0jBBgwFoAUWYQCYlpGePVd3I8KECgj3NXW+0UwCgYIKoZI -zj0EAwQDgYsAMIGHAkIBLdqu9S54tma4n7Zwf2Z0z+yOfP7AAXmazlIC58PRDHpt -y7Ve7hekm9sEdu4pKeiv+62sUvTXK9Z3hBC9xdIoaDQCQTV2WnXzkoYI9bIeCvZl -C9p2x1L/Cx6AcCIwwzPbGO2E14vs7dOoY4G1VnxHx1YwlGhza9IuqbnZLBwpvQy6 -uWWL ------END CERTIFICATE----- diff --git a/.venv/lib/python3.12/site-packages/certifi/core.py b/.venv/lib/python3.12/site-packages/certifi/core.py deleted file mode 100644 index 1c9661c..0000000 --- a/.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/.venv/lib/python3.12/site-packages/certifi/py.typed b/.venv/lib/python3.12/site-packages/certifi/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/METADATA b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/METADATA deleted file mode 100644 index 6b5a360..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/METADATA +++ /dev/null @@ -1,808 +0,0 @@ -Metadata-Version: 2.4 -Name: charset-normalizer -Version: 3.4.7 -Summary: The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. -Author-email: "Ahmed R. TAHRI" -Maintainer-email: "Ahmed R. TAHRI" -License: MIT -Project-URL: Changelog, https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md -Project-URL: Documentation, https://charset-normalizer.readthedocs.io/ -Project-URL: Code, https://github.com/jawah/charset_normalizer -Project-URL: Issue tracker, https://github.com/jawah/charset_normalizer/issues -Keywords: encoding,charset,charset-detector,detector,normalization,unicode,chardet,detect -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -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 :: 3.14 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Programming Language :: Python :: Free Threading :: 4 - Resilient -Classifier: Topic :: Text Processing :: Linguistic -Classifier: Topic :: Utilities -Classifier: Typing :: Typed -Requires-Python: >=3.7 -Description-Content-Type: text/markdown -License-File: LICENSE -Provides-Extra: unicode-backport -Dynamic: license-file - -

Charset Detection, for Everyone 👋

- -

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

-

- Featured Packages
- - Static Badge - - - Static Badge - -

-

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

- -> A library that helps you read text from an unknown charset encoding.
Motivated by `chardet`, -> I'm trying to resolve the issue by taking a new approach. -> All IANA character set names for which the Python core library provides codecs are supported. -> You can also register your own set of codecs, and yes, it would work as-is. - -

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

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

-Reading Normalized TextCat Reading Text -

- -[^1]: They are clearly using specific code for a specific encoding even if covering most of used one. -[^2]: Chardet 7.0+ was relicensed from LGPL-2.1 to MIT following an AI-assisted rewrite. This relicensing is disputed on two independent grounds: **(a)** the original author [contests](https://github.com/chardet/chardet/issues/327) that the maintainer had the right to relicense, arguing the rewrite is a derivative work of the LGPL-licensed codebase since it was not a clean room implementation; **(b)** the copyright claim itself is [questionable](https://github.com/chardet/chardet/issues/334) given the code was primarily generated by an LLM, and AI-generated output may not be copyrightable under most jurisdictions. Either issue alone could undermine the MIT license. Beyond licensing, the rewrite raises questions about responsible use of AI in open source: key architectural ideas pioneered by charset-normalizer - notably decode-first validity filtering (our foundational approach since v1) and encoding pairwise similarity with the same algorithm and threshold — surfaced in chardet 7 without acknowledgment. The project also imported test files from charset-normalizer to train and benchmark against it, then claimed superior accuracy on those very files. Charset-normalizer has always been MIT-licensed, encoding-agnostic by design, and built on a verifiable human-authored history. - -## ⚡ Performance - -This package offer better performances (99th, and 95th) against Chardet. Here are some numbers. - -| Package | Accuracy | Mean per file (ms) | File per sec (est) | -|---------------------------------------------------|:--------:|:------------------:|:------------------:| -| [chardet 7.1](https://github.com/chardet/chardet) | 89 % | 3 ms | 333 file/sec | -| charset-normalizer | **97 %** | 3 ms | 333 file/sec | - -| Package | 99th percentile | 95th percentile | 50th percentile | -|---------------------------------------------------|:---------------:|:---------------:|:---------------:| -| [chardet 7.1](https://github.com/chardet/chardet) | 32 ms | 17 ms | < 1 ms | -| charset-normalizer | 16 ms | 10 ms | 1 ms | - -_updated as of March 2026 using CPython 3.12, Charset-Normalizer 3.4.6, and Chardet 7.1.0_ - -~Chardet's performance on larger file (1MB+) are very poor. Expect huge difference on large payload.~ No longer the case since Chardet 7.0+ - -> Stats are generated using 400+ files using default parameters. More details on used files, see GHA workflows. -> And yes, these results might change at any time. The dataset can be updated to include more files. -> The actual delays heavily depends on your CPU capabilities. The factors should remain the same. -> Chardet claims on his documentation to have a greater accuracy than us based on the dataset they trained Chardet on(...) -> Well, it's normal, the opposite would have been worrying. Whereas charset-normalizer don't train on anything, our solution -> is based on a completely different algorithm, still heuristic through, it does not need weights across every encoding tables. - -## ✨ Installation - -Using pip: - -```sh -pip install charset-normalizer -U -``` - -## 🚀 Basic Usage - -### CLI -This package comes with a CLI. - -``` -usage: normalizer [-h] [-v] [-a] [-n] [-m] [-r] [-f] [-t THRESHOLD] - file [file ...] - -The Real First Universal Charset Detector. Discover originating encoding used -on text file. Normalize text to unicode. - -positional arguments: - files File(s) to be analysed - -optional arguments: - -h, --help show this help message and exit - -v, --verbose Display complementary information about file if any. - Stdout will contain logs about the detection process. - -a, --with-alternative - Output complementary possibilities if any. Top-level - JSON WILL be a list. - -n, --normalize Permit to normalize input file. If not set, program - does not write anything. - -m, --minimal Only output the charset detected to STDOUT. Disabling - JSON output. - -r, --replace Replace file when trying to normalize it instead of - creating a new one. - -f, --force Replace file without asking if you are sure, use this - flag with caution. - -t THRESHOLD, --threshold THRESHOLD - Define a custom maximum amount of chaos allowed in - decoded content. 0. <= chaos <= 1. - --version Show version information and exit. -``` - -```bash -normalizer ./data/sample.1.fr.srt -``` - -or - -```bash -python -m charset_normalizer ./data/sample.1.fr.srt -``` - -🎉 Since version 1.4.0 the CLI produce easily usable stdout result in JSON format. - -```json -{ - "path": "/home/default/projects/charset_normalizer/data/sample.1.fr.srt", - "encoding": "cp1252", - "encoding_aliases": [ - "1252", - "windows_1252" - ], - "alternative_encodings": [ - "cp1254", - "cp1256", - "cp1258", - "iso8859_14", - "iso8859_15", - "iso8859_16", - "iso8859_3", - "iso8859_9", - "latin_1", - "mbcs" - ], - "language": "French", - "alphabets": [ - "Basic Latin", - "Latin-1 Supplement" - ], - "has_sig_or_bom": false, - "chaos": 0.149, - "coherence": 97.152, - "unicode_path": null, - "is_preferred": true -} -``` - -### Python -*Just print out normalized text* -```python -from charset_normalizer import from_path - -results = from_path('./my_subtitle.srt') - -print(str(results.best())) -``` - -*Upgrade your code without effort* -```python -from charset_normalizer import detect -``` - -The above code will behave the same as **chardet**. We ensure that we offer the best (reasonable) BC result possible. - -See the docs for advanced usage : [readthedocs.io](https://charset-normalizer.readthedocs.io/en/latest/) - -## 😇 Why - -When I started using Chardet, I noticed that it was not suited to my expectations, and I wanted to propose a -reliable alternative using a completely different method. Also! I never back down on a good challenge! - -I **don't care** about the **originating charset** encoding, because **two different tables** can -produce **two identical rendered string.** -What I want is to get readable text, the best I can. - -In a way, **I'm brute forcing text decoding.** How cool is that ? 😎 - -Don't confuse package **ftfy** with charset-normalizer or chardet. ftfy goal is to repair Unicode string whereas charset-normalizer to convert raw file in unknown encoding to unicode. - -## 🍰 How - - - Discard all charset encoding table that could not fit the binary content. - - Measure noise, or the mess once opened (by chunks) with a corresponding charset encoding. - - Extract matches with the lowest mess detected. - - Additionally, we measure coherence / probe for a language. - -**Wait a minute**, what is noise/mess and coherence according to **YOU ?** - -*Noise :* I opened hundred of text files, **written by humans**, with the wrong encoding table. **I observed**, then -**I established** some ground rules about **what is obvious** when **it seems like** a mess (aka. defining noise in rendered text). - I know that my interpretation of what is noise is probably incomplete, feel free to contribute in order to - improve or rewrite it. - -*Coherence :* For each language there is on earth, we have computed ranked letter appearance occurrences (the best we can). So I thought -that intel is worth something here. So I use those records against decoded text to check if I can detect intelligent design. - -## ⚡ Known limitations - - - Language detection is unreliable when text contains two or more languages sharing identical letters. (eg. HTML (english tags) + Turkish content (Sharing Latin characters)) - - Every charset detector heavily depends on sufficient content. In common cases, do not bother run detection on very tiny content. - -## ⚠️ About Python EOLs - -**If you are running:** - -- Python >=2.7,<3.5: Unsupported -- Python 3.5: charset-normalizer < 2.1 -- Python 3.6: charset-normalizer < 3.1 - -Upgrade your Python interpreter as soon as possible. - -## 👤 Contributing - -Contributions, issues and feature requests are very much welcome.
-Feel free to check [issues page](https://github.com/ousret/charset_normalizer/issues) if you want to contribute. - -## 📝 License - -Copyright © [Ahmed TAHRI @Ousret](https://github.com/Ousret).
-This project is [MIT](https://github.com/Ousret/charset_normalizer/blob/master/LICENSE) licensed. - -Characters frequencies used in this project © 2012 [Denny Vrandečić](http://simia.net/letters/) - -## 💼 For Enterprise - -Professional support for charset-normalizer is available as part of the [Tidelift -Subscription][1]. Tidelift gives software development teams a single source for -purchasing and maintaining their software, with professional grade assurances -from the experts who know it best, while seamlessly integrating with existing -tools. - -[1]: https://tidelift.com/subscription/pkg/pypi-charset-normalizer?utm_source=pypi-charset-normalizer&utm_medium=readme - -[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/7297/badge)](https://www.bestpractices.dev/projects/7297) - -# Changelog -All notable changes to charset-normalizer will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - -## [3.4.7](https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7) (2026-04-02) - -### Changed -- Pre-built optimized version using mypy[c] v1.20. -- Relax `setuptools` constraint to `setuptools>=68,<82.1`. - -### Fixed -- Correctly remove SIG remnant in utf-7 decoded string. (#718) (#716) - -## [3.4.6](https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6) (2026-03-15) - -### Changed -- Flattened the logic in `charset_normalizer.md` for higher performance. Removed `eligible(..)` and `feed(...)` - in favor of `feed_info(...)`. -- Raised upper bound for mypy[c] to 1.20, for our optimized version. -- Updated `UNICODE_RANGES_COMBINED` using Unicode blocks v17. - -### Fixed -- Edge case where noise difference between two candidates can be almost insignificant. (#672) -- CLI `--normalize` writing to wrong path when passing multiple files in. (#702) - -### Misc -- Freethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (#616) - -## [3.4.5](https://github.com/Ousret/charset_normalizer/compare/3.4.4...3.4.5) (2026-03-06) - -### Changed -- Update `setuptools` constraint to `setuptools>=68,<=82`. -- Raised upper bound of mypyc for the optional pre-built extension to v1.19.1 - -### Fixed -- Add explicit link to lib math in our optimized build. (#692) -- Logger level not restored correctly for empty byte sequences. (#701) -- TypeError when passing bytearray to from_bytes. (#703) - -### Misc -- Applied safe micro-optimizations in both our noise detector and language detector. -- Rewrote the `query_yes_no` function (inside CLI) to avoid using ambiguous licensed code. -- Added `cd.py` submodule into mypyc optional compilation to reduce further the performance impact. - -## [3.4.4](https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.4) (2025-10-13) - -### Changed -- Bound `setuptools` to a specific constraint `setuptools>=68,<=81`. -- Raised upper bound of mypyc for the optional pre-built extension to v1.18.2 - -### Removed -- `setuptools-scm` as a build dependency. - -### Misc -- Enforced hashes in `dev-requirements.txt` and created `ci-requirements.txt` for security purposes. -- Additional pre-built wheels for riscv64, s390x, and armv7l architectures. -- Restore ` multiple.intoto.jsonl` in GitHub releases in addition to individual attestation file per wheel. - -## [3.4.3](https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3) (2025-08-09) - -### Changed -- mypy(c) is no longer a required dependency at build time if `CHARSET_NORMALIZER_USE_MYPYC` isn't set to `1`. (#595) (#583) -- automatically lower confidence on small bytes samples that are not Unicode in `detect` output legacy function. (#391) - -### Added -- Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase. -- Support for Python 3.14 - -### Fixed -- sdist archive contained useless directories. -- automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (#633) - -### Misc -- SBOM are automatically published to the relevant GitHub release to comply with regulatory changes. - Each published wheel comes with its SBOM. We choose CycloneDX as the format. -- Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel. - -## [3.4.2](https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2) (2025-05-02) - -### Fixed -- Addressed the DeprecationWarning in our CLI regarding `argparse.FileType` by backporting the target class into the package. (#591) -- Improved the overall reliability of the detector with CJK Ideographs. (#605) (#587) - -### Changed -- Optional mypyc compilation upgraded to version 1.15 for Python >= 3.8 - -## [3.4.1](https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1) (2024-12-24) - -### Changed -- Project metadata are now stored using `pyproject.toml` instead of `setup.cfg` using setuptools as the build backend. -- Enforce annotation delayed loading for a simpler and consistent types in the project. -- Optional mypyc compilation upgraded to version 1.14 for Python >= 3.8 - -### Added -- pre-commit configuration. -- noxfile. - -### Removed -- `build-requirements.txt` as per using `pyproject.toml` native build configuration. -- `bin/integration.py` and `bin/serve.py` in favor of downstream integration test (see noxfile). -- `setup.cfg` in favor of `pyproject.toml` metadata configuration. -- Unused `utils.range_scan` function. - -### Fixed -- Converting content to Unicode bytes may insert `utf_8` instead of preferred `utf-8`. (#572) -- Deprecation warning "'count' is passed as positional argument" when converting to Unicode bytes on Python 3.13+ - -## [3.4.0](https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0) (2024-10-08) - -### Added -- Argument `--no-preemptive` in the CLI to prevent the detector to search for hints. -- Support for Python 3.13 (#512) - -### Fixed -- Relax the TypeError exception thrown when trying to compare a CharsetMatch with anything else than a CharsetMatch. -- Improved the general reliability of the detector based on user feedbacks. (#520) (#509) (#498) (#407) (#537) -- Declared charset in content (preemptive detection) not changed when converting to utf-8 bytes. (#381) - -## [3.3.2](https://github.com/Ousret/charset_normalizer/compare/3.3.1...3.3.2) (2023-10-31) - -### Fixed -- Unintentional memory usage regression when using large payload that match several encoding (#376) -- Regression on some detection case showcased in the documentation (#371) - -### Added -- Noise (md) probe that identify malformed arabic representation due to the presence of letters in isolated form (credit to my wife) - -## [3.3.1](https://github.com/Ousret/charset_normalizer/compare/3.3.0...3.3.1) (2023-10-22) - -### Changed -- Optional mypyc compilation upgraded to version 1.6.1 for Python >= 3.8 -- Improved the general detection reliability based on reports from the community - -## [3.3.0](https://github.com/Ousret/charset_normalizer/compare/3.2.0...3.3.0) (2023-09-30) - -### Added -- Allow to execute the CLI (e.g. normalizer) through `python -m charset_normalizer.cli` or `python -m charset_normalizer` -- Support for 9 forgotten encoding that are supported by Python but unlisted in `encoding.aliases` as they have no alias (#323) - -### Removed -- (internal) Redundant utils.is_ascii function and unused function is_private_use_only -- (internal) charset_normalizer.assets is moved inside charset_normalizer.constant - -### Changed -- (internal) Unicode code blocks in constants are updated using the latest v15.0.0 definition to improve detection -- Optional mypyc compilation upgraded to version 1.5.1 for Python >= 3.8 - -### Fixed -- Unable to properly sort CharsetMatch when both chaos/noise and coherence were close due to an unreachable condition in \_\_lt\_\_ (#350) - -## [3.2.0](https://github.com/Ousret/charset_normalizer/compare/3.1.0...3.2.0) (2023-06-07) - -### Changed -- Typehint for function `from_path` no longer enforce `PathLike` as its first argument -- Minor improvement over the global detection reliability - -### Added -- Introduce function `is_binary` that relies on main capabilities, and optimized to detect binaries -- Propagate `enable_fallback` argument throughout `from_bytes`, `from_path`, and `from_fp` that allow a deeper control over the detection (default True) -- Explicit support for Python 3.12 - -### Fixed -- Edge case detection failure where a file would contain 'very-long' camel cased word (Issue #289) - -## [3.1.0](https://github.com/Ousret/charset_normalizer/compare/3.0.1...3.1.0) (2023-03-06) - -### Added -- Argument `should_rename_legacy` for legacy function `detect` and disregard any new arguments without errors (PR #262) - -### Removed -- Support for Python 3.6 (PR #260) - -### Changed -- Optional speedup provided by mypy/c 1.0.1 - -## [3.0.1](https://github.com/Ousret/charset_normalizer/compare/3.0.0...3.0.1) (2022-11-18) - -### Fixed -- Multi-bytes cutter/chunk generator did not always cut correctly (PR #233) - -### Changed -- Speedup provided by mypy/c 0.990 on Python >= 3.7 - -## [3.0.0](https://github.com/Ousret/charset_normalizer/compare/2.1.1...3.0.0) (2022-10-20) - -### Added -- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results -- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES -- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio -- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) - -### Changed -- Build with static metadata using 'build' frontend -- Make the language detection stricter -- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 - -### Fixed -- CLI with opt --normalize fail when using full path for files -- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it -- Sphinx warnings when generating the documentation - -### Removed -- Coherence detector no longer return 'Simple English' instead return 'English' -- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' -- Breaking: Method `first()` and `best()` from CharsetMatch -- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) -- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches -- Breaking: Top-level function `normalize` -- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch -- Support for the backport `unicodedata2` - -## [3.0.0rc1](https://github.com/Ousret/charset_normalizer/compare/3.0.0b2...3.0.0rc1) (2022-10-18) - -### Added -- Extend the capability of explain=True when cp_isolation contains at most two entries (min one), will log in details of the Mess-detector results -- Support for alternative language frequency set in charset_normalizer.assets.FREQUENCIES -- Add parameter `language_threshold` in `from_bytes`, `from_path` and `from_fp` to adjust the minimum expected coherence ratio - -### Changed -- Build with static metadata using 'build' frontend -- Make the language detection stricter - -### Fixed -- CLI with opt --normalize fail when using full path for files -- TooManyAccentuatedPlugin induce false positive on the mess detection when too few alpha character have been fed to it - -### Removed -- Coherence detector no longer return 'Simple English' instead return 'English' -- Coherence detector no longer return 'Classical Chinese' instead return 'Chinese' - -## [3.0.0b2](https://github.com/Ousret/charset_normalizer/compare/3.0.0b1...3.0.0b2) (2022-08-21) - -### Added -- `normalizer --version` now specify if current version provide extra speedup (meaning mypyc compilation whl) - -### Removed -- Breaking: Method `first()` and `best()` from CharsetMatch -- UTF-7 will no longer appear as "detected" without a recognized SIG/mark (is unreliable/conflict with ASCII) - -### Fixed -- Sphinx warnings when generating the documentation - -## [3.0.0b1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...3.0.0b1) (2022-08-15) - -### Changed -- Optional: Module `md.py` can be compiled using Mypyc to provide an extra speedup up to 4x faster than v2.1 - -### Removed -- Breaking: Class aliases CharsetDetector, CharsetDoctor, CharsetNormalizerMatch and CharsetNormalizerMatches -- Breaking: Top-level function `normalize` -- Breaking: Properties `chaos_secondary_pass`, `coherence_non_latin` and `w_counter` from CharsetMatch -- Support for the backport `unicodedata2` - -## [2.1.1](https://github.com/Ousret/charset_normalizer/compare/2.1.0...2.1.1) (2022-08-19) - -### Deprecated -- Function `normalize` scheduled for removal in 3.0 - -### Changed -- Removed useless call to decode in fn is_unprintable (#206) - -### Fixed -- Third-party library (i18n xgettext) crashing not recognizing utf_8 (PEP 263) with underscore from [@aleksandernovikov](https://github.com/aleksandernovikov) (#204) - -## [2.1.0](https://github.com/Ousret/charset_normalizer/compare/2.0.12...2.1.0) (2022-06-19) - -### Added -- Output the Unicode table version when running the CLI with `--version` (PR #194) - -### Changed -- Re-use decoded buffer for single byte character sets from [@nijel](https://github.com/nijel) (PR #175) -- Fixing some performance bottlenecks from [@deedy5](https://github.com/deedy5) (PR #183) - -### Fixed -- Workaround potential bug in cpython with Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space (PR #175) -- CLI default threshold aligned with the API threshold from [@oleksandr-kuzmenko](https://github.com/oleksandr-kuzmenko) (PR #181) - -### Removed -- Support for Python 3.5 (PR #192) - -### Deprecated -- Use of backport unicodedata from `unicodedata2` as Python is quickly catching up, scheduled for removal in 3.0 (PR #194) - -## [2.0.12](https://github.com/Ousret/charset_normalizer/compare/2.0.11...2.0.12) (2022-02-12) - -### Fixed -- ASCII miss-detection on rare cases (PR #170) - -## [2.0.11](https://github.com/Ousret/charset_normalizer/compare/2.0.10...2.0.11) (2022-01-30) - -### Added -- Explicit support for Python 3.11 (PR #164) - -### Changed -- The logging behavior have been completely reviewed, now using only TRACE and DEBUG levels (PR #163 #165) - -## [2.0.10](https://github.com/Ousret/charset_normalizer/compare/2.0.9...2.0.10) (2022-01-04) - -### Fixed -- Fallback match entries might lead to UnicodeDecodeError for large bytes sequence (PR #154) - -### Changed -- Skipping the language-detection (CD) on ASCII (PR #155) - -## [2.0.9](https://github.com/Ousret/charset_normalizer/compare/2.0.8...2.0.9) (2021-12-03) - -### Changed -- Moderating the logging impact (since 2.0.8) for specific environments (PR #147) - -### Fixed -- Wrong logging level applied when setting kwarg `explain` to True (PR #146) - -## [2.0.8](https://github.com/Ousret/charset_normalizer/compare/2.0.7...2.0.8) (2021-11-24) -### Changed -- Improvement over Vietnamese detection (PR #126) -- MD improvement on trailing data and long foreign (non-pure latin) data (PR #124) -- Efficiency improvements in cd/alphabet_languages from [@adbar](https://github.com/adbar) (PR #122) -- call sum() without an intermediary list following PEP 289 recommendations from [@adbar](https://github.com/adbar) (PR #129) -- Code style as refactored by Sourcery-AI (PR #131) -- Minor adjustment on the MD around european words (PR #133) -- Remove and replace SRTs from assets / tests (PR #139) -- Initialize the library logger with a `NullHandler` by default from [@nmaynes](https://github.com/nmaynes) (PR #135) -- Setting kwarg `explain` to True will add provisionally (bounded to function lifespan) a specific stream handler (PR #135) - -### Fixed -- Fix large (misleading) sequence giving UnicodeDecodeError (PR #137) -- Avoid using too insignificant chunk (PR #137) - -### Added -- Add and expose function `set_logging_handler` to configure a specific StreamHandler from [@nmaynes](https://github.com/nmaynes) (PR #135) -- Add `CHANGELOG.md` entries, format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) (PR #141) - -## [2.0.7](https://github.com/Ousret/charset_normalizer/compare/2.0.6...2.0.7) (2021-10-11) -### Added -- Add support for Kazakh (Cyrillic) language detection (PR #109) - -### Changed -- Further, improve inferring the language from a given single-byte code page (PR #112) -- Vainly trying to leverage PEP263 when PEP3120 is not supported (PR #116) -- Refactoring for potential performance improvements in loops from [@adbar](https://github.com/adbar) (PR #113) -- Various detection improvement (MD+CD) (PR #117) - -### Removed -- Remove redundant logging entry about detected language(s) (PR #115) - -### Fixed -- Fix a minor inconsistency between Python 3.5 and other versions regarding language detection (PR #117 #102) - -## [2.0.6](https://github.com/Ousret/charset_normalizer/compare/2.0.5...2.0.6) (2021-09-18) -### Fixed -- Unforeseen regression with the loss of the backward-compatibility with some older minor of Python 3.5.x (PR #100) -- Fix CLI crash when using --minimal output in certain cases (PR #103) - -### Changed -- Minor improvement to the detection efficiency (less than 1%) (PR #106 #101) - -## [2.0.5](https://github.com/Ousret/charset_normalizer/compare/2.0.4...2.0.5) (2021-09-14) -### Changed -- The project now comply with: flake8, mypy, isort and black to ensure a better overall quality (PR #81) -- The BC-support with v1.x was improved, the old staticmethods are restored (PR #82) -- The Unicode detection is slightly improved (PR #93) -- Add syntax sugar \_\_bool\_\_ for results CharsetMatches list-container (PR #91) - -### Removed -- The project no longer raise warning on tiny content given for detection, will be simply logged as warning instead (PR #92) - -### Fixed -- In some rare case, the chunks extractor could cut in the middle of a multi-byte character and could mislead the mess detection (PR #95) -- Some rare 'space' characters could trip up the UnprintablePlugin/Mess detection (PR #96) -- The MANIFEST.in was not exhaustive (PR #78) - -## [2.0.4](https://github.com/Ousret/charset_normalizer/compare/2.0.3...2.0.4) (2021-07-30) -### Fixed -- The CLI no longer raise an unexpected exception when no encoding has been found (PR #70) -- Fix accessing the 'alphabets' property when the payload contains surrogate characters (PR #68) -- The logger could mislead (explain=True) on detected languages and the impact of one MBCS match (PR #72) -- Submatch factoring could be wrong in rare edge cases (PR #72) -- Multiple files given to the CLI were ignored when publishing results to STDOUT. (After the first path) (PR #72) -- Fix line endings from CRLF to LF for certain project files (PR #67) - -### Changed -- Adjust the MD to lower the sensitivity, thus improving the global detection reliability (PR #69 #76) -- Allow fallback on specified encoding if any (PR #71) - -## [2.0.3](https://github.com/Ousret/charset_normalizer/compare/2.0.2...2.0.3) (2021-07-16) -### Changed -- Part of the detection mechanism has been improved to be less sensitive, resulting in more accurate detection results. Especially ASCII. (PR #63) -- According to the community wishes, the detection will fall back on ASCII or UTF-8 in a last-resort case. (PR #64) - -## [2.0.2](https://github.com/Ousret/charset_normalizer/compare/2.0.1...2.0.2) (2021-07-15) -### Fixed -- Empty/Too small JSON payload miss-detection fixed. Report from [@tseaver](https://github.com/tseaver) (PR #59) - -### Changed -- Don't inject unicodedata2 into sys.modules from [@akx](https://github.com/akx) (PR #57) - -## [2.0.1](https://github.com/Ousret/charset_normalizer/compare/2.0.0...2.0.1) (2021-07-13) -### Fixed -- Make it work where there isn't a filesystem available, dropping assets frequencies.json. Report from [@sethmlarson](https://github.com/sethmlarson). (PR #55) -- Using explain=False permanently disable the verbose output in the current runtime (PR #47) -- One log entry (language target preemptive) was not show in logs when using explain=True (PR #47) -- Fix undesired exception (ValueError) on getitem of instance CharsetMatches (PR #52) - -### Changed -- Public function normalize default args values were not aligned with from_bytes (PR #53) - -### Added -- You may now use charset aliases in cp_isolation and cp_exclusion arguments (PR #47) - -## [2.0.0](https://github.com/Ousret/charset_normalizer/compare/1.4.1...2.0.0) (2021-07-02) -### Changed -- 4x to 5 times faster than the previous 1.4.0 release. At least 2x faster than Chardet. -- Accent has been made on UTF-8 detection, should perform rather instantaneous. -- The backward compatibility with Chardet has been greatly improved. The legacy detect function returns an identical charset name whenever possible. -- The detection mechanism has been slightly improved, now Turkish content is detected correctly (most of the time) -- The program has been rewritten to ease the readability and maintainability. (+Using static typing)+ -- utf_7 detection has been reinstated. - -### Removed -- This package no longer require anything when used with Python 3.5 (Dropped cached_property) -- Removed support for these languages: Catalan, Esperanto, Kazakh, Baque, Volapük, Azeri, Galician, Nynorsk, Macedonian, and Serbocroatian. -- The exception hook on UnicodeDecodeError has been removed. - -### Deprecated -- Methods coherence_non_latin, w_counter, chaos_secondary_pass of the class CharsetMatch are now deprecated and scheduled for removal in v3.0 - -### Fixed -- The CLI output used the relative path of the file(s). Should be absolute. - -## [1.4.1](https://github.com/Ousret/charset_normalizer/compare/1.4.0...1.4.1) (2021-05-28) -### Fixed -- Logger configuration/usage no longer conflict with others (PR #44) - -## [1.4.0](https://github.com/Ousret/charset_normalizer/compare/1.3.9...1.4.0) (2021-05-21) -### Removed -- Using standard logging instead of using the package loguru. -- Dropping nose test framework in favor of the maintained pytest. -- Choose to not use dragonmapper package to help with gibberish Chinese/CJK text. -- Require cached_property only for Python 3.5 due to constraint. Dropping for every other interpreter version. -- Stop support for UTF-7 that does not contain a SIG. -- Dropping PrettyTable, replaced with pure JSON output in CLI. - -### Fixed -- BOM marker in a CharsetNormalizerMatch instance could be False in rare cases even if obviously present. Due to the sub-match factoring process. -- Not searching properly for the BOM when trying utf32/16 parent codec. - -### Changed -- Improving the package final size by compressing frequencies.json. -- Huge improvement over the larges payload. - -### Added -- CLI now produces JSON consumable output. -- Return ASCII if given sequences fit. Given reasonable confidence. - -## [1.3.9](https://github.com/Ousret/charset_normalizer/compare/1.3.8...1.3.9) (2021-05-13) - -### Fixed -- In some very rare cases, you may end up getting encode/decode errors due to a bad bytes payload (PR #40) - -## [1.3.8](https://github.com/Ousret/charset_normalizer/compare/1.3.7...1.3.8) (2021-05-12) - -### Fixed -- Empty given payload for detection may cause an exception if trying to access the `alphabets` property. (PR #39) - -## [1.3.7](https://github.com/Ousret/charset_normalizer/compare/1.3.6...1.3.7) (2021-05-12) - -### Fixed -- The legacy detect function should return UTF-8-SIG if sig is present in the payload. (PR #38) - -## [1.3.6](https://github.com/Ousret/charset_normalizer/compare/1.3.5...1.3.6) (2021-02-09) - -### Changed -- Amend the previous release to allow prettytable 2.0 (PR #35) - -## [1.3.5](https://github.com/Ousret/charset_normalizer/compare/1.3.4...1.3.5) (2021-02-08) - -### Fixed -- Fix error while using the package with a python pre-release interpreter (PR #33) - -### Changed -- Dependencies refactoring, constraints revised. - -### Added -- Add python 3.9 and 3.10 to the supported interpreters - -MIT License - -Copyright (c) 2025 TAHRI Ahmed R. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/RECORD b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/RECORD deleted file mode 100644 index 2a0c50b..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/RECORD +++ /dev/null @@ -1,36 +0,0 @@ -../../../bin/normalizer,sha256=9DV70Lo8YuUsynoL2vDCIiaIxAoy8R4S9p7DMz1IuUc,283 -81d243bd2c585b0f4821__mypyc.cpython-312-x86_64-linux-gnu.so,sha256=xPTGB-9iuOqJ5RfI3qaB1WzuFAm1oYWbgN1Jz9U1wn0,433312 -charset_normalizer-3.4.7.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -charset_normalizer-3.4.7.dist-info/METADATA,sha256=K8lK8L8LaZ1YmKvWLt3zEkpIxiCOC58xNhzFQrfQJxQ,40931 -charset_normalizer-3.4.7.dist-info/RECORD,, -charset_normalizer-3.4.7.dist-info/WHEEL,sha256=Tc3fF66yn9Kh-hkUUsdKQyuB9Lw0CDoeANnEbSVc3f4,190 -charset_normalizer-3.4.7.dist-info/entry_points.txt,sha256=ADSTKrkXZ3hhdOVFi6DcUEHQRS0xfxDIE_pEz4wLIXA,65 -charset_normalizer-3.4.7.dist-info/licenses/LICENSE,sha256=bQ1Bv-FwrGx9wkjJpj4lTQ-0WmDVCoJX0K-SxuJJuIc,1071 -charset_normalizer-3.4.7.dist-info/top_level.txt,sha256=c_vZbitqecT2GfK3zdxSTLCn8C-6pGnHQY5o_5Y32M0,47 -charset_normalizer/__init__.py,sha256=OKRxRv2Zhnqk00tqkN0c1BtJjm165fWXLydE52IKuHc,1590 -charset_normalizer/__main__.py,sha256=yzYxMR-IhKRHYwcSlavEv8oGdwxsR89mr2X09qXGdps,109 -charset_normalizer/__pycache__/__init__.cpython-312.pyc,, -charset_normalizer/__pycache__/__main__.cpython-312.pyc,, -charset_normalizer/__pycache__/api.cpython-312.pyc,, -charset_normalizer/__pycache__/cd.cpython-312.pyc,, -charset_normalizer/__pycache__/constant.cpython-312.pyc,, -charset_normalizer/__pycache__/legacy.cpython-312.pyc,, -charset_normalizer/__pycache__/md.cpython-312.pyc,, -charset_normalizer/__pycache__/models.cpython-312.pyc,, -charset_normalizer/__pycache__/utils.cpython-312.pyc,, -charset_normalizer/__pycache__/version.cpython-312.pyc,, -charset_normalizer/api.py,sha256=387F3n23MlMu-xfSbFULW2DLGsBmVrZVGhnkiGXeKBo,38844 -charset_normalizer/cd.cpython-312-x86_64-linux-gnu.so,sha256=gOe65H__3O8_4a-aSVMB8gxHsRxVyQDUqqaIurPmIhE,15912 -charset_normalizer/cd.py,sha256=v0iPJweGsRegXywrM1LzUgqW9bJ1KFvIblQHP1jm5FQ,15174 -charset_normalizer/cli/__init__.py,sha256=D8I86lFk2-py45JvqxniTirSj_sFyE6sjaY_0-G1shc,136 -charset_normalizer/cli/__main__.py,sha256=E9FFSV1E2iOE_B2B1tJHQT9ExJqc60Ks_c-08sNawh8,11940 -charset_normalizer/cli/__pycache__/__init__.cpython-312.pyc,, -charset_normalizer/cli/__pycache__/__main__.cpython-312.pyc,, -charset_normalizer/constant.py,sha256=yvLAWDrdSC743Cu4amhwHLIO-FGuRTOTZouCzZKGikc,44431 -charset_normalizer/legacy.py,sha256=yBIFMNABNPE5JkdKOWyVo36fZtV9nm8bf37LrDWulz8,2661 -charset_normalizer/md.cpython-312-x86_64-linux-gnu.so,sha256=iYaQbya7NVRR7xg5FtK1yAKS5shmTFwmtkqqQbbvEWs,15912 -charset_normalizer/md.py,sha256=AYCdfDX79FrgoId3zXqmbCuDcbGr1NRuGqgJN94Rx9Q,30441 -charset_normalizer/models.py,sha256=FbaQnI6ECmVmyHRSvVM5fHNeMAQ3KSGdwLjGcQqWDws,12821 -charset_normalizer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -charset_normalizer/utils.py,sha256=9cpi-_0-vC9pGDfuoarhC6VlF_Jxwx5Jsa_8I4w2D8k,12282 -charset_normalizer/version.py,sha256=2LxFuGp3BBuIwt95cp64y7v8bCNHcMAi08IfXt_47Co,115 diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/WHEEL deleted file mode 100644 index 0493eaf..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/WHEEL +++ /dev/null @@ -1,7 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (82.0.1) -Root-Is-Purelib: false -Tag: cp312-cp312-manylinux_2_17_x86_64 -Tag: cp312-cp312-manylinux2014_x86_64 -Tag: cp312-cp312-manylinux_2_28_x86_64 - diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/entry_points.txt b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/entry_points.txt deleted file mode 100644 index 65619e7..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/entry_points.txt +++ /dev/null @@ -1,2 +0,0 @@ -[console_scripts] -normalizer = charset_normalizer.cli:cli_detect diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/licenses/LICENSE b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/licenses/LICENSE deleted file mode 100644 index 9725772..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/licenses/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2025 TAHRI Ahmed R. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/top_level.txt b/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/top_level.txt deleted file mode 100644 index 89847be..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/top_level.txt +++ /dev/null @@ -1,2 +0,0 @@ -81d243bd2c585b0f4821__mypyc -charset_normalizer diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__init__.py b/.venv/lib/python3.12/site-packages/charset_normalizer/__init__.py deleted file mode 100644 index 0d3a379..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/__init__.py +++ /dev/null @@ -1,48 +0,0 @@ -""" -Charset-Normalizer -~~~~~~~~~~~~~~ -The Real First Universal Charset Detector. -A library that helps you read text from an unknown charset encoding. -Motivated by chardet, This package is trying to resolve the issue by taking a new approach. -All IANA character set names for which the Python core library provides codecs are supported. - -Basic usage: - >>> from charset_normalizer import from_bytes - >>> results = from_bytes('Bсеки човек има право на образование. Oбразованието!'.encode('utf_8')) - >>> best_guess = results.best() - >>> str(best_guess) - 'Bсеки човек има право на образование. Oбразованието!' - -Others methods and usages are available - see the full documentation -at . -:copyright: (c) 2021 by Ahmed TAHRI -:license: MIT, see LICENSE for more details. -""" - -from __future__ import annotations - -import logging - -from .api import from_bytes, from_fp, from_path, is_binary -from .legacy import detect -from .models import CharsetMatch, CharsetMatches -from .utils import set_logging_handler -from .version import VERSION, __version__ - -__all__ = ( - "from_fp", - "from_path", - "from_bytes", - "is_binary", - "detect", - "CharsetMatch", - "CharsetMatches", - "__version__", - "VERSION", - "set_logging_handler", -) - -# Attach a NullHandler to the top level logger by default -# https://docs.python.org/3.3/howto/logging.html#configuring-logging-for-a-library - -logging.getLogger("charset_normalizer").addHandler(logging.NullHandler()) diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__main__.py b/.venv/lib/python3.12/site-packages/charset_normalizer/__main__.py deleted file mode 100644 index e0e76f7..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/__main__.py +++ /dev/null @@ -1,6 +0,0 @@ -from __future__ import annotations - -from .cli import cli_detect - -if __name__ == "__main__": - cli_detect() diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 85a0b6a6caf197e1818dbcd9495d0d51504e3636..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1793 zcmcIkK~LO96dvy`yWj;<;83Yj)u}24wuN;9Qd_N3B$9$a3J?*}gD=*sJ**95k2N!1 zvOQEZm;QwQhAJ0YH7crF`U86L3ROs!q8xIla!VEEl2hN5Xj}~0AvhrtZc31eu=B7z>qwSNJu5# z;{qT0f$Qh4?(~$;0UsCiA}esy4LrCCSg9*9fis!JF&6;0X__~Q3|yQ@z}PY|#>>mg zMZ$wDo#>*9g*YaulW3Krnzj+MGlk`y&Z@*35e~_MjINQwYPv>S6wdZ_3+h`2Y zw5e21C!taU8bE7m<=n*;sl?pnwOsvw!!^xqcy1waNa2+{c!|g>>Rvnw>5_nvHlug} z9=Pa@y#yZL<8BhtND&qA$b=rf;VTu(mSuGUdJrQ(# z)xvXb120}%ysjH=#SfulcURVTHp~_aTpCH*!kZhr^ErUq8@E=s?ylxN7V4IQrUrY7YyGNH*hkZk(R+BM$IYK{Z-cbv?0oV`RPf;x_XC4{ot08CaU zaZp6L465U0RYp6+?d5T^Y6$bkBxjJh&NX@!MP?Gu zTQ73Y>RZqp1K|hs0!+{=Vfj3ymg3N9A-Qku4w*ZG??aufFmMHjm5>WL4MqLY5 zpcUuKW2t$4(UO6p3xmZa-_lc-;{;Kl9H$xgUX9*>%o0YI#RmXEH-Wqd3_8cQ)`lxn}rut|qoxXa8X3x=L bA1$U!Ysa6RFRk^L*3OpJ|3Vw$eenD*vyo&D diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__main__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/__main__.cpython-312.pyc deleted file mode 100644 index 69a5a6c2aa7375c39c03082d23251b279a5e4e77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368 zcmXv}u};G<5Ix5Uic*Cg5DOC>hy_SYh%Z2hfvJn-#)i0!?Z|N}(jAFE;2RJtf5FB^ zBqSun(5+IpPB?1&hP(If-kt6~(lh}N^q!2A&%d46B3Ki&yzt}&IB-;gLIZ?=2OO7y z!UK#zgghJ{1K2nKf!{XM2%4yg`aAPZ_fgwpS{uilG`gOnbuGzDNx5($cWq3mVp3Cj z(~sJO())>rPc!8kudwtQR+bb-3F3?^gkq26ZcA>h8Trjb$=sT1 zBZkJ2Y%27WlyXR_#uY}NXQyYRmQI{hEFZH6QIou2wib?RV-+jqOjxqLFRPkWe5nkd ql;X;!{)FzE`p}03MhJbw(H|WA;NJ7>6YqV6yHD2(4B@`*dB;DfA7|w?R&tT8&urs5`w7|0U!FIRC zhG`|9z0{Sb;;X^6xf|wgufk?s6;d-vahJV2r;@63ZC!Gkx<3+Vmv$GMV=BJ7%>4=W zc(c1Rsk(cfx7CucHU8LqRDPU{yWj49-{*ba=lgx%r~7}{Y!(WBx*u3B|LI2*^;dYI z{fufs_XSfzQ6EtkD30QE5h|*i(dn?PkLYLga4w0IL=7_ra?cPkMoVW(p={(zBV|$3 zj45iKF-I*kmZ){cO753M=%{VR7A>DCkJ@MKQD%mTR?Jk8XQoJHv}&e`l+6)G)H&mf zR?k$EYfGdi>Y8yyYiDYsbu)F*`kDHud&V7Ym}$^adMc#9d_+S%f99;8=+vv3CQ|2k z{+U+#BwLti4mDpM*Y4)eq}{3fwN~P24YqdHQS;PHD`yLNxpG7XuG+|z9j`*RG3sqU zMa{IE5np$xU2DfzhFUMbs=>{l^EGr-tRmF*tU5RQ3{sN_jPx;I?e%5{EK=I74o%G zyhBGlo4RjOH+Qa5*Gk@`uIhaCpCg-mI>j1{#o}U6498=_BwU-$1;tBe!dF6AJ`s)u z`NfH;&rt|{2E{%bzZBv_vDr|7$0kZ8l;d1DHXn!tWAlmNd`M87(Tjm1x2vNeem)d< z41(Y@D&-TSlcRy@3+K*Fy>@`9hjatJ8@?8HHA4pH5E89aXK(P{_2JC$&=$s zCEl4nJ9_3!{+{vtYojN}0eed{BnT>=KD|PpycFbxka#vI&R$Z=3$H?guT-fH#ufv@ zLTENT7Y=c`0Vq|o2{9mqzLg-Op1qWaT@e&>I2a2CV!>!gsS0zUm>8ae#^L!uoDW=# zN0sWZ5QrusVmNSdQ4HmQ)d-j3i3k@EL_WMw*r0M&#V!zw^U+`=ycFV>eBO?rFe`?m zA)mlXthXZ)dN&loPP5lIKA^ZySTaY#g7{5<`nF;V0QrT)!a|%ELmXTRg_kvtk@oC~ zz^RGXrq9n3JBlI!KN|jn&D4D{(}Xr(#*C)vA#M=aCsa=OcA zt(-rLR;?^in)P`6{B507#-9)o3-Y^Mu9foVq^00_MgG245-YWm23O*=~KTpl--v-_#X|Y{>1`7V^B9~kc=;YkM(QtF&4qc_(J#? zv-lV#tE887OAtp~sRM2|KR2ytNe3;hpJ)*X#o3ZN$(jUcobAdOz^Vq=x+TyBNq+@& zhc6d>ISOT;XyZug#UfHDc53ypebQF6PIs=(TTrK5vhkhIJ%;jP+6!aK+5(M-;McpP za^CmcaP7|v7bL64{cg#AxnFypKTC{;=N_$px`YF~ybOy2 z8Z<4sN>%_ymGHl+$TLTgd(JSGtmaCSHASAeIDN8~t4P+t^LiMI8~!)I|Hix?=lX3b za*q{IoTpLzrX)$=+gWv(513Kwpz6IQu8NS`w#kFlm}duRu`gQgJgeK z$5(t!&72KESmJ(dWEcgGQOoAHLohCnWZ;bw9088*rd2YME91KqTvfvT3R0?(DlQLe z?ek~JQ-F&p*(xHOSpLQ$$A>? zlO3@FJrT#BR#WP@d|G>+KT9qRmeBOv{HTY~cR;lZ&0P|Lldiwe3qqrZkl){k9a{Fo#f}*FlOS~Kkd-u ztiV?kV!jAd!~hvw9r`5jFcP zsu##1tMP)DAd)di4Dn&_a#iHagU>{t76X`X=Etd(a?!!QXVPomKO1`Odz@a&B{z4a zs-iS2@Yn?-e0l`ewMRG2V6Qx=C7>(aT+bZF3ayW6Rf*)C2RpGxcLq?qh%A;!1Ifmi z1)=1w-7!7fZCEzkJe#*g1zhdaxXSr4zSpjjgW@+e-bsU8uO_d_L5Kv0APU?Mk>vsS ze-M1_+qs%xC8bW7OL(O=sYPlB%aWZ_!%Eyd*o$H5KvC)qYyE;g94uBt4CMM4mP({D zt}j7>rL2Wmt#B@pi_B*A*Yr3Gf;vX1(~ISp9;IHhyM;Y+{b+8b65?5n(hz4`vH`Y3 z(vUQW_XHC}RJxlNRo@1sd6-A&43xAVJaRb?BNbTihg6=z+<*ojeaGdXhJF4FTpIjz zNTVx`o39aPwdc}7t$hKna`%u^U_*_`L((A?YXPuUapnKRvn3SlAE)&MQs$Bzmw`Kv z|MGPt57I}&2yktEpM^0ug0~1i-U?P)ig*_35X|aJ=SuS9eQqr|05UaHV6P7qvDdj+ zNiy@jPiRpa^64K;lZ-bXJ~!?M_jsCOnCE9D?E+ma8ciOKS&PM<$-~lNe&D$=87?}H z^%O)whc*6cJkrj%%APzztjYoKePhxA&}Nu#CWpl<8uz7P$prXRaEFSny5wM^=hrka zIU*e?rt8v(hKY{4Ib@*3Xs(wd+LPo_pi0sE($N=KH8@<9Do4RCgO|sjc7}*-Z+vqI zY~0c3j&F{AO?-1q8_%z%Q_@kcuTZC8mOz7ETBJkVkt-Od7^T{*ErS_SK@7GCHMB_P z&~ryJ$Nt%P=3|e0=C6rl3g}y4NB@5$LrFEl8z3ncKwBJnPtT3~CM6vmqqJy^Gk$th z(*WXcj!Vb6W5i1y%*K6#*|@Kd>r2*1u3~;f%4z=#tZp3#c|G(S$MdsRsa|+XYUgKQ z_VW$!Kd%??GdF*MmF`ip{)w_b4i@VKtiFt9F&)WbIt-XT|NIH&o6@1;eHFipzFGB9 z+Uy2&+ar+~sGwgq->fLG*~MlIV|nWXE&u6e2TiJ%e_XS`{^sYRO`5&R?kN1Z)F2on zx1g6A`MQE}Jw5In*JKLD*T_F>MsP}Me1_dAK6lKmI6$n%OARpZbidyO=X%M_*GdhS zW2%KOJWB3jcdvlggAq2o-(E1nVw^jzQ3u9V9H)kSjaUcZ(e@08FXiih4McZg4gSb8 z;7tIOr_9cZ(YYx1ZA-BKrulK8uk#uGzFdIiKe9wiP1CTCql5oR`f5SRLy1Q=I z(wrW4qnlp9F4Yyz+1{jDto* zF=c+W&8JbeV9lbkXjD}&Lwyt0=90c&_bpp*enTx?)fF2B&}I-Y&+lwL9kYGU#B31e zj(y4fx&BLU{_ZpSAAN!T_dm1$7op7mdK@#~E5SJk*DWmkPKVzO#n>Rr2d}cYWiGJV zmU}nLhr|RQW5r7$_F_m7*@d_ugfB**PIl9rO$b4_X2m$vjd3BKg`IFVe(`c>RuudM z{=^)%=R<5*U}IQKfZchan+=P2Cx{K=v3WKeA$lQO zf)zv8L>2IfMV1TA1p!(&slLF+XJK2Oy&8^0Sg6GZXGM01y%>qlUJ=;%96Qv%FV2R7 zvzHLvpdesn92#!sv%wh0<`N{Zc95MXl+mc6b~*~xNC)_kO)NmQg&;46XA_Yi4*<9j zT+fHt;G77=*w^PpP|;9ONbn(!^yFvHUy2JMc9suAm2i*^0&Qj!f*6m6mk2Ro_}GQt zLg;rMFkIk6q3D8$U0w`b3cec#GL21*PqUL#=YgUNks#0shXRAGfhlWMh!@0PF}}0Un6#9P~NQ2V;=h;Ac+;V{AAI z6bFp3--Qql&!a&|PsyVFW<0@0gNy7{Xo2*ei^CY%MPMl#6h+M20L0+F5Rby}b99UI zy~qjVbQ}QlASekW)t|t?b$V=)YV9*@W2-GW%GJ^C8 zsmjnEx&~|x$J)st#rXWZs&?o31Yr*m%3uVg4jB@G3Q(Ml$L7NG36e2H$Q|T3VEeSl zhl0^;r-%vBMIjLui2x!!xzNSL{5+%=siQne1eAbK@JkZ zNMuoMx->9;4U&66ZnA~}RYF``09hvH20Ft+kmrMo-Ryi^JjA}2inz(L?=R=E6%k=)5G2c1%=$)#W0BS|0|Kwm!*F_B10BuECA zA3m$e6B`LfL1Q^MgC&F^Xo*%V3^jfg9vou5f`3Wh%`OF@m%MoX!}LPnak*~Z0oCJq z$bbTQ4lM|5hd1m~H3RdcAi)XrTfGOyI!=g^m&rNMXLv|R*dh2-OXovt04Yu&LV};i ztd*ss=lMk>Ey$s2P4a`DW1x|6b`f<0oGS`YQ0RfNY9s(w@Q~vc1}_jqT>R`CXr)B3A;dNc ziHki%)IgojjQ5@x_aDVf5LLPlEWP&pJ>?w&bf1Xvp-7mh`_-@rxp5+P-U~GGFTDv! zLlq934xlT>!3u%wqk{uM2o_jtVmYn`!Fxu)pm2*QX#&V3`np66?Fn%fAb#Ok0wke% zX?*%hcwqsB!YdrgHJb|xVh=j(E6^}2Sz4DuViw){TmqbW)*ASi_7#pgXKK+Op+zNAzMHjVjC>t+4fmFwA zaACyD0pyc8$f#10P!HNnLPV17s9rwNUc+Dx2jwTG@cM5yj$(qTHa5N$q$yDXhrjug z|GG4MGUtk6SUJj~!BE4Yy&)p_au!lR{eZ~Q!k(r;y&y|aBj%uxlo&9g=Kz?&g#|GD zss{p45eSsf(SpN=q)dq4K;}`r2(Bno#GJ&)Ul34hAbiFhSG$oRPK_PNiGq2#2 zh@L|)duZinPX|HwAv6PPk6|A8L5OSP(S-!6DTM5?Yy)5;kputI2z0W569i{v zJd4e8;lA3T)_$q&y(Ft1-w0(rF7&0D8hDn~fcKK~ z?>YYP^k+-IeQXw;f%ZcYh3yR87i~~@1rkC(f~~x_VdIh{sOcaLQvYvsAHho)H?0P0 zk@|xYNJrOA{yya^QS|;kMHf(X?+OS6=7nEIdoMw3-Ya6b8Vz3SJ+Bqc@o}8r^+v<9 zd>llNTwIKcy?&TUzS|2CaPPt*xRls{zkgq^08XH10Zcn)sP_U%FcrKY*}6Bl5cV%D zerY~3ABsVc%O728Ko>yrw*~(Zn7#!g!cl+j@!x__3l2c?uc=>Lr#2je9}lkduLOVl z)wE;qmja6Yx9t@$E~P9xJ&P52M#5*9t&9`{e<7wV>L8tYm|da6hImw)AZE4L?>nei z!r+qy5oi92IX90}j3iD_%;#aAH;yhqDOKl;iUFs7N~todgPsTW3AQ<)DbhD$-=l2QUu zrefrgy}TD88jz<-3D{pAO&-tS%~Dm1p@T$}$0bdecPt>w6$=a{YxQ`X@9?m=O(|CJ zvalKeF-}bMjVfkMzXZidCXb4RL;z&csF=k|uts+&9^n+aaI#FUa+6xcQ4o1$*Q64> zQkLbNQmHwuKpvbuMC2-KrP#AhDEHg}FK*%cTi7P}F3=y%kHTOOx#v|a6b3S-P~YuR!SDop0j+c)Mb8Hm zrl97L74vMakzGYWQ$;~xa?bz;%xH0x2_EOOswgVuXm0W^3JRlOJ|GtS`~7%)uK);` z3+njWaAO$$3#Y)IU8f!$q3G)6@NM6x7gEgw8SCJ7d5uhuZqYBL>6f+{$MT!sv42sb zx0QcUVz66wDTCSafTm3LZEx4_z4g7fQl^G&Q~8#uHf^f?Zg0la30EK5Kd^t-m@zfp zuXHYlzvI7tYNyP$T=DJq@EQF9opMfROy}=eE4S&&Et*Z!?Cquu-49nEPJJ+ya`$KG zecSei?@DVE>sRlV+`aIl6RC5rZ8lA(8qaUqFQiNtcFL+!Wladq@_}WWuGrPfo5}CpBa1mESe5wycJJ?CMU{jNPEqHDfz9wKwQuVD|qi zU~J2sD~WVv>qeP3kCaSDWV%A8t7W?Kk+l@?DW@tbZy04~{SC`b8GYkh-(FmPeI<13 zoz=@5&c1D@Yo&VC`*Gu@v*U*4ev5ZC{C$6BU_9M2o-)*KXRimx(k)|f{aKm2u%|Oy z^mLk@mYHh8tDhNR_`oJh0gYt(jV=0}H2scN=@C`}oH{xI-h)!ge?kX5TUpGQe0Rm& z63SS!YobhbsWPu@YS=QhrcJFW?}3czU}49TGTr#7420qlO}Xm7lem6L_I0HU_39C@ z{=PS5aBh1$zJDQQaP3;C^Sak{SgNF2eJMlTc6aY5Fuo?>RgXVqXq8($aCg^1wRfis z4LhCw>yvVO*Y#Iq|Gt!=`hH{gW~2Z5>HEF|o4#SZ!49lXY_dnwhKB2Bmb+Aj=FnYz zD`VPMi0vEOw0+sSNxNm*rHV*7WvtsWuxSIkT9YyOcFM|A)m`bbt~`u4GNzuLT7Rbh zrF88}Ur=La0sEZgKNcB`r< zUDcEFPh_fKAk`mPZdtY+wX)-y>}V!`y`UNul@CBQYT;n>+;jM3rY|-4@&@zr{Q?49 z28`f=%(OuRTRGNsKCn=rfRp8a(AyK z()EKN5Zzcbl=!^n@@H%%gz2r#*+5x<*5fI%GJJh>`s5WYvitLqiaI$9KO?hrzO=n^0EDX zn-6+q`__ljO$Q&8Pz`N6&7GePti89{bvV^El4?G>1AuI02HA>xQ(^t^ zX74eu94N7+E6!Wxn{?9`WrlLg4L#_rtp%jV=9ihKRWZeMJp=>ozt2=HPi-=-tM8_n zp4~FaTniR}cIVj&R{*L! zIuGACCEJ~8d$WA-Xqp*XwywOnW>c!z`^`N#e3w^td1O~NltI#(_up}**`u9b+liAKKb|B3T0Jj<%fmdw%Hruwv4yM_` z9|SV&I9&an{d@LQ-*|>Swe9I&KeXPx={dIHJ|??5w_N>cSO0ov#x?S&l&W>7-2RNK zS8nJ{H5^DCKAU>=jr8F+WVZ*1?(WgfI|pChIyjX+IJJ53)fM};tMPZ}k7?O`Ms{~? zxd+qkK|rOp4p4D>0M9MZcX!_pnlkQD#Cq!EsZ{r9#(iSDsb}psQvPF`O~*G}$3Jtp zL5`f=TaJBc$G-KEjAOKrQX)_a?1Qr!cn-oiBDWj{`LM%_YhpkY%>@%ne{@1u+!9h z!z??hZSe|Y0{ummrLO!TRd1_XHiD2=)NL_r znqgO+8K!-Qsa3DG9gQ*y2#8_R>fnlf!*zOX^aoYzZ*BIU_(}KayTMHNY0wsD^`jE7 zE+8(BhLzWDjjT>=RQ1S?)-_$);Y&GMcO0#$j^Pc*u;S=Q^^DwgZuFe`%u&000D6D$ zx{j)7yT^FJBJCP1HbA)cyPg&9-}zR$QcT+x(*tU@7QOpYis{KPXCG8kSi+I0BVrtZ9U*O}@% z{isA=Q3>K{tIGNd)bu{kbf7DEkLCDUNxHgg{nZR}04xm{PX|@O66;&P@rEmF_d$i+zE;^IxSHQLHTkrWAegq z==zkkE!{f?z_#eFG~I=fd0-P1rh-ki>{}m8F~eX~fVI_{4{cg)-C){w=4~CvWJik{%G6O6ooF`DrZs_chL|Jkm)8y7OKvcO zVEK0S7DxGm5^F{Iu8XR0?WIFUcZ&8F3co~bWs?R70(h-ReEoV!ni&Ay1WjdA45loh@MKiZ6Mu&wUM-EIMs4!v+D2$eRy}G5(C~xXDTU^^~QmJAuWGv zqs(>BTK%y<-F>tW$Dqm`h{zgqtecRTmMx|$&2*86paV9?hm#*nrs{isO#45xxmMmu zH4J>l)ZcTo$d0BhM_1a>wf5^kH2~ZUzDlv+h z0wjc{STF`|xwYdbbn{ocPH6GfqfW}v_K-5!Y72W8pX|M&V~g>p8UI=`!;JitaecL0 z0gb*C60n}|-x{i}=?#D8t-4lbNR?Qx(fW;{(WBQ!^nW=#I=IB@cl-uC4wT?=r0G3Y z{|mbF+9BgFhIM!xu`e|ke@Ty)F1d_fx{Pq~C2M{Ujy~UeF5_1&Bb2{l%~GfFE8l*} zYy3N}5z56s;DcZN+WP^Y%eb-j*iU;sfqb^4M1l{oNTpI4yntl>1Xph1Hw}BvOaGE2 zeN98&0PK(8c1SLHESK7rUtM7_cTe3Zhg}TVC5FXAvM#M|9K&{`mK8v9Hq<07l5>LT zYO@iNcm}&Lg-z8;K0R5vQ4HA7XHoQX3p@un@*zCT;Q{yB_)B;QpBp;0Dl?F&r6{4&#}crJbWqOrpv!_bd`K!94yLhH%B9kET4-EutZDV#< zR*bNspAB9K`bidRkfhCO*`OzaxJ?TAa%8s_%~BLnQ`t+Q1P{rP;aRXS^O$6ODGJ60 zq!uiP8AT2rQMc)Jq9|7N+eMy_d=tD9t)7QkQgknE_JoBCne{m5ypvfL=!ozX#P zcH=OtXg)frqby)%8}8E;+q84nSOROS#!^cu%qprHo)6k!4p==^Rrh>t>a;fe?;|12 zpX1BWpTid~scf>Hf`Ng`GWJqZt0$3#l#ofIQv z!3Ra+q`qWwAMS%M{7ph)mg=_t3pPXF1zWH2ctrJJckm{0WB(aT=*xJ#r%A5?0RjNq|1ROa70s1#Wahe}4d{rD{+H7=lKIb0Bs25y^iN z6wLe|Av!<6!+(N9jyVIx9 z>hxbwaQHc0s?-0B!b3TwtN))=-_P}BaGQbyEaF(|Z`5p=>(b`BRDJKJx$kK{nW`S$G@O7XCj!IWc-?kmag%D0>l?DA zo$6Ltd(rh=pWM}#8hh?pn^*lAYd@@psGEJOjX$RQcJfyly6+deR%ieywGF5nBvj2x z?Iv{srsb7Ya&@g-Qzv_U_}A>k)g0C%yV+eQN9(F&JG)zgg&k}8t`Q5cno;4{Eh9x( zEO73cNzp=8d3LR&NMq4Pise*&)2^Kq8LGT;w}KQasoKWfDpGX7!i?GzEJl_(zNjI0 zU#ry+t1pIFy{=R?F}o#jCTPJqixrksq_Cvoge4UvEU6e_Nks@tDn3|J(ZQ064VI4U zo{EfHXOS&HBsddf;G9JUODZy0Qjx)uiVT)iWU!rdWx=j tNa>6{vdO8==vUtPiK!cu#@O?vfTsM19bMzy`akQgK4moixj_fV{|7L#xM2VQ diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/cd.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/cd.cpython-312.pyc deleted file mode 100644 index 8c9d56ade0998f2082693dbb3eae35ffdf357d0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14042 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 U->}zg*^y2<-0;ML7}cu&57-Dcng9R* diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/constant.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/constant.cpython-312.pyc deleted file mode 100644 index 840da952449b3a99a554dcff58a6d10004ba5ec5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43304 zcma*Q30zcHmOuWARa|kweZe)NQE`pgWm6GZ!eSIPSn^7EvJ@#O7orJ^3%Fu53UPx3 zqa+a_ngns}>F)W>bkB5~uAXVFneL$*s(?;GOpnLTQj}9lhN3E}DPJitWtvPP z?U(OY;GgMV5Re&A5SSTQ5R@5I5S$rIoPU15f{@G*N(bckFBp(HfYO0T56m27QY`*C ziW>BuNe#9HS%P!?ECH6l96z<+nZV4!YKUcs+W!SquMWrzRR=;EBqTq@GE^P>k%{%n z97fC#$`_hBoTQ;b(iC+V@{Ujkc=H}NslypjM||YR*8>Y9Y=k;ehm9g^q&ixMjUjBb zI#!2`BW$cXUWZK}Y`i*AhfN}Eq8hHlCKDE}PSIgg37eu$(_zyIo2JgtVNVe@L!GI^ zA_$wQ&eCDC37e%pt;6OJ_Ov=zhs`5wt{SPs<`WjFF7RQn=|VymsEd54x|py<>JlCH z3}H*ur8?|c!j`Jf>9FSsdro~phrLMH3+hWc>}A4UQkUtlD8iPh(K;-KuxK?_hs6;V zt1j1JD+pVzuGC@igsoIp>97RCR;jCXSR!Go)g&F3OjwedqQhPxEJaP#VQGY=s_8!L zf(drbAUs`N+s;a{*gsJKl9hO7b7ByFgX@upfTXk3-VO!OF9acbCzFMfmtb`S+MLO(t!irRz z4l5?irk3b1J7Fd2HXlZI-A?#6b%zgEcM`TkE!AOf5LT-0(qX#^+ois#!`>q7O|?vi zl@nH`R_L%w!Yb4~I&3dtd(?e8Y(HW9)G8fTO<0wBK!+V9?0|YmhaD#Dka|Ri9VP6D zTBE~`5muwVt;3EJ_O^OLhrL7C3H787J4M(@wbqA`UF!(1Rp0gD>S@B>RnO?KvxJ>d z&*`x9gq>6Cbyx#o_3C>%?0v%CQyX>I1;QHD4|Lc?!ah(h>98ikE~y{tFeEV_e5ih` z!!8r{vD&P|t`OF&w&<`{!dlc%bl6qGK2fjfuuloQrhcZwJ}2xmwM~azC#+3v_hDq$ z8-%y3H+{Hzi?EyOZ5?)pu-ocg9riuK?y7&I!@f`0->5&(VLv472kPJIu>VKc->QG7 z!~UMIzf*st!+uQIkJNwAVgE?jKd3*^VLv78C+a;N_61@0)Su}v2Vp-`f3Cy+iLjrm z|E$A)LD)a5_jT9^Ewc4s#LKrMh)kH(@<$uMYbyVZG{?I_xXLzEppw!~UJH->Lth!#srjhx$;5JtFL( z`dEj3P1s}g8y)t0!oE@epu_%1*dNqC>98k+{Ym|^4*O5S{;d9&4*PGy{!9HIA13Tt zV^T##HbVU$q)a{zlApi@ijTj636P9Gm_P#)B$+@k!3L(EWP-tj7?}Q&2>~;}zzmek z05F3L%wWk30yD(Ggi2-zn4t!SqDg_`Gu*(8kk+PTI~nX$9}8)kWTqlL-N4L{%yckM z8JL-pc?wK~fte+l2r#n^%+r#Y4Q7sknJbw&VCET^NXg6tGvB~0kj#8A3k}R7$t(o3 z*uX52%wjOl7?`D!c?Qh02Ie`*JPYP|1M`Apo(J=yfq6+XFM@g5z$}x@%V44mOtfU8 zz{L0%*?O^(jR70yV<9bur&&1#FIwg_J894QX8*4Jl7DTang9 z(~u~h7AQWtm>LpA)dIyw7g)_iDGt~Yw@WwXz;GopbpGw19L_)r@@>xFy|z57R-4AQ!kkYFuJ%M z5=HI;#YY#tL!$Uyp!n!wct{k*3ltw+BoB#Vd4b}ii{~Lh9f~nNM*6Zrw`R#)26M&7 z$kuC->=m%BJ{Hm^l4(Wys)4yCnX6zvH87t^=5sK*7#|Wv`8c=ZbHi}WO?k}?Ft-fM zZOPmMbH~8kmCX0R=wf_G6y*yPA6=vmiDG?$;-icAAyLFHP<(VzKO~C#1&WU@_J{Oi zslkts)~x^_(HcOY_~_OFkZ2_!P<(W&0Z6nS5GX#nH31}A6$lg`-O50=9<2`qgO6^F z0Et!!0>wwSQh-Ej1%cwDTQ5MO6@x(W(XARF(V9V^_~_ORkZ9!~P<(W&2S~Jj!1*`$ zbQ)T(OWLjzjLX2dCF26qZD4vN(+#HA!2DJ+yHjh?|1FvS zsqs@49pk5(hye=5&%pRgCIC#JfeDgKAedkS(@!$NU_uN`f60V^8DL-rN@f6PZ^k*l6eYDgn^kQnFuhm z4b0P$nGI%+ftf3rIbifF20xWo41Vf-FbfRVER@$Q0JF%zESAh7FiQ-~Gm=>XW~qUB zRx(S$JZE5@m&^-bUNkT-N#7n``>7dV))=mNRbI0O%vuAp zPBLr3WEzk%my&88JH}|yar~IfiX*FGZ=j&@27Gk4-||pl83}mJW!-_ z45j7D(sICP24<^dG%$GvCSNiIV02NuY(0+T!GJ9?T=%-X&IYE~z?4X)7>wP(Y?F)~ z%yt8_Loz$Tlp2^fBvT4zmx0+WnO$JsG%#;TrVNZeUiVWuUIz+BAFunV9IpcfqmS49 zRF2nyg4u7Vr%KjS4d#G>IVhO}U=A6W!;(1y=BRFtUfCDQ#mRJ3PvB5`>7n2`>AKaob#0k>AWnh9_a=H^PXhh2h(U^IQI5K zgzcwZG%%OsH5b7&8JG_x^AVVj4a{Z9G=tGa*pN87_ETGt{={(2Re8-dF!~tUPvsce zPyHNBo8g-4@|rdpG%&X$a}&&M19L|*x53;sFyE8RT`;=nTDBfX*kHiw zBWynzVFLxDkFfn@gbfsoKEn2s5jIdT`Uu-k{jt>IM_}|3wx5i!fr8OT*nTp?1`0+W zVf)Dl8z>lkgzYCIY@lFt5jG@_u7M)`&jt(qLh5!O%mV}Cl+3??(Z|q!GKK~U=2wPm z{!L!jn1PZ(+X$_T{&* zuYmPM((>AW2lgM|%I5+0@LSkJV0{ra(vQysUod5cA@#LIM1S9icNKCJq<;UNDN{sn ze<1vi@?8fJJO0Tsz*}nOD9ZZ;dBqO0i0?#f_vbwdQseLuab3vP=lJag{qZ9yc;ANb zo-LzG!FbE}qL~x>H2F`d$t26fJ~mvuXMr65#cx_5_1~n||GZ~9ZmRKD#U1&pCMo$L z?VrO;05O4*2?7%=nSMxz;L|_HkIEQ8IS0y|gTM@yIfodSP%uL!GmMzw@|qDOg-K~7 zNu#7RnxrvO8cWhRDUBy-f|MqbG)YK!-r=u?lRR0nQ%IUBrD-Hhm(mQ9o|2M3uJx08 z&Lk#6GPA(UmdsG3LuLAD$~8yknoH6=DMgYrUrNCwEs)Yek`_s6F-c3LG#KR%lI1@` z%u>k++lw|J`(H2-_w0M3HJ`)h`5e)TFBnqK5k~DssaZK9_lswO;Ng>zdI>(_uf8mO z#9v(oDT>-Q8mSmc#Ud3)so6*^r_>6hR#GY+sa2FpKx#Fm5|K)xR4`J>luAMB6-uQd zl}0IXr|Fc+Kxz%8UPWpxrPd*pNvZWnZJ^Xfq+X*`7E+t=G2^otpKN?od@T5E!6yfw zTzoWqw&IhAPd+{c_!OQQg8QF>l$GwkNcNwpxx#y1f8W&Ci>5)gQJ!Lv2U1DqbR6xO zGjQCN`4sx{RHU|VeMR4sIc=G4nPGV<$KP9;_na9auA;hj=;{(a#&zv9=u@i8BU*s- zydm}3mH9OFbbocXK*;~!B+qzDdQBNg9CZJkaSc^H6$IA(%U2*m(mH6-jUKtl1@pfmZUl|jl=66P0aQt=22qL{C5^Y!9aV- zmaL_Gdd3-?vw8l~$c2&4AOSC2z~}i(N++sXcFFqU65G?^n|GF2io=WE3!>q*$S z(K$FSDJD5KK50c(VpM8ET5mYCaQbV7CC*{#$;nx1iBYRpXQjoxl7W12IUtpL!?L5C zp@NK#U(rWt${#}&=O|$@l(aS;*Ja_-9`nc!Dg*c zWQf(w**2|2%QokSCz@?}#afZb5xT-=vE+rD3)S!#YY}KoL5n&2#q6|c`T0UbQM`5n|9v%VwKpyQTyQA#J{F4%_nu2cW3`sK=n4vssStjJ*MCfZq$(taR4&{>dg%uGlE9tXuv{wI} zc$B7upw#}cmTjm!2Q_JB0tk+_6z0I$H3jcvJNvD$+Y0P?xge#u6>VMub^zGGWSh3r ztd&tZ-CUsMYsx_2LFtx!dyZWz6GCtTdZQVdD}x|~B%1ThJMk&d%7h%8rWNKw)D#R7 z&H$JKRf(kkYBLNmL}W?VHd}-llu#ih?lcz)!_*6@-wKP>mLpn1!HeRh16G;~bL{!y ztIP$sc$ml#SCXq)i(t00;i65wqTX=zV9@xv7MnHCV$qZl$T&TtP`DNx1lCbeL3q?= zt4+(%3gJp=JM;5JBNuCBBXMb9a!xMpr=HTO_CnG6qkspe!>;+(94(wA=w>gpTD4_D z3XHbrYO1zLr28S?W^>_oSdyrO+yaYDQ$~XdNwgN`STXbzYAujU=l)e{_4O`I86)ai ztrcvxYbi*V2Bn)dbQi5m2m_KV+rtU4TeJ>=45GSmg9V$d`RGq$g?iC;+_t6IqJ={& zg|=Ea+NnTm5#qG}qqphw7)J%cuc)9hA%>*c;m{=C6>?y-xx}2ODdUk2T5T!9@S>$a zDD9V=A0Csd<-s$A=CKFppN=o7I$X zfWuc<3N1GHVv4;myTnd&omM26aVQ^SA;!I;l42U;((Ie1sMU)cp)q!w%~F`Xv#*`+ z3HYi1OX)3ETVHNvGI9^&F*je!v-A-uf*6=&FW8JRdAZeAP^{Ge5@Vvxx*hI>u%vWk zqPZm3QUHy`sGJO4%_UYbc25O4Dp4!WwxD+vTCDcs@N`RdF1nMj#5Ay>-kB!_6QSK^ zDb|(=ctWxm!%fG0Np2D5? zi$#%}%_YU!U5KUAj9Cqqkk?^C^oXosJ~zRgu>rv;Gle42HZvwFOL&S|%zKy@m5BfC zl4z|=aDPqB(VBwq*pyB+)NIgE*IKiYGu(JP@(#%7yeuXo$fgOVBEN6$-mqF_g=#+TXV$HFci*n%{u@>%b=)*pj zEY>{8s40=iJxk3hzID-HjSAx~2l zAj_n_UL~%UQ5dy9=B<)k_~k-Tr63K;Y04ttQv~jv(E1Em>>F~!qqMt;$T(`9wpE04 zD=jkQTTIvaxUZT;;-~5xK(pV$gI<7+w=-;ez{is2i&(mjDlhKGqT~JPG%r zX^{dN1M3vPTjC4FWMmjXmkGXKO0GGlcutX7D}(6lpJuk(%*DAS7zR27Kin6^`I=Q} z5?3Z5+R6=Ijfx;TgHkP9;lJ7@!Hv{KOMRE2laz^^{Z^R~7>ZfHL*yMM!!BPwj20gv zUjPQ(0&NqL-;oDp34%g~H5%sA4k3<8v{*_IO(dFkA_}M8$)bmjv4DNt?XZb zjw3Y1rfmZjo>7cx(3eB`SL7JH+Pd8Ub^r|3UlC=qpiBP=@c6&zBjLUtp(%exmI*X- zAryv-q+s&Hl8UB%In$?ma^4yKo@EyiNA7=b_bC=k8w zgldIa83e7KkQib0LahUWu&D@G!sD=vE$ORY@dwpEIbRKrFG0YQtwjQG2CcAS0fQA} zADd#a6#ys`Y`+Y#a1--tz2FCktHBpjRU$($<|2y?E~5lMl@uJX;>tB|Bkf2^E-o+^ zViDIOq`>52a}HKOfg)dA{$_JAbdH2nIxNO)&&DEOEQEm5;$gTL$<4FBu4#9L z7?f^Rb1|$bLAa=&Y!nOw_(JYq^xx%J@&X@HYy@^=F&XEXA}9 z0I76jd|_X70js2#QHr>YO@a*jHkq4`w#EV-+>n%Fb3UR)T*7FJK*{0K?Y2DJyD|_} zrr=OINGQJ2j*S5F+A={X_`WoTLR7T{^QScz6EfUp8Bk~73bW0;Q>zgsUpA2>O3nl*S5C#^Gf=H%LK zT8p6j$K+ZuBNhltbWr}d{GH@3N~ow50dsBv3_(JI87`}7_aI<0#&u{Tcp0WeWvIv; zlWWeywJAdAmuSv4W6H#}LKL0HCN?uVAeD}in-^%^Y>WclnHvMlFi}oIu5~LGttmnX zPPFHXHq^=>X)OW@NyxRU=IsbHHD$QSvH~7kf^y0rl@3a`=iBF`YuG_RBVbbkIRda= z2Q8A=6tU&nOP~lza9>r-!)0NjrACUpA~4Z5AqjW(ZX)Ps$TE>DFx{Mo((j3Ee>ugY zHAab|qH?VTT8c;p#)>ExdlRT81&7iBufiS(&0^49w0Z$6V+0(FUQrw#m1novwM{^r z1Cp?PCBk-bH}ycUxqytJnTTpPn@cftr@d}B+bmiNVA0$=v5RNL9s@E(dV|FOb2G*l znjmZxmkmfU+o4!t_)0UPyKz9mz9UY;#JEXt!(`JMYy<+j*bD93q4r%!*q#6s5{+ic zE4HI`i-e55Id}kum%ETk2PIvwPFo^{` zLe^=>Hn~ss&OJ2C>enD;BH!pZvn_vTc2qkTEd3$d7N`&k=T8)5060lw?2~QP^hXNE=hJ$lJqD8fAF>9&~ zyV1)E0oUVD+CN%MXyI|TEr_iFpsQ+PuhS|r;7~fXFY<%c|F>mghsdrJd3Cj8im$@8 zLxtjYVa|dgEJ#Gqr5pr4JRw)Z_!G`iSsLvQY06>U6~0BWRwnTAe^HXbXh)Dmtc7tS z-mUy-&2vR4)zU}l%2ZnW(7p?zv`B%DV5NM8iPeBs1j-qhWG~J|=e>$_zgT-wz7@N_ znsQT^3Ww4$X&Co0W@0B_#D;o5Y7zWXUh~2Iu{g^yW7A8R2IdlduJ74|ru+kny!#Ve z^1p0q==1(m)SOvp#zTO@o#BagJo~^@oFpGPY4?ba-dT#_98qas2Jd93+!I#%0)-6m zUfW0g4Cq8}pvgg~H&0*rDI(L*1an@Ab(@ywoolhh1YGM7`B_&wNrfE5a zuZqwVJ*346;@gY26`JyI;-U_rnQwzg-zJfQ`;KLJtX3nKkx4r>a~`H`?17rIbL|${ zA(daF+!P$}IKf(C)oOkN`7RF5pjXX>*}3Ryowytm5}qK5Eod4eZCy6b%4>79?*jl#j~yO1TD{;XVpw^>bM96#*QDclC7i+oA`*wvfw7q13#}5b7to*-Jf;!;fQ5^Sybpne_wDu= zoj})%9wD1=Q^+um>2f_ruIc~#-l5pt<;^ry{Cn6gB(4A(CfVWvU<%~Y;mJ1Yd{`%8 z)g?Dr%LFqf9nnZ}5yk}Gg)$fUeDn|ChehRMp2qqKS9%RpCWtZL-rMaP*6=hG{C950 zB0l;PxM{wz!B;HLsroy4f~}fGcu0%X8f+fOjG_- zl=aQHx#tQ*j#|M6YO>W#Fz80q~`~0uU9jk@6{Z$#`w3eUzRT-CSo-hBZ zjPcqge7gwGFuuLjsM|)-k1fg{aa-X}a8U5jSW6j>L(5bg$`;|E;Ateb4{%USIC#WC z!NW)#Ld9XI5)u4Y*m}iZk!R&!k!KY~GVK4APW+C&8{JKn>eAT%z$TDyZ%XVm&58Q| z%@JK1>U+sR1ooDVco85e9`6;zWu-C3j&sMwqi>Orx}g_yne%TFNSY?WB$|gBX_erWy4b&Uyhi$-aMx?YEEY4oM$)8 z$=Wzu&qahd1G9^sSrAF5h0lo7(#1>Y^vohYEp`TF7tN21T;dGMvuaDTZ1P+p&-QE+ z?#lZQuP=y~988a~fsUU;+od2t{fmG2AqSBVmEOf##WmZ3j-21TTAB6-DWA=HZNb>Jg;bH37)DhoI8KPykf1y zg6-_=JZv`=&yyCUDyJhM>niz6d#pQ6Nw0NXX3Y@dn4 z=i<nLQ=<|AKeb!3GQ_f zY!OVi0zJub@rn}scL_^N=CibbPh_5@OBRzM{<2WA(T`vQP=7B>MFl=%`>`;~J#qL# zkp4E2M~4btUc!{f#uxm9paQ8h+dm5QC*ttaK3-s6UgZ5YFR~kWD#UlaNc|;Gm5{>X z5Ydn8C#^{}x*@90sFTj{k$C0H*OH5D-$OyZCR=3t8_2fr3(%KqzB3rTGHc0#NSi~{ z8)W;L$VHd>axL){v(Q%z<$|Vn#T9=m4s@+3$A*U=iVY7r6kT?Kp#tJX1-6@inF%d* zL!fm1&%Hd%<-3ZgzI(BWOlV1}nhNw$A{Ei!r=N7%r8+%H51+DBqcD;FGTQ^8hwt9L z>l#s&Go-+ron;fzwR3<-;$4C~tvHtj4euXdJqZJd@@;sKqu89{fQLSc?T$G7GY+LA zd=q8ggtO5(@>?TIT6|*s>Znv|$pw)M7G&k&ZMpcgkUU zN1tBc%d%LPMK`!C(ZTxkGrlXA>ar}gh4yJTpXa&7nBd~06PMyVP#8N~zGR2(5p%Zp z8ND+oXY+!E^Km~bqUjvGBAQ=<42(&6R@|p3V#$(H@v7vUrKKU__Lt5{i(i4)h*rig zPtRHvpXLmR)^Zk?4#aC5Dqc64gV8k7Ak8lw_^OXvVBi)SBx5N{4A)`ahE9u~jTmAZ zjGGlB88o!DBW)WffDn3}Gpkt3afTG}qT8YCF)?_Mz+aEqB$it{WG6J}B?HangP2GxymG z-6t+}-T1is#Cca$OV_P4t}`uN?MGbu+g&ZKuBv^mE7#psHC;E~bsfFZ)po;m^qA}V zHP?Ylu9`!x&o6XcKi^Y%tE=r`&z=3Q%QZb$u64Cv?7n!o_w0K;Wry4+ue)lFxEkMe zHNV@_aL9G}1NYT;+|_07mSe8lr@C((bsaA6YOC(Lj>}JXpDpXYT-{rF$<_XWtNF9; z6Q8;cobKI!$n`;myXBhe(8=D9YJ2v7*wuchyJla{r=Po8j&@f!bsuSQHJ@`GsPEl> zv{z`-*mdi;tLiiNnReH$<6XDzbXQ#Ox^bkd?Opeok6lM@xDOm~mtAySxaDd;;ksGo zYOZwERQ24cb)By7KGEvh`&n1}>FzzBxvCGl8c(_!o7^YvxK5vTpSsXn@qTyX?XK(9 zUF`>5*RQ&6z1MxZ&9(PZPs63&Q`g+}pLew#aqYe8s@c=K|FHXHOLzMn*S@{(cUs(+ z-*?@qbR9k1b*tW8d!+l!LD!MFYwfAH9srv4#H(dKp zyKYyxEBE%4?RB3i>;C9q*Nykxl~-M#f6`m_uIu_|?xQu`r?2(CSL@pQZug~wuGV+D z+E2L8opGP6>uGIp9jom<+thXIuxsxHS6iF=wJ69r+a#CUw406-t+mD?)Hl=H16r!uGZG>8|U3e zE_9#2&~v-e)v~Yq#-5&w_y*FSNUzw5fQ*Ik9XsB)b?=c=mfx&eng=|0@- zYTVOXd){>zPF2@a{fTRDb?>Q5uESTm?woaha>I4#RBu^*ciruti+j2&FZaH;udA)n z4Hr84eplNW*Oi;Dx=XGj2VHkgb+w)B-G9vW-np*!YWJr{dTT#(e{$VjcGi97iu+u7 zS36qdR8RSdt{Y`N&5f?TmtA{X-DfM^CqC=BQtm!+-QBj=^?7Ue?IW&zhkN($@45A{ z`}8%};dgr9KjNy|@2)=HU3bg>bhC)I&;3Kxy^m~Lig=P*Y!Ky=dboOxAdMVb2oq5U4NqcokQ+})$VhrT(=Lp zj(*hDcA~rKv!06;J)a%uzOldO{k^VRt=-M1x^5kDA1d!Xf3@r8sjllExY{aRjfY*$ z*Ij$=^fuh+t=sE*XJ7BxbG;uP>bY~yee$yV^VZ&XZ};3e)_wkt>u{y(*d^D+6W!P9 z-3Q8Cjr(1P54aAT>plB+_nC566$-3(9Y5UN{(<|%m7c1PT}MB0?}3%BcHKtDe9v{e ztaopl>&QM=TZL=y!LD2H^wu@HKdW+|+v93K<7)iSwSQmtC%0W?H(f_R?>@5Med=iU zjccx|w|mQ~-Szuj`|4bmYh7h^?klIe+COpK`N;iFmHXtC-n#eP=P$Th&%4f{QEql0 zIp{uw{5M^DZ@6oZci(DuUxSBNbXV_pT|DSIe66ePc=v(NdMZ9~9jWMQ|G4MMzTUD5 zSL->~nSHK9d%Md&>biBbr=`+;qrr9Lj;pn-d+$Zp(TeW&_quQFbKQK$Rf9_|^d85U zjHbWPd%Ldp{d4x;VGhB-gV7zswit99FN*Q9{SZbnjO)Gce2zgH!>7Bh0)uPM2M5KF zfC2mVA&g!a&e6qtPaem>?>^g#F-$c3{$rwVp_gC&0HdjE-#(1lVw~Ii5que=IA#NP z%PEYk=pX38Jx#5y3s=#5T!*XBd)#8ctAeAsK0k|g6QlCs1KlS+M+faaeZyVf(DNbg z_`LhfrJnM0z3-pzxp4puf=)^9d<4EP2GlEuVGq~Qt34lHb{#$F`uu~go5#AVKI=Vw z$-W17jN8R6;avLn?RA?z~`=ba40=HUo&6{l< zBHb?`IV&kDF)r<;03rJ2mfF6dJcv2O>QTfLxp~D{zxT^r$vJy5N28E*%-L~xiK8$F z(P?hPSf|P2G?|^I5~oRXnygM!q0?0CG})Y{T&F4DiJu=bWjjrFr>Vec+Tt`7IZZiE z({`t6r_;3AY1-yA<=L7=!KSTFQ>oMRy1hRnS^96vPDG5g;Tf`G!$V@lhR48)4Uc#g z8y>?dHas>}Y~#fNk2e(?o@y#KJg-!2;o>k^9HxrH6mh_lN5zKci;8WAI6Nf|5#lgY z9A=5bY;ky69E3);IU+R|2Lz9JH^yA()rIOMHK<LrD!O48Y<6;)1J zQN5%PRY^(;h44c}it_!Nd}`#=XQZGrXt{XN8s^tohxG92MjDZVqyi~JD)_8JH3<`O z*-dN)QkE1W73o%l88}lt8HdxC*m%NZc!F;)@hL=VkU4yIB87Y!kh(tWP&L#HzBVJn zki|$-QitqBjYP&GJ*f#ro3UCSIfLm{Ctr(^5~PmLaj0sakw_h?i|j+@>a!2~3~A>x z4AtLf9orIE!M0c&NNu4LtMiF7C&zYE(|$hfW$rVU_K7!J zVN$#o7m;ii8=x4qzY%9l1bl99r!$6WJ~v*p3m&rpoiSSwj#-h;m<3Sr;g~Z?#>C0^nJU6Dg_4YUl;!HfbjG|uI3^`JV{RoJGZD#{W$BE0i_VyD>5OTI z@tF4LjJcX{OxPr2+9Mg$C7m$` z(ixLD%NMTl`OqmoAFiS^rc^p(c4vGqt#>vtYk}e zR=h8-Z;|D*Cv{fVOPMX&S>e@F-d81CxU-Ti)mg!o>a64z?5y}yUVmJkx#c@6*+V-k zz4da-c2=@yc2;r^?X2+X%{{TRvP_o4Ezw!Y9?)6AJ-f5gduEUBtnk{qj<2hbcB=H+ zcaJQOJ)yJmjLdgS;_Nw{74m*6*@HVPz3spr-dXvs%+Ec%vx0k0XNAmP(Jael&*`k> zp59sUiNw9_EZe{GZCRezo?iQKkMFGT`WKHxofXn<72G2`E4}qp$Z}*om3yV^Z5OF$ zrMKOso|W?cE4=ORE!XRBUjLH*R_XQccDvY0)Ab0^DK>JY<+57+B3OXnz;#;TC#a_O|? z^5)BBrz!V3m+ZXd(s?Rm{tD^5<=*n8vzAL|DVL30E{$6u@2}ijo^*x^Sx>oizH({w za_Kzf(izHSUwUAgQ`<=*!rLjmgMhq`3h#Y;?dctKyn~ALtBR9& zIUR4T;2YB-D3QS@1$z|dQHbXY&ndd2Sd>CMUldNk9tD6D=lMcB-wH-VcN7MF|9x69 z*%tKy7j4T#{70ef%Sa*c+>Wotek<_w#lTd#Pc>iQNjj5O6b<{-pwN=Sa$nFsU(`v8 zladSi)VbhWvhcby7~cSDHFE1`Fx8zIyS^@Io{0J{N|F%4%xPPL2MNhh&^t;vYlNJ zJKVNBZzgPIGkN`>EvpZ_!<_)T>|8<(Ux{sblCd35XKdNCTz=f9dN0PtI+J_&?y!l@ z@NYM4yoes zsyJkb!z<#jMjY0P!#Z(TkAq#TS-&{t48iwSwp+wcE_gRJX!YqEkZAet8yILf@Qn^M z9MHf(LxgV$N@Erc3^WqZU?JW)@r?sKaJA8J!RZfZd&n8QTq~4IWZzbXPazsfNg+~$ z6rzeq4H|(+7rGBph_)?A1Ja6C$29DU@rhUMzA=kNG};UhW2dvf_@1M9JCTNR(t=8& z@sdVyx|HnT+vy;ENDI=DR1td=Wc42$9 z2e)6h-@#MMQhc2rtwt80!bkz1rF^YMT2NJ_3R#LQ;8T=zco`M(_)RxSvj=HFHX}O< zHTgD9({w}WAJ#cT`o3S}btKY;>_pX*Hl!R?Pl}KMNq=8eVh-a*Ap`cAg?GtFYf_F> zC#^{@YD;Q7(IEJ?juo%S!Kuk^U!CQF`^$qIbbWP-hp?~C@>ucZ0iN8yY~XS7ckeL% z)maY8e%r#G{kK=SlYe!Q<*)X5^Yi(uvoc>Bk7i$;xk>eZxtGiN@{qhvu0Xyz$k%;& zLFW5_gP<>ua{jN*axnMR0jc-do6i1t(HLI^;5{4O*&?fw2l(O&GCbLc3{Q3=!~5Kl zoYv=i)DC1?Uu%g9>@=;sO-JgGiliOs zM75H}qzN^Ar1!!fp4aV?k_MzH=|{Klx;N(!&O7_1ikCrjV;Y%-{E^i0brGtL+>`30 z;(Yd^f`x9ZdnNB?3nP3(d&JGYEkDZfcXfO^&2g8|kTbr=+sA>+@hYMwciQe>q|E=q zyIc2p%j^CXy5PY+KJk{ zZ>rsIrkoFWFYo@xe8GEkdcb>t_b*eH`@AQ2|5Nnqy|^RWQLjNB9Izb}zyWcn5{G@_ za7Y{uB@VSXaNcU$ac}zm z1!qvKVJr1pO-s#94ex7EUrUqkliN|J@Od|R1o<907`cFN;@Tnf*(na>Dm3zl?t$>y zV%y9f7c1yEaflX&7;#uG4)Nl!QXFXZULjJeaiDwqqLyd;Z_VimA`?yGG`rKB?z=PU zYvj4)((94=8=Bawoc&khRZo07gmv@HQLjg}(e(V5)p8ULqAsBdXnZJH9(1-AGkxGE$H#COt?& zQigP+W+csNV4%jM_U-F{KRC>4oE6qQCl1u$V#L9#$56+d=bcDN8`6smLWU!4sAf{c zr+PfdKP=M(qpUz}y>IG=d*`Nb)g8u`?~r_+3Tn@_cT`hZX8`E-&` z@8Y|Y_I&|WvZt57J7WkrF_jvElEv6jY!Su^Lg?$pQroUl)TC3T-3VMX4J%eUPY?@U_UvR zj66CTd0U{Pkt2eRMxN0-8hIho(a1A;wO4g?EPV^hEUE8ER+BhQaXyY|=hkSa|(Z);jj_Vw8b;zdx9c}VH+ju?M(I)NC z#@mS)2Dp8MW>(gg#Ob?2HW}cIdf%vs^Akpe*DQz z&T@lKSC~7*5>Nd}rv$RaJ^yFq~v1aLc&C>Im zrH41mmTTq>&W>j3(apT!*U>CJzL^)!9nI3h&9cWd^BzY>vuyEZ>DkS^5btQ_SihrL zdPXxZ#5FVAZK-#gcf?8)z7``6%f-PrSkVx*O<*)F)7&kFD6+uMPV;&^TJSV5 z#fg-d+nGOZ>l>PW_CAklr$vr6;y}Zl8009gqY3Zk_lvPv@#a5XV-8%2_gXc42M51I zB4%*g(;~PFq%V-#@N;5feS+}rM(}qbdQlIq z$y$w{{7mYlNO53RR7^}R{F}Qc;v@RrP1**&M=wC!VAi%EiN`|d2(uEM8DGhug0gZ z3}2BNwI)ucqhd1BWK<5#baDjiHxYgYd}>Ta;_}sTYvrZs z@vCFw@M8ty(!{8kRQ!x7=S;=VrG`gEC!>-fCHQ`^g@0dl?%cT>ouTrMz26o}D;?u| z8`qb@53J(HSBGZl3@g56l%UUTe9Kl8tbR`FpPG$N zijC(VhIJ01ci)qe@nf;^_;K7cXHYS=wJoYMXp1I(dBhnYUX*wG<7H!K&^B{Ew!3Yg zh?4#DErqtLqM~1l1AY$)F4Si-+Wkca|XcVdCmY5M4LzA zpX~|~_zF~kRki0^Ua~#Fb@;Coe{Z^?c>GN!)31~%-AdX&DQUk{rvFkI^Gju#r=K!- z=bS~Jz5OzxO8^PV!QcDO^C=?U5pILGgPz^J;gTHEO{9)BTr1Pnd4xOP}= z+VPh>fdcRZDS>0^rq}z|r=6bX2_~qY5;&?Zur|AX;pris5Q6&ap#cO9R06|}S!!eI zhab0k1`#w^37pgrSf71q;rl~8LkJ300;e=AzBK$&_WLh;h7vT)Th=1S=$W43gpE)F zha3y6QEOuzp_4sfgpE`J$JQ;bA5mZ8827Yi6k($c`Nj}7RtX$bZK;W^o#q%k$uo|y z@dj)HVG|A5B*Ma#z|pWzNqxFw%q-7j!lvl+J)BC|G$pWq_2QZlH6@M#<2};}o1p}T z9t*1}sZDnbo#J_lu$fBW;A(qKdhH^|kZ?}~VY3W%%qHw<12%`Sxdv<=VUbGU&|}kU z18P;ru&JK;ge@@Cv5>Gu2D>aKY>5GThOnhd;K1sPnnkrE9D^o$o+a!#1NJ;&FX(OH zd6BS}4E4TD*fNvB2vH_NF=6V>5W^_e4uJ!z<7%eW1~>*zcofGdCS<*7S1^i+SYJXs zqgYkw(F8`Z!q7WUBBPkk1Bb!aN7R-$hEMY(Gm5!epZ66;u?o?n_=h zs>Zw)Mz;Xxz08!X}&T@G|yU0nUNO977Yb37{; zT?tf-p=y1sV|2u$ct%$l%S~Vue=jd^dV}RsY|AvqjAuNFj3xn{(`0FhZJXwp`?4pQ zQT)hyV0c4VeaWSC$K(Z`R~W@#$fmJ4wtkvp`n?jnOx{AFw!kw;uAaZFw0 zd6m(%Kz;gp)-jq1bZ(QqCB1EtW8N~)dPebw3TVm*s8=0hXL~j>`Wn#T$KqSjjq7q9~-)LH6dFHLhyoaf1A6n`@>aAKXkKK;@n$D~M)g;D&yJiTT) zjN)(Q1x{WwZ#W&JM3LY6CjH zE~9?Yr4fz^b3Mh3mH=h1j&p=g@z@!~U&$l?o!%Dac=~0}c1Cx|5*A;Y?wAni*~w@r zP*IzuKEpA3w&x8-cNz2UX7o*Cxo-pieagUb3`g zIA%WYiD5JrsF+LwYweC<(>-yFE(fa9VFjZrfr@sEt6l6EJlPY^=qjMXqrxr)I>ycQ zBrv)fsIY^jHp3A*^-&_DNkBz!vDaH1W1jXTGn!&7;T1+xfr`Mvaw)?RzR;7#XgW~g z4;h!@9FrD!G8kP0bmTF6ZAN{ZW7I6qtBkG%8qqYpC9uWrnDwG(9iy2*Mf4HY66lz^ z#Iv5!4M2VRdNwlpni0)nbdwP^GrAe5=!N!67RTg8o@_={pgNmb7~KL?XNMd{bAgJ{ zGps()F?@zcV{|LfsSRBP=j0XFqjFvdZQ_pz{7%eoE`^ZY@L;Se} zwnHn~;dMr_IuVv^$Y>%<7BgA`6uqz^u4%Dj;(U*t(QQD{kL#v4ggHh$<=M{Y4xrGt zF06s{-N|SvP|WDZrq_iz22S$4!RRia2$qh8)de~RO!Vw#^i81forbU`@}0LBT^2xN zHAY_3J~M(!)T!BZw-r^sJFy08VeMj3XQ3^#4)-Ys7~J%jIIQV7HY6JQ47U0 zx(X;-{+Ojsc&aCX(bYiFFHkb|i$q3~fa>&3W;Df6!lPFhO$CaUht;UJq%oQfRA=7| zM%Nfh@Vv_CTA&ES8v+~bjln=hst!)Ty7tH&@J3shHb9HYyD z>U3Da=t`hEed8Hj1yt|9jIIW%^PNOSlZm4 zpos9$lczhvW_n&_bS+R_4_L=&rV(Aw=mwyOn7lUI$mnZ8b-gf)(M`q@%#3a}=FMhQ z1*)@-h0!fQbt6{}qq#s4gX2Ep97CpfG)A`?(L6@;jc5U*g+LKydPgoRqeaHNuQQ6h zAbkrJGg<;vr>~vSZ9sjNe6*d>9mc#n87&2>>j7^tx(g^~9E|rg^X_K!O=I4-7+r?t zKO$)KLyKeRG*1-m89ah3s=(R3r4!RQ)e39mA`7N}3NN9!2P1gaak)-$>RsIIqc zWb`$lzTV==VssNwoxWy9Hv`r6p=?G~V+j^Uw*b}oSq`JQKy^0L7~Kj~*Ft%W<^$DP zr-0Eypt^oxWwZ#W&kml~8O1iH{w|6cEis~YMzl&k5f$G{VkI{UfI_nfLS_qW& zUE&x##bad@e-nTM0%9AoBsUS|{!k0^2+*)-BIF49xXXo)eeozZPTMf^LXb%tZw zv!3mY?f@!$XHCNz$Ec@0I~grCqHi#|%ZTn~^i80mxxg)@0k7wmBv*@x(E@94PjfTGw1(rs zP%-`nH3d1w&hu=L1&kINORzFp1XQQl>x|+dCykR!8kRW1W_gMkEdeTKC+RzOMzI{(Op2rs4Q#S&FGszMW3J1FvBq-!t)lR%kW@Jmp7_EkH0{5 z-WS7YEKo6?t!Z83cgY@?YN7wmiqyN9|!tR70l!Q{fGON z4S6_PnK1Q1K>tU6rjP}{?l-VHt!84)s8bV_*Mj6u@TZ)&~ui++nA2L}WOJ@yZp zfJeK>LcYcyVDWnxs!Ry4AB>%Zd&-EK?4K+1JV9$rk$w*X1~>*S^!SVPuLA};1~2pk ziu6N@iMLm2o?sF&L=O^V2uU!}pz1fO3OoZy#Pixg)jR6O+(UmKLxO zk67nAQ%Vse%_1qoGn*tlSRGiMTb1dV zLn5B34s{Gm^UNcOo~AxqGutztL_A0xdTeRUEYCs`@eFn7VXSK~D4Ju`HgQL5}qluq>XMg&vz(GuC5eKs+!DeXI-^ z7KDdoREcDLEWBaDz2Wm744Z`W(0LC=Om28y$f2X_X5Jez z^+D+Psy83!(KYv!kzb5{`fFv432zM8{3g$W7lj_18HEqtar*E2+<;W44d#(Rc}G~7j`hl@0vMWn+-8lEE3qeL2h zBGO|-8eSsO<3ySs*5`UAh_vvK>b0IpA`Sl-ek{>5S)}0|qTZ<@JxvK6^I*`32ZO@I zap-vQf8ekOgU5fz|3M=jN11RD%uzS^Yh^Mz8J;aiKKs~jnCN{YBEgKWEBqRNuf^}- zTxG(JQTLQF4+E5mi2?VNu}F;Hj2xq3r!i9=1O)A0QNE&M;Pm?gXWSn+%@Z6D(jPro z6x44FvW4N+$76#r$}ujwtY7uqpDWQ1#!Yifk9Uk)#quf?GM+`(Bygri6rHGB= z!CdV60Lmk__~cb-frQXz4ChG*B7~OBjKl;JB9<~k9xExPp+TPA42cna*kk;CjuAl~ zGu^?%ErSp!Jyu>bjSBMQ45ABF_=da>ODG{5hW4qnaVR0_@EIs+G2!Mjh7q(W3~m7p z&>PHQgsc?~M99N+BMC_v)mP9fqX=0E$C8!Bk0xZq zr98Rg`pVJ95wZ!cDeY(;PsrK{WRY<&$hrxHqzIRVhOquC69wW~IjOJY_(_y!8C+S` z6%|g%4j{7Ros1Ms?yLRv$&@D-PA~IlQwZ5KwXYoWRDpQbVxUCHW8oj`rcs`x>E1hi zm^@t|kC)GYx{sGaLmVhI$SaNkwg}GkIBmAbS~lQ|L6g5$;zpt~Bt5N6o>rgW2#Musk{9@Eh zJmvdCpg$%%1&3ev8(tMqWx-EH2Zl6-v`lx*T>6Xt&(_TnkDaR))r_cq&e8wbF9M$Z z#vhsQDMP;)jv>$=bFMl!jWyjp8KluC2^LsF97T){GD2uI*sEKp*ANxhX z*vA5g5?>6P{d@djIKMwV9-s_(?oU+MpB@hcSv(W3a(yp#*odgKm-~M&b;h8mv}Z?r WFLhxM$!TMTN2Lb`eJ|}ZE&6 zdrL`VDL^S)Kxu$RZ9l9w36PI`IB zv0I{VFBgv>EfztK{z zlrr$^~X2Rz%bSF9B5( z0g^l@2vCSa)o@aFqgRPjF&Nibi#m+rI-ayG;>yG-*qUyYToI_QY^YYLqLxT4Ry1st zwb`Nt+bZfBFq6roxP6tyK&T#}s9;q8hE0PDObnXo~U)+T+`JP)^U; zCP_1!%@I>wNoU)@G_~hRfu&8oK<#o1$=fWQS|Zj`+R*dqa+S^5)|u3E&!-)okqo?oPc;g7( zkug2m<|+gLYL5s29Z<7-KLY9v#CUeSQ4ic|!Sn^z$_&I`&;s+VT5falFAKM^dSIUG zd~Dom;ccDm@B5I^55+bnAO^npqmCHgjyG7M4HW~oTHZTHS$CVNNsRB>8+Fvy_CEUX zU=QCHo~*g8jdrlk!x~l*>pM)H=aGDDwD-3v*2TADb#Z>+F$O>_K?|-*uzn2IpE|s* zg%)0fL~`jTtb%lSH3-t3nhYF6hvjR~b37ZNdg$#`J)}hzz6<)2bxDgZ3G``@I(}G6 z>!=`l^pU(D#E;=N_X5P620>%2276x(ffxOtHNG$c^zJ9?1%63O)SxzD&w^*AyDqVl zZJkSqMjm2yX%H5GQ>t@2ogauZDA}dH28N>;2CsjOFzgpSHVK>)&0D!h7#u1LhYh!n zI<|`*Uee)UVcw!JoPFp4DSVk>XU?t|8qO1J+72_SI1h&mI-53Hu+1{Gz`Q|Hp6X1i zbzpwt@v?3h*i>0z4v)9Iv6n5pOmzmT@$ww8$P%HrY&(vp1CLDF4BOU2zdSt^%c+#h zHf02ysA8QZJ!9E9-ND6*Rp31s1FVrUB?XnUsh0ML+Z6{$%*Li(qOgpsb_J~Z{R9)$ z(T(b94E>DvLoW`RU8tDE^4mKu+SD^xtWXFV#kvI)*cX^hLC<8k3_a2U6F|n4nD&xt zq@te4`Laq?(~GDA5k1c{gR>BMKgMLS!W$^}jjX7qZnfgr67vJEP~tUEKa-$h#?Qwx z0b^c(S~+fK)A3AurvC2)7GW}H=yjVCGV#kA` zQmR5WN;W%>C*AO@wO~QfxTxeGgXUQ2uYcj=zhf`+zUBs1r=aU@u)>PUxrx%xf5yk3 z#wb6yuB146DJfFk4QUsjcn3`OxFT$lhCG&eTen=v&>iMV3#96}QQgrkhpCVlH*(;T z8|0wl-^3Y8ZR$!4yr;6KB~Ku|2WH$L#LaeGF>jlcKXEAU@X4?%b0xeI+#^p)t{dX# zs^qu=eW=Xy+2PkkE1Q(JN;l*OmVOP89{4+1xP8{p{t%Ko*3Vx5-mV;LB+lM;K3n(Qo+A>b{qV8P z%69lGHwSiJxU!wRvfG=yIkMe*W?gQEP~ULl$WWsne;Jlyp(c`oA@3b9nG`0HGUe|q z`V5~&VREIsZ5uSjael?SAxc<Rxr|+S`f1_i6N3Z-t?7Ao6eMtz>8`0pW5H0ssI2 diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/md.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/md.cpython-312.pyc deleted file mode 100644 index d88453ab6caf60bb28980df4500161022eaf5379..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29476 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 Hg!}&h)QUY) diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/models.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/models.cpython-312.pyc deleted file mode 100644 index c58a45cbd68b5b3cc749fde007928252059b9fbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17279 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 diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/version.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/__pycache__/version.cpython-312.pyc deleted file mode 100644 index bf28e099e9d35aa4ea1090ea81fba0335b20c982..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 395 zcmYLEu};G<5Vezr7Dq)aow`(lr30~`NJt2=pbjhr0b~SZn*c}z0>L4bG3?qDfonX%HU@q7G=)}oa`EM2N>`HgUpIy zV)+&X%=T?=_m&sy|Hw*@aHf1`mnsq|`YP-u%w3wMLQ`#KYV5SU zZEt4^y-sr}FB8HcT#c@QrfO)GneVEvfy%c@CG{IAwc`?ev3Kb8eczZC%2K2~Zs?mMcz Sq52D|-ygi9#%)=;X7LZRk8Q{R diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/api.py b/.venv/lib/python3.12/site-packages/charset_normalizer/api.py deleted file mode 100644 index 50cb955..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/api.py +++ /dev/null @@ -1,988 +0,0 @@ -from __future__ import annotations - -import logging -from os import PathLike -from typing import BinaryIO - -from .cd import ( - coherence_ratio, - encoding_languages, - mb_encoding_languages, - merge_coherence_ratios, -) -from .constant import ( - IANA_SUPPORTED, - IANA_SUPPORTED_SIMILAR, - TOO_BIG_SEQUENCE, - TOO_SMALL_SEQUENCE, - TRACE, -) -from .md import mess_ratio -from .models import CharsetMatch, CharsetMatches -from .utils import ( - any_specified_encoding, - cut_sequence_chunks, - iana_name, - identify_sig_or_bom, - is_multi_byte_encoding, - should_strip_sig_or_bom, -) - -logger = logging.getLogger("charset_normalizer") -explain_handler = logging.StreamHandler() -explain_handler.setFormatter( - logging.Formatter("%(asctime)s | %(levelname)s | %(message)s") -) - -# Pre-compute a reordered encoding list: multibyte first, then single-byte. -# This allows the mb_definitive_match optimization to fire earlier, skipping -# all single-byte encodings for genuine CJK content. Multibyte codecs -# hard-fail (UnicodeDecodeError) on single-byte data almost instantly, so -# testing them first costs negligible time for non-CJK files. -_mb_supported: list[str] = [] -_sb_supported: list[str] = [] - -for _supported_enc in IANA_SUPPORTED: - try: - if is_multi_byte_encoding(_supported_enc): - _mb_supported.append(_supported_enc) - else: - _sb_supported.append(_supported_enc) - except ImportError: - _sb_supported.append(_supported_enc) - -IANA_SUPPORTED_MB_FIRST: list[str] = _mb_supported + _sb_supported - - -def from_bytes( - sequences: bytes | bytearray, - steps: int = 5, - chunk_size: int = 512, - threshold: float = 0.2, - cp_isolation: list[str] | None = None, - cp_exclusion: list[str] | None = None, - preemptive_behaviour: bool = True, - explain: bool = False, - language_threshold: float = 0.1, - enable_fallback: bool = True, -) -> CharsetMatches: - """ - Given a raw bytes sequence, return the best possibles charset usable to render str objects. - If there is no results, it is a strong indicator that the source is binary/not text. - By default, the process will extract 5 blocks of 512o each to assess the mess and coherence of a given sequence. - And will give up a particular code page after 20% of measured mess. Those criteria are customizable at will. - - The preemptive behavior DOES NOT replace the traditional detection workflow, it prioritize a particular code page - but never take it for granted. Can improve the performance. - - You may want to focus your attention to some code page or/and not others, use cp_isolation and cp_exclusion for that - purpose. - - This function will strip the SIG in the payload/sequence every time except on UTF-16, UTF-32. - By default the library does not setup any handler other than the NullHandler, if you choose to set the 'explain' - toggle to True it will alter the logger configuration to add a StreamHandler that is suitable for debugging. - Custom logging format and handler can be set manually. - """ - - if not isinstance(sequences, (bytearray, bytes)): - raise TypeError( - "Expected object of type bytes or bytearray, got: {}".format( - type(sequences) - ) - ) - - if explain: - previous_logger_level: int = logger.level - logger.addHandler(explain_handler) - logger.setLevel(TRACE) - - length: int = len(sequences) - - if length == 0: - logger.debug("Encoding detection on empty bytes, assuming utf_8 intention.") - if explain: # Defensive: ensure exit path clean handler - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([CharsetMatch(sequences, "utf_8", 0.0, False, [], "")]) - - if cp_isolation is not None: - logger.log( - TRACE, - "cp_isolation is set. use this flag for debugging purpose. " - "limited list of encoding allowed : %s.", - ", ".join(cp_isolation), - ) - cp_isolation = [iana_name(cp, False) for cp in cp_isolation] - else: - cp_isolation = [] - - if cp_exclusion is not None: - logger.log( - TRACE, - "cp_exclusion is set. use this flag for debugging purpose. " - "limited list of encoding excluded : %s.", - ", ".join(cp_exclusion), - ) - cp_exclusion = [iana_name(cp, False) for cp in cp_exclusion] - else: - cp_exclusion = [] - - if length <= (chunk_size * steps): - logger.log( - TRACE, - "override steps (%i) and chunk_size (%i) as content does not fit (%i byte(s) given) parameters.", - steps, - chunk_size, - length, - ) - steps = 1 - chunk_size = length - - if steps > 1 and length / steps < chunk_size: - chunk_size = int(length / steps) - - is_too_small_sequence: bool = len(sequences) < TOO_SMALL_SEQUENCE - is_too_large_sequence: bool = len(sequences) >= TOO_BIG_SEQUENCE - - if is_too_small_sequence: - logger.log( - TRACE, - "Trying to detect encoding from a tiny portion of ({}) byte(s).".format( - length - ), - ) - elif is_too_large_sequence: - logger.log( - TRACE, - "Using lazy str decoding because the payload is quite large, ({}) byte(s).".format( - length - ), - ) - - prioritized_encodings: list[str] = [] - - specified_encoding: str | None = ( - any_specified_encoding(sequences) if preemptive_behaviour else None - ) - - if specified_encoding is not None: - prioritized_encodings.append(specified_encoding) - logger.log( - TRACE, - "Detected declarative mark in sequence. Priority +1 given for %s.", - specified_encoding, - ) - - tested: set[str] = set() - tested_but_hard_failure: list[str] = [] - tested_but_soft_failure: list[str] = [] - soft_failure_skip: set[str] = set() - success_fast_tracked: set[str] = set() - - # Cache for decoded payload deduplication: hash(decoded_payload) -> (mean_mess_ratio, cd_ratios_merged, passed) - # When multiple encodings decode to the exact same string, we can skip the expensive - # mess_ratio and coherence_ratio analysis and reuse the results from the first encoding. - payload_result_cache: dict[int, tuple[float, list[tuple[str, float]], bool]] = {} - - # When a definitive result (chaos=0.0 and good coherence) is found after testing - # the prioritized encodings (ascii, utf_8), we can significantly reduce the remaining - # work. Encodings that target completely different language families (e.g., Cyrillic - # when the definitive match is Latin) are skipped entirely. - # Additionally, for same-family encodings that pass chaos probing, we reuse the - # definitive match's coherence ratios instead of recomputing them — a major savings - # since coherence_ratio accounts for ~30% of total time on slow Latin files. - definitive_match_found: bool = False - definitive_target_languages: set[str] = set() - # After the definitive match fires, we cap the number of additional same-family - # single-byte encodings that pass chaos probing. Once we've accumulated enough - # good candidates (N), further same-family SB encodings are unlikely to produce - # a better best() result and just waste mess_ratio + coherence_ratio time. - # The first encoding to trigger the definitive match is NOT counted (it's already in). - post_definitive_sb_success_count: int = 0 - POST_DEFINITIVE_SB_CAP: int = 7 - - # When a non-UTF multibyte encoding passes chaos probing with significant multibyte - # content (decoded length < 98% of raw length), skip all remaining single-byte encodings. - # Rationale: multi-byte decoders (CJK) have strict byte-sequence validation — if they - # decode without error AND pass chaos probing with substantial multibyte content, the - # data is genuinely multibyte encoded. Single-byte encodings will always decode (every - # byte maps to something) but waste time on mess_ratio before failing. - # The 98% threshold prevents false triggers on files that happen to have a few valid - # multibyte pairs (e.g., cp424/_ude_1.txt where big5 decodes with 99% ratio). - mb_definitive_match_found: bool = False - - fallback_ascii: CharsetMatch | None = None - fallback_u8: CharsetMatch | None = None - fallback_specified: CharsetMatch | None = None - - results: CharsetMatches = CharsetMatches() - - early_stop_results: CharsetMatches = CharsetMatches() - - sig_encoding, sig_payload = identify_sig_or_bom(sequences) - - if sig_encoding is not None: - prioritized_encodings.append(sig_encoding) - logger.log( - TRACE, - "Detected a SIG or BOM mark on first %i byte(s). Priority +1 given for %s.", - len(sig_payload), - sig_encoding, - ) - - prioritized_encodings.append("ascii") - - if "utf_8" not in prioritized_encodings: - prioritized_encodings.append("utf_8") - - for encoding_iana in prioritized_encodings + IANA_SUPPORTED_MB_FIRST: - if cp_isolation and encoding_iana not in cp_isolation: - continue - - if cp_exclusion and encoding_iana in cp_exclusion: - continue - - if encoding_iana in tested: - continue - - tested.add(encoding_iana) - - decoded_payload: str | None = None - bom_or_sig_available: bool = sig_encoding == encoding_iana - strip_sig_or_bom: bool = bom_or_sig_available and should_strip_sig_or_bom( - encoding_iana - ) - - if encoding_iana in {"utf_16", "utf_32"} and not bom_or_sig_available: - logger.log( - TRACE, - "Encoding %s won't be tested as-is because it require a BOM. Will try some sub-encoder LE/BE.", - encoding_iana, - ) - continue - if encoding_iana in {"utf_7"} and not bom_or_sig_available: - logger.log( - TRACE, - "Encoding %s won't be tested as-is because detection is unreliable without BOM/SIG.", - encoding_iana, - ) - continue - - # Skip encodings similar to ones that already soft-failed (high mess ratio). - # Checked BEFORE the expensive decode attempt. - if encoding_iana in soft_failure_skip: - logger.log( - TRACE, - "%s is deemed too similar to a code page that was already considered unsuited. Continuing!", - encoding_iana, - ) - continue - - # Skip encodings that were already fast-tracked from a similar successful encoding. - if encoding_iana in success_fast_tracked: - logger.log( - TRACE, - "Skipping %s: already fast-tracked from a similar successful encoding.", - encoding_iana, - ) - continue - - try: - is_multi_byte_decoder: bool = is_multi_byte_encoding(encoding_iana) - except (ModuleNotFoundError, ImportError): # Defensive: - logger.log( - TRACE, - "Encoding %s does not provide an IncrementalDecoder", - encoding_iana, - ) - continue - - # When we've already found a definitive match (chaos=0.0 with good coherence) - # after testing the prioritized encodings, skip encodings that target - # completely different language families. This avoids running expensive - # mess_ratio + coherence_ratio on clearly unrelated candidates (e.g., Cyrillic - # when the definitive match is Latin-based). - if definitive_match_found: - if not is_multi_byte_decoder: - enc_languages = set(encoding_languages(encoding_iana)) - else: - enc_languages = set(mb_encoding_languages(encoding_iana)) - if not enc_languages.intersection(definitive_target_languages): - logger.log( - TRACE, - "Skipping %s: definitive match already found, this encoding targets different languages (%s vs %s).", - encoding_iana, - enc_languages, - definitive_target_languages, - ) - continue - - # After the definitive match, cap the number of additional same-family - # single-byte encodings that pass chaos probing. This avoids testing the - # tail of rare, low-value same-family encodings (mac_iceland, cp860, etc.) - # that almost never change best() but each cost ~1-2ms of mess_ratio + coherence. - if ( - definitive_match_found - and not is_multi_byte_decoder - and post_definitive_sb_success_count >= POST_DEFINITIVE_SB_CAP - ): - logger.log( - TRACE, - "Skipping %s: already accumulated %d same-family results after definitive match (cap=%d).", - encoding_iana, - post_definitive_sb_success_count, - POST_DEFINITIVE_SB_CAP, - ) - continue - - # When a multibyte encoding with significant multibyte content has already - # passed chaos probing, skip all single-byte encodings. They will either fail - # chaos probing (wasting mess_ratio time) or produce inferior results. - if mb_definitive_match_found and not is_multi_byte_decoder: - logger.log( - TRACE, - "Skipping single-byte %s: multi-byte definitive match already found.", - encoding_iana, - ) - continue - - try: - if is_too_large_sequence and is_multi_byte_decoder is False: - str( - ( - sequences[: int(50e4)] - if strip_sig_or_bom is False - else sequences[len(sig_payload) : int(50e4)] - ), - encoding=encoding_iana, - ) - else: - # UTF-7 BOM is encoded in modified Base64 whose byte boundary - # can overlap with the next character. Stripping raw SIG bytes - # before decoding may leave stray bytes that decode as garbage. - # Decode the full sequence and remove the leading BOM char instead. - # see https://github.com/jawah/charset_normalizer/issues/718 - # and https://github.com/jawah/charset_normalizer/issues/716 - if encoding_iana == "utf_7" and bom_or_sig_available: - decoded_payload = str( - sequences, - encoding=encoding_iana, - ) - if decoded_payload and decoded_payload[0] == "\ufeff": - decoded_payload = decoded_payload[1:] - else: - decoded_payload = str( - ( - sequences - if strip_sig_or_bom is False - else sequences[len(sig_payload) :] - ), - encoding=encoding_iana, - ) - except (UnicodeDecodeError, LookupError) as e: - if not isinstance(e, LookupError): - logger.log( - TRACE, - "Code page %s does not fit given bytes sequence at ALL. %s", - encoding_iana, - str(e), - ) - tested_but_hard_failure.append(encoding_iana) - continue - - r_ = range( - 0 if not bom_or_sig_available else len(sig_payload), - length, - int(length / steps), - ) - - multi_byte_bonus: bool = ( - is_multi_byte_decoder - and decoded_payload is not None - and len(decoded_payload) < length - ) - - if multi_byte_bonus: - logger.log( - TRACE, - "Code page %s is a multi byte encoding table and it appear that at least one character " - "was encoded using n-bytes.", - encoding_iana, - ) - - # Payload-hash deduplication: if another encoding already decoded to the - # exact same string, reuse its mess_ratio and coherence results entirely. - # This is strictly more general than the old IANA_SUPPORTED_SIMILAR approach - # because it catches ALL identical decoding, not just pre-mapped ones. - if decoded_payload is not None and not is_multi_byte_decoder: - payload_hash: int = hash(decoded_payload) - cached = payload_result_cache.get(payload_hash) - if cached is not None: - cached_mess, cached_cd, cached_passed = cached - if cached_passed: - # The previous encoding with identical output passed chaos probing. - fast_match = CharsetMatch( - sequences, - encoding_iana, - cached_mess, - bom_or_sig_available, - cached_cd, - ( - decoded_payload - if ( - is_too_large_sequence is False - or encoding_iana - in [specified_encoding, "ascii", "utf_8"] - ) - else None - ), - preemptive_declaration=specified_encoding, - ) - results.append(fast_match) - success_fast_tracked.add(encoding_iana) - logger.log( - TRACE, - "%s fast-tracked (identical decoded payload to a prior encoding, chaos=%f %%).", - encoding_iana, - round(cached_mess * 100, ndigits=3), - ) - - if ( - encoding_iana in [specified_encoding, "ascii", "utf_8"] - and cached_mess < 0.1 - ): - if cached_mess == 0.0: - logger.debug( - "Encoding detection: %s is most likely the one.", - fast_match.encoding, - ) - if explain: - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([fast_match]) - early_stop_results.append(fast_match) - - if ( - len(early_stop_results) - and (specified_encoding is None or specified_encoding in tested) - and "ascii" in tested - and "utf_8" in tested - ): - probable_result: CharsetMatch = early_stop_results.best() # type: ignore[assignment] - logger.debug( - "Encoding detection: %s is most likely the one.", - probable_result.encoding, - ) - if explain: - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([probable_result]) - - continue - else: - # The previous encoding with identical output failed chaos probing. - tested_but_soft_failure.append(encoding_iana) - logger.log( - TRACE, - "%s fast-skipped (identical decoded payload to a prior encoding that failed chaos probing).", - encoding_iana, - ) - # Prepare fallbacks for special encodings even when skipped. - if enable_fallback and encoding_iana in [ - "ascii", - "utf_8", - specified_encoding, - "utf_16", - "utf_32", - ]: - fallback_entry = CharsetMatch( - sequences, - encoding_iana, - threshold, - bom_or_sig_available, - [], - decoded_payload, - preemptive_declaration=specified_encoding, - ) - if encoding_iana == specified_encoding: - fallback_specified = fallback_entry - elif encoding_iana == "ascii": - fallback_ascii = fallback_entry - else: - fallback_u8 = fallback_entry - continue - - max_chunk_gave_up: int = int(len(r_) / 4) - - max_chunk_gave_up = max(max_chunk_gave_up, 2) - early_stop_count: int = 0 - lazy_str_hard_failure = False - - md_chunks: list[str] = [] - md_ratios = [] - - try: - for chunk in cut_sequence_chunks( - sequences, - encoding_iana, - r_, - chunk_size, - bom_or_sig_available, - strip_sig_or_bom, - sig_payload, - is_multi_byte_decoder, - decoded_payload, - ): - md_chunks.append(chunk) - - md_ratios.append( - mess_ratio( - chunk, - threshold, - explain is True and 1 <= len(cp_isolation) <= 2, - ) - ) - - if md_ratios[-1] >= threshold: - early_stop_count += 1 - - if (early_stop_count >= max_chunk_gave_up) or ( - bom_or_sig_available and strip_sig_or_bom is False - ): - break - except ( - UnicodeDecodeError - ) as e: # Lazy str loading may have missed something there - logger.log( - TRACE, - "LazyStr Loading: After MD chunk decode, code page %s does not fit given bytes sequence at ALL. %s", - encoding_iana, - str(e), - ) - early_stop_count = max_chunk_gave_up - lazy_str_hard_failure = True - - # We might want to check the sequence again with the whole content - # Only if initial MD tests passes - if ( - not lazy_str_hard_failure - and is_too_large_sequence - and not is_multi_byte_decoder - ): - try: - sequences[int(50e3) :].decode(encoding_iana, errors="strict") - except UnicodeDecodeError as e: - logger.log( - TRACE, - "LazyStr Loading: After final lookup, code page %s does not fit given bytes sequence at ALL. %s", - encoding_iana, - str(e), - ) - tested_but_hard_failure.append(encoding_iana) - continue - - mean_mess_ratio: float = sum(md_ratios) / len(md_ratios) if md_ratios else 0.0 - if mean_mess_ratio >= threshold or early_stop_count >= max_chunk_gave_up: - tested_but_soft_failure.append(encoding_iana) - if encoding_iana in IANA_SUPPORTED_SIMILAR: - soft_failure_skip.update(IANA_SUPPORTED_SIMILAR[encoding_iana]) - # Cache this soft-failure so identical decoding from other encodings - # can be skipped immediately. - if decoded_payload is not None and not is_multi_byte_decoder: - payload_result_cache.setdefault( - hash(decoded_payload), (mean_mess_ratio, [], False) - ) - logger.log( - TRACE, - "%s was excluded because of initial chaos probing. Gave up %i time(s). " - "Computed mean chaos is %f %%.", - encoding_iana, - early_stop_count, - round(mean_mess_ratio * 100, ndigits=3), - ) - # Preparing those fallbacks in case we got nothing. - if ( - enable_fallback - and encoding_iana - in ["ascii", "utf_8", specified_encoding, "utf_16", "utf_32"] - and not lazy_str_hard_failure - ): - fallback_entry = CharsetMatch( - sequences, - encoding_iana, - threshold, - bom_or_sig_available, - [], - decoded_payload, - preemptive_declaration=specified_encoding, - ) - if encoding_iana == specified_encoding: - fallback_specified = fallback_entry - elif encoding_iana == "ascii": - fallback_ascii = fallback_entry - else: - fallback_u8 = fallback_entry - continue - - logger.log( - TRACE, - "%s passed initial chaos probing. Mean measured chaos is %f %%", - encoding_iana, - round(mean_mess_ratio * 100, ndigits=3), - ) - - if not is_multi_byte_decoder: - target_languages: list[str] = encoding_languages(encoding_iana) - else: - target_languages = mb_encoding_languages(encoding_iana) - - if target_languages: - logger.log( - TRACE, - "{} should target any language(s) of {}".format( - encoding_iana, str(target_languages) - ), - ) - - cd_ratios = [] - - # Run coherence detection on all chunks. We previously tried limiting to - # 1-2 chunks for post-definitive encodings to save time, but this caused - # coverage regressions by producing unrepresentative coherence scores. - # The SB cap and language-family skip optimizations provide sufficient - # speedup without sacrificing coherence accuracy. - if encoding_iana != "ascii": - # We shall skip the CD when its about ASCII - # Most of the time its not relevant to run "language-detection" on it. - for chunk in md_chunks: - chunk_languages = coherence_ratio( - chunk, - language_threshold, - ",".join(target_languages) if target_languages else None, - ) - - cd_ratios.append(chunk_languages) - cd_ratios_merged = merge_coherence_ratios(cd_ratios) - else: - cd_ratios_merged = merge_coherence_ratios(cd_ratios) - - if cd_ratios_merged: - logger.log( - TRACE, - "We detected language {} using {}".format( - cd_ratios_merged, encoding_iana - ), - ) - - current_match = CharsetMatch( - sequences, - encoding_iana, - mean_mess_ratio, - bom_or_sig_available, - cd_ratios_merged, - ( - decoded_payload - if ( - is_too_large_sequence is False - or encoding_iana in [specified_encoding, "ascii", "utf_8"] - ) - else None - ), - preemptive_declaration=specified_encoding, - ) - - results.append(current_match) - - # Cache the successful result for payload-hash deduplication. - if decoded_payload is not None and not is_multi_byte_decoder: - payload_result_cache.setdefault( - hash(decoded_payload), - (mean_mess_ratio, cd_ratios_merged, True), - ) - - # Count post-definitive same-family SB successes for the early termination cap. - # Only count low-mess encodings (< 2%) toward the cap. High-mess encodings are - # marginal results that shouldn't prevent better-quality candidates from being - # tested. For example, iso8859_4 (mess=0%) should not be skipped just because - # 7 high-mess Latin encodings (cp1252 at 8%, etc.) were tried first. - if ( - definitive_match_found - and not is_multi_byte_decoder - and mean_mess_ratio < 0.02 - ): - post_definitive_sb_success_count += 1 - - if ( - encoding_iana in [specified_encoding, "ascii", "utf_8"] - and mean_mess_ratio < 0.1 - ): - # If md says nothing to worry about, then... stop immediately! - if mean_mess_ratio == 0.0: - logger.debug( - "Encoding detection: %s is most likely the one.", - current_match.encoding, - ) - if explain: # Defensive: ensure exit path clean handler - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([current_match]) - - early_stop_results.append(current_match) - - if ( - len(early_stop_results) - and (specified_encoding is None or specified_encoding in tested) - and "ascii" in tested - and "utf_8" in tested - ): - probable_result = early_stop_results.best() # type: ignore[assignment] - logger.debug( - "Encoding detection: %s is most likely the one.", - probable_result.encoding, # type: ignore[union-attr] - ) - if explain: # Defensive: ensure exit path clean handler - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - - return CharsetMatches([probable_result]) - - # Once we find a result with good coherence (>= 0.5) after testing the - # prioritized encodings (ascii, utf_8), activate "definitive mode": skip - # encodings that target completely different language families. This avoids - # running expensive mess_ratio + coherence_ratio on clearly unrelated - # candidates (e.g., Cyrillic encodings when the match is Latin-based). - # We require coherence >= 0.5 to avoid false positives (e.g., cp1251 decoding - # Hebrew text with 0.0 chaos but wrong language detection at coherence 0.33). - if not definitive_match_found and not is_multi_byte_decoder: - best_coherence = ( - max((v for _, v in cd_ratios_merged), default=0.0) - if cd_ratios_merged - else 0.0 - ) - if best_coherence >= 0.5 and "ascii" in tested and "utf_8" in tested: - definitive_match_found = True - definitive_target_languages.update(target_languages) - logger.log( - TRACE, - "Definitive match found: %s (chaos=%.3f, coherence=%.2f). Encodings targeting different language families will be skipped.", - encoding_iana, - mean_mess_ratio, - best_coherence, - ) - - # When a non-UTF multibyte encoding passes chaos probing with significant - # multibyte content (decoded < 98% of raw), activate mb_definitive_match. - # This skips all remaining single-byte encodings which would either soft-fail - # (running expensive mess_ratio for nothing) or produce inferior results. - if ( - not mb_definitive_match_found - and is_multi_byte_decoder - and multi_byte_bonus - and decoded_payload is not None - and len(decoded_payload) < length * 0.98 - and encoding_iana - not in { - "utf_8", - "utf_8_sig", - "utf_16", - "utf_16_be", - "utf_16_le", - "utf_32", - "utf_32_be", - "utf_32_le", - "utf_7", - } - and "ascii" in tested - and "utf_8" in tested - ): - mb_definitive_match_found = True - logger.log( - TRACE, - "Multi-byte definitive match: %s (chaos=%.3f, decoded=%d/%d=%.1f%%). Single-byte encodings will be skipped.", - encoding_iana, - mean_mess_ratio, - len(decoded_payload), - length, - len(decoded_payload) / length * 100, - ) - - if encoding_iana == sig_encoding: - logger.debug( - "Encoding detection: %s is most likely the one as we detected a BOM or SIG within " - "the beginning of the sequence.", - encoding_iana, - ) - if explain: # Defensive: ensure exit path clean handler - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - return CharsetMatches([results[encoding_iana]]) - - if len(results) == 0: - if fallback_u8 or fallback_ascii or fallback_specified: - logger.log( - TRACE, - "Nothing got out of the detection process. Using ASCII/UTF-8/Specified fallback.", - ) - - if fallback_specified: - logger.debug( - "Encoding detection: %s will be used as a fallback match", - fallback_specified.encoding, - ) - results.append(fallback_specified) - elif ( - (fallback_u8 and fallback_ascii is None) - or ( - fallback_u8 - and fallback_ascii - and fallback_u8.fingerprint != fallback_ascii.fingerprint - ) - or (fallback_u8 is not None) - ): - logger.debug("Encoding detection: utf_8 will be used as a fallback match") - results.append(fallback_u8) - elif fallback_ascii: - logger.debug("Encoding detection: ascii will be used as a fallback match") - results.append(fallback_ascii) - - if results: - logger.debug( - "Encoding detection: Found %s as plausible (best-candidate) for content. With %i alternatives.", - results.best().encoding, # type: ignore - len(results) - 1, - ) - else: - logger.debug("Encoding detection: Unable to determine any suitable charset.") - - if explain: - logger.removeHandler(explain_handler) - logger.setLevel(previous_logger_level) - - return results - - -def from_fp( - fp: BinaryIO, - steps: int = 5, - chunk_size: int = 512, - threshold: float = 0.20, - cp_isolation: list[str] | None = None, - cp_exclusion: list[str] | None = None, - preemptive_behaviour: bool = True, - explain: bool = False, - language_threshold: float = 0.1, - enable_fallback: bool = True, -) -> CharsetMatches: - """ - Same thing than the function from_bytes but using a file pointer that is already ready. - Will not close the file pointer. - """ - return from_bytes( - fp.read(), - steps, - chunk_size, - threshold, - cp_isolation, - cp_exclusion, - preemptive_behaviour, - explain, - language_threshold, - enable_fallback, - ) - - -def from_path( - path: str | bytes | PathLike, # type: ignore[type-arg] - steps: int = 5, - chunk_size: int = 512, - threshold: float = 0.20, - cp_isolation: list[str] | None = None, - cp_exclusion: list[str] | None = None, - preemptive_behaviour: bool = True, - explain: bool = False, - language_threshold: float = 0.1, - enable_fallback: bool = True, -) -> CharsetMatches: - """ - Same thing than the function from_bytes but with one extra step. Opening and reading given file path in binary mode. - Can raise IOError. - """ - with open(path, "rb") as fp: - return from_fp( - fp, - steps, - chunk_size, - threshold, - cp_isolation, - cp_exclusion, - preemptive_behaviour, - explain, - language_threshold, - enable_fallback, - ) - - -def is_binary( - fp_or_path_or_payload: PathLike | str | BinaryIO | bytes, # type: ignore[type-arg] - steps: int = 5, - chunk_size: int = 512, - threshold: float = 0.20, - cp_isolation: list[str] | None = None, - cp_exclusion: list[str] | None = None, - preemptive_behaviour: bool = True, - explain: bool = False, - language_threshold: float = 0.1, - enable_fallback: bool = False, -) -> bool: - """ - Detect if the given input (file, bytes, or path) points to a binary file. aka. not a string. - Based on the same main heuristic algorithms and default kwargs at the sole exception that fallbacks match - are disabled to be stricter around ASCII-compatible but unlikely to be a string. - """ - if isinstance(fp_or_path_or_payload, (str, PathLike)): - guesses = from_path( - fp_or_path_or_payload, - steps=steps, - chunk_size=chunk_size, - threshold=threshold, - cp_isolation=cp_isolation, - cp_exclusion=cp_exclusion, - preemptive_behaviour=preemptive_behaviour, - explain=explain, - language_threshold=language_threshold, - enable_fallback=enable_fallback, - ) - elif isinstance( - fp_or_path_or_payload, - ( - bytes, - bytearray, - ), - ): - guesses = from_bytes( - fp_or_path_or_payload, - steps=steps, - chunk_size=chunk_size, - threshold=threshold, - cp_isolation=cp_isolation, - cp_exclusion=cp_exclusion, - preemptive_behaviour=preemptive_behaviour, - explain=explain, - language_threshold=language_threshold, - enable_fallback=enable_fallback, - ) - else: - guesses = from_fp( - fp_or_path_or_payload, - steps=steps, - chunk_size=chunk_size, - threshold=threshold, - cp_isolation=cp_isolation, - cp_exclusion=cp_exclusion, - preemptive_behaviour=preemptive_behaviour, - explain=explain, - language_threshold=language_threshold, - enable_fallback=enable_fallback, - ) - - return not guesses diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/cd.cpython-312-x86_64-linux-gnu.so b/.venv/lib/python3.12/site-packages/charset_normalizer/cd.cpython-312-x86_64-linux-gnu.so deleted file mode 100755 index dffe3e48b59c960aa602778742e128867f0f0901..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15912 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 list[str]: - """ - Return associated unicode ranges in a single byte code page. - """ - if is_multi_byte_encoding(iana_name): - raise OSError( # Defensive: - "Function not supported on multi-byte code page" - ) - - decoder = importlib.import_module(f"encodings.{iana_name}").IncrementalDecoder - - p: IncrementalDecoder = decoder(errors="ignore") - seen_ranges: dict[str, int] = {} - character_count: int = 0 - - for i in range(0x40, 0xFF): - chunk: str = p.decode(bytes([i])) - - if chunk: - character_range: str | None = unicode_range(chunk) - - if character_range is None: - continue - - if is_unicode_range_secondary(character_range) is False: - if character_range not in seen_ranges: - seen_ranges[character_range] = 0 - seen_ranges[character_range] += 1 - character_count += 1 - - return sorted( - [ - character_range - for character_range in seen_ranges - if seen_ranges[character_range] / character_count >= 0.15 - ] - ) - - -def unicode_range_languages(primary_range: str) -> list[str]: - """ - Return inferred languages used with a unicode range. - """ - languages: list[str] = [] - - for language, characters in FREQUENCIES.items(): - for character in characters: - if unicode_range(character) == primary_range: - languages.append(language) - break - - return languages - - -@lru_cache() -def encoding_languages(iana_name: str) -> list[str]: - """ - Single-byte encoding language association. Some code page are heavily linked to particular language(s). - This function does the correspondence. - """ - unicode_ranges: list[str] = encoding_unicode_range(iana_name) - primary_range: str | None = None - - for specified_range in unicode_ranges: - if "Latin" not in specified_range: - primary_range = specified_range - break - - if primary_range is None: - return ["Latin Based"] - - return unicode_range_languages(primary_range) - - -@lru_cache() -def mb_encoding_languages(iana_name: str) -> list[str]: - """ - Multi-byte encoding language association. Some code page are heavily linked to particular language(s). - This function does the correspondence. - """ - if ( - iana_name.startswith("shift_") - or iana_name.startswith("iso2022_jp") - or iana_name.startswith("euc_j") - or iana_name == "cp932" - ): - return ["Japanese"] - if iana_name.startswith("gb") or iana_name in ZH_NAMES: - return ["Chinese"] - if iana_name.startswith("iso2022_kr") or iana_name in KO_NAMES: - return ["Korean"] - - return [] - - -@lru_cache(maxsize=LANGUAGE_SUPPORTED_COUNT) -def get_target_features(language: str) -> tuple[bool, bool]: - """ - Determine main aspects from a supported language if it contains accents and if is pure Latin. - """ - target_have_accents: bool = False - target_pure_latin: bool = True - - for character in FREQUENCIES[language]: - if not target_have_accents and is_accentuated(character): - target_have_accents = True - if target_pure_latin and is_latin(character) is False: - target_pure_latin = False - - return target_have_accents, target_pure_latin - - -def alphabet_languages( - characters: list[str], ignore_non_latin: bool = False -) -> list[str]: - """ - Return associated languages associated to given characters. - """ - languages: list[tuple[str, float]] = [] - - characters_set: frozenset[str] = frozenset(characters) - source_have_accents = any(is_accentuated(character) for character in characters) - - for language, language_characters in FREQUENCIES.items(): - target_have_accents, target_pure_latin = get_target_features(language) - - if ignore_non_latin and target_pure_latin is False: - continue - - if target_have_accents is False and source_have_accents: - continue - - character_count: int = len(language_characters) - - character_match_count: int = len(_FREQUENCIES_SET[language] & characters_set) - - ratio: float = character_match_count / character_count - - if ratio >= 0.2: - languages.append((language, ratio)) - - languages = sorted(languages, key=lambda x: x[1], reverse=True) - - return [compatible_language[0] for compatible_language in languages] - - -def characters_popularity_compare( - language: str, ordered_characters: list[str] -) -> float: - """ - Determine if a ordered characters list (by occurrence from most appearance to rarest) match a particular language. - The result is a ratio between 0. (absolutely no correspondence) and 1. (near perfect fit). - Beware that is function is not strict on the match in order to ease the detection. (Meaning close match is 1.) - """ - if language not in FREQUENCIES: - raise ValueError(f"{language} not available") # Defensive: - - character_approved_count: int = 0 - frequencies_language_set: frozenset[str] = _FREQUENCIES_SET[language] - lang_rank: dict[str, int] = _FREQUENCIES_RANK[language] - - ordered_characters_count: int = len(ordered_characters) - target_language_characters_count: int = len(FREQUENCIES[language]) - - large_alphabet: bool = target_language_characters_count > 26 - - expected_projection_ratio: float = ( - target_language_characters_count / ordered_characters_count - ) - - # Pre-built rank dict for ordered_characters (avoids repeated list slicing). - ordered_rank: dict[str, int] = { - char: rank for rank, char in enumerate(ordered_characters) - } - - # Pre-compute characters common to both orderings. - # Avoids repeated `c in ordered_rank` dict lookups in the inner counts. - common_chars: list[tuple[int, int]] = [ - (lr, ordered_rank[c]) for c, lr in lang_rank.items() if c in ordered_rank - ] - - # Pre-extract lr and orr arrays for faster iteration in the inner loop. - # Plain integer loops with local arrays are much faster under mypyc than - # generator expression sums over a list of tuples. - common_count: int = len(common_chars) - common_lr: list[int] = [p[0] for p in common_chars] - common_orr: list[int] = [p[1] for p in common_chars] - - for character, character_rank in zip( - ordered_characters, range(0, ordered_characters_count) - ): - if character not in frequencies_language_set: - continue - - character_rank_in_language: int = lang_rank[character] - character_rank_projection: int = int(character_rank * expected_projection_ratio) - - if ( - large_alphabet is False - and abs(character_rank_projection - character_rank_in_language) > 4 - ): - continue - - if ( - large_alphabet is True - and abs(character_rank_projection - character_rank_in_language) - < target_language_characters_count / 3 - ): - character_approved_count += 1 - continue - - # Count how many characters appear "before" in both orderings, - # and how many appear "at or after" in both orderings. - # Single pass over pre-extracted arrays — much faster under mypyc - # than two generator expression sums. - before_match_count: int = 0 - after_match_count: int = 0 - for i in range(common_count): - lr_i: int = common_lr[i] - orr_i: int = common_orr[i] - if lr_i < character_rank_in_language: - if orr_i < character_rank: - before_match_count += 1 - else: - if orr_i >= character_rank: - after_match_count += 1 - - after_len: int = target_language_characters_count - character_rank_in_language - - if character_rank_in_language == 0 and before_match_count <= 4: - character_approved_count += 1 - continue - - if after_len == 0 and after_match_count <= 4: - character_approved_count += 1 - continue - - if ( - character_rank_in_language > 0 - and before_match_count / character_rank_in_language >= 0.4 - ) or (after_len > 0 and after_match_count / after_len >= 0.4): - character_approved_count += 1 - continue - - return character_approved_count / len(ordered_characters) - - -def alpha_unicode_split(decoded_sequence: str) -> list[str]: - """ - Given a decoded text sequence, return a list of str. Unicode range / alphabet separation. - Ex. a text containing English/Latin with a bit a Hebrew will return two items in the resulting list; - One containing the latin letters and the other hebrew. - """ - layers: dict[str, list[str]] = {} - - # Fast path: track single-layer key to skip dict iteration for single-script text. - single_layer_key: str | None = None - multi_layer: bool = False - - # Cache the last character_range and its resolved layer to avoid repeated - # is_suspiciously_successive_range calls for consecutive same-range chars. - prev_character_range: str | None = None - prev_layer_target: str | None = None - - for character in decoded_sequence: - if character.isalpha() is False: - continue - - # ASCII fast-path: a-z and A-Z are always "Basic Latin". - # Avoids unicode_range() function call overhead for the most common case. - character_ord: int = ord(character) - if character_ord < 128: - character_range: str | None = "Basic Latin" - else: - character_range = unicode_range(character) - - if character_range is None: - continue - - # Fast path: same range as previous character → reuse cached layer target. - if character_range == prev_character_range: - if prev_layer_target is not None: - layers[prev_layer_target].append(character) - continue - - layer_target_range: str | None = None - - if multi_layer: - for discovered_range in layers: - if ( - is_suspiciously_successive_range(discovered_range, character_range) - is False - ): - layer_target_range = discovered_range - break - elif single_layer_key is not None: - if ( - is_suspiciously_successive_range(single_layer_key, character_range) - is False - ): - layer_target_range = single_layer_key - - if layer_target_range is None: - layer_target_range = character_range - - if layer_target_range not in layers: - layers[layer_target_range] = [] - if single_layer_key is None: - single_layer_key = layer_target_range - else: - multi_layer = True - - layers[layer_target_range].append(character) - - # Cache for next iteration - prev_character_range = character_range - prev_layer_target = layer_target_range - - return ["".join(chars).lower() for chars in layers.values()] - - -def merge_coherence_ratios(results: list[CoherenceMatches]) -> CoherenceMatches: - """ - This function merge results previously given by the function coherence_ratio. - The return type is the same as coherence_ratio. - """ - per_language_ratios: dict[str, list[float]] = {} - for result in results: - for sub_result in result: - language, ratio = sub_result - if language not in per_language_ratios: - per_language_ratios[language] = [ratio] - continue - per_language_ratios[language].append(ratio) - - merge = [ - ( - language, - round( - sum(per_language_ratios[language]) / len(per_language_ratios[language]), - 4, - ), - ) - for language in per_language_ratios - ] - - return sorted(merge, key=lambda x: x[1], reverse=True) - - -def filter_alt_coherence_matches(results: CoherenceMatches) -> CoherenceMatches: - """ - We shall NOT return "English—" in CoherenceMatches because it is an alternative - of "English". This function only keeps the best match and remove the em-dash in it. - """ - index_results: dict[str, list[float]] = dict() - - for result in results: - language, ratio = result - no_em_name: str = language.replace("—", "") - - if no_em_name not in index_results: - index_results[no_em_name] = [] - - index_results[no_em_name].append(ratio) - - if any(len(index_results[e]) > 1 for e in index_results): - filtered_results: CoherenceMatches = [] - - for language in index_results: - filtered_results.append((language, max(index_results[language]))) - - return filtered_results - - return results - - -@lru_cache(maxsize=2048) -def coherence_ratio( - decoded_sequence: str, threshold: float = 0.1, lg_inclusion: str | None = None -) -> CoherenceMatches: - """ - Detect ANY language that can be identified in given sequence. The sequence will be analysed by layers. - A layer = Character extraction by alphabets/ranges. - """ - - results: list[tuple[str, float]] = [] - ignore_non_latin: bool = False - - sufficient_match_count: int = 0 - - lg_inclusion_list = lg_inclusion.split(",") if lg_inclusion is not None else [] - if "Latin Based" in lg_inclusion_list: - ignore_non_latin = True - lg_inclusion_list.remove("Latin Based") - - for layer in alpha_unicode_split(decoded_sequence): - sequence_frequencies: TypeCounter[str] = Counter(layer) - most_common = sequence_frequencies.most_common() - - character_count: int = len(layer) - - if character_count <= TOO_SMALL_SEQUENCE: - continue - - popular_character_ordered: list[str] = [c for c, o in most_common] - - for language in lg_inclusion_list or alphabet_languages( - popular_character_ordered, ignore_non_latin - ): - ratio: float = characters_popularity_compare( - language, popular_character_ordered - ) - - if ratio < threshold: - continue - elif ratio >= 0.8: - sufficient_match_count += 1 - - results.append((language, round(ratio, 4))) - - if sufficient_match_count >= 3: - break - - return sorted( - filter_alt_coherence_matches(results), key=lambda x: x[1], reverse=True - ) diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__init__.py b/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__init__.py deleted file mode 100644 index 543a5a4..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from __future__ import annotations - -from .__main__ import cli_detect, query_yes_no - -__all__ = ( - "cli_detect", - "query_yes_no", -) diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__main__.py b/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__main__.py deleted file mode 100644 index ad843c1..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__main__.py +++ /dev/null @@ -1,362 +0,0 @@ -from __future__ import annotations - -import argparse -import sys -import typing -from json import dumps -from os.path import abspath, basename, dirname, join, realpath -from platform import python_version -from unicodedata import unidata_version - -import charset_normalizer.md as md_module -from charset_normalizer import from_fp -from charset_normalizer.models import CliDetectionResult -from charset_normalizer.version import __version__ - - -def query_yes_no(question: str, default: str = "yes") -> bool: # Defensive: - """Ask a yes/no question via input() and return the answer as a bool.""" - prompt = " [Y/n] " if default == "yes" else " [y/N] " - - while True: - choice = input(question + prompt).strip().lower() - if not choice: - return default == "yes" - if choice in ("y", "yes"): - return True - if choice in ("n", "no"): - return False - print("Please respond with 'y' or 'n'.") - - -class FileType: - """Factory for creating file object types - - Instances of FileType are typically passed as type= arguments to the - ArgumentParser add_argument() method. - - Keyword Arguments: - - mode -- A string indicating how the file is to be opened. Accepts the - same values as the builtin open() function. - - bufsize -- The file's desired buffer size. Accepts the same values as - the builtin open() function. - - encoding -- The file's encoding. Accepts the same values as the - builtin open() function. - - errors -- A string indicating how encoding and decoding errors are to - be handled. Accepts the same value as the builtin open() function. - - Backported from CPython 3.12 - """ - - def __init__( - self, - mode: str = "r", - bufsize: int = -1, - encoding: str | None = None, - errors: str | None = None, - ): - self._mode = mode - self._bufsize = bufsize - self._encoding = encoding - self._errors = errors - - def __call__(self, string: str) -> typing.IO: # type: ignore[type-arg] - # the special argument "-" means sys.std{in,out} - if string == "-": - if "r" in self._mode: - return sys.stdin.buffer if "b" in self._mode else sys.stdin - elif any(c in self._mode for c in "wax"): - return sys.stdout.buffer if "b" in self._mode else sys.stdout - else: - msg = f'argument "-" with mode {self._mode}' - raise ValueError(msg) - - # all other arguments are used as file names - try: - return open(string, self._mode, self._bufsize, self._encoding, self._errors) - except OSError as e: - message = f"can't open '{string}': {e}" - raise argparse.ArgumentTypeError(message) - - def __repr__(self) -> str: - args = self._mode, self._bufsize - kwargs = [("encoding", self._encoding), ("errors", self._errors)] - args_str = ", ".join( - [repr(arg) for arg in args if arg != -1] - + [f"{kw}={arg!r}" for kw, arg in kwargs if arg is not None] - ) - return f"{type(self).__name__}({args_str})" - - -def cli_detect(argv: list[str] | None = None) -> int: - """ - CLI assistant using ARGV and ArgumentParser - :param argv: - :return: 0 if everything is fine, anything else equal trouble - """ - parser = argparse.ArgumentParser( - description="The Real First Universal Charset Detector. " - "Discover originating encoding used on text file. " - "Normalize text to unicode." - ) - - parser.add_argument( - "files", type=FileType("rb"), nargs="+", help="File(s) to be analysed" - ) - parser.add_argument( - "-v", - "--verbose", - action="store_true", - default=False, - dest="verbose", - help="Display complementary information about file if any. " - "Stdout will contain logs about the detection process.", - ) - parser.add_argument( - "-a", - "--with-alternative", - action="store_true", - default=False, - dest="alternatives", - help="Output complementary possibilities if any. Top-level JSON WILL be a list.", - ) - parser.add_argument( - "-n", - "--normalize", - action="store_true", - default=False, - dest="normalize", - help="Permit to normalize input file. If not set, program does not write anything.", - ) - parser.add_argument( - "-m", - "--minimal", - action="store_true", - default=False, - dest="minimal", - help="Only output the charset detected to STDOUT. Disabling JSON output.", - ) - parser.add_argument( - "-r", - "--replace", - action="store_true", - default=False, - dest="replace", - help="Replace file when trying to normalize it instead of creating a new one.", - ) - parser.add_argument( - "-f", - "--force", - action="store_true", - default=False, - dest="force", - help="Replace file without asking if you are sure, use this flag with caution.", - ) - parser.add_argument( - "-i", - "--no-preemptive", - action="store_true", - default=False, - dest="no_preemptive", - help="Disable looking at a charset declaration to hint the detector.", - ) - parser.add_argument( - "-t", - "--threshold", - action="store", - default=0.2, - type=float, - dest="threshold", - help="Define a custom maximum amount of noise allowed in decoded content. 0. <= noise <= 1.", - ) - parser.add_argument( - "--version", - action="version", - version="Charset-Normalizer {} - Python {} - Unicode {} - SpeedUp {}".format( - __version__, - python_version(), - unidata_version, - "OFF" if md_module.__file__.lower().endswith(".py") else "ON", - ), - help="Show version information and exit.", - ) - - args = parser.parse_args(argv) - - if args.replace is True and args.normalize is False: - if args.files: - for my_file in args.files: - my_file.close() - print("Use --replace in addition of --normalize only.", file=sys.stderr) - return 1 - - if args.force is True and args.replace is False: - if args.files: - for my_file in args.files: - my_file.close() - print("Use --force in addition of --replace only.", file=sys.stderr) - return 1 - - if args.threshold < 0.0 or args.threshold > 1.0: - if args.files: - for my_file in args.files: - my_file.close() - print("--threshold VALUE should be between 0. AND 1.", file=sys.stderr) - return 1 - - x_ = [] - - for my_file in args.files: - matches = from_fp( - my_file, - threshold=args.threshold, - explain=args.verbose, - preemptive_behaviour=args.no_preemptive is False, - ) - - best_guess = matches.best() - - if best_guess is None: - print( - 'Unable to identify originating encoding for "{}". {}'.format( - my_file.name, - ( - "Maybe try increasing maximum amount of chaos." - if args.threshold < 1.0 - else "" - ), - ), - file=sys.stderr, - ) - x_.append( - CliDetectionResult( - abspath(my_file.name), - None, - [], - [], - "Unknown", - [], - False, - 1.0, - 0.0, - None, - True, - ) - ) - else: - cli_result = CliDetectionResult( - abspath(my_file.name), - best_guess.encoding, - best_guess.encoding_aliases, - [ - cp - for cp in best_guess.could_be_from_charset - if cp != best_guess.encoding - ], - best_guess.language, - best_guess.alphabets, - best_guess.bom, - best_guess.percent_chaos, - best_guess.percent_coherence, - None, - True, - ) - x_.append(cli_result) - - if len(matches) > 1 and args.alternatives: - for el in matches: - if el != best_guess: - x_.append( - CliDetectionResult( - abspath(my_file.name), - el.encoding, - el.encoding_aliases, - [ - cp - for cp in el.could_be_from_charset - if cp != el.encoding - ], - el.language, - el.alphabets, - el.bom, - el.percent_chaos, - el.percent_coherence, - None, - False, - ) - ) - - if args.normalize is True: - if best_guess.encoding.startswith("utf") is True: - print( - '"{}" file does not need to be normalized, as it already came from unicode.'.format( - my_file.name - ), - file=sys.stderr, - ) - if my_file.closed is False: - my_file.close() - continue - - dir_path = dirname(realpath(my_file.name)) - file_name = basename(realpath(my_file.name)) - - o_: list[str] = file_name.split(".") - - if args.replace is False: - o_.insert(-1, best_guess.encoding) - if my_file.closed is False: - my_file.close() - elif ( - args.force is False - and query_yes_no( - 'Are you sure to normalize "{}" by replacing it ?'.format( - my_file.name - ), - "no", - ) - is False - ): - if my_file.closed is False: - my_file.close() - continue - - try: - cli_result.unicode_path = join(dir_path, ".".join(o_)) - - with open(cli_result.unicode_path, "wb") as fp: - fp.write(best_guess.output()) - except OSError as e: # Defensive: - print(str(e), file=sys.stderr) - if my_file.closed is False: - my_file.close() - return 2 - - if my_file.closed is False: - my_file.close() - - if args.minimal is False: - print( - dumps( - [el.__dict__ for el in x_] if len(x_) > 1 else x_[0].__dict__, - ensure_ascii=True, - indent=4, - ) - ) - else: - for my_file in args.files: - print( - ", ".join( - [ - el.encoding or "undefined" - for el in x_ - if el.path == abspath(my_file.name) - ] - ) - ) - - return 0 - - -if __name__ == "__main__": # Defensive: - cli_detect() diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/charset_normalizer/cli/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2e508756be2ec77d516ce71040b6db6518a933c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 356 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 YMsL5Ey2aIetatuFKm09yEgks(0I`O1*8l(j diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/constant.py b/.venv/lib/python3.12/site-packages/charset_normalizer/constant.py deleted file mode 100644 index e1297d2..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/constant.py +++ /dev/null @@ -1,2050 +0,0 @@ -from __future__ import annotations - -from codecs import BOM_UTF8, BOM_UTF16_BE, BOM_UTF16_LE, BOM_UTF32_BE, BOM_UTF32_LE -from encodings.aliases import aliases -from re import IGNORECASE -from re import compile as re_compile - -# Contain for each eligible encoding a list of/item bytes SIG/BOM -ENCODING_MARKS: dict[str, bytes | list[bytes]] = { - "utf_8": BOM_UTF8, - "utf_7": [ - b"\x2b\x2f\x76\x38\x2d", - b"\x2b\x2f\x76\x38", - b"\x2b\x2f\x76\x39", - b"\x2b\x2f\x76\x2b", - b"\x2b\x2f\x76\x2f", - ], - "gb18030": b"\x84\x31\x95\x33", - "utf_32": [BOM_UTF32_BE, BOM_UTF32_LE], - "utf_16": [BOM_UTF16_BE, BOM_UTF16_LE], -} - -TOO_SMALL_SEQUENCE: int = 32 -TOO_BIG_SEQUENCE: int = int(10e6) - -UTF8_MAXIMAL_ALLOCATION: int = 1_112_064 - -# Up-to-date Unicode ucd/17.0.0 -UNICODE_RANGES_COMBINED: dict[str, range] = { - "Control character": range(32), - "Basic Latin": range(32, 128), - "Latin-1 Supplement": range(128, 256), - "Latin Extended-A": range(256, 384), - "Latin Extended-B": range(384, 592), - "IPA Extensions": range(592, 688), - "Spacing Modifier Letters": range(688, 768), - "Combining Diacritical Marks": range(768, 880), - "Greek and Coptic": range(880, 1024), - "Cyrillic": range(1024, 1280), - "Cyrillic Supplement": range(1280, 1328), - "Armenian": range(1328, 1424), - "Hebrew": range(1424, 1536), - "Arabic": range(1536, 1792), - "Syriac": range(1792, 1872), - "Arabic Supplement": range(1872, 1920), - "Thaana": range(1920, 1984), - "NKo": range(1984, 2048), - "Samaritan": range(2048, 2112), - "Mandaic": range(2112, 2144), - "Syriac Supplement": range(2144, 2160), - "Arabic Extended-B": range(2160, 2208), - "Arabic Extended-A": range(2208, 2304), - "Devanagari": range(2304, 2432), - "Bengali": range(2432, 2560), - "Gurmukhi": range(2560, 2688), - "Gujarati": range(2688, 2816), - "Oriya": range(2816, 2944), - "Tamil": range(2944, 3072), - "Telugu": range(3072, 3200), - "Kannada": range(3200, 3328), - "Malayalam": range(3328, 3456), - "Sinhala": range(3456, 3584), - "Thai": range(3584, 3712), - "Lao": range(3712, 3840), - "Tibetan": range(3840, 4096), - "Myanmar": range(4096, 4256), - "Georgian": range(4256, 4352), - "Hangul Jamo": range(4352, 4608), - "Ethiopic": range(4608, 4992), - "Ethiopic Supplement": range(4992, 5024), - "Cherokee": range(5024, 5120), - "Unified Canadian Aboriginal Syllabics": range(5120, 5760), - "Ogham": range(5760, 5792), - "Runic": range(5792, 5888), - "Tagalog": range(5888, 5920), - "Hanunoo": range(5920, 5952), - "Buhid": range(5952, 5984), - "Tagbanwa": range(5984, 6016), - "Khmer": range(6016, 6144), - "Mongolian": range(6144, 6320), - "Unified Canadian Aboriginal Syllabics Extended": range(6320, 6400), - "Limbu": range(6400, 6480), - "Tai Le": range(6480, 6528), - "New Tai Lue": range(6528, 6624), - "Khmer Symbols": range(6624, 6656), - "Buginese": range(6656, 6688), - "Tai Tham": range(6688, 6832), - "Combining Diacritical Marks Extended": range(6832, 6912), - "Balinese": range(6912, 7040), - "Sundanese": range(7040, 7104), - "Batak": range(7104, 7168), - "Lepcha": range(7168, 7248), - "Ol Chiki": range(7248, 7296), - "Cyrillic Extended-C": range(7296, 7312), - "Georgian Extended": range(7312, 7360), - "Sundanese Supplement": range(7360, 7376), - "Vedic Extensions": range(7376, 7424), - "Phonetic Extensions": range(7424, 7552), - "Phonetic Extensions Supplement": range(7552, 7616), - "Combining Diacritical Marks Supplement": range(7616, 7680), - "Latin Extended Additional": range(7680, 7936), - "Greek Extended": range(7936, 8192), - "General Punctuation": range(8192, 8304), - "Superscripts and Subscripts": range(8304, 8352), - "Currency Symbols": range(8352, 8400), - "Combining Diacritical Marks for Symbols": range(8400, 8448), - "Letterlike Symbols": range(8448, 8528), - "Number Forms": range(8528, 8592), - "Arrows": range(8592, 8704), - "Mathematical Operators": range(8704, 8960), - "Miscellaneous Technical": range(8960, 9216), - "Control Pictures": range(9216, 9280), - "Optical Character Recognition": range(9280, 9312), - "Enclosed Alphanumerics": range(9312, 9472), - "Box Drawing": range(9472, 9600), - "Block Elements": range(9600, 9632), - "Geometric Shapes": range(9632, 9728), - "Miscellaneous Symbols": range(9728, 9984), - "Dingbats": range(9984, 10176), - "Miscellaneous Mathematical Symbols-A": range(10176, 10224), - "Supplemental Arrows-A": range(10224, 10240), - "Braille Patterns": range(10240, 10496), - "Supplemental Arrows-B": range(10496, 10624), - "Miscellaneous Mathematical Symbols-B": range(10624, 10752), - "Supplemental Mathematical Operators": range(10752, 11008), - "Miscellaneous Symbols and Arrows": range(11008, 11264), - "Glagolitic": range(11264, 11360), - "Latin Extended-C": range(11360, 11392), - "Coptic": range(11392, 11520), - "Georgian Supplement": range(11520, 11568), - "Tifinagh": range(11568, 11648), - "Ethiopic Extended": range(11648, 11744), - "Cyrillic Extended-A": range(11744, 11776), - "Supplemental Punctuation": range(11776, 11904), - "CJK Radicals Supplement": range(11904, 12032), - "Kangxi Radicals": range(12032, 12256), - "Ideographic Description Characters": range(12272, 12288), - "CJK Symbols and Punctuation": range(12288, 12352), - "Hiragana": range(12352, 12448), - "Katakana": range(12448, 12544), - "Bopomofo": range(12544, 12592), - "Hangul Compatibility Jamo": range(12592, 12688), - "Kanbun": range(12688, 12704), - "Bopomofo Extended": range(12704, 12736), - "CJK Strokes": range(12736, 12784), - "Katakana Phonetic Extensions": range(12784, 12800), - "Enclosed CJK Letters and Months": range(12800, 13056), - "CJK Compatibility": range(13056, 13312), - "CJK Unified Ideographs Extension A": range(13312, 19904), - "Yijing Hexagram Symbols": range(19904, 19968), - "CJK Unified Ideographs": range(19968, 40960), - "Yi Syllables": range(40960, 42128), - "Yi Radicals": range(42128, 42192), - "Lisu": range(42192, 42240), - "Vai": range(42240, 42560), - "Cyrillic Extended-B": range(42560, 42656), - "Bamum": range(42656, 42752), - "Modifier Tone Letters": range(42752, 42784), - "Latin Extended-D": range(42784, 43008), - "Syloti Nagri": range(43008, 43056), - "Common Indic Number Forms": range(43056, 43072), - "Phags-pa": range(43072, 43136), - "Saurashtra": range(43136, 43232), - "Devanagari Extended": range(43232, 43264), - "Kayah Li": range(43264, 43312), - "Rejang": range(43312, 43360), - "Hangul Jamo Extended-A": range(43360, 43392), - "Javanese": range(43392, 43488), - "Myanmar Extended-B": range(43488, 43520), - "Cham": range(43520, 43616), - "Myanmar Extended-A": range(43616, 43648), - "Tai Viet": range(43648, 43744), - "Meetei Mayek Extensions": range(43744, 43776), - "Ethiopic Extended-A": range(43776, 43824), - "Latin Extended-E": range(43824, 43888), - "Cherokee Supplement": range(43888, 43968), - "Meetei Mayek": range(43968, 44032), - "Hangul Syllables": range(44032, 55216), - "Hangul Jamo Extended-B": range(55216, 55296), - "High Surrogates": range(55296, 56192), - "High Private Use Surrogates": range(56192, 56320), - "Low Surrogates": range(56320, 57344), - "Private Use Area": range(57344, 63744), - "CJK Compatibility Ideographs": range(63744, 64256), - "Alphabetic Presentation Forms": range(64256, 64336), - "Arabic Presentation Forms-A": range(64336, 65024), - "Variation Selectors": range(65024, 65040), - "Vertical Forms": range(65040, 65056), - "Combining Half Marks": range(65056, 65072), - "CJK Compatibility Forms": range(65072, 65104), - "Small Form Variants": range(65104, 65136), - "Arabic Presentation Forms-B": range(65136, 65280), - "Halfwidth and Fullwidth Forms": range(65280, 65520), - "Specials": range(65520, 65536), - "Linear B Syllabary": range(65536, 65664), - "Linear B Ideograms": range(65664, 65792), - "Aegean Numbers": range(65792, 65856), - "Ancient Greek Numbers": range(65856, 65936), - "Ancient Symbols": range(65936, 66000), - "Phaistos Disc": range(66000, 66048), - "Lycian": range(66176, 66208), - "Carian": range(66208, 66272), - "Coptic Epact Numbers": range(66272, 66304), - "Old Italic": range(66304, 66352), - "Gothic": range(66352, 66384), - "Old Permic": range(66384, 66432), - "Ugaritic": range(66432, 66464), - "Old Persian": range(66464, 66528), - "Deseret": range(66560, 66640), - "Shavian": range(66640, 66688), - "Osmanya": range(66688, 66736), - "Osage": range(66736, 66816), - "Elbasan": range(66816, 66864), - "Caucasian Albanian": range(66864, 66928), - "Vithkuqi": range(66928, 67008), - "Todhri": range(67008, 67072), - "Linear A": range(67072, 67456), - "Latin Extended-F": range(67456, 67520), - "Cypriot Syllabary": range(67584, 67648), - "Imperial Aramaic": range(67648, 67680), - "Palmyrene": range(67680, 67712), - "Nabataean": range(67712, 67760), - "Hatran": range(67808, 67840), - "Phoenician": range(67840, 67872), - "Lydian": range(67872, 67904), - "Sidetic": range(67904, 67936), - "Meroitic Hieroglyphs": range(67968, 68000), - "Meroitic Cursive": range(68000, 68096), - "Kharoshthi": range(68096, 68192), - "Old South Arabian": range(68192, 68224), - "Old North Arabian": range(68224, 68256), - "Manichaean": range(68288, 68352), - "Avestan": range(68352, 68416), - "Inscriptional Parthian": range(68416, 68448), - "Inscriptional Pahlavi": range(68448, 68480), - "Psalter Pahlavi": range(68480, 68528), - "Old Turkic": range(68608, 68688), - "Old Hungarian": range(68736, 68864), - "Hanifi Rohingya": range(68864, 68928), - "Garay": range(68928, 69008), - "Rumi Numeral Symbols": range(69216, 69248), - "Yezidi": range(69248, 69312), - "Arabic Extended-C": range(69312, 69376), - "Old Sogdian": range(69376, 69424), - "Sogdian": range(69424, 69488), - "Old Uyghur": range(69488, 69552), - "Chorasmian": range(69552, 69600), - "Elymaic": range(69600, 69632), - "Brahmi": range(69632, 69760), - "Kaithi": range(69760, 69840), - "Sora Sompeng": range(69840, 69888), - "Chakma": range(69888, 69968), - "Mahajani": range(69968, 70016), - "Sharada": range(70016, 70112), - "Sinhala Archaic Numbers": range(70112, 70144), - "Khojki": range(70144, 70224), - "Multani": range(70272, 70320), - "Khudawadi": range(70320, 70400), - "Grantha": range(70400, 70528), - "Tulu-Tigalari": range(70528, 70656), - "Newa": range(70656, 70784), - "Tirhuta": range(70784, 70880), - "Siddham": range(71040, 71168), - "Modi": range(71168, 71264), - "Mongolian Supplement": range(71264, 71296), - "Takri": range(71296, 71376), - "Myanmar Extended-C": range(71376, 71424), - "Ahom": range(71424, 71504), - "Dogra": range(71680, 71760), - "Warang Citi": range(71840, 71936), - "Dives Akuru": range(71936, 72032), - "Nandinagari": range(72096, 72192), - "Zanabazar Square": range(72192, 72272), - "Soyombo": range(72272, 72368), - "Unified Canadian Aboriginal Syllabics Extended-A": range(72368, 72384), - "Pau Cin Hau": range(72384, 72448), - "Devanagari Extended-A": range(72448, 72544), - "Sharada Supplement": range(72544, 72576), - "Sunuwar": range(72640, 72704), - "Bhaiksuki": range(72704, 72816), - "Marchen": range(72816, 72896), - "Masaram Gondi": range(72960, 73056), - "Gunjala Gondi": range(73056, 73136), - "Tolong Siki": range(73136, 73200), - "Makasar": range(73440, 73472), - "Kawi": range(73472, 73568), - "Lisu Supplement": range(73648, 73664), - "Tamil Supplement": range(73664, 73728), - "Cuneiform": range(73728, 74752), - "Cuneiform Numbers and Punctuation": range(74752, 74880), - "Early Dynastic Cuneiform": range(74880, 75088), - "Cypro-Minoan": range(77712, 77824), - "Egyptian Hieroglyphs": range(77824, 78896), - "Egyptian Hieroglyph Format Controls": range(78896, 78944), - "Egyptian Hieroglyphs Extended-A": range(78944, 82944), - "Anatolian Hieroglyphs": range(82944, 83584), - "Gurung Khema": range(90368, 90432), - "Bamum Supplement": range(92160, 92736), - "Mro": range(92736, 92784), - "Tangsa": range(92784, 92880), - "Bassa Vah": range(92880, 92928), - "Pahawh Hmong": range(92928, 93072), - "Kirat Rai": range(93504, 93568), - "Medefaidrin": range(93760, 93856), - "Beria Erfe": range(93856, 93920), - "Miao": range(93952, 94112), - "Ideographic Symbols and Punctuation": range(94176, 94208), - "Tangut": range(94208, 100352), - "Tangut Components": range(100352, 101120), - "Khitan Small Script": range(101120, 101632), - "Tangut Supplement": range(101632, 101760), - "Tangut Components Supplement": range(101760, 101888), - "Kana Extended-B": range(110576, 110592), - "Kana Supplement": range(110592, 110848), - "Kana Extended-A": range(110848, 110896), - "Small Kana Extension": range(110896, 110960), - "Nushu": range(110960, 111360), - "Duployan": range(113664, 113824), - "Shorthand Format Controls": range(113824, 113840), - "Symbols for Legacy Computing Supplement": range(117760, 118464), - "Miscellaneous Symbols Supplement": range(118464, 118528), - "Znamenny Musical Notation": range(118528, 118736), - "Byzantine Musical Symbols": range(118784, 119040), - "Musical Symbols": range(119040, 119296), - "Ancient Greek Musical Notation": range(119296, 119376), - "Kaktovik Numerals": range(119488, 119520), - "Mayan Numerals": range(119520, 119552), - "Tai Xuan Jing Symbols": range(119552, 119648), - "Counting Rod Numerals": range(119648, 119680), - "Mathematical Alphanumeric Symbols": range(119808, 120832), - "Sutton SignWriting": range(120832, 121520), - "Latin Extended-G": range(122624, 122880), - "Glagolitic Supplement": range(122880, 122928), - "Cyrillic Extended-D": range(122928, 123024), - "Nyiakeng Puachue Hmong": range(123136, 123216), - "Toto": range(123536, 123584), - "Wancho": range(123584, 123648), - "Nag Mundari": range(124112, 124160), - "Ol Onal": range(124368, 124416), - "Tai Yo": range(124608, 124672), - "Ethiopic Extended-B": range(124896, 124928), - "Mende Kikakui": range(124928, 125152), - "Adlam": range(125184, 125280), - "Indic Siyaq Numbers": range(126064, 126144), - "Ottoman Siyaq Numbers": range(126208, 126288), - "Arabic Mathematical Alphabetic Symbols": range(126464, 126720), - "Mahjong Tiles": range(126976, 127024), - "Domino Tiles": range(127024, 127136), - "Playing Cards": range(127136, 127232), - "Enclosed Alphanumeric Supplement": range(127232, 127488), - "Enclosed Ideographic Supplement": range(127488, 127744), - "Miscellaneous Symbols and Pictographs": range(127744, 128512), - "Emoticons": range(128512, 128592), - "Ornamental Dingbats": range(128592, 128640), - "Transport and Map Symbols": range(128640, 128768), - "Alchemical Symbols": range(128768, 128896), - "Geometric Shapes Extended": range(128896, 129024), - "Supplemental Arrows-C": range(129024, 129280), - "Supplemental Symbols and Pictographs": range(129280, 129536), - "Chess Symbols": range(129536, 129648), - "Symbols and Pictographs Extended-A": range(129648, 129792), - "Symbols for Legacy Computing": range(129792, 130048), - "CJK Unified Ideographs Extension B": range(131072, 173792), - "CJK Unified Ideographs Extension C": range(173824, 177984), - "CJK Unified Ideographs Extension D": range(177984, 178208), - "CJK Unified Ideographs Extension E": range(178208, 183984), - "CJK Unified Ideographs Extension F": range(183984, 191472), - "CJK Unified Ideographs Extension I": range(191472, 192096), - "CJK Compatibility Ideographs Supplement": range(194560, 195104), - "CJK Unified Ideographs Extension G": range(196608, 201552), - "CJK Unified Ideographs Extension H": range(201552, 205744), - "CJK Unified Ideographs Extension J": range(205744, 210048), - "Tags": range(917504, 917632), - "Variation Selectors Supplement": range(917760, 918000), - "Supplementary Private Use Area-A": range(983040, 1048576), - "Supplementary Private Use Area-B": range(1048576, 1114112), -} - - -UNICODE_SECONDARY_RANGE_KEYWORD: list[str] = [ - "Supplement", - "Extended", - "Extensions", - "Modifier", - "Marks", - "Punctuation", - "Symbols", - "Forms", - "Operators", - "Miscellaneous", - "Drawing", - "Block", - "Shapes", - "Supplemental", - "Tags", -] - -RE_POSSIBLE_ENCODING_INDICATION = re_compile( - r"(?:(?:encoding)|(?:charset)|(?:coding))(?:[\:= ]{1,10})(?:[\"\']?)([a-zA-Z0-9\-_]+)(?:[\"\']?)", - IGNORECASE, -) - -IANA_NO_ALIASES = [ - "cp720", - "cp737", - "cp856", - "cp874", - "cp875", - "cp1006", - "koi8_r", - "koi8_t", - "koi8_u", -] - -IANA_SUPPORTED: list[str] = sorted( - filter( - lambda x: x.endswith("_codec") is False - and x not in {"rot_13", "tactis", "mbcs"}, - list(set(aliases.values())) + IANA_NO_ALIASES, - ) -) - -IANA_SUPPORTED_COUNT: int = len(IANA_SUPPORTED) - -# pre-computed code page that are similar using the function cp_similarity. -IANA_SUPPORTED_SIMILAR: dict[str, list[str]] = { - "cp037": ["cp1026", "cp1140", "cp273", "cp500"], - "cp1026": ["cp037", "cp1140", "cp273", "cp500"], - "cp1125": ["cp866"], - "cp1140": ["cp037", "cp1026", "cp273", "cp500"], - "cp1250": ["iso8859_2"], - "cp1251": ["kz1048", "ptcp154"], - "cp1252": ["iso8859_15", "iso8859_9", "latin_1"], - "cp1253": ["iso8859_7"], - "cp1254": ["iso8859_15", "iso8859_9", "latin_1"], - "cp1257": ["iso8859_13"], - "cp273": ["cp037", "cp1026", "cp1140", "cp500"], - "cp437": ["cp850", "cp858", "cp860", "cp861", "cp862", "cp863", "cp865"], - "cp500": ["cp037", "cp1026", "cp1140", "cp273"], - "cp850": ["cp437", "cp857", "cp858", "cp865"], - "cp857": ["cp850", "cp858", "cp865"], - "cp858": ["cp437", "cp850", "cp857", "cp865"], - "cp860": ["cp437", "cp861", "cp862", "cp863", "cp865"], - "cp861": ["cp437", "cp860", "cp862", "cp863", "cp865"], - "cp862": ["cp437", "cp860", "cp861", "cp863", "cp865"], - "cp863": ["cp437", "cp860", "cp861", "cp862", "cp865"], - "cp865": ["cp437", "cp850", "cp857", "cp858", "cp860", "cp861", "cp862", "cp863"], - "cp866": ["cp1125"], - "iso8859_10": ["iso8859_14", "iso8859_15", "iso8859_4", "iso8859_9", "latin_1"], - "iso8859_11": ["tis_620"], - "iso8859_13": ["cp1257"], - "iso8859_14": [ - "iso8859_10", - "iso8859_15", - "iso8859_16", - "iso8859_3", - "iso8859_9", - "latin_1", - ], - "iso8859_15": [ - "cp1252", - "cp1254", - "iso8859_10", - "iso8859_14", - "iso8859_16", - "iso8859_3", - "iso8859_9", - "latin_1", - ], - "iso8859_16": [ - "iso8859_14", - "iso8859_15", - "iso8859_2", - "iso8859_3", - "iso8859_9", - "latin_1", - ], - "iso8859_2": ["cp1250", "iso8859_16", "iso8859_4"], - "iso8859_3": ["iso8859_14", "iso8859_15", "iso8859_16", "iso8859_9", "latin_1"], - "iso8859_4": ["iso8859_10", "iso8859_2", "iso8859_9", "latin_1"], - "iso8859_7": ["cp1253"], - "iso8859_9": [ - "cp1252", - "cp1254", - "cp1258", - "iso8859_10", - "iso8859_14", - "iso8859_15", - "iso8859_16", - "iso8859_3", - "iso8859_4", - "latin_1", - ], - "kz1048": ["cp1251", "ptcp154"], - "latin_1": [ - "cp1252", - "cp1254", - "cp1258", - "iso8859_10", - "iso8859_14", - "iso8859_15", - "iso8859_16", - "iso8859_3", - "iso8859_4", - "iso8859_9", - ], - "mac_iceland": ["mac_roman", "mac_turkish"], - "mac_roman": ["mac_iceland", "mac_turkish"], - "mac_turkish": ["mac_iceland", "mac_roman"], - "ptcp154": ["cp1251", "kz1048"], - "tis_620": ["iso8859_11"], -} - - -CHARDET_CORRESPONDENCE: dict[str, str] = { - "iso2022_kr": "ISO-2022-KR", - "iso2022_jp": "ISO-2022-JP", - "euc_kr": "EUC-KR", - "tis_620": "TIS-620", - "utf_32": "UTF-32", - "euc_jp": "EUC-JP", - "koi8_r": "KOI8-R", - "iso8859_1": "ISO-8859-1", - "iso8859_2": "ISO-8859-2", - "iso8859_5": "ISO-8859-5", - "iso8859_6": "ISO-8859-6", - "iso8859_7": "ISO-8859-7", - "iso8859_8": "ISO-8859-8", - "utf_16": "UTF-16", - "cp855": "IBM855", - "mac_cyrillic": "MacCyrillic", - "gb2312": "GB2312", - "gb18030": "GB18030", - "cp932": "CP932", - "cp866": "IBM866", - "utf_8": "utf-8", - "utf_8_sig": "UTF-8-SIG", - "shift_jis": "SHIFT_JIS", - "big5": "Big5", - "cp1250": "windows-1250", - "cp1251": "windows-1251", - "cp1252": "Windows-1252", - "cp1253": "windows-1253", - "cp1255": "windows-1255", - "cp1256": "windows-1256", - "cp1254": "Windows-1254", - "cp949": "CP949", -} - - -COMMON_SAFE_ASCII_CHARACTERS: frozenset[str] = frozenset( - { - "<", - ">", - "=", - ":", - "/", - "&", - ";", - "{", - "}", - "[", - "]", - ",", - "|", - '"', - "-", - "(", - ")", - } -) - -# Sample character sets — replace with full lists if needed -COMMON_CHINESE_CHARACTERS = "的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两体制机当使点从业本去把性好应开它合还因由其些然前外天政四日那社义事平形相全表间样与关各重新线内数正心反你明看原又么利比或但质气第向道命此变条只没结解问意建月公无系军很情者最立代想已通并提直题党程展五果料象员革位入常文总次品式活设及管特件长求老头基资边流路级少图山统接知较将组见计别她手角期根论运农指几九区强放决西被干做必战先回则任取据处队南给色光门即保治北造百规热领七海口东导器压志世金增争济阶油思术极交受联什认六共权收证改清己美再采转更单风切打白教速花带安场身车例真务具万每目至达走积示议声报斗完类八离华名确才科张信马节话米整空元况今集温传土许步群广石记需段研界拉林律叫且究观越织装影算低持音众书布复容儿须际商非验连断深难近矿千周委素技备半办青省列习响约支般史感劳便团往酸历市克何除消构府太准精值号率族维划选标写存候毛亲快效斯院查江型眼王按格养易置派层片始却专状育厂京识适属圆包火住调满县局照参红细引听该铁价严龙飞" - -COMMON_JAPANESE_CHARACTERS = "日一国年大十二本中長出三時行見月分後前生五間上東四今金九入学高円子外八六下来気小七山話女北午百書先名川千水半男西電校語土木聞食車何南万毎白天母火右読友左休父雨" - -COMMON_KOREAN_CHARACTERS = "一二三四五六七八九十百千萬上下左右中人女子大小山川日月火水木金土父母天地國名年時文校學生" - -# Combine all into a frozenset -COMMON_CJK_CHARACTERS = frozenset( - "".join( - [ - COMMON_CHINESE_CHARACTERS, - COMMON_JAPANESE_CHARACTERS, - COMMON_KOREAN_CHARACTERS, - ] - ) -) - -KO_NAMES: frozenset[str] = frozenset({"johab", "cp949", "euc_kr"}) -ZH_NAMES: frozenset[str] = frozenset({"big5", "cp950", "big5hkscs", "hz"}) - -# Logging LEVEL below DEBUG -TRACE: int = 5 - - -# Language label that contain the em dash "—" -# character are to be considered alternative seq to origin -FREQUENCIES: dict[str, list[str]] = { - "English": [ - "e", - "a", - "t", - "i", - "o", - "n", - "s", - "r", - "h", - "l", - "d", - "c", - "u", - "m", - "f", - "p", - "g", - "w", - "y", - "b", - "v", - "k", - "x", - "j", - "z", - "q", - ], - "English—": [ - "e", - "a", - "t", - "i", - "o", - "n", - "s", - "r", - "h", - "l", - "d", - "c", - "m", - "u", - "f", - "p", - "g", - "w", - "b", - "y", - "v", - "k", - "j", - "x", - "z", - "q", - ], - "German": [ - "e", - "n", - "i", - "r", - "s", - "t", - "a", - "d", - "h", - "u", - "l", - "g", - "o", - "c", - "m", - "b", - "f", - "k", - "w", - "z", - "p", - "v", - "ü", - "ä", - "ö", - "j", - ], - "French": [ - "e", - "a", - "s", - "n", - "i", - "t", - "r", - "l", - "u", - "o", - "d", - "c", - "p", - "m", - "é", - "v", - "g", - "f", - "b", - "h", - "q", - "à", - "x", - "è", - "y", - "j", - ], - "Dutch": [ - "e", - "n", - "a", - "i", - "r", - "t", - "o", - "d", - "s", - "l", - "g", - "h", - "v", - "m", - "u", - "k", - "c", - "p", - "b", - "w", - "j", - "z", - "f", - "y", - "x", - "ë", - ], - "Italian": [ - "e", - "i", - "a", - "o", - "n", - "l", - "t", - "r", - "s", - "c", - "d", - "u", - "p", - "m", - "g", - "v", - "f", - "b", - "z", - "h", - "q", - "è", - "à", - "k", - "y", - "ò", - ], - "Polish": [ - "a", - "i", - "o", - "e", - "n", - "r", - "z", - "w", - "s", - "c", - "t", - "k", - "y", - "d", - "p", - "m", - "u", - "l", - "j", - "ł", - "g", - "b", - "h", - "ą", - "ę", - "ó", - ], - "Spanish": [ - "e", - "a", - "o", - "n", - "s", - "r", - "i", - "l", - "d", - "t", - "c", - "u", - "m", - "p", - "b", - "g", - "v", - "f", - "y", - "ó", - "h", - "q", - "í", - "j", - "z", - "á", - ], - "Russian": [ - "о", - "е", - "а", - "и", - "н", - "т", - "с", - "р", - "в", - "л", - "к", - "м", - "д", - "п", - "у", - "г", - "я", - "ы", - "з", - "б", - "й", - "ь", - "ч", - "х", - "ж", - "ц", - ], - # Jap-Kanji - "Japanese": [ - "日", - "一", - "人", - "年", - "大", - "十", - "二", - "本", - "中", - "長", - "出", - "三", - "時", - "行", - "見", - "月", - "分", - "後", - "前", - "生", - "五", - "間", - "上", - "東", - "四", - "今", - "金", - "九", - "入", - "学", - "高", - "円", - "子", - "外", - "八", - "六", - "下", - "来", - "気", - "小", - "七", - "山", - "話", - "女", - "北", - "午", - "百", - "書", - "先", - "名", - "川", - "千", - "水", - "半", - "男", - "西", - "電", - "校", - "語", - "土", - "木", - "聞", - "食", - "車", - "何", - "南", - "万", - "毎", - "白", - "天", - "母", - "火", - "右", - "読", - "友", - "左", - "休", - "父", - "雨", - ], - # Jap-Katakana - "Japanese—": [ - "ー", - "ン", - "ス", - "・", - "ル", - "ト", - "リ", - "イ", - "ア", - "ラ", - "ッ", - "ク", - "ド", - "シ", - "レ", - "ジ", - "タ", - "フ", - "ロ", - "カ", - "テ", - "マ", - "ィ", - "グ", - "バ", - "ム", - "プ", - "オ", - "コ", - "デ", - "ニ", - "ウ", - "メ", - "サ", - "ビ", - "ナ", - "ブ", - "ャ", - "エ", - "ュ", - "チ", - "キ", - "ズ", - "ダ", - "パ", - "ミ", - "ェ", - "ョ", - "ハ", - "セ", - "ベ", - "ガ", - "モ", - "ツ", - "ネ", - "ボ", - "ソ", - "ノ", - "ァ", - "ヴ", - "ワ", - "ポ", - "ペ", - "ピ", - "ケ", - "ゴ", - "ギ", - "ザ", - "ホ", - "ゲ", - "ォ", - "ヤ", - "ヒ", - "ユ", - "ヨ", - "ヘ", - "ゼ", - "ヌ", - "ゥ", - "ゾ", - "ヶ", - "ヂ", - "ヲ", - "ヅ", - "ヵ", - "ヱ", - "ヰ", - "ヮ", - "ヽ", - "゠", - "ヾ", - "ヷ", - "ヿ", - "ヸ", - "ヹ", - "ヺ", - ], - # Jap-Hiragana - "Japanese——": [ - "の", - "に", - "る", - "た", - "と", - "は", - "し", - "い", - "を", - "で", - "て", - "が", - "な", - "れ", - "か", - "ら", - "さ", - "っ", - "り", - "す", - "あ", - "も", - "こ", - "ま", - "う", - "く", - "よ", - "き", - "ん", - "め", - "お", - "け", - "そ", - "つ", - "だ", - "や", - "え", - "ど", - "わ", - "ち", - "み", - "せ", - "じ", - "ば", - "へ", - "び", - "ず", - "ろ", - "ほ", - "げ", - "む", - "べ", - "ひ", - "ょ", - "ゆ", - "ぶ", - "ご", - "ゃ", - "ね", - "ふ", - "ぐ", - "ぎ", - "ぼ", - "ゅ", - "づ", - "ざ", - "ぞ", - "ぬ", - "ぜ", - "ぱ", - "ぽ", - "ぷ", - "ぴ", - "ぃ", - "ぁ", - "ぇ", - "ぺ", - "ゞ", - "ぢ", - "ぉ", - "ぅ", - "ゐ", - "ゝ", - "ゑ", - "゛", - "゜", - "ゎ", - "ゔ", - "゚", - "ゟ", - "゙", - "ゕ", - "ゖ", - ], - "Portuguese": [ - "a", - "e", - "o", - "s", - "i", - "r", - "d", - "n", - "t", - "m", - "u", - "c", - "l", - "p", - "g", - "v", - "b", - "f", - "h", - "ã", - "q", - "é", - "ç", - "á", - "z", - "í", - ], - "Swedish": [ - "e", - "a", - "n", - "r", - "t", - "s", - "i", - "l", - "d", - "o", - "m", - "k", - "g", - "v", - "h", - "f", - "u", - "p", - "ä", - "c", - "b", - "ö", - "å", - "y", - "j", - "x", - ], - "Chinese": [ - "的", - "一", - "是", - "不", - "了", - "在", - "人", - "有", - "我", - "他", - "这", - "个", - "们", - "中", - "来", - "上", - "大", - "为", - "和", - "国", - "地", - "到", - "以", - "说", - "时", - "要", - "就", - "出", - "会", - "可", - "也", - "你", - "对", - "生", - "能", - "而", - "子", - "那", - "得", - "于", - "着", - "下", - "自", - "之", - "年", - "过", - "发", - "后", - "作", - "里", - "用", - "道", - "行", - "所", - "然", - "家", - "种", - "事", - "成", - "方", - "多", - "经", - "么", - "去", - "法", - "学", - "如", - "都", - "同", - "现", - "当", - "没", - "动", - "面", - "起", - "看", - "定", - "天", - "分", - "还", - "进", - "好", - "小", - "部", - "其", - "些", - "主", - "样", - "理", - "心", - "她", - "本", - "前", - "开", - "但", - "因", - "只", - "从", - "想", - "实", - ], - "Ukrainian": [ - "о", - "а", - "н", - "і", - "и", - "р", - "в", - "т", - "е", - "с", - "к", - "л", - "у", - "д", - "м", - "п", - "з", - "я", - "ь", - "б", - "г", - "й", - "ч", - "х", - "ц", - "ї", - ], - "Norwegian": [ - "e", - "r", - "n", - "t", - "a", - "s", - "i", - "o", - "l", - "d", - "g", - "k", - "m", - "v", - "f", - "p", - "u", - "b", - "h", - "å", - "y", - "j", - "ø", - "c", - "æ", - "w", - ], - "Finnish": [ - "a", - "i", - "n", - "t", - "e", - "s", - "l", - "o", - "u", - "k", - "ä", - "m", - "r", - "v", - "j", - "h", - "p", - "y", - "d", - "ö", - "g", - "c", - "b", - "f", - "w", - "z", - ], - "Vietnamese": [ - "n", - "h", - "t", - "i", - "c", - "g", - "a", - "o", - "u", - "m", - "l", - "r", - "à", - "đ", - "s", - "e", - "v", - "p", - "b", - "y", - "ư", - "d", - "á", - "k", - "ộ", - "ế", - ], - "Czech": [ - "o", - "e", - "a", - "n", - "t", - "s", - "i", - "l", - "v", - "r", - "k", - "d", - "u", - "m", - "p", - "í", - "c", - "h", - "z", - "á", - "y", - "j", - "b", - "ě", - "é", - "ř", - ], - "Hungarian": [ - "e", - "a", - "t", - "l", - "s", - "n", - "k", - "r", - "i", - "o", - "z", - "á", - "é", - "g", - "m", - "b", - "y", - "v", - "d", - "h", - "u", - "p", - "j", - "ö", - "f", - "c", - ], - "Korean": [ - "이", - "다", - "에", - "의", - "는", - "로", - "하", - "을", - "가", - "고", - "지", - "서", - "한", - "은", - "기", - "으", - "년", - "대", - "사", - "시", - "를", - "리", - "도", - "인", - "스", - "일", - ], - "Indonesian": [ - "a", - "n", - "e", - "i", - "r", - "t", - "u", - "s", - "d", - "k", - "m", - "l", - "g", - "p", - "b", - "o", - "h", - "y", - "j", - "c", - "w", - "f", - "v", - "z", - "x", - "q", - ], - "Turkish": [ - "a", - "e", - "i", - "n", - "r", - "l", - "ı", - "k", - "d", - "t", - "s", - "m", - "y", - "u", - "o", - "b", - "ü", - "ş", - "v", - "g", - "z", - "h", - "c", - "p", - "ç", - "ğ", - ], - "Romanian": [ - "e", - "i", - "a", - "r", - "n", - "t", - "u", - "l", - "o", - "c", - "s", - "d", - "p", - "m", - "ă", - "f", - "v", - "î", - "g", - "b", - "ș", - "ț", - "z", - "h", - "â", - "j", - ], - "Farsi": [ - "ا", - "ی", - "ر", - "د", - "ن", - "ه", - "و", - "م", - "ت", - "ب", - "س", - "ل", - "ک", - "ش", - "ز", - "ف", - "گ", - "ع", - "خ", - "ق", - "ج", - "آ", - "پ", - "ح", - "ط", - "ص", - ], - "Arabic": [ - "ا", - "ل", - "ي", - "م", - "و", - "ن", - "ر", - "ت", - "ب", - "ة", - "ع", - "د", - "س", - "ف", - "ه", - "ك", - "ق", - "أ", - "ح", - "ج", - "ش", - "ط", - "ص", - "ى", - "خ", - "إ", - ], - "Danish": [ - "e", - "r", - "n", - "t", - "a", - "i", - "s", - "d", - "l", - "o", - "g", - "m", - "k", - "f", - "v", - "u", - "b", - "h", - "p", - "å", - "y", - "ø", - "æ", - "c", - "j", - "w", - ], - "Serbian": [ - "а", - "и", - "о", - "е", - "н", - "р", - "с", - "у", - "т", - "к", - "ј", - "в", - "д", - "м", - "п", - "л", - "г", - "з", - "б", - "a", - "i", - "e", - "o", - "n", - "ц", - "ш", - ], - "Lithuanian": [ - "i", - "a", - "s", - "o", - "r", - "e", - "t", - "n", - "u", - "k", - "m", - "l", - "p", - "v", - "d", - "j", - "g", - "ė", - "b", - "y", - "ų", - "š", - "ž", - "c", - "ą", - "į", - ], - "Slovene": [ - "e", - "a", - "i", - "o", - "n", - "r", - "s", - "l", - "t", - "j", - "v", - "k", - "d", - "p", - "m", - "u", - "z", - "b", - "g", - "h", - "č", - "c", - "š", - "ž", - "f", - "y", - ], - "Slovak": [ - "o", - "a", - "e", - "n", - "i", - "r", - "v", - "t", - "s", - "l", - "k", - "d", - "m", - "p", - "u", - "c", - "h", - "j", - "b", - "z", - "á", - "y", - "ý", - "í", - "č", - "é", - ], - "Hebrew": [ - "י", - "ו", - "ה", - "ל", - "ר", - "ב", - "ת", - "מ", - "א", - "ש", - "נ", - "ע", - "ם", - "ד", - "ק", - "ח", - "פ", - "ס", - "כ", - "ג", - "ט", - "צ", - "ן", - "ז", - "ך", - ], - "Bulgarian": [ - "а", - "и", - "о", - "е", - "н", - "т", - "р", - "с", - "в", - "л", - "к", - "д", - "п", - "м", - "з", - "г", - "я", - "ъ", - "у", - "б", - "ч", - "ц", - "й", - "ж", - "щ", - "х", - ], - "Croatian": [ - "a", - "i", - "o", - "e", - "n", - "r", - "j", - "s", - "t", - "u", - "k", - "l", - "v", - "d", - "m", - "p", - "g", - "z", - "b", - "c", - "č", - "h", - "š", - "ž", - "ć", - "f", - ], - "Hindi": [ - "क", - "र", - "स", - "न", - "त", - "म", - "ह", - "प", - "य", - "ल", - "व", - "ज", - "द", - "ग", - "ब", - "श", - "ट", - "अ", - "ए", - "थ", - "भ", - "ड", - "च", - "ध", - "ष", - "इ", - ], - "Estonian": [ - "a", - "i", - "e", - "s", - "t", - "l", - "u", - "n", - "o", - "k", - "r", - "d", - "m", - "v", - "g", - "p", - "j", - "h", - "ä", - "b", - "õ", - "ü", - "f", - "c", - "ö", - "y", - ], - "Thai": [ - "า", - "น", - "ร", - "อ", - "ก", - "เ", - "ง", - "ม", - "ย", - "ล", - "ว", - "ด", - "ท", - "ส", - "ต", - "ะ", - "ป", - "บ", - "ค", - "ห", - "แ", - "จ", - "พ", - "ช", - "ข", - "ใ", - ], - "Greek": [ - "α", - "τ", - "ο", - "ι", - "ε", - "ν", - "ρ", - "σ", - "κ", - "η", - "π", - "ς", - "υ", - "μ", - "λ", - "ί", - "ό", - "ά", - "γ", - "έ", - "δ", - "ή", - "ω", - "χ", - "θ", - "ύ", - ], - "Tamil": [ - "க", - "த", - "ப", - "ட", - "ர", - "ம", - "ல", - "ன", - "வ", - "ற", - "ய", - "ள", - "ச", - "ந", - "இ", - "ண", - "அ", - "ஆ", - "ழ", - "ங", - "எ", - "உ", - "ஒ", - "ஸ", - ], - "Kazakh": [ - "а", - "ы", - "е", - "н", - "т", - "р", - "л", - "і", - "д", - "с", - "м", - "қ", - "к", - "о", - "б", - "и", - "у", - "ғ", - "ж", - "ң", - "з", - "ш", - "й", - "п", - "г", - "ө", - ], -} - -LANGUAGE_SUPPORTED_COUNT: int = len(FREQUENCIES) - -# Bit flags for unified character classification. -# A single unicodedata.name() call sets all relevant flags at once. -_LATIN: int = 1 -_ACCENTUATED: int = 1 << 1 -_CJK: int = 1 << 2 -_HANGUL: int = 1 << 3 -_KATAKANA: int = 1 << 4 -_HIRAGANA: int = 1 << 5 -_THAI: int = 1 << 6 -_ARABIC: int = 1 << 7 -_ARABIC_ISOLATED_FORM: int = 1 << 8 - -_ACCENT_KEYWORDS: tuple[str, ...] = ( - "WITH GRAVE", - "WITH ACUTE", - "WITH CEDILLA", - "WITH DIAERESIS", - "WITH CIRCUMFLEX", - "WITH TILDE", - "WITH MACRON", - "WITH RING ABOVE", -) - -# Pre-built lookup structures for FREQUENCIES (computed once at import time). -# character -> rank mapping per language (replaces list .index() calls). -_FREQUENCIES_RANK: dict[str, dict[str, int]] = { - lang: {char: rank for rank, char in enumerate(chars)} - for lang, chars in FREQUENCIES.items() -} - -# frozenset per language (avoids rebuilding set() per call). -_FREQUENCIES_SET: dict[str, frozenset[str]] = { - lang: frozenset(chars) for lang, chars in FREQUENCIES.items() -} diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/legacy.py b/.venv/lib/python3.12/site-packages/charset_normalizer/legacy.py deleted file mode 100644 index 293c1ef..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/legacy.py +++ /dev/null @@ -1,79 +0,0 @@ -from __future__ import annotations - -from typing import TYPE_CHECKING, Any -from warnings import warn - -from .api import from_bytes -from .constant import CHARDET_CORRESPONDENCE, TOO_SMALL_SEQUENCE - -if TYPE_CHECKING: - from typing import TypedDict - - class ResultDict(TypedDict): - encoding: str | None - language: str - confidence: float | None - - -def detect( - byte_str: bytes, should_rename_legacy: bool = False, **kwargs: Any -) -> ResultDict: - """ - chardet legacy method - Detect the encoding of the given byte string. It should be mostly backward-compatible. - Encoding name will match Chardet own writing whenever possible. (Not on encoding name unsupported by it) - This function is deprecated and should be used to migrate your project easily, consult the documentation for - further information. Not planned for removal. - - :param byte_str: The byte sequence to examine. - :param should_rename_legacy: Should we rename legacy encodings - to their more modern equivalents? - """ - if len(kwargs): - warn( - f"charset-normalizer disregard arguments '{','.join(list(kwargs.keys()))}' in legacy function detect()" - ) - - if not isinstance(byte_str, (bytearray, bytes)): - raise TypeError( # pragma: nocover - f"Expected object of type bytes or bytearray, got: {type(byte_str)}" - ) - - if isinstance(byte_str, bytearray): - byte_str = bytes(byte_str) - - r = from_bytes(byte_str).best() - - encoding = r.encoding if r is not None else None - language = r.language if r is not None and r.language != "Unknown" else "" - confidence = 1.0 - r.chaos if r is not None else None - - # automatically lower confidence - # on small bytes samples. - # https://github.com/jawah/charset_normalizer/issues/391 - if ( - confidence is not None - and confidence >= 0.9 - and encoding - not in { - "utf_8", - "ascii", - } - and r.bom is False # type: ignore[union-attr] - and len(byte_str) < TOO_SMALL_SEQUENCE - ): - confidence -= 0.2 - - # Note: CharsetNormalizer does not return 'UTF-8-SIG' as the sig get stripped in the detection/normalization process - # but chardet does return 'utf-8-sig' and it is a valid codec name. - if r is not None and encoding == "utf_8" and r.bom: - encoding += "_sig" - - if should_rename_legacy is False and encoding in CHARDET_CORRESPONDENCE: - encoding = CHARDET_CORRESPONDENCE[encoding] - - return { - "encoding": encoding, - "language": language, - "confidence": confidence, - } diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so b/.venv/lib/python3.12/site-packages/charset_normalizer/md.cpython-312-x86_64-linux-gnu.so deleted file mode 100755 index 87d31c7e9c670f6288a511726c3d3a4c3cd8d58b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15912 zcmeHOeQX?85r1dL^zwo2LYx!Idhd4ayXroy zyS>yGg%Zh0g-Ih>k&p^PB2*EIDyV=z3Ierq>d;gb5~f0se-H;K=uAnQss*(Oe9XKz zb6ziZY5qV6!9MGDW`6VWW@q1?-`>9WrGb&bI-gH)s~3-mbxDW_DLOvI7KrtT&2Zc) z+NABKb=ALcw;B}0R5U9Y`;aP<8E4v3r|g(Aj()PgfYJ*W4N>w;oqitzmzBNBZ{@&7 zIz|1(iLxJx=vN}Y68SMLQh!YSDy+;A^X#E`ZrV}{kv|ns25!psOxf>I z@WVXsv~k(TslQrv2~qw`>2&4!-2Dz%Z&4 zze6Q7zJK|Ci%@;9)BVY~AiU_pS$_4Piicwp#|XC-2hR5x>aIKRyVw|L(ScX`MtuYi zLZB_(N>cVmB#}7YL)@ApibMO#m;k=jf#dzeEf7&0+B@(64hOy=A7$BiaTJQ$T6%L0&It0J*3Nf752&_qOlKpTKBR*g=f9 z9WGGovE$|9qPFnc(wyw&X8tOo;iY58m#2eGyUt*lFpjp+-|jCRmBD~}~_#df2PuT42+7~rDW8FR7 z(a>~PPiI)yQ-#?=Ovtx-vAB`VS+<_eWK;5OVpa#e$)|rC|KJDt``YRs3P2$Iap2Nh zi|}hhJ77EEGX;LLXwcX^*x35n zrmau-Pm6;)9{R+-_WKd;f=@qu;t=-|0=oCbpERvp|BXON1wtE#3Q`9lzKiZ@e zoabe-<29GuAG|e{`9DMU@CI1QTvvE(l=73Lf1hN|lfwST2(MRncetMx*bWl?Jke>Q zCx|{pbf~ZIGl33R@x3Py?t(?U;Xr4ovpWE4jv<|qMO#`pNzD=AvvEf|XZj&?T+CqJ~ zuLsLGjy8$6@zwl>hWBM1jD9{ZR>G12i7!##jDMVP{ytzFw{!T!b`gpwgvV{4#P1e- z-zu#Tj{}4KR=!_IaYEWRSJq>*{a1mhmVd4D`nrtMBp$$oU9DQ2%V1Ln-%>mV*yVX( ze6XmV*LO4i6N!IRxbK6j(x9=j--7M&d(bCZD)nLf4}|mg4CC(uQ-`}6T=mBb7+@m@ zZG%F%Or^H72L1@()#8lSu#W*=ZQntPaQD80FV={20q|=5eg|;*1DoTVBpb`xIXe$a zOk!ev+k$SV^cZej$ie;wGo#NWGf^X{n|3Cf(~bO`h-FftKMoM=ykOU%kt2tCNAx3ugGUD@^oia>BLff+f9<^Oc8wal zESwuET$?{??baAx-_0R6Uhw{l>Kit22gx1m5{YcsnGwttQnnEl!JM5{G|pT)V_U(Q zbUql(Cz9sggejyHH*#?iGz)3)RMgHY%?T@;OJvd;1RZo)D`}tuakEKV$lr`b(6;7) zmzOA*&6tL5h@cgxiySw>mnG$)28Qxr9=)&&2q4ojQi&L(kb%H(2+H1~xts{X*h|5X zQt8Qa3L3BpCK1isFkb&n4d+KV$KZKMt^Hu!9Zefp6hYwr3UdhdpCX272U+s`0{_oB zTMr00XJUVzS26X&{frI!MV9?}z7qiqW3xZc)0pzS3`}IBa4ZT9IGiJ~KhKMpZYN95 zpY539J}R7ZvCQ)>rUCMI=TEROfk7Sn^E{8~WisUc-RGYs|3hTQ^G2qN4*wS5-Trfc zVNG~mTlw;*e*!#zrZ6&B=8@t+bovL#kLj$_7 ziIpSw&%krQ;2ev`2S4}lzDc(|%S>MY-zJAY&#$iU1rQqBDQR71{AEyJ{@g#$Z;Bt_ z&+&c^430ha=XntCYb|1MXk0h$m&d_%&^i0(eRHoqDBVOrk;;+%nf?YePJf<1mB?SK zcq)ednEnx9^tGlfSX zrYK;54HaCeBZ)E&k6p%)o(?N%g_QW*jL)ik-u(TG&!2qm%0nH;@C7HdYp(uXqMZI$ P^S^h$^55ceaEaod10Yub diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/md.py b/.venv/lib/python3.12/site-packages/charset_normalizer/md.py deleted file mode 100644 index b41d9cf..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/md.py +++ /dev/null @@ -1,936 +0,0 @@ -from __future__ import annotations - -import sys -from functools import lru_cache -from logging import getLogger - -if sys.version_info >= (3, 8): - from typing import final -else: - try: - from typing_extensions import final - except ImportError: - - def final(cls): # type: ignore[misc,no-untyped-def] - return cls - - -from .constant import ( - COMMON_CJK_CHARACTERS, - COMMON_SAFE_ASCII_CHARACTERS, - TRACE, - UNICODE_SECONDARY_RANGE_KEYWORD, - _ACCENTUATED, - _ARABIC, - _ARABIC_ISOLATED_FORM, - _CJK, - _HANGUL, - _HIRAGANA, - _KATAKANA, - _LATIN, - _THAI, -) -from .utils import ( - _character_flags, - is_emoticon, - is_punctuation, - is_separator, - is_symbol, - remove_accent, - unicode_range, -) - -# Combined bitmask for CJK/Hangul/Katakana/Hiragana/Thai glyph detection. -_GLYPH_MASK: int = _CJK | _HANGUL | _KATAKANA | _HIRAGANA | _THAI - - -@final -class CharInfo: - """Pre-computed character properties shared across all detectors. - - Instantiated once and reused via :meth:`update` on every character - in the hot loop so that redundant calls to str methods - (``isalpha``, ``isupper``, …) and cached utility functions - (``_character_flags``, ``is_punctuation``, …) are avoided when - several plugins need the same information. - """ - - __slots__ = ( - "character", - "printable", - "alpha", - "upper", - "lower", - "space", - "digit", - "is_ascii", - "case_variable", - "flags", - "accentuated", - "latin", - "is_cjk", - "is_arabic", - "is_glyph", - "punct", - "sym", - ) - - def __init__(self) -> None: - self.character: str = "" - self.printable: bool = False - self.alpha: bool = False - self.upper: bool = False - self.lower: bool = False - self.space: bool = False - self.digit: bool = False - self.is_ascii: bool = False - self.case_variable: bool = False - self.flags: int = 0 - self.accentuated: bool = False - self.latin: bool = False - self.is_cjk: bool = False - self.is_arabic: bool = False - self.is_glyph: bool = False - self.punct: bool = False - self.sym: bool = False - - def update(self, character: str) -> None: - """Update all properties for *character* (called once per character).""" - self.character = character - - # ASCII fast-path: for characters with ord < 128, we can skip - # _character_flags() entirely and derive most properties from ord. - o: int = ord(character) - if o < 128: - self.is_ascii = True - self.accentuated = False - self.is_cjk = False - self.is_arabic = False - self.is_glyph = False - # ASCII alpha: a-z (97-122) or A-Z (65-90) - if 65 <= o <= 90: - # Uppercase ASCII letter - self.alpha = True - self.upper = True - self.lower = False - self.space = False - self.digit = False - self.printable = True - self.case_variable = True - self.flags = _LATIN - self.latin = True - self.punct = False - self.sym = False - elif 97 <= o <= 122: - # Lowercase ASCII letter - self.alpha = True - self.upper = False - self.lower = True - self.space = False - self.digit = False - self.printable = True - self.case_variable = True - self.flags = _LATIN - self.latin = True - self.punct = False - self.sym = False - elif 48 <= o <= 57: - # ASCII digit 0-9 - self.alpha = False - self.upper = False - self.lower = False - self.space = False - self.digit = True - self.printable = True - self.case_variable = False - self.flags = 0 - self.latin = False - self.punct = False - self.sym = False - elif o == 32 or (9 <= o <= 13): - # Space, tab, newline, etc. - self.alpha = False - self.upper = False - self.lower = False - self.space = True - self.digit = False - self.printable = o == 32 - self.case_variable = False - self.flags = 0 - self.latin = False - self.punct = False - self.sym = False - else: - # Other ASCII (punctuation, symbols, control chars) - self.printable = character.isprintable() - self.alpha = False - self.upper = False - self.lower = False - self.space = False - self.digit = False - self.case_variable = False - self.flags = 0 - self.latin = False - self.punct = is_punctuation(character) if self.printable else False - self.sym = is_symbol(character) if self.printable else False - else: - # Non-ASCII path - self.is_ascii = False - self.printable = character.isprintable() - self.alpha = character.isalpha() - self.upper = character.isupper() - self.lower = character.islower() - self.space = character.isspace() - self.digit = character.isdigit() - self.case_variable = self.lower != self.upper - - # Flag-based classification (single unicodedata.name() call, lru-cached) - flags: int - if self.alpha: - flags = _character_flags(character) - else: - flags = 0 - self.flags = flags - self.accentuated = bool(flags & _ACCENTUATED) - self.latin = bool(flags & _LATIN) - self.is_cjk = bool(flags & _CJK) - self.is_arabic = bool(flags & _ARABIC) - self.is_glyph = bool(flags & _GLYPH_MASK) - - # Eagerly compute punct and sym (avoids property dispatch overhead - # on 300K+ accesses in the hot loop). - self.punct = is_punctuation(character) if self.printable else False - self.sym = is_symbol(character) if self.printable else False - - -class MessDetectorPlugin: - """ - Base abstract class used for mess detection plugins. - All detectors MUST extend and implement given methods. - """ - - __slots__ = () - - def feed_info(self, character: str, info: CharInfo) -> None: - """ - The main routine to be executed upon character. - Insert the logic in witch the text would be considered chaotic. - """ - raise NotImplementedError # Defensive: - - def reset(self) -> None: # Defensive: - """ - Permit to reset the plugin to the initial state. - """ - raise NotImplementedError - - @property - def ratio(self) -> float: - """ - Compute the chaos ratio based on what your feed() has seen. - Must NOT be lower than 0.; No restriction gt 0. - """ - raise NotImplementedError # Defensive: - - -@final -class TooManySymbolOrPunctuationPlugin(MessDetectorPlugin): - __slots__ = ( - "_punctuation_count", - "_symbol_count", - "_character_count", - "_last_printable_char", - "_frenzy_symbol_in_word", - ) - - def __init__(self) -> None: - self._punctuation_count: int = 0 - self._symbol_count: int = 0 - self._character_count: int = 0 - - self._last_printable_char: str | None = None - self._frenzy_symbol_in_word: bool = False - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if ( - character != self._last_printable_char - and character not in COMMON_SAFE_ASCII_CHARACTERS - ): - if info.punct: - self._punctuation_count += 1 - elif not info.digit and info.sym and not is_emoticon(character): - self._symbol_count += 2 - - self._last_printable_char = character - - def reset(self) -> None: # Abstract - self._punctuation_count = 0 - self._character_count = 0 - self._symbol_count = 0 - - @property - def ratio(self) -> float: - if self._character_count == 0: - return 0.0 - - ratio_of_punctuation: float = ( - self._punctuation_count + self._symbol_count - ) / self._character_count - - return ratio_of_punctuation if ratio_of_punctuation >= 0.3 else 0.0 - - -@final -class TooManyAccentuatedPlugin(MessDetectorPlugin): - __slots__ = ("_character_count", "_accentuated_count") - - def __init__(self) -> None: - self._character_count: int = 0 - self._accentuated_count: int = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if info.accentuated: - self._accentuated_count += 1 - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._accentuated_count = 0 - - @property - def ratio(self) -> float: - if self._character_count < 8: - return 0.0 - - ratio_of_accentuation: float = self._accentuated_count / self._character_count - return ratio_of_accentuation if ratio_of_accentuation >= 0.35 else 0.0 - - -@final -class UnprintablePlugin(MessDetectorPlugin): - __slots__ = ("_unprintable_count", "_character_count") - - def __init__(self) -> None: - self._unprintable_count: int = 0 - self._character_count: int = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - if ( - not info.space - and not info.printable - and character != "\x1a" - and character != "\ufeff" - ): - self._unprintable_count += 1 - self._character_count += 1 - - def reset(self) -> None: # Abstract - self._unprintable_count = 0 - - @property - def ratio(self) -> float: - if self._character_count == 0: # Defensive: - return 0.0 - - return (self._unprintable_count * 8) / self._character_count - - -@final -class SuspiciousDuplicateAccentPlugin(MessDetectorPlugin): - __slots__ = ( - "_successive_count", - "_character_count", - "_last_latin_character", - "_last_was_accentuated", - ) - - def __init__(self) -> None: - self._successive_count: int = 0 - self._character_count: int = 0 - - self._last_latin_character: str | None = None - self._last_was_accentuated: bool = False - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - if ( - self._last_latin_character is not None - and info.accentuated - and self._last_was_accentuated - ): - if info.upper and self._last_latin_character.isupper(): - self._successive_count += 1 - if remove_accent(character) == remove_accent(self._last_latin_character): - self._successive_count += 1 - self._last_latin_character = character - self._last_was_accentuated = info.accentuated - - def reset(self) -> None: # Abstract - self._successive_count = 0 - self._character_count = 0 - self._last_latin_character = None - self._last_was_accentuated = False - - @property - def ratio(self) -> float: - if self._character_count == 0: - return 0.0 - - return (self._successive_count * 2) / self._character_count - - -@final -class SuspiciousRange(MessDetectorPlugin): - __slots__ = ( - "_suspicious_successive_range_count", - "_character_count", - "_last_printable_seen", - "_last_printable_range", - ) - - def __init__(self) -> None: - self._suspicious_successive_range_count: int = 0 - self._character_count: int = 0 - self._last_printable_seen: str | None = None - self._last_printable_range: str | None = None - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if info.space or info.punct or character in COMMON_SAFE_ASCII_CHARACTERS: - self._last_printable_seen = None - self._last_printable_range = None - return - - if self._last_printable_seen is None: - self._last_printable_seen = character - self._last_printable_range = unicode_range(character) - return - - unicode_range_a: str | None = self._last_printable_range - unicode_range_b: str | None = unicode_range(character) - - if is_suspiciously_successive_range(unicode_range_a, unicode_range_b): - self._suspicious_successive_range_count += 1 - - self._last_printable_seen = character - self._last_printable_range = unicode_range_b - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._suspicious_successive_range_count = 0 - self._last_printable_seen = None - self._last_printable_range = None - - @property - def ratio(self) -> float: - if self._character_count <= 13: - return 0.0 - - ratio_of_suspicious_range_usage: float = ( - self._suspicious_successive_range_count * 2 - ) / self._character_count - - return ratio_of_suspicious_range_usage - - -@final -class SuperWeirdWordPlugin(MessDetectorPlugin): - __slots__ = ( - "_word_count", - "_bad_word_count", - "_foreign_long_count", - "_is_current_word_bad", - "_foreign_long_watch", - "_character_count", - "_bad_character_count", - "_buffer_length", - "_buffer_last_char", - "_buffer_last_char_accentuated", - "_buffer_accent_count", - "_buffer_glyph_count", - "_buffer_upper_count", - ) - - def __init__(self) -> None: - self._word_count: int = 0 - self._bad_word_count: int = 0 - self._foreign_long_count: int = 0 - - self._is_current_word_bad: bool = False - self._foreign_long_watch: bool = False - - self._character_count: int = 0 - self._bad_character_count: int = 0 - - self._buffer_length: int = 0 - self._buffer_last_char: str | None = None - self._buffer_last_char_accentuated: bool = False - self._buffer_accent_count: int = 0 - self._buffer_glyph_count: int = 0 - self._buffer_upper_count: int = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - if info.alpha: - self._buffer_length += 1 - self._buffer_last_char = character - - if info.upper: - self._buffer_upper_count += 1 - - self._buffer_last_char_accentuated = info.accentuated - - if info.accentuated: - self._buffer_accent_count += 1 - if ( - not self._foreign_long_watch - and (not info.latin or info.accentuated) - and not info.is_glyph - ): - self._foreign_long_watch = True - if info.is_glyph: - self._buffer_glyph_count += 1 - return - if not self._buffer_length: - return - if info.space or info.punct or is_separator(character): - self._word_count += 1 - buffer_length: int = self._buffer_length - - self._character_count += buffer_length - - if buffer_length >= 4: - if self._buffer_accent_count / buffer_length >= 0.5: - self._is_current_word_bad = True - elif ( - self._buffer_last_char_accentuated - and self._buffer_last_char.isupper() # type: ignore[union-attr] - and self._buffer_upper_count != buffer_length - ): - self._foreign_long_count += 1 - self._is_current_word_bad = True - elif self._buffer_glyph_count == 1: - self._is_current_word_bad = True - self._foreign_long_count += 1 - if buffer_length >= 24 and self._foreign_long_watch: - probable_camel_cased: bool = ( - self._buffer_upper_count > 0 - and self._buffer_upper_count / buffer_length <= 0.3 - ) - - if not probable_camel_cased: - self._foreign_long_count += 1 - self._is_current_word_bad = True - - if self._is_current_word_bad: - self._bad_word_count += 1 - self._bad_character_count += buffer_length - self._is_current_word_bad = False - - self._foreign_long_watch = False - self._buffer_length = 0 - self._buffer_last_char = None - self._buffer_last_char_accentuated = False - self._buffer_accent_count = 0 - self._buffer_glyph_count = 0 - self._buffer_upper_count = 0 - elif ( - character not in {"<", ">", "-", "=", "~", "|", "_"} - and not info.digit - and info.sym - ): - self._is_current_word_bad = True - self._buffer_length += 1 - self._buffer_last_char = character - self._buffer_last_char_accentuated = False - - def reset(self) -> None: # Abstract - self._buffer_length = 0 - self._buffer_last_char = None - self._buffer_last_char_accentuated = False - self._is_current_word_bad = False - self._foreign_long_watch = False - self._bad_word_count = 0 - self._word_count = 0 - self._character_count = 0 - self._bad_character_count = 0 - self._foreign_long_count = 0 - self._buffer_accent_count = 0 - self._buffer_glyph_count = 0 - self._buffer_upper_count = 0 - - @property - def ratio(self) -> float: - if self._word_count <= 10 and self._foreign_long_count == 0: - return 0.0 - - return self._bad_character_count / self._character_count - - -@final -class CjkUncommonPlugin(MessDetectorPlugin): - """ - Detect messy CJK text that probably means nothing. - """ - - __slots__ = ("_character_count", "_uncommon_count") - - def __init__(self) -> None: - self._character_count: int = 0 - self._uncommon_count: int = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if character not in COMMON_CJK_CHARACTERS: - self._uncommon_count += 1 - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._uncommon_count = 0 - - @property - def ratio(self) -> float: - if self._character_count < 8: - return 0.0 - - uncommon_form_usage: float = self._uncommon_count / self._character_count - - # we can be pretty sure it's garbage when uncommon characters are widely - # used. otherwise it could just be traditional chinese for example. - return uncommon_form_usage / 10 if uncommon_form_usage > 0.5 else 0.0 - - -@final -class ArchaicUpperLowerPlugin(MessDetectorPlugin): - __slots__ = ( - "_buf", - "_character_count_since_last_sep", - "_successive_upper_lower_count", - "_successive_upper_lower_count_final", - "_character_count", - "_last_alpha_seen", - "_last_alpha_seen_upper", - "_last_alpha_seen_lower", - "_current_ascii_only", - ) - - def __init__(self) -> None: - self._buf: bool = False - - self._character_count_since_last_sep: int = 0 - - self._successive_upper_lower_count: int = 0 - self._successive_upper_lower_count_final: int = 0 - - self._character_count: int = 0 - - self._last_alpha_seen: str | None = None - self._last_alpha_seen_upper: bool = False - self._last_alpha_seen_lower: bool = False - self._current_ascii_only: bool = True - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - is_concerned: bool = info.alpha and info.case_variable - chunk_sep: bool = not is_concerned - - if chunk_sep and self._character_count_since_last_sep > 0: - if ( - self._character_count_since_last_sep <= 64 - and not info.digit - and not self._current_ascii_only - ): - self._successive_upper_lower_count_final += ( - self._successive_upper_lower_count - ) - - self._successive_upper_lower_count = 0 - self._character_count_since_last_sep = 0 - self._last_alpha_seen = None - self._buf = False - self._character_count += 1 - self._current_ascii_only = True - - return - - if self._current_ascii_only and not info.is_ascii: - self._current_ascii_only = False - - if self._last_alpha_seen is not None: - if (info.upper and self._last_alpha_seen_lower) or ( - info.lower and self._last_alpha_seen_upper - ): - if self._buf: - self._successive_upper_lower_count += 2 - self._buf = False - else: - self._buf = True - else: - self._buf = False - - self._character_count += 1 - self._character_count_since_last_sep += 1 - self._last_alpha_seen = character - self._last_alpha_seen_upper = info.upper - self._last_alpha_seen_lower = info.lower - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._character_count_since_last_sep = 0 - self._successive_upper_lower_count = 0 - self._successive_upper_lower_count_final = 0 - self._last_alpha_seen = None - self._last_alpha_seen_upper = False - self._last_alpha_seen_lower = False - self._buf = False - self._current_ascii_only = True - - @property - def ratio(self) -> float: - if self._character_count == 0: # Defensive: - return 0.0 - - return self._successive_upper_lower_count_final / self._character_count - - -@final -class ArabicIsolatedFormPlugin(MessDetectorPlugin): - __slots__ = ("_character_count", "_isolated_form_count") - - def __init__(self) -> None: - self._character_count: int = 0 - self._isolated_form_count: int = 0 - - def reset(self) -> None: # Abstract - self._character_count = 0 - self._isolated_form_count = 0 - - def feed_info(self, character: str, info: CharInfo) -> None: - """Optimized feed using pre-computed character info.""" - self._character_count += 1 - - if info.flags & _ARABIC_ISOLATED_FORM: - self._isolated_form_count += 1 - - @property - def ratio(self) -> float: - if self._character_count < 8: - return 0.0 - - isolated_form_usage: float = self._isolated_form_count / self._character_count - - return isolated_form_usage - - -@lru_cache(maxsize=1024) -def is_suspiciously_successive_range( - unicode_range_a: str | None, unicode_range_b: str | None -) -> bool: - """ - Determine if two Unicode range seen next to each other can be considered as suspicious. - """ - if unicode_range_a is None or unicode_range_b is None: - return True - - if unicode_range_a == unicode_range_b: - return False - - if "Latin" in unicode_range_a and "Latin" in unicode_range_b: - return False - - if "Emoticons" in unicode_range_a or "Emoticons" in unicode_range_b: - return False - - # Latin characters can be accompanied with a combining diacritical mark - # eg. Vietnamese. - if ("Latin" in unicode_range_a or "Latin" in unicode_range_b) and ( - "Combining" in unicode_range_a or "Combining" in unicode_range_b - ): - return False - - keywords_range_a, keywords_range_b = ( - unicode_range_a.split(" "), - unicode_range_b.split(" "), - ) - - for el in keywords_range_a: - if el in UNICODE_SECONDARY_RANGE_KEYWORD: - continue - if el in keywords_range_b: - return False - - # Japanese Exception - range_a_jp_chars, range_b_jp_chars = ( - unicode_range_a - in ( - "Hiragana", - "Katakana", - ), - unicode_range_b in ("Hiragana", "Katakana"), - ) - if (range_a_jp_chars or range_b_jp_chars) and ( - "CJK" in unicode_range_a or "CJK" in unicode_range_b - ): - return False - if range_a_jp_chars and range_b_jp_chars: - return False - - if "Hangul" in unicode_range_a or "Hangul" in unicode_range_b: - if "CJK" in unicode_range_a or "CJK" in unicode_range_b: - return False - if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": - return False - - # Chinese/Japanese use dedicated range for punctuation and/or separators. - if ("CJK" in unicode_range_a or "CJK" in unicode_range_b) or ( - unicode_range_a in ["Katakana", "Hiragana"] - and unicode_range_b in ["Katakana", "Hiragana"] - ): - if "Punctuation" in unicode_range_a or "Punctuation" in unicode_range_b: - return False - if "Forms" in unicode_range_a or "Forms" in unicode_range_b: - return False - if unicode_range_a == "Basic Latin" or unicode_range_b == "Basic Latin": - return False - - return True - - -@lru_cache(maxsize=2048) -def mess_ratio( - decoded_sequence: str, maximum_threshold: float = 0.2, debug: bool = False -) -> float: - """ - Compute a mess ratio given a decoded bytes sequence. The maximum threshold does stop the computation earlier. - """ - - seq_len: int = len(decoded_sequence) - - if seq_len < 511: - step: int = 32 - elif seq_len < 1024: - step = 64 - else: - step = 128 - - # Create each detector as a named local variable (unrolled from the generic loop). - # This eliminates per-character iteration over the detector list and - # per-character eligible() virtual dispatch, while keeping every plugin class - # intact and fully readable. - d_sp: TooManySymbolOrPunctuationPlugin = TooManySymbolOrPunctuationPlugin() - d_ta: TooManyAccentuatedPlugin = TooManyAccentuatedPlugin() - d_up: UnprintablePlugin = UnprintablePlugin() - d_sda: SuspiciousDuplicateAccentPlugin = SuspiciousDuplicateAccentPlugin() - d_sr: SuspiciousRange = SuspiciousRange() - d_sw: SuperWeirdWordPlugin = SuperWeirdWordPlugin() - d_cu: CjkUncommonPlugin = CjkUncommonPlugin() - d_au: ArchaicUpperLowerPlugin = ArchaicUpperLowerPlugin() - d_ai: ArabicIsolatedFormPlugin = ArabicIsolatedFormPlugin() - - # Local references for feed_info methods called in the hot loop. - d_sp_feed = d_sp.feed_info - d_ta_feed = d_ta.feed_info - d_up_feed = d_up.feed_info - d_sda_feed = d_sda.feed_info - d_sr_feed = d_sr.feed_info - d_sw_feed = d_sw.feed_info - d_cu_feed = d_cu.feed_info - d_au_feed = d_au.feed_info - d_ai_feed = d_ai.feed_info - - # Single reusable CharInfo object (avoids per-character allocation). - info: CharInfo = CharInfo() - info_update = info.update - - mean_mess_ratio: float - - for block_start in range(0, seq_len, step): - for character in decoded_sequence[block_start : block_start + step]: - # Pre-compute all character properties once (shared across all plugins). - info_update(character) - - # Detectors with eligible() == always True - d_up_feed(character, info) - d_sw_feed(character, info) - d_au_feed(character, info) - - # Detectors with eligible() == isprintable - if info.printable: - d_sp_feed(character, info) - d_sr_feed(character, info) - - # Detectors with eligible() == isalpha - if info.alpha: - d_ta_feed(character, info) - # SuspiciousDuplicateAccent: isalpha() and is_latin() - if info.latin: - d_sda_feed(character, info) - # CjkUncommon: is_cjk() - if info.is_cjk: - d_cu_feed(character, info) - # ArabicIsolatedForm: is_arabic() - if info.is_arabic: - d_ai_feed(character, info) - - mean_mess_ratio = ( - d_sp.ratio - + d_ta.ratio - + d_up.ratio - + d_sda.ratio - + d_sr.ratio - + d_sw.ratio - + d_cu.ratio - + d_au.ratio - + d_ai.ratio - ) - - if mean_mess_ratio >= maximum_threshold: - break - else: - # Flush last word buffer in SuperWeirdWordPlugin via trailing newline. - info_update("\n") - d_sw_feed("\n", info) - d_au_feed("\n", info) - d_up_feed("\n", info) - - mean_mess_ratio = ( - d_sp.ratio - + d_ta.ratio - + d_up.ratio - + d_sda.ratio - + d_sr.ratio - + d_sw.ratio - + d_cu.ratio - + d_au.ratio - + d_ai.ratio - ) - - if debug: # Defensive: - logger = getLogger("charset_normalizer") - - logger.log( - TRACE, - "Mess-detector extended-analysis start. " - f"intermediary_mean_mess_ratio_calc={step} mean_mess_ratio={mean_mess_ratio} " - f"maximum_threshold={maximum_threshold}", - ) - - if seq_len > 16: - logger.log(TRACE, f"Starting with: {decoded_sequence[:16]}") - logger.log(TRACE, f"Ending with: {decoded_sequence[-16::]}") - - for dt in [d_sp, d_ta, d_up, d_sda, d_sr, d_sw, d_cu, d_au, d_ai]: - logger.log(TRACE, f"{dt.__class__}: {dt.ratio}") - - return round(mean_mess_ratio, 3) diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/models.py b/.venv/lib/python3.12/site-packages/charset_normalizer/models.py deleted file mode 100644 index 382de15..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/models.py +++ /dev/null @@ -1,369 +0,0 @@ -from __future__ import annotations - -from encodings.aliases import aliases -from json import dumps -from re import sub -from typing import Any, Iterator, List, Tuple - -from .constant import RE_POSSIBLE_ENCODING_INDICATION, TOO_BIG_SEQUENCE -from .utils import iana_name, is_multi_byte_encoding, unicode_range - - -class CharsetMatch: - def __init__( - self, - payload: bytes | bytearray, - guessed_encoding: str, - mean_mess_ratio: float, - has_sig_or_bom: bool, - languages: CoherenceMatches, - decoded_payload: str | None = None, - preemptive_declaration: str | None = None, - ): - self._payload: bytes | bytearray = payload - - self._encoding: str = guessed_encoding - self._mean_mess_ratio: float = mean_mess_ratio - self._languages: CoherenceMatches = languages - self._has_sig_or_bom: bool = has_sig_or_bom - self._unicode_ranges: list[str] | None = None - - self._leaves: list[CharsetMatch] = [] - self._mean_coherence_ratio: float = 0.0 - - self._output_payload: bytes | None = None - self._output_encoding: str | None = None - - self._string: str | None = decoded_payload - - self._preemptive_declaration: str | None = preemptive_declaration - - def __eq__(self, other: object) -> bool: - if not isinstance(other, CharsetMatch): - if isinstance(other, str): - return iana_name(other) == self.encoding - return False - return self.encoding == other.encoding and self.fingerprint == other.fingerprint - - def __lt__(self, other: object) -> bool: - """ - Implemented to make sorted available upon CharsetMatches items. - """ - if not isinstance(other, CharsetMatch): - raise ValueError - - chaos_difference: float = abs(self.chaos - other.chaos) - coherence_difference: float = abs(self.coherence - other.coherence) - - # Below 0.5% difference --> Use Coherence - if chaos_difference < 0.005 and coherence_difference > 0.02: - return self.coherence > other.coherence - elif chaos_difference < 0.005 and coherence_difference <= 0.02: - # When having a difficult decision, use the result that decoded as many multi-byte as possible. - # preserve RAM usage! - if len(self._payload) >= TOO_BIG_SEQUENCE: - return self.chaos < other.chaos - return self.multi_byte_usage > other.multi_byte_usage - - return self.chaos < other.chaos - - @property - def multi_byte_usage(self) -> float: - return 1.0 - (len(str(self)) / len(self.raw)) - - def __str__(self) -> str: - # Lazy Str Loading - if self._string is None: - self._string = str(self._payload, self._encoding, "strict") - # UTF-7 BOM is encoded in modified Base64 whose byte boundary - # can overlap with the next character, so raw-byte stripping - # is unreliable. Strip the decoded BOM character instead. - if ( - self._has_sig_or_bom - and self._encoding == "utf_7" - and self._string - and self._string[0] == "\ufeff" - ): - self._string = self._string[1:] - return self._string - - def __repr__(self) -> str: - return f"" - - def add_submatch(self, other: CharsetMatch) -> None: - if not isinstance(other, CharsetMatch) or other == self: - raise ValueError( - "Unable to add instance <{}> as a submatch of a CharsetMatch".format( - other.__class__ - ) - ) - - other._string = None # Unload RAM usage; dirty trick. - self._leaves.append(other) - - @property - def encoding(self) -> str: - return self._encoding - - @property - def encoding_aliases(self) -> list[str]: - """ - Encoding name are known by many name, using this could help when searching for IBM855 when it's listed as CP855. - """ - also_known_as: list[str] = [] - for u, p in aliases.items(): - if self.encoding == u: - also_known_as.append(p) - elif self.encoding == p: - also_known_as.append(u) - return also_known_as - - @property - def bom(self) -> bool: - return self._has_sig_or_bom - - @property - def byte_order_mark(self) -> bool: - return self._has_sig_or_bom - - @property - def languages(self) -> list[str]: - """ - Return the complete list of possible languages found in decoded sequence. - Usually not really useful. Returned list may be empty even if 'language' property return something != 'Unknown'. - """ - return [e[0] for e in self._languages] - - @property - def language(self) -> str: - """ - Most probable language found in decoded sequence. If none were detected or inferred, the property will return - "Unknown". - """ - if not self._languages: - # Trying to infer the language based on the given encoding - # Its either English or we should not pronounce ourselves in certain cases. - if "ascii" in self.could_be_from_charset: - return "English" - - # doing it there to avoid circular import - from charset_normalizer.cd import encoding_languages, mb_encoding_languages - - languages = ( - mb_encoding_languages(self.encoding) - if is_multi_byte_encoding(self.encoding) - else encoding_languages(self.encoding) - ) - - if len(languages) == 0 or "Latin Based" in languages: - return "Unknown" - - return languages[0] - - return self._languages[0][0] - - @property - def chaos(self) -> float: - return self._mean_mess_ratio - - @property - def coherence(self) -> float: - if not self._languages: - return 0.0 - return self._languages[0][1] - - @property - def percent_chaos(self) -> float: - return round(self.chaos * 100, ndigits=3) - - @property - def percent_coherence(self) -> float: - return round(self.coherence * 100, ndigits=3) - - @property - def raw(self) -> bytes | bytearray: - """ - Original untouched bytes. - """ - return self._payload - - @property - def submatch(self) -> list[CharsetMatch]: - return self._leaves - - @property - def has_submatch(self) -> bool: - return len(self._leaves) > 0 - - @property - def alphabets(self) -> list[str]: - if self._unicode_ranges is not None: - return self._unicode_ranges - # list detected ranges - detected_ranges: list[str | None] = [unicode_range(char) for char in str(self)] - # filter and sort - self._unicode_ranges = sorted(list({r for r in detected_ranges if r})) - return self._unicode_ranges - - @property - def could_be_from_charset(self) -> list[str]: - """ - The complete list of encoding that output the exact SAME str result and therefore could be the originating - encoding. - This list does include the encoding available in property 'encoding'. - """ - return [self._encoding] + [m.encoding for m in self._leaves] - - def output(self, encoding: str = "utf_8") -> bytes: - """ - Method to get re-encoded bytes payload using given target encoding. Default to UTF-8. - Any errors will be simply ignored by the encoder NOT replaced. - """ - if self._output_encoding is None or self._output_encoding != encoding: - self._output_encoding = encoding - decoded_string = str(self) - if ( - self._preemptive_declaration is not None - and self._preemptive_declaration.lower() - not in ["utf-8", "utf8", "utf_8"] - ): - patched_header = sub( - RE_POSSIBLE_ENCODING_INDICATION, - lambda m: m.string[m.span()[0] : m.span()[1]].replace( - m.groups()[0], - iana_name(self._output_encoding).replace("_", "-"), # type: ignore[arg-type] - ), - decoded_string[:8192], - count=1, - ) - - decoded_string = patched_header + decoded_string[8192:] - - self._output_payload = decoded_string.encode(encoding, "replace") - - return self._output_payload # type: ignore - - @property - def fingerprint(self) -> int: - """ - Retrieve a hash fingerprint of the decoded payload, used for deduplication. - """ - return hash(str(self)) - - -class CharsetMatches: - """ - Container with every CharsetMatch items ordered by default from most probable to the less one. - Act like a list(iterable) but does not implements all related methods. - """ - - def __init__(self, results: list[CharsetMatch] | None = None): - self._results: list[CharsetMatch] = sorted(results) if results else [] - - def __iter__(self) -> Iterator[CharsetMatch]: - yield from self._results - - def __getitem__(self, item: int | str) -> CharsetMatch: - """ - Retrieve a single item either by its position or encoding name (alias may be used here). - Raise KeyError upon invalid index or encoding not present in results. - """ - if isinstance(item, int): - return self._results[item] - if isinstance(item, str): - item = iana_name(item, False) - for result in self._results: - if item in result.could_be_from_charset: - return result - raise KeyError - - def __len__(self) -> int: - return len(self._results) - - def __bool__(self) -> bool: - return len(self._results) > 0 - - def append(self, item: CharsetMatch) -> None: - """ - Insert a single match. Will be inserted accordingly to preserve sort. - Can be inserted as a submatch. - """ - if not isinstance(item, CharsetMatch): - raise ValueError( - "Cannot append instance '{}' to CharsetMatches".format( - str(item.__class__) - ) - ) - # We should disable the submatch factoring when the input file is too heavy (conserve RAM usage) - if len(item.raw) < TOO_BIG_SEQUENCE: - for match in self._results: - if match.fingerprint == item.fingerprint and match.chaos == item.chaos: - match.add_submatch(item) - return - self._results.append(item) - self._results = sorted(self._results) - - def best(self) -> CharsetMatch | None: - """ - Simply return the first match. Strict equivalent to matches[0]. - """ - if not self._results: - return None - return self._results[0] - - def first(self) -> CharsetMatch | None: - """ - Redundant method, call the method best(). Kept for BC reasons. - """ - return self.best() - - -CoherenceMatch = Tuple[str, float] -CoherenceMatches = List[CoherenceMatch] - - -class CliDetectionResult: - def __init__( - self, - path: str, - encoding: str | None, - encoding_aliases: list[str], - alternative_encodings: list[str], - language: str, - alphabets: list[str], - has_sig_or_bom: bool, - chaos: float, - coherence: float, - unicode_path: str | None, - is_preferred: bool, - ): - self.path: str = path - self.unicode_path: str | None = unicode_path - self.encoding: str | None = encoding - self.encoding_aliases: list[str] = encoding_aliases - self.alternative_encodings: list[str] = alternative_encodings - self.language: str = language - self.alphabets: list[str] = alphabets - self.has_sig_or_bom: bool = has_sig_or_bom - self.chaos: float = chaos - self.coherence: float = coherence - self.is_preferred: bool = is_preferred - - @property - def __dict__(self) -> dict[str, Any]: # type: ignore - return { - "path": self.path, - "encoding": self.encoding, - "encoding_aliases": self.encoding_aliases, - "alternative_encodings": self.alternative_encodings, - "language": self.language, - "alphabets": self.alphabets, - "has_sig_or_bom": self.has_sig_or_bom, - "chaos": self.chaos, - "coherence": self.coherence, - "unicode_path": self.unicode_path, - "is_preferred": self.is_preferred, - } - - def to_json(self) -> str: - return dumps(self.__dict__, ensure_ascii=True, indent=4) diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/py.typed b/.venv/lib/python3.12/site-packages/charset_normalizer/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/utils.py b/.venv/lib/python3.12/site-packages/charset_normalizer/utils.py deleted file mode 100644 index 0f529b5..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/utils.py +++ /dev/null @@ -1,422 +0,0 @@ -from __future__ import annotations - -import importlib -import logging -import unicodedata -from bisect import bisect_right -from codecs import IncrementalDecoder -from encodings.aliases import aliases -from functools import lru_cache -from re import findall -from typing import Generator - -from _multibytecodec import ( # type: ignore[import-not-found,import] - MultibyteIncrementalDecoder, -) - -from .constant import ( - ENCODING_MARKS, - IANA_SUPPORTED_SIMILAR, - RE_POSSIBLE_ENCODING_INDICATION, - UNICODE_RANGES_COMBINED, - UNICODE_SECONDARY_RANGE_KEYWORD, - UTF8_MAXIMAL_ALLOCATION, - COMMON_CJK_CHARACTERS, - _LATIN, - _CJK, - _HANGUL, - _KATAKANA, - _HIRAGANA, - _THAI, - _ARABIC, - _ARABIC_ISOLATED_FORM, - _ACCENT_KEYWORDS, - _ACCENTUATED, -) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def _character_flags(character: str) -> int: - """Compute all name-based classification flags with a single unicodedata.name() call.""" - try: - desc: str = unicodedata.name(character) - except ValueError: - return 0 - - flags: int = 0 - - if "LATIN" in desc: - flags |= _LATIN - if "CJK" in desc: - flags |= _CJK - if "HANGUL" in desc: - flags |= _HANGUL - if "KATAKANA" in desc: - flags |= _KATAKANA - if "HIRAGANA" in desc: - flags |= _HIRAGANA - if "THAI" in desc: - flags |= _THAI - if "ARABIC" in desc: - flags |= _ARABIC - if "ISOLATED FORM" in desc: - flags |= _ARABIC_ISOLATED_FORM - - for kw in _ACCENT_KEYWORDS: - if kw in desc: - flags |= _ACCENTUATED - break - - return flags - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_accentuated(character: str) -> bool: - return bool(_character_flags(character) & _ACCENTUATED) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def remove_accent(character: str) -> str: - decomposed: str = unicodedata.decomposition(character) - if not decomposed: - return character - - codes: list[str] = decomposed.split(" ") - - return chr(int(codes[0], 16)) - - -# Pre-built sorted lookup table for O(log n) binary search in unicode_range(). -# Each entry is (range_start, range_end_exclusive, range_name). -_UNICODE_RANGES_SORTED: list[tuple[int, int, str]] = sorted( - (ord_range.start, ord_range.stop, name) - for name, ord_range in UNICODE_RANGES_COMBINED.items() -) -_UNICODE_RANGE_STARTS: list[int] = [e[0] for e in _UNICODE_RANGES_SORTED] - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def unicode_range(character: str) -> str | None: - """ - Retrieve the Unicode range official name from a single character. - """ - character_ord: int = ord(character) - - # Binary search: find the rightmost range whose start <= character_ord - idx = bisect_right(_UNICODE_RANGE_STARTS, character_ord) - 1 - if idx >= 0: - start, stop, name = _UNICODE_RANGES_SORTED[idx] - if character_ord < stop: - return name - - return None - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_latin(character: str) -> bool: - return bool(_character_flags(character) & _LATIN) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_punctuation(character: str) -> bool: - character_category: str = unicodedata.category(character) - - if "P" in character_category: - return True - - character_range: str | None = unicode_range(character) - - if character_range is None: - return False - - return "Punctuation" in character_range - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_symbol(character: str) -> bool: - character_category: str = unicodedata.category(character) - - if "S" in character_category or "N" in character_category: - return True - - character_range: str | None = unicode_range(character) - - if character_range is None: - return False - - return "Forms" in character_range and character_category != "Lo" - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_emoticon(character: str) -> bool: - character_range: str | None = unicode_range(character) - - if character_range is None: - return False - - return "Emoticons" in character_range or "Pictographs" in character_range - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_separator(character: str) -> bool: - if character.isspace() or character in {"|", "+", "<", ">"}: - return True - - character_category: str = unicodedata.category(character) - - return "Z" in character_category or character_category in {"Po", "Pd", "Pc"} - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_case_variable(character: str) -> bool: - return character.islower() != character.isupper() - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_cjk(character: str) -> bool: - return bool(_character_flags(character) & _CJK) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_hiragana(character: str) -> bool: - return bool(_character_flags(character) & _HIRAGANA) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_katakana(character: str) -> bool: - return bool(_character_flags(character) & _KATAKANA) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_hangul(character: str) -> bool: - return bool(_character_flags(character) & _HANGUL) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_thai(character: str) -> bool: - return bool(_character_flags(character) & _THAI) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_arabic(character: str) -> bool: - return bool(_character_flags(character) & _ARABIC) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_arabic_isolated_form(character: str) -> bool: - return bool(_character_flags(character) & _ARABIC_ISOLATED_FORM) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_cjk_uncommon(character: str) -> bool: - return character not in COMMON_CJK_CHARACTERS - - -@lru_cache(maxsize=len(UNICODE_RANGES_COMBINED)) -def is_unicode_range_secondary(range_name: str) -> bool: - return any(keyword in range_name for keyword in UNICODE_SECONDARY_RANGE_KEYWORD) - - -@lru_cache(maxsize=UTF8_MAXIMAL_ALLOCATION) -def is_unprintable(character: str) -> bool: - return ( - character.isspace() is False # includes \n \t \r \v - and character.isprintable() is False - and character != "\x1a" # Why? Its the ASCII substitute character. - and character != "\ufeff" # bug discovered in Python, - # Zero Width No-Break Space located in Arabic Presentation Forms-B, Unicode 1.1 not acknowledged as space. - ) - - -def any_specified_encoding( - sequence: bytes | bytearray, search_zone: int = 8192 -) -> str | None: - """ - Extract using ASCII-only decoder any specified encoding in the first n-bytes. - """ - if not isinstance(sequence, (bytes, bytearray)): - raise TypeError - - seq_len: int = len(sequence) - - results: list[str] = findall( - RE_POSSIBLE_ENCODING_INDICATION, - sequence[: min(seq_len, search_zone)].decode("ascii", errors="ignore"), - ) - - if len(results) == 0: - return None - - for specified_encoding in results: - specified_encoding = specified_encoding.lower().replace("-", "_") - - encoding_alias: str - encoding_iana: str - - for encoding_alias, encoding_iana in aliases.items(): - if encoding_alias == specified_encoding: - return encoding_iana - if encoding_iana == specified_encoding: - return encoding_iana - - return None - - -@lru_cache(maxsize=128) -def is_multi_byte_encoding(name: str) -> bool: - """ - Verify is a specific encoding is a multi byte one based on it IANA name - """ - return name in { - "utf_8", - "utf_8_sig", - "utf_16", - "utf_16_be", - "utf_16_le", - "utf_32", - "utf_32_le", - "utf_32_be", - "utf_7", - } or issubclass( - importlib.import_module(f"encodings.{name}").IncrementalDecoder, - MultibyteIncrementalDecoder, - ) - - -def identify_sig_or_bom(sequence: bytes | bytearray) -> tuple[str | None, bytes]: - """ - Identify and extract SIG/BOM in given sequence. - """ - - for iana_encoding in ENCODING_MARKS: - marks: bytes | list[bytes] = ENCODING_MARKS[iana_encoding] - - if isinstance(marks, bytes): - marks = [marks] - - for mark in marks: - if sequence.startswith(mark): - return iana_encoding, mark - - return None, b"" - - -def should_strip_sig_or_bom(iana_encoding: str) -> bool: - return iana_encoding not in {"utf_16", "utf_32"} - - -def iana_name(cp_name: str, strict: bool = True) -> str: - """Returns the Python normalized encoding name (Not the IANA official name).""" - cp_name = cp_name.lower().replace("-", "_") - - encoding_alias: str - encoding_iana: str - - for encoding_alias, encoding_iana in aliases.items(): - if cp_name in [encoding_alias, encoding_iana]: - return encoding_iana - - if strict: - raise ValueError(f"Unable to retrieve IANA for '{cp_name}'") - - return cp_name - - -def cp_similarity(iana_name_a: str, iana_name_b: str) -> float: - if is_multi_byte_encoding(iana_name_a) or is_multi_byte_encoding(iana_name_b): - return 0.0 - - decoder_a = importlib.import_module(f"encodings.{iana_name_a}").IncrementalDecoder - decoder_b = importlib.import_module(f"encodings.{iana_name_b}").IncrementalDecoder - - id_a: IncrementalDecoder = decoder_a(errors="ignore") - id_b: IncrementalDecoder = decoder_b(errors="ignore") - - character_match_count: int = 0 - - for i in range(256): - to_be_decoded: bytes = bytes([i]) - if id_a.decode(to_be_decoded) == id_b.decode(to_be_decoded): - character_match_count += 1 - - return character_match_count / 256 - - -def is_cp_similar(iana_name_a: str, iana_name_b: str) -> bool: - """ - Determine if two code page are at least 80% similar. IANA_SUPPORTED_SIMILAR dict was generated using - the function cp_similarity. - """ - return ( - iana_name_a in IANA_SUPPORTED_SIMILAR - and iana_name_b in IANA_SUPPORTED_SIMILAR[iana_name_a] - ) - - -def set_logging_handler( - name: str = "charset_normalizer", - level: int = logging.INFO, - format_string: str = "%(asctime)s | %(levelname)s | %(message)s", -) -> None: - logger = logging.getLogger(name) - logger.setLevel(level) - - handler = logging.StreamHandler() - handler.setFormatter(logging.Formatter(format_string)) - logger.addHandler(handler) - - -def cut_sequence_chunks( - sequences: bytes | bytearray, - encoding_iana: str, - offsets: range, - chunk_size: int, - bom_or_sig_available: bool, - strip_sig_or_bom: bool, - sig_payload: bytes, - is_multi_byte_decoder: bool, - decoded_payload: str | None = None, -) -> Generator[str, None, None]: - if decoded_payload and is_multi_byte_decoder is False: - for i in offsets: - chunk = decoded_payload[i : i + chunk_size] - if not chunk: - break - yield chunk - else: - for i in offsets: - chunk_end = i + chunk_size - if chunk_end > len(sequences) + 8: - continue - - cut_sequence = sequences[i : i + chunk_size] - - if bom_or_sig_available and strip_sig_or_bom is False: - cut_sequence = sig_payload + cut_sequence - - chunk = cut_sequence.decode( - encoding_iana, - errors="ignore" if is_multi_byte_decoder else "strict", - ) - - # multi-byte bad cutting detector and adjustment - # not the cleanest way to perform that fix but clever enough for now. - if is_multi_byte_decoder and i > 0: - chunk_partial_size_chk: int = min(chunk_size, 16) - - if ( - decoded_payload - and chunk[:chunk_partial_size_chk] not in decoded_payload - ): - for j in range(i, i - 4, -1): - cut_sequence = sequences[j:chunk_end] - - if bom_or_sig_available and strip_sig_or_bom is False: - cut_sequence = sig_payload + cut_sequence - - chunk = cut_sequence.decode(encoding_iana, errors="ignore") - - if chunk[:chunk_partial_size_chk] in decoded_payload: - break - - yield chunk diff --git a/.venv/lib/python3.12/site-packages/charset_normalizer/version.py b/.venv/lib/python3.12/site-packages/charset_normalizer/version.py deleted file mode 100644 index a93d367..0000000 --- a/.venv/lib/python3.12/site-packages/charset_normalizer/version.py +++ /dev/null @@ -1,8 +0,0 @@ -""" -Expose version -""" - -from __future__ import annotations - -__version__ = "3.4.7" -VERSION = __version__.split(".") diff --git a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/LICENSE b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/LICENSE deleted file mode 100644 index e06d208..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/LICENSE +++ /dev/null @@ -1,202 +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/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/METADATA b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/METADATA deleted file mode 100644 index 9312e8e..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/METADATA +++ /dev/null @@ -1,184 +0,0 @@ -Metadata-Version: 2.1 -Name: distro -Version: 1.9.0 -Summary: Distro - an OS platform information API -Home-page: https://github.com/python-distro/distro -Author: Nir Cohen -Author-email: nir36g@gmail.com -License: Apache License, Version 2.0 -Platform: All -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: Intended Audience :: System Administrators -Classifier: License :: OSI Approved :: Apache Software License -Classifier: Operating System :: POSIX :: Linux -Classifier: Operating System :: POSIX :: BSD -Classifier: Operating System :: POSIX :: BSD :: FreeBSD -Classifier: Operating System :: POSIX :: BSD :: NetBSD -Classifier: Operating System :: POSIX :: BSD :: OpenBSD -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Topic :: Software Development :: Libraries :: Python Modules -Classifier: Topic :: System :: Operating System -Requires-Python: >=3.6 -Description-Content-Type: text/markdown -License-File: LICENSE - -Distro - an OS platform information API -======================================= - -[![CI Status](https://github.com/python-distro/distro/workflows/CI/badge.svg)](https://github.com/python-distro/distro/actions/workflows/ci.yaml) -[![PyPI version](http://img.shields.io/pypi/v/distro.svg)](https://pypi.python.org/pypi/distro) -[![Supported Python Versions](https://img.shields.io/pypi/pyversions/distro.svg)](https://img.shields.io/pypi/pyversions/distro.svg) -[![Code Coverage](https://codecov.io/github/python-distro/distro/coverage.svg?branch=master)](https://codecov.io/github/python-distro/distro?branch=master) -[![Is Wheel](https://img.shields.io/pypi/wheel/distro.svg?style=flat)](https://pypi.python.org/pypi/distro) -[![Latest Github Release](https://readthedocs.org/projects/distro/badge/?version=stable)](http://distro.readthedocs.io/en/latest/) - -`distro` provides information about the -OS distribution it runs on, such as a reliable machine-readable ID, or -version information. - -It is the recommended replacement for Python's original -[`platform.linux_distribution`](https://docs.python.org/3.7/library/platform.html#platform.linux_distribution) -function (removed in Python 3.8). It also provides much more functionality -which isn't necessarily Python bound, like a command-line interface. - -Distro currently supports Linux and BSD based systems but [Windows and OS X support](https://github.com/python-distro/distro/issues/177) is also planned. - -For Python 2.6 support, see https://github.com/python-distro/distro/tree/python2.6-support - -## Installation - -Installation of the latest released version from PyPI: - -```shell -pip install distro -``` - -Installation of the latest development version: - -```shell -pip install https://github.com/python-distro/distro/archive/master.tar.gz -``` - -To use as a standalone script, download `distro.py` directly: - -```shell -curl -O https://raw.githubusercontent.com/python-distro/distro/master/src/distro/distro.py -python distro.py -``` - -``distro`` is safe to vendor within projects that do not wish to add -dependencies. - -```shell -cd myproject -curl -O https://raw.githubusercontent.com/python-distro/distro/master/src/distro/distro.py -``` - -## Usage - -```bash -$ distro -Name: Antergos Linux -Version: 2015.10 (ISO-Rolling) -Codename: ISO-Rolling - -$ distro -j -{ - "codename": "ISO-Rolling", - "id": "antergos", - "like": "arch", - "version": "16.9", - "version_parts": { - "build_number": "", - "major": "16", - "minor": "9" - } -} - - -$ python ->>> import distro ->>> distro.name(pretty=True) -'CentOS Linux 8' ->>> distro.id() -'centos' ->>> distro.version(best=True) -'8.4.2105' -``` - - -## Documentation - -On top of the aforementioned API, several more functions are available. For a complete description of the -API, see the [latest API documentation](http://distro.readthedocs.org/en/latest/). - -## Background - -An alternative implementation became necessary because Python 3.5 deprecated -this function, and Python 3.8 removed it altogether. Its predecessor function -[`platform.dist`](https://docs.python.org/3.7/library/platform.html#platform.dist) -was already deprecated since Python 2.6 and removed in Python 3.8. Still, there -are many cases in which access to that information is needed. See [Python issue -1322](https://bugs.python.org/issue1322) for more information. - -The `distro` package implements a robust and inclusive way of retrieving the -information about a distribution based on new standards and old methods, -namely from these data sources (from high to low precedence): - -* The os-release file `/etc/os-release` if present, with a fall-back on `/usr/lib/os-release` if needed. -* The output of the `lsb_release` command, if available. -* The distro release file (`/etc/*(-|_)(release|version)`), if present. -* The `uname` command for BSD based distrubtions. - - -## Python and Distribution Support - -`distro` is supported and tested on Python 3.6+ and PyPy and on any -distribution that provides one or more of the data sources covered. - -This package is tested with test data that mimics the exact behavior of the data sources of [a number of Linux distributions](https://github.com/python-distro/distro/tree/master/tests/resources/distros). - - -## Testing - -```shell -git clone git@github.com:python-distro/distro.git -cd distro -pip install tox -tox -``` - - -## Contributions - -Pull requests are always welcome to deal with specific distributions or just -for general merriment. - -See [CONTRIBUTIONS](https://github.com/python-distro/distro/blob/master/CONTRIBUTING.md) for contribution info. - -Reference implementations for supporting additional distributions and file -formats can be found here: - -* https://github.com/saltstack/salt/blob/develop/salt/grains/core.py#L1172 -* https://github.com/chef/ohai/blob/master/lib/ohai/plugins/linux/platform.rb -* https://github.com/ansible/ansible/blob/devel/lib/ansible/module_utils/facts/system/distribution.py -* https://github.com/puppetlabs/facter/blob/master/lib/src/facts/linux/os_linux.cc - -## Package manager distributions - -* https://src.fedoraproject.org/rpms/python-distro -* https://www.archlinux.org/packages/community/any/python-distro/ -* https://launchpad.net/ubuntu/+source/python-distro -* https://packages.debian.org/stable/python3-distro -* https://packages.gentoo.org/packages/dev-python/distro -* https://pkgs.org/download/python3-distro -* https://slackbuilds.org/repository/14.2/python/python-distro/ diff --git a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/RECORD b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/RECORD deleted file mode 100644 index 6ddd890..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/RECORD +++ /dev/null @@ -1,15 +0,0 @@ -../../../bin/distro,sha256=kiH-c01rlv9rTHqUmtx99VHea08wmY_m3UZCbCFgtFw,262 -distro-1.9.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -distro-1.9.0.dist-info/LICENSE,sha256=y16Ofl9KOYjhBjwULGDcLfdWBfTEZRXnduOspt-XbhQ,11325 -distro-1.9.0.dist-info/METADATA,sha256=MWMqst5VkRMQkbM5e9zfeXcYV52Fp1GG8Gg53QwJ6B0,6791 -distro-1.9.0.dist-info/RECORD,, -distro-1.9.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92 -distro-1.9.0.dist-info/entry_points.txt,sha256=3ObjqQMbh1xeQQwsWtgbfDNDMDD-EbggR1Oj_z8s9hc,46 -distro-1.9.0.dist-info/top_level.txt,sha256=ikde_V_XEdSBqaGd5tEriN_wzYHLgTX_zVtlsGLHvwQ,7 -distro/__init__.py,sha256=2fHjF-SfgPvjyNZ1iHh_wjqWdR_Yo5ODHwZC0jLBPhc,981 -distro/__main__.py,sha256=bu9d3TifoKciZFcqRBuygV3GSuThnVD_m2IK4cz96Vs,64 -distro/__pycache__/__init__.cpython-312.pyc,, -distro/__pycache__/__main__.cpython-312.pyc,, -distro/__pycache__/distro.cpython-312.pyc,, -distro/distro.py,sha256=XqbefacAhDT4zr_trnbA15eY8vdK4GTghgmvUGrEM_4,49430 -distro/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 diff --git a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/WHEEL deleted file mode 100644 index 98c0d20..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: bdist_wheel (0.42.0) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/entry_points.txt b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/entry_points.txt deleted file mode 100644 index 08d29c5..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/entry_points.txt +++ /dev/null @@ -1,2 +0,0 @@ -[console_scripts] -distro = distro.distro:main diff --git a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/top_level.txt b/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/top_level.txt deleted file mode 100644 index 0e09331..0000000 --- a/.venv/lib/python3.12/site-packages/distro-1.9.0.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -distro diff --git a/.venv/lib/python3.12/site-packages/distro/__init__.py b/.venv/lib/python3.12/site-packages/distro/__init__.py deleted file mode 100644 index 7686fe8..0000000 --- a/.venv/lib/python3.12/site-packages/distro/__init__.py +++ /dev/null @@ -1,54 +0,0 @@ -from .distro import ( - NORMALIZED_DISTRO_ID, - NORMALIZED_LSB_ID, - NORMALIZED_OS_ID, - LinuxDistribution, - __version__, - build_number, - codename, - distro_release_attr, - distro_release_info, - id, - info, - like, - linux_distribution, - lsb_release_attr, - lsb_release_info, - major_version, - minor_version, - name, - os_release_attr, - os_release_info, - uname_attr, - uname_info, - version, - version_parts, -) - -__all__ = [ - "NORMALIZED_DISTRO_ID", - "NORMALIZED_LSB_ID", - "NORMALIZED_OS_ID", - "LinuxDistribution", - "build_number", - "codename", - "distro_release_attr", - "distro_release_info", - "id", - "info", - "like", - "linux_distribution", - "lsb_release_attr", - "lsb_release_info", - "major_version", - "minor_version", - "name", - "os_release_attr", - "os_release_info", - "uname_attr", - "uname_info", - "version", - "version_parts", -] - -__version__ = __version__ diff --git a/.venv/lib/python3.12/site-packages/distro/__main__.py b/.venv/lib/python3.12/site-packages/distro/__main__.py deleted file mode 100644 index 0c01d5b..0000000 --- a/.venv/lib/python3.12/site-packages/distro/__main__.py +++ /dev/null @@ -1,4 +0,0 @@ -from .distro import main - -if __name__ == "__main__": - main() diff --git a/.venv/lib/python3.12/site-packages/distro/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/distro/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2ea315605570735ebbae5a27993ef5c20591a006..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 969 zcmcJNzi-n(6vxkwo1{tH{Ql7nh&2PT_@Pb+2^5A(rA2M0x15~#+Ft7Ci_T7zZ17jG zv$6AEFtgms#8%OvQYZY}L`nsW-0;zRU%#K{`{ueOmLBVCY4SbC*bj2n$6gsXi`4kU z0v1>yLkldl!Nwfq&;bXxU<>n*#{v|v2u0k6Z7e|v%TUG&RL}(%cVGvrP{kV5unu)> zKm(i5#1^!$4Q=c|2fNV49`r1B!2z1`J9z87eK*_RQ z^e0NMM>8(UXv1}~sj4b|SY}hms+49Fct7sS&h)}+W#g`QpZYq9`(2&>d!`-279me4 z61EBSMs%4_A-IGcLX}V>)Cmnjlh7ix2^~V0&?D>;_EH@6_e}o&e*fCNK!N{v1XJML z4@1tsu$#0SyF2$T6$&p=$)!Ml;hn9G_gYQFIPp-9wVJM+kxIP5Ttss(lp}AtOfFUQ zeDL&{7t2IEnfl`^|3bvx{f-{zGLi}BgX!|F_!3nx3&kt_IBiSsJKj%mowF?K*50-3 bTlNp!(1&09y|VqGaQ%W+_db^Oqcrt5qEiQf diff --git a/.venv/lib/python3.12/site-packages/distro/__pycache__/__main__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/distro/__pycache__/__main__.cpython-312.pyc deleted file mode 100644 index 94d747c311d22d6ca0a3e4932279ce121a705cba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 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 diff --git a/.venv/lib/python3.12/site-packages/distro/distro.py b/.venv/lib/python3.12/site-packages/distro/distro.py deleted file mode 100644 index 78ccdfa..0000000 --- a/.venv/lib/python3.12/site-packages/distro/distro.py +++ /dev/null @@ -1,1403 +0,0 @@ -#!/usr/bin/env python -# Copyright 2015-2021 Nir Cohen -# -# 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. - -""" -The ``distro`` package (``distro`` stands for Linux Distribution) provides -information about the Linux distribution it runs on, such as a reliable -machine-readable distro ID, or version information. - -It is the recommended replacement for Python's original -:py:func:`platform.linux_distribution` function, but it provides much more -functionality. An alternative implementation became necessary because Python -3.5 deprecated this function, and Python 3.8 removed it altogether. Its -predecessor function :py:func:`platform.dist` was already deprecated since -Python 2.6 and removed in Python 3.8. Still, there are many cases in which -access to OS distribution information is needed. See `Python issue 1322 -`_ for more information. -""" - -import argparse -import json -import logging -import os -import re -import shlex -import subprocess -import sys -import warnings -from typing import ( - Any, - Callable, - Dict, - Iterable, - Optional, - Sequence, - TextIO, - Tuple, - Type, -) - -try: - from typing import TypedDict -except ImportError: - # Python 3.7 - TypedDict = dict - -__version__ = "1.9.0" - - -class VersionDict(TypedDict): - major: str - minor: str - build_number: str - - -class InfoDict(TypedDict): - id: str - version: str - version_parts: VersionDict - like: str - codename: str - - -_UNIXCONFDIR = os.environ.get("UNIXCONFDIR", "/etc") -_UNIXUSRLIBDIR = os.environ.get("UNIXUSRLIBDIR", "/usr/lib") -_OS_RELEASE_BASENAME = "os-release" - -#: Translation table for normalizing the "ID" attribute defined in os-release -#: files, for use by the :func:`distro.id` method. -#: -#: * Key: Value as defined in the os-release file, translated to lower case, -#: with blanks translated to underscores. -#: -#: * Value: Normalized value. -NORMALIZED_OS_ID = { - "ol": "oracle", # Oracle Linux - "opensuse-leap": "opensuse", # Newer versions of OpenSuSE report as opensuse-leap -} - -#: Translation table for normalizing the "Distributor ID" attribute returned by -#: the lsb_release command, for use by the :func:`distro.id` method. -#: -#: * Key: Value as returned by the lsb_release command, translated to lower -#: case, with blanks translated to underscores. -#: -#: * Value: Normalized value. -NORMALIZED_LSB_ID = { - "enterpriseenterpriseas": "oracle", # Oracle Enterprise Linux 4 - "enterpriseenterpriseserver": "oracle", # Oracle Linux 5 - "redhatenterpriseworkstation": "rhel", # RHEL 6, 7 Workstation - "redhatenterpriseserver": "rhel", # RHEL 6, 7 Server - "redhatenterprisecomputenode": "rhel", # RHEL 6 ComputeNode -} - -#: Translation table for normalizing the distro ID derived from the file name -#: of distro release files, for use by the :func:`distro.id` method. -#: -#: * Key: Value as derived from the file name of a distro release file, -#: translated to lower case, with blanks translated to underscores. -#: -#: * Value: Normalized value. -NORMALIZED_DISTRO_ID = { - "redhat": "rhel", # RHEL 6.x, 7.x -} - -# Pattern for content of distro release file (reversed) -_DISTRO_RELEASE_CONTENT_REVERSED_PATTERN = re.compile( - r"(?:[^)]*\)(.*)\()? *(?:STL )?([\d.+\-a-z]*\d) *(?:esaeler *)?(.+)" -) - -# Pattern for base file name of distro release file -_DISTRO_RELEASE_BASENAME_PATTERN = re.compile(r"(\w+)[-_](release|version)$") - -# Base file names to be looked up for if _UNIXCONFDIR is not readable. -_DISTRO_RELEASE_BASENAMES = [ - "SuSE-release", - "altlinux-release", - "arch-release", - "base-release", - "centos-release", - "fedora-release", - "gentoo-release", - "mageia-release", - "mandrake-release", - "mandriva-release", - "mandrivalinux-release", - "manjaro-release", - "oracle-release", - "redhat-release", - "rocky-release", - "sl-release", - "slackware-version", -] - -# Base file names to be ignored when searching for distro release file -_DISTRO_RELEASE_IGNORE_BASENAMES = ( - "debian_version", - "lsb-release", - "oem-release", - _OS_RELEASE_BASENAME, - "system-release", - "plesk-release", - "iredmail-release", - "board-release", - "ec2_version", -) - - -def linux_distribution(full_distribution_name: bool = True) -> Tuple[str, str, str]: - """ - .. deprecated:: 1.6.0 - - :func:`distro.linux_distribution()` is deprecated. It should only be - used as a compatibility shim with Python's - :py:func:`platform.linux_distribution()`. Please use :func:`distro.id`, - :func:`distro.version` and :func:`distro.name` instead. - - Return information about the current OS distribution as a tuple - ``(id_name, version, codename)`` with items as follows: - - * ``id_name``: If *full_distribution_name* is false, the result of - :func:`distro.id`. Otherwise, the result of :func:`distro.name`. - - * ``version``: The result of :func:`distro.version`. - - * ``codename``: The extra item (usually in parentheses) after the - os-release version number, or the result of :func:`distro.codename`. - - The interface of this function is compatible with the original - :py:func:`platform.linux_distribution` function, supporting a subset of - its parameters. - - The data it returns may not exactly be the same, because it uses more data - sources than the original function, and that may lead to different data if - the OS distribution is not consistent across multiple data sources it - provides (there are indeed such distributions ...). - - Another reason for differences is the fact that the :func:`distro.id` - method normalizes the distro ID string to a reliable machine-readable value - for a number of popular OS distributions. - """ - warnings.warn( - "distro.linux_distribution() is deprecated. It should only be used as a " - "compatibility shim with Python's platform.linux_distribution(). Please use " - "distro.id(), distro.version() and distro.name() instead.", - DeprecationWarning, - stacklevel=2, - ) - return _distro.linux_distribution(full_distribution_name) - - -def id() -> str: - """ - Return the distro ID of the current distribution, as a - machine-readable string. - - For a number of OS distributions, the returned distro ID value is - *reliable*, in the sense that it is documented and that it does not change - across releases of the distribution. - - This package maintains the following reliable distro ID values: - - ============== ========================================= - Distro ID Distribution - ============== ========================================= - "ubuntu" Ubuntu - "debian" Debian - "rhel" RedHat Enterprise Linux - "centos" CentOS - "fedora" Fedora - "sles" SUSE Linux Enterprise Server - "opensuse" openSUSE - "amzn" Amazon Linux - "arch" Arch Linux - "buildroot" Buildroot - "cloudlinux" CloudLinux OS - "exherbo" Exherbo Linux - "gentoo" GenToo Linux - "ibm_powerkvm" IBM PowerKVM - "kvmibm" KVM for IBM z Systems - "linuxmint" Linux Mint - "mageia" Mageia - "mandriva" Mandriva Linux - "parallels" Parallels - "pidora" Pidora - "raspbian" Raspbian - "oracle" Oracle Linux (and Oracle Enterprise Linux) - "scientific" Scientific Linux - "slackware" Slackware - "xenserver" XenServer - "openbsd" OpenBSD - "netbsd" NetBSD - "freebsd" FreeBSD - "midnightbsd" MidnightBSD - "rocky" Rocky Linux - "aix" AIX - "guix" Guix System - "altlinux" ALT Linux - ============== ========================================= - - If you have a need to get distros for reliable IDs added into this set, - or if you find that the :func:`distro.id` function returns a different - distro ID for one of the listed distros, please create an issue in the - `distro issue tracker`_. - - **Lookup hierarchy and transformations:** - - First, the ID is obtained from the following sources, in the specified - order. The first available and non-empty value is used: - - * the value of the "ID" attribute of the os-release file, - - * the value of the "Distributor ID" attribute returned by the lsb_release - command, - - * the first part of the file name of the distro release file, - - The so determined ID value then passes the following transformations, - before it is returned by this method: - - * it is translated to lower case, - - * blanks (which should not be there anyway) are translated to underscores, - - * a normalization of the ID is performed, based upon - `normalization tables`_. The purpose of this normalization is to ensure - that the ID is as reliable as possible, even across incompatible changes - in the OS distributions. A common reason for an incompatible change is - the addition of an os-release file, or the addition of the lsb_release - command, with ID values that differ from what was previously determined - from the distro release file name. - """ - return _distro.id() - - -def name(pretty: bool = False) -> str: - """ - Return the name of the current OS distribution, as a human-readable - string. - - If *pretty* is false, the name is returned without version or codename. - (e.g. "CentOS Linux") - - If *pretty* is true, the version and codename are appended. - (e.g. "CentOS Linux 7.1.1503 (Core)") - - **Lookup hierarchy:** - - The name is obtained from the following sources, in the specified order. - The first available and non-empty value is used: - - * If *pretty* is false: - - - the value of the "NAME" attribute of the os-release file, - - - the value of the "Distributor ID" attribute returned by the lsb_release - command, - - - the value of the "" field of the distro release file. - - * If *pretty* is true: - - - the value of the "PRETTY_NAME" attribute of the os-release file, - - - the value of the "Description" attribute returned by the lsb_release - command, - - - the value of the "" field of the distro release file, appended - with the value of the pretty version ("" and "" - fields) of the distro release file, if available. - """ - return _distro.name(pretty) - - -def version(pretty: bool = False, best: bool = False) -> str: - """ - Return the version of the current OS distribution, as a human-readable - string. - - If *pretty* is false, the version is returned without codename (e.g. - "7.0"). - - If *pretty* is true, the codename in parenthesis is appended, if the - codename is non-empty (e.g. "7.0 (Maipo)"). - - Some distributions provide version numbers with different precisions in - the different sources of distribution information. Examining the different - sources in a fixed priority order does not always yield the most precise - version (e.g. for Debian 8.2, or CentOS 7.1). - - Some other distributions may not provide this kind of information. In these - cases, an empty string would be returned. This behavior can be observed - with rolling releases distributions (e.g. Arch Linux). - - The *best* parameter can be used to control the approach for the returned - version: - - If *best* is false, the first non-empty version number in priority order of - the examined sources is returned. - - If *best* is true, the most precise version number out of all examined - sources is returned. - - **Lookup hierarchy:** - - In all cases, the version number is obtained from the following sources. - If *best* is false, this order represents the priority order: - - * the value of the "VERSION_ID" attribute of the os-release file, - * the value of the "Release" attribute returned by the lsb_release - command, - * the version number parsed from the "" field of the first line - of the distro release file, - * the version number parsed from the "PRETTY_NAME" attribute of the - os-release file, if it follows the format of the distro release files. - * the version number parsed from the "Description" attribute returned by - the lsb_release command, if it follows the format of the distro release - files. - """ - return _distro.version(pretty, best) - - -def version_parts(best: bool = False) -> Tuple[str, str, str]: - """ - Return the version of the current OS distribution as a tuple - ``(major, minor, build_number)`` with items as follows: - - * ``major``: The result of :func:`distro.major_version`. - - * ``minor``: The result of :func:`distro.minor_version`. - - * ``build_number``: The result of :func:`distro.build_number`. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.version_parts(best) - - -def major_version(best: bool = False) -> str: - """ - Return the major version of the current OS distribution, as a string, - if provided. - Otherwise, the empty string is returned. The major version is the first - part of the dot-separated version string. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.major_version(best) - - -def minor_version(best: bool = False) -> str: - """ - Return the minor version of the current OS distribution, as a string, - if provided. - Otherwise, the empty string is returned. The minor version is the second - part of the dot-separated version string. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.minor_version(best) - - -def build_number(best: bool = False) -> str: - """ - Return the build number of the current OS distribution, as a string, - if provided. - Otherwise, the empty string is returned. The build number is the third part - of the dot-separated version string. - - For a description of the *best* parameter, see the :func:`distro.version` - method. - """ - return _distro.build_number(best) - - -def like() -> str: - """ - Return a space-separated list of distro IDs of distributions that are - closely related to the current OS distribution in regards to packaging - and programming interfaces, for example distributions the current - distribution is a derivative from. - - **Lookup hierarchy:** - - This information item is only provided by the os-release file. - For details, see the description of the "ID_LIKE" attribute in the - `os-release man page - `_. - """ - return _distro.like() - - -def codename() -> str: - """ - Return the codename for the release of the current OS distribution, - as a string. - - If the distribution does not have a codename, an empty string is returned. - - Note that the returned codename is not always really a codename. For - example, openSUSE returns "x86_64". This function does not handle such - cases in any special way and just returns the string it finds, if any. - - **Lookup hierarchy:** - - * the codename within the "VERSION" attribute of the os-release file, if - provided, - - * the value of the "Codename" attribute returned by the lsb_release - command, - - * the value of the "" field of the distro release file. - """ - return _distro.codename() - - -def info(pretty: bool = False, best: bool = False) -> InfoDict: - """ - Return certain machine-readable information items about the current OS - distribution in a dictionary, as shown in the following example: - - .. sourcecode:: python - - { - 'id': 'rhel', - 'version': '7.0', - 'version_parts': { - 'major': '7', - 'minor': '0', - 'build_number': '' - }, - 'like': 'fedora', - 'codename': 'Maipo' - } - - The dictionary structure and keys are always the same, regardless of which - information items are available in the underlying data sources. The values - for the various keys are as follows: - - * ``id``: The result of :func:`distro.id`. - - * ``version``: The result of :func:`distro.version`. - - * ``version_parts -> major``: The result of :func:`distro.major_version`. - - * ``version_parts -> minor``: The result of :func:`distro.minor_version`. - - * ``version_parts -> build_number``: The result of - :func:`distro.build_number`. - - * ``like``: The result of :func:`distro.like`. - - * ``codename``: The result of :func:`distro.codename`. - - For a description of the *pretty* and *best* parameters, see the - :func:`distro.version` method. - """ - return _distro.info(pretty, best) - - -def os_release_info() -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information items - from the os-release file data source of the current OS distribution. - - See `os-release file`_ for details about these information items. - """ - return _distro.os_release_info() - - -def lsb_release_info() -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information items - from the lsb_release command data source of the current OS distribution. - - See `lsb_release command output`_ for details about these information - items. - """ - return _distro.lsb_release_info() - - -def distro_release_info() -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information items - from the distro release file data source of the current OS distribution. - - See `distro release file`_ for details about these information items. - """ - return _distro.distro_release_info() - - -def uname_info() -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information items - from the distro release file data source of the current OS distribution. - """ - return _distro.uname_info() - - -def os_release_attr(attribute: str) -> str: - """ - Return a single named information item from the os-release file data source - of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - - See `os-release file`_ for details about these information items. - """ - return _distro.os_release_attr(attribute) - - -def lsb_release_attr(attribute: str) -> str: - """ - Return a single named information item from the lsb_release command output - data source of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - - See `lsb_release command output`_ for details about these information - items. - """ - return _distro.lsb_release_attr(attribute) - - -def distro_release_attr(attribute: str) -> str: - """ - Return a single named information item from the distro release file - data source of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - - See `distro release file`_ for details about these information items. - """ - return _distro.distro_release_attr(attribute) - - -def uname_attr(attribute: str) -> str: - """ - Return a single named information item from the distro release file - data source of the current OS distribution. - - Parameters: - - * ``attribute`` (string): Key of the information item. - - Returns: - - * (string): Value of the information item, if the item exists. - The empty string, if the item does not exist. - """ - return _distro.uname_attr(attribute) - - -try: - from functools import cached_property -except ImportError: - # Python < 3.8 - class cached_property: # type: ignore - """A version of @property which caches the value. On access, it calls the - underlying function and sets the value in `__dict__` so future accesses - will not re-call the property. - """ - - def __init__(self, f: Callable[[Any], Any]) -> None: - self._fname = f.__name__ - self._f = f - - def __get__(self, obj: Any, owner: Type[Any]) -> Any: - assert obj is not None, f"call {self._fname} on an instance" - ret = obj.__dict__[self._fname] = self._f(obj) - return ret - - -class LinuxDistribution: - """ - Provides information about a OS distribution. - - This package creates a private module-global instance of this class with - default initialization arguments, that is used by the - `consolidated accessor functions`_ and `single source accessor functions`_. - By using default initialization arguments, that module-global instance - returns data about the current OS distribution (i.e. the distro this - package runs on). - - Normally, it is not necessary to create additional instances of this class. - However, in situations where control is needed over the exact data sources - that are used, instances of this class can be created with a specific - distro release file, or a specific os-release file, or without invoking the - lsb_release command. - """ - - def __init__( - self, - include_lsb: Optional[bool] = None, - os_release_file: str = "", - distro_release_file: str = "", - include_uname: Optional[bool] = None, - root_dir: Optional[str] = None, - include_oslevel: Optional[bool] = None, - ) -> None: - """ - The initialization method of this class gathers information from the - available data sources, and stores that in private instance attributes. - Subsequent access to the information items uses these private instance - attributes, so that the data sources are read only once. - - Parameters: - - * ``include_lsb`` (bool): Controls whether the - `lsb_release command output`_ is included as a data source. - - If the lsb_release command is not available in the program execution - path, the data source for the lsb_release command will be empty. - - * ``os_release_file`` (string): The path name of the - `os-release file`_ that is to be used as a data source. - - An empty string (the default) will cause the default path name to - be used (see `os-release file`_ for details). - - If the specified or defaulted os-release file does not exist, the - data source for the os-release file will be empty. - - * ``distro_release_file`` (string): The path name of the - `distro release file`_ that is to be used as a data source. - - An empty string (the default) will cause a default search algorithm - to be used (see `distro release file`_ for details). - - If the specified distro release file does not exist, or if no default - distro release file can be found, the data source for the distro - release file will be empty. - - * ``include_uname`` (bool): Controls whether uname command output is - included as a data source. If the uname command is not available in - the program execution path the data source for the uname command will - be empty. - - * ``root_dir`` (string): The absolute path to the root directory to use - to find distro-related information files. Note that ``include_*`` - parameters must not be enabled in combination with ``root_dir``. - - * ``include_oslevel`` (bool): Controls whether (AIX) oslevel command - output is included as a data source. If the oslevel command is not - available in the program execution path the data source will be - empty. - - Public instance attributes: - - * ``os_release_file`` (string): The path name of the - `os-release file`_ that is actually used as a data source. The - empty string if no distro release file is used as a data source. - - * ``distro_release_file`` (string): The path name of the - `distro release file`_ that is actually used as a data source. The - empty string if no distro release file is used as a data source. - - * ``include_lsb`` (bool): The result of the ``include_lsb`` parameter. - This controls whether the lsb information will be loaded. - - * ``include_uname`` (bool): The result of the ``include_uname`` - parameter. This controls whether the uname information will - be loaded. - - * ``include_oslevel`` (bool): The result of the ``include_oslevel`` - parameter. This controls whether (AIX) oslevel information will be - loaded. - - * ``root_dir`` (string): The result of the ``root_dir`` parameter. - The absolute path to the root directory to use to find distro-related - information files. - - Raises: - - * :py:exc:`ValueError`: Initialization parameters combination is not - supported. - - * :py:exc:`OSError`: Some I/O issue with an os-release file or distro - release file. - - * :py:exc:`UnicodeError`: A data source has unexpected characters or - uses an unexpected encoding. - """ - self.root_dir = root_dir - self.etc_dir = os.path.join(root_dir, "etc") if root_dir else _UNIXCONFDIR - self.usr_lib_dir = ( - os.path.join(root_dir, "usr/lib") if root_dir else _UNIXUSRLIBDIR - ) - - if os_release_file: - self.os_release_file = os_release_file - else: - etc_dir_os_release_file = os.path.join(self.etc_dir, _OS_RELEASE_BASENAME) - usr_lib_os_release_file = os.path.join( - self.usr_lib_dir, _OS_RELEASE_BASENAME - ) - - # NOTE: The idea is to respect order **and** have it set - # at all times for API backwards compatibility. - if os.path.isfile(etc_dir_os_release_file) or not os.path.isfile( - usr_lib_os_release_file - ): - self.os_release_file = etc_dir_os_release_file - else: - self.os_release_file = usr_lib_os_release_file - - self.distro_release_file = distro_release_file or "" # updated later - - is_root_dir_defined = root_dir is not None - if is_root_dir_defined and (include_lsb or include_uname or include_oslevel): - raise ValueError( - "Including subprocess data sources from specific root_dir is disallowed" - " to prevent false information" - ) - self.include_lsb = ( - include_lsb if include_lsb is not None else not is_root_dir_defined - ) - self.include_uname = ( - include_uname if include_uname is not None else not is_root_dir_defined - ) - self.include_oslevel = ( - include_oslevel if include_oslevel is not None else not is_root_dir_defined - ) - - def __repr__(self) -> str: - """Return repr of all info""" - return ( - "LinuxDistribution(" - "os_release_file={self.os_release_file!r}, " - "distro_release_file={self.distro_release_file!r}, " - "include_lsb={self.include_lsb!r}, " - "include_uname={self.include_uname!r}, " - "include_oslevel={self.include_oslevel!r}, " - "root_dir={self.root_dir!r}, " - "_os_release_info={self._os_release_info!r}, " - "_lsb_release_info={self._lsb_release_info!r}, " - "_distro_release_info={self._distro_release_info!r}, " - "_uname_info={self._uname_info!r}, " - "_oslevel_info={self._oslevel_info!r})".format(self=self) - ) - - def linux_distribution( - self, full_distribution_name: bool = True - ) -> Tuple[str, str, str]: - """ - Return information about the OS distribution that is compatible - with Python's :func:`platform.linux_distribution`, supporting a subset - of its parameters. - - For details, see :func:`distro.linux_distribution`. - """ - return ( - self.name() if full_distribution_name else self.id(), - self.version(), - self._os_release_info.get("release_codename") or self.codename(), - ) - - def id(self) -> str: - """Return the distro ID of the OS distribution, as a string. - - For details, see :func:`distro.id`. - """ - - def normalize(distro_id: str, table: Dict[str, str]) -> str: - distro_id = distro_id.lower().replace(" ", "_") - return table.get(distro_id, distro_id) - - distro_id = self.os_release_attr("id") - if distro_id: - return normalize(distro_id, NORMALIZED_OS_ID) - - distro_id = self.lsb_release_attr("distributor_id") - if distro_id: - return normalize(distro_id, NORMALIZED_LSB_ID) - - distro_id = self.distro_release_attr("id") - if distro_id: - return normalize(distro_id, NORMALIZED_DISTRO_ID) - - distro_id = self.uname_attr("id") - if distro_id: - return normalize(distro_id, NORMALIZED_DISTRO_ID) - - return "" - - def name(self, pretty: bool = False) -> str: - """ - Return the name of the OS distribution, as a string. - - For details, see :func:`distro.name`. - """ - name = ( - self.os_release_attr("name") - or self.lsb_release_attr("distributor_id") - or self.distro_release_attr("name") - or self.uname_attr("name") - ) - if pretty: - name = self.os_release_attr("pretty_name") or self.lsb_release_attr( - "description" - ) - if not name: - name = self.distro_release_attr("name") or self.uname_attr("name") - version = self.version(pretty=True) - if version: - name = f"{name} {version}" - return name or "" - - def version(self, pretty: bool = False, best: bool = False) -> str: - """ - Return the version of the OS distribution, as a string. - - For details, see :func:`distro.version`. - """ - versions = [ - self.os_release_attr("version_id"), - self.lsb_release_attr("release"), - self.distro_release_attr("version_id"), - self._parse_distro_release_content(self.os_release_attr("pretty_name")).get( - "version_id", "" - ), - self._parse_distro_release_content( - self.lsb_release_attr("description") - ).get("version_id", ""), - self.uname_attr("release"), - ] - if self.uname_attr("id").startswith("aix"): - # On AIX platforms, prefer oslevel command output. - versions.insert(0, self.oslevel_info()) - elif self.id() == "debian" or "debian" in self.like().split(): - # On Debian-like, add debian_version file content to candidates list. - versions.append(self._debian_version) - version = "" - if best: - # This algorithm uses the last version in priority order that has - # the best precision. If the versions are not in conflict, that - # does not matter; otherwise, using the last one instead of the - # first one might be considered a surprise. - for v in versions: - if v.count(".") > version.count(".") or version == "": - version = v - else: - for v in versions: - if v != "": - version = v - break - if pretty and version and self.codename(): - version = f"{version} ({self.codename()})" - return version - - def version_parts(self, best: bool = False) -> Tuple[str, str, str]: - """ - Return the version of the OS distribution, as a tuple of version - numbers. - - For details, see :func:`distro.version_parts`. - """ - version_str = self.version(best=best) - if version_str: - version_regex = re.compile(r"(\d+)\.?(\d+)?\.?(\d+)?") - matches = version_regex.match(version_str) - if matches: - major, minor, build_number = matches.groups() - return major, minor or "", build_number or "" - return "", "", "" - - def major_version(self, best: bool = False) -> str: - """ - Return the major version number of the current distribution. - - For details, see :func:`distro.major_version`. - """ - return self.version_parts(best)[0] - - def minor_version(self, best: bool = False) -> str: - """ - Return the minor version number of the current distribution. - - For details, see :func:`distro.minor_version`. - """ - return self.version_parts(best)[1] - - def build_number(self, best: bool = False) -> str: - """ - Return the build number of the current distribution. - - For details, see :func:`distro.build_number`. - """ - return self.version_parts(best)[2] - - def like(self) -> str: - """ - Return the IDs of distributions that are like the OS distribution. - - For details, see :func:`distro.like`. - """ - return self.os_release_attr("id_like") or "" - - def codename(self) -> str: - """ - Return the codename of the OS distribution. - - For details, see :func:`distro.codename`. - """ - try: - # Handle os_release specially since distros might purposefully set - # this to empty string to have no codename - return self._os_release_info["codename"] - except KeyError: - return ( - self.lsb_release_attr("codename") - or self.distro_release_attr("codename") - or "" - ) - - def info(self, pretty: bool = False, best: bool = False) -> InfoDict: - """ - Return certain machine-readable information about the OS - distribution. - - For details, see :func:`distro.info`. - """ - return InfoDict( - id=self.id(), - version=self.version(pretty, best), - version_parts=VersionDict( - major=self.major_version(best), - minor=self.minor_version(best), - build_number=self.build_number(best), - ), - like=self.like(), - codename=self.codename(), - ) - - def os_release_info(self) -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information - items from the os-release file data source of the OS distribution. - - For details, see :func:`distro.os_release_info`. - """ - return self._os_release_info - - def lsb_release_info(self) -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information - items from the lsb_release command data source of the OS - distribution. - - For details, see :func:`distro.lsb_release_info`. - """ - return self._lsb_release_info - - def distro_release_info(self) -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information - items from the distro release file data source of the OS - distribution. - - For details, see :func:`distro.distro_release_info`. - """ - return self._distro_release_info - - def uname_info(self) -> Dict[str, str]: - """ - Return a dictionary containing key-value pairs for the information - items from the uname command data source of the OS distribution. - - For details, see :func:`distro.uname_info`. - """ - return self._uname_info - - def oslevel_info(self) -> str: - """ - Return AIX' oslevel command output. - """ - return self._oslevel_info - - def os_release_attr(self, attribute: str) -> str: - """ - Return a single named information item from the os-release file data - source of the OS distribution. - - For details, see :func:`distro.os_release_attr`. - """ - return self._os_release_info.get(attribute, "") - - def lsb_release_attr(self, attribute: str) -> str: - """ - Return a single named information item from the lsb_release command - output data source of the OS distribution. - - For details, see :func:`distro.lsb_release_attr`. - """ - return self._lsb_release_info.get(attribute, "") - - def distro_release_attr(self, attribute: str) -> str: - """ - Return a single named information item from the distro release file - data source of the OS distribution. - - For details, see :func:`distro.distro_release_attr`. - """ - return self._distro_release_info.get(attribute, "") - - def uname_attr(self, attribute: str) -> str: - """ - Return a single named information item from the uname command - output data source of the OS distribution. - - For details, see :func:`distro.uname_attr`. - """ - return self._uname_info.get(attribute, "") - - @cached_property - def _os_release_info(self) -> Dict[str, str]: - """ - Get the information items from the specified os-release file. - - Returns: - A dictionary containing all information items. - """ - if os.path.isfile(self.os_release_file): - with open(self.os_release_file, encoding="utf-8") as release_file: - return self._parse_os_release_content(release_file) - return {} - - @staticmethod - def _parse_os_release_content(lines: TextIO) -> Dict[str, str]: - """ - Parse the lines of an os-release file. - - Parameters: - - * lines: Iterable through the lines in the os-release file. - Each line must be a unicode string or a UTF-8 encoded byte - string. - - Returns: - A dictionary containing all information items. - """ - props = {} - lexer = shlex.shlex(lines, posix=True) - lexer.whitespace_split = True - - tokens = list(lexer) - for token in tokens: - # At this point, all shell-like parsing has been done (i.e. - # comments processed, quotes and backslash escape sequences - # processed, multi-line values assembled, trailing newlines - # stripped, etc.), so the tokens are now either: - # * variable assignments: var=value - # * commands or their arguments (not allowed in os-release) - # Ignore any tokens that are not variable assignments - if "=" in token: - k, v = token.split("=", 1) - props[k.lower()] = v - - if "version" in props: - # extract release codename (if any) from version attribute - match = re.search(r"\((\D+)\)|,\s*(\D+)", props["version"]) - if match: - release_codename = match.group(1) or match.group(2) - props["codename"] = props["release_codename"] = release_codename - - if "version_codename" in props: - # os-release added a version_codename field. Use that in - # preference to anything else Note that some distros purposefully - # do not have code names. They should be setting - # version_codename="" - props["codename"] = props["version_codename"] - elif "ubuntu_codename" in props: - # Same as above but a non-standard field name used on older Ubuntus - props["codename"] = props["ubuntu_codename"] - - return props - - @cached_property - def _lsb_release_info(self) -> Dict[str, str]: - """ - Get the information items from the lsb_release command output. - - Returns: - A dictionary containing all information items. - """ - if not self.include_lsb: - return {} - try: - cmd = ("lsb_release", "-a") - stdout = subprocess.check_output(cmd, stderr=subprocess.DEVNULL) - # Command not found or lsb_release returned error - except (OSError, subprocess.CalledProcessError): - return {} - content = self._to_str(stdout).splitlines() - return self._parse_lsb_release_content(content) - - @staticmethod - def _parse_lsb_release_content(lines: Iterable[str]) -> Dict[str, str]: - """ - Parse the output of the lsb_release command. - - Parameters: - - * lines: Iterable through the lines of the lsb_release output. - Each line must be a unicode string or a UTF-8 encoded byte - string. - - Returns: - A dictionary containing all information items. - """ - props = {} - for line in lines: - kv = line.strip("\n").split(":", 1) - if len(kv) != 2: - # Ignore lines without colon. - continue - k, v = kv - props.update({k.replace(" ", "_").lower(): v.strip()}) - return props - - @cached_property - def _uname_info(self) -> Dict[str, str]: - if not self.include_uname: - return {} - try: - cmd = ("uname", "-rs") - stdout = subprocess.check_output(cmd, stderr=subprocess.DEVNULL) - except OSError: - return {} - content = self._to_str(stdout).splitlines() - return self._parse_uname_content(content) - - @cached_property - def _oslevel_info(self) -> str: - if not self.include_oslevel: - return "" - try: - stdout = subprocess.check_output("oslevel", stderr=subprocess.DEVNULL) - except (OSError, subprocess.CalledProcessError): - return "" - return self._to_str(stdout).strip() - - @cached_property - def _debian_version(self) -> str: - try: - with open( - os.path.join(self.etc_dir, "debian_version"), encoding="ascii" - ) as fp: - return fp.readline().rstrip() - except FileNotFoundError: - return "" - - @staticmethod - def _parse_uname_content(lines: Sequence[str]) -> Dict[str, str]: - if not lines: - return {} - props = {} - match = re.search(r"^([^\s]+)\s+([\d\.]+)", lines[0].strip()) - if match: - name, version = match.groups() - - # This is to prevent the Linux kernel version from - # appearing as the 'best' version on otherwise - # identifiable distributions. - if name == "Linux": - return {} - props["id"] = name.lower() - props["name"] = name - props["release"] = version - return props - - @staticmethod - def _to_str(bytestring: bytes) -> str: - encoding = sys.getfilesystemencoding() - return bytestring.decode(encoding) - - @cached_property - def _distro_release_info(self) -> Dict[str, str]: - """ - Get the information items from the specified distro release file. - - Returns: - A dictionary containing all information items. - """ - if self.distro_release_file: - # If it was specified, we use it and parse what we can, even if - # its file name or content does not match the expected pattern. - distro_info = self._parse_distro_release_file(self.distro_release_file) - basename = os.path.basename(self.distro_release_file) - # The file name pattern for user-specified distro release files - # is somewhat more tolerant (compared to when searching for the - # file), because we want to use what was specified as best as - # possible. - match = _DISTRO_RELEASE_BASENAME_PATTERN.match(basename) - else: - try: - basenames = [ - basename - for basename in os.listdir(self.etc_dir) - if basename not in _DISTRO_RELEASE_IGNORE_BASENAMES - and os.path.isfile(os.path.join(self.etc_dir, basename)) - ] - # We sort for repeatability in cases where there are multiple - # distro specific files; e.g. CentOS, Oracle, Enterprise all - # containing `redhat-release` on top of their own. - basenames.sort() - except OSError: - # This may occur when /etc is not readable but we can't be - # sure about the *-release files. Check common entries of - # /etc for information. If they turn out to not be there the - # error is handled in `_parse_distro_release_file()`. - basenames = _DISTRO_RELEASE_BASENAMES - for basename in basenames: - match = _DISTRO_RELEASE_BASENAME_PATTERN.match(basename) - if match is None: - continue - filepath = os.path.join(self.etc_dir, basename) - distro_info = self._parse_distro_release_file(filepath) - # The name is always present if the pattern matches. - if "name" not in distro_info: - continue - self.distro_release_file = filepath - break - else: # the loop didn't "break": no candidate. - return {} - - if match is not None: - distro_info["id"] = match.group(1) - - # CloudLinux < 7: manually enrich info with proper id. - if "cloudlinux" in distro_info.get("name", "").lower(): - distro_info["id"] = "cloudlinux" - - return distro_info - - def _parse_distro_release_file(self, filepath: str) -> Dict[str, str]: - """ - Parse a distro release file. - - Parameters: - - * filepath: Path name of the distro release file. - - Returns: - A dictionary containing all information items. - """ - try: - with open(filepath, encoding="utf-8") as fp: - # Only parse the first line. For instance, on SLES there - # are multiple lines. We don't want them... - return self._parse_distro_release_content(fp.readline()) - except OSError: - # Ignore not being able to read a specific, seemingly version - # related file. - # See https://github.com/python-distro/distro/issues/162 - return {} - - @staticmethod - def _parse_distro_release_content(line: str) -> Dict[str, str]: - """ - Parse a line from a distro release file. - - Parameters: - * line: Line from the distro release file. Must be a unicode string - or a UTF-8 encoded byte string. - - Returns: - A dictionary containing all information items. - """ - matches = _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match(line.strip()[::-1]) - distro_info = {} - if matches: - # regexp ensures non-None - distro_info["name"] = matches.group(3)[::-1] - if matches.group(2): - distro_info["version_id"] = matches.group(2)[::-1] - if matches.group(1): - distro_info["codename"] = matches.group(1)[::-1] - elif line: - distro_info["name"] = line.strip() - return distro_info - - -_distro = LinuxDistribution() - - -def main() -> None: - logger = logging.getLogger(__name__) - logger.setLevel(logging.DEBUG) - logger.addHandler(logging.StreamHandler(sys.stdout)) - - parser = argparse.ArgumentParser(description="OS distro info tool") - parser.add_argument( - "--json", "-j", help="Output in machine readable format", action="store_true" - ) - - parser.add_argument( - "--root-dir", - "-r", - type=str, - dest="root_dir", - help="Path to the root filesystem directory (defaults to /)", - ) - - args = parser.parse_args() - - if args.root_dir: - dist = LinuxDistribution( - include_lsb=False, - include_uname=False, - include_oslevel=False, - root_dir=args.root_dir, - ) - else: - dist = _distro - - if args.json: - logger.info(json.dumps(dist.info(), indent=4, sort_keys=True)) - else: - logger.info("Name: %s", dist.name(pretty=True)) - distribution_version = dist.version(pretty=True) - logger.info("Version: %s", distribution_version) - distribution_codename = dist.codename() - logger.info("Codename: %s", distribution_codename) - - -if __name__ == "__main__": - main() diff --git a/.venv/lib/python3.12/site-packages/distro/py.typed b/.venv/lib/python3.12/site-packages/distro/py.typed deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/dotenv/__init__.py b/.venv/lib/python3.12/site-packages/dotenv/__init__.py deleted file mode 100644 index dde24a0..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/__init__.py +++ /dev/null @@ -1,51 +0,0 @@ -from typing import Any, Optional - -from .main import dotenv_values, find_dotenv, get_key, load_dotenv, set_key, unset_key - - -def load_ipython_extension(ipython: Any) -> None: - from .ipython import load_ipython_extension - - load_ipython_extension(ipython) - - -def get_cli_string( - path: Optional[str] = None, - action: Optional[str] = None, - key: Optional[str] = None, - value: Optional[str] = None, - quote: Optional[str] = None, -): - """Returns a string suitable for running as a shell script. - - Useful for converting a arguments passed to a fabric task - to be passed to a `local` or `run` command. - """ - command = ["dotenv"] - if quote: - command.append(f"-q {quote}") - if path: - command.append(f"-f {path}") - if action: - command.append(action) - if key: - command.append(key) - if value: - if " " in value: - command.append(f'"{value}"') - else: - command.append(value) - - return " ".join(command).strip() - - -__all__ = [ - "get_cli_string", - "load_dotenv", - "dotenv_values", - "get_key", - "set_key", - "unset_key", - "find_dotenv", - "load_ipython_extension", -] diff --git a/.venv/lib/python3.12/site-packages/dotenv/__main__.py b/.venv/lib/python3.12/site-packages/dotenv/__main__.py deleted file mode 100644 index 3977f55..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/__main__.py +++ /dev/null @@ -1,6 +0,0 @@ -"""Entry point for cli, enables execution with `python -m dotenv`""" - -from .cli import cli - -if __name__ == "__main__": - cli() diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index deb0c4ebcf65234e331573b2c7c1ae28fe485b55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1704 zcmZ`(O=}xR7@qxJX(ic-RX3@VdT{K5D7M;~(j44CNvKa%>*nL2%X+;tl2_iZ%&tTf z*5E=8)yYbsL=Xa|r-by_e^DqcafrN7>e55WO^I(lb!N4)-QbL*XWn_|+4tko%>J6s zX8{|(WE;PU0Q{3IQplzA!4K4U01!Z&4IHk@IeeAp0OFBg3yxS79jPiga#ePes^X|s z)yY&dbYH|Al8{^zk#bM0W;0;)L1Re8Jl4+BxF~aEWsfZF$jXhZS{CK+N!45(pu$gF zHQ$y?<1bl(B|a9uaNDu^wI5oZYuGP2=9S|-@KnKn zYqn<`dxO-QX}Tj*vHW(p?zyo{aM&bn#bn_}L!bux9Y6|HA`bCPqD_tiJczgmJWbgg zXoHeaArj@4xOg&2n}*i$9a?BWi+{osCOR2oFis)hDL{BwE3bPFE{9&YjveDp`Nqij zhIkEZhGoYxiRY(_H7_hLv}o^T+gd9R>t9^>_>*#Ag?QdK%nhTCgYr;|vaVaM73%te z-ySAr*=3eIPhkuEDVF~h-|Kz$T)cEZ9UvBcBV3PV!(@8L0+UfnM2@A~O{%%cnj8&g zCkkDoN-%}$+@=(Xq!>w!lS-z1#7E*o@Q6RwEdp=l3K4jN%aN7S<3`+xh&;LS7S_qU z0{IY$kZ=o>+R5ez+=p=PWR%Y>m3Y$Q)p=NkSWW7YOd!(N3n^(xK13Qf;(3>PgV z{8%2Iv%A9lZAhU84>|gsDGBrl`95}0EH*sLjV0ELUy{iL?UfW6yu)CU!MhYAkUHe`2yXcYmp0oO)2X zU)fpNY3|e?uk0*6FMhP2`aaz)miD#6_T|py?(#G3!V7KY4{hd|Hv79cOU}~DN@`Lm z$xxfHo`}kTy^)E=Kw-eHV@ay8Q7Xi8*!Jn)Mc4@<^o>ogqhna^@bQG7#7IIO2VyZ| zfvS@vj1^rsY+Ki#fTWH@#6xw-@leyoSI7sH&F*HfMPVRt9QPN1|AJdDz^#ESaI-sC z2Y^nGuN|;yPykcY{R^;v{$igRQ`4`sDQ>QxJ=z%I#614|1pgWg3 g7Y7PksetZX?R-ASuvIo)9k2+mmoggvosv}eAFvIUPyhe` diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/__main__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/__main__.cpython-312.pyc deleted file mode 100644 index cfd94e9c51237af3f61683cf8740ca85ff249cc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 372 zcmXw#u};G<5QgnIs8LZj7LbrUQi;X_R@8~Eh=Hk#nf!GH<^Rr~{LyMPQFY#%qes`i|4m)Iy01egUQmMiD8Y%BVTt<~ zBk&S3K0(L?9s>MUhcPPs(r@q0yFF!1NpmffrFYuUI1{H7R5Z+>pfH1YVue=pLD-ZI z^3tZxbR1{WHe*9J8@(52x7~mh>gx`Gt`!aQ}-at#E@+%F2b{ORtO87Jc`HBJrryU#da8B wUT%U*sgp?tT~qyFMOz%ZvLYDc1-kk{2VZ3WdHzWb7k=ZZw<5?tGJ#9{0fU-q&Hw-a diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/cli.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/cli.cpython-312.pyc deleted file mode 100644 index 5f8d5e56c3602afd52fe18a3a8216b6e3e321ef6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10692 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 Vk~@BY{OZ82@9$>+v5kTBe*h>OT>St5 diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/ipython.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/ipython.cpython-312.pyc deleted file mode 100644 index 3cee1da702cd01ebbb8ed058b54d6a1b9f46562d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1988 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 L_+5H2&h&o)(3*CV diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/parser.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/parser.cpython-312.pyc deleted file mode 100644 index 0cad0599502fabd0da9d1e77b3efa3285a2f098d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9998 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

IbZ9R z?_kDvFzf3E6qbY!I%b>wx4TY=*1l$}B^$ecXjAB>UF&nT4dq=MXxFc?Yu*f7N**{nZht1qS@+?4t@3m#I28t>Q%+4Z!3k(b9t@v*SCCUeZUbO&C zH$7y3G43dS4Ekesl?8?P_MYsI+vee6^3S-NEd788!hshiO(5~?A)vrz)2N~>o^Wb% z0#OIPw|@vUe*r%lNBkG_TXWW# ztyt$rfL4(l2cX*Cdgskc=iWRwGEC61ky{9EB8VWkieMf=0>S$Tt|7n(kYIE~77!2w z7>sK7(Eyh4jb614--=4~UrwmLX&gi+PW6|1VXCE6nJB9&ZmQ3OSG2GDr^t_>8)zCM zZvf15EX)3yas8UHePa?>(>Dx&uPA6>*%K==Ts7De_%R8xC+~hS`q?<#I@l9m35>I0 zB>~~uqVTk-eSP2w`F!ECh0UfjX~y@|-IVfY-Cc{0r}p}^?@-p>w`hIp+rRG2`VOU; z+NU)wsZ-gSo<$c>rkg`qcMp&@9!R$jWE+pCnfkJF?Y`8NY;EtN=c&V&Za9*4ya-cz zn$s=Evz`-+P8clRdMsNr0HZavr-K98CK$qpi#nNY>Vx90#l*UolJIehb?@4Fwq|K+ zmx1gXw}(Cc6$4b12-csO7?)_;HFTBdVg7t1tg`5)QkVCw(? diff --git a/.venv/lib/python3.12/site-packages/dotenv/__pycache__/variables.cpython-312.pyc b/.venv/lib/python3.12/site-packages/dotenv/__pycache__/variables.cpython-312.pyc deleted file mode 100644 index c8fdd3c5ad53634dc1dddb4a3d829f6773579881..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5045 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 diff --git a/.venv/lib/python3.12/site-packages/dotenv/cli.py b/.venv/lib/python3.12/site-packages/dotenv/cli.py deleted file mode 100644 index 47eec04..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/cli.py +++ /dev/null @@ -1,236 +0,0 @@ -import json -import os -import shlex -import sys -from contextlib import contextmanager -from typing import IO, Any, Dict, Iterator, List, Optional - -if sys.platform == "win32": - from subprocess import Popen - -try: - import click -except ImportError: - sys.stderr.write( - "It seems python-dotenv is not installed with cli option. \n" - 'Run pip install "python-dotenv[cli]" to fix this.' - ) - sys.exit(1) - -from .main import dotenv_values, set_key, unset_key -from .version import __version__ - - -def enumerate_env() -> Optional[str]: - """ - Return a path for the ${pwd}/.env file. - - If pwd does not exist, return None. - """ - try: - cwd = os.getcwd() - except FileNotFoundError: - return None - path = os.path.join(cwd, ".env") - return path - - -@click.group() -@click.option( - "-f", - "--file", - default=enumerate_env(), - type=click.Path(file_okay=True), - help="Location of the .env file, defaults to .env file in current working directory.", -) -@click.option( - "-q", - "--quote", - default="always", - type=click.Choice(["always", "never", "auto"]), - help="Whether to quote or not the variable values. Default mode is always. This does not affect parsing.", -) -@click.option( - "-e", - "--export", - default=False, - type=click.BOOL, - help="Whether to write the dot file as an executable bash script.", -) -@click.version_option(version=__version__) -@click.pass_context -def cli(ctx: click.Context, file: Any, quote: Any, export: Any) -> None: - """This script is used to set, get or unset values from a .env file.""" - ctx.obj = {"QUOTE": quote, "EXPORT": export, "FILE": file} - - -@contextmanager -def stream_file(path: os.PathLike) -> Iterator[IO[str]]: - """ - Open a file and yield the corresponding (decoded) stream. - - Exits with error code 2 if the file cannot be opened. - """ - - try: - with open(path) as stream: - yield stream - except OSError as exc: - print(f"Error opening env file: {exc}", file=sys.stderr) - sys.exit(2) - - -@cli.command(name="list") -@click.pass_context -@click.option( - "--format", - "output_format", - default="simple", - type=click.Choice(["simple", "json", "shell", "export"]), - help="The format in which to display the list. Default format is simple, " - "which displays name=value without quotes.", -) -def list_values(ctx: click.Context, output_format: str) -> None: - """Display all the stored key/value.""" - file = ctx.obj["FILE"] - - with stream_file(file) as stream: - values = dotenv_values(stream=stream) - - if output_format == "json": - click.echo(json.dumps(values, indent=2, sort_keys=True)) - else: - prefix = "export " if output_format == "export" else "" - for k in sorted(values): - v = values[k] - if v is not None: - if output_format in ("export", "shell"): - v = shlex.quote(v) - click.echo(f"{prefix}{k}={v}") - - -@cli.command(name="set") -@click.pass_context -@click.argument("key", required=True) -@click.argument("value", required=True) -def set_value(ctx: click.Context, key: Any, value: Any) -> None: - """ - Store the given key/value. - - This doesn't follow symlinks, to avoid accidentally modifying a file at a - potentially untrusted path. - """ - - file = ctx.obj["FILE"] - quote = ctx.obj["QUOTE"] - export = ctx.obj["EXPORT"] - success, key, value = set_key(file, key, value, quote, export) - if success: - click.echo(f"{key}={value}") - else: - sys.exit(1) - - -@cli.command() -@click.pass_context -@click.argument("key", required=True) -def get(ctx: click.Context, key: Any) -> None: - """Retrieve the value for the given key.""" - file = ctx.obj["FILE"] - - with stream_file(file) as stream: - values = dotenv_values(stream=stream) - - stored_value = values.get(key) - if stored_value: - click.echo(stored_value) - else: - sys.exit(1) - - -@cli.command() -@click.pass_context -@click.argument("key", required=True) -def unset(ctx: click.Context, key: Any) -> None: - """ - Removes the given key. - - This doesn't follow symlinks, to avoid accidentally modifying a file at a - potentially untrusted path. - """ - file = ctx.obj["FILE"] - quote = ctx.obj["QUOTE"] - success, key = unset_key(file, key, quote) - if success: - click.echo(f"Successfully removed {key}") - else: - sys.exit(1) - - -@cli.command( - context_settings={ - "allow_extra_args": True, - "allow_interspersed_args": False, - "ignore_unknown_options": True, - } -) -@click.pass_context -@click.option( - "--override/--no-override", - default=True, - help="Override variables from the environment file with those from the .env file.", -) -@click.argument("commandline", nargs=-1, type=click.UNPROCESSED) -def run(ctx: click.Context, override: bool, commandline: tuple[str, ...]) -> None: - """Run command with environment variables present.""" - file = ctx.obj["FILE"] - if not os.path.isfile(file): - raise click.BadParameter( - f"Invalid value for '-f' \"{file}\" does not exist.", ctx=ctx - ) - dotenv_as_dict = { - k: v - for (k, v) in dotenv_values(file).items() - if v is not None and (override or k not in os.environ) - } - - if not commandline: - click.echo("No command given.") - sys.exit(1) - - run_command([*commandline, *ctx.args], dotenv_as_dict) - - -def run_command(command: List[str], env: Dict[str, str]) -> None: - """Replace the current process with the specified command. - - Replaces the current process with the specified command and the variables from `env` - added in the current environment variables. - - Parameters - ---------- - command: List[str] - The command and it's parameters - env: Dict - The additional environment variables - - Returns - ------- - None - This function does not return any value. It replaces the current process with the new one. - - """ - # copy the current environment variables and add the vales from - # `env` - cmd_env = os.environ.copy() - cmd_env.update(env) - - if sys.platform == "win32": - # execvpe on Windows returns control immediately - # rather than once the command has finished. - p = Popen(command, universal_newlines=True, bufsize=0, shell=False, env=cmd_env) - _, _ = p.communicate() - - sys.exit(p.returncode) - else: - os.execvpe(command[0], args=command, env=cmd_env) diff --git a/.venv/lib/python3.12/site-packages/dotenv/ipython.py b/.venv/lib/python3.12/site-packages/dotenv/ipython.py deleted file mode 100644 index 4e7edbb..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/ipython.py +++ /dev/null @@ -1,50 +0,0 @@ -from IPython.core.magic import Magics, line_magic, magics_class # type: ignore -from IPython.core.magic_arguments import ( - argument, - magic_arguments, - parse_argstring, -) # type: ignore - -from .main import find_dotenv, load_dotenv - - -@magics_class -class IPythonDotEnv(Magics): - @magic_arguments() - @argument( - "-o", - "--override", - action="store_true", - help="Indicate to override existing variables", - ) - @argument( - "-v", - "--verbose", - action="store_true", - help="Indicate function calls to be verbose", - ) - @argument( - "dotenv_path", - nargs="?", - type=str, - default=".env", - help="Search in increasingly higher folders for the `dotenv_path`", - ) - @line_magic - def dotenv(self, line): - args = parse_argstring(self.dotenv, line) - # Locate the .env file - dotenv_path = args.dotenv_path - try: - dotenv_path = find_dotenv(dotenv_path, True, True) - except IOError: - print("cannot find .env file") - return - - # Load the .env file - load_dotenv(dotenv_path, verbose=args.verbose, override=args.override) - - -def load_ipython_extension(ipython): - """Register the %dotenv magic.""" - ipython.register_magics(IPythonDotEnv) diff --git a/.venv/lib/python3.12/site-packages/dotenv/main.py b/.venv/lib/python3.12/site-packages/dotenv/main.py deleted file mode 100644 index 48e5245..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/main.py +++ /dev/null @@ -1,480 +0,0 @@ -import io -import logging -import os -import pathlib -import stat -import sys -import tempfile -from collections import OrderedDict -from contextlib import contextmanager -from typing import IO, Dict, Iterable, Iterator, Mapping, Optional, Tuple, Union - -from .parser import Binding, parse_stream -from .variables import parse_variables - -# A type alias for a string path to be used for the paths in this file. -# These paths may flow to `open()` and `os.replace()`. -StrPath = Union[str, "os.PathLike[str]"] - -logger = logging.getLogger(__name__) - - -def _load_dotenv_disabled() -> bool: - """ - Determine if dotenv loading has been disabled. - """ - if "PYTHON_DOTENV_DISABLED" not in os.environ: - return False - value = os.environ["PYTHON_DOTENV_DISABLED"].casefold() - return value in {"1", "true", "t", "yes", "y"} - - -def with_warn_for_invalid_lines(mappings: Iterator[Binding]) -> Iterator[Binding]: - for mapping in mappings: - if mapping.error: - logger.warning( - "python-dotenv could not parse statement starting at line %s", - mapping.original.line, - ) - yield mapping - - -class DotEnv: - def __init__( - self, - dotenv_path: Optional[StrPath], - stream: Optional[IO[str]] = None, - verbose: bool = False, - encoding: Optional[str] = None, - interpolate: bool = True, - override: bool = True, - ) -> None: - self.dotenv_path: Optional[StrPath] = dotenv_path - self.stream: Optional[IO[str]] = stream - self._dict: Optional[Dict[str, Optional[str]]] = None - self.verbose: bool = verbose - self.encoding: Optional[str] = encoding - self.interpolate: bool = interpolate - self.override: bool = override - - @contextmanager - def _get_stream(self) -> Iterator[IO[str]]: - if self.dotenv_path and _is_file_or_fifo(self.dotenv_path): - with open(self.dotenv_path, encoding=self.encoding) as stream: - yield stream - elif self.stream is not None: - yield self.stream - else: - if self.verbose: - logger.info( - "python-dotenv could not find configuration file %s.", - self.dotenv_path or ".env", - ) - yield io.StringIO("") - - def dict(self) -> Dict[str, Optional[str]]: - """Return dotenv as dict""" - if self._dict: - return self._dict - - raw_values = self.parse() - - if self.interpolate: - self._dict = OrderedDict( - resolve_variables(raw_values, override=self.override) - ) - else: - self._dict = OrderedDict(raw_values) - - return self._dict - - def parse(self) -> Iterator[Tuple[str, Optional[str]]]: - with self._get_stream() as stream: - for mapping in with_warn_for_invalid_lines(parse_stream(stream)): - if mapping.key is not None: - yield mapping.key, mapping.value - - def set_as_environment_variables(self) -> bool: - """ - Load the current dotenv as system environment variable. - """ - if not self.dict(): - return False - - for k, v in self.dict().items(): - if k in os.environ and not self.override: - continue - if v is not None: - os.environ[k] = v - - return True - - def get(self, key: str) -> Optional[str]: - """ """ - data = self.dict() - - if key in data: - return data[key] - - if self.verbose: - logger.warning("Key %s not found in %s.", key, self.dotenv_path) - - return None - - -def get_key( - dotenv_path: StrPath, - key_to_get: str, - encoding: Optional[str] = "utf-8", -) -> Optional[str]: - """ - Get the value of a given key from the given .env. - - Returns `None` if the key isn't found or doesn't have a value. - """ - return DotEnv(dotenv_path, verbose=True, encoding=encoding).get(key_to_get) - - -@contextmanager -def rewrite( - path: StrPath, - encoding: Optional[str], - follow_symlinks: bool = False, -) -> Iterator[Tuple[IO[str], IO[str]]]: - if follow_symlinks: - path = os.path.realpath(path) - - try: - source: IO[str] = open(path, encoding=encoding) - try: - path_stat = os.lstat(path) - original_mode: Optional[int] = ( - stat.S_IMODE(path_stat.st_mode) - if stat.S_ISREG(path_stat.st_mode) - else None - ) - except BaseException: - source.close() - raise - except FileNotFoundError: - source = io.StringIO("") - original_mode = None - - with tempfile.NamedTemporaryFile( - mode="w", - encoding=encoding, - delete=False, - prefix=".tmp_", - dir=os.path.dirname(os.path.abspath(path)), - ) as dest: - dest_path = pathlib.Path(dest.name) - error = None - - try: - with source: - yield (source, dest) - except BaseException as err: - error = err - - if error is None: - try: - if original_mode is not None: - os.chmod(dest_path, original_mode) - - os.replace(dest_path, path) - except BaseException: - dest_path.unlink(missing_ok=True) - raise - else: - dest_path.unlink(missing_ok=True) - raise error from None - - -def set_key( - dotenv_path: StrPath, - key_to_set: str, - value_to_set: str, - quote_mode: str = "always", - export: bool = False, - encoding: Optional[str] = "utf-8", - follow_symlinks: bool = False, -) -> Tuple[Optional[bool], str, str]: - """ - Adds or Updates a key/value to the given .env - - The target .env file is created if it doesn't exist. - - This function doesn't follow symlinks by default, to avoid accidentally - modifying a file at a potentially untrusted path. If you don't need this - protection and need symlinks to be followed, use `follow_symlinks`. - """ - if quote_mode not in ("always", "auto", "never"): - raise ValueError(f"Unknown quote_mode: {quote_mode}") - - quote = quote_mode == "always" or ( - quote_mode == "auto" and not value_to_set.isalnum() - ) - - if quote: - value_out = "'{}'".format(value_to_set.replace("'", "\\'")) - else: - value_out = value_to_set - if export: - line_out = f"export {key_to_set}={value_out}\n" - else: - line_out = f"{key_to_set}={value_out}\n" - - with rewrite(dotenv_path, encoding=encoding, follow_symlinks=follow_symlinks) as ( - source, - dest, - ): - replaced = False - missing_newline = False - for mapping in with_warn_for_invalid_lines(parse_stream(source)): - if mapping.key == key_to_set: - dest.write(line_out) - replaced = True - else: - dest.write(mapping.original.string) - missing_newline = not mapping.original.string.endswith("\n") - if not replaced: - if missing_newline: - dest.write("\n") - dest.write(line_out) - - return True, key_to_set, value_to_set - - -def unset_key( - dotenv_path: StrPath, - key_to_unset: str, - quote_mode: str = "always", - encoding: Optional[str] = "utf-8", - follow_symlinks: bool = False, -) -> Tuple[Optional[bool], str]: - """ - Removes a given key from the given `.env` file. - - If the .env path given doesn't exist, fails. - If the given key doesn't exist in the .env, fails. - - This function doesn't follow symlinks by default, to avoid accidentally - modifying a file at a potentially untrusted path. If you don't need this - protection and need symlinks to be followed, use `follow_symlinks`. - """ - if not os.path.exists(dotenv_path): - logger.warning("Can't delete from %s - it doesn't exist.", dotenv_path) - return None, key_to_unset - - removed = False - with rewrite(dotenv_path, encoding=encoding, follow_symlinks=follow_symlinks) as ( - source, - dest, - ): - for mapping in with_warn_for_invalid_lines(parse_stream(source)): - if mapping.key == key_to_unset: - removed = True - else: - dest.write(mapping.original.string) - - if not removed: - logger.warning( - "Key %s not removed from %s - key doesn't exist.", key_to_unset, dotenv_path - ) - return None, key_to_unset - - return removed, key_to_unset - - -def resolve_variables( - values: Iterable[Tuple[str, Optional[str]]], - override: bool, -) -> Mapping[str, Optional[str]]: - new_values: Dict[str, Optional[str]] = {} - - for name, value in values: - if value is None: - result = None - else: - atoms = parse_variables(value) - env: Dict[str, Optional[str]] = {} - if override: - env.update(os.environ) # type: ignore - env.update(new_values) - else: - env.update(new_values) - env.update(os.environ) # type: ignore - result = "".join(atom.resolve(env) for atom in atoms) - - new_values[name] = result - - return new_values - - -def _walk_to_root(path: str) -> Iterator[str]: - """ - Yield directories starting from the given directory up to the root - """ - if not os.path.exists(path): - raise IOError("Starting path not found") - - if os.path.isfile(path): - path = os.path.dirname(path) - - last_dir = None - current_dir = os.path.abspath(path) - while last_dir != current_dir: - yield current_dir - parent_dir = os.path.abspath(os.path.join(current_dir, os.path.pardir)) - last_dir, current_dir = current_dir, parent_dir - - -def find_dotenv( - filename: str = ".env", - raise_error_if_not_found: bool = False, - usecwd: bool = False, -) -> str: - """ - Search in increasingly higher folders for the given file - - Returns path to the file if found, or an empty string otherwise - """ - - def _is_interactive(): - """Decide whether this is running in a REPL or IPython notebook""" - if hasattr(sys, "ps1") or hasattr(sys, "ps2"): - return True - try: - main = __import__("__main__", None, None, fromlist=["__file__"]) - except ModuleNotFoundError: - return False - return not hasattr(main, "__file__") - - def _is_debugger(): - return sys.gettrace() is not None - - if usecwd or _is_interactive() or _is_debugger() or getattr(sys, "frozen", False): - # Should work without __file__, e.g. in REPL or IPython notebook. - path = os.getcwd() - else: - # will work for .py files - frame = sys._getframe() - current_file = __file__ - - while frame.f_code.co_filename == current_file or not os.path.exists( - frame.f_code.co_filename - ): - assert frame.f_back is not None - frame = frame.f_back - frame_filename = frame.f_code.co_filename - path = os.path.dirname(os.path.abspath(frame_filename)) - - for dirname in _walk_to_root(path): - check_path = os.path.join(dirname, filename) - if _is_file_or_fifo(check_path): - return check_path - - if raise_error_if_not_found: - raise IOError("File not found") - - return "" - - -def load_dotenv( - dotenv_path: Optional[StrPath] = None, - stream: Optional[IO[str]] = None, - verbose: bool = False, - override: bool = False, - interpolate: bool = True, - encoding: Optional[str] = "utf-8", -) -> bool: - """Parse a .env file and then load all the variables found as environment variables. - - Parameters: - dotenv_path: Absolute or relative path to .env file. - stream: Text stream (such as `io.StringIO`) with .env content, used if - `dotenv_path` is `None`. - verbose: Whether to output a warning the .env file is missing. - override: Whether to override the system environment variables with the variables - from the `.env` file. - encoding: Encoding to be used to read the file. - Returns: - Bool: True if at least one environment variable is set else False - - If both `dotenv_path` and `stream` are `None`, `find_dotenv()` is used to find the - .env file with it's default parameters. If you need to change the default parameters - of `find_dotenv()`, you can explicitly call `find_dotenv()` and pass the result - to this function as `dotenv_path`. - - If the environment variable `PYTHON_DOTENV_DISABLED` is set to a truthy value, - .env loading is disabled. - """ - if _load_dotenv_disabled(): - logger.debug( - "python-dotenv: .env loading disabled by PYTHON_DOTENV_DISABLED environment variable" - ) - return False - - if dotenv_path is None and stream is None: - dotenv_path = find_dotenv() - - dotenv = DotEnv( - dotenv_path=dotenv_path, - stream=stream, - verbose=verbose, - interpolate=interpolate, - override=override, - encoding=encoding, - ) - return dotenv.set_as_environment_variables() - - -def dotenv_values( - dotenv_path: Optional[StrPath] = None, - stream: Optional[IO[str]] = None, - verbose: bool = False, - interpolate: bool = True, - encoding: Optional[str] = "utf-8", -) -> Dict[str, Optional[str]]: - """ - Parse a .env file and return its content as a dict. - - The returned dict will have `None` values for keys without values in the .env file. - For example, `foo=bar` results in `{"foo": "bar"}` whereas `foo` alone results in - `{"foo": None}` - - Parameters: - dotenv_path: Absolute or relative path to the .env file. - stream: `StringIO` object with .env content, used if `dotenv_path` is `None`. - verbose: Whether to output a warning if the .env file is missing. - encoding: Encoding to be used to read the file. - - If both `dotenv_path` and `stream` are `None`, `find_dotenv()` is used to find the - .env file. - """ - if dotenv_path is None and stream is None: - dotenv_path = find_dotenv() - - return DotEnv( - dotenv_path=dotenv_path, - stream=stream, - verbose=verbose, - interpolate=interpolate, - override=True, - encoding=encoding, - ).dict() - - -def _is_file_or_fifo(path: StrPath) -> bool: - """ - Return True if `path` exists and is either a regular file or a FIFO. - """ - if os.path.isfile(path): - return True - - try: - st = os.stat(path) - except (FileNotFoundError, OSError): - return False - - return stat.S_ISFIFO(st.st_mode) diff --git a/.venv/lib/python3.12/site-packages/dotenv/parser.py b/.venv/lib/python3.12/site-packages/dotenv/parser.py deleted file mode 100644 index eb100b4..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/parser.py +++ /dev/null @@ -1,182 +0,0 @@ -import codecs -import re -from typing import ( - IO, - Iterator, - Match, - NamedTuple, - Optional, - Pattern, - Sequence, -) - - -def make_regex(string: str, extra_flags: int = 0) -> Pattern[str]: - return re.compile(string, re.UNICODE | extra_flags) - - -_newline = make_regex(r"(\r\n|\n|\r)") -_multiline_whitespace = make_regex(r"\s*", extra_flags=re.MULTILINE) -_whitespace = make_regex(r"[^\S\r\n]*") -_export = make_regex(r"(?:export[^\S\r\n]+)?") -_single_quoted_key = make_regex(r"'([^']+)'") -_unquoted_key = make_regex(r"([^=\#\s]+)") -_equal_sign = make_regex(r"(=[^\S\r\n]*)") -_single_quoted_value = make_regex(r"'((?:\\'|[^'])*)'") -_double_quoted_value = make_regex(r'"((?:\\"|[^"])*)"') -_unquoted_value = make_regex(r"([^\r\n]*)") -_comment = make_regex(r"(?:[^\S\r\n]*#[^\r\n]*)?") -_end_of_line = make_regex(r"[^\S\r\n]*(?:\r\n|\n|\r|$)") -_rest_of_line = make_regex(r"[^\r\n]*(?:\r|\n|\r\n)?") -_double_quote_escapes = make_regex(r"\\[\\'\"abfnrtv]") -_single_quote_escapes = make_regex(r"\\[\\']") - - -class Original(NamedTuple): - string: str - line: int - - -class Binding(NamedTuple): - key: Optional[str] - value: Optional[str] - original: Original - error: bool - - -class Position: - def __init__(self, chars: int, line: int) -> None: - self.chars = chars - self.line = line - - @classmethod - def start(cls) -> "Position": - return cls(chars=0, line=1) - - def set(self, other: "Position") -> None: - self.chars = other.chars - self.line = other.line - - def advance(self, string: str) -> None: - self.chars += len(string) - self.line += len(re.findall(_newline, string)) - - -class Error(Exception): - pass - - -class Reader: - def __init__(self, stream: IO[str]) -> None: - self.string = stream.read() - self.position = Position.start() - self.mark = Position.start() - - def has_next(self) -> bool: - return self.position.chars < len(self.string) - - def set_mark(self) -> None: - self.mark.set(self.position) - - def get_marked(self) -> Original: - return Original( - string=self.string[self.mark.chars : self.position.chars], - line=self.mark.line, - ) - - def peek(self, count: int) -> str: - return self.string[self.position.chars : self.position.chars + count] - - def read(self, count: int) -> str: - result = self.string[self.position.chars : self.position.chars + count] - if len(result) < count: - raise Error("read: End of string") - self.position.advance(result) - return result - - def read_regex(self, regex: Pattern[str]) -> Sequence[str]: - match = regex.match(self.string, self.position.chars) - if match is None: - raise Error("read_regex: Pattern not found") - self.position.advance(self.string[match.start() : match.end()]) - return match.groups() - - -def decode_escapes(regex: Pattern[str], string: str) -> str: - def decode_match(match: Match[str]) -> str: - return codecs.decode(match.group(0), "unicode-escape") # type: ignore - - return regex.sub(decode_match, string) - - -def parse_key(reader: Reader) -> Optional[str]: - char = reader.peek(1) - if char == "#": - return None - elif char == "'": - (key,) = reader.read_regex(_single_quoted_key) - else: - (key,) = reader.read_regex(_unquoted_key) - return key - - -def parse_unquoted_value(reader: Reader) -> str: - (part,) = reader.read_regex(_unquoted_value) - return re.sub(r"\s+#.*", "", part).rstrip() - - -def parse_value(reader: Reader) -> str: - char = reader.peek(1) - if char == "'": - (value,) = reader.read_regex(_single_quoted_value) - return decode_escapes(_single_quote_escapes, value) - elif char == '"': - (value,) = reader.read_regex(_double_quoted_value) - return decode_escapes(_double_quote_escapes, value) - elif char in ("", "\n", "\r"): - return "" - else: - return parse_unquoted_value(reader) - - -def parse_binding(reader: Reader) -> Binding: - reader.set_mark() - try: - reader.read_regex(_multiline_whitespace) - if not reader.has_next(): - return Binding( - key=None, - value=None, - original=reader.get_marked(), - error=False, - ) - reader.read_regex(_export) - key = parse_key(reader) - reader.read_regex(_whitespace) - if reader.peek(1) == "=": - reader.read_regex(_equal_sign) - value: Optional[str] = parse_value(reader) - else: - value = None - reader.read_regex(_comment) - reader.read_regex(_end_of_line) - return Binding( - key=key, - value=value, - original=reader.get_marked(), - error=False, - ) - except Error: - reader.read_regex(_rest_of_line) - return Binding( - key=None, - value=None, - original=reader.get_marked(), - error=True, - ) - - -def parse_stream(stream: IO[str]) -> Iterator[Binding]: - reader = Reader(stream) - while reader.has_next(): - yield parse_binding(reader) diff --git a/.venv/lib/python3.12/site-packages/dotenv/py.typed b/.venv/lib/python3.12/site-packages/dotenv/py.typed deleted file mode 100644 index 7632ecf..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/py.typed +++ /dev/null @@ -1 +0,0 @@ -# Marker file for PEP 561 diff --git a/.venv/lib/python3.12/site-packages/dotenv/variables.py b/.venv/lib/python3.12/site-packages/dotenv/variables.py deleted file mode 100644 index 667f2f2..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/variables.py +++ /dev/null @@ -1,86 +0,0 @@ -import re -from abc import ABCMeta, abstractmethod -from typing import Iterator, Mapping, Optional, Pattern - -_posix_variable: Pattern[str] = re.compile( - r""" - \$\{ - (?P[^\}:]*) - (?::- - (?P[^\}]*) - )? - \} - """, - re.VERBOSE, -) - - -class Atom(metaclass=ABCMeta): - def __ne__(self, other: object) -> bool: - result = self.__eq__(other) - if result is NotImplemented: - return NotImplemented - return not result - - @abstractmethod - def resolve(self, env: Mapping[str, Optional[str]]) -> str: ... - - -class Literal(Atom): - def __init__(self, value: str) -> None: - self.value = value - - def __repr__(self) -> str: - return f"Literal(value={self.value})" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, self.__class__): - return NotImplemented - return self.value == other.value - - def __hash__(self) -> int: - return hash((self.__class__, self.value)) - - def resolve(self, env: Mapping[str, Optional[str]]) -> str: - return self.value - - -class Variable(Atom): - def __init__(self, name: str, default: Optional[str]) -> None: - self.name = name - self.default = default - - def __repr__(self) -> str: - return f"Variable(name={self.name}, default={self.default})" - - def __eq__(self, other: object) -> bool: - if not isinstance(other, self.__class__): - return NotImplemented - return (self.name, self.default) == (other.name, other.default) - - def __hash__(self) -> int: - return hash((self.__class__, self.name, self.default)) - - def resolve(self, env: Mapping[str, Optional[str]]) -> str: - default = self.default if self.default is not None else "" - result = env.get(self.name, default) - return result if result is not None else "" - - -def parse_variables(value: str) -> Iterator[Atom]: - cursor = 0 - - for match in _posix_variable.finditer(value): - (start, end) = match.span() - name = match["name"] - default = match["default"] - - if start > cursor: - yield Literal(value=value[cursor:start]) - - yield Variable(name=name, default=default) - cursor = end - - length = len(value) - if cursor < length: - yield Literal(value=value[cursor:length]) diff --git a/.venv/lib/python3.12/site-packages/dotenv/version.py b/.venv/lib/python3.12/site-packages/dotenv/version.py deleted file mode 100644 index bc86c94..0000000 --- a/.venv/lib/python3.12/site-packages/dotenv/version.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "1.2.2" diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/INSTALLER b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/INSTALLER deleted file mode 100644 index a1b589e..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/INSTALLER +++ /dev/null @@ -1 +0,0 @@ -pip diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/METADATA b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/METADATA deleted file mode 100644 index d56256f..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/METADATA +++ /dev/null @@ -1,551 +0,0 @@ -Metadata-Version: 2.4 -Name: Faker -Version: 40.18.0 -Summary: Faker is a Python package that generates fake data for you. -Home-page: https://github.com/joke2k/faker -Author: joke2k -Author-email: joke2k@gmail.com -License: MIT License -Project-URL: Bug Tracker, https://github.com/joke2k/faker/issues -Project-URL: Changes, https://github.com/joke2k/faker/blob/master/CHANGELOG.md -Project-URL: Documentation, http://faker.rtfd.org/ -Project-URL: Source Code, https://github.com/joke2k/faker -Keywords: faker fixtures data test mock generator -Platform: any -Classifier: Development Status :: 5 - Production/Stable -Classifier: Environment :: Console -Classifier: Intended Audience :: Developers -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: Topic :: Software Development :: Libraries :: Python Modules -Classifier: Topic :: Software Development :: Testing -Classifier: Topic :: Utilities -Classifier: License :: OSI Approved :: MIT License -Requires-Python: >=3.10 -License-File: LICENSE.txt -Requires-Dist: tzdata; platform_system == "Windows" -Provides-Extra: tzdata -Requires-Dist: tzdata; extra == "tzdata" -Dynamic: author -Dynamic: author-email -Dynamic: classifier -Dynamic: description -Dynamic: home-page -Dynamic: keywords -Dynamic: license -Dynamic: license-file -Dynamic: platform -Dynamic: project-url -Dynamic: provides-extra -Dynamic: requires-dist -Dynamic: requires-python -Dynamic: summary - -*Faker* is a Python package that generates fake data for you. Whether -you need to bootstrap your database, create good-looking XML documents, -fill-in your persistence to stress test it, or anonymize data taken from -a production service, Faker is for you. - -Faker is heavily inspired by `PHP Faker`_, `Perl Faker`_, and by `Ruby Faker`_. - ----- - -:: - - _|_|_|_| _| - _| _|_|_| _| _| _|_| _| _|_| - _|_|_| _| _| _|_| _|_|_|_| _|_| - _| _| _| _| _| _| _| - _| _|_|_| _| _| _|_|_| _| - -|pypi| |build| |coverage| |license| - ----- - -Compatibility -------------- - -Starting from version ``4.0.0``, ``Faker`` dropped support for Python 2 and from version ``5.0.0`` -only supports Python 3.8 and above. If you still need Python 2 compatibility, please install version ``3.0.1`` in the -meantime, and please consider updating your codebase to support Python 3 so you can enjoy the -latest features ``Faker`` has to offer. Please see the `extended docs`_ for more details, especially -if you are upgrading from version ``2.0.4`` and below as there might be breaking changes. - -This package was also previously called ``fake-factory`` which was already deprecated by the end -of 2016, and much has changed since then, so please ensure that your project and its dependencies -do not depend on the old package. - -Basic Usage ------------ - -Install with pip: - -.. code:: bash - - pip install Faker - -Use ``faker.Faker()`` to create and initialize a faker -generator, which can generate data by accessing properties named after -the type of data you want. - -.. code:: python - - from faker import Faker - fake = Faker() - - fake.name() - # 'Lucy Cechtelar' - - fake.address() - # '426 Jordy Lodge - # Cartwrightshire, SC 88120-6700' - - fake.text() - # 'Sint velit eveniet. Rerum atque repellat voluptatem quia rerum. Numquam excepturi - # beatae sint laudantium consequatur. Magni occaecati itaque sint et sit tempore. Nesciunt - # amet quidem. Iusto deleniti cum autem ad quia aperiam. - # A consectetur quos aliquam. In iste aliquid et aut similique suscipit. Consequatur qui - # quaerat iste minus hic expedita. Consequuntur error magni et laboriosam. Aut aspernatur - # voluptatem sit aliquam. Dolores voluptatum est. - # Aut molestias et maxime. Fugit autem facilis quos vero. Eius quibusdam possimus est. - # Ea quaerat et quisquam. Deleniti sunt quam. Adipisci consequatur id in occaecati. - # Et sint et. Ut ducimus quod nemo ab voluptatum.' - -Each call to method ``fake.name()`` yields a different (random) result. -This is because faker forwards ``faker.Generator.method_name()`` calls -to ``faker.Generator.format(method_name)``. - -.. code:: python - - for _ in range(10): - print(fake.name()) - - # 'Adaline Reichel' - # 'Dr. Santa Prosacco DVM' - # 'Noemy Vandervort V' - # 'Lexi O'Conner' - # 'Gracie Weber' - # 'Roscoe Johns' - # 'Emmett Lebsack' - # 'Keegan Thiel' - # 'Wellington Koelpin II' - # 'Ms. Karley Kiehn V' - -Pytest fixtures ---------------- - -``Faker`` also has its own ``pytest`` plugin which provides a ``faker`` fixture you can use in your -tests. Please check out the `pytest fixture docs` to learn more. - -Providers ---------- - -Each of the generator properties (like ``name``, ``address``, and -``lorem``) are called "fake". A faker generator has many of them, -packaged in "providers". - -.. code:: python - - from faker import Faker - from faker.providers import internet - - fake = Faker() - fake.add_provider(internet) - - print(fake.ipv4_private()) - - -Check the `extended docs`_ for a list of `bundled providers`_ and a list of -`community providers`_. - -Localization ------------- - -``faker.Faker`` can take a locale as an argument, to return localized -data. If no localized provider is found, the factory falls back to the -default LCID string for US english, ie: ``en_US``. - -.. code:: python - - from faker import Faker - fake = Faker('it_IT') - for _ in range(10): - print(fake.name()) - - # 'Elda Palumbo' - # 'Pacifico Giordano' - # 'Sig. Avide Guerra' - # 'Yago Amato' - # 'Eustachio Messina' - # 'Dott. Violante Lombardo' - # 'Sig. Alighieri Monti' - # 'Costanzo Costa' - # 'Nazzareno Barbieri' - # 'Max Coppola' - -``faker.Faker`` also supports multiple locales. New in v3.0.0. - -.. code:: python - - from faker import Faker - fake = Faker(['it_IT', 'en_US', 'ja_JP']) - for _ in range(10): - print(fake.name()) - - # 鈴木 陽一 - # Leslie Moreno - # Emma Williams - # 渡辺 裕美子 - # Marcantonio Galuppi - # Martha Davis - # Kristen Turner - # 中津川 春香 - # Ashley Castillo - # 山田 桃子 - -You can check available Faker locales in the source code, under the -providers package. The localization of Faker is an ongoing process, for -which we need your help. Please don't hesitate to create a localized -provider for your own locale and submit a Pull Request (PR). - -Optimizations -------------- -The Faker constructor takes a performance-related argument called -``use_weighting``. It specifies whether to attempt to have the frequency -of values match real-world frequencies (e.g. the English name Gary would -be much more frequent than the name Lorimer). If ``use_weighting`` is ``False``, -then all items have an equal chance of being selected, and the selection -process is much faster. The default is ``True``. - -Command line usage ------------------- - -When installed, you can invoke faker from the command-line: - -.. code:: console - - faker [-h] [--version] [-o output] - [-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}] - [-r REPEAT] [-s SEP] - [-i package.containing.custom_provider] - [fake] [fake argument [fake argument ...]] - -Where: - -- ``faker``: is the script when installed in your environment, in - development you could use ``python -m faker`` instead - -- ``-h``, ``--help``: shows a help message - -- ``--version``: shows the program's version number - -- ``-o FILENAME``: redirects the output to the specified filename - -- ``-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}``: allows use of a localized - provider - -- ``-r REPEAT``: will generate a specified number of outputs - -- ``-s SEP``: will generate the specified separator after each - generated output - -- ``-i package.containing.custom_provider`` additional custom provider to use. Note this - is the import path of the package containing your Provider class, not the - custom Provider class itself. Can be repeated to add multiple providers. - -- ``fake``: is the name of the fake to generate an output for, such as - ``name``, ``address``, or ``text`` - -- ``[fake argument ...]``: optional arguments to pass to the fake (e.g. the - profile fake takes an optional list of comma separated field names as the - first argument) - -Examples: - -.. code:: console - - $ faker address - 968 Bahringer Garden Apt. 722 - Kristinaland, NJ 09890 - - $ faker -l de_DE address - Samira-Niemeier-Allee 56 - 94812 Biedenkopf - - $ faker profile ssn,birthdate - {'ssn': '628-10-1085', 'birthdate': '2008-03-29'} - - $ faker -r=3 -s=";" name - Willam Kertzmann; - Josiah Maggio; - Gayla Schmitt; - - $ faker -i faker_credit_score credit_score_full - Experian/Fair Isaac Risk Model V2SM - Experian - 801 - -How to create a Provider ------------------------- - -.. code:: python - - from faker import Faker - fake = Faker() - - # first, import a similar Provider or use the default one - from faker.providers import BaseProvider - - # create new provider class - class MyProvider(BaseProvider): - def foo(self) -> str: - return 'bar' - - # then add new provider to faker instance - fake.add_provider(MyProvider) - - # now you can use: - fake.foo() - # 'bar' - - -How to create a Dynamic Provider --------------------------------- - -Dynamic providers can read elements from an external source. - -.. code:: python - - from faker import Faker - from faker.providers import DynamicProvider - - medical_professions_provider = DynamicProvider( - provider_name="medical_profession", - elements=["dr.", "doctor", "nurse", "surgeon", "clerk"], - ) - - fake = Faker() - - # then add new provider to faker instance - fake.add_provider(medical_professions_provider) - - # now you can use: - fake.medical_profession() - # 'dr.' - -How to customize the Lorem Provider ------------------------------------ - -You can provide your own sets of words if you don't want to use the -default lorem ipsum one. The following example shows how to do it with a list of words picked from `cakeipsum `__ : - -.. code:: python - - from faker import Faker - fake = Faker() - - my_word_list = [ - 'danish','cheesecake','sugar', - 'Lollipop','wafer','Gummies', - 'sesame','Jelly','beans', - 'pie','bar','Ice','oat' ] - - fake.sentence() - # 'Expedita at beatae voluptatibus nulla omnis.' - - fake.sentence(ext_word_list=my_word_list) - # 'Oat beans oat Lollipop bar cheesecake.' - - -How to use with Factory Boy ---------------------------- - -`Factory Boy` already ships with integration with ``Faker``. Simply use the -``factory.Faker`` method of ``factory_boy``: - -.. code:: python - - import factory - from myapp.models import Book - - class BookFactory(factory.Factory): - class Meta: - model = Book - - title = factory.Faker('sentence', nb_words=4) - author_name = factory.Faker('name') - -Accessing the `random` instance -------------------------------- - -The ``.random`` property on the generator returns the instance of -``random.Random`` used to generate the values: - -.. code:: python - - from faker import Faker - fake = Faker() - fake.random - fake.random.getstate() - -By default all generators share the same instance of ``random.Random``, which -can be accessed with ``from faker.generator import random``. Using this may -be useful for plugins that want to affect all faker instances. - -Unique values -------------- - -Through use of the ``.unique`` property on the generator, you can guarantee -that any generated values are unique for this specific instance. - -.. code:: python - - from faker import Faker - fake = Faker() - names = [fake.unique.first_name() for i in range(500)] - assert len(set(names)) == len(names) - -On ``Faker`` instances with multiple locales, you can specify the locale to use -for the unique values by using the subscript notation: - -.. code:: python - - from faker import Faker - fake = Faker(['en_US', 'fr_FR']) - names = [fake.unique["en_US"].first_name() for i in range(500)] - assert len(set(names)) == len(names) - -Calling ``fake.unique.clear()`` clears the already seen values. - -Note, to avoid infinite loops, after a number of attempts to find a unique -value, Faker will throw a ``UniquenessException``. Beware of the `birthday -paradox `_, collisions -are more likely than you'd think. - - -.. code:: python - - from faker import Faker - - fake = Faker() - for i in range(3): - # Raises a UniquenessException - fake.unique.boolean() - -In addition, only hashable arguments and return values can be used -with ``.unique``. - -Seeding the Generator ---------------------- - -When using Faker for unit testing, you will often want to generate the same -data set. For convenience, the generator also provides a ``seed()`` method, -which seeds the shared random number generator. A Seed produces the same result -when the same methods with the same version of faker are called. - -.. code:: python - - from faker import Faker - fake = Faker() - Faker.seed(4321) - - print(fake.name()) - # 'Margaret Boehm' - -Each generator can also be switched to use its own instance of ``random.Random``, -separated from the shared one, by using the ``seed_instance()`` method, which acts -the same way. For example: - -.. code:: python - - from faker import Faker - fake = Faker() - fake.seed_instance(4321) - - print(fake.name()) - # 'Margaret Boehm' - -Please note that as we keep updating datasets, results are not guaranteed to be -consistent across patch versions. If you hardcode results in your test, make sure -you pinned the version of ``Faker`` down to the patch number. - -If you are using ``pytest``, you can seed the ``faker`` fixture by defining a ``faker_seed`` -fixture. Please check out the `pytest fixture docs` to learn more. - -Tests ------ - -Run tests: - -.. code:: bash - - $ tox - -Write documentation for the providers of the default locale: - -.. code:: bash - - $ python -m faker > docs.txt - -Write documentation for the providers of a specific locale: - -.. code:: bash - - $ python -m faker --lang=de_DE > docs_de.txt - - -Contribute ----------- - -Please see `CONTRIBUTING`_. - -License -------- - -Faker is released under the MIT License. See the bundled `LICENSE`_ file -for details. - -Credits -------- - -- `FZaninotto`_ / `PHP Faker`_ -- `Distribute`_ -- `Buildout`_ -- `modern-package-template`_ - - -.. _FZaninotto: https://github.com/fzaninotto -.. _PHP Faker: https://github.com/fzaninotto/Faker -.. _Perl Faker: http://search.cpan.org/~jasonk/Data-Faker-0.07/ -.. _Ruby Faker: https://github.com/stympy/faker -.. _Distribute: https://pypi.org/project/distribute/ -.. _Buildout: http://www.buildout.org/ -.. _modern-package-template: https://pypi.org/project/modern-package-template/ -.. _extended docs: https://faker.readthedocs.io/en/stable/ -.. _bundled providers: https://faker.readthedocs.io/en/stable/providers.html -.. _community providers: https://faker.readthedocs.io/en/stable/communityproviders.html -.. _pytest fixture docs: https://faker.readthedocs.io/en/master/pytest-fixtures.html -.. _LICENSE: https://github.com/joke2k/faker/blob/master/LICENSE.txt -.. _CONTRIBUTING: https://github.com/joke2k/faker/blob/master/CONTRIBUTING.rst -.. _Factory Boy: https://github.com/FactoryBoy/factory_boy - -.. |pypi| image:: https://img.shields.io/pypi/v/Faker.svg?style=flat-square&label=version - :target: https://pypi.org/project/Faker/ - :alt: Latest version released on PyPI - -.. |coverage| image:: https://img.shields.io/coveralls/joke2k/faker/master.svg?style=flat-square - :target: https://coveralls.io/r/joke2k/faker?branch=master - :alt: Test coverage - -.. |build| image:: https://github.com/joke2k/faker/actions/workflows/ci.yml/badge.svg - :target: https://github.com/joke2k/faker/actions/workflows/ci.yml - :alt: Build status of the master branch - -.. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square - :target: https://raw.githubusercontent.com/joke2k/faker/master/LICENSE.txt - :alt: Package license diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/RECORD b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/RECORD deleted file mode 100644 index e4f358b..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/RECORD +++ /dev/null @@ -1,1464 +0,0 @@ -../../../bin/faker,sha256=JRVTkxzrz_fONGWUEA92DHLkXGEF3Gg6w_aXCkzqwko,300 -faker-40.18.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 -faker-40.18.0.dist-info/METADATA,sha256=GBI21hoU_CXERAeSkSdjIAiSQpie4ibMETQHrJDohY4,16353 -faker-40.18.0.dist-info/RECORD,, -faker-40.18.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -faker-40.18.0.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91 -faker-40.18.0.dist-info/entry_points.txt,sha256=l_IdiPD4bkqzB9bcv94HWbprFQzvZhApP98Hh6g6b58,110 -faker-40.18.0.dist-info/licenses/LICENSE.txt,sha256=zVpfvIusylK4gVjKVirF98LprbJzcc6tUar05hpleSg,1060 -faker-40.18.0.dist-info/top_level.txt,sha256=r5c8fW5_gMtLHv1Ql00Y4ifqUwZFD8NDLz9-nTKZmSk,6 -faker-40.18.0.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1 -faker/__init__.py,sha256=njNT6joPEIg2jE2ZuqQbpSd_kJcP0r72cTE-KkxIvZI,168 -faker/__main__.py,sha256=bWvstAA5sgR1fuERQ4Hc8txstG9n0AbqH7m9WT1BbDA,107 -faker/__pycache__/__init__.cpython-312.pyc,, -faker/__pycache__/__main__.cpython-312.pyc,, -faker/__pycache__/cli.cpython-312.pyc,, -faker/__pycache__/config.cpython-312.pyc,, -faker/__pycache__/documentor.cpython-312.pyc,, -faker/__pycache__/exceptions.cpython-312.pyc,, -faker/__pycache__/factory.cpython-312.pyc,, -faker/__pycache__/generator.cpython-312.pyc,, -faker/__pycache__/proxy.cpython-312.pyc,, -faker/__pycache__/typing.cpython-312.pyc,, -faker/cli.py,sha256=V92Ni4lkcsZxKhilB9JDjJ8czI5xnfSBevMWXREgc4A,9576 -faker/config.py,sha256=IUzU9OjeGF2Oj05_E5U144wVaFfPD1WH-Ddrg2-hZf8,343 -faker/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -faker/contrib/__pycache__/__init__.cpython-312.pyc,, -faker/contrib/pytest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -faker/contrib/pytest/__pycache__/__init__.cpython-312.pyc,, -faker/contrib/pytest/__pycache__/plugin.cpython-312.pyc,, -faker/contrib/pytest/plugin.py,sha256=riHG2hkldfJxcBXqmblXMrAPtqUhPnIXQjlBFr_rE1A,1114 -faker/decode/__init__.py,sha256=M1moNbvdc4XyDcnLgh1xB8ik57ZVXyIfeJE-LTJAyVM,234 -faker/decode/__pycache__/__init__.cpython-312.pyc,, -faker/decode/__pycache__/codes.cpython-312.pyc,, -faker/decode/codes.py,sha256=aMPbvX4JoRwISqjYKh9eiutCPCFLBl6uu6PVgsqCUIQ,769957 -faker/documentor.py,sha256=NBABEjQ9IEO3jJJHuRKzfZFlkM3QNVjBegLV_Zp3cw8,4246 -faker/exceptions.py,sha256=aEN2G4fwwjBUcKCMJ0h9PBEpQzTj2hEnXpRh6C6cdVw,506 -faker/factory.py,sha256=d4Nub66PrtbGkFf2GwKNGlDe2IQJt8EjFFVCYqOhKqg,3923 -faker/generator.py,sha256=kAv4Y_A7HlSqF9XdDajgepbclwbNT4A6EBz3aKIz3M8,6790 -faker/providers/__init__.py,sha256=Re2dZBAucCpmPQoy6zOjZqaR5WMMs_wcSpDxyrIkQZk,25652 -faker/providers/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/__init__.py,sha256=wP37P3E7zmu8W0LWXk6cbk07QE6Ow2rffJ75cUyJ7ig,4024 -faker/providers/address/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ar_DZ/__init__.py,sha256=b1k-nEb1brMEN1vbVRHMkRMiy3fiUH5j51J0xT9XBUg,9665 -faker/providers/address/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/az_AZ/__init__.py,sha256=OhVwKdfthVLczuhQvVPMujOsKpUC9aBpRg-uroEwHZ8,15829 -faker/providers/address/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/bn_BD/__init__.py,sha256=YdHlA9EaXuZc-T5ZwRgrTVizRckYuHdWrPAQx9lHJ90,20346 -faker/providers/address/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/cs_CZ/__init__.py,sha256=8gnBMU_OHkb0JdGDJo628f3cojiHRPjrsZh1l8UCesA,27852 -faker/providers/address/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/da_DK/__init__.py,sha256=OKDKKAWh60umyQLDNSYWp8W70FOKtUovaaF90q4j3bc,51375 -faker/providers/address/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/de/__init__.py,sha256=5Quk1In2RNlovsWBb3npynCFio4bkR1IzbNRhZIN7uU,5672 -faker/providers/address/de/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/de_AT/__init__.py,sha256=B8c9jER7MmgouJ6228AXdcAPxGp6CiMz7bHddmaAYdo,6453 -faker/providers/address/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/de_CH/__init__.py,sha256=xF6yk1VhZHphb7lpWOeWxOB_QxCbOHhnQkBrTvdR5Zs,5361 -faker/providers/address/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/de_DE/__init__.py,sha256=u4Xwhloey3rbdg-Z3jDVOPmvLizgjx8OE9XV777-SZ8,10409 -faker/providers/address/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/el_GR/__init__.py,sha256=_IohURhKWsgiDGiq89B0pdVxvkROrInFupImXksxefo,149020 -faker/providers/address/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en/__init__.py,sha256=w4bMWWe_CSpwmBQyQ8R4oHhdZK3_Ks1mEUd9jsfxigc,5648 -faker/providers/address/en/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_AU/__init__.py,sha256=GQQ3z7eehtF-zIhN7gHkSyhlsHokUo379xYW4cFL-80,6565 -faker/providers/address/en_AU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_BD/__init__.py,sha256=ji14eyNu96Z6nqo_rll9BkaqQrxtR7i_ctC--chnxXo,12026 -faker/providers/address/en_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_CA/__init__.py,sha256=A9WWb-T0eOlwyhOtFineAzl_3ly2NBOtW75JkDfZhKw,9037 -faker/providers/address/en_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_GB/__init__.py,sha256=2Tw-T0UsIVvVdiEp_UD1ntPwnQ5NFNCWiOhRJc0UiN0,10725 -faker/providers/address/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_IE/__init__.py,sha256=_sz-JCp7mm8F1jWTEwjjgLCM53qBpr5W5Fmj57HSceo,1336 -faker/providers/address/en_IE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_IN/__init__.py,sha256=EHqP9YVzNxEqKu3tPtxstxTQ3qCD013jXYUg3VKeiWI,13659 -faker/providers/address/en_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_MS/__init__.py,sha256=ZMYWByh6wC6zgav5etxwzBmUdztWyIHQMIXTCau4Zik,12816 -faker/providers/address/en_MS/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_NZ/__init__.py,sha256=80YiH9_uy_FyQPm8JvgU5qF0pPVwDDHc2ZdhIOU3mWY,7140 -faker/providers/address/en_NZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_PH/__init__.py,sha256=sC-WyA3ekXtOyLRQaYaD4TXS9RDqLA4fyaK5Ba1jWdA,43242 -faker/providers/address/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/en_US/__init__.py,sha256=5CjDd5VTW0RuLUjBUDkX0-gCl6vLjKO_Frj0WZUOi8w,13688 -faker/providers/address/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/es/__init__.py,sha256=7ook-a38a3ozyftxFVBHGgzkJ3u4DFumo1lsRCPvedY,4406 -faker/providers/address/es/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/es_AR/__init__.py,sha256=GSe6BCq19JpK51azW5MhZRJkjb-864lW4FGVuYUafdM,6549 -faker/providers/address/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/es_CL/__init__.py,sha256=qv7PAhdT1XmQ2t9A8oOSnOw1cqZb4m6G7s848JwX6yk,19941 -faker/providers/address/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/es_CO/__init__.py,sha256=nJcxIm-NaGY-nDvVneC1nrcJFBuKW7awl_PSkHZSpbs,42958 -faker/providers/address/es_CO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/es_ES/__init__.py,sha256=L7nSd_R7uIbT9YNQKeLuJJBbqeSCgdITZJ1es8MfdQQ,3361 -faker/providers/address/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/es_MX/__init__.py,sha256=-pYU1LttV94EPTkVm7TAt_OLRJkFBb1wEW_3J96NXL4,4914 -faker/providers/address/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fa_IR/__init__.py,sha256=dwN_zs65K0IVO9uQjhU4vXySsvghG_GWKIoBLqnkeNE,8028 -faker/providers/address/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fi_FI/__init__.py,sha256=vY6s1s56EW8jm2YTuoyX_jWjsUzaAxOMX3_P9HCu9Y8,16862 -faker/providers/address/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fil_PH/__init__.py,sha256=GWSXNmCOnBty8NLToYXAQRwIMa3yfkqIccBc6R_mxVo,164 -faker/providers/address/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fr_CA/__init__.py,sha256=tkGvDQDJfDyDdo2xLSM14v7FkAUEsZg3Tyy-oIH2jD4,1866 -faker/providers/address/fr_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fr_CH/__init__.py,sha256=7cF2Jcdi--e2s8kvO-17xB2qRrW3OkQt0LoCvL3qCvQ,8695 -faker/providers/address/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fr_DZ/__init__.py,sha256=al26GKGbCk_YKQxEoWnDKwn_NYgzNvNXS_2paF06v7w,8331 -faker/providers/address/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/fr_FR/__init__.py,sha256=S-C1gFbbEdRl1FM4qDO0prCBADC0p2PJMWl2y94swos,12056 -faker/providers/address/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/he_IL/__init__.py,sha256=1tnO9BOT99ApLGd22CsYUPdXTL4a4L8wEbwGGrlHQwU,23641 -faker/providers/address/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/hi_IN/__init__.py,sha256=mcXpPKzW_9T08_iK1buCd3VvYf64FmBv2ZggSJBJS0s,7698 -faker/providers/address/hi_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/hr_HR/__init__.py,sha256=0y5L8-Grp87pzfZ12PIVzvrtHPj3DfTiT_H2VIoKu_o,12730 -faker/providers/address/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/hu_HU/__init__.py,sha256=nuykzYXPdKJCpnqK4uqOBmvH8BoC-uVKV-7OXWgptqA,11395 -faker/providers/address/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/hy_AM/__init__.py,sha256=s2eg8iGDGPpWHqPrDdAF3-BfXkn157LL0BewajD9Pu4,20576 -faker/providers/address/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/id_ID/__init__.py,sha256=vFxn9A7NTodp5rnoDE-Ne7qDn3SSqCWEQC61pLOdLzk,11524 -faker/providers/address/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/it_IT/__init__.py,sha256=5BPdL9__bUdrEhQOHtdEvcOYMPDBQ7sCFYGFgGCwDG0,667166 -faker/providers/address/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ja_JP/__init__.py,sha256=og73NTP1cmbnedh9AGojeC3P4Uid9inpLOPICXy8XcY,16223 -faker/providers/address/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ka_GE/__init__.py,sha256=z6DfhsRNhHgOfsUHost43aTlRW1CnxH-mavfrNskSzM,53808 -faker/providers/address/ka_GE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ko_KR/__init__.py,sha256=djZEWeB_K7niXkBl2oZrwY1CcTShf1SOeVLHealBM40,16491 -faker/providers/address/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ne_NP/__init__.py,sha256=SZf6PfXCdlmZ1XYYu-2TUpFa6qSvK9yZ5-QFiW9rAC8,22794 -faker/providers/address/ne_NP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/nl_BE/__init__.py,sha256=FAup9xS8nIg4BvNU1CKY9RVZ-l40dXC0EfPXYaohooM,65198 -faker/providers/address/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/nl_NL/__init__.py,sha256=H05UmyeuriYxlV7x9-uUdAX0a_sSiT9T5DkBL7u8br4,57929 -faker/providers/address/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/no_NO/__init__.py,sha256=afUxqu6BQnzaeZuBH-RajqJeawrflhPCVEpU3Eh6fDc,2490 -faker/providers/address/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/pl_PL/__init__.py,sha256=FbkQ19PPDuTGvxoB2hUmrvyVdBJsFBfmx5FkBUTN1H0,17101 -faker/providers/address/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/pt_BR/__init__.py,sha256=UMPFv1Q8AuN23v-HV70EKVtpU9z7i26b_QMT8EDM-Kc,22999 -faker/providers/address/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/pt_PT/__init__.py,sha256=ZTP9liYV_HbgOCoJY8Wqct5_LGRKRDRHVR0rNzK3CHs,38123 -faker/providers/address/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ro_RO/__init__.py,sha256=03g6v3vqtkLj60ERKxUchkmZal4vr9lG4L9tpOFY6XQ,9633 -faker/providers/address/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ru_RU/__init__.py,sha256=3KNx8s8kbN4h8HutZRt2v7AzL7NFxbK2dak4a5nSce0,48537 -faker/providers/address/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/sk_SK/__init__.py,sha256=NGHQTDPB7uP_YnFmwbaEw5K9Pqwn5waq-fJ3UrBR5CQ,122008 -faker/providers/address/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/sl_SI/__init__.py,sha256=0P4KauGn5hfFyVoNoMM-XFUsDzQlqw_0X-mPTiESxPM,42412 -faker/providers/address/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/sv_SE/__init__.py,sha256=iqdwU0Xw5MMjG_nxPJrtNPznt_RxDccQk7C-5Okso6U,8163 -faker/providers/address/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/ta_IN/__init__.py,sha256=tp23UYijByweT0IlZXv6ItCG2-bnm1JAqBwVIKk1e1k,16943 -faker/providers/address/ta_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/th/__init__.py,sha256=gs2nBp8qeBqUT0_b9liUHH592RBid1Q7rU1c6hzTWfg,9824 -faker/providers/address/th/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/th_TH/__init__.py,sha256=0fXC5Qg3Y40_k5CTtFJHXwcTnGGAKJPIFBFSuZw2B0s,12997 -faker/providers/address/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/tl_PH/__init__.py,sha256=GWSXNmCOnBty8NLToYXAQRwIMa3yfkqIccBc6R_mxVo,164 -faker/providers/address/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/uk_UA/__init__.py,sha256=nFubdejOm9MCcDso8weHi9xnIQtFade3aZafLOSecZI,73453 -faker/providers/address/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/vi_VN/__init__.py,sha256=ILT2AO11Don8CuleBvU3bap5EZzcdbfGpFJeVa8Nk94,7598 -faker/providers/address/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/zh_CN/__init__.py,sha256=MaW3qTfIhxoH0JQNaYYmK9D-koxKy8RFfTix0A-knGE,9898 -faker/providers/address/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/zh_TW/__init__.py,sha256=CQ0LzyxmKJJIBF_FTCJuEN3Gp5iuwFQmACFLYsCudvI,8296 -faker/providers/address/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/address/zu_ZA/__init__.py,sha256=93aADtaUhMHbkmxX3RDX9SAkKbv8sT3lkVcxTwgRl3I,5187 -faker/providers/address/zu_ZA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/__init__.py,sha256=ubRoF0eyMr-N6hdeuuvolUt9oLhU9Y9wYcD37ZduXIo,1961 -faker/providers/automotive/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ar_BH/__init__.py,sha256=yHzypyOoVRxh-v5hsjC5ckEzXvB01v9DzxCpZ7BnBnE,275 -faker/providers/automotive/ar_BH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ar_DZ/__init__.py,sha256=vo25IA_MGeaJIlP3z4CzquGIf-pcnZF6baZotYbYpGY,634 -faker/providers/automotive/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ar_JO/__init__.py,sha256=qkPY4ELWlgMPz7YU_vTIiEjbxdnG0UXhK39BpfCU6ig,1567 -faker/providers/automotive/ar_JO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ar_PS/__init__.py,sha256=AfNnOx0ryuw7NfMOrQV4i6ZhK2FRTDQ32I8lJKW_hCQ,1744 -faker/providers/automotive/ar_PS/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ar_SA/__init__.py,sha256=uZrSoiKNH0I7MC_1siesa4gmXPlI5I8Tyzd1ete2nMc,2318 -faker/providers/automotive/ar_SA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/az_AZ/__init__.py,sha256=u7VpFWRaPj3tQtvsCQCOe115JYNb-xNmud9brzl-dOA,1774 -faker/providers/automotive/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/bn_BD/__init__.py,sha256=mMlQ3NyvlvL9V09L9MJ1jEE9AKytw9irWlST2FpJ15o,6333 -faker/providers/automotive/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/da_DK/__init__.py,sha256=NOdkFEwYyF--kYw3iLndzH46v1JcZbZ_rVLhKj7WkNk,270 -faker/providers/automotive/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/de_AT/__init__.py,sha256=n40mR9OuXYdmKmkzbi7W3ARRenttc42EPAF1OqCifUY,3036 -faker/providers/automotive/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/de_CH/__init__.py,sha256=xibm7fHr-60zuO80aS1BPHqeZMmQfO7_8uiYkAYQpeM,1151 -faker/providers/automotive/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/de_DE/__init__.py,sha256=_riKWlt1bowiytZeqRW_gMQzZEss1UbrJhqH6Ik1F20,6463 -faker/providers/automotive/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/el_GR/__init__.py,sha256=GUhLF6kdsh-98ZKY26SXUKqCy1lEXPbB7_gEnspo7pw,555 -faker/providers/automotive/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/en_CA/__init__.py,sha256=bamRz0hKMQT6NoIGEBY0OuS0Jek3huZxqLRhFoAcJPE,919 -faker/providers/automotive/en_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/en_GB/__init__.py,sha256=KpoS4sxYRSKvGYSxprydASLwyUFIygBQb-rSIGjtHjc,322 -faker/providers/automotive/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/en_NZ/__init__.py,sha256=VswoVRAjPwO9KdDjr4h0OdEI9QPwjCgoLZpdkB8GmdU,640 -faker/providers/automotive/en_NZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/en_PH/__init__.py,sha256=qMj0yJPoS0Js_dyBedLIXnUpbSY39mE8pXYC_XuuFU0,2499 -faker/providers/automotive/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/en_US/__init__.py,sha256=ysnuyD-5muUYBc4jU1tlah6FHB5ZUlgH5W9Qhkmmgdk,3319 -faker/providers/automotive/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/es_AR/__init__.py,sha256=n9pIsp32_UF_8tcyikJCK9loDKbGmZgLMW2OxhODk7o,2385 -faker/providers/automotive/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/es_CL/__init__.py,sha256=BCrQCz9_H5PEsqsosNI-ygWm_pcq5WQ3WWorGI0_fHE,1965 -faker/providers/automotive/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/es_CO/__init__.py,sha256=TApDlBiGxFPasAUtChgTHR1lFMBqKBcRcF8u1W-XuHU,359 -faker/providers/automotive/es_CO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/es_ES/__init__.py,sha256=SsdM0PddoV8tFEod5r1MuIxAfu9ZJkjwRFkNXlaODY4,3915 -faker/providers/automotive/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/et_EE/__init__.py,sha256=rmhea7MB99a6z21sss5TJbpaiSDdqUdPeusTR2nJuIU,276 -faker/providers/automotive/et_EE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/fi_FI/__init__.py,sha256=DLapdfjW1rXCfxbWq8YAxXV7X4oysxGbqiz3l3z_q5w,276 -faker/providers/automotive/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/fil_PH/__init__.py,sha256=6LBWn74jiG4aNiwPIj6NCPcU40NizkM_PYZkxH0_0rc,238 -faker/providers/automotive/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/fr_DZ/__init__.py,sha256=PTNvN-Ct9FTj8azxwDhaNwcViaKDxX3o6urqrnfcf4c,106 -faker/providers/automotive/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/fr_FR/__init__.py,sha256=ahuZA_1P51v70KLQToGowTfRzJAB3ErXOxBO508AklY,374 -faker/providers/automotive/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/he_IL/__init__.py,sha256=WgeTTWF3X7H5iQqq-zkC0bFbWmCzeKAPjRmwCaYMaXQ,321 -faker/providers/automotive/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/hu_HU/__init__.py,sha256=ZTFx_kboj39ldV4YghoWGTKn6n39EkZL9kG-kE2yXu8,277 -faker/providers/automotive/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/id_ID/__init__.py,sha256=DjLdAnKW5fqfN9hz0HVnFNLjrEMj_C6l1mmAA1lMgcI,349 -faker/providers/automotive/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/it_IT/__init__.py,sha256=4xOHKjiqxrPvZ-9nXXj_AnJOMh6DF2fqngwIsdCIi14,312 -faker/providers/automotive/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ja_JP/__init__.py,sha256=ZOoB1Tau6YjGC2cYeHf3VmPwgl6Tx6Z-DZwPPwBkR8c,2867 -faker/providers/automotive/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ko_KR/__init__.py,sha256=P-wAQhDXPQPUyPZ_f1KzGnDPG2LchT0w8836yt5Q2TM,944 -faker/providers/automotive/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/lt_LT/__init__.py,sha256=5BIZethC4BCQglEXuCFmVx00k4LEBwtnTbfexZ9OKRA,278 -faker/providers/automotive/lt_LT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/nl_BE/__init__.py,sha256=VRUXBk_xDmW7flYE1AeOQsWROo9h1i5imtnuFJO3Xqg,372 -faker/providers/automotive/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/nl_NL/__init__.py,sha256=Lh75VW8Mk615jrBLWjFrXIAHcfpdYnvj30Lmo44LICk,2533 -faker/providers/automotive/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/no_NO/__init__.py,sha256=AEeuKSN_kW6KwJq62vB6NNZVanTFTHW35UA4g2aOWhc,316 -faker/providers/automotive/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/pl_PL/__init__.py,sha256=vdooUZ93xy4tpDATFKw44dlRmehCCumg0MmWXt2fw7g,1007 -faker/providers/automotive/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/pt_BR/__init__.py,sha256=yh_Uo2ofIfzGmAAF6XnLCdhdimXnS-9mKqmM-dHMCyg,183 -faker/providers/automotive/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/pt_PT/__init__.py,sha256=Zbc5O4yx2n9v0aN8EBRFu80ud94tQvMx7CiFXCG86d8,391 -faker/providers/automotive/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ro_RO/__init__.py,sha256=wBp6H5YfUjIHLI2zZeAexfPLg2JbaK2LMYtvqSazVtI,1181 -faker/providers/automotive/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/ru_RU/__init__.py,sha256=Firj5uwhawFDhmj7ik2qgR0c0_EC-E1o18q6ay9KqiE,7827 -faker/providers/automotive/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/sk_SK/__init__.py,sha256=sUeJ8Ev3rsFgzjj_gJuFv_2gzQa60n484b3EVL1-61Q,2641 -faker/providers/automotive/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/sq_AL/__init__.py,sha256=2Tej6p6i1-OIB45uSohiGC7-Ky1yaEgBn2yaQ3Y4lzg,277 -faker/providers/automotive/sq_AL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/sv_SE/__init__.py,sha256=V3Sj71ponoYTOXtM1thv6e_Zg4QjhlmtVUYI7H9Tsck,428 -faker/providers/automotive/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/th_TH/__init__.py,sha256=iy5Xymqb02ore2hDwpxkx5PewDDAi98JNYrcNqlscl8,948 -faker/providers/automotive/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/tl_PH/__init__.py,sha256=V-UfvbMzKpy3fC6gf6ZwWpbE2cADlsUjt9Pv1_ic2BA,237 -faker/providers/automotive/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/tr_TR/__init__.py,sha256=uuUZk-y_D8EYjRQYBkRMnQQgHlaNRiSGmbY27igahRw,868 -faker/providers/automotive/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/uk_UA/__init__.py,sha256=fygVigwYzxCUrZ-QVRdIBHpWlWeK6JwMbKwc8lJovcU,7286 -faker/providers/automotive/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/vi_VN/__init__.py,sha256=3fLN8pV8sn6-hkdtQxlLPYIN4CjAYPe2WR7Udaxe1k4,643 -faker/providers/automotive/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/zh_CN/__init__.py,sha256=_D_7JatNF2Cp4tekRv8sR3JH6gff2vTBb9sgKkKBEZM,966 -faker/providers/automotive/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/automotive/zh_TW/__init__.py,sha256=mwYvbc9X0XDU5vhfddRk0V0ZfZTdxfFlw__L5Pm7PL4,421 -faker/providers/automotive/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/__init__.py,sha256=kHGGC_vJhPyHHRZAxUQ-ReQbN_tNmE2UuYckCfvocWQ,6547 -faker/providers/bank/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/az_AZ/__init__.py,sha256=0ai3ei0DfLWyrMRgUE01t_ZTKNdRBHG2hp1K9pPKyh8,851 -faker/providers/bank/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/bn_BD/__init__.py,sha256=5lQcloufMBTfSbH4k8gLtuz29fTOu2gFmE3gXHL77b0,1831 -faker/providers/bank/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/cs_CZ/__init__.py,sha256=uKxJaluEfv0aJkNpBj6TMfGVFzHJc5Kd01oMt9xZdTQ,278 -faker/providers/bank/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/da_DK/__init__.py,sha256=Cn-vRxcEoY6_48YyLCDkr_W0j_IhI5ahT7oAEl9Lk_0,190 -faker/providers/bank/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/de_AT/__init__.py,sha256=DkZxopZLhkJET5Nx-qMW4-oBz9x8yf5EICMtOkiH264,190 -faker/providers/bank/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/de_CH/__init__.py,sha256=SRm4bFi5SegO7duMHSP8XSWSVdLu2cPxs_Stxc0s7oA,623 -faker/providers/bank/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/de_DE/__init__.py,sha256=DafW4SSvPywdjkvr5PENjdyTC6jNJpE8WH7-qiUFMSk,611 -faker/providers/bank/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/el_GR/__init__.py,sha256=KCAxndhBrQ-v02NmhFyjRBCNSdSg8OPn2YHPzmF1hz8,899 -faker/providers/bank/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/en_GB/__init__.py,sha256=eMa1JkjoMSmXzR01bjhlIztZy7anT3sZq9vgGxbNfkk,192 -faker/providers/bank/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/en_IE/__init__.py,sha256=tCxqA11nlfEEe5MHlXXSSdO5HZsZUPUaKPYrYdQPQog,197 -faker/providers/bank/en_IE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/en_IN/__init__.py,sha256=IcqxtDWQteVleHI0TfL7fDM6kg49GiOFZZKb9PSjypc,1194 -faker/providers/bank/en_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/en_PH/__init__.py,sha256=j21k6onGOdOuhQTClEPse7MtYgyQiaHG_6VgQVe_Az8,2690 -faker/providers/bank/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/es_AR/__init__.py,sha256=p9_KvWhLi_jREpT_-IA4KRtr0WSKl_2j3cMsed9WHYI,1002 -faker/providers/bank/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/es_ES/__init__.py,sha256=5s0Wfqy3nF6sIP3NWCKpAyjcUuD9Ge5YgBsPVKbDZwA,194 -faker/providers/bank/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/es_MX/__init__.py,sha256=FGLTVSWUJXj75uBMrpDJJFoIfHBOWH_cEYP1nujPYXU,7830 -faker/providers/bank/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/fa_IR/__init__.py,sha256=nvPI-nkIMAudoz0kCmHrY1vWKoBDkZU158TgZh1p06E,1700 -faker/providers/bank/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/fi_FI/__init__.py,sha256=ARB5AC5mNQWVPKEjE1O2ogDiznqGcMXA4JaUcBrCGVg,188 -faker/providers/bank/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/fil_PH/__init__.py,sha256=jL38JArsznUIiT7yjm3exYbzVr5XpT-Pb1cIOBOu8Rs,220 -faker/providers/bank/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/fr_CH/__init__.py,sha256=GZdZnwswJgaZ4pQeqp3Wgt2baFysSwhORqV9kMb8FXY,219 -faker/providers/bank/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/fr_FR/__init__.py,sha256=bV3YpZVL6Q-9v5CQDk9QxE1ycTne8lG4RKqZpTW8_xQ,197 -faker/providers/bank/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/it_CH/__init__.py,sha256=VN9zfcAdGXO6yUVahVs1ngUnoNGjGX1GRtde1EV7wlE,219 -faker/providers/bank/it_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/it_IT/__init__.py,sha256=UkyLHp9pNCFMZxhCpaYtUjKAK8p1FMcM-wsGxwam8qQ,197 -faker/providers/bank/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/nl_BE/__init__.py,sha256=ptQRg1LU0DunPNu-vNkdk4odB8vNCGFAh5zLuFEWtwo,2443 -faker/providers/bank/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/nl_NL/__init__.py,sha256=E2WuR7_ukH0BHWwEiwEwsb0HjqBgEoWs85xbahFQLWs,188 -faker/providers/bank/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/no_NO/__init__.py,sha256=8vuUWSHL0HtL1XiaVUk9zRWTfBclu8tRpuj1kz--OZk,185 -faker/providers/bank/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/pl_PL/__init__.py,sha256=OC4m6gevUZtwLKWS16zpz19IDcDdDamEFAYkPFai0Wk,180 -faker/providers/bank/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/pt_PT/__init__.py,sha256=1s28h9Ry_DRAkHLlks51JgnuydcbphX2CYUGg3WqrLE,195 -faker/providers/bank/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/ro_RO/__init__.py,sha256=XUdb4-_DS8j25fjCtVlJ3Ee1pMro3q4hgboGmt4YTrM,883 -faker/providers/bank/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/ru_RU/__init__.py,sha256=YPLcIqs1d4qN4EB884_epS9ciKrR2V6v4EVYAHRHTvU,21715 -faker/providers/bank/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/sk_SK/__init__.py,sha256=EllC_qC_8QJJaWXmvr0cFEpsP9y28h9tfUEHveL-4pg,278 -faker/providers/bank/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/th_TH/__init__.py,sha256=n-hAR_AbCwQTo3laH8TwAe2lWmSsT79gDYc0HatNV3k,1059 -faker/providers/bank/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/tl_PH/__init__.py,sha256=9uJTBUjRZ2qwMsCKC4yicrPRAOxF3p_3rdKzIVNCUNs,219 -faker/providers/bank/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/tr_TR/__init__.py,sha256=IryjWWhyYj2UxBZ4uE66OMN0SOPt6JlkgUri43fQJUw,196 -faker/providers/bank/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/uk_UA/__init__.py,sha256=vCK0EYZ9j-EcCjLyhsOsZZOv81_bINW_UpA1EcNn3pc,2834 -faker/providers/bank/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/bank/zh_CN/__init__.py,sha256=1pMTL0s4mAm5PWYKyS6Le3BquWfBDAZN6e7rsvghEcw,860 -faker/providers/bank/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/barcode/__init__.py,sha256=f05YFJ9f4HwkcS8DtePRNYdymtZXPJQPRaFaQsiYOBM,4001 -faker/providers/barcode/__pycache__/__init__.cpython-312.pyc,, -faker/providers/barcode/en_CA/__init__.py,sha256=erVdFjJHtGO8PindGu4tMp3gDFxAynHNXo3EpkGNBnc,664 -faker/providers/barcode/en_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/barcode/en_US/__init__.py,sha256=Pm1GLMKpsczLWMmFcGdvx9bXmnomb0hOOjEAhXCu6Js,11356 -faker/providers/barcode/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/barcode/es_ES/__init__.py,sha256=yFPm-ibaihF3INNd2vBY-Dty2opiD68YLxDiYwwAwMc,244 -faker/providers/barcode/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/barcode/fr_CA/__init__.py,sha256=b3TOrqO5VFLkbL7n1KCKLiGSlNSIvssl2opJ14uurww,217 -faker/providers/barcode/fr_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/barcode/ja_JP/__init__.py,sha256=cWO4SzSwY22xPjNa6IucoYbkYL3U_u-WZTSLRz6m_S8,1476 -faker/providers/barcode/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/__init__.py,sha256=TA9MJa-LbQ2u1jgF5mkpjCCK9Sh-cFw7C-30IBTQHnQ,11112 -faker/providers/color/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/__pycache__/color.cpython-312.pyc,, -faker/providers/color/ar_PS/__init__.py,sha256=WXKqwIAiBVE6ZolTwuTi36ANQWzX_FHzhWyNKQil828,7143 -faker/providers/color/ar_PS/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/az_AZ/__init__.py,sha256=QT6B7sv_w6RNL9tWelU4J4J8ZP59Hub0D9yP0PJj4I8,2134 -faker/providers/color/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/bg_BG/__init__.py,sha256=N8FGk5VdUwFAoBOgNVexKJ-wBrK16LqGuaodF1IjBLo,3337 -faker/providers/color/bg_BG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/bn_BD/__init__.py,sha256=J1xnkLbJU_UI8ZRxlIL-u1sZldtmVRwgOCtwJUQ1ExE,9083 -faker/providers/color/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/color.py,sha256=lSJSmGw5MKNTu7Az-Mh4-4AWLGIkCM_W0L8kxGEXzAE,11792 -faker/providers/color/cs_CZ/__init__.py,sha256=c-8AVmYSV7M29aXletF0RFNNFhLm8qv1nf8lo4_Pepk,473 -faker/providers/color/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/da_DK/__init__.py,sha256=InG9KTOnHPfVnJzvWgN-H6YIt-__87ozzMW_79Utvdo,12725 -faker/providers/color/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/de/__init__.py,sha256=y2_uKjz0zE97RoytkEVbWqYarM2Y0er_bI1PSCZ2c2U,5911 -faker/providers/color/de/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/de_AT/__init__.py,sha256=Fj3Uik-7u7A6Ivs1ZblyZodVnvl0_RX5442RF-yhejY,83 -faker/providers/color/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/de_CH/__init__.py,sha256=3cyS0B_6fz65ZvS6L7dJXRuBl5lCY3rQ-RjGVOek-uo,337 -faker/providers/color/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/de_DE/__init__.py,sha256=Fj3Uik-7u7A6Ivs1ZblyZodVnvl0_RX5442RF-yhejY,83 -faker/providers/color/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/el_GR/__init__.py,sha256=Dme1-CDdLB6IfMAzYDKNkC3E7Xu6WgMETB1uUHlP35s,4247 -faker/providers/color/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/en_US/__init__.py,sha256=y1eCtGx6f7L22LkQD9c8UGReEDfpg3EeRXGx6ZrDdeY,141 -faker/providers/color/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/es/__init__.py,sha256=KI_tmNHBUTsS3R4iCzvVN3ASJoi-eBf-tbsWasrZvn4,6199 -faker/providers/color/es/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/es_CL/__init__.py,sha256=3_4HsuiFHDOY5W5oguzCxV8Qz_V6WsV2v8T1q9j4Kdk,103 -faker/providers/color/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/es_ES/__init__.py,sha256=3_4HsuiFHDOY5W5oguzCxV8Qz_V6WsV2v8T1q9j4Kdk,103 -faker/providers/color/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/fa_IR/__init__.py,sha256=1M1PGfsBQmzML6kM5ZRaXJUhclqzvPO7dJG3rjHnXgw,7079 -faker/providers/color/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/fr_FR/__init__.py,sha256=DwC9MaUXNPR43iEQ7NZCiOREhKV1ddofA58yeo9DGmg,6038 -faker/providers/color/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/he_IL/__init__.py,sha256=LeQIeVUJmGOaqFBWXhG_mg1dtrXoczzpxlZ_aw_vKCU,1729 -faker/providers/color/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/hr_HR/__init__.py,sha256=ILoGJu8zI0cVtKB4uVQYLzQh4gbqCRseLo003zX6R_U,6323 -faker/providers/color/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/hu_HU/__init__.py,sha256=wzYIJZwJGAuEmEiizPJLpfpdZTcaGMmA_T8Lw_hU_Gg,444 -faker/providers/color/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/hy_AM/__init__.py,sha256=8yHpVmgXtLsi-uWMlDxKpdkGhix_vcJOlTpZ2vW67HA,8297 -faker/providers/color/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/id_ID/__init__.py,sha256=XYsRfKRPAt7KJltDnt2tymweWurxlbhA9b_qjGOVVvA,1497 -faker/providers/color/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/ka_GE/__init__.py,sha256=Js-b4RKO5zKvt5frMPHIWAlmvEwr9YINBZvToPle2OY,4591 -faker/providers/color/ka_GE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/pt_BR/__init__.py,sha256=9FldahHf-5tJukZZDQyj2pLBlzlADS4bKXuimvsS3og,9674 -faker/providers/color/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/ru_RU/__init__.py,sha256=rHEWrwQKxtHXsUlzZPC64OEV9K91An9m8XCQDI_t9gA,3402 -faker/providers/color/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/sk_SK/__init__.py,sha256=eQgcZ0Q0LnKtgu2kmlTko8Q0TgHNhoREV-CcNswAtyQ,469 -faker/providers/color/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/th_TH/__init__.py,sha256=JamKbNLRCvflxeRM9GolpJh8oRDHr-RPFKUuOGq37DQ,1660 -faker/providers/color/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/uk_UA/__init__.py,sha256=_tt8ylj80cBkKG32jjpyq3QdgDwprqPkpfgARbUxW90,11365 -faker/providers/color/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/uz_UZ/__init__.py,sha256=cY_Ldl65-4KHLavbDXBbLwAC3ddV8RbKlZ6tP60RlFI,1942 -faker/providers/color/uz_UZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/color/vi_VN/__init__.py,sha256=UMfFRU7TUIRQmtDD9ofjtZsKUmsJPI3neQ8robMifR8,2856 -faker/providers/color/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/__init__.py,sha256=iXxsseYVhNLydh_oWbxbVNRsDqLYg17BjsbynblLU8o,13671 -faker/providers/company/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/ar_DZ/__init__.py,sha256=L3Du1LcgAheMoxZDefuR7PBX1oSBL_nTHqaGVR1SJ5g,2123 -faker/providers/company/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/az_AZ/__init__.py,sha256=WzsWWaygejusXA9KbHPqVTpzHuCHfyXWGBI7jCSBCQc,1281 -faker/providers/company/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/bg_BG/__init__.py,sha256=ci4eH0jgygf5fm6wu4Uo73jIezlLCJczm6DKn_NJCC8,552 -faker/providers/company/bg_BG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/bn_BD/__init__.py,sha256=et28OebIYjXEO5sd0KHyaOz-BQAPz7TsyZsdoMO0MNA,30242 -faker/providers/company/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/cs_CZ/__init__.py,sha256=BYHBFwrAn0Dh8f-QwyOlNZZCmNLWKc_61UpR04R9CAU,441 -faker/providers/company/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/da_DK/__init__.py,sha256=LOTHenSq7saJIpZEWn1Ajs0q1qEtQHoxU8IU4o5_WWA,317 -faker/providers/company/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/de_AT/__init__.py,sha256=HgP4Br8hjQtCpzmpYipkR33w7aT1adrWKHBXnvASynI,556 -faker/providers/company/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/de_CH/__init__.py,sha256=BqR1GdT1jpEUtSsgQ5W5oQz2WRVc2w4fYpbGAvkWL64,473 -faker/providers/company/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/de_DE/__init__.py,sha256=KZ0ZLA8f2O6O351EArd_JBWsyZJxpsP1-dbLVTsHTa8,753 -faker/providers/company/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/el_GR/__init__.py,sha256=WKAb0hIZr_pvTp1R_SlL6pRSrkmP1emmIIQ2we73M6I,423 -faker/providers/company/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/en_PH/__init__.py,sha256=9gu3Sm7awlo7dNmswv_1jLEJWIk3YTrY00mhZToIFDs,3694 -faker/providers/company/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/en_US/__init__.py,sha256=8iajs1xeJO31A4EIkZifNcDFyg9MbwBvnA6SWeY9Ioc,87 -faker/providers/company/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/es_CL/__init__.py,sha256=gnZag_GpMCeDfhM3RZrweTLJi9TEM-as_1Bpsqs-JBw,11630 -faker/providers/company/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/es_ES/__init__.py,sha256=tsAHJ8ytx3faQX-pd29FYRB-SPp98hTsREHZTDzGwrk,3469 -faker/providers/company/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/es_MX/__init__.py,sha256=DSN49wz33COso-nXYjy0eR4vLlRuq-EP6FZ636h7FSk,11497 -faker/providers/company/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/fa_IR/__init__.py,sha256=9lCrhcHZSANKnzyR4tuuAAcdlPlCJHAiP7mYvrqrBxY,49815 -faker/providers/company/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/fi_FI/__init__.py,sha256=MqAMX5DoIzw-fY7lWT2-B0XvAkEETqXAHZvegRNm5uM,2067 -faker/providers/company/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/fil_PH/__init__.py,sha256=N1ZROkDmaRqTRjVIDaOyXNtHIfL6Qe8cBo5PTytnSuk,2750 -faker/providers/company/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/fr_CH/__init__.py,sha256=s6ZvVXct0BGrg01W1WyYgLP0-4M6krJ98ORYddX6NRA,1313 -faker/providers/company/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/fr_DZ/__init__.py,sha256=ROEze0NVEJwAfq_-NnE21LzaKIA0_l3uICJDMJOs-Yw,2156 -faker/providers/company/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/fr_FR/__init__.py,sha256=KhQBmb7ja5W4VmvV7JnrGh-1lwnWDD873liVtCubTmg,23581 -faker/providers/company/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/hr_HR/__init__.py,sha256=r6ISf02XRoqAzJUSbhyuLwYqzYag80Yhc22si3B7Zug,313 -faker/providers/company/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/hu_HU/__init__.py,sha256=cpFAvPErWL_xfr_XEySrsCDxUx27ZWdM_qFqu5HMAD8,488 -faker/providers/company/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/hy_AM/__init__.py,sha256=tLL6BpCusHM9Aed5L8pSnTv_jR-DMZljhLkJMu2D6ck,9890 -faker/providers/company/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/id_ID/__init__.py,sha256=QwAqM5itG2IGO8mW_fpiZtU3Z0z17jgSOfvjfEfrxtw,933 -faker/providers/company/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/it_IT/__init__.py,sha256=GH0SZFEWtYTYZnvbh9hCMwV1V5RWNI3OPoeghCtr6KA,9716 -faker/providers/company/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/ja_JP/__init__.py,sha256=SsVIVo1zPSyWTf8gjJZLXHkJ9tSjHuLvxf6NhTBc7s4,762 -faker/providers/company/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/ko_KR/__init__.py,sha256=CY-ifTaJys2clOIqp9IfAo6ACqFWrhs0yRrtx6DojR4,11650 -faker/providers/company/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/nl_BE/__init__.py,sha256=8Q7Uu5BfCs86O2vc1QBAbLEEAWMtkwkG-_mcOnCR114,336 -faker/providers/company/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/nl_NL/__init__.py,sha256=HsZPxJEieU4PbCSfyYMc5J4MxPTvSUIBFQg-tPZ4fZQ,11853 -faker/providers/company/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/no_NO/__init__.py,sha256=WUTr2LIwaNzxFWpfe8RMrB5W-OSK-kSoaKDpNyG9J5U,534 -faker/providers/company/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/pl_PL/__init__.py,sha256=b47P2tlF_r3jX68KevtdlA3YmmA9eatoZ5UVvh9Yh-8,3911 -faker/providers/company/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/pt_BR/__init__.py,sha256=0uDZMB_yfmb1rNWqz5ogNifNbKvg8pWJlhYBTo0s8S8,2973 -faker/providers/company/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/pt_PT/__init__.py,sha256=GjPDmeSDgRwQ64FUU_iQ1dmzJyUpfeT6Ch6h6gIos_A,1198 -faker/providers/company/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/ro_RO/__init__.py,sha256=GQj6htJb_7_XHrQzmgOTXfuOTJZd0NVto9CH2LGnSUw,687 -faker/providers/company/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/ru_RU/__init__.py,sha256=jOt7XKG4baUbDbNsj6qIl4IlY0j7GlM4GLMPDDDTw2I,45516 -faker/providers/company/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/sk_SK/__init__.py,sha256=5zkJHh6tZUyutMiLXMoM5F9zI0mpBJ2o7fn5yq-g_EQ,327 -faker/providers/company/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/sl_SI/__init__.py,sha256=iw63b_ao5ectil-gJxk1s4Gt-CkNnxG69tg4iVvhE44,255 -faker/providers/company/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/sv_SE/__init__.py,sha256=lWvKROauIIHVQPZapk2tVbeXZAZ0QKyc0oKCBRmIa_g,322 -faker/providers/company/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/th_TH/__init__.py,sha256=fKUVsseG_0neoz0s1SXZBeM4KxGzinUcUjVNHLRKrk8,4173 -faker/providers/company/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/tl_PH/__init__.py,sha256=HDkU8zEC6SQ0gTPHk8flWygcQMr0gKGrbGUCHp9Tocg,154 -faker/providers/company/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/tr_TR/__init__.py,sha256=ghec8zgjAMFPUPKBAIQ0VIGY8GDwyPb4xoEvKNQNGls,3430 -faker/providers/company/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/vi_VN/__init__.py,sha256=JKi-qv5m3Pg4FZSRDmCirMLoJ8oXTOa78HO4ymSN0v0,765 -faker/providers/company/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/zh_CN/__init__.py,sha256=Jox2uuzDjowxqO9MX7JFDP5icPqp6qnCza2n2xgQvTo,2164 -faker/providers/company/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/company/zh_TW/__init__.py,sha256=5CSx0-bmlTcvR9RHN3cmorH99ji5oA76EM-XOd6AsoY,3054 -faker/providers/company/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/__init__.py,sha256=K2I-oNelv1ui6qtfLPdRmntgMvZ3wjJF7T6f2KHGH9k,6740 -faker/providers/credit_card/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/en_US/__init__.py,sha256=FXWtulWlWrlsWdYCtEugki5iRjbPP2O7Kgd7X-xFsbY,157 -faker/providers/credit_card/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/fa_IR/__init__.py,sha256=Riz5XMluVrxwdUpAPijWxlfvLVfR6f5xmlfklN5nq_Q,5201 -faker/providers/credit_card/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/pt_PT/__init__.py,sha256=lmA0qwvM1FbWpG_x_gwfre4uvfWb0wVHcbc121OSgKY,5682 -faker/providers/credit_card/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/ru_RU/__init__.py,sha256=nh2wkhsVgCR_U_kw6pN3QsSCEuRwW1blHrVasWqctbo,3177 -faker/providers/credit_card/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/uk_UA/__init__.py,sha256=HlNRX7RxwndyKvBVRYAKIFIgqPDw7jpFyW4m3O1p_1U,2117 -faker/providers/credit_card/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/credit_card/zh_CN/__init__.py,sha256=ps643vMuSZvdFjFvF2h8hLT_dIoEyYy0UtSxa87ESDk,1481 -faker/providers/credit_card/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/__init__.py,sha256=VY7pFD_zLQioy95Q_jjSz242Yt6ggeG2kA7_z6gZAYA,12829 -faker/providers/currency/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/ar_DZ/__init__.py,sha256=FsX8WmosTnPyx7BpN1DSDlcApySoEWBGPij4QvQXY8U,350 -faker/providers/currency/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/az_AZ/__init__.py,sha256=6u_oGstZ3t9y8f3zJ1TbZS1ymZq5O3sjVF_TAvMWHC4,6635 -faker/providers/currency/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/bn_BD/__init__.py,sha256=_6iD5g_9CRRczvEhAPxdKd5cgqEBW1t799Ad_f6GUNs,13781 -faker/providers/currency/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/cs_CZ/__init__.py,sha256=NAg3vl7sjjbzuqc79TG8c8jFcLraCJSUlYhJiliNog4,281 -faker/providers/currency/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/da_DK/__init__.py,sha256=GRcoW3ei7riNavee21WcMY53fD3P6cVJI0Jw8WuS2vw,257 -faker/providers/currency/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/de/__init__.py,sha256=lS85cQ_5SaTpjMwVMs-RQrp9vZDswtxfx4k5RT_hI98,6487 -faker/providers/currency/de/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/de_AT/__init__.py,sha256=qAayEKuDNSml_486fEyRYN2B9CxgBwzPWn10PS6s8kI,293 -faker/providers/currency/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/de_CH/__init__.py,sha256=dn3Z8k2QTgvtqytmeif2rHDkRhZsw8lCJeR6enprv8o,388 -faker/providers/currency/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/de_DE/__init__.py,sha256=38rHWMdJgT-6s8GDcOqmiI9OKMLacglCBEDRphbRvjw,286 -faker/providers/currency/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/el_GR/__init__.py,sha256=SFYMppphJGlQQtqfs6loqNTdFSfwu-tEwU8vJNQszgk,7622 -faker/providers/currency/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/en_AU/__init__.py,sha256=zXE-0gbMfKt_qkNdzmFsxsHWqBuRzmvtDl6CJ_67ouE,279 -faker/providers/currency/en_AU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/en_CA/__init__.py,sha256=6uy1HfJC_ymWOPBLqLLZl2qIvkUjl2JBND58RhQCVQY,272 -faker/providers/currency/en_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/en_US/__init__.py,sha256=nFcnjtAfq_3Nsko7cicJ8HiktSqo0hLOj4oVM0zv9Kk,261 -faker/providers/currency/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/es/__init__.py,sha256=2sfABTGGXzDtd4oa7cYZf-4yvtLOsNZkrQKhM_lTri0,6081 -faker/providers/currency/es/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/es_AR/__init__.py,sha256=OZpLLjvnUNpcB49RZrslsPDGp5ANly4sFPzdYv5d8YY,281 -faker/providers/currency/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/es_CL/__init__.py,sha256=gD_mSMb5EeOAIRx5Qk2B_782EW2WMGoliyeU6W0a2uo,304 -faker/providers/currency/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/es_ES/__init__.py,sha256=KiXwgmg2uYhAzXeZ8YuXWB5OuFXYTxadoeJE1DyuV1s,293 -faker/providers/currency/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/fa_IR/__init__.py,sha256=gQvrUg1jxLYX9jgCr5VNxzZdPUE4WR9c6-I9M7Agb98,292 -faker/providers/currency/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/fr_CA/__init__.py,sha256=pWn-E0fLVmRW_s-Rq_MP_BYiON7RMxQLqIZuNsWq4sY,279 -faker/providers/currency/fr_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/fr_DZ/__init__.py,sha256=uJIzpZDvopdmYegYvCzFhVHeLX2cXUDo9nSHh_festM,344 -faker/providers/currency/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/fr_FR/__init__.py,sha256=BORQRWKUqIwinx0syv9gsZ9Kkim2HhRWxaT3yl-qELk,284 -faker/providers/currency/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/it_IT/__init__.py,sha256=BORQRWKUqIwinx0syv9gsZ9Kkim2HhRWxaT3yl-qELk,284 -faker/providers/currency/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/ng_NG/__init__.py,sha256=ehQnZc5SFnBG687FZXzJ3-mRbXQ0uuwyjDrD0clGKAo,284 -faker/providers/currency/ng_NG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/nl_NL/__init__.py,sha256=RQb3H_n6LwoFbYGpBZxNncaI4LaZkqFmRbwAaOVFdBE,295 -faker/providers/currency/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/pl_PL/__init__.py,sha256=e-WooRT4BFVmFaIuqXI7CgccdXEtKSXxOAXcUtVzF4I,281 -faker/providers/currency/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/pt_BR/__init__.py,sha256=QMPCjxJ0AitF8eq4gzuUtwE6fdmNcvDMoUeazUY1Mlo,262 -faker/providers/currency/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/ro_RO/__init__.py,sha256=nz-yfcaRANHN_qGJ9hcYTcBOwugGKVmuTx4Wvwg_KDc,281 -faker/providers/currency/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/ru_RU/__init__.py,sha256=4iBVKnTTeIC23Y_jJplkuerzJpJZhQCIFNk_MCor9nM,8246 -faker/providers/currency/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/sk_SK/__init__.py,sha256=BORQRWKUqIwinx0syv9gsZ9Kkim2HhRWxaT3yl-qELk,284 -faker/providers/currency/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/sv_SE/__init__.py,sha256=vg9F4IMCGU95laSZGWzyxO5Tx5drubOjxFxjWnNwaRs,5844 -faker/providers/currency/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/th_TH/__init__.py,sha256=pnb7pwvGHTZ_oW1aQO0d8EREwYRuvtrQgA62-TJkluw,10596 -faker/providers/currency/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/tr_TR/__init__.py,sha256=ghzNicez5muamsOmGz5P84dTjUQo75AhFb3XBoyKUJc,264 -faker/providers/currency/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/uk_UA/__init__.py,sha256=YwOtdG9wofiA1FH4zj2FipHqJh6Hh5gW3ay3F7ryaN0,9416 -faker/providers/currency/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/uz_UZ/__init__.py,sha256=phZyPygqSHCaotGbv0tmqgUw0Pyk-UM60TWopHcDKmI,5894 -faker/providers/currency/uz_UZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/currency/vi_VN/__init__.py,sha256=Gi5kD45wyRU9z--BJ9rzMSj2Htkim92VO3o1nFWW5h0,433 -faker/providers/currency/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/__init__.py,sha256=CDU-56OS9t8zh1-ZjvnoM3JTDCeF5pQh8TQI3i5Ya7s,83591 -faker/providers/date_time/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ar_AA/__init__.py,sha256=WSXgTmWdWVaaViuf__gDTGTyO8Dob5ZR4m-eNWjZ7zc,59445 -faker/providers/date_time/ar_AA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ar_DZ/__init__.py,sha256=j8XqPAL-Odp6WIzou27R1NkgiVE-jk2cebR-t5y7FQo,525 -faker/providers/date_time/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ar_EG/__init__.py,sha256=FJexLchCVyc2vXZTn3L5jtmMACSRVzhgcZD_phM5VTI,465 -faker/providers/date_time/ar_EG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/az_AZ/__init__.py,sha256=AmAeTXwhcjUoTOcDieq3paLdSt8iM2FpOH5YZtPcxcc,803 -faker/providers/date_time/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/bn_BD/__init__.py,sha256=rY9w05ZXFymZ-UWBAeCJvkGi0fI4eu4SHhGZ-V4FzgE,70951 -faker/providers/date_time/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/cs_CZ/__init__.py,sha256=KeHYX3xJ_1rNYxQZw0GS9NCCEPIuGMXwfMRwDJ-adxM,784 -faker/providers/date_time/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/da_DK/__init__.py,sha256=s27sDoJVJv8Z3z7YlGr7mzwhFkLJo9_YlNELsObrXzQ,773 -faker/providers/date_time/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/de_AT/__init__.py,sha256=NtjN70O6xX6jR4YcA1UPNKSSzNc3vgMlHAtQRecEubM,780 -faker/providers/date_time/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/de_DE/__init__.py,sha256=jVo-7bIDmu2L-qoqn9urwmy_rqrwerg18rI9Mcwwtjg,779 -faker/providers/date_time/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/el_GR/__init__.py,sha256=RcEQm7UHFBtgGBfFEjBIKWE3rKYjDVH84qPM3GYxePc,956 -faker/providers/date_time/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/en_PH/__init__.py,sha256=3x1DLhizbJsjJEliOABsZ5RVdbANBY6ODeZxzFIzLME,144 -faker/providers/date_time/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/en_US/__init__.py,sha256=NGaWjgCkr-Ae3_DkERfa4tWtJipCiySJXcyE3nBfBcg,89 -faker/providers/date_time/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/es/__init__.py,sha256=0Jdfn_m9ZGZgwsVIttOvWsZ71mBTuoEDrQZxRQuUCPU,779 -faker/providers/date_time/es/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/es_AR/__init__.py,sha256=2OZ8pheot7Iuk3zMoCcorO1QN7X9ibTjWPw0EVhlRG0,91 -faker/providers/date_time/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/es_CL/__init__.py,sha256=2OZ8pheot7Iuk3zMoCcorO1QN7X9ibTjWPw0EVhlRG0,91 -faker/providers/date_time/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/es_ES/__init__.py,sha256=2OZ8pheot7Iuk3zMoCcorO1QN7X9ibTjWPw0EVhlRG0,91 -faker/providers/date_time/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/fil_PH/__init__.py,sha256=rACylLm3Bh_8Np2MQkkPRVtkmZ7G7-uZSx3NT23tgLE,829 -faker/providers/date_time/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/fr_CA/__init__.py,sha256=WaGDKJOi2Kl9IuNV2QgYZKTd0gHZxmzit7YxQv2FQ_Q,202 -faker/providers/date_time/fr_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/fr_DZ/__init__.py,sha256=m-ajiFjdGmtl4soR28gZIqYs_op8x49vPk52F5Zlxlw,88 -faker/providers/date_time/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/fr_FR/__init__.py,sha256=F7aEopTRf63evS5ffH7EgjOwzJS_t3HGyHGkSnbP7N4,788 -faker/providers/date_time/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/gu_IN/__init__.py,sha256=XZL2-aZP-WOkBTl1Fuwq3dGbi-XIvq_cxaIfHOW568s,1959 -faker/providers/date_time/gu_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/hi_IN/__init__.py,sha256=nA28FPNJh2mCMYBKScge5RV327elj0mRxVeIkuW66pg,1065 -faker/providers/date_time/hi_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/hr_HR/__init__.py,sha256=tZ2QgF2fTRMdSpm6TxnoggYPKzf-Kn7GfWdoouuXC5I,885 -faker/providers/date_time/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/hu_HU/__init__.py,sha256=lpcm1K62j6Yf_3WtzgYf0PpPfy1pxQlxTthbMdIXTSo,894 -faker/providers/date_time/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/hy_AM/__init__.py,sha256=ZM7e8RDIa0CNrS9hoBkfCbObrPpFnKQlrIWIeUEi4jg,928 -faker/providers/date_time/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/id_ID/__init__.py,sha256=ctNNZLNtOORLBVG1OwPEmwqjhXrPDcD-3inYa0GDzPk,861 -faker/providers/date_time/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/it_IT/__init__.py,sha256=_u4qifuTEZWcRMjUml0aFalz6TRiyt8QOGeayXvExSU,791 -faker/providers/date_time/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ja_JP/__init__.py,sha256=GDo1NzA7miIX3kiZGrPWnPVtREfpDWCemPt6tVaymA4,1267 -faker/providers/date_time/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ka_GE/__init__.py,sha256=N_XfPvQLYZpt2wEa7aUTN35e3ME68vqMtQImSPo4vj8,1121 -faker/providers/date_time/ka_GE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ko_KR/__init__.py,sha256=6fNHRCg496H8xhb9CrivvjJAwEG_HVdvpWWRA9ufd2o,862 -faker/providers/date_time/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/nl_NL/__init__.py,sha256=yQLP1CU8zO2u8x0z-GI1KpYcynvl3YCMyullvyGnPY4,782 -faker/providers/date_time/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/no_NO/__init__.py,sha256=Gl-SDZx_kiE-x4XsFO2JP1YuS15FZg6YzBrV7aw4s0k,784 -faker/providers/date_time/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/pl_PL/__init__.py,sha256=N3gf2pTZN1vEtx0dzY-MKQXFLUCE4FPJPvJRqbjRrPo,800 -faker/providers/date_time/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/pt_BR/__init__.py,sha256=ZAa9y4h8Q52bE4fBKHE2DK_kRQh2UTXzC5ev3N4h-os,806 -faker/providers/date_time/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/pt_PT/__init__.py,sha256=ZAa9y4h8Q52bE4fBKHE2DK_kRQh2UTXzC5ev3N4h-os,806 -faker/providers/date_time/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ro_RO/__init__.py,sha256=rQNX_dzvGLdGXfj_H7uRneqEvhZ1X4eCngyqhIo2TAA,781 -faker/providers/date_time/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ru_RU/__init__.py,sha256=lh8U21Ja3q2slxRYgrR3PZBHZXl9WikeJdPDEIsrjG8,53526 -faker/providers/date_time/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/sk_SK/__init__.py,sha256=-N2B_H9Db0ceyXcKaymgvYeAov4fg6O3LzsGZiFeHW0,778 -faker/providers/date_time/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/sl_SI/__init__.py,sha256=OxbirXD_uNkunM29lOBMB6eENLMP9drlO7adVfOlbl4,788 -faker/providers/date_time/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/ta_IN/__init__.py,sha256=q7fc51j9kQFcUL19_Fhm1GqjO5FurgZF6MKrhjvOwdg,1079 -faker/providers/date_time/ta_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/th_TH/__init__.py,sha256=OSxiwp7qpdt3fsfrauFfJ6cwlIKh4HMts7xynvP59D4,12305 -faker/providers/date_time/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/tl_PH/__init__.py,sha256=M2YFecTd0Yft1z5XQMJRf1hw2cfOnyc36izu99W9o8I,155 -faker/providers/date_time/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/tr_TR/__init__.py,sha256=iCZn6OskbNHjZcgKVR42pnN_LYUGoyj39GrHq_IrpKU,774 -faker/providers/date_time/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/uz_UZ/__init__.py,sha256=TEPfcSdQJ8SRo0b17_r3b8szZDCxNYQu1fTZxCkQzwg,785 -faker/providers/date_time/uz_UZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/vi_VN/__init__.py,sha256=6u-VRRQMb-0ikB-BvcNfXmNEWiZLotmLmJFyJ3-RfYg,1013 -faker/providers/date_time/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/zh_CN/__init__.py,sha256=wYku9jvwDYZjGpXsDV6ipk-5ou0gJE39mtTALxWCvW8,808 -faker/providers/date_time/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/date_time/zh_TW/__init__.py,sha256=E6cVXh5kRsLnuSGOBmh1Cg13T0Hh3RcrdTzmPMhOa_4,907 -faker/providers/date_time/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/doi/__init__.py,sha256=zzd9vE8os3JOXVDqtCG9IBOErNGHujjJjLinuwaXp9M,635 -faker/providers/doi/__pycache__/__init__.cpython-312.pyc,, -faker/providers/emoji/__init__.py,sha256=hee8d26n-91qy_KfTS3G5d_3ZDmbAd7GTLhEBoECH3k,79724 -faker/providers/emoji/__pycache__/__init__.cpython-312.pyc,, -faker/providers/emoji/en_US/__init__.py,sha256=0zdt4YtCNlIn54Bi-XrIxoq8R2KixE-MJLfs0fJtazU,83 -faker/providers/emoji/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/file/__init__.py,sha256=97cg_0T3iC6DOPXX9My3-R6LBbKPq65koCdYOnQvjEg,14898 -faker/providers/file/__pycache__/__init__.cpython-312.pyc,, -faker/providers/file/en_US/__init__.py,sha256=UYkUQfPQkwJR5RBve6PBNFkXmvVgIIcW7cefOXShkSs,81 -faker/providers/file/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/__init__.py,sha256=93Qq_OTbmQ0AFfv13AvMCHaBu2ugnQ6CImdCA_bhHa0,71543 -faker/providers/geo/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/ar_DZ/__init__.py,sha256=4ycl5eRYqLwN1zRFJick2ZUiV-0iQPOiMK8BJiW1Xj4,2794 -faker/providers/geo/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/bn_BD/__init__.py,sha256=31RRk_iECYLCitwqBj8_T5nKScSj7Y-MwiDXbFQgZV8,113248 -faker/providers/geo/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/cs_CZ/__init__.py,sha256=asvcqn3vFG846ynQEP8VOGlL9Sw_IxYI8vleBtOFIWU,11643 -faker/providers/geo/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/de_AT/__init__.py,sha256=hWfVqwf_LmqXUjabvYA00Vat3ofhLXCZXpkkJqUlea0,299 -faker/providers/geo/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/el_GR/__init__.py,sha256=j3PEREcggYq2qfxG3vGlFAFq9es0DrYmlsBpTLvrU7A,966 -faker/providers/geo/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/en_IE/__init__.py,sha256=1ZAM3et5j3iBllNI5H4RjmycOcVNCSDIe0xCmhAAcUk,3029 -faker/providers/geo/en_IE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/en_US/__init__.py,sha256=ezR0GcDrcQClOYJa3kSg56L60wmm5UeBzU92e-aCnig,81 -faker/providers/geo/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/fr_DZ/__init__.py,sha256=ibmrKcMjACo2sufH7NxfhRzwn2I1YzsoiYnvp_mX81w,2533 -faker/providers/geo/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/pl_PL/__init__.py,sha256=AzWTHjpUhCyUKQmwVlotJ-TBP4Y3KwxZ-xPf6IpJxqY,2919 -faker/providers/geo/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/pt_PT/__init__.py,sha256=4EEsm46I6n06XtDIufLpLDX0TfJ3wdcmthrYZANfD5k,2669 -faker/providers/geo/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/sk_SK/__init__.py,sha256=JOJBeuBmdS793IRziQWKILx5f16e3YFumsSPJ6TEzYk,7287 -faker/providers/geo/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/geo/tr_TR/__init__.py,sha256=Tr0BSOPniltOkaz8asOkROH_3XSIfZ5vc1-jQUrTw1g,6742 -faker/providers/geo/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/__init__.py,sha256=_1IDfRyLn49-ggUISTm28ucaS4rJirMCCOXH7uiNti0,27181 -faker/providers/internet/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/ar_AA/__init__.py,sha256=-IjSWVdSdHNx6jEcGYZm4d0YrDP_tTVQBpxAs3dX8tM,1094 -faker/providers/internet/ar_AA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/az_AZ/__init__.py,sha256=Mhj2mjbOWDB3YG0SKQvpKw3utzm_TolBQavX2M4VcNY,1065 -faker/providers/internet/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/bg_BG/__init__.py,sha256=CT4eI12YbOZYynB-J2BsBL7HaehavaJT7v45TDhBaxk,2477 -faker/providers/internet/bg_BG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/bn_BD/__init__.py,sha256=7zsxpK-ZU-MfLD_7W5jocTIVwZy67XBEZzFOVq2hgXU,500 -faker/providers/internet/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/bs_BA/__init__.py,sha256=8IWp6rSXo5DS4D_wjYi7wvwIbXQbDd_aMb1RSEpQ5ok,565 -faker/providers/internet/bs_BA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/cs_CZ/__init__.py,sha256=O6tLYFTaPY1BPOlVt3uaRQUx_drqV5S7o00ODVCqYKk,698 -faker/providers/internet/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/de_AT/__init__.py,sha256=SSTk9zgUfdO1VBPNsPh2eaGcrWRtvJ77WGOKnUDZuWQ,423 -faker/providers/internet/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/de_DE/__init__.py,sha256=oAfsZF8VKVsqVkLFeEmvWLU5139iEk-_jN-uC4y9_xY,587 -faker/providers/internet/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/el_GR/__init__.py,sha256=sSJbGiDItOnFSwVQ_xScysrZuXb59HPXTO6Is_hE-E4,2414 -faker/providers/internet/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/en_AU/__init__.py,sha256=TLSiIg4G-zXlHqlQXjiDwdJInSWHZdHBvCLwKhiMKWM,411 -faker/providers/internet/en_AU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/en_GB/__init__.py,sha256=bMZHxR6sfjtpuXIJ8VjkCn100oT_1FpwJ0u6pCdi8OY,552 -faker/providers/internet/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/en_NZ/__init__.py,sha256=JzR3JmySxot6GJ3UkzrOl8eMESTIvUKKIKwSqmczUWg,425 -faker/providers/internet/en_NZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/en_PH/__init__.py,sha256=lpyxcgyMtW2Qt835HVoEbpl_myzKTjGVlD57NKIMV3A,2097 -faker/providers/internet/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/en_US/__init__.py,sha256=LHT62H6EI01-hSPOVLfnnXM-wgRQcxjqfQ8dYRWaOXo,89 -faker/providers/internet/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/es_AR/__init__.py,sha256=NihEPQgbBsQNmydYCLwGhPMWOgCDmJG8mkjLqjYUxac,498 -faker/providers/internet/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/es_CL/__init__.py,sha256=zaU810dUvgi9Vyt5ytT943ihgN9aIGRXoWKf5NZjTYo,912 -faker/providers/internet/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/es_ES/__init__.py,sha256=j2UVCRto3Awxuvlv8PELsddsbHINE7CTEpL9AxZ5VQw,494 -faker/providers/internet/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/fa_IR/__init__.py,sha256=35BjJrtopP5i9xXdCX0ED-4NO0xsRTzREOXixaVNDxE,328 -faker/providers/internet/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/fi_FI/__init__.py,sha256=SvPRspVOPy0xMLGb1rWsCCLeZUEuHkIbWVOO6Kev_XI,332 -faker/providers/internet/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/fil_PH/__init__.py,sha256=2ZCfY3vfQvpS7vQy7cHssGf_xk50cxFG2hnHJzE8WQ0,167 -faker/providers/internet/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/fr_CH/__init__.py,sha256=iDGea1nm-5McKpqG_yLHeR7-mEKWXSOLKxDDW-1Q10M,770 -faker/providers/internet/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/fr_FR/__init__.py,sha256=oLo4bDzwF3TWUhrWHqQ0-FCmqIGKszV-F3rWRvqXOpc,932 -faker/providers/internet/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/hr_HR/__init__.py,sha256=2GKUN_P95WcziR5NytU_Ql5vw0XjQbk39SW97ngElcI,664 -faker/providers/internet/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/hu_HU/__init__.py,sha256=xvAfspt5itjwRZDctxLlevnkFE_6FWymHaARqi4sTJ4,772 -faker/providers/internet/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/id_ID/__init__.py,sha256=GV4RYOUeR5nTtmCmusfyJiKahNX9WxIxM7-m0hyM2tw,562 -faker/providers/internet/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/it_IT/__init__.py,sha256=cj9Pt3pB0rP26cD9REXg4AdoqvPJQ8aIytKt4R6jEJU,828 -faker/providers/internet/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/ja_JP/__init__.py,sha256=8G_LyyfnoLKliKM0clr8WwIGWrEMqs2bYCAV6A6wm_8,523 -faker/providers/internet/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/ko_KR/__init__.py,sha256=j_bME4uTGKU9BT81JH_bwi1NVm-FvhnQFuBatrDOHL0,344 -faker/providers/internet/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/no_NO/__init__.py,sha256=aVaw6eSetD7XiYlxIIndqjbNu3KvEOh3TVjmvUpSwXs,449 -faker/providers/internet/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/pl_PL/__init__.py,sha256=GI5d0u9kQdPxBO2hPHmZSdCswpyzS71y_CmyHg1EIbU,519 -faker/providers/internet/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/pt_BR/__init__.py,sha256=njS7yiBE35bsePhWZVhjCOCRvAPo8bB3FNUtwDkkDuY,910 -faker/providers/internet/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/pt_PT/__init__.py,sha256=Tn8MGCM1wGbcHTvAcAMlwGyJiikNimzN6n861MqJZvY,270 -faker/providers/internet/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/ro_RO/__init__.py,sha256=CT9KmmV_V69EJCYyXwSZK_g__-Bzb9ENDp2IGAZP5Sw,691 -faker/providers/internet/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/ru_RU/__init__.py,sha256=eiqp60YUSTtWEeNX0-ou1raaSSyLozHHlv_l_zqXX0w,2238 -faker/providers/internet/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/sk_SK/__init__.py,sha256=Ilmucc8qFjunPqVw_LMxA7DOoDAQ7WVTTU4gJ7V53K4,750 -faker/providers/internet/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/sl_SI/__init__.py,sha256=O_NNjwWkwQk17HLo1_vSBztsk4QPhiKBkEeTml_t64M,1219 -faker/providers/internet/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/sv_SE/__init__.py,sha256=-tZxrl07AwE0W16bJT61_mvrTtciUabd27QmL1cO0E0,481 -faker/providers/internet/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/th_TH/__init__.py,sha256=Ekl8yDXegwOGargJMfotSKSMcXrCvXP2YHIHUa5Wau0,670 -faker/providers/internet/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/tl_PH/__init__.py,sha256=2ZCfY3vfQvpS7vQy7cHssGf_xk50cxFG2hnHJzE8WQ0,167 -faker/providers/internet/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/tr_TR/__init__.py,sha256=7AxLZaamXHHgYwLq7IRiYz_QcrjxgdC-4-3LO35Tsgg,563 -faker/providers/internet/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/uk_UA/__init__.py,sha256=CUiM054Qyh3JeeIXvTnbDK5UaIJkqtXgWh-MzueZNtk,1722 -faker/providers/internet/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/zh_CN/__init__.py,sha256=RwddnVSsrLA1zQLMg7ETZd6NIaU7abruEqLs4dJU1NM,2550 -faker/providers/internet/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/internet/zh_TW/__init__.py,sha256=7bZHgQC1LN57Uvy5jr0_5unhDriFqJ4AAwvDpYWUGdc,516 -faker/providers/internet/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/isbn/__init__.py,sha256=n6Bi1ynpUp1x9KEzo2UWj86L_oo1T4iqSh33DdoKjCo,2738 -faker/providers/isbn/__pycache__/__init__.cpython-312.pyc,, -faker/providers/isbn/__pycache__/isbn.cpython-312.pyc,, -faker/providers/isbn/en_US/__init__.py,sha256=SMUb3lAXdzQH6RmnlGBcRiebwOFz_ciRLeNI0NRckcg,1166 -faker/providers/isbn/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/isbn/es_ES/__init__.py,sha256=IS4sb2C0ViCs24tUet6X-ntxTAKkLE19tyTzWL1nOh4,1265 -faker/providers/isbn/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/isbn/isbn.py,sha256=_MG_90Hk_jYZOnBY3GVMkZaC__BuO9Pg_Xi2razIAxo,2676 -faker/providers/job/__init__.py,sha256=iJQ_3NhqUpCx81NIk8R16Ai0Pz5S3BLqa236oJm0Gq4,21537 -faker/providers/job/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ar_AA/__init__.py,sha256=r-aYUi7hCk3pi4hQwVtR5BELkCFt6rErG_0FKrd2f8A,3633 -faker/providers/job/ar_AA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ar_DZ/__init__.py,sha256=jCNTAIhzORRIFMUg4Hu-t6KFjXWB_bMN5l6nGo_1zNA,2826 -faker/providers/job/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/az_AZ/__init__.py,sha256=kBgGAGC0V8211FQycbbCC4iEqY2fhLUQfEsq4EdBxbw,2636 -faker/providers/job/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/bn_BD/__init__.py,sha256=HjufIqNQMJTTabsuu0ug-rx0MtKMexhDZC0G6sxAGZU,44681 -faker/providers/job/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/bs_BA/__init__.py,sha256=FL-KLKzfVbOP5hkWI3lTnVTh99TEuirWHvVLHgUOr3c,179846 -faker/providers/job/bs_BA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/cs_CZ/__init__.py,sha256=9bTb4zAJZNqJv_pPnJs2iLT00VamTLldxQOvrIPEaMI,16670 -faker/providers/job/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/da_DK/__init__.py,sha256=tTMIgO_HbiTiXKl84biFZjKGJfuhqvZDdWxOGcRmlzo,25577 -faker/providers/job/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/de_AT/__init__.py,sha256=m7efayYS3_dFcEhp3Vfzb_u4i2uscmNpUWlue4hFjuA,293251 -faker/providers/job/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/de_DE/__init__.py,sha256=LHmjjLpXoO03SouWI1kAl2QI5DZeQeDa406_FzSmvBA,953 -faker/providers/job/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/el_GR/__init__.py,sha256=TE_gfN8vAZvb-3Gr0LL8E8OT8LyT0llvMZ4iXPzb-f0,26642 -faker/providers/job/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/en_US/__init__.py,sha256=ezR0GcDrcQClOYJa3kSg56L60wmm5UeBzU92e-aCnig,81 -faker/providers/job/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/es/__init__.py,sha256=C2SmDfVAq0Bb_XqfRO3rJQenfjvqvVWK-CBGRZ_lBOo,19215 -faker/providers/job/es/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/es_AR/__init__.py,sha256=zpnbMPV3lEEEpzZTcuqDY82dAIem6diPe4NaGSbaM2w,83 -faker/providers/job/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/es_CL/__init__.py,sha256=zpnbMPV3lEEEpzZTcuqDY82dAIem6diPe4NaGSbaM2w,83 -faker/providers/job/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/es_CO/__init__.py,sha256=zpnbMPV3lEEEpzZTcuqDY82dAIem6diPe4NaGSbaM2w,83 -faker/providers/job/es_CO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/es_ES/__init__.py,sha256=zpnbMPV3lEEEpzZTcuqDY82dAIem6diPe4NaGSbaM2w,83 -faker/providers/job/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/es_MX/__init__.py,sha256=zpnbMPV3lEEEpzZTcuqDY82dAIem6diPe4NaGSbaM2w,83 -faker/providers/job/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/fa_IR/__init__.py,sha256=MGvAhvmJort96p0wpsD_EmeVMyoN84uPfObUW3_dCcw,2433 -faker/providers/job/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/fi_FI/__init__.py,sha256=FZ1Ex-h5FcYOSIrUJ7LoZpEOBBuQiVQY444qyYz-jTI,6120 -faker/providers/job/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/fr_CH/__init__.py,sha256=iDEC79BJOBtb175l3Go2-ws5UUQFWO8h7uXGKOoW8dg,43169 -faker/providers/job/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/fr_DZ/__init__.py,sha256=Ehg77b_gys-T1KKQ3b7Pk89h7lAxzwQlZQP7t9wJFKI,7105 -faker/providers/job/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/fr_FR/__init__.py,sha256=uPCgty7MBj3B-flMT0jWhbkxdtChI0jzVhfgN4yqHYA,57532 -faker/providers/job/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/hr_HR/__init__.py,sha256=fad2u7FK17txNG5fO6Dukw1AfYvUaHwizyRRDcfI8B8,10408 -faker/providers/job/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/hu_HU/__init__.py,sha256=ZmToGK3aPj4_oI1DikTDCPuL13VDtaJHGdWFAX-_2aE,12939 -faker/providers/job/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/hy_AM/__init__.py,sha256=tGgIXm5pJw9Y7afc6wi7Pf6Vx-io3Qd6AXubKofYFAI,11265 -faker/providers/job/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ja_JP/__init__.py,sha256=YKR66x31DVhcTbv0pPT1BSFGH6lrpnnipJSDtjmG3Jk,1635 -faker/providers/job/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ka_GE/__init__.py,sha256=4pVtmYraTpp0zS4BOn004HMj5GCxz5tq5vD6OyBIZOg,18725 -faker/providers/job/ka_GE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ko_KR/__init__.py,sha256=8VQGuGC1drV9qH0bAi_8B1Q7iDE9p-HxGiYLlHv2hw0,16612 -faker/providers/job/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/pl_PL/__init__.py,sha256=9HN50vBhqhthuQUlarxvrh2uySiWuKvPDpyg8UegDjA,5539 -faker/providers/job/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/pt_BR/__init__.py,sha256=Hux20vExzr8Q0z-3BkV3TcVfjR-H8zuNkJd33TCwo1U,20541 -faker/providers/job/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/pt_PT/__init__.py,sha256=vpbz9YTUlS_DnoXZq_-fx5ctgobFwCrlJdt3aknNnUs,18585 -faker/providers/job/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ro_RO/__init__.py,sha256=CLckjpM__40QY9TunWoJrkMkxVHkHcVAent7Nn0ZsmM,170683 -faker/providers/job/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/ru_RU/__init__.py,sha256=oAAW4LWUnnYHiJPfbVNdTLdS3uT2gt6Lr2h1rYp5oWw,17443 -faker/providers/job/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/sk_SK/__init__.py,sha256=JkOYzldLZ50j5VzLfqvaTlDIa39ipFZs3oieinPcT7o,17499 -faker/providers/job/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/th_TH/__init__.py,sha256=C7HJjR2ispNKUQnhpZl5B08L9o93dy_z2Bc3X5gZv5I,3883 -faker/providers/job/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/tr_TR/__init__.py,sha256=kev6Yer2cL6-erqVXvpMjnqszPAPBEqySAx-L03EFUA,17006 -faker/providers/job/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/uk_UA/__init__.py,sha256=YbjuIxkV58BXgBBFPB5J8tD7FZycSGGO6YcWCTJ2yFY,5087 -faker/providers/job/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/vi_VN/__init__.py,sha256=Vgkf35LRTW38nXfbCSVEJLjwGJunAnOnO2F673sYeYU,2170 -faker/providers/job/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/zh_CN/__init__.py,sha256=zd1mm1YUIZ3dGXZo-RuznIkZrv5CQLPOPRuzdXBw4JA,28916 -faker/providers/job/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/job/zh_TW/__init__.py,sha256=fVahHxvx4D917NwNve7-XKbL1Y8lvhKmYQ8DXktGy-M,14340 -faker/providers/job/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/__init__.py,sha256=OEkJK7fX6UF9OQS4qaorIUS7H5JhjZwrijirarCkjoQ,11460 -faker/providers/lorem/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/ar_AA/__init__.py,sha256=hO4o6wt-ZmnjFt9QifobnRIST2G6tykM76M-N8VFtAE,16052 -faker/providers/lorem/ar_AA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/az_AZ/__init__.py,sha256=iZpLQeaS4FehuJa2CaoG3Uwk39rR9TssKHrtNeyCld4,1927 -faker/providers/lorem/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/bn_BD/__init__.py,sha256=jMhVpMjrIkuV3eJlVHmnM_Ejqx4wLEo8hXYJRRPtNyM,6153 -faker/providers/lorem/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/cs_CZ/__init__.py,sha256=8hNIxdsIuPqM4CE3m8PKaupqURDPZKCUxY8HEv5mgm0,98463 -faker/providers/lorem/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/da_DK/__init__.py,sha256=ut3zU2dRAK7j71pLqvYjts_2ErGeDpFIQWw5MmSfHIs,18720 -faker/providers/lorem/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/de_AT/__init__.py,sha256=Mkq4Roz9JzRbVQyBUSyU4JIR1SsothBbHD5_Xd8rAiw,191 -faker/providers/lorem/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/de_DE/__init__.py,sha256=6rqhHPRF3gGhs3agE_NcPXpyMr_z7gsp8lug98kciBU,9161 -faker/providers/lorem/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/el_GR/__init__.py,sha256=7un6Ybrs26GhX1B3a5ttQs8K53O4LG4irDnNU1BAiio,10084 -faker/providers/lorem/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/en_PH/__init__.py,sha256=b7w4Ym7_dSzCiHviUJRK28iI8KBdiAF7vPJjO0Vrw0Q,2956 -faker/providers/lorem/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/en_US/__init__.py,sha256=F4w0xWRH7FrqZSIoWToTydm04nxhOMgUymLx70os8nc,66081 -faker/providers/lorem/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/es_AR/__init__.py,sha256=WwaB6VJF8XYzvDqmThk8o9SaLEV0WSy2OcXW62pNP1Y,183 -faker/providers/lorem/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/es_ES/__init__.py,sha256=7DVzezXt2RXWQjQe1BI04WASR-1GdXGQwgC0HpXngNc,18389 -faker/providers/lorem/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/es_MX/__init__.py,sha256=X5prlBhYOqJDYwwBguQFnZhm6N5vRfIJcpZ3-3iRelQ,183 -faker/providers/lorem/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/fa_IR/__init__.py,sha256=-Weo8ScmxwTJ-N7AEehmPmZhTXy70CvRVYlv2_uVzs0,18944 -faker/providers/lorem/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/fil_PH/__init__.py,sha256=cs8LxZScEslOIjwq7CkByQQ4s4iaGQdbPLjBQZZAtzs,11351 -faker/providers/lorem/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/fr_FR/__init__.py,sha256=dsxWUGnlnPO7ccbljk5npE1bF-XcFRC2a_X7gavQ_Wk,27232 -faker/providers/lorem/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/he_IL/__init__.py,sha256=NFAyt96eryMA3DraO5c-0u9HuUEiu95-GYDClfnz8AY,3356 -faker/providers/lorem/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/hy_AM/__init__.py,sha256=oBpu8KpyeviOc5hCJwBYBPty4k761-J7qthFLu5FCJk,4756 -faker/providers/lorem/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/it_IT/__init__.py,sha256=BYjxolLS-HeQt7L1UsrvioP7uqrGAWEJ9h-uw6ySOVs,71924 -faker/providers/lorem/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/ja_JP/__init__.py,sha256=k1lIaXxHJ_vPX8vMglv6r5YdAwMjpLUs5_PPW63CgGE,4851 -faker/providers/lorem/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/la/__init__.py,sha256=Q6F2tSuR8ox315FCoztkW_kjg5T16yP49WV-6hqJwSQ,3575 -faker/providers/lorem/la/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/nl_BE/__init__.py,sha256=dWyPep-62KgpI--0ZiTD96IisOAoTLg8W9w-MjUKw8c,17955 -faker/providers/lorem/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/nl_NL/__init__.py,sha256=O53C_8Vg8Dm7HWqjGDU6oQE83FGecsOEqu_24BzxH_8,389 -faker/providers/lorem/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/pl_PL/__init__.py,sha256=eFwWhhP5wm9yga0yUF7-TOnTUgrpfXpf5GQcBg-y7b4,38477 -faker/providers/lorem/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/ru_RU/__init__.py,sha256=0MhskBjJ9FNVnE1HrklRtOmkQ2ONApJ_p9QNh7TvYjc,13467 -faker/providers/lorem/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/th_TH/__init__.py,sha256=xLfq6YgVe9CMNXYc-sqBcXalggu1uWjqsMheuutWNM4,11361 -faker/providers/lorem/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/tl_PH/__init__.py,sha256=GvJoMGMSsfHZKpOoPwGTeuiYdoG9tx2dxvnZ6SE_8-Q,325 -faker/providers/lorem/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/uk_UA/__init__.py,sha256=QVU4JA6FM0pICklHytEltpAxZsVPLN-lvLPiJU1lD2o,13098 -faker/providers/lorem/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/vi_VN/__init__.py,sha256=S19zzrH3S3LnSUcgE-33TiR8T0FFMUMxl8LMT-CL7SQ,3719 -faker/providers/lorem/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/zh_CN/__init__.py,sha256=xswC2NIKe5PPXjHMRxk-Bq_sEIY3GS_iqMZwbNNuJMw,6477 -faker/providers/lorem/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/lorem/zh_TW/__init__.py,sha256=WPgMmUg2UtGNP4pWXRXYzgZqXFnYfY7bwOEJvFlJCFg,6477 -faker/providers/lorem/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/misc/__init__.py,sha256=nDKuzlqRjGc_6HsT9TiwUHLPNb03gLb_LW7etgxHuF8,31561 -faker/providers/misc/__pycache__/__init__.cpython-312.pyc,, -faker/providers/misc/en_PH/__init__.py,sha256=nswQfqJztIjoHmkt_42KHKqeE8XpC5QVr-7SATFMFrk,4398 -faker/providers/misc/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/misc/en_US/__init__.py,sha256=ZE5bQjYE6QH86j2R4Hj_Hd_FmchvGPTKnn9vlUYnd_I,81 -faker/providers/misc/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/misc/fil_PH/__init__.py,sha256=JKgj2LzDwJuUrdc1fAIT5g51A_27E8qJmFC1iVNR7kw,151 -faker/providers/misc/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/misc/tl_PH/__init__.py,sha256=JKgj2LzDwJuUrdc1fAIT5g51A_27E8qJmFC1iVNR7kw,151 -faker/providers/misc/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/passport/__init__.py,sha256=gTzeT4jyGsw1fPydHd5I59WA11WnOYiHgRGRs17jHg4,1507 -faker/providers/passport/__pycache__/__init__.cpython-312.pyc,, -faker/providers/passport/de_AT/__init__.py,sha256=3xe-zxK2smwN92AeFqilrDijZK61HSo_wyo0NnJmrW4,334 -faker/providers/passport/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/passport/en_US/__init__.py,sha256=njRAk9i-Y9AZqUdKYmvppsYYqsG0fgBHpiZLmcbtdlA,3876 -faker/providers/passport/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/passport/it_IT/__init__.py,sha256=4vKD4kG_t-K-EugvbR2i_vKq3Z8qdCdXeyjPSDuUhjg,879 -faker/providers/passport/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/passport/ru_RU/__init__.py,sha256=XakF2r8OoesaOqpQXL3oyys3UfQtNeGkfU02Wj5XkNI,892 -faker/providers/passport/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/__init__.py,sha256=NF_XUfL2k5hwNitFv1wtO_236UsCSVOJih1XgaU6Tuo,9525 -faker/providers/person/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ar_AA/__init__.py,sha256=k4-K0Rh-2FiYXNRGJ1hDRj1E4Dv56oIfB6-h3xV7_i0,24546 -faker/providers/person/ar_AA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ar_DZ/__init__.py,sha256=f9U47qCRfyWTdccA2D0tgOY52Np71j2Mt4-l5jMrl8k,8528 -faker/providers/person/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ar_PS/__init__.py,sha256=4g16OAPyM_CV4ghXHK4P5SoTLE_wSpfk254CUscZulQ,1141 -faker/providers/person/ar_PS/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ar_SA/__init__.py,sha256=TXHlak27z-U5Yjpp9DJoGSmYOHcdhXfy9cdtv5uy6RA,1250 -faker/providers/person/ar_SA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/az_AZ/__init__.py,sha256=EJ7H9sBN8Utk3O2_q1JV2HFk9R4PRuOrZnKnM_A23mI,18393 -faker/providers/person/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/bg_BG/__init__.py,sha256=PvwEl2NpjLiXOcfCPheMbLilgqyHtV0LVe1vZm1c2fw,43243 -faker/providers/person/bg_BG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/bn_BD/__init__.py,sha256=LzDPpQcOakuy_Dfl1a6L4nA2BHjJrnGuOnpHQ-j-3y8,18575 -faker/providers/person/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/cs_CZ/__init__.py,sha256=6ercMFG0y7rnc5MDTyhP29U6MchSQandJ00EkXAHoXc,11179 -faker/providers/person/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/da_DK/__init__.py,sha256=ywEr1D8xvZTxh4Yuqj6zelS5HwruZEpMw9KeRnVEEfE,11646 -faker/providers/person/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/de_AT/__init__.py,sha256=iMZLReZ5oAIY8k5Z0WF7_pMv10u9raPhJf_jWyd8-Ds,30645 -faker/providers/person/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/de_CH/__init__.py,sha256=8dViDSCtMW2eiuYpiHe-So6ZUpw_SqPIPsv0T7xnwTg,41031 -faker/providers/person/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/de_DE/__init__.py,sha256=QuIPsNryzNQhD-38lMtidEEMwuBKgCH19TrReLJO1gI,47660 -faker/providers/person/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/de_LI/__init__.py,sha256=JW6QuY7kw0r49B5ybbhTQ2nW2-YasVbEOniSBE4rqJ4,17983 -faker/providers/person/de_LI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/de_LU/__init__.py,sha256=3ls_-dm9v93732mX-xhr0iw9cT4xiyUUj63aj3qp53s,29695 -faker/providers/person/de_LU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/el_GR/__init__.py,sha256=LQ3yUZdFC4mqs9Ge8Dkp4Wj7nKFeXShRhjC_K_BXXIM,66301 -faker/providers/person/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en/__init__.py,sha256=3r2L-FVtshlZR3c2xm91INhRAJD2k-4AQBXYnlfTHA4,139274 -faker/providers/person/en/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_GB/__init__.py,sha256=v58ukWDAp6ppgdOejFauw6GsJiQxs-ldYZohuw1iqr4,22879 -faker/providers/person/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_IE/__init__.py,sha256=aQAExodZPb9QcLsr6gJH9D_BOyUXHZw7EVEdPZm-80I,58685 -faker/providers/person/en_IE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_IN/__init__.py,sha256=ucK3c-tfbNSIVLQm0Vv1XxoZoH7602HdnT25D3ipydQ,19867 -faker/providers/person/en_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_KE/__init__.py,sha256=h3JZ2dCRDSRUtytmwEYXQsPfAZ3c3sH96v377mrqtN8,71068 -faker/providers/person/en_KE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_NG/__init__.py,sha256=UWx21yHljDHmBW-1k-rfmnBIWqkpCY65aKUplSkq3oo,2037 -faker/providers/person/en_NG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_NZ/__init__.py,sha256=_yglZn-L5p7xIXJ34P8RYNm9xQjLmN_HNDXFgFxQODs,40961 -faker/providers/person/en_NZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_PK/__init__.py,sha256=mFHTSaO358OYcxeYpFrl7vRP-HRSZ3K-NrnaMjJp4fo,17737 -faker/providers/person/en_PK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_TH/__init__.py,sha256=T73zo826kdt6LJTSEQTR6yXnMHQ1JuWs9-TnQAigTSw,6008 -faker/providers/person/en_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/en_US/__init__.py,sha256=b44OooDdiHXwbIBMGFXH2gHfjbBNUfFr4Yd6oRw7_lg,66194 -faker/providers/person/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es/__init__.py,sha256=Q3jnM7-g2WdBvCGvIvxN2BPFhhsRiqqjLu1MOQJEKog,3630 -faker/providers/person/es/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es_AR/__init__.py,sha256=Wb1ht_cLWGfaC5MHWKuyQWG5N1WDNwkKBBLq6Bw4TWY,28395 -faker/providers/person/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es_CA/__init__.py,sha256=MkPtv2AQ_HPniP62K88iyIoCmWVyjkoSEaS4lOD7l94,1720 -faker/providers/person/es_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es_CL/__init__.py,sha256=oVFPT_K0GZfzrgNiM3CkXrZCbeVHWGfaBv3iIwEJ-Ng,58710 -faker/providers/person/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es_CO/__init__.py,sha256=NiGas5Svn0vXwEpFEDoxNEbRfe9x071YcTyoazxR4UQ,35715 -faker/providers/person/es_CO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es_ES/__init__.py,sha256=8364Pa0nd4R4XeAozFlxwkl29kO_ILaVUHoMuMSbO0A,39907 -faker/providers/person/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/es_MX/__init__.py,sha256=szUCd1pm2TEtlRD57Hm5xBiKmdHDq25TTg9VvVqp2_0,19448 -faker/providers/person/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/et_EE/__init__.py,sha256=wTx4dFchwvF2oQW_g-t-ckzA3QMPJBuiyhnNDExvVkY,13918 -faker/providers/person/et_EE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fa_IR/__init__.py,sha256=TcdLyugT6gndbr8SeE95j0AjIfWhZwc9X8hvv2KZKGQ,8309 -faker/providers/person/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fi_FI/__init__.py,sha256=cO9QRNIGYY_BCbyDr5YKSmS6wX3iyOuSMk_bTeJAjU8,29042 -faker/providers/person/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fr_BE/__init__.py,sha256=CBKMjYgp0_8PLqF3AvcaB8FZmM-qNvKPpWdfr7cTaUY,48512 -faker/providers/person/fr_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fr_CA/__init__.py,sha256=5nHllfbLF4B1DfgL0-OtuZcAZlaM9pPeZSYTJlgFoT4,9745 -faker/providers/person/fr_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fr_CH/__init__.py,sha256=AVKTSQVZqC874n5TKhDx1CJNUTChPG_1hsUDFEiyntU,6997 -faker/providers/person/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fr_DZ/__init__.py,sha256=8Xc3wM20fEyURf2XdpBeNy8NoaLjV9vxHEc0DHKHZNY,9105 -faker/providers/person/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fr_FR/__init__.py,sha256=FXpkbw1raOrhp4XJu5suIl4a9IVPlscoEmS6zyh2vuc,12993 -faker/providers/person/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/fr_QC/__init__.py,sha256=ohlbXW7tEbzOOAFFwk7D0huNkZfF7HFv8-Vpkurxb1s,290 -faker/providers/person/fr_QC/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ga_IE/__init__.py,sha256=-4iMu7gYa5uTrbP0x6Q-zkDRN_MQKmpRld1dtVvawV8,73539 -faker/providers/person/ga_IE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/gu_IN/__init__.py,sha256=kzbvUSOIr0vzbqgmj6Owpu0WA3cnVVneE_uwbKYmDkE,4159 -faker/providers/person/gu_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ha_NG/__init__.py,sha256=ACkj0jK0QIySnHhZNouUHYw3kpHJUtov8TyR116hW9I,1758 -faker/providers/person/ha_NG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/he_IL/__init__.py,sha256=SbEoT6QlB9LRPjLExL-b59rQEkKRYx8uXGl4fV8OZc4,60492 -faker/providers/person/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/hi_IN/__init__.py,sha256=rnC8xDr76XWR9ZfpoczVpD0025bW9TI3iJm_13BfRgY,14971 -faker/providers/person/hi_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/hr_HR/__init__.py,sha256=cj4ebFpOG-QUIpybjDG7svFlrwF84TeIxBSKNPbKYAc,19776 -faker/providers/person/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/hu_HU/__init__.py,sha256=O-uTP0L__1omnPKwFVlqX2ASNJ9fTgv9-1gcqEc53jI,16159 -faker/providers/person/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/hy_AM/__init__.py,sha256=2SlObYbwC32T5Ot6_GZhUZI5TyyATgSvqO9FLfj6uGQ,27051 -faker/providers/person/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/id_ID/__init__.py,sha256=weWMgOVkBS2msR7MR1Pz-Hn1ZIrJ0ibrftPizVoImTo,19283 -faker/providers/person/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ig_NG/__init__.py,sha256=tG2KB2taPAsellrosYy3Gpr22XVLEMfWWnnD0JneQTo,1860 -faker/providers/person/ig_NG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/is_IS/__init__.py,sha256=vCrMbag1bdqwr3zmCYI0bSNHL5d7LGh2mysvyjzYOTI,77065 -faker/providers/person/is_IS/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/it_IT/__init__.py,sha256=rXaE3JJVul3nVJFY6vsiyy8ZApWE1L1sK36J53JqBxc,32694 -faker/providers/person/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ja_JP/__init__.py,sha256=A7zjtwQd0MIUQgiBJpdB9xZWgJOOS5_d-rg2tMJJP98,10951 -faker/providers/person/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ka_GE/__init__.py,sha256=JfdoWpWSk5mrRA0-yRSLDfzNEh3WMh3cQYgbrQ5lSlk,25812 -faker/providers/person/ka_GE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ko_KR/__init__.py,sha256=wa6PhmUDdANfPYv-JYfNrA0mAlWseXA-N7dm9jpT1tc,5579 -faker/providers/person/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/lt_LT/__init__.py,sha256=DQQDcd7kl9y2gB4rbjXJZvRDsxkhOtJZAQxpk4jXu3o,4706 -faker/providers/person/lt_LT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/lv_LV/__init__.py,sha256=G-_7gvAGmKtIXMEteDzuDksdsN9W6dOR5qzm02pXs2I,8240 -faker/providers/person/lv_LV/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ne_NP/__init__.py,sha256=mbVGfm0CinGNOa8ESI6i797C6Sf2EAkMANUL6Lj94Zk,44009 -faker/providers/person/ne_NP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/nl_BE/__init__.py,sha256=4SSEH-HpMU_bGZu6qZ8mm92sIbznPu5dOa-MtJ7p_yU,49013 -faker/providers/person/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/nl_NL/__init__.py,sha256=BUuksE9NnEDFgxXGidWzwvmlKd4TZnhnK_JA71kkpKo,32776 -faker/providers/person/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/no_NO/__init__.py,sha256=PNPeYtuQ2zaQ9Aw5z0rS05-z3kLjA-ufUR3O6UNdRBQ,7074 -faker/providers/person/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/or_IN/__init__.py,sha256=N3dTj7Z_dI6aDxSF2OEwRsgpZvoF5peH51jCR82peLk,35828 -faker/providers/person/or_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/pl_PL/__init__.py,sha256=wV5tZcx768mwLUtIbpevYKYq97fNpDp2hec2kX_BEq4,95357 -faker/providers/person/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/pt_BR/__init__.py,sha256=Q4Z8JsurGYy1XSoO2L6ZBK44f5D-z5kQM0XyUSmTa_k,9695 -faker/providers/person/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/pt_PT/__init__.py,sha256=tSitB72Gddwmnlw1hgNlgVWNXzKJqWvyNMz_Z24tM7U,6791 -faker/providers/person/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ro_RO/__init__.py,sha256=P44HBm-LKIVk6VGW0IIMNi0CglNwK5mnkM1djOXwmPc,14264 -faker/providers/person/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ru_RU/__init__.py,sha256=lOjOBivx62GZNcqI1NRcfY8dfHDXeOPntQOBfpQgBsM,37558 -faker/providers/person/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/sk_SK/__init__.py,sha256=xELxDep7PuQUAM39o-BTlxWSoryccl-vFqvdkH5I3u8,46495 -faker/providers/person/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/sl_SI/__init__.py,sha256=NryVhRpx1bwJJmvrvuRZ7CqpjPwD7XWDav_YD2ceIP0,9540 -faker/providers/person/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/sv_SE/__init__.py,sha256=RniRcCVtFfFF3j-2R0-3tRvgyZuhhPySLS3_sT7CdOg,53408 -faker/providers/person/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/sw/__init__.py,sha256=A22teXBQ2_jbn88gyG2hM3DCu6nlkMkQlb9jnlW4jno,8090 -faker/providers/person/sw/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/ta_IN/__init__.py,sha256=8f3G82AeF_WU1z3uhGb_qOv-UUN1U2_k5KQmpXpAbhA,35625 -faker/providers/person/ta_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/th_TH/__init__.py,sha256=ohEtfOZQ5DjHN5M_aAKgAqfa6MTZz_cSpUTJHUasH6o,35440 -faker/providers/person/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/tr_TR/__init__.py,sha256=G85I0jd2Ul-9d5P0KlvkXzOHCf9oFIo69UA1qI7J02o,31373 -faker/providers/person/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/tw_GH/__init__.py,sha256=gHBQqYFDIH3ik8I5VBncVJhdSSrWw9uIeJxsep0oSjY,11402 -faker/providers/person/tw_GH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/uk_UA/__init__.py,sha256=X6RtRjhoMvg0CZkp_D8zBEE1_9AnPS4-SntYQ3Euncg,36783 -faker/providers/person/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/uz_UZ/__init__.py,sha256=q9Cgs35NJ9tZeu2yF7z9rmVHnjt-LElh9P447iLifhA,8617 -faker/providers/person/uz_UZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/vi_VN/__init__.py,sha256=-rvxPzqs1VS8j3g-O64AawhG11SLMeb1numZyhq5QD4,2539 -faker/providers/person/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/yo_NG/__init__.py,sha256=hvFaiH18-PeYY4Q7rtSsTTyv7IiDjJzTHD1t4J5BfnI,7239 -faker/providers/person/yo_NG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/zh_CN/__init__.py,sha256=wnvBOewxiFpIXV0uHLHTbk3zpKA0Hx0P4oiY7bakhlo,16430 -faker/providers/person/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/zh_TW/__init__.py,sha256=FGeBt548IxC-I3oX0nNYYMM2CZ9_vdWi0tIcrigu_as,29023 -faker/providers/person/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/person/zu_ZA/__init__.py,sha256=PBmYaQrKS8BfWLBIXz_m_ymiRNKirtK7jJPayIsWPGM,18658 -faker/providers/person/zu_ZA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/__init__.py,sha256=7-jQVnJ09i65BjyRPnC-W18ttIjLSfNLMTxa74nE4Xk,5825 -faker/providers/phone_number/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/am_ET/__init__.py,sha256=Nf8a0rTKsUAmxLgjhGR1q06r0Ho4foe1IEKwS_ImB3A,474 -faker/providers/phone_number/am_ET/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ar_AE/__init__.py,sha256=is_GHW78Sg9Tw0X0LD3GQPc9ixqCfJq2TzutzYw91Tw,2580 -faker/providers/phone_number/ar_AE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ar_DZ/__init__.py,sha256=nKJ7JREZ1BIOGqXq91_la-oROGtgrFsQ__xBWHSXgEo,1611 -faker/providers/phone_number/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ar_JO/__init__.py,sha256=-B75Bj9rScaygObHb1CVRKefVbp1vlOKsQnzqV_FDGg,1772 -faker/providers/phone_number/ar_JO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ar_PS/__init__.py,sha256=7RdtET6TyjSs00OyGmGqPwat55kdxPsX4hbVusoDiQw,3605 -faker/providers/phone_number/ar_PS/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/az_AZ/__init__.py,sha256=0JIFo9BREcIGVa5uoeqgmOitp3a4aWPrSkhiCHnVO2Y,1562 -faker/providers/phone_number/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/bg_BG/__init__.py,sha256=05BSwBcj15vxsOQ0btUPhKwgPDNkYdek2XGqpXxouwY,390 -faker/providers/phone_number/bg_BG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/bn_BD/__init__.py,sha256=yHFu589U9FClkds97p40zPPclJh2lRYYlI1B9f9U__0,7503 -faker/providers/phone_number/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/bs_BA/__init__.py,sha256=edmF7qRS8gUkHFNWNH6JQiLiWA-fMXuu08d38-HkEW0,879 -faker/providers/phone_number/bs_BA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/cs_CZ/__init__.py,sha256=gYXUeZDETZN4iiGG1vSKCW--zIDgQ4foJV7bAe65pKU,1417 -faker/providers/phone_number/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/da_DK/__init__.py,sha256=cUzQwly2CtDfEe5x_flhJD2FBrlnldqkMfM6J70ZSW4,248 -faker/providers/phone_number/da_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/de_AT/__init__.py,sha256=McsrzL3JD0A9WV9DWR5GSrxe1kKLHYWC1jPzhhSnSOA,2505 -faker/providers/phone_number/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/de_CH/__init__.py,sha256=dT0G1MUpf5--55XRC5KsAbaQwwkcOLz3JqXQVVpEi0o,1594 -faker/providers/phone_number/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/de_DE/__init__.py,sha256=Gb0rJzTOIX-KuoJGAdVLvWJIxuKiIuIcNpTUCHcyxO0,455 -faker/providers/phone_number/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/de_LI/__init__.py,sha256=ouaQhiC3yDI7F5C3jaFpCHhDsscFfyVU0nccIUqSBJ4,203 -faker/providers/phone_number/de_LI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/de_LU/__init__.py,sha256=Ms8zEdfqL2MZfEYInkWgvEH1tV4vDbE9k09zzz5F3kU,847 -faker/providers/phone_number/de_LU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/el_GR/__init__.py,sha256=VlEbELDOfRRpaN1Vg_qgQZVGx5fVGqvDlC2Atvggu84,523 -faker/providers/phone_number/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_AU/__init__.py,sha256=hdsINEo3UaQEpQ-Cm0ZKXXEp-0RfBSwAy8hWpi99LN0,1317 -faker/providers/phone_number/en_AU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_CA/__init__.py,sha256=84HElLY6ue7-4_SINpiiCOnF85KBsVwobaU6VwsAazg,349 -faker/providers/phone_number/en_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_GB/__init__.py,sha256=6VX5vvI2RHW0Y1C_piCSTV6lmffbrftVdoj44FhAyQA,7437 -faker/providers/phone_number/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_IN/__init__.py,sha256=n150k5GA6gkoazdKpz2qkfd1AJ_hzviP0Noniiw_jM4,178 -faker/providers/phone_number/en_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_NZ/__init__.py,sha256=S4XgZDeaUqhPiuyR-19oalq4fEjOPh61X2B_gfiAHsU,1247 -faker/providers/phone_number/en_NZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_PH/__init__.py,sha256=FKB24c5QJ6KFj2s_dXKFry5_CXJSOi-Kq9DQNGgC-Vk,8227 -faker/providers/phone_number/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/en_US/__init__.py,sha256=OdAEPsicrobu0Y8Wmj9VpPK5o465Vu9Lshc4nNgFBuY,1610 -faker/providers/phone_number/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/es_AR/__init__.py,sha256=_rImVYeCpAscF_7DwoAG8bGmoidLWCrg6mZ6Umg8a7g,2079 -faker/providers/phone_number/es_AR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/es_CL/__init__.py,sha256=i3Pe-Q3vS06CJYdGzBQ2ksPO6f0vA45BE_talWxhCXM,1921 -faker/providers/phone_number/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/es_CO/__init__.py,sha256=B7uzDmYvPetQLwPPLaPOG0ehP1Uty52fkQaBtl_lt9c,1043 -faker/providers/phone_number/es_CO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/es_ES/__init__.py,sha256=b4nNmJz2LxoFIX3vYRIy91bzkMwPNARqhipfOVNV_JA,2312 -faker/providers/phone_number/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/es_MX/__init__.py,sha256=TmTVvHZUoR95gmoa3lfFBDLzpCeL2mYkmsAop7u6rv4,765 -faker/providers/phone_number/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/fa_IR/__init__.py,sha256=ADyPMzHM1381PXqTcaEnSHb0Ve9qJ0UVABynPonjSdI,2658 -faker/providers/phone_number/fa_IR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/fi_FI/__init__.py,sha256=HlNMgJuPHWYxIufaiIFOyzi_HN7o2a_mzHfaYh0NDMQ,260 -faker/providers/phone_number/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/fil_PH/__init__.py,sha256=DaA90_JFnbMtbMJFc3BKDSDEoS_Bs1D7gMX8KpoNYlc,177 -faker/providers/phone_number/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/fr_CH/__init__.py,sha256=OV8iA3eFvneOfAycbtzJlq1c1-RB7sheaQTi1ZAVebU,1065 -faker/providers/phone_number/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/fr_DZ/__init__.py,sha256=_5C4Tha9j5j5RR-s6IaP7Y__qczLf7tqYMoDNsvlaZg,88 -faker/providers/phone_number/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/fr_FR/__init__.py,sha256=QtHXByY71dlvPTMwDt5-isseB79-y1VJMDxdPZBFRU8,4872 -faker/providers/phone_number/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/he_IL/__init__.py,sha256=oLcg1F5_shT7038hUUKUI0YbPcP3IiBWCq0hJRRKMWg,468 -faker/providers/phone_number/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/hi_IN/__init__.py,sha256=rxdkzT_P3n15-F9QdjX2Bl6LEM2PC-DGYvFtVQBlqCA,232 -faker/providers/phone_number/hi_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/hr_HR/__init__.py,sha256=3U-8Sl_5C6wXwJ9al7lNnahBKGZNtnRUd3gKrymoxwU,803 -faker/providers/phone_number/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/hu_HU/__init__.py,sha256=O8Ul7T6LsoLNI47kACcp1qRt7ISHmmJgLcfkwFnludU,284 -faker/providers/phone_number/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/hy_AM/__init__.py,sha256=KsHfElTiiV2NjhckqtNjWfu6j0uoWMbC58FhQegaXbk,441 -faker/providers/phone_number/hy_AM/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/id_ID/__init__.py,sha256=xPcT9V9CF7745PWWtYaRMnZ4Q35YpCWRBdIFVUp3BuU,648 -faker/providers/phone_number/id_ID/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/it_CH/__init__.py,sha256=OV8iA3eFvneOfAycbtzJlq1c1-RB7sheaQTi1ZAVebU,1065 -faker/providers/phone_number/it_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/it_IT/__init__.py,sha256=DeYMBa2EOunnRS2mEfsK8hXTr1Guk_6zNGWq8C3Vluo,4628 -faker/providers/phone_number/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ja_JP/__init__.py,sha256=msuLjgbD_yEzTg-2gJkNvtAeGPssXgHhPjSXFv-xGUY,207 -faker/providers/phone_number/ja_JP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ka_GE/__init__.py,sha256=N8gG-KOichP-Zr2uPwhoSBCOyPyLtYDPOtJAZt2psyg,437 -faker/providers/phone_number/ka_GE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ko_KR/__init__.py,sha256=W0JWADw7NuI4pMtVYKikU2bJtUGJ_6TQevrDiWHb2A8,686 -faker/providers/phone_number/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/lt_LT/__init__.py,sha256=tiCqKpIrqFITnwZEAChORSj_6_KNOcYchS6xevGO_Ic,184 -faker/providers/phone_number/lt_LT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/lv_LV/__init__.py,sha256=B5scyzrc5r5YEBrQzp3M1vJefFh_zf5QfYo1mGOf7N4,184 -faker/providers/phone_number/lv_LV/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ne_NP/__init__.py,sha256=g-KDcqPvCJeqwwoHQY2xBZtvU87TF_lf70xiId7_1tI,229 -faker/providers/phone_number/ne_NP/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/nl_BE/__init__.py,sha256=4yFTYYmTvDxR2RyLadoXyVG6mh8lPyWWeCwyFtkDPks,561 -faker/providers/phone_number/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/nl_NL/__init__.py,sha256=sW78nu2orfFQFBEVk2GVCe7ZUb6Qye_Y83K9dQaO_u8,512 -faker/providers/phone_number/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/no_NO/__init__.py,sha256=0OdMEMHQ71kg4XyR84Lb2-4fzLQo71x5jZJFXS1fv88,328 -faker/providers/phone_number/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/pl_PL/__init__.py,sha256=G70V3cLcxlJCmYt-ySH1hsMUTB6YY-3gGPKuwI-tFGk,895 -faker/providers/phone_number/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/pt_BR/__init__.py,sha256=CwM1jitHQxWLjGMSlwaUN0dlcVV4gqANDvQMI7nW3dM,3537 -faker/providers/phone_number/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/pt_PT/__init__.py,sha256=NNtmAJKLJQNopkOCwZaNucY46VdGn8OXZMohwI1wSV4,1013 -faker/providers/phone_number/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ro_RO/__init__.py,sha256=FQsq3pat92h9_EDhXyM0KiDcp26KfirFRi4A5xSj5G0,2484 -faker/providers/phone_number/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ru_RU/__init__.py,sha256=6Fa1P_johi3tbbDySvSyEYSnvObjAMyTIE3GlzdNO0U,379 -faker/providers/phone_number/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/sk_SK/__init__.py,sha256=O-0SlZLxEdOidOsWWqyT1BI8yTrJnsSmmck9xlABifg,741 -faker/providers/phone_number/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/sl_SI/__init__.py,sha256=Zqz4KEYcfDvfsrnhZPOfNlDNVW9QUO2y3n2IfvMoc9o,361 -faker/providers/phone_number/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/sv_SE/__init__.py,sha256=nzwQph9vlBVYEcTTuoeO1VXpswlE8nUJXNI1Khwz83Q,367 -faker/providers/phone_number/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/ta_IN/__init__.py,sha256=rxdkzT_P3n15-F9QdjX2Bl6LEM2PC-DGYvFtVQBlqCA,232 -faker/providers/phone_number/ta_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/th_TH/__init__.py,sha256=b6fxyWEKmKvW8tO_fYoy7Rk-MDCR5wzyVBzMQKEqZns,1826 -faker/providers/phone_number/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/tl_PH/__init__.py,sha256=DaA90_JFnbMtbMJFc3BKDSDEoS_Bs1D7gMX8KpoNYlc,177 -faker/providers/phone_number/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/tr_TR/__init__.py,sha256=z3azoBt_y3OauqJSVjfemapXspEMluQ6XTkU-d-O8Os,349 -faker/providers/phone_number/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/tw_GH/__init__.py,sha256=FMHrGGEIrCJNdn1aA3eOLLCb5DAwZnwoLtYynNLwxUE,578 -faker/providers/phone_number/tw_GH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/uk_UA/__init__.py,sha256=XKSJS47r5YCA_1KVu3o7sw2ZsjVJXZlnKPqK1rROEnk,1446 -faker/providers/phone_number/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/uz_UZ/__init__.py,sha256=ezhcdIHC5px1k5k0kbTbXEZx4bAtdMQG6qplnoWalcs,369 -faker/providers/phone_number/uz_UZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/vi_VN/__init__.py,sha256=DKYHNkaUmj0mEzpU8_NEd7Oxh_owc_sH38gojtmhCRg,454 -faker/providers/phone_number/vi_VN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/zh_CN/__init__.py,sha256=3Svj3ZSlXIFy7fQLuXgevIpQmllt8QRzIJtkmfJ-VwY,668 -faker/providers/phone_number/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/phone_number/zh_TW/__init__.py,sha256=uHjt8S7uv9uBeWbamm4skX4AcTsOjZTesUe30f8viG4,348 -faker/providers/phone_number/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/profile/__init__.py,sha256=YAm9Q8srauKewou9vVMlVmAyHD6sRXHUXQwxcinVInY,2081 -faker/providers/profile/__pycache__/__init__.cpython-312.pyc,, -faker/providers/profile/en_US/__init__.py,sha256=jdMsH1sL5CowRxP7GwrE8lhaIUKR2oEAmU3T3RjQLM4,127 -faker/providers/profile/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/python/__init__.py,sha256=tPZojCk3T56Jej0T7SCi7UplrwqaFgF8B_SlwBkoCcg,23176 -faker/providers/python/__pycache__/__init__.cpython-312.pyc,, -faker/providers/python/en_US/__init__.py,sha256=kDetNXc4PbA6e_qNvhNH_kKjVlCXjHydHX6rscAOmM8,125 -faker/providers/python/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/sbn/__init__.py,sha256=alq2c_kMycLvThMliIf2wfB0y_04mQ6idLgrNbHgOzM,1978 -faker/providers/sbn/__pycache__/__init__.cpython-312.pyc,, -faker/providers/sbn/__pycache__/rules.cpython-312.pyc,, -faker/providers/sbn/__pycache__/sbn.cpython-312.pyc,, -faker/providers/sbn/en_US/__init__.py,sha256=dH_7x5djl9PMMBmMIEUJNiZfJgFc1MzhUeVqjO9AGTU,79 -faker/providers/sbn/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/sbn/rules.py,sha256=V3ksxlTSoT93dADehMrAldyXv8to6auzYpxgnqb7F8w,844 -faker/providers/sbn/sbn.py,sha256=F9uasQU4-z6GTB1ibN5s0kxMYoU1Lq8mNT_VMBAJcWI,1520 -faker/providers/ssn/__init__.py,sha256=FZv19IkzcNG8ajn6bNlj2H-L_7l8Lmx8yxFsaA8R00g,240 -faker/providers/ssn/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/ar_DZ/__init__.py,sha256=sorzsXIMEdsJcNSYVBhZ9kpK8tQY9RyptkBw4xQ1mTw,1817 -faker/providers/ssn/ar_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/az_AZ/__init__.py,sha256=2FzJVIMi6-1-zByIcf5N1fAWebLDDGGjdXwlEKHxtI4,778 -faker/providers/ssn/az_AZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/bg_BG/__init__.py,sha256=W-S-l18iyFvfe35n4tq69aXAsh2OcKxaS7rAXyjA__4,447 -faker/providers/ssn/bg_BG/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/bn_BD/__init__.py,sha256=8YTSIsZK3zRv-wfonEa-x1Mzr0q06x9zGITU5QSKojg,326 -faker/providers/ssn/bn_BD/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/cs_CZ/__init__.py,sha256=R7SCSf7y4OEf7mYCZwE8P0Paescx-xmOTih_P56Se_Y,1418 -faker/providers/ssn/cs_CZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/de_AT/__init__.py,sha256=rfKwL9pl_MTs3ySsanKok4fLnuTu4wzs4juJmXldcDo,1487 -faker/providers/ssn/de_AT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/de_CH/__init__.py,sha256=_ze0dSSSLXBPk-8zlx9DSImMO68f2Qvj2XTfjqkFUAk,86 -faker/providers/ssn/de_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/de_DE/__init__.py,sha256=-cSf4PM1EHKZLBiwab_w2YoOQ6JFWQvkntIxKURJSiI,3346 -faker/providers/ssn/de_DE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/dk_DK/__init__.py,sha256=4DzZKxQTWxtfnQT8Nm67NWPOLJan9vuCt2CL7uKwMEw,344 -faker/providers/ssn/dk_DK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/el_CY/__init__.py,sha256=0kNMryCyGc3zKxNCHfYfxkxkZIQdNivW9gSiXeKrxso,348 -faker/providers/ssn/el_CY/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/el_GR/__init__.py,sha256=sA4wc9JPGLnn-Hfwk3crug3sBxWUnW28GPR52CEa44s,3109 -faker/providers/ssn/el_GR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/en_CA/__init__.py,sha256=i38Psp12Sa4FVbcHl-Vas8ziTc_adSW_VFN5j5XEs0k,2966 -faker/providers/ssn/en_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/en_GB/__init__.py,sha256=hjFy8D-tZ6hZ-lJOVhhvrshdgIiOnP1kH-Y41pXvyK0,1303 -faker/providers/ssn/en_GB/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/en_IE/__init__.py,sha256=LjDKcotMC8A9CuhjmReiVJ0_RIULDAxsIGDo3oyLTVI,459 -faker/providers/ssn/en_IE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/en_IN/__init__.py,sha256=OLTc_vaLHivAHY_IEdosEdJY27y_CQ_sxpa27hZ0VIE,731 -faker/providers/ssn/en_IN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/en_PH/__init__.py,sha256=NZtmfIC6qjR-0MzLoCM0p-DhBD4qYHAl6XQP4Z7KmpE,2638 -faker/providers/ssn/en_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/en_US/__init__.py,sha256=-ROALGF3Wo9r61ES2UThunIBXdNlz1NJyhMURuAwpzk,6848 -faker/providers/ssn/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/es_CA/__init__.py,sha256=coa7tkFpFUMI6g_H3yNoJ2AEJo82HzIyxi-T9jOkOPs,157 -faker/providers/ssn/es_CA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/es_CL/__init__.py,sha256=7kKBUkS_g7RbwII-c30d_9cPh7MrNJXG7ovMt4ySiT0,1947 -faker/providers/ssn/es_CL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/es_CO/__init__.py,sha256=sCVCKKl8aF2LY1m9Ce0vyXTwemDoZ18g3_mKPwlzD68,2111 -faker/providers/ssn/es_CO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/es_ES/__init__.py,sha256=55DUqshIaNELbDgdmtGIFUNQRG_bdpu7lYE-1QEnoGA,3912 -faker/providers/ssn/es_ES/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/es_MX/__init__.py,sha256=N4psbKjpvM4S01XPAlpN-hV7ekISRUFyYRlbi6lu_gI,6706 -faker/providers/ssn/es_MX/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/et_EE/__init__.py,sha256=GyxYhsV-IqwK1Y6PSC_ByD7C6Pi5IxlTGa1uYTlqNf0,2665 -faker/providers/ssn/et_EE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/fi_FI/__init__.py,sha256=d2ePDGUrX6XCZmd1bA431X4j72zPMLP-Gwpg4CQ1vN0,2644 -faker/providers/ssn/fi_FI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/fil_PH/__init__.py,sha256=_mhNPEIXZQXqS3deHvbJWQj9se7WYoFyEqUG_LPR7Wo,152 -faker/providers/ssn/fil_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/fr_CH/__init__.py,sha256=F2BeLI9QV4P_RwQP4t5gozj-j-QpbhsiZ_wuTtdQ7pg,1495 -faker/providers/ssn/fr_CH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/fr_DZ/__init__.py,sha256=QDRfiQrZMiFpAIMpF4ZhRWKl8MtC5_2YWT1RriIf0lM,92 -faker/providers/ssn/fr_DZ/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/fr_FR/__init__.py,sha256=BhPUuQKsd4hS43ORFLi6slftD2JVXepcQKsaKWJbeM4,6772 -faker/providers/ssn/fr_FR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/he_IL/__init__.py,sha256=nN7s-tZDTKJDZpKhl25GS7ZRUSEamlHOw5dlxQH5Cwg,830 -faker/providers/ssn/he_IL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/hr_HR/__init__.py,sha256=wlSGobojooqHc9NvJxEcnrIqalHLeZAyGvlTjPXWHXE,1453 -faker/providers/ssn/hr_HR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/hu_HU/__init__.py,sha256=FXgFpmUhYIIwMfnoYPz8ZdCWGYWnF_kjb9u3FFaoAhg,4387 -faker/providers/ssn/hu_HU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/it_IT/__init__.py,sha256=56EuS9NaCUudRxfK3UBGGC30IFN6_jhETZWzeX8N16Y,101765 -faker/providers/ssn/it_IT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/ko_KR/__init__.py,sha256=oOfa361sNnqp6FEEBikbCRtwIh3WIdpOBmV6DDsuxJ4,252 -faker/providers/ssn/ko_KR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/lb_LU/__init__.py,sha256=s8S2kO4LHNuHJqeCOhFRrWMqxj5sPN8ivBCITlXnEPg,416 -faker/providers/ssn/lb_LU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/lt_LT/__init__.py,sha256=BwYplSKB7VuGNyAuG9rs9KpukMTmSXD5iyZihTnkhfA,451 -faker/providers/ssn/lt_LT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/lv_LV/__init__.py,sha256=o9BIBI9BQlrmbfhMofPiTb7ZlWloAinUDJCGBDimGYI,2257 -faker/providers/ssn/lv_LV/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/mt_MT/__init__.py,sha256=1rOuLbGEw7vt3ggxzT45bwRsijurj9T5z4GqrGSLio4,404 -faker/providers/ssn/mt_MT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/nl_BE/__init__.py,sha256=EN0IM_g-F1RtVBzidw9rLjoXq5C9OTu-B5fV5FhSeuE,2868 -faker/providers/ssn/nl_BE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/nl_NL/__init__.py,sha256=JfpGYoqFH-4xX4brm17JrQlVQdQxiLfZyFBor8WIeLI,1623 -faker/providers/ssn/nl_NL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/no_NO/__init__.py,sha256=dqUeDDGJZAGZCETxHHKfxavwO56TSMF7ro0GPZkouTY,3299 -faker/providers/ssn/no_NO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/pl_PL/__init__.py,sha256=PB2wMD86JAE3xiVPasXctj4Gr5HCPcIvr_vng-PL6hM,1957 -faker/providers/ssn/pl_PL/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/pt_BR/__init__.py,sha256=w3AbkACbB-5ZXKVHs1arxBWSJnUSuITDyEHyPv4yZk8,1823 -faker/providers/ssn/pt_BR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/pt_PT/__init__.py,sha256=rlOPkxanq7mqYZy-NmlxMcBs_TBVbBmRvr17I9IFK7o,411 -faker/providers/ssn/pt_PT/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/ro_RO/__init__.py,sha256=gc1Bn2a8gX43-iBxsyKgraWtwFZxeRydhigV5HB0tUM,3472 -faker/providers/ssn/ro_RO/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/ru_RU/__init__.py,sha256=FC5QIj4j_-1kp7GEG3Gjkj29pBth-UYFakIGSajBOLk,106 -faker/providers/ssn/ru_RU/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/sk_SK/__init__.py,sha256=qJJLsnFcP6R0tSky7xeFt-4w7sWVN8gUgN53an6b1DM,1370 -faker/providers/ssn/sk_SK/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/sl_SI/__init__.py,sha256=hZqIBUnX_b0dhB7nOkuim3YwXV-TZ-JZnd4enBd_Sxo,408 -faker/providers/ssn/sl_SI/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/sv_SE/__init__.py,sha256=UCeaSDrWccsezcHYeJpvsqv-Hz4wV6HoImbJueTRNm0,3016 -faker/providers/ssn/sv_SE/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/th_TH/__init__.py,sha256=YmoOjQqLZ7Irc0NDvOrgGFYrwfG9BDgFpwzNwJ0pv_s,1892 -faker/providers/ssn/th_TH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/tl_PH/__init__.py,sha256=_mhNPEIXZQXqS3deHvbJWQj9se7WYoFyEqUG_LPR7Wo,152 -faker/providers/ssn/tl_PH/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/tr_TR/__init__.py,sha256=qmTFLHJS9IZo5ITzpC2bNc9WpJHA9EXIMwVvz4CjerM,1190 -faker/providers/ssn/tr_TR/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/uk_UA/__init__.py,sha256=T5KP18nwg4yqcrYG2M65o_Jm2PTn0nI8PhfZ-dc6tvI,2159 -faker/providers/ssn/uk_UA/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/zh_CN/__init__.py,sha256=7kx5ctZSLuk2Ov5V881tySud6DcNHaoSu7-7VugxxMo,65021 -faker/providers/ssn/zh_CN/__pycache__/__init__.cpython-312.pyc,, -faker/providers/ssn/zh_TW/__init__.py,sha256=29vzvP_cPXScH_V9nap6x3SBsTa-9mG9cfhrhU8Qf1s,1310 -faker/providers/ssn/zh_TW/__pycache__/__init__.cpython-312.pyc,, -faker/providers/user_agent/__init__.py,sha256=5QKJrkoArdOSR1dW-ne3fGjgLDMr13RYIFFLq-B41LA,11946 -faker/providers/user_agent/__pycache__/__init__.cpython-312.pyc,, -faker/providers/user_agent/en_US/__init__.py,sha256=8kjhwiO9TWN61HA7pJE_yCEofwKzxR4C2yvrd8ffwMc,131 -faker/providers/user_agent/en_US/__pycache__/__init__.cpython-312.pyc,, -faker/proxy.py,sha256=fJfBiIw0qAjwkQGI0_yeYTz7XhS0H9ItDl2qBxnU6pc,16032 -faker/proxy.pyi,sha256=P4Z959fdI0Ns6mxMrSyd-6XxuvVTI-JyJj2DDkLPf5o,149366 -faker/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -faker/sphinx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -faker/sphinx/__pycache__/__init__.cpython-312.pyc,, -faker/sphinx/__pycache__/autodoc.cpython-312.pyc,, -faker/sphinx/__pycache__/docstring.cpython-312.pyc,, -faker/sphinx/__pycache__/documentor.cpython-312.pyc,, -faker/sphinx/__pycache__/validator.cpython-312.pyc,, -faker/sphinx/autodoc.py,sha256=6ioBWnbmkUW0WFjmChJdiHqM0P0-ka5OIkSGDefT9XY,569 -faker/sphinx/docstring.py,sha256=9dNLYs_gG7a22n0xtV8xAqAq-_ThaXXYtnCFfedAVVo,8527 -faker/sphinx/documentor.py,sha256=mfrfEiSJMHrZHZn9D-oyfIS7PF-5RhM69teCT_48oB4,5678 -faker/sphinx/validator.py,sha256=IyEHxm-Sg2orQAC3CbmF5l9z9xElQl7MIYtX-lfngyM,6602 -faker/typing.py,sha256=bT3MMX5yE_j2dcR6FJ-5_ptQAUGVvp6L3Lu3jVZ7gdM,1192 -faker/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 -faker/utils/__pycache__/__init__.cpython-312.pyc,, -faker/utils/__pycache__/checksums.cpython-312.pyc,, -faker/utils/__pycache__/datasets.cpython-312.pyc,, -faker/utils/__pycache__/decorators.cpython-312.pyc,, -faker/utils/__pycache__/distribution.cpython-312.pyc,, -faker/utils/__pycache__/loading.cpython-312.pyc,, -faker/utils/__pycache__/text.cpython-312.pyc,, -faker/utils/checksums.py,sha256=d4Ta5HasZ4mSoZJwlWahWE1n-zBa5Zqc30mjAB7qO-Q,617 -faker/utils/datasets.py,sha256=A28u0kDA6Xu42ApZ6so9R1KLJ7qzZ6QYBzuayisNwbw,229 -faker/utils/decorators.py,sha256=kQIgPcVY6sNglMeYo8L-GlBo9S9a6gCa3rmnb3rPIPA,954 -faker/utils/distribution.py,sha256=DCLEYtjSxrx1cZ2xmIxuh04bcSxBR0bujMjXOsTbQoQ,2310 -faker/utils/loading.py,sha256=cTgEIbbj-FpR_3ddCjMshijrrS1_p_hkvYAFvSIVeUw,1884 -faker/utils/text.py,sha256=eYy_jkKs3KJigyijiQl7HovmJgEdiO-tZh9CEafRNFg,1039 diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/REQUESTED b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/REQUESTED deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/WHEEL b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/WHEEL deleted file mode 100644 index da097d6..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/WHEEL +++ /dev/null @@ -1,5 +0,0 @@ -Wheel-Version: 1.0 -Generator: setuptools (80.4.0) -Root-Is-Purelib: true -Tag: py3-none-any - diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/entry_points.txt b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/entry_points.txt deleted file mode 100644 index 6d03deb..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/entry_points.txt +++ /dev/null @@ -1,5 +0,0 @@ -[console_scripts] -faker = faker.cli:execute_from_command_line - -[pytest11] -faker = faker.contrib.pytest.plugin diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/licenses/LICENSE.txt b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/licenses/LICENSE.txt deleted file mode 100644 index 1e1ef06..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/licenses/LICENSE.txt +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2012 Daniele Faraglia - -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/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/top_level.txt b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/top_level.txt deleted file mode 100644 index 9d7f6e8..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/top_level.txt +++ /dev/null @@ -1 +0,0 @@ -faker diff --git a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/zip-safe b/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/zip-safe deleted file mode 100644 index 8b13789..0000000 --- a/.venv/lib/python3.12/site-packages/faker-40.18.0.dist-info/zip-safe +++ /dev/null @@ -1 +0,0 @@ - diff --git a/.venv/lib/python3.12/site-packages/faker/__init__.py b/.venv/lib/python3.12/site-packages/faker/__init__.py deleted file mode 100644 index 685ffdd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from faker.factory import Factory -from faker.generator import Generator -from faker.proxy import Faker - -VERSION = "40.18.0" - -__all__ = ("Factory", "Generator", "Faker") diff --git a/.venv/lib/python3.12/site-packages/faker/__main__.py b/.venv/lib/python3.12/site-packages/faker/__main__.py deleted file mode 100644 index 8d846ab..0000000 --- a/.venv/lib/python3.12/site-packages/faker/__main__.py +++ /dev/null @@ -1,4 +0,0 @@ -if __name__ == "__main__": - from .cli import execute_from_command_line - - execute_from_command_line() diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f2226081fbca9d291da493ad6ce60338c4e00090..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 400 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 diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/documentor.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/documentor.cpython-312.pyc deleted file mode 100644 index ff2a9c4680ca1dcd8d3dbf1812f4c86255066887..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5506 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 o)hcfjTC)H>Mz0(+GwbN~PV diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/exceptions.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/exceptions.cpython-312.pyc deleted file mode 100644 index 7648333991cd2efab13b3561d322bddfd4af4b84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1310 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 VGxx01|K@+dFsGTvNS}0n{|8hf0Ac_D diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/generator.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/generator.cpython-312.pyc deleted file mode 100644 index 8d9d168ff9f24a664d38c1d964489c06bc31cfc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9755 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 Tx_{33-;M-Bw?CsWB{TmoQD^$_ diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/proxy.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/proxy.cpython-312.pyc deleted file mode 100644 index 47b5fd81ab40d16025f5795364d8471e46607916..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22469 zcmdUXdvF`andb~%1PFkj2oQXe;7cYbiqy-NE$d;Kk|jA3{h*}8kYxzMfD|YYpa-BH z2pB6~Z3Rk{6%{)tYHhFRjjuwLd~59{wX0P25<9u7^Iop%0D%e-EWN8F-m1;rA4iMY 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 CDvqoG diff --git a/.venv/lib/python3.12/site-packages/faker/__pycache__/typing.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/__pycache__/typing.cpython-312.pyc deleted file mode 100644 index 5e0039dc6a97ffb409cdedbdbe61aeb2168a6ccc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1989 zcmZ`)&2Q936d$iY*Iw^uK7l~^5^SYr3y~0s5QiphX+=|{0IDoimSfK*27fGLFJe(D zr6QH6)Wh~fj%iP+xNzvDe?u=s6m{#W0;%eO+tO4*;?(!-O$diN%5Q$}&6}Aw?_>5C zT~`TyKdCpi1Va8wg#pNeai_`=@_;zR;XGpCnDaP4XYd?y-V=P$5PiWAe94efo#4s7 zVkjvWy}Yj)s;?QEUoZ;3Zs>l|C~_o6J|d2^P8|7RE<4F6(IPF=3RRl?IH-(jj!@lE z9GTW0@&lV8uo0<1C0e7ErkL6dgRYjYEYJ#SnnJ1{p_-FV*(g|4z@kRS=(xi*rBr)> zk{jo;efMMPnF^k1yPiE9OdE%miBtH2GbTD*U4Mbvg*umLpD~9r>dd=#T;~(Pv0|Di zh_UO_B#-D&FSfu|o~O3!TV7pEgv)LeC-P-Crp)pZWs%-$)4-;Qe6`b}*DaQa*8(>T z?ETK^17T+t$OA%&!8ydpfAzIWF-(;8KHtu zMW_MPr9_CR*Zg0D2wj{^zt?tSCG=?{4&xQ-TXz~)cgYnN-k^5e@LijQt%0x<#*L}l zG`QXH+@(gV6R(89^wgQNjR?~BZp*T7TFW$QG_9MIHR4Xo4VI@`okTHBH*jOqyjyz{ z?x|fRHeXZ+SR?&186Lkce4Fo$O~Rn}Mh?NC^(NlAFZ`+;=$$x!UwEn<-2r1#=U?FE z6MpXc+zSjKdPFgHklim#jDE@-wwN@crqu9tVpttHY*Io!|2}yRQtP_dE#s+tGflT*x}(BD)C7@BxZ`2I%t~$NfR7 zf0J|1$kaBO`jZ@dMrNOq*;kUz&AcQ4{Yg?9>VB{>y(vE)I<;Lqy{7%HRlBnrt6Pgt zv@>f;uRPp!HZE+uF>U0^OCTj JeI=(w@E>v*?mhqj diff --git a/.venv/lib/python3.12/site-packages/faker/cli.py b/.venv/lib/python3.12/site-packages/faker/cli.py deleted file mode 100644 index 354eb82..0000000 --- a/.venv/lib/python3.12/site-packages/faker/cli.py +++ /dev/null @@ -1,310 +0,0 @@ -import argparse -import itertools -import logging -import os -import random -import sys -import textwrap - -from io import TextIOWrapper -from pathlib import Path -from typing import Dict, List, Optional, TextIO, TypeVar, Union - -from . import VERSION, Faker, documentor, exceptions -from .config import AVAILABLE_LOCALES, DEFAULT_LOCALE, META_PROVIDERS_MODULES -from .documentor import Documentor -from .providers import BaseProvider - -__author__ = "joke2k" - -T = TypeVar("T") - - -def _encode_for_output(value: str, output: TextIO) -> str: - encoding = getattr(output, "encoding", None) - if encoding is None: - return value - - try: - value.encode(encoding) - except UnicodeEncodeError: - return value.encode(encoding, errors="backslashreplace").decode(encoding) - - return value - - -def print_provider( - doc: Documentor, - provider: BaseProvider, - formatters: Dict[str, T], - excludes: Optional[List[str]] = None, - output: Optional[TextIO] = None, -) -> None: - if output is None: - output = sys.stdout - if excludes is None: - excludes = [] - - print(file=output) - print(_encode_for_output(f"### {doc.get_provider_name(provider)}", output), file=output) - print(file=output) - - margin = max(30, doc.max_name_len + 2) - for signature, example in formatters.items(): - if signature in excludes: - continue - signature_lines = textwrap.wrap(signature, width=margin, subsequent_indent=" ") - try: - lines = textwrap.wrap( - str(example).expandtabs(), - width=150 - margin, - initial_indent="# ", - subsequent_indent=" ", - ) - except UnicodeDecodeError: - # The example is actually made of bytes. - # We could coerce to bytes, but that would fail anyway when we wiil - # try to `print` the line. - lines = [""] - except UnicodeEncodeError: - raise Exception(f"error on {signature!r} with value {example!r}") - for left, right in itertools.zip_longest(signature_lines, lines, fillvalue=""): - line = f"\t{left:<{margin}} {right}" - print(_encode_for_output(line, output), file=output) - - -def print_doc( - provider_or_field: Optional[str] = None, - args: Optional[List[T]] = None, - lang: str = DEFAULT_LOCALE, - output: Optional[Union[TextIO, TextIOWrapper]] = None, - seed: Optional[float] = None, - includes: Optional[List[str]] = None, -) -> None: - if args is None: - args = [] - if output is None: - output = sys.stdout - fake = Faker(locale=lang, includes=includes) - fake.seed_instance(seed) - - from faker.providers import BaseProvider - - base_provider_formatters = list(dir(BaseProvider)) - - if provider_or_field: - if "." in provider_or_field: - parts = provider_or_field.split(".") - locale = parts[-2] if parts[-2] in AVAILABLE_LOCALES else lang - fake = Faker(locale, providers=[provider_or_field], includes=includes) - fake.seed_instance(seed) - doc = documentor.Documentor(fake) - doc.already_generated = base_provider_formatters - print_provider( - doc, - fake.get_providers()[0], - doc.get_provider_formatters(fake.get_providers()[0]), - output=output, - ) - else: - try: - print(fake.format(provider_or_field, *args), end="", file=output) - except AttributeError: - raise ValueError(f'No faker found for "{provider_or_field}({args})"') - - else: - doc = documentor.Documentor(fake) - unsupported: List[str] = [] - - while True: - try: - formatters = doc.get_formatters(with_args=True, with_defaults=True, excludes=unsupported) - except exceptions.UnsupportedFeature as e: - unsupported.append(e.name) - else: - break - - for provider, fakers in formatters: - print_provider(doc, provider, fakers, output=output) - - -class Command: - def __init__(self, argv: Optional[str] = None) -> None: - self.argv = argv or sys.argv[:] - self.prog_name = Path(self.argv[0]).name - - def execute(self) -> None: - """ - Given the command-line arguments, this creates a parser appropriate - to that command, and runs it. - """ - - # retrieve default language from system environment - default_locale = os.environ.get("LANG", "en_US").split(".")[0] - if default_locale not in AVAILABLE_LOCALES: - default_locale = DEFAULT_LOCALE - - epilog = f"""supported locales: - - {', '.join(sorted(AVAILABLE_LOCALES))} - - Faker can take a locale as an optional argument, to return localized data. If - no locale argument is specified, the factory falls back to the user's OS - locale as long as it is supported by at least one of the providers. - - for this user, the default locale is {default_locale}. - - If the optional argument locale and/or user's default locale is not available - for the specified provider, the factory falls back to faker's default locale, - which is {DEFAULT_LOCALE}. - -examples: - - $ faker address - 968 Bahringer Garden Apt. 722 - Kristinaland, NJ 09890 - - $ faker -l de_DE address - Samira-Niemeier-Allee 56 - 94812 Biedenkopf - - $ faker profile ssn,birthdate - {{'ssn': u'628-10-1085', 'birthdate': '2008-03-29'}} - - $ faker -r=3 -s=";" name - Willam Kertzmann; - Josiah Maggio; - Gayla Schmitt; - -""" - - formatter_class = argparse.RawDescriptionHelpFormatter - parser = argparse.ArgumentParser( - prog=self.prog_name, - description=f"{self.prog_name} version {VERSION}", - epilog=epilog, - formatter_class=formatter_class, - ) - - parser.add_argument("--version", action="version", version=f"%(prog)s {VERSION}") - - parser.add_argument( - "-v", - "--verbose", - action="store_true", - help="show INFO logging events instead " - "of CRITICAL, which is the default. These logging " - "events provide insight into localization of " - "specific providers.", - ) - - parser.add_argument( - "-o", - metavar="output", - type=argparse.FileType("w"), - default=sys.stdout, - help="redirect output to a file", - ) - - parser.add_argument( - "-l", - "--lang", - choices=AVAILABLE_LOCALES, - default=default_locale, - metavar="LOCALE", - help="specify the language for a localized provider (e.g. de_DE)", - ) - parser.add_argument( - "-r", - "--repeat", - default=1, - type=int, - help="generate the specified number of outputs", - ) - parser.add_argument( - "-s", - "--sep", - default="\n", - help="use the specified separator after each output", - ) - - parser.add_argument( - "--seed", - metavar="SEED", - type=int, - help="specify a seed for the random generator so " - "that results are repeatable. Also compatible " - "with 'repeat' option", - ) - - parser.add_argument( - "-i", - "--include", - action="append", - help="list of additional custom providers to " - "user, given as the import path of the module " - "containing your Provider class (not the provider " - "class itself)", - ) - - parser.add_argument( - "fake", - action="store", - nargs="?", - help="name of the fake to generate output for (e.g. profile)", - ) - - parser.add_argument( - "fake_args", - metavar="fake argument", - action="store", - nargs="*", - help="optional arguments to pass to the fake " - "(e.g. the profile fake takes an optional " - "list of comma separated field names as the " - "first argument)", - ) - - arguments = parser.parse_args(self.argv[1:]) - if arguments.include is None: - arguments.include = META_PROVIDERS_MODULES - - if arguments.verbose: - logging.basicConfig(level=logging.DEBUG) - else: - logging.basicConfig(level=logging.CRITICAL) - - random.seed(arguments.seed) - seeds = [random.random() for _ in range(arguments.repeat)] - - for i in range(arguments.repeat): - print_doc( - arguments.fake, - arguments.fake_args, - lang=arguments.lang, - output=arguments.o, - seed=seeds[i], - includes=arguments.include, - ) - print(arguments.sep, file=arguments.o) - - if not arguments.fake: - # repeat not supported for all docs - break - - -def execute_from_command_line(argv: Optional[str] = None) -> None: - """A simple method that runs a Command.""" - if sys.stdout.encoding is None: - print( - "please set python env PYTHONIOENCODING=UTF-8, example: " - "export PYTHONIOENCODING=UTF-8, when writing to stdout", - file=sys.stderr, - ) - exit(1) - - command = Command(argv) - command.execute() - - -if __name__ == "__main__": - execute_from_command_line() diff --git a/.venv/lib/python3.12/site-packages/faker/config.py b/.venv/lib/python3.12/site-packages/faker/config.py deleted file mode 100644 index e668c37..0000000 --- a/.venv/lib/python3.12/site-packages/faker/config.py +++ /dev/null @@ -1,13 +0,0 @@ -from importlib import import_module - -from .utils.loading import find_available_locales, find_available_providers - -DEFAULT_LOCALE = "en_US" - -META_PROVIDERS_MODULES = [ - "faker.providers", -] - -PROVIDERS = find_available_providers([import_module(path) for path in META_PROVIDERS_MODULES]) - -AVAILABLE_LOCALES = find_available_locales(PROVIDERS) diff --git a/.venv/lib/python3.12/site-packages/faker/contrib/__init__.py b/.venv/lib/python3.12/site-packages/faker/contrib/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/.venv/lib/python3.12/site-packages/faker/contrib/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/contrib/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index c362593f445bc024747bcbb7a2f49f72acc79628..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmX@j%ge<80$aGUK-6Opfet>i07a%VR5EBX`mJOrVgm9$gVg-W)z8S!P1P^SFUd&F zO{~xlfiVJ#^0QKtOZ0OylZ)~Tpq!-q5`De0)VwnNoXjNsg36MN{5)elLnHm-%#u{y zg2d$P#Prl+{j|jF)FS=l{JfGPptAV*%)HE!_;|g7%3mBdx%nxjIjMFi07a%VR5EBX`mJOrVgm9$gVg*g(a*@wP1P^SFUd&F zO{~xlfiVJ#^0QKtOZ0OylZ)~Tpq!-q5`De0)VwnNoXjNsg36MN{5)elLnHm-%#u{y zg2d$P#Prl+{j|jF)FS=l{JfGPh_ck;68-r2%)HE!_;|g7%3mBdx%nxjIjMF zAu>Ep5N7;4oRU?lKO-`0QNm_O}a*OAB9p zaeHAd)B_d-j_)m2v@jVo{Vof2t0(+kz?wL^SuTm_chUj@QpA1Kmgncj8sZb6k?3>7 z#ygR}4eaS6E*Vo?3qWQxikrG@jk&bZ zPzg2~)bRpgc}-T$WGIZqmJ`sG$OnjyCm8oEms*}pVefnHI_)sa6LiJr6w;>m9MN(- zbxD`|ZPpak*cG>F*W$u~7=o7HbHN2%$1GbJ%CH)Z6o+ZzJ;z~cBvnW_7CG>&4huqKm5JzJ&2oE;%K~y)XZYiE&c5q`bDo8LAh|>7 zD{i*@4l{)hmv^lD=3*>-Jxa>#I8E+H8Jf$!Fsp0KTQgl}+3c>1mhXL7eg6Y9a0Hv_ zTFtxGDho^%wb}GN!ACH-)$F>xRmZD#*TeDCgcOkHA(TrprjKFTM91SOU4B{`PTv^7 zr{6d%yg4jf8x*eXRX*DsgY4x!a`^--(Z5siT_DtdQnCF1 zR1`_+UyifX+t9qi1-6Npo*SA-jVuw`NZ91UhPcQRIrWt2Yi(JkbEBWwO~x3E05f`l zUPHBWuWi*Peh;J#G*Rlot=icp;tU$f3#bJ>#B64(RtS2Iu$Em(;95lB(@p{^%A<&+ zTt=b(*)TIYmu}!`A!^mReAT!NOVKkNi(i~Ob91v{PJ)(V*I}yXIY8Yo*>su3D};|r zJ4xe^DCbik29oQtnYkeqNu}WLfLxN=A7BD*rBJ%KT^hbMGk{N@Ipx-~@_ykaP|BFx zt{oWfJtjv+acEo_7+3bLezI@e+#)ZsrOnwx{f#I0hNbHR`1I?CG3IH1-}q>Y9Fp{q z6bGcZJ-bJW2V@!!9?d_TACjp7nK~e)qpYzx&kGPrB^{=qe`Gt#5Thcfn5)n@E6(bu zcZ;A5^{A&+J)a}xKxO$V{b|RydoH`hDFEfu8GHlNaROuf8_NBKN`IiMM@D{g3^Ld9 so5e@vhvg^Ev&jQoeW_(IJxL(VJeJb&+oyniTzILC str: - chars = "" - for ch in txt: - codepoint = ord(ch) - - try: - chars += codes[codepoint] - except IndexError: - pass - return chars diff --git a/.venv/lib/python3.12/site-packages/faker/decode/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/decode/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 361fcabe5638d05648922f89b68a765b47b6886a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 614 zcmX|8L2DC16n?X_8{Du7U9qUuL&5g2f|=T!1o31LL4u$jT9B~aow(a(cb3^nn@9pV zc&N~WV8Q$VFXF+A|H4ymanX|}JuOWSl9O-S#0T@f@6G$>y*D%8DwQ%6_O-nG2jSOw zFn9VKr>jUlfDb$SU^ zEDaUElepfV`--Qm?e1~Od|vcptyUO^s@19`{mksf;l;MB;snJMX%pQDCRTOSm{jdk zC>i#l_T$RcvG)Gap_%K{v?rE*{9=6XWO@C>T7TQfP1NL7u(K7}w7VkT&N30R`@qZvX%Q diff --git a/.venv/lib/python3.12/site-packages/faker/decode/__pycache__/codes.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/decode/__pycache__/codes.cpython-312.pyc deleted file mode 100644 index ef8f31a9f41d8902a1ffde31ff717c784e610a93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348885 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

fnDv8>G2p>T_N8%WB`| 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 diff --git a/.venv/lib/python3.12/site-packages/faker/decode/codes.py b/.venv/lib/python3.12/site-packages/faker/decode/codes.py deleted file mode 100644 index 1b82971..0000000 --- a/.venv/lib/python3.12/site-packages/faker/decode/codes.py +++ /dev/null @@ -1,65538 +0,0 @@ -codes = ( - "\x00", - "\x01", - "\x02", - "\x03", - "\x04", - "\x05", - "\x06", - "\x07", - "\x08", - "\t", - "\n", - "\x0b", - "\x0c", - "\r", - "\x0e", - "\x0f", - "\x10", - "\x11", - "\x12", - "\x13", - "\x14", - "\x15", - "\x16", - "\x17", - "\x18", - "\x19", - "\x1a", - "\x1b", - "\x1c", - "\x1d", - "\x1e", - "\x1f", - " ", - "!", - '"', - "#", - "$", - "%", - "&", - "'", - "(", - ")", - "*", - "+", - ",", - "-", - ".", - "/", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - ":", - ";", - "<", - "=", - ">", - "?", - "@", - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - "[", - "\\", - "]", - "^", - "_", - "`", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "{", - "|", - "}", - "~", - "\x7f", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - " ", - "!", - "C/", - "PS", - "$?", - "Y=", - "|", - "SS", - '"', - "(c)", - "a", - "<<", - "!", - "", - "(r)", - "-", - "deg", - "+-", - "2", - "3", - "'", - "u", - "P", - "*", - ",", - "1", - "o", - ">>", - "1/4", - "1/2", - "3/4", - "?", - "A", - "A", - "A", - "A", - "A", - "A", - "AE", - "C", - "E", - "E", - "E", - "E", - "I", - "I", - "I", - "I", - "D", - "N", - "O", - "O", - "O", - "O", - "O", - "x", - "O", - "U", - "U", - "U", - "U", - "Y", - "Th", - "ss", - "a", - "a", - "a", - "a", - "a", - "a", - "ae", - "c", - "e", - "e", - "e", - "e", - "i", - "i", - "i", - "i", - "d", - "n", - "o", - "o", - "o", - "o", - "o", - "/", - "o", - "u", - "u", - "u", - "u", - "y", - "th", - "y", - "A", - "a", - "A", - "a", - "A", - "a", - "C", - "c", - "C", - "c", - "C", - "c", - "C", - "c", - "D", - "d", - "D", - "d", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "G", - "g", - "G", - "g", - "G", - "g", - "G", - "g", - "H", - "h", - "H", - "h", - "I", - "i", - "I", - "i", - "I", - "i", - "I", - "i", - "I", - "i", - "IJ", - "ij", - "J", - "j", - "K", - "k", - "k", - "L", - "l", - "L", - "l", - "L", - "l", - "L", - "l", - "L", - "l", - "N", - "n", - "N", - "n", - "N", - "n", - "'n", - "ng", - "NG", - "O", - "o", - "O", - "o", - "O", - "o", - "OE", - "oe", - "R", - "r", - "R", - "r", - "R", - "r", - "S", - "s", - "S", - "s", - "S", - "s", - "S", - "s", - "T", - "t", - "T", - "t", - "T", - "t", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "W", - "w", - "Y", - "y", - "Y", - "Z", - "z", - "Z", - "z", - "Z", - "z", - "s", - "b", - "B", - "B", - "b", - "6", - "6", - "O", - "C", - "c", - "D", - "D", - "D", - "d", - "d", - "3", - "@", - "E", - "F", - "f", - "G", - "G", - "hv", - "I", - "I", - "K", - "k", - "l", - "l", - "W", - "N", - "n", - "O", - "O", - "o", - "OI", - "oi", - "P", - "p", - "YR", - "2", - "2", - "SH", - "sh", - "t", - "T", - "t", - "T", - "U", - "u", - "Y", - "V", - "Y", - "y", - "Z", - "z", - "ZH", - "ZH", - "zh", - "zh", - "2", - "5", - "5", - "ts", - "w", - "|", - "||", - "|=", - "!", - "DZ", - "Dz", - "dz", - "LJ", - "Lj", - "lj", - "NJ", - "Nj", - "nj", - "A", - "a", - "I", - "i", - "O", - "o", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "@", - "A", - "a", - "A", - "a", - "AE", - "ae", - "G", - "g", - "G", - "g", - "K", - "k", - "O", - "o", - "O", - "o", - "ZH", - "zh", - "j", - "DZ", - "Dz", - "dz", - "G", - "g", - "HV", - "W", - "N", - "n", - "A", - "a", - "AE", - "ae", - "O", - "o", - "A", - "a", - "A", - "a", - "E", - "e", - "E", - "e", - "I", - "i", - "I", - "i", - "O", - "o", - "O", - "o", - "R", - "r", - "R", - "r", - "U", - "u", - "U", - "u", - "S", - "s", - "T", - "t", - "Y", - "y", - "H", - "h", - "N", - "d", - "OU", - "ou", - "Z", - "z", - "A", - "a", - "E", - "e", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "Y", - "y", - "l", - "n", - "t", - "j", - "db", - "qp", - "A", - "C", - "c", - "L", - "T", - "s", - "z", - "[?]", - "[?]", - "B", - "U", - "^", - "E", - "e", - "J", - "j", - "q", - "q", - "R", - "r", - "Y", - "y", - "a", - "a", - "a", - "b", - "o", - "c", - "d", - "d", - "e", - "@", - "@", - "e", - "e", - "e", - "e", - "j", - "g", - "g", - "g", - "g", - "u", - "Y", - "h", - "h", - "i", - "i", - "I", - "l", - "l", - "l", - "lZ", - "W", - "W", - "m", - "n", - "n", - "n", - "o", - "OE", - "O", - "F", - "r", - "r", - "r", - "r", - "r", - "r", - "r", - "R", - "R", - "s", - "S", - "j", - "S", - "S", - "t", - "t", - "u", - "U", - "v", - "^", - "w", - "y", - "Y", - "z", - "z", - "Z", - "Z", - "?", - "?", - "?", - "C", - "@", - "B", - "E", - "G", - "H", - "j", - "k", - "L", - "q", - "?", - "?", - "dz", - "dZ", - "dz", - "ts", - "tS", - "tC", - "fN", - "ls", - "lz", - "WW", - "]]", - "h", - "h", - "h", - "h", - "j", - "r", - "r", - "r", - "r", - "w", - "y", - "'", - '"', - "`", - "'", - "`", - "`", - "'", - "?", - "?", - "<", - ">", - "^", - "V", - "^", - "V", - "'", - "-", - "/", - "\\", - ",", - "_", - "\\", - "/", - ":", - ".", - "`", - "'", - "^", - "V", - "+", - "-", - "V", - ".", - "@", - ",", - "~", - '"', - "R", - "X", - "G", - "l", - "s", - "x", - "?", - "", - "", - "", - "", - "", - "", - "", - "V", - "=", - '"', - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "a", - "e", - "i", - "o", - "u", - "c", - "d", - "h", - "m", - "r", - "t", - "v", - "x", - "[?]", - "[?]", - "[?]", - "[?]", - "'", - ",", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "[?]", - "[?]", - "[?]", - "?", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "A", - ";", - "E", - "E", - "I", - "[?]", - "O", - "[?]", - "U", - "O", - "I", - "A", - "B", - "G", - "D", - "E", - "Z", - "E", - "Th", - "I", - "K", - "L", - "M", - "N", - "Ks", - "O", - "P", - "R", - "[?]", - "S", - "T", - "U", - "Ph", - "Kh", - "Ps", - "O", - "I", - "U", - "a", - "e", - "e", - "i", - "u", - "a", - "b", - "g", - "d", - "e", - "z", - "e", - "th", - "i", - "k", - "l", - "m", - "n", - "x", - "o", - "p", - "r", - "s", - "s", - "t", - "u", - "ph", - "kh", - "ps", - "o", - "i", - "u", - "o", - "u", - "o", - "[?]", - "b", - "th", - "U", - "U", - "U", - "ph", - "p", - "&", - "[?]", - "[?]", - "St", - "st", - "W", - "w", - "Q", - "q", - "Sp", - "sp", - "Sh", - "sh", - "F", - "f", - "Kh", - "kh", - "H", - "h", - "G", - "g", - "CH", - "ch", - "Ti", - "ti", - "k", - "r", - "c", - "j", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "Ie", - "Io", - "Dj", - "Gj", - "E", - "Dz", - "I", - "Yi", - "J", - "Lj", - "Nj", - "Tsh", - "Kj", - "I", - "U", - "Dzh", - "A", - "B", - "V", - "G", - "D", - "E", - "Zh", - "Z", - "I", - "I", - "K", - "L", - "M", - "N", - "O", - "P", - "R", - "S", - "T", - "U", - "F", - "Kh", - "Ts", - "Ch", - "Sh", - "Shch", - "", - "Y", - "'", - "E", - "Iu", - "Ia", - "a", - "b", - "v", - "g", - "d", - "e", - "zh", - "z", - "i", - "i", - "k", - "l", - "m", - "n", - "o", - "p", - "r", - "s", - "t", - "u", - "f", - "kh", - "ts", - "ch", - "sh", - "shch", - "", - "y", - "'", - "e", - "iu", - "ia", - "ie", - "io", - "dj", - "gj", - "ie", - "dz", - "i", - "yi", - "j", - "lj", - "nj", - "tsh", - "kj", - "i", - "u", - "dzh", - "O", - "o", - "E", - "e", - "Ie", - "ie", - "E", - "e", - "Ie", - "ie", - "O", - "o", - "Io", - "io", - "Ks", - "ks", - "Ps", - "ps", - "F", - "f", - "Y", - "y", - "Y", - "y", - "u", - "u", - "O", - "o", - "O", - "o", - "Ot", - "ot", - "Q", - "q", - "*1000*", - "", - "", - "", - "", - "[?]", - "*100.000*", - "*1.000.000*", - "[?]", - "[?]", - '"', - '"', - "R'", - "r'", - "G'", - "g'", - "G'", - "g'", - "G'", - "g'", - "Zh'", - "zh'", - "Z'", - "z'", - "K'", - "k'", - "K'", - "k'", - "K'", - "k'", - "K'", - "k'", - "N'", - "n'", - "Ng", - "ng", - "P'", - "p'", - "Kh", - "kh", - "S'", - "s'", - "T'", - "t'", - "U", - "u", - "U'", - "u'", - "Kh'", - "kh'", - "Tts", - "tts", - "Ch'", - "ch'", - "Ch'", - "ch'", - "H", - "h", - "Ch", - "ch", - "Ch'", - "ch'", - "`", - "Zh", - "zh", - "K'", - "k'", - "[?]", - "[?]", - "N'", - "n'", - "[?]", - "[?]", - "Ch", - "ch", - "[?]", - "[?]", - "[?]", - "a", - "a", - "A", - "a", - "Ae", - "ae", - "Ie", - "ie", - "@", - "@", - "@", - "@", - "Zh", - "zh", - "Z", - "z", - "Dz", - "dz", - "I", - "i", - "I", - "i", - "O", - "o", - "O", - "o", - "O", - "o", - "E", - "e", - "U", - "u", - "U", - "u", - "U", - "u", - "Ch", - "ch", - "[?]", - "[?]", - "Y", - "y", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "A", - "B", - "G", - "D", - "E", - "Z", - "E", - "E", - "T`", - "Zh", - "I", - "L", - "Kh", - "Ts", - "K", - "H", - "Dz", - "Gh", - "Ch", - "M", - "Y", - "N", - "Sh", - "O", - "Ch`", - "P", - "J", - "Rh", - "S", - "V", - "T", - "R", - "Ts`", - "W", - "P`", - "K`", - "O", - "F", - "[?]", - "[?]", - "<", - "'", - "/", - "!", - ",", - "?", - ".", - "[?]", - "a", - "b", - "g", - "d", - "e", - "z", - "e", - "e", - "t`", - "zh", - "i", - "l", - "kh", - "ts", - "k", - "h", - "dz", - "gh", - "ch", - "m", - "y", - "n", - "sh", - "o", - "ch`", - "p", - "j", - "rh", - "s", - "v", - "t", - "r", - "ts`", - "w", - "p`", - "k`", - "o", - "f", - "ew", - "[?]", - ".", - "-", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "@", - "e", - "a", - "o", - "i", - "e", - "e", - "a", - "a", - "o", - "[?]", - "u", - "'", - "", - "", - "", - "|", - "", - "", - ":", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "b", - "g", - "d", - "h", - "v", - "z", - "kh", - "t", - "y", - "k", - "k", - "l", - "m", - "m", - "n", - "n", - "s", - "`", - "p", - "p", - "ts", - "ts", - "q", - "r", - "sh", - "t", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "V", - "oy", - "i", - "'", - '"', - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - ",", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - ";", - "[?]", - "[?]", - "[?]", - "?", - "[?]", - "", - "a", - "'", - "w'", - "", - "y'", - "", - "b", - "@", - "t", - "th", - "j", - "H", - "kh", - "d", - "dh", - "r", - "z", - "s", - "sh", - "S", - "D", - "T", - "Z", - "`", - "G", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "f", - "q", - "k", - "l", - "m", - "n", - "h", - "w", - "~", - "y", - "an", - "un", - "in", - "a", - "u", - "i", - "W", - "", - "", - "'", - "'", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "%", - ".", - ",", - "*", - "[?]", - "[?]", - "", - "'", - "'", - "'", - "", - "'", - "'w", - "'u", - "'y", - "tt", - "tth", - "b", - "t", - "T", - "p", - "th", - "bh", - "'h", - "H", - "ny", - "dy", - "H", - "ch", - "cch", - "dd", - "D", - "D", - "Dt", - "dh", - "ddh", - "d", - "D", - "D", - "rr", - "R", - "R", - "R", - "R", - "R", - "R", - "j", - "R", - "S", - "S", - "S", - "S", - "S", - "T", - "GH", - "F", - "F", - "F", - "v", - "f", - "ph", - "Q", - "Q", - "kh", - "k", - "K", - "K", - "ng", - "K", - "g", - "G", - "N", - "G", - "G", - "G", - "L", - "L", - "L", - "L", - "N", - "N", - "N", - "N", - "N", - "h", - "Ch", - "hy", - "h", - "H", - "@", - "W", - "oe", - "oe", - "u", - "yu", - "yu", - "W", - "v", - "y", - "Y", - "Y", - "W", - "", - "", - "y", - "y'", - ".", - "ae", - "", - "", - "", - "", - "", - "", - "", - "@", - "#", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "^", - "", - "", - "", - "", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "Sh", - "D", - "Gh", - "&", - "+m", - "[?] ", - "//", - "/", - ",", - "!", - "!", - "-", - ",", - ",", - ";", - "?", - "~", - "{", - "}", - "*", - "[?]", - "", - "'", - "", - "b", - "g", - "g", - "d", - "d", - "h", - "w", - "z", - "H", - "t", - "t", - "y", - "yh", - "k", - "l", - "m", - "n", - "s", - "s", - "`", - "p", - "p", - "S", - "q", - "r", - "sh", - "t", - "[?]", - "[?]", - "[?]", - "a", - "a", - "a", - "A", - "A", - "A", - "e", - "e", - "e", - "E", - "i", - "i", - "u", - "u", - "u", - "o", - "", - "`", - "'", - "", - "", - "X", - "Q", - "@", - "@", - "|", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "h", - "sh", - "n", - "r", - "b", - "L", - "k", - "'", - "v", - "m", - "f", - "dh", - "th", - "l", - "g", - "ny", - "s", - "d", - "z", - "t", - "y", - "p", - "j", - "ch", - "tt", - "hh", - "kh", - "th", - "z", - "sh", - "s", - "d", - "t", - "z", - "`", - "gh", - "q", - "w", - "a", - "aa", - "i", - "ee", - "u", - "oo", - "e", - "ey", - "o", - "oa", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "N", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "L", - "eN", - "e", - "e", - "ai", - "oN", - "o", - "o", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "nnn", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "rr", - "l", - "l", - "lll", - "v", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "'", - "'", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "eN", - "e", - "e", - "ai", - "oN", - "o", - "o", - "au", - "", - "[?]", - "[?]", - "AUM", - "'", - "'", - "`", - "'", - "[?]", - "[?]", - "[?]", - "q", - "khh", - "ghh", - "z", - "dddh", - "rh", - "f", - "yy", - "RR", - "LL", - "L", - "LL", - " / ", - " // ", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - ".", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "N", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "[?]", - "[?]", - "e", - "ai", - "[?]", - "[?]", - "o", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "[?]", - "l", - "[?]", - "[?]", - "[?]", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "'", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "[?]", - "[?]", - "e", - "ai", - "[?]", - "[?]", - "o", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "rr", - "rh", - "[?]", - "yy", - "RR", - "LL", - "L", - "LL", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "r'", - "r`", - "Rs", - "Rs", - "1/", - "2/", - "3/", - "4/", - " 1 - 1/", - "/16", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "N", - "[?]", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "[?]", - "[?]", - "[?]", - "[?]", - "ee", - "ai", - "[?]", - "[?]", - "oo", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bb", - "m", - "y", - "r", - "[?]", - "l", - "ll", - "[?]", - "v", - "sh", - "[?]", - "s", - "h", - "[?]", - "[?]", - "'", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "[?]", - "[?]", - "[?]", - "[?]", - "ee", - "ai", - "[?]", - "[?]", - "oo", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "khh", - "ghh", - "z", - "rr", - "[?]", - "f", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "N", - "H", - "", - "", - "G.E.O.", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "N", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "[?]", - "eN", - "[?]", - "e", - "ai", - "oN", - "[?]", - "o", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bh", - "m", - "ya", - "r", - "[?]", - "l", - "ll", - "[?]", - "v", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "'", - "'", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "eN", - "[?]", - "e", - "ai", - "oN", - "[?]", - "o", - "au", - "", - "[?]", - "[?]", - "AUM", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "RR", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "N", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "L", - "[?]", - "[?]", - "e", - "ai", - "[?]", - "[?]", - "o", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "[?]", - "l", - "ll", - "[?]", - "", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "'", - "'", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "[?]", - "[?]", - "[?]", - "e", - "ai", - "[?]", - "[?]", - "o", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "+", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "rr", - "rh", - "[?]", - "yy", - "RR", - "LL", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "[?]", - "[?]", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "k", - "[?]", - "[?]", - "[?]", - "ng", - "c", - "[?]", - "j", - "[?]", - "ny", - "tt", - "[?]", - "[?]", - "[?]", - "nn", - "t", - "[?]", - "[?]", - "[?]", - "n", - "nnn", - "p", - "[?]", - "[?]", - "[?]", - "m", - "y", - "r", - "rr", - "l", - "ll", - "lll", - "v", - "[?]", - "ss", - "s", - "h", - "[?]", - "[?]", - "[?]", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "[?]", - "[?]", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "+10+", - "+100+", - "+1000+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "N", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "L", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "rr", - "l", - "ll", - "[?]", - "v", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "[?]", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "+", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "RR", - "LL", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "L", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "rr", - "l", - "ll", - "[?]", - "v", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "[?]", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "+", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "lll", - "[?]", - "RR", - "LL", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "N", - "H", - "[?]", - "a", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "L", - "[?]", - "e", - "ee", - "ai", - "[?]", - "o", - "oo", - "au", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "rr", - "l", - "ll", - "lll", - "v", - "sh", - "ss", - "s", - "h", - "[?]", - "[?]", - "[?]", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "[?]", - "[?]", - "e", - "ee", - "ai", - "", - "o", - "oo", - "au", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "RR", - "LL", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "N", - "H", - "[?]", - "a", - "aa", - "ae", - "aae", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "L", - "LL", - "e", - "ee", - "ai", - "o", - "oo", - "au", - "[?]", - "[?]", - "[?]", - "k", - "kh", - "g", - "gh", - "ng", - "nng", - "c", - "ch", - "j", - "jh", - "ny", - "jny", - "nyj", - "tt", - "tth", - "dd", - "ddh", - "nn", - "nndd", - "t", - "th", - "d", - "dh", - "n", - "[?]", - "nd", - "p", - "ph", - "b", - "bh", - "m", - "mb", - "y", - "r", - "[?]", - "l", - "[?]", - "[?]", - "v", - "sh", - "ss", - "s", - "h", - "ll", - "f", - "[?]", - "[?]", - "[?]", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "aa", - "ae", - "aae", - "i", - "ii", - "u", - "[?]", - "uu", - "[?]", - "R", - "e", - "ee", - "ai", - "o", - "oo", - "au", - "L", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "RR", - "LL", - " . ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "k", - "kh", - "kh", - "kh", - "kh", - "kh", - "ng", - "cch", - "ch", - "ch", - "ch", - "ch", - "y", - "d", - "t", - "th", - "th", - "th", - "n", - "d", - "t", - "th", - "th", - "th", - "n", - "b", - "p", - "ph", - "f", - "ph", - "f", - "ph", - "m", - "y", - "r", - "R", - "l", - "L", - "w", - "s", - "s", - "s", - "h", - "l", - "`", - "h", - "~", - "a", - "a", - "aa", - "am", - "i", - "ii", - "ue", - "uue", - "u", - "uu", - "'", - "[?]", - "[?]", - "[?]", - "[?]", - "Bh.", - "e", - "ae", - "o", - "ai", - "ai", - "ao", - "+", - "", - "", - "", - "", - "", - "", - "M", - "", - " * ", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - " // ", - " /// ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "k", - "kh", - "[?]", - "kh", - "[?]", - "[?]", - "ng", - "ch", - "[?]", - "s", - "[?]", - "[?]", - "ny", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "d", - "h", - "th", - "th", - "[?]", - "n", - "b", - "p", - "ph", - "f", - "ph", - "f", - "[?]", - "m", - "y", - "r", - "[?]", - "l", - "[?]", - "w", - "[?]", - "[?]", - "s", - "h", - "[?]", - "`", - "", - "~", - "a", - "", - "aa", - "am", - "i", - "ii", - "y", - "yy", - "u", - "uu", - "[?]", - "o", - "l", - "ny", - "[?]", - "[?]", - "e", - "ei", - "o", - "ay", - "ai", - "[?]", - "+", - "[?]", - "", - "", - "", - "", - "", - "M", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "hn", - "hm", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "AUM", - "", - "", - "", - "", - "", - "", - "", - " // ", - " * ", - "", - "-", - " / ", - " / ", - " // ", - " -/ ", - " +/ ", - " X/ ", - " /XX/ ", - " /X/ ", - ", ", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - ".5", - "1.5", - "2.5", - "3.5", - "4.5", - "5.5", - "6.5", - "7.5", - "8.5", - "-.5", - "+", - "*", - "^", - "_", - "", - "~", - "[?]", - "]", - "[[", - "]]", - "", - "", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "[?]", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "p", - "ph", - "b", - "bh", - "m", - "ts", - "tsh", - "dz", - "dzh", - "w", - "zh", - "z", - "'", - "y", - "r", - "l", - "sh", - "ssh", - "s", - "h", - "a", - "kss", - "r", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "R", - "RR", - "L", - "LL", - "e", - "ee", - "o", - "oo", - "M", - "H", - "i", - "ii", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "[?]", - "ny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "p", - "ph", - "b", - "bh", - "m", - "ts", - "tsh", - "dz", - "dzh", - "w", - "zh", - "z", - "'", - "y", - "r", - "l", - "sh", - "ss", - "s", - "h", - "a", - "kss", - "w", - "y", - "r", - "[?]", - "X", - " :X: ", - " /O/ ", - " /o/ ", - " \\o\\ ", - " (O) ", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "nny", - "tt", - "tth", - "dd", - "ddh", - "nn", - "tt", - "th", - "d", - "dh", - "n", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "l", - "w", - "s", - "h", - "ll", - "a", - "[?]", - "i", - "ii", - "u", - "uu", - "e", - "[?]", - "o", - "au", - "[?]", - "aa", - "i", - "ii", - "u", - "uu", - "e", - "ai", - "[?]", - "[?]", - "[?]", - "N", - "'", - ":", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - " / ", - " // ", - "n*", - "r*", - "l*", - "e*", - "sh", - "ss", - "R", - "RR", - "L", - "LL", - "R", - "RR", - "L", - "LL", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "A", - "B", - "G", - "D", - "E", - "V", - "Z", - "T`", - "I", - "K", - "L", - "M", - "N", - "O", - "P", - "Zh", - "R", - "S", - "T", - "U", - "P`", - "K`", - "G'", - "Q", - "Sh", - "Ch`", - "C`", - "Z'", - "C", - "Ch", - "X", - "J", - "H", - "E", - "Y", - "W", - "Xh", - "OE", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "a", - "b", - "g", - "d", - "e", - "v", - "z", - "t`", - "i", - "k", - "l", - "m", - "n", - "o", - "p", - "zh", - "r", - "s", - "t", - "u", - "p`", - "k`", - "g'", - "q", - "sh", - "ch`", - "c`", - "z'", - "c", - "ch", - "x", - "j", - "h", - "e", - "y", - "w", - "xh", - "oe", - "f", - "[?]", - "[?]", - "[?]", - "[?]", - " // ", - "[?]", - "[?]", - "[?]", - "[?] ", - "g", - "gg", - "n", - "d", - "dd", - "r", - "m", - "b", - "bb", - "s", - "ss", - "", - "j", - "jj", - "c", - "k", - "t", - "p", - "h", - "ng", - "nn", - "nd", - "nb", - "dg", - "rn", - "rr", - "rh", - "rN", - "mb", - "mN", - "bg", - "bn", - "", - "bs", - "bsg", - "bst", - "bsb", - "bss", - "bsj", - "bj", - "bc", - "bt", - "bp", - "bN", - "bbN", - "sg", - "sn", - "sd", - "sr", - "sm", - "sb", - "sbg", - "sss", - "s", - "sj", - "sc", - "sk", - "st", - "sp", - "sh", - "", - "", - "", - "", - "Z", - "g", - "d", - "m", - "b", - "s", - "Z", - "", - "j", - "c", - "t", - "p", - "N", - "j", - "", - "", - "", - "", - "ck", - "ch", - "", - "", - "pb", - "pN", - "hh", - "Q", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "a", - "ae", - "ya", - "yae", - "eo", - "e", - "yeo", - "ye", - "o", - "wa", - "wae", - "oe", - "yo", - "u", - "weo", - "we", - "wi", - "yu", - "eu", - "yi", - "i", - "a-o", - "a-u", - "ya-o", - "ya-yo", - "eo-o", - "eo-u", - "eo-eu", - "yeo-o", - "yeo-u", - "o-eo", - "o-e", - "o-ye", - "o-o", - "o-u", - "yo-ya", - "yo-yae", - "yo-yeo", - "yo-o", - "yo-i", - "u-a", - "u-ae", - "u-eo-eu", - "u-ye", - "u-u", - "yu-a", - "yu-eo", - "yu-e", - "yu-yeo", - "yu-ye", - "yu-u", - "yu-i", - "eu-u", - "eu-eu", - "yi-u", - "i-a", - "i-ya", - "i-o", - "i-u", - "i-eu", - "i-U", - "U", - "U-eo", - "U-u", - "U-i", - "UU", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "g", - "gg", - "gs", - "n", - "nj", - "nh", - "d", - "l", - "lg", - "lm", - "lb", - "ls", - "lt", - "lp", - "lh", - "m", - "b", - "bs", - "s", - "ss", - "ng", - "j", - "c", - "k", - "t", - "p", - "h", - "gl", - "gsg", - "ng", - "nd", - "ns", - "nZ", - "nt", - "dg", - "tl", - "lgs", - "ln", - "ld", - "lth", - "ll", - "lmg", - "lms", - "lbs", - "lbh", - "rNp", - "lss", - "lZ", - "lk", - "lQ", - "mg", - "ml", - "mb", - "ms", - "mss", - "mZ", - "mc", - "mh", - "mN", - "bl", - "bp", - "ph", - "pN", - "sg", - "sd", - "sl", - "sb", - "Z", - "g", - "ss", - "", - "kh", - "N", - "Ns", - "NZ", - "pb", - "pN", - "hn", - "hl", - "hm", - "hb", - "Q", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "ha", - "hu", - "hi", - "haa", - "hee", - "he", - "ho", - "[?]", - "la", - "lu", - "li", - "laa", - "lee", - "le", - "lo", - "lwa", - "hha", - "hhu", - "hhi", - "hhaa", - "hhee", - "hhe", - "hho", - "hhwa", - "ma", - "mu", - "mi", - "maa", - "mee", - "me", - "mo", - "mwa", - "sza", - "szu", - "szi", - "szaa", - "szee", - "sze", - "szo", - "szwa", - "ra", - "ru", - "ri", - "raa", - "ree", - "re", - "ro", - "rwa", - "sa", - "su", - "si", - "saa", - "see", - "se", - "so", - "swa", - "sha", - "shu", - "shi", - "shaa", - "shee", - "she", - "sho", - "shwa", - "qa", - "qu", - "qi", - "qaa", - "qee", - "qe", - "qo", - "[?]", - "qwa", - "[?]", - "qwi", - "qwaa", - "qwee", - "qwe", - "[?]", - "[?]", - "qha", - "qhu", - "qhi", - "qhaa", - "qhee", - "qhe", - "qho", - "[?]", - "qhwa", - "[?]", - "qhwi", - "qhwaa", - "qhwee", - "qhwe", - "[?]", - "[?]", - "ba", - "bu", - "bi", - "baa", - "bee", - "be", - "bo", - "bwa", - "va", - "vu", - "vi", - "vaa", - "vee", - "ve", - "vo", - "vwa", - "ta", - "tu", - "ti", - "taa", - "tee", - "te", - "to", - "twa", - "ca", - "cu", - "ci", - "caa", - "cee", - "ce", - "co", - "cwa", - "xa", - "xu", - "xi", - "xaa", - "xee", - "xe", - "xo", - "[?]", - "xwa", - "[?]", - "xwi", - "xwaa", - "xwee", - "xwe", - "[?]", - "[?]", - "na", - "nu", - "ni", - "naa", - "nee", - "ne", - "no", - "nwa", - "nya", - "nyu", - "nyi", - "nyaa", - "nyee", - "nye", - "nyo", - "nywa", - "'a", - "'u", - "[?]", - "'aa", - "'ee", - "'e", - "'o", - "'wa", - "ka", - "ku", - "ki", - "kaa", - "kee", - "ke", - "ko", - "[?]", - "kwa", - "[?]", - "kwi", - "kwaa", - "kwee", - "kwe", - "[?]", - "[?]", - "kxa", - "kxu", - "kxi", - "kxaa", - "kxee", - "kxe", - "kxo", - "[?]", - "kxwa", - "[?]", - "kxwi", - "kxwaa", - "kxwee", - "kxwe", - "[?]", - "[?]", - "wa", - "wu", - "wi", - "waa", - "wee", - "we", - "wo", - "[?]", - "`a", - "`u", - "`i", - "`aa", - "`ee", - "`e", - "`o", - "[?]", - "za", - "zu", - "zi", - "zaa", - "zee", - "ze", - "zo", - "zwa", - "zha", - "zhu", - "zhi", - "zhaa", - "zhee", - "zhe", - "zho", - "zhwa", - "ya", - "yu", - "yi", - "yaa", - "yee", - "ye", - "yo", - "[?]", - "da", - "du", - "di", - "daa", - "dee", - "de", - "do", - "dwa", - "dda", - "ddu", - "ddi", - "ddaa", - "ddee", - "dde", - "ddo", - "ddwa", - "ja", - "ju", - "ji", - "jaa", - "jee", - "je", - "jo", - "jwa", - "ga", - "gu", - "gi", - "gaa", - "gee", - "ge", - "go", - "[?]", - "gwa", - "[?]", - "gwi", - "gwaa", - "gwee", - "gwe", - "[?]", - "[?]", - "gga", - "ggu", - "ggi", - "ggaa", - "ggee", - "gge", - "ggo", - "[?]", - "tha", - "thu", - "thi", - "thaa", - "thee", - "the", - "tho", - "thwa", - "cha", - "chu", - "chi", - "chaa", - "chee", - "che", - "cho", - "chwa", - "pha", - "phu", - "phi", - "phaa", - "phee", - "phe", - "pho", - "phwa", - "tsa", - "tsu", - "tsi", - "tsaa", - "tsee", - "tse", - "tso", - "tswa", - "tza", - "tzu", - "tzi", - "tzaa", - "tzee", - "tze", - "tzo", - "[?]", - "fa", - "fu", - "fi", - "faa", - "fee", - "fe", - "fo", - "fwa", - "pa", - "pu", - "pi", - "paa", - "pee", - "pe", - "po", - "pwa", - "rya", - "mya", - "fya", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - " ", - ".", - ",", - ";", - ":", - ":: ", - "?", - "//", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "10+", - "20+", - "30+", - "40+", - "50+", - "60+", - "70+", - "80+", - "90+", - "100+", - "10,000+", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "a", - "e", - "i", - "o", - "u", - "v", - "ga", - "ka", - "ge", - "gi", - "go", - "gu", - "gv", - "ha", - "he", - "hi", - "ho", - "hu", - "hv", - "la", - "le", - "li", - "lo", - "lu", - "lv", - "ma", - "me", - "mi", - "mo", - "mu", - "na", - "hna", - "nah", - "ne", - "ni", - "no", - "nu", - "nv", - "qua", - "que", - "qui", - "quo", - "quu", - "quv", - "sa", - "s", - "se", - "si", - "so", - "su", - "sv", - "da", - "ta", - "de", - "te", - "di", - "ti", - "do", - "du", - "dv", - "dla", - "tla", - "tle", - "tli", - "tlo", - "tlu", - "tlv", - "tsa", - "tse", - "tsi", - "tso", - "tsu", - "tsv", - "wa", - "we", - "wi", - "wo", - "wu", - "wv", - "ya", - "ye", - "yi", - "yo", - "yu", - "yv", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "e", - "aai", - "i", - "ii", - "o", - "oo", - "oo", - "ee", - "i", - "a", - "aa", - "we", - "we", - "wi", - "wi", - "wii", - "wii", - "wo", - "wo", - "woo", - "woo", - "woo", - "wa", - "wa", - "waa", - "waa", - "waa", - "ai", - "w", - "'", - "t", - "k", - "sh", - "s", - "n", - "w", - "n", - "[?]", - "w", - "c", - "?", - "l", - "en", - "in", - "on", - "an", - "pe", - "paai", - "pi", - "pii", - "po", - "poo", - "poo", - "hee", - "hi", - "pa", - "paa", - "pwe", - "pwe", - "pwi", - "pwi", - "pwii", - "pwii", - "pwo", - "pwo", - "pwoo", - "pwoo", - "pwa", - "pwa", - "pwaa", - "pwaa", - "pwaa", - "p", - "p", - "h", - "te", - "taai", - "ti", - "tii", - "to", - "too", - "too", - "dee", - "di", - "ta", - "taa", - "twe", - "twe", - "twi", - "twi", - "twii", - "twii", - "two", - "two", - "twoo", - "twoo", - "twa", - "twa", - "twaa", - "twaa", - "twaa", - "t", - "tte", - "tti", - "tto", - "tta", - "ke", - "kaai", - "ki", - "kii", - "ko", - "koo", - "koo", - "ka", - "kaa", - "kwe", - "kwe", - "kwi", - "kwi", - "kwii", - "kwii", - "kwo", - "kwo", - "kwoo", - "kwoo", - "kwa", - "kwa", - "kwaa", - "kwaa", - "kwaa", - "k", - "kw", - "keh", - "kih", - "koh", - "kah", - "ce", - "caai", - "ci", - "cii", - "co", - "coo", - "coo", - "ca", - "caa", - "cwe", - "cwe", - "cwi", - "cwi", - "cwii", - "cwii", - "cwo", - "cwo", - "cwoo", - "cwoo", - "cwa", - "cwa", - "cwaa", - "cwaa", - "cwaa", - "c", - "th", - "me", - "maai", - "mi", - "mii", - "mo", - "moo", - "moo", - "ma", - "maa", - "mwe", - "mwe", - "mwi", - "mwi", - "mwii", - "mwii", - "mwo", - "mwo", - "mwoo", - "mwoo", - "mwa", - "mwa", - "mwaa", - "mwaa", - "mwaa", - "m", - "m", - "mh", - "m", - "m", - "ne", - "naai", - "ni", - "nii", - "no", - "noo", - "noo", - "na", - "naa", - "nwe", - "nwe", - "nwa", - "nwa", - "nwaa", - "nwaa", - "nwaa", - "n", - "ng", - "nh", - "le", - "laai", - "li", - "lii", - "lo", - "loo", - "loo", - "la", - "laa", - "lwe", - "lwe", - "lwi", - "lwi", - "lwii", - "lwii", - "lwo", - "lwo", - "lwoo", - "lwoo", - "lwa", - "lwa", - "lwaa", - "lwaa", - "l", - "l", - "l", - "se", - "saai", - "si", - "sii", - "so", - "soo", - "soo", - "sa", - "saa", - "swe", - "swe", - "swi", - "swi", - "swii", - "swii", - "swo", - "swo", - "swoo", - "swoo", - "swa", - "swa", - "swaa", - "swaa", - "swaa", - "s", - "s", - "sw", - "s", - "sk", - "skw", - "sW", - "spwa", - "stwa", - "skwa", - "scwa", - "she", - "shi", - "shii", - "sho", - "shoo", - "sha", - "shaa", - "shwe", - "shwe", - "shwi", - "shwi", - "shwii", - "shwii", - "shwo", - "shwo", - "shwoo", - "shwoo", - "shwa", - "shwa", - "shwaa", - "shwaa", - "sh", - "ye", - "yaai", - "yi", - "yii", - "yo", - "yoo", - "yoo", - "ya", - "yaa", - "ywe", - "ywe", - "ywi", - "ywi", - "ywii", - "ywii", - "ywo", - "ywo", - "ywoo", - "ywoo", - "ywa", - "ywa", - "ywaa", - "ywaa", - "ywaa", - "y", - "y", - "y", - "yi", - "re", - "re", - "le", - "raai", - "ri", - "rii", - "ro", - "roo", - "lo", - "ra", - "raa", - "la", - "rwaa", - "rwaa", - "r", - "r", - "r", - "fe", - "faai", - "fi", - "fii", - "fo", - "foo", - "fa", - "faa", - "fwaa", - "fwaa", - "f", - "the", - "the", - "thi", - "thi", - "thii", - "thii", - "tho", - "thoo", - "tha", - "thaa", - "thwaa", - "thwaa", - "th", - "tthe", - "tthi", - "ttho", - "ttha", - "tth", - "tye", - "tyi", - "tyo", - "tya", - "he", - "hi", - "hii", - "ho", - "hoo", - "ha", - "haa", - "h", - "h", - "hk", - "qaai", - "qi", - "qii", - "qo", - "qoo", - "qa", - "qaa", - "q", - "tlhe", - "tlhi", - "tlho", - "tlha", - "re", - "ri", - "ro", - "ra", - "ngaai", - "ngi", - "ngii", - "ngo", - "ngoo", - "nga", - "ngaa", - "ng", - "nng", - "she", - "shi", - "sho", - "sha", - "the", - "thi", - "tho", - "tha", - "th", - "lhi", - "lhii", - "lho", - "lhoo", - "lha", - "lhaa", - "lh", - "the", - "thi", - "thii", - "tho", - "thoo", - "tha", - "thaa", - "th", - "b", - "e", - "i", - "o", - "a", - "we", - "wi", - "wo", - "wa", - "ne", - "ni", - "no", - "na", - "ke", - "ki", - "ko", - "ka", - "he", - "hi", - "ho", - "ha", - "ghu", - "gho", - "ghe", - "ghee", - "ghi", - "gha", - "ru", - "ro", - "re", - "ree", - "ri", - "ra", - "wu", - "wo", - "we", - "wee", - "wi", - "wa", - "hwu", - "hwo", - "hwe", - "hwee", - "hwi", - "hwa", - "thu", - "tho", - "the", - "thee", - "thi", - "tha", - "ttu", - "tto", - "tte", - "ttee", - "tti", - "tta", - "pu", - "po", - "pe", - "pee", - "pi", - "pa", - "p", - "gu", - "go", - "ge", - "gee", - "gi", - "ga", - "khu", - "kho", - "khe", - "khee", - "khi", - "kha", - "kku", - "kko", - "kke", - "kkee", - "kki", - "kka", - "kk", - "nu", - "no", - "ne", - "nee", - "ni", - "na", - "mu", - "mo", - "me", - "mee", - "mi", - "ma", - "yu", - "yo", - "ye", - "yee", - "yi", - "ya", - "ju", - "ju", - "jo", - "je", - "jee", - "ji", - "ji", - "ja", - "jju", - "jjo", - "jje", - "jjee", - "jji", - "jja", - "lu", - "lo", - "le", - "lee", - "li", - "la", - "dlu", - "dlo", - "dle", - "dlee", - "dli", - "dla", - "lhu", - "lho", - "lhe", - "lhee", - "lhi", - "lha", - "tlhu", - "tlho", - "tlhe", - "tlhee", - "tlhi", - "tlha", - "tlu", - "tlo", - "tle", - "tlee", - "tli", - "tla", - "zu", - "zo", - "ze", - "zee", - "zi", - "za", - "z", - "z", - "dzu", - "dzo", - "dze", - "dzee", - "dzi", - "dza", - "su", - "so", - "se", - "see", - "si", - "sa", - "shu", - "sho", - "she", - "shee", - "shi", - "sha", - "sh", - "tsu", - "tso", - "tse", - "tsee", - "tsi", - "tsa", - "chu", - "cho", - "che", - "chee", - "chi", - "cha", - "ttsu", - "ttso", - "ttse", - "ttsee", - "ttsi", - "ttsa", - "X", - ".", - "qai", - "ngai", - "nngi", - "nngii", - "nngo", - "nngoo", - "nnga", - "nngaa", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - " ", - "b", - "l", - "f", - "s", - "n", - "h", - "d", - "t", - "c", - "q", - "m", - "g", - "ng", - "z", - "r", - "a", - "o", - "u", - "e", - "i", - "ch", - "th", - "ph", - "p", - "x", - "p", - "<", - ">", - "[?]", - "[?]", - "[?]", - "f", - "v", - "u", - "yr", - "y", - "w", - "th", - "th", - "a", - "o", - "ac", - "ae", - "o", - "o", - "o", - "oe", - "on", - "r", - "k", - "c", - "k", - "g", - "ng", - "g", - "g", - "w", - "h", - "h", - "h", - "h", - "n", - "n", - "n", - "i", - "e", - "j", - "g", - "ae", - "a", - "eo", - "p", - "z", - "s", - "s", - "s", - "c", - "z", - "t", - "t", - "d", - "b", - "b", - "p", - "p", - "e", - "m", - "m", - "m", - "l", - "l", - "ng", - "ng", - "d", - "o", - "ear", - "ior", - "qu", - "qu", - "qu", - "s", - "yr", - "yr", - "yr", - "q", - "x", - ".", - ":", - "+", - "17", - "18", - "19", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "k", - "kh", - "g", - "gh", - "ng", - "c", - "ch", - "j", - "jh", - "ny", - "t", - "tth", - "d", - "ddh", - "nn", - "t", - "th", - "d", - "dh", - "n", - "p", - "ph", - "b", - "bh", - "m", - "y", - "r", - "l", - "v", - "sh", - "ss", - "s", - "h", - "l", - "q", - "a", - "aa", - "i", - "ii", - "u", - "uk", - "uu", - "uuv", - "ry", - "ryy", - "ly", - "lyy", - "e", - "ai", - "oo", - "oo", - "au", - "a", - "aa", - "aa", - "i", - "ii", - "y", - "yy", - "u", - "uu", - "ua", - "oe", - "ya", - "ie", - "e", - "ae", - "ai", - "oo", - "au", - "M", - "H", - "a`", - "", - "", - "", - "r", - "", - "!", - "", - "", - "", - "", - "", - ".", - " // ", - ":", - "+", - "++", - " * ", - " /// ", - "KR", - "'", - "[?]", - "[?]", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - " @ ", - " ... ", - ", ", - ". ", - ": ", - " // ", - "", - "-", - ", ", - ". ", - "", - "", - "", - "", - "", - "[?]", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "a", - "e", - "i", - "o", - "u", - "O", - "U", - "ee", - "n", - "ng", - "b", - "p", - "q", - "g", - "m", - "l", - "s", - "sh", - "t", - "d", - "ch", - "j", - "y", - "r", - "w", - "f", - "k", - "kha", - "ts", - "z", - "h", - "zr", - "lh", - "zh", - "ch", - "-", - "e", - "i", - "o", - "u", - "O", - "U", - "ng", - "b", - "p", - "q", - "g", - "m", - "t", - "d", - "ch", - "j", - "ts", - "y", - "w", - "k", - "g", - "h", - "jy", - "ny", - "dz", - "e", - "i", - "iy", - "U", - "u", - "ng", - "k", - "g", - "h", - "p", - "sh", - "t", - "d", - "j", - "f", - "g", - "h", - "ts", - "z", - "r", - "ch", - "zh", - "i", - "k", - "r", - "f", - "zh", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "H", - "X", - "W", - "M", - " 3 ", - " 333 ", - "a", - "i", - "k", - "ng", - "c", - "tt", - "tth", - "dd", - "nn", - "t", - "d", - "p", - "ph", - "ss", - "zh", - "z", - "a", - "t", - "zh", - "gh", - "ng", - "c", - "jh", - "tta", - "ddh", - "t", - "dh", - "ss", - "cy", - "zh", - "z", - "u", - "y", - "bh", - "'", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "A", - "a", - "B", - "b", - "B", - "b", - "B", - "b", - "C", - "c", - "D", - "d", - "D", - "d", - "D", - "d", - "D", - "d", - "D", - "d", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "F", - "f", - "G", - "g", - "H", - "h", - "H", - "h", - "H", - "h", - "H", - "h", - "H", - "h", - "I", - "i", - "I", - "i", - "K", - "k", - "K", - "k", - "K", - "k", - "L", - "l", - "L", - "l", - "L", - "l", - "L", - "l", - "M", - "m", - "M", - "m", - "M", - "m", - "N", - "n", - "N", - "n", - "N", - "n", - "N", - "n", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "P", - "p", - "P", - "p", - "R", - "r", - "R", - "r", - "R", - "r", - "R", - "r", - "S", - "s", - "S", - "s", - "S", - "s", - "S", - "s", - "S", - "s", - "T", - "t", - "T", - "t", - "T", - "t", - "T", - "t", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "V", - "v", - "V", - "v", - "W", - "w", - "W", - "w", - "W", - "w", - "W", - "w", - "W", - "w", - "X", - "x", - "X", - "x", - "Y", - "y", - "Z", - "z", - "Z", - "z", - "Z", - "z", - "h", - "t", - "w", - "y", - "a", - "s", - "s", - "s", - "Ss", - "d", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "A", - "a", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "E", - "e", - "I", - "i", - "I", - "i", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "O", - "o", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "U", - "u", - "Y", - "y", - "Y", - "y", - "Y", - "y", - "Y", - "y", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "a", - "a", - "a", - "a", - "a", - "a", - "a", - "a", - "A", - "A", - "A", - "A", - "A", - "A", - "A", - "A", - "e", - "e", - "e", - "e", - "e", - "e", - "[?]", - "[?]", - "E", - "E", - "E", - "E", - "E", - "E", - "[?]", - "[?]", - "e", - "e", - "e", - "e", - "e", - "e", - "e", - "e", - "E", - "E", - "E", - "E", - "E", - "E", - "E", - "E", - "i", - "i", - "i", - "i", - "i", - "i", - "i", - "i", - "I", - "I", - "I", - "I", - "I", - "I", - "I", - "I", - "o", - "o", - "o", - "o", - "o", - "o", - "[?]", - "[?]", - "O", - "O", - "O", - "O", - "O", - "O", - "[?]", - "[?]", - "u", - "u", - "u", - "u", - "u", - "u", - "u", - "u", - "[?]", - "U", - "[?]", - "U", - "[?]", - "U", - "[?]", - "U", - "o", - "o", - "o", - "o", - "o", - "o", - "o", - "o", - "O", - "O", - "O", - "O", - "O", - "O", - "O", - "O", - "a", - "a", - "e", - "e", - "e", - "e", - "i", - "i", - "o", - "o", - "u", - "u", - "o", - "o", - "[?]", - "[?]", - "a", - "a", - "a", - "a", - "a", - "a", - "a", - "a", - "A", - "A", - "A", - "A", - "A", - "A", - "A", - "A", - "e", - "e", - "e", - "e", - "e", - "e", - "e", - "e", - "E", - "E", - "E", - "E", - "E", - "E", - "E", - "E", - "o", - "o", - "o", - "o", - "o", - "o", - "o", - "o", - "O", - "O", - "O", - "O", - "O", - "O", - "O", - "O", - "a", - "a", - "a", - "a", - "a", - "[?]", - "a", - "a", - "A", - "A", - "A", - "A", - "A", - "'", - "i", - "'", - "~", - '"~', - "e", - "e", - "e", - "[?]", - "e", - "e", - "E", - "E", - "E", - "E", - "E", - "'`", - "''", - "'~", - "i", - "i", - "i", - "i", - "[?]", - "[?]", - "i", - "i", - "I", - "I", - "I", - "I", - "[?]", - "`'", - "`'", - "`~", - "u", - "u", - "u", - "u", - "R", - "R", - "u", - "u", - "U", - "U", - "U", - "U", - "R", - '"`', - "\"'", - "`", - "[?]", - "[?]", - "o", - "o", - "o", - "[?]", - "o", - "o", - "O", - "O", - "O", - "O", - "O", - "'", - "`", - "[?] ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - " ", - "", - "", - "", - "", - "-", - "-", - "-", - "-", - "--", - "--", - "||", - "_", - "'", - "'", - ",", - "'", - '"', - '"', - ",,", - '"', - "+", - "++", - "*", - "*>", - ".", - "..", - "...", - ".", - "\n", - "\n\n", - "", - "", - "", - "", - "", - " ", - "%0", - "%00", - "'", - "''", - "'''", - "`", - "``", - "```", - "^", - "<", - ">", - "*", - "!!", - "!?", - "-", - "_", - "-", - "^", - "***", - "--", - "/", - "-[", - "]-", - "[?]", - "?!", - "!?", - "7", - "PP", - "(]", - "[)", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "0", - "", - "", - "", - "4", - "5", - "6", - "7", - "8", - "9", - "+", - "-", - "=", - "(", - ")", - "n", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "+", - "-", - "=", - "(", - ")", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "ECU", - "CL", - "Cr", - "FF", - "L", - "mil", - "N", - "Pts", - "Rs", - "W", - "NS", - "D", - "EUR", - "K", - "T", - "Dr", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "tm", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - " 1/3 ", - " 2/3 ", - " 1/5 ", - " 2/5 ", - " 3/5 ", - " 4/5 ", - " 1/6 ", - " 5/6 ", - " 1/8 ", - " 3/8 ", - " 5/8 ", - " 7/8 ", - " 1/", - "I", - "II", - "III", - "IV", - "V", - "VI", - "VII", - "VIII", - "IX", - "X", - "XI", - "XII", - "L", - "C", - "D", - "M", - "i", - "ii", - "iii", - "iv", - "v", - "vi", - "vii", - "viii", - "ix", - "x", - "xi", - "xii", - "l", - "c", - "d", - "m", - "(D", - "D)", - "((|))", - ")", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "-", - "|", - "-", - "|", - "-", - "|", - "\\", - "/", - "\\", - "/", - "-", - "-", - "~", - "~", - "-", - "|", - "-", - "|", - "-", - "-", - "-", - "|", - "-", - "|", - "|", - "-", - "-", - "-", - "-", - "-", - "-", - "|", - "|", - "|", - "|", - "|", - "|", - "|", - "^", - "V", - "\\", - "=", - "V", - "^", - "-", - "-", - "|", - "|", - "-", - "-", - "|", - "|", - "=", - "|", - "=", - "=", - "|", - "=", - "|", - "=", - "=", - "=", - "=", - "=", - "=", - "|", - "=", - "|", - "=", - "|", - "\\", - "/", - "\\", - "/", - "=", - "=", - "~", - "~", - "|", - "|", - "-", - "|", - "-", - "|", - "-", - "-", - "-", - "|", - "-", - "|", - "|", - "|", - "|", - "|", - "|", - "|", - "-", - "\\", - "\\", - "|", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "-", - "-", - "|", - "|", - "-", - "-", - "|", - "|", - "-", - "-", - "|", - "|", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "-", - "-", - "|", - "|", - "-", - "|", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "+", - "/", - "\\", - "X", - "-", - "|", - "-", - "|", - "-", - "|", - "-", - "|", - "-", - "|", - "-", - "|", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "-", - "|", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "^", - "^", - "^", - "^", - ">", - ">", - ">", - ">", - ">", - ">", - "V", - "V", - "V", - "V", - "<", - "<", - "<", - "<", - "<", - "<", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "*", - "#", - "#", - "#", - "#", - "#", - "^", - "^", - "^", - "O", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "#", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - " ", - "a", - "1", - "b", - "'", - "k", - "2", - "l", - "@", - "c", - "i", - "f", - "/", - "m", - "s", - "p", - '"', - "e", - "3", - "h", - "9", - "o", - "6", - "r", - "^", - "d", - "j", - "g", - ">", - "n", - "t", - "q", - ",", - "*", - "5", - "<", - "-", - "u", - "8", - "v", - ".", - "%", - "[", - "$", - "+", - "x", - "!", - "&", - ";", - ":", - "4", - "\\", - "0", - "z", - "7", - "(", - "_", - "?", - "w", - "]", - "#", - "y", - ")", - "=", - "[d7]", - "[d17]", - "[d27]", - "[d127]", - "[d37]", - "[d137]", - "[d237]", - "[d1237]", - "[d47]", - "[d147]", - "[d247]", - "[d1247]", - "[d347]", - "[d1347]", - "[d2347]", - "[d12347]", - "[d57]", - "[d157]", - "[d257]", - "[d1257]", - "[d357]", - "[d1357]", - "[d2357]", - "[d12357]", - "[d457]", - "[d1457]", - "[d2457]", - "[d12457]", - "[d3457]", - "[d13457]", - "[d23457]", - "[d123457]", - "[d67]", - "[d167]", - "[d267]", - "[d1267]", - "[d367]", - "[d1367]", - "[d2367]", - "[d12367]", - "[d467]", - "[d1467]", - "[d2467]", - "[d12467]", - "[d3467]", - "[d13467]", - "[d23467]", - "[d123467]", - "[d567]", - "[d1567]", - "[d2567]", - "[d12567]", - "[d3567]", - "[d13567]", - "[d23567]", - "[d123567]", - "[d4567]", - "[d14567]", - "[d24567]", - "[d124567]", - "[d34567]", - "[d134567]", - "[d234567]", - "[d1234567]", - "[d8]", - "[d18]", - "[d28]", - "[d128]", - "[d38]", - "[d138]", - "[d238]", - "[d1238]", - "[d48]", - "[d148]", - "[d248]", - "[d1248]", - "[d348]", - "[d1348]", - "[d2348]", - "[d12348]", - "[d58]", - "[d158]", - "[d258]", - "[d1258]", - "[d358]", - "[d1358]", - "[d2358]", - "[d12358]", - "[d458]", - "[d1458]", - "[d2458]", - "[d12458]", - "[d3458]", - "[d13458]", - "[d23458]", - "[d123458]", - "[d68]", - "[d168]", - "[d268]", - "[d1268]", - "[d368]", - "[d1368]", - "[d2368]", - "[d12368]", - "[d468]", - "[d1468]", - "[d2468]", - "[d12468]", - "[d3468]", - "[d13468]", - "[d23468]", - "[d123468]", - "[d568]", - "[d1568]", - "[d2568]", - "[d12568]", - "[d3568]", - "[d13568]", - "[d23568]", - "[d123568]", - "[d4568]", - "[d14568]", - "[d24568]", - "[d124568]", - "[d34568]", - "[d134568]", - "[d234568]", - "[d1234568]", - "[d78]", - "[d178]", - "[d278]", - "[d1278]", - "[d378]", - "[d1378]", - "[d2378]", - "[d12378]", - "[d478]", - "[d1478]", - "[d2478]", - "[d12478]", - "[d3478]", - "[d13478]", - "[d23478]", - "[d123478]", - "[d578]", - "[d1578]", - "[d2578]", - "[d12578]", - "[d3578]", - "[d13578]", - "[d23578]", - "[d123578]", - "[d4578]", - "[d14578]", - "[d24578]", - "[d124578]", - "[d34578]", - "[d134578]", - "[d234578]", - "[d1234578]", - "[d678]", - "[d1678]", - "[d2678]", - "[d12678]", - "[d3678]", - "[d13678]", - "[d23678]", - "[d123678]", - "[d4678]", - "[d14678]", - "[d24678]", - "[d124678]", - "[d34678]", - "[d134678]", - "[d234678]", - "[d1234678]", - "[d5678]", - "[d15678]", - "[d25678]", - "[d125678]", - "[d35678]", - "[d135678]", - "[d235678]", - "[d1235678]", - "[d45678]", - "[d145678]", - "[d245678]", - "[d1245678]", - "[d345678]", - "[d1345678]", - "[d2345678]", - "[d12345678]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?] ", - " ", - ", ", - ". ", - '"', - "[JIS]", - '"', - "/", - "0", - "<", - "> ", - "<<", - ">> ", - "[", - "] ", - "{", - "} ", - "[(", - ")] ", - "@", - "X ", - "[", - "] ", - "[[", - "]] ", - "((", - ")) ", - "[[", - "]] ", - "~ ", - "``", - "''", - ",,", - "@", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "", - "", - "", - "", - "", - "", - "~", - "+", - "+", - "+", - "+", - "", - "@", - " // ", - "+10+", - "+20+", - "+30+", - "[?]", - "[?]", - "[?]", - "", - "", - "[?]", - "a", - "a", - "i", - "i", - "u", - "u", - "e", - "e", - "o", - "o", - "ka", - "ga", - "ki", - "gi", - "ku", - "gu", - "ke", - "ge", - "ko", - "go", - "sa", - "za", - "si", - "zi", - "su", - "zu", - "se", - "ze", - "so", - "zo", - "ta", - "da", - "ti", - "di", - "tu", - "tu", - "du", - "te", - "de", - "to", - "do", - "na", - "ni", - "nu", - "ne", - "no", - "ha", - "ba", - "pa", - "hi", - "bi", - "pi", - "hu", - "bu", - "pu", - "he", - "be", - "pe", - "ho", - "bo", - "po", - "ma", - "mi", - "mu", - "me", - "mo", - "ya", - "ya", - "yu", - "yu", - "yo", - "yo", - "ra", - "ri", - "ru", - "re", - "ro", - "wa", - "wa", - "wi", - "we", - "wo", - "n", - "vu", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - '"', - '"', - "[?]", - "[?]", - "a", - "a", - "i", - "i", - "u", - "u", - "e", - "e", - "o", - "o", - "ka", - "ga", - "ki", - "gi", - "ku", - "gu", - "ke", - "ge", - "ko", - "go", - "sa", - "za", - "si", - "zi", - "su", - "zu", - "se", - "ze", - "so", - "zo", - "ta", - "da", - "ti", - "di", - "tu", - "tu", - "du", - "te", - "de", - "to", - "do", - "na", - "ni", - "nu", - "ne", - "no", - "ha", - "ba", - "pa", - "hi", - "bi", - "pi", - "hu", - "bu", - "pu", - "he", - "be", - "pe", - "ho", - "bo", - "po", - "ma", - "mi", - "mu", - "me", - "mo", - "ya", - "ya", - "yu", - "yu", - "yo", - "yo", - "ra", - "ri", - "ru", - "re", - "ro", - "wa", - "wa", - "wi", - "we", - "wo", - "n", - "vu", - "ka", - "ke", - "va", - "vi", - "ve", - "vo", - "", - "", - '"', - '"', - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "B", - "P", - "M", - "F", - "D", - "T", - "N", - "L", - "G", - "K", - "H", - "J", - "Q", - "X", - "ZH", - "CH", - "SH", - "R", - "Z", - "C", - "S", - "A", - "O", - "E", - "EH", - "AI", - "EI", - "AU", - "OU", - "AN", - "EN", - "ANG", - "ENG", - "ER", - "I", - "U", - "IU", - "V", - "NG", - "GN", - "[?]", - "[?]", - "[?]", - "[?]", - "g", - "gg", - "gs", - "n", - "nj", - "nh", - "d", - "dd", - "r", - "lg", - "lm", - "lb", - "ls", - "lt", - "lp", - "rh", - "m", - "b", - "bb", - "bs", - "s", - "ss", - "", - "j", - "jj", - "c", - "k", - "t", - "p", - "h", - "a", - "ae", - "ya", - "yae", - "eo", - "e", - "yeo", - "ye", - "o", - "wa", - "wae", - "oe", - "yo", - "u", - "weo", - "we", - "wi", - "yu", - "eu", - "yi", - "i", - "", - "nn", - "nd", - "ns", - "nZ", - "lgs", - "ld", - "lbs", - "lZ", - "lQ", - "mb", - "ms", - "mZ", - "mN", - "bg", - "", - "bsg", - "bst", - "bj", - "bt", - "bN", - "bbN", - "sg", - "sn", - "sd", - "sb", - "sj", - "Z", - "", - "N", - "Ns", - "NZ", - "pN", - "hh", - "Q", - "yo-ya", - "yo-yae", - "yo-i", - "yu-yeo", - "yu-ye", - "yu-i", - "U", - "U-i", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "BU", - "ZI", - "JI", - "GU", - "EE", - "ENN", - "OO", - "ONN", - "IR", - "ANN", - "INN", - "UNN", - "IM", - "NGG", - "AINN", - "AUNN", - "AM", - "OM", - "ONG", - "INNN", - "P", - "T", - "K", - "H", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "(g)", - "(n)", - "(d)", - "(r)", - "(m)", - "(b)", - "(s)", - "()", - "(j)", - "(c)", - "(k)", - "(t)", - "(p)", - "(h)", - "(ga)", - "(na)", - "(da)", - "(ra)", - "(ma)", - "(ba)", - "(sa)", - "(a)", - "(ja)", - "(ca)", - "(ka)", - "(ta)", - "(pa)", - "(ha)", - "(ju)", - "[?]", - "[?]", - "[?]", - "(1) ", - "(2) ", - "(3) ", - "(4) ", - "(5) ", - "(6) ", - "(7) ", - "(8) ", - "(9) ", - "(10) ", - "(Yue) ", - "(Huo) ", - "(Shui) ", - "(Mu) ", - "(Jin) ", - "(Tu) ", - "(Ri) ", - "(Zhu) ", - "(You) ", - "(She) ", - "(Ming) ", - "(Te) ", - "(Cai) ", - "(Zhu) ", - "(Lao) ", - "(Dai) ", - "(Hu) ", - "(Xue) ", - "(Jian) ", - "(Qi) ", - "(Zi) ", - "(Xie) ", - "(Ji) ", - "(Xiu) ", - "<<", - ">>", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "(g)", - "(n)", - "(d)", - "(r)", - "(m)", - "(b)", - "(s)", - "()", - "(j)", - "(c)", - "(k)", - "(t)", - "(p)", - "(h)", - "(ga)", - "(na)", - "(da)", - "(ra)", - "(ma)", - "(ba)", - "(sa)", - "(a)", - "(ja)", - "(ca)", - "(ka)", - "(ta)", - "(pa)", - "(ha)", - "[?]", - "[?]", - "[?]", - "KIS ", - "(1) ", - "(2) ", - "(3) ", - "(4) ", - "(5) ", - "(6) ", - "(7) ", - "(8) ", - "(9) ", - "(10) ", - "(Yue) ", - "(Huo) ", - "(Shui) ", - "(Mu) ", - "(Jin) ", - "(Tu) ", - "(Ri) ", - "(Zhu) ", - "(You) ", - "(She) ", - "(Ming) ", - "(Te) ", - "(Cai) ", - "(Zhu) ", - "(Lao) ", - "(Mi) ", - "(Nan) ", - "(Nu) ", - "(Shi) ", - "(You) ", - "(Yin) ", - "(Zhu) ", - "(Xiang) ", - "(Xiu) ", - "(Xie) ", - "(Zheng) ", - "(Shang) ", - "(Zhong) ", - "(Xia) ", - "(Zuo) ", - "(You) ", - "(Yi) ", - "(Zong) ", - "(Xue) ", - "(Jian) ", - "(Qi) ", - "(Zi) ", - "(Xie) ", - "(Ye) ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "1M", - "2M", - "3M", - "4M", - "5M", - "6M", - "7M", - "8M", - "9M", - "10M", - "11M", - "12M", - "[?]", - "[?]", - "[?]", - "[?]", - "a", - "i", - "u", - "u", - "o", - "ka", - "ki", - "ku", - "ke", - "ko", - "sa", - "si", - "su", - "se", - "so", - "ta", - "ti", - "tu", - "te", - "to", - "na", - "ni", - "nu", - "ne", - "no", - "ha", - "hi", - "hu", - "he", - "ho", - "ma", - "mi", - "mu", - "me", - "mo", - "ya", - "yu", - "yo", - "ra", - "ri", - "ru", - "re", - "ro", - "wa", - "wi", - "we", - "wo", - "[?] ", - "apartment", - "alpha", - "ampere", - "are", - "inning", - "inch", - "won", - "escudo", - "acre", - "ounce", - "ohm", - "kai-ri", - "carat", - "calorie", - "gallon", - "gamma", - "giga", - "guinea", - "curie", - "guilder", - "kilo", - "kilogram", - "kilometer", - "kilowatt", - "gram", - "gram ton", - "cruzeiro", - "krone", - "case", - "koruna", - "co-op", - "cycle", - "centime", - "shilling", - "centi", - "cent", - "dozen", - "desi", - "dollar", - "ton", - "nano", - "knot", - "heights", - "percent", - "parts", - "barrel", - "piaster", - "picul", - "pico", - "building", - "farad", - "feet", - "bushel", - "franc", - "hectare", - "peso", - "pfennig", - "hertz", - "pence", - "page", - "beta", - "point", - "volt", - "hon", - "pound", - "hall", - "horn", - "micro", - "mile", - "mach", - "mark", - "mansion", - "micron", - "milli", - "millibar", - "mega", - "megaton", - "meter", - "yard", - "yard", - "yuan", - "liter", - "lira", - "rupee", - "ruble", - "rem", - "roentgen", - "watt", - "0h", - "1h", - "2h", - "3h", - "4h", - "5h", - "6h", - "7h", - "8h", - "9h", - "10h", - "11h", - "12h", - "13h", - "14h", - "15h", - "16h", - "17h", - "18h", - "19h", - "20h", - "21h", - "22h", - "23h", - "24h", - "HPA", - "da", - "AU", - "bar", - "oV", - "pc", - "[?]", - "[?]", - "[?]", - "[?]", - "Heisei", - "Syouwa", - "Taisyou", - "Meiji", - "Inc.", - "pA", - "nA", - "microamp", - "mA", - "kA", - "kB", - "MB", - "GB", - "cal", - "kcal", - "pF", - "nF", - "microFarad", - "microgram", - "mg", - "kg", - "Hz", - "kHz", - "MHz", - "GHz", - "THz", - "microliter", - "ml", - "dl", - "kl", - "fm", - "nm", - "micrometer", - "mm", - "cm", - "km", - "mm^2", - "cm^2", - "m^2", - "km^2", - "mm^4", - "cm^3", - "m^3", - "km^3", - "m/s", - "m/s^2", - "Pa", - "kPa", - "MPa", - "GPa", - "rad", - "rad/s", - "rad/s^2", - "ps", - "ns", - "microsecond", - "ms", - "pV", - "nV", - "microvolt", - "mV", - "kV", - "MV", - "pW", - "nW", - "microwatt", - "mW", - "kW", - "MW", - "kOhm", - "MOhm", - "a.m.", - "Bq", - "cc", - "cd", - "C/kg", - "Co.", - "dB", - "Gy", - "ha", - "HP", - "in", - "K.K.", - "KM", - "kt", - "lm", - "ln", - "log", - "lx", - "mb", - "mil", - "mol", - "pH", - "p.m.", - "PPM", - "PR", - "sr", - "Sv", - "Wb", - "[?]", - "[?]", - "1d", - "2d", - "3d", - "4d", - "5d", - "6d", - "7d", - "8d", - "9d", - "10d", - "11d", - "12d", - "13d", - "14d", - "15d", - "16d", - "17d", - "18d", - "19d", - "20d", - "21d", - "22d", - "23d", - "24d", - "25d", - "26d", - "27d", - "28d", - "29d", - "30d", - "31d", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "Yi ", - "Ding ", - "Kao ", - "Qi ", - "Shang ", - "Xia ", - "[?] ", - "Mo ", - "Zhang ", - "San ", - "Shang ", - "Xia ", - "Ji ", - "Bu ", - "Yu ", - "Mian ", - "Gai ", - "Chou ", - "Chou ", - "Zhuan ", - "Qie ", - "Pi ", - "Shi ", - "Shi ", - "Qiu ", - "Bing ", - "Ye ", - "Cong ", - "Dong ", - "Si ", - "Cheng ", - "Diu ", - "Qiu ", - "Liang ", - "Diu ", - "You ", - "Liang ", - "Yan ", - "Bing ", - "Sang ", - "Gun ", - "Jiu ", - "Ge ", - "Ya ", - "Qiang ", - "Zhong ", - "Ji ", - "Jie ", - "Feng ", - "Guan ", - "Chuan ", - "Chan ", - "Lin ", - "Zhuo ", - "Zhu ", - "Ha ", - "Wan ", - "Dan ", - "Wei ", - "Zhu ", - "Jing ", - "Li ", - "Ju ", - "Pie ", - "Fu ", - "Yi ", - "Yi ", - "Nai ", - "Shime ", - "Jiu ", - "Jiu ", - "Zhe ", - "Yao ", - "Yi ", - "[?] ", - "Zhi ", - "Wu ", - "Zha ", - "Hu ", - "Fa ", - "Le ", - "Zhong ", - "Ping ", - "Pang ", - "Qiao ", - "Hu ", - "Guai ", - "Cheng ", - "Cheng ", - "Yi ", - "Yin ", - "[?] ", - "Mie ", - "Jiu ", - "Qi ", - "Ye ", - "Xi ", - "Xiang ", - "Gai ", - "Diu ", - "Hal ", - "[?] ", - "Shu ", - "Twul ", - "Shi ", - "Ji ", - "Nang ", - "Jia ", - "Kel ", - "Shi ", - "[?] ", - "Ol ", - "Mai ", - "Luan ", - "Cal ", - "Ru ", - "Xue ", - "Yan ", - "Fu ", - "Sha ", - "Na ", - "Gan ", - "Sol ", - "El ", - "Cwul ", - "[?] ", - "Gan ", - "Chi ", - "Gui ", - "Gan ", - "Luan ", - "Lin ", - "Yi ", - "Jue ", - "Liao ", - "Ma ", - "Yu ", - "Zheng ", - "Shi ", - "Shi ", - "Er ", - "Chu ", - "Yu ", - "Yu ", - "Yu ", - "Yun ", - "Hu ", - "Qi ", - "Wu ", - "Jing ", - "Si ", - "Sui ", - "Gen ", - "Gen ", - "Ya ", - "Xie ", - "Ya ", - "Qi ", - "Ya ", - "Ji ", - "Tou ", - "Wang ", - "Kang ", - "Ta ", - "Jiao ", - "Hai ", - "Yi ", - "Chan ", - "Heng ", - "Mu ", - "[?] ", - "Xiang ", - "Jing ", - "Ting ", - "Liang ", - "Xiang ", - "Jing ", - "Ye ", - "Qin ", - "Bo ", - "You ", - "Xie ", - "Dan ", - "Lian ", - "Duo ", - "Wei ", - "Ren ", - "Ren ", - "Ji ", - "La ", - "Wang ", - "Yi ", - "Shi ", - "Ren ", - "Le ", - "Ding ", - "Ze ", - "Jin ", - "Pu ", - "Chou ", - "Ba ", - "Zhang ", - "Jin ", - "Jie ", - "Bing ", - "Reng ", - "Cong ", - "Fo ", - "San ", - "Lun ", - "Sya ", - "Cang ", - "Zi ", - "Shi ", - "Ta ", - "Zhang ", - "Fu ", - "Xian ", - "Xian ", - "Tuo ", - "Hong ", - "Tong ", - "Ren ", - "Qian ", - "Gan ", - "Yi ", - "Di ", - "Dai ", - "Ling ", - "Yi ", - "Chao ", - "Chang ", - "Sa ", - "[?] ", - "Yi ", - "Mu ", - "Men ", - "Ren ", - "Jia ", - "Chao ", - "Yang ", - "Qian ", - "Zhong ", - "Pi ", - "Wan ", - "Wu ", - "Jian ", - "Jie ", - "Yao ", - "Feng ", - "Cang ", - "Ren ", - "Wang ", - "Fen ", - "Di ", - "Fang ", - "Zhong ", - "Qi ", - "Pei ", - "Yu ", - "Diao ", - "Dun ", - "Wen ", - "Yi ", - "Xin ", - "Kang ", - "Yi ", - "Ji ", - "Ai ", - "Wu ", - "Ji ", - "Fu ", - "Fa ", - "Xiu ", - "Jin ", - "Bei ", - "Dan ", - "Fu ", - "Tang ", - "Zhong ", - "You ", - "Huo ", - "Hui ", - "Yu ", - "Cui ", - "Chuan ", - "San ", - "Wei ", - "Chuan ", - "Che ", - "Ya ", - "Xian ", - "Shang ", - "Chang ", - "Lun ", - "Cang ", - "Xun ", - "Xin ", - "Wei ", - "Zhu ", - "[?] ", - "Xuan ", - "Nu ", - "Bo ", - "Gu ", - "Ni ", - "Ni ", - "Xie ", - "Ban ", - "Xu ", - "Ling ", - "Zhou ", - "Shen ", - "Qu ", - "Si ", - "Beng ", - "Si ", - "Jia ", - "Pi ", - "Yi ", - "Si ", - "Ai ", - "Zheng ", - "Dian ", - "Han ", - "Mai ", - "Dan ", - "Zhu ", - "Bu ", - "Qu ", - "Bi ", - "Shao ", - "Ci ", - "Wei ", - "Di ", - "Zhu ", - "Zuo ", - "You ", - "Yang ", - "Ti ", - "Zhan ", - "He ", - "Bi ", - "Tuo ", - "She ", - "Yu ", - "Yi ", - "Fo ", - "Zuo ", - "Kou ", - "Ning ", - "Tong ", - "Ni ", - "Xuan ", - "Qu ", - "Yong ", - "Wa ", - "Qian ", - "[?] ", - "Ka ", - "[?] ", - "Pei ", - "Huai ", - "He ", - "Lao ", - "Xiang ", - "Ge ", - "Yang ", - "Bai ", - "Fa ", - "Ming ", - "Jia ", - "Er ", - "Bing ", - "Ji ", - "Hen ", - "Huo ", - "Gui ", - "Quan ", - "Tiao ", - "Jiao ", - "Ci ", - "Yi ", - "Shi ", - "Xing ", - "Shen ", - "Tuo ", - "Kan ", - "Zhi ", - "Gai ", - "Lai ", - "Yi ", - "Chi ", - "Kua ", - "Guang ", - "Li ", - "Yin ", - "Shi ", - "Mi ", - "Zhu ", - "Xu ", - "You ", - "An ", - "Lu ", - "Mou ", - "Er ", - "Lun ", - "Tong ", - "Cha ", - "Chi ", - "Xun ", - "Gong ", - "Zhou ", - "Yi ", - "Ru ", - "Jian ", - "Xia ", - "Jia ", - "Zai ", - "Lu ", - "Ko ", - "Jiao ", - "Zhen ", - "Ce ", - "Qiao ", - "Kuai ", - "Chai ", - "Ning ", - "Nong ", - "Jin ", - "Wu ", - "Hou ", - "Jiong ", - "Cheng ", - "Zhen ", - "Zuo ", - "Chou ", - "Qin ", - "Lu ", - "Ju ", - "Shu ", - "Ting ", - "Shen ", - "Tuo ", - "Bo ", - "Nan ", - "Hao ", - "Bian ", - "Tui ", - "Yu ", - "Xi ", - "Cu ", - "E ", - "Qiu ", - "Xu ", - "Kuang ", - "Ku ", - "Wu ", - "Jun ", - "Yi ", - "Fu ", - "Lang ", - "Zu ", - "Qiao ", - "Li ", - "Yong ", - "Hun ", - "Jing ", - "Xian ", - "San ", - "Pai ", - "Su ", - "Fu ", - "Xi ", - "Li ", - "Fu ", - "Ping ", - "Bao ", - "Yu ", - "Si ", - "Xia ", - "Xin ", - "Xiu ", - "Yu ", - "Ti ", - "Che ", - "Chou ", - "[?] ", - "Yan ", - "Lia ", - "Li ", - "Lai ", - "[?] ", - "Jian ", - "Xiu ", - "Fu ", - "He ", - "Ju ", - "Xiao ", - "Pai ", - "Jian ", - "Biao ", - "Chu ", - "Fei ", - "Feng ", - "Ya ", - "An ", - "Bei ", - "Yu ", - "Xin ", - "Bi ", - "Jian ", - "Chang ", - "Chi ", - "Bing ", - "Zan ", - "Yao ", - "Cui ", - "Lia ", - "Wan ", - "Lai ", - "Cang ", - "Zong ", - "Ge ", - "Guan ", - "Bei ", - "Tian ", - "Shu ", - "Shu ", - "Men ", - "Dao ", - "Tan ", - "Jue ", - "Chui ", - "Xing ", - "Peng ", - "Tang ", - "Hou ", - "Yi ", - "Qi ", - "Ti ", - "Gan ", - "Jing ", - "Jie ", - "Sui ", - "Chang ", - "Jie ", - "Fang ", - "Zhi ", - "Kong ", - "Juan ", - "Zong ", - "Ju ", - "Qian ", - "Ni ", - "Lun ", - "Zhuo ", - "Wei ", - "Luo ", - "Song ", - "Leng ", - "Hun ", - "Dong ", - "Zi ", - "Ben ", - "Wu ", - "Ju ", - "Nai ", - "Cai ", - "Jian ", - "Zhai ", - "Ye ", - "Zhi ", - "Sha ", - "Qing ", - "[?] ", - "Ying ", - "Cheng ", - "Jian ", - "Yan ", - "Nuan ", - "Zhong ", - "Chun ", - "Jia ", - "Jie ", - "Wei ", - "Yu ", - "Bing ", - "Ruo ", - "Ti ", - "Wei ", - "Pian ", - "Yan ", - "Feng ", - "Tang ", - "Wo ", - "E ", - "Xie ", - "Che ", - "Sheng ", - "Kan ", - "Di ", - "Zuo ", - "Cha ", - "Ting ", - "Bei ", - "Ye ", - "Huang ", - "Yao ", - "Zhan ", - "Chou ", - "Yan ", - "You ", - "Jian ", - "Xu ", - "Zha ", - "Ci ", - "Fu ", - "Bi ", - "Zhi ", - "Zong ", - "Mian ", - "Ji ", - "Yi ", - "Xie ", - "Xun ", - "Si ", - "Duan ", - "Ce ", - "Zhen ", - "Ou ", - "Tou ", - "Tou ", - "Bei ", - "Za ", - "Lu ", - "Jie ", - "Wei ", - "Fen ", - "Chang ", - "Gui ", - "Sou ", - "Zhi ", - "Su ", - "Xia ", - "Fu ", - "Yuan ", - "Rong ", - "Li ", - "Ru ", - "Yun ", - "Gou ", - "Ma ", - "Bang ", - "Dian ", - "Tang ", - "Hao ", - "Jie ", - "Xi ", - "Shan ", - "Qian ", - "Jue ", - "Cang ", - "Chu ", - "San ", - "Bei ", - "Xiao ", - "Yong ", - "Yao ", - "Tan ", - "Suo ", - "Yang ", - "Fa ", - "Bing ", - "Jia ", - "Dai ", - "Zai ", - "Tang ", - "[?] ", - "Bin ", - "Chu ", - "Nuo ", - "Can ", - "Lei ", - "Cui ", - "Yong ", - "Zao ", - "Zong ", - "Peng ", - "Song ", - "Ao ", - "Chuan ", - "Yu ", - "Zhai ", - "Cou ", - "Shang ", - "Qiang ", - "Jing ", - "Chi ", - "Sha ", - "Han ", - "Zhang ", - "Qing ", - "Yan ", - "Di ", - "Xi ", - "Lu ", - "Bei ", - "Piao ", - "Jin ", - "Lian ", - "Lu ", - "Man ", - "Qian ", - "Xian ", - "Tan ", - "Ying ", - "Dong ", - "Zhuan ", - "Xiang ", - "Shan ", - "Qiao ", - "Jiong ", - "Tui ", - "Zun ", - "Pu ", - "Xi ", - "Lao ", - "Chang ", - "Guang ", - "Liao ", - "Qi ", - "Deng ", - "Chan ", - "Wei ", - "Ji ", - "Fan ", - "Hui ", - "Chuan ", - "Jian ", - "Dan ", - "Jiao ", - "Jiu ", - "Seng ", - "Fen ", - "Xian ", - "Jue ", - "E ", - "Jiao ", - "Jian ", - "Tong ", - "Lin ", - "Bo ", - "Gu ", - "[?] ", - "Su ", - "Xian ", - "Jiang ", - "Min ", - "Ye ", - "Jin ", - "Jia ", - "Qiao ", - "Pi ", - "Feng ", - "Zhou ", - "Ai ", - "Sai ", - "Yi ", - "Jun ", - "Nong ", - "Chan ", - "Yi ", - "Dang ", - "Jing ", - "Xuan ", - "Kuai ", - "Jian ", - "Chu ", - "Dan ", - "Jiao ", - "Sha ", - "Zai ", - "[?] ", - "Bin ", - "An ", - "Ru ", - "Tai ", - "Chou ", - "Chai ", - "Lan ", - "Ni ", - "Jin ", - "Qian ", - "Meng ", - "Wu ", - "Ning ", - "Qiong ", - "Ni ", - "Chang ", - "Lie ", - "Lei ", - "Lu ", - "Kuang ", - "Bao ", - "Du ", - "Biao ", - "Zan ", - "Zhi ", - "Si ", - "You ", - "Hao ", - "Chen ", - "Chen ", - "Li ", - "Teng ", - "Wei ", - "Long ", - "Chu ", - "Chan ", - "Rang ", - "Shu ", - "Hui ", - "Li ", - "Luo ", - "Zan ", - "Nuo ", - "Tang ", - "Yan ", - "Lei ", - "Nang ", - "Er ", - "Wu ", - "Yun ", - "Zan ", - "Yuan ", - "Xiong ", - "Chong ", - "Zhao ", - "Xiong ", - "Xian ", - "Guang ", - "Dui ", - "Ke ", - "Dui ", - "Mian ", - "Tu ", - "Chang ", - "Er ", - "Dui ", - "Er ", - "Xin ", - "Tu ", - "Si ", - "Yan ", - "Yan ", - "Shi ", - "Shi ", - "Dang ", - "Qian ", - "Dou ", - "Fen ", - "Mao ", - "Shen ", - "Dou ", - "Bai ", - "Jing ", - "Li ", - "Huang ", - "Ru ", - "Wang ", - "Nei ", - "Quan ", - "Liang ", - "Yu ", - "Ba ", - "Gong ", - "Liu ", - "Xi ", - "[?] ", - "Lan ", - "Gong ", - "Tian ", - "Guan ", - "Xing ", - "Bing ", - "Qi ", - "Ju ", - "Dian ", - "Zi ", - "Ppwun ", - "Yang ", - "Jian ", - "Shou ", - "Ji ", - "Yi ", - "Ji ", - "Chan ", - "Jiong ", - "Mao ", - "Ran ", - "Nei ", - "Yuan ", - "Mao ", - "Gang ", - "Ran ", - "Ce ", - "Jiong ", - "Ce ", - "Zai ", - "Gua ", - "Jiong ", - "Mao ", - "Zhou ", - "Mou ", - "Gou ", - "Xu ", - "Mian ", - "Mi ", - "Rong ", - "Yin ", - "Xie ", - "Kan ", - "Jun ", - "Nong ", - "Yi ", - "Mi ", - "Shi ", - "Guan ", - "Meng ", - "Zhong ", - "Ju ", - "Yuan ", - "Ming ", - "Kou ", - "Lam ", - "Fu ", - "Xie ", - "Mi ", - "Bing ", - "Dong ", - "Tai ", - "Gang ", - "Feng ", - "Bing ", - "Hu ", - "Chong ", - "Jue ", - "Hu ", - "Kuang ", - "Ye ", - "Leng ", - "Pan ", - "Fu ", - "Min ", - "Dong ", - "Xian ", - "Lie ", - "Xia ", - "Jian ", - "Jing ", - "Shu ", - "Mei ", - "Tu ", - "Qi ", - "Gu ", - "Zhun ", - "Song ", - "Jing ", - "Liang ", - "Qing ", - "Diao ", - "Ling ", - "Dong ", - "Gan ", - "Jian ", - "Yin ", - "Cou ", - "Yi ", - "Li ", - "Cang ", - "Ming ", - "Zhuen ", - "Cui ", - "Si ", - "Duo ", - "Jin ", - "Lin ", - "Lin ", - "Ning ", - "Xi ", - "Du ", - "Ji ", - "Fan ", - "Fan ", - "Fan ", - "Feng ", - "Ju ", - "Chu ", - "Tako ", - "Feng ", - "Mok ", - "Ci ", - "Fu ", - "Feng ", - "Ping ", - "Feng ", - "Kai ", - "Huang ", - "Kai ", - "Gan ", - "Deng ", - "Ping ", - "Qu ", - "Xiong ", - "Kuai ", - "Tu ", - "Ao ", - "Chu ", - "Ji ", - "Dang ", - "Han ", - "Han ", - "Zao ", - "Dao ", - "Diao ", - "Dao ", - "Ren ", - "Ren ", - "Chuang ", - "Fen ", - "Qie ", - "Yi ", - "Ji ", - "Kan ", - "Qian ", - "Cun ", - "Chu ", - "Wen ", - "Ji ", - "Dan ", - "Xing ", - "Hua ", - "Wan ", - "Jue ", - "Li ", - "Yue ", - "Lie ", - "Liu ", - "Ze ", - "Gang ", - "Chuang ", - "Fu ", - "Chu ", - "Qu ", - "Ju ", - "Shan ", - "Min ", - "Ling ", - "Zhong ", - "Pan ", - "Bie ", - "Jie ", - "Jie ", - "Bao ", - "Li ", - "Shan ", - "Bie ", - "Chan ", - "Jing ", - "Gua ", - "Gen ", - "Dao ", - "Chuang ", - "Kui ", - "Ku ", - "Duo ", - "Er ", - "Zhi ", - "Shua ", - "Quan ", - "Cha ", - "Ci ", - "Ke ", - "Jie ", - "Gui ", - "Ci ", - "Gui ", - "Kai ", - "Duo ", - "Ji ", - "Ti ", - "Jing ", - "Lou ", - "Gen ", - "Ze ", - "Yuan ", - "Cuo ", - "Xue ", - "Ke ", - "La ", - "Qian ", - "Cha ", - "Chuang ", - "Gua ", - "Jian ", - "Cuo ", - "Li ", - "Ti ", - "Fei ", - "Pou ", - "Chan ", - "Qi ", - "Chuang ", - "Zi ", - "Gang ", - "Wan ", - "Bo ", - "Ji ", - "Duo ", - "Qing ", - "Yan ", - "Zhuo ", - "Jian ", - "Ji ", - "Bo ", - "Yan ", - "Ju ", - "Huo ", - "Sheng ", - "Jian ", - "Duo ", - "Duan ", - "Wu ", - "Gua ", - "Fu ", - "Sheng ", - "Jian ", - "Ge ", - "Zha ", - "Kai ", - "Chuang ", - "Juan ", - "Chan ", - "Tuan ", - "Lu ", - "Li ", - "Fou ", - "Shan ", - "Piao ", - "Kou ", - "Jiao ", - "Gua ", - "Qiao ", - "Jue ", - "Hua ", - "Zha ", - "Zhuo ", - "Lian ", - "Ju ", - "Pi ", - "Liu ", - "Gui ", - "Jiao ", - "Gui ", - "Jian ", - "Jian ", - "Tang ", - "Huo ", - "Ji ", - "Jian ", - "Yi ", - "Jian ", - "Zhi ", - "Chan ", - "Cuan ", - "Mo ", - "Li ", - "Zhu ", - "Li ", - "Ya ", - "Quan ", - "Ban ", - "Gong ", - "Jia ", - "Wu ", - "Mai ", - "Lie ", - "Jin ", - "Keng ", - "Xie ", - "Zhi ", - "Dong ", - "Zhu ", - "Nu ", - "Jie ", - "Qu ", - "Shao ", - "Yi ", - "Zhu ", - "Miao ", - "Li ", - "Jing ", - "Lao ", - "Lao ", - "Juan ", - "Kou ", - "Yang ", - "Wa ", - "Xiao ", - "Mou ", - "Kuang ", - "Jie ", - "Lie ", - "He ", - "Shi ", - "Ke ", - "Jing ", - "Hao ", - "Bo ", - "Min ", - "Chi ", - "Lang ", - "Yong ", - "Yong ", - "Mian ", - "Ke ", - "Xun ", - "Juan ", - "Qing ", - "Lu ", - "Pou ", - "Meng ", - "Lai ", - "Le ", - "Kai ", - "Mian ", - "Dong ", - "Xu ", - "Xu ", - "Kan ", - "Wu ", - "Yi ", - "Xun ", - "Weng ", - "Sheng ", - "Lao ", - "Mu ", - "Lu ", - "Piao ", - "Shi ", - "Ji ", - "Qin ", - "Qiang ", - "Jiao ", - "Quan ", - "Yang ", - "Yi ", - "Jue ", - "Fan ", - "Juan ", - "Tong ", - "Ju ", - "Dan ", - "Xie ", - "Mai ", - "Xun ", - "Xun ", - "Lu ", - "Li ", - "Che ", - "Rang ", - "Quan ", - "Bao ", - "Shao ", - "Yun ", - "Jiu ", - "Bao ", - "Gou ", - "Wu ", - "Yun ", - "Mwun ", - "Nay ", - "Gai ", - "Gai ", - "Bao ", - "Cong ", - "[?] ", - "Xiong ", - "Peng ", - "Ju ", - "Tao ", - "Ge ", - "Pu ", - "An ", - "Pao ", - "Fu ", - "Gong ", - "Da ", - "Jiu ", - "Qiong ", - "Bi ", - "Hua ", - "Bei ", - "Nao ", - "Chi ", - "Fang ", - "Jiu ", - "Yi ", - "Za ", - "Jiang ", - "Kang ", - "Jiang ", - "Kuang ", - "Hu ", - "Xia ", - "Qu ", - "Bian ", - "Gui ", - "Qie ", - "Zang ", - "Kuang ", - "Fei ", - "Hu ", - "Tou ", - "Gui ", - "Gui ", - "Hui ", - "Dan ", - "Gui ", - "Lian ", - "Lian ", - "Suan ", - "Du ", - "Jiu ", - "Qu ", - "Xi ", - "Pi ", - "Qu ", - "Yi ", - "Qia ", - "Yan ", - "Bian ", - "Ni ", - "Qu ", - "Shi ", - "Xin ", - "Qian ", - "Nian ", - "Sa ", - "Zu ", - "Sheng ", - "Wu ", - "Hui ", - "Ban ", - "Shi ", - "Xi ", - "Wan ", - "Hua ", - "Xie ", - "Wan ", - "Bei ", - "Zu ", - "Zhuo ", - "Xie ", - "Dan ", - "Mai ", - "Nan ", - "Dan ", - "Ji ", - "Bo ", - "Shuai ", - "Bu ", - "Kuang ", - "Bian ", - "Bu ", - "Zhan ", - "Qia ", - "Lu ", - "You ", - "Lu ", - "Xi ", - "Gua ", - "Wo ", - "Xie ", - "Jie ", - "Jie ", - "Wei ", - "Ang ", - "Qiong ", - "Zhi ", - "Mao ", - "Yin ", - "Wei ", - "Shao ", - "Ji ", - "Que ", - "Luan ", - "Shi ", - "Juan ", - "Xie ", - "Xu ", - "Jin ", - "Que ", - "Wu ", - "Ji ", - "E ", - "Qing ", - "Xi ", - "[?] ", - "Han ", - "Zhan ", - "E ", - "Ting ", - "Li ", - "Zhe ", - "Han ", - "Li ", - "Ya ", - "Ya ", - "Yan ", - "She ", - "Zhi ", - "Zha ", - "Pang ", - "[?] ", - "He ", - "Ya ", - "Zhi ", - "Ce ", - "Pang ", - "Ti ", - "Li ", - "She ", - "Hou ", - "Ting ", - "Zui ", - "Cuo ", - "Fei ", - "Yuan ", - "Ce ", - "Yuan ", - "Xiang ", - "Yan ", - "Li ", - "Jue ", - "Sha ", - "Dian ", - "Chu ", - "Jiu ", - "Qin ", - "Ao ", - "Gui ", - "Yan ", - "Si ", - "Li ", - "Chang ", - "Lan ", - "Li ", - "Yan ", - "Yan ", - "Yuan ", - "Si ", - "Gong ", - "Lin ", - "Qiu ", - "Qu ", - "Qu ", - "Uk ", - "Lei ", - "Du ", - "Xian ", - "Zhuan ", - "San ", - "Can ", - "Can ", - "Can ", - "Can ", - "Ai ", - "Dai ", - "You ", - "Cha ", - "Ji ", - "You ", - "Shuang ", - "Fan ", - "Shou ", - "Guai ", - "Ba ", - "Fa ", - "Ruo ", - "Shi ", - "Shu ", - "Zhuo ", - "Qu ", - "Shou ", - "Bian ", - "Xu ", - "Jia ", - "Pan ", - "Sou ", - "Gao ", - "Wei ", - "Sou ", - "Die ", - "Rui ", - "Cong ", - "Kou ", - "Gu ", - "Ju ", - "Ling ", - "Gua ", - "Tao ", - "Kou ", - "Zhi ", - "Jiao ", - "Zhao ", - "Ba ", - "Ding ", - "Ke ", - "Tai ", - "Chi ", - "Shi ", - "You ", - "Qiu ", - "Po ", - "Xie ", - "Hao ", - "Si ", - "Tan ", - "Chi ", - "Le ", - "Diao ", - "Ji ", - "[?] ", - "Hong ", - "Mie ", - "Xu ", - "Mang ", - "Chi ", - "Ge ", - "Xuan ", - "Yao ", - "Zi ", - "He ", - "Ji ", - "Diao ", - "Cun ", - "Tong ", - "Ming ", - "Hou ", - "Li ", - "Tu ", - "Xiang ", - "Zha ", - "Xia ", - "Ye ", - "Lu ", - "A ", - "Ma ", - "Ou ", - "Xue ", - "Yi ", - "Jun ", - "Chou ", - "Lin ", - "Tun ", - "Yin ", - "Fei ", - "Bi ", - "Qin ", - "Qin ", - "Jie ", - "Bu ", - "Fou ", - "Ba ", - "Dun ", - "Fen ", - "E ", - "Han ", - "Ting ", - "Hang ", - "Shun ", - "Qi ", - "Hong ", - "Zhi ", - "Shen ", - "Wu ", - "Wu ", - "Chao ", - "Ne ", - "Xue ", - "Xi ", - "Chui ", - "Dou ", - "Wen ", - "Hou ", - "Ou ", - "Wu ", - "Gao ", - "Ya ", - "Jun ", - "Lu ", - "E ", - "Ge ", - "Mei ", - "Ai ", - "Qi ", - "Cheng ", - "Wu ", - "Gao ", - "Fu ", - "Jiao ", - "Hong ", - "Chi ", - "Sheng ", - "Ne ", - "Tun ", - "Fu ", - "Yi ", - "Dai ", - "Ou ", - "Li ", - "Bai ", - "Yuan ", - "Kuai ", - "[?] ", - "Qiang ", - "Wu ", - "E ", - "Shi ", - "Quan ", - "Pen ", - "Wen ", - "Ni ", - "M ", - "Ling ", - "Ran ", - "You ", - "Di ", - "Zhou ", - "Shi ", - "Zhou ", - "Tie ", - "Xi ", - "Yi ", - "Qi ", - "Ping ", - "Zi ", - "Gu ", - "Zi ", - "Wei ", - "Xu ", - "He ", - "Nao ", - "Xia ", - "Pei ", - "Yi ", - "Xiao ", - "Shen ", - "Hu ", - "Ming ", - "Da ", - "Qu ", - "Ju ", - "Gem ", - "Za ", - "Tuo ", - "Duo ", - "Pou ", - "Pao ", - "Bi ", - "Fu ", - "Yang ", - "He ", - "Zha ", - "He ", - "Hai ", - "Jiu ", - "Yong ", - "Fu ", - "Que ", - "Zhou ", - "Wa ", - "Ka ", - "Gu ", - "Ka ", - "Zuo ", - "Bu ", - "Long ", - "Dong ", - "Ning ", - "Tha ", - "Si ", - "Xian ", - "Huo ", - "Qi ", - "Er ", - "E ", - "Guang ", - "Zha ", - "Xi ", - "Yi ", - "Lie ", - "Zi ", - "Mie ", - "Mi ", - "Zhi ", - "Yao ", - "Ji ", - "Zhou ", - "Ge ", - "Shuai ", - "Zan ", - "Xiao ", - "Ke ", - "Hui ", - "Kua ", - "Huai ", - "Tao ", - "Xian ", - "E ", - "Xuan ", - "Xiu ", - "Wai ", - "Yan ", - "Lao ", - "Yi ", - "Ai ", - "Pin ", - "Shen ", - "Tong ", - "Hong ", - "Xiong ", - "Chi ", - "Wa ", - "Ha ", - "Zai ", - "Yu ", - "Di ", - "Pai ", - "Xiang ", - "Ai ", - "Hen ", - "Kuang ", - "Ya ", - "Da ", - "Xiao ", - "Bi ", - "Yue ", - "[?] ", - "Hua ", - "Sasou ", - "Kuai ", - "Duo ", - "[?] ", - "Ji ", - "Nong ", - "Mou ", - "Yo ", - "Hao ", - "Yuan ", - "Long ", - "Pou ", - "Mang ", - "Ge ", - "E ", - "Chi ", - "Shao ", - "Li ", - "Na ", - "Zu ", - "He ", - "Ku ", - "Xiao ", - "Xian ", - "Lao ", - "Bo ", - "Zhe ", - "Zha ", - "Liang ", - "Ba ", - "Mie ", - "Le ", - "Sui ", - "Fou ", - "Bu ", - "Han ", - "Heng ", - "Geng ", - "Shuo ", - "Ge ", - "You ", - "Yan ", - "Gu ", - "Gu ", - "Bai ", - "Han ", - "Suo ", - "Chun ", - "Yi ", - "Ai ", - "Jia ", - "Tu ", - "Xian ", - "Huan ", - "Li ", - "Xi ", - "Tang ", - "Zuo ", - "Qiu ", - "Che ", - "Wu ", - "Zao ", - "Ya ", - "Dou ", - "Qi ", - "Di ", - "Qin ", - "Ma ", - "Mal ", - "Hong ", - "Dou ", - "Kes ", - "Lao ", - "Liang ", - "Suo ", - "Zao ", - "Huan ", - "Lang ", - "Sha ", - "Ji ", - "Zuo ", - "Wo ", - "Feng ", - "Yin ", - "Hu ", - "Qi ", - "Shou ", - "Wei ", - "Shua ", - "Chang ", - "Er ", - "Li ", - "Qiang ", - "An ", - "Jie ", - "Yo ", - "Nian ", - "Yu ", - "Tian ", - "Lai ", - "Sha ", - "Xi ", - "Tuo ", - "Hu ", - "Ai ", - "Zhou ", - "Nou ", - "Ken ", - "Zhuo ", - "Zhuo ", - "Shang ", - "Di ", - "Heng ", - "Lan ", - "A ", - "Xiao ", - "Xiang ", - "Tun ", - "Wu ", - "Wen ", - "Cui ", - "Sha ", - "Hu ", - "Qi ", - "Qi ", - "Tao ", - "Dan ", - "Dan ", - "Ye ", - "Zi ", - "Bi ", - "Cui ", - "Chuo ", - "He ", - "Ya ", - "Qi ", - "Zhe ", - "Pei ", - "Liang ", - "Xian ", - "Pi ", - "Sha ", - "La ", - "Ze ", - "Qing ", - "Gua ", - "Pa ", - "Zhe ", - "Se ", - "Zhuan ", - "Nie ", - "Guo ", - "Luo ", - "Yan ", - "Di ", - "Quan ", - "Tan ", - "Bo ", - "Ding ", - "Lang ", - "Xiao ", - "[?] ", - "Tang ", - "Chi ", - "Ti ", - "An ", - "Jiu ", - "Dan ", - "Ke ", - "Yong ", - "Wei ", - "Nan ", - "Shan ", - "Yu ", - "Zhe ", - "La ", - "Jie ", - "Hou ", - "Han ", - "Die ", - "Zhou ", - "Chai ", - "Wai ", - "Re ", - "Yu ", - "Yin ", - "Zan ", - "Yao ", - "Wo ", - "Mian ", - "Hu ", - "Yun ", - "Chuan ", - "Hui ", - "Huan ", - "Huan ", - "Xi ", - "He ", - "Ji ", - "Kui ", - "Zhong ", - "Wei ", - "Sha ", - "Xu ", - "Huang ", - "Du ", - "Nie ", - "Xuan ", - "Liang ", - "Yu ", - "Sang ", - "Chi ", - "Qiao ", - "Yan ", - "Dan ", - "Pen ", - "Can ", - "Li ", - "Yo ", - "Zha ", - "Wei ", - "Miao ", - "Ying ", - "Pen ", - "Phos ", - "Kui ", - "Xi ", - "Yu ", - "Jie ", - "Lou ", - "Ku ", - "Sao ", - "Huo ", - "Ti ", - "Yao ", - "He ", - "A ", - "Xiu ", - "Qiang ", - "Se ", - "Yong ", - "Su ", - "Hong ", - "Xie ", - "Yi ", - "Suo ", - "Ma ", - "Cha ", - "Hai ", - "Ke ", - "Ta ", - "Sang ", - "Tian ", - "Ru ", - "Sou ", - "Wa ", - "Ji ", - "Pang ", - "Wu ", - "Xian ", - "Shi ", - "Ge ", - "Zi ", - "Jie ", - "Luo ", - "Weng ", - "Wa ", - "Si ", - "Chi ", - "Hao ", - "Suo ", - "Jia ", - "Hai ", - "Suo ", - "Qin ", - "Nie ", - "He ", - "Cis ", - "Sai ", - "Ng ", - "Ge ", - "Na ", - "Dia ", - "Ai ", - "[?] ", - "Tong ", - "Bi ", - "Ao ", - "Ao ", - "Lian ", - "Cui ", - "Zhe ", - "Mo ", - "Sou ", - "Sou ", - "Tan ", - "Di ", - "Qi ", - "Jiao ", - "Chong ", - "Jiao ", - "Kai ", - "Tan ", - "San ", - "Cao ", - "Jia ", - "Ai ", - "Xiao ", - "Piao ", - "Lou ", - "Ga ", - "Gu ", - "Xiao ", - "Hu ", - "Hui ", - "Guo ", - "Ou ", - "Xian ", - "Ze ", - "Chang ", - "Xu ", - "Po ", - "De ", - "Ma ", - "Ma ", - "Hu ", - "Lei ", - "Du ", - "Ga ", - "Tang ", - "Ye ", - "Beng ", - "Ying ", - "Saai ", - "Jiao ", - "Mi ", - "Xiao ", - "Hua ", - "Mai ", - "Ran ", - "Zuo ", - "Peng ", - "Lao ", - "Xiao ", - "Ji ", - "Zhu ", - "Chao ", - "Kui ", - "Zui ", - "Xiao ", - "Si ", - "Hao ", - "Fu ", - "Liao ", - "Qiao ", - "Xi ", - "Xiu ", - "Tan ", - "Tan ", - "Mo ", - "Xun ", - "E ", - "Zun ", - "Fan ", - "Chi ", - "Hui ", - "Zan ", - "Chuang ", - "Cu ", - "Dan ", - "Yu ", - "Tun ", - "Cheng ", - "Jiao ", - "Ye ", - "Xi ", - "Qi ", - "Hao ", - "Lian ", - "Xu ", - "Deng ", - "Hui ", - "Yin ", - "Pu ", - "Jue ", - "Qin ", - "Xun ", - "Nie ", - "Lu ", - "Si ", - "Yan ", - "Ying ", - "Da ", - "Dan ", - "Yu ", - "Zhou ", - "Jin ", - "Nong ", - "Yue ", - "Hui ", - "Qi ", - "E ", - "Zao ", - "Yi ", - "Shi ", - "Jiao ", - "Yuan ", - "Ai ", - "Yong ", - "Jue ", - "Kuai ", - "Yu ", - "Pen ", - "Dao ", - "Ge ", - "Xin ", - "Dun ", - "Dang ", - "Sin ", - "Sai ", - "Pi ", - "Pi ", - "Yin ", - "Zui ", - "Ning ", - "Di ", - "Lan ", - "Ta ", - "Huo ", - "Ru ", - "Hao ", - "Xia ", - "Ya ", - "Duo ", - "Xi ", - "Chou ", - "Ji ", - "Jin ", - "Hao ", - "Ti ", - "Chang ", - "[?] ", - "[?] ", - "Ca ", - "Ti ", - "Lu ", - "Hui ", - "Bo ", - "You ", - "Nie ", - "Yin ", - "Hu ", - "Mo ", - "Huang ", - "Zhe ", - "Li ", - "Liu ", - "Haai ", - "Nang ", - "Xiao ", - "Mo ", - "Yan ", - "Li ", - "Lu ", - "Long ", - "Fu ", - "Dan ", - "Chen ", - "Pin ", - "Pi ", - "Xiang ", - "Huo ", - "Mo ", - "Xi ", - "Duo ", - "Ku ", - "Yan ", - "Chan ", - "Ying ", - "Rang ", - "Dian ", - "La ", - "Ta ", - "Xiao ", - "Jiao ", - "Chuo ", - "Huan ", - "Huo ", - "Zhuan ", - "Nie ", - "Xiao ", - "Ca ", - "Li ", - "Chan ", - "Chai ", - "Li ", - "Yi ", - "Luo ", - "Nang ", - "Zan ", - "Su ", - "Xi ", - "So ", - "Jian ", - "Za ", - "Zhu ", - "Lan ", - "Nie ", - "Nang ", - "[?] ", - "[?] ", - "Wei ", - "Hui ", - "Yin ", - "Qiu ", - "Si ", - "Nin ", - "Jian ", - "Hui ", - "Xin ", - "Yin ", - "Nan ", - "Tuan ", - "Tuan ", - "Dun ", - "Kang ", - "Yuan ", - "Jiong ", - "Pian ", - "Yun ", - "Cong ", - "Hu ", - "Hui ", - "Yuan ", - "You ", - "Guo ", - "Kun ", - "Cong ", - "Wei ", - "Tu ", - "Wei ", - "Lun ", - "Guo ", - "Qun ", - "Ri ", - "Ling ", - "Gu ", - "Guo ", - "Tai ", - "Guo ", - "Tu ", - "You ", - "Guo ", - "Yin ", - "Hun ", - "Pu ", - "Yu ", - "Han ", - "Yuan ", - "Lun ", - "Quan ", - "Yu ", - "Qing ", - "Guo ", - "Chuan ", - "Wei ", - "Yuan ", - "Quan ", - "Ku ", - "Fu ", - "Yuan ", - "Yuan ", - "E ", - "Tu ", - "Tu ", - "Tu ", - "Tuan ", - "Lue ", - "Hui ", - "Yi ", - "Yuan ", - "Luan ", - "Luan ", - "Tu ", - "Ya ", - "Tu ", - "Ting ", - "Sheng ", - "Pu ", - "Lu ", - "Iri ", - "Ya ", - "Zai ", - "Wei ", - "Ge ", - "Yu ", - "Wu ", - "Gui ", - "Pi ", - "Yi ", - "Di ", - "Qian ", - "Qian ", - "Zhen ", - "Zhuo ", - "Dang ", - "Qia ", - "Akutsu ", - "Yama ", - "Kuang ", - "Chang ", - "Qi ", - "Nie ", - "Mo ", - "Ji ", - "Jia ", - "Zhi ", - "Zhi ", - "Ban ", - "Xun ", - "Tou ", - "Qin ", - "Fen ", - "Jun ", - "Keng ", - "Tun ", - "Fang ", - "Fen ", - "Ben ", - "Tan ", - "Kan ", - "Pi ", - "Zuo ", - "Keng ", - "Bi ", - "Xing ", - "Di ", - "Jing ", - "Ji ", - "Kuai ", - "Di ", - "Jing ", - "Jian ", - "Tan ", - "Li ", - "Ba ", - "Wu ", - "Fen ", - "Zhui ", - "Po ", - "Pan ", - "Tang ", - "Kun ", - "Qu ", - "Tan ", - "Zhi ", - "Tuo ", - "Gan ", - "Ping ", - "Dian ", - "Gua ", - "Ni ", - "Tai ", - "Pi ", - "Jiong ", - "Yang ", - "Fo ", - "Ao ", - "Liu ", - "Qiu ", - "Mu ", - "Ke ", - "Gou ", - "Xue ", - "Ba ", - "Chi ", - "Che ", - "Ling ", - "Zhu ", - "Fu ", - "Hu ", - "Zhi ", - "Chui ", - "La ", - "Long ", - "Long ", - "Lu ", - "Ao ", - "Tay ", - "Pao ", - "[?] ", - "Xing ", - "Dong ", - "Ji ", - "Ke ", - "Lu ", - "Ci ", - "Chi ", - "Lei ", - "Gai ", - "Yin ", - "Hou ", - "Dui ", - "Zhao ", - "Fu ", - "Guang ", - "Yao ", - "Duo ", - "Duo ", - "Gui ", - "Cha ", - "Yang ", - "Yin ", - "Fa ", - "Gou ", - "Yuan ", - "Die ", - "Xie ", - "Ken ", - "Jiong ", - "Shou ", - "E ", - "Ha ", - "Dian ", - "Hong ", - "Wu ", - "Kua ", - "[?] ", - "Tao ", - "Dang ", - "Kai ", - "Gake ", - "Nao ", - "An ", - "Xing ", - "Xian ", - "Huan ", - "Bang ", - "Pei ", - "Ba ", - "Yi ", - "Yin ", - "Han ", - "Xu ", - "Chui ", - "Cen ", - "Geng ", - "Ai ", - "Peng ", - "Fang ", - "Que ", - "Yong ", - "Xun ", - "Jia ", - "Di ", - "Mai ", - "Lang ", - "Xuan ", - "Cheng ", - "Yan ", - "Jin ", - "Zhe ", - "Lei ", - "Lie ", - "Bu ", - "Cheng ", - "Gomi ", - "Bu ", - "Shi ", - "Xun ", - "Guo ", - "Jiong ", - "Ye ", - "Nian ", - "Di ", - "Yu ", - "Bu ", - "Ya ", - "Juan ", - "Sui ", - "Pi ", - "Cheng ", - "Wan ", - "Ju ", - "Lun ", - "Zheng ", - "Kong ", - "Chong ", - "Dong ", - "Dai ", - "Tan ", - "An ", - "Cai ", - "Shu ", - "Beng ", - "Kan ", - "Zhi ", - "Duo ", - "Yi ", - "Zhi ", - "Yi ", - "Pei ", - "Ji ", - "Zhun ", - "Qi ", - "Sao ", - "Ju ", - "Ni ", - "Ku ", - "Ke ", - "Tang ", - "Kun ", - "Ni ", - "Jian ", - "Dui ", - "Jin ", - "Gang ", - "Yu ", - "E ", - "Peng ", - "Gu ", - "Tu ", - "Leng ", - "[?] ", - "Ya ", - "Qian ", - "[?] ", - "An ", - "[?] ", - "Duo ", - "Nao ", - "Tu ", - "Cheng ", - "Yin ", - "Hun ", - "Bi ", - "Lian ", - "Guo ", - "Die ", - "Zhuan ", - "Hou ", - "Bao ", - "Bao ", - "Yu ", - "Di ", - "Mao ", - "Jie ", - "Ruan ", - "E ", - "Geng ", - "Kan ", - "Zong ", - "Yu ", - "Huang ", - "E ", - "Yao ", - "Yan ", - "Bao ", - "Ji ", - "Mei ", - "Chang ", - "Du ", - "Tuo ", - "Yin ", - "Feng ", - "Zhong ", - "Jie ", - "Zhen ", - "Feng ", - "Gang ", - "Chuan ", - "Jian ", - "Pyeng ", - "Toride ", - "Xiang ", - "Huang ", - "Leng ", - "Duan ", - "[?] ", - "Xuan ", - "Ji ", - "Ji ", - "Kuai ", - "Ying ", - "Ta ", - "Cheng ", - "Yong ", - "Kai ", - "Su ", - "Su ", - "Shi ", - "Mi ", - "Ta ", - "Weng ", - "Cheng ", - "Tu ", - "Tang ", - "Que ", - "Zhong ", - "Li ", - "Peng ", - "Bang ", - "Sai ", - "Zang ", - "Dui ", - "Tian ", - "Wu ", - "Cheng ", - "Xun ", - "Ge ", - "Zhen ", - "Ai ", - "Gong ", - "Yan ", - "Kan ", - "Tian ", - "Yuan ", - "Wen ", - "Xie ", - "Liu ", - "Ama ", - "Lang ", - "Chang ", - "Peng ", - "Beng ", - "Chen ", - "Cu ", - "Lu ", - "Ou ", - "Qian ", - "Mei ", - "Mo ", - "Zhuan ", - "Shuang ", - "Shu ", - "Lou ", - "Chi ", - "Man ", - "Biao ", - "Jing ", - "Qi ", - "Shu ", - "Di ", - "Zhang ", - "Kan ", - "Yong ", - "Dian ", - "Chen ", - "Zhi ", - "Xi ", - "Guo ", - "Qiang ", - "Jin ", - "Di ", - "Shang ", - "Mu ", - "Cui ", - "Yan ", - "Ta ", - "Zeng ", - "Qi ", - "Qiang ", - "Liang ", - "[?] ", - "Zhui ", - "Qiao ", - "Zeng ", - "Xu ", - "Shan ", - "Shan ", - "Ba ", - "Pu ", - "Kuai ", - "Dong ", - "Fan ", - "Que ", - "Mo ", - "Dun ", - "Dun ", - "Dun ", - "Di ", - "Sheng ", - "Duo ", - "Duo ", - "Tan ", - "Deng ", - "Wu ", - "Fen ", - "Huang ", - "Tan ", - "Da ", - "Ye ", - "Sho ", - "Mama ", - "Yu ", - "Qiang ", - "Ji ", - "Qiao ", - "Ken ", - "Yi ", - "Pi ", - "Bi ", - "Dian ", - "Jiang ", - "Ye ", - "Yong ", - "Bo ", - "Tan ", - "Lan ", - "Ju ", - "Huai ", - "Dang ", - "Rang ", - "Qian ", - "Xun ", - "Lan ", - "Xi ", - "He ", - "Ai ", - "Ya ", - "Dao ", - "Hao ", - "Ruan ", - "Mama ", - "Lei ", - "Kuang ", - "Lu ", - "Yan ", - "Tan ", - "Wei ", - "Huai ", - "Long ", - "Long ", - "Rui ", - "Li ", - "Lin ", - "Rang ", - "Ten ", - "Xun ", - "Yan ", - "Lei ", - "Ba ", - "[?] ", - "Shi ", - "Ren ", - "[?] ", - "Zhuang ", - "Zhuang ", - "Sheng ", - "Yi ", - "Mai ", - "Ke ", - "Zhu ", - "Zhuang ", - "Hu ", - "Hu ", - "Kun ", - "Yi ", - "Hu ", - "Xu ", - "Kun ", - "Shou ", - "Mang ", - "Zun ", - "Shou ", - "Yi ", - "Zhi ", - "Gu ", - "Chu ", - "Jiang ", - "Feng ", - "Bei ", - "Cay ", - "Bian ", - "Sui ", - "Qun ", - "Ling ", - "Fu ", - "Zuo ", - "Xia ", - "Xiong ", - "[?] ", - "Nao ", - "Xia ", - "Kui ", - "Xi ", - "Wai ", - "Yuan ", - "Mao ", - "Su ", - "Duo ", - "Duo ", - "Ye ", - "Qing ", - "Uys ", - "Gou ", - "Gou ", - "Qi ", - "Meng ", - "Meng ", - "Yin ", - "Huo ", - "Chen ", - "Da ", - "Ze ", - "Tian ", - "Tai ", - "Fu ", - "Guai ", - "Yao ", - "Yang ", - "Hang ", - "Gao ", - "Shi ", - "Ben ", - "Tai ", - "Tou ", - "Yan ", - "Bi ", - "Yi ", - "Kua ", - "Jia ", - "Duo ", - "Kwu ", - "Kuang ", - "Yun ", - "Jia ", - "Pa ", - "En ", - "Lian ", - "Huan ", - "Di ", - "Yan ", - "Pao ", - "Quan ", - "Qi ", - "Nai ", - "Feng ", - "Xie ", - "Fen ", - "Dian ", - "[?] ", - "Kui ", - "Zou ", - "Huan ", - "Qi ", - "Kai ", - "Zha ", - "Ben ", - "Yi ", - "Jiang ", - "Tao ", - "Zang ", - "Ben ", - "Xi ", - "Xiang ", - "Fei ", - "Diao ", - "Xun ", - "Keng ", - "Dian ", - "Ao ", - "She ", - "Weng ", - "Pan ", - "Ao ", - "Wu ", - "Ao ", - "Jiang ", - "Lian ", - "Duo ", - "Yun ", - "Jiang ", - "Shi ", - "Fen ", - "Huo ", - "Bi ", - "Lian ", - "Duo ", - "Nu ", - "Nu ", - "Ding ", - "Nai ", - "Qian ", - "Jian ", - "Ta ", - "Jiu ", - "Nan ", - "Cha ", - "Hao ", - "Xian ", - "Fan ", - "Ji ", - "Shuo ", - "Ru ", - "Fei ", - "Wang ", - "Hong ", - "Zhuang ", - "Fu ", - "Ma ", - "Dan ", - "Ren ", - "Fu ", - "Jing ", - "Yan ", - "Xie ", - "Wen ", - "Zhong ", - "Pa ", - "Du ", - "Ji ", - "Keng ", - "Zhong ", - "Yao ", - "Jin ", - "Yun ", - "Miao ", - "Pei ", - "Shi ", - "Yue ", - "Zhuang ", - "Niu ", - "Yan ", - "Na ", - "Xin ", - "Fen ", - "Bi ", - "Yu ", - "Tuo ", - "Feng ", - "Yuan ", - "Fang ", - "Wu ", - "Yu ", - "Gui ", - "Du ", - "Ba ", - "Ni ", - "Zhou ", - "Zhuo ", - "Zhao ", - "Da ", - "Nai ", - "Yuan ", - "Tou ", - "Xuan ", - "Zhi ", - "E ", - "Mei ", - "Mo ", - "Qi ", - "Bi ", - "Shen ", - "Qie ", - "E ", - "He ", - "Xu ", - "Fa ", - "Zheng ", - "Min ", - "Ban ", - "Mu ", - "Fu ", - "Ling ", - "Zi ", - "Zi ", - "Shi ", - "Ran ", - "Shan ", - "Yang ", - "Man ", - "Jie ", - "Gu ", - "Si ", - "Xing ", - "Wei ", - "Zi ", - "Ju ", - "Shan ", - "Pin ", - "Ren ", - "Yao ", - "Tong ", - "Jiang ", - "Shu ", - "Ji ", - "Gai ", - "Shang ", - "Kuo ", - "Juan ", - "Jiao ", - "Gou ", - "Mu ", - "Jian ", - "Jian ", - "Yi ", - "Nian ", - "Zhi ", - "Ji ", - "Ji ", - "Xian ", - "Heng ", - "Guang ", - "Jun ", - "Kua ", - "Yan ", - "Ming ", - "Lie ", - "Pei ", - "Yan ", - "You ", - "Yan ", - "Cha ", - "Shen ", - "Yin ", - "Chi ", - "Gui ", - "Quan ", - "Zi ", - "Song ", - "Wei ", - "Hong ", - "Wa ", - "Lou ", - "Ya ", - "Rao ", - "Jiao ", - "Luan ", - "Ping ", - "Xian ", - "Shao ", - "Li ", - "Cheng ", - "Xiao ", - "Mang ", - "Fu ", - "Suo ", - "Wu ", - "Wei ", - "Ke ", - "Lai ", - "Chuo ", - "Ding ", - "Niang ", - "Xing ", - "Nan ", - "Yu ", - "Nuo ", - "Pei ", - "Nei ", - "Juan ", - "Shen ", - "Zhi ", - "Han ", - "Di ", - "Zhuang ", - "E ", - "Pin ", - "Tui ", - "Han ", - "Mian ", - "Wu ", - "Yan ", - "Wu ", - "Xi ", - "Yan ", - "Yu ", - "Si ", - "Yu ", - "Wa ", - "[?] ", - "Xian ", - "Ju ", - "Qu ", - "Shui ", - "Qi ", - "Xian ", - "Zhui ", - "Dong ", - "Chang ", - "Lu ", - "Ai ", - "E ", - "E ", - "Lou ", - "Mian ", - "Cong ", - "Pou ", - "Ju ", - "Po ", - "Cai ", - "Ding ", - "Wan ", - "Biao ", - "Xiao ", - "Shu ", - "Qi ", - "Hui ", - "Fu ", - "E ", - "Wo ", - "Tan ", - "Fei ", - "Wei ", - "Jie ", - "Tian ", - "Ni ", - "Quan ", - "Jing ", - "Hun ", - "Jing ", - "Qian ", - "Dian ", - "Xing ", - "Hu ", - "Wa ", - "Lai ", - "Bi ", - "Yin ", - "Chou ", - "Chuo ", - "Fu ", - "Jing ", - "Lun ", - "Yan ", - "Lan ", - "Kun ", - "Yin ", - "Ya ", - "Ju ", - "Li ", - "Dian ", - "Xian ", - "Hwa ", - "Hua ", - "Ying ", - "Chan ", - "Shen ", - "Ting ", - "Dang ", - "Yao ", - "Wu ", - "Nan ", - "Ruo ", - "Jia ", - "Tou ", - "Xu ", - "Yu ", - "Wei ", - "Ti ", - "Rou ", - "Mei ", - "Dan ", - "Ruan ", - "Qin ", - "Hui ", - "Wu ", - "Qian ", - "Chun ", - "Mao ", - "Fu ", - "Jie ", - "Duan ", - "Xi ", - "Zhong ", - "Mei ", - "Huang ", - "Mian ", - "An ", - "Ying ", - "Xuan ", - "Jie ", - "Wei ", - "Mei ", - "Yuan ", - "Zhen ", - "Qiu ", - "Ti ", - "Xie ", - "Tuo ", - "Lian ", - "Mao ", - "Ran ", - "Si ", - "Pian ", - "Wei ", - "Wa ", - "Jiu ", - "Hu ", - "Ao ", - "[?] ", - "Bou ", - "Xu ", - "Tou ", - "Gui ", - "Zou ", - "Yao ", - "Pi ", - "Xi ", - "Yuan ", - "Ying ", - "Rong ", - "Ru ", - "Chi ", - "Liu ", - "Mei ", - "Pan ", - "Ao ", - "Ma ", - "Gou ", - "Kui ", - "Qin ", - "Jia ", - "Sao ", - "Zhen ", - "Yuan ", - "Cha ", - "Yong ", - "Ming ", - "Ying ", - "Ji ", - "Su ", - "Niao ", - "Xian ", - "Tao ", - "Pang ", - "Lang ", - "Nao ", - "Bao ", - "Ai ", - "Pi ", - "Pin ", - "Yi ", - "Piao ", - "Yu ", - "Lei ", - "Xuan ", - "Man ", - "Yi ", - "Zhang ", - "Kang ", - "Yong ", - "Ni ", - "Li ", - "Di ", - "Gui ", - "Yan ", - "Jin ", - "Zhuan ", - "Chang ", - "Ce ", - "Han ", - "Nen ", - "Lao ", - "Mo ", - "Zhe ", - "Hu ", - "Hu ", - "Ao ", - "Nen ", - "Qiang ", - "Ma ", - "Pie ", - "Gu ", - "Wu ", - "Jiao ", - "Tuo ", - "Zhan ", - "Mao ", - "Xian ", - "Xian ", - "Mo ", - "Liao ", - "Lian ", - "Hua ", - "Gui ", - "Deng ", - "Zhi ", - "Xu ", - "Yi ", - "Hua ", - "Xi ", - "Hui ", - "Rao ", - "Xi ", - "Yan ", - "Chan ", - "Jiao ", - "Mei ", - "Fan ", - "Fan ", - "Xian ", - "Yi ", - "Wei ", - "Jiao ", - "Fu ", - "Shi ", - "Bi ", - "Shan ", - "Sui ", - "Qiang ", - "Lian ", - "Huan ", - "Xin ", - "Niao ", - "Dong ", - "Yi ", - "Can ", - "Ai ", - "Niang ", - "Neng ", - "Ma ", - "Tiao ", - "Chou ", - "Jin ", - "Ci ", - "Yu ", - "Pin ", - "Yong ", - "Xu ", - "Nai ", - "Yan ", - "Tai ", - "Ying ", - "Can ", - "Niao ", - "Wo ", - "Ying ", - "Mian ", - "Kaka ", - "Ma ", - "Shen ", - "Xing ", - "Ni ", - "Du ", - "Liu ", - "Yuan ", - "Lan ", - "Yan ", - "Shuang ", - "Ling ", - "Jiao ", - "Niang ", - "Lan ", - "Xian ", - "Ying ", - "Shuang ", - "Shuai ", - "Quan ", - "Mi ", - "Li ", - "Luan ", - "Yan ", - "Zhu ", - "Lan ", - "Zi ", - "Jie ", - "Jue ", - "Jue ", - "Kong ", - "Yun ", - "Zi ", - "Zi ", - "Cun ", - "Sun ", - "Fu ", - "Bei ", - "Zi ", - "Xiao ", - "Xin ", - "Meng ", - "Si ", - "Tai ", - "Bao ", - "Ji ", - "Gu ", - "Nu ", - "Xue ", - "[?] ", - "Zhuan ", - "Hai ", - "Luan ", - "Sun ", - "Huai ", - "Mie ", - "Cong ", - "Qian ", - "Shu ", - "Chan ", - "Ya ", - "Zi ", - "Ni ", - "Fu ", - "Zi ", - "Li ", - "Xue ", - "Bo ", - "Ru ", - "Lai ", - "Nie ", - "Nie ", - "Ying ", - "Luan ", - "Mian ", - "Zhu ", - "Rong ", - "Ta ", - "Gui ", - "Zhai ", - "Qiong ", - "Yu ", - "Shou ", - "An ", - "Tu ", - "Song ", - "Wan ", - "Rou ", - "Yao ", - "Hong ", - "Yi ", - "Jing ", - "Zhun ", - "Mi ", - "Zhu ", - "Dang ", - "Hong ", - "Zong ", - "Guan ", - "Zhou ", - "Ding ", - "Wan ", - "Yi ", - "Bao ", - "Shi ", - "Shi ", - "Chong ", - "Shen ", - "Ke ", - "Xuan ", - "Shi ", - "You ", - "Huan ", - "Yi ", - "Tiao ", - "Shi ", - "Xian ", - "Gong ", - "Cheng ", - "Qun ", - "Gong ", - "Xiao ", - "Zai ", - "Zha ", - "Bao ", - "Hai ", - "Yan ", - "Xiao ", - "Jia ", - "Shen ", - "Chen ", - "Rong ", - "Huang ", - "Mi ", - "Kou ", - "Kuan ", - "Bin ", - "Su ", - "Cai ", - "Zan ", - "Ji ", - "Yuan ", - "Ji ", - "Yin ", - "Mi ", - "Kou ", - "Qing ", - "Que ", - "Zhen ", - "Jian ", - "Fu ", - "Ning ", - "Bing ", - "Huan ", - "Mei ", - "Qin ", - "Han ", - "Yu ", - "Shi ", - "Ning ", - "Qin ", - "Ning ", - "Zhi ", - "Yu ", - "Bao ", - "Kuan ", - "Ning ", - "Qin ", - "Mo ", - "Cha ", - "Ju ", - "Gua ", - "Qin ", - "Hu ", - "Wu ", - "Liao ", - "Shi ", - "Zhu ", - "Zhai ", - "Shen ", - "Wei ", - "Xie ", - "Kuan ", - "Hui ", - "Liao ", - "Jun ", - "Huan ", - "Yi ", - "Yi ", - "Bao ", - "Qin ", - "Chong ", - "Bao ", - "Feng ", - "Cun ", - "Dui ", - "Si ", - "Xun ", - "Dao ", - "Lu ", - "Dui ", - "Shou ", - "Po ", - "Feng ", - "Zhuan ", - "Fu ", - "She ", - "Ke ", - "Jiang ", - "Jiang ", - "Zhuan ", - "Wei ", - "Zun ", - "Xun ", - "Shu ", - "Dui ", - "Dao ", - "Xiao ", - "Ji ", - "Shao ", - "Er ", - "Er ", - "Er ", - "Ga ", - "Jian ", - "Shu ", - "Chen ", - "Shang ", - "Shang ", - "Mo ", - "Ga ", - "Chang ", - "Liao ", - "Xian ", - "Xian ", - "[?] ", - "Wang ", - "Wang ", - "You ", - "Liao ", - "Liao ", - "Yao ", - "Mang ", - "Wang ", - "Wang ", - "Wang ", - "Ga ", - "Yao ", - "Duo ", - "Kui ", - "Zhong ", - "Jiu ", - "Gan ", - "Gu ", - "Gan ", - "Tui ", - "Gan ", - "Gan ", - "Shi ", - "Yin ", - "Chi ", - "Kao ", - "Ni ", - "Jin ", - "Wei ", - "Niao ", - "Ju ", - "Pi ", - "Ceng ", - "Xi ", - "Bi ", - "Ju ", - "Jie ", - "Tian ", - "Qu ", - "Ti ", - "Jie ", - "Wu ", - "Diao ", - "Shi ", - "Shi ", - "Ping ", - "Ji ", - "Xie ", - "Chen ", - "Xi ", - "Ni ", - "Zhan ", - "Xi ", - "[?] ", - "Man ", - "E ", - "Lou ", - "Ping ", - "Ti ", - "Fei ", - "Shu ", - "Xie ", - "Tu ", - "Lu ", - "Lu ", - "Xi ", - "Ceng ", - "Lu ", - "Ju ", - "Xie ", - "Ju ", - "Jue ", - "Liao ", - "Jue ", - "Shu ", - "Xi ", - "Che ", - "Tun ", - "Ni ", - "Shan ", - "[?] ", - "Xian ", - "Li ", - "Xue ", - "Nata ", - "[?] ", - "Long ", - "Yi ", - "Qi ", - "Ren ", - "Wu ", - "Han ", - "Shen ", - "Yu ", - "Chu ", - "Sui ", - "Qi ", - "[?] ", - "Yue ", - "Ban ", - "Yao ", - "Ang ", - "Ya ", - "Wu ", - "Jie ", - "E ", - "Ji ", - "Qian ", - "Fen ", - "Yuan ", - "Qi ", - "Cen ", - "Qian ", - "Qi ", - "Cha ", - "Jie ", - "Qu ", - "Gang ", - "Xian ", - "Ao ", - "Lan ", - "Dao ", - "Ba ", - "Zuo ", - "Zuo ", - "Yang ", - "Ju ", - "Gang ", - "Ke ", - "Gou ", - "Xue ", - "Bei ", - "Li ", - "Tiao ", - "Ju ", - "Yan ", - "Fu ", - "Xiu ", - "Jia ", - "Ling ", - "Tuo ", - "Pei ", - "You ", - "Dai ", - "Kuang ", - "Yue ", - "Qu ", - "Hu ", - "Po ", - "Min ", - "An ", - "Tiao ", - "Ling ", - "Chi ", - "Yuri ", - "Dong ", - "Cem ", - "Kui ", - "Xiu ", - "Mao ", - "Tong ", - "Xue ", - "Yi ", - "Kura ", - "He ", - "Ke ", - "Luo ", - "E ", - "Fu ", - "Xun ", - "Die ", - "Lu ", - "An ", - "Er ", - "Gai ", - "Quan ", - "Tong ", - "Yi ", - "Mu ", - "Shi ", - "An ", - "Wei ", - "Hu ", - "Zhi ", - "Mi ", - "Li ", - "Ji ", - "Tong ", - "Wei ", - "You ", - "Sang ", - "Xia ", - "Li ", - "Yao ", - "Jiao ", - "Zheng ", - "Luan ", - "Jiao ", - "E ", - "E ", - "Yu ", - "Ye ", - "Bu ", - "Qiao ", - "Qun ", - "Feng ", - "Feng ", - "Nao ", - "Li ", - "You ", - "Xian ", - "Hong ", - "Dao ", - "Shen ", - "Cheng ", - "Tu ", - "Geng ", - "Jun ", - "Hao ", - "Xia ", - "Yin ", - "Yu ", - "Lang ", - "Kan ", - "Lao ", - "Lai ", - "Xian ", - "Que ", - "Kong ", - "Chong ", - "Chong ", - "Ta ", - "Lin ", - "Hua ", - "Ju ", - "Lai ", - "Qi ", - "Min ", - "Kun ", - "Kun ", - "Zu ", - "Gu ", - "Cui ", - "Ya ", - "Ya ", - "Gang ", - "Lun ", - "Lun ", - "Leng ", - "Jue ", - "Duo ", - "Zheng ", - "Guo ", - "Yin ", - "Dong ", - "Han ", - "Zheng ", - "Wei ", - "Yao ", - "Pi ", - "Yan ", - "Song ", - "Jie ", - "Beng ", - "Zu ", - "Jue ", - "Dong ", - "Zhan ", - "Gu ", - "Yin ", - "[?] ", - "Ze ", - "Huang ", - "Yu ", - "Wei ", - "Yang ", - "Feng ", - "Qiu ", - "Dun ", - "Ti ", - "Yi ", - "Zhi ", - "Shi ", - "Zai ", - "Yao ", - "E ", - "Zhu ", - "Kan ", - "Lu ", - "Yan ", - "Mei ", - "Gan ", - "Ji ", - "Ji ", - "Huan ", - "Ting ", - "Sheng ", - "Mei ", - "Qian ", - "Wu ", - "Yu ", - "Zong ", - "Lan ", - "Jue ", - "Yan ", - "Yan ", - "Wei ", - "Zong ", - "Cha ", - "Sui ", - "Rong ", - "Yamashina ", - "Qin ", - "Yu ", - "Kewashii ", - "Lou ", - "Tu ", - "Dui ", - "Xi ", - "Weng ", - "Cang ", - "Dang ", - "Hong ", - "Jie ", - "Ai ", - "Liu ", - "Wu ", - "Song ", - "Qiao ", - "Zi ", - "Wei ", - "Beng ", - "Dian ", - "Cuo ", - "Qian ", - "Yong ", - "Nie ", - "Cuo ", - "Ji ", - "[?] ", - "Tao ", - "Song ", - "Zong ", - "Jiang ", - "Liao ", - "Kang ", - "Chan ", - "Die ", - "Cen ", - "Ding ", - "Tu ", - "Lou ", - "Zhang ", - "Zhan ", - "Zhan ", - "Ao ", - "Cao ", - "Qu ", - "Qiang ", - "Zui ", - "Zui ", - "Dao ", - "Dao ", - "Xi ", - "Yu ", - "Bo ", - "Long ", - "Xiang ", - "Ceng ", - "Bo ", - "Qin ", - "Jiao ", - "Yan ", - "Lao ", - "Zhan ", - "Lin ", - "Liao ", - "Liao ", - "Jin ", - "Deng ", - "Duo ", - "Zun ", - "Jiao ", - "Gui ", - "Yao ", - "Qiao ", - "Yao ", - "Jue ", - "Zhan ", - "Yi ", - "Xue ", - "Nao ", - "Ye ", - "Ye ", - "Yi ", - "E ", - "Xian ", - "Ji ", - "Xie ", - "Ke ", - "Xi ", - "Di ", - "Ao ", - "Zui ", - "[?] ", - "Ni ", - "Rong ", - "Dao ", - "Ling ", - "Za ", - "Yu ", - "Yue ", - "Yin ", - "[?] ", - "Jie ", - "Li ", - "Sui ", - "Long ", - "Long ", - "Dian ", - "Ying ", - "Xi ", - "Ju ", - "Chan ", - "Ying ", - "Kui ", - "Yan ", - "Wei ", - "Nao ", - "Quan ", - "Chao ", - "Cuan ", - "Luan ", - "Dian ", - "Dian ", - "[?] ", - "Yan ", - "Yan ", - "Yan ", - "Nao ", - "Yan ", - "Chuan ", - "Gui ", - "Chuan ", - "Zhou ", - "Huang ", - "Jing ", - "Xun ", - "Chao ", - "Chao ", - "Lie ", - "Gong ", - "Zuo ", - "Qiao ", - "Ju ", - "Gong ", - "Kek ", - "Wu ", - "Pwu ", - "Pwu ", - "Chai ", - "Qiu ", - "Qiu ", - "Ji ", - "Yi ", - "Si ", - "Ba ", - "Zhi ", - "Zhao ", - "Xiang ", - "Yi ", - "Jin ", - "Xun ", - "Juan ", - "Phas ", - "Xun ", - "Jin ", - "Fu ", - "Za ", - "Bi ", - "Shi ", - "Bu ", - "Ding ", - "Shuai ", - "Fan ", - "Nie ", - "Shi ", - "Fen ", - "Pa ", - "Zhi ", - "Xi ", - "Hu ", - "Dan ", - "Wei ", - "Zhang ", - "Tang ", - "Dai ", - "Ma ", - "Pei ", - "Pa ", - "Tie ", - "Fu ", - "Lian ", - "Zhi ", - "Zhou ", - "Bo ", - "Zhi ", - "Di ", - "Mo ", - "Yi ", - "Yi ", - "Ping ", - "Qia ", - "Juan ", - "Ru ", - "Shuai ", - "Dai ", - "Zheng ", - "Shui ", - "Qiao ", - "Zhen ", - "Shi ", - "Qun ", - "Xi ", - "Bang ", - "Dai ", - "Gui ", - "Chou ", - "Ping ", - "Zhang ", - "Sha ", - "Wan ", - "Dai ", - "Wei ", - "Chang ", - "Sha ", - "Qi ", - "Ze ", - "Guo ", - "Mao ", - "Du ", - "Hou ", - "Zheng ", - "Xu ", - "Mi ", - "Wei ", - "Wo ", - "Fu ", - "Yi ", - "Bang ", - "Ping ", - "Tazuna ", - "Gong ", - "Pan ", - "Huang ", - "Dao ", - "Mi ", - "Jia ", - "Teng ", - "Hui ", - "Zhong ", - "Shan ", - "Man ", - "Mu ", - "Biao ", - "Guo ", - "Ze ", - "Mu ", - "Bang ", - "Zhang ", - "Jiong ", - "Chan ", - "Fu ", - "Zhi ", - "Hu ", - "Fan ", - "Chuang ", - "Bi ", - "Hei ", - "[?] ", - "Mi ", - "Qiao ", - "Chan ", - "Fen ", - "Meng ", - "Bang ", - "Chou ", - "Mie ", - "Chu ", - "Jie ", - "Xian ", - "Lan ", - "Gan ", - "Ping ", - "Nian ", - "Qian ", - "Bing ", - "Bing ", - "Xing ", - "Gan ", - "Yao ", - "Huan ", - "You ", - "You ", - "Ji ", - "Yan ", - "Pi ", - "Ting ", - "Ze ", - "Guang ", - "Zhuang ", - "Mo ", - "Qing ", - "Bi ", - "Qin ", - "Dun ", - "Chuang ", - "Gui ", - "Ya ", - "Bai ", - "Jie ", - "Xu ", - "Lu ", - "Wu ", - "[?] ", - "Ku ", - "Ying ", - "Di ", - "Pao ", - "Dian ", - "Ya ", - "Miao ", - "Geng ", - "Ci ", - "Fu ", - "Tong ", - "Pang ", - "Fei ", - "Xiang ", - "Yi ", - "Zhi ", - "Tiao ", - "Zhi ", - "Xiu ", - "Du ", - "Zuo ", - "Xiao ", - "Tu ", - "Gui ", - "Ku ", - "Pang ", - "Ting ", - "You ", - "Bu ", - "Ding ", - "Cheng ", - "Lai ", - "Bei ", - "Ji ", - "An ", - "Shu ", - "Kang ", - "Yong ", - "Tuo ", - "Song ", - "Shu ", - "Qing ", - "Yu ", - "Yu ", - "Miao ", - "Sou ", - "Ce ", - "Xiang ", - "Fei ", - "Jiu ", - "He ", - "Hui ", - "Liu ", - "Sha ", - "Lian ", - "Lang ", - "Sou ", - "Jian ", - "Pou ", - "Qing ", - "Jiu ", - "Jiu ", - "Qin ", - "Ao ", - "Kuo ", - "Lou ", - "Yin ", - "Liao ", - "Dai ", - "Lu ", - "Yi ", - "Chu ", - "Chan ", - "Tu ", - "Si ", - "Xin ", - "Miao ", - "Chang ", - "Wu ", - "Fei ", - "Guang ", - "Koc ", - "Kuai ", - "Bi ", - "Qiang ", - "Xie ", - "Lin ", - "Lin ", - "Liao ", - "Lu ", - "[?] ", - "Ying ", - "Xian ", - "Ting ", - "Yong ", - "Li ", - "Ting ", - "Yin ", - "Xun ", - "Yan ", - "Ting ", - "Di ", - "Po ", - "Jian ", - "Hui ", - "Nai ", - "Hui ", - "Gong ", - "Nian ", - "Kai ", - "Bian ", - "Yi ", - "Qi ", - "Nong ", - "Fen ", - "Ju ", - "Yan ", - "Yi ", - "Zang ", - "Bi ", - "Yi ", - "Yi ", - "Er ", - "San ", - "Shi ", - "Er ", - "Shi ", - "Shi ", - "Gong ", - "Diao ", - "Yin ", - "Hu ", - "Fu ", - "Hong ", - "Wu ", - "Tui ", - "Chi ", - "Jiang ", - "Ba ", - "Shen ", - "Di ", - "Zhang ", - "Jue ", - "Tao ", - "Fu ", - "Di ", - "Mi ", - "Xian ", - "Hu ", - "Chao ", - "Nu ", - "Jing ", - "Zhen ", - "Yi ", - "Mi ", - "Quan ", - "Wan ", - "Shao ", - "Ruo ", - "Xuan ", - "Jing ", - "Dun ", - "Zhang ", - "Jiang ", - "Qiang ", - "Peng ", - "Dan ", - "Qiang ", - "Bi ", - "Bi ", - "She ", - "Dan ", - "Jian ", - "Gou ", - "Sei ", - "Fa ", - "Bi ", - "Kou ", - "Nagi ", - "Bie ", - "Xiao ", - "Dan ", - "Kuo ", - "Qiang ", - "Hong ", - "Mi ", - "Kuo ", - "Wan ", - "Jue ", - "Ji ", - "Ji ", - "Gui ", - "Dang ", - "Lu ", - "Lu ", - "Tuan ", - "Hui ", - "Zhi ", - "Hui ", - "Hui ", - "Yi ", - "Yi ", - "Yi ", - "Yi ", - "Huo ", - "Huo ", - "Shan ", - "Xing ", - "Wen ", - "Tong ", - "Yan ", - "Yan ", - "Yu ", - "Chi ", - "Cai ", - "Biao ", - "Diao ", - "Bin ", - "Peng ", - "Yong ", - "Piao ", - "Zhang ", - "Ying ", - "Chi ", - "Chi ", - "Zhuo ", - "Tuo ", - "Ji ", - "Pang ", - "Zhong ", - "Yi ", - "Wang ", - "Che ", - "Bi ", - "Chi ", - "Ling ", - "Fu ", - "Wang ", - "Zheng ", - "Cu ", - "Wang ", - "Jing ", - "Dai ", - "Xi ", - "Xun ", - "Hen ", - "Yang ", - "Huai ", - "Lu ", - "Hou ", - "Wa ", - "Cheng ", - "Zhi ", - "Xu ", - "Jing ", - "Tu ", - "Cong ", - "[?] ", - "Lai ", - "Cong ", - "De ", - "Pai ", - "Xi ", - "[?] ", - "Qi ", - "Chang ", - "Zhi ", - "Cong ", - "Zhou ", - "Lai ", - "Yu ", - "Xie ", - "Jie ", - "Jian ", - "Chi ", - "Jia ", - "Bian ", - "Huang ", - "Fu ", - "Xun ", - "Wei ", - "Pang ", - "Yao ", - "Wei ", - "Xi ", - "Zheng ", - "Piao ", - "Chi ", - "De ", - "Zheng ", - "Zheng ", - "Bie ", - "De ", - "Chong ", - "Che ", - "Jiao ", - "Wei ", - "Jiao ", - "Hui ", - "Mei ", - "Long ", - "Xiang ", - "Bao ", - "Qu ", - "Xin ", - "Shu ", - "Bi ", - "Yi ", - "Le ", - "Ren ", - "Dao ", - "Ding ", - "Gai ", - "Ji ", - "Ren ", - "Ren ", - "Chan ", - "Tan ", - "Te ", - "Te ", - "Gan ", - "Qi ", - "Shi ", - "Cun ", - "Zhi ", - "Wang ", - "Mang ", - "Xi ", - "Fan ", - "Ying ", - "Tian ", - "Min ", - "Min ", - "Zhong ", - "Chong ", - "Wu ", - "Ji ", - "Wu ", - "Xi ", - "Ye ", - "You ", - "Wan ", - "Cong ", - "Zhong ", - "Kuai ", - "Yu ", - "Bian ", - "Zhi ", - "Qi ", - "Cui ", - "Chen ", - "Tai ", - "Tun ", - "Qian ", - "Nian ", - "Hun ", - "Xiong ", - "Niu ", - "Wang ", - "Xian ", - "Xin ", - "Kang ", - "Hu ", - "Kai ", - "Fen ", - "Huai ", - "Tai ", - "Song ", - "Wu ", - "Ou ", - "Chang ", - "Chuang ", - "Ju ", - "Yi ", - "Bao ", - "Chao ", - "Min ", - "Pei ", - "Zuo ", - "Zen ", - "Yang ", - "Kou ", - "Ban ", - "Nu ", - "Nao ", - "Zheng ", - "Pa ", - "Bu ", - "Tie ", - "Gu ", - "Hu ", - "Ju ", - "Da ", - "Lian ", - "Si ", - "Chou ", - "Di ", - "Dai ", - "Yi ", - "Tu ", - "You ", - "Fu ", - "Ji ", - "Peng ", - "Xing ", - "Yuan ", - "Ni ", - "Guai ", - "Fu ", - "Xi ", - "Bi ", - "You ", - "Qie ", - "Xuan ", - "Cong ", - "Bing ", - "Huang ", - "Xu ", - "Chu ", - "Pi ", - "Xi ", - "Xi ", - "Tan ", - "Koraeru ", - "Zong ", - "Dui ", - "[?] ", - "Ki ", - "Yi ", - "Chi ", - "Ren ", - "Xun ", - "Shi ", - "Xi ", - "Lao ", - "Heng ", - "Kuang ", - "Mu ", - "Zhi ", - "Xie ", - "Lian ", - "Tiao ", - "Huang ", - "Die ", - "Hao ", - "Kong ", - "Gui ", - "Heng ", - "Xi ", - "Xiao ", - "Shu ", - "S ", - "Kua ", - "Qiu ", - "Yang ", - "Hui ", - "Hui ", - "Chi ", - "Jia ", - "Yi ", - "Xiong ", - "Guai ", - "Lin ", - "Hui ", - "Zi ", - "Xu ", - "Chi ", - "Xiang ", - "Nu ", - "Hen ", - "En ", - "Ke ", - "Tong ", - "Tian ", - "Gong ", - "Quan ", - "Xi ", - "Qia ", - "Yue ", - "Peng ", - "Ken ", - "De ", - "Hui ", - "E ", - "Kyuu ", - "Tong ", - "Yan ", - "Kai ", - "Ce ", - "Nao ", - "Yun ", - "Mang ", - "Yong ", - "Yong ", - "Yuan ", - "Pi ", - "Kun ", - "Qiao ", - "Yue ", - "Yu ", - "Yu ", - "Jie ", - "Xi ", - "Zhe ", - "Lin ", - "Ti ", - "Han ", - "Hao ", - "Qie ", - "Ti ", - "Bu ", - "Yi ", - "Qian ", - "Hui ", - "Xi ", - "Bei ", - "Man ", - "Yi ", - "Heng ", - "Song ", - "Quan ", - "Cheng ", - "Hui ", - "Wu ", - "Wu ", - "You ", - "Li ", - "Liang ", - "Huan ", - "Cong ", - "Yi ", - "Yue ", - "Li ", - "Nin ", - "Nao ", - "E ", - "Que ", - "Xuan ", - "Qian ", - "Wu ", - "Min ", - "Cong ", - "Fei ", - "Bei ", - "Duo ", - "Cui ", - "Chang ", - "Men ", - "Li ", - "Ji ", - "Guan ", - "Guan ", - "Xing ", - "Dao ", - "Qi ", - "Kong ", - "Tian ", - "Lun ", - "Xi ", - "Kan ", - "Kun ", - "Ni ", - "Qing ", - "Chou ", - "Dun ", - "Guo ", - "Chan ", - "Liang ", - "Wan ", - "Yuan ", - "Jin ", - "Ji ", - "Lin ", - "Yu ", - "Huo ", - "He ", - "Quan ", - "Tan ", - "Ti ", - "Ti ", - "Nie ", - "Wang ", - "Chuo ", - "Bu ", - "Hun ", - "Xi ", - "Tang ", - "Xin ", - "Wei ", - "Hui ", - "E ", - "Rui ", - "Zong ", - "Jian ", - "Yong ", - "Dian ", - "Ju ", - "Can ", - "Cheng ", - "De ", - "Bei ", - "Qie ", - "Can ", - "Dan ", - "Guan ", - "Duo ", - "Nao ", - "Yun ", - "Xiang ", - "Zhui ", - "Die ", - "Huang ", - "Chun ", - "Qiong ", - "Re ", - "Xing ", - "Ce ", - "Bian ", - "Hun ", - "Zong ", - "Ti ", - "Qiao ", - "Chou ", - "Bei ", - "Xuan ", - "Wei ", - "Ge ", - "Qian ", - "Wei ", - "Yu ", - "Yu ", - "Bi ", - "Xuan ", - "Huan ", - "Min ", - "Bi ", - "Yi ", - "Mian ", - "Yong ", - "Kai ", - "Dang ", - "Yin ", - "E ", - "Chen ", - "Mou ", - "Ke ", - "Ke ", - "Yu ", - "Ai ", - "Qie ", - "Yan ", - "Nuo ", - "Gan ", - "Yun ", - "Zong ", - "Sai ", - "Leng ", - "Fen ", - "[?] ", - "Kui ", - "Kui ", - "Que ", - "Gong ", - "Yun ", - "Su ", - "Su ", - "Qi ", - "Yao ", - "Song ", - "Huang ", - "Ji ", - "Gu ", - "Ju ", - "Chuang ", - "Ni ", - "Xie ", - "Kai ", - "Zheng ", - "Yong ", - "Cao ", - "Sun ", - "Shen ", - "Bo ", - "Kai ", - "Yuan ", - "Xie ", - "Hun ", - "Yong ", - "Yang ", - "Li ", - "Sao ", - "Tao ", - "Yin ", - "Ci ", - "Xu ", - "Qian ", - "Tai ", - "Huang ", - "Yun ", - "Shen ", - "Ming ", - "[?] ", - "She ", - "Cong ", - "Piao ", - "Mo ", - "Mu ", - "Guo ", - "Chi ", - "Can ", - "Can ", - "Can ", - "Cui ", - "Min ", - "Te ", - "Zhang ", - "Tong ", - "Ao ", - "Shuang ", - "Man ", - "Guan ", - "Que ", - "Zao ", - "Jiu ", - "Hui ", - "Kai ", - "Lian ", - "Ou ", - "Song ", - "Jin ", - "Yin ", - "Lu ", - "Shang ", - "Wei ", - "Tuan ", - "Man ", - "Qian ", - "She ", - "Yong ", - "Qing ", - "Kang ", - "Di ", - "Zhi ", - "Lou ", - "Juan ", - "Qi ", - "Qi ", - "Yu ", - "Ping ", - "Liao ", - "Cong ", - "You ", - "Chong ", - "Zhi ", - "Tong ", - "Cheng ", - "Qi ", - "Qu ", - "Peng ", - "Bei ", - "Bie ", - "Chun ", - "Jiao ", - "Zeng ", - "Chi ", - "Lian ", - "Ping ", - "Kui ", - "Hui ", - "Qiao ", - "Cheng ", - "Yin ", - "Yin ", - "Xi ", - "Xi ", - "Dan ", - "Tan ", - "Duo ", - "Dui ", - "Dui ", - "Su ", - "Jue ", - "Ce ", - "Xiao ", - "Fan ", - "Fen ", - "Lao ", - "Lao ", - "Chong ", - "Han ", - "Qi ", - "Xian ", - "Min ", - "Jing ", - "Liao ", - "Wu ", - "Can ", - "Jue ", - "Cu ", - "Xian ", - "Tan ", - "Sheng ", - "Pi ", - "Yi ", - "Chu ", - "Xian ", - "Nao ", - "Dan ", - "Tan ", - "Jing ", - "Song ", - "Han ", - "Jiao ", - "Wai ", - "Huan ", - "Dong ", - "Qin ", - "Qin ", - "Qu ", - "Cao ", - "Ken ", - "Xie ", - "Ying ", - "Ao ", - "Mao ", - "Yi ", - "Lin ", - "Se ", - "Jun ", - "Huai ", - "Men ", - "Lan ", - "Ai ", - "Lin ", - "Yan ", - "Gua ", - "Xia ", - "Chi ", - "Yu ", - "Yin ", - "Dai ", - "Meng ", - "Ai ", - "Meng ", - "Dui ", - "Qi ", - "Mo ", - "Lan ", - "Men ", - "Chou ", - "Zhi ", - "Nuo ", - "Nuo ", - "Yan ", - "Yang ", - "Bo ", - "Zhi ", - "Kuang ", - "Kuang ", - "You ", - "Fu ", - "Liu ", - "Mie ", - "Cheng ", - "[?] ", - "Chan ", - "Meng ", - "Lan ", - "Huai ", - "Xuan ", - "Rang ", - "Chan ", - "Ji ", - "Ju ", - "Huan ", - "She ", - "Yi ", - "Lian ", - "Nan ", - "Mi ", - "Tang ", - "Jue ", - "Gang ", - "Gang ", - "Gang ", - "Ge ", - "Yue ", - "Wu ", - "Jian ", - "Xu ", - "Shu ", - "Rong ", - "Xi ", - "Cheng ", - "Wo ", - "Jie ", - "Ge ", - "Jian ", - "Qiang ", - "Huo ", - "Qiang ", - "Zhan ", - "Dong ", - "Qi ", - "Jia ", - "Die ", - "Zei ", - "Jia ", - "Ji ", - "Shi ", - "Kan ", - "Ji ", - "Kui ", - "Gai ", - "Deng ", - "Zhan ", - "Chuang ", - "Ge ", - "Jian ", - "Jie ", - "Yu ", - "Jian ", - "Yan ", - "Lu ", - "Xi ", - "Zhan ", - "Xi ", - "Xi ", - "Chuo ", - "Dai ", - "Qu ", - "Hu ", - "Hu ", - "Hu ", - "E ", - "Shi ", - "Li ", - "Mao ", - "Hu ", - "Li ", - "Fang ", - "Suo ", - "Bian ", - "Dian ", - "Jiong ", - "Shang ", - "Yi ", - "Yi ", - "Shan ", - "Hu ", - "Fei ", - "Yan ", - "Shou ", - "T ", - "Cai ", - "Zha ", - "Qiu ", - "Le ", - "Bu ", - "Ba ", - "Da ", - "Reng ", - "Fu ", - "Hameru ", - "Zai ", - "Tuo ", - "Zhang ", - "Diao ", - "Kang ", - "Yu ", - "Ku ", - "Han ", - "Shen ", - "Cha ", - "Yi ", - "Gu ", - "Kou ", - "Wu ", - "Tuo ", - "Qian ", - "Zhi ", - "Ren ", - "Kuo ", - "Men ", - "Sao ", - "Yang ", - "Niu ", - "Ban ", - "Che ", - "Rao ", - "Xi ", - "Qian ", - "Ban ", - "Jia ", - "Yu ", - "Fu ", - "Ao ", - "Xi ", - "Pi ", - "Zhi ", - "Zi ", - "E ", - "Dun ", - "Zhao ", - "Cheng ", - "Ji ", - "Yan ", - "Kuang ", - "Bian ", - "Chao ", - "Ju ", - "Wen ", - "Hu ", - "Yue ", - "Jue ", - "Ba ", - "Qin ", - "Zhen ", - "Zheng ", - "Yun ", - "Wan ", - "Nu ", - "Yi ", - "Shu ", - "Zhua ", - "Pou ", - "Tou ", - "Dou ", - "Kang ", - "Zhe ", - "Pou ", - "Fu ", - "Pao ", - "Ba ", - "Ao ", - "Ze ", - "Tuan ", - "Kou ", - "Lun ", - "Qiang ", - "[?] ", - "Hu ", - "Bao ", - "Bing ", - "Zhi ", - "Peng ", - "Tan ", - "Pu ", - "Pi ", - "Tai ", - "Yao ", - "Zhen ", - "Zha ", - "Yang ", - "Bao ", - "He ", - "Ni ", - "Yi ", - "Di ", - "Chi ", - "Pi ", - "Za ", - "Mo ", - "Mo ", - "Shen ", - "Ya ", - "Chou ", - "Qu ", - "Min ", - "Chu ", - "Jia ", - "Fu ", - "Zhan ", - "Zhu ", - "Dan ", - "Chai ", - "Mu ", - "Nian ", - "La ", - "Fu ", - "Pao ", - "Ban ", - "Pai ", - "Ling ", - "Na ", - "Guai ", - "Qian ", - "Ju ", - "Tuo ", - "Ba ", - "Tuo ", - "Tuo ", - "Ao ", - "Ju ", - "Zhuo ", - "Pan ", - "Zhao ", - "Bai ", - "Bai ", - "Di ", - "Ni ", - "Ju ", - "Kuo ", - "Long ", - "Jian ", - "[?] ", - "Yong ", - "Lan ", - "Ning ", - "Bo ", - "Ze ", - "Qian ", - "Hen ", - "Gua ", - "Shi ", - "Jie ", - "Zheng ", - "Nin ", - "Gong ", - "Gong ", - "Quan ", - "Shuan ", - "Cun ", - "Zan ", - "Kao ", - "Chi ", - "Xie ", - "Ce ", - "Hui ", - "Pin ", - "Zhuai ", - "Shi ", - "Na ", - "Bo ", - "Chi ", - "Gua ", - "Zhi ", - "Kuo ", - "Duo ", - "Duo ", - "Zhi ", - "Qie ", - "An ", - "Nong ", - "Zhen ", - "Ge ", - "Jiao ", - "Ku ", - "Dong ", - "Ru ", - "Tiao ", - "Lie ", - "Zha ", - "Lu ", - "Die ", - "Wa ", - "Jue ", - "Mushiru ", - "Ju ", - "Zhi ", - "Luan ", - "Ya ", - "Zhua ", - "Ta ", - "Xie ", - "Nao ", - "Dang ", - "Jiao ", - "Zheng ", - "Ji ", - "Hui ", - "Xun ", - "Ku ", - "Ai ", - "Tuo ", - "Nuo ", - "Cuo ", - "Bo ", - "Geng ", - "Ti ", - "Zhen ", - "Cheng ", - "Suo ", - "Suo ", - "Keng ", - "Mei ", - "Long ", - "Ju ", - "Peng ", - "Jian ", - "Yi ", - "Ting ", - "Shan ", - "Nuo ", - "Wan ", - "Xie ", - "Cha ", - "Feng ", - "Jiao ", - "Wu ", - "Jun ", - "Jiu ", - "Tong ", - "Kun ", - "Huo ", - "Tu ", - "Zhuo ", - "Pou ", - "Le ", - "Ba ", - "Han ", - "Shao ", - "Nie ", - "Juan ", - "Ze ", - "Song ", - "Ye ", - "Jue ", - "Bu ", - "Huan ", - "Bu ", - "Zun ", - "Yi ", - "Zhai ", - "Lu ", - "Sou ", - "Tuo ", - "Lao ", - "Sun ", - "Bang ", - "Jian ", - "Huan ", - "Dao ", - "[?] ", - "Wan ", - "Qin ", - "Peng ", - "She ", - "Lie ", - "Min ", - "Men ", - "Fu ", - "Bai ", - "Ju ", - "Dao ", - "Wo ", - "Ai ", - "Juan ", - "Yue ", - "Zong ", - "Chen ", - "Chui ", - "Jie ", - "Tu ", - "Ben ", - "Na ", - "Nian ", - "Nuo ", - "Zu ", - "Wo ", - "Xi ", - "Xian ", - "Cheng ", - "Dian ", - "Sao ", - "Lun ", - "Qing ", - "Gang ", - "Duo ", - "Shou ", - "Diao ", - "Pou ", - "Di ", - "Zhang ", - "Gun ", - "Ji ", - "Tao ", - "Qia ", - "Qi ", - "Pai ", - "Shu ", - "Qian ", - "Ling ", - "Yi ", - "Ya ", - "Jue ", - "Zheng ", - "Liang ", - "Gua ", - "Yi ", - "Huo ", - "Shan ", - "Zheng ", - "Lue ", - "Cai ", - "Tan ", - "Che ", - "Bing ", - "Jie ", - "Ti ", - "Kong ", - "Tui ", - "Yan ", - "Cuo ", - "Zou ", - "Ju ", - "Tian ", - "Qian ", - "Ken ", - "Bai ", - "Shou ", - "Jie ", - "Lu ", - "Guo ", - "Haba ", - "[?] ", - "Zhi ", - "Dan ", - "Mang ", - "Xian ", - "Sao ", - "Guan ", - "Peng ", - "Yuan ", - "Nuo ", - "Jian ", - "Zhen ", - "Jiu ", - "Jian ", - "Yu ", - "Yan ", - "Kui ", - "Nan ", - "Hong ", - "Rou ", - "Pi ", - "Wei ", - "Sai ", - "Zou ", - "Xuan ", - "Miao ", - "Ti ", - "Nie ", - "Cha ", - "Shi ", - "Zong ", - "Zhen ", - "Yi ", - "Shun ", - "Heng ", - "Bian ", - "Yang ", - "Huan ", - "Yan ", - "Zuan ", - "An ", - "Xu ", - "Ya ", - "Wo ", - "Ke ", - "Chuai ", - "Ji ", - "Ti ", - "La ", - "La ", - "Cheng ", - "Kai ", - "Jiu ", - "Jiu ", - "Tu ", - "Jie ", - "Hui ", - "Geng ", - "Chong ", - "Shuo ", - "She ", - "Xie ", - "Yuan ", - "Qian ", - "Ye ", - "Cha ", - "Zha ", - "Bei ", - "Yao ", - "[?] ", - "[?] ", - "Lan ", - "Wen ", - "Qin ", - "Chan ", - "Ge ", - "Lou ", - "Zong ", - "Geng ", - "Jiao ", - "Gou ", - "Qin ", - "Yong ", - "Que ", - "Chou ", - "Chi ", - "Zhan ", - "Sun ", - "Sun ", - "Bo ", - "Chu ", - "Rong ", - "Beng ", - "Cuo ", - "Sao ", - "Ke ", - "Yao ", - "Dao ", - "Zhi ", - "Nu ", - "Xie ", - "Jian ", - "Sou ", - "Qiu ", - "Gao ", - "Xian ", - "Shuo ", - "Sang ", - "Jin ", - "Mie ", - "E ", - "Chui ", - "Nuo ", - "Shan ", - "Ta ", - "Jie ", - "Tang ", - "Pan ", - "Ban ", - "Da ", - "Li ", - "Tao ", - "Hu ", - "Zhi ", - "Wa ", - "Xia ", - "Qian ", - "Wen ", - "Qiang ", - "Tian ", - "Zhen ", - "E ", - "Xi ", - "Nuo ", - "Quan ", - "Cha ", - "Zha ", - "Ge ", - "Wu ", - "En ", - "She ", - "Kang ", - "She ", - "Shu ", - "Bai ", - "Yao ", - "Bin ", - "Sou ", - "Tan ", - "Sa ", - "Chan ", - "Suo ", - "Liao ", - "Chong ", - "Chuang ", - "Guo ", - "Bing ", - "Feng ", - "Shuai ", - "Di ", - "Qi ", - "Sou ", - "Zhai ", - "Lian ", - "Tang ", - "Chi ", - "Guan ", - "Lu ", - "Luo ", - "Lou ", - "Zong ", - "Gai ", - "Hu ", - "Zha ", - "Chuang ", - "Tang ", - "Hua ", - "Cui ", - "Nai ", - "Mo ", - "Jiang ", - "Gui ", - "Ying ", - "Zhi ", - "Ao ", - "Zhi ", - "Nie ", - "Man ", - "Shan ", - "Kou ", - "Shu ", - "Suo ", - "Tuan ", - "Jiao ", - "Mo ", - "Mo ", - "Zhe ", - "Xian ", - "Keng ", - "Piao ", - "Jiang ", - "Yin ", - "Gou ", - "Qian ", - "Lue ", - "Ji ", - "Ying ", - "Jue ", - "Pie ", - "Pie ", - "Lao ", - "Dun ", - "Xian ", - "Ruan ", - "Kui ", - "Zan ", - "Yi ", - "Xun ", - "Cheng ", - "Cheng ", - "Sa ", - "Nao ", - "Heng ", - "Si ", - "Qian ", - "Huang ", - "Da ", - "Zun ", - "Nian ", - "Lin ", - "Zheng ", - "Hui ", - "Zhuang ", - "Jiao ", - "Ji ", - "Cao ", - "Dan ", - "Dan ", - "Che ", - "Bo ", - "Che ", - "Jue ", - "Xiao ", - "Liao ", - "Ben ", - "Fu ", - "Qiao ", - "Bo ", - "Cuo ", - "Zhuo ", - "Zhuan ", - "Tuo ", - "Pu ", - "Qin ", - "Dun ", - "Nian ", - "[?] ", - "Xie ", - "Lu ", - "Jiao ", - "Cuan ", - "Ta ", - "Han ", - "Qiao ", - "Zhua ", - "Jian ", - "Gan ", - "Yong ", - "Lei ", - "Kuo ", - "Lu ", - "Shan ", - "Zhuo ", - "Ze ", - "Pu ", - "Chuo ", - "Ji ", - "Dang ", - "Suo ", - "Cao ", - "Qing ", - "Jing ", - "Huan ", - "Jie ", - "Qin ", - "Kuai ", - "Dan ", - "Xi ", - "Ge ", - "Pi ", - "Bo ", - "Ao ", - "Ju ", - "Ye ", - "[?] ", - "Mang ", - "Sou ", - "Mi ", - "Ji ", - "Tai ", - "Zhuo ", - "Dao ", - "Xing ", - "Lan ", - "Ca ", - "Ju ", - "Ye ", - "Ru ", - "Ye ", - "Ye ", - "Ni ", - "Hu ", - "Ji ", - "Bin ", - "Ning ", - "Ge ", - "Zhi ", - "Jie ", - "Kuo ", - "Mo ", - "Jian ", - "Xie ", - "Lie ", - "Tan ", - "Bai ", - "Sou ", - "Lu ", - "Lue ", - "Rao ", - "Zhi ", - "Pan ", - "Yang ", - "Lei ", - "Sa ", - "Shu ", - "Zan ", - "Nian ", - "Xian ", - "Jun ", - "Huo ", - "Li ", - "La ", - "Han ", - "Ying ", - "Lu ", - "Long ", - "Qian ", - "Qian ", - "Zan ", - "Qian ", - "Lan ", - "San ", - "Ying ", - "Mei ", - "Rang ", - "Chan ", - "[?] ", - "Cuan ", - "Xi ", - "She ", - "Luo ", - "Jun ", - "Mi ", - "Li ", - "Zan ", - "Luan ", - "Tan ", - "Zuan ", - "Li ", - "Dian ", - "Wa ", - "Dang ", - "Jiao ", - "Jue ", - "Lan ", - "Li ", - "Nang ", - "Zhi ", - "Gui ", - "Gui ", - "Qi ", - "Xin ", - "Pu ", - "Sui ", - "Shou ", - "Kao ", - "You ", - "Gai ", - "Yi ", - "Gong ", - "Gan ", - "Ban ", - "Fang ", - "Zheng ", - "Bo ", - "Dian ", - "Kou ", - "Min ", - "Wu ", - "Gu ", - "He ", - "Ce ", - "Xiao ", - "Mi ", - "Chu ", - "Ge ", - "Di ", - "Xu ", - "Jiao ", - "Min ", - "Chen ", - "Jiu ", - "Zhen ", - "Duo ", - "Yu ", - "Chi ", - "Ao ", - "Bai ", - "Xu ", - "Jiao ", - "Duo ", - "Lian ", - "Nie ", - "Bi ", - "Chang ", - "Dian ", - "Duo ", - "Yi ", - "Gan ", - "San ", - "Ke ", - "Yan ", - "Dun ", - "Qi ", - "Dou ", - "Xiao ", - "Duo ", - "Jiao ", - "Jing ", - "Yang ", - "Xia ", - "Min ", - "Shu ", - "Ai ", - "Qiao ", - "Ai ", - "Zheng ", - "Di ", - "Zhen ", - "Fu ", - "Shu ", - "Liao ", - "Qu ", - "Xiong ", - "Xi ", - "Jiao ", - "Sen ", - "Jiao ", - "Zhuo ", - "Yi ", - "Lian ", - "Bi ", - "Li ", - "Xiao ", - "Xiao ", - "Wen ", - "Xue ", - "Qi ", - "Qi ", - "Zhai ", - "Bin ", - "Jue ", - "Zhai ", - "[?] ", - "Fei ", - "Ban ", - "Ban ", - "Lan ", - "Yu ", - "Lan ", - "Wei ", - "Dou ", - "Sheng ", - "Liao ", - "Jia ", - "Hu ", - "Xie ", - "Jia ", - "Yu ", - "Zhen ", - "Jiao ", - "Wo ", - "Tou ", - "Chu ", - "Jin ", - "Chi ", - "Yin ", - "Fu ", - "Qiang ", - "Zhan ", - "Qu ", - "Zhuo ", - "Zhan ", - "Duan ", - "Zhuo ", - "Si ", - "Xin ", - "Zhuo ", - "Zhuo ", - "Qin ", - "Lin ", - "Zhuo ", - "Chu ", - "Duan ", - "Zhu ", - "Fang ", - "Xie ", - "Hang ", - "Yu ", - "Shi ", - "Pei ", - "You ", - "Mye ", - "Pang ", - "Qi ", - "Zhan ", - "Mao ", - "Lu ", - "Pei ", - "Pi ", - "Liu ", - "Fu ", - "Fang ", - "Xuan ", - "Jing ", - "Jing ", - "Ni ", - "Zu ", - "Zhao ", - "Yi ", - "Liu ", - "Shao ", - "Jian ", - "Es ", - "Yi ", - "Qi ", - "Zhi ", - "Fan ", - "Piao ", - "Fan ", - "Zhan ", - "Guai ", - "Sui ", - "Yu ", - "Wu ", - "Ji ", - "Ji ", - "Ji ", - "Huo ", - "Ri ", - "Dan ", - "Jiu ", - "Zhi ", - "Zao ", - "Xie ", - "Tiao ", - "Xun ", - "Xu ", - "Xu ", - "Xu ", - "Gan ", - "Han ", - "Tai ", - "Di ", - "Xu ", - "Chan ", - "Shi ", - "Kuang ", - "Yang ", - "Shi ", - "Wang ", - "Min ", - "Min ", - "Tun ", - "Chun ", - "Wu ", - "Yun ", - "Bei ", - "Ang ", - "Ze ", - "Ban ", - "Jie ", - "Kun ", - "Sheng ", - "Hu ", - "Fang ", - "Hao ", - "Gui ", - "Chang ", - "Xuan ", - "Ming ", - "Hun ", - "Fen ", - "Qin ", - "Hu ", - "Yi ", - "Xi ", - "Xin ", - "Yan ", - "Ze ", - "Fang ", - "Tan ", - "Shen ", - "Ju ", - "Yang ", - "Zan ", - "Bing ", - "Xing ", - "Ying ", - "Xuan ", - "Pei ", - "Zhen ", - "Ling ", - "Chun ", - "Hao ", - "Mei ", - "Zuo ", - "Mo ", - "Bian ", - "Xu ", - "Hun ", - "Zhao ", - "Zong ", - "Shi ", - "Shi ", - "Yu ", - "Fei ", - "Die ", - "Mao ", - "Ni ", - "Chang ", - "Wen ", - "Dong ", - "Ai ", - "Bing ", - "Ang ", - "Zhou ", - "Long ", - "Xian ", - "Kuang ", - "Tiao ", - "Chao ", - "Shi ", - "Huang ", - "Huang ", - "Xuan ", - "Kui ", - "Xu ", - "Jiao ", - "Jin ", - "Zhi ", - "Jin ", - "Shang ", - "Tong ", - "Hong ", - "Yan ", - "Gai ", - "Xiang ", - "Shai ", - "Xiao ", - "Ye ", - "Yun ", - "Hui ", - "Han ", - "Han ", - "Jun ", - "Wan ", - "Xian ", - "Kun ", - "Zhou ", - "Xi ", - "Cheng ", - "Sheng ", - "Bu ", - "Zhe ", - "Zhe ", - "Wu ", - "Han ", - "Hui ", - "Hao ", - "Chen ", - "Wan ", - "Tian ", - "Zhuo ", - "Zui ", - "Zhou ", - "Pu ", - "Jing ", - "Xi ", - "Shan ", - "Yi ", - "Xi ", - "Qing ", - "Qi ", - "Jing ", - "Gui ", - "Zhen ", - "Yi ", - "Zhi ", - "An ", - "Wan ", - "Lin ", - "Liang ", - "Chang ", - "Wang ", - "Xiao ", - "Zan ", - "Hi ", - "Xuan ", - "Xuan ", - "Yi ", - "Xia ", - "Yun ", - "Hui ", - "Fu ", - "Min ", - "Kui ", - "He ", - "Ying ", - "Du ", - "Wei ", - "Shu ", - "Qing ", - "Mao ", - "Nan ", - "Jian ", - "Nuan ", - "An ", - "Yang ", - "Chun ", - "Yao ", - "Suo ", - "Jin ", - "Ming ", - "Jiao ", - "Kai ", - "Gao ", - "Weng ", - "Chang ", - "Qi ", - "Hao ", - "Yan ", - "Li ", - "Ai ", - "Ji ", - "Gui ", - "Men ", - "Zan ", - "Xie ", - "Hao ", - "Mu ", - "Mo ", - "Cong ", - "Ni ", - "Zhang ", - "Hui ", - "Bao ", - "Han ", - "Xuan ", - "Chuan ", - "Liao ", - "Xian ", - "Dan ", - "Jing ", - "Pie ", - "Lin ", - "Tun ", - "Xi ", - "Yi ", - "Ji ", - "Huang ", - "Tai ", - "Ye ", - "Ye ", - "Li ", - "Tan ", - "Tong ", - "Xiao ", - "Fei ", - "Qin ", - "Zhao ", - "Hao ", - "Yi ", - "Xiang ", - "Xing ", - "Sen ", - "Jiao ", - "Bao ", - "Jing ", - "Yian ", - "Ai ", - "Ye ", - "Ru ", - "Shu ", - "Meng ", - "Xun ", - "Yao ", - "Pu ", - "Li ", - "Chen ", - "Kuang ", - "Die ", - "[?] ", - "Yan ", - "Huo ", - "Lu ", - "Xi ", - "Rong ", - "Long ", - "Nang ", - "Luo ", - "Luan ", - "Shai ", - "Tang ", - "Yan ", - "Chu ", - "Yue ", - "Yue ", - "Qu ", - "Yi ", - "Geng ", - "Ye ", - "Hu ", - "He ", - "Shu ", - "Cao ", - "Cao ", - "Noboru ", - "Man ", - "Ceng ", - "Ceng ", - "Ti ", - "Zui ", - "Can ", - "Xu ", - "Hui ", - "Yin ", - "Qie ", - "Fen ", - "Pi ", - "Yue ", - "You ", - "Ruan ", - "Peng ", - "Ban ", - "Fu ", - "Ling ", - "Fei ", - "Qu ", - "[?] ", - "Nu ", - "Tiao ", - "Shuo ", - "Zhen ", - "Lang ", - "Lang ", - "Juan ", - "Ming ", - "Huang ", - "Wang ", - "Tun ", - "Zhao ", - "Ji ", - "Qi ", - "Ying ", - "Zong ", - "Wang ", - "Tong ", - "Lang ", - "[?] ", - "Meng ", - "Long ", - "Mu ", - "Deng ", - "Wei ", - "Mo ", - "Ben ", - "Zha ", - "Zhu ", - "Zhu ", - "[?] ", - "Zhu ", - "Ren ", - "Ba ", - "Po ", - "Duo ", - "Duo ", - "Dao ", - "Li ", - "Qiu ", - "Ji ", - "Jiu ", - "Bi ", - "Xiu ", - "Ting ", - "Ci ", - "Sha ", - "Eburi ", - "Za ", - "Quan ", - "Qian ", - "Yu ", - "Gan ", - "Wu ", - "Cha ", - "Shan ", - "Xun ", - "Fan ", - "Wu ", - "Zi ", - "Li ", - "Xing ", - "Cai ", - "Cun ", - "Ren ", - "Shao ", - "Tuo ", - "Di ", - "Zhang ", - "Mang ", - "Chi ", - "Yi ", - "Gu ", - "Gong ", - "Du ", - "Yi ", - "Qi ", - "Shu ", - "Gang ", - "Tiao ", - "Moku ", - "Soma ", - "Tochi ", - "Lai ", - "Sugi ", - "Mang ", - "Yang ", - "Ma ", - "Miao ", - "Si ", - "Yuan ", - "Hang ", - "Fei ", - "Bei ", - "Jie ", - "Dong ", - "Gao ", - "Yao ", - "Xian ", - "Chu ", - "Qun ", - "Pa ", - "Shu ", - "Hua ", - "Xin ", - "Chou ", - "Zhu ", - "Chou ", - "Song ", - "Ban ", - "Song ", - "Ji ", - "Yue ", - "Jin ", - "Gou ", - "Ji ", - "Mao ", - "Pi ", - "Bi ", - "Wang ", - "Ang ", - "Fang ", - "Fen ", - "Yi ", - "Fu ", - "Nan ", - "Xi ", - "Hu ", - "Ya ", - "Dou ", - "Xun ", - "Zhen ", - "Yao ", - "Lin ", - "Rui ", - "E ", - "Mei ", - "Zhao ", - "Guo ", - "Zhi ", - "Cong ", - "Yun ", - "Waku ", - "Dou ", - "Shu ", - "Zao ", - "[?] ", - "Li ", - "Haze ", - "Jian ", - "Cheng ", - "Matsu ", - "Qiang ", - "Feng ", - "Nan ", - "Xiao ", - "Xian ", - "Ku ", - "Ping ", - "Yi ", - "Xi ", - "Zhi ", - "Guai ", - "Xiao ", - "Jia ", - "Jia ", - "Gou ", - "Fu ", - "Mo ", - "Yi ", - "Ye ", - "Ye ", - "Shi ", - "Nie ", - "Bi ", - "Duo ", - "Yi ", - "Ling ", - "Bing ", - "Ni ", - "La ", - "He ", - "Pan ", - "Fan ", - "Zhong ", - "Dai ", - "Ci ", - "Yang ", - "Fu ", - "Bo ", - "Mou ", - "Gan ", - "Qi ", - "Ran ", - "Rou ", - "Mao ", - "Zhao ", - "Song ", - "Zhe ", - "Xia ", - "You ", - "Shen ", - "Ju ", - "Tuo ", - "Zuo ", - "Nan ", - "Ning ", - "Yong ", - "Di ", - "Zhi ", - "Zha ", - "Cha ", - "Dan ", - "Gu ", - "Pu ", - "Jiu ", - "Ao ", - "Fu ", - "Jian ", - "Bo ", - "Duo ", - "Ke ", - "Nai ", - "Zhu ", - "Bi ", - "Liu ", - "Chai ", - "Zha ", - "Si ", - "Zhu ", - "Pei ", - "Shi ", - "Guai ", - "Cha ", - "Yao ", - "Jue ", - "Jiu ", - "Shi ", - "Zhi ", - "Liu ", - "Mei ", - "Hoy ", - "Rong ", - "Zha ", - "[?] ", - "Biao ", - "Zhan ", - "Jie ", - "Long ", - "Dong ", - "Lu ", - "Sayng ", - "Li ", - "Lan ", - "Yong ", - "Shu ", - "Xun ", - "Shuan ", - "Qi ", - "Zhen ", - "Qi ", - "Li ", - "Yi ", - "Xiang ", - "Zhen ", - "Li ", - "Su ", - "Gua ", - "Kan ", - "Bing ", - "Ren ", - "Xiao ", - "Bo ", - "Ren ", - "Bing ", - "Zi ", - "Chou ", - "Yi ", - "Jie ", - "Xu ", - "Zhu ", - "Jian ", - "Zui ", - "Er ", - "Er ", - "You ", - "Fa ", - "Gong ", - "Kao ", - "Lao ", - "Zhan ", - "Li ", - "Yin ", - "Yang ", - "He ", - "Gen ", - "Zhi ", - "Chi ", - "Ge ", - "Zai ", - "Luan ", - "Fu ", - "Jie ", - "Hang ", - "Gui ", - "Tao ", - "Guang ", - "Wei ", - "Kuang ", - "Ru ", - "An ", - "An ", - "Juan ", - "Yi ", - "Zhuo ", - "Ku ", - "Zhi ", - "Qiong ", - "Tong ", - "Sang ", - "Sang ", - "Huan ", - "Jie ", - "Jiu ", - "Xue ", - "Duo ", - "Zhui ", - "Yu ", - "Zan ", - "Kasei ", - "Ying ", - "Masu ", - "[?] ", - "Zhan ", - "Ya ", - "Nao ", - "Zhen ", - "Dang ", - "Qi ", - "Qiao ", - "Hua ", - "Kuai ", - "Jiang ", - "Zhuang ", - "Xun ", - "Suo ", - "Sha ", - "Zhen ", - "Bei ", - "Ting ", - "Gua ", - "Jing ", - "Bo ", - "Ben ", - "Fu ", - "Rui ", - "Tong ", - "Jue ", - "Xi ", - "Lang ", - "Liu ", - "Feng ", - "Qi ", - "Wen ", - "Jun ", - "Gan ", - "Cu ", - "Liang ", - "Qiu ", - "Ting ", - "You ", - "Mei ", - "Bang ", - "Long ", - "Peng ", - "Zhuang ", - "Di ", - "Xuan ", - "Tu ", - "Zao ", - "Ao ", - "Gu ", - "Bi ", - "Di ", - "Han ", - "Zi ", - "Zhi ", - "Ren ", - "Bei ", - "Geng ", - "Jian ", - "Huan ", - "Wan ", - "Nuo ", - "Jia ", - "Tiao ", - "Ji ", - "Xiao ", - "Lu ", - "Huan ", - "Shao ", - "Cen ", - "Fen ", - "Song ", - "Meng ", - "Wu ", - "Li ", - "Li ", - "Dou ", - "Cen ", - "Ying ", - "Suo ", - "Ju ", - "Ti ", - "Jie ", - "Kun ", - "Zhuo ", - "Shu ", - "Chan ", - "Fan ", - "Wei ", - "Jing ", - "Li ", - "Bing ", - "Fumoto ", - "Shikimi ", - "Tao ", - "Zhi ", - "Lai ", - "Lian ", - "Jian ", - "Zhuo ", - "Ling ", - "Li ", - "Qi ", - "Bing ", - "Zhun ", - "Cong ", - "Qian ", - "Mian ", - "Qi ", - "Qi ", - "Cai ", - "Gun ", - "Chan ", - "Te ", - "Fei ", - "Pai ", - "Bang ", - "Pou ", - "Hun ", - "Zong ", - "Cheng ", - "Zao ", - "Ji ", - "Li ", - "Peng ", - "Yu ", - "Yu ", - "Gu ", - "Hun ", - "Dong ", - "Tang ", - "Gang ", - "Wang ", - "Di ", - "Xi ", - "Fan ", - "Cheng ", - "Zhan ", - "Qi ", - "Yuan ", - "Yan ", - "Yu ", - "Quan ", - "Yi ", - "Sen ", - "Ren ", - "Chui ", - "Leng ", - "Qi ", - "Zhuo ", - "Fu ", - "Ke ", - "Lai ", - "Zou ", - "Zou ", - "Zhuo ", - "Guan ", - "Fen ", - "Fen ", - "Chen ", - "Qiong ", - "Nie ", - "Wan ", - "Guo ", - "Lu ", - "Hao ", - "Jie ", - "Yi ", - "Chou ", - "Ju ", - "Ju ", - "Cheng ", - "Zuo ", - "Liang ", - "Qiang ", - "Zhi ", - "Zhui ", - "Ya ", - "Ju ", - "Bei ", - "Jiao ", - "Zhuo ", - "Zi ", - "Bin ", - "Peng ", - "Ding ", - "Chu ", - "Chang ", - "Kunugi ", - "Momiji ", - "Jian ", - "Gui ", - "Xi ", - "Du ", - "Qian ", - "Kunugi ", - "Soko ", - "Shide ", - "Luo ", - "Zhi ", - "Ken ", - "Myeng ", - "Tafu ", - "[?] ", - "Peng ", - "Zhan ", - "[?] ", - "Tuo ", - "Sen ", - "Duo ", - "Ye ", - "Fou ", - "Wei ", - "Wei ", - "Duan ", - "Jia ", - "Zong ", - "Jian ", - "Yi ", - "Shen ", - "Xi ", - "Yan ", - "Yan ", - "Chuan ", - "Zhan ", - "Chun ", - "Yu ", - "He ", - "Zha ", - "Wo ", - "Pian ", - "Bi ", - "Yao ", - "Huo ", - "Xu ", - "Ruo ", - "Yang ", - "La ", - "Yan ", - "Ben ", - "Hun ", - "Kui ", - "Jie ", - "Kui ", - "Si ", - "Feng ", - "Xie ", - "Tuo ", - "Zhi ", - "Jian ", - "Mu ", - "Mao ", - "Chu ", - "Hu ", - "Hu ", - "Lian ", - "Leng ", - "Ting ", - "Nan ", - "Yu ", - "You ", - "Mei ", - "Song ", - "Xuan ", - "Xuan ", - "Ying ", - "Zhen ", - "Pian ", - "Ye ", - "Ji ", - "Jie ", - "Ye ", - "Chu ", - "Shun ", - "Yu ", - "Cou ", - "Wei ", - "Mei ", - "Di ", - "Ji ", - "Jie ", - "Kai ", - "Qiu ", - "Ying ", - "Rou ", - "Heng ", - "Lou ", - "Le ", - "Hazou ", - "Katsura ", - "Pin ", - "Muro ", - "Gai ", - "Tan ", - "Lan ", - "Yun ", - "Yu ", - "Chen ", - "Lu ", - "Ju ", - "Sakaki ", - "[?] ", - "Pi ", - "Xie ", - "Jia ", - "Yi ", - "Zhan ", - "Fu ", - "Nai ", - "Mi ", - "Lang ", - "Rong ", - "Gu ", - "Jian ", - "Ju ", - "Ta ", - "Yao ", - "Zhen ", - "Bang ", - "Sha ", - "Yuan ", - "Zi ", - "Ming ", - "Su ", - "Jia ", - "Yao ", - "Jie ", - "Huang ", - "Gan ", - "Fei ", - "Zha ", - "Qian ", - "Ma ", - "Sun ", - "Yuan ", - "Xie ", - "Rong ", - "Shi ", - "Zhi ", - "Cui ", - "Yun ", - "Ting ", - "Liu ", - "Rong ", - "Tang ", - "Que ", - "Zhai ", - "Si ", - "Sheng ", - "Ta ", - "Ke ", - "Xi ", - "Gu ", - "Qi ", - "Kao ", - "Gao ", - "Sun ", - "Pan ", - "Tao ", - "Ge ", - "Xun ", - "Dian ", - "Nou ", - "Ji ", - "Shuo ", - "Gou ", - "Chui ", - "Qiang ", - "Cha ", - "Qian ", - "Huai ", - "Mei ", - "Xu ", - "Gang ", - "Gao ", - "Zhuo ", - "Tuo ", - "Hashi ", - "Yang ", - "Dian ", - "Jia ", - "Jian ", - "Zui ", - "Kashi ", - "Ori ", - "Bin ", - "Zhu ", - "[?] ", - "Xi ", - "Qi ", - "Lian ", - "Hui ", - "Yong ", - "Qian ", - "Guo ", - "Gai ", - "Gai ", - "Tuan ", - "Hua ", - "Cu ", - "Sen ", - "Cui ", - "Beng ", - "You ", - "Hu ", - "Jiang ", - "Hu ", - "Huan ", - "Kui ", - "Yi ", - "Nie ", - "Gao ", - "Kang ", - "Gui ", - "Gui ", - "Cao ", - "Man ", - "Jin ", - "Di ", - "Zhuang ", - "Le ", - "Lang ", - "Chen ", - "Cong ", - "Li ", - "Xiu ", - "Qing ", - "Shuang ", - "Fan ", - "Tong ", - "Guan ", - "Ji ", - "Suo ", - "Lei ", - "Lu ", - "Liang ", - "Mi ", - "Lou ", - "Chao ", - "Su ", - "Ke ", - "Shu ", - "Tang ", - "Biao ", - "Lu ", - "Jiu ", - "Shu ", - "Zha ", - "Shu ", - "Zhang ", - "Men ", - "Mo ", - "Niao ", - "Yang ", - "Tiao ", - "Peng ", - "Zhu ", - "Sha ", - "Xi ", - "Quan ", - "Heng ", - "Jian ", - "Cong ", - "[?] ", - "Hokuso ", - "Qiang ", - "Tara ", - "Ying ", - "Er ", - "Xin ", - "Zhi ", - "Qiao ", - "Zui ", - "Cong ", - "Pu ", - "Shu ", - "Hua ", - "Kui ", - "Zhen ", - "Zun ", - "Yue ", - "Zhan ", - "Xi ", - "Xun ", - "Dian ", - "Fa ", - "Gan ", - "Mo ", - "Wu ", - "Qiao ", - "Nao ", - "Lin ", - "Liu ", - "Qiao ", - "Xian ", - "Run ", - "Fan ", - "Zhan ", - "Tuo ", - "Lao ", - "Yun ", - "Shun ", - "Tui ", - "Cheng ", - "Tang ", - "Meng ", - "Ju ", - "Cheng ", - "Su ", - "Jue ", - "Jue ", - "Tan ", - "Hui ", - "Ji ", - "Nuo ", - "Xiang ", - "Tuo ", - "Ning ", - "Rui ", - "Zhu ", - "Chuang ", - "Zeng ", - "Fen ", - "Qiong ", - "Ran ", - "Heng ", - "Cen ", - "Gu ", - "Liu ", - "Lao ", - "Gao ", - "Chu ", - "Zusa ", - "Nude ", - "Ca ", - "San ", - "Ji ", - "Dou ", - "Shou ", - "Lu ", - "[?] ", - "[?] ", - "Yuan ", - "Ta ", - "Shu ", - "Jiang ", - "Tan ", - "Lin ", - "Nong ", - "Yin ", - "Xi ", - "Sui ", - "Shan ", - "Zui ", - "Xuan ", - "Cheng ", - "Gan ", - "Ju ", - "Zui ", - "Yi ", - "Qin ", - "Pu ", - "Yan ", - "Lei ", - "Feng ", - "Hui ", - "Dang ", - "Ji ", - "Sui ", - "Bo ", - "Bi ", - "Ding ", - "Chu ", - "Zhua ", - "Kuai ", - "Ji ", - "Jie ", - "Jia ", - "Qing ", - "Zhe ", - "Jian ", - "Qiang ", - "Dao ", - "Yi ", - "Biao ", - "Song ", - "She ", - "Lin ", - "Kunugi ", - "Cha ", - "Meng ", - "Yin ", - "Tao ", - "Tai ", - "Mian ", - "Qi ", - "Toan ", - "Bin ", - "Huo ", - "Ji ", - "Qian ", - "Mi ", - "Ning ", - "Yi ", - "Gao ", - "Jian ", - "Yin ", - "Er ", - "Qing ", - "Yan ", - "Qi ", - "Mi ", - "Zhao ", - "Gui ", - "Chun ", - "Ji ", - "Kui ", - "Po ", - "Deng ", - "Chu ", - "[?] ", - "Mian ", - "You ", - "Zhi ", - "Guang ", - "Qian ", - "Lei ", - "Lei ", - "Sa ", - "Lu ", - "Li ", - "Cuan ", - "Lu ", - "Mie ", - "Hui ", - "Ou ", - "Lu ", - "Jie ", - "Gao ", - "Du ", - "Yuan ", - "Li ", - "Fei ", - "Zhuo ", - "Sou ", - "Lian ", - "Tamo ", - "Chu ", - "[?] ", - "Zhu ", - "Lu ", - "Yan ", - "Li ", - "Zhu ", - "Chen ", - "Jie ", - "E ", - "Su ", - "Huai ", - "Nie ", - "Yu ", - "Long ", - "Lai ", - "[?] ", - "Xian ", - "Kwi ", - "Ju ", - "Xiao ", - "Ling ", - "Ying ", - "Jian ", - "Yin ", - "You ", - "Ying ", - "Xiang ", - "Nong ", - "Bo ", - "Chan ", - "Lan ", - "Ju ", - "Shuang ", - "She ", - "Wei ", - "Cong ", - "Quan ", - "Qu ", - "Cang ", - "[?] ", - "Yu ", - "Luo ", - "Li ", - "Zan ", - "Luan ", - "Dang ", - "Jue ", - "Em ", - "Lan ", - "Lan ", - "Zhu ", - "Lei ", - "Li ", - "Ba ", - "Nang ", - "Yu ", - "Ling ", - "Tsuki ", - "Qian ", - "Ci ", - "Huan ", - "Xin ", - "Yu ", - "Yu ", - "Qian ", - "Ou ", - "Xu ", - "Chao ", - "Chu ", - "Chi ", - "Kai ", - "Yi ", - "Jue ", - "Xi ", - "Xu ", - "Xia ", - "Yu ", - "Kuai ", - "Lang ", - "Kuan ", - "Shuo ", - "Xi ", - "Ai ", - "Yi ", - "Qi ", - "Hu ", - "Chi ", - "Qin ", - "Kuan ", - "Kan ", - "Kuan ", - "Kan ", - "Chuan ", - "Sha ", - "Gua ", - "Yin ", - "Xin ", - "Xie ", - "Yu ", - "Qian ", - "Xiao ", - "Yi ", - "Ge ", - "Wu ", - "Tan ", - "Jin ", - "Ou ", - "Hu ", - "Ti ", - "Huan ", - "Xu ", - "Pen ", - "Xi ", - "Xiao ", - "Xu ", - "Xi ", - "Sen ", - "Lian ", - "Chu ", - "Yi ", - "Kan ", - "Yu ", - "Chuo ", - "Huan ", - "Zhi ", - "Zheng ", - "Ci ", - "Bu ", - "Wu ", - "Qi ", - "Bu ", - "Bu ", - "Wai ", - "Ju ", - "Qian ", - "Chi ", - "Se ", - "Chi ", - "Se ", - "Zhong ", - "Sui ", - "Sui ", - "Li ", - "Cuo ", - "Yu ", - "Li ", - "Gui ", - "Dai ", - "Dai ", - "Si ", - "Jian ", - "Zhe ", - "Mo ", - "Mo ", - "Yao ", - "Mo ", - "Cu ", - "Yang ", - "Tian ", - "Sheng ", - "Dai ", - "Shang ", - "Xu ", - "Xun ", - "Shu ", - "Can ", - "Jue ", - "Piao ", - "Qia ", - "Qiu ", - "Su ", - "Qing ", - "Yun ", - "Lian ", - "Yi ", - "Fou ", - "Zhi ", - "Ye ", - "Can ", - "Hun ", - "Dan ", - "Ji ", - "Ye ", - "Zhen ", - "Yun ", - "Wen ", - "Chou ", - "Bin ", - "Ti ", - "Jin ", - "Shang ", - "Yin ", - "Diao ", - "Cu ", - "Hui ", - "Cuan ", - "Yi ", - "Dan ", - "Du ", - "Jiang ", - "Lian ", - "Bin ", - "Du ", - "Tsukusu ", - "Jian ", - "Shu ", - "Ou ", - "Duan ", - "Zhu ", - "Yin ", - "Qing ", - "Yi ", - "Sha ", - "Que ", - "Ke ", - "Yao ", - "Jun ", - "Dian ", - "Hui ", - "Hui ", - "Gu ", - "Que ", - "Ji ", - "Yi ", - "Ou ", - "Hui ", - "Duan ", - "Yi ", - "Xiao ", - "Wu ", - "Guan ", - "Mu ", - "Mei ", - "Mei ", - "Ai ", - "Zuo ", - "Du ", - "Yu ", - "Bi ", - "Bi ", - "Bi ", - "Pi ", - "Pi ", - "Bi ", - "Chan ", - "Mao ", - "[?] ", - "[?] ", - "Pu ", - "Mushiru ", - "Jia ", - "Zhan ", - "Sai ", - "Mu ", - "Tuo ", - "Xun ", - "Er ", - "Rong ", - "Xian ", - "Ju ", - "Mu ", - "Hao ", - "Qiu ", - "Dou ", - "Mushiru ", - "Tan ", - "Pei ", - "Ju ", - "Duo ", - "Cui ", - "Bi ", - "San ", - "[?] ", - "Mao ", - "Sui ", - "Yu ", - "Yu ", - "Tuo ", - "He ", - "Jian ", - "Ta ", - "San ", - "Lu ", - "Mu ", - "Li ", - "Tong ", - "Rong ", - "Chang ", - "Pu ", - "Luo ", - "Zhan ", - "Sao ", - "Zhan ", - "Meng ", - "Luo ", - "Qu ", - "Die ", - "Shi ", - "Di ", - "Min ", - "Jue ", - "Mang ", - "Qi ", - "Pie ", - "Nai ", - "Qi ", - "Dao ", - "Xian ", - "Chuan ", - "Fen ", - "Ri ", - "Nei ", - "[?] ", - "Fu ", - "Shen ", - "Dong ", - "Qing ", - "Qi ", - "Yin ", - "Xi ", - "Hai ", - "Yang ", - "An ", - "Ya ", - "Ke ", - "Qing ", - "Ya ", - "Dong ", - "Dan ", - "Lu ", - "Qing ", - "Yang ", - "Yun ", - "Yun ", - "Shui ", - "San ", - "Zheng ", - "Bing ", - "Yong ", - "Dang ", - "Shitamizu ", - "Le ", - "Ni ", - "Tun ", - "Fan ", - "Gui ", - "Ting ", - "Zhi ", - "Qiu ", - "Bin ", - "Ze ", - "Mian ", - "Cuan ", - "Hui ", - "Diao ", - "Yi ", - "Cha ", - "Zhuo ", - "Chuan ", - "Wan ", - "Fan ", - "Dai ", - "Xi ", - "Tuo ", - "Mang ", - "Qiu ", - "Qi ", - "Shan ", - "Pai ", - "Han ", - "Qian ", - "Wu ", - "Wu ", - "Xun ", - "Si ", - "Ru ", - "Gong ", - "Jiang ", - "Chi ", - "Wu ", - "Tsuchi ", - "[?] ", - "Tang ", - "Zhi ", - "Chi ", - "Qian ", - "Mi ", - "Yu ", - "Wang ", - "Qing ", - "Jing ", - "Rui ", - "Jun ", - "Hong ", - "Tai ", - "Quan ", - "Ji ", - "Bian ", - "Bian ", - "Gan ", - "Wen ", - "Zhong ", - "Fang ", - "Xiong ", - "Jue ", - "Hang ", - "Niou ", - "Qi ", - "Fen ", - "Xu ", - "Xu ", - "Qin ", - "Yi ", - "Wo ", - "Yun ", - "Yuan ", - "Hang ", - "Yan ", - "Chen ", - "Chen ", - "Dan ", - "You ", - "Dun ", - "Hu ", - "Huo ", - "Qie ", - "Mu ", - "Rou ", - "Mei ", - "Ta ", - "Mian ", - "Wu ", - "Chong ", - "Tian ", - "Bi ", - "Sha ", - "Zhi ", - "Pei ", - "Pan ", - "Zhui ", - "Za ", - "Gou ", - "Liu ", - "Mei ", - "Ze ", - "Feng ", - "Ou ", - "Li ", - "Lun ", - "Cang ", - "Feng ", - "Wei ", - "Hu ", - "Mo ", - "Mei ", - "Shu ", - "Ju ", - "Zan ", - "Tuo ", - "Tuo ", - "Tuo ", - "He ", - "Li ", - "Mi ", - "Yi ", - "Fa ", - "Fei ", - "You ", - "Tian ", - "Zhi ", - "Zhao ", - "Gu ", - "Zhan ", - "Yan ", - "Si ", - "Kuang ", - "Jiong ", - "Ju ", - "Xie ", - "Qiu ", - "Yi ", - "Jia ", - "Zhong ", - "Quan ", - "Bo ", - "Hui ", - "Mi ", - "Ben ", - "Zhuo ", - "Chu ", - "Le ", - "You ", - "Gu ", - "Hong ", - "Gan ", - "Fa ", - "Mao ", - "Si ", - "Hu ", - "Ping ", - "Ci ", - "Fan ", - "Chi ", - "Su ", - "Ning ", - "Cheng ", - "Ling ", - "Pao ", - "Bo ", - "Qi ", - "Si ", - "Ni ", - "Ju ", - "Yue ", - "Zhu ", - "Sheng ", - "Lei ", - "Xuan ", - "Xue ", - "Fu ", - "Pan ", - "Min ", - "Tai ", - "Yang ", - "Ji ", - "Yong ", - "Guan ", - "Beng ", - "Xue ", - "Long ", - "Lu ", - "[?] ", - "Bo ", - "Xie ", - "Po ", - "Ze ", - "Jing ", - "Yin ", - "Zhou ", - "Ji ", - "Yi ", - "Hui ", - "Hui ", - "Zui ", - "Cheng ", - "Yin ", - "Wei ", - "Hou ", - "Jian ", - "Yang ", - "Lie ", - "Si ", - "Ji ", - "Er ", - "Xing ", - "Fu ", - "Sa ", - "Suo ", - "Zhi ", - "Yin ", - "Wu ", - "Xi ", - "Kao ", - "Zhu ", - "Jiang ", - "Luo ", - "[?] ", - "An ", - "Dong ", - "Yi ", - "Mou ", - "Lei ", - "Yi ", - "Mi ", - "Quan ", - "Jin ", - "Mo ", - "Wei ", - "Xiao ", - "Xie ", - "Hong ", - "Xu ", - "Shuo ", - "Kuang ", - "Tao ", - "Qie ", - "Ju ", - "Er ", - "Zhou ", - "Ru ", - "Ping ", - "Xun ", - "Xiong ", - "Zhi ", - "Guang ", - "Huan ", - "Ming ", - "Huo ", - "Wa ", - "Qia ", - "Pai ", - "Wu ", - "Qu ", - "Liu ", - "Yi ", - "Jia ", - "Jing ", - "Qian ", - "Jiang ", - "Jiao ", - "Cheng ", - "Shi ", - "Zhuo ", - "Ce ", - "Pal ", - "Kuai ", - "Ji ", - "Liu ", - "Chan ", - "Hun ", - "Hu ", - "Nong ", - "Xun ", - "Jin ", - "Lie ", - "Qiu ", - "Wei ", - "Zhe ", - "Jun ", - "Han ", - "Bang ", - "Mang ", - "Zhuo ", - "You ", - "Xi ", - "Bo ", - "Dou ", - "Wan ", - "Hong ", - "Yi ", - "Pu ", - "Ying ", - "Lan ", - "Hao ", - "Lang ", - "Han ", - "Li ", - "Geng ", - "Fu ", - "Wu ", - "Lian ", - "Chun ", - "Feng ", - "Yi ", - "Yu ", - "Tong ", - "Lao ", - "Hai ", - "Jin ", - "Jia ", - "Chong ", - "Weng ", - "Mei ", - "Sui ", - "Cheng ", - "Pei ", - "Xian ", - "Shen ", - "Tu ", - "Kun ", - "Pin ", - "Nie ", - "Han ", - "Jing ", - "Xiao ", - "She ", - "Nian ", - "Tu ", - "Yong ", - "Xiao ", - "Xian ", - "Ting ", - "E ", - "Su ", - "Tun ", - "Juan ", - "Cen ", - "Ti ", - "Li ", - "Shui ", - "Si ", - "Lei ", - "Shui ", - "Tao ", - "Du ", - "Lao ", - "Lai ", - "Lian ", - "Wei ", - "Wo ", - "Yun ", - "Huan ", - "Di ", - "[?] ", - "Run ", - "Jian ", - "Zhang ", - "Se ", - "Fu ", - "Guan ", - "Xing ", - "Shou ", - "Shuan ", - "Ya ", - "Chuo ", - "Zhang ", - "Ye ", - "Kong ", - "Wo ", - "Han ", - "Tuo ", - "Dong ", - "He ", - "Wo ", - "Ju ", - "Gan ", - "Liang ", - "Hun ", - "Ta ", - "Zhuo ", - "Dian ", - "Qie ", - "De ", - "Juan ", - "Zi ", - "Xi ", - "Yao ", - "Qi ", - "Gu ", - "Guo ", - "Han ", - "Lin ", - "Tang ", - "Zhou ", - "Peng ", - "Hao ", - "Chang ", - "Shu ", - "Qi ", - "Fang ", - "Chi ", - "Lu ", - "Nao ", - "Ju ", - "Tao ", - "Cong ", - "Lei ", - "Zhi ", - "Peng ", - "Fei ", - "Song ", - "Tian ", - "Pi ", - "Dan ", - "Yu ", - "Ni ", - "Yu ", - "Lu ", - "Gan ", - "Mi ", - "Jing ", - "Ling ", - "Lun ", - "Yin ", - "Cui ", - "Qu ", - "Huai ", - "Yu ", - "Nian ", - "Shen ", - "Piao ", - "Chun ", - "Wa ", - "Yuan ", - "Lai ", - "Hun ", - "Qing ", - "Yan ", - "Qian ", - "Tian ", - "Miao ", - "Zhi ", - "Yin ", - "Mi ", - "Ben ", - "Yuan ", - "Wen ", - "Re ", - "Fei ", - "Qing ", - "Yuan ", - "Ke ", - "Ji ", - "She ", - "Yuan ", - "Shibui ", - "Lu ", - "Zi ", - "Du ", - "[?] ", - "Jian ", - "Min ", - "Pi ", - "Tani ", - "Yu ", - "Yuan ", - "Shen ", - "Shen ", - "Rou ", - "Huan ", - "Zhu ", - "Jian ", - "Nuan ", - "Yu ", - "Qiu ", - "Ting ", - "Qu ", - "Du ", - "Feng ", - "Zha ", - "Bo ", - "Wo ", - "Wo ", - "Di ", - "Wei ", - "Wen ", - "Ru ", - "Xie ", - "Ce ", - "Wei ", - "Ge ", - "Gang ", - "Yan ", - "Hong ", - "Xuan ", - "Mi ", - "Ke ", - "Mao ", - "Ying ", - "Yan ", - "You ", - "Hong ", - "Miao ", - "Xing ", - "Mei ", - "Zai ", - "Hun ", - "Nai ", - "Kui ", - "Shi ", - "E ", - "Pai ", - "Mei ", - "Lian ", - "Qi ", - "Qi ", - "Mei ", - "Tian ", - "Cou ", - "Wei ", - "Can ", - "Tuan ", - "Mian ", - "Hui ", - "Mo ", - "Xu ", - "Ji ", - "Pen ", - "Jian ", - "Jian ", - "Hu ", - "Feng ", - "Xiang ", - "Yi ", - "Yin ", - "Zhan ", - "Shi ", - "Jie ", - "Cheng ", - "Huang ", - "Tan ", - "Yu ", - "Bi ", - "Min ", - "Shi ", - "Tu ", - "Sheng ", - "Yong ", - "Qu ", - "Zhong ", - "Suei ", - "Jiu ", - "Jiao ", - "Qiou ", - "Yin ", - "Tang ", - "Long ", - "Huo ", - "Yuan ", - "Nan ", - "Ban ", - "You ", - "Quan ", - "Chui ", - "Liang ", - "Chan ", - "Yan ", - "Chun ", - "Nie ", - "Zi ", - "Wan ", - "Shi ", - "Man ", - "Ying ", - "Ratsu ", - "Kui ", - "[?] ", - "Jian ", - "Xu ", - "Lu ", - "Gui ", - "Gai ", - "[?] ", - "[?] ", - "Po ", - "Jin ", - "Gui ", - "Tang ", - "Yuan ", - "Suo ", - "Yuan ", - "Lian ", - "Yao ", - "Meng ", - "Zhun ", - "Sheng ", - "Ke ", - "Tai ", - "Da ", - "Wa ", - "Liu ", - "Gou ", - "Sao ", - "Ming ", - "Zha ", - "Shi ", - "Yi ", - "Lun ", - "Ma ", - "Pu ", - "Wei ", - "Li ", - "Cai ", - "Wu ", - "Xi ", - "Wen ", - "Qiang ", - "Ze ", - "Shi ", - "Su ", - "Yi ", - "Zhen ", - "Sou ", - "Yun ", - "Xiu ", - "Yin ", - "Rong ", - "Hun ", - "Su ", - "Su ", - "Ni ", - "Ta ", - "Shi ", - "Ru ", - "Wei ", - "Pan ", - "Chu ", - "Chu ", - "Pang ", - "Weng ", - "Cang ", - "Mie ", - "He ", - "Dian ", - "Hao ", - "Huang ", - "Xi ", - "Zi ", - "Di ", - "Zhi ", - "Ying ", - "Fu ", - "Jie ", - "Hua ", - "Ge ", - "Zi ", - "Tao ", - "Teng ", - "Sui ", - "Bi ", - "Jiao ", - "Hui ", - "Gun ", - "Yin ", - "Gao ", - "Long ", - "Zhi ", - "Yan ", - "She ", - "Man ", - "Ying ", - "Chun ", - "Lu ", - "Lan ", - "Luan ", - "[?] ", - "Bin ", - "Tan ", - "Yu ", - "Sou ", - "Hu ", - "Bi ", - "Biao ", - "Zhi ", - "Jiang ", - "Kou ", - "Shen ", - "Shang ", - "Di ", - "Mi ", - "Ao ", - "Lu ", - "Hu ", - "Hu ", - "You ", - "Chan ", - "Fan ", - "Yong ", - "Gun ", - "Man ", - "Qing ", - "Yu ", - "Piao ", - "Ji ", - "Ya ", - "Jiao ", - "Qi ", - "Xi ", - "Ji ", - "Lu ", - "Lu ", - "Long ", - "Jin ", - "Guo ", - "Cong ", - "Lou ", - "Zhi ", - "Gai ", - "Qiang ", - "Li ", - "Yan ", - "Cao ", - "Jiao ", - "Cong ", - "Qun ", - "Tuan ", - "Ou ", - "Teng ", - "Ye ", - "Xi ", - "Mi ", - "Tang ", - "Mo ", - "Shang ", - "Han ", - "Lian ", - "Lan ", - "Wa ", - "Li ", - "Qian ", - "Feng ", - "Xuan ", - "Yi ", - "Man ", - "Zi ", - "Mang ", - "Kang ", - "Lei ", - "Peng ", - "Shu ", - "Zhang ", - "Zhang ", - "Chong ", - "Xu ", - "Huan ", - "Kuo ", - "Jian ", - "Yan ", - "Chuang ", - "Liao ", - "Cui ", - "Ti ", - "Yang ", - "Jiang ", - "Cong ", - "Ying ", - "Hong ", - "Xun ", - "Shu ", - "Guan ", - "Ying ", - "Xiao ", - "[?] ", - "[?] ", - "Xu ", - "Lian ", - "Zhi ", - "Wei ", - "Pi ", - "Jue ", - "Jiao ", - "Po ", - "Dang ", - "Hui ", - "Jie ", - "Wu ", - "Pa ", - "Ji ", - "Pan ", - "Gui ", - "Xiao ", - "Qian ", - "Qian ", - "Xi ", - "Lu ", - "Xi ", - "Xuan ", - "Dun ", - "Huang ", - "Min ", - "Run ", - "Su ", - "Liao ", - "Zhen ", - "Zhong ", - "Yi ", - "Di ", - "Wan ", - "Dan ", - "Tan ", - "Chao ", - "Xun ", - "Kui ", - "Yie ", - "Shao ", - "Tu ", - "Zhu ", - "San ", - "Hei ", - "Bi ", - "Shan ", - "Chan ", - "Chan ", - "Shu ", - "Tong ", - "Pu ", - "Lin ", - "Wei ", - "Se ", - "Se ", - "Cheng ", - "Jiong ", - "Cheng ", - "Hua ", - "Jiao ", - "Lao ", - "Che ", - "Gan ", - "Cun ", - "Heng ", - "Si ", - "Shu ", - "Peng ", - "Han ", - "Yun ", - "Liu ", - "Hong ", - "Fu ", - "Hao ", - "He ", - "Xian ", - "Jian ", - "Shan ", - "Xi ", - "Oki ", - "[?] ", - "Lan ", - "[?] ", - "Yu ", - "Lin ", - "Min ", - "Zao ", - "Dang ", - "Wan ", - "Ze ", - "Xie ", - "Yu ", - "Li ", - "Shi ", - "Xue ", - "Ling ", - "Man ", - "Zi ", - "Yong ", - "Kuai ", - "Can ", - "Lian ", - "Dian ", - "Ye ", - "Ao ", - "Huan ", - "Zhen ", - "Chan ", - "Man ", - "Dan ", - "Dan ", - "Yi ", - "Sui ", - "Pi ", - "Ju ", - "Ta ", - "Qin ", - "Ji ", - "Zhuo ", - "Lian ", - "Nong ", - "Guo ", - "Jin ", - "Fen ", - "Se ", - "Ji ", - "Sui ", - "Hui ", - "Chu ", - "Ta ", - "Song ", - "Ding ", - "[?] ", - "Zhu ", - "Lai ", - "Bin ", - "Lian ", - "Mi ", - "Shi ", - "Shu ", - "Mi ", - "Ning ", - "Ying ", - "Ying ", - "Meng ", - "Jin ", - "Qi ", - "Pi ", - "Ji ", - "Hao ", - "Ru ", - "Zui ", - "Wo ", - "Tao ", - "Yin ", - "Yin ", - "Dui ", - "Ci ", - "Huo ", - "Jing ", - "Lan ", - "Jun ", - "Ai ", - "Pu ", - "Zhuo ", - "Wei ", - "Bin ", - "Gu ", - "Qian ", - "Xing ", - "Hama ", - "Kuo ", - "Fei ", - "[?] ", - "Boku ", - "Jian ", - "Wei ", - "Luo ", - "Zan ", - "Lu ", - "Li ", - "You ", - "Yang ", - "Lu ", - "Si ", - "Jie ", - "Ying ", - "Du ", - "Wang ", - "Hui ", - "Xie ", - "Pan ", - "Shen ", - "Biao ", - "Chan ", - "Mo ", - "Liu ", - "Jian ", - "Pu ", - "Se ", - "Cheng ", - "Gu ", - "Bin ", - "Huo ", - "Xian ", - "Lu ", - "Qin ", - "Han ", - "Ying ", - "Yong ", - "Li ", - "Jing ", - "Xiao ", - "Ying ", - "Sui ", - "Wei ", - "Xie ", - "Huai ", - "Hao ", - "Zhu ", - "Long ", - "Lai ", - "Dui ", - "Fan ", - "Hu ", - "Lai ", - "[?] ", - "[?] ", - "Ying ", - "Mi ", - "Ji ", - "Lian ", - "Jian ", - "Ying ", - "Fen ", - "Lin ", - "Yi ", - "Jian ", - "Yue ", - "Chan ", - "Dai ", - "Rang ", - "Jian ", - "Lan ", - "Fan ", - "Shuang ", - "Yuan ", - "Zhuo ", - "Feng ", - "She ", - "Lei ", - "Lan ", - "Cong ", - "Qu ", - "Yong ", - "Qian ", - "Fa ", - "Guan ", - "Que ", - "Yan ", - "Hao ", - "Hyeng ", - "Sa ", - "Zan ", - "Luan ", - "Yan ", - "Li ", - "Mi ", - "Shan ", - "Tan ", - "Dang ", - "Jiao ", - "Chan ", - "[?] ", - "Hao ", - "Ba ", - "Zhu ", - "Lan ", - "Lan ", - "Nang ", - "Wan ", - "Luan ", - "Xun ", - "Xian ", - "Yan ", - "Gan ", - "Yan ", - "Yu ", - "Huo ", - "Si ", - "Mie ", - "Guang ", - "Deng ", - "Hui ", - "Xiao ", - "Xiao ", - "Hu ", - "Hong ", - "Ling ", - "Zao ", - "Zhuan ", - "Jiu ", - "Zha ", - "Xie ", - "Chi ", - "Zhuo ", - "Zai ", - "Zai ", - "Can ", - "Yang ", - "Qi ", - "Zhong ", - "Fen ", - "Niu ", - "Jiong ", - "Wen ", - "Po ", - "Yi ", - "Lu ", - "Chui ", - "Pi ", - "Kai ", - "Pan ", - "Yan ", - "Kai ", - "Pang ", - "Mu ", - "Chao ", - "Liao ", - "Gui ", - "Kang ", - "Tun ", - "Guang ", - "Xin ", - "Zhi ", - "Guang ", - "Guang ", - "Wei ", - "Qiang ", - "[?] ", - "Da ", - "Xia ", - "Zheng ", - "Zhu ", - "Ke ", - "Zhao ", - "Fu ", - "Ba ", - "Duo ", - "Duo ", - "Ling ", - "Zhuo ", - "Xuan ", - "Ju ", - "Tan ", - "Pao ", - "Jiong ", - "Pao ", - "Tai ", - "Tai ", - "Bing ", - "Yang ", - "Tong ", - "Han ", - "Zhu ", - "Zha ", - "Dian ", - "Wei ", - "Shi ", - "Lian ", - "Chi ", - "Huang ", - "[?] ", - "Hu ", - "Shuo ", - "Lan ", - "Jing ", - "Jiao ", - "Xu ", - "Xing ", - "Quan ", - "Lie ", - "Huan ", - "Yang ", - "Xiao ", - "Xiu ", - "Xian ", - "Yin ", - "Wu ", - "Zhou ", - "Yao ", - "Shi ", - "Wei ", - "Tong ", - "Xue ", - "Zai ", - "Kai ", - "Hong ", - "Luo ", - "Xia ", - "Zhu ", - "Xuan ", - "Zheng ", - "Po ", - "Yan ", - "Hui ", - "Guang ", - "Zhe ", - "Hui ", - "Kao ", - "[?] ", - "Fan ", - "Shao ", - "Ye ", - "Hui ", - "[?] ", - "Tang ", - "Jin ", - "Re ", - "[?] ", - "Xi ", - "Fu ", - "Jiong ", - "Che ", - "Pu ", - "Jing ", - "Zhuo ", - "Ting ", - "Wan ", - "Hai ", - "Peng ", - "Lang ", - "Shan ", - "Hu ", - "Feng ", - "Chi ", - "Rong ", - "Hu ", - "Xi ", - "Shu ", - "He ", - "Xun ", - "Ku ", - "Jue ", - "Xiao ", - "Xi ", - "Yan ", - "Han ", - "Zhuang ", - "Jun ", - "Di ", - "Xie ", - "Ji ", - "Wu ", - "[?] ", - "[?] ", - "Han ", - "Yan ", - "Huan ", - "Men ", - "Ju ", - "Chou ", - "Bei ", - "Fen ", - "Lin ", - "Kun ", - "Hun ", - "Tun ", - "Xi ", - "Cui ", - "Wu ", - "Hong ", - "Ju ", - "Fu ", - "Wo ", - "Jiao ", - "Cong ", - "Feng ", - "Ping ", - "Qiong ", - "Ruo ", - "Xi ", - "Qiong ", - "Xin ", - "Zhuo ", - "Yan ", - "Yan ", - "Yi ", - "Jue ", - "Yu ", - "Gang ", - "Ran ", - "Pi ", - "Gu ", - "[?] ", - "Sheng ", - "Chang ", - "Shao ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "Chen ", - "He ", - "Kui ", - "Zhong ", - "Duan ", - "Xia ", - "Hui ", - "Feng ", - "Lian ", - "Xuan ", - "Xing ", - "Huang ", - "Jiao ", - "Jian ", - "Bi ", - "Ying ", - "Zhu ", - "Wei ", - "Tuan ", - "Tian ", - "Xi ", - "Nuan ", - "Nuan ", - "Chan ", - "Yan ", - "Jiong ", - "Jiong ", - "Yu ", - "Mei ", - "Sha ", - "Wei ", - "Ye ", - "Xin ", - "Qiong ", - "Rou ", - "Mei ", - "Huan ", - "Xu ", - "Zhao ", - "Wei ", - "Fan ", - "Qiu ", - "Sui ", - "Yang ", - "Lie ", - "Zhu ", - "Jie ", - "Gao ", - "Gua ", - "Bao ", - "Hu ", - "Yun ", - "Xia ", - "[?] ", - "[?] ", - "Bian ", - "Gou ", - "Tui ", - "Tang ", - "Chao ", - "Shan ", - "N ", - "Bo ", - "Huang ", - "Xie ", - "Xi ", - "Wu ", - "Xi ", - "Yun ", - "He ", - "He ", - "Xi ", - "Yun ", - "Xiong ", - "Nai ", - "Shan ", - "Qiong ", - "Yao ", - "Xun ", - "Mi ", - "Lian ", - "Ying ", - "Wen ", - "Rong ", - "Oozutsu ", - "[?] ", - "Qiang ", - "Liu ", - "Xi ", - "Bi ", - "Biao ", - "Zong ", - "Lu ", - "Jian ", - "Shou ", - "Yi ", - "Lou ", - "Feng ", - "Sui ", - "Yi ", - "Tong ", - "Jue ", - "Zong ", - "Yun ", - "Hu ", - "Yi ", - "Zhi ", - "Ao ", - "Wei ", - "Liao ", - "Han ", - "Ou ", - "Re ", - "Jiong ", - "Man ", - "[?] ", - "Shang ", - "Cuan ", - "Zeng ", - "Jian ", - "Xi ", - "Xi ", - "Xi ", - "Yi ", - "Xiao ", - "Chi ", - "Huang ", - "Chan ", - "Ye ", - "Qian ", - "Ran ", - "Yan ", - "Xian ", - "Qiao ", - "Zun ", - "Deng ", - "Dun ", - "Shen ", - "Jiao ", - "Fen ", - "Si ", - "Liao ", - "Yu ", - "Lin ", - "Tong ", - "Shao ", - "Fen ", - "Fan ", - "Yan ", - "Xun ", - "Lan ", - "Mei ", - "Tang ", - "Yi ", - "Jing ", - "Men ", - "[?] ", - "[?] ", - "Ying ", - "Yu ", - "Yi ", - "Xue ", - "Lan ", - "Tai ", - "Zao ", - "Can ", - "Sui ", - "Xi ", - "Que ", - "Cong ", - "Lian ", - "Hui ", - "Zhu ", - "Xie ", - "Ling ", - "Wei ", - "Yi ", - "Xie ", - "Zhao ", - "Hui ", - "Tatsu ", - "Nung ", - "Lan ", - "Ru ", - "Xian ", - "Kao ", - "Xun ", - "Jin ", - "Chou ", - "Chou ", - "Yao ", - "He ", - "Lan ", - "Biao ", - "Rong ", - "Li ", - "Mo ", - "Bao ", - "Ruo ", - "Lu ", - "La ", - "Ao ", - "Xun ", - "Kuang ", - "Shuo ", - "[?] ", - "Li ", - "Lu ", - "Jue ", - "Liao ", - "Yan ", - "Xi ", - "Xie ", - "Long ", - "Ye ", - "[?] ", - "Rang ", - "Yue ", - "Lan ", - "Cong ", - "Jue ", - "Tong ", - "Guan ", - "[?] ", - "Che ", - "Mi ", - "Tang ", - "Lan ", - "Zhu ", - "[?] ", - "Ling ", - "Cuan ", - "Yu ", - "Zhua ", - "Tsumekanmuri ", - "Pa ", - "Zheng ", - "Pao ", - "Cheng ", - "Yuan ", - "Ai ", - "Wei ", - "[?] ", - "Jue ", - "Jue ", - "Fu ", - "Ye ", - "Ba ", - "Die ", - "Ye ", - "Yao ", - "Zu ", - "Shuang ", - "Er ", - "Qiang ", - "Chuang ", - "Ge ", - "Zang ", - "Die ", - "Qiang ", - "Yong ", - "Qiang ", - "Pian ", - "Ban ", - "Pan ", - "Shao ", - "Jian ", - "Pai ", - "Du ", - "Chuang ", - "Tou ", - "Zha ", - "Bian ", - "Die ", - "Bang ", - "Bo ", - "Chuang ", - "You ", - "[?] ", - "Du ", - "Ya ", - "Cheng ", - "Niu ", - "Ushihen ", - "Pin ", - "Jiu ", - "Mou ", - "Tuo ", - "Mu ", - "Lao ", - "Ren ", - "Mang ", - "Fang ", - "Mao ", - "Mu ", - "Gang ", - "Wu ", - "Yan ", - "Ge ", - "Bei ", - "Si ", - "Jian ", - "Gu ", - "You ", - "Ge ", - "Sheng ", - "Mu ", - "Di ", - "Qian ", - "Quan ", - "Quan ", - "Zi ", - "Te ", - "Xi ", - "Mang ", - "Keng ", - "Qian ", - "Wu ", - "Gu ", - "Xi ", - "Li ", - "Li ", - "Pou ", - "Ji ", - "Gang ", - "Zhi ", - "Ben ", - "Quan ", - "Run ", - "Du ", - "Ju ", - "Jia ", - "Jian ", - "Feng ", - "Pian ", - "Ke ", - "Ju ", - "Kao ", - "Chu ", - "Xi ", - "Bei ", - "Luo ", - "Jie ", - "Ma ", - "San ", - "Wei ", - "Li ", - "Dun ", - "Tong ", - "[?] ", - "Jiang ", - "Ikenie ", - "Li ", - "Du ", - "Lie ", - "Pi ", - "Piao ", - "Bao ", - "Xi ", - "Chou ", - "Wei ", - "Kui ", - "Chou ", - "Quan ", - "Fan ", - "Ba ", - "Fan ", - "Qiu ", - "Ji ", - "Cai ", - "Chuo ", - "An ", - "Jie ", - "Zhuang ", - "Guang ", - "Ma ", - "You ", - "Kang ", - "Bo ", - "Hou ", - "Ya ", - "Yin ", - "Huan ", - "Zhuang ", - "Yun ", - "Kuang ", - "Niu ", - "Di ", - "Qing ", - "Zhong ", - "Mu ", - "Bei ", - "Pi ", - "Ju ", - "Ni ", - "Sheng ", - "Pao ", - "Xia ", - "Tuo ", - "Hu ", - "Ling ", - "Fei ", - "Pi ", - "Ni ", - "Ao ", - "You ", - "Gou ", - "Yue ", - "Ju ", - "Dan ", - "Po ", - "Gu ", - "Xian ", - "Ning ", - "Huan ", - "Hen ", - "Jiao ", - "He ", - "Zhao ", - "Ji ", - "Xun ", - "Shan ", - "Ta ", - "Rong ", - "Shou ", - "Tong ", - "Lao ", - "Du ", - "Xia ", - "Shi ", - "Hua ", - "Zheng ", - "Yu ", - "Sun ", - "Yu ", - "Bi ", - "Mang ", - "Xi ", - "Juan ", - "Li ", - "Xia ", - "Yin ", - "Suan ", - "Lang ", - "Bei ", - "Zhi ", - "Yan ", - "Sha ", - "Li ", - "Han ", - "Xian ", - "Jing ", - "Pai ", - "Fei ", - "Yao ", - "Ba ", - "Qi ", - "Ni ", - "Biao ", - "Yin ", - "Lai ", - "Xi ", - "Jian ", - "Qiang ", - "Kun ", - "Yan ", - "Guo ", - "Zong ", - "Mi ", - "Chang ", - "Yi ", - "Zhi ", - "Zheng ", - "Ya ", - "Meng ", - "Cai ", - "Cu ", - "She ", - "Kari ", - "Cen ", - "Luo ", - "Hu ", - "Zong ", - "Ji ", - "Wei ", - "Feng ", - "Wo ", - "Yuan ", - "Xing ", - "Zhu ", - "Mao ", - "Wei ", - "Yuan ", - "Xian ", - "Tuan ", - "Ya ", - "Nao ", - "Xie ", - "Jia ", - "Hou ", - "Bian ", - "You ", - "You ", - "Mei ", - "Zha ", - "Yao ", - "Sun ", - "Bo ", - "Ming ", - "Hua ", - "Yuan ", - "Sou ", - "Ma ", - "Yuan ", - "Dai ", - "Yu ", - "Shi ", - "Hao ", - "[?] ", - "Yi ", - "Zhen ", - "Chuang ", - "Hao ", - "Man ", - "Jing ", - "Jiang ", - "Mu ", - "Zhang ", - "Chan ", - "Ao ", - "Ao ", - "Hao ", - "Cui ", - "Fen ", - "Jue ", - "Bi ", - "Bi ", - "Huang ", - "Pu ", - "Lin ", - "Yu ", - "Tong ", - "Yao ", - "Liao ", - "Shuo ", - "Xiao ", - "Swu ", - "Ton ", - "Xi ", - "Ge ", - "Juan ", - "Du ", - "Hui ", - "Kuai ", - "Xian ", - "Xie ", - "Ta ", - "Xian ", - "Xun ", - "Ning ", - "Pin ", - "Huo ", - "Nou ", - "Meng ", - "Lie ", - "Nao ", - "Guang ", - "Shou ", - "Lu ", - "Ta ", - "Xian ", - "Mi ", - "Rang ", - "Huan ", - "Nao ", - "Luo ", - "Xian ", - "Qi ", - "Jue ", - "Xuan ", - "Miao ", - "Zi ", - "Lu ", - "Lu ", - "Yu ", - "Su ", - "Wang ", - "Qiu ", - "Ga ", - "Ding ", - "Le ", - "Ba ", - "Ji ", - "Hong ", - "Di ", - "Quan ", - "Gan ", - "Jiu ", - "Yu ", - "Ji ", - "Yu ", - "Yang ", - "Ma ", - "Gong ", - "Wu ", - "Fu ", - "Wen ", - "Jie ", - "Ya ", - "Fen ", - "Bian ", - "Beng ", - "Yue ", - "Jue ", - "Yun ", - "Jue ", - "Wan ", - "Jian ", - "Mei ", - "Dan ", - "Pi ", - "Wei ", - "Huan ", - "Xian ", - "Qiang ", - "Ling ", - "Dai ", - "Yi ", - "An ", - "Ping ", - "Dian ", - "Fu ", - "Xuan ", - "Xi ", - "Bo ", - "Ci ", - "Gou ", - "Jia ", - "Shao ", - "Po ", - "Ci ", - "Ke ", - "Ran ", - "Sheng ", - "Shen ", - "Yi ", - "Zu ", - "Jia ", - "Min ", - "Shan ", - "Liu ", - "Bi ", - "Zhen ", - "Zhen ", - "Jue ", - "Fa ", - "Long ", - "Jin ", - "Jiao ", - "Jian ", - "Li ", - "Guang ", - "Xian ", - "Zhou ", - "Gong ", - "Yan ", - "Xiu ", - "Yang ", - "Xu ", - "Luo ", - "Su ", - "Zhu ", - "Qin ", - "Ken ", - "Xun ", - "Bao ", - "Er ", - "Xiang ", - "Yao ", - "Xia ", - "Heng ", - "Gui ", - "Chong ", - "Xu ", - "Ban ", - "Pei ", - "[?] ", - "Dang ", - "Ei ", - "Hun ", - "Wen ", - "E ", - "Cheng ", - "Ti ", - "Wu ", - "Wu ", - "Cheng ", - "Jun ", - "Mei ", - "Bei ", - "Ting ", - "Xian ", - "Chuo ", - "Han ", - "Xuan ", - "Yan ", - "Qiu ", - "Quan ", - "Lang ", - "Li ", - "Xiu ", - "Fu ", - "Liu ", - "Ye ", - "Xi ", - "Ling ", - "Li ", - "Jin ", - "Lian ", - "Suo ", - "Chiisai ", - "[?] ", - "Wan ", - "Dian ", - "Pin ", - "Zhan ", - "Cui ", - "Min ", - "Yu ", - "Ju ", - "Chen ", - "Lai ", - "Wen ", - "Sheng ", - "Wei ", - "Dian ", - "Chu ", - "Zhuo ", - "Pei ", - "Cheng ", - "Hu ", - "Qi ", - "E ", - "Kun ", - "Chang ", - "Qi ", - "Beng ", - "Wan ", - "Lu ", - "Cong ", - "Guan ", - "Yan ", - "Diao ", - "Bei ", - "Lin ", - "Qin ", - "Pi ", - "Pa ", - "Que ", - "Zhuo ", - "Qin ", - "Fa ", - "[?] ", - "Qiong ", - "Du ", - "Jie ", - "Hun ", - "Yu ", - "Mao ", - "Mei ", - "Chun ", - "Xuan ", - "Ti ", - "Xing ", - "Dai ", - "Rou ", - "Min ", - "Zhen ", - "Wei ", - "Ruan ", - "Huan ", - "Jie ", - "Chuan ", - "Jian ", - "Zhuan ", - "Yang ", - "Lian ", - "Quan ", - "Xia ", - "Duan ", - "Yuan ", - "Ye ", - "Nao ", - "Hu ", - "Ying ", - "Yu ", - "Huang ", - "Rui ", - "Se ", - "Liu ", - "Shi ", - "Rong ", - "Suo ", - "Yao ", - "Wen ", - "Wu ", - "Jin ", - "Jin ", - "Ying ", - "Ma ", - "Tao ", - "Liu ", - "Tang ", - "Li ", - "Lang ", - "Gui ", - "Zhen ", - "Qiang ", - "Cuo ", - "Jue ", - "Zhao ", - "Yao ", - "Ai ", - "Bin ", - "Tu ", - "Chang ", - "Kun ", - "Zhuan ", - "Cong ", - "Jin ", - "Yi ", - "Cui ", - "Cong ", - "Qi ", - "Li ", - "Ying ", - "Suo ", - "Qiu ", - "Xuan ", - "Ao ", - "Lian ", - "Man ", - "Zhang ", - "Yin ", - "[?] ", - "Ying ", - "Zhi ", - "Lu ", - "Wu ", - "Deng ", - "Xiou ", - "Zeng ", - "Xun ", - "Qu ", - "Dang ", - "Lin ", - "Liao ", - "Qiong ", - "Su ", - "Huang ", - "Gui ", - "Pu ", - "Jing ", - "Fan ", - "Jin ", - "Liu ", - "Ji ", - "[?] ", - "Jing ", - "Ai ", - "Bi ", - "Can ", - "Qu ", - "Zao ", - "Dang ", - "Jiao ", - "Gun ", - "Tan ", - "Hui ", - "Huan ", - "Se ", - "Sui ", - "Tian ", - "[?] ", - "Yu ", - "Jin ", - "Lu ", - "Bin ", - "Shou ", - "Wen ", - "Zui ", - "Lan ", - "Xi ", - "Ji ", - "Xuan ", - "Ruan ", - "Huo ", - "Gai ", - "Lei ", - "Du ", - "Li ", - "Zhi ", - "Rou ", - "Li ", - "Zan ", - "Qiong ", - "Zhe ", - "Gui ", - "Sui ", - "La ", - "Long ", - "Lu ", - "Li ", - "Zan ", - "Lan ", - "Ying ", - "Mi ", - "Xiang ", - "Xi ", - "Guan ", - "Dao ", - "Zan ", - "Huan ", - "Gua ", - "Bo ", - "Die ", - "Bao ", - "Hu ", - "Zhi ", - "Piao ", - "Ban ", - "Rang ", - "Li ", - "Wa ", - "Dekaguramu ", - "Jiang ", - "Qian ", - "Fan ", - "Pen ", - "Fang ", - "Dan ", - "Weng ", - "Ou ", - "Deshiguramu ", - "Miriguramu ", - "Thon ", - "Hu ", - "Ling ", - "Yi ", - "Ping ", - "Ci ", - "Hekutogura ", - "Juan ", - "Chang ", - "Chi ", - "Sarake ", - "Dang ", - "Meng ", - "Pou ", - "Zhui ", - "Ping ", - "Bian ", - "Zhou ", - "Zhen ", - "Senchigura ", - "Ci ", - "Ying ", - "Qi ", - "Xian ", - "Lou ", - "Di ", - "Ou ", - "Meng ", - "Zhuan ", - "Peng ", - "Lin ", - "Zeng ", - "Wu ", - "Pi ", - "Dan ", - "Weng ", - "Ying ", - "Yan ", - "Gan ", - "Dai ", - "Shen ", - "Tian ", - "Tian ", - "Han ", - "Chang ", - "Sheng ", - "Qing ", - "Sheng ", - "Chan ", - "Chan ", - "Rui ", - "Sheng ", - "Su ", - "Sen ", - "Yong ", - "Shuai ", - "Lu ", - "Fu ", - "Yong ", - "Beng ", - "Feng ", - "Ning ", - "Tian ", - "You ", - "Jia ", - "Shen ", - "Zha ", - "Dian ", - "Fu ", - "Nan ", - "Dian ", - "Ping ", - "Ting ", - "Hua ", - "Ting ", - "Quan ", - "Zi ", - "Meng ", - "Bi ", - "Qi ", - "Liu ", - "Xun ", - "Liu ", - "Chang ", - "Mu ", - "Yun ", - "Fan ", - "Fu ", - "Geng ", - "Tian ", - "Jie ", - "Jie ", - "Quan ", - "Wei ", - "Fu ", - "Tian ", - "Mu ", - "Tap ", - "Pan ", - "Jiang ", - "Wa ", - "Da ", - "Nan ", - "Liu ", - "Ben ", - "Zhen ", - "Chu ", - "Mu ", - "Mu ", - "Ce ", - "Cen ", - "Gai ", - "Bi ", - "Da ", - "Zhi ", - "Lue ", - "Qi ", - "Lue ", - "Pan ", - "Kesa ", - "Fan ", - "Hua ", - "Yu ", - "Yu ", - "Mu ", - "Jun ", - "Yi ", - "Liu ", - "Yu ", - "Die ", - "Chou ", - "Hua ", - "Dang ", - "Chuo ", - "Ji ", - "Wan ", - "Jiang ", - "Sheng ", - "Chang ", - "Tuan ", - "Lei ", - "Ji ", - "Cha ", - "Liu ", - "Tatamu ", - "Tuan ", - "Lin ", - "Jiang ", - "Jiang ", - "Chou ", - "Bo ", - "Die ", - "Die ", - "Pi ", - "Nie ", - "Dan ", - "Shu ", - "Shu ", - "Zhi ", - "Yi ", - "Chuang ", - "Nai ", - "Ding ", - "Bi ", - "Jie ", - "Liao ", - "Gong ", - "Ge ", - "Jiu ", - "Zhou ", - "Xia ", - "Shan ", - "Xu ", - "Nue ", - "Li ", - "Yang ", - "Chen ", - "You ", - "Ba ", - "Jie ", - "Jue ", - "Zhi ", - "Xia ", - "Cui ", - "Bi ", - "Yi ", - "Li ", - "Zong ", - "Chuang ", - "Feng ", - "Zhu ", - "Pao ", - "Pi ", - "Gan ", - "Ke ", - "Ci ", - "Xie ", - "Qi ", - "Dan ", - "Zhen ", - "Fa ", - "Zhi ", - "Teng ", - "Ju ", - "Ji ", - "Fei ", - "Qu ", - "Dian ", - "Jia ", - "Xian ", - "Cha ", - "Bing ", - "Ni ", - "Zheng ", - "Yong ", - "Jing ", - "Quan ", - "Chong ", - "Tong ", - "Yi ", - "Kai ", - "Wei ", - "Hui ", - "Duo ", - "Yang ", - "Chi ", - "Zhi ", - "Hen ", - "Ya ", - "Mei ", - "Dou ", - "Jing ", - "Xiao ", - "Tong ", - "Tu ", - "Mang ", - "Pi ", - "Xiao ", - "Suan ", - "Pu ", - "Li ", - "Zhi ", - "Cuo ", - "Duo ", - "Wu ", - "Sha ", - "Lao ", - "Shou ", - "Huan ", - "Xian ", - "Yi ", - "Peng ", - "Zhang ", - "Guan ", - "Tan ", - "Fei ", - "Ma ", - "Lin ", - "Chi ", - "Ji ", - "Dian ", - "An ", - "Chi ", - "Bi ", - "Bei ", - "Min ", - "Gu ", - "Dui ", - "E ", - "Wei ", - "Yu ", - "Cui ", - "Ya ", - "Zhu ", - "Cu ", - "Dan ", - "Shen ", - "Zhung ", - "Ji ", - "Yu ", - "Hou ", - "Feng ", - "La ", - "Yang ", - "Shen ", - "Tu ", - "Yu ", - "Gua ", - "Wen ", - "Huan ", - "Ku ", - "Jia ", - "Yin ", - "Yi ", - "Lu ", - "Sao ", - "Jue ", - "Chi ", - "Xi ", - "Guan ", - "Yi ", - "Wen ", - "Ji ", - "Chuang ", - "Ban ", - "Lei ", - "Liu ", - "Chai ", - "Shou ", - "Nue ", - "Dian ", - "Da ", - "Pie ", - "Tan ", - "Zhang ", - "Biao ", - "Shen ", - "Cu ", - "Luo ", - "Yi ", - "Zong ", - "Chou ", - "Zhang ", - "Zhai ", - "Sou ", - "Suo ", - "Que ", - "Diao ", - "Lou ", - "Lu ", - "Mo ", - "Jin ", - "Yin ", - "Ying ", - "Huang ", - "Fu ", - "Liao ", - "Long ", - "Qiao ", - "Liu ", - "Lao ", - "Xian ", - "Fei ", - "Dan ", - "Yin ", - "He ", - "Yan ", - "Ban ", - "Xian ", - "Guan ", - "Guai ", - "Nong ", - "Yu ", - "Wei ", - "Yi ", - "Yong ", - "Pi ", - "Lei ", - "Li ", - "Shu ", - "Dan ", - "Lin ", - "Dian ", - "Lin ", - "Lai ", - "Pie ", - "Ji ", - "Chi ", - "Yang ", - "Xian ", - "Jie ", - "Zheng ", - "[?] ", - "Li ", - "Huo ", - "Lai ", - "Shaku ", - "Dian ", - "Xian ", - "Ying ", - "Yin ", - "Qu ", - "Yong ", - "Tan ", - "Dian ", - "Luo ", - "Luan ", - "Luan ", - "Bo ", - "[?] ", - "Gui ", - "Po ", - "Fa ", - "Deng ", - "Fa ", - "Bai ", - "Bai ", - "Qie ", - "Bi ", - "Zao ", - "Zao ", - "Mao ", - "De ", - "Pa ", - "Jie ", - "Huang ", - "Gui ", - "Ci ", - "Ling ", - "Gao ", - "Mo ", - "Ji ", - "Jiao ", - "Peng ", - "Gao ", - "Ai ", - "E ", - "Hao ", - "Han ", - "Bi ", - "Wan ", - "Chou ", - "Qian ", - "Xi ", - "Ai ", - "Jiong ", - "Hao ", - "Huang ", - "Hao ", - "Ze ", - "Cui ", - "Hao ", - "Xiao ", - "Ye ", - "Po ", - "Hao ", - "Jiao ", - "Ai ", - "Xing ", - "Huang ", - "Li ", - "Piao ", - "He ", - "Jiao ", - "Pi ", - "Gan ", - "Pao ", - "Zhou ", - "Jun ", - "Qiu ", - "Cun ", - "Que ", - "Zha ", - "Gu ", - "Jun ", - "Jun ", - "Zhou ", - "Zha ", - "Gu ", - "Zhan ", - "Du ", - "Min ", - "Qi ", - "Ying ", - "Yu ", - "Bei ", - "Zhao ", - "Zhong ", - "Pen ", - "He ", - "Ying ", - "He ", - "Yi ", - "Bo ", - "Wan ", - "He ", - "Ang ", - "Zhan ", - "Yan ", - "Jian ", - "He ", - "Yu ", - "Kui ", - "Fan ", - "Gai ", - "Dao ", - "Pan ", - "Fu ", - "Qiu ", - "Sheng ", - "Dao ", - "Lu ", - "Zhan ", - "Meng ", - "Li ", - "Jin ", - "Xu ", - "Jian ", - "Pan ", - "Guan ", - "An ", - "Lu ", - "Shu ", - "Zhou ", - "Dang ", - "An ", - "Gu ", - "Li ", - "Mu ", - "Cheng ", - "Gan ", - "Xu ", - "Mang ", - "Mang ", - "Zhi ", - "Qi ", - "Ruan ", - "Tian ", - "Xiang ", - "Dun ", - "Xin ", - "Xi ", - "Pan ", - "Feng ", - "Dun ", - "Min ", - "Ming ", - "Sheng ", - "Shi ", - "Yun ", - "Mian ", - "Pan ", - "Fang ", - "Miao ", - "Dan ", - "Mei ", - "Mao ", - "Kan ", - "Xian ", - "Ou ", - "Shi ", - "Yang ", - "Zheng ", - "Yao ", - "Shen ", - "Huo ", - "Da ", - "Zhen ", - "Kuang ", - "Ju ", - "Shen ", - "Chi ", - "Sheng ", - "Mei ", - "Mo ", - "Zhu ", - "Zhen ", - "Zhen ", - "Mian ", - "Di ", - "Yuan ", - "Die ", - "Yi ", - "Zi ", - "Zi ", - "Chao ", - "Zha ", - "Xuan ", - "Bing ", - "Mi ", - "Long ", - "Sui ", - "Dong ", - "Mi ", - "Die ", - "Yi ", - "Er ", - "Ming ", - "Xuan ", - "Chi ", - "Kuang ", - "Juan ", - "Mou ", - "Zhen ", - "Tiao ", - "Yang ", - "Yan ", - "Mo ", - "Zhong ", - "Mai ", - "Zhao ", - "Zheng ", - "Mei ", - "Jun ", - "Shao ", - "Han ", - "Huan ", - "Di ", - "Cheng ", - "Cuo ", - "Juan ", - "E ", - "Wan ", - "Xian ", - "Xi ", - "Kun ", - "Lai ", - "Jian ", - "Shan ", - "Tian ", - "Hun ", - "Wan ", - "Ling ", - "Shi ", - "Qiong ", - "Lie ", - "Yai ", - "Jing ", - "Zheng ", - "Li ", - "Lai ", - "Sui ", - "Juan ", - "Shui ", - "Sui ", - "Du ", - "Bi ", - "Bi ", - "Mu ", - "Hun ", - "Ni ", - "Lu ", - "Yi ", - "Jie ", - "Cai ", - "Zhou ", - "Yu ", - "Hun ", - "Ma ", - "Xia ", - "Xing ", - "Xi ", - "Gun ", - "Cai ", - "Chun ", - "Jian ", - "Mei ", - "Du ", - "Hou ", - "Xuan ", - "Ti ", - "Kui ", - "Gao ", - "Rui ", - "Mou ", - "Xu ", - "Fa ", - "Wen ", - "Miao ", - "Chou ", - "Kui ", - "Mi ", - "Weng ", - "Kou ", - "Dang ", - "Chen ", - "Ke ", - "Sou ", - "Xia ", - "Qiong ", - "Mao ", - "Ming ", - "Man ", - "Shui ", - "Ze ", - "Zhang ", - "Yi ", - "Diao ", - "Ou ", - "Mo ", - "Shun ", - "Cong ", - "Lou ", - "Chi ", - "Man ", - "Piao ", - "Cheng ", - "Ji ", - "Meng ", - "[?] ", - "Run ", - "Pie ", - "Xi ", - "Qiao ", - "Pu ", - "Zhu ", - "Deng ", - "Shen ", - "Shun ", - "Liao ", - "Che ", - "Xian ", - "Kan ", - "Ye ", - "Xu ", - "Tong ", - "Mou ", - "Lin ", - "Kui ", - "Xian ", - "Ye ", - "Ai ", - "Hui ", - "Zhan ", - "Jian ", - "Gu ", - "Zhao ", - "Qu ", - "Wei ", - "Chou ", - "Sao ", - "Ning ", - "Xun ", - "Yao ", - "Huo ", - "Meng ", - "Mian ", - "Bin ", - "Mian ", - "Li ", - "Kuang ", - "Jue ", - "Xuan ", - "Mian ", - "Huo ", - "Lu ", - "Meng ", - "Long ", - "Guan ", - "Man ", - "Xi ", - "Chu ", - "Tang ", - "Kan ", - "Zhu ", - "Mao ", - "Jin ", - "Lin ", - "Yu ", - "Shuo ", - "Ce ", - "Jue ", - "Shi ", - "Yi ", - "Shen ", - "Zhi ", - "Hou ", - "Shen ", - "Ying ", - "Ju ", - "Zhou ", - "Jiao ", - "Cuo ", - "Duan ", - "Ai ", - "Jiao ", - "Zeng ", - "Huo ", - "Bai ", - "Shi ", - "Ding ", - "Qi ", - "Ji ", - "Zi ", - "Gan ", - "Wu ", - "Tuo ", - "Ku ", - "Qiang ", - "Xi ", - "Fan ", - "Kuang ", - "Dang ", - "Ma ", - "Sha ", - "Dan ", - "Jue ", - "Li ", - "Fu ", - "Min ", - "Nuo ", - "Huo ", - "Kang ", - "Zhi ", - "Qi ", - "Kan ", - "Jie ", - "Fen ", - "E ", - "Ya ", - "Pi ", - "Zhe ", - "Yan ", - "Sui ", - "Zhuan ", - "Che ", - "Dun ", - "Pan ", - "Yan ", - "[?] ", - "Feng ", - "Fa ", - "Mo ", - "Zha ", - "Qu ", - "Yu ", - "Luo ", - "Tuo ", - "Tuo ", - "Di ", - "Zhai ", - "Zhen ", - "Ai ", - "Fei ", - "Mu ", - "Zhu ", - "Li ", - "Bian ", - "Nu ", - "Ping ", - "Peng ", - "Ling ", - "Pao ", - "Le ", - "Po ", - "Bo ", - "Po ", - "Shen ", - "Za ", - "Nuo ", - "Li ", - "Long ", - "Tong ", - "[?] ", - "Li ", - "Aragane ", - "Chu ", - "Keng ", - "Quan ", - "Zhu ", - "Kuang ", - "Huo ", - "E ", - "Nao ", - "Jia ", - "Lu ", - "Wei ", - "Ai ", - "Luo ", - "Ken ", - "Xing ", - "Yan ", - "Tong ", - "Peng ", - "Xi ", - "[?] ", - "Hong ", - "Shuo ", - "Xia ", - "Qiao ", - "[?] ", - "Wei ", - "Qiao ", - "[?] ", - "Keng ", - "Xiao ", - "Que ", - "Chan ", - "Lang ", - "Hong ", - "Yu ", - "Xiao ", - "Xia ", - "Mang ", - "Long ", - "Iong ", - "Che ", - "Che ", - "E ", - "Liu ", - "Ying ", - "Mang ", - "Que ", - "Yan ", - "Sha ", - "Kun ", - "Yu ", - "[?] ", - "Kaki ", - "Lu ", - "Chen ", - "Jian ", - "Nue ", - "Song ", - "Zhuo ", - "Keng ", - "Peng ", - "Yan ", - "Zhui ", - "Kong ", - "Ceng ", - "Qi ", - "Zong ", - "Qing ", - "Lin ", - "Jun ", - "Bo ", - "Ding ", - "Min ", - "Diao ", - "Jian ", - "He ", - "Lu ", - "Ai ", - "Sui ", - "Que ", - "Ling ", - "Bei ", - "Yin ", - "Dui ", - "Wu ", - "Qi ", - "Lun ", - "Wan ", - "Dian ", - "Gang ", - "Pei ", - "Qi ", - "Chen ", - "Ruan ", - "Yan ", - "Die ", - "Ding ", - "Du ", - "Tuo ", - "Jie ", - "Ying ", - "Bian ", - "Ke ", - "Bi ", - "Wei ", - "Shuo ", - "Zhen ", - "Duan ", - "Xia ", - "Dang ", - "Ti ", - "Nao ", - "Peng ", - "Jian ", - "Di ", - "Tan ", - "Cha ", - "Seki ", - "Qi ", - "[?] ", - "Feng ", - "Xuan ", - "Que ", - "Que ", - "Ma ", - "Gong ", - "Nian ", - "Su ", - "E ", - "Ci ", - "Liu ", - "Si ", - "Tang ", - "Bang ", - "Hua ", - "Pi ", - "Wei ", - "Sang ", - "Lei ", - "Cuo ", - "Zhen ", - "Xia ", - "Qi ", - "Lian ", - "Pan ", - "Wei ", - "Yun ", - "Dui ", - "Zhe ", - "Ke ", - "La ", - "[?] ", - "Qing ", - "Gun ", - "Zhuan ", - "Chan ", - "Qi ", - "Ao ", - "Peng ", - "Lu ", - "Lu ", - "Kan ", - "Qiang ", - "Chen ", - "Yin ", - "Lei ", - "Biao ", - "Qi ", - "Mo ", - "Qi ", - "Cui ", - "Zong ", - "Qing ", - "Chuo ", - "[?] ", - "Ji ", - "Shan ", - "Lao ", - "Qu ", - "Zeng ", - "Deng ", - "Jian ", - "Xi ", - "Lin ", - "Ding ", - "Dian ", - "Huang ", - "Pan ", - "Za ", - "Qiao ", - "Di ", - "Li ", - "Tani ", - "Jiao ", - "[?] ", - "Zhang ", - "Qiao ", - "Dun ", - "Xian ", - "Yu ", - "Zhui ", - "He ", - "Huo ", - "Zhai ", - "Lei ", - "Ke ", - "Chu ", - "Ji ", - "Que ", - "Dang ", - "Yi ", - "Jiang ", - "Pi ", - "Pi ", - "Yu ", - "Pin ", - "Qi ", - "Ai ", - "Kai ", - "Jian ", - "Yu ", - "Ruan ", - "Meng ", - "Pao ", - "Ci ", - "[?] ", - "[?] ", - "Mie ", - "Ca ", - "Xian ", - "Kuang ", - "Lei ", - "Lei ", - "Zhi ", - "Li ", - "Li ", - "Fan ", - "Que ", - "Pao ", - "Ying ", - "Li ", - "Long ", - "Long ", - "Mo ", - "Bo ", - "Shuang ", - "Guan ", - "Lan ", - "Zan ", - "Yan ", - "Shi ", - "Shi ", - "Li ", - "Reng ", - "She ", - "Yue ", - "Si ", - "Qi ", - "Ta ", - "Ma ", - "Xie ", - "Xian ", - "Xian ", - "Zhi ", - "Qi ", - "Zhi ", - "Beng ", - "Dui ", - "Zhong ", - "[?] ", - "Yi ", - "Shi ", - "You ", - "Zhi ", - "Tiao ", - "Fu ", - "Fu ", - "Mi ", - "Zu ", - "Zhi ", - "Suan ", - "Mei ", - "Zuo ", - "Qu ", - "Hu ", - "Zhu ", - "Shen ", - "Sui ", - "Ci ", - "Chai ", - "Mi ", - "Lu ", - "Yu ", - "Xiang ", - "Wu ", - "Tiao ", - "Piao ", - "Zhu ", - "Gui ", - "Xia ", - "Zhi ", - "Ji ", - "Gao ", - "Zhen ", - "Gao ", - "Shui ", - "Jin ", - "Chen ", - "Gai ", - "Kun ", - "Di ", - "Dao ", - "Huo ", - "Tao ", - "Qi ", - "Gu ", - "Guan ", - "Zui ", - "Ling ", - "Lu ", - "Bing ", - "Jin ", - "Dao ", - "Zhi ", - "Lu ", - "Shan ", - "Bei ", - "Zhe ", - "Hui ", - "You ", - "Xi ", - "Yin ", - "Zi ", - "Huo ", - "Zhen ", - "Fu ", - "Yuan ", - "Wu ", - "Xian ", - "Yang ", - "Ti ", - "Yi ", - "Mei ", - "Si ", - "Di ", - "[?] ", - "Zhuo ", - "Zhen ", - "Yong ", - "Ji ", - "Gao ", - "Tang ", - "Si ", - "Ma ", - "Ta ", - "[?] ", - "Xuan ", - "Qi ", - "Yu ", - "Xi ", - "Ji ", - "Si ", - "Chan ", - "Tan ", - "Kuai ", - "Sui ", - "Li ", - "Nong ", - "Ni ", - "Dao ", - "Li ", - "Rang ", - "Yue ", - "Ti ", - "Zan ", - "Lei ", - "Rou ", - "Yu ", - "Yu ", - "Chi ", - "Xie ", - "Qin ", - "He ", - "Tu ", - "Xiu ", - "Si ", - "Ren ", - "Tu ", - "Zi ", - "Cha ", - "Gan ", - "Yi ", - "Xian ", - "Bing ", - "Nian ", - "Qiu ", - "Qiu ", - "Chong ", - "Fen ", - "Hao ", - "Yun ", - "Ke ", - "Miao ", - "Zhi ", - "Geng ", - "Bi ", - "Zhi ", - "Yu ", - "Mi ", - "Ku ", - "Ban ", - "Pi ", - "Ni ", - "Li ", - "You ", - "Zu ", - "Pi ", - "Ba ", - "Ling ", - "Mo ", - "Cheng ", - "Nian ", - "Qin ", - "Yang ", - "Zuo ", - "Zhi ", - "Zhi ", - "Shu ", - "Ju ", - "Zi ", - "Huo ", - "Ji ", - "Cheng ", - "Tong ", - "Zhi ", - "Huo ", - "He ", - "Yin ", - "Zi ", - "Zhi ", - "Jie ", - "Ren ", - "Du ", - "Yi ", - "Zhu ", - "Hui ", - "Nong ", - "Fu ", - "Xi ", - "Kao ", - "Lang ", - "Fu ", - "Ze ", - "Shui ", - "Lu ", - "Kun ", - "Gan ", - "Geng ", - "Ti ", - "Cheng ", - "Tu ", - "Shao ", - "Shui ", - "Ya ", - "Lun ", - "Lu ", - "Gu ", - "Zuo ", - "Ren ", - "Zhun ", - "Bang ", - "Bai ", - "Ji ", - "Zhi ", - "Zhi ", - "Kun ", - "Leng ", - "Peng ", - "Ke ", - "Bing ", - "Chou ", - "Zu ", - "Yu ", - "Su ", - "Lue ", - "[?] ", - "Yi ", - "Xi ", - "Bian ", - "Ji ", - "Fu ", - "Bi ", - "Nuo ", - "Jie ", - "Zhong ", - "Zong ", - "Xu ", - "Cheng ", - "Dao ", - "Wen ", - "Lian ", - "Zi ", - "Yu ", - "Ji ", - "Xu ", - "Zhen ", - "Zhi ", - "Dao ", - "Jia ", - "Ji ", - "Gao ", - "Gao ", - "Gu ", - "Rong ", - "Sui ", - "You ", - "Ji ", - "Kang ", - "Mu ", - "Shan ", - "Men ", - "Zhi ", - "Ji ", - "Lu ", - "Su ", - "Ji ", - "Ying ", - "Wen ", - "Qiu ", - "Se ", - "[?] ", - "Yi ", - "Huang ", - "Qie ", - "Ji ", - "Sui ", - "Xiao ", - "Pu ", - "Jiao ", - "Zhuo ", - "Tong ", - "Sai ", - "Lu ", - "Sui ", - "Nong ", - "Se ", - "Hui ", - "Rang ", - "Nuo ", - "Yu ", - "Bin ", - "Ji ", - "Tui ", - "Wen ", - "Cheng ", - "Huo ", - "Gong ", - "Lu ", - "Biao ", - "[?] ", - "Rang ", - "Zhuo ", - "Li ", - "Zan ", - "Xue ", - "Wa ", - "Jiu ", - "Qiong ", - "Xi ", - "Qiong ", - "Kong ", - "Yu ", - "Sen ", - "Jing ", - "Yao ", - "Chuan ", - "Zhun ", - "Tu ", - "Lao ", - "Qie ", - "Zhai ", - "Yao ", - "Bian ", - "Bao ", - "Yao ", - "Bing ", - "Wa ", - "Zhu ", - "Jiao ", - "Qiao ", - "Diao ", - "Wu ", - "Gui ", - "Yao ", - "Zhi ", - "Chuang ", - "Yao ", - "Tiao ", - "Jiao ", - "Chuang ", - "Jiong ", - "Xiao ", - "Cheng ", - "Kou ", - "Cuan ", - "Wo ", - "Dan ", - "Ku ", - "Ke ", - "Zhui ", - "Xu ", - "Su ", - "Guan ", - "Kui ", - "Dou ", - "[?] ", - "Yin ", - "Wo ", - "Wa ", - "Ya ", - "Yu ", - "Ju ", - "Qiong ", - "Yao ", - "Yao ", - "Tiao ", - "Chao ", - "Yu ", - "Tian ", - "Diao ", - "Ju ", - "Liao ", - "Xi ", - "Wu ", - "Kui ", - "Chuang ", - "Zhao ", - "[?] ", - "Kuan ", - "Long ", - "Cheng ", - "Cui ", - "Piao ", - "Zao ", - "Cuan ", - "Qiao ", - "Qiong ", - "Dou ", - "Zao ", - "Long ", - "Qie ", - "Li ", - "Chu ", - "Shi ", - "Fou ", - "Qian ", - "Chu ", - "Hong ", - "Qi ", - "Qian ", - "Gong ", - "Shi ", - "Shu ", - "Miao ", - "Ju ", - "Zhan ", - "Zhu ", - "Ling ", - "Long ", - "Bing ", - "Jing ", - "Jing ", - "Zhang ", - "Yi ", - "Si ", - "Jun ", - "Hong ", - "Tong ", - "Song ", - "Jing ", - "Diao ", - "Yi ", - "Shu ", - "Jing ", - "Qu ", - "Jie ", - "Ping ", - "Duan ", - "Shao ", - "Zhuan ", - "Ceng ", - "Deng ", - "Cui ", - "Huai ", - "Jing ", - "Kan ", - "Jing ", - "Zhu ", - "Zhu ", - "Le ", - "Peng ", - "Yu ", - "Chi ", - "Gan ", - "Mang ", - "Zhu ", - "Utsubo ", - "Du ", - "Ji ", - "Xiao ", - "Ba ", - "Suan ", - "Ji ", - "Zhen ", - "Zhao ", - "Sun ", - "Ya ", - "Zhui ", - "Yuan ", - "Hu ", - "Gang ", - "Xiao ", - "Cen ", - "Pi ", - "Bi ", - "Jian ", - "Yi ", - "Dong ", - "Shan ", - "Sheng ", - "Xia ", - "Di ", - "Zhu ", - "Na ", - "Chi ", - "Gu ", - "Li ", - "Qie ", - "Min ", - "Bao ", - "Tiao ", - "Si ", - "Fu ", - "Ce ", - "Ben ", - "Pei ", - "Da ", - "Zi ", - "Di ", - "Ling ", - "Ze ", - "Nu ", - "Fu ", - "Gou ", - "Fan ", - "Jia ", - "Ge ", - "Fan ", - "Shi ", - "Mao ", - "Po ", - "Sey ", - "Jian ", - "Qiong ", - "Long ", - "Souke ", - "Bian ", - "Luo ", - "Gui ", - "Qu ", - "Chi ", - "Yin ", - "Yao ", - "Xian ", - "Bi ", - "Qiong ", - "Gua ", - "Deng ", - "Jiao ", - "Jin ", - "Quan ", - "Sun ", - "Ru ", - "Fa ", - "Kuang ", - "Zhu ", - "Tong ", - "Ji ", - "Da ", - "Xing ", - "Ce ", - "Zhong ", - "Kou ", - "Lai ", - "Bi ", - "Shai ", - "Dang ", - "Zheng ", - "Ce ", - "Fu ", - "Yun ", - "Tu ", - "Pa ", - "Li ", - "Lang ", - "Ju ", - "Guan ", - "Jian ", - "Han ", - "Tong ", - "Xia ", - "Zhi ", - "Cheng ", - "Suan ", - "Shi ", - "Zhu ", - "Zuo ", - "Xiao ", - "Shao ", - "Ting ", - "Ce ", - "Yan ", - "Gao ", - "Kuai ", - "Gan ", - "Chou ", - "Kago ", - "Gang ", - "Yun ", - "O ", - "Qian ", - "Xiao ", - "Jian ", - "Pu ", - "Lai ", - "Zou ", - "Bi ", - "Bi ", - "Bi ", - "Ge ", - "Chi ", - "Guai ", - "Yu ", - "Jian ", - "Zhao ", - "Gu ", - "Chi ", - "Zheng ", - "Jing ", - "Sha ", - "Zhou ", - "Lu ", - "Bo ", - "Ji ", - "Lin ", - "Suan ", - "Jun ", - "Fu ", - "Zha ", - "Gu ", - "Kong ", - "Qian ", - "Quan ", - "Jun ", - "Chui ", - "Guan ", - "Yuan ", - "Ce ", - "Ju ", - "Bo ", - "Ze ", - "Qie ", - "Tuo ", - "Luo ", - "Dan ", - "Xiao ", - "Ruo ", - "Jian ", - "Xuan ", - "Bian ", - "Sun ", - "Xiang ", - "Xian ", - "Ping ", - "Zhen ", - "Sheng ", - "Hu ", - "Shi ", - "Zhu ", - "Yue ", - "Chun ", - "Lu ", - "Wu ", - "Dong ", - "Xiao ", - "Ji ", - "Jie ", - "Huang ", - "Xing ", - "Mei ", - "Fan ", - "Chui ", - "Zhuan ", - "Pian ", - "Feng ", - "Zhu ", - "Hong ", - "Qie ", - "Hou ", - "Qiu ", - "Miao ", - "Qian ", - "[?] ", - "Kui ", - "Sik ", - "Lou ", - "Yun ", - "He ", - "Tang ", - "Yue ", - "Chou ", - "Gao ", - "Fei ", - "Ruo ", - "Zheng ", - "Gou ", - "Nie ", - "Qian ", - "Xiao ", - "Cuan ", - "Gong ", - "Pang ", - "Du ", - "Li ", - "Bi ", - "Zhuo ", - "Chu ", - "Shai ", - "Chi ", - "Zhu ", - "Qiang ", - "Long ", - "Lan ", - "Jian ", - "Bu ", - "Li ", - "Hui ", - "Bi ", - "Di ", - "Cong ", - "Yan ", - "Peng ", - "Sen ", - "Zhuan ", - "Pai ", - "Piao ", - "Dou ", - "Yu ", - "Mie ", - "Zhuan ", - "Ze ", - "Xi ", - "Guo ", - "Yi ", - "Hu ", - "Chan ", - "Kou ", - "Cu ", - "Ping ", - "Chou ", - "Ji ", - "Gui ", - "Su ", - "Lou ", - "Zha ", - "Lu ", - "Nian ", - "Suo ", - "Cuan ", - "Sasara ", - "Suo ", - "Le ", - "Duan ", - "Yana ", - "Xiao ", - "Bo ", - "Mi ", - "Si ", - "Dang ", - "Liao ", - "Dan ", - "Dian ", - "Fu ", - "Jian ", - "Min ", - "Kui ", - "Dai ", - "Qiao ", - "Deng ", - "Huang ", - "Sun ", - "Lao ", - "Zan ", - "Xiao ", - "Du ", - "Shi ", - "Zan ", - "[?] ", - "Pai ", - "Hata ", - "Pai ", - "Gan ", - "Ju ", - "Du ", - "Lu ", - "Yan ", - "Bo ", - "Dang ", - "Sai ", - "Ke ", - "Long ", - "Qian ", - "Lian ", - "Bo ", - "Zhou ", - "Lai ", - "[?] ", - "Lan ", - "Kui ", - "Yu ", - "Yue ", - "Hao ", - "Zhen ", - "Tai ", - "Ti ", - "Mi ", - "Chou ", - "Ji ", - "[?] ", - "Hata ", - "Teng ", - "Zhuan ", - "Zhou ", - "Fan ", - "Sou ", - "Zhou ", - "Kuji ", - "Zhuo ", - "Teng ", - "Lu ", - "Lu ", - "Jian ", - "Tuo ", - "Ying ", - "Yu ", - "Lai ", - "Long ", - "Shinshi ", - "Lian ", - "Lan ", - "Qian ", - "Yue ", - "Zhong ", - "Qu ", - "Lian ", - "Bian ", - "Duan ", - "Zuan ", - "Li ", - "Si ", - "Luo ", - "Ying ", - "Yue ", - "Zhuo ", - "Xu ", - "Mi ", - "Di ", - "Fan ", - "Shen ", - "Zhe ", - "Shen ", - "Nu ", - "Xie ", - "Lei ", - "Xian ", - "Zi ", - "Ni ", - "Cun ", - "[?] ", - "Qian ", - "Kume ", - "Bi ", - "Ban ", - "Wu ", - "Sha ", - "Kang ", - "Rou ", - "Fen ", - "Bi ", - "Cui ", - "[?] ", - "Li ", - "Chi ", - "Nukamiso ", - "Ro ", - "Ba ", - "Li ", - "Gan ", - "Ju ", - "Po ", - "Mo ", - "Cu ", - "Nian ", - "Zhou ", - "Li ", - "Su ", - "Tiao ", - "Li ", - "Qi ", - "Su ", - "Hong ", - "Tong ", - "Zi ", - "Ce ", - "Yue ", - "Zhou ", - "Lin ", - "Zhuang ", - "Bai ", - "[?] ", - "Fen ", - "Ji ", - "[?] ", - "Sukumo ", - "Liang ", - "Xian ", - "Fu ", - "Liang ", - "Can ", - "Geng ", - "Li ", - "Yue ", - "Lu ", - "Ju ", - "Qi ", - "Cui ", - "Bai ", - "Zhang ", - "Lin ", - "Zong ", - "Jing ", - "Guo ", - "Kouji ", - "San ", - "San ", - "Tang ", - "Bian ", - "Rou ", - "Mian ", - "Hou ", - "Xu ", - "Zong ", - "Hu ", - "Jian ", - "Zan ", - "Ci ", - "Li ", - "Xie ", - "Fu ", - "Ni ", - "Bei ", - "Gu ", - "Xiu ", - "Gao ", - "Tang ", - "Qiu ", - "Sukumo ", - "Cao ", - "Zhuang ", - "Tang ", - "Mi ", - "San ", - "Fen ", - "Zao ", - "Kang ", - "Jiang ", - "Mo ", - "San ", - "San ", - "Nuo ", - "Xi ", - "Liang ", - "Jiang ", - "Kuai ", - "Bo ", - "Huan ", - "[?] ", - "Zong ", - "Xian ", - "Nuo ", - "Tuan ", - "Nie ", - "Li ", - "Zuo ", - "Di ", - "Nie ", - "Tiao ", - "Lan ", - "Mi ", - "Jiao ", - "Jiu ", - "Xi ", - "Gong ", - "Zheng ", - "Jiu ", - "You ", - "Ji ", - "Cha ", - "Zhou ", - "Xun ", - "Yue ", - "Hong ", - "Yu ", - "He ", - "Wan ", - "Ren ", - "Wen ", - "Wen ", - "Qiu ", - "Na ", - "Zi ", - "Tou ", - "Niu ", - "Fou ", - "Jie ", - "Shu ", - "Chun ", - "Pi ", - "Yin ", - "Sha ", - "Hong ", - "Zhi ", - "Ji ", - "Fen ", - "Yun ", - "Ren ", - "Dan ", - "Jin ", - "Su ", - "Fang ", - "Suo ", - "Cui ", - "Jiu ", - "Zha ", - "Kinu ", - "Jin ", - "Fu ", - "Zhi ", - "Ci ", - "Zi ", - "Chou ", - "Hong ", - "Zha ", - "Lei ", - "Xi ", - "Fu ", - "Xie ", - "Shen ", - "Bei ", - "Zhu ", - "Qu ", - "Ling ", - "Zhu ", - "Shao ", - "Gan ", - "Yang ", - "Fu ", - "Tuo ", - "Zhen ", - "Dai ", - "Zhuo ", - "Shi ", - "Zhong ", - "Xian ", - "Zu ", - "Jiong ", - "Ban ", - "Ju ", - "Mo ", - "Shu ", - "Zui ", - "Wata ", - "Jing ", - "Ren ", - "Heng ", - "Xie ", - "Jie ", - "Zhu ", - "Chou ", - "Gua ", - "Bai ", - "Jue ", - "Kuang ", - "Hu ", - "Ci ", - "Geng ", - "Geng ", - "Tao ", - "Xie ", - "Ku ", - "Jiao ", - "Quan ", - "Gai ", - "Luo ", - "Xuan ", - "Bing ", - "Xian ", - "Fu ", - "Gei ", - "Tong ", - "Rong ", - "Tiao ", - "Yin ", - "Lei ", - "Xie ", - "Quan ", - "Xu ", - "Lun ", - "Die ", - "Tong ", - "Si ", - "Jiang ", - "Xiang ", - "Hui ", - "Jue ", - "Zhi ", - "Jian ", - "Juan ", - "Chi ", - "Mian ", - "Zhen ", - "Lu ", - "Cheng ", - "Qiu ", - "Shu ", - "Bang ", - "Tong ", - "Xiao ", - "Wan ", - "Qin ", - "Geng ", - "Xiu ", - "Ti ", - "Xiu ", - "Xie ", - "Hong ", - "Xi ", - "Fu ", - "Ting ", - "Sui ", - "Dui ", - "Kun ", - "Fu ", - "Jing ", - "Hu ", - "Zhi ", - "Yan ", - "Jiong ", - "Feng ", - "Ji ", - "Sok ", - "Kase ", - "Zong ", - "Lin ", - "Duo ", - "Li ", - "Lu ", - "Liang ", - "Chou ", - "Quan ", - "Shao ", - "Qi ", - "Qi ", - "Zhun ", - "Qi ", - "Wan ", - "Qian ", - "Xian ", - "Shou ", - "Wei ", - "Qi ", - "Tao ", - "Wan ", - "Gang ", - "Wang ", - "Beng ", - "Zhui ", - "Cai ", - "Guo ", - "Cui ", - "Lun ", - "Liu ", - "Qi ", - "Zhan ", - "Bei ", - "Chuo ", - "Ling ", - "Mian ", - "Qi ", - "Qie ", - "Tan ", - "Zong ", - "Gun ", - "Zou ", - "Yi ", - "Zi ", - "Xing ", - "Liang ", - "Jin ", - "Fei ", - "Rui ", - "Min ", - "Yu ", - "Zong ", - "Fan ", - "Lu ", - "Xu ", - "Yingl ", - "Zhang ", - "Kasuri ", - "Xu ", - "Xiang ", - "Jian ", - "Ke ", - "Xian ", - "Ruan ", - "Mian ", - "Qi ", - "Duan ", - "Zhong ", - "Di ", - "Min ", - "Miao ", - "Yuan ", - "Xie ", - "Bao ", - "Si ", - "Qiu ", - "Bian ", - "Huan ", - "Geng ", - "Cong ", - "Mian ", - "Wei ", - "Fu ", - "Wei ", - "Yu ", - "Gou ", - "Miao ", - "Xie ", - "Lian ", - "Zong ", - "Bian ", - "Yun ", - "Yin ", - "Ti ", - "Gua ", - "Zhi ", - "Yun ", - "Cheng ", - "Chan ", - "Dai ", - "Xia ", - "Yuan ", - "Zong ", - "Xu ", - "Nawa ", - "Odoshi ", - "Geng ", - "Sen ", - "Ying ", - "Jin ", - "Yi ", - "Zhui ", - "Ni ", - "Bang ", - "Gu ", - "Pan ", - "Zhou ", - "Jian ", - "Cuo ", - "Quan ", - "Shuang ", - "Yun ", - "Xia ", - "Shuai ", - "Xi ", - "Rong ", - "Tao ", - "Fu ", - "Yun ", - "Zhen ", - "Gao ", - "Ru ", - "Hu ", - "Zai ", - "Teng ", - "Xian ", - "Su ", - "Zhen ", - "Zong ", - "Tao ", - "Horo ", - "Cai ", - "Bi ", - "Feng ", - "Cu ", - "Li ", - "Suo ", - "Yin ", - "Xi ", - "Zong ", - "Lei ", - "Zhuan ", - "Qian ", - "Man ", - "Zhi ", - "Lu ", - "Mo ", - "Piao ", - "Lian ", - "Mi ", - "Xuan ", - "Zong ", - "Ji ", - "Shan ", - "Sui ", - "Fan ", - "Shuai ", - "Beng ", - "Yi ", - "Sao ", - "Mou ", - "Zhou ", - "Qiang ", - "Hun ", - "Sem ", - "Xi ", - "Jung ", - "Xiu ", - "Ran ", - "Xuan ", - "Hui ", - "Qiao ", - "Zeng ", - "Zuo ", - "Zhi ", - "Shan ", - "San ", - "Lin ", - "Yu ", - "Fan ", - "Liao ", - "Chuo ", - "Zun ", - "Jian ", - "Rao ", - "Chan ", - "Rui ", - "Xiu ", - "Hui ", - "Hua ", - "Zuan ", - "Xi ", - "Qiang ", - "Un ", - "Da ", - "Sheng ", - "Hui ", - "Xi ", - "Se ", - "Jian ", - "Jiang ", - "Huan ", - "Zao ", - "Cong ", - "Jie ", - "Jiao ", - "Bo ", - "Chan ", - "Yi ", - "Nao ", - "Sui ", - "Yi ", - "Shai ", - "Xu ", - "Ji ", - "Bin ", - "Qian ", - "Lan ", - "Pu ", - "Xun ", - "Zuan ", - "Qi ", - "Peng ", - "Li ", - "Mo ", - "Lei ", - "Xie ", - "Zuan ", - "Kuang ", - "You ", - "Xu ", - "Lei ", - "Xian ", - "Chan ", - "Kou ", - "Lu ", - "Chan ", - "Ying ", - "Cai ", - "Xiang ", - "Xian ", - "Zui ", - "Zuan ", - "Luo ", - "Xi ", - "Dao ", - "Lan ", - "Lei ", - "Lian ", - "Si ", - "Jiu ", - "Yu ", - "Hong ", - "Zhou ", - "Xian ", - "He ", - "Yue ", - "Ji ", - "Wan ", - "Kuang ", - "Ji ", - "Ren ", - "Wei ", - "Yun ", - "Hong ", - "Chun ", - "Pi ", - "Sha ", - "Gang ", - "Na ", - "Ren ", - "Zong ", - "Lun ", - "Fen ", - "Zhi ", - "Wen ", - "Fang ", - "Zhu ", - "Yin ", - "Niu ", - "Shu ", - "Xian ", - "Gan ", - "Xie ", - "Fu ", - "Lian ", - "Zu ", - "Shen ", - "Xi ", - "Zhi ", - "Zhong ", - "Zhou ", - "Ban ", - "Fu ", - "Zhuo ", - "Shao ", - "Yi ", - "Jing ", - "Dai ", - "Bang ", - "Rong ", - "Jie ", - "Ku ", - "Rao ", - "Die ", - "Heng ", - "Hui ", - "Gei ", - "Xuan ", - "Jiang ", - "Luo ", - "Jue ", - "Jiao ", - "Tong ", - "Geng ", - "Xiao ", - "Juan ", - "Xiu ", - "Xi ", - "Sui ", - "Tao ", - "Ji ", - "Ti ", - "Ji ", - "Xu ", - "Ling ", - "[?] ", - "Xu ", - "Qi ", - "Fei ", - "Chuo ", - "Zhang ", - "Gun ", - "Sheng ", - "Wei ", - "Mian ", - "Shou ", - "Beng ", - "Chou ", - "Tao ", - "Liu ", - "Quan ", - "Zong ", - "Zhan ", - "Wan ", - "Lu ", - "Zhui ", - "Zi ", - "Ke ", - "Xiang ", - "Jian ", - "Mian ", - "Lan ", - "Ti ", - "Miao ", - "Qi ", - "Yun ", - "Hui ", - "Si ", - "Duo ", - "Duan ", - "Bian ", - "Xian ", - "Gou ", - "Zhui ", - "Huan ", - "Di ", - "Lu ", - "Bian ", - "Min ", - "Yuan ", - "Jin ", - "Fu ", - "Ru ", - "Zhen ", - "Feng ", - "Shuai ", - "Gao ", - "Chan ", - "Li ", - "Yi ", - "Jian ", - "Bin ", - "Piao ", - "Man ", - "Lei ", - "Ying ", - "Suo ", - "Mou ", - "Sao ", - "Xie ", - "Liao ", - "Shan ", - "Zeng ", - "Jiang ", - "Qian ", - "Zao ", - "Huan ", - "Jiao ", - "Zuan ", - "Fou ", - "Xie ", - "Gang ", - "Fou ", - "Que ", - "Fou ", - "Kaakeru ", - "Bo ", - "Ping ", - "Hou ", - "[?] ", - "Gang ", - "Ying ", - "Ying ", - "Qing ", - "Xia ", - "Guan ", - "Zun ", - "Tan ", - "Chang ", - "Qi ", - "Weng ", - "Ying ", - "Lei ", - "Tan ", - "Lu ", - "Guan ", - "Wang ", - "Wang ", - "Gang ", - "Wang ", - "Han ", - "[?] ", - "Luo ", - "Fu ", - "Mi ", - "Fa ", - "Gu ", - "Zhu ", - "Ju ", - "Mao ", - "Gu ", - "Min ", - "Gang ", - "Ba ", - "Gua ", - "Ti ", - "Juan ", - "Fu ", - "Lin ", - "Yan ", - "Zhao ", - "Zui ", - "Gua ", - "Zhuo ", - "Yu ", - "Zhi ", - "An ", - "Fa ", - "Nan ", - "Shu ", - "Si ", - "Pi ", - "Ma ", - "Liu ", - "Ba ", - "Fa ", - "Li ", - "Chao ", - "Wei ", - "Bi ", - "Ji ", - "Zeng ", - "Tong ", - "Liu ", - "Ji ", - "Juan ", - "Mi ", - "Zhao ", - "Luo ", - "Pi ", - "Ji ", - "Ji ", - "Luan ", - "Yang ", - "Mie ", - "Qiang ", - "Ta ", - "Mei ", - "Yang ", - "You ", - "You ", - "Fen ", - "Ba ", - "Gao ", - "Yang ", - "Gu ", - "Qiang ", - "Zang ", - "Gao ", - "Ling ", - "Yi ", - "Zhu ", - "Di ", - "Xiu ", - "Qian ", - "Yi ", - "Xian ", - "Rong ", - "Qun ", - "Qun ", - "Qian ", - "Huan ", - "Zui ", - "Xian ", - "Yi ", - "Yashinau ", - "Qiang ", - "Xian ", - "Yu ", - "Geng ", - "Jie ", - "Tang ", - "Yuan ", - "Xi ", - "Fan ", - "Shan ", - "Fen ", - "Shan ", - "Lian ", - "Lei ", - "Geng ", - "Nou ", - "Qiang ", - "Chan ", - "Yu ", - "Gong ", - "Yi ", - "Chong ", - "Weng ", - "Fen ", - "Hong ", - "Chi ", - "Chi ", - "Cui ", - "Fu ", - "Xia ", - "Pen ", - "Yi ", - "La ", - "Yi ", - "Pi ", - "Ling ", - "Liu ", - "Zhi ", - "Qu ", - "Xi ", - "Xie ", - "Xiang ", - "Xi ", - "Xi ", - "Qi ", - "Qiao ", - "Hui ", - "Hui ", - "Xiao ", - "Se ", - "Hong ", - "Jiang ", - "Di ", - "Cui ", - "Fei ", - "Tao ", - "Sha ", - "Chi ", - "Zhu ", - "Jian ", - "Xuan ", - "Shi ", - "Pian ", - "Zong ", - "Wan ", - "Hui ", - "Hou ", - "He ", - "He ", - "Han ", - "Ao ", - "Piao ", - "Yi ", - "Lian ", - "Qu ", - "[?] ", - "Lin ", - "Pen ", - "Qiao ", - "Ao ", - "Fan ", - "Yi ", - "Hui ", - "Xuan ", - "Dao ", - "Yao ", - "Lao ", - "[?] ", - "Kao ", - "Mao ", - "Zhe ", - "Qi ", - "Gou ", - "Gou ", - "Gou ", - "Die ", - "Die ", - "Er ", - "Shua ", - "Ruan ", - "Er ", - "Nai ", - "Zhuan ", - "Lei ", - "Ting ", - "Zi ", - "Geng ", - "Chao ", - "Hao ", - "Yun ", - "Pa ", - "Pi ", - "Chi ", - "Si ", - "Chu ", - "Jia ", - "Ju ", - "He ", - "Chu ", - "Lao ", - "Lun ", - "Ji ", - "Tang ", - "Ou ", - "Lou ", - "Nou ", - "Gou ", - "Pang ", - "Ze ", - "Lou ", - "Ji ", - "Lao ", - "Huo ", - "You ", - "Mo ", - "Huai ", - "Er ", - "Zhe ", - "Ting ", - "Ye ", - "Da ", - "Song ", - "Qin ", - "Yun ", - "Chi ", - "Dan ", - "Dan ", - "Hong ", - "Geng ", - "Zhi ", - "[?] ", - "Nie ", - "Dan ", - "Zhen ", - "Che ", - "Ling ", - "Zheng ", - "You ", - "Wa ", - "Liao ", - "Long ", - "Zhi ", - "Ning ", - "Tiao ", - "Er ", - "Ya ", - "Die ", - "Gua ", - "[?] ", - "Lian ", - "Hao ", - "Sheng ", - "Lie ", - "Pin ", - "Jing ", - "Ju ", - "Bi ", - "Di ", - "Guo ", - "Wen ", - "Xu ", - "Ping ", - "Cong ", - "Shikato ", - "[?] ", - "Ting ", - "Yu ", - "Cong ", - "Kui ", - "Tsuraneru ", - "Kui ", - "Cong ", - "Lian ", - "Weng ", - "Kui ", - "Lian ", - "Lian ", - "Cong ", - "Ao ", - "Sheng ", - "Song ", - "Ting ", - "Kui ", - "Nie ", - "Zhi ", - "Dan ", - "Ning ", - "Qie ", - "Ji ", - "Ting ", - "Ting ", - "Long ", - "Yu ", - "Yu ", - "Zhao ", - "Si ", - "Su ", - "Yi ", - "Su ", - "Si ", - "Zhao ", - "Zhao ", - "Rou ", - "Yi ", - "Le ", - "Ji ", - "Qiu ", - "Ken ", - "Cao ", - "Ge ", - "Di ", - "Huan ", - "Huang ", - "Yi ", - "Ren ", - "Xiao ", - "Ru ", - "Zhou ", - "Yuan ", - "Du ", - "Gang ", - "Rong ", - "Gan ", - "Cha ", - "Wo ", - "Chang ", - "Gu ", - "Zhi ", - "Han ", - "Fu ", - "Fei ", - "Fen ", - "Pei ", - "Pang ", - "Jian ", - "Fang ", - "Zhun ", - "You ", - "Na ", - "Hang ", - "Ken ", - "Ran ", - "Gong ", - "Yu ", - "Wen ", - "Yao ", - "Jin ", - "Pi ", - "Qian ", - "Xi ", - "Xi ", - "Fei ", - "Ken ", - "Jing ", - "Tai ", - "Shen ", - "Zhong ", - "Zhang ", - "Xie ", - "Shen ", - "Wei ", - "Zhou ", - "Die ", - "Dan ", - "Fei ", - "Ba ", - "Bo ", - "Qu ", - "Tian ", - "Bei ", - "Gua ", - "Tai ", - "Zi ", - "Ku ", - "Zhi ", - "Ni ", - "Ping ", - "Zi ", - "Fu ", - "Pang ", - "Zhen ", - "Xian ", - "Zuo ", - "Pei ", - "Jia ", - "Sheng ", - "Zhi ", - "Bao ", - "Mu ", - "Qu ", - "Hu ", - "Ke ", - "Yi ", - "Yin ", - "Xu ", - "Yang ", - "Long ", - "Dong ", - "Ka ", - "Lu ", - "Jing ", - "Nu ", - "Yan ", - "Pang ", - "Kua ", - "Yi ", - "Guang ", - "Gai ", - "Ge ", - "Dong ", - "Zhi ", - "Xiao ", - "Xiong ", - "Xiong ", - "Er ", - "E ", - "Xing ", - "Pian ", - "Neng ", - "Zi ", - "Gui ", - "Cheng ", - "Tiao ", - "Zhi ", - "Cui ", - "Mei ", - "Xie ", - "Cui ", - "Xie ", - "Mo ", - "Mai ", - "Ji ", - "Obiyaakasu ", - "[?] ", - "Kuai ", - "Sa ", - "Zang ", - "Qi ", - "Nao ", - "Mi ", - "Nong ", - "Luan ", - "Wan ", - "Bo ", - "Wen ", - "Guan ", - "Qiu ", - "Jiao ", - "Jing ", - "Rou ", - "Heng ", - "Cuo ", - "Lie ", - "Shan ", - "Ting ", - "Mei ", - "Chun ", - "Shen ", - "Xie ", - "De ", - "Zui ", - "Cu ", - "Xiu ", - "Xin ", - "Tuo ", - "Pao ", - "Cheng ", - "Nei ", - "Fu ", - "Dou ", - "Tuo ", - "Niao ", - "Noy ", - "Pi ", - "Gu ", - "Gua ", - "Li ", - "Lian ", - "Zhang ", - "Cui ", - "Jie ", - "Liang ", - "Zhou ", - "Pi ", - "Biao ", - "Lun ", - "Pian ", - "Guo ", - "Kui ", - "Chui ", - "Dan ", - "Tian ", - "Nei ", - "Jing ", - "Jie ", - "La ", - "Yi ", - "An ", - "Ren ", - "Shen ", - "Chuo ", - "Fu ", - "Fu ", - "Ju ", - "Fei ", - "Qiang ", - "Wan ", - "Dong ", - "Pi ", - "Guo ", - "Zong ", - "Ding ", - "Wu ", - "Mei ", - "Ruan ", - "Zhuan ", - "Zhi ", - "Cou ", - "Gua ", - "Ou ", - "Di ", - "An ", - "Xing ", - "Nao ", - "Yu ", - "Chuan ", - "Nan ", - "Yun ", - "Zhong ", - "Rou ", - "E ", - "Sai ", - "Tu ", - "Yao ", - "Jian ", - "Wei ", - "Jiao ", - "Yu ", - "Jia ", - "Duan ", - "Bi ", - "Chang ", - "Fu ", - "Xian ", - "Ni ", - "Mian ", - "Wa ", - "Teng ", - "Tui ", - "Bang ", - "Qian ", - "Lu ", - "Wa ", - "Sou ", - "Tang ", - "Su ", - "Zhui ", - "Ge ", - "Yi ", - "Bo ", - "Liao ", - "Ji ", - "Pi ", - "Xie ", - "Gao ", - "Lu ", - "Bin ", - "Ou ", - "Chang ", - "Lu ", - "Guo ", - "Pang ", - "Chuai ", - "Piao ", - "Jiang ", - "Fu ", - "Tang ", - "Mo ", - "Xi ", - "Zhuan ", - "Lu ", - "Jiao ", - "Ying ", - "Lu ", - "Zhi ", - "Tara ", - "Chun ", - "Lian ", - "Tong ", - "Peng ", - "Ni ", - "Zha ", - "Liao ", - "Cui ", - "Gui ", - "Xiao ", - "Teng ", - "Fan ", - "Zhi ", - "Jiao ", - "Shan ", - "Wu ", - "Cui ", - "Run ", - "Xiang ", - "Sui ", - "Fen ", - "Ying ", - "Tan ", - "Zhua ", - "Dan ", - "Kuai ", - "Nong ", - "Tun ", - "Lian ", - "Bi ", - "Yong ", - "Jue ", - "Chu ", - "Yi ", - "Juan ", - "La ", - "Lian ", - "Sao ", - "Tun ", - "Gu ", - "Qi ", - "Cui ", - "Bin ", - "Xun ", - "Ru ", - "Huo ", - "Zang ", - "Xian ", - "Biao ", - "Xing ", - "Kuan ", - "La ", - "Yan ", - "Lu ", - "Huo ", - "Zang ", - "Luo ", - "Qu ", - "Zang ", - "Luan ", - "Ni ", - "Zang ", - "Chen ", - "Qian ", - "Wo ", - "Guang ", - "Zang ", - "Lin ", - "Guang ", - "Zi ", - "Jiao ", - "Nie ", - "Chou ", - "Ji ", - "Gao ", - "Chou ", - "Mian ", - "Nie ", - "Zhi ", - "Zhi ", - "Ge ", - "Jian ", - "Die ", - "Zhi ", - "Xiu ", - "Tai ", - "Zhen ", - "Jiu ", - "Xian ", - "Yu ", - "Cha ", - "Yao ", - "Yu ", - "Chong ", - "Xi ", - "Xi ", - "Jiu ", - "Yu ", - "Yu ", - "Xing ", - "Ju ", - "Jiu ", - "Xin ", - "She ", - "She ", - "Yadoru ", - "Jiu ", - "Shi ", - "Tan ", - "Shu ", - "Shi ", - "Tian ", - "Dan ", - "Pu ", - "Pu ", - "Guan ", - "Hua ", - "Tan ", - "Chuan ", - "Shun ", - "Xia ", - "Wu ", - "Zhou ", - "Dao ", - "Gang ", - "Shan ", - "Yi ", - "[?] ", - "Pa ", - "Tai ", - "Fan ", - "Ban ", - "Chuan ", - "Hang ", - "Fang ", - "Ban ", - "Que ", - "Hesaki ", - "Zhong ", - "Jian ", - "Cang ", - "Ling ", - "Zhu ", - "Ze ", - "Duo ", - "Bo ", - "Xian ", - "Ge ", - "Chuan ", - "Jia ", - "Lu ", - "Hong ", - "Pang ", - "Xi ", - "[?] ", - "Fu ", - "Zao ", - "Feng ", - "Li ", - "Shao ", - "Yu ", - "Lang ", - "Ting ", - "[?] ", - "Wei ", - "Bo ", - "Meng ", - "Nian ", - "Ju ", - "Huang ", - "Shou ", - "Zong ", - "Bian ", - "Mao ", - "Die ", - "[?] ", - "Bang ", - "Cha ", - "Yi ", - "Sao ", - "Cang ", - "Cao ", - "Lou ", - "Dai ", - "Sori ", - "Yao ", - "Tong ", - "Yofune ", - "Dang ", - "Tan ", - "Lu ", - "Yi ", - "Jie ", - "Jian ", - "Huo ", - "Meng ", - "Qi ", - "Lu ", - "Lu ", - "Chan ", - "Shuang ", - "Gen ", - "Liang ", - "Jian ", - "Jian ", - "Se ", - "Yan ", - "Fu ", - "Ping ", - "Yan ", - "Yan ", - "Cao ", - "Cao ", - "Yi ", - "Le ", - "Ting ", - "Qiu ", - "Ai ", - "Nai ", - "Tiao ", - "Jiao ", - "Jie ", - "Peng ", - "Wan ", - "Yi ", - "Chai ", - "Mian ", - "Mie ", - "Gan ", - "Qian ", - "Yu ", - "Yu ", - "Shuo ", - "Qiong ", - "Tu ", - "Xia ", - "Qi ", - "Mang ", - "Zi ", - "Hui ", - "Sui ", - "Zhi ", - "Xiang ", - "Bi ", - "Fu ", - "Tun ", - "Wei ", - "Wu ", - "Zhi ", - "Qi ", - "Shan ", - "Wen ", - "Qian ", - "Ren ", - "Fou ", - "Kou ", - "Jie ", - "Lu ", - "Xu ", - "Ji ", - "Qin ", - "Qi ", - "Yuan ", - "Fen ", - "Ba ", - "Rui ", - "Xin ", - "Ji ", - "Hua ", - "Hua ", - "Fang ", - "Wu ", - "Jue ", - "Gou ", - "Zhi ", - "Yun ", - "Qin ", - "Ao ", - "Chu ", - "Mao ", - "Ya ", - "Fei ", - "Reng ", - "Hang ", - "Cong ", - "Yin ", - "You ", - "Bian ", - "Yi ", - "Susa ", - "Wei ", - "Li ", - "Pi ", - "E ", - "Xian ", - "Chang ", - "Cang ", - "Meng ", - "Su ", - "Yi ", - "Yuan ", - "Ran ", - "Ling ", - "Tai ", - "Tiao ", - "Di ", - "Miao ", - "Qiong ", - "Li ", - "Yong ", - "Ke ", - "Mu ", - "Pei ", - "Bao ", - "Gou ", - "Min ", - "Yi ", - "Yi ", - "Ju ", - "Pi ", - "Ruo ", - "Ku ", - "Zhu ", - "Ni ", - "Bo ", - "Bing ", - "Shan ", - "Qiu ", - "Yao ", - "Xian ", - "Ben ", - "Hong ", - "Ying ", - "Zha ", - "Dong ", - "Ju ", - "Die ", - "Nie ", - "Gan ", - "Hu ", - "Ping ", - "Mei ", - "Fu ", - "Sheng ", - "Gu ", - "Bi ", - "Wei ", - "Fu ", - "Zhuo ", - "Mao ", - "Fan ", - "Qie ", - "Mao ", - "Mao ", - "Ba ", - "Zi ", - "Mo ", - "Zi ", - "Di ", - "Chi ", - "Ji ", - "Jing ", - "Long ", - "[?] ", - "Niao ", - "[?] ", - "Xue ", - "Ying ", - "Qiong ", - "Ge ", - "Ming ", - "Li ", - "Rong ", - "Yin ", - "Gen ", - "Qian ", - "Chai ", - "Chen ", - "Yu ", - "Xiu ", - "Zi ", - "Lie ", - "Wu ", - "Ji ", - "Kui ", - "Ce ", - "Chong ", - "Ci ", - "Gou ", - "Guang ", - "Mang ", - "Chi ", - "Jiao ", - "Jiao ", - "Fu ", - "Yu ", - "Zhu ", - "Zi ", - "Jiang ", - "Hui ", - "Yin ", - "Cha ", - "Fa ", - "Rong ", - "Ru ", - "Chong ", - "Mang ", - "Tong ", - "Zhong ", - "[?] ", - "Zhu ", - "Xun ", - "Huan ", - "Kua ", - "Quan ", - "Gai ", - "Da ", - "Jing ", - "Xing ", - "Quan ", - "Cao ", - "Jing ", - "Er ", - "An ", - "Shou ", - "Chi ", - "Ren ", - "Jian ", - "Ti ", - "Huang ", - "Ping ", - "Li ", - "Jin ", - "Lao ", - "Shu ", - "Zhuang ", - "Da ", - "Jia ", - "Rao ", - "Bi ", - "Ze ", - "Qiao ", - "Hui ", - "Qi ", - "Dang ", - "[?] ", - "Rong ", - "Hun ", - "Ying ", - "Luo ", - "Ying ", - "Xun ", - "Jin ", - "Sun ", - "Yin ", - "Mai ", - "Hong ", - "Zhou ", - "Yao ", - "Du ", - "Wei ", - "Chu ", - "Dou ", - "Fu ", - "Ren ", - "Yin ", - "He ", - "Bi ", - "Bu ", - "Yun ", - "Di ", - "Tu ", - "Sui ", - "Sui ", - "Cheng ", - "Chen ", - "Wu ", - "Bie ", - "Xi ", - "Geng ", - "Li ", - "Fu ", - "Zhu ", - "Mo ", - "Li ", - "Zhuang ", - "Ji ", - "Duo ", - "Qiu ", - "Sha ", - "Suo ", - "Chen ", - "Feng ", - "Ju ", - "Mei ", - "Meng ", - "Xing ", - "Jing ", - "Che ", - "Xin ", - "Jun ", - "Yan ", - "Ting ", - "Diao ", - "Cuo ", - "Wan ", - "Han ", - "You ", - "Cuo ", - "Jia ", - "Wang ", - "You ", - "Niu ", - "Shao ", - "Xian ", - "Lang ", - "Fu ", - "E ", - "Mo ", - "Wen ", - "Jie ", - "Nan ", - "Mu ", - "Kan ", - "Lai ", - "Lian ", - "Shi ", - "Wo ", - "Usagi ", - "Lian ", - "Huo ", - "You ", - "Ying ", - "Ying ", - "Nuc ", - "Chun ", - "Mang ", - "Mang ", - "Ci ", - "Wan ", - "Jing ", - "Di ", - "Qu ", - "Dong ", - "Jian ", - "Zou ", - "Gu ", - "La ", - "Lu ", - "Ju ", - "Wei ", - "Jun ", - "Nie ", - "Kun ", - "He ", - "Pu ", - "Zi ", - "Gao ", - "Guo ", - "Fu ", - "Lun ", - "Chang ", - "Chou ", - "Song ", - "Chui ", - "Zhan ", - "Men ", - "Cai ", - "Ba ", - "Li ", - "Tu ", - "Bo ", - "Han ", - "Bao ", - "Qin ", - "Juan ", - "Xi ", - "Qin ", - "Di ", - "Jie ", - "Pu ", - "Dang ", - "Jin ", - "Zhao ", - "Tai ", - "Geng ", - "Hua ", - "Gu ", - "Ling ", - "Fei ", - "Jin ", - "An ", - "Wang ", - "Beng ", - "Zhou ", - "Yan ", - "Ju ", - "Jian ", - "Lin ", - "Tan ", - "Shu ", - "Tian ", - "Dao ", - "Hu ", - "Qi ", - "He ", - "Cui ", - "Tao ", - "Chun ", - "Bei ", - "Chang ", - "Huan ", - "Fei ", - "Lai ", - "Qi ", - "Meng ", - "Ping ", - "Wei ", - "Dan ", - "Sha ", - "Huan ", - "Yan ", - "Yi ", - "Tiao ", - "Qi ", - "Wan ", - "Ce ", - "Nai ", - "Kutabireru ", - "Tuo ", - "Jiu ", - "Tie ", - "Luo ", - "[?] ", - "[?] ", - "Meng ", - "[?] ", - "Yaji ", - "[?] ", - "Ying ", - "Ying ", - "Ying ", - "Xiao ", - "Sa ", - "Qiu ", - "Ke ", - "Xiang ", - "Wan ", - "Yu ", - "Yu ", - "Fu ", - "Lian ", - "Xuan ", - "Yuan ", - "Nan ", - "Ze ", - "Wo ", - "Chun ", - "Xiao ", - "Yu ", - "Pian ", - "Mao ", - "An ", - "E ", - "Luo ", - "Ying ", - "Huo ", - "Gua ", - "Jiang ", - "Mian ", - "Zuo ", - "Zuo ", - "Ju ", - "Bao ", - "Rou ", - "Xi ", - "Xie ", - "An ", - "Qu ", - "Jian ", - "Fu ", - "Lu ", - "Jing ", - "Pen ", - "Feng ", - "Hong ", - "Hong ", - "Hou ", - "Yan ", - "Tu ", - "Zhu ", - "Zi ", - "Xiang ", - "Shen ", - "Ge ", - "Jie ", - "Jing ", - "Mi ", - "Huang ", - "Shen ", - "Pu ", - "Gai ", - "Dong ", - "Zhou ", - "Qian ", - "Wei ", - "Bo ", - "Wei ", - "Pa ", - "Ji ", - "Hu ", - "Zang ", - "Jia ", - "Duan ", - "Yao ", - "Jun ", - "Cong ", - "Quan ", - "Wei ", - "Xian ", - "Kui ", - "Ting ", - "Hun ", - "Xi ", - "Shi ", - "Qi ", - "Lan ", - "Zong ", - "Yao ", - "Yuan ", - "Mei ", - "Yun ", - "Shu ", - "Di ", - "Zhuan ", - "Guan ", - "Sukumo ", - "Xue ", - "Chan ", - "Kai ", - "Kui ", - "[?] ", - "Jiang ", - "Lou ", - "Wei ", - "Pai ", - "[?] ", - "Sou ", - "Yin ", - "Shi ", - "Chun ", - "Shi ", - "Yun ", - "Zhen ", - "Lang ", - "Nu ", - "Meng ", - "He ", - "Que ", - "Suan ", - "Yuan ", - "Li ", - "Ju ", - "Xi ", - "Pang ", - "Chu ", - "Xu ", - "Tu ", - "Liu ", - "Wo ", - "Zhen ", - "Qian ", - "Zu ", - "Po ", - "Cuo ", - "Yuan ", - "Chu ", - "Yu ", - "Kuai ", - "Pan ", - "Pu ", - "Pu ", - "Na ", - "Shuo ", - "Xi ", - "Fen ", - "Yun ", - "Zheng ", - "Jian ", - "Ji ", - "Ruo ", - "Cang ", - "En ", - "Mi ", - "Hao ", - "Sun ", - "Zhen ", - "Ming ", - "Sou ", - "Xu ", - "Liu ", - "Xi ", - "Gu ", - "Lang ", - "Rong ", - "Weng ", - "Gai ", - "Cuo ", - "Shi ", - "Tang ", - "Luo ", - "Ru ", - "Suo ", - "Xian ", - "Bei ", - "Yao ", - "Gui ", - "Bi ", - "Zong ", - "Gun ", - "Za ", - "Xiu ", - "Ce ", - "Hai ", - "Lan ", - "[?] ", - "Ji ", - "Li ", - "Can ", - "Lang ", - "Yu ", - "[?] ", - "Ying ", - "Mo ", - "Diao ", - "Tiao ", - "Mao ", - "Tong ", - "Zhu ", - "Peng ", - "An ", - "Lian ", - "Cong ", - "Xi ", - "Ping ", - "Qiu ", - "Jin ", - "Chun ", - "Jie ", - "Wei ", - "Tui ", - "Cao ", - "Yu ", - "Yi ", - "Ji ", - "Liao ", - "Bi ", - "Lu ", - "Su ", - "Bu ", - "Zhang ", - "Luo ", - "Jiang ", - "Man ", - "Yan ", - "Ling ", - "Ji ", - "Piao ", - "Gun ", - "Han ", - "Di ", - "Su ", - "Lu ", - "She ", - "Shang ", - "Di ", - "Mie ", - "Xun ", - "Man ", - "Bo ", - "Di ", - "Cuo ", - "Zhe ", - "Sen ", - "Xuan ", - "Wei ", - "Hu ", - "Ao ", - "Mi ", - "Lou ", - "Cu ", - "Zhong ", - "Cai ", - "Po ", - "Jiang ", - "Mi ", - "Cong ", - "Niao ", - "Hui ", - "Jun ", - "Yin ", - "Jian ", - "Yan ", - "Shu ", - "Yin ", - "Kui ", - "Chen ", - "Hu ", - "Sha ", - "Kou ", - "Qian ", - "Ma ", - "Zang ", - "Sonoko ", - "Qiang ", - "Dou ", - "Lian ", - "Lin ", - "Kou ", - "Ai ", - "Bi ", - "Li ", - "Wei ", - "Ji ", - "Xun ", - "Sheng ", - "Fan ", - "Meng ", - "Ou ", - "Chan ", - "Dian ", - "Xun ", - "Jiao ", - "Rui ", - "Rui ", - "Lei ", - "Yu ", - "Qiao ", - "Chu ", - "Hua ", - "Jian ", - "Mai ", - "Yun ", - "Bao ", - "You ", - "Qu ", - "Lu ", - "Rao ", - "Hui ", - "E ", - "Teng ", - "Fei ", - "Jue ", - "Zui ", - "Fa ", - "Ru ", - "Fen ", - "Kui ", - "Shun ", - "Rui ", - "Ya ", - "Xu ", - "Fu ", - "Jue ", - "Dang ", - "Wu ", - "Tong ", - "Si ", - "Xiao ", - "Xi ", - "Long ", - "Yun ", - "[?] ", - "Qi ", - "Jian ", - "Yun ", - "Sun ", - "Ling ", - "Yu ", - "Xia ", - "Yong ", - "Ji ", - "Hong ", - "Si ", - "Nong ", - "Lei ", - "Xuan ", - "Yun ", - "Yu ", - "Xi ", - "Hao ", - "Bo ", - "Hao ", - "Ai ", - "Wei ", - "Hui ", - "Wei ", - "Ji ", - "Ci ", - "Xiang ", - "Luan ", - "Mie ", - "Yi ", - "Leng ", - "Jiang ", - "Can ", - "Shen ", - "Qiang ", - "Lian ", - "Ke ", - "Yuan ", - "Da ", - "Ti ", - "Tang ", - "Xie ", - "Bi ", - "Zhan ", - "Sun ", - "Lian ", - "Fan ", - "Ding ", - "Jie ", - "Gu ", - "Xie ", - "Shu ", - "Jian ", - "Kao ", - "Hong ", - "Sa ", - "Xin ", - "Xun ", - "Yao ", - "Hie ", - "Sou ", - "Shu ", - "Xun ", - "Dui ", - "Pin ", - "Wei ", - "Neng ", - "Chou ", - "Mai ", - "Ru ", - "Piao ", - "Tai ", - "Qi ", - "Zao ", - "Chen ", - "Zhen ", - "Er ", - "Ni ", - "Ying ", - "Gao ", - "Cong ", - "Xiao ", - "Qi ", - "Fa ", - "Jian ", - "Xu ", - "Kui ", - "Jie ", - "Bian ", - "Diao ", - "Mi ", - "Lan ", - "Jin ", - "Cang ", - "Miao ", - "Qiong ", - "Qie ", - "Xian ", - "[?] ", - "Ou ", - "Xian ", - "Su ", - "Lu ", - "Yi ", - "Xu ", - "Xie ", - "Li ", - "Yi ", - "La ", - "Lei ", - "Xiao ", - "Di ", - "Zhi ", - "Bei ", - "Teng ", - "Yao ", - "Mo ", - "Huan ", - "Piao ", - "Fan ", - "Sou ", - "Tan ", - "Tui ", - "Qiong ", - "Qiao ", - "Wei ", - "Liu ", - "Hui ", - "[?] ", - "Gao ", - "Yun ", - "[?] ", - "Li ", - "Shu ", - "Chu ", - "Ai ", - "Lin ", - "Zao ", - "Xuan ", - "Chen ", - "Lai ", - "Huo ", - "Tuo ", - "Wu ", - "Rui ", - "Rui ", - "Qi ", - "Heng ", - "Lu ", - "Su ", - "Tui ", - "Mang ", - "Yun ", - "Pin ", - "Yu ", - "Xun ", - "Ji ", - "Jiong ", - "Xian ", - "Mo ", - "Hagi ", - "Su ", - "Jiong ", - "[?] ", - "Nie ", - "Bo ", - "Rang ", - "Yi ", - "Xian ", - "Yu ", - "Ju ", - "Lian ", - "Lian ", - "Yin ", - "Qiang ", - "Ying ", - "Long ", - "Tong ", - "Wei ", - "Yue ", - "Ling ", - "Qu ", - "Yao ", - "Fan ", - "Mi ", - "Lan ", - "Kui ", - "Lan ", - "Ji ", - "Dang ", - "Katsura ", - "Lei ", - "Lei ", - "Hua ", - "Feng ", - "Zhi ", - "Wei ", - "Kui ", - "Zhan ", - "Huai ", - "Li ", - "Ji ", - "Mi ", - "Lei ", - "Huai ", - "Luo ", - "Ji ", - "Kui ", - "Lu ", - "Jian ", - "San ", - "[?] ", - "Lei ", - "Quan ", - "Xiao ", - "Yi ", - "Luan ", - "Men ", - "Bie ", - "Hu ", - "Hu ", - "Lu ", - "Nue ", - "Lu ", - "Si ", - "Xiao ", - "Qian ", - "Chu ", - "Hu ", - "Xu ", - "Cuo ", - "Fu ", - "Xu ", - "Xu ", - "Lu ", - "Hu ", - "Yu ", - "Hao ", - "Jiao ", - "Ju ", - "Guo ", - "Bao ", - "Yan ", - "Zhan ", - "Zhan ", - "Kui ", - "Ban ", - "Xi ", - "Shu ", - "Chong ", - "Qiu ", - "Diao ", - "Ji ", - "Qiu ", - "Cheng ", - "Shi ", - "[?] ", - "Di ", - "Zhe ", - "She ", - "Yu ", - "Gan ", - "Zi ", - "Hong ", - "Hui ", - "Meng ", - "Ge ", - "Sui ", - "Xia ", - "Chai ", - "Shi ", - "Yi ", - "Ma ", - "Xiang ", - "Fang ", - "E ", - "Pa ", - "Chi ", - "Qian ", - "Wen ", - "Wen ", - "Rui ", - "Bang ", - "Bi ", - "Yue ", - "Yue ", - "Jun ", - "Qi ", - "Ran ", - "Yin ", - "Qi ", - "Tian ", - "Yuan ", - "Jue ", - "Hui ", - "Qin ", - "Qi ", - "Zhong ", - "Ya ", - "Ci ", - "Mu ", - "Wang ", - "Fen ", - "Fen ", - "Hang ", - "Gong ", - "Zao ", - "Fu ", - "Ran ", - "Jie ", - "Fu ", - "Chi ", - "Dou ", - "Piao ", - "Xian ", - "Ni ", - "Te ", - "Qiu ", - "You ", - "Zha ", - "Ping ", - "Chi ", - "You ", - "He ", - "Han ", - "Ju ", - "Li ", - "Fu ", - "Ran ", - "Zha ", - "Gou ", - "Pi ", - "Bo ", - "Xian ", - "Zhu ", - "Diao ", - "Bie ", - "Bing ", - "Gu ", - "Ran ", - "Qu ", - "She ", - "Tie ", - "Ling ", - "Gu ", - "Dan ", - "Gu ", - "Ying ", - "Li ", - "Cheng ", - "Qu ", - "Mou ", - "Ge ", - "Ci ", - "Hui ", - "Hui ", - "Mang ", - "Fu ", - "Yang ", - "Wa ", - "Lie ", - "Zhu ", - "Yi ", - "Xian ", - "Kuo ", - "Jiao ", - "Li ", - "Yi ", - "Ping ", - "Ji ", - "Ha ", - "She ", - "Yi ", - "Wang ", - "Mo ", - "Qiong ", - "Qie ", - "Gui ", - "Gong ", - "Zhi ", - "Man ", - "Ebi ", - "Zhi ", - "Jia ", - "Rao ", - "Si ", - "Qi ", - "Xing ", - "Lie ", - "Qiu ", - "Shao ", - "Yong ", - "Jia ", - "Shui ", - "Che ", - "Bai ", - "E ", - "Han ", - "Shu ", - "Xuan ", - "Feng ", - "Shen ", - "Zhen ", - "Fu ", - "Xian ", - "Zhe ", - "Wu ", - "Fu ", - "Li ", - "Lang ", - "Bi ", - "Chu ", - "Yuan ", - "You ", - "Jie ", - "Dan ", - "Yan ", - "Ting ", - "Dian ", - "Shui ", - "Hui ", - "Gua ", - "Zhi ", - "Song ", - "Fei ", - "Ju ", - "Mi ", - "Qi ", - "Qi ", - "Yu ", - "Jun ", - "Zha ", - "Meng ", - "Qiang ", - "Si ", - "Xi ", - "Lun ", - "Li ", - "Die ", - "Tiao ", - "Tao ", - "Kun ", - "Gan ", - "Han ", - "Yu ", - "Bang ", - "Fei ", - "Pi ", - "Wei ", - "Dun ", - "Yi ", - "Yuan ", - "Su ", - "Quan ", - "Qian ", - "Rui ", - "Ni ", - "Qing ", - "Wei ", - "Liang ", - "Guo ", - "Wan ", - "Dong ", - "E ", - "Ban ", - "Di ", - "Wang ", - "Can ", - "Yang ", - "Ying ", - "Guo ", - "Chan ", - "[?] ", - "La ", - "Ke ", - "Ji ", - "He ", - "Ting ", - "Mai ", - "Xu ", - "Mian ", - "Yu ", - "Jie ", - "Shi ", - "Xuan ", - "Huang ", - "Yan ", - "Bian ", - "Rou ", - "Wei ", - "Fu ", - "Yuan ", - "Mei ", - "Wei ", - "Fu ", - "Ruan ", - "Xie ", - "You ", - "Qiu ", - "Mao ", - "Xia ", - "Ying ", - "Shi ", - "Chong ", - "Tang ", - "Zhu ", - "Zong ", - "Ti ", - "Fu ", - "Yuan ", - "Hui ", - "Meng ", - "La ", - "Du ", - "Hu ", - "Qiu ", - "Die ", - "Li ", - "Gua ", - "Yun ", - "Ju ", - "Nan ", - "Lou ", - "Qun ", - "Rong ", - "Ying ", - "Jiang ", - "[?] ", - "Lang ", - "Pang ", - "Si ", - "Xi ", - "Ci ", - "Xi ", - "Yuan ", - "Weng ", - "Lian ", - "Sou ", - "Ban ", - "Rong ", - "Rong ", - "Ji ", - "Wu ", - "Qiu ", - "Han ", - "Qin ", - "Yi ", - "Bi ", - "Hua ", - "Tang ", - "Yi ", - "Du ", - "Nai ", - "He ", - "Hu ", - "Hui ", - "Ma ", - "Ming ", - "Yi ", - "Wen ", - "Ying ", - "Teng ", - "Yu ", - "Cang ", - "So ", - "Ebi ", - "Man ", - "[?] ", - "Shang ", - "Zhe ", - "Cao ", - "Chi ", - "Di ", - "Ao ", - "Lu ", - "Wei ", - "Zhi ", - "Tang ", - "Chen ", - "Piao ", - "Qu ", - "Pi ", - "Yu ", - "Jian ", - "Luo ", - "Lou ", - "Qin ", - "Zhong ", - "Yin ", - "Jiang ", - "Shuai ", - "Wen ", - "Jiao ", - "Wan ", - "Zhi ", - "Zhe ", - "Ma ", - "Ma ", - "Guo ", - "Liu ", - "Mao ", - "Xi ", - "Cong ", - "Li ", - "Man ", - "Xiao ", - "Kamakiri ", - "Zhang ", - "Mang ", - "Xiang ", - "Mo ", - "Zui ", - "Si ", - "Qiu ", - "Te ", - "Zhi ", - "Peng ", - "Peng ", - "Jiao ", - "Qu ", - "Bie ", - "Liao ", - "Pan ", - "Gui ", - "Xi ", - "Ji ", - "Zhuan ", - "Huang ", - "Fei ", - "Lao ", - "Jue ", - "Jue ", - "Hui ", - "Yin ", - "Chan ", - "Jiao ", - "Shan ", - "Rao ", - "Xiao ", - "Mou ", - "Chong ", - "Xun ", - "Si ", - "[?] ", - "Cheng ", - "Dang ", - "Li ", - "Xie ", - "Shan ", - "Yi ", - "Jing ", - "Da ", - "Chan ", - "Qi ", - "Ci ", - "Xiang ", - "She ", - "Luo ", - "Qin ", - "Ying ", - "Chai ", - "Li ", - "Ze ", - "Xuan ", - "Lian ", - "Zhu ", - "Ze ", - "Xie ", - "Mang ", - "Xie ", - "Qi ", - "Rong ", - "Jian ", - "Meng ", - "Hao ", - "Ruan ", - "Huo ", - "Zhuo ", - "Jie ", - "Bin ", - "He ", - "Mie ", - "Fan ", - "Lei ", - "Jie ", - "La ", - "Mi ", - "Li ", - "Chun ", - "Li ", - "Qiu ", - "Nie ", - "Lu ", - "Du ", - "Xiao ", - "Zhu ", - "Long ", - "Li ", - "Long ", - "Feng ", - "Ye ", - "Beng ", - "Shang ", - "Gu ", - "Juan ", - "Ying ", - "[?] ", - "Xi ", - "Can ", - "Qu ", - "Quan ", - "Du ", - "Can ", - "Man ", - "Jue ", - "Jie ", - "Zhu ", - "Zha ", - "Xie ", - "Huang ", - "Niu ", - "Pei ", - "Nu ", - "Xin ", - "Zhong ", - "Mo ", - "Er ", - "Ke ", - "Mie ", - "Xi ", - "Xing ", - "Yan ", - "Kan ", - "Yuan ", - "[?] ", - "Ling ", - "Xuan ", - "Shu ", - "Xian ", - "Tong ", - "Long ", - "Jie ", - "Xian ", - "Ya ", - "Hu ", - "Wei ", - "Dao ", - "Chong ", - "Wei ", - "Dao ", - "Zhun ", - "Heng ", - "Qu ", - "Yi ", - "Yi ", - "Bu ", - "Gan ", - "Yu ", - "Biao ", - "Cha ", - "Yi ", - "Shan ", - "Chen ", - "Fu ", - "Gun ", - "Fen ", - "Shuai ", - "Jie ", - "Na ", - "Zhong ", - "Dan ", - "Ri ", - "Zhong ", - "Zhong ", - "Xie ", - "Qi ", - "Xie ", - "Ran ", - "Zhi ", - "Ren ", - "Qin ", - "Jin ", - "Jun ", - "Yuan ", - "Mei ", - "Chai ", - "Ao ", - "Niao ", - "Hui ", - "Ran ", - "Jia ", - "Tuo ", - "Ling ", - "Dai ", - "Bao ", - "Pao ", - "Yao ", - "Zuo ", - "Bi ", - "Shao ", - "Tan ", - "Ju ", - "He ", - "Shu ", - "Xiu ", - "Zhen ", - "Yi ", - "Pa ", - "Bo ", - "Di ", - "Wa ", - "Fu ", - "Gun ", - "Zhi ", - "Zhi ", - "Ran ", - "Pan ", - "Yi ", - "Mao ", - "Tuo ", - "Na ", - "Kou ", - "Xian ", - "Chan ", - "Qu ", - "Bei ", - "Gun ", - "Xi ", - "Ne ", - "Bo ", - "Horo ", - "Fu ", - "Yi ", - "Chi ", - "Ku ", - "Ren ", - "Jiang ", - "Jia ", - "Cun ", - "Mo ", - "Jie ", - "Er ", - "Luo ", - "Ru ", - "Zhu ", - "Gui ", - "Yin ", - "Cai ", - "Lie ", - "Kamishimo ", - "Yuki ", - "Zhuang ", - "Dang ", - "[?] ", - "Kun ", - "Ken ", - "Niao ", - "Shu ", - "Jia ", - "Kun ", - "Cheng ", - "Li ", - "Juan ", - "Shen ", - "Pou ", - "Ge ", - "Yi ", - "Yu ", - "Zhen ", - "Liu ", - "Qiu ", - "Qun ", - "Ji ", - "Yi ", - "Bu ", - "Zhuang ", - "Shui ", - "Sha ", - "Qun ", - "Li ", - "Lian ", - "Lian ", - "Ku ", - "Jian ", - "Fou ", - "Chan ", - "Bi ", - "Gun ", - "Tao ", - "Yuan ", - "Ling ", - "Chi ", - "Chang ", - "Chou ", - "Duo ", - "Biao ", - "Liang ", - "Chang ", - "Pei ", - "Pei ", - "Fei ", - "Yuan ", - "Luo ", - "Guo ", - "Yan ", - "Du ", - "Xi ", - "Zhi ", - "Ju ", - "Qi ", - "Ji ", - "Zhi ", - "Gua ", - "Ken ", - "Che ", - "Ti ", - "Ti ", - "Fu ", - "Chong ", - "Xie ", - "Bian ", - "Die ", - "Kun ", - "Duan ", - "Xiu ", - "Xiu ", - "He ", - "Yuan ", - "Bao ", - "Bao ", - "Fu ", - "Yu ", - "Tuan ", - "Yan ", - "Hui ", - "Bei ", - "Chu ", - "Lu ", - "Ena ", - "Hitoe ", - "Yun ", - "Da ", - "Gou ", - "Da ", - "Huai ", - "Rong ", - "Yuan ", - "Ru ", - "Nai ", - "Jiong ", - "Suo ", - "Ban ", - "Tun ", - "Chi ", - "Sang ", - "Niao ", - "Ying ", - "Jie ", - "Qian ", - "Huai ", - "Ku ", - "Lian ", - "Bao ", - "Li ", - "Zhe ", - "Shi ", - "Lu ", - "Yi ", - "Die ", - "Xie ", - "Xian ", - "Wei ", - "Biao ", - "Cao ", - "Ji ", - "Jiang ", - "Sen ", - "Bao ", - "Xiang ", - "Chihaya ", - "Pu ", - "Jian ", - "Zhuan ", - "Jian ", - "Zui ", - "Ji ", - "Dan ", - "Za ", - "Fan ", - "Bo ", - "Xiang ", - "Xin ", - "Bie ", - "Rao ", - "Man ", - "Lan ", - "Ao ", - "Duo ", - "Gui ", - "Cao ", - "Sui ", - "Nong ", - "Chan ", - "Lian ", - "Bi ", - "Jin ", - "Dang ", - "Shu ", - "Tan ", - "Bi ", - "Lan ", - "Pu ", - "Ru ", - "Zhi ", - "[?] ", - "Shu ", - "Wa ", - "Shi ", - "Bai ", - "Xie ", - "Bo ", - "Chen ", - "Lai ", - "Long ", - "Xi ", - "Xian ", - "Lan ", - "Zhe ", - "Dai ", - "Tasuki ", - "Zan ", - "Shi ", - "Jian ", - "Pan ", - "Yi ", - "Ran ", - "Ya ", - "Xi ", - "Xi ", - "Yao ", - "Feng ", - "Tan ", - "[?] ", - "Biao ", - "Fu ", - "Ba ", - "He ", - "Ji ", - "Ji ", - "Jian ", - "Guan ", - "Bian ", - "Yan ", - "Gui ", - "Jue ", - "Pian ", - "Mao ", - "Mi ", - "Mi ", - "Mie ", - "Shi ", - "Si ", - "Zhan ", - "Luo ", - "Jue ", - "Mi ", - "Tiao ", - "Lian ", - "Yao ", - "Zhi ", - "Jun ", - "Xi ", - "Shan ", - "Wei ", - "Xi ", - "Tian ", - "Yu ", - "Lan ", - "E ", - "Du ", - "Qin ", - "Pang ", - "Ji ", - "Ming ", - "Ying ", - "Gou ", - "Qu ", - "Zhan ", - "Jin ", - "Guan ", - "Deng ", - "Jian ", - "Luo ", - "Qu ", - "Jian ", - "Wei ", - "Jue ", - "Qu ", - "Luo ", - "Lan ", - "Shen ", - "Di ", - "Guan ", - "Jian ", - "Guan ", - "Yan ", - "Gui ", - "Mi ", - "Shi ", - "Zhan ", - "Lan ", - "Jue ", - "Ji ", - "Xi ", - "Di ", - "Tian ", - "Yu ", - "Gou ", - "Jin ", - "Qu ", - "Jiao ", - "Jiu ", - "Jin ", - "Cu ", - "Jue ", - "Zhi ", - "Chao ", - "Ji ", - "Gu ", - "Dan ", - "Zui ", - "Di ", - "Shang ", - "Hua ", - "Quan ", - "Ge ", - "Chi ", - "Jie ", - "Gui ", - "Gong ", - "Hong ", - "Jie ", - "Hun ", - "Qiu ", - "Xing ", - "Su ", - "Ni ", - "Ji ", - "Lu ", - "Zhi ", - "Zha ", - "Bi ", - "Xing ", - "Hu ", - "Shang ", - "Gong ", - "Zhi ", - "Xue ", - "Chu ", - "Xi ", - "Yi ", - "Lu ", - "Jue ", - "Xi ", - "Yan ", - "Xi ", - "Yan ", - "Yan ", - "Ding ", - "Fu ", - "Qiu ", - "Qiu ", - "Jiao ", - "Hong ", - "Ji ", - "Fan ", - "Xun ", - "Diao ", - "Hong ", - "Cha ", - "Tao ", - "Xu ", - "Jie ", - "Yi ", - "Ren ", - "Xun ", - "Yin ", - "Shan ", - "Qi ", - "Tuo ", - "Ji ", - "Xun ", - "Yin ", - "E ", - "Fen ", - "Ya ", - "Yao ", - "Song ", - "Shen ", - "Yin ", - "Xin ", - "Jue ", - "Xiao ", - "Ne ", - "Chen ", - "You ", - "Zhi ", - "Xiong ", - "Fang ", - "Xin ", - "Chao ", - "She ", - "Xian ", - "Sha ", - "Tun ", - "Xu ", - "Yi ", - "Yi ", - "Su ", - "Chi ", - "He ", - "Shen ", - "He ", - "Xu ", - "Zhen ", - "Zhu ", - "Zheng ", - "Gou ", - "Zi ", - "Zi ", - "Zhan ", - "Gu ", - "Fu ", - "Quan ", - "Die ", - "Ling ", - "Di ", - "Yang ", - "Li ", - "Nao ", - "Pan ", - "Zhou ", - "Gan ", - "Yi ", - "Ju ", - "Ao ", - "Zha ", - "Tuo ", - "Yi ", - "Qu ", - "Zhao ", - "Ping ", - "Bi ", - "Xiong ", - "Qu ", - "Ba ", - "Da ", - "Zu ", - "Tao ", - "Zhu ", - "Ci ", - "Zhe ", - "Yong ", - "Xu ", - "Xun ", - "Yi ", - "Huang ", - "He ", - "Shi ", - "Cha ", - "Jiao ", - "Shi ", - "Hen ", - "Cha ", - "Gou ", - "Gui ", - "Quan ", - "Hui ", - "Jie ", - "Hua ", - "Gai ", - "Xiang ", - "Wei ", - "Shen ", - "Chou ", - "Tong ", - "Mi ", - "Zhan ", - "Ming ", - "E ", - "Hui ", - "Yan ", - "Xiong ", - "Gua ", - "Er ", - "Beng ", - "Tiao ", - "Chi ", - "Lei ", - "Zhu ", - "Kuang ", - "Kua ", - "Wu ", - "Yu ", - "Teng ", - "Ji ", - "Zhi ", - "Ren ", - "Su ", - "Lang ", - "E ", - "Kuang ", - "E ", - "Shi ", - "Ting ", - "Dan ", - "Bo ", - "Chan ", - "You ", - "Heng ", - "Qiao ", - "Qin ", - "Shua ", - "An ", - "Yu ", - "Xiao ", - "Cheng ", - "Jie ", - "Xian ", - "Wu ", - "Wu ", - "Gao ", - "Song ", - "Pu ", - "Hui ", - "Jing ", - "Shuo ", - "Zhen ", - "Shuo ", - "Du ", - "Yasashi ", - "Chang ", - "Shui ", - "Jie ", - "Ke ", - "Qu ", - "Cong ", - "Xiao ", - "Sui ", - "Wang ", - "Xuan ", - "Fei ", - "Chi ", - "Ta ", - "Yi ", - "Na ", - "Yin ", - "Diao ", - "Pi ", - "Chuo ", - "Chan ", - "Chen ", - "Zhun ", - "Ji ", - "Qi ", - "Tan ", - "Zhui ", - "Wei ", - "Ju ", - "Qing ", - "Jian ", - "Zheng ", - "Ze ", - "Zou ", - "Qian ", - "Zhuo ", - "Liang ", - "Jian ", - "Zhu ", - "Hao ", - "Lun ", - "Shen ", - "Biao ", - "Huai ", - "Pian ", - "Yu ", - "Die ", - "Xu ", - "Pian ", - "Shi ", - "Xuan ", - "Shi ", - "Hun ", - "Hua ", - "E ", - "Zhong ", - "Di ", - "Xie ", - "Fu ", - "Pu ", - "Ting ", - "Jian ", - "Qi ", - "Yu ", - "Zi ", - "Chuan ", - "Xi ", - "Hui ", - "Yin ", - "An ", - "Xian ", - "Nan ", - "Chen ", - "Feng ", - "Zhu ", - "Yang ", - "Yan ", - "Heng ", - "Xuan ", - "Ge ", - "Nuo ", - "Qi ", - "Mou ", - "Ye ", - "Wei ", - "[?] ", - "Teng ", - "Zou ", - "Shan ", - "Jian ", - "Bo ", - "Ku ", - "Huang ", - "Huo ", - "Ge ", - "Ying ", - "Mi ", - "Xiao ", - "Mi ", - "Xi ", - "Qiang ", - "Chen ", - "Nue ", - "Ti ", - "Su ", - "Bang ", - "Chi ", - "Qian ", - "Shi ", - "Jiang ", - "Yuan ", - "Xie ", - "Xue ", - "Tao ", - "Yao ", - "Yao ", - "[?] ", - "Yu ", - "Biao ", - "Cong ", - "Qing ", - "Li ", - "Mo ", - "Mo ", - "Shang ", - "Zhe ", - "Miu ", - "Jian ", - "Ze ", - "Jie ", - "Lian ", - "Lou ", - "Can ", - "Ou ", - "Guan ", - "Xi ", - "Zhuo ", - "Ao ", - "Ao ", - "Jin ", - "Zhe ", - "Yi ", - "Hu ", - "Jiang ", - "Man ", - "Chao ", - "Han ", - "Hua ", - "Chan ", - "Xu ", - "Zeng ", - "Se ", - "Xi ", - "She ", - "Dui ", - "Zheng ", - "Nao ", - "Lan ", - "E ", - "Ying ", - "Jue ", - "Ji ", - "Zun ", - "Jiao ", - "Bo ", - "Hui ", - "Zhuan ", - "Mu ", - "Zen ", - "Zha ", - "Shi ", - "Qiao ", - "Tan ", - "Zen ", - "Pu ", - "Sheng ", - "Xuan ", - "Zao ", - "Tan ", - "Dang ", - "Sui ", - "Qian ", - "Ji ", - "Jiao ", - "Jing ", - "Lian ", - "Nou ", - "Yi ", - "Ai ", - "Zhan ", - "Pi ", - "Hui ", - "Hua ", - "Yi ", - "Yi ", - "Shan ", - "Rang ", - "Nou ", - "Qian ", - "Zhui ", - "Ta ", - "Hu ", - "Zhou ", - "Hao ", - "Ye ", - "Ying ", - "Jian ", - "Yu ", - "Jian ", - "Hui ", - "Du ", - "Zhe ", - "Xuan ", - "Zan ", - "Lei ", - "Shen ", - "Wei ", - "Chan ", - "Li ", - "Yi ", - "Bian ", - "Zhe ", - "Yan ", - "E ", - "Chou ", - "Wei ", - "Chou ", - "Yao ", - "Chan ", - "Rang ", - "Yin ", - "Lan ", - "Chen ", - "Huo ", - "Zhe ", - "Huan ", - "Zan ", - "Yi ", - "Dang ", - "Zhan ", - "Yan ", - "Du ", - "Yan ", - "Ji ", - "Ding ", - "Fu ", - "Ren ", - "Ji ", - "Jie ", - "Hong ", - "Tao ", - "Rang ", - "Shan ", - "Qi ", - "Tuo ", - "Xun ", - "Yi ", - "Xun ", - "Ji ", - "Ren ", - "Jiang ", - "Hui ", - "Ou ", - "Ju ", - "Ya ", - "Ne ", - "Xu ", - "E ", - "Lun ", - "Xiong ", - "Song ", - "Feng ", - "She ", - "Fang ", - "Jue ", - "Zheng ", - "Gu ", - "He ", - "Ping ", - "Zu ", - "Shi ", - "Xiong ", - "Zha ", - "Su ", - "Zhen ", - "Di ", - "Zou ", - "Ci ", - "Qu ", - "Zhao ", - "Bi ", - "Yi ", - "Yi ", - "Kuang ", - "Lei ", - "Shi ", - "Gua ", - "Shi ", - "Jie ", - "Hui ", - "Cheng ", - "Zhu ", - "Shen ", - "Hua ", - "Dan ", - "Gou ", - "Quan ", - "Gui ", - "Xun ", - "Yi ", - "Zheng ", - "Gai ", - "Xiang ", - "Cha ", - "Hun ", - "Xu ", - "Zhou ", - "Jie ", - "Wu ", - "Yu ", - "Qiao ", - "Wu ", - "Gao ", - "You ", - "Hui ", - "Kuang ", - "Shuo ", - "Song ", - "Ai ", - "Qing ", - "Zhu ", - "Zou ", - "Nuo ", - "Du ", - "Zhuo ", - "Fei ", - "Ke ", - "Wei ", - "Yu ", - "Shui ", - "Shen ", - "Diao ", - "Chan ", - "Liang ", - "Zhun ", - "Sui ", - "Tan ", - "Shen ", - "Yi ", - "Mou ", - "Chen ", - "Die ", - "Huang ", - "Jian ", - "Xie ", - "Nue ", - "Ye ", - "Wei ", - "E ", - "Yu ", - "Xuan ", - "Chan ", - "Zi ", - "An ", - "Yan ", - "Di ", - "Mi ", - "Pian ", - "Xu ", - "Mo ", - "Dang ", - "Su ", - "Xie ", - "Yao ", - "Bang ", - "Shi ", - "Qian ", - "Mi ", - "Jin ", - "Man ", - "Zhe ", - "Jian ", - "Miu ", - "Tan ", - "Zen ", - "Qiao ", - "Lan ", - "Pu ", - "Jue ", - "Yan ", - "Qian ", - "Zhan ", - "Chen ", - "Gu ", - "Qian ", - "Hong ", - "Xia ", - "Jue ", - "Hong ", - "Han ", - "Hong ", - "Xi ", - "Xi ", - "Huo ", - "Liao ", - "Han ", - "Du ", - "Long ", - "Dou ", - "Jiang ", - "Qi ", - "Shi ", - "Li ", - "Deng ", - "Wan ", - "Bi ", - "Shu ", - "Xian ", - "Feng ", - "Zhi ", - "Zhi ", - "Yan ", - "Yan ", - "Shi ", - "Chu ", - "Hui ", - "Tun ", - "Yi ", - "Tun ", - "Yi ", - "Jian ", - "Ba ", - "Hou ", - "E ", - "Cu ", - "Xiang ", - "Huan ", - "Jian ", - "Ken ", - "Gai ", - "Qu ", - "Fu ", - "Xi ", - "Bin ", - "Hao ", - "Yu ", - "Zhu ", - "Jia ", - "[?] ", - "Xi ", - "Bo ", - "Wen ", - "Huan ", - "Bin ", - "Di ", - "Zong ", - "Fen ", - "Yi ", - "Zhi ", - "Bao ", - "Chai ", - "Han ", - "Pi ", - "Na ", - "Pi ", - "Gou ", - "Na ", - "You ", - "Diao ", - "Mo ", - "Si ", - "Xiu ", - "Huan ", - "Kun ", - "He ", - "He ", - "Mo ", - "Han ", - "Mao ", - "Li ", - "Ni ", - "Bi ", - "Yu ", - "Jia ", - "Tuan ", - "Mao ", - "Pi ", - "Xi ", - "E ", - "Ju ", - "Mo ", - "Chu ", - "Tan ", - "Huan ", - "Jue ", - "Bei ", - "Zhen ", - "Yuan ", - "Fu ", - "Cai ", - "Gong ", - "Te ", - "Yi ", - "Hang ", - "Wan ", - "Pin ", - "Huo ", - "Fan ", - "Tan ", - "Guan ", - "Ze ", - "Zhi ", - "Er ", - "Zhu ", - "Shi ", - "Bi ", - "Zi ", - "Er ", - "Gui ", - "Pian ", - "Bian ", - "Mai ", - "Dai ", - "Sheng ", - "Kuang ", - "Fei ", - "Tie ", - "Yi ", - "Chi ", - "Mao ", - "He ", - "Bi ", - "Lu ", - "Ren ", - "Hui ", - "Gai ", - "Pian ", - "Zi ", - "Jia ", - "Xu ", - "Zei ", - "Jiao ", - "Gai ", - "Zang ", - "Jian ", - "Ying ", - "Xun ", - "Zhen ", - "She ", - "Bin ", - "Bin ", - "Qiu ", - "She ", - "Chuan ", - "Zang ", - "Zhou ", - "Lai ", - "Zan ", - "Si ", - "Chen ", - "Shang ", - "Tian ", - "Pei ", - "Geng ", - "Xian ", - "Mai ", - "Jian ", - "Sui ", - "Fu ", - "Tan ", - "Cong ", - "Cong ", - "Zhi ", - "Ji ", - "Zhang ", - "Du ", - "Jin ", - "Xiong ", - "Shun ", - "Yun ", - "Bao ", - "Zai ", - "Lai ", - "Feng ", - "Cang ", - "Ji ", - "Sheng ", - "Ai ", - "Zhuan ", - "Fu ", - "Gou ", - "Sai ", - "Ze ", - "Liao ", - "Wei ", - "Bai ", - "Chen ", - "Zhuan ", - "Zhi ", - "Zhui ", - "Biao ", - "Yun ", - "Zeng ", - "Tan ", - "Zan ", - "Yan ", - "[?] ", - "Shan ", - "Wan ", - "Ying ", - "Jin ", - "Gan ", - "Xian ", - "Zang ", - "Bi ", - "Du ", - "Shu ", - "Yan ", - "[?] ", - "Xuan ", - "Long ", - "Gan ", - "Zang ", - "Bei ", - "Zhen ", - "Fu ", - "Yuan ", - "Gong ", - "Cai ", - "Ze ", - "Xian ", - "Bai ", - "Zhang ", - "Huo ", - "Zhi ", - "Fan ", - "Tan ", - "Pin ", - "Bian ", - "Gou ", - "Zhu ", - "Guan ", - "Er ", - "Jian ", - "Bi ", - "Shi ", - "Tie ", - "Gui ", - "Kuang ", - "Dai ", - "Mao ", - "Fei ", - "He ", - "Yi ", - "Zei ", - "Zhi ", - "Jia ", - "Hui ", - "Zi ", - "Ren ", - "Lu ", - "Zang ", - "Zi ", - "Gai ", - "Jin ", - "Qiu ", - "Zhen ", - "Lai ", - "She ", - "Fu ", - "Du ", - "Ji ", - "Shu ", - "Shang ", - "Si ", - "Bi ", - "Zhou ", - "Geng ", - "Pei ", - "Tan ", - "Lai ", - "Feng ", - "Zhui ", - "Fu ", - "Zhuan ", - "Sai ", - "Ze ", - "Yan ", - "Zan ", - "Yun ", - "Zeng ", - "Shan ", - "Ying ", - "Gan ", - "Chi ", - "Xi ", - "She ", - "Nan ", - "Xiong ", - "Xi ", - "Cheng ", - "He ", - "Cheng ", - "Zhe ", - "Xia ", - "Tang ", - "Zou ", - "Zou ", - "Li ", - "Jiu ", - "Fu ", - "Zhao ", - "Gan ", - "Qi ", - "Shan ", - "Qiong ", - "Qin ", - "Xian ", - "Ci ", - "Jue ", - "Qin ", - "Chi ", - "Ci ", - "Chen ", - "Chen ", - "Die ", - "Ju ", - "Chao ", - "Di ", - "Se ", - "Zhan ", - "Zhu ", - "Yue ", - "Qu ", - "Jie ", - "Chi ", - "Chu ", - "Gua ", - "Xue ", - "Ci ", - "Tiao ", - "Duo ", - "Lie ", - "Gan ", - "Suo ", - "Cu ", - "Xi ", - "Zhao ", - "Su ", - "Yin ", - "Ju ", - "Jian ", - "Que ", - "Tang ", - "Chuo ", - "Cui ", - "Lu ", - "Qu ", - "Dang ", - "Qiu ", - "Zi ", - "Ti ", - "Qu ", - "Chi ", - "Huang ", - "Qiao ", - "Qiao ", - "Yao ", - "Zao ", - "Ti ", - "[?] ", - "Zan ", - "Zan ", - "Zu ", - "Pa ", - "Bao ", - "Ku ", - "Ke ", - "Dun ", - "Jue ", - "Fu ", - "Chen ", - "Jian ", - "Fang ", - "Zhi ", - "Sa ", - "Yue ", - "Pa ", - "Qi ", - "Yue ", - "Qiang ", - "Tuo ", - "Tai ", - "Yi ", - "Nian ", - "Ling ", - "Mei ", - "Ba ", - "Die ", - "Ku ", - "Tuo ", - "Jia ", - "Ci ", - "Pao ", - "Qia ", - "Zhu ", - "Ju ", - "Die ", - "Zhi ", - "Fu ", - "Pan ", - "Ju ", - "Shan ", - "Bo ", - "Ni ", - "Ju ", - "Li ", - "Gen ", - "Yi ", - "Ji ", - "Dai ", - "Xian ", - "Jiao ", - "Duo ", - "Zhu ", - "Zhuan ", - "Kua ", - "Zhuai ", - "Gui ", - "Qiong ", - "Kui ", - "Xiang ", - "Chi ", - "Lu ", - "Beng ", - "Zhi ", - "Jia ", - "Tiao ", - "Cai ", - "Jian ", - "Ta ", - "Qiao ", - "Bi ", - "Xian ", - "Duo ", - "Ji ", - "Ju ", - "Ji ", - "Shu ", - "Tu ", - "Chu ", - "Jing ", - "Nie ", - "Xiao ", - "Bo ", - "Chi ", - "Qun ", - "Mou ", - "Shu ", - "Lang ", - "Yong ", - "Jiao ", - "Chou ", - "Qiao ", - "[?] ", - "Ta ", - "Jian ", - "Qi ", - "Wo ", - "Wei ", - "Zhuo ", - "Jie ", - "Ji ", - "Nie ", - "Ju ", - "Ju ", - "Lun ", - "Lu ", - "Leng ", - "Huai ", - "Ju ", - "Chi ", - "Wan ", - "Quan ", - "Ti ", - "Bo ", - "Zu ", - "Qie ", - "Ji ", - "Cu ", - "Zong ", - "Cai ", - "Zong ", - "Peng ", - "Zhi ", - "Zheng ", - "Dian ", - "Zhi ", - "Yu ", - "Duo ", - "Dun ", - "Chun ", - "Yong ", - "Zhong ", - "Di ", - "Zhe ", - "Chen ", - "Chuai ", - "Jian ", - "Gua ", - "Tang ", - "Ju ", - "Fu ", - "Zu ", - "Die ", - "Pian ", - "Rou ", - "Nuo ", - "Ti ", - "Cha ", - "Tui ", - "Jian ", - "Dao ", - "Cuo ", - "Xi ", - "Ta ", - "Qiang ", - "Zhan ", - "Dian ", - "Ti ", - "Ji ", - "Nie ", - "Man ", - "Liu ", - "Zhan ", - "Bi ", - "Chong ", - "Lu ", - "Liao ", - "Cu ", - "Tang ", - "Dai ", - "Suo ", - "Xi ", - "Kui ", - "Ji ", - "Zhi ", - "Qiang ", - "Di ", - "Man ", - "Zong ", - "Lian ", - "Beng ", - "Zao ", - "Nian ", - "Bie ", - "Tui ", - "Ju ", - "Deng ", - "Ceng ", - "Xian ", - "Fan ", - "Chu ", - "Zhong ", - "Dun ", - "Bo ", - "Cu ", - "Zu ", - "Jue ", - "Jue ", - "Lin ", - "Ta ", - "Qiao ", - "Qiao ", - "Pu ", - "Liao ", - "Dun ", - "Cuan ", - "Kuang ", - "Zao ", - "Ta ", - "Bi ", - "Bi ", - "Zhu ", - "Ju ", - "Chu ", - "Qiao ", - "Dun ", - "Chou ", - "Ji ", - "Wu ", - "Yue ", - "Nian ", - "Lin ", - "Lie ", - "Zhi ", - "Li ", - "Zhi ", - "Chan ", - "Chu ", - "Duan ", - "Wei ", - "Long ", - "Lin ", - "Xian ", - "Wei ", - "Zuan ", - "Lan ", - "Xie ", - "Rang ", - "Xie ", - "Nie ", - "Ta ", - "Qu ", - "Jie ", - "Cuan ", - "Zuan ", - "Xi ", - "Kui ", - "Jue ", - "Lin ", - "Shen ", - "Gong ", - "Dan ", - "Segare ", - "Qu ", - "Ti ", - "Duo ", - "Duo ", - "Gong ", - "Lang ", - "Nerau ", - "Luo ", - "Ai ", - "Ji ", - "Ju ", - "Tang ", - "Utsuke ", - "[?] ", - "Yan ", - "Shitsuke ", - "Kang ", - "Qu ", - "Lou ", - "Lao ", - "Tuo ", - "Zhi ", - "Yagate ", - "Ti ", - "Dao ", - "Yagate ", - "Yu ", - "Che ", - "Ya ", - "Gui ", - "Jun ", - "Wei ", - "Yue ", - "Xin ", - "Di ", - "Xuan ", - "Fan ", - "Ren ", - "Shan ", - "Qiang ", - "Shu ", - "Tun ", - "Chen ", - "Dai ", - "E ", - "Na ", - "Qi ", - "Mao ", - "Ruan ", - "Ren ", - "Fan ", - "Zhuan ", - "Hong ", - "Hu ", - "Qu ", - "Huang ", - "Di ", - "Ling ", - "Dai ", - "Ao ", - "Zhen ", - "Fan ", - "Kuang ", - "Ang ", - "Peng ", - "Bei ", - "Gu ", - "Ku ", - "Pao ", - "Zhu ", - "Rong ", - "E ", - "Ba ", - "Zhou ", - "Zhi ", - "Yao ", - "Ke ", - "Yi ", - "Qing ", - "Shi ", - "Ping ", - "Er ", - "Qiong ", - "Ju ", - "Jiao ", - "Guang ", - "Lu ", - "Kai ", - "Quan ", - "Zhou ", - "Zai ", - "Zhi ", - "She ", - "Liang ", - "Yu ", - "Shao ", - "You ", - "Huan ", - "Yun ", - "Zhe ", - "Wan ", - "Fu ", - "Qing ", - "Zhou ", - "Ni ", - "Ling ", - "Zhe ", - "Zhan ", - "Liang ", - "Zi ", - "Hui ", - "Wang ", - "Chuo ", - "Guo ", - "Kan ", - "Yi ", - "Peng ", - "Qian ", - "Gun ", - "Nian ", - "Pian ", - "Guan ", - "Bei ", - "Lun ", - "Pai ", - "Liang ", - "Ruan ", - "Rou ", - "Ji ", - "Yang ", - "Xian ", - "Chuan ", - "Cou ", - "Qun ", - "Ge ", - "You ", - "Hong ", - "Shu ", - "Fu ", - "Zi ", - "Fu ", - "Wen ", - "Ben ", - "Zhan ", - "Yu ", - "Wen ", - "Tao ", - "Gu ", - "Zhen ", - "Xia ", - "Yuan ", - "Lu ", - "Jiu ", - "Chao ", - "Zhuan ", - "Wei ", - "Hun ", - "Sori ", - "Che ", - "Jiao ", - "Zhan ", - "Pu ", - "Lao ", - "Fen ", - "Fan ", - "Lin ", - "Ge ", - "Se ", - "Kan ", - "Huan ", - "Yi ", - "Ji ", - "Dui ", - "Er ", - "Yu ", - "Xian ", - "Hong ", - "Lei ", - "Pei ", - "Li ", - "Li ", - "Lu ", - "Lin ", - "Che ", - "Ya ", - "Gui ", - "Xuan ", - "Di ", - "Ren ", - "Zhuan ", - "E ", - "Lun ", - "Ruan ", - "Hong ", - "Ku ", - "Ke ", - "Lu ", - "Zhou ", - "Zhi ", - "Yi ", - "Hu ", - "Zhen ", - "Li ", - "Yao ", - "Qing ", - "Shi ", - "Zai ", - "Zhi ", - "Jiao ", - "Zhou ", - "Quan ", - "Lu ", - "Jiao ", - "Zhe ", - "Fu ", - "Liang ", - "Nian ", - "Bei ", - "Hui ", - "Gun ", - "Wang ", - "Liang ", - "Chuo ", - "Zi ", - "Cou ", - "Fu ", - "Ji ", - "Wen ", - "Shu ", - "Pei ", - "Yuan ", - "Xia ", - "Zhan ", - "Lu ", - "Che ", - "Lin ", - "Xin ", - "Gu ", - "Ci ", - "Ci ", - "Pi ", - "Zui ", - "Bian ", - "La ", - "La ", - "Ci ", - "Xue ", - "Ban ", - "Bian ", - "Bian ", - "Bian ", - "[?] ", - "Bian ", - "Ban ", - "Ci ", - "Bian ", - "Bian ", - "Chen ", - "Ru ", - "Nong ", - "Nong ", - "Zhen ", - "Chuo ", - "Chuo ", - "Suberu ", - "Reng ", - "Bian ", - "Bian ", - "Sip ", - "Ip ", - "Liao ", - "Da ", - "Chan ", - "Gan ", - "Qian ", - "Yu ", - "Yu ", - "Qi ", - "Xun ", - "Yi ", - "Guo ", - "Mai ", - "Qi ", - "Za ", - "Wang ", - "Jia ", - "Zhun ", - "Ying ", - "Ti ", - "Yun ", - "Jin ", - "Hang ", - "Ya ", - "Fan ", - "Wu ", - "Da ", - "E ", - "Huan ", - "Zhe ", - "Totemo ", - "Jin ", - "Yuan ", - "Wei ", - "Lian ", - "Chi ", - "Che ", - "Ni ", - "Tiao ", - "Zhi ", - "Yi ", - "Jiong ", - "Jia ", - "Chen ", - "Dai ", - "Er ", - "Di ", - "Po ", - "Wang ", - "Die ", - "Ze ", - "Tao ", - "Shu ", - "Tuo ", - "Kep ", - "Jing ", - "Hui ", - "Tong ", - "You ", - "Mi ", - "Beng ", - "Ji ", - "Nai ", - "Yi ", - "Jie ", - "Zhui ", - "Lie ", - "Xun ", - "Tui ", - "Song ", - "Gua ", - "Tao ", - "Pang ", - "Hou ", - "Ni ", - "Dun ", - "Jiong ", - "Xuan ", - "Xun ", - "Bu ", - "You ", - "Xiao ", - "Qiu ", - "Tou ", - "Zhu ", - "Qiu ", - "Di ", - "Di ", - "Tu ", - "Jing ", - "Ti ", - "Dou ", - "Yi ", - "Zhe ", - "Tong ", - "Guang ", - "Wu ", - "Shi ", - "Cheng ", - "Su ", - "Zao ", - "Qun ", - "Feng ", - "Lian ", - "Suo ", - "Hui ", - "Li ", - "Sako ", - "Lai ", - "Ben ", - "Cuo ", - "Jue ", - "Beng ", - "Huan ", - "Dai ", - "Lu ", - "You ", - "Zhou ", - "Jin ", - "Yu ", - "Chuo ", - "Kui ", - "Wei ", - "Ti ", - "Yi ", - "Da ", - "Yuan ", - "Luo ", - "Bi ", - "Nuo ", - "Yu ", - "Dang ", - "Sui ", - "Dun ", - "Sui ", - "Yan ", - "Chuan ", - "Chi ", - "Ti ", - "Yu ", - "Shi ", - "Zhen ", - "You ", - "Yun ", - "E ", - "Bian ", - "Guo ", - "E ", - "Xia ", - "Huang ", - "Qiu ", - "Dao ", - "Da ", - "Wei ", - "Appare ", - "Yi ", - "Gou ", - "Yao ", - "Chu ", - "Liu ", - "Xun ", - "Ta ", - "Di ", - "Chi ", - "Yuan ", - "Su ", - "Ta ", - "Qian ", - "[?] ", - "Yao ", - "Guan ", - "Zhang ", - "Ao ", - "Shi ", - "Ce ", - "Chi ", - "Su ", - "Zao ", - "Zhe ", - "Dun ", - "Di ", - "Lou ", - "Chi ", - "Cuo ", - "Lin ", - "Zun ", - "Rao ", - "Qian ", - "Xuan ", - "Yu ", - "Yi ", - "Wu ", - "Liao ", - "Ju ", - "Shi ", - "Bi ", - "Yao ", - "Mai ", - "Xie ", - "Sui ", - "Huan ", - "Zhan ", - "Teng ", - "Er ", - "Miao ", - "Bian ", - "Bian ", - "La ", - "Li ", - "Yuan ", - "Yao ", - "Luo ", - "Li ", - "Yi ", - "Ting ", - "Deng ", - "Qi ", - "Yong ", - "Shan ", - "Han ", - "Yu ", - "Mang ", - "Ru ", - "Qiong ", - "[?] ", - "Kuang ", - "Fu ", - "Kang ", - "Bin ", - "Fang ", - "Xing ", - "Na ", - "Xin ", - "Shen ", - "Bang ", - "Yuan ", - "Cun ", - "Huo ", - "Xie ", - "Bang ", - "Wu ", - "Ju ", - "You ", - "Han ", - "Tai ", - "Qiu ", - "Bi ", - "Pei ", - "Bing ", - "Shao ", - "Bei ", - "Wa ", - "Di ", - "Zou ", - "Ye ", - "Lin ", - "Kuang ", - "Gui ", - "Zhu ", - "Shi ", - "Ku ", - "Yu ", - "Gai ", - "Ge ", - "Xi ", - "Zhi ", - "Ji ", - "Xun ", - "Hou ", - "Xing ", - "Jiao ", - "Xi ", - "Gui ", - "Nuo ", - "Lang ", - "Jia ", - "Kuai ", - "Zheng ", - "Otoko ", - "Yun ", - "Yan ", - "Cheng ", - "Dou ", - "Chi ", - "Lu ", - "Fu ", - "Wu ", - "Fu ", - "Gao ", - "Hao ", - "Lang ", - "Jia ", - "Geng ", - "Jun ", - "Ying ", - "Bo ", - "Xi ", - "Bei ", - "Li ", - "Yun ", - "Bu ", - "Xiao ", - "Qi ", - "Pi ", - "Qing ", - "Guo ", - "Zhou ", - "Tan ", - "Zou ", - "Ping ", - "Lai ", - "Ni ", - "Chen ", - "You ", - "Bu ", - "Xiang ", - "Dan ", - "Ju ", - "Yong ", - "Qiao ", - "Yi ", - "Du ", - "Yan ", - "Mei ", - "Ruo ", - "Bei ", - "E ", - "Yu ", - "Juan ", - "Yu ", - "Yun ", - "Hou ", - "Kui ", - "Xiang ", - "Xiang ", - "Sou ", - "Tang ", - "Ming ", - "Xi ", - "Ru ", - "Chu ", - "Zi ", - "Zou ", - "Ju ", - "Wu ", - "Xiang ", - "Yun ", - "Hao ", - "Yong ", - "Bi ", - "Mo ", - "Chao ", - "Fu ", - "Liao ", - "Yin ", - "Zhuan ", - "Hu ", - "Qiao ", - "Yan ", - "Zhang ", - "Fan ", - "Qiao ", - "Xu ", - "Deng ", - "Bi ", - "Xin ", - "Bi ", - "Ceng ", - "Wei ", - "Zheng ", - "Mao ", - "Shan ", - "Lin ", - "Po ", - "Dan ", - "Meng ", - "Ye ", - "Cao ", - "Kuai ", - "Feng ", - "Meng ", - "Zou ", - "Kuang ", - "Lian ", - "Zan ", - "Chan ", - "You ", - "Qi ", - "Yan ", - "Chan ", - "Zan ", - "Ling ", - "Huan ", - "Xi ", - "Feng ", - "Zan ", - "Li ", - "You ", - "Ding ", - "Qiu ", - "Zhuo ", - "Pei ", - "Zhou ", - "Yi ", - "Hang ", - "Yu ", - "Jiu ", - "Yan ", - "Zui ", - "Mao ", - "Dan ", - "Xu ", - "Tou ", - "Zhen ", - "Fen ", - "Sakenomoto ", - "[?] ", - "Yun ", - "Tai ", - "Tian ", - "Qia ", - "Tuo ", - "Zuo ", - "Han ", - "Gu ", - "Su ", - "Po ", - "Chou ", - "Zai ", - "Ming ", - "Luo ", - "Chuo ", - "Chou ", - "You ", - "Tong ", - "Zhi ", - "Xian ", - "Jiang ", - "Cheng ", - "Yin ", - "Tu ", - "Xiao ", - "Mei ", - "Ku ", - "Suan ", - "Lei ", - "Pu ", - "Zui ", - "Hai ", - "Yan ", - "Xi ", - "Niang ", - "Wei ", - "Lu ", - "Lan ", - "Yan ", - "Tao ", - "Pei ", - "Zhan ", - "Chun ", - "Tan ", - "Zui ", - "Chuo ", - "Cu ", - "Kun ", - "Ti ", - "Mian ", - "Du ", - "Hu ", - "Xu ", - "Xing ", - "Tan ", - "Jiu ", - "Chun ", - "Yun ", - "Po ", - "Ke ", - "Sou ", - "Mi ", - "Quan ", - "Chou ", - "Cuo ", - "Yun ", - "Yong ", - "Ang ", - "Zha ", - "Hai ", - "Tang ", - "Jiang ", - "Piao ", - "Shan ", - "Yu ", - "Li ", - "Zao ", - "Lao ", - "Yi ", - "Jiang ", - "Pu ", - "Jiao ", - "Xi ", - "Tan ", - "Po ", - "Nong ", - "Yi ", - "Li ", - "Ju ", - "Jiao ", - "Yi ", - "Niang ", - "Ru ", - "Xun ", - "Chou ", - "Yan ", - "Ling ", - "Mi ", - "Mi ", - "Niang ", - "Xin ", - "Jiao ", - "Xi ", - "Mi ", - "Yan ", - "Bian ", - "Cai ", - "Shi ", - "You ", - "Shi ", - "Shi ", - "Li ", - "Zhong ", - "Ye ", - "Liang ", - "Li ", - "Jin ", - "Jin ", - "Qiu ", - "Yi ", - "Diao ", - "Dao ", - "Zhao ", - "Ding ", - "Po ", - "Qiu ", - "He ", - "Fu ", - "Zhen ", - "Zhi ", - "Ba ", - "Luan ", - "Fu ", - "Nai ", - "Diao ", - "Shan ", - "Qiao ", - "Kou ", - "Chuan ", - "Zi ", - "Fan ", - "Yu ", - "Hua ", - "Han ", - "Gong ", - "Qi ", - "Mang ", - "Ri ", - "Di ", - "Si ", - "Xi ", - "Yi ", - "Chai ", - "Shi ", - "Tu ", - "Xi ", - "Nu ", - "Qian ", - "Ishiyumi ", - "Jian ", - "Pi ", - "Ye ", - "Yin ", - "Ba ", - "Fang ", - "Chen ", - "Xing ", - "Tou ", - "Yue ", - "Yan ", - "Fu ", - "Pi ", - "Na ", - "Xin ", - "E ", - "Jue ", - "Dun ", - "Gou ", - "Yin ", - "Qian ", - "Ban ", - "Ji ", - "Ren ", - "Chao ", - "Niu ", - "Fen ", - "Yun ", - "Ji ", - "Qin ", - "Pi ", - "Guo ", - "Hong ", - "Yin ", - "Jun ", - "Shi ", - "Yi ", - "Zhong ", - "Nie ", - "Gai ", - "Ri ", - "Huo ", - "Tai ", - "Kang ", - "Habaki ", - "Irori ", - "Ngaak ", - "[?] ", - "Duo ", - "Zi ", - "Ni ", - "Tu ", - "Shi ", - "Min ", - "Gu ", - "E ", - "Ling ", - "Bing ", - "Yi ", - "Gu ", - "Ba ", - "Pi ", - "Yu ", - "Si ", - "Zuo ", - "Bu ", - "You ", - "Dian ", - "Jia ", - "Zhen ", - "Shi ", - "Shi ", - "Tie ", - "Ju ", - "Zhan ", - "Shi ", - "She ", - "Xuan ", - "Zhao ", - "Bao ", - "He ", - "Bi ", - "Sheng ", - "Chu ", - "Shi ", - "Bo ", - "Zhu ", - "Chi ", - "Za ", - "Po ", - "Tong ", - "Qian ", - "Fu ", - "Zhai ", - "Liu ", - "Qian ", - "Fu ", - "Li ", - "Yue ", - "Pi ", - "Yang ", - "Ban ", - "Bo ", - "Jie ", - "Gou ", - "Shu ", - "Zheng ", - "Mu ", - "Ni ", - "Nie ", - "Di ", - "Jia ", - "Mu ", - "Dan ", - "Shen ", - "Yi ", - "Si ", - "Kuang ", - "Ka ", - "Bei ", - "Jian ", - "Tong ", - "Xing ", - "Hong ", - "Jiao ", - "Chi ", - "Er ", - "Ge ", - "Bing ", - "Shi ", - "Mou ", - "Jia ", - "Yin ", - "Jun ", - "Zhou ", - "Chong ", - "Shang ", - "Tong ", - "Mo ", - "Lei ", - "Ji ", - "Yu ", - "Xu ", - "Ren ", - "Zun ", - "Zhi ", - "Qiong ", - "Shan ", - "Chi ", - "Xian ", - "Xing ", - "Quan ", - "Pi ", - "Tie ", - "Zhu ", - "Hou ", - "Ming ", - "Kua ", - "Yao ", - "Xian ", - "Xian ", - "Xiu ", - "Jun ", - "Cha ", - "Lao ", - "Ji ", - "Pi ", - "Ru ", - "Mi ", - "Yi ", - "Yin ", - "Guang ", - "An ", - "Diou ", - "You ", - "Se ", - "Kao ", - "Qian ", - "Luan ", - "Kasugai ", - "Ai ", - "Diao ", - "Han ", - "Rui ", - "Shi ", - "Keng ", - "Qiu ", - "Xiao ", - "Zhe ", - "Xiu ", - "Zang ", - "Ti ", - "Cuo ", - "Gua ", - "Gong ", - "Zhong ", - "Dou ", - "Lu ", - "Mei ", - "Lang ", - "Wan ", - "Xin ", - "Yun ", - "Bei ", - "Wu ", - "Su ", - "Yu ", - "Chan ", - "Ting ", - "Bo ", - "Han ", - "Jia ", - "Hong ", - "Cuan ", - "Feng ", - "Chan ", - "Wan ", - "Zhi ", - "Si ", - "Xuan ", - "Wu ", - "Wu ", - "Tiao ", - "Gong ", - "Zhuo ", - "Lue ", - "Xing ", - "Qian ", - "Shen ", - "Han ", - "Lue ", - "Xie ", - "Chu ", - "Zheng ", - "Ju ", - "Xian ", - "Tie ", - "Mang ", - "Pu ", - "Li ", - "Pan ", - "Rui ", - "Cheng ", - "Gao ", - "Li ", - "Te ", - "Pyeng ", - "Zhu ", - "[?] ", - "Tu ", - "Liu ", - "Zui ", - "Ju ", - "Chang ", - "Yuan ", - "Jian ", - "Gang ", - "Diao ", - "Tao ", - "Chang ", - "Lun ", - "Kua ", - "Ling ", - "Bei ", - "Lu ", - "Li ", - "Qiang ", - "Pou ", - "Juan ", - "Min ", - "Zui ", - "Peng ", - "An ", - "Pi ", - "Xian ", - "Ya ", - "Zhui ", - "Lei ", - "A ", - "Kong ", - "Ta ", - "Kun ", - "Du ", - "Wei ", - "Chui ", - "Zi ", - "Zheng ", - "Ben ", - "Nie ", - "Cong ", - "Qun ", - "Tan ", - "Ding ", - "Qi ", - "Qian ", - "Zhuo ", - "Qi ", - "Yu ", - "Jin ", - "Guan ", - "Mao ", - "Chang ", - "Tian ", - "Xi ", - "Lian ", - "Tao ", - "Gu ", - "Cuo ", - "Shu ", - "Zhen ", - "Lu ", - "Meng ", - "Lu ", - "Hua ", - "Biao ", - "Ga ", - "Lai ", - "Ken ", - "Kazari ", - "Bu ", - "Nai ", - "Wan ", - "Zan ", - "[?] ", - "De ", - "Xian ", - "[?] ", - "Huo ", - "Liang ", - "[?] ", - "Men ", - "Kai ", - "Ying ", - "Di ", - "Lian ", - "Guo ", - "Xian ", - "Du ", - "Tu ", - "Wei ", - "Cong ", - "Fu ", - "Rou ", - "Ji ", - "E ", - "Rou ", - "Chen ", - "Ti ", - "Zha ", - "Hong ", - "Yang ", - "Duan ", - "Xia ", - "Yu ", - "Keng ", - "Xing ", - "Huang ", - "Wei ", - "Fu ", - "Zhao ", - "Cha ", - "Qie ", - "She ", - "Hong ", - "Kui ", - "Tian ", - "Mou ", - "Qiao ", - "Qiao ", - "Hou ", - "Tou ", - "Cong ", - "Huan ", - "Ye ", - "Min ", - "Jian ", - "Duan ", - "Jian ", - "Song ", - "Kui ", - "Hu ", - "Xuan ", - "Duo ", - "Jie ", - "Zhen ", - "Bian ", - "Zhong ", - "Zi ", - "Xiu ", - "Ye ", - "Mei ", - "Pai ", - "Ai ", - "Jie ", - "[?] ", - "Mei ", - "Chuo ", - "Ta ", - "Bang ", - "Xia ", - "Lian ", - "Suo ", - "Xi ", - "Liu ", - "Zu ", - "Ye ", - "Nou ", - "Weng ", - "Rong ", - "Tang ", - "Suo ", - "Qiang ", - "Ge ", - "Shuo ", - "Chui ", - "Bo ", - "Pan ", - "Sa ", - "Bi ", - "Sang ", - "Gang ", - "Zi ", - "Wu ", - "Ying ", - "Huang ", - "Tiao ", - "Liu ", - "Kai ", - "Sun ", - "Sha ", - "Sou ", - "Wan ", - "Hao ", - "Zhen ", - "Zhen ", - "Luo ", - "Yi ", - "Yuan ", - "Tang ", - "Nie ", - "Xi ", - "Jia ", - "Ge ", - "Ma ", - "Juan ", - "Kasugai ", - "Habaki ", - "Suo ", - "[?] ", - "[?] ", - "[?] ", - "Na ", - "Lu ", - "Suo ", - "Ou ", - "Zu ", - "Tuan ", - "Xiu ", - "Guan ", - "Xuan ", - "Lian ", - "Shou ", - "Ao ", - "Man ", - "Mo ", - "Luo ", - "Bi ", - "Wei ", - "Liu ", - "Di ", - "Qiao ", - "Cong ", - "Yi ", - "Lu ", - "Ao ", - "Keng ", - "Qiang ", - "Cui ", - "Qi ", - "Chang ", - "Tang ", - "Man ", - "Yong ", - "Chan ", - "Feng ", - "Jing ", - "Biao ", - "Shu ", - "Lou ", - "Xiu ", - "Cong ", - "Long ", - "Zan ", - "Jian ", - "Cao ", - "Li ", - "Xia ", - "Xi ", - "Kang ", - "[?] ", - "Beng ", - "[?] ", - "[?] ", - "Zheng ", - "Lu ", - "Hua ", - "Ji ", - "Pu ", - "Hui ", - "Qiang ", - "Po ", - "Lin ", - "Suo ", - "Xiu ", - "San ", - "Cheng ", - "Kui ", - "Si ", - "Liu ", - "Nao ", - "Heng ", - "Pie ", - "Sui ", - "Fan ", - "Qiao ", - "Quan ", - "Yang ", - "Tang ", - "Xiang ", - "Jue ", - "Jiao ", - "Zun ", - "Liao ", - "Jie ", - "Lao ", - "Dui ", - "Tan ", - "Zan ", - "Ji ", - "Jian ", - "Zhong ", - "Deng ", - "Ya ", - "Ying ", - "Dui ", - "Jue ", - "Nou ", - "Ti ", - "Pu ", - "Tie ", - "[?] ", - "[?] ", - "Ding ", - "Shan ", - "Kai ", - "Jian ", - "Fei ", - "Sui ", - "Lu ", - "Juan ", - "Hui ", - "Yu ", - "Lian ", - "Zhuo ", - "Qiao ", - "Qian ", - "Zhuo ", - "Lei ", - "Bi ", - "Tie ", - "Huan ", - "Ye ", - "Duo ", - "Guo ", - "Dang ", - "Ju ", - "Fen ", - "Da ", - "Bei ", - "Yi ", - "Ai ", - "Zong ", - "Xun ", - "Diao ", - "Zhu ", - "Heng ", - "Zhui ", - "Ji ", - "Nie ", - "Ta ", - "Huo ", - "Qing ", - "Bin ", - "Ying ", - "Kui ", - "Ning ", - "Xu ", - "Jian ", - "Jian ", - "Yari ", - "Cha ", - "Zhi ", - "Mie ", - "Li ", - "Lei ", - "Ji ", - "Zuan ", - "Kuang ", - "Shang ", - "Peng ", - "La ", - "Du ", - "Shuo ", - "Chuo ", - "Lu ", - "Biao ", - "Bao ", - "Lu ", - "[?] ", - "[?] ", - "Long ", - "E ", - "Lu ", - "Xin ", - "Jian ", - "Lan ", - "Bo ", - "Jian ", - "Yao ", - "Chan ", - "Xiang ", - "Jian ", - "Xi ", - "Guan ", - "Cang ", - "Nie ", - "Lei ", - "Cuan ", - "Qu ", - "Pan ", - "Luo ", - "Zuan ", - "Luan ", - "Zao ", - "Nie ", - "Jue ", - "Tang ", - "Shu ", - "Lan ", - "Jin ", - "Qiu ", - "Yi ", - "Zhen ", - "Ding ", - "Zhao ", - "Po ", - "Diao ", - "Tu ", - "Qian ", - "Chuan ", - "Shan ", - "Ji ", - "Fan ", - "Diao ", - "Men ", - "Nu ", - "Xi ", - "Chai ", - "Xing ", - "Gai ", - "Bu ", - "Tai ", - "Ju ", - "Dun ", - "Chao ", - "Zhong ", - "Na ", - "Bei ", - "Gang ", - "Ban ", - "Qian ", - "Yao ", - "Qin ", - "Jun ", - "Wu ", - "Gou ", - "Kang ", - "Fang ", - "Huo ", - "Tou ", - "Niu ", - "Ba ", - "Yu ", - "Qian ", - "Zheng ", - "Qian ", - "Gu ", - "Bo ", - "E ", - "Po ", - "Bu ", - "Ba ", - "Yue ", - "Zuan ", - "Mu ", - "Dan ", - "Jia ", - "Dian ", - "You ", - "Tie ", - "Bo ", - "Ling ", - "Shuo ", - "Qian ", - "Liu ", - "Bao ", - "Shi ", - "Xuan ", - "She ", - "Bi ", - "Ni ", - "Pi ", - "Duo ", - "Xing ", - "Kao ", - "Lao ", - "Er ", - "Mang ", - "Ya ", - "You ", - "Cheng ", - "Jia ", - "Ye ", - "Nao ", - "Zhi ", - "Dang ", - "Tong ", - "Lu ", - "Diao ", - "Yin ", - "Kai ", - "Zha ", - "Zhu ", - "Xian ", - "Ting ", - "Diu ", - "Xian ", - "Hua ", - "Quan ", - "Sha ", - "Jia ", - "Yao ", - "Ge ", - "Ming ", - "Zheng ", - "Se ", - "Jiao ", - "Yi ", - "Chan ", - "Chong ", - "Tang ", - "An ", - "Yin ", - "Ru ", - "Zhu ", - "Lao ", - "Pu ", - "Wu ", - "Lai ", - "Te ", - "Lian ", - "Keng ", - "Xiao ", - "Suo ", - "Li ", - "Zheng ", - "Chu ", - "Guo ", - "Gao ", - "Tie ", - "Xiu ", - "Cuo ", - "Lue ", - "Feng ", - "Xin ", - "Liu ", - "Kai ", - "Jian ", - "Rui ", - "Ti ", - "Lang ", - "Qian ", - "Ju ", - "A ", - "Qiang ", - "Duo ", - "Tian ", - "Cuo ", - "Mao ", - "Ben ", - "Qi ", - "De ", - "Kua ", - "Kun ", - "Chang ", - "Xi ", - "Gu ", - "Luo ", - "Chui ", - "Zhui ", - "Jin ", - "Zhi ", - "Xian ", - "Juan ", - "Huo ", - "Pou ", - "Tan ", - "Ding ", - "Jian ", - "Ju ", - "Meng ", - "Zi ", - "Qie ", - "Ying ", - "Kai ", - "Qiang ", - "Song ", - "E ", - "Cha ", - "Qiao ", - "Zhong ", - "Duan ", - "Sou ", - "Huang ", - "Huan ", - "Ai ", - "Du ", - "Mei ", - "Lou ", - "Zi ", - "Fei ", - "Mei ", - "Mo ", - "Zhen ", - "Bo ", - "Ge ", - "Nie ", - "Tang ", - "Juan ", - "Nie ", - "Na ", - "Liu ", - "Hao ", - "Bang ", - "Yi ", - "Jia ", - "Bin ", - "Rong ", - "Biao ", - "Tang ", - "Man ", - "Luo ", - "Beng ", - "Yong ", - "Jing ", - "Di ", - "Zu ", - "Xuan ", - "Liu ", - "Tan ", - "Jue ", - "Liao ", - "Pu ", - "Lu ", - "Dui ", - "Lan ", - "Pu ", - "Cuan ", - "Qiang ", - "Deng ", - "Huo ", - "Lei ", - "Huan ", - "Zhuo ", - "Lian ", - "Yi ", - "Cha ", - "Biao ", - "La ", - "Chan ", - "Xiang ", - "Chang ", - "Chang ", - "Jiu ", - "Ao ", - "Die ", - "Qu ", - "Liao ", - "Mi ", - "Chang ", - "Men ", - "Ma ", - "Shuan ", - "Shan ", - "Huo ", - "Men ", - "Yan ", - "Bi ", - "Han ", - "Bi ", - "San ", - "Kai ", - "Kang ", - "Beng ", - "Hong ", - "Run ", - "San ", - "Xian ", - "Xian ", - "Jian ", - "Min ", - "Xia ", - "Yuru ", - "Dou ", - "Zha ", - "Nao ", - "Jian ", - "Peng ", - "Xia ", - "Ling ", - "Bian ", - "Bi ", - "Run ", - "He ", - "Guan ", - "Ge ", - "Ge ", - "Fa ", - "Chu ", - "Hong ", - "Gui ", - "Min ", - "Se ", - "Kun ", - "Lang ", - "Lu ", - "Ting ", - "Sha ", - "Ju ", - "Yue ", - "Yue ", - "Chan ", - "Qu ", - "Lin ", - "Chang ", - "Shai ", - "Kun ", - "Yan ", - "Min ", - "Yan ", - "E ", - "Hun ", - "Yu ", - "Wen ", - "Xiang ", - "Bao ", - "Xiang ", - "Qu ", - "Yao ", - "Wen ", - "Ban ", - "An ", - "Wei ", - "Yin ", - "Kuo ", - "Que ", - "Lan ", - "Du ", - "[?] ", - "Phwung ", - "Tian ", - "Nie ", - "Ta ", - "Kai ", - "He ", - "Que ", - "Chuang ", - "Guan ", - "Dou ", - "Qi ", - "Kui ", - "Tang ", - "Guan ", - "Piao ", - "Kan ", - "Xi ", - "Hui ", - "Chan ", - "Pi ", - "Dang ", - "Huan ", - "Ta ", - "Wen ", - "[?] ", - "Men ", - "Shuan ", - "Shan ", - "Yan ", - "Han ", - "Bi ", - "Wen ", - "Chuang ", - "Run ", - "Wei ", - "Xian ", - "Hong ", - "Jian ", - "Min ", - "Kang ", - "Men ", - "Zha ", - "Nao ", - "Gui ", - "Wen ", - "Ta ", - "Min ", - "Lu ", - "Kai ", - "Fa ", - "Ge ", - "He ", - "Kun ", - "Jiu ", - "Yue ", - "Lang ", - "Du ", - "Yu ", - "Yan ", - "Chang ", - "Xi ", - "Wen ", - "Hun ", - "Yan ", - "E ", - "Chan ", - "Lan ", - "Qu ", - "Hui ", - "Kuo ", - "Que ", - "Ge ", - "Tian ", - "Ta ", - "Que ", - "Kan ", - "Huan ", - "Fu ", - "Fu ", - "Le ", - "Dui ", - "Xin ", - "Qian ", - "Wu ", - "Yi ", - "Tuo ", - "Yin ", - "Yang ", - "Dou ", - "E ", - "Sheng ", - "Ban ", - "Pei ", - "Keng ", - "Yun ", - "Ruan ", - "Zhi ", - "Pi ", - "Jing ", - "Fang ", - "Yang ", - "Yin ", - "Zhen ", - "Jie ", - "Cheng ", - "E ", - "Qu ", - "Di ", - "Zu ", - "Zuo ", - "Dian ", - "Ling ", - "A ", - "Tuo ", - "Tuo ", - "Po ", - "Bing ", - "Fu ", - "Ji ", - "Lu ", - "Long ", - "Chen ", - "Xing ", - "Duo ", - "Lou ", - "Mo ", - "Jiang ", - "Shu ", - "Duo ", - "Xian ", - "Er ", - "Gui ", - "Yu ", - "Gai ", - "Shan ", - "Xun ", - "Qiao ", - "Xing ", - "Chun ", - "Fu ", - "Bi ", - "Xia ", - "Shan ", - "Sheng ", - "Zhi ", - "Pu ", - "Dou ", - "Yuan ", - "Zhen ", - "Chu ", - "Xian ", - "Tou ", - "Nie ", - "Yun ", - "Xian ", - "Pei ", - "Pei ", - "Zou ", - "Yi ", - "Dui ", - "Lun ", - "Yin ", - "Ju ", - "Chui ", - "Chen ", - "Pi ", - "Ling ", - "Tao ", - "Xian ", - "Lu ", - "Sheng ", - "Xian ", - "Yin ", - "Zhu ", - "Yang ", - "Reng ", - "Shan ", - "Chong ", - "Yan ", - "Yin ", - "Yu ", - "Ti ", - "Yu ", - "Long ", - "Wei ", - "Wei ", - "Nie ", - "Dui ", - "Sui ", - "An ", - "Huang ", - "Jie ", - "Sui ", - "Yin ", - "Gai ", - "Yan ", - "Hui ", - "Ge ", - "Yun ", - "Wu ", - "Wei ", - "Ai ", - "Xi ", - "Tang ", - "Ji ", - "Zhang ", - "Dao ", - "Ao ", - "Xi ", - "Yin ", - "[?] ", - "Rao ", - "Lin ", - "Tui ", - "Deng ", - "Pi ", - "Sui ", - "Sui ", - "Yu ", - "Xian ", - "Fen ", - "Ni ", - "Er ", - "Ji ", - "Dao ", - "Xi ", - "Yin ", - "E ", - "Hui ", - "Long ", - "Xi ", - "Li ", - "Li ", - "Li ", - "Zhui ", - "He ", - "Zhi ", - "Zhun ", - "Jun ", - "Nan ", - "Yi ", - "Que ", - "Yan ", - "Qian ", - "Ya ", - "Xiong ", - "Ya ", - "Ji ", - "Gu ", - "Huan ", - "Zhi ", - "Gou ", - "Jun ", - "Ci ", - "Yong ", - "Ju ", - "Chu ", - "Hu ", - "Za ", - "Luo ", - "Yu ", - "Chou ", - "Diao ", - "Sui ", - "Han ", - "Huo ", - "Shuang ", - "Guan ", - "Chu ", - "Za ", - "Yong ", - "Ji ", - "Xi ", - "Chou ", - "Liu ", - "Li ", - "Nan ", - "Xue ", - "Za ", - "Ji ", - "Ji ", - "Yu ", - "Yu ", - "Xue ", - "Na ", - "Fou ", - "Se ", - "Mu ", - "Wen ", - "Fen ", - "Pang ", - "Yun ", - "Li ", - "Li ", - "Ang ", - "Ling ", - "Lei ", - "An ", - "Bao ", - "Meng ", - "Dian ", - "Dang ", - "Xing ", - "Wu ", - "Zhao ", - "Xu ", - "Ji ", - "Mu ", - "Chen ", - "Xiao ", - "Zha ", - "Ting ", - "Zhen ", - "Pei ", - "Mei ", - "Ling ", - "Qi ", - "Chou ", - "Huo ", - "Sha ", - "Fei ", - "Weng ", - "Zhan ", - "Yin ", - "Ni ", - "Chou ", - "Tun ", - "Lin ", - "[?] ", - "Dong ", - "Ying ", - "Wu ", - "Ling ", - "Shuang ", - "Ling ", - "Xia ", - "Hong ", - "Yin ", - "Mo ", - "Mai ", - "Yun ", - "Liu ", - "Meng ", - "Bin ", - "Wu ", - "Wei ", - "Huo ", - "Yin ", - "Xi ", - "Yi ", - "Ai ", - "Dan ", - "Deng ", - "Xian ", - "Yu ", - "Lu ", - "Long ", - "Dai ", - "Ji ", - "Pang ", - "Yang ", - "Ba ", - "Pi ", - "Wei ", - "[?] ", - "Xi ", - "Ji ", - "Mai ", - "Meng ", - "Meng ", - "Lei ", - "Li ", - "Huo ", - "Ai ", - "Fei ", - "Dai ", - "Long ", - "Ling ", - "Ai ", - "Feng ", - "Li ", - "Bao ", - "[?] ", - "He ", - "He ", - "Bing ", - "Qing ", - "Qing ", - "Jing ", - "Tian ", - "Zhen ", - "Jing ", - "Cheng ", - "Qing ", - "Jing ", - "Jing ", - "Dian ", - "Jing ", - "Tian ", - "Fei ", - "Fei ", - "Kao ", - "Mi ", - "Mian ", - "Mian ", - "Pao ", - "Ye ", - "Tian ", - "Hui ", - "Ye ", - "Ge ", - "Ding ", - "Cha ", - "Jian ", - "Ren ", - "Di ", - "Du ", - "Wu ", - "Ren ", - "Qin ", - "Jin ", - "Xue ", - "Niu ", - "Ba ", - "Yin ", - "Sa ", - "Na ", - "Mo ", - "Zu ", - "Da ", - "Ban ", - "Yi ", - "Yao ", - "Tao ", - "Tuo ", - "Jia ", - "Hong ", - "Pao ", - "Yang ", - "Tomo ", - "Yin ", - "Jia ", - "Tao ", - "Ji ", - "Xie ", - "An ", - "An ", - "Hen ", - "Gong ", - "Kohaze ", - "Da ", - "Qiao ", - "Ting ", - "Wan ", - "Ying ", - "Sui ", - "Tiao ", - "Qiao ", - "Xuan ", - "Kong ", - "Beng ", - "Ta ", - "Zhang ", - "Bing ", - "Kuo ", - "Ju ", - "La ", - "Xie ", - "Rou ", - "Bang ", - "Yi ", - "Qiu ", - "Qiu ", - "He ", - "Xiao ", - "Mu ", - "Ju ", - "Jian ", - "Bian ", - "Di ", - "Jian ", - "On ", - "Tao ", - "Gou ", - "Ta ", - "Bei ", - "Xie ", - "Pan ", - "Ge ", - "Bi ", - "Kuo ", - "Tang ", - "Lou ", - "Gui ", - "Qiao ", - "Xue ", - "Ji ", - "Jian ", - "Jiang ", - "Chan ", - "Da ", - "Huo ", - "Xian ", - "Qian ", - "Du ", - "Wa ", - "Jian ", - "Lan ", - "Wei ", - "Ren ", - "Fu ", - "Mei ", - "Juan ", - "Ge ", - "Wei ", - "Qiao ", - "Han ", - "Chang ", - "[?] ", - "Rou ", - "Xun ", - "She ", - "Wei ", - "Ge ", - "Bei ", - "Tao ", - "Gou ", - "Yun ", - "[?] ", - "Bi ", - "Wei ", - "Hui ", - "Du ", - "Wa ", - "Du ", - "Wei ", - "Ren ", - "Fu ", - "Han ", - "Wei ", - "Yun ", - "Tao ", - "Jiu ", - "Jiu ", - "Xian ", - "Xie ", - "Xian ", - "Ji ", - "Yin ", - "Za ", - "Yun ", - "Shao ", - "Le ", - "Peng ", - "Heng ", - "Ying ", - "Yun ", - "Peng ", - "Yin ", - "Yin ", - "Xiang ", - "Hu ", - "Ye ", - "Ding ", - "Qing ", - "Pan ", - "Xiang ", - "Shun ", - "Han ", - "Xu ", - "Yi ", - "Xu ", - "Gu ", - "Song ", - "Kui ", - "Qi ", - "Hang ", - "Yu ", - "Wan ", - "Ban ", - "Dun ", - "Di ", - "Dan ", - "Pan ", - "Po ", - "Ling ", - "Ce ", - "Jing ", - "Lei ", - "He ", - "Qiao ", - "E ", - "E ", - "Wei ", - "Jie ", - "Gua ", - "Shen ", - "Yi ", - "Shen ", - "Hai ", - "Dui ", - "Pian ", - "Ping ", - "Lei ", - "Fu ", - "Jia ", - "Tou ", - "Hui ", - "Kui ", - "Jia ", - "Le ", - "Tian ", - "Cheng ", - "Ying ", - "Jun ", - "Hu ", - "Han ", - "Jing ", - "Tui ", - "Tui ", - "Pin ", - "Lai ", - "Tui ", - "Zi ", - "Zi ", - "Chui ", - "Ding ", - "Lai ", - "Yan ", - "Han ", - "Jian ", - "Ke ", - "Cui ", - "Jiong ", - "Qin ", - "Yi ", - "Sai ", - "Ti ", - "E ", - "E ", - "Yan ", - "Hun ", - "Kan ", - "Yong ", - "Zhuan ", - "Yan ", - "Xian ", - "Xin ", - "Yi ", - "Yuan ", - "Sang ", - "Dian ", - "Dian ", - "Jiang ", - "Ku ", - "Lei ", - "Liao ", - "Piao ", - "Yi ", - "Man ", - "Qi ", - "Rao ", - "Hao ", - "Qiao ", - "Gu ", - "Xun ", - "Qian ", - "Hui ", - "Zhan ", - "Ru ", - "Hong ", - "Bin ", - "Xian ", - "Pin ", - "Lu ", - "Lan ", - "Nie ", - "Quan ", - "Ye ", - "Ding ", - "Qing ", - "Han ", - "Xiang ", - "Shun ", - "Xu ", - "Xu ", - "Wan ", - "Gu ", - "Dun ", - "Qi ", - "Ban ", - "Song ", - "Hang ", - "Yu ", - "Lu ", - "Ling ", - "Po ", - "Jing ", - "Jie ", - "Jia ", - "Tian ", - "Han ", - "Ying ", - "Jiong ", - "Hai ", - "Yi ", - "Pin ", - "Hui ", - "Tui ", - "Han ", - "Ying ", - "Ying ", - "Ke ", - "Ti ", - "Yong ", - "E ", - "Zhuan ", - "Yan ", - "E ", - "Nie ", - "Man ", - "Dian ", - "Sang ", - "Hao ", - "Lei ", - "Zhan ", - "Ru ", - "Pin ", - "Quan ", - "Feng ", - "Biao ", - "Oroshi ", - "Fu ", - "Xia ", - "Zhan ", - "Biao ", - "Sa ", - "Ba ", - "Tai ", - "Lie ", - "Gua ", - "Xuan ", - "Shao ", - "Ju ", - "Bi ", - "Si ", - "Wei ", - "Yang ", - "Yao ", - "Sou ", - "Kai ", - "Sao ", - "Fan ", - "Liu ", - "Xi ", - "Liao ", - "Piao ", - "Piao ", - "Liu ", - "Biao ", - "Biao ", - "Biao ", - "Liao ", - "[?] ", - "Se ", - "Feng ", - "Biao ", - "Feng ", - "Yang ", - "Zhan ", - "Biao ", - "Sa ", - "Ju ", - "Si ", - "Sou ", - "Yao ", - "Liu ", - "Piao ", - "Biao ", - "Biao ", - "Fei ", - "Fan ", - "Fei ", - "Fei ", - "Shi ", - "Shi ", - "Can ", - "Ji ", - "Ding ", - "Si ", - "Tuo ", - "Zhan ", - "Sun ", - "Xiang ", - "Tun ", - "Ren ", - "Yu ", - "Juan ", - "Chi ", - "Yin ", - "Fan ", - "Fan ", - "Sun ", - "Yin ", - "Zhu ", - "Yi ", - "Zhai ", - "Bi ", - "Jie ", - "Tao ", - "Liu ", - "Ci ", - "Tie ", - "Si ", - "Bao ", - "Shi ", - "Duo ", - "Hai ", - "Ren ", - "Tian ", - "Jiao ", - "Jia ", - "Bing ", - "Yao ", - "Tong ", - "Ci ", - "Xiang ", - "Yang ", - "Yang ", - "Er ", - "Yan ", - "Le ", - "Yi ", - "Can ", - "Bo ", - "Nei ", - "E ", - "Bu ", - "Jun ", - "Dou ", - "Su ", - "Yu ", - "Shi ", - "Yao ", - "Hun ", - "Guo ", - "Shi ", - "Jian ", - "Zhui ", - "Bing ", - "Xian ", - "Bu ", - "Ye ", - "Tan ", - "Fei ", - "Zhang ", - "Wei ", - "Guan ", - "E ", - "Nuan ", - "Hun ", - "Hu ", - "Huang ", - "Tie ", - "Hui ", - "Jian ", - "Hou ", - "He ", - "Xing ", - "Fen ", - "Wei ", - "Gu ", - "Cha ", - "Song ", - "Tang ", - "Bo ", - "Gao ", - "Xi ", - "Kui ", - "Liu ", - "Sou ", - "Tao ", - "Ye ", - "Yun ", - "Mo ", - "Tang ", - "Man ", - "Bi ", - "Yu ", - "Xiu ", - "Jin ", - "San ", - "Kui ", - "Zhuan ", - "Shan ", - "Chi ", - "Dan ", - "Yi ", - "Ji ", - "Rao ", - "Cheng ", - "Yong ", - "Tao ", - "Hui ", - "Xiang ", - "Zhan ", - "Fen ", - "Hai ", - "Meng ", - "Yan ", - "Mo ", - "Chan ", - "Xiang ", - "Luo ", - "Zuan ", - "Nang ", - "Shi ", - "Ding ", - "Ji ", - "Tuo ", - "Xing ", - "Tun ", - "Xi ", - "Ren ", - "Yu ", - "Chi ", - "Fan ", - "Yin ", - "Jian ", - "Shi ", - "Bao ", - "Si ", - "Duo ", - "Yi ", - "Er ", - "Rao ", - "Xiang ", - "Jia ", - "Le ", - "Jiao ", - "Yi ", - "Bing ", - "Bo ", - "Dou ", - "E ", - "Yu ", - "Nei ", - "Jun ", - "Guo ", - "Hun ", - "Xian ", - "Guan ", - "Cha ", - "Kui ", - "Gu ", - "Sou ", - "Chan ", - "Ye ", - "Mo ", - "Bo ", - "Liu ", - "Xiu ", - "Jin ", - "Man ", - "San ", - "Zhuan ", - "Nang ", - "Shou ", - "Kui ", - "Guo ", - "Xiang ", - "Fen ", - "Ba ", - "Ni ", - "Bi ", - "Bo ", - "Tu ", - "Han ", - "Fei ", - "Jian ", - "An ", - "Ai ", - "Fu ", - "Xian ", - "Wen ", - "Xin ", - "Fen ", - "Bin ", - "Xing ", - "Ma ", - "Yu ", - "Feng ", - "Han ", - "Di ", - "Tuo ", - "Tuo ", - "Chi ", - "Xun ", - "Zhu ", - "Zhi ", - "Pei ", - "Xin ", - "Ri ", - "Sa ", - "Yin ", - "Wen ", - "Zhi ", - "Dan ", - "Lu ", - "You ", - "Bo ", - "Bao ", - "Kuai ", - "Tuo ", - "Yi ", - "Qu ", - "[?] ", - "Qu ", - "Jiong ", - "Bo ", - "Zhao ", - "Yuan ", - "Peng ", - "Zhou ", - "Ju ", - "Zhu ", - "Nu ", - "Ju ", - "Pi ", - "Zang ", - "Jia ", - "Ling ", - "Zhen ", - "Tai ", - "Fu ", - "Yang ", - "Shi ", - "Bi ", - "Tuo ", - "Tuo ", - "Si ", - "Liu ", - "Ma ", - "Pian ", - "Tao ", - "Zhi ", - "Rong ", - "Teng ", - "Dong ", - "Xun ", - "Quan ", - "Shen ", - "Jiong ", - "Er ", - "Hai ", - "Bo ", - "Zhu ", - "Yin ", - "Luo ", - "Shuu ", - "Dan ", - "Xie ", - "Liu ", - "Ju ", - "Song ", - "Qin ", - "Mang ", - "Liang ", - "Han ", - "Tu ", - "Xuan ", - "Tui ", - "Jun ", - "E ", - "Cheng ", - "Xin ", - "Ai ", - "Lu ", - "Zhui ", - "Zhou ", - "She ", - "Pian ", - "Kun ", - "Tao ", - "Lai ", - "Zong ", - "Ke ", - "Qi ", - "Qi ", - "Yan ", - "Fei ", - "Sao ", - "Yan ", - "Jie ", - "Yao ", - "Wu ", - "Pian ", - "Cong ", - "Pian ", - "Qian ", - "Fei ", - "Huang ", - "Jian ", - "Huo ", - "Yu ", - "Ti ", - "Quan ", - "Xia ", - "Zong ", - "Kui ", - "Rou ", - "Si ", - "Gua ", - "Tuo ", - "Kui ", - "Sou ", - "Qian ", - "Cheng ", - "Zhi ", - "Liu ", - "Pang ", - "Teng ", - "Xi ", - "Cao ", - "Du ", - "Yan ", - "Yuan ", - "Zou ", - "Sao ", - "Shan ", - "Li ", - "Zhi ", - "Shuang ", - "Lu ", - "Xi ", - "Luo ", - "Zhang ", - "Mo ", - "Ao ", - "Can ", - "Piao ", - "Cong ", - "Qu ", - "Bi ", - "Zhi ", - "Yu ", - "Xu ", - "Hua ", - "Bo ", - "Su ", - "Xiao ", - "Lin ", - "Chan ", - "Dun ", - "Liu ", - "Tuo ", - "Zeng ", - "Tan ", - "Jiao ", - "Tie ", - "Yan ", - "Luo ", - "Zhan ", - "Jing ", - "Yi ", - "Ye ", - "Tuo ", - "Bin ", - "Zou ", - "Yan ", - "Peng ", - "Lu ", - "Teng ", - "Xiang ", - "Ji ", - "Shuang ", - "Ju ", - "Xi ", - "Huan ", - "Li ", - "Biao ", - "Ma ", - "Yu ", - "Tuo ", - "Xun ", - "Chi ", - "Qu ", - "Ri ", - "Bo ", - "Lu ", - "Zang ", - "Shi ", - "Si ", - "Fu ", - "Ju ", - "Zou ", - "Zhu ", - "Tuo ", - "Nu ", - "Jia ", - "Yi ", - "Tai ", - "Xiao ", - "Ma ", - "Yin ", - "Jiao ", - "Hua ", - "Luo ", - "Hai ", - "Pian ", - "Biao ", - "Li ", - "Cheng ", - "Yan ", - "Xin ", - "Qin ", - "Jun ", - "Qi ", - "Qi ", - "Ke ", - "Zhui ", - "Zong ", - "Su ", - "Can ", - "Pian ", - "Zhi ", - "Kui ", - "Sao ", - "Wu ", - "Ao ", - "Liu ", - "Qian ", - "Shan ", - "Piao ", - "Luo ", - "Cong ", - "Chan ", - "Zou ", - "Ji ", - "Shuang ", - "Xiang ", - "Gu ", - "Wei ", - "Wei ", - "Wei ", - "Yu ", - "Gan ", - "Yi ", - "Ang ", - "Tou ", - "Xie ", - "Bao ", - "Bi ", - "Chi ", - "Ti ", - "Di ", - "Ku ", - "Hai ", - "Qiao ", - "Gou ", - "Kua ", - "Ge ", - "Tui ", - "Geng ", - "Pian ", - "Bi ", - "Ke ", - "Ka ", - "Yu ", - "Sui ", - "Lou ", - "Bo ", - "Xiao ", - "Pang ", - "Bo ", - "Ci ", - "Kuan ", - "Bin ", - "Mo ", - "Liao ", - "Lou ", - "Nao ", - "Du ", - "Zang ", - "Sui ", - "Ti ", - "Bin ", - "Kuan ", - "Lu ", - "Gao ", - "Gao ", - "Qiao ", - "Kao ", - "Qiao ", - "Lao ", - "Zao ", - "Biao ", - "Kun ", - "Kun ", - "Ti ", - "Fang ", - "Xiu ", - "Ran ", - "Mao ", - "Dan ", - "Kun ", - "Bin ", - "Fa ", - "Tiao ", - "Peng ", - "Zi ", - "Fa ", - "Ran ", - "Ti ", - "Pao ", - "Pi ", - "Mao ", - "Fu ", - "Er ", - "Rong ", - "Qu ", - "Gong ", - "Xiu ", - "Gua ", - "Ji ", - "Peng ", - "Zhua ", - "Shao ", - "Sha ", - "Ti ", - "Li ", - "Bin ", - "Zong ", - "Ti ", - "Peng ", - "Song ", - "Zheng ", - "Quan ", - "Zong ", - "Shun ", - "Jian ", - "Duo ", - "Hu ", - "La ", - "Jiu ", - "Qi ", - "Lian ", - "Zhen ", - "Bin ", - "Peng ", - "Mo ", - "San ", - "Man ", - "Man ", - "Seng ", - "Xu ", - "Lie ", - "Qian ", - "Qian ", - "Nong ", - "Huan ", - "Kuai ", - "Ning ", - "Bin ", - "Lie ", - "Rang ", - "Dou ", - "Dou ", - "Nao ", - "Hong ", - "Xi ", - "Dou ", - "Han ", - "Dou ", - "Dou ", - "Jiu ", - "Chang ", - "Yu ", - "Yu ", - "Li ", - "Juan ", - "Fu ", - "Qian ", - "Gui ", - "Zong ", - "Liu ", - "Gui ", - "Shang ", - "Yu ", - "Gui ", - "Mei ", - "Ji ", - "Qi ", - "Jie ", - "Kui ", - "Hun ", - "Ba ", - "Po ", - "Mei ", - "Xu ", - "Yan ", - "Xiao ", - "Liang ", - "Yu ", - "Tui ", - "Qi ", - "Wang ", - "Liang ", - "Wei ", - "Jian ", - "Chi ", - "Piao ", - "Bi ", - "Mo ", - "Ji ", - "Xu ", - "Chou ", - "Yan ", - "Zhan ", - "Yu ", - "Dao ", - "Ren ", - "Ji ", - "Eri ", - "Gong ", - "Tuo ", - "Diao ", - "Ji ", - "Xu ", - "E ", - "E ", - "Sha ", - "Hang ", - "Tun ", - "Mo ", - "Jie ", - "Shen ", - "Fan ", - "Yuan ", - "Bi ", - "Lu ", - "Wen ", - "Hu ", - "Lu ", - "Za ", - "Fang ", - "Fen ", - "Na ", - "You ", - "Namazu ", - "Todo ", - "He ", - "Xia ", - "Qu ", - "Han ", - "Pi ", - "Ling ", - "Tuo ", - "Bo ", - "Qiu ", - "Ping ", - "Fu ", - "Bi ", - "Ji ", - "Wei ", - "Ju ", - "Diao ", - "Bo ", - "You ", - "Gun ", - "Pi ", - "Nian ", - "Xing ", - "Tai ", - "Bao ", - "Fu ", - "Zha ", - "Ju ", - "Gu ", - "Kajika ", - "Tong ", - "[?] ", - "Ta ", - "Jie ", - "Shu ", - "Hou ", - "Xiang ", - "Er ", - "An ", - "Wei ", - "Tiao ", - "Zhu ", - "Yin ", - "Lie ", - "Luo ", - "Tong ", - "Yi ", - "Qi ", - "Bing ", - "Wei ", - "Jiao ", - "Bu ", - "Gui ", - "Xian ", - "Ge ", - "Hui ", - "Bora ", - "Mate ", - "Kao ", - "Gori ", - "Duo ", - "Jun ", - "Ti ", - "Man ", - "Xiao ", - "Za ", - "Sha ", - "Qin ", - "Yu ", - "Nei ", - "Zhe ", - "Gun ", - "Geng ", - "Su ", - "Wu ", - "Qiu ", - "Ting ", - "Fu ", - "Wan ", - "You ", - "Li ", - "Sha ", - "Sha ", - "Gao ", - "Meng ", - "Ugui ", - "Asari ", - "Subashiri ", - "Kazunoko ", - "Yong ", - "Ni ", - "Zi ", - "Qi ", - "Qing ", - "Xiang ", - "Nei ", - "Chun ", - "Ji ", - "Diao ", - "Qie ", - "Gu ", - "Zhou ", - "Dong ", - "Lai ", - "Fei ", - "Ni ", - "Yi ", - "Kun ", - "Lu ", - "Jiu ", - "Chang ", - "Jing ", - "Lun ", - "Ling ", - "Zou ", - "Li ", - "Meng ", - "Zong ", - "Zhi ", - "Nian ", - "Shachi ", - "Dojou ", - "Sukesou ", - "Shi ", - "Shen ", - "Hun ", - "Shi ", - "Hou ", - "Xing ", - "Zhu ", - "La ", - "Zong ", - "Ji ", - "Bian ", - "Bian ", - "Huan ", - "Quan ", - "Ze ", - "Wei ", - "Wei ", - "Yu ", - "Qun ", - "Rou ", - "Die ", - "Huang ", - "Lian ", - "Yan ", - "Qiu ", - "Qiu ", - "Jian ", - "Bi ", - "E ", - "Yang ", - "Fu ", - "Sai ", - "Jian ", - "Xia ", - "Tuo ", - "Hu ", - "Muroaji ", - "Ruo ", - "Haraka ", - "Wen ", - "Jian ", - "Hao ", - "Wu ", - "Fang ", - "Sao ", - "Liu ", - "Ma ", - "Shi ", - "Shi ", - "Yin ", - "Z ", - "Teng ", - "Ta ", - "Yao ", - "Ge ", - "Rong ", - "Qian ", - "Qi ", - "Wen ", - "Ruo ", - "Hatahata ", - "Lian ", - "Ao ", - "Le ", - "Hui ", - "Min ", - "Ji ", - "Tiao ", - "Qu ", - "Jian ", - "Sao ", - "Man ", - "Xi ", - "Qiu ", - "Biao ", - "Ji ", - "Ji ", - "Zhu ", - "Jiang ", - "Qiu ", - "Zhuan ", - "Yong ", - "Zhang ", - "Kang ", - "Xue ", - "Bie ", - "Jue ", - "Qu ", - "Xiang ", - "Bo ", - "Jiao ", - "Xun ", - "Su ", - "Huang ", - "Zun ", - "Shan ", - "Shan ", - "Fan ", - "Jue ", - "Lin ", - "Xun ", - "Miao ", - "Xi ", - "Eso ", - "Kyou ", - "Fen ", - "Guan ", - "Hou ", - "Kuai ", - "Zei ", - "Sao ", - "Zhan ", - "Gan ", - "Gui ", - "Sheng ", - "Li ", - "Chang ", - "Hatahata ", - "Shiira ", - "Mutsu ", - "Ru ", - "Ji ", - "Xu ", - "Huo ", - "Shiira ", - "Li ", - "Lie ", - "Li ", - "Mie ", - "Zhen ", - "Xiang ", - "E ", - "Lu ", - "Guan ", - "Li ", - "Xian ", - "Yu ", - "Dao ", - "Ji ", - "You ", - "Tun ", - "Lu ", - "Fang ", - "Ba ", - "He ", - "Bo ", - "Ping ", - "Nian ", - "Lu ", - "You ", - "Zha ", - "Fu ", - "Bo ", - "Bao ", - "Hou ", - "Pi ", - "Tai ", - "Gui ", - "Jie ", - "Kao ", - "Wei ", - "Er ", - "Tong ", - "Ze ", - "Hou ", - "Kuai ", - "Ji ", - "Jiao ", - "Xian ", - "Za ", - "Xiang ", - "Xun ", - "Geng ", - "Li ", - "Lian ", - "Jian ", - "Li ", - "Shi ", - "Tiao ", - "Gun ", - "Sha ", - "Wan ", - "Jun ", - "Ji ", - "Yong ", - "Qing ", - "Ling ", - "Qi ", - "Zou ", - "Fei ", - "Kun ", - "Chang ", - "Gu ", - "Ni ", - "Nian ", - "Diao ", - "Jing ", - "Shen ", - "Shi ", - "Zi ", - "Fen ", - "Die ", - "Bi ", - "Chang ", - "Shi ", - "Wen ", - "Wei ", - "Sai ", - "E ", - "Qiu ", - "Fu ", - "Huang ", - "Quan ", - "Jiang ", - "Bian ", - "Sao ", - "Ao ", - "Qi ", - "Ta ", - "Yin ", - "Yao ", - "Fang ", - "Jian ", - "Le ", - "Biao ", - "Xue ", - "Bie ", - "Man ", - "Min ", - "Yong ", - "Wei ", - "Xi ", - "Jue ", - "Shan ", - "Lin ", - "Zun ", - "Huo ", - "Gan ", - "Li ", - "Zhan ", - "Guan ", - "Niao ", - "Yi ", - "Fu ", - "Li ", - "Jiu ", - "Bu ", - "Yan ", - "Fu ", - "Diao ", - "Ji ", - "Feng ", - "Nio ", - "Gan ", - "Shi ", - "Feng ", - "Ming ", - "Bao ", - "Yuan ", - "Zhi ", - "Hu ", - "Qin ", - "Fu ", - "Fen ", - "Wen ", - "Jian ", - "Shi ", - "Yu ", - "Fou ", - "Yiao ", - "Jue ", - "Jue ", - "Pi ", - "Huan ", - "Zhen ", - "Bao ", - "Yan ", - "Ya ", - "Zheng ", - "Fang ", - "Feng ", - "Wen ", - "Ou ", - "Te ", - "Jia ", - "Nu ", - "Ling ", - "Mie ", - "Fu ", - "Tuo ", - "Wen ", - "Li ", - "Bian ", - "Zhi ", - "Ge ", - "Yuan ", - "Zi ", - "Qu ", - "Xiao ", - "Zhi ", - "Dan ", - "Ju ", - "You ", - "Gu ", - "Zhong ", - "Yu ", - "Yang ", - "Rong ", - "Ya ", - "Tie ", - "Yu ", - "Shigi ", - "Ying ", - "Zhui ", - "Wu ", - "Er ", - "Gua ", - "Ai ", - "Zhi ", - "Yan ", - "Heng ", - "Jiao ", - "Ji ", - "Lie ", - "Zhu ", - "Ren ", - "Yi ", - "Hong ", - "Luo ", - "Ru ", - "Mou ", - "Ge ", - "Ren ", - "Jiao ", - "Xiu ", - "Zhou ", - "Zhi ", - "Luo ", - "Chidori ", - "Toki ", - "Ten ", - "Luan ", - "Jia ", - "Ji ", - "Yu ", - "Huan ", - "Tuo ", - "Bu ", - "Wu ", - "Juan ", - "Yu ", - "Bo ", - "Xun ", - "Xun ", - "Bi ", - "Xi ", - "Jun ", - "Ju ", - "Tu ", - "Jing ", - "Ti ", - "E ", - "E ", - "Kuang ", - "Hu ", - "Wu ", - "Shen ", - "Lai ", - "Ikaruga ", - "Kakesu ", - "Lu ", - "Ping ", - "Shu ", - "Fu ", - "An ", - "Zhao ", - "Peng ", - "Qin ", - "Qian ", - "Bei ", - "Diao ", - "Lu ", - "Que ", - "Jian ", - "Ju ", - "Tu ", - "Ya ", - "Yuan ", - "Qi ", - "Li ", - "Ye ", - "Zhui ", - "Kong ", - "Zhui ", - "Kun ", - "Sheng ", - "Qi ", - "Jing ", - "Yi ", - "Yi ", - "Jing ", - "Zi ", - "Lai ", - "Dong ", - "Qi ", - "Chun ", - "Geng ", - "Ju ", - "Qu ", - "Isuka ", - "Kikuitadaki ", - "Ji ", - "Shu ", - "[?] ", - "Chi ", - "Miao ", - "Rou ", - "An ", - "Qiu ", - "Ti ", - "Hu ", - "Ti ", - "E ", - "Jie ", - "Mao ", - "Fu ", - "Chun ", - "Tu ", - "Yan ", - "He ", - "Yuan ", - "Pian ", - "Yun ", - "Mei ", - "Hu ", - "Ying ", - "Dun ", - "Mu ", - "Ju ", - "Tsugumi ", - "Cang ", - "Fang ", - "Gu ", - "Ying ", - "Yuan ", - "Xuan ", - "Weng ", - "Shi ", - "He ", - "Chu ", - "Tang ", - "Xia ", - "Ruo ", - "Liu ", - "Ji ", - "Gu ", - "Jian ", - "Zhun ", - "Han ", - "Zi ", - "Zi ", - "Ni ", - "Yao ", - "Yan ", - "Ji ", - "Li ", - "Tian ", - "Kou ", - "Ti ", - "Ti ", - "Ni ", - "Tu ", - "Ma ", - "Jiao ", - "Gao ", - "Tian ", - "Chen ", - "Li ", - "Zhuan ", - "Zhe ", - "Ao ", - "Yao ", - "Yi ", - "Ou ", - "Chi ", - "Zhi ", - "Liao ", - "Rong ", - "Lou ", - "Bi ", - "Shuang ", - "Zhuo ", - "Yu ", - "Wu ", - "Jue ", - "Yin ", - "Quan ", - "Si ", - "Jiao ", - "Yi ", - "Hua ", - "Bi ", - "Ying ", - "Su ", - "Huang ", - "Fan ", - "Jiao ", - "Liao ", - "Yan ", - "Kao ", - "Jiu ", - "Xian ", - "Xian ", - "Tu ", - "Mai ", - "Zun ", - "Yu ", - "Ying ", - "Lu ", - "Tuan ", - "Xian ", - "Xue ", - "Yi ", - "Pi ", - "Shu ", - "Luo ", - "Qi ", - "Yi ", - "Ji ", - "Zhe ", - "Yu ", - "Zhan ", - "Ye ", - "Yang ", - "Pi ", - "Ning ", - "Huo ", - "Mi ", - "Ying ", - "Meng ", - "Di ", - "Yue ", - "Yu ", - "Lei ", - "Bao ", - "Lu ", - "He ", - "Long ", - "Shuang ", - "Yue ", - "Ying ", - "Guan ", - "Qu ", - "Li ", - "Luan ", - "Niao ", - "Jiu ", - "Ji ", - "Yuan ", - "Ming ", - "Shi ", - "Ou ", - "Ya ", - "Cang ", - "Bao ", - "Zhen ", - "Gu ", - "Dong ", - "Lu ", - "Ya ", - "Xiao ", - "Yang ", - "Ling ", - "Zhi ", - "Qu ", - "Yuan ", - "Xue ", - "Tuo ", - "Si ", - "Zhi ", - "Er ", - "Gua ", - "Xiu ", - "Heng ", - "Zhou ", - "Ge ", - "Luan ", - "Hong ", - "Wu ", - "Bo ", - "Li ", - "Juan ", - "Hu ", - "E ", - "Yu ", - "Xian ", - "Ti ", - "Wu ", - "Que ", - "Miao ", - "An ", - "Kun ", - "Bei ", - "Peng ", - "Qian ", - "Chun ", - "Geng ", - "Yuan ", - "Su ", - "Hu ", - "He ", - "E ", - "Gu ", - "Qiu ", - "Zi ", - "Mei ", - "Mu ", - "Ni ", - "Yao ", - "Weng ", - "Liu ", - "Ji ", - "Ni ", - "Jian ", - "He ", - "Yi ", - "Ying ", - "Zhe ", - "Liao ", - "Liao ", - "Jiao ", - "Jiu ", - "Yu ", - "Lu ", - "Xuan ", - "Zhan ", - "Ying ", - "Huo ", - "Meng ", - "Guan ", - "Shuang ", - "Lu ", - "Jin ", - "Ling ", - "Jian ", - "Xian ", - "Cuo ", - "Jian ", - "Jian ", - "Yan ", - "Cuo ", - "Lu ", - "You ", - "Cu ", - "Ji ", - "Biao ", - "Cu ", - "Biao ", - "Zhu ", - "Jun ", - "Zhu ", - "Jian ", - "Mi ", - "Mi ", - "Wu ", - "Liu ", - "Chen ", - "Jun ", - "Lin ", - "Ni ", - "Qi ", - "Lu ", - "Jiu ", - "Jun ", - "Jing ", - "Li ", - "Xiang ", - "Yan ", - "Jia ", - "Mi ", - "Li ", - "She ", - "Zhang ", - "Lin ", - "Jing ", - "Ji ", - "Ling ", - "Yan ", - "Cu ", - "Mai ", - "Mai ", - "Ge ", - "Chao ", - "Fu ", - "Mian ", - "Mian ", - "Fu ", - "Pao ", - "Qu ", - "Qu ", - "Mou ", - "Fu ", - "Xian ", - "Lai ", - "Qu ", - "Mian ", - "[?] ", - "Feng ", - "Fu ", - "Qu ", - "Mian ", - "Ma ", - "Mo ", - "Mo ", - "Hui ", - "Ma ", - "Zou ", - "Nen ", - "Fen ", - "Huang ", - "Huang ", - "Jin ", - "Guang ", - "Tian ", - "Tou ", - "Heng ", - "Xi ", - "Kuang ", - "Heng ", - "Shu ", - "Li ", - "Nian ", - "Chi ", - "Hei ", - "Hei ", - "Yi ", - "Qian ", - "Dan ", - "Xi ", - "Tuan ", - "Mo ", - "Mo ", - "Qian ", - "Dai ", - "Chu ", - "You ", - "Dian ", - "Yi ", - "Xia ", - "Yan ", - "Qu ", - "Mei ", - "Yan ", - "Jing ", - "Yu ", - "Li ", - "Dang ", - "Du ", - "Can ", - "Yin ", - "An ", - "Yan ", - "Tan ", - "An ", - "Zhen ", - "Dai ", - "Can ", - "Yi ", - "Mei ", - "Dan ", - "Yan ", - "Du ", - "Lu ", - "Zhi ", - "Fen ", - "Fu ", - "Fu ", - "Min ", - "Min ", - "Yuan ", - "Cu ", - "Qu ", - "Chao ", - "Wa ", - "Zhu ", - "Zhi ", - "Mang ", - "Ao ", - "Bie ", - "Tuo ", - "Bi ", - "Yuan ", - "Chao ", - "Tuo ", - "Ding ", - "Mi ", - "Nai ", - "Ding ", - "Zi ", - "Gu ", - "Gu ", - "Dong ", - "Fen ", - "Tao ", - "Yuan ", - "Pi ", - "Chang ", - "Gao ", - "Qi ", - "Yuan ", - "Tang ", - "Teng ", - "Shu ", - "Shu ", - "Fen ", - "Fei ", - "Wen ", - "Ba ", - "Diao ", - "Tuo ", - "Tong ", - "Qu ", - "Sheng ", - "Shi ", - "You ", - "Shi ", - "Ting ", - "Wu ", - "Nian ", - "Jing ", - "Hun ", - "Ju ", - "Yan ", - "Tu ", - "Ti ", - "Xi ", - "Xian ", - "Yan ", - "Lei ", - "Bi ", - "Yao ", - "Qiu ", - "Han ", - "Wu ", - "Wu ", - "Hou ", - "Xi ", - "Ge ", - "Zha ", - "Xiu ", - "Weng ", - "Zha ", - "Nong ", - "Nang ", - "Qi ", - "Zhai ", - "Ji ", - "Zi ", - "Ji ", - "Ji ", - "Qi ", - "Ji ", - "Chi ", - "Chen ", - "Chen ", - "He ", - "Ya ", - "Ken ", - "Xie ", - "Pao ", - "Cuo ", - "Shi ", - "Zi ", - "Chi ", - "Nian ", - "Ju ", - "Tiao ", - "Ling ", - "Ling ", - "Chu ", - "Quan ", - "Xie ", - "Ken ", - "Nie ", - "Jiu ", - "Yao ", - "Chuo ", - "Kun ", - "Yu ", - "Chu ", - "Yi ", - "Ni ", - "Cuo ", - "Zou ", - "Qu ", - "Nen ", - "Xian ", - "Ou ", - "E ", - "Wo ", - "Yi ", - "Chuo ", - "Zou ", - "Dian ", - "Chu ", - "Jin ", - "Ya ", - "Chi ", - "Chen ", - "He ", - "Ken ", - "Ju ", - "Ling ", - "Pao ", - "Tiao ", - "Zi ", - "Ken ", - "Yu ", - "Chuo ", - "Qu ", - "Wo ", - "Long ", - "Pang ", - "Gong ", - "Pang ", - "Yan ", - "Long ", - "Long ", - "Gong ", - "Kan ", - "Ta ", - "Ling ", - "Ta ", - "Long ", - "Gong ", - "Kan ", - "Gui ", - "Qiu ", - "Bie ", - "Gui ", - "Yue ", - "Chui ", - "He ", - "Jue ", - "Xie ", - "Yu ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "it", - "ix", - "i", - "ip", - "iet", - "iex", - "ie", - "iep", - "at", - "ax", - "a", - "ap", - "uox", - "uo", - "uop", - "ot", - "ox", - "o", - "op", - "ex", - "e", - "wu", - "bit", - "bix", - "bi", - "bip", - "biet", - "biex", - "bie", - "biep", - "bat", - "bax", - "ba", - "bap", - "buox", - "buo", - "buop", - "bot", - "box", - "bo", - "bop", - "bex", - "be", - "bep", - "but", - "bux", - "bu", - "bup", - "burx", - "bur", - "byt", - "byx", - "by", - "byp", - "byrx", - "byr", - "pit", - "pix", - "pi", - "pip", - "piex", - "pie", - "piep", - "pat", - "pax", - "pa", - "pap", - "puox", - "puo", - "puop", - "pot", - "pox", - "po", - "pop", - "put", - "pux", - "pu", - "pup", - "purx", - "pur", - "pyt", - "pyx", - "py", - "pyp", - "pyrx", - "pyr", - "bbit", - "bbix", - "bbi", - "bbip", - "bbiet", - "bbiex", - "bbie", - "bbiep", - "bbat", - "bbax", - "bba", - "bbap", - "bbuox", - "bbuo", - "bbuop", - "bbot", - "bbox", - "bbo", - "bbop", - "bbex", - "bbe", - "bbep", - "bbut", - "bbux", - "bbu", - "bbup", - "bburx", - "bbur", - "bbyt", - "bbyx", - "bby", - "bbyp", - "nbit", - "nbix", - "nbi", - "nbip", - "nbiex", - "nbie", - "nbiep", - "nbat", - "nbax", - "nba", - "nbap", - "nbot", - "nbox", - "nbo", - "nbop", - "nbut", - "nbux", - "nbu", - "nbup", - "nburx", - "nbur", - "nbyt", - "nbyx", - "nby", - "nbyp", - "nbyrx", - "nbyr", - "hmit", - "hmix", - "hmi", - "hmip", - "hmiex", - "hmie", - "hmiep", - "hmat", - "hmax", - "hma", - "hmap", - "hmuox", - "hmuo", - "hmuop", - "hmot", - "hmox", - "hmo", - "hmop", - "hmut", - "hmux", - "hmu", - "hmup", - "hmurx", - "hmur", - "hmyx", - "hmy", - "hmyp", - "hmyrx", - "hmyr", - "mit", - "mix", - "mi", - "mip", - "miex", - "mie", - "miep", - "mat", - "max", - "ma", - "map", - "muot", - "muox", - "muo", - "muop", - "mot", - "mox", - "mo", - "mop", - "mex", - "me", - "mut", - "mux", - "mu", - "mup", - "murx", - "mur", - "myt", - "myx", - "my", - "myp", - "fit", - "fix", - "fi", - "fip", - "fat", - "fax", - "fa", - "fap", - "fox", - "fo", - "fop", - "fut", - "fux", - "fu", - "fup", - "furx", - "fur", - "fyt", - "fyx", - "fy", - "fyp", - "vit", - "vix", - "vi", - "vip", - "viet", - "viex", - "vie", - "viep", - "vat", - "vax", - "va", - "vap", - "vot", - "vox", - "vo", - "vop", - "vex", - "vep", - "vut", - "vux", - "vu", - "vup", - "vurx", - "vur", - "vyt", - "vyx", - "vy", - "vyp", - "vyrx", - "vyr", - "dit", - "dix", - "di", - "dip", - "diex", - "die", - "diep", - "dat", - "dax", - "da", - "dap", - "duox", - "duo", - "dot", - "dox", - "do", - "dop", - "dex", - "de", - "dep", - "dut", - "dux", - "du", - "dup", - "durx", - "dur", - "tit", - "tix", - "ti", - "tip", - "tiex", - "tie", - "tiep", - "tat", - "tax", - "ta", - "tap", - "tuot", - "tuox", - "tuo", - "tuop", - "tot", - "tox", - "to", - "top", - "tex", - "te", - "tep", - "tut", - "tux", - "tu", - "tup", - "turx", - "tur", - "ddit", - "ddix", - "ddi", - "ddip", - "ddiex", - "ddie", - "ddiep", - "ddat", - "ddax", - "dda", - "ddap", - "dduox", - "dduo", - "dduop", - "ddot", - "ddox", - "ddo", - "ddop", - "ddex", - "dde", - "ddep", - "ddut", - "ddux", - "ddu", - "ddup", - "ddurx", - "ddur", - "ndit", - "ndix", - "ndi", - "ndip", - "ndiex", - "ndie", - "ndat", - "ndax", - "nda", - "ndap", - "ndot", - "ndox", - "ndo", - "ndop", - "ndex", - "nde", - "ndep", - "ndut", - "ndux", - "ndu", - "ndup", - "ndurx", - "ndur", - "hnit", - "hnix", - "hni", - "hnip", - "hniet", - "hniex", - "hnie", - "hniep", - "hnat", - "hnax", - "hna", - "hnap", - "hnuox", - "hnuo", - "hnot", - "hnox", - "hnop", - "hnex", - "hne", - "hnep", - "hnut", - "nit", - "nix", - "ni", - "nip", - "niex", - "nie", - "niep", - "nax", - "na", - "nap", - "nuox", - "nuo", - "nuop", - "not", - "nox", - "no", - "nop", - "nex", - "ne", - "nep", - "nut", - "nux", - "nu", - "nup", - "nurx", - "nur", - "hlit", - "hlix", - "hli", - "hlip", - "hliex", - "hlie", - "hliep", - "hlat", - "hlax", - "hla", - "hlap", - "hluox", - "hluo", - "hluop", - "hlox", - "hlo", - "hlop", - "hlex", - "hle", - "hlep", - "hlut", - "hlux", - "hlu", - "hlup", - "hlurx", - "hlur", - "hlyt", - "hlyx", - "hly", - "hlyp", - "hlyrx", - "hlyr", - "lit", - "lix", - "li", - "lip", - "liet", - "liex", - "lie", - "liep", - "lat", - "lax", - "la", - "lap", - "luot", - "luox", - "luo", - "luop", - "lot", - "lox", - "lo", - "lop", - "lex", - "le", - "lep", - "lut", - "lux", - "lu", - "lup", - "lurx", - "lur", - "lyt", - "lyx", - "ly", - "lyp", - "lyrx", - "lyr", - "git", - "gix", - "gi", - "gip", - "giet", - "giex", - "gie", - "giep", - "gat", - "gax", - "ga", - "gap", - "guot", - "guox", - "guo", - "guop", - "got", - "gox", - "go", - "gop", - "get", - "gex", - "ge", - "gep", - "gut", - "gux", - "gu", - "gup", - "gurx", - "gur", - "kit", - "kix", - "ki", - "kip", - "kiex", - "kie", - "kiep", - "kat", - "kax", - "ka", - "kap", - "kuox", - "kuo", - "kuop", - "kot", - "kox", - "ko", - "kop", - "ket", - "kex", - "ke", - "kep", - "kut", - "kux", - "ku", - "kup", - "kurx", - "kur", - "ggit", - "ggix", - "ggi", - "ggiex", - "ggie", - "ggiep", - "ggat", - "ggax", - "gga", - "ggap", - "gguot", - "gguox", - "gguo", - "gguop", - "ggot", - "ggox", - "ggo", - "ggop", - "gget", - "ggex", - "gge", - "ggep", - "ggut", - "ggux", - "ggu", - "ggup", - "ggurx", - "ggur", - "mgiex", - "mgie", - "mgat", - "mgax", - "mga", - "mgap", - "mguox", - "mguo", - "mguop", - "mgot", - "mgox", - "mgo", - "mgop", - "mgex", - "mge", - "mgep", - "mgut", - "mgux", - "mgu", - "mgup", - "mgurx", - "mgur", - "hxit", - "hxix", - "hxi", - "hxip", - "hxiet", - "hxiex", - "hxie", - "hxiep", - "hxat", - "hxax", - "hxa", - "hxap", - "hxuot", - "hxuox", - "hxuo", - "hxuop", - "hxot", - "hxox", - "hxo", - "hxop", - "hxex", - "hxe", - "hxep", - "ngiex", - "ngie", - "ngiep", - "ngat", - "ngax", - "nga", - "ngap", - "nguot", - "nguox", - "nguo", - "ngot", - "ngox", - "ngo", - "ngop", - "ngex", - "nge", - "ngep", - "hit", - "hiex", - "hie", - "hat", - "hax", - "ha", - "hap", - "huot", - "huox", - "huo", - "huop", - "hot", - "hox", - "ho", - "hop", - "hex", - "he", - "hep", - "wat", - "wax", - "wa", - "wap", - "wuox", - "wuo", - "wuop", - "wox", - "wo", - "wop", - "wex", - "we", - "wep", - "zit", - "zix", - "zi", - "zip", - "ziex", - "zie", - "ziep", - "zat", - "zax", - "za", - "zap", - "zuox", - "zuo", - "zuop", - "zot", - "zox", - "zo", - "zop", - "zex", - "ze", - "zep", - "zut", - "zux", - "zu", - "zup", - "zurx", - "zur", - "zyt", - "zyx", - "zy", - "zyp", - "zyrx", - "zyr", - "cit", - "cix", - "ci", - "cip", - "ciet", - "ciex", - "cie", - "ciep", - "cat", - "cax", - "ca", - "cap", - "cuox", - "cuo", - "cuop", - "cot", - "cox", - "co", - "cop", - "cex", - "ce", - "cep", - "cut", - "cux", - "cu", - "cup", - "curx", - "cur", - "cyt", - "cyx", - "cy", - "cyp", - "cyrx", - "cyr", - "zzit", - "zzix", - "zzi", - "zzip", - "zziet", - "zziex", - "zzie", - "zziep", - "zzat", - "zzax", - "zza", - "zzap", - "zzox", - "zzo", - "zzop", - "zzex", - "zze", - "zzep", - "zzux", - "zzu", - "zzup", - "zzurx", - "zzur", - "zzyt", - "zzyx", - "zzy", - "zzyp", - "zzyrx", - "zzyr", - "nzit", - "nzix", - "nzi", - "nzip", - "nziex", - "nzie", - "nziep", - "nzat", - "nzax", - "nza", - "nzap", - "nzuox", - "nzuo", - "nzox", - "nzop", - "nzex", - "nze", - "nzux", - "nzu", - "nzup", - "nzurx", - "nzur", - "nzyt", - "nzyx", - "nzy", - "nzyp", - "nzyrx", - "nzyr", - "sit", - "six", - "si", - "sip", - "siex", - "sie", - "siep", - "sat", - "sax", - "sa", - "sap", - "suox", - "suo", - "suop", - "sot", - "sox", - "so", - "sop", - "sex", - "se", - "sep", - "sut", - "sux", - "su", - "sup", - "surx", - "sur", - "syt", - "syx", - "sy", - "syp", - "syrx", - "syr", - "ssit", - "ssix", - "ssi", - "ssip", - "ssiex", - "ssie", - "ssiep", - "ssat", - "ssax", - "ssa", - "ssap", - "ssot", - "ssox", - "sso", - "ssop", - "ssex", - "sse", - "ssep", - "ssut", - "ssux", - "ssu", - "ssup", - "ssyt", - "ssyx", - "ssy", - "ssyp", - "ssyrx", - "ssyr", - "zhat", - "zhax", - "zha", - "zhap", - "zhuox", - "zhuo", - "zhuop", - "zhot", - "zhox", - "zho", - "zhop", - "zhet", - "zhex", - "zhe", - "zhep", - "zhut", - "zhux", - "zhu", - "zhup", - "zhurx", - "zhur", - "zhyt", - "zhyx", - "zhy", - "zhyp", - "zhyrx", - "zhyr", - "chat", - "chax", - "cha", - "chap", - "chuot", - "chuox", - "chuo", - "chuop", - "chot", - "chox", - "cho", - "chop", - "chet", - "chex", - "che", - "chep", - "chux", - "chu", - "chup", - "churx", - "chur", - "chyt", - "chyx", - "chy", - "chyp", - "chyrx", - "chyr", - "rrax", - "rra", - "rruox", - "rruo", - "rrot", - "rrox", - "rro", - "rrop", - "rret", - "rrex", - "rre", - "rrep", - "rrut", - "rrux", - "rru", - "rrup", - "rrurx", - "rrur", - "rryt", - "rryx", - "rry", - "rryp", - "rryrx", - "rryr", - "nrat", - "nrax", - "nra", - "nrap", - "nrox", - "nro", - "nrop", - "nret", - "nrex", - "nre", - "nrep", - "nrut", - "nrux", - "nru", - "nrup", - "nrurx", - "nrur", - "nryt", - "nryx", - "nry", - "nryp", - "nryrx", - "nryr", - "shat", - "shax", - "sha", - "shap", - "shuox", - "shuo", - "shuop", - "shot", - "shox", - "sho", - "shop", - "shet", - "shex", - "she", - "shep", - "shut", - "shux", - "shu", - "shup", - "shurx", - "shur", - "shyt", - "shyx", - "shy", - "shyp", - "shyrx", - "shyr", - "rat", - "rax", - "ra", - "rap", - "ruox", - "ruo", - "ruop", - "rot", - "rox", - "ro", - "rop", - "rex", - "re", - "rep", - "rut", - "rux", - "ru", - "rup", - "rurx", - "rur", - "ryt", - "ryx", - "ry", - "ryp", - "ryrx", - "ryr", - "jit", - "jix", - "ji", - "jip", - "jiet", - "jiex", - "jie", - "jiep", - "juot", - "juox", - "juo", - "juop", - "jot", - "jox", - "jo", - "jop", - "jut", - "jux", - "ju", - "jup", - "jurx", - "jur", - "jyt", - "jyx", - "jy", - "jyp", - "jyrx", - "jyr", - "qit", - "qix", - "qi", - "qip", - "qiet", - "qiex", - "qie", - "qiep", - "quot", - "quox", - "quo", - "quop", - "qot", - "qox", - "qo", - "qop", - "qut", - "qux", - "qu", - "qup", - "qurx", - "qur", - "qyt", - "qyx", - "qy", - "qyp", - "qyrx", - "qyr", - "jjit", - "jjix", - "jji", - "jjip", - "jjiet", - "jjiex", - "jjie", - "jjiep", - "jjuox", - "jjuo", - "jjuop", - "jjot", - "jjox", - "jjo", - "jjop", - "jjut", - "jjux", - "jju", - "jjup", - "jjurx", - "jjur", - "jjyt", - "jjyx", - "jjy", - "jjyp", - "njit", - "njix", - "nji", - "njip", - "njiet", - "njiex", - "njie", - "njiep", - "njuox", - "njuo", - "njot", - "njox", - "njo", - "njop", - "njux", - "nju", - "njup", - "njurx", - "njur", - "njyt", - "njyx", - "njy", - "njyp", - "njyrx", - "njyr", - "nyit", - "nyix", - "nyi", - "nyip", - "nyiet", - "nyiex", - "nyie", - "nyiep", - "nyuox", - "nyuo", - "nyuop", - "nyot", - "nyox", - "nyo", - "nyop", - "nyut", - "nyux", - "nyu", - "nyup", - "xit", - "xix", - "xi", - "xip", - "xiet", - "xiex", - "xie", - "xiep", - "xuox", - "xuo", - "xot", - "xox", - "xo", - "xop", - "xyt", - "xyx", - "xy", - "xyp", - "xyrx", - "xyr", - "yit", - "yix", - "yi", - "yip", - "yiet", - "yiex", - "yie", - "yiep", - "yuot", - "yuox", - "yuo", - "yuop", - "yot", - "yox", - "yo", - "yop", - "yut", - "yux", - "yu", - "yup", - "yurx", - "yur", - "yyt", - "yyx", - "yy", - "yyp", - "yyrx", - "yyr", - "[?]", - "[?]", - "[?]", - "Qot", - "Li", - "Kit", - "Nyip", - "Cyp", - "Ssi", - "Ggop", - "Gep", - "Mi", - "Hxit", - "Lyr", - "Bbut", - "Mop", - "Yo", - "Put", - "Hxuo", - "Tat", - "Ga", - "[?]", - "[?]", - "Ddur", - "Bur", - "Gguo", - "Nyop", - "Tu", - "Op", - "Jjut", - "Zot", - "Pyt", - "Hmo", - "Yit", - "Vur", - "Shy", - "Vep", - "Za", - "Jo", - "[?]", - "Jjy", - "Got", - "Jjie", - "Wo", - "Du", - "Shur", - "Lie", - "Cy", - "Cuop", - "Cip", - "Hxop", - "Shat", - "[?]", - "Shop", - "Che", - "Zziet", - "[?]", - "Ke", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "ga", - "gag", - "gagg", - "gags", - "gan", - "ganj", - "ganh", - "gad", - "gal", - "galg", - "galm", - "galb", - "gals", - "galt", - "galp", - "galh", - "gam", - "gab", - "gabs", - "gas", - "gass", - "gang", - "gaj", - "gac", - "gak", - "gat", - "gap", - "gah", - "gae", - "gaeg", - "gaegg", - "gaegs", - "gaen", - "gaenj", - "gaenh", - "gaed", - "gael", - "gaelg", - "gaelm", - "gaelb", - "gaels", - "gaelt", - "gaelp", - "gaelh", - "gaem", - "gaeb", - "gaebs", - "gaes", - "gaess", - "gaeng", - "gaej", - "gaec", - "gaek", - "gaet", - "gaep", - "gaeh", - "gya", - "gyag", - "gyagg", - "gyags", - "gyan", - "gyanj", - "gyanh", - "gyad", - "gyal", - "gyalg", - "gyalm", - "gyalb", - "gyals", - "gyalt", - "gyalp", - "gyalh", - "gyam", - "gyab", - "gyabs", - "gyas", - "gyass", - "gyang", - "gyaj", - "gyac", - "gyak", - "gyat", - "gyap", - "gyah", - "gyae", - "gyaeg", - "gyaegg", - "gyaegs", - "gyaen", - "gyaenj", - "gyaenh", - "gyaed", - "gyael", - "gyaelg", - "gyaelm", - "gyaelb", - "gyaels", - "gyaelt", - "gyaelp", - "gyaelh", - "gyaem", - "gyaeb", - "gyaebs", - "gyaes", - "gyaess", - "gyaeng", - "gyaej", - "gyaec", - "gyaek", - "gyaet", - "gyaep", - "gyaeh", - "geo", - "geog", - "geogg", - "geogs", - "geon", - "geonj", - "geonh", - "geod", - "geol", - "geolg", - "geolm", - "geolb", - "geols", - "geolt", - "geolp", - "geolh", - "geom", - "geob", - "geobs", - "geos", - "geoss", - "geong", - "geoj", - "geoc", - "geok", - "geot", - "geop", - "geoh", - "ge", - "geg", - "gegg", - "gegs", - "gen", - "genj", - "genh", - "ged", - "gel", - "gelg", - "gelm", - "gelb", - "gels", - "gelt", - "gelp", - "gelh", - "gem", - "geb", - "gebs", - "ges", - "gess", - "geng", - "gej", - "gec", - "gek", - "get", - "gep", - "geh", - "gyeo", - "gyeog", - "gyeogg", - "gyeogs", - "gyeon", - "gyeonj", - "gyeonh", - "gyeod", - "gyeol", - "gyeolg", - "gyeolm", - "gyeolb", - "gyeols", - "gyeolt", - "gyeolp", - "gyeolh", - "gyeom", - "gyeob", - "gyeobs", - "gyeos", - "gyeoss", - "gyeong", - "gyeoj", - "gyeoc", - "gyeok", - "gyeot", - "gyeop", - "gyeoh", - "gye", - "gyeg", - "gyegg", - "gyegs", - "gyen", - "gyenj", - "gyenh", - "gyed", - "gyel", - "gyelg", - "gyelm", - "gyelb", - "gyels", - "gyelt", - "gyelp", - "gyelh", - "gyem", - "gyeb", - "gyebs", - "gyes", - "gyess", - "gyeng", - "gyej", - "gyec", - "gyek", - "gyet", - "gyep", - "gyeh", - "go", - "gog", - "gogg", - "gogs", - "gon", - "gonj", - "gonh", - "god", - "gol", - "golg", - "golm", - "golb", - "gols", - "golt", - "golp", - "golh", - "gom", - "gob", - "gobs", - "gos", - "goss", - "gong", - "goj", - "goc", - "gok", - "got", - "gop", - "goh", - "gwa", - "gwag", - "gwagg", - "gwags", - "gwan", - "gwanj", - "gwanh", - "gwad", - "gwal", - "gwalg", - "gwalm", - "gwalb", - "gwals", - "gwalt", - "gwalp", - "gwalh", - "gwam", - "gwab", - "gwabs", - "gwas", - "gwass", - "gwang", - "gwaj", - "gwac", - "gwak", - "gwat", - "gwap", - "gwah", - "gwae", - "gwaeg", - "gwaegg", - "gwaegs", - "gwaen", - "gwaenj", - "gwaenh", - "gwaed", - "gwael", - "gwaelg", - "gwaelm", - "gwaelb", - "gwaels", - "gwaelt", - "gwaelp", - "gwaelh", - "gwaem", - "gwaeb", - "gwaebs", - "gwaes", - "gwaess", - "gwaeng", - "gwaej", - "gwaec", - "gwaek", - "gwaet", - "gwaep", - "gwaeh", - "goe", - "goeg", - "goegg", - "goegs", - "goen", - "goenj", - "goenh", - "goed", - "goel", - "goelg", - "goelm", - "goelb", - "goels", - "goelt", - "goelp", - "goelh", - "goem", - "goeb", - "goebs", - "goes", - "goess", - "goeng", - "goej", - "goec", - "goek", - "goet", - "goep", - "goeh", - "gyo", - "gyog", - "gyogg", - "gyogs", - "gyon", - "gyonj", - "gyonh", - "gyod", - "gyol", - "gyolg", - "gyolm", - "gyolb", - "gyols", - "gyolt", - "gyolp", - "gyolh", - "gyom", - "gyob", - "gyobs", - "gyos", - "gyoss", - "gyong", - "gyoj", - "gyoc", - "gyok", - "gyot", - "gyop", - "gyoh", - "gu", - "gug", - "gugg", - "gugs", - "gun", - "gunj", - "gunh", - "gud", - "gul", - "gulg", - "gulm", - "gulb", - "guls", - "gult", - "gulp", - "gulh", - "gum", - "gub", - "gubs", - "gus", - "guss", - "gung", - "guj", - "guc", - "guk", - "gut", - "gup", - "guh", - "gweo", - "gweog", - "gweogg", - "gweogs", - "gweon", - "gweonj", - "gweonh", - "gweod", - "gweol", - "gweolg", - "gweolm", - "gweolb", - "gweols", - "gweolt", - "gweolp", - "gweolh", - "gweom", - "gweob", - "gweobs", - "gweos", - "gweoss", - "gweong", - "gweoj", - "gweoc", - "gweok", - "gweot", - "gweop", - "gweoh", - "gwe", - "gweg", - "gwegg", - "gwegs", - "gwen", - "gwenj", - "gwenh", - "gwed", - "gwel", - "gwelg", - "gwelm", - "gwelb", - "gwels", - "gwelt", - "gwelp", - "gwelh", - "gwem", - "gweb", - "gwebs", - "gwes", - "gwess", - "gweng", - "gwej", - "gwec", - "gwek", - "gwet", - "gwep", - "gweh", - "gwi", - "gwig", - "gwigg", - "gwigs", - "gwin", - "gwinj", - "gwinh", - "gwid", - "gwil", - "gwilg", - "gwilm", - "gwilb", - "gwils", - "gwilt", - "gwilp", - "gwilh", - "gwim", - "gwib", - "gwibs", - "gwis", - "gwiss", - "gwing", - "gwij", - "gwic", - "gwik", - "gwit", - "gwip", - "gwih", - "gyu", - "gyug", - "gyugg", - "gyugs", - "gyun", - "gyunj", - "gyunh", - "gyud", - "gyul", - "gyulg", - "gyulm", - "gyulb", - "gyuls", - "gyult", - "gyulp", - "gyulh", - "gyum", - "gyub", - "gyubs", - "gyus", - "gyuss", - "gyung", - "gyuj", - "gyuc", - "gyuk", - "gyut", - "gyup", - "gyuh", - "geu", - "geug", - "geugg", - "geugs", - "geun", - "geunj", - "geunh", - "geud", - "geul", - "geulg", - "geulm", - "geulb", - "geuls", - "geult", - "geulp", - "geulh", - "geum", - "geub", - "geubs", - "geus", - "geuss", - "geung", - "geuj", - "geuc", - "geuk", - "geut", - "geup", - "geuh", - "gyi", - "gyig", - "gyigg", - "gyigs", - "gyin", - "gyinj", - "gyinh", - "gyid", - "gyil", - "gyilg", - "gyilm", - "gyilb", - "gyils", - "gyilt", - "gyilp", - "gyilh", - "gyim", - "gyib", - "gyibs", - "gyis", - "gyiss", - "gying", - "gyij", - "gyic", - "gyik", - "gyit", - "gyip", - "gyih", - "gi", - "gig", - "gigg", - "gigs", - "gin", - "ginj", - "ginh", - "gid", - "gil", - "gilg", - "gilm", - "gilb", - "gils", - "gilt", - "gilp", - "gilh", - "gim", - "gib", - "gibs", - "gis", - "giss", - "ging", - "gij", - "gic", - "gik", - "git", - "gip", - "gih", - "gga", - "ggag", - "ggagg", - "ggags", - "ggan", - "gganj", - "gganh", - "ggad", - "ggal", - "ggalg", - "ggalm", - "ggalb", - "ggals", - "ggalt", - "ggalp", - "ggalh", - "ggam", - "ggab", - "ggabs", - "ggas", - "ggass", - "ggang", - "ggaj", - "ggac", - "ggak", - "ggat", - "ggap", - "ggah", - "ggae", - "ggaeg", - "ggaegg", - "ggaegs", - "ggaen", - "ggaenj", - "ggaenh", - "ggaed", - "ggael", - "ggaelg", - "ggaelm", - "ggaelb", - "ggaels", - "ggaelt", - "ggaelp", - "ggaelh", - "ggaem", - "ggaeb", - "ggaebs", - "ggaes", - "ggaess", - "ggaeng", - "ggaej", - "ggaec", - "ggaek", - "ggaet", - "ggaep", - "ggaeh", - "ggya", - "ggyag", - "ggyagg", - "ggyags", - "ggyan", - "ggyanj", - "ggyanh", - "ggyad", - "ggyal", - "ggyalg", - "ggyalm", - "ggyalb", - "ggyals", - "ggyalt", - "ggyalp", - "ggyalh", - "ggyam", - "ggyab", - "ggyabs", - "ggyas", - "ggyass", - "ggyang", - "ggyaj", - "ggyac", - "ggyak", - "ggyat", - "ggyap", - "ggyah", - "ggyae", - "ggyaeg", - "ggyaegg", - "ggyaegs", - "ggyaen", - "ggyaenj", - "ggyaenh", - "ggyaed", - "ggyael", - "ggyaelg", - "ggyaelm", - "ggyaelb", - "ggyaels", - "ggyaelt", - "ggyaelp", - "ggyaelh", - "ggyaem", - "ggyaeb", - "ggyaebs", - "ggyaes", - "ggyaess", - "ggyaeng", - "ggyaej", - "ggyaec", - "ggyaek", - "ggyaet", - "ggyaep", - "ggyaeh", - "ggeo", - "ggeog", - "ggeogg", - "ggeogs", - "ggeon", - "ggeonj", - "ggeonh", - "ggeod", - "ggeol", - "ggeolg", - "ggeolm", - "ggeolb", - "ggeols", - "ggeolt", - "ggeolp", - "ggeolh", - "ggeom", - "ggeob", - "ggeobs", - "ggeos", - "ggeoss", - "ggeong", - "ggeoj", - "ggeoc", - "ggeok", - "ggeot", - "ggeop", - "ggeoh", - "gge", - "ggeg", - "ggegg", - "ggegs", - "ggen", - "ggenj", - "ggenh", - "gged", - "ggel", - "ggelg", - "ggelm", - "ggelb", - "ggels", - "ggelt", - "ggelp", - "ggelh", - "ggem", - "ggeb", - "ggebs", - "gges", - "ggess", - "ggeng", - "ggej", - "ggec", - "ggek", - "gget", - "ggep", - "ggeh", - "ggyeo", - "ggyeog", - "ggyeogg", - "ggyeogs", - "ggyeon", - "ggyeonj", - "ggyeonh", - "ggyeod", - "ggyeol", - "ggyeolg", - "ggyeolm", - "ggyeolb", - "ggyeols", - "ggyeolt", - "ggyeolp", - "ggyeolh", - "ggyeom", - "ggyeob", - "ggyeobs", - "ggyeos", - "ggyeoss", - "ggyeong", - "ggyeoj", - "ggyeoc", - "ggyeok", - "ggyeot", - "ggyeop", - "ggyeoh", - "ggye", - "ggyeg", - "ggyegg", - "ggyegs", - "ggyen", - "ggyenj", - "ggyenh", - "ggyed", - "ggyel", - "ggyelg", - "ggyelm", - "ggyelb", - "ggyels", - "ggyelt", - "ggyelp", - "ggyelh", - "ggyem", - "ggyeb", - "ggyebs", - "ggyes", - "ggyess", - "ggyeng", - "ggyej", - "ggyec", - "ggyek", - "ggyet", - "ggyep", - "ggyeh", - "ggo", - "ggog", - "ggogg", - "ggogs", - "ggon", - "ggonj", - "ggonh", - "ggod", - "ggol", - "ggolg", - "ggolm", - "ggolb", - "ggols", - "ggolt", - "ggolp", - "ggolh", - "ggom", - "ggob", - "ggobs", - "ggos", - "ggoss", - "ggong", - "ggoj", - "ggoc", - "ggok", - "ggot", - "ggop", - "ggoh", - "ggwa", - "ggwag", - "ggwagg", - "ggwags", - "ggwan", - "ggwanj", - "ggwanh", - "ggwad", - "ggwal", - "ggwalg", - "ggwalm", - "ggwalb", - "ggwals", - "ggwalt", - "ggwalp", - "ggwalh", - "ggwam", - "ggwab", - "ggwabs", - "ggwas", - "ggwass", - "ggwang", - "ggwaj", - "ggwac", - "ggwak", - "ggwat", - "ggwap", - "ggwah", - "ggwae", - "ggwaeg", - "ggwaegg", - "ggwaegs", - "ggwaen", - "ggwaenj", - "ggwaenh", - "ggwaed", - "ggwael", - "ggwaelg", - "ggwaelm", - "ggwaelb", - "ggwaels", - "ggwaelt", - "ggwaelp", - "ggwaelh", - "ggwaem", - "ggwaeb", - "ggwaebs", - "ggwaes", - "ggwaess", - "ggwaeng", - "ggwaej", - "ggwaec", - "ggwaek", - "ggwaet", - "ggwaep", - "ggwaeh", - "ggoe", - "ggoeg", - "ggoegg", - "ggoegs", - "ggoen", - "ggoenj", - "ggoenh", - "ggoed", - "ggoel", - "ggoelg", - "ggoelm", - "ggoelb", - "ggoels", - "ggoelt", - "ggoelp", - "ggoelh", - "ggoem", - "ggoeb", - "ggoebs", - "ggoes", - "ggoess", - "ggoeng", - "ggoej", - "ggoec", - "ggoek", - "ggoet", - "ggoep", - "ggoeh", - "ggyo", - "ggyog", - "ggyogg", - "ggyogs", - "ggyon", - "ggyonj", - "ggyonh", - "ggyod", - "ggyol", - "ggyolg", - "ggyolm", - "ggyolb", - "ggyols", - "ggyolt", - "ggyolp", - "ggyolh", - "ggyom", - "ggyob", - "ggyobs", - "ggyos", - "ggyoss", - "ggyong", - "ggyoj", - "ggyoc", - "ggyok", - "ggyot", - "ggyop", - "ggyoh", - "ggu", - "ggug", - "ggugg", - "ggugs", - "ggun", - "ggunj", - "ggunh", - "ggud", - "ggul", - "ggulg", - "ggulm", - "ggulb", - "gguls", - "ggult", - "ggulp", - "ggulh", - "ggum", - "ggub", - "ggubs", - "ggus", - "gguss", - "ggung", - "gguj", - "gguc", - "gguk", - "ggut", - "ggup", - "gguh", - "ggweo", - "ggweog", - "ggweogg", - "ggweogs", - "ggweon", - "ggweonj", - "ggweonh", - "ggweod", - "ggweol", - "ggweolg", - "ggweolm", - "ggweolb", - "ggweols", - "ggweolt", - "ggweolp", - "ggweolh", - "ggweom", - "ggweob", - "ggweobs", - "ggweos", - "ggweoss", - "ggweong", - "ggweoj", - "ggweoc", - "ggweok", - "ggweot", - "ggweop", - "ggweoh", - "ggwe", - "ggweg", - "ggwegg", - "ggwegs", - "ggwen", - "ggwenj", - "ggwenh", - "ggwed", - "ggwel", - "ggwelg", - "ggwelm", - "ggwelb", - "ggwels", - "ggwelt", - "ggwelp", - "ggwelh", - "ggwem", - "ggweb", - "ggwebs", - "ggwes", - "ggwess", - "ggweng", - "ggwej", - "ggwec", - "ggwek", - "ggwet", - "ggwep", - "ggweh", - "ggwi", - "ggwig", - "ggwigg", - "ggwigs", - "ggwin", - "ggwinj", - "ggwinh", - "ggwid", - "ggwil", - "ggwilg", - "ggwilm", - "ggwilb", - "ggwils", - "ggwilt", - "ggwilp", - "ggwilh", - "ggwim", - "ggwib", - "ggwibs", - "ggwis", - "ggwiss", - "ggwing", - "ggwij", - "ggwic", - "ggwik", - "ggwit", - "ggwip", - "ggwih", - "ggyu", - "ggyug", - "ggyugg", - "ggyugs", - "ggyun", - "ggyunj", - "ggyunh", - "ggyud", - "ggyul", - "ggyulg", - "ggyulm", - "ggyulb", - "ggyuls", - "ggyult", - "ggyulp", - "ggyulh", - "ggyum", - "ggyub", - "ggyubs", - "ggyus", - "ggyuss", - "ggyung", - "ggyuj", - "ggyuc", - "ggyuk", - "ggyut", - "ggyup", - "ggyuh", - "ggeu", - "ggeug", - "ggeugg", - "ggeugs", - "ggeun", - "ggeunj", - "ggeunh", - "ggeud", - "ggeul", - "ggeulg", - "ggeulm", - "ggeulb", - "ggeuls", - "ggeult", - "ggeulp", - "ggeulh", - "ggeum", - "ggeub", - "ggeubs", - "ggeus", - "ggeuss", - "ggeung", - "ggeuj", - "ggeuc", - "ggeuk", - "ggeut", - "ggeup", - "ggeuh", - "ggyi", - "ggyig", - "ggyigg", - "ggyigs", - "ggyin", - "ggyinj", - "ggyinh", - "ggyid", - "ggyil", - "ggyilg", - "ggyilm", - "ggyilb", - "ggyils", - "ggyilt", - "ggyilp", - "ggyilh", - "ggyim", - "ggyib", - "ggyibs", - "ggyis", - "ggyiss", - "ggying", - "ggyij", - "ggyic", - "ggyik", - "ggyit", - "ggyip", - "ggyih", - "ggi", - "ggig", - "ggigg", - "ggigs", - "ggin", - "gginj", - "gginh", - "ggid", - "ggil", - "ggilg", - "ggilm", - "ggilb", - "ggils", - "ggilt", - "ggilp", - "ggilh", - "ggim", - "ggib", - "ggibs", - "ggis", - "ggiss", - "gging", - "ggij", - "ggic", - "ggik", - "ggit", - "ggip", - "ggih", - "na", - "nag", - "nagg", - "nags", - "nan", - "nanj", - "nanh", - "nad", - "nal", - "nalg", - "nalm", - "nalb", - "nals", - "nalt", - "nalp", - "nalh", - "nam", - "nab", - "nabs", - "nas", - "nass", - "nang", - "naj", - "nac", - "nak", - "nat", - "nap", - "nah", - "nae", - "naeg", - "naegg", - "naegs", - "naen", - "naenj", - "naenh", - "naed", - "nael", - "naelg", - "naelm", - "naelb", - "naels", - "naelt", - "naelp", - "naelh", - "naem", - "naeb", - "naebs", - "naes", - "naess", - "naeng", - "naej", - "naec", - "naek", - "naet", - "naep", - "naeh", - "nya", - "nyag", - "nyagg", - "nyags", - "nyan", - "nyanj", - "nyanh", - "nyad", - "nyal", - "nyalg", - "nyalm", - "nyalb", - "nyals", - "nyalt", - "nyalp", - "nyalh", - "nyam", - "nyab", - "nyabs", - "nyas", - "nyass", - "nyang", - "nyaj", - "nyac", - "nyak", - "nyat", - "nyap", - "nyah", - "nyae", - "nyaeg", - "nyaegg", - "nyaegs", - "nyaen", - "nyaenj", - "nyaenh", - "nyaed", - "nyael", - "nyaelg", - "nyaelm", - "nyaelb", - "nyaels", - "nyaelt", - "nyaelp", - "nyaelh", - "nyaem", - "nyaeb", - "nyaebs", - "nyaes", - "nyaess", - "nyaeng", - "nyaej", - "nyaec", - "nyaek", - "nyaet", - "nyaep", - "nyaeh", - "neo", - "neog", - "neogg", - "neogs", - "neon", - "neonj", - "neonh", - "neod", - "neol", - "neolg", - "neolm", - "neolb", - "neols", - "neolt", - "neolp", - "neolh", - "neom", - "neob", - "neobs", - "neos", - "neoss", - "neong", - "neoj", - "neoc", - "neok", - "neot", - "neop", - "neoh", - "ne", - "neg", - "negg", - "negs", - "nen", - "nenj", - "nenh", - "ned", - "nel", - "nelg", - "nelm", - "nelb", - "nels", - "nelt", - "nelp", - "nelh", - "nem", - "neb", - "nebs", - "nes", - "ness", - "neng", - "nej", - "nec", - "nek", - "net", - "nep", - "neh", - "nyeo", - "nyeog", - "nyeogg", - "nyeogs", - "nyeon", - "nyeonj", - "nyeonh", - "nyeod", - "nyeol", - "nyeolg", - "nyeolm", - "nyeolb", - "nyeols", - "nyeolt", - "nyeolp", - "nyeolh", - "nyeom", - "nyeob", - "nyeobs", - "nyeos", - "nyeoss", - "nyeong", - "nyeoj", - "nyeoc", - "nyeok", - "nyeot", - "nyeop", - "nyeoh", - "nye", - "nyeg", - "nyegg", - "nyegs", - "nyen", - "nyenj", - "nyenh", - "nyed", - "nyel", - "nyelg", - "nyelm", - "nyelb", - "nyels", - "nyelt", - "nyelp", - "nyelh", - "nyem", - "nyeb", - "nyebs", - "nyes", - "nyess", - "nyeng", - "nyej", - "nyec", - "nyek", - "nyet", - "nyep", - "nyeh", - "no", - "nog", - "nogg", - "nogs", - "non", - "nonj", - "nonh", - "nod", - "nol", - "nolg", - "nolm", - "nolb", - "nols", - "nolt", - "nolp", - "nolh", - "nom", - "nob", - "nobs", - "nos", - "noss", - "nong", - "noj", - "noc", - "nok", - "not", - "nop", - "noh", - "nwa", - "nwag", - "nwagg", - "nwags", - "nwan", - "nwanj", - "nwanh", - "nwad", - "nwal", - "nwalg", - "nwalm", - "nwalb", - "nwals", - "nwalt", - "nwalp", - "nwalh", - "nwam", - "nwab", - "nwabs", - "nwas", - "nwass", - "nwang", - "nwaj", - "nwac", - "nwak", - "nwat", - "nwap", - "nwah", - "nwae", - "nwaeg", - "nwaegg", - "nwaegs", - "nwaen", - "nwaenj", - "nwaenh", - "nwaed", - "nwael", - "nwaelg", - "nwaelm", - "nwaelb", - "nwaels", - "nwaelt", - "nwaelp", - "nwaelh", - "nwaem", - "nwaeb", - "nwaebs", - "nwaes", - "nwaess", - "nwaeng", - "nwaej", - "nwaec", - "nwaek", - "nwaet", - "nwaep", - "nwaeh", - "noe", - "noeg", - "noegg", - "noegs", - "noen", - "noenj", - "noenh", - "noed", - "noel", - "noelg", - "noelm", - "noelb", - "noels", - "noelt", - "noelp", - "noelh", - "noem", - "noeb", - "noebs", - "noes", - "noess", - "noeng", - "noej", - "noec", - "noek", - "noet", - "noep", - "noeh", - "nyo", - "nyog", - "nyogg", - "nyogs", - "nyon", - "nyonj", - "nyonh", - "nyod", - "nyol", - "nyolg", - "nyolm", - "nyolb", - "nyols", - "nyolt", - "nyolp", - "nyolh", - "nyom", - "nyob", - "nyobs", - "nyos", - "nyoss", - "nyong", - "nyoj", - "nyoc", - "nyok", - "nyot", - "nyop", - "nyoh", - "nu", - "nug", - "nugg", - "nugs", - "nun", - "nunj", - "nunh", - "nud", - "nul", - "nulg", - "nulm", - "nulb", - "nuls", - "nult", - "nulp", - "nulh", - "num", - "nub", - "nubs", - "nus", - "nuss", - "nung", - "nuj", - "nuc", - "nuk", - "nut", - "nup", - "nuh", - "nweo", - "nweog", - "nweogg", - "nweogs", - "nweon", - "nweonj", - "nweonh", - "nweod", - "nweol", - "nweolg", - "nweolm", - "nweolb", - "nweols", - "nweolt", - "nweolp", - "nweolh", - "nweom", - "nweob", - "nweobs", - "nweos", - "nweoss", - "nweong", - "nweoj", - "nweoc", - "nweok", - "nweot", - "nweop", - "nweoh", - "nwe", - "nweg", - "nwegg", - "nwegs", - "nwen", - "nwenj", - "nwenh", - "nwed", - "nwel", - "nwelg", - "nwelm", - "nwelb", - "nwels", - "nwelt", - "nwelp", - "nwelh", - "nwem", - "nweb", - "nwebs", - "nwes", - "nwess", - "nweng", - "nwej", - "nwec", - "nwek", - "nwet", - "nwep", - "nweh", - "nwi", - "nwig", - "nwigg", - "nwigs", - "nwin", - "nwinj", - "nwinh", - "nwid", - "nwil", - "nwilg", - "nwilm", - "nwilb", - "nwils", - "nwilt", - "nwilp", - "nwilh", - "nwim", - "nwib", - "nwibs", - "nwis", - "nwiss", - "nwing", - "nwij", - "nwic", - "nwik", - "nwit", - "nwip", - "nwih", - "nyu", - "nyug", - "nyugg", - "nyugs", - "nyun", - "nyunj", - "nyunh", - "nyud", - "nyul", - "nyulg", - "nyulm", - "nyulb", - "nyuls", - "nyult", - "nyulp", - "nyulh", - "nyum", - "nyub", - "nyubs", - "nyus", - "nyuss", - "nyung", - "nyuj", - "nyuc", - "nyuk", - "nyut", - "nyup", - "nyuh", - "neu", - "neug", - "neugg", - "neugs", - "neun", - "neunj", - "neunh", - "neud", - "neul", - "neulg", - "neulm", - "neulb", - "neuls", - "neult", - "neulp", - "neulh", - "neum", - "neub", - "neubs", - "neus", - "neuss", - "neung", - "neuj", - "neuc", - "neuk", - "neut", - "neup", - "neuh", - "nyi", - "nyig", - "nyigg", - "nyigs", - "nyin", - "nyinj", - "nyinh", - "nyid", - "nyil", - "nyilg", - "nyilm", - "nyilb", - "nyils", - "nyilt", - "nyilp", - "nyilh", - "nyim", - "nyib", - "nyibs", - "nyis", - "nyiss", - "nying", - "nyij", - "nyic", - "nyik", - "nyit", - "nyip", - "nyih", - "ni", - "nig", - "nigg", - "nigs", - "nin", - "ninj", - "ninh", - "nid", - "nil", - "nilg", - "nilm", - "nilb", - "nils", - "nilt", - "nilp", - "nilh", - "nim", - "nib", - "nibs", - "nis", - "niss", - "ning", - "nij", - "nic", - "nik", - "nit", - "nip", - "nih", - "da", - "dag", - "dagg", - "dags", - "dan", - "danj", - "danh", - "dad", - "dal", - "dalg", - "dalm", - "dalb", - "dals", - "dalt", - "dalp", - "dalh", - "dam", - "dab", - "dabs", - "das", - "dass", - "dang", - "daj", - "dac", - "dak", - "dat", - "dap", - "dah", - "dae", - "daeg", - "daegg", - "daegs", - "daen", - "daenj", - "daenh", - "daed", - "dael", - "daelg", - "daelm", - "daelb", - "daels", - "daelt", - "daelp", - "daelh", - "daem", - "daeb", - "daebs", - "daes", - "daess", - "daeng", - "daej", - "daec", - "daek", - "daet", - "daep", - "daeh", - "dya", - "dyag", - "dyagg", - "dyags", - "dyan", - "dyanj", - "dyanh", - "dyad", - "dyal", - "dyalg", - "dyalm", - "dyalb", - "dyals", - "dyalt", - "dyalp", - "dyalh", - "dyam", - "dyab", - "dyabs", - "dyas", - "dyass", - "dyang", - "dyaj", - "dyac", - "dyak", - "dyat", - "dyap", - "dyah", - "dyae", - "dyaeg", - "dyaegg", - "dyaegs", - "dyaen", - "dyaenj", - "dyaenh", - "dyaed", - "dyael", - "dyaelg", - "dyaelm", - "dyaelb", - "dyaels", - "dyaelt", - "dyaelp", - "dyaelh", - "dyaem", - "dyaeb", - "dyaebs", - "dyaes", - "dyaess", - "dyaeng", - "dyaej", - "dyaec", - "dyaek", - "dyaet", - "dyaep", - "dyaeh", - "deo", - "deog", - "deogg", - "deogs", - "deon", - "deonj", - "deonh", - "deod", - "deol", - "deolg", - "deolm", - "deolb", - "deols", - "deolt", - "deolp", - "deolh", - "deom", - "deob", - "deobs", - "deos", - "deoss", - "deong", - "deoj", - "deoc", - "deok", - "deot", - "deop", - "deoh", - "de", - "deg", - "degg", - "degs", - "den", - "denj", - "denh", - "ded", - "del", - "delg", - "delm", - "delb", - "dels", - "delt", - "delp", - "delh", - "dem", - "deb", - "debs", - "des", - "dess", - "deng", - "dej", - "dec", - "dek", - "det", - "dep", - "deh", - "dyeo", - "dyeog", - "dyeogg", - "dyeogs", - "dyeon", - "dyeonj", - "dyeonh", - "dyeod", - "dyeol", - "dyeolg", - "dyeolm", - "dyeolb", - "dyeols", - "dyeolt", - "dyeolp", - "dyeolh", - "dyeom", - "dyeob", - "dyeobs", - "dyeos", - "dyeoss", - "dyeong", - "dyeoj", - "dyeoc", - "dyeok", - "dyeot", - "dyeop", - "dyeoh", - "dye", - "dyeg", - "dyegg", - "dyegs", - "dyen", - "dyenj", - "dyenh", - "dyed", - "dyel", - "dyelg", - "dyelm", - "dyelb", - "dyels", - "dyelt", - "dyelp", - "dyelh", - "dyem", - "dyeb", - "dyebs", - "dyes", - "dyess", - "dyeng", - "dyej", - "dyec", - "dyek", - "dyet", - "dyep", - "dyeh", - "do", - "dog", - "dogg", - "dogs", - "don", - "donj", - "donh", - "dod", - "dol", - "dolg", - "dolm", - "dolb", - "dols", - "dolt", - "dolp", - "dolh", - "dom", - "dob", - "dobs", - "dos", - "doss", - "dong", - "doj", - "doc", - "dok", - "dot", - "dop", - "doh", - "dwa", - "dwag", - "dwagg", - "dwags", - "dwan", - "dwanj", - "dwanh", - "dwad", - "dwal", - "dwalg", - "dwalm", - "dwalb", - "dwals", - "dwalt", - "dwalp", - "dwalh", - "dwam", - "dwab", - "dwabs", - "dwas", - "dwass", - "dwang", - "dwaj", - "dwac", - "dwak", - "dwat", - "dwap", - "dwah", - "dwae", - "dwaeg", - "dwaegg", - "dwaegs", - "dwaen", - "dwaenj", - "dwaenh", - "dwaed", - "dwael", - "dwaelg", - "dwaelm", - "dwaelb", - "dwaels", - "dwaelt", - "dwaelp", - "dwaelh", - "dwaem", - "dwaeb", - "dwaebs", - "dwaes", - "dwaess", - "dwaeng", - "dwaej", - "dwaec", - "dwaek", - "dwaet", - "dwaep", - "dwaeh", - "doe", - "doeg", - "doegg", - "doegs", - "doen", - "doenj", - "doenh", - "doed", - "doel", - "doelg", - "doelm", - "doelb", - "doels", - "doelt", - "doelp", - "doelh", - "doem", - "doeb", - "doebs", - "does", - "doess", - "doeng", - "doej", - "doec", - "doek", - "doet", - "doep", - "doeh", - "dyo", - "dyog", - "dyogg", - "dyogs", - "dyon", - "dyonj", - "dyonh", - "dyod", - "dyol", - "dyolg", - "dyolm", - "dyolb", - "dyols", - "dyolt", - "dyolp", - "dyolh", - "dyom", - "dyob", - "dyobs", - "dyos", - "dyoss", - "dyong", - "dyoj", - "dyoc", - "dyok", - "dyot", - "dyop", - "dyoh", - "du", - "dug", - "dugg", - "dugs", - "dun", - "dunj", - "dunh", - "dud", - "dul", - "dulg", - "dulm", - "dulb", - "duls", - "dult", - "dulp", - "dulh", - "dum", - "dub", - "dubs", - "dus", - "duss", - "dung", - "duj", - "duc", - "duk", - "dut", - "dup", - "duh", - "dweo", - "dweog", - "dweogg", - "dweogs", - "dweon", - "dweonj", - "dweonh", - "dweod", - "dweol", - "dweolg", - "dweolm", - "dweolb", - "dweols", - "dweolt", - "dweolp", - "dweolh", - "dweom", - "dweob", - "dweobs", - "dweos", - "dweoss", - "dweong", - "dweoj", - "dweoc", - "dweok", - "dweot", - "dweop", - "dweoh", - "dwe", - "dweg", - "dwegg", - "dwegs", - "dwen", - "dwenj", - "dwenh", - "dwed", - "dwel", - "dwelg", - "dwelm", - "dwelb", - "dwels", - "dwelt", - "dwelp", - "dwelh", - "dwem", - "dweb", - "dwebs", - "dwes", - "dwess", - "dweng", - "dwej", - "dwec", - "dwek", - "dwet", - "dwep", - "dweh", - "dwi", - "dwig", - "dwigg", - "dwigs", - "dwin", - "dwinj", - "dwinh", - "dwid", - "dwil", - "dwilg", - "dwilm", - "dwilb", - "dwils", - "dwilt", - "dwilp", - "dwilh", - "dwim", - "dwib", - "dwibs", - "dwis", - "dwiss", - "dwing", - "dwij", - "dwic", - "dwik", - "dwit", - "dwip", - "dwih", - "dyu", - "dyug", - "dyugg", - "dyugs", - "dyun", - "dyunj", - "dyunh", - "dyud", - "dyul", - "dyulg", - "dyulm", - "dyulb", - "dyuls", - "dyult", - "dyulp", - "dyulh", - "dyum", - "dyub", - "dyubs", - "dyus", - "dyuss", - "dyung", - "dyuj", - "dyuc", - "dyuk", - "dyut", - "dyup", - "dyuh", - "deu", - "deug", - "deugg", - "deugs", - "deun", - "deunj", - "deunh", - "deud", - "deul", - "deulg", - "deulm", - "deulb", - "deuls", - "deult", - "deulp", - "deulh", - "deum", - "deub", - "deubs", - "deus", - "deuss", - "deung", - "deuj", - "deuc", - "deuk", - "deut", - "deup", - "deuh", - "dyi", - "dyig", - "dyigg", - "dyigs", - "dyin", - "dyinj", - "dyinh", - "dyid", - "dyil", - "dyilg", - "dyilm", - "dyilb", - "dyils", - "dyilt", - "dyilp", - "dyilh", - "dyim", - "dyib", - "dyibs", - "dyis", - "dyiss", - "dying", - "dyij", - "dyic", - "dyik", - "dyit", - "dyip", - "dyih", - "di", - "dig", - "digg", - "digs", - "din", - "dinj", - "dinh", - "did", - "dil", - "dilg", - "dilm", - "dilb", - "dils", - "dilt", - "dilp", - "dilh", - "dim", - "dib", - "dibs", - "dis", - "diss", - "ding", - "dij", - "dic", - "dik", - "dit", - "dip", - "dih", - "dda", - "ddag", - "ddagg", - "ddags", - "ddan", - "ddanj", - "ddanh", - "ddad", - "ddal", - "ddalg", - "ddalm", - "ddalb", - "ddals", - "ddalt", - "ddalp", - "ddalh", - "ddam", - "ddab", - "ddabs", - "ddas", - "ddass", - "ddang", - "ddaj", - "ddac", - "ddak", - "ddat", - "ddap", - "ddah", - "ddae", - "ddaeg", - "ddaegg", - "ddaegs", - "ddaen", - "ddaenj", - "ddaenh", - "ddaed", - "ddael", - "ddaelg", - "ddaelm", - "ddaelb", - "ddaels", - "ddaelt", - "ddaelp", - "ddaelh", - "ddaem", - "ddaeb", - "ddaebs", - "ddaes", - "ddaess", - "ddaeng", - "ddaej", - "ddaec", - "ddaek", - "ddaet", - "ddaep", - "ddaeh", - "ddya", - "ddyag", - "ddyagg", - "ddyags", - "ddyan", - "ddyanj", - "ddyanh", - "ddyad", - "ddyal", - "ddyalg", - "ddyalm", - "ddyalb", - "ddyals", - "ddyalt", - "ddyalp", - "ddyalh", - "ddyam", - "ddyab", - "ddyabs", - "ddyas", - "ddyass", - "ddyang", - "ddyaj", - "ddyac", - "ddyak", - "ddyat", - "ddyap", - "ddyah", - "ddyae", - "ddyaeg", - "ddyaegg", - "ddyaegs", - "ddyaen", - "ddyaenj", - "ddyaenh", - "ddyaed", - "ddyael", - "ddyaelg", - "ddyaelm", - "ddyaelb", - "ddyaels", - "ddyaelt", - "ddyaelp", - "ddyaelh", - "ddyaem", - "ddyaeb", - "ddyaebs", - "ddyaes", - "ddyaess", - "ddyaeng", - "ddyaej", - "ddyaec", - "ddyaek", - "ddyaet", - "ddyaep", - "ddyaeh", - "ddeo", - "ddeog", - "ddeogg", - "ddeogs", - "ddeon", - "ddeonj", - "ddeonh", - "ddeod", - "ddeol", - "ddeolg", - "ddeolm", - "ddeolb", - "ddeols", - "ddeolt", - "ddeolp", - "ddeolh", - "ddeom", - "ddeob", - "ddeobs", - "ddeos", - "ddeoss", - "ddeong", - "ddeoj", - "ddeoc", - "ddeok", - "ddeot", - "ddeop", - "ddeoh", - "dde", - "ddeg", - "ddegg", - "ddegs", - "dden", - "ddenj", - "ddenh", - "dded", - "ddel", - "ddelg", - "ddelm", - "ddelb", - "ddels", - "ddelt", - "ddelp", - "ddelh", - "ddem", - "ddeb", - "ddebs", - "ddes", - "ddess", - "ddeng", - "ddej", - "ddec", - "ddek", - "ddet", - "ddep", - "ddeh", - "ddyeo", - "ddyeog", - "ddyeogg", - "ddyeogs", - "ddyeon", - "ddyeonj", - "ddyeonh", - "ddyeod", - "ddyeol", - "ddyeolg", - "ddyeolm", - "ddyeolb", - "ddyeols", - "ddyeolt", - "ddyeolp", - "ddyeolh", - "ddyeom", - "ddyeob", - "ddyeobs", - "ddyeos", - "ddyeoss", - "ddyeong", - "ddyeoj", - "ddyeoc", - "ddyeok", - "ddyeot", - "ddyeop", - "ddyeoh", - "ddye", - "ddyeg", - "ddyegg", - "ddyegs", - "ddyen", - "ddyenj", - "ddyenh", - "ddyed", - "ddyel", - "ddyelg", - "ddyelm", - "ddyelb", - "ddyels", - "ddyelt", - "ddyelp", - "ddyelh", - "ddyem", - "ddyeb", - "ddyebs", - "ddyes", - "ddyess", - "ddyeng", - "ddyej", - "ddyec", - "ddyek", - "ddyet", - "ddyep", - "ddyeh", - "ddo", - "ddog", - "ddogg", - "ddogs", - "ddon", - "ddonj", - "ddonh", - "ddod", - "ddol", - "ddolg", - "ddolm", - "ddolb", - "ddols", - "ddolt", - "ddolp", - "ddolh", - "ddom", - "ddob", - "ddobs", - "ddos", - "ddoss", - "ddong", - "ddoj", - "ddoc", - "ddok", - "ddot", - "ddop", - "ddoh", - "ddwa", - "ddwag", - "ddwagg", - "ddwags", - "ddwan", - "ddwanj", - "ddwanh", - "ddwad", - "ddwal", - "ddwalg", - "ddwalm", - "ddwalb", - "ddwals", - "ddwalt", - "ddwalp", - "ddwalh", - "ddwam", - "ddwab", - "ddwabs", - "ddwas", - "ddwass", - "ddwang", - "ddwaj", - "ddwac", - "ddwak", - "ddwat", - "ddwap", - "ddwah", - "ddwae", - "ddwaeg", - "ddwaegg", - "ddwaegs", - "ddwaen", - "ddwaenj", - "ddwaenh", - "ddwaed", - "ddwael", - "ddwaelg", - "ddwaelm", - "ddwaelb", - "ddwaels", - "ddwaelt", - "ddwaelp", - "ddwaelh", - "ddwaem", - "ddwaeb", - "ddwaebs", - "ddwaes", - "ddwaess", - "ddwaeng", - "ddwaej", - "ddwaec", - "ddwaek", - "ddwaet", - "ddwaep", - "ddwaeh", - "ddoe", - "ddoeg", - "ddoegg", - "ddoegs", - "ddoen", - "ddoenj", - "ddoenh", - "ddoed", - "ddoel", - "ddoelg", - "ddoelm", - "ddoelb", - "ddoels", - "ddoelt", - "ddoelp", - "ddoelh", - "ddoem", - "ddoeb", - "ddoebs", - "ddoes", - "ddoess", - "ddoeng", - "ddoej", - "ddoec", - "ddoek", - "ddoet", - "ddoep", - "ddoeh", - "ddyo", - "ddyog", - "ddyogg", - "ddyogs", - "ddyon", - "ddyonj", - "ddyonh", - "ddyod", - "ddyol", - "ddyolg", - "ddyolm", - "ddyolb", - "ddyols", - "ddyolt", - "ddyolp", - "ddyolh", - "ddyom", - "ddyob", - "ddyobs", - "ddyos", - "ddyoss", - "ddyong", - "ddyoj", - "ddyoc", - "ddyok", - "ddyot", - "ddyop", - "ddyoh", - "ddu", - "ddug", - "ddugg", - "ddugs", - "ddun", - "ddunj", - "ddunh", - "ddud", - "ddul", - "ddulg", - "ddulm", - "ddulb", - "dduls", - "ddult", - "ddulp", - "ddulh", - "ddum", - "ddub", - "ddubs", - "ddus", - "dduss", - "ddung", - "dduj", - "dduc", - "dduk", - "ddut", - "ddup", - "dduh", - "ddweo", - "ddweog", - "ddweogg", - "ddweogs", - "ddweon", - "ddweonj", - "ddweonh", - "ddweod", - "ddweol", - "ddweolg", - "ddweolm", - "ddweolb", - "ddweols", - "ddweolt", - "ddweolp", - "ddweolh", - "ddweom", - "ddweob", - "ddweobs", - "ddweos", - "ddweoss", - "ddweong", - "ddweoj", - "ddweoc", - "ddweok", - "ddweot", - "ddweop", - "ddweoh", - "ddwe", - "ddweg", - "ddwegg", - "ddwegs", - "ddwen", - "ddwenj", - "ddwenh", - "ddwed", - "ddwel", - "ddwelg", - "ddwelm", - "ddwelb", - "ddwels", - "ddwelt", - "ddwelp", - "ddwelh", - "ddwem", - "ddweb", - "ddwebs", - "ddwes", - "ddwess", - "ddweng", - "ddwej", - "ddwec", - "ddwek", - "ddwet", - "ddwep", - "ddweh", - "ddwi", - "ddwig", - "ddwigg", - "ddwigs", - "ddwin", - "ddwinj", - "ddwinh", - "ddwid", - "ddwil", - "ddwilg", - "ddwilm", - "ddwilb", - "ddwils", - "ddwilt", - "ddwilp", - "ddwilh", - "ddwim", - "ddwib", - "ddwibs", - "ddwis", - "ddwiss", - "ddwing", - "ddwij", - "ddwic", - "ddwik", - "ddwit", - "ddwip", - "ddwih", - "ddyu", - "ddyug", - "ddyugg", - "ddyugs", - "ddyun", - "ddyunj", - "ddyunh", - "ddyud", - "ddyul", - "ddyulg", - "ddyulm", - "ddyulb", - "ddyuls", - "ddyult", - "ddyulp", - "ddyulh", - "ddyum", - "ddyub", - "ddyubs", - "ddyus", - "ddyuss", - "ddyung", - "ddyuj", - "ddyuc", - "ddyuk", - "ddyut", - "ddyup", - "ddyuh", - "ddeu", - "ddeug", - "ddeugg", - "ddeugs", - "ddeun", - "ddeunj", - "ddeunh", - "ddeud", - "ddeul", - "ddeulg", - "ddeulm", - "ddeulb", - "ddeuls", - "ddeult", - "ddeulp", - "ddeulh", - "ddeum", - "ddeub", - "ddeubs", - "ddeus", - "ddeuss", - "ddeung", - "ddeuj", - "ddeuc", - "ddeuk", - "ddeut", - "ddeup", - "ddeuh", - "ddyi", - "ddyig", - "ddyigg", - "ddyigs", - "ddyin", - "ddyinj", - "ddyinh", - "ddyid", - "ddyil", - "ddyilg", - "ddyilm", - "ddyilb", - "ddyils", - "ddyilt", - "ddyilp", - "ddyilh", - "ddyim", - "ddyib", - "ddyibs", - "ddyis", - "ddyiss", - "ddying", - "ddyij", - "ddyic", - "ddyik", - "ddyit", - "ddyip", - "ddyih", - "ddi", - "ddig", - "ddigg", - "ddigs", - "ddin", - "ddinj", - "ddinh", - "ddid", - "ddil", - "ddilg", - "ddilm", - "ddilb", - "ddils", - "ddilt", - "ddilp", - "ddilh", - "ddim", - "ddib", - "ddibs", - "ddis", - "ddiss", - "dding", - "ddij", - "ddic", - "ddik", - "ddit", - "ddip", - "ddih", - "ra", - "rag", - "ragg", - "rags", - "ran", - "ranj", - "ranh", - "rad", - "ral", - "ralg", - "ralm", - "ralb", - "rals", - "ralt", - "ralp", - "ralh", - "ram", - "rab", - "rabs", - "ras", - "rass", - "rang", - "raj", - "rac", - "rak", - "rat", - "rap", - "rah", - "rae", - "raeg", - "raegg", - "raegs", - "raen", - "raenj", - "raenh", - "raed", - "rael", - "raelg", - "raelm", - "raelb", - "raels", - "raelt", - "raelp", - "raelh", - "raem", - "raeb", - "raebs", - "raes", - "raess", - "raeng", - "raej", - "raec", - "raek", - "raet", - "raep", - "raeh", - "rya", - "ryag", - "ryagg", - "ryags", - "ryan", - "ryanj", - "ryanh", - "ryad", - "ryal", - "ryalg", - "ryalm", - "ryalb", - "ryals", - "ryalt", - "ryalp", - "ryalh", - "ryam", - "ryab", - "ryabs", - "ryas", - "ryass", - "ryang", - "ryaj", - "ryac", - "ryak", - "ryat", - "ryap", - "ryah", - "ryae", - "ryaeg", - "ryaegg", - "ryaegs", - "ryaen", - "ryaenj", - "ryaenh", - "ryaed", - "ryael", - "ryaelg", - "ryaelm", - "ryaelb", - "ryaels", - "ryaelt", - "ryaelp", - "ryaelh", - "ryaem", - "ryaeb", - "ryaebs", - "ryaes", - "ryaess", - "ryaeng", - "ryaej", - "ryaec", - "ryaek", - "ryaet", - "ryaep", - "ryaeh", - "reo", - "reog", - "reogg", - "reogs", - "reon", - "reonj", - "reonh", - "reod", - "reol", - "reolg", - "reolm", - "reolb", - "reols", - "reolt", - "reolp", - "reolh", - "reom", - "reob", - "reobs", - "reos", - "reoss", - "reong", - "reoj", - "reoc", - "reok", - "reot", - "reop", - "reoh", - "re", - "reg", - "regg", - "regs", - "ren", - "renj", - "renh", - "red", - "rel", - "relg", - "relm", - "relb", - "rels", - "relt", - "relp", - "relh", - "rem", - "reb", - "rebs", - "res", - "ress", - "reng", - "rej", - "rec", - "rek", - "ret", - "rep", - "reh", - "ryeo", - "ryeog", - "ryeogg", - "ryeogs", - "ryeon", - "ryeonj", - "ryeonh", - "ryeod", - "ryeol", - "ryeolg", - "ryeolm", - "ryeolb", - "ryeols", - "ryeolt", - "ryeolp", - "ryeolh", - "ryeom", - "ryeob", - "ryeobs", - "ryeos", - "ryeoss", - "ryeong", - "ryeoj", - "ryeoc", - "ryeok", - "ryeot", - "ryeop", - "ryeoh", - "rye", - "ryeg", - "ryegg", - "ryegs", - "ryen", - "ryenj", - "ryenh", - "ryed", - "ryel", - "ryelg", - "ryelm", - "ryelb", - "ryels", - "ryelt", - "ryelp", - "ryelh", - "ryem", - "ryeb", - "ryebs", - "ryes", - "ryess", - "ryeng", - "ryej", - "ryec", - "ryek", - "ryet", - "ryep", - "ryeh", - "ro", - "rog", - "rogg", - "rogs", - "ron", - "ronj", - "ronh", - "rod", - "rol", - "rolg", - "rolm", - "rolb", - "rols", - "rolt", - "rolp", - "rolh", - "rom", - "rob", - "robs", - "ros", - "ross", - "rong", - "roj", - "roc", - "rok", - "rot", - "rop", - "roh", - "rwa", - "rwag", - "rwagg", - "rwags", - "rwan", - "rwanj", - "rwanh", - "rwad", - "rwal", - "rwalg", - "rwalm", - "rwalb", - "rwals", - "rwalt", - "rwalp", - "rwalh", - "rwam", - "rwab", - "rwabs", - "rwas", - "rwass", - "rwang", - "rwaj", - "rwac", - "rwak", - "rwat", - "rwap", - "rwah", - "rwae", - "rwaeg", - "rwaegg", - "rwaegs", - "rwaen", - "rwaenj", - "rwaenh", - "rwaed", - "rwael", - "rwaelg", - "rwaelm", - "rwaelb", - "rwaels", - "rwaelt", - "rwaelp", - "rwaelh", - "rwaem", - "rwaeb", - "rwaebs", - "rwaes", - "rwaess", - "rwaeng", - "rwaej", - "rwaec", - "rwaek", - "rwaet", - "rwaep", - "rwaeh", - "roe", - "roeg", - "roegg", - "roegs", - "roen", - "roenj", - "roenh", - "roed", - "roel", - "roelg", - "roelm", - "roelb", - "roels", - "roelt", - "roelp", - "roelh", - "roem", - "roeb", - "roebs", - "roes", - "roess", - "roeng", - "roej", - "roec", - "roek", - "roet", - "roep", - "roeh", - "ryo", - "ryog", - "ryogg", - "ryogs", - "ryon", - "ryonj", - "ryonh", - "ryod", - "ryol", - "ryolg", - "ryolm", - "ryolb", - "ryols", - "ryolt", - "ryolp", - "ryolh", - "ryom", - "ryob", - "ryobs", - "ryos", - "ryoss", - "ryong", - "ryoj", - "ryoc", - "ryok", - "ryot", - "ryop", - "ryoh", - "ru", - "rug", - "rugg", - "rugs", - "run", - "runj", - "runh", - "rud", - "rul", - "rulg", - "rulm", - "rulb", - "ruls", - "rult", - "rulp", - "rulh", - "rum", - "rub", - "rubs", - "rus", - "russ", - "rung", - "ruj", - "ruc", - "ruk", - "rut", - "rup", - "ruh", - "rweo", - "rweog", - "rweogg", - "rweogs", - "rweon", - "rweonj", - "rweonh", - "rweod", - "rweol", - "rweolg", - "rweolm", - "rweolb", - "rweols", - "rweolt", - "rweolp", - "rweolh", - "rweom", - "rweob", - "rweobs", - "rweos", - "rweoss", - "rweong", - "rweoj", - "rweoc", - "rweok", - "rweot", - "rweop", - "rweoh", - "rwe", - "rweg", - "rwegg", - "rwegs", - "rwen", - "rwenj", - "rwenh", - "rwed", - "rwel", - "rwelg", - "rwelm", - "rwelb", - "rwels", - "rwelt", - "rwelp", - "rwelh", - "rwem", - "rweb", - "rwebs", - "rwes", - "rwess", - "rweng", - "rwej", - "rwec", - "rwek", - "rwet", - "rwep", - "rweh", - "rwi", - "rwig", - "rwigg", - "rwigs", - "rwin", - "rwinj", - "rwinh", - "rwid", - "rwil", - "rwilg", - "rwilm", - "rwilb", - "rwils", - "rwilt", - "rwilp", - "rwilh", - "rwim", - "rwib", - "rwibs", - "rwis", - "rwiss", - "rwing", - "rwij", - "rwic", - "rwik", - "rwit", - "rwip", - "rwih", - "ryu", - "ryug", - "ryugg", - "ryugs", - "ryun", - "ryunj", - "ryunh", - "ryud", - "ryul", - "ryulg", - "ryulm", - "ryulb", - "ryuls", - "ryult", - "ryulp", - "ryulh", - "ryum", - "ryub", - "ryubs", - "ryus", - "ryuss", - "ryung", - "ryuj", - "ryuc", - "ryuk", - "ryut", - "ryup", - "ryuh", - "reu", - "reug", - "reugg", - "reugs", - "reun", - "reunj", - "reunh", - "reud", - "reul", - "reulg", - "reulm", - "reulb", - "reuls", - "reult", - "reulp", - "reulh", - "reum", - "reub", - "reubs", - "reus", - "reuss", - "reung", - "reuj", - "reuc", - "reuk", - "reut", - "reup", - "reuh", - "ryi", - "ryig", - "ryigg", - "ryigs", - "ryin", - "ryinj", - "ryinh", - "ryid", - "ryil", - "ryilg", - "ryilm", - "ryilb", - "ryils", - "ryilt", - "ryilp", - "ryilh", - "ryim", - "ryib", - "ryibs", - "ryis", - "ryiss", - "rying", - "ryij", - "ryic", - "ryik", - "ryit", - "ryip", - "ryih", - "ri", - "rig", - "rigg", - "rigs", - "rin", - "rinj", - "rinh", - "rid", - "ril", - "rilg", - "rilm", - "rilb", - "rils", - "rilt", - "rilp", - "rilh", - "rim", - "rib", - "ribs", - "ris", - "riss", - "ring", - "rij", - "ric", - "rik", - "rit", - "rip", - "rih", - "ma", - "mag", - "magg", - "mags", - "man", - "manj", - "manh", - "mad", - "mal", - "malg", - "malm", - "malb", - "mals", - "malt", - "malp", - "malh", - "mam", - "mab", - "mabs", - "mas", - "mass", - "mang", - "maj", - "mac", - "mak", - "mat", - "map", - "mah", - "mae", - "maeg", - "maegg", - "maegs", - "maen", - "maenj", - "maenh", - "maed", - "mael", - "maelg", - "maelm", - "maelb", - "maels", - "maelt", - "maelp", - "maelh", - "maem", - "maeb", - "maebs", - "maes", - "maess", - "maeng", - "maej", - "maec", - "maek", - "maet", - "maep", - "maeh", - "mya", - "myag", - "myagg", - "myags", - "myan", - "myanj", - "myanh", - "myad", - "myal", - "myalg", - "myalm", - "myalb", - "myals", - "myalt", - "myalp", - "myalh", - "myam", - "myab", - "myabs", - "myas", - "myass", - "myang", - "myaj", - "myac", - "myak", - "myat", - "myap", - "myah", - "myae", - "myaeg", - "myaegg", - "myaegs", - "myaen", - "myaenj", - "myaenh", - "myaed", - "myael", - "myaelg", - "myaelm", - "myaelb", - "myaels", - "myaelt", - "myaelp", - "myaelh", - "myaem", - "myaeb", - "myaebs", - "myaes", - "myaess", - "myaeng", - "myaej", - "myaec", - "myaek", - "myaet", - "myaep", - "myaeh", - "meo", - "meog", - "meogg", - "meogs", - "meon", - "meonj", - "meonh", - "meod", - "meol", - "meolg", - "meolm", - "meolb", - "meols", - "meolt", - "meolp", - "meolh", - "meom", - "meob", - "meobs", - "meos", - "meoss", - "meong", - "meoj", - "meoc", - "meok", - "meot", - "meop", - "meoh", - "me", - "meg", - "megg", - "megs", - "men", - "menj", - "menh", - "med", - "mel", - "melg", - "melm", - "melb", - "mels", - "melt", - "melp", - "melh", - "mem", - "meb", - "mebs", - "mes", - "mess", - "meng", - "mej", - "mec", - "mek", - "met", - "mep", - "meh", - "myeo", - "myeog", - "myeogg", - "myeogs", - "myeon", - "myeonj", - "myeonh", - "myeod", - "myeol", - "myeolg", - "myeolm", - "myeolb", - "myeols", - "myeolt", - "myeolp", - "myeolh", - "myeom", - "myeob", - "myeobs", - "myeos", - "myeoss", - "myeong", - "myeoj", - "myeoc", - "myeok", - "myeot", - "myeop", - "myeoh", - "mye", - "myeg", - "myegg", - "myegs", - "myen", - "myenj", - "myenh", - "myed", - "myel", - "myelg", - "myelm", - "myelb", - "myels", - "myelt", - "myelp", - "myelh", - "myem", - "myeb", - "myebs", - "myes", - "myess", - "myeng", - "myej", - "myec", - "myek", - "myet", - "myep", - "myeh", - "mo", - "mog", - "mogg", - "mogs", - "mon", - "monj", - "monh", - "mod", - "mol", - "molg", - "molm", - "molb", - "mols", - "molt", - "molp", - "molh", - "mom", - "mob", - "mobs", - "mos", - "moss", - "mong", - "moj", - "moc", - "mok", - "mot", - "mop", - "moh", - "mwa", - "mwag", - "mwagg", - "mwags", - "mwan", - "mwanj", - "mwanh", - "mwad", - "mwal", - "mwalg", - "mwalm", - "mwalb", - "mwals", - "mwalt", - "mwalp", - "mwalh", - "mwam", - "mwab", - "mwabs", - "mwas", - "mwass", - "mwang", - "mwaj", - "mwac", - "mwak", - "mwat", - "mwap", - "mwah", - "mwae", - "mwaeg", - "mwaegg", - "mwaegs", - "mwaen", - "mwaenj", - "mwaenh", - "mwaed", - "mwael", - "mwaelg", - "mwaelm", - "mwaelb", - "mwaels", - "mwaelt", - "mwaelp", - "mwaelh", - "mwaem", - "mwaeb", - "mwaebs", - "mwaes", - "mwaess", - "mwaeng", - "mwaej", - "mwaec", - "mwaek", - "mwaet", - "mwaep", - "mwaeh", - "moe", - "moeg", - "moegg", - "moegs", - "moen", - "moenj", - "moenh", - "moed", - "moel", - "moelg", - "moelm", - "moelb", - "moels", - "moelt", - "moelp", - "moelh", - "moem", - "moeb", - "moebs", - "moes", - "moess", - "moeng", - "moej", - "moec", - "moek", - "moet", - "moep", - "moeh", - "myo", - "myog", - "myogg", - "myogs", - "myon", - "myonj", - "myonh", - "myod", - "myol", - "myolg", - "myolm", - "myolb", - "myols", - "myolt", - "myolp", - "myolh", - "myom", - "myob", - "myobs", - "myos", - "myoss", - "myong", - "myoj", - "myoc", - "myok", - "myot", - "myop", - "myoh", - "mu", - "mug", - "mugg", - "mugs", - "mun", - "munj", - "munh", - "mud", - "mul", - "mulg", - "mulm", - "mulb", - "muls", - "mult", - "mulp", - "mulh", - "mum", - "mub", - "mubs", - "mus", - "muss", - "mung", - "muj", - "muc", - "muk", - "mut", - "mup", - "muh", - "mweo", - "mweog", - "mweogg", - "mweogs", - "mweon", - "mweonj", - "mweonh", - "mweod", - "mweol", - "mweolg", - "mweolm", - "mweolb", - "mweols", - "mweolt", - "mweolp", - "mweolh", - "mweom", - "mweob", - "mweobs", - "mweos", - "mweoss", - "mweong", - "mweoj", - "mweoc", - "mweok", - "mweot", - "mweop", - "mweoh", - "mwe", - "mweg", - "mwegg", - "mwegs", - "mwen", - "mwenj", - "mwenh", - "mwed", - "mwel", - "mwelg", - "mwelm", - "mwelb", - "mwels", - "mwelt", - "mwelp", - "mwelh", - "mwem", - "mweb", - "mwebs", - "mwes", - "mwess", - "mweng", - "mwej", - "mwec", - "mwek", - "mwet", - "mwep", - "mweh", - "mwi", - "mwig", - "mwigg", - "mwigs", - "mwin", - "mwinj", - "mwinh", - "mwid", - "mwil", - "mwilg", - "mwilm", - "mwilb", - "mwils", - "mwilt", - "mwilp", - "mwilh", - "mwim", - "mwib", - "mwibs", - "mwis", - "mwiss", - "mwing", - "mwij", - "mwic", - "mwik", - "mwit", - "mwip", - "mwih", - "myu", - "myug", - "myugg", - "myugs", - "myun", - "myunj", - "myunh", - "myud", - "myul", - "myulg", - "myulm", - "myulb", - "myuls", - "myult", - "myulp", - "myulh", - "myum", - "myub", - "myubs", - "myus", - "myuss", - "myung", - "myuj", - "myuc", - "myuk", - "myut", - "myup", - "myuh", - "meu", - "meug", - "meugg", - "meugs", - "meun", - "meunj", - "meunh", - "meud", - "meul", - "meulg", - "meulm", - "meulb", - "meuls", - "meult", - "meulp", - "meulh", - "meum", - "meub", - "meubs", - "meus", - "meuss", - "meung", - "meuj", - "meuc", - "meuk", - "meut", - "meup", - "meuh", - "myi", - "myig", - "myigg", - "myigs", - "myin", - "myinj", - "myinh", - "myid", - "myil", - "myilg", - "myilm", - "myilb", - "myils", - "myilt", - "myilp", - "myilh", - "myim", - "myib", - "myibs", - "myis", - "myiss", - "mying", - "myij", - "myic", - "myik", - "myit", - "myip", - "myih", - "mi", - "mig", - "migg", - "migs", - "min", - "minj", - "minh", - "mid", - "mil", - "milg", - "milm", - "milb", - "mils", - "milt", - "milp", - "milh", - "mim", - "mib", - "mibs", - "mis", - "miss", - "ming", - "mij", - "mic", - "mik", - "mit", - "mip", - "mih", - "ba", - "bag", - "bagg", - "bags", - "ban", - "banj", - "banh", - "bad", - "bal", - "balg", - "balm", - "balb", - "bals", - "balt", - "balp", - "balh", - "bam", - "bab", - "babs", - "bas", - "bass", - "bang", - "baj", - "bac", - "bak", - "bat", - "bap", - "bah", - "bae", - "baeg", - "baegg", - "baegs", - "baen", - "baenj", - "baenh", - "baed", - "bael", - "baelg", - "baelm", - "baelb", - "baels", - "baelt", - "baelp", - "baelh", - "baem", - "baeb", - "baebs", - "baes", - "baess", - "baeng", - "baej", - "baec", - "baek", - "baet", - "baep", - "baeh", - "bya", - "byag", - "byagg", - "byags", - "byan", - "byanj", - "byanh", - "byad", - "byal", - "byalg", - "byalm", - "byalb", - "byals", - "byalt", - "byalp", - "byalh", - "byam", - "byab", - "byabs", - "byas", - "byass", - "byang", - "byaj", - "byac", - "byak", - "byat", - "byap", - "byah", - "byae", - "byaeg", - "byaegg", - "byaegs", - "byaen", - "byaenj", - "byaenh", - "byaed", - "byael", - "byaelg", - "byaelm", - "byaelb", - "byaels", - "byaelt", - "byaelp", - "byaelh", - "byaem", - "byaeb", - "byaebs", - "byaes", - "byaess", - "byaeng", - "byaej", - "byaec", - "byaek", - "byaet", - "byaep", - "byaeh", - "beo", - "beog", - "beogg", - "beogs", - "beon", - "beonj", - "beonh", - "beod", - "beol", - "beolg", - "beolm", - "beolb", - "beols", - "beolt", - "beolp", - "beolh", - "beom", - "beob", - "beobs", - "beos", - "beoss", - "beong", - "beoj", - "beoc", - "beok", - "beot", - "beop", - "beoh", - "be", - "beg", - "begg", - "begs", - "ben", - "benj", - "benh", - "bed", - "bel", - "belg", - "belm", - "belb", - "bels", - "belt", - "belp", - "belh", - "bem", - "beb", - "bebs", - "bes", - "bess", - "beng", - "bej", - "bec", - "bek", - "bet", - "bep", - "beh", - "byeo", - "byeog", - "byeogg", - "byeogs", - "byeon", - "byeonj", - "byeonh", - "byeod", - "byeol", - "byeolg", - "byeolm", - "byeolb", - "byeols", - "byeolt", - "byeolp", - "byeolh", - "byeom", - "byeob", - "byeobs", - "byeos", - "byeoss", - "byeong", - "byeoj", - "byeoc", - "byeok", - "byeot", - "byeop", - "byeoh", - "bye", - "byeg", - "byegg", - "byegs", - "byen", - "byenj", - "byenh", - "byed", - "byel", - "byelg", - "byelm", - "byelb", - "byels", - "byelt", - "byelp", - "byelh", - "byem", - "byeb", - "byebs", - "byes", - "byess", - "byeng", - "byej", - "byec", - "byek", - "byet", - "byep", - "byeh", - "bo", - "bog", - "bogg", - "bogs", - "bon", - "bonj", - "bonh", - "bod", - "bol", - "bolg", - "bolm", - "bolb", - "bols", - "bolt", - "bolp", - "bolh", - "bom", - "bob", - "bobs", - "bos", - "boss", - "bong", - "boj", - "boc", - "bok", - "bot", - "bop", - "boh", - "bwa", - "bwag", - "bwagg", - "bwags", - "bwan", - "bwanj", - "bwanh", - "bwad", - "bwal", - "bwalg", - "bwalm", - "bwalb", - "bwals", - "bwalt", - "bwalp", - "bwalh", - "bwam", - "bwab", - "bwabs", - "bwas", - "bwass", - "bwang", - "bwaj", - "bwac", - "bwak", - "bwat", - "bwap", - "bwah", - "bwae", - "bwaeg", - "bwaegg", - "bwaegs", - "bwaen", - "bwaenj", - "bwaenh", - "bwaed", - "bwael", - "bwaelg", - "bwaelm", - "bwaelb", - "bwaels", - "bwaelt", - "bwaelp", - "bwaelh", - "bwaem", - "bwaeb", - "bwaebs", - "bwaes", - "bwaess", - "bwaeng", - "bwaej", - "bwaec", - "bwaek", - "bwaet", - "bwaep", - "bwaeh", - "boe", - "boeg", - "boegg", - "boegs", - "boen", - "boenj", - "boenh", - "boed", - "boel", - "boelg", - "boelm", - "boelb", - "boels", - "boelt", - "boelp", - "boelh", - "boem", - "boeb", - "boebs", - "boes", - "boess", - "boeng", - "boej", - "boec", - "boek", - "boet", - "boep", - "boeh", - "byo", - "byog", - "byogg", - "byogs", - "byon", - "byonj", - "byonh", - "byod", - "byol", - "byolg", - "byolm", - "byolb", - "byols", - "byolt", - "byolp", - "byolh", - "byom", - "byob", - "byobs", - "byos", - "byoss", - "byong", - "byoj", - "byoc", - "byok", - "byot", - "byop", - "byoh", - "bu", - "bug", - "bugg", - "bugs", - "bun", - "bunj", - "bunh", - "bud", - "bul", - "bulg", - "bulm", - "bulb", - "buls", - "bult", - "bulp", - "bulh", - "bum", - "bub", - "bubs", - "bus", - "buss", - "bung", - "buj", - "buc", - "buk", - "but", - "bup", - "buh", - "bweo", - "bweog", - "bweogg", - "bweogs", - "bweon", - "bweonj", - "bweonh", - "bweod", - "bweol", - "bweolg", - "bweolm", - "bweolb", - "bweols", - "bweolt", - "bweolp", - "bweolh", - "bweom", - "bweob", - "bweobs", - "bweos", - "bweoss", - "bweong", - "bweoj", - "bweoc", - "bweok", - "bweot", - "bweop", - "bweoh", - "bwe", - "bweg", - "bwegg", - "bwegs", - "bwen", - "bwenj", - "bwenh", - "bwed", - "bwel", - "bwelg", - "bwelm", - "bwelb", - "bwels", - "bwelt", - "bwelp", - "bwelh", - "bwem", - "bweb", - "bwebs", - "bwes", - "bwess", - "bweng", - "bwej", - "bwec", - "bwek", - "bwet", - "bwep", - "bweh", - "bwi", - "bwig", - "bwigg", - "bwigs", - "bwin", - "bwinj", - "bwinh", - "bwid", - "bwil", - "bwilg", - "bwilm", - "bwilb", - "bwils", - "bwilt", - "bwilp", - "bwilh", - "bwim", - "bwib", - "bwibs", - "bwis", - "bwiss", - "bwing", - "bwij", - "bwic", - "bwik", - "bwit", - "bwip", - "bwih", - "byu", - "byug", - "byugg", - "byugs", - "byun", - "byunj", - "byunh", - "byud", - "byul", - "byulg", - "byulm", - "byulb", - "byuls", - "byult", - "byulp", - "byulh", - "byum", - "byub", - "byubs", - "byus", - "byuss", - "byung", - "byuj", - "byuc", - "byuk", - "byut", - "byup", - "byuh", - "beu", - "beug", - "beugg", - "beugs", - "beun", - "beunj", - "beunh", - "beud", - "beul", - "beulg", - "beulm", - "beulb", - "beuls", - "beult", - "beulp", - "beulh", - "beum", - "beub", - "beubs", - "beus", - "beuss", - "beung", - "beuj", - "beuc", - "beuk", - "beut", - "beup", - "beuh", - "byi", - "byig", - "byigg", - "byigs", - "byin", - "byinj", - "byinh", - "byid", - "byil", - "byilg", - "byilm", - "byilb", - "byils", - "byilt", - "byilp", - "byilh", - "byim", - "byib", - "byibs", - "byis", - "byiss", - "bying", - "byij", - "byic", - "byik", - "byit", - "byip", - "byih", - "bi", - "big", - "bigg", - "bigs", - "bin", - "binj", - "binh", - "bid", - "bil", - "bilg", - "bilm", - "bilb", - "bils", - "bilt", - "bilp", - "bilh", - "bim", - "bib", - "bibs", - "bis", - "biss", - "bing", - "bij", - "bic", - "bik", - "bit", - "bip", - "bih", - "bba", - "bbag", - "bbagg", - "bbags", - "bban", - "bbanj", - "bbanh", - "bbad", - "bbal", - "bbalg", - "bbalm", - "bbalb", - "bbals", - "bbalt", - "bbalp", - "bbalh", - "bbam", - "bbab", - "bbabs", - "bbas", - "bbass", - "bbang", - "bbaj", - "bbac", - "bbak", - "bbat", - "bbap", - "bbah", - "bbae", - "bbaeg", - "bbaegg", - "bbaegs", - "bbaen", - "bbaenj", - "bbaenh", - "bbaed", - "bbael", - "bbaelg", - "bbaelm", - "bbaelb", - "bbaels", - "bbaelt", - "bbaelp", - "bbaelh", - "bbaem", - "bbaeb", - "bbaebs", - "bbaes", - "bbaess", - "bbaeng", - "bbaej", - "bbaec", - "bbaek", - "bbaet", - "bbaep", - "bbaeh", - "bbya", - "bbyag", - "bbyagg", - "bbyags", - "bbyan", - "bbyanj", - "bbyanh", - "bbyad", - "bbyal", - "bbyalg", - "bbyalm", - "bbyalb", - "bbyals", - "bbyalt", - "bbyalp", - "bbyalh", - "bbyam", - "bbyab", - "bbyabs", - "bbyas", - "bbyass", - "bbyang", - "bbyaj", - "bbyac", - "bbyak", - "bbyat", - "bbyap", - "bbyah", - "bbyae", - "bbyaeg", - "bbyaegg", - "bbyaegs", - "bbyaen", - "bbyaenj", - "bbyaenh", - "bbyaed", - "bbyael", - "bbyaelg", - "bbyaelm", - "bbyaelb", - "bbyaels", - "bbyaelt", - "bbyaelp", - "bbyaelh", - "bbyaem", - "bbyaeb", - "bbyaebs", - "bbyaes", - "bbyaess", - "bbyaeng", - "bbyaej", - "bbyaec", - "bbyaek", - "bbyaet", - "bbyaep", - "bbyaeh", - "bbeo", - "bbeog", - "bbeogg", - "bbeogs", - "bbeon", - "bbeonj", - "bbeonh", - "bbeod", - "bbeol", - "bbeolg", - "bbeolm", - "bbeolb", - "bbeols", - "bbeolt", - "bbeolp", - "bbeolh", - "bbeom", - "bbeob", - "bbeobs", - "bbeos", - "bbeoss", - "bbeong", - "bbeoj", - "bbeoc", - "bbeok", - "bbeot", - "bbeop", - "bbeoh", - "bbe", - "bbeg", - "bbegg", - "bbegs", - "bben", - "bbenj", - "bbenh", - "bbed", - "bbel", - "bbelg", - "bbelm", - "bbelb", - "bbels", - "bbelt", - "bbelp", - "bbelh", - "bbem", - "bbeb", - "bbebs", - "bbes", - "bbess", - "bbeng", - "bbej", - "bbec", - "bbek", - "bbet", - "bbep", - "bbeh", - "bbyeo", - "bbyeog", - "bbyeogg", - "bbyeogs", - "bbyeon", - "bbyeonj", - "bbyeonh", - "bbyeod", - "bbyeol", - "bbyeolg", - "bbyeolm", - "bbyeolb", - "bbyeols", - "bbyeolt", - "bbyeolp", - "bbyeolh", - "bbyeom", - "bbyeob", - "bbyeobs", - "bbyeos", - "bbyeoss", - "bbyeong", - "bbyeoj", - "bbyeoc", - "bbyeok", - "bbyeot", - "bbyeop", - "bbyeoh", - "bbye", - "bbyeg", - "bbyegg", - "bbyegs", - "bbyen", - "bbyenj", - "bbyenh", - "bbyed", - "bbyel", - "bbyelg", - "bbyelm", - "bbyelb", - "bbyels", - "bbyelt", - "bbyelp", - "bbyelh", - "bbyem", - "bbyeb", - "bbyebs", - "bbyes", - "bbyess", - "bbyeng", - "bbyej", - "bbyec", - "bbyek", - "bbyet", - "bbyep", - "bbyeh", - "bbo", - "bbog", - "bbogg", - "bbogs", - "bbon", - "bbonj", - "bbonh", - "bbod", - "bbol", - "bbolg", - "bbolm", - "bbolb", - "bbols", - "bbolt", - "bbolp", - "bbolh", - "bbom", - "bbob", - "bbobs", - "bbos", - "bboss", - "bbong", - "bboj", - "bboc", - "bbok", - "bbot", - "bbop", - "bboh", - "bbwa", - "bbwag", - "bbwagg", - "bbwags", - "bbwan", - "bbwanj", - "bbwanh", - "bbwad", - "bbwal", - "bbwalg", - "bbwalm", - "bbwalb", - "bbwals", - "bbwalt", - "bbwalp", - "bbwalh", - "bbwam", - "bbwab", - "bbwabs", - "bbwas", - "bbwass", - "bbwang", - "bbwaj", - "bbwac", - "bbwak", - "bbwat", - "bbwap", - "bbwah", - "bbwae", - "bbwaeg", - "bbwaegg", - "bbwaegs", - "bbwaen", - "bbwaenj", - "bbwaenh", - "bbwaed", - "bbwael", - "bbwaelg", - "bbwaelm", - "bbwaelb", - "bbwaels", - "bbwaelt", - "bbwaelp", - "bbwaelh", - "bbwaem", - "bbwaeb", - "bbwaebs", - "bbwaes", - "bbwaess", - "bbwaeng", - "bbwaej", - "bbwaec", - "bbwaek", - "bbwaet", - "bbwaep", - "bbwaeh", - "bboe", - "bboeg", - "bboegg", - "bboegs", - "bboen", - "bboenj", - "bboenh", - "bboed", - "bboel", - "bboelg", - "bboelm", - "bboelb", - "bboels", - "bboelt", - "bboelp", - "bboelh", - "bboem", - "bboeb", - "bboebs", - "bboes", - "bboess", - "bboeng", - "bboej", - "bboec", - "bboek", - "bboet", - "bboep", - "bboeh", - "bbyo", - "bbyog", - "bbyogg", - "bbyogs", - "bbyon", - "bbyonj", - "bbyonh", - "bbyod", - "bbyol", - "bbyolg", - "bbyolm", - "bbyolb", - "bbyols", - "bbyolt", - "bbyolp", - "bbyolh", - "bbyom", - "bbyob", - "bbyobs", - "bbyos", - "bbyoss", - "bbyong", - "bbyoj", - "bbyoc", - "bbyok", - "bbyot", - "bbyop", - "bbyoh", - "bbu", - "bbug", - "bbugg", - "bbugs", - "bbun", - "bbunj", - "bbunh", - "bbud", - "bbul", - "bbulg", - "bbulm", - "bbulb", - "bbuls", - "bbult", - "bbulp", - "bbulh", - "bbum", - "bbub", - "bbubs", - "bbus", - "bbuss", - "bbung", - "bbuj", - "bbuc", - "bbuk", - "bbut", - "bbup", - "bbuh", - "bbweo", - "bbweog", - "bbweogg", - "bbweogs", - "bbweon", - "bbweonj", - "bbweonh", - "bbweod", - "bbweol", - "bbweolg", - "bbweolm", - "bbweolb", - "bbweols", - "bbweolt", - "bbweolp", - "bbweolh", - "bbweom", - "bbweob", - "bbweobs", - "bbweos", - "bbweoss", - "bbweong", - "bbweoj", - "bbweoc", - "bbweok", - "bbweot", - "bbweop", - "bbweoh", - "bbwe", - "bbweg", - "bbwegg", - "bbwegs", - "bbwen", - "bbwenj", - "bbwenh", - "bbwed", - "bbwel", - "bbwelg", - "bbwelm", - "bbwelb", - "bbwels", - "bbwelt", - "bbwelp", - "bbwelh", - "bbwem", - "bbweb", - "bbwebs", - "bbwes", - "bbwess", - "bbweng", - "bbwej", - "bbwec", - "bbwek", - "bbwet", - "bbwep", - "bbweh", - "bbwi", - "bbwig", - "bbwigg", - "bbwigs", - "bbwin", - "bbwinj", - "bbwinh", - "bbwid", - "bbwil", - "bbwilg", - "bbwilm", - "bbwilb", - "bbwils", - "bbwilt", - "bbwilp", - "bbwilh", - "bbwim", - "bbwib", - "bbwibs", - "bbwis", - "bbwiss", - "bbwing", - "bbwij", - "bbwic", - "bbwik", - "bbwit", - "bbwip", - "bbwih", - "bbyu", - "bbyug", - "bbyugg", - "bbyugs", - "bbyun", - "bbyunj", - "bbyunh", - "bbyud", - "bbyul", - "bbyulg", - "bbyulm", - "bbyulb", - "bbyuls", - "bbyult", - "bbyulp", - "bbyulh", - "bbyum", - "bbyub", - "bbyubs", - "bbyus", - "bbyuss", - "bbyung", - "bbyuj", - "bbyuc", - "bbyuk", - "bbyut", - "bbyup", - "bbyuh", - "bbeu", - "bbeug", - "bbeugg", - "bbeugs", - "bbeun", - "bbeunj", - "bbeunh", - "bbeud", - "bbeul", - "bbeulg", - "bbeulm", - "bbeulb", - "bbeuls", - "bbeult", - "bbeulp", - "bbeulh", - "bbeum", - "bbeub", - "bbeubs", - "bbeus", - "bbeuss", - "bbeung", - "bbeuj", - "bbeuc", - "bbeuk", - "bbeut", - "bbeup", - "bbeuh", - "bbyi", - "bbyig", - "bbyigg", - "bbyigs", - "bbyin", - "bbyinj", - "bbyinh", - "bbyid", - "bbyil", - "bbyilg", - "bbyilm", - "bbyilb", - "bbyils", - "bbyilt", - "bbyilp", - "bbyilh", - "bbyim", - "bbyib", - "bbyibs", - "bbyis", - "bbyiss", - "bbying", - "bbyij", - "bbyic", - "bbyik", - "bbyit", - "bbyip", - "bbyih", - "bbi", - "bbig", - "bbigg", - "bbigs", - "bbin", - "bbinj", - "bbinh", - "bbid", - "bbil", - "bbilg", - "bbilm", - "bbilb", - "bbils", - "bbilt", - "bbilp", - "bbilh", - "bbim", - "bbib", - "bbibs", - "bbis", - "bbiss", - "bbing", - "bbij", - "bbic", - "bbik", - "bbit", - "bbip", - "bbih", - "sa", - "sag", - "sagg", - "sags", - "san", - "sanj", - "sanh", - "sad", - "sal", - "salg", - "salm", - "salb", - "sals", - "salt", - "salp", - "salh", - "sam", - "sab", - "sabs", - "sas", - "sass", - "sang", - "saj", - "sac", - "sak", - "sat", - "sap", - "sah", - "sae", - "saeg", - "saegg", - "saegs", - "saen", - "saenj", - "saenh", - "saed", - "sael", - "saelg", - "saelm", - "saelb", - "saels", - "saelt", - "saelp", - "saelh", - "saem", - "saeb", - "saebs", - "saes", - "saess", - "saeng", - "saej", - "saec", - "saek", - "saet", - "saep", - "saeh", - "sya", - "syag", - "syagg", - "syags", - "syan", - "syanj", - "syanh", - "syad", - "syal", - "syalg", - "syalm", - "syalb", - "syals", - "syalt", - "syalp", - "syalh", - "syam", - "syab", - "syabs", - "syas", - "syass", - "syang", - "syaj", - "syac", - "syak", - "syat", - "syap", - "syah", - "syae", - "syaeg", - "syaegg", - "syaegs", - "syaen", - "syaenj", - "syaenh", - "syaed", - "syael", - "syaelg", - "syaelm", - "syaelb", - "syaels", - "syaelt", - "syaelp", - "syaelh", - "syaem", - "syaeb", - "syaebs", - "syaes", - "syaess", - "syaeng", - "syaej", - "syaec", - "syaek", - "syaet", - "syaep", - "syaeh", - "seo", - "seog", - "seogg", - "seogs", - "seon", - "seonj", - "seonh", - "seod", - "seol", - "seolg", - "seolm", - "seolb", - "seols", - "seolt", - "seolp", - "seolh", - "seom", - "seob", - "seobs", - "seos", - "seoss", - "seong", - "seoj", - "seoc", - "seok", - "seot", - "seop", - "seoh", - "se", - "seg", - "segg", - "segs", - "sen", - "senj", - "senh", - "sed", - "sel", - "selg", - "selm", - "selb", - "sels", - "selt", - "selp", - "selh", - "sem", - "seb", - "sebs", - "ses", - "sess", - "seng", - "sej", - "sec", - "sek", - "set", - "sep", - "seh", - "syeo", - "syeog", - "syeogg", - "syeogs", - "syeon", - "syeonj", - "syeonh", - "syeod", - "syeol", - "syeolg", - "syeolm", - "syeolb", - "syeols", - "syeolt", - "syeolp", - "syeolh", - "syeom", - "syeob", - "syeobs", - "syeos", - "syeoss", - "syeong", - "syeoj", - "syeoc", - "syeok", - "syeot", - "syeop", - "syeoh", - "sye", - "syeg", - "syegg", - "syegs", - "syen", - "syenj", - "syenh", - "syed", - "syel", - "syelg", - "syelm", - "syelb", - "syels", - "syelt", - "syelp", - "syelh", - "syem", - "syeb", - "syebs", - "syes", - "syess", - "syeng", - "syej", - "syec", - "syek", - "syet", - "syep", - "syeh", - "so", - "sog", - "sogg", - "sogs", - "son", - "sonj", - "sonh", - "sod", - "sol", - "solg", - "solm", - "solb", - "sols", - "solt", - "solp", - "solh", - "som", - "sob", - "sobs", - "sos", - "soss", - "song", - "soj", - "soc", - "sok", - "sot", - "sop", - "soh", - "swa", - "swag", - "swagg", - "swags", - "swan", - "swanj", - "swanh", - "swad", - "swal", - "swalg", - "swalm", - "swalb", - "swals", - "swalt", - "swalp", - "swalh", - "swam", - "swab", - "swabs", - "swas", - "swass", - "swang", - "swaj", - "swac", - "swak", - "swat", - "swap", - "swah", - "swae", - "swaeg", - "swaegg", - "swaegs", - "swaen", - "swaenj", - "swaenh", - "swaed", - "swael", - "swaelg", - "swaelm", - "swaelb", - "swaels", - "swaelt", - "swaelp", - "swaelh", - "swaem", - "swaeb", - "swaebs", - "swaes", - "swaess", - "swaeng", - "swaej", - "swaec", - "swaek", - "swaet", - "swaep", - "swaeh", - "soe", - "soeg", - "soegg", - "soegs", - "soen", - "soenj", - "soenh", - "soed", - "soel", - "soelg", - "soelm", - "soelb", - "soels", - "soelt", - "soelp", - "soelh", - "soem", - "soeb", - "soebs", - "soes", - "soess", - "soeng", - "soej", - "soec", - "soek", - "soet", - "soep", - "soeh", - "syo", - "syog", - "syogg", - "syogs", - "syon", - "syonj", - "syonh", - "syod", - "syol", - "syolg", - "syolm", - "syolb", - "syols", - "syolt", - "syolp", - "syolh", - "syom", - "syob", - "syobs", - "syos", - "syoss", - "syong", - "syoj", - "syoc", - "syok", - "syot", - "syop", - "syoh", - "su", - "sug", - "sugg", - "sugs", - "sun", - "sunj", - "sunh", - "sud", - "sul", - "sulg", - "sulm", - "sulb", - "suls", - "sult", - "sulp", - "sulh", - "sum", - "sub", - "subs", - "sus", - "suss", - "sung", - "suj", - "suc", - "suk", - "sut", - "sup", - "suh", - "sweo", - "sweog", - "sweogg", - "sweogs", - "sweon", - "sweonj", - "sweonh", - "sweod", - "sweol", - "sweolg", - "sweolm", - "sweolb", - "sweols", - "sweolt", - "sweolp", - "sweolh", - "sweom", - "sweob", - "sweobs", - "sweos", - "sweoss", - "sweong", - "sweoj", - "sweoc", - "sweok", - "sweot", - "sweop", - "sweoh", - "swe", - "sweg", - "swegg", - "swegs", - "swen", - "swenj", - "swenh", - "swed", - "swel", - "swelg", - "swelm", - "swelb", - "swels", - "swelt", - "swelp", - "swelh", - "swem", - "sweb", - "swebs", - "swes", - "swess", - "sweng", - "swej", - "swec", - "swek", - "swet", - "swep", - "sweh", - "swi", - "swig", - "swigg", - "swigs", - "swin", - "swinj", - "swinh", - "swid", - "swil", - "swilg", - "swilm", - "swilb", - "swils", - "swilt", - "swilp", - "swilh", - "swim", - "swib", - "swibs", - "swis", - "swiss", - "swing", - "swij", - "swic", - "swik", - "swit", - "swip", - "swih", - "syu", - "syug", - "syugg", - "syugs", - "syun", - "syunj", - "syunh", - "syud", - "syul", - "syulg", - "syulm", - "syulb", - "syuls", - "syult", - "syulp", - "syulh", - "syum", - "syub", - "syubs", - "syus", - "syuss", - "syung", - "syuj", - "syuc", - "syuk", - "syut", - "syup", - "syuh", - "seu", - "seug", - "seugg", - "seugs", - "seun", - "seunj", - "seunh", - "seud", - "seul", - "seulg", - "seulm", - "seulb", - "seuls", - "seult", - "seulp", - "seulh", - "seum", - "seub", - "seubs", - "seus", - "seuss", - "seung", - "seuj", - "seuc", - "seuk", - "seut", - "seup", - "seuh", - "syi", - "syig", - "syigg", - "syigs", - "syin", - "syinj", - "syinh", - "syid", - "syil", - "syilg", - "syilm", - "syilb", - "syils", - "syilt", - "syilp", - "syilh", - "syim", - "syib", - "syibs", - "syis", - "syiss", - "sying", - "syij", - "syic", - "syik", - "syit", - "syip", - "syih", - "si", - "sig", - "sigg", - "sigs", - "sin", - "sinj", - "sinh", - "sid", - "sil", - "silg", - "silm", - "silb", - "sils", - "silt", - "silp", - "silh", - "sim", - "sib", - "sibs", - "sis", - "siss", - "sing", - "sij", - "sic", - "sik", - "sit", - "sip", - "sih", - "ssa", - "ssag", - "ssagg", - "ssags", - "ssan", - "ssanj", - "ssanh", - "ssad", - "ssal", - "ssalg", - "ssalm", - "ssalb", - "ssals", - "ssalt", - "ssalp", - "ssalh", - "ssam", - "ssab", - "ssabs", - "ssas", - "ssass", - "ssang", - "ssaj", - "ssac", - "ssak", - "ssat", - "ssap", - "ssah", - "ssae", - "ssaeg", - "ssaegg", - "ssaegs", - "ssaen", - "ssaenj", - "ssaenh", - "ssaed", - "ssael", - "ssaelg", - "ssaelm", - "ssaelb", - "ssaels", - "ssaelt", - "ssaelp", - "ssaelh", - "ssaem", - "ssaeb", - "ssaebs", - "ssaes", - "ssaess", - "ssaeng", - "ssaej", - "ssaec", - "ssaek", - "ssaet", - "ssaep", - "ssaeh", - "ssya", - "ssyag", - "ssyagg", - "ssyags", - "ssyan", - "ssyanj", - "ssyanh", - "ssyad", - "ssyal", - "ssyalg", - "ssyalm", - "ssyalb", - "ssyals", - "ssyalt", - "ssyalp", - "ssyalh", - "ssyam", - "ssyab", - "ssyabs", - "ssyas", - "ssyass", - "ssyang", - "ssyaj", - "ssyac", - "ssyak", - "ssyat", - "ssyap", - "ssyah", - "ssyae", - "ssyaeg", - "ssyaegg", - "ssyaegs", - "ssyaen", - "ssyaenj", - "ssyaenh", - "ssyaed", - "ssyael", - "ssyaelg", - "ssyaelm", - "ssyaelb", - "ssyaels", - "ssyaelt", - "ssyaelp", - "ssyaelh", - "ssyaem", - "ssyaeb", - "ssyaebs", - "ssyaes", - "ssyaess", - "ssyaeng", - "ssyaej", - "ssyaec", - "ssyaek", - "ssyaet", - "ssyaep", - "ssyaeh", - "sseo", - "sseog", - "sseogg", - "sseogs", - "sseon", - "sseonj", - "sseonh", - "sseod", - "sseol", - "sseolg", - "sseolm", - "sseolb", - "sseols", - "sseolt", - "sseolp", - "sseolh", - "sseom", - "sseob", - "sseobs", - "sseos", - "sseoss", - "sseong", - "sseoj", - "sseoc", - "sseok", - "sseot", - "sseop", - "sseoh", - "sse", - "sseg", - "ssegg", - "ssegs", - "ssen", - "ssenj", - "ssenh", - "ssed", - "ssel", - "sselg", - "sselm", - "sselb", - "ssels", - "sselt", - "sselp", - "sselh", - "ssem", - "sseb", - "ssebs", - "sses", - "ssess", - "sseng", - "ssej", - "ssec", - "ssek", - "sset", - "ssep", - "sseh", - "ssyeo", - "ssyeog", - "ssyeogg", - "ssyeogs", - "ssyeon", - "ssyeonj", - "ssyeonh", - "ssyeod", - "ssyeol", - "ssyeolg", - "ssyeolm", - "ssyeolb", - "ssyeols", - "ssyeolt", - "ssyeolp", - "ssyeolh", - "ssyeom", - "ssyeob", - "ssyeobs", - "ssyeos", - "ssyeoss", - "ssyeong", - "ssyeoj", - "ssyeoc", - "ssyeok", - "ssyeot", - "ssyeop", - "ssyeoh", - "ssye", - "ssyeg", - "ssyegg", - "ssyegs", - "ssyen", - "ssyenj", - "ssyenh", - "ssyed", - "ssyel", - "ssyelg", - "ssyelm", - "ssyelb", - "ssyels", - "ssyelt", - "ssyelp", - "ssyelh", - "ssyem", - "ssyeb", - "ssyebs", - "ssyes", - "ssyess", - "ssyeng", - "ssyej", - "ssyec", - "ssyek", - "ssyet", - "ssyep", - "ssyeh", - "sso", - "ssog", - "ssogg", - "ssogs", - "sson", - "ssonj", - "ssonh", - "ssod", - "ssol", - "ssolg", - "ssolm", - "ssolb", - "ssols", - "ssolt", - "ssolp", - "ssolh", - "ssom", - "ssob", - "ssobs", - "ssos", - "ssoss", - "ssong", - "ssoj", - "ssoc", - "ssok", - "ssot", - "ssop", - "ssoh", - "sswa", - "sswag", - "sswagg", - "sswags", - "sswan", - "sswanj", - "sswanh", - "sswad", - "sswal", - "sswalg", - "sswalm", - "sswalb", - "sswals", - "sswalt", - "sswalp", - "sswalh", - "sswam", - "sswab", - "sswabs", - "sswas", - "sswass", - "sswang", - "sswaj", - "sswac", - "sswak", - "sswat", - "sswap", - "sswah", - "sswae", - "sswaeg", - "sswaegg", - "sswaegs", - "sswaen", - "sswaenj", - "sswaenh", - "sswaed", - "sswael", - "sswaelg", - "sswaelm", - "sswaelb", - "sswaels", - "sswaelt", - "sswaelp", - "sswaelh", - "sswaem", - "sswaeb", - "sswaebs", - "sswaes", - "sswaess", - "sswaeng", - "sswaej", - "sswaec", - "sswaek", - "sswaet", - "sswaep", - "sswaeh", - "ssoe", - "ssoeg", - "ssoegg", - "ssoegs", - "ssoen", - "ssoenj", - "ssoenh", - "ssoed", - "ssoel", - "ssoelg", - "ssoelm", - "ssoelb", - "ssoels", - "ssoelt", - "ssoelp", - "ssoelh", - "ssoem", - "ssoeb", - "ssoebs", - "ssoes", - "ssoess", - "ssoeng", - "ssoej", - "ssoec", - "ssoek", - "ssoet", - "ssoep", - "ssoeh", - "ssyo", - "ssyog", - "ssyogg", - "ssyogs", - "ssyon", - "ssyonj", - "ssyonh", - "ssyod", - "ssyol", - "ssyolg", - "ssyolm", - "ssyolb", - "ssyols", - "ssyolt", - "ssyolp", - "ssyolh", - "ssyom", - "ssyob", - "ssyobs", - "ssyos", - "ssyoss", - "ssyong", - "ssyoj", - "ssyoc", - "ssyok", - "ssyot", - "ssyop", - "ssyoh", - "ssu", - "ssug", - "ssugg", - "ssugs", - "ssun", - "ssunj", - "ssunh", - "ssud", - "ssul", - "ssulg", - "ssulm", - "ssulb", - "ssuls", - "ssult", - "ssulp", - "ssulh", - "ssum", - "ssub", - "ssubs", - "ssus", - "ssuss", - "ssung", - "ssuj", - "ssuc", - "ssuk", - "ssut", - "ssup", - "ssuh", - "ssweo", - "ssweog", - "ssweogg", - "ssweogs", - "ssweon", - "ssweonj", - "ssweonh", - "ssweod", - "ssweol", - "ssweolg", - "ssweolm", - "ssweolb", - "ssweols", - "ssweolt", - "ssweolp", - "ssweolh", - "ssweom", - "ssweob", - "ssweobs", - "ssweos", - "ssweoss", - "ssweong", - "ssweoj", - "ssweoc", - "ssweok", - "ssweot", - "ssweop", - "ssweoh", - "sswe", - "ssweg", - "sswegg", - "sswegs", - "sswen", - "sswenj", - "sswenh", - "sswed", - "sswel", - "sswelg", - "sswelm", - "sswelb", - "sswels", - "sswelt", - "sswelp", - "sswelh", - "sswem", - "ssweb", - "sswebs", - "sswes", - "sswess", - "ssweng", - "sswej", - "sswec", - "sswek", - "sswet", - "sswep", - "ssweh", - "sswi", - "sswig", - "sswigg", - "sswigs", - "sswin", - "sswinj", - "sswinh", - "sswid", - "sswil", - "sswilg", - "sswilm", - "sswilb", - "sswils", - "sswilt", - "sswilp", - "sswilh", - "sswim", - "sswib", - "sswibs", - "sswis", - "sswiss", - "sswing", - "sswij", - "sswic", - "sswik", - "sswit", - "sswip", - "sswih", - "ssyu", - "ssyug", - "ssyugg", - "ssyugs", - "ssyun", - "ssyunj", - "ssyunh", - "ssyud", - "ssyul", - "ssyulg", - "ssyulm", - "ssyulb", - "ssyuls", - "ssyult", - "ssyulp", - "ssyulh", - "ssyum", - "ssyub", - "ssyubs", - "ssyus", - "ssyuss", - "ssyung", - "ssyuj", - "ssyuc", - "ssyuk", - "ssyut", - "ssyup", - "ssyuh", - "sseu", - "sseug", - "sseugg", - "sseugs", - "sseun", - "sseunj", - "sseunh", - "sseud", - "sseul", - "sseulg", - "sseulm", - "sseulb", - "sseuls", - "sseult", - "sseulp", - "sseulh", - "sseum", - "sseub", - "sseubs", - "sseus", - "sseuss", - "sseung", - "sseuj", - "sseuc", - "sseuk", - "sseut", - "sseup", - "sseuh", - "ssyi", - "ssyig", - "ssyigg", - "ssyigs", - "ssyin", - "ssyinj", - "ssyinh", - "ssyid", - "ssyil", - "ssyilg", - "ssyilm", - "ssyilb", - "ssyils", - "ssyilt", - "ssyilp", - "ssyilh", - "ssyim", - "ssyib", - "ssyibs", - "ssyis", - "ssyiss", - "ssying", - "ssyij", - "ssyic", - "ssyik", - "ssyit", - "ssyip", - "ssyih", - "ssi", - "ssig", - "ssigg", - "ssigs", - "ssin", - "ssinj", - "ssinh", - "ssid", - "ssil", - "ssilg", - "ssilm", - "ssilb", - "ssils", - "ssilt", - "ssilp", - "ssilh", - "ssim", - "ssib", - "ssibs", - "ssis", - "ssiss", - "ssing", - "ssij", - "ssic", - "ssik", - "ssit", - "ssip", - "ssih", - "a", - "ag", - "agg", - "ags", - "an", - "anj", - "anh", - "ad", - "al", - "alg", - "alm", - "alb", - "als", - "alt", - "alp", - "alh", - "am", - "ab", - "abs", - "as", - "ass", - "ang", - "aj", - "ac", - "ak", - "at", - "ap", - "ah", - "ae", - "aeg", - "aegg", - "aegs", - "aen", - "aenj", - "aenh", - "aed", - "ael", - "aelg", - "aelm", - "aelb", - "aels", - "aelt", - "aelp", - "aelh", - "aem", - "aeb", - "aebs", - "aes", - "aess", - "aeng", - "aej", - "aec", - "aek", - "aet", - "aep", - "aeh", - "ya", - "yag", - "yagg", - "yags", - "yan", - "yanj", - "yanh", - "yad", - "yal", - "yalg", - "yalm", - "yalb", - "yals", - "yalt", - "yalp", - "yalh", - "yam", - "yab", - "yabs", - "yas", - "yass", - "yang", - "yaj", - "yac", - "yak", - "yat", - "yap", - "yah", - "yae", - "yaeg", - "yaegg", - "yaegs", - "yaen", - "yaenj", - "yaenh", - "yaed", - "yael", - "yaelg", - "yaelm", - "yaelb", - "yaels", - "yaelt", - "yaelp", - "yaelh", - "yaem", - "yaeb", - "yaebs", - "yaes", - "yaess", - "yaeng", - "yaej", - "yaec", - "yaek", - "yaet", - "yaep", - "yaeh", - "eo", - "eog", - "eogg", - "eogs", - "eon", - "eonj", - "eonh", - "eod", - "eol", - "eolg", - "eolm", - "eolb", - "eols", - "eolt", - "eolp", - "eolh", - "eom", - "eob", - "eobs", - "eos", - "eoss", - "eong", - "eoj", - "eoc", - "eok", - "eot", - "eop", - "eoh", - "e", - "eg", - "egg", - "egs", - "en", - "enj", - "enh", - "ed", - "el", - "elg", - "elm", - "elb", - "els", - "elt", - "elp", - "elh", - "em", - "eb", - "ebs", - "es", - "ess", - "eng", - "ej", - "ec", - "ek", - "et", - "ep", - "eh", - "yeo", - "yeog", - "yeogg", - "yeogs", - "yeon", - "yeonj", - "yeonh", - "yeod", - "yeol", - "yeolg", - "yeolm", - "yeolb", - "yeols", - "yeolt", - "yeolp", - "yeolh", - "yeom", - "yeob", - "yeobs", - "yeos", - "yeoss", - "yeong", - "yeoj", - "yeoc", - "yeok", - "yeot", - "yeop", - "yeoh", - "ye", - "yeg", - "yegg", - "yegs", - "yen", - "yenj", - "yenh", - "yed", - "yel", - "yelg", - "yelm", - "yelb", - "yels", - "yelt", - "yelp", - "yelh", - "yem", - "yeb", - "yebs", - "yes", - "yess", - "yeng", - "yej", - "yec", - "yek", - "yet", - "yep", - "yeh", - "o", - "og", - "ogg", - "ogs", - "on", - "onj", - "onh", - "od", - "ol", - "olg", - "olm", - "olb", - "ols", - "olt", - "olp", - "olh", - "om", - "ob", - "obs", - "os", - "oss", - "ong", - "oj", - "oc", - "ok", - "ot", - "op", - "oh", - "wa", - "wag", - "wagg", - "wags", - "wan", - "wanj", - "wanh", - "wad", - "wal", - "walg", - "walm", - "walb", - "wals", - "walt", - "walp", - "walh", - "wam", - "wab", - "wabs", - "was", - "wass", - "wang", - "waj", - "wac", - "wak", - "wat", - "wap", - "wah", - "wae", - "waeg", - "waegg", - "waegs", - "waen", - "waenj", - "waenh", - "waed", - "wael", - "waelg", - "waelm", - "waelb", - "waels", - "waelt", - "waelp", - "waelh", - "waem", - "waeb", - "waebs", - "waes", - "waess", - "waeng", - "waej", - "waec", - "waek", - "waet", - "waep", - "waeh", - "oe", - "oeg", - "oegg", - "oegs", - "oen", - "oenj", - "oenh", - "oed", - "oel", - "oelg", - "oelm", - "oelb", - "oels", - "oelt", - "oelp", - "oelh", - "oem", - "oeb", - "oebs", - "oes", - "oess", - "oeng", - "oej", - "oec", - "oek", - "oet", - "oep", - "oeh", - "yo", - "yog", - "yogg", - "yogs", - "yon", - "yonj", - "yonh", - "yod", - "yol", - "yolg", - "yolm", - "yolb", - "yols", - "yolt", - "yolp", - "yolh", - "yom", - "yob", - "yobs", - "yos", - "yoss", - "yong", - "yoj", - "yoc", - "yok", - "yot", - "yop", - "yoh", - "u", - "ug", - "ugg", - "ugs", - "un", - "unj", - "unh", - "ud", - "ul", - "ulg", - "ulm", - "ulb", - "uls", - "ult", - "ulp", - "ulh", - "um", - "ub", - "ubs", - "us", - "uss", - "ung", - "uj", - "uc", - "uk", - "ut", - "up", - "uh", - "weo", - "weog", - "weogg", - "weogs", - "weon", - "weonj", - "weonh", - "weod", - "weol", - "weolg", - "weolm", - "weolb", - "weols", - "weolt", - "weolp", - "weolh", - "weom", - "weob", - "weobs", - "weos", - "weoss", - "weong", - "weoj", - "weoc", - "weok", - "weot", - "weop", - "weoh", - "we", - "weg", - "wegg", - "wegs", - "wen", - "wenj", - "wenh", - "wed", - "wel", - "welg", - "welm", - "welb", - "wels", - "welt", - "welp", - "welh", - "wem", - "web", - "webs", - "wes", - "wess", - "weng", - "wej", - "wec", - "wek", - "wet", - "wep", - "weh", - "wi", - "wig", - "wigg", - "wigs", - "win", - "winj", - "winh", - "wid", - "wil", - "wilg", - "wilm", - "wilb", - "wils", - "wilt", - "wilp", - "wilh", - "wim", - "wib", - "wibs", - "wis", - "wiss", - "wing", - "wij", - "wic", - "wik", - "wit", - "wip", - "wih", - "yu", - "yug", - "yugg", - "yugs", - "yun", - "yunj", - "yunh", - "yud", - "yul", - "yulg", - "yulm", - "yulb", - "yuls", - "yult", - "yulp", - "yulh", - "yum", - "yub", - "yubs", - "yus", - "yuss", - "yung", - "yuj", - "yuc", - "yuk", - "yut", - "yup", - "yuh", - "eu", - "eug", - "eugg", - "eugs", - "eun", - "eunj", - "eunh", - "eud", - "eul", - "eulg", - "eulm", - "eulb", - "euls", - "eult", - "eulp", - "eulh", - "eum", - "eub", - "eubs", - "eus", - "euss", - "eung", - "euj", - "euc", - "euk", - "eut", - "eup", - "euh", - "yi", - "yig", - "yigg", - "yigs", - "yin", - "yinj", - "yinh", - "yid", - "yil", - "yilg", - "yilm", - "yilb", - "yils", - "yilt", - "yilp", - "yilh", - "yim", - "yib", - "yibs", - "yis", - "yiss", - "ying", - "yij", - "yic", - "yik", - "yit", - "yip", - "yih", - "i", - "ig", - "igg", - "igs", - "in", - "inj", - "inh", - "id", - "il", - "ilg", - "ilm", - "ilb", - "ils", - "ilt", - "ilp", - "ilh", - "im", - "ib", - "ibs", - "is", - "iss", - "ing", - "ij", - "ic", - "ik", - "it", - "ip", - "ih", - "ja", - "jag", - "jagg", - "jags", - "jan", - "janj", - "janh", - "jad", - "jal", - "jalg", - "jalm", - "jalb", - "jals", - "jalt", - "jalp", - "jalh", - "jam", - "jab", - "jabs", - "jas", - "jass", - "jang", - "jaj", - "jac", - "jak", - "jat", - "jap", - "jah", - "jae", - "jaeg", - "jaegg", - "jaegs", - "jaen", - "jaenj", - "jaenh", - "jaed", - "jael", - "jaelg", - "jaelm", - "jaelb", - "jaels", - "jaelt", - "jaelp", - "jaelh", - "jaem", - "jaeb", - "jaebs", - "jaes", - "jaess", - "jaeng", - "jaej", - "jaec", - "jaek", - "jaet", - "jaep", - "jaeh", - "jya", - "jyag", - "jyagg", - "jyags", - "jyan", - "jyanj", - "jyanh", - "jyad", - "jyal", - "jyalg", - "jyalm", - "jyalb", - "jyals", - "jyalt", - "jyalp", - "jyalh", - "jyam", - "jyab", - "jyabs", - "jyas", - "jyass", - "jyang", - "jyaj", - "jyac", - "jyak", - "jyat", - "jyap", - "jyah", - "jyae", - "jyaeg", - "jyaegg", - "jyaegs", - "jyaen", - "jyaenj", - "jyaenh", - "jyaed", - "jyael", - "jyaelg", - "jyaelm", - "jyaelb", - "jyaels", - "jyaelt", - "jyaelp", - "jyaelh", - "jyaem", - "jyaeb", - "jyaebs", - "jyaes", - "jyaess", - "jyaeng", - "jyaej", - "jyaec", - "jyaek", - "jyaet", - "jyaep", - "jyaeh", - "jeo", - "jeog", - "jeogg", - "jeogs", - "jeon", - "jeonj", - "jeonh", - "jeod", - "jeol", - "jeolg", - "jeolm", - "jeolb", - "jeols", - "jeolt", - "jeolp", - "jeolh", - "jeom", - "jeob", - "jeobs", - "jeos", - "jeoss", - "jeong", - "jeoj", - "jeoc", - "jeok", - "jeot", - "jeop", - "jeoh", - "je", - "jeg", - "jegg", - "jegs", - "jen", - "jenj", - "jenh", - "jed", - "jel", - "jelg", - "jelm", - "jelb", - "jels", - "jelt", - "jelp", - "jelh", - "jem", - "jeb", - "jebs", - "jes", - "jess", - "jeng", - "jej", - "jec", - "jek", - "jet", - "jep", - "jeh", - "jyeo", - "jyeog", - "jyeogg", - "jyeogs", - "jyeon", - "jyeonj", - "jyeonh", - "jyeod", - "jyeol", - "jyeolg", - "jyeolm", - "jyeolb", - "jyeols", - "jyeolt", - "jyeolp", - "jyeolh", - "jyeom", - "jyeob", - "jyeobs", - "jyeos", - "jyeoss", - "jyeong", - "jyeoj", - "jyeoc", - "jyeok", - "jyeot", - "jyeop", - "jyeoh", - "jye", - "jyeg", - "jyegg", - "jyegs", - "jyen", - "jyenj", - "jyenh", - "jyed", - "jyel", - "jyelg", - "jyelm", - "jyelb", - "jyels", - "jyelt", - "jyelp", - "jyelh", - "jyem", - "jyeb", - "jyebs", - "jyes", - "jyess", - "jyeng", - "jyej", - "jyec", - "jyek", - "jyet", - "jyep", - "jyeh", - "jo", - "jog", - "jogg", - "jogs", - "jon", - "jonj", - "jonh", - "jod", - "jol", - "jolg", - "jolm", - "jolb", - "jols", - "jolt", - "jolp", - "jolh", - "jom", - "job", - "jobs", - "jos", - "joss", - "jong", - "joj", - "joc", - "jok", - "jot", - "jop", - "joh", - "jwa", - "jwag", - "jwagg", - "jwags", - "jwan", - "jwanj", - "jwanh", - "jwad", - "jwal", - "jwalg", - "jwalm", - "jwalb", - "jwals", - "jwalt", - "jwalp", - "jwalh", - "jwam", - "jwab", - "jwabs", - "jwas", - "jwass", - "jwang", - "jwaj", - "jwac", - "jwak", - "jwat", - "jwap", - "jwah", - "jwae", - "jwaeg", - "jwaegg", - "jwaegs", - "jwaen", - "jwaenj", - "jwaenh", - "jwaed", - "jwael", - "jwaelg", - "jwaelm", - "jwaelb", - "jwaels", - "jwaelt", - "jwaelp", - "jwaelh", - "jwaem", - "jwaeb", - "jwaebs", - "jwaes", - "jwaess", - "jwaeng", - "jwaej", - "jwaec", - "jwaek", - "jwaet", - "jwaep", - "jwaeh", - "joe", - "joeg", - "joegg", - "joegs", - "joen", - "joenj", - "joenh", - "joed", - "joel", - "joelg", - "joelm", - "joelb", - "joels", - "joelt", - "joelp", - "joelh", - "joem", - "joeb", - "joebs", - "joes", - "joess", - "joeng", - "joej", - "joec", - "joek", - "joet", - "joep", - "joeh", - "jyo", - "jyog", - "jyogg", - "jyogs", - "jyon", - "jyonj", - "jyonh", - "jyod", - "jyol", - "jyolg", - "jyolm", - "jyolb", - "jyols", - "jyolt", - "jyolp", - "jyolh", - "jyom", - "jyob", - "jyobs", - "jyos", - "jyoss", - "jyong", - "jyoj", - "jyoc", - "jyok", - "jyot", - "jyop", - "jyoh", - "ju", - "jug", - "jugg", - "jugs", - "jun", - "junj", - "junh", - "jud", - "jul", - "julg", - "julm", - "julb", - "juls", - "jult", - "julp", - "julh", - "jum", - "jub", - "jubs", - "jus", - "juss", - "jung", - "juj", - "juc", - "juk", - "jut", - "jup", - "juh", - "jweo", - "jweog", - "jweogg", - "jweogs", - "jweon", - "jweonj", - "jweonh", - "jweod", - "jweol", - "jweolg", - "jweolm", - "jweolb", - "jweols", - "jweolt", - "jweolp", - "jweolh", - "jweom", - "jweob", - "jweobs", - "jweos", - "jweoss", - "jweong", - "jweoj", - "jweoc", - "jweok", - "jweot", - "jweop", - "jweoh", - "jwe", - "jweg", - "jwegg", - "jwegs", - "jwen", - "jwenj", - "jwenh", - "jwed", - "jwel", - "jwelg", - "jwelm", - "jwelb", - "jwels", - "jwelt", - "jwelp", - "jwelh", - "jwem", - "jweb", - "jwebs", - "jwes", - "jwess", - "jweng", - "jwej", - "jwec", - "jwek", - "jwet", - "jwep", - "jweh", - "jwi", - "jwig", - "jwigg", - "jwigs", - "jwin", - "jwinj", - "jwinh", - "jwid", - "jwil", - "jwilg", - "jwilm", - "jwilb", - "jwils", - "jwilt", - "jwilp", - "jwilh", - "jwim", - "jwib", - "jwibs", - "jwis", - "jwiss", - "jwing", - "jwij", - "jwic", - "jwik", - "jwit", - "jwip", - "jwih", - "jyu", - "jyug", - "jyugg", - "jyugs", - "jyun", - "jyunj", - "jyunh", - "jyud", - "jyul", - "jyulg", - "jyulm", - "jyulb", - "jyuls", - "jyult", - "jyulp", - "jyulh", - "jyum", - "jyub", - "jyubs", - "jyus", - "jyuss", - "jyung", - "jyuj", - "jyuc", - "jyuk", - "jyut", - "jyup", - "jyuh", - "jeu", - "jeug", - "jeugg", - "jeugs", - "jeun", - "jeunj", - "jeunh", - "jeud", - "jeul", - "jeulg", - "jeulm", - "jeulb", - "jeuls", - "jeult", - "jeulp", - "jeulh", - "jeum", - "jeub", - "jeubs", - "jeus", - "jeuss", - "jeung", - "jeuj", - "jeuc", - "jeuk", - "jeut", - "jeup", - "jeuh", - "jyi", - "jyig", - "jyigg", - "jyigs", - "jyin", - "jyinj", - "jyinh", - "jyid", - "jyil", - "jyilg", - "jyilm", - "jyilb", - "jyils", - "jyilt", - "jyilp", - "jyilh", - "jyim", - "jyib", - "jyibs", - "jyis", - "jyiss", - "jying", - "jyij", - "jyic", - "jyik", - "jyit", - "jyip", - "jyih", - "ji", - "jig", - "jigg", - "jigs", - "jin", - "jinj", - "jinh", - "jid", - "jil", - "jilg", - "jilm", - "jilb", - "jils", - "jilt", - "jilp", - "jilh", - "jim", - "jib", - "jibs", - "jis", - "jiss", - "jing", - "jij", - "jic", - "jik", - "jit", - "jip", - "jih", - "jja", - "jjag", - "jjagg", - "jjags", - "jjan", - "jjanj", - "jjanh", - "jjad", - "jjal", - "jjalg", - "jjalm", - "jjalb", - "jjals", - "jjalt", - "jjalp", - "jjalh", - "jjam", - "jjab", - "jjabs", - "jjas", - "jjass", - "jjang", - "jjaj", - "jjac", - "jjak", - "jjat", - "jjap", - "jjah", - "jjae", - "jjaeg", - "jjaegg", - "jjaegs", - "jjaen", - "jjaenj", - "jjaenh", - "jjaed", - "jjael", - "jjaelg", - "jjaelm", - "jjaelb", - "jjaels", - "jjaelt", - "jjaelp", - "jjaelh", - "jjaem", - "jjaeb", - "jjaebs", - "jjaes", - "jjaess", - "jjaeng", - "jjaej", - "jjaec", - "jjaek", - "jjaet", - "jjaep", - "jjaeh", - "jjya", - "jjyag", - "jjyagg", - "jjyags", - "jjyan", - "jjyanj", - "jjyanh", - "jjyad", - "jjyal", - "jjyalg", - "jjyalm", - "jjyalb", - "jjyals", - "jjyalt", - "jjyalp", - "jjyalh", - "jjyam", - "jjyab", - "jjyabs", - "jjyas", - "jjyass", - "jjyang", - "jjyaj", - "jjyac", - "jjyak", - "jjyat", - "jjyap", - "jjyah", - "jjyae", - "jjyaeg", - "jjyaegg", - "jjyaegs", - "jjyaen", - "jjyaenj", - "jjyaenh", - "jjyaed", - "jjyael", - "jjyaelg", - "jjyaelm", - "jjyaelb", - "jjyaels", - "jjyaelt", - "jjyaelp", - "jjyaelh", - "jjyaem", - "jjyaeb", - "jjyaebs", - "jjyaes", - "jjyaess", - "jjyaeng", - "jjyaej", - "jjyaec", - "jjyaek", - "jjyaet", - "jjyaep", - "jjyaeh", - "jjeo", - "jjeog", - "jjeogg", - "jjeogs", - "jjeon", - "jjeonj", - "jjeonh", - "jjeod", - "jjeol", - "jjeolg", - "jjeolm", - "jjeolb", - "jjeols", - "jjeolt", - "jjeolp", - "jjeolh", - "jjeom", - "jjeob", - "jjeobs", - "jjeos", - "jjeoss", - "jjeong", - "jjeoj", - "jjeoc", - "jjeok", - "jjeot", - "jjeop", - "jjeoh", - "jje", - "jjeg", - "jjegg", - "jjegs", - "jjen", - "jjenj", - "jjenh", - "jjed", - "jjel", - "jjelg", - "jjelm", - "jjelb", - "jjels", - "jjelt", - "jjelp", - "jjelh", - "jjem", - "jjeb", - "jjebs", - "jjes", - "jjess", - "jjeng", - "jjej", - "jjec", - "jjek", - "jjet", - "jjep", - "jjeh", - "jjyeo", - "jjyeog", - "jjyeogg", - "jjyeogs", - "jjyeon", - "jjyeonj", - "jjyeonh", - "jjyeod", - "jjyeol", - "jjyeolg", - "jjyeolm", - "jjyeolb", - "jjyeols", - "jjyeolt", - "jjyeolp", - "jjyeolh", - "jjyeom", - "jjyeob", - "jjyeobs", - "jjyeos", - "jjyeoss", - "jjyeong", - "jjyeoj", - "jjyeoc", - "jjyeok", - "jjyeot", - "jjyeop", - "jjyeoh", - "jjye", - "jjyeg", - "jjyegg", - "jjyegs", - "jjyen", - "jjyenj", - "jjyenh", - "jjyed", - "jjyel", - "jjyelg", - "jjyelm", - "jjyelb", - "jjyels", - "jjyelt", - "jjyelp", - "jjyelh", - "jjyem", - "jjyeb", - "jjyebs", - "jjyes", - "jjyess", - "jjyeng", - "jjyej", - "jjyec", - "jjyek", - "jjyet", - "jjyep", - "jjyeh", - "jjo", - "jjog", - "jjogg", - "jjogs", - "jjon", - "jjonj", - "jjonh", - "jjod", - "jjol", - "jjolg", - "jjolm", - "jjolb", - "jjols", - "jjolt", - "jjolp", - "jjolh", - "jjom", - "jjob", - "jjobs", - "jjos", - "jjoss", - "jjong", - "jjoj", - "jjoc", - "jjok", - "jjot", - "jjop", - "jjoh", - "jjwa", - "jjwag", - "jjwagg", - "jjwags", - "jjwan", - "jjwanj", - "jjwanh", - "jjwad", - "jjwal", - "jjwalg", - "jjwalm", - "jjwalb", - "jjwals", - "jjwalt", - "jjwalp", - "jjwalh", - "jjwam", - "jjwab", - "jjwabs", - "jjwas", - "jjwass", - "jjwang", - "jjwaj", - "jjwac", - "jjwak", - "jjwat", - "jjwap", - "jjwah", - "jjwae", - "jjwaeg", - "jjwaegg", - "jjwaegs", - "jjwaen", - "jjwaenj", - "jjwaenh", - "jjwaed", - "jjwael", - "jjwaelg", - "jjwaelm", - "jjwaelb", - "jjwaels", - "jjwaelt", - "jjwaelp", - "jjwaelh", - "jjwaem", - "jjwaeb", - "jjwaebs", - "jjwaes", - "jjwaess", - "jjwaeng", - "jjwaej", - "jjwaec", - "jjwaek", - "jjwaet", - "jjwaep", - "jjwaeh", - "jjoe", - "jjoeg", - "jjoegg", - "jjoegs", - "jjoen", - "jjoenj", - "jjoenh", - "jjoed", - "jjoel", - "jjoelg", - "jjoelm", - "jjoelb", - "jjoels", - "jjoelt", - "jjoelp", - "jjoelh", - "jjoem", - "jjoeb", - "jjoebs", - "jjoes", - "jjoess", - "jjoeng", - "jjoej", - "jjoec", - "jjoek", - "jjoet", - "jjoep", - "jjoeh", - "jjyo", - "jjyog", - "jjyogg", - "jjyogs", - "jjyon", - "jjyonj", - "jjyonh", - "jjyod", - "jjyol", - "jjyolg", - "jjyolm", - "jjyolb", - "jjyols", - "jjyolt", - "jjyolp", - "jjyolh", - "jjyom", - "jjyob", - "jjyobs", - "jjyos", - "jjyoss", - "jjyong", - "jjyoj", - "jjyoc", - "jjyok", - "jjyot", - "jjyop", - "jjyoh", - "jju", - "jjug", - "jjugg", - "jjugs", - "jjun", - "jjunj", - "jjunh", - "jjud", - "jjul", - "jjulg", - "jjulm", - "jjulb", - "jjuls", - "jjult", - "jjulp", - "jjulh", - "jjum", - "jjub", - "jjubs", - "jjus", - "jjuss", - "jjung", - "jjuj", - "jjuc", - "jjuk", - "jjut", - "jjup", - "jjuh", - "jjweo", - "jjweog", - "jjweogg", - "jjweogs", - "jjweon", - "jjweonj", - "jjweonh", - "jjweod", - "jjweol", - "jjweolg", - "jjweolm", - "jjweolb", - "jjweols", - "jjweolt", - "jjweolp", - "jjweolh", - "jjweom", - "jjweob", - "jjweobs", - "jjweos", - "jjweoss", - "jjweong", - "jjweoj", - "jjweoc", - "jjweok", - "jjweot", - "jjweop", - "jjweoh", - "jjwe", - "jjweg", - "jjwegg", - "jjwegs", - "jjwen", - "jjwenj", - "jjwenh", - "jjwed", - "jjwel", - "jjwelg", - "jjwelm", - "jjwelb", - "jjwels", - "jjwelt", - "jjwelp", - "jjwelh", - "jjwem", - "jjweb", - "jjwebs", - "jjwes", - "jjwess", - "jjweng", - "jjwej", - "jjwec", - "jjwek", - "jjwet", - "jjwep", - "jjweh", - "jjwi", - "jjwig", - "jjwigg", - "jjwigs", - "jjwin", - "jjwinj", - "jjwinh", - "jjwid", - "jjwil", - "jjwilg", - "jjwilm", - "jjwilb", - "jjwils", - "jjwilt", - "jjwilp", - "jjwilh", - "jjwim", - "jjwib", - "jjwibs", - "jjwis", - "jjwiss", - "jjwing", - "jjwij", - "jjwic", - "jjwik", - "jjwit", - "jjwip", - "jjwih", - "jjyu", - "jjyug", - "jjyugg", - "jjyugs", - "jjyun", - "jjyunj", - "jjyunh", - "jjyud", - "jjyul", - "jjyulg", - "jjyulm", - "jjyulb", - "jjyuls", - "jjyult", - "jjyulp", - "jjyulh", - "jjyum", - "jjyub", - "jjyubs", - "jjyus", - "jjyuss", - "jjyung", - "jjyuj", - "jjyuc", - "jjyuk", - "jjyut", - "jjyup", - "jjyuh", - "jjeu", - "jjeug", - "jjeugg", - "jjeugs", - "jjeun", - "jjeunj", - "jjeunh", - "jjeud", - "jjeul", - "jjeulg", - "jjeulm", - "jjeulb", - "jjeuls", - "jjeult", - "jjeulp", - "jjeulh", - "jjeum", - "jjeub", - "jjeubs", - "jjeus", - "jjeuss", - "jjeung", - "jjeuj", - "jjeuc", - "jjeuk", - "jjeut", - "jjeup", - "jjeuh", - "jjyi", - "jjyig", - "jjyigg", - "jjyigs", - "jjyin", - "jjyinj", - "jjyinh", - "jjyid", - "jjyil", - "jjyilg", - "jjyilm", - "jjyilb", - "jjyils", - "jjyilt", - "jjyilp", - "jjyilh", - "jjyim", - "jjyib", - "jjyibs", - "jjyis", - "jjyiss", - "jjying", - "jjyij", - "jjyic", - "jjyik", - "jjyit", - "jjyip", - "jjyih", - "jji", - "jjig", - "jjigg", - "jjigs", - "jjin", - "jjinj", - "jjinh", - "jjid", - "jjil", - "jjilg", - "jjilm", - "jjilb", - "jjils", - "jjilt", - "jjilp", - "jjilh", - "jjim", - "jjib", - "jjibs", - "jjis", - "jjiss", - "jjing", - "jjij", - "jjic", - "jjik", - "jjit", - "jjip", - "jjih", - "ca", - "cag", - "cagg", - "cags", - "can", - "canj", - "canh", - "cad", - "cal", - "calg", - "calm", - "calb", - "cals", - "calt", - "calp", - "calh", - "cam", - "cab", - "cabs", - "cas", - "cass", - "cang", - "caj", - "cac", - "cak", - "cat", - "cap", - "cah", - "cae", - "caeg", - "caegg", - "caegs", - "caen", - "caenj", - "caenh", - "caed", - "cael", - "caelg", - "caelm", - "caelb", - "caels", - "caelt", - "caelp", - "caelh", - "caem", - "caeb", - "caebs", - "caes", - "caess", - "caeng", - "caej", - "caec", - "caek", - "caet", - "caep", - "caeh", - "cya", - "cyag", - "cyagg", - "cyags", - "cyan", - "cyanj", - "cyanh", - "cyad", - "cyal", - "cyalg", - "cyalm", - "cyalb", - "cyals", - "cyalt", - "cyalp", - "cyalh", - "cyam", - "cyab", - "cyabs", - "cyas", - "cyass", - "cyang", - "cyaj", - "cyac", - "cyak", - "cyat", - "cyap", - "cyah", - "cyae", - "cyaeg", - "cyaegg", - "cyaegs", - "cyaen", - "cyaenj", - "cyaenh", - "cyaed", - "cyael", - "cyaelg", - "cyaelm", - "cyaelb", - "cyaels", - "cyaelt", - "cyaelp", - "cyaelh", - "cyaem", - "cyaeb", - "cyaebs", - "cyaes", - "cyaess", - "cyaeng", - "cyaej", - "cyaec", - "cyaek", - "cyaet", - "cyaep", - "cyaeh", - "ceo", - "ceog", - "ceogg", - "ceogs", - "ceon", - "ceonj", - "ceonh", - "ceod", - "ceol", - "ceolg", - "ceolm", - "ceolb", - "ceols", - "ceolt", - "ceolp", - "ceolh", - "ceom", - "ceob", - "ceobs", - "ceos", - "ceoss", - "ceong", - "ceoj", - "ceoc", - "ceok", - "ceot", - "ceop", - "ceoh", - "ce", - "ceg", - "cegg", - "cegs", - "cen", - "cenj", - "cenh", - "ced", - "cel", - "celg", - "celm", - "celb", - "cels", - "celt", - "celp", - "celh", - "cem", - "ceb", - "cebs", - "ces", - "cess", - "ceng", - "cej", - "cec", - "cek", - "cet", - "cep", - "ceh", - "cyeo", - "cyeog", - "cyeogg", - "cyeogs", - "cyeon", - "cyeonj", - "cyeonh", - "cyeod", - "cyeol", - "cyeolg", - "cyeolm", - "cyeolb", - "cyeols", - "cyeolt", - "cyeolp", - "cyeolh", - "cyeom", - "cyeob", - "cyeobs", - "cyeos", - "cyeoss", - "cyeong", - "cyeoj", - "cyeoc", - "cyeok", - "cyeot", - "cyeop", - "cyeoh", - "cye", - "cyeg", - "cyegg", - "cyegs", - "cyen", - "cyenj", - "cyenh", - "cyed", - "cyel", - "cyelg", - "cyelm", - "cyelb", - "cyels", - "cyelt", - "cyelp", - "cyelh", - "cyem", - "cyeb", - "cyebs", - "cyes", - "cyess", - "cyeng", - "cyej", - "cyec", - "cyek", - "cyet", - "cyep", - "cyeh", - "co", - "cog", - "cogg", - "cogs", - "con", - "conj", - "conh", - "cod", - "col", - "colg", - "colm", - "colb", - "cols", - "colt", - "colp", - "colh", - "com", - "cob", - "cobs", - "cos", - "coss", - "cong", - "coj", - "coc", - "cok", - "cot", - "cop", - "coh", - "cwa", - "cwag", - "cwagg", - "cwags", - "cwan", - "cwanj", - "cwanh", - "cwad", - "cwal", - "cwalg", - "cwalm", - "cwalb", - "cwals", - "cwalt", - "cwalp", - "cwalh", - "cwam", - "cwab", - "cwabs", - "cwas", - "cwass", - "cwang", - "cwaj", - "cwac", - "cwak", - "cwat", - "cwap", - "cwah", - "cwae", - "cwaeg", - "cwaegg", - "cwaegs", - "cwaen", - "cwaenj", - "cwaenh", - "cwaed", - "cwael", - "cwaelg", - "cwaelm", - "cwaelb", - "cwaels", - "cwaelt", - "cwaelp", - "cwaelh", - "cwaem", - "cwaeb", - "cwaebs", - "cwaes", - "cwaess", - "cwaeng", - "cwaej", - "cwaec", - "cwaek", - "cwaet", - "cwaep", - "cwaeh", - "coe", - "coeg", - "coegg", - "coegs", - "coen", - "coenj", - "coenh", - "coed", - "coel", - "coelg", - "coelm", - "coelb", - "coels", - "coelt", - "coelp", - "coelh", - "coem", - "coeb", - "coebs", - "coes", - "coess", - "coeng", - "coej", - "coec", - "coek", - "coet", - "coep", - "coeh", - "cyo", - "cyog", - "cyogg", - "cyogs", - "cyon", - "cyonj", - "cyonh", - "cyod", - "cyol", - "cyolg", - "cyolm", - "cyolb", - "cyols", - "cyolt", - "cyolp", - "cyolh", - "cyom", - "cyob", - "cyobs", - "cyos", - "cyoss", - "cyong", - "cyoj", - "cyoc", - "cyok", - "cyot", - "cyop", - "cyoh", - "cu", - "cug", - "cugg", - "cugs", - "cun", - "cunj", - "cunh", - "cud", - "cul", - "culg", - "culm", - "culb", - "culs", - "cult", - "culp", - "culh", - "cum", - "cub", - "cubs", - "cus", - "cuss", - "cung", - "cuj", - "cuc", - "cuk", - "cut", - "cup", - "cuh", - "cweo", - "cweog", - "cweogg", - "cweogs", - "cweon", - "cweonj", - "cweonh", - "cweod", - "cweol", - "cweolg", - "cweolm", - "cweolb", - "cweols", - "cweolt", - "cweolp", - "cweolh", - "cweom", - "cweob", - "cweobs", - "cweos", - "cweoss", - "cweong", - "cweoj", - "cweoc", - "cweok", - "cweot", - "cweop", - "cweoh", - "cwe", - "cweg", - "cwegg", - "cwegs", - "cwen", - "cwenj", - "cwenh", - "cwed", - "cwel", - "cwelg", - "cwelm", - "cwelb", - "cwels", - "cwelt", - "cwelp", - "cwelh", - "cwem", - "cweb", - "cwebs", - "cwes", - "cwess", - "cweng", - "cwej", - "cwec", - "cwek", - "cwet", - "cwep", - "cweh", - "cwi", - "cwig", - "cwigg", - "cwigs", - "cwin", - "cwinj", - "cwinh", - "cwid", - "cwil", - "cwilg", - "cwilm", - "cwilb", - "cwils", - "cwilt", - "cwilp", - "cwilh", - "cwim", - "cwib", - "cwibs", - "cwis", - "cwiss", - "cwing", - "cwij", - "cwic", - "cwik", - "cwit", - "cwip", - "cwih", - "cyu", - "cyug", - "cyugg", - "cyugs", - "cyun", - "cyunj", - "cyunh", - "cyud", - "cyul", - "cyulg", - "cyulm", - "cyulb", - "cyuls", - "cyult", - "cyulp", - "cyulh", - "cyum", - "cyub", - "cyubs", - "cyus", - "cyuss", - "cyung", - "cyuj", - "cyuc", - "cyuk", - "cyut", - "cyup", - "cyuh", - "ceu", - "ceug", - "ceugg", - "ceugs", - "ceun", - "ceunj", - "ceunh", - "ceud", - "ceul", - "ceulg", - "ceulm", - "ceulb", - "ceuls", - "ceult", - "ceulp", - "ceulh", - "ceum", - "ceub", - "ceubs", - "ceus", - "ceuss", - "ceung", - "ceuj", - "ceuc", - "ceuk", - "ceut", - "ceup", - "ceuh", - "cyi", - "cyig", - "cyigg", - "cyigs", - "cyin", - "cyinj", - "cyinh", - "cyid", - "cyil", - "cyilg", - "cyilm", - "cyilb", - "cyils", - "cyilt", - "cyilp", - "cyilh", - "cyim", - "cyib", - "cyibs", - "cyis", - "cyiss", - "cying", - "cyij", - "cyic", - "cyik", - "cyit", - "cyip", - "cyih", - "ci", - "cig", - "cigg", - "cigs", - "cin", - "cinj", - "cinh", - "cid", - "cil", - "cilg", - "cilm", - "cilb", - "cils", - "cilt", - "cilp", - "cilh", - "cim", - "cib", - "cibs", - "cis", - "ciss", - "cing", - "cij", - "cic", - "cik", - "cit", - "cip", - "cih", - "ka", - "kag", - "kagg", - "kags", - "kan", - "kanj", - "kanh", - "kad", - "kal", - "kalg", - "kalm", - "kalb", - "kals", - "kalt", - "kalp", - "kalh", - "kam", - "kab", - "kabs", - "kas", - "kass", - "kang", - "kaj", - "kac", - "kak", - "kat", - "kap", - "kah", - "kae", - "kaeg", - "kaegg", - "kaegs", - "kaen", - "kaenj", - "kaenh", - "kaed", - "kael", - "kaelg", - "kaelm", - "kaelb", - "kaels", - "kaelt", - "kaelp", - "kaelh", - "kaem", - "kaeb", - "kaebs", - "kaes", - "kaess", - "kaeng", - "kaej", - "kaec", - "kaek", - "kaet", - "kaep", - "kaeh", - "kya", - "kyag", - "kyagg", - "kyags", - "kyan", - "kyanj", - "kyanh", - "kyad", - "kyal", - "kyalg", - "kyalm", - "kyalb", - "kyals", - "kyalt", - "kyalp", - "kyalh", - "kyam", - "kyab", - "kyabs", - "kyas", - "kyass", - "kyang", - "kyaj", - "kyac", - "kyak", - "kyat", - "kyap", - "kyah", - "kyae", - "kyaeg", - "kyaegg", - "kyaegs", - "kyaen", - "kyaenj", - "kyaenh", - "kyaed", - "kyael", - "kyaelg", - "kyaelm", - "kyaelb", - "kyaels", - "kyaelt", - "kyaelp", - "kyaelh", - "kyaem", - "kyaeb", - "kyaebs", - "kyaes", - "kyaess", - "kyaeng", - "kyaej", - "kyaec", - "kyaek", - "kyaet", - "kyaep", - "kyaeh", - "keo", - "keog", - "keogg", - "keogs", - "keon", - "keonj", - "keonh", - "keod", - "keol", - "keolg", - "keolm", - "keolb", - "keols", - "keolt", - "keolp", - "keolh", - "keom", - "keob", - "keobs", - "keos", - "keoss", - "keong", - "keoj", - "keoc", - "keok", - "keot", - "keop", - "keoh", - "ke", - "keg", - "kegg", - "kegs", - "ken", - "kenj", - "kenh", - "ked", - "kel", - "kelg", - "kelm", - "kelb", - "kels", - "kelt", - "kelp", - "kelh", - "kem", - "keb", - "kebs", - "kes", - "kess", - "keng", - "kej", - "kec", - "kek", - "ket", - "kep", - "keh", - "kyeo", - "kyeog", - "kyeogg", - "kyeogs", - "kyeon", - "kyeonj", - "kyeonh", - "kyeod", - "kyeol", - "kyeolg", - "kyeolm", - "kyeolb", - "kyeols", - "kyeolt", - "kyeolp", - "kyeolh", - "kyeom", - "kyeob", - "kyeobs", - "kyeos", - "kyeoss", - "kyeong", - "kyeoj", - "kyeoc", - "kyeok", - "kyeot", - "kyeop", - "kyeoh", - "kye", - "kyeg", - "kyegg", - "kyegs", - "kyen", - "kyenj", - "kyenh", - "kyed", - "kyel", - "kyelg", - "kyelm", - "kyelb", - "kyels", - "kyelt", - "kyelp", - "kyelh", - "kyem", - "kyeb", - "kyebs", - "kyes", - "kyess", - "kyeng", - "kyej", - "kyec", - "kyek", - "kyet", - "kyep", - "kyeh", - "ko", - "kog", - "kogg", - "kogs", - "kon", - "konj", - "konh", - "kod", - "kol", - "kolg", - "kolm", - "kolb", - "kols", - "kolt", - "kolp", - "kolh", - "kom", - "kob", - "kobs", - "kos", - "koss", - "kong", - "koj", - "koc", - "kok", - "kot", - "kop", - "koh", - "kwa", - "kwag", - "kwagg", - "kwags", - "kwan", - "kwanj", - "kwanh", - "kwad", - "kwal", - "kwalg", - "kwalm", - "kwalb", - "kwals", - "kwalt", - "kwalp", - "kwalh", - "kwam", - "kwab", - "kwabs", - "kwas", - "kwass", - "kwang", - "kwaj", - "kwac", - "kwak", - "kwat", - "kwap", - "kwah", - "kwae", - "kwaeg", - "kwaegg", - "kwaegs", - "kwaen", - "kwaenj", - "kwaenh", - "kwaed", - "kwael", - "kwaelg", - "kwaelm", - "kwaelb", - "kwaels", - "kwaelt", - "kwaelp", - "kwaelh", - "kwaem", - "kwaeb", - "kwaebs", - "kwaes", - "kwaess", - "kwaeng", - "kwaej", - "kwaec", - "kwaek", - "kwaet", - "kwaep", - "kwaeh", - "koe", - "koeg", - "koegg", - "koegs", - "koen", - "koenj", - "koenh", - "koed", - "koel", - "koelg", - "koelm", - "koelb", - "koels", - "koelt", - "koelp", - "koelh", - "koem", - "koeb", - "koebs", - "koes", - "koess", - "koeng", - "koej", - "koec", - "koek", - "koet", - "koep", - "koeh", - "kyo", - "kyog", - "kyogg", - "kyogs", - "kyon", - "kyonj", - "kyonh", - "kyod", - "kyol", - "kyolg", - "kyolm", - "kyolb", - "kyols", - "kyolt", - "kyolp", - "kyolh", - "kyom", - "kyob", - "kyobs", - "kyos", - "kyoss", - "kyong", - "kyoj", - "kyoc", - "kyok", - "kyot", - "kyop", - "kyoh", - "ku", - "kug", - "kugg", - "kugs", - "kun", - "kunj", - "kunh", - "kud", - "kul", - "kulg", - "kulm", - "kulb", - "kuls", - "kult", - "kulp", - "kulh", - "kum", - "kub", - "kubs", - "kus", - "kuss", - "kung", - "kuj", - "kuc", - "kuk", - "kut", - "kup", - "kuh", - "kweo", - "kweog", - "kweogg", - "kweogs", - "kweon", - "kweonj", - "kweonh", - "kweod", - "kweol", - "kweolg", - "kweolm", - "kweolb", - "kweols", - "kweolt", - "kweolp", - "kweolh", - "kweom", - "kweob", - "kweobs", - "kweos", - "kweoss", - "kweong", - "kweoj", - "kweoc", - "kweok", - "kweot", - "kweop", - "kweoh", - "kwe", - "kweg", - "kwegg", - "kwegs", - "kwen", - "kwenj", - "kwenh", - "kwed", - "kwel", - "kwelg", - "kwelm", - "kwelb", - "kwels", - "kwelt", - "kwelp", - "kwelh", - "kwem", - "kweb", - "kwebs", - "kwes", - "kwess", - "kweng", - "kwej", - "kwec", - "kwek", - "kwet", - "kwep", - "kweh", - "kwi", - "kwig", - "kwigg", - "kwigs", - "kwin", - "kwinj", - "kwinh", - "kwid", - "kwil", - "kwilg", - "kwilm", - "kwilb", - "kwils", - "kwilt", - "kwilp", - "kwilh", - "kwim", - "kwib", - "kwibs", - "kwis", - "kwiss", - "kwing", - "kwij", - "kwic", - "kwik", - "kwit", - "kwip", - "kwih", - "kyu", - "kyug", - "kyugg", - "kyugs", - "kyun", - "kyunj", - "kyunh", - "kyud", - "kyul", - "kyulg", - "kyulm", - "kyulb", - "kyuls", - "kyult", - "kyulp", - "kyulh", - "kyum", - "kyub", - "kyubs", - "kyus", - "kyuss", - "kyung", - "kyuj", - "kyuc", - "kyuk", - "kyut", - "kyup", - "kyuh", - "keu", - "keug", - "keugg", - "keugs", - "keun", - "keunj", - "keunh", - "keud", - "keul", - "keulg", - "keulm", - "keulb", - "keuls", - "keult", - "keulp", - "keulh", - "keum", - "keub", - "keubs", - "keus", - "keuss", - "keung", - "keuj", - "keuc", - "keuk", - "keut", - "keup", - "keuh", - "kyi", - "kyig", - "kyigg", - "kyigs", - "kyin", - "kyinj", - "kyinh", - "kyid", - "kyil", - "kyilg", - "kyilm", - "kyilb", - "kyils", - "kyilt", - "kyilp", - "kyilh", - "kyim", - "kyib", - "kyibs", - "kyis", - "kyiss", - "kying", - "kyij", - "kyic", - "kyik", - "kyit", - "kyip", - "kyih", - "ki", - "kig", - "kigg", - "kigs", - "kin", - "kinj", - "kinh", - "kid", - "kil", - "kilg", - "kilm", - "kilb", - "kils", - "kilt", - "kilp", - "kilh", - "kim", - "kib", - "kibs", - "kis", - "kiss", - "king", - "kij", - "kic", - "kik", - "kit", - "kip", - "kih", - "ta", - "tag", - "tagg", - "tags", - "tan", - "tanj", - "tanh", - "tad", - "tal", - "talg", - "talm", - "talb", - "tals", - "talt", - "talp", - "talh", - "tam", - "tab", - "tabs", - "tas", - "tass", - "tang", - "taj", - "tac", - "tak", - "tat", - "tap", - "tah", - "tae", - "taeg", - "taegg", - "taegs", - "taen", - "taenj", - "taenh", - "taed", - "tael", - "taelg", - "taelm", - "taelb", - "taels", - "taelt", - "taelp", - "taelh", - "taem", - "taeb", - "taebs", - "taes", - "taess", - "taeng", - "taej", - "taec", - "taek", - "taet", - "taep", - "taeh", - "tya", - "tyag", - "tyagg", - "tyags", - "tyan", - "tyanj", - "tyanh", - "tyad", - "tyal", - "tyalg", - "tyalm", - "tyalb", - "tyals", - "tyalt", - "tyalp", - "tyalh", - "tyam", - "tyab", - "tyabs", - "tyas", - "tyass", - "tyang", - "tyaj", - "tyac", - "tyak", - "tyat", - "tyap", - "tyah", - "tyae", - "tyaeg", - "tyaegg", - "tyaegs", - "tyaen", - "tyaenj", - "tyaenh", - "tyaed", - "tyael", - "tyaelg", - "tyaelm", - "tyaelb", - "tyaels", - "tyaelt", - "tyaelp", - "tyaelh", - "tyaem", - "tyaeb", - "tyaebs", - "tyaes", - "tyaess", - "tyaeng", - "tyaej", - "tyaec", - "tyaek", - "tyaet", - "tyaep", - "tyaeh", - "teo", - "teog", - "teogg", - "teogs", - "teon", - "teonj", - "teonh", - "teod", - "teol", - "teolg", - "teolm", - "teolb", - "teols", - "teolt", - "teolp", - "teolh", - "teom", - "teob", - "teobs", - "teos", - "teoss", - "teong", - "teoj", - "teoc", - "teok", - "teot", - "teop", - "teoh", - "te", - "teg", - "tegg", - "tegs", - "ten", - "tenj", - "tenh", - "ted", - "tel", - "telg", - "telm", - "telb", - "tels", - "telt", - "telp", - "telh", - "tem", - "teb", - "tebs", - "tes", - "tess", - "teng", - "tej", - "tec", - "tek", - "tet", - "tep", - "teh", - "tyeo", - "tyeog", - "tyeogg", - "tyeogs", - "tyeon", - "tyeonj", - "tyeonh", - "tyeod", - "tyeol", - "tyeolg", - "tyeolm", - "tyeolb", - "tyeols", - "tyeolt", - "tyeolp", - "tyeolh", - "tyeom", - "tyeob", - "tyeobs", - "tyeos", - "tyeoss", - "tyeong", - "tyeoj", - "tyeoc", - "tyeok", - "tyeot", - "tyeop", - "tyeoh", - "tye", - "tyeg", - "tyegg", - "tyegs", - "tyen", - "tyenj", - "tyenh", - "tyed", - "tyel", - "tyelg", - "tyelm", - "tyelb", - "tyels", - "tyelt", - "tyelp", - "tyelh", - "tyem", - "tyeb", - "tyebs", - "tyes", - "tyess", - "tyeng", - "tyej", - "tyec", - "tyek", - "tyet", - "tyep", - "tyeh", - "to", - "tog", - "togg", - "togs", - "ton", - "tonj", - "tonh", - "tod", - "tol", - "tolg", - "tolm", - "tolb", - "tols", - "tolt", - "tolp", - "tolh", - "tom", - "tob", - "tobs", - "tos", - "toss", - "tong", - "toj", - "toc", - "tok", - "tot", - "top", - "toh", - "twa", - "twag", - "twagg", - "twags", - "twan", - "twanj", - "twanh", - "twad", - "twal", - "twalg", - "twalm", - "twalb", - "twals", - "twalt", - "twalp", - "twalh", - "twam", - "twab", - "twabs", - "twas", - "twass", - "twang", - "twaj", - "twac", - "twak", - "twat", - "twap", - "twah", - "twae", - "twaeg", - "twaegg", - "twaegs", - "twaen", - "twaenj", - "twaenh", - "twaed", - "twael", - "twaelg", - "twaelm", - "twaelb", - "twaels", - "twaelt", - "twaelp", - "twaelh", - "twaem", - "twaeb", - "twaebs", - "twaes", - "twaess", - "twaeng", - "twaej", - "twaec", - "twaek", - "twaet", - "twaep", - "twaeh", - "toe", - "toeg", - "toegg", - "toegs", - "toen", - "toenj", - "toenh", - "toed", - "toel", - "toelg", - "toelm", - "toelb", - "toels", - "toelt", - "toelp", - "toelh", - "toem", - "toeb", - "toebs", - "toes", - "toess", - "toeng", - "toej", - "toec", - "toek", - "toet", - "toep", - "toeh", - "tyo", - "tyog", - "tyogg", - "tyogs", - "tyon", - "tyonj", - "tyonh", - "tyod", - "tyol", - "tyolg", - "tyolm", - "tyolb", - "tyols", - "tyolt", - "tyolp", - "tyolh", - "tyom", - "tyob", - "tyobs", - "tyos", - "tyoss", - "tyong", - "tyoj", - "tyoc", - "tyok", - "tyot", - "tyop", - "tyoh", - "tu", - "tug", - "tugg", - "tugs", - "tun", - "tunj", - "tunh", - "tud", - "tul", - "tulg", - "tulm", - "tulb", - "tuls", - "tult", - "tulp", - "tulh", - "tum", - "tub", - "tubs", - "tus", - "tuss", - "tung", - "tuj", - "tuc", - "tuk", - "tut", - "tup", - "tuh", - "tweo", - "tweog", - "tweogg", - "tweogs", - "tweon", - "tweonj", - "tweonh", - "tweod", - "tweol", - "tweolg", - "tweolm", - "tweolb", - "tweols", - "tweolt", - "tweolp", - "tweolh", - "tweom", - "tweob", - "tweobs", - "tweos", - "tweoss", - "tweong", - "tweoj", - "tweoc", - "tweok", - "tweot", - "tweop", - "tweoh", - "twe", - "tweg", - "twegg", - "twegs", - "twen", - "twenj", - "twenh", - "twed", - "twel", - "twelg", - "twelm", - "twelb", - "twels", - "twelt", - "twelp", - "twelh", - "twem", - "tweb", - "twebs", - "twes", - "twess", - "tweng", - "twej", - "twec", - "twek", - "twet", - "twep", - "tweh", - "twi", - "twig", - "twigg", - "twigs", - "twin", - "twinj", - "twinh", - "twid", - "twil", - "twilg", - "twilm", - "twilb", - "twils", - "twilt", - "twilp", - "twilh", - "twim", - "twib", - "twibs", - "twis", - "twiss", - "twing", - "twij", - "twic", - "twik", - "twit", - "twip", - "twih", - "tyu", - "tyug", - "tyugg", - "tyugs", - "tyun", - "tyunj", - "tyunh", - "tyud", - "tyul", - "tyulg", - "tyulm", - "tyulb", - "tyuls", - "tyult", - "tyulp", - "tyulh", - "tyum", - "tyub", - "tyubs", - "tyus", - "tyuss", - "tyung", - "tyuj", - "tyuc", - "tyuk", - "tyut", - "tyup", - "tyuh", - "teu", - "teug", - "teugg", - "teugs", - "teun", - "teunj", - "teunh", - "teud", - "teul", - "teulg", - "teulm", - "teulb", - "teuls", - "teult", - "teulp", - "teulh", - "teum", - "teub", - "teubs", - "teus", - "teuss", - "teung", - "teuj", - "teuc", - "teuk", - "teut", - "teup", - "teuh", - "tyi", - "tyig", - "tyigg", - "tyigs", - "tyin", - "tyinj", - "tyinh", - "tyid", - "tyil", - "tyilg", - "tyilm", - "tyilb", - "tyils", - "tyilt", - "tyilp", - "tyilh", - "tyim", - "tyib", - "tyibs", - "tyis", - "tyiss", - "tying", - "tyij", - "tyic", - "tyik", - "tyit", - "tyip", - "tyih", - "ti", - "tig", - "tigg", - "tigs", - "tin", - "tinj", - "tinh", - "tid", - "til", - "tilg", - "tilm", - "tilb", - "tils", - "tilt", - "tilp", - "tilh", - "tim", - "tib", - "tibs", - "tis", - "tiss", - "ting", - "tij", - "tic", - "tik", - "tit", - "tip", - "tih", - "pa", - "pag", - "pagg", - "pags", - "pan", - "panj", - "panh", - "pad", - "pal", - "palg", - "palm", - "palb", - "pals", - "palt", - "palp", - "palh", - "pam", - "pab", - "pabs", - "pas", - "pass", - "pang", - "paj", - "pac", - "pak", - "pat", - "pap", - "pah", - "pae", - "paeg", - "paegg", - "paegs", - "paen", - "paenj", - "paenh", - "paed", - "pael", - "paelg", - "paelm", - "paelb", - "paels", - "paelt", - "paelp", - "paelh", - "paem", - "paeb", - "paebs", - "paes", - "paess", - "paeng", - "paej", - "paec", - "paek", - "paet", - "paep", - "paeh", - "pya", - "pyag", - "pyagg", - "pyags", - "pyan", - "pyanj", - "pyanh", - "pyad", - "pyal", - "pyalg", - "pyalm", - "pyalb", - "pyals", - "pyalt", - "pyalp", - "pyalh", - "pyam", - "pyab", - "pyabs", - "pyas", - "pyass", - "pyang", - "pyaj", - "pyac", - "pyak", - "pyat", - "pyap", - "pyah", - "pyae", - "pyaeg", - "pyaegg", - "pyaegs", - "pyaen", - "pyaenj", - "pyaenh", - "pyaed", - "pyael", - "pyaelg", - "pyaelm", - "pyaelb", - "pyaels", - "pyaelt", - "pyaelp", - "pyaelh", - "pyaem", - "pyaeb", - "pyaebs", - "pyaes", - "pyaess", - "pyaeng", - "pyaej", - "pyaec", - "pyaek", - "pyaet", - "pyaep", - "pyaeh", - "peo", - "peog", - "peogg", - "peogs", - "peon", - "peonj", - "peonh", - "peod", - "peol", - "peolg", - "peolm", - "peolb", - "peols", - "peolt", - "peolp", - "peolh", - "peom", - "peob", - "peobs", - "peos", - "peoss", - "peong", - "peoj", - "peoc", - "peok", - "peot", - "peop", - "peoh", - "pe", - "peg", - "pegg", - "pegs", - "pen", - "penj", - "penh", - "ped", - "pel", - "pelg", - "pelm", - "pelb", - "pels", - "pelt", - "pelp", - "pelh", - "pem", - "peb", - "pebs", - "pes", - "pess", - "peng", - "pej", - "pec", - "pek", - "pet", - "pep", - "peh", - "pyeo", - "pyeog", - "pyeogg", - "pyeogs", - "pyeon", - "pyeonj", - "pyeonh", - "pyeod", - "pyeol", - "pyeolg", - "pyeolm", - "pyeolb", - "pyeols", - "pyeolt", - "pyeolp", - "pyeolh", - "pyeom", - "pyeob", - "pyeobs", - "pyeos", - "pyeoss", - "pyeong", - "pyeoj", - "pyeoc", - "pyeok", - "pyeot", - "pyeop", - "pyeoh", - "pye", - "pyeg", - "pyegg", - "pyegs", - "pyen", - "pyenj", - "pyenh", - "pyed", - "pyel", - "pyelg", - "pyelm", - "pyelb", - "pyels", - "pyelt", - "pyelp", - "pyelh", - "pyem", - "pyeb", - "pyebs", - "pyes", - "pyess", - "pyeng", - "pyej", - "pyec", - "pyek", - "pyet", - "pyep", - "pyeh", - "po", - "pog", - "pogg", - "pogs", - "pon", - "ponj", - "ponh", - "pod", - "pol", - "polg", - "polm", - "polb", - "pols", - "polt", - "polp", - "polh", - "pom", - "pob", - "pobs", - "pos", - "poss", - "pong", - "poj", - "poc", - "pok", - "pot", - "pop", - "poh", - "pwa", - "pwag", - "pwagg", - "pwags", - "pwan", - "pwanj", - "pwanh", - "pwad", - "pwal", - "pwalg", - "pwalm", - "pwalb", - "pwals", - "pwalt", - "pwalp", - "pwalh", - "pwam", - "pwab", - "pwabs", - "pwas", - "pwass", - "pwang", - "pwaj", - "pwac", - "pwak", - "pwat", - "pwap", - "pwah", - "pwae", - "pwaeg", - "pwaegg", - "pwaegs", - "pwaen", - "pwaenj", - "pwaenh", - "pwaed", - "pwael", - "pwaelg", - "pwaelm", - "pwaelb", - "pwaels", - "pwaelt", - "pwaelp", - "pwaelh", - "pwaem", - "pwaeb", - "pwaebs", - "pwaes", - "pwaess", - "pwaeng", - "pwaej", - "pwaec", - "pwaek", - "pwaet", - "pwaep", - "pwaeh", - "poe", - "poeg", - "poegg", - "poegs", - "poen", - "poenj", - "poenh", - "poed", - "poel", - "poelg", - "poelm", - "poelb", - "poels", - "poelt", - "poelp", - "poelh", - "poem", - "poeb", - "poebs", - "poes", - "poess", - "poeng", - "poej", - "poec", - "poek", - "poet", - "poep", - "poeh", - "pyo", - "pyog", - "pyogg", - "pyogs", - "pyon", - "pyonj", - "pyonh", - "pyod", - "pyol", - "pyolg", - "pyolm", - "pyolb", - "pyols", - "pyolt", - "pyolp", - "pyolh", - "pyom", - "pyob", - "pyobs", - "pyos", - "pyoss", - "pyong", - "pyoj", - "pyoc", - "pyok", - "pyot", - "pyop", - "pyoh", - "pu", - "pug", - "pugg", - "pugs", - "pun", - "punj", - "punh", - "pud", - "pul", - "pulg", - "pulm", - "pulb", - "puls", - "pult", - "pulp", - "pulh", - "pum", - "pub", - "pubs", - "pus", - "puss", - "pung", - "puj", - "puc", - "puk", - "put", - "pup", - "puh", - "pweo", - "pweog", - "pweogg", - "pweogs", - "pweon", - "pweonj", - "pweonh", - "pweod", - "pweol", - "pweolg", - "pweolm", - "pweolb", - "pweols", - "pweolt", - "pweolp", - "pweolh", - "pweom", - "pweob", - "pweobs", - "pweos", - "pweoss", - "pweong", - "pweoj", - "pweoc", - "pweok", - "pweot", - "pweop", - "pweoh", - "pwe", - "pweg", - "pwegg", - "pwegs", - "pwen", - "pwenj", - "pwenh", - "pwed", - "pwel", - "pwelg", - "pwelm", - "pwelb", - "pwels", - "pwelt", - "pwelp", - "pwelh", - "pwem", - "pweb", - "pwebs", - "pwes", - "pwess", - "pweng", - "pwej", - "pwec", - "pwek", - "pwet", - "pwep", - "pweh", - "pwi", - "pwig", - "pwigg", - "pwigs", - "pwin", - "pwinj", - "pwinh", - "pwid", - "pwil", - "pwilg", - "pwilm", - "pwilb", - "pwils", - "pwilt", - "pwilp", - "pwilh", - "pwim", - "pwib", - "pwibs", - "pwis", - "pwiss", - "pwing", - "pwij", - "pwic", - "pwik", - "pwit", - "pwip", - "pwih", - "pyu", - "pyug", - "pyugg", - "pyugs", - "pyun", - "pyunj", - "pyunh", - "pyud", - "pyul", - "pyulg", - "pyulm", - "pyulb", - "pyuls", - "pyult", - "pyulp", - "pyulh", - "pyum", - "pyub", - "pyubs", - "pyus", - "pyuss", - "pyung", - "pyuj", - "pyuc", - "pyuk", - "pyut", - "pyup", - "pyuh", - "peu", - "peug", - "peugg", - "peugs", - "peun", - "peunj", - "peunh", - "peud", - "peul", - "peulg", - "peulm", - "peulb", - "peuls", - "peult", - "peulp", - "peulh", - "peum", - "peub", - "peubs", - "peus", - "peuss", - "peung", - "peuj", - "peuc", - "peuk", - "peut", - "peup", - "peuh", - "pyi", - "pyig", - "pyigg", - "pyigs", - "pyin", - "pyinj", - "pyinh", - "pyid", - "pyil", - "pyilg", - "pyilm", - "pyilb", - "pyils", - "pyilt", - "pyilp", - "pyilh", - "pyim", - "pyib", - "pyibs", - "pyis", - "pyiss", - "pying", - "pyij", - "pyic", - "pyik", - "pyit", - "pyip", - "pyih", - "pi", - "pig", - "pigg", - "pigs", - "pin", - "pinj", - "pinh", - "pid", - "pil", - "pilg", - "pilm", - "pilb", - "pils", - "pilt", - "pilp", - "pilh", - "pim", - "pib", - "pibs", - "pis", - "piss", - "ping", - "pij", - "pic", - "pik", - "pit", - "pip", - "pih", - "ha", - "hag", - "hagg", - "hags", - "han", - "hanj", - "hanh", - "had", - "hal", - "halg", - "halm", - "halb", - "hals", - "halt", - "halp", - "halh", - "ham", - "hab", - "habs", - "has", - "hass", - "hang", - "haj", - "hac", - "hak", - "hat", - "hap", - "hah", - "hae", - "haeg", - "haegg", - "haegs", - "haen", - "haenj", - "haenh", - "haed", - "hael", - "haelg", - "haelm", - "haelb", - "haels", - "haelt", - "haelp", - "haelh", - "haem", - "haeb", - "haebs", - "haes", - "haess", - "haeng", - "haej", - "haec", - "haek", - "haet", - "haep", - "haeh", - "hya", - "hyag", - "hyagg", - "hyags", - "hyan", - "hyanj", - "hyanh", - "hyad", - "hyal", - "hyalg", - "hyalm", - "hyalb", - "hyals", - "hyalt", - "hyalp", - "hyalh", - "hyam", - "hyab", - "hyabs", - "hyas", - "hyass", - "hyang", - "hyaj", - "hyac", - "hyak", - "hyat", - "hyap", - "hyah", - "hyae", - "hyaeg", - "hyaegg", - "hyaegs", - "hyaen", - "hyaenj", - "hyaenh", - "hyaed", - "hyael", - "hyaelg", - "hyaelm", - "hyaelb", - "hyaels", - "hyaelt", - "hyaelp", - "hyaelh", - "hyaem", - "hyaeb", - "hyaebs", - "hyaes", - "hyaess", - "hyaeng", - "hyaej", - "hyaec", - "hyaek", - "hyaet", - "hyaep", - "hyaeh", - "heo", - "heog", - "heogg", - "heogs", - "heon", - "heonj", - "heonh", - "heod", - "heol", - "heolg", - "heolm", - "heolb", - "heols", - "heolt", - "heolp", - "heolh", - "heom", - "heob", - "heobs", - "heos", - "heoss", - "heong", - "heoj", - "heoc", - "heok", - "heot", - "heop", - "heoh", - "he", - "heg", - "hegg", - "hegs", - "hen", - "henj", - "henh", - "hed", - "hel", - "helg", - "helm", - "helb", - "hels", - "helt", - "help", - "helh", - "hem", - "heb", - "hebs", - "hes", - "hess", - "heng", - "hej", - "hec", - "hek", - "het", - "hep", - "heh", - "hyeo", - "hyeog", - "hyeogg", - "hyeogs", - "hyeon", - "hyeonj", - "hyeonh", - "hyeod", - "hyeol", - "hyeolg", - "hyeolm", - "hyeolb", - "hyeols", - "hyeolt", - "hyeolp", - "hyeolh", - "hyeom", - "hyeob", - "hyeobs", - "hyeos", - "hyeoss", - "hyeong", - "hyeoj", - "hyeoc", - "hyeok", - "hyeot", - "hyeop", - "hyeoh", - "hye", - "hyeg", - "hyegg", - "hyegs", - "hyen", - "hyenj", - "hyenh", - "hyed", - "hyel", - "hyelg", - "hyelm", - "hyelb", - "hyels", - "hyelt", - "hyelp", - "hyelh", - "hyem", - "hyeb", - "hyebs", - "hyes", - "hyess", - "hyeng", - "hyej", - "hyec", - "hyek", - "hyet", - "hyep", - "hyeh", - "ho", - "hog", - "hogg", - "hogs", - "hon", - "honj", - "honh", - "hod", - "hol", - "holg", - "holm", - "holb", - "hols", - "holt", - "holp", - "holh", - "hom", - "hob", - "hobs", - "hos", - "hoss", - "hong", - "hoj", - "hoc", - "hok", - "hot", - "hop", - "hoh", - "hwa", - "hwag", - "hwagg", - "hwags", - "hwan", - "hwanj", - "hwanh", - "hwad", - "hwal", - "hwalg", - "hwalm", - "hwalb", - "hwals", - "hwalt", - "hwalp", - "hwalh", - "hwam", - "hwab", - "hwabs", - "hwas", - "hwass", - "hwang", - "hwaj", - "hwac", - "hwak", - "hwat", - "hwap", - "hwah", - "hwae", - "hwaeg", - "hwaegg", - "hwaegs", - "hwaen", - "hwaenj", - "hwaenh", - "hwaed", - "hwael", - "hwaelg", - "hwaelm", - "hwaelb", - "hwaels", - "hwaelt", - "hwaelp", - "hwaelh", - "hwaem", - "hwaeb", - "hwaebs", - "hwaes", - "hwaess", - "hwaeng", - "hwaej", - "hwaec", - "hwaek", - "hwaet", - "hwaep", - "hwaeh", - "hoe", - "hoeg", - "hoegg", - "hoegs", - "hoen", - "hoenj", - "hoenh", - "hoed", - "hoel", - "hoelg", - "hoelm", - "hoelb", - "hoels", - "hoelt", - "hoelp", - "hoelh", - "hoem", - "hoeb", - "hoebs", - "hoes", - "hoess", - "hoeng", - "hoej", - "hoec", - "hoek", - "hoet", - "hoep", - "hoeh", - "hyo", - "hyog", - "hyogg", - "hyogs", - "hyon", - "hyonj", - "hyonh", - "hyod", - "hyol", - "hyolg", - "hyolm", - "hyolb", - "hyols", - "hyolt", - "hyolp", - "hyolh", - "hyom", - "hyob", - "hyobs", - "hyos", - "hyoss", - "hyong", - "hyoj", - "hyoc", - "hyok", - "hyot", - "hyop", - "hyoh", - "hu", - "hug", - "hugg", - "hugs", - "hun", - "hunj", - "hunh", - "hud", - "hul", - "hulg", - "hulm", - "hulb", - "huls", - "hult", - "hulp", - "hulh", - "hum", - "hub", - "hubs", - "hus", - "huss", - "hung", - "huj", - "huc", - "huk", - "hut", - "hup", - "huh", - "hweo", - "hweog", - "hweogg", - "hweogs", - "hweon", - "hweonj", - "hweonh", - "hweod", - "hweol", - "hweolg", - "hweolm", - "hweolb", - "hweols", - "hweolt", - "hweolp", - "hweolh", - "hweom", - "hweob", - "hweobs", - "hweos", - "hweoss", - "hweong", - "hweoj", - "hweoc", - "hweok", - "hweot", - "hweop", - "hweoh", - "hwe", - "hweg", - "hwegg", - "hwegs", - "hwen", - "hwenj", - "hwenh", - "hwed", - "hwel", - "hwelg", - "hwelm", - "hwelb", - "hwels", - "hwelt", - "hwelp", - "hwelh", - "hwem", - "hweb", - "hwebs", - "hwes", - "hwess", - "hweng", - "hwej", - "hwec", - "hwek", - "hwet", - "hwep", - "hweh", - "hwi", - "hwig", - "hwigg", - "hwigs", - "hwin", - "hwinj", - "hwinh", - "hwid", - "hwil", - "hwilg", - "hwilm", - "hwilb", - "hwils", - "hwilt", - "hwilp", - "hwilh", - "hwim", - "hwib", - "hwibs", - "hwis", - "hwiss", - "hwing", - "hwij", - "hwic", - "hwik", - "hwit", - "hwip", - "hwih", - "hyu", - "hyug", - "hyugg", - "hyugs", - "hyun", - "hyunj", - "hyunh", - "hyud", - "hyul", - "hyulg", - "hyulm", - "hyulb", - "hyuls", - "hyult", - "hyulp", - "hyulh", - "hyum", - "hyub", - "hyubs", - "hyus", - "hyuss", - "hyung", - "hyuj", - "hyuc", - "hyuk", - "hyut", - "hyup", - "hyuh", - "heu", - "heug", - "heugg", - "heugs", - "heun", - "heunj", - "heunh", - "heud", - "heul", - "heulg", - "heulm", - "heulb", - "heuls", - "heult", - "heulp", - "heulh", - "heum", - "heub", - "heubs", - "heus", - "heuss", - "heung", - "heuj", - "heuc", - "heuk", - "heut", - "heup", - "heuh", - "hyi", - "hyig", - "hyigg", - "hyigs", - "hyin", - "hyinj", - "hyinh", - "hyid", - "hyil", - "hyilg", - "hyilm", - "hyilb", - "hyils", - "hyilt", - "hyilp", - "hyilh", - "hyim", - "hyib", - "hyibs", - "hyis", - "hyiss", - "hying", - "hyij", - "hyic", - "hyik", - "hyit", - "hyip", - "hyih", - "hi", - "hig", - "higg", - "higs", - "hin", - "hinj", - "hinh", - "hid", - "hil", - "hilg", - "hilm", - "hilb", - "hils", - "hilt", - "hilp", - "hilh", - "him", - "hib", - "hibs", - "his", - "hiss", - "hing", - "hij", - "hic", - "hik", - "hit", - "hip", - "hih", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "[?] ", - "Kay ", - "Kayng ", - "Ke ", - "Ko ", - "Kol ", - "Koc ", - "Kwi ", - "Kwi ", - "Kyun ", - "Kul ", - "Kum ", - "Na ", - "Na ", - "Na ", - "La ", - "Na ", - "Na ", - "Na ", - "Na ", - "Na ", - "Nak ", - "Nak ", - "Nak ", - "Nak ", - "Nak ", - "Nak ", - "Nak ", - "Nan ", - "Nan ", - "Nan ", - "Nan ", - "Nan ", - "Nan ", - "Nam ", - "Nam ", - "Nam ", - "Nam ", - "Nap ", - "Nap ", - "Nap ", - "Nang ", - "Nang ", - "Nang ", - "Nang ", - "Nang ", - "Nay ", - "Nayng ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "No ", - "Nok ", - "Nok ", - "Nok ", - "Nok ", - "Nok ", - "Nok ", - "Non ", - "Nong ", - "Nong ", - "Nong ", - "Nong ", - "Noy ", - "Noy ", - "Noy ", - "Noy ", - "Nwu ", - "Nwu ", - "Nwu ", - "Nwu ", - "Nwu ", - "Nwu ", - "Nwu ", - "Nwu ", - "Nuk ", - "Nuk ", - "Num ", - "Nung ", - "Nung ", - "Nung ", - "Nung ", - "Nung ", - "Twu ", - "La ", - "Lak ", - "Lak ", - "Lan ", - "Lyeng ", - "Lo ", - "Lyul ", - "Li ", - "Pey ", - "Pen ", - "Pyen ", - "Pwu ", - "Pwul ", - "Pi ", - "Sak ", - "Sak ", - "Sam ", - "Sayk ", - "Sayng ", - "Sep ", - "Sey ", - "Sway ", - "Sin ", - "Sim ", - "Sip ", - "Ya ", - "Yak ", - "Yak ", - "Yang ", - "Yang ", - "Yang ", - "Yang ", - "Yang ", - "Yang ", - "Yang ", - "Yang ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Ye ", - "Yek ", - "Yek ", - "Yek ", - "Yek ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yen ", - "Yel ", - "Yel ", - "Yel ", - "Yel ", - "Yel ", - "Yel ", - "Yem ", - "Yem ", - "Yem ", - "Yem ", - "Yem ", - "Yep ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yeng ", - "Yey ", - "Yey ", - "Yey ", - "Yey ", - "O ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yo ", - "Yong ", - "Wun ", - "Wen ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yu ", - "Yuk ", - "Yuk ", - "Yuk ", - "Yun ", - "Yun ", - "Yun ", - "Yun ", - "Yul ", - "Yul ", - "Yul ", - "Yul ", - "Yung ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "I ", - "Ik ", - "Ik ", - "In ", - "In ", - "In ", - "In ", - "In ", - "In ", - "In ", - "Im ", - "Im ", - "Im ", - "Ip ", - "Ip ", - "Ip ", - "Cang ", - "Cek ", - "Ci ", - "Cip ", - "Cha ", - "Chek ", - "Chey ", - "Thak ", - "Thak ", - "Thang ", - "Thayk ", - "Thong ", - "Pho ", - "Phok ", - "Hang ", - "Hang ", - "Hyen ", - "Hwak ", - "Wu ", - "Huo ", - "[?] ", - "[?] ", - "Zhong ", - "[?] ", - "Qing ", - "[?] ", - "[?] ", - "Xi ", - "Zhu ", - "Yi ", - "Li ", - "Shen ", - "Xiang ", - "Fu ", - "Jing ", - "Jing ", - "Yu ", - "[?] ", - "Hagi ", - "[?] ", - "Zhu ", - "[?] ", - "[?] ", - "Yi ", - "Du ", - "[?] ", - "[?] ", - "[?] ", - "Fan ", - "Si ", - "Guan ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?] ", - "ff", - "fi", - "fl", - "ffi", - "ffl", - "st", - "st", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "mn", - "me", - "mi", - "vn", - "mkh", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "yi", - "", - "ay", - "`", - "", - "d", - "h", - "k", - "l", - "m", - "m", - "t", - "+", - "sh", - "s", - "sh", - "s", - "a", - "a", - "", - "b", - "g", - "d", - "h", - "v", - "z", - "[?]", - "t", - "y", - "k", - "k", - "l", - "[?]", - "l", - "[?]", - "n", - "n", - "[?]", - "p", - "p", - "[?]", - "ts", - "ts", - "r", - "sh", - "t", - "vo", - "b", - "k", - "p", - "l", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "[?]", - "[?] ", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "~", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "..", - "--", - "-", - "_", - "_", - "(", - ") ", - "{", - "} ", - "[", - "] ", - "[(", - ")] ", - "<<", - ">> ", - "<", - "> ", - "[", - "] ", - "{", - "}", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "", - "", - "", - "", - ",", - ",", - ".", - "", - ";", - ":", - "?", - "!", - "-", - "(", - ")", - "{", - "}", - "{", - "}", - "#", - "&", - "*", - "+", - "-", - "<", - ">", - "=", - "", - "\\", - "$", - "%", - "@", - "[?]", - "[?]", - "[?]", - "[?]", - "", - "", - "", - "[?]", - "", - "[?]", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "[?]", - "[?]", - "", - "[?]", - "!", - '"', - "#", - "$", - "%", - "&", - "'", - "(", - ")", - "*", - "+", - ",", - "-", - ".", - "/", - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - ":", - ";", - "<", - "=", - ">", - "?", - "@", - "A", - "B", - "C", - "D", - "E", - "F", - "G", - "H", - "I", - "J", - "K", - "L", - "M", - "N", - "O", - "P", - "Q", - "R", - "S", - "T", - "U", - "V", - "W", - "X", - "Y", - "Z", - "[", - "\\", - "]", - "^", - "_", - "`", - "a", - "b", - "c", - "d", - "e", - "f", - "g", - "h", - "i", - "j", - "k", - "l", - "m", - "n", - "o", - "p", - "q", - "r", - "s", - "t", - "u", - "v", - "w", - "x", - "y", - "z", - "{", - "|", - "}", - "~", - "[?]", - "[?]", - ".", - "[", - "]", - ",", - "*", - "wo", - "a", - "i", - "u", - "e", - "o", - "ya", - "yu", - "yo", - "tu", - "+", - "a", - "i", - "u", - "e", - "o", - "ka", - "ki", - "ku", - "ke", - "ko", - "sa", - "si", - "su", - "se", - "so", - "ta", - "ti", - "tu", - "te", - "to", - "na", - "ni", - "nu", - "ne", - "no", - "ha", - "hi", - "hu", - "he", - "ho", - "ma", - "mi", - "mu", - "me", - "mo", - "ya", - "yu", - "yo", - "ra", - "ri", - "ru", - "re", - "ro", - "wa", - "n", - ":", - ";", - "", - "g", - "gg", - "gs", - "n", - "nj", - "nh", - "d", - "dd", - "r", - "lg", - "lm", - "lb", - "ls", - "lt", - "lp", - "rh", - "m", - "b", - "bb", - "bs", - "s", - "ss", - "", - "j", - "jj", - "c", - "k", - "t", - "p", - "h", - "[?]", - "[?]", - "[?]", - "a", - "ae", - "ya", - "yae", - "eo", - "e", - "[?]", - "[?]", - "yeo", - "ye", - "o", - "wa", - "wae", - "oe", - "[?]", - "[?]", - "yo", - "u", - "weo", - "we", - "wi", - "yu", - "[?]", - "[?]", - "eu", - "yi", - "i", - "[?]", - "[?]", - "[?]", - "/C", - "PS", - "!", - "-", - "|", - "Y=", - "W=", - "[?]", - "|", - "-", - "|", - "-", - "|", - "#", - "O", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "[?]", - "{", - "|", - "}", - "", - "", - "", - "", -) diff --git a/.venv/lib/python3.12/site-packages/faker/documentor.py b/.venv/lib/python3.12/site-packages/faker/documentor.py deleted file mode 100644 index 0dbce60..0000000 --- a/.venv/lib/python3.12/site-packages/faker/documentor.py +++ /dev/null @@ -1,127 +0,0 @@ -import inspect -import warnings - -from enum import Enum, auto -from typing import Any, Dict, List, Optional, Tuple, Type, Union - -from .generator import Generator -from .providers import BaseProvider -from .proxy import Faker - - -class FakerEnum(Enum): - """Required for faker.providers.enum""" - - A = auto - B = auto - - -class Documentor: - def __init__(self, generator: Union[Generator, Faker]) -> None: - """ - :param generator: a localized Generator with providers filled, - for which to write the documentation - :type generator: faker.Generator() - """ - self.generator = generator - self.max_name_len: int = 0 - self.already_generated: List[str] = [] - - def get_formatters( - self, - locale: Optional[str] = None, - excludes: Optional[List[str]] = None, - **kwargs: Any, - ) -> List[Tuple[BaseProvider, Dict[str, str]]]: - self.max_name_len = 0 - self.already_generated = [] if excludes is None else excludes[:] - formatters = [] - providers: List[BaseProvider] = self.generator.get_providers() - for provider in providers[::-1]: # reverse - if locale and provider.__lang__ and provider.__lang__ != locale: - continue - formatters.append( - (provider, self.get_provider_formatters(provider, **kwargs)), - ) - return formatters - - def get_provider_formatters( - self, - provider: BaseProvider, - prefix: str = "fake.", - with_args: bool = True, - with_defaults: bool = True, - ) -> Dict[str, str]: - formatters = {} - - for name, method in inspect.getmembers(provider, inspect.ismethod): - # skip 'private' method and inherited methods - if name.startswith("_") or name in self.already_generated: - continue - - arguments = [] - faker_args: List[Union[str, Type[Enum]]] = [] - faker_kwargs = {} - - if name == "binary": - faker_kwargs["length"] = 1024 - elif name in ["zip", "tar"]: - faker_kwargs.update( - { - "uncompressed_size": 1024, - "min_file_size": 512, - } - ) - - if name == "enum": - faker_args = [FakerEnum] - - if with_args: - # retrieve all parameter - argspec = inspect.getfullargspec(method) - - lst = [x for x in argspec.args if x not in ["self", "cls"]] - for i, arg in enumerate(lst): - if argspec.defaults and with_defaults: - try: - default = argspec.defaults[i] - if isinstance(default, str): - default = repr(default) - else: - # TODO check default type - default = f"{default}" - - arg = f"{arg}={default}" - - except IndexError: - pass - - arguments.append(arg) - if with_args == "first": - break - - if with_args != "first": - if argspec.varargs: - arguments.append("*" + argspec.varargs) - if argspec.varkw: - arguments.append("**" + argspec.varkw) - - # build fake method signature - signature = f"{prefix}{name}({', '.join(arguments)})" - - try: - # make a fake example - example = self.generator.format(name, *faker_args, **faker_kwargs) - except (AttributeError, ValueError) as e: - warnings.warn(str(e)) - continue - formatters[signature] = example - - self.max_name_len = max(self.max_name_len, *(len(part) for part in signature.split())) - self.already_generated.append(name) - - return formatters - - @staticmethod - def get_provider_name(provider_class: BaseProvider) -> str: - return provider_class.__provider__ diff --git a/.venv/lib/python3.12/site-packages/faker/exceptions.py b/.venv/lib/python3.12/site-packages/faker/exceptions.py deleted file mode 100644 index 5aa0398..0000000 --- a/.venv/lib/python3.12/site-packages/faker/exceptions.py +++ /dev/null @@ -1,16 +0,0 @@ -class BaseFakerException(Exception): - """The base exception for all Faker exceptions.""" - - -class UniquenessException(BaseFakerException): - """To avoid infinite loops, after a certain number of attempts, - the "unique" attribute of the Proxy will throw this exception. - """ - - -class UnsupportedFeature(BaseFakerException): - """The requested feature is not available on this system.""" - - def __init__(self, msg: str, name: str) -> None: - self.name = name - super().__init__(msg) diff --git a/.venv/lib/python3.12/site-packages/faker/factory.py b/.venv/lib/python3.12/site-packages/faker/factory.py deleted file mode 100644 index 356e8d5..0000000 --- a/.venv/lib/python3.12/site-packages/faker/factory.py +++ /dev/null @@ -1,114 +0,0 @@ -import functools -import locale as pylocale -import logging -import sys - -from importlib import import_module -from typing import Any, List, Optional, Tuple - -from .config import AVAILABLE_LOCALES, DEFAULT_LOCALE, PROVIDERS -from .generator import Generator -from .utils.loading import list_module - -logger = logging.getLogger(__name__) - -# identify if python is being run in interactive mode. If so, disable logging. -inREPL = bool(getattr(sys, "ps1", False)) -if inREPL: - logger.setLevel(logging.CRITICAL) -else: - logger.debug("Not in REPL -> leaving logger event level as is.") - - -class Factory: - @classmethod - def create( - cls, - locale: Optional[str] = None, - providers: Optional[List[str]] = None, - generator: Optional[Generator] = None, - includes: Optional[List[str]] = None, - # Should we use weightings (more realistic) or weight every element equally (faster)? - # By default, use weightings for backwards compatibility & realism - use_weighting: bool = True, - **config: Any, - ) -> Generator: - if includes is None: - includes = [] - - # fix locale to package name - locale = locale.replace("-", "_") if locale else DEFAULT_LOCALE - locale = pylocale.normalize(locale).split(".")[0] - if locale not in AVAILABLE_LOCALES: - msg = f"Invalid configuration for faker locale `{locale}`" - raise AttributeError(msg) - - config["locale"] = locale - config["use_weighting"] = use_weighting - _providers = (providers or PROVIDERS) + includes - - faker = generator or Generator(**config) - - for prov_name in _providers: - if prov_name == "faker.providers": - continue - - prov_cls, lang_found, _ = cls._find_provider_class(prov_name, locale) - provider = prov_cls(faker) - provider.__use_weighting__ = use_weighting - provider.__provider__ = prov_name - provider.__lang__ = lang_found - faker.add_provider(provider) - - return faker - - @classmethod - @functools.lru_cache(maxsize=None) - def _find_provider_class( - cls, - provider_path: str, - locale: Optional[str] = None, - ) -> Tuple[Any, Optional[str], Optional[str]]: - provider_module = import_module(provider_path) - default_locale = getattr(provider_module, "default_locale", "") - - if getattr(provider_module, "localized", False): - logger.debug( - "Looking for locale `%s` in provider `%s`.", - locale, - provider_module.__name__, - ) - - available_locales = list_module(provider_module) - if not locale or locale not in available_locales: - unavailable_locale = locale - locale = default_locale or DEFAULT_LOCALE - logger.debug( - "Specified locale `%s` is not available for " - "provider `%s`. Locale reset to `%s` for this " - "provider.", - unavailable_locale, - provider_module.__name__, - locale, - ) - else: - logger.debug( - "Provider `%s` has been localized to `%s`.", - provider_module.__name__, - locale, - ) - - path = f"{provider_path}.{locale}" - provider_module = import_module(path) - - else: - if locale: - logger.debug( - "Provider `%s` does not feature localization. " - "Specified locale `%s` is not used for this provider.", - provider_module.__name__, - locale, - ) - locale = default_locale = None - - return provider_module.Provider, locale, default_locale # type: ignore diff --git a/.venv/lib/python3.12/site-packages/faker/generator.py b/.venv/lib/python3.12/site-packages/faker/generator.py deleted file mode 100644 index 5eda964..0000000 --- a/.venv/lib/python3.12/site-packages/faker/generator.py +++ /dev/null @@ -1,191 +0,0 @@ -import random as random_module -import re - -from typing import TYPE_CHECKING, Any, Callable, Dict, Hashable, List, Optional, Type, Union - -from .typing import SeedType - -if TYPE_CHECKING: - from .providers import BaseProvider - -_re_token = re.compile(r"\{\{\s*(\w+)(:\s*\w+?)?\s*\}\}") -random = random_module.Random() -mod_random = random # compat with name released in 0.8 - - -Sentinel = object() - - -class Generator: - __config: Dict[str, Dict[Hashable, Any]] = { - "arguments": {}, - } - - _is_seeded = False - _global_seed = Sentinel - - def __init__(self, **config: Dict) -> None: - self.providers: List["BaseProvider"] = [] - self.__config = dict(list(self.__config.items()) + list(config.items())) - self.__random = random - - def add_provider(self, provider: Union["BaseProvider", Type["BaseProvider"]]) -> None: - if isinstance(provider, type): - provider = provider(self) - - self.providers.insert(0, provider) - - for method_name in dir(provider): - # skip 'private' method - if method_name.startswith("_"): - continue - - faker_function = getattr(provider, method_name) - - if callable(faker_function): - # add all faker method to generator - self.set_formatter(method_name, faker_function) - - def provider(self, name: str) -> Optional["BaseProvider"]: - try: - lst = [p for p in self.get_providers() if hasattr(p, "__provider__") and p.__provider__ == name.lower()] - return lst[0] - except IndexError: - return None - - def get_providers(self) -> List["BaseProvider"]: - """Returns added providers.""" - return self.providers - - @property - def random(self) -> random_module.Random: - return self.__random - - @random.setter - def random(self, value: random_module.Random) -> None: - self.__random = value - - def seed_instance(self, seed: Optional[SeedType] = None) -> "Generator": - """Calls random.seed""" - if self.__random == random: - # create per-instance random obj when first time seed_instance() is - # called - self.__random = random_module.Random() - self.__random.seed(seed) - self._is_seeded = True - return self - - @classmethod - def seed(cls, seed: Optional[SeedType] = None) -> None: - random.seed(seed) - cls._global_seed = seed - cls._is_seeded = True - - def format(self, formatter: str, *args: Any, **kwargs: Any) -> str: - """ - This is a secure way to make a fake from another Provider. - """ - return self.get_formatter(formatter)(*args, **kwargs) - - def get_formatter(self, formatter: str) -> Callable: - try: - return getattr(self, formatter) - except AttributeError: - if "locale" in self.__config: - msg = f'Unknown formatter {formatter!r} with locale {self.__config["locale"]!r}' - else: - raise AttributeError(f"Unknown formatter {formatter!r}") - raise AttributeError(msg) - - def set_formatter(self, name: str, formatter: Callable) -> None: - """ - This method adds a provider method to generator. - Override this method to add some decoration or logging stuff. - """ - setattr(self, name, formatter) - - def set_arguments(self, group: str, argument: str, value: Optional[Any] = None) -> None: - """ - Creates an argument group, with an individual argument or a dictionary - of arguments. The argument groups is used to apply arguments to tokens, - when using the generator.parse() method. To further manage argument - groups, use get_arguments() and del_arguments() methods. - - generator.set_arguments('small', 'max_value', 10) - generator.set_arguments('small', {'min_value': 5, 'max_value': 10}) - """ - if group not in self.__config["arguments"]: - self.__config["arguments"][group] = {} - - if isinstance(argument, dict): - self.__config["arguments"][group] = argument - elif not isinstance(argument, str): - raise ValueError("Arguments must be either a string or dictionary") - else: - self.__config["arguments"][group][argument] = value - - def get_arguments(self, group: str, argument: Optional[str] = None) -> Any: - """ - Get the value of an argument configured within a argument group, or - the entire group as a dictionary. Used in conjunction with the - set_arguments() method. - - generator.get_arguments('small', 'max_value') - generator.get_arguments('small') - """ - if group in self.__config["arguments"] and argument: - result = self.__config["arguments"][group].get(argument) - else: - result = self.__config["arguments"].get(group) - - return result - - def del_arguments(self, group: str, argument: Optional[str] = None) -> Any: - """ - Delete an argument from an argument group or the entire argument group. - Used in conjunction with the set_arguments() method. - - generator.del_arguments('small') - generator.del_arguments('small', 'max_value') - """ - if group in self.__config["arguments"]: - if argument: - result = self.__config["arguments"][group].pop(argument) - else: - result = self.__config["arguments"].pop(group) - else: - result = None - - return result - - def parse(self, text: str) -> str: - """ - Replaces tokens like '{{ tokenName }}' or '{{tokenName}}' in a string with - the result from the token method call. Arguments can be parsed by using an - argument group. For more information on the use of argument groups, please - refer to the set_arguments() method. - - Example: - - generator.set_arguments('red_rgb', {'hue': 'red', 'color_format': 'rgb'}) - generator.set_arguments('small', 'max_value', 10) - - generator.parse('{{ color:red_rgb }} - {{ pyint:small }}') - """ - return _re_token.sub(self.__format_token, text) - - def __format_token(self, matches): - formatter, argument_group = list(matches.groups()) - argument_group = argument_group.lstrip(":").strip() if argument_group else "" - - if argument_group: - try: - arguments = self.__config["arguments"][argument_group] - except KeyError: - raise AttributeError(f"Unknown argument group {argument_group!r}") - - formatted = str(self.format(formatter, **arguments)) - else: - formatted = str(self.format(formatter)) - - return "".join(formatted) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/__init__.py deleted file mode 100644 index 037dc0b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/__init__.py +++ /dev/null @@ -1,742 +0,0 @@ -import re -import string - -from collections import OrderedDict -from typing import Any, Collection, List, Optional, Sequence, TypeVar, Union - -from ..generator import Generator -from ..typing import OrderedDictType -from ..utils.distribution import choices_distribution, choices_distribution_unique - -_re_hash = re.compile(r"#") -_re_perc = re.compile(r"%") -_re_dol = re.compile(r"\$") -_re_excl = re.compile(r"!") -_re_at = re.compile(r"@") -_re_qm = re.compile(r"\?") -_re_cir = re.compile(r"\^") - -T = TypeVar("T") -ElementsType = Union[Collection[T], OrderedDictType[T, float]] - - -class BaseProvider: - __provider__ = "base" - __lang__: Optional[str] = None - __use_weighting__ = False - - # Locales supported by Linux Mint from `/usr/share/i18n/SUPPORTED` - language_locale_codes = { - "aa": ("DJ", "ER", "ET"), - "af": ("ZA",), - "ak": ("GH",), - "am": ("ET",), - "an": ("ES",), - "apn": ("IN",), - "ar": ( - "AE", - "BH", - "DJ", - "DZ", - "EG", - "EH", - "ER", - "IL", - "IN", - "IQ", - "JO", - "KM", - "KW", - "LB", - "LY", - "MA", - "MR", - "OM", - "PS", - "QA", - "SA", - "SD", - "SO", - "SS", - "SY", - "TD", - "TN", - "YE", - ), - "as": ("IN",), - "ast": ("ES",), - "ayc": ("PE",), - "az": ("AZ", "IN"), - "be": ("BY",), - "bem": ("ZM",), - "ber": ("DZ", "MA"), - "bg": ("BG",), - "bhb": ("IN",), - "bho": ("IN",), - "bn": ("BD", "IN"), - "bo": ("CN", "IN"), - "br": ("FR",), - "brx": ("IN",), - "bs": ("BA",), - "byn": ("ER",), - "ca": ("AD", "ES", "FR", "IT"), - "ce": ("RU",), - "ckb": ("IQ",), - "cmn": ("TW",), - "crh": ("UA",), - "cs": ("CZ",), - "csb": ("PL",), - "cv": ("RU",), - "cy": ("GB",), - "da": ("DK",), - "de": ("AT", "BE", "CH", "DE", "LI", "LU"), - "doi": ("IN",), - "dv": ("MV",), - "dz": ("BT",), - "el": ("GR", "CY"), - "en": ( - "AG", - "AU", - "BD", - "BW", - "CA", - "DK", - "GB", - "HK", - "IE", - "IN", - "NG", - "NZ", - "PH", - "PK", - "SG", - "US", - "ZA", - "ZM", - "ZW", - "KE", - ), - "eo": ("US",), - "es": ( - "AR", - "BO", - "CL", - "CO", - "CR", - "CU", - "DO", - "EC", - "ES", - "GT", - "HN", - "MX", - "NI", - "PA", - "PE", - "PR", - "PY", - "SV", - "US", - "UY", - "VE", - ), - "et": ("EE",), - "eu": ("ES", "FR"), - "fa": ("IR",), - "ff": ("SN",), - "fi": ("FI",), - "fil": ("PH",), - "fo": ("FO",), - "fr": ("CA", "CH", "FR", "LU"), - "fur": ("IT",), - "fy": ("NL", "DE"), - "ga": ("IE",), - "gd": ("GB",), - "gez": ("ER", "ET"), - "gl": ("ES",), - "gu": ("IN",), - "gv": ("GB",), - "ha": ("NG",), - "hak": ("TW",), - "he": ("IL",), - "hi": ("IN",), - "hne": ("IN",), - "hr": ("HR",), - "hsb": ("DE",), - "ht": ("HT",), - "hu": ("HU",), - "hy": ("AM",), - "ia": ("FR",), - "id": ("ID",), - "ig": ("NG",), - "ik": ("CA",), - "is": ("IS",), - "it": ("CH", "IT"), - "iu": ("CA",), - "iw": ("IL",), - "ja": ("JP",), - "ka": ("GE",), - "kk": ("KZ",), - "kl": ("GL",), - "km": ("KH",), - "kn": ("IN",), - "ko": ("KR",), - "kok": ("IN",), - "ks": ("IN",), - "ku": ("TR",), - "kw": ("GB",), - "ky": ("KG",), - "lb": ("LU",), - "lg": ("UG",), - "li": ("BE", "NL"), - "lij": ("IT",), - "ln": ("CD",), - "lo": ("LA",), - "lt": ("LT",), - "lv": ("LV",), - "lzh": ("TW",), - "mag": ("IN",), - "mai": ("IN",), - "mg": ("MG",), - "mhr": ("RU",), - "mi": ("NZ",), - "mk": ("MK",), - "ml": ("IN",), - "mn": ("MN",), - "mni": ("IN",), - "mr": ("IN",), - "ms": ("MY",), - "mt": ("MT",), - "my": ("MM",), - "nan": ("TW",), - "nb": ("NO",), - "nds": ("DE", "NL"), - "ne": ("NP",), - "nhn": ("MX",), - "niu": ("NU", "NZ"), - "nl": ("AW", "BE", "NL"), - "nn": ("NO",), - "nr": ("ZA",), - "nso": ("ZA",), - "oc": ("FR",), - "om": ("ET", "KE"), - "or": ("IN",), - "os": ("RU",), - "pa": ("IN", "PK"), - "pap": ("AN", "AW", "CW"), - "pl": ("PL",), - "ps": ("AF",), - "pt": ("BR", "PT"), - "quz": ("PE",), - "raj": ("IN",), - "ro": ("RO",), - "ru": ("RU", "UA"), - "rw": ("RW",), - "sa": ("IN",), - "sat": ("IN",), - "sc": ("IT",), - "sd": ("IN", "PK"), - "se": ("NO",), - "shs": ("CA",), - "si": ("LK",), - "sid": ("ET",), - "sk": ("SK",), - "sl": ("SI",), - "so": ("DJ", "ET", "KE", "SO"), - "sq": ("AL", "ML"), - "sr": ("ME", "RS"), - "ss": ("ZA",), - "st": ("ZA",), - "sv": ("FI", "SE"), - "sw": ("KE", "TZ"), - "szl": ("PL",), - "ta": ("IN", "LK"), - "tcy": ("IN",), - "te": ("IN",), - "tg": ("TJ",), - "th": ("TH",), - "the": ("NP",), - "ti": ("ER", "ET"), - "tig": ("ER",), - "tk": ("TM",), - "tl": ("PH",), - "tn": ("ZA",), - "tr": ("CY", "TR"), - "ts": ("ZA",), - "tt": ("RU",), - "ug": ("CN",), - "uk": ("UA",), - "unm": ("US",), - "ur": ("IN", "PK"), - "uz": ("UZ",), - "ve": ("ZA",), - "vi": ("VN",), - "wa": ("BE",), - "wae": ("CH",), - "wal": ("ET",), - "wo": ("SN",), - "xh": ("ZA",), - "yi": ("US",), - "yo": ("NG",), - "yue": ("HK",), - "zh": ("CN", "HK", "SG", "TW"), - "zu": ("ZA",), - } - - def __init__(self, generator: Any) -> None: - """ - Base class for fake data providers - :param generator: `Generator` instance - """ - self.generator = generator - - def locale(self) -> str: - """Generate a random underscored i18n locale code (e.g. en_US).""" - - language_code = self.language_code() - return ( - language_code - + "_" - + self.random_element( - BaseProvider.language_locale_codes[language_code], - ) - ) - - def language_code(self) -> str: - """Generate a random i18n language code (e.g. en).""" - - return self.random_element(BaseProvider.language_locale_codes.keys()) - - def random_int(self, min: int = 0, max: int = 9999, step: int = 1) -> int: - """Generate a random integer between two integers ``min`` and ``max`` inclusive - while observing the provided ``step`` value. - - This method is functionally equivalent to randomly sampling an integer - from the sequence ``range(min, max + 1, step)``. - - :sample: min=0, max=15 - :sample: min=0, max=15, step=3 - """ - return self.generator.random.randrange(min, max + 1, step) - - def random_digit(self) -> int: - """Generate a random digit (0 to 9).""" - - return self.generator.random.randint(0, 9) - - def random_digit_not_null(self) -> int: - """Generate a random non-zero digit (1 to 9).""" - - return self.generator.random.randint(1, 9) - - def random_digit_above_two(self) -> int: - """Generate a random digit above value two (2 to 9).""" - - return self.generator.random.randint(2, 9) - - def random_digit_or_empty(self) -> Union[int, str]: - """Generate a random digit (0 to 9) or an empty string. - - This method will return an empty string 50% of the time, - and each digit has a 1/20 chance of being generated. - """ - - if self.generator.random.randint(0, 1): - return self.generator.random.randint(0, 9) - else: - return "" - - def random_digit_not_null_or_empty(self) -> Union[int, str]: - """Generate a random non-zero digit (1 to 9) or an empty string. - - This method will return an empty string 50% of the time, - and each digit has a 1/18 chance of being generated. - """ - - if self.generator.random.randint(0, 1): - return self.generator.random.randint(1, 9) - else: - return "" - - def random_number(self, digits: Optional[int] = None, fix_len: bool = False) -> int: - """Generate a random integer according to the following rules: - - - If ``digits`` is ``None`` (default), its value will be set to a random - integer from 1 to 9. - - If ``fix_len`` is ``False`` (default), all integers that do not exceed - the number of ``digits`` can be generated. - - If ``fix_len`` is ``True``, only integers with the exact number of - ``digits`` can be generated. - - :sample: fix_len=False - :sample: fix_len=True - :sample: digits=3 - :sample: digits=3, fix_len=False - :sample: digits=3, fix_len=True - """ - if digits is None: - digits = self.random_digit_not_null() - if digits < 0: - raise ValueError("The digit parameter must be greater than or equal to 0.") - if fix_len: - if digits > 0: - return self.generator.random.randint(pow(10, digits - 1), pow(10, digits) - 1) - else: - raise ValueError("A number of fixed length cannot have less than 1 digit in it.") - else: - return self.generator.random.randint(0, pow(10, digits) - 1) - - def random_letter(self) -> str: - """Generate a random ASCII letter (a-z and A-Z).""" - - return self.generator.random.choice(getattr(string, "letters", string.ascii_letters)) - - def random_letters(self, length: int = 16) -> Sequence[str]: - """Generate a list of random ASCII letters (a-z and A-Z) of the specified ``length``. - - :sample: length=10 - """ - return self.random_choices( - getattr(string, "letters", string.ascii_letters), - length=length, - ) - - def random_lowercase_letter(self) -> str: - """Generate a random lowercase ASCII letter (a-z).""" - - return self.generator.random.choice(string.ascii_lowercase) - - def random_uppercase_letter(self) -> str: - """Generate a random uppercase ASCII letter (A-Z).""" - - return self.generator.random.choice(string.ascii_uppercase) - - def random_elements( - self, - elements: ElementsType[T] = ("a", "b", "c"), # type: ignore[assignment] - length: Optional[int] = None, - unique: bool = False, - use_weighting: Optional[bool] = None, - ) -> Sequence[T]: - """Generate a list of randomly sampled objects from ``elements``. - - Set ``unique`` to ``False`` for random sampling with replacement, and set ``unique`` to - ``True`` for random sampling without replacement. - - If ``length`` is set to ``None`` or is omitted, ``length`` will be set to a random - integer from 1 to the size of ``elements``. - - The value of ``length`` cannot be greater than the number of objects - in ``elements`` if ``unique`` is set to ``True``. - - The value of ``elements`` can be any sequence type (``list``, ``tuple``, ``set``, - ``string``, etc) or an ``OrderedDict`` type. If it is the latter, the keys will be - used as the objects for sampling, and the values will be used as weighted probabilities - if ``unique`` is set to ``False``. For example: - - .. code-block:: python - - # Random sampling with replacement - fake.random_elements( - elements=OrderedDict([ - ("variable_1", 0.5), # Generates "variable_1" 50% of the time - ("variable_2", 0.2), # Generates "variable_2" 20% of the time - ("variable_3", 0.2), # Generates "variable_3" 20% of the time - ("variable_4": 0.1), # Generates "variable_4" 10% of the time - ]), unique=False - ) - - # Random sampling without replacement (defaults to uniform distribution) - fake.random_elements( - elements=OrderedDict([ - ("variable_1", 0.5), - ("variable_2", 0.2), - ("variable_3", 0.2), - ("variable_4": 0.1), - ]), unique=True - ) - - :sample: elements=('a', 'b', 'c', 'd'), unique=False - :sample: elements=('a', 'b', 'c', 'd'), unique=True - :sample: elements=('a', 'b', 'c', 'd'), length=10, unique=False - :sample: elements=('a', 'b', 'c', 'd'), length=4, unique=True - :sample: elements=OrderedDict([ - ("a", 0.45), - ("b", 0.35), - ("c", 0.15), - ("d", 0.05), - ]), length=20, unique=False - :sample: elements=OrderedDict([ - ("a", 0.45), - ("b", 0.35), - ("c", 0.15), - ("d", 0.05), - ]), unique=True - """ - use_weighting = use_weighting if use_weighting is not None else self.__use_weighting__ - - if isinstance(elements, dict) and not isinstance(elements, OrderedDict): - raise ValueError("Use OrderedDict only to avoid dependency on PYTHONHASHSEED (See #363).") - - fn = choices_distribution_unique if unique else choices_distribution - - if length is None: - length = self.generator.random.randint(1, len(elements)) - - if unique and length > len(elements): - raise ValueError("Sample length cannot be longer than the number of unique elements to pick from.") - - if isinstance(elements, dict): - if not hasattr(elements, "_key_cache"): - elements._key_cache = tuple(elements.keys()) # type: ignore - - choices = elements._key_cache # type: ignore[attr-defined, union-attr] - probabilities = tuple(elements.values()) if use_weighting else None - else: - if unique: - # shortcut - return self.generator.random.sample(elements, length) - choices = elements - probabilities = None - - return fn( - tuple(choices), - probabilities, - self.generator.random, - length=length, - ) - - def random_choices( - self, - elements: ElementsType[T] = ("a", "b", "c"), # type: ignore[assignment] - length: Optional[int] = None, - ) -> Sequence[T]: - """Generate a list of objects randomly sampled from ``elements`` with replacement. - - For information on the ``elements`` and ``length`` arguments, please refer to - :meth:`random_elements() ` which - is used under the hood with the ``unique`` argument explicitly set to ``False``. - - :sample: elements=('a', 'b', 'c', 'd') - :sample: elements=('a', 'b', 'c', 'd'), length=10 - :sample: elements=OrderedDict([ - ("a", 0.45), - ("b", 0.35), - ("c", 0.15), - ("d", 0.05), - ]) - :sample: elements=OrderedDict([ - ("a", 0.45), - ("b", 0.35), - ("c", 0.15), - ("d", 0.05), - ]), length=20 - """ - return self.random_elements(elements, length, unique=False) - - def random_element(self, elements: ElementsType[T] = ("a", "b", "c")) -> T: # type: ignore[assignment] - """Generate a randomly sampled object from ``elements``. - - For information on the ``elements`` argument, please refer to - :meth:`random_elements() ` which - is used under the hood with the ``unique`` argument set to ``False`` and the - ``length`` argument set to ``1``. - - :sample: elements=('a', 'b', 'c', 'd') - :sample size=10: elements=OrderedDict([ - ("a", 0.45), - ("b", 0.35), - ("c", 0.15), - ("d", 0.05), - ]) - """ - - return self.random_elements(elements, length=1)[0] - - def random_sample( - self, elements: ElementsType[T] = ("a", "b", "c"), length: Optional[int] = None # type: ignore[assignment] - ) -> Sequence[T]: - """Generate a list of objects randomly sampled from ``elements`` without replacement. - - For information on the ``elements`` and ``length`` arguments, please refer to - :meth:`random_elements() ` which - is used under the hood with the ``unique`` argument explicitly set to ``True``. - - :sample: elements=('a', 'b', 'c', 'd', 'e', 'f') - :sample: elements=('a', 'b', 'c', 'd', 'e', 'f'), length=3 - """ - return self.random_elements(elements, length, unique=True) - - def randomize_nb_elements( - self, - number: int = 10, - le: bool = False, - ge: bool = False, - min: Optional[int] = None, - max: Optional[int] = None, - ) -> int: - """Generate a random integer near ``number`` according to the following rules: - - - If ``le`` is ``False`` (default), allow generation up to 140% of ``number``. - If ``True``, upper bound generation is capped at 100%. - - If ``ge`` is ``False`` (default), allow generation down to 60% of ``number``. - If ``True``, lower bound generation is capped at 100%. - - If a numerical value for ``min`` is provided, generated values less than ``min`` - will be clamped at ``min``. - - If a numerical value for ``max`` is provided, generated values greater than - ``max`` will be clamped at ``max``. - - If both ``le`` and ``ge`` are ``True``, the value of ``number`` will automatically - be returned, regardless of the values supplied for ``min`` and ``max``. - - :sample: number=100 - :sample: number=100, ge=True - :sample: number=100, ge=True, min=120 - :sample: number=100, le=True - :sample: number=100, le=True, max=80 - :sample: number=79, le=True, ge=True, min=80 - """ - if le and ge: - return number - _min = 100 if ge else 60 - _max = 100 if le else 140 - nb = int(number * self.generator.random.randint(_min, _max) / 100) - if min is not None and nb < min: - nb = min - if max is not None and nb > max: - nb = max - return nb - - def numerify(self, text: str = "###") -> str: - """Generate a string with each placeholder in ``text`` replaced according - to the following rules: - - - Number signs ('#') are replaced with a random digit (0 to 9). - - Percent signs ('%') are replaced with a random non-zero digit (1 to 9). - - Dollar signs ('$') are replaced with a random digit above two (2 to 9). - - Exclamation marks ('!') are replaced with a random digit or an empty string. - - At symbols ('@') are replaced with a random non-zero digit or an empty string. - - Under the hood, this method uses :meth:`random_digit() `, - :meth:`random_digit_not_null() `, - :meth:`random_digit_or_empty() `, - and :meth:`random_digit_not_null_or_empty() ` - to generate the random values. - - :sample: text='Intel Core i%-%%##K vs AMD Ryzen % %%##X' - :sample: text='!!! !!@ !@! !@@ @!! @!@ @@! @@@' - """ - text = _re_hash.sub(lambda x: str(self.random_digit()), text) - text = _re_perc.sub(lambda x: str(self.random_digit_not_null()), text) - text = _re_dol.sub(lambda x: str(self.random_digit_above_two()), text) - text = _re_excl.sub(lambda x: str(self.random_digit_or_empty()), text) - text = _re_at.sub(lambda x: str(self.random_digit_not_null_or_empty()), text) - return text - - def lexify(self, text: str = "????", letters: str = string.ascii_letters) -> str: - """Generate a string with each question mark ('?') in ``text`` - replaced with a random character from ``letters``. - - By default, ``letters`` contains all ASCII letters, uppercase and lowercase. - - :sample: text='Random Identifier: ??????????' - :sample: text='Random Identifier: ??????????', letters='ABCDE' - """ - return _re_qm.sub(lambda x: self.random_element(letters), text) - - def bothify(self, text: str = "## ??", letters: str = string.ascii_letters) -> str: - """Generate a string with each placeholder in ``text`` replaced according to the following rules: - - - Number signs ('#') are replaced with a random digit (0 to 9). - - Percent signs ('%') are replaced with a random non-zero digit (1 to 9). - - Dollar signs ('$') are replaced with a random digit above two (2 to 9). - - Exclamation marks ('!') are replaced with a random digit or an empty string. - - At symbols ('@') are replaced with a random non-zero digit or an empty string. - - Question marks ('?') are replaced with a random character from ``letters``. - - By default, ``letters`` contains all ASCII letters, uppercase and lowercase. - - Under the hood, this method uses :meth:`numerify() ` and - and :meth:`lexify() ` to generate random values for number - signs and question marks respectively. - - :sample: letters='ABCDE' - :sample: text='Product Number: ????-########' - :sample: text='Product Number: ????-########', letters='ABCDE' - :sample: text='Order: ##??-$' - """ - return self.lexify(self.numerify(text), letters=letters) - - def hexify(self, text: str = "^^^^", upper: bool = False) -> str: - """Generate a string with each circumflex ('^') in ``text`` - replaced with a random hexadecimal character. - - By default, ``upper`` is set to False. If set to ``True``, output - will be formatted using uppercase hexadecimal characters. - - :sample: text='MAC Address: ^^:^^:^^:^^:^^:^^' - :sample: text='MAC Address: ^^:^^:^^:^^:^^:^^', upper=True - """ - letters = string.hexdigits[:-6] - if upper: - letters = letters.upper() - return _re_cir.sub(lambda x: self.random_element(letters), text) - - -class DynamicProvider(BaseProvider): - def __init__( - self, - provider_name: str, - elements: Optional[List] = None, - generator: Optional[Any] = None, - ): - """ - A faker Provider capable of getting a list of elements to randomly select from, - instead of using the predefined list of elements which exist in the default providers in faker. - - :param provider_name: Name of provider, which would translate into the function name e.g. faker.my_fun(). - :param elements: List of values to randomly select from - :param generator: Generator object. If missing, the default Generator is used. - - :example: - >>>from faker import Faker - >>>from faker.providers import DynamicProvider - - >>>medical_professions_provider = DynamicProvider( - >>> provider_name="medical_profession", - >>> elements=["dr.", "doctor", "nurse", "surgeon", "clerk"], - >>>) - >>>fake = Faker() - >>>fake.add_provider(medical_professions_provider) - - >>>fake.medical_profession() - "dr." - - """ - - if not generator: - generator = Generator() - super().__init__(generator) - if provider_name.startswith("__"): - raise ValueError("Provider name cannot start with __ as it would be ignored by Faker") - - self.provider_name = provider_name - - self.elements = [] - if elements: - self.elements = elements - - setattr(self, provider_name, self.get_random_value) # Add a method for the provider_name value - - def add_element(self, element: str) -> None: - """Add new element.""" - self.elements.append(element) - - def get_random_value(self, use_weighting: bool = True) -> Any: - """Returns a random value for this provider. - - :param use_weighting: boolean option to use weighting. Defaults to True - """ - if not self.elements or len(self.elements) == 0: - raise ValueError("Elements should be a list of values the provider samples from") - - return self.random_elements(self.elements, length=1, use_weighting=use_weighting)[0] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 69ccb85181303d4af792b7e19a2841dbf6b8dbf7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31624 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 str: - """ - :example: 'town' - """ - return self.random_element(self.city_suffixes) - - def street_suffix(self) -> str: - """ - :example: 'Avenue' - """ - return self.random_element(self.street_suffixes) - - def building_number(self) -> str: - """ - :example: '791' - """ - return self.numerify(self.random_element(self.building_number_formats)) - - def city(self) -> str: - """ - :example: 'Sashabury' - """ - pattern: str = self.random_element(self.city_formats) - return self.generator.parse(pattern) - - def street_name(self) -> str: - """ - :example: 'Crist Parks' - """ - pattern: str = self.random_element(self.street_name_formats) - return self.generator.parse(pattern) - - def street_address(self) -> str: - """ - :example: '791 Crist Parks' - """ - pattern: str = self.random_element(self.street_address_formats) - return self.generator.parse(pattern) - - def postcode(self) -> str: - """ - :example: 86039-9874 - """ - return self.bothify(self.random_element(self.postcode_formats)).upper() - - def address(self) -> str: - """ - :example: '791 Crist Parks, Sashabury, IL 86039-9874' - """ - pattern: str = self.random_element(self.address_formats) - return self.generator.parse(pattern) - - def country(self) -> str: - """ - :sample: - """ - return self.random_element(self.countries) - - def country_code(self, representation: str = ALPHA_2) -> str: - """ - :sample: - :sample: representation='alpha-2' - :sample: representation='alpha-3' - """ - if representation == self.ALPHA_2: - return self.random_element(self.alpha_2_country_codes) - elif representation == self.ALPHA_3: - return self.random_element(self.alpha_3_country_codes) - else: - raise ValueError("`representation` must be one of `alpha-2` or `alpha-3`.") - - def current_country_code(self) -> str: - """ - :sample: - """ - try: - return self.__lang__.split("_")[1] # type: ignore - except IndexError: - raise AttributeError("Country code cannot be determined from locale") - - def current_country(self) -> str: - """ - :sample: - """ - current_country_code = self.current_country_code() - current_country = [ - country.name for country in date_time.Provider.countries if country.alpha_2_code == current_country_code - ] - if len(current_country) == 1: - return current_country[0] # type: ignore - elif len(current_country) > 1: - raise ValueError(f"Ambiguous country for country code {current_country_code}: {current_country}") - else: - raise ValueError(f"No appropriate country for country code {current_country_code}") diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9305fbf29ac586a950d328217c91a0b4027e3465..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6615 zcmdTITWlN0@$Pt(D2WthQ8sN!w9cYziPnR9IeNf$ELpN_RCa7jwOv*YMe$BDWxl+3 zj4g_4g&+kSG=QBiD+q$H=tq=gBP($IlfuebXFc|`FPPlu@p?V}@% zkBOLkCYs_IAInfv6mNQq;#q-yY|4%CnODr7iZ2;xc}$vhJRk~}QS6NnFCfi285SZ! zR1#-b;(}Ji2PDBSg(AXiP@j)fg~|T}LLN~9<)eAZ$NU&RVu|*d1XeH~0!E>NXHG)R zn}Awrpt6K&_E`+H3PP*&RT*d&LaXvs8)(&pR^zKN(5!@J^H~kFT0*n?YzA5#rU|vn zhsi2-fMsq+lQbr%2h;;PXj-Cz%*|SgTBB3+a_erscbRwUSSn~*qt_^3ongLxzDjXK^4 zc$1Dd0p6_R&49af+y(ey9X||si;lMd&I$F4G|vfULSy+OZ<&2Z^!`@pZ`E-(;O>>S zAVcfBa~F29JnlKFSqffYz7`6H1W|-1Tk3|2*+;)y8H9UfVQ7d{QdqM(+bo)s9Glvl#nZsASF;V zNE>Vu2Q~cP9tQA;N>R(kUY!xBINX(#$2#W>1zXZu&FN)SxEF}T!@?-nF2(Lf+Y22Y zMyo}EC?AXXg(rKos%yyDTNQh2dNAWYp}0?|_E%)f zE8Eab{ZBO9R#2ot!(*`agkaP$!e5DMFgOSxr&ZJlsAkixH|LVc1BEs2pu6y>va1|Y z+(W8;ShftKW?gti%Q=`)pbd= zzb0E=+pQP8UZR&MAbaR#5C4L5v#f@eD?wyQNzps>Rn&{YW@ZB7t-wM8trUAbY))5J z5T{iw2~hzBq!`l7@c2sgI?t-kiT@Mbb(hl}xGJ}& z{vb`_3ST&U z-=sZEGFnjTXsMR-1a7A~PPOY9e$o71!Z}dnOb*TOls3;r5^z#22wW@*|3z+Imp;$M zP`)uR-{Yy!D#xZTpC9x0=l0$KtI3lFPy=pNUkij2!X!d51Qvof8l3>J<7~4UFCoeO z1vfB~ui!yAMFcysQr5frH2jfk7lX#Q9OWia5gt|*ZS~UR78twlQn@h6$EV;|AaQK?W1q0D&jO-6D zKw1?EMFpN)M6n1Ljs*i@0Rp3$tPQ+yQw_G44kRT`B3=+wKX^t};PN9X34;^>jBJ^y}Y zKlBwv1JAR1PCjy3t-m5$uWXqx<++Gm=1mtzrT3pO?YJml?;{)111fpZd73}})@Z2^ zANx)S79Hk#J5& zN~*BMJQ~DMh~zuZbzs`_u<)(O?W5X3X&cQ|u#8F3cKp zm-18)b3&&;)|Xgb(mfVg2rVUI2@y;RKNGBQ@Y+$piJ2vtQ7+kWDaHljaeQ$O!J}k> zV;8r_g2q8I!f6k}#*OevpjnF#4ZNVSIDOSjVIhh}pcl-XL zk3O^2J#0~JN77?YZAYI$C}|m&&t8|uZ^$=%@=up#-)-3yR_i0OHG%_8%ajbWOx=`S zudDTb+3Nr1t9>9}#Am>78^-I|PnlYPmppCQcggdUU#s@}BQZV^7Qm0Ke*c|BAe`$V z?;i;3Ml(VFs@eU15);VTDEj@mYdpS`A#$-G*)d5($fXu1cqJQ!&S4tPei6R=At7Qv}1s;Zm1IjoUx!j4DgnsQ4Giq4 zw>P)5#9}bOjw${bT>KYQw!@oVS-<%3WZI-S+ElhTd%SzKt{#;g&K@6>*@lPV^nh}pU1bNeXD(#UTvg6o&77H2&dg=pH=kTjPkl7~>uJ?} zbN#~o)W%uG&Z+Fp&ug9QQ&|i?pS_uxT~uZlGqZ7JHlFd``ONvGGSfSu!q0n0W)E$g z+%zdoT`GGg`yF_am=~lHjLPS;e?Ad4`3WBIAi-q{z284Z_t|qTcrL3Wa0K!W2N~jorYO(y;W~B z&%+0NP2u{R?K=$B_BzznR4<~x`K$Mih{M3AeU8a}6@Tb9KvYu$R) S*A-Eko~Q4p{z(ypNcayuFUq9= diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ar_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ar_DZ/__init__.py deleted file mode 100644 index 6da746f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ar_DZ/__init__.py +++ /dev/null @@ -1,347 +0,0 @@ -from typing import Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - """Address provider for ar_DZ locale.""" - - # Source: https://ar.wikipedia.org/wiki/ولايات_الجزائر - wilayas: Tuple[str, ...] = ( - "أدرار", - "الشلف", - "الأغواط", - "أم البواقي", - "باتنة", - "بجاية", - "بسكرة", - "بشار", - "البليدة", - "البويرة", - "تمنراست", - "تبسة", - "تلمسان", - "تيارت", - "تيزي وزو", - "الجزائر", - "الجلفة", - "جيجل", - "سطيف", - "سعيدة", - "سكيكدة", - "سيدي بلعباس", - "عنابة", - "قالمة", - "قسنطينة", - "المدية", - "مستغانم", - "المسيلة", - "معسكر", - "ورقلة", - "وهران", - "البيض", - "إليزي", - "برج بوعريريج", - "بومرداس", - "الطارف", - "تندوف", - "تيسمسيلت", - "الوادي", - "خنشلة", - "سوق أهراس", - "تيبازة", - "ميلة", - "عين الدفلى", - "النعامة", - "عين تموشنت", - "غرداية", - "غليزان", - "تيميمون", - "برج باجي مختار", - "أولاد جلال", - "بني عباس", - "عين صالح", - "عين قزام", - "تقرت", - "جانت", - "المغير", - "المنيعة", - ) - - # Source: https://github.com/othmanus/algeria-cities - cities: Tuple[str, ...] = ( - # Wilaya 01 - أدرار - "أدرار", - "رقان", - "أولف", - "تيميمون", - # Wilaya 02 - الشلف - "الشلف", - "تنس", - "بوقادير", - # Wilaya 03 - الأغواط - "الأغواط", - "أفلو", - "عين ماضي", - # Wilaya 04 - أم البواقي - "أم البواقي", - "عين مليلة", - "عين البيضاء", - # Wilaya 05 - باتنة - "باتنة", - "بريكة", - "عين التوتة", - "أريس", - "نقاوس", - # Wilaya 06 - بجاية - "بجاية", - "أقبو", - "خراطة", - "تاكسلانت", - "أميزور", - # Wilaya 07 - بسكرة - "بسكرة", - "طولقة", - "سيدي عقبة", - "زريبة الوادي", - # Wilaya 08 - بشار - "بشار", - "تاغيت", - "القنادسة", - # Wilaya 09 - البليدة - "البليدة", - "بوفاريك", - "الأربعاء", - "بوعينان", - # Wilaya 10 - البويرة - "البويرة", - "سور الغزلان", - "عين بسام", - # Wilaya 11 - تمنراست - "تمنراست", - "أبلسة", - # Wilaya 12 - تبسة - "تبسة", - "بئر العاتر", - "الونزة", - # Wilaya 13 - تلمسان - "تلمسان", - "مغنية", - "الغزوات", - "ندرومة", - "مرسى بن مهيدي", - # Wilaya 14 - تيارت - "تيارت", - "السوقر", - "فرندة", - "تاقدمت", - # Wilaya 15 - تيزي وزو - "تيزي وزو", - "ذراع بن خدة", - "أزفون", - "بوغني", - "تيقزيرت", - # Wilaya 16 - الجزائر - "الجزائر الوسطى", - "باب الوادي", - "القصبة", - "سيدي امحمد", - "حسين داي", - "القبة", - "الحراش", - "الرويبة", - "زرالدة", - "بئر مراد رايس", - "بوزريعة", - "الشراقة", - "الدرارية", - "باب الزوار", - "برج الكيفان", - "الدار البيضاء", - "عين طاية", - # Wilaya 17 - الجلفة - "الجلفة", - "مسعد", - "عين وسارة", - "حاسي بحبح", - # Wilaya 18 - جيجل - "جيجل", - "الطاهير", - "الميلية", - "زيامة منصورية", - # Wilaya 19 - سطيف - "سطيف", - "العلمة", - "جميلة", - "عين أرنات", - "قجال", - # Wilaya 20 - سعيدة - "سعيدة", - "عين الحجر", - # Wilaya 21 - سكيكدة - "سكيكدة", - "عزابة", - "الحروش", - "القل", - # Wilaya 22 - سيدي بلعباس - "سيدي بلعباس", - "عين البرد", - "مرحوم", - "تلموني", - # Wilaya 23 - عنابة - "عنابة", - "البوني", - "عين الباردة", - "سيدي عمار", - # Wilaya 24 - قالمة - "قالمة", - "بومهرة أحمد", - "حمام النبايل", - # Wilaya 25 - قسنطينة - "قسنطينة", - "الخروب", - "ديدوش مراد", - "زيغود يوسف", - "عين عبيد", - # Wilaya 26 - المدية - "المدية", - "قصر البخاري", - "البرواقية", - "بوغار", - # Wilaya 27 - مستغانم - "مستغانم", - "سيدي علي", - "عين تادلس", - "مزغران", - # Wilaya 28 - المسيلة - "المسيلة", - "بوسعادة", - "سيدي عيسى", - "عين الملح", - # Wilaya 29 - معسكر - "معسكر", - "تيغنيف", - "بوحنيفية", - "سيق", - # Wilaya 30 - ورقلة - "ورقلة", - "حاسي مسعود", - "عين البيضاء", - # Wilaya 31 - وهران - "وهران", - "أرزيو", - "عين الترك", - "بئر الجير", - "مرسى الحجاج", - "السانية", - # Wilaya 32 - البيض - "البيض", - "بريزينة", - # Wilaya 33 - إليزي - "إيليزي", - "إن أمناس", - # Wilaya 34 - برج بوعريريج - "برج بوعريرج", - "رأس الوادي", - "ثنية النصر", - # Wilaya 35 - بومرداس - "بومرداس", - "خميس الخشنة", - "برج منايل", - "دلس", - # Wilaya 36 - الطارف - "الطارف", - "القالة", - "بن مهيدي", - # Wilaya 37 - تندوف - "تندوف", - # Wilaya 38 - تيسمسيلت - "تيسمسيلت", - "خميستي", - # Wilaya 39 - الوادي - "الوادي", - "قمار", - "حاسي خليفة", - "الرقيبة", - # Wilaya 40 - خنشلة - "خنشلة", - "بابار", - # Wilaya 41 - سوق أهراس - "سوق أهراس", - "مداوروش", - "سدراتة", - # Wilaya 42 - تيبازة - "تيبازة", - "شرشال", - "بواسماعيل", - "القليعة", - # Wilaya 43 - ميلة - "ميلة", - "فرجيوة", - "شلغوم العيد", - # Wilaya 44 - عين الدفلى - "عين الدفلى", - "خميس مليانة", - "العطاف", - "مليانة", - # Wilaya 45 - النعامة - "النعامة", - "المشرية", - "عين الصفراء", - # Wilaya 46 - عين تموشنت - "عين تموشنت", - "بني صاف", - "حمام بوحجر", - # Wilaya 47 - غرداية - "غرداية", - "القرارة", - "متليلي", - "العطف", - # Wilaya 48 - غليزان - "غليزان", - "مازونة", - "عمي موسى", - # New wilayas (49–58) - "تيميمون", - "برج باجي مختار", - "أولاد جلال", - "بني عباس", - "عين صالح", - "عين قزام", - "تقرت", - "جانت", - "المغير", - "المنيعة", - ) - - street_prefixes: Tuple[str, ...] = ("شارع", "نهج", "طريق", "حي", "زنقة", "دوار", "بلدية") - - building_number_formats: Tuple[str, ...] = ("#", "##", "###") - - # Source: https://github.com/othmanus/algeria-cities - postcode_formats: Tuple[str, ...] = tuple(f"{i:02d}###" for i in range(1, 49)) - - street_name_formats: Tuple[str, ...] = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{first_name}} {{last_name}}", - ) - - street_address_formats: Tuple[str, ...] = ("{{building_number}} {{street_name}}",) - - address_formats: Tuple[str, ...] = ( - "{{street_address}} {{city}}", - "{{street_address}} - {{city}}", - "{{street_address}} {{city}} {{wilaya}}", - "{{street_address}} {{city}} - {{wilaya}}", - ) - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes) - - def city(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.wilayas) - - wilaya = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ar_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ar_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 42e2001e4b08335016e08919af4aa299209db4ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6430 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/az_AZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/az_AZ/__init__.py deleted file mode 100644 index ec2e4de..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/az_AZ/__init__.py +++ /dev/null @@ -1,691 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{first_name}}",) - city_suffixes = ("şəhəri", "ş.") - street_suffixes = ("küçəsi", "küç.", "prospekti", "pr.") - village_suffixes = ("kəndi", "k.") - district_suffixes = ("rayonu", "ray.") - settlement_suffixes = ("qəsəbəsi", "qəs.") - - building_number_formats = ("#",) - house_number_formats = ("#", "##", "###") - address_formats = ( - "{{city}} {{city_suffix }}, {{street_name}} {{street_suffix}}, b. {{building_number}}, m. {{house_number}}", - "{{district}} {{district_suffix }}, {{street_name}} {{street_suffix}}, b. {{building_number}}," - " m. {{house_number}}", - "{{district}} {{district_suffix }}, {{village}} {{village_suffix}}, {{street_name}} {{street_suffix}}", - "{{district}} {{district_suffix }}, {{settlement}} {{settlement_suffix}}, {{street_name}} {{street_suffix}}," - " b. {{building_number}}, m. {{house_number}}", - ) - street_name_formats = ("{{street}}",) - cities = [ - "Bakı", - "Gəncə", - "Naxçıvan", - "Xankəndi", - "Lənkəran", - "Mingəçevir", - "Naftalan", - "Sumqayıt", - "Şəki", - "Şirvan", - "Yevlax", - ] - countries = [ - "Abxaziya", - "Akrotiri və Dekeliya", - "Aland adaları", - "Albaniya", - "Almaniya", - "Amerika Samoası", - "Andorra Knyazlığı", - "Angilya", - "Anqola", - "Antiqua və Barbuda", - "Argentina Respublikası", - "Aruba", - "Avstraliya", - "Avstriya", - "Azərbaycan", - "Baham adaları", - "Banqladeş", - "Barbados", - "Belçika", - "Beliz", - "Belarus", - "Benin", - "Bermud adaları", - "Birləşmiş Ərəb Əmirlikləri", - "ABŞ", - "Boliviya", - "Bolqarıstan", - "Bosniya və Herseqovina", - "Botsvana", - "Böyük Britaniya", - "Braziliya", - "Bruney", - "Burkina", - "Burundi", - "Butan", - "Bəhreyn", - "Cersi", - "Cəbəllütariq", - "Cənubi Afrika Respublikası", - "Cənubi Sudan", - "Cənubi Koreya", - "Cibuti", - "Çad", - "Çexiya", - "Monteneqro", - "Çili", - "Çin", - "Danimarka", - "Dominika", - "Dominikan", - "Efiopiya", - "Ekvador", - "Ekvatorial", - "Eritreya", - "Ermənistan", - "Estoniya", - "Əfqanıstan", - "Əlcəzair", - "Farer adaları", - "Fələstin", - "Fici", - "Fil Dişi Sahili", - "Filippin", - "Finlandiya", - "Folklend adaları", - "Fransa", - "Fransa Polineziyası", - "Gernsi", - "Gürcüstan", - "Haiti", - "Hindistan", - "Honduras", - "Honkonq", - "Xorvatiya", - "İndoneziya", - "İordaniya", - "İraq", - "İran", - "İrlandiya", - "İslandiya", - "İspaniya", - "İsrail", - "İsveç", - "İsveçrə", - "İtaliya", - "Kabo-Verde", - "Kamboca", - "Kamerun", - "Kanada", - "Kayman adaları", - "Keniya", - "Kipr", - "Kiribati", - "Kokos adaları", - "Kolumbiya", - "Komor adaları", - "Konqo Respublikası", - "Konqo Demokratik Respublikası", - "Kosovo", - "Kosta-Rika", - "Kuba", - "Kuk adaları", - "Küveyt", - "Qabon", - "Qambiya", - "Qana", - "Qətər", - "Qayana", - "Qazaxıstan", - "Qərbi Saxara", - "Qırğızıstan", - "Qrenada", - "Qrenlandiya", - "Quam", - "Qvatemala", - "Qvineya", - "Qvineya-Bisau", - "Laos", - "Latviya", - "Lesoto", - "Liberiya", - "Litva", - "Livan", - "Liviya", - "Lixtenşteyn", - "Lüksemburq", - "Macarıstan", - "Madaqaskar", - "Makao", - "Şimali Makedoniya", - "Malavi", - "Malayziya", - "Maldiv adaları", - "Mali", - "Malta", - "Marşall adaları", - "Mavriki", - "Mavritaniya", - "Mayotta", - "Meksika", - "Men adası", - "Mərakeş", - "Mərkəzi Afrika Respublikası", - "Mikroneziya", - "Milad adası", - "Misir", - "Myanma", - "Moldova", - "Monako", - "Monqolustan", - "Montserrat", - "Mozambik", - "Müqəddəs Yelena adası", - "Namibiya", - "Nauru", - "Nepal", - "Niderland", - "Niger", - "Nigeriya", - "Nikaraqua", - "Norveç", - "Oman", - "Özbəkistan", - "Pakistan", - "Palau", - "Panama", - "Papua", - "Paraqvay", - "Peru", - "Pitkern adaları", - "Polşa", - "Portuqaliya", - "Puerto-Riko", - "Ruanda", - "Rumıniya", - "Rusiya", - "Salvador", - "Samoa", - "San-Marino", - "San-Tome və Prinsipi", - "Seneqal", - "Sen-Bartelemi", - "Sent-Kits və Nevis", - "Sent-Lüsiya", - "Sen-Marten", - "Sen-Pyer və Mikelon", - "Sent-Vinsent və Qrenadin", - "Serbiya", - "Seyşel adaları", - "Səudiyyə Ərəbistanı", - "Sinqapur", - "Slovakiya", - "Sloveniya", - "Solomon adaları", - "Somali", - "Somalilend", - "Sudan", - "Surinam", - "Suriya", - "Esvatini", - "Syerra-Leone", - "Şərqi Timor", - "Şimali Kipr Türk Respublikası", - "Şimali Koreya", - "Şimali Marian adaları", - "Şri-Lanka", - "Tacikistan", - "Tanzaniya", - "Tailand", - "Tonqa", - "Toqo", - "Trinidad və Tobaqo", - "Tunis", - "Tuvalu", - "Türkiyə", - "Türkmənistan", - "Ukrayna", - "Uqanda", - "Uruqvay", - "Vanuatu", - "Vatikan", - "Venesuela", - "Vyetnam", - "Yamayka", - "Yaponiya", - "Yeni Kaledoniya", - "Yeni Zelandiya", - "Yəmən", - "Yunanıstan", - "Zambiya", - "Zimbabve", - ] - districts = [ - "Abşeron", - "Ağcabədi", - "Ağdam", - "Ağdaş", - "Ağstafa", - "Ağsu", - "Astara", - "Babək", - "Balakən", - "Beyləqan", - "Bərdə", - "Biləsuvar", - "Cəbrayıl", - "Cəlilabad", - "Culfa", - "Daşkəsən", - "Füzuli", - "Gədəbəy", - "Goranboy", - "Göyçay", - "Göygöl", - "Hacıqabul", - "Xaçmaz", - "Xızı", - "Xocalı", - "Xocavənd", - "İmişli", - "İsmayıllı", - "Kəlbəcər", - "Kəngərli", - "Kürdəmir", - "Qax", - "Qazax", - "Qəbələ", - "Qobustan", - "Quba", - "Qubadlı", - "Qusar", - "Laçın", - "Lerik", - "Lənkəran", - "Masallı", - "Neftçala", - "Oğuz", - "Ordubad*", - "Saatlı", - "Sabirabad", - "Salyan", - "Samux", - "Sədərək", - "Siyəzən", - "Şabran", - "Şahbuz", - "Şamaxı", - "Şəki", - "Şəmkir", - "Şərur", - "Şuşa", - "Tərtər", - "Tovuz", - "Ucar", - "Yardımlı", - "Yevlax", - "Zaqatala", - "Zəngilan", - "Zərdab", - ] - settlements = [ - "Ləki", - "Nehrəm", - "Soyuqbulaq", - "Şəkərli", - "Cəhri", - "Qarayazi", - "Həzi asalanov", - "Poylu", - "Ceyrançöl", - "Saloğlu", - "Vurğun", - "Qəhramanli", - "Yuxari aran", - "Mayak", - "Milabad", - "Örənqala", - "Baharabad", - "Günəş", - "Orconikidze", - "Digah", - "Güzdək", - "Hökməli", - "Qobu", - "Mehdiabad", - "Saray", - "Taxtakörpü", - "Hindarx", - "Şərq", - "Sarisu", - "Mil", - "Türklər", - "Bahar", - "Babək", - "Keşlə", - "Qabaqçöl", - "Xindiristan", - "Bənövşələr", - "Birinci alibəyli", - "Birinci baharli", - "Birinci dördyol", - "Birinci quzanli", - "İkinci alibəyli", - "İkinci baharli", - "İkinci dördyol", - "İmamqulubəyli", - "Qasimbəyli", - "Səfərli", - "Təzəkənd", - "Ergi", - "Yeni ergi", - "Aşaği qəsil kəndi", - "Orta qəsil kəndi", - "Türyançay", - "Yuxari qəsil kəndi", - "Birinci zobucuq", - "İkinci zobucuq", - "Üçüncü zobucuq", - "Dördüncü zobucuq", - "Beşinci zobucuq", - "Fin", - "Horadiz", - "Qayidiş 2", - "Hacikənd", - "Yuxari ağcakənd", - "Qizilhacili", - "Goran", - "Aşaği ağcakənd", - "Qazanbulaq", - "Kürəkçay", - "Ayaq qərvənd", - "Quzanli", - "Navahi", - "Pirsaat", - "Muğan", - "Padar", - "Navahi", - "Vətəgə", - "Bəhrəmtəpə", - "Lahic", - "Basqal", - "Şəfəq", - "Yeni mil", - "Xocahəsən", - "Sulutəpə", - "Biləcəri", - "Binəqədi", - "28 may", - "Rəsulzadə", - "Qumlaq", - "Xələfli", - "Xudafərin", - "Mahmudlu", - "Novoqolovka", - "Alunitdağ", - "Quşçu körpüsü", - "Daşkəsən", - "Quşçu", - "Yuxari daşkəsən", - "1 nömrəli qayidiş", - "2 nömrəli qayidiş", - ] - streets = [ - "A.AĞAYEV", - "A.M.CÜMƏ", - "TƏBRİZ", - "XALİQ ABBASOV", - "İSLAM ABIŞOV", - "HEYDƏR ƏLİYEV", - "XƏTAİ", - "GÖL ƏTRAFI", - "Z.XƏLİL", - "2-Cİ SÜLH", - "Q.PİRİMOV", - "ASİF MƏMMƏDOV", - "R.HACIYEV", - "FƏXRƏDDİN ƏSƏDOV", - "K.MARKS", - "OKTAY KƏRİMOV", - "Z.KAZIMZADƏ", - "HƏSƏNOĞLU", - "KAVEROÇKİN", - "P.ÇAYKOVSKİ", - "HÜSEYN ARİF", - "HACI MURAD", - "BAKI-BATUMİ", - "NEMƏT QULİYEV", - "R.AXUNDOV", - "AKAD.H.ƏLİYEV", - "RƏHİM ŞIXƏLİYEV", - "YUSİFZADƏ", - "E.QOCAYEV", - "TARZƏN H.MƏMMƏDOV", - "İ.HİDAYƏTZADƏ", - "T.ƏLİYEV", - "MƏMMƏD ARAZ", - "V.PLOTNİKOV", - "Ə.ORUCƏLİYEV", - "Z.BÜNYADOV", - "İ.DADAŞOV", - "ƏLƏSGƏR QAYIBOV", - "M.ARİF", - "M.QASQAY", - "Ə.ƏBDÜLRƏHİMOV", - "İZZƏT HƏMİDOV", - "AZADLIQ", - "ARİF HEYDƏROV", - "N.SÜLEYMANOV", - "ŞAHİN MUSTAFAYEV", - "Ə.VAHİD", - "Ü.BÜNYADZADƏ", - "NAZİM HACIYEV", - "24-CÜ KORPÜ", - "1-Cİ MƏDƏN", - "Y.HÜSEYNOV", - "22-Cİ DAĞLIQ", - "SÜD FERMASI", - "ÇAPAYEV", - "E. NƏCƏFOV", - "FAİQ RÜSTƏMOV", - "28 MAY", - "ZABİTLƏR EVİ", - "S.S. AXUNDOV", - "GƏNCLƏR DOSTLUĞU", - "H.SULTANOV", - "ƏHMƏD QASIMOV", - "XURŞUD AĞAYEV", - "NATƏVAN", - "YENİ MASSİV", - "MƏLİK ASLANOV KÜÇƏSİ,", - "VİDADİ", - "8 MART", - "İ.HACIYEV", - "Y. HƏSƏNOV", - ] - villages = [ - "Kələki", - "Binələr", - "Davudlu", - "Birinci aral", - "İkinci aral", - "Cardam", - "Qaradeyin", - "Qarağan şixlar", - "Qarağan sədi", - "Qəribli", - "Qolqəti", - "Mürsəl", - "Şordəhnə", - "Tofiqi", - "Yenicə", - "Ərəbocaği", - "Hapitli", - "Ovçulu", - "Şəkili", - "Yuxari ağcayazi", - "Aşaği ağcayazi", - "Yuxari ləki", - "Düzqişlaq", - "Kolayir", - "Koçvəlili", - "Xətai", - "Yenigün", - "Qaçaq kərəm", - "Poylu", - "Tatli", - "Yaradullu", - "Xilxina", - "Mollacəfərli", - "Ağgöl", - "Aşaği göycəli", - "Aşaği kəsəmən", - "Böyük kəsik", - "Dağ kəsəmən", - "Eynalli", - "Göycəli", - "Həsənsu", - "Kolxələfli", - "Koçəsgər", - "Köhnəqişlaq", - "Qarahəsənli", - "Soyuqbulaqlar", - "Qiraq kəsəmən", - "Didivar", - "Muğanli", - "Pirili", - "Sadiqli", - "Uzunoba", - "Qaraməmmədli", - "Navahi", - "Ülgüc", - "Ərəbmehdibəy", - "Dədəli", - "Qasimbəyli", - "Ərəbsarvan", - "Haciqədirli", - "Göydəlləkli", - "Ərəbuşaği", - "Ağalarbəyli", - "Maşadqanli", - "Aratli curuğlu", - "Keşdiməz", - "Bozavand", - "Ağarx", - "Qarabağli", - "Xanbulaq", - "Kəndaxan", - "Yenilik", - "Kövlüc", - "Elabad", - "Yenikənd", - "Hingar", - "Girdə", - "Gursulu", - "Qaraqoyunlu", - "Musabəyli", - "İlxiçi", - "Hacisəmədli", - "Qəşəd", - "Kəndoba", - "Cəfərli", - "Haciuşaği", - "Cəlayir", - "Abasxanli", - "Kalva", - "Suraxani", - "Dilman", - "Haciman", - "Xatman", - "Növcü", - "Axundlu", - "Məlikçobanli", - ] - - def house_number(self) -> str: - """ - :example: 'm. 49' - """ - return self.numerify(self.random_element(self.house_number_formats)) - - def city(self) -> str: - """ - :example: 'Xankəndi' - """ - return self.random_element(self.cities) - - def city_suffix(self) -> str: - """ - :example: 'ş.' - """ - return self.random_element(self.city_suffixes) - - def street(self) -> str: - """ - :example: 'A.AĞAYEV' - """ - return self.random_element(self.streets) - - def street_suffix(self) -> str: - """ - :example: 'küç.' - """ - return self.random_element(self.street_suffixes) - - def village(self) -> str: - """ - :example: 'Didivar' - """ - return self.random_element(self.villages) - - def village_suffix(self) -> str: - """ - :example: 'k.' - """ - return self.random_element(self.village_suffixes) - - def district(self) -> str: - """ - :example: 'Babək' - """ - return self.random_element(self.districts) - - def district_suffix(self) -> str: - """ - :example: 'r.' - """ - return self.random_element(self.district_suffixes) - - def settlement(self) -> str: - """ - :example: 'Horadiz' - """ - return self.random_element(self.settlements) - - def settlement_suffix(self) -> str: - """ - :example: 'qəs.' - """ - return self.random_element(self.settlement_suffixes) - - def administrative_unit(self) -> str: - """ - :example: 'Xankəndi' - """ - return self.random_element(self.districts + self.cities) - - def postcode(self) -> str: - """ - :example: 'AZ1027' - """ - index = self.generator.random.randint(900, 6600) - return "AZ%04d" % index if index > 999 else "AZ0%03d" % index - - def postalcode(self) -> str: - return self.postcode() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/az_AZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/az_AZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0c18ae65ce3f23298d7d68ed67a1a13929947b1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13129 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/bn_BD/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/bn_BD/__init__.py deleted file mode 100644 index 0aa5191..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/bn_BD/__init__.py +++ /dev/null @@ -1,547 +0,0 @@ -from faker.providers.person.bn_BD import translate_to_bengali_digits - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - area_names = ( - "আলি", - "আলম", - "অভয়", - "আনোয়ার", - "ব্রাহ্মণ", - "বটিয়া", - "বাঘার", - "বেগম", - "বিজয়", - "বন্দর", - "বালিয়া", - "বাজিত", - "বাকের", - "বোরহান", - "বকশী", - "বদর", - "বিরাম", - "বিশ্বনাথ", - "চৌদ্দ", - "চিতল", - "দাউদ", - "দৌলত", - "দেব", - "দেবী", - "ইসলাম", - "ফুল", - "ফকির", - "ফটিক", - "গোপাল", - "গৌর", - "হাজী", - "হরিরাম", - "হোসেন", - "হাকিম", - "জীবন", - "জগন্নাথ", - "কুমার", - "কালী", - "কেশব", - "কুতুব", - "কবির", - "কালিয়া", - "করিম", - "কাজী", - "কমল", - "লাল", - "মুরাদ", - "মনোহর", - "মির", - "মহেশ", - "মোড়ল", - "মোল্লা", - "মোহাম্মদ", - "মনিরাম", - "মানিক", - "মির্জা", - "মধু", - "মোহন", - "মহাদেব", - "মাধব", - "নাসির", - "নড়িয়া", - "নাজির", - "নালিতা", - "নন্দী", - "ওসমানী", - "পাইক", - "পলাশ", - "পার্বতী", - "রাম", - "রায়", - "রানী", - "সোনা", - "শরণ", - "শ্যাম", - "সুবর্ণ", - "সিরাজ", - "সখি", - "সদর", - "সুন্দর", - "সৈয়দ", - "শাজাহান", - "শান্তি", - "শিব", - "তের", - "তারা", - "উজির", - ) - - building_names = ( - "বাড়ী নং", - "বিল্ডিং নং", - "বাসা নং", - "হোল্ডিং নং", - ) - - building_number_formats = ("%", "%#", "%##") - - city_prefixes = ("উত্তর", "পূর্ব", "পশ্চিম", "দক্ষিণ", "মধ্য", "নতুন", "পুরাতন") - - city_suffixes = ( - "বাজার", - "বাড়ি", - "চর", - "দিয়া", - "ডাঙ্গা", - "গঞ্জ", - "গ্রাম", - "গাঁও", - "গাঁ", - "গড়", - "হাট", - "হার", - "খালি", - "মাটি", - "নগর", - "পুর", - "তলা", - ) - - cities = ( - "বরগুনা", - "বরিশাল", - "ভোলা", - "বান্দরবান", - "ব্রাহ্মণবাড়িয়া", - "বাগেরহাট", - "বগুড়া", - "চাঁদপুর", - "চট্টগ্রাম", - "কুমিল্লা", - "কক্সবাজার", - "চুয়াডাঙ্গা", - "ঢাকা", - "দিনাজপুর", - "ফরিদপুর", - "ফেনী", - "গাজীপুর", - "গোপালগঞ্জ", - "গাইবান্ধা", - "হবিগঞ্জ", - "ঝালকাঠি", - "যশোর", - "ঝিনাইদহ", - "জামালপুর", - "জয়পুরহাট", - "খাগড়াছড়ি", - "কিশোরগঞ্জ", - "খুলনা", - "কুষ্টিয়া", - "কুড়িগ্রাম", - "লক্ষ্মীপুর", - "লালমনিরহাট", - "মাদারীপুর", - "মানিকগঞ্জ", - "মুন্সীগঞ্জ", - "মাগুরা", - "মেহেরপুর", - "ময়মনসিংহ", - "মৌলভীবাজার", - "নোয়াখালী", - "নারায়ণগঞ্জ", - "নরসিংদী", - "নড়াইল", - "নেত্রকোণা", - "নওগাঁ", - "নাটোর", - "চাঁপাইনবাবগঞ্জ", - "নীলফামারী", - "পটুয়াখালী", - "পিরোজপুর", - "পাবনা", - "পঞ্চগড়", - "রাঙ্গামাটি", - "রাজবাড়ী", - "রাজশাহী", - "রংপুর", - "শরীয়তপুর", - "সাতক্ষীরা", - "শেরপুর", - "সিরাজগঞ্জ", - "সুনামগঞ্জ", - "সিলেট", - "টাঙ্গাইল", - "ঠাকুরগাঁও", - ) - - countries = ( - "আফগানিস্তান", - "আলবেনিয়া", - "আলজেরিয়া", - "আমেরিকান সামোয়া", - "অ্যান্ডোরা", - "অ্যাঙ্গোলা", - "অ্যাঙ্গুইলা", - "অ্যান্টার্কটিকা", - "অ্যান্টিগুয়া ও বার্বুডা", - "আর্জেন্টিনা", - "আর্মেনিয়া", - "আরুবা", - "অস্ট্রেলিয়া", - "অস্ট্রিয়া", - "আজারবাইজান", - "বাহামাস", - "বাহরাইন", - "বাংলাদেশ", - "বার্বাডোস", - "বেলারুশ", - "বেলজিয়াম", - "বেলিজ", - "বেনিন", - "বারমুডা", - "ভুটান", - "বলিভিয়া", - "বসনিয়া-হার্জেগোভিনা", - "বতসোয়ানা", - "বাউবে দ্বীপ", - "ব্রাজিল", - "ব্রিটিশ ভারত মহাসাগরীয় অঞ্চল", - "ব্রিটিশ ভার্জিন দ্বীপপুঞ্জ", - "ব্রুনাই", - "বুলগেরিয়া", - "বুর্কিনা ফাসো", - "বুরুন্ডি", - "কম্বোডিয়া", - "ক্যামেরুন", - "কানাডা", - "কেপ ভার্দে", - "কেম্যান দ্বীপপুঞ্জ", - "মধ্য আফ্রিকান প্রজাতন্ত্র", - "চাদ", - "চিলি", - "চীন", - "ক্রিস্টমাস দ্বীপ", - "কোকোস দ্বীপপুঞ্জ", - "কলাম্বিয়া", - "কোমোরোস", - "কঙ্গো প্রজাতন্ত্র", - "কুক দ্বীপপুঞ্জ", - "কোস্টারিকা", - "আইভরি কোট", - "ক্রোয়েশিয়া", - "কিউবা", - "সাইপ্রাস প্রজাতন্ত্র", - "চেক প্রজাতন্ত্র", - "ডেনমার্ক", - "জিবুতি প্রজাতন্ত্র", - "ডোমিনিকা", - "ডোমিনিকান প্রজাতন্ত্র", - "ইকুয়েডর", - "মিশর", - "এল সালভাদর", - "নিরক্ষীয় গিনি", - "ইরিত্রিয়া", - "এস্তোনিয়া", - "ইথিওপিয়া", - "ফারো দ্বীপপুঞ্জ", - "ফকল্যান্ড দ্বীপপুঞ্জ", - "ফিজি প্রজাতন্ত্র", - "ফিনল্যান্ড", - "ফ্রান্স", - "একটি দেশের নাম", - "ফরাসি পলিনেশিয়া", - "ফরাসি সুদূর দক্ষিণ দ্বীপপুঞ্জ", - "গ্যাবন", - "গাম্বিয়া", - "জর্জিয়া", - "জার্মানি", - "ঘানা", - "জিব্রাল্টার", - "গ্রীস", - "গ্রিনল্যান্ড", - "গ্রেনাডা", - "গুয়াডেলুপ", - "গুয়াম", - "গুয়াতেমালা", - "গার্নসি", - "গিনি", - "গিনি-বিসাউ", - "গিয়ানা", - "হাইতি", - "হার্ড আইল্যান্ড এবং ম্যাকডোনাল্ড দ্বীপপুঞ্জ", - "ভ্যাটিকান সিটি", - "হন্ডুরাস", - "হংকং", - "হাঙ্গেরি", - "আইসল্যান্ড", - "ভারত", - "ইন্দোনেশিয়া", - "ইরান", - "ইরাক", - "আপনি উত্তর দিবেন না", - "আইল অফ ম্যান", - "ইসরায়েল", - "ইতালি", - "জ্যামাইকা", - "জাপান", - "জার্সি", - "জর্ডান", - "কাজাখস্তান", - "কেনিয়া", - "কিরিবাতি", - "কোরিয়া", - "কোরিয়া", - "কুয়েত", - "কিরগিজস্তান প্রজাতন্ত্র", - "পিপলস ডেমোক্রেটিক রিপাবলিক অফ লাওস", - "লাটভিয়া", - "লেবানন", - "লেসোথো", - "লাইবেরিয়া", - "লিবিয়া", - "লিচেনস্টাইন", - "লিথুয়ানিয়া", - "লাক্সেমবার্গ", - "ম্যাকাও", - "উত্তর মেসিডোনিয়া প্রজাতন্ত্র", - "মাদাগাস্কার", - "মালাউই", - "মালয়েশিয়া", - "মালদ্বীপ", - "মালি", - "মাল্টা প্রজাতন্ত্র", - "মার্শাল দ্বীপপুঞ্জ", - "মার্টিনিক", - "ইসলামী প্রজাতন্ত্র মৌরিতানিয়া", - "মরিশাস", - "মায়োট", - "মেক্সিকো", - "মাইক্রোনেশিয়ার ফেডারেটেড স্টেটস", - "মোল্দোভা প্রজাতন্ত্র", - "মোনাকোর রাজত্ব", - "মঙ্গোলিয়া", - "মন্টিনিগ্রো প্রজাতন্ত্র", - "মন্টসেরাট", - "মরক্কো", - "মোজাম্বিক", - "মিয়ানমার", - "নামিবিয়া", - "নাউরু", - "নেপাল", - "নেদারল্যান্ডস এন্টিলস", - "নেদারল্যান্ডস", - "নতুন ক্যালেডোনিয়া", - "নিউজিল্যান্ড", - "নিকারাগুয়া", - "নাইজার", - "নাইজেরিয়া", - "সুন্দর", - "নরফোক দ্বীপ", - "উত্তর মারিয়ানা দ্বীপপুঞ্জ", - "নরওয়ে", - "ওমান", - "পাকিস্তান", - "পালাউ", - "ফিলিস্তিন অঞ্চল", - "পানামা", - "পাপুয়া নিউ গিনি", - "প্যারাগুয়ে", - "পেরু", - "ফিলিপাইন", - "পিটকের্ন দ্বীপপুঞ্জ", - "পোল্যান্ড", - "পর্তুগাল", - "পুয়ের্তো রিকো", - "কাতার", - "পুনর্মিলন", - "রোমানিয়া", - "রাশিয়া", - "রুয়ান্ডা", - "সেন্ট বার্থেলেমি", - "সেন্ট হেলেনা", - "সেন্ট কিটস ও নেভিস", - "সেন্ট লুসিয়া", - "সেন্ট মার্টিন", - "সেন্ট পিয়ের এবং মিকেলন", - "সেন্ট ভিনসেন্ট ও গ্রেনাডাইন দ্বীপপুঞ্জ", - "সামোয়া", - "সান মারিনো", - "স্যান্টোম প্রিন্সিপ", - "সৌদি আরব", - "সেনেগাল", - "সার্বিয়া", - "সেশেলস", - "সিয়েরা লিওন", - "সিঙ্গাপুর", - "স্লোভাকিয়া", - "স্লোভেনিয়া", - "সলোমান দ্বীপপুঞ্জ", - "সোমালিয়া", - "দক্ষিণ আফ্রিকা প্রজাতন্ত্র", - "দক্ষিণ জর্জিয়া এবং দক্ষিণ স্যান্ডউইচ দ্বীপপুঞ্জ", - "স্পেন", - "শ্রীলংকা", - "সুদান", - "সুরিনাম", - "স্বালবার্ড এবং জানমায়েন দ্বীপপুঞ্জ", - "সোয়াজিল্যান্ডের রাজ্য", - "সুইডেন", - "সুইজারল্যান্ড", - "সিরিয়া", - "তাইওয়ান", - "তাজিকিস্তান প্রজাতন্ত্র", - "তানজানিয়া", - "থাইল্যান্ড", - "পূর্ব তিমুর", - "যাও", - "টোকেলাউ", - "টোঙ্গা", - "ত্রিনিদাদ ও টোবাগো প্রজাতন্ত্র", - "তিউনিসিয়া", - "তুরস্ক", - "তুর্কমেনিস্তান", - "টার্কস্ ও কেইকোস দ্বীপপুঞ্জ", - "টুভালু", - "উগান্ডা", - "ইউক্রেন", - "সংযুক্ত আরব আমিরাত", - "ইংল্যান্ড", - "মার্কিন যুক্তরাষ্ট্র", - "ইউএস মাইনর আউটলি আইল্যান্ড", - "আমেরিকান ভার্জিন আইল্যান্ডস", - "উরুগুয়ে", - "উজবেকিস্তান", - "ভানুয়াতু", - "ভেনিজুয়েলা", - "ভিয়েতনাম", - "ওয়ালিস এবং ফুটুনা", - "পশ্চিম সাহারা", - "ইয়েমেন", - "জাম্বিয়া", - "জিম্বাবুয়ে", - ) - - secondary_address_formats = ( - "ফ্ল্যাট %", - "ফ্ল্যাট %#", - "ষ্টুডিও %", - "ষ্টুডিও %#", - "অ্যাপার্টমেন্ট %", - "অ্যাপার্টমেন্ট %#", - ) - - street_suffixes = ( - "এভিনিউ", - "সেন্টার", - "চত্বর", - "গলি", - "ঘাট", - "কর্নার", - "লেন", - "মহাসড়ক", - "মহল্লা", - "মোড়", - "পাড়া", - "পার্ক", - "প্লাজা", - "রাস্তা", - "রোড", - "সড়ক", - "স্টেশন", - "স্ট্যান্ড", - ) - - postcode_formats = ("%###",) - street_name_formats = ( - "{{area_name}}{{street_suffix}}", - "{{city_prefix}} {{area_name}}{{street_suffix}}", - "{{city_prefix}} {{area_name}}{{city_suffix}}", - "{{area_name}}{{city_suffix}}", - "{{area_name}}{{city_suffix}} {{street_suffix}}", - "{{city_prefix}} {{area_name}}{{city_suffix}} {{street_suffix}}", - ) - street_address_formats = ( - "{{building_name}} {{building_number}}, {{street_name}}", - "{{secondary_address}}, {{building_name}} {{building_number}}, {{street_name}}", - ) - town_formats = ("{{area_name}}{{city_suffix}}",) - address_formats = ("{{street_address}}, {{town}}, {{city}}, {{postcode}}",) - - def administrative_unit(self) -> str: - """ - :example: 'ঢাকা' - """ - return self.random_element(self.cities) - - def area_name(self) -> str: - """ - :example: 'উজির' - """ - return self.random_element(self.area_names) - - def building_name(self) -> str: - """ - :example: 'বাড়ী নং' - """ - return self.random_element(self.building_names) - - def building_number(self) -> str: - """ - :example: '791' to '৭৯১' - """ - return translate_to_bengali_digits(self.numerify(self.random_element(self.building_number_formats))) - - def city_prefix(self) -> str: - """ - :example: 'উত্তর' - """ - return self.random_element(self.city_prefixes) - - def city(self) -> str: - """ - :example: 'ঢাকা' - """ - return self.random_element(self.cities) - - def postcode(self) -> str: - """ - See - https://bdpost.portal.gov.bd/site/page/6aaeabe4-479b-4e5a-a671-e9e5b994bf9a - """ - return translate_to_bengali_digits(self.numerify(self.random_element(self.postcode_formats))) - - def secondary_address(self) -> str: - """ - As the generated string format is a Bengali word but English number so splitting the value by space - and then convert the English number to Bengali number and concat with generated Bengali word - and return - : example : 'অ্যাপার্টমেন্ট 14' to 'অ্যাপার্টমেন্ট ১৪' - """ - value = self.bothify(self.random_element(self.secondary_address_formats)) - word_list = value.split(" ") - return word_list[0] + " " + translate_to_bengali_digits(word_list[1]) - - def town(self) -> str: - """ - :example: 'নবাব' - """ - pattern: str = self.random_element(self.town_formats) - return self.generator.parse(pattern) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 512646da9c671d49e464726987a0aaefb4dc88de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18723 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/cs_CZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/cs_CZ/__init__.py deleted file mode 100644 index 5b7722c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/cs_CZ/__init__.py +++ /dev/null @@ -1,1202 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - - street_name_formats = ("{{street_name}}",) - street_address_formats = ("{{street_name}} {{building_number}}",) - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - building_number_formats = ("%", "%#", "%##") - - street_suffixes_long = ("ulice", "třída", "nábřeží", "náměstí") - street_suffixes_short = ("ul.", "tř.", "nábř.", "nám.") - - postcode_formats = ( - "1## ##", - "2## ##", - "3## ##", - "4## ##", - "5## ##", - "6## ##", - "7## ##", - ) - - cities = ( - "Abertamy", - "Adamov", - "Andělská Hora", - "Bakov nad Jizerou", - "Bavorov", - "Bechyně", - "Benešov nad Ploučnicí", - "Benátky nad Jizerou", - "Bezdružice", - "Bečov nad Teplou", - "Blatná", - "Blovice", - "Blšany", - "Bochov", - "Bohušovice nad Ohří", - "Bojkovice", - "Bor", - "Borohrádek", - "Borovany", - "Boží Dar", - "Brandýs nad Orlicí", - "Brno", - "Broumov", - "Brtnice", - "Brumov-Bylnice", - "Brušperk", - "Budišov nad Budišovkou", - "Budyně nad Ohří", - "Bučovice", - "Buštěhrad", - "Bystré", - "Bystřice", - "Bystřice nad Pernštejnem", - "Bystřice pod Hostýnem", - "Bzenec", - "Bílovec", - "Bělá nad Radbuzou", - "Bělá pod Bezdězem", - "Březnice", - "Březová", - "Březová nad Svitavou", - "Břidličná", - "Chabařovice", - "Chlumec", - "Chlumec nad Cidlinou", - "Choceň", - "Chomutov", - "Chotěboř", - "Chrast", - "Chrastava", - "Chropyně", - "Chvaletice", - "Chyše", - "Chýnov", - "Chřibská", - "Cvikov", - "Dačice", - "Dašice", - "Desná", - "Deštná", - "Dobrovice", - "Dobruška", - "Dobřany", - "Dobřichovice", - "Dobříš", - "Doksy", - "Dolní Benešov", - "Dolní Bousov", - "Dolní Kounice", - "Dolní Poustevna", - "Dubá", - "Dubí", - "Dubňany", - "Duchcov", - "Děčín", - "Františkovy Lázně", - "Fryšták", - "Frýdek-Místek", - "Frýdlant", - "Frýdlant nad Ostravicí", - "Fulnek", - "Golčův Jeníkov", - "Habartov", - "Habry", - "Hanušovice", - "Harrachov", - "Hartmanice", - "Havířov", - "Hejnice", - "Heřmanův Městec", - "Hlinsko", - "Hluboká nad Vltavou", - "Hluk", - "Hodkovice nad Mohelkou", - "Holice", - "Holýšov", - "Hora Svaté Kateřiny", - "Horažďovice", - "Horní Benešov", - "Horní Blatná", - "Horní Bříza", - "Horní Cerekev", - "Horní Jelení", - "Horní Jiřetín", - "Horní Planá", - "Horní Slavkov", - "Horšovský Týn", - "Hostinné", - "Hostivice", - "Hostomice", - "Hostouň", - "Hořice", - "Hořovice", - "Hoštka", - "Hradec Králové", - "Hradec nad Moravicí", - "Hranice (okres Cheb)", - "Hrob", - "Hrochův Týnec", - "Hronov", - "Hrotovice", - "Hroznětín", - "Hrušovany nad Jevišovkou", - "Hrádek", - "Hrádek nad Nisou", - "Hulín", - "Husinec", - "Hustopeče", - "Ivanovice na Hané", - "Ivančice", - "Jablonec nad Jizerou", - "Jablonec nad Nisou", - "Jablonné nad Orlicí", - "Jablonné v Podještědí", - "Jablunkov", - "Janov", - "Janovice nad Úhlavou", - "Janské Lázně", - "Jaroměřice nad Rokytnou", - "Javorník", - "Jemnice", - "Jesenice (okres Rakovník)", - "Jevišovice", - "Jevíčko", - "Jihlava", - "Jilemnice", - "Jistebnice", - "Jiříkov", - "Jáchymov", - "Jílové", - "Jílové u Prahy", - "Kamenice nad Lipou", - "Kamenický Šenov", - "Kaplice", - "Kardašova Řečice", - "Karlovy Vary", - "Karolinka", - "Karviná", - "Kasejovice", - "Kaznějov", - "Kašperské Hory", - "Kdyně", - "Kelč", - "Kladno", - "Kladruby", - "Klecany", - "Klimkovice", - "Klobouky u Brna", - "Kojetín", - "Konice", - "Kopidlno", - "Koryčany", - "Kosmonosy", - "Kostelec na Hané", - "Kostelec nad Labem", - "Kostelec nad Orlicí", - "Kostelec nad Černými lesy", - "Kouřim", - "Košťany", - "Kožlany", - "Kralovice", - "Kraslice", - "Kravaře", - "Kryry", - "Králíky", - "Králův Dvůr", - "Krásno", - "Krásná Hora nad Vltavou", - "Krásná Lípa", - "Krásné Údolí", - "Kunovice", - "Kunštát", - "Kynšperk nad Ohří", - "Lanžhot", - "Ledeč nad Sázavou", - "Ledvice", - "Letohrad", - "Letovice", - "Liberec", - "Libochovice", - "Libušín", - "Libáň", - "Libčice nad Vltavou", - "Liběchov", - "Lipník nad Bečvou", - "Litovel", - "Lišov", - "Loket", - "Lom", - "Lomnice nad Lužnicí", - "Lomnice nad Popelkou", - "Loučná pod Klínovcem", - "Lovosice", - "Loštice", - "Luby", - "Luhačovice", - "Lučany nad Nisou", - "Luže", - "Lysá nad Labem", - "Lázně Bohdaneč", - "Lázně Bělohrad", - "Lázně Kynžvart", - "Manětín", - "Mašťov", - "Meziboří", - "Meziměstí", - "Mikulov", - "Mikulášovice", - "Miletín", - "Milevsko", - "Milovice", - "Mimoň", - "Miroslav", - "Mirotice", - "Mirovice", - "Mirošov", - "Mladá Boleslav", - "Mladá Vožice", - "Mnichovice", - "Mnichovo Hradiště", - "Mníšek pod Brdy", - "Modřice", - "Mohelnice", - "Moravské Budějovice", - "Moravský Beroun", - "Moravský Krumlov", - "Morkovice-Slížany", - "Most", - "Mýto", - "Městec Králové", - "Město Albrechtice", - "Město Touškov", - "Měčín", - "Mšeno", - "Nalžovské Hory", - "Napajedla", - "Nasavrky", - "Nechanice", - "Nejdek", - "Nepomuk", - "Netolice", - "Neveklov", - "Nová Bystřice", - "Nová Paka", - "Nová Role", - "Nová Včelnice", - "Nové Hrady", - "Nové Město nad Metují", - "Nové Město pod Smrkem", - "Nové Sedlo", - "Nové Strašecí", - "Nový Bydžov", - "Nový Knín", - "Náměšť nad Oslavou", - "Nýrsko", - "Nýřany", - "Němčice nad Hanou", - "Odolena Voda", - "Odry", - "Olešnice", - "Olomouc", - "Oloví", - "Opava", - "Opočno", - "Osek", - "Osečná", - "Oslavany", - "Ostrava", - "Pacov", - "Pardubice", - "Paskov", - "Pec pod Sněžkou", - "Petřvald", - "Pečky", - "Pilníkov", - "Planá", - "Planá nad Lužnicí", - "Plasy", - "Plesná", - "Plumlov", - "Plzeň", - "Plánice", - "Poběžovice", - "Podbořany", - "Podivín", - "Pohořelice", - "Police nad Metují", - "Polička", - "Polná", - "Postoloprty", - "Potštát", - "Počátky", - "Praha", - "Proseč", - "Prostějov", - "Protivín", - "Pyšely", - "Přebuz", - "Přelouč", - "Přerov", - "Přeštice", - "Přibyslav", - "Přimda", - "Příbor", - "Rabí", - "Radnice", - "Rajhrad", - "Ralsko", - "Raspenava", - "Rejštejn", - "Rokytnice nad Jizerou", - "Rokytnice v Orlických horách", - "Ronov nad Doubravou", - "Rosice", - "Rotava", - "Rousínov", - "Rovensko pod Troskami", - "Roztoky", - "Rožmberk nad Vltavou", - "Rožmitál pod Třemšínem", - "Rožďalovice", - "Rtyně v Podkrkonoší", - "Rudná", - "Rudolfov", - "Rychnov u Jablonce nad Nisou", - "Rychvald", - "Rájec-Jestřebí", - "Rýmařov", - "Sadská", - "Sedlec-Prčice", - "Sedlice", - "Sedlčany", - "Semily", - "Sezemice", - "Sezimovo Ústí", - "Seč", - "Skalná", - "Skuteč", - "Slatiňany", - "Slavičín", - "Slavkov u Brna", - "Slavonice", - "Slušovice", - "Smečno", - "Smiřice", - "Smržovka", - "Sobotka", - "Soběslav", - "Solnice", - "Spálené Poříčí", - "Staré Město (okres Uherské Hradiště)", - "Staré Město (okres Šumperk)", - "Starý Plzenec", - "Staňkov", - "Stochov", - "Stod", - "Strmilov", - "Stráž nad Nežárkou", - "Stráž pod Ralskem", - "Strážnice", - "Strážov", - "Studénka", - "Stárkov", - "Stříbro", - "Suchdol nad Lužnicí", - "Svoboda nad Úpou", - "Svratka", - "Světlá nad Sázavou", - "Sázava", - "Tanvald", - "Telč", - "Teplice", - "Teplice nad Metují", - "Teplá", - "Terezín", - "Tišnov", - "Toužim", - "Tovačov", - "Trhové Sviny", - "Trhový Štěpánov", - "Trmice", - "Týn nad Vltavou", - "Týnec nad Labem", - "Týnec nad Sázavou", - "Týniště nad Orlicí", - "Třebechovice pod Orebem", - "Třebenice", - "Třeboň", - "Třemošnice", - "Třemošná", - "Třešť", - "Uherský Ostroh", - "Uhlířské Janovice", - "Unhošť", - "Valašské Klobouky", - "Valtice", - "Vamberk", - "Vejprty", - "Velešín", - "Velká Bystřice", - "Velká Bíteš", - "Velké Bílovice", - "Velké Hamry", - "Velké Opatovice", - "Velké Pavlovice", - "Velký Šenov", - "Veltrusy", - "Velvary", - "Verneřice", - "Veselí nad Lužnicí", - "Vidnava", - "Vimperk", - "Vizovice", - "Vlachovo Březí", - "Vodňany", - "Volary", - "Volyně", - "Votice", - "Vracov", - "Vratimov", - "Vrbno pod Pradědem", - "Vroutek", - "Vysoké Veselí", - "Vysoké nad Jizerou", - "Vyšší Brod", - "Vítkov", - "Výsluní", - "Všeruby", - "Zbiroh", - "Zbýšov", - "Zdice", - "Zlaté Hory", - "Zliv", - "Zlín", - "Zruč nad Sázavou", - "Zubří", - "Zákupy", - "Zásmuky", - "Újezd u Brna", - "Úpice", - "Úsov", - "Ústí nad Labem", - "Úterý", - "Úvaly", - "Úštěk", - "Černovice", - "Černošice", - "Černošín", - "Červená Řečice", - "Červený Kostelec", - "Česká Kamenice", - "Česká Skalice", - "České Budějovice", - "České Velenice", - "Český Brod", - "Český Dub", - "Řevnice", - "Šenov", - "Šlapanice", - "Šluknov", - "Špindlerův Mlýn", - "Štramberk", - "Štíty", - "Štětí", - "Švihov", - "Žacléř", - "Žamberk", - "Žandov", - "Ždánice", - "Ždírec nad Doubravou", - "Žebrák", - "Železnice", - "Železná Ruda", - "Železný Brod", - "Židlochovice", - "Žirovnice", - "Žlutice", - "Žulová", - ) - - streets = ( - "Horní Stromky", - "Vizovická", - "K Brusce", - "Mírová", - "Písnická", - "Durychova", - "Rašínská", - "Boušova", - "Pobřežní", - "Dolnobřežanská", - "Černá", - "Šůrova", - "Červenkova", - "Nad Mostem", - "Libuňská", - "Chotovická", - "Petříkova", - "Pod Vodárenskou Věží", - "Na Fišerce", - "Ke Březině", - "Za Lázeňkou", - "Nad Šafránkou", - "Na Laurové", - "Nám. Republiky", - "Vlašimská", - "Nad Rohatci", - "Tylišovská", - "Liškova", - "Kunratická", - "Branická", - "Na Strži", - "Višňová", - "Sulická", - "Zálesí", - "Vídeňská", - "Nábřeží Kapitána Jaroše", - "Lešovská", - "U Podjezdu", - "Průškova", - "Estonská", - "Máslova", - "K Otočce", - "Jižní", - "Švecova", - "Mongolská", - "Kalská", - "Nad Rokytkou", - "Malešovská", - "Plzeňská", - "V Hájkách", - "Úpská", - "Ambrožova", - "Pikovická", - "Neužilova", - "Na Staré Vinici", - "Vstupní", - "Nýdecká", - "U Společenské Zahrady", - "Ostrovského", - "Bazovského", - "Lešenská", - "Na Štamberku", - "Na Svahu", - "Výhledské Nám.", - "K Lipám", - "Za Stadionem", - "Opletalova", - "Nábřeží Ludvíka Svobody", - "Komenského Nám.", - "Křimická", - "Domkovská", - "Pyšelská", - "Štychova", - "Horákova", - "Nad Zavážkou", - "K Prelátům", - "Vašátkova", - "Benákova", - "Náměstí Prezidenta Masaryka", - "Mílovská", - "U Hostivařského Nádraží", - "Jihovýchodní I", - "Hostivařské Nám.", - "Zbynická", - "Heineho", - "U Dobešky", - "Doubická", - "Ke Břvům", - "Na Záhonech", - "Kloboukova", - "Kostnické Náměstí", - "Pelclova", - "Smotlachova", - "Pod Spiritkou", - "Hůlkova", - "Matenská", - "Do Zahrádek Ii", - "Dobrošovská", - "Lovčenská", - "Jasná I", - "Škrétova", - "Moravanů", - "Budapešťská", - "Kojetická", - "Náměstí I. P. Pavlova", - "Bajkalská", - "U Větrolamu", - "Vlčická", - "Jarešova", - "Sámova", - "Kotrčová", - "Musílkova", - "Ingrišova", - "U Nových Domů I", - "Dělostřelecká", - "Ke Hrázi", - "Mochovská", - "Rýmařovská", - "Dolní Chaloupky", - "Za Arielem", - "U Rajské Zahrady", - "K Šedivce", - "Březová", - "Doubravínova", - "Mládkova", - "Tachovské Náměstí", - "Lehárova", - "Severní X", - "V Tehovičkách", - "Bermanova", - "Grammova", - "Spojovací", - "Verdunská", - "Závrchy", - "Čerpadlová", - "Vítězná", - "Nad Plynovodem", - "Novodvorská", - "Budějovická", - "U Smíchovského Hřbitova", - "Nedvědovo Náměstí", - "Bachova", - "U Dálnice", - "Všejanská", - "Maňákova", - "Rokytnická", - "Loděnická", - "U Pumpy", - "Michnova", - "Záblatská", - "Poslední", - "Hněvkovského", - "Za Křížem", - "Nad Návsí", - "Jablonecká", - "Súdánská", - "Mazancova", - "Pod Čertovou Skalou", - "Weilova", - "Čajkovského", - "Nad Zátiším", - "Moldavská", - "Juarézova", - "Žižkova", - "Pod Lochkovem", - "Nad Vernerákem", - "Žherská", - "Prusíkova", - "Výtoňská", - "Na Srážku", - "Šachovská", - "Nučická", - "Novákovo Náměstí", - "Sitteho", - "U Vápenice", - "Na Kuthence", - "Čelakovského Sady", - "V Závitu", - "Na Vartě", - "Oválová", - "Machovická", - "Nad Olšinami", - "Vajgarská", - "Kulhavého", - "Kodaňská", - "Kralupská", - "Lednická", - "Pod Velkým Hájem", - "Hvězdonická", - "Na Kozinci", - "Semická", - "K Dálnici", - "Trytova", - "Vyhlídkova", - "Pohnertova", - "U Nového Dvora", - "K Vodě", - "Nad Libří", - "K Matěji", - "V Kotcích", - "Kohoutových", - "Na Cikánce", - "Chládkova", - "Slatiňanská", - "Pod Kostelem", - "Na Spojce", - "Na Zahrádkách", - "Nad Obcí", - "K Přehradám", - "Na Náspu", - "V Nížinách", - "Josefa Houdka", - "Na Pěšině", - "Hnězdenská", - "Za Statky", - "Kremnická", - "Čestmírova", - "U Rakovky", - "Kodicilova", - "K Lučinám", - "Nouzov", - "Krátký Lán", - "Anny Drabíkové", - "Kadaňská", - "Stroupežnického", - "Jírova", - "U Dětského Hřiště", - "Žofie Podlipské", - "Nad Šancemi", - "Lošáková", - "Roblínská", - "Mezi Sklady", - "Na Pomezí", - "U Mlýnského Rybníka", - "Makedonská", - "K Dýmači", - "V Zátiší", - "Pohořelec", - "Jiřinková", - "U Nové Dálnice", - "Čuprova", - "Vraňanská", - "Severovýchodní Vi", - "Petřínská", - "K Hořavce", - "Sádovská", - "Pod Průsekem", - "Konžská", - "Dřítenská", - "Pirinská", - "U Hřiště", - "Kukelská", - "Moravanská", - "Koclířova", - "Žilinská", - "Ve Žlíbku", - "Veronské Nám.", - "U Větrníku", - "Svojsíkova", - "Izraelská", - "Staňkovka", - "Na Viničních Horách", - "Čankovská", - "Na Špitálce", - "Valdovská", - "Rudoltická", - "Ke Strašnické", - "Paťanka", - "Panuškova", - "Pankrácké Nám.", - "Budčická", - "Šermířská", - "Medlovská", - "K Vidouli", - "Horní Chaloupky", - "V Americe", - "Dejvická", - "Klášterecká", - "Šárovo Kolo", - "Mladoboleslavská", - "Palackého", - "Lumiérů", - "Ivančická", - "Za Valem", - "Na Břevnovské Pláni", - "Tichonická", - "Náměstí Hrdinů", - "Mistřínská", - "Křížkovského", - "Tanvaldská", - "V Padolině", - "Před Skalkami Ii", - "Na Křivce", - "Nad Zámečkem", - "Nad Krocínkou", - "Podlešínská", - "Nad Popelkou", - "Oderská", - "Jeruzalémská", - "Smolenská", - "Lebeděvova", - "Libichovská", - "Na Šafránce", - "Průjezdná", - "Záluské", - "Branišovská", - "Spinozova", - "K Betáni", - "Machuldova", - "Podohradská", - "Cerhenická", - "V Brůdku", - "U Vlachovky", - "Pod Letištěm", - "Vlastislavova", - "Klecanská", - "Žinkovská", - "Maltézské Náměstí", - "Boršov", - "Mukařovského", - "Josefa Šimůnka", - "Suchdolská", - "Opočínská", - "Heydukova", - "Vršovka", - "Thurnova", - "Mezilesní", - "Za Pivovarem", - "Uljanovská", - "Panenská", - "Sladovnická", - "Plynární", - "Kozácká", - "Vlasákova", - "Javornická", - "Ševčíkova", - "Podle Náhonu", - "Doubravická", - "Františka Černého", - "Chotětovská", - "K Háječku", - "Pod Výšinkou", - "U Šesté Baterie", - "Drahanská", - "Augustova", - "U Balabenky", - "Boční I", - "Jirčanská", - "Na Šubě", - "Brixiho", - "Klímova", - "Kazín", - "Fügnerovo Náměstí", - "Na Příčné Mezi", - "Plánická", - "Africká", - "Vratislavova", - "Olympijská", - "Na Bojišti", - "K Nádrži", - "Vokrojova", - "Bořetínská", - "Kováříkova", - "Lánovská", - "U Staré Pošty", - "Na Poustkách", - "V Poli", - "Meziškolská", - "Pajerova", - "Habartovská", - "Mlékárenská", - "Dělnická", - "U Štěpu", - "Družná", - "Klouzková", - "Před Rybníkem", - "Nad Košinkou", - "Spolupráce", - "V Humenci", - "Adélčina", - "Březanova", - "Pod Kesnerkou", - "Kosmonoská", - "Do Dubin", - "Nad Lávkou", - "Mezi Lysinami", - "Na Topolce", - "Snopkova", - "Severní Viii", - "Okrová", - "Třebihošťská", - "Mádrova", - "Na Lázeňce", - "Slivenecká", - "Nám. Barikád", - "Nad Strouhou", - "Jindřicha Plachty", - "Pod Srázem", - "U Waltrovky", - "Bratří Čapků", - "Onšovecká", - "Machnova", - "Kostková", - "Rožmberská", - "Zapských", - "Přípřežní", - "Výravská", - "Podléšková", - "Štěchovická", - "Poleradská", - "Jilmová", - "Hostýnská", - "Otradovická", - "Cihlářova", - "Opavská", - "Hradecká", - "Vinohradská", - "Pařížská", - "Evropská", - "Mírová", - "Mlýnská", - "Pražská", - "Teplická", - "Tovární", - "V Lipách", - "Svatoplukova", - "Purkyňova", - "Na Letné", - "Bořivojova", - "U Hřbitova", - "Akátova", - "Plynárenská", - "Komenského", - "Havlíčkova", - "Husova", - "Na Nivách", - "Jandova", - "Jugoslávská", - "Pavlova", - "Kosmonautů", - "Svornosti", - "Moravská", - "Souběžná", - "Hasičská", - ) - - states = ( - "Hlavní město Praha", - "Středočeský kraj", - "Jihočeský kraj", - "Plzeňský kraj", - "Karlovarský kraj", - "Ústecký kraj", - "Liberecký kraj", - "Královéhradecký kraj", - "Pardubický kraj", - "Kraj Vysočina", - "Jihomoravský kraj", - "Olomoucký kraj", - "Moravskoslezský kraj", - "Zlínský kraj", - ) - - countries = ( - "Afghánistán", - "Albánie", - "Alžírsko", - "Andorra", - "Angola", - "Antigua a Barbuda", - "Argentina", - "Arménie", - "Austrálie", - "Bahamy", - "Bahrajn", - "Bangladéš", - "Barbados", - "Belgie", - "Belize", - "Benin", - "Bhútán", - "Bolívie", - "Bosna a Hercegovina", - "Botswana", - "Brazílie", - "Brunej", - "Bulharsko", - "Burkina Faso", - "Burundi", - "Bělorusko", - "Chile", - "Chorvatsko", - "Cookovy ostrovy", - "Demokratická republika Kongo", - "Dominika", - "Dominikánská republika", - "Dánsko", - "Džibutsko", - "Egypt", - "Ekvádor", - "Eritrea", - "Estonsko", - "Etiopie", - "Federativní státy Mikronésie", - "Fidži", - "Filipíny", - "Finsko", - "Francie", - "Gabon", - "Gambie", - "Ghana", - "Gruzie", - "Guatemala", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Honduras", - "Indie", - "Irsko", - "Irák", - "Island", - "Itálie", - "Izrael", - "Jamajka", - "Japonsko", - "Jemen", - "Jihoafrická republika", - "Jižní Súdán", - "Jordánsko", - "Kambodža", - "Kamerun", - "Kanada", - "Kapverdy", - "Katar", - "Kazachstán", - "Keňa", - "Kiribati", - "Kolumbie", - "Kostarika", - "Kuba", - "Kypr", - "Kyrgyzstán", - "Laos", - "Lesotho", - "Libanon", - "Libye", - "Lichtenštejnsko", - "Litva", - "Lotyšsko", - "Lucembursko", - "Madagaskar", - "Malajsie", - "Malawi", - "Maledivy", - "Mali", - "Malta", - "Maroko", - "Marshallovy ostrovy", - "Mauricius", - "Mauritánie", - "Maďarsko", - "Mexiko", - "Moldavsko", - "Monako", - "Mongolsko", - "Mosambik", - "Myanmar", - "Namibie", - "Nauru", - "Nepál", - "Niger", - "Nigérie", - "Nikaragua", - "Niue", - "Nizozemsko", - "Norsko", - "Nový Zéland", - "Německo", - "Omán", - "Palau", - "Panama", - "Papua-Nová Guinea", - "Paraguay", - "Peru", - "Pobřeží slonoviny", - "Polsko", - "Portugalsko", - "Pákistán", - "Rakousko", - "Republika Kongo", - "Rovníková Guinea", - "Rumunsko", - "Rusko", - "Rwanda", - "Salvador", - "Samoa", - "San Marino", - "Saúdská Arábie", - "Senegal", - "Severní Korea", - "Severní Makedonie", - "Seychely", - "Sierra Leone", - "Singapur", - "Slovensko", - "Slovinsko", - "Somálsko", - "Spojené arabské emiráty", - "Spojené království", - "Spojené státy americké", - "Srbsko", - "Středoafrická republika", - "Surinam", - "Svatá Lucie", - "Svatý Kryštof a Nevis", - "Svatý Tomáš a Princův ostrov", - "Svatý Vincenc a Grenadiny", - "Svazijsko", - "Súdán", - "Sýrie", - "Tanzanie", - "Thajsko", - "Togo", - "Tonga", - "Trinidad a Tobago", - "Tunisko", - "Turecko", - "Turkmenistán", - "Tuvalu", - "Tádžikistán", - "Uganda", - "Ukrajina", - "Uruguay", - "Uzbekistán", - "Vanuatu", - "Vatikán", - "Venezuela", - "Vietnam", - "Východní Timor", - "Zambie", - "Zimbabwe", - "Ázerbájdžán", - "Írán", - "Čad", - "Černá Hora", - "Česko", - "Čína", - "Řecko", - "Šalamounovy ostrovy", - "Španělsko", - "Srí Lanka", - "Švédsko", - "Švýcarsko", - ) - - def street_suffix_short(self) -> str: - return self.random_element(self.street_suffixes_short) - - def street_suffix_long(self) -> str: - return self.random_element(self.street_suffixes_long) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def street_name(self) -> str: - return self.random_element(self.streets) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def city_with_postcode(self) -> str: - return self.postcode() + " " + self.random_element(self.cities) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/cs_CZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/cs_CZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9df4b561d00569a370c6b3c9c671738a438de970..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19951 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 I?84ssztNDykpKVy diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/da_DK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/da_DK/__init__.py deleted file mode 100644 index 1aae029..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/da_DK/__init__.py +++ /dev/null @@ -1,2522 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - # Building numbers don't go higher than a 1000 - building_number_formats = ("%##", "%#", "%") - - street_name_formats = ("{{dk_street_name}}{{street_suffix}}",) - - street_address_formats = ("{{street_name}} {{building_number}}",) - - street_names = ( - "Aberdeen", - "Dompap", - "Abildgaards", - "Skovhare", - "Svalehale", - "Abrikos", - "Absalons", - "Adel", - "Admiral", - "Adrians", - "Agerlands", - "Aggersborg", - "Aggersvold", - "Agger", - "Agnete", - "Ahlefeldts", - "Ahlmanns", - "Ahorns", - "Ahrenkildes", - "Albaniens", - "Aldersro", - "Allers", - "Alexandria", - "Alliance", - "Alperose", - "Als", - "Alsted", - "Amagerbro", - "Amagerfælled", - "Amager", - "Amagermotoren", - "Amager Strand", - "Amalie", - "Amalie Skrams", - "Amerika", - "Amsterdam", - "Angel", - "Anneberg", - "Anneke", - "Annex", - "Ansgars", - "Antoinette", - "Antoni", - "Apollo", - "Arabiens", - "Arendals", - "Arkona", - "Armeniens", - "Arne Jacobsens", - "Arnes", - "Arresø", - "Arsenal", - "Artilleri", - "Asger Jorns", - "Askø", - "Asminderød", - "Asnæs", - "Assens", - "Asters", - "Astrup", - "Asyl", - "Athens", - "Augusta", - "Australiens", - "Backers", - "Badens", - "Badstue", - "Bager", - "Baggesens", - "Bakke", - "Balders", - "Ballum", - "Baltika", - "Bandholm", - "Bangerts", - "Bangsbo", - "Bardenfleths", - "Søfly", - "Bartholins", - "Basnæs", - "Bastion", - "Bavnager", - "Bavnehøj", - "Beate", - "Bechgaards", - "Bedford", - "Beethovens", - "Beldringe", - "Belfast", - "Belgiens", - "Bellahøj", - "Belle de Boskoop", - "Bellida", - "Bellis", - "Bellmans", - "Bergens", - "Berggreens", - "Bergthoras", - "Bernstorffs", - "Bevtoft", - "Biens", - "Billed", - "Billesborg", - "Birkager", - "Birkedommer", - "Birke", - "Birkholm", - "Birma", - "Bisidder", - "Bispebjerg", - "Bispe", - "Bissens", - "Bjelkes", - "Bjergmarks", - "Bjergsted", - "Bjernede", - "Bjerregårds Side", - "Bjerregårds", - "Bjørneklo", - "Bjørnsons", - "Blanka", - "Blegdams", - "Blekinge", - "Blushøj", - "Blytækker", - "Blåbær", - "Blågårds", - "Blåmejse", - "Blåmunke", - "Bodils", - "Boeslunde", - "Bogense", - "Bogenæs", - "Bogfinke", - "Bogholder", - "Bogtrykker", - "Bohlendach", - "Bolands", - "Boldhus", - "Bolton", - "Bomhus", - "Bomslutter", - "Bomulds", - "Bordeaux", - "Borgbjergs", - "Borger", - "Borgmester Jensens", - "Borgskriver", - "Borneo", - "Bornholms", - "Borreby", - "Borthigs", - "Borups", - "Boserup", - "Botofte", - "Boyes", - "Brages", - "Bramminge", - "Bramslykke", - "Bratskov", - "Bredahls", - "Bredelands", - "Bred", - "Bregnerød", - "Breidablik", - "Bremens", - "Breslau", - "Brigården", - "Bri", - "Bristol", - "Broager", - "Brobergs", - "Brofoged", - "Brohus", - "Broksø", - "Brolægger", - "Brombær", - "Brorsons", - "Brydes", - "Brygger", - "Bryggeri", - "Brynhilde", - "Bryssel", - "Brøndkær", - "Brøndum", - "Brøndæble", - "Brønshøjgård", - "Brønshøjholms", - "Brønshøj Kirke", - "Brønshøj", - "Bulbjerg", - "Bulgariens", - "Buntmager", - "Burmeisters", - "Bustrup", - "Byager", - "Bygholm", - "Byglands", - "Bygmester", - "Bygård", - "Bykilde", - "Bymose", - "Bækkeskov", - "Bøhmens", - "Bøllegård", - "Bøllemosegårds", - "Børglum", - "Børs", - "Børskov", - "Bådehavns", - "Bådsmands", - "Calais", - "Capri", - "Carl Nielsens", - "Carls", - "Carstens", - "Castbergs", - "Ceylon", - "Christen Bergs", - "Christian II's", - "Christiansborg", - "Christianshavns Vold", - "Christiansminde", - "Classens", - "Clausholm", - "Clematis", - "Colbjørnsens", - "Collins", - "Container", - "Cox Orange", - "Cumberlands", - "Cyperns", - "Cæcilia", - "Dag Hammarskjölds", - "Dagmars", - "Dagø", - "Dahlerups", - "Dalby", - "Dalmose", - "Dalslands", - "Damager", - "Dampfærge", - "Dannebrogs", - "Danneskiold-Samsøes", - "Dannevirke", - "Danshøj", - "Danstrup", - "Degnemose", - "Degneæble", - "Delfin", - "Delos", - "Derby", - "Dige", - "Dirchs", - "Donau", - "Dorthea", - "Dovre", - "Dragsholm", - "Drechsels", - "Drejer", - "Drejø", - "Drogdens", - "Dronning Dagmars", - "Dronning Elisabeths", - "Dronningens", - "Dronningens Tvær", - "Dronninglund", - "Dublin", - "Dunhammer", - "Dunkerque", - "Dybbøls", - "Dybendals", - "Dybens", - "Dyvekes", - "Dønnerup", - "Ebbe Rodes", - "Eberts", - "Eckersbergs", - "Edel Sauntes", - "Edelsminde", - "Efterslægts", - "Egebæks", - "Ege", - "Egelykke", - "Egemarke", - "Egholm", - "Egils", - "Ehlers", - "Ejdersted", - "Ejler Billes", - "Ekvipagemester", - "Elba", - "Elias", - "Ellebjerg", - "Elme", - "Elmelunde", - "Elsdyrs", - "Elselille", - "Elstar", - "Elværks", - "Emblas", - "Emdrup Eng", - "Emdrupgårds", - "Emdrup Kær", - "Emdrup Mose", - "Emdrup", - "Enebær", - "Engblomme", - "Engdals", - "Engelholm", - "Engelsteds", - "Enghave", - "Englands", - "Engskifte", - "Eng", - "Enigheds", - "Enveloppe", - "Erantis", - "Eriks", - "Eriksholm", - "Eschrichts", - "Eskadre", - "Eskilds", - "Eskildstrup", - "Eskjær", - "Esrom", - "Esthers", - "Estlands", - "Eton", - "Ewalds", - "Fabrikmester", - "Fafners", - "Fajance", - "Fakse", - "Fakse Tvær", - "Faksinge", - "Falke", - "Fanø", - "Farum", - "Farver", - "Fehmerns", - "Femkløver", - "Fengers", - "Fenris", - "Fensmark", - "Ferring", - "Fersken", - "Finlands", - "Fiol", - "Firkløver", - "Fiskedams", - "Fjenneslev", - "Fladstjerne", - "Flaske", - "Flensborg", - "Flidsager", - "Flinterup", - "Floras", - "Florens", - "Florida", - "Flors", - "Folevads", - "Folke Bernadottes", - "Forbindelses", - "Fordresgård", - "Formosa", - "Fortun", - "Fossgårds", - "Fragt", - "Frankrigs", - "Fredensborg", - "Fredens", - "Fredenshøj", - "Fredericia", - "Frederiksberg", - "Frederiksborg", - "Frederiks", - "Frederiksgårds", - "Frederiksstads", - "Frederikssunds", - "Luftmarine", - "Frejas", - "Fremads", - "Freunds", - "Frilands", - "Frimester", - "Fruebjerg", - "Fuglager", - "Fuglefænger", - "Fuglsang", - "Funkia", - "Fussings", - "Fyens", - "Fyrbøder", - "Fyrtårn", - "Fælled", - "Fælledens Passage", - "Færgehavns", - "Følfod", - "Førslev", - "Fåborg", - "Gadekær", - "Gadstrup", - "Galions", - "Gamle Vasby", - "Gammel Jernbane", - "Gammel Konge", - "Gammel Køge Lande", - "Gammeltofts", - "Gartner", - "Gartneri", - "Gasværks", - "Gaunø", - "Gavlhus", - "Gearhals", - "Gefions", - "Geislers", - "Genua", - "Georgine", - "Gerbrands", - "Gerdas", - "Gerlev", - "Gerners", - "Gerts", - "Geysers", - "Gilbjerg", - "Gimles", - "Gislinge", - "Gitter", - "Gjorslev", - "Gladbo", - "Gladiolus", - "Glas", - "Glente", - "Glinkas", - "Glommens", - "Glucks", - "Glumsø", - "Glückstadts", - "Glænø", - "Godsbane", - "Godthåbs", - "Gorms", - "Gothers", - "Gransanger", - "Greis", - "Grenå", - "Grevinge", - "Gribskov", - "Griffenfelds", - "Grysgårds", - "Grækenlands", - "Grønager", - "Grøndals Park", - "Grøndalsvænge", - "Grønjords", - "Grønløkke", - "Grønne", - "Grønnehave", - "Grønnemose", - "Grønris", - "Gråbrødre", - "Gråbynke", - "Gråspurve", - "Gråstens", - "Gudenå", - "Guldager", - "Guldbergs", - "Guldstjerne", - "Gulkløver", - "Gullands", - "Gullfoss", - "Gunhilds", - "Gunløgs", - "Gyldenlak", - "Gyldenløves", - "Gyldenris", - "Gyrite", - "Gyrstinge", - "Gyvel", - "Gørtler", - "Gårdfæste", - "Gårdtofte", - "Gåsebæks", - "Gåse", - "Gåseurt", - "Haderslev", - "Hagbard", - "Hagested", - "Haifa", - "Haldager", - "Halfdans", - "Halgreens", - "Hallands", - "Hallins", - "Halsskov", - "Hambros", - "Hamlets", - "Hammelstrup", - "Hammerens", - "Hammerichs", - "Hammershus", - "Hannemanns", - "Hannover", - "Hans Bogbinders", - "Hanssted", - "Hanstholm", - "Haralds", - "Haraldsted", - "Harboøre", - "Hardanger", - "Hardenberg", - "Hare", - "Hareskov", - "Harrestrup", - "J.P.E. Hartmanns", - "Harwich", - "Hassel", - "Hastings", - "Hauser", - "Havdrup", - "Havkajak", - "Havne", - "Havre", - "Havsgårds", - "Haydns", - "Hedeby", - "Hedegaards", - "Hedemanns", - "Heibergs", - "Heils", - "Heimdals", - "Heines", - "Heises", - "Hejre", - "Heklas", - "Heldbo", - "Helgesens", - "Helgolands", - "Helikons", - "Hellas", - "Hellebæk", - "Helleliden", - "Hellested", - "Helsingborg", - "Helsingørmotoren", - "Hemsedals", - "Hendon", - "Henriks", - "Herbergen", - "Herfølge", - "Herholdts", - "Herjedal", - "Herlufsholm", - "Hermods", - "Herning", - "Herslev", - "Hesselø", - "Hessens", - "Hestemølle", - "Hildurs", - "Hillerød", - "Hillerødmotoren", - "Himmerlands", - "Hindbær", - "Hinde", - "Hindustan", - "Hirse", - "Hirtshals", - "Hjelms", - "Hjertensfryds", - "Hjerting", - "Hjortdals", - "Hjortholms", - "Hjortø", - "Hjørring", - "Hobro", - "Holbergs", - "Holbæk", - "Holbækmotoren", - "Hollands", - "Holmblads", - "Holstebro", - "Holsteinborg", - "Holsteins", - "Holte", - "Hornbæk", - "Hornemans", - "Horsekilde", - "Horsens", - "Horserød", - "Houmanns", - "Hovedvagts", - "Hovgaards", - "Hovmester", - "Hovmål", - "Hulgårds", - "Humlebæk", - "Hustofte", - "Husum", - "Hvalsø", - "Hvede", - "Hveens", - "Hvidbjerg", - "Hvidkilde", - "Hvidkløver", - "Hvidtjørne", - "Hyacint", - "Hyldebær", - "Hyltebjerg", - "Hysken", - "Hyttehus", - "Händels", - "Høffdings", - "Høgholt", - "Højbo", - "Højdevangs", - "Højde", - "Højmose", - "Højsager", - "Højstrup", - "Hørdums", - "Hørhus", - "Hørsholms", - "Hørtofte", - "Høsterkøb", - "Høstgilde", - "Høyens", - "Håbets", - "Ib Schønbergs", - "Ilford", - "India", - "Industri", - "Ingerslevs", - "Ingolfs", - "Ingrid Marie", - "Iran", - "Iris", - "Irlands", - "Irmingers", - "Isafjords", - "Islevhus", - "Istanbul", - "Isted", - "Italiens", - "Jagt", - "James Grieve", - "Jans", - "Japan", - "Java", - "Jellinge", - "Jemtelands", - "Jena", - "Jeppes", - "Jerichaus", - "Jernbane", - "Bilbao", - "Jernæble", - "Jolle", - "Jordbær", - "Joris", - "Judiths", - "Jupiter", - "Jyderup", - "Jyllinge", - "Jæger", - "Jægersborg", - "Jægerspris", - "Kabbeleje", - "Kaktus", - "Kaldæa", - "Kaliforniens", - "Kalkbrænderihavns", - "Kalø", - "Kampmanns", - "Kanada", - "Kanonbåds", - "Kansas", - "Kansler", - "Kapel", - "Kapsel", - "Kaprifolie", - "Karens", - "Karlskrona", - "Karlslunde", - "Karlstads", - "Kasemat", - "Kastanie", - "Kastels", - "Kastrup", - "Katholm", - "Katrinedals", - "Kattegat", - "Kattinge", - "Kejser", - "Keldsø", - "Kentia", - "Keplers", - "Kerteminde", - "Kildebrønde", - "Kildevælds", - "Kilholm", - "Kina", - "Kingos", - "Kingston", - "Kirkebjerg", - "Kirkegårds", - "Kirsteins", - "Kirstinedals", - "Kjeldsgårds", - "Kjærstrup", - "Klaipeda", - "Klaksvigs", - "Kleins", - "Klerke", - "Klingsey", - "Klinte", - "Klintholm", - "Klitmøller", - "Klostermarks", - "Klosterris", - "Kloster", - "Klubiens", - "Kløverblads", - "Kløvermarks", - "Knabro", - "Knabstrup", - "Knippelsbro", - "Knivholt", - "Knuthenborg", - "Kolding", - "Kompagni", - "Kongebro", - "Kongedybs", - "Kongelunds", - "Kongemarks", - "Kongeæble", - "Kongo", - "Kongsdal", - "Kongshøj", - "Kongsted", - "Korea", - "Korfu", - "Korinth", - "Kornblomst", - "Kornerup", - "Kornskyld", - "Korsager", - "Kors", - "Korsika", - "Korsør", - "Kortstilk", - "Krabbesholm", - "Kraftværks", - "Krauses", - "Kreta", - "Krims", - "Kristiania", - "Krogager", - "Krogerup", - "Kroghs", - "Krokodille", - "Kronborg", - "Kronprinsens", - "Kronprinsesse", - "Krudtløbs", - "Krudtmøllegårds", - "Krusemynte", - "Kruså", - "Krügers", - "Krystal", - "Kuglegårds", - "Kuhlaus", - "Kulbane", - "Kurlands", - "Kvintus", - "Kvægtorvs", - "Kvæsthus", - "Küchlers", - "Kyringe", - "Kæmner", - "Kærager", - "Kærsanger", - "Kærskifte", - "Købmager", - "Kålager", - "Kaalunds", - "Lager", - "Lakse", - "Landehjælp", - "Landfoged", - "Landgilde", - "Landlyst", - "Landsdommer", - "Landskrona", - "Landvindings", - "Langager", - "Langebro", - "Langelinie", - "Langhus", - "Langkær", - "Langø", - "Laplands", - "Larsbjørns", - "Larslejs", - "Laura", - "Lautrups", - "Lavendel", - "Ledager", - "Leifs", - "Lejre", - "Lemberg", - "Lemnos", - "Lerchenborg", - "Lerfos", - "Lergravs", - "Letlands", - "Lidemarks", - "Liflands", - "Lille Colbjørnsens", - "Lille Farimags", - "Lille Fredens", - "Lille", - "Lille Isted", - "Lille Kannike", - "Lille Kirke", - "Lille Kongens", - "Lille Strand", - "Lille Søndervold", - "Lille Thekla", - "Lilliendals", - "Limfjords", - "Linde", - "Lindenborg", - "Lindenovs", - "Lindgreens", - "Lindholms", - "Linnés", - "Lipkes", - "Liselund", - "Livjæger", - "Livorno", - "Livø", - "Lobelia", - "Lodi", - "Lombardi", - "Lotus", - "Lugano", - "Lukretia", - "Lundbyes", - "Lundeborg", - "Lundedals", - "Lundehus", - "Lundevangs", - "Lundings", - "Lundsfryd", - "Lunds", - "Lundtofte", - "Lupin", - "Lybæk", - "Helsinki", - "Lykkebo", - "Lyneborg", - "Lynette", - "Lyngby", - "Lyngholm", - "Lyngvig", - "Lynæs", - "Lyon", - "Lyrskov", - "Lysefjords", - "Lyshøj", - "Lyshøjgårds", - "Lystrup", - "Læder", - "Lærdals", - "Lærke", - "Læssøes", - "Cork", - "Løgstør", - "Løgæble", - "Løjtegårds", - "Lønborg", - "Løngang", - "Lønstrup", - "Løvetands", - "P.D. Løvs", - "Løv", - "Magdelone", - "Magister", - "Mag", - "Majrose", - "Malakka", - "Malmø", - "Malta", - "Mandals", - "Mandel", - "Mansas", - "Mantua", - "Manø", - "Marathon", - "Marbjerg", - "Marengo", - "Margretheholms", - "Maribo", - "Mariehamn", - "Markmands", - "Markskifte", - "Mark", - "Marmor", - "Marsala", - "Marskens", - "Marstals", - "Martha", - "Masnedø", - "Masteskurs", - "Matthæus", - "Meinungs", - "Meklenborg", - "Meldahls", - "Mellemforts", - "Mellemtofte", - "Merløse", - "Messina", - "Metro", - "Middelfart", - "Middelgrunds", - "Midgårds", - "Mikkel Skovs", - "Milano", - "Milos", - "Mimers", - "Mimosa", - "Mindstrup", - "Minør", - "Mirabelle", - "Mitchells", - "Mjøsens", - "Molbechs", - "Moldau", - "Monrads", - "Montagehals", - "Montagne", - "Morbær", - "Morgendug", - "Morsø", - "Mosedal", - "Mosel", - "Mozarts", - "Mullerup", - "Murcia", - "Murer", - "Musholm", - "Musvåge", - "Mutzu", - "Myggenæs", - "Mysunde", - "Møgeltønder", - "Mølle", - "Møllegårds", - "C.F. Møllers", - "Mønter", - "Møntmester", - "Mørkhøj", - "Måge", - "Mårum", - "Nakskov", - "Nannas", - "Nansens", - "Nattergale", - "Neapel", - "Nebraska", - "Nelson Mandelas", - "Nikolaj", - "Nivå", - "Njals", - "Nokken Forn", - "Nokken Hovedn", - "Nokken Strand", - "Nordbane", - "Nordborg", - "Nordby", - "Nordfeld", - "Skagerrak", - "Nordhavns", - "Nordlands", - "Nordmarks", - "Nordre", - "Nordre Dige", - "Nordre Fasan", - "Nordre Frihavns", - "Nordre Kongelunds", - "Nordrup", - "Nordsø", - "Norges", - "Norgesminde", - "Normandi", - "November", - "Ny Adel", - "Ny Blegdams", - "Nyborg", - "Nybo", - "Nybro", - "Ny", - "Nygårds", - "Ny Kongens", - "Nyminde", - "Nyrnberg", - "Nyrops", - "Nysted", - "Nysø", - "Ny Vester", - "Ny Øster", - "Nærum", - "Næsbyholm", - "Næstved", - "Nøddebo", - "Nøjsomheds", - "Nøkkerose", - "Nørager", - "Nørre", - "Nørrebro", - "Nørre Farimags", - "Nørre Sø", - "Nørretofte", - "Nørre Vold", - "Obdams", - "Ocean", - "Odense", - "Odins", - "Odins Tvær", - "Oehlenschlægers", - "Offenbachs", - "Oldermands", - "Oldfux", - "Oldenborg", - "Olieblads", - "Oliefabriks", - "Oliemølle", - "Olufs", - "Olympos", - "Omø", - "Orgelbygger", - "Orlogsværft", - "Ottilia", - "Otto Baches", - "Ourø", - "Overbys", - "Overdrevs", - "Overn Neden Vandet", - "Overn Oven Vandet", - "Overskous", - "Oxford", - "Padua", - "Pakhus", - "Palermo", - "Pakkeri", - "Palles", - "Palnatokes", - "Palæ", - "Panums", - "Parma", - "Parnas", - "Paros", - "Pasteurs", - "Peiters", - "Per Henrik Lings", - "Perlestikker", - "Pernille", - "Persiens", - "Persille", - "Peter Ipsens", - "Petersborg", - "Philip De Langes", - "Pile", - "Pindos", - "Pistol", - "Platan", - "Polens", - "Pommerns", - "Pomona", - "Poppel", - "Portlands", - "Portugals", - "Postholder", - "Pragtstjerne", - "Primula", - "Prinsesse", - "Prisholm", - "Provste", - "Præstegårds", - "Præstekær", - "Præstemarks", - "Præstø", - "Prøvestens", - "Puggaards", - "Thomas Koppels", - "Pæon", - "Radise", - "Rabarber", - "Raffinaderi", - "Ragna", - "Ragnhild", - "Rahbeks", - "Ramløse", - "Ramsings", - "Ramunds", - "Randbøl", - "Randers", - "Rantzaus", - "Raunstrup", - "Ravenna", - "Ravneholms", - "Ravnsborg", - "Ravnsborg Tvær", - "Rebekka", - "Reberbane", - "Rebild", - "Rebslager", - "Trelleborg", - "Gdansk", - "Reersø", - "Refshale", - "Refsnæs", - "Regitse", - "Reinette", - "Rejsby", - "Remise", - "Rentemester", - "Retort", - "Reventlows", - "Reverdils", - "Reykjaviks", - "Rialto", - "Ribe", - "Ridefoged", - "Riga", - "Rigens", - "Rindby", - "Ringholm", - "Ringkøbing", - "Ringsted", - "Risager", - "Risbyholm", - "Rismose", - "Rodos", - "Romsdals", - "Romsø", - "Rosbæks", - "Roselille", - "Rosenborg", - "Rosendals", - "Rosen", - "Rosenholms", - "Rosenlunds", - "Rosenvængets", - "Rosenvængets Hoved", - "Rosenørns", - "Roshage", - "Roskilde", - "Rosmarin", - "Rossinis", - "Rostgaards", - "Rostock", - "Rothes", - "Rovsings", - "Rubikon", - "Rubinola", - "Rubinsteins", - "Rugager", - "Rughave", - "Rug", - "Rumæniens", - "Rundholts", - "Ruths", - "Ryes", - "Rygårds", - "Rymarks", - "Rysensteens", - "Ryvangs", - "Ræve", - "Rødby", - "Rødding", - "Rødelands", - "Røde Mellem", - "Rødkilde", - "Rødkløver", - "Rødtjørne", - "Rømers", - "Rønnebær", - "Rønne", - "Rønnings", - "Rørholms", - "Rørmose", - "Rørsanger", - "Røså", - "Rådhus", - "Rådmands", - "Rådvads", - "Sadelmager", - "Sakskøbing", - "Salling", - "Saltholms", - "Saltø", - "Samos", - "Samsø", - "Sandbjerg", - "Sandbygård", - "Sandhus", - "Sankelmarks", - "Sankt Jørgens", - "Sassnitz", - "Saxhøj", - "Saxo", - "Saxtorphs", - "Scandia", - "Schacks", - "Scharlings", - "Scherfigs", - "Schleppegrells", - "Schuberts", - "Sejlklub", - "Sejrø", - "Seline", - "Selsø", - "Sele", - "Serbiens", - "Serridslev", - "Shetlands", - "Siam", - "Sibberns", - "Sibelius", - "Siciliens", - "Sigbrits", - "Sigersted", - "Signelil", - "Sigurds", - "Sigyns", - "Siljan", - "Silkeborg", - "Silke", - "Sions", - "Sixtus", - "Sjællands", - "Skaffer", - "Skanderborg", - "Skarø", - "Skelbæk", - "Skelmose", - "Skensved", - "Skibelund", - "Skinder", - "Skipper Clements", - "Skippinge", - "Skjulhøj", - "Skodsborg", - "Skole", - "Skoleholder", - "Flyhangar", - "Skotlands", - "Skotterup", - "Skoubo", - "Skovbogårds", - "Skovgaards", - "Skovløber", - "Skovstjerne", - "Skudehavns", - "Skydebane", - "Skyggelunds", - "Skytte", - "Skyttegård", - "Skåne", - "Slagelse", - "Slagtehus", - "Slangerup", - "Slejpners", - "Slesvigs", - "Slotsfoged", - "Slots", - "Slotsherrens", - "Slotsholms", - "Sluse", - "Slutteri", - "Slåen", - "Smede", - "Smyrna", - "Smørum", - "Smålands", - "Snare", - "H.C. Sneedorffs", - "Sneppe", - "Snertinge", - "Snorres", - "Sofie Brahes", - "Sofie", - "Sofienhøj", - "Sognefjords", - "Sokkelunds", - "Solitude", - "Solrød", - "Solsikke", - "Solskifte", - "Soltofte", - "Summerred", - "Sommersted", - "Sonnerup", - "Sorgenfri", - "Sorrento", - "Sorø", - "Southampton", - "Spanager", - "Spangbergs", - "Spaniens", - "Spanteloft", - "Sparresholm", - "Sparta", - "Speditør", - "Spinderi", - "Spiræa", - "Spontinis", - "Sporemager", - "Spøttrup", - "Stadfeldts", - "Stadil", - "Stald", - "Stampes", - "Statholder", - "Stavanger", - "Stavnstrup", - "Steenbergs", - "Stefans", - "Steins", - "Stemanns", - "Stenderup", - "Sten", - "Stenhugger", - "Stenkløver", - "Stenlands", - "Stenlille", - "Stenløse", - "Stenmagle", - "Stenos", - "Stenrose", - "Sternberg", - "Stevns", - "Stjerne", - "Stockholms", - "Stokhus", - "Stokrose", - "Stoltenbergs", - "Storegårds", - "Store Kannike", - "Store Kirke", - "Store Kongens", - "Store Regne", - "Store Strand", - "Store Søndervold", - "Storm", - "Stradellas", - "Strandager", - "Strand", - "Strandlods", - "Stranden", - "Stratford", - "Strauss", - "Strickers", - "Strindbergs", - "Struensee", - "Strynø", - "Strødam", - "Stubbeløb", - "Stubmølle", - "Studie", - "Studsgaards", - "Sturlas", - "Stære", - "Støberi", - "Støvnæs", - "Støvring", - "Suensons", - "Suhms", - "Sumatra", - "Sundbygårds", - "Sundby Park", - "Sundbyvester", - "Sundeveds", - "Sundholms", - "Sundkrogs", - "Svane", - "Svanemølle", - "Svankær", - "Svendborg", - "Svends", - "Svenstrup", - "Sverrigs", - "Svogerslev", - "Sværte", - "Sydhavns", - "Sydløbs", - "Sylvia", - "Syriens", - "Syvens", - "Syvstens", - "Sæby", - "Sæbyholms", - "Sætersdal", - "Søfort", - "Søllerød", - "Sølunds", - "Sølv", - "Sønderborg", - "Søndermarks", - "Søndervangs", - "Søndervig", - "Søndre", - "Søndre Fasan", - "Søren Norbys", - "Sørup", - "Saabyes", - "Taffelæble", - "Tagens", - "Takkelads", - "Takkelloft", - "Tallinn", - "Tartinis", - "Teglbrænder", - "Teglgård", - "Teglholm", - "Teglholms", - "Teglholm Tvær", - "Teglstrup", - "Teglværks", - "Telemarks", - "Tersløse", - "Theis", - "Thekla", - "Thingvalla", - "Thora", - "Thors", - "Thorshavns", - "Thorsminde", - "Thorupgård", - "Thorups", - "Thurebyholm", - "Thyras", - "Thyregods", - "Thy", - "Tibirke", - "Tietgens", - "Tiger", - "Tikøb", - "Timians", - "Tingskifte", - "Tingskriver", - "Ting", - "Tipsager", - "Tirsbæk", - "Titan", - "Tjæreby", - "Tjørne", - "Tjørnelunds", - "Todes", - "Toftager", - "Toftebakke", - "Toftegårds", - "Toftøje", - "Toldbod", - "Toldskriver", - "Tomat", - "Tomsgårds", - "Tonemester", - "Torbenfeldt", - "Torben Oxes", - "Tordenskjolds", - "Torfa", - "Tornebuske", - "Tornsanger", - "Torve", - "Toskifte", - "Tovelille", - "Tovværk", - "Tranehave", - "Trane", - "Trangravs", - "Traps", - "Trekløver", - "Trekroner", - "Trepkas", - "Troja", - "Tromsø", - "Trondhjems", - "Tryggevælde", - "Trøjborg", - "Tschernings", - "Tuborg", - "Tudseminde", - "Tudskær", - "Tuelands", - "Tulipan", - "Tullins", - "Turesens", - "Tustrup", - "Tuxens", - "Tværager", - "Kiel", - "Tybjerg", - "Tyborøn", - "Tycho Brahes", - "Tyrols", - "Tyttebær", - "Tøjhus", - "Tøjmester", - "Tølløse", - "Tømmergravs", - "Tømrer", - "Tøndebinder", - "Tønder", - "Tønnes", - "Tårnblæser", - "Tårnholms", - "Tårnhus", - "Tåsinge", - "Tåstrup", - "Udby", - "Uffes", - "Uggerløse", - "Ugle", - "Ullerup", - "Ulrik Birchs", - "Ulriksdal", - "Ulvefod", - "Ulvsund", - "Ungarns", - "Uplands", - "Upsala", - "Ural", - "Urbans", - "Utterslev", - "Wagners", - "Vagtmester", - "Valborg", - "Valbygårds", - "Valby Kirke", - "Valby Lang", - "Valby Maskinfabriks", - "Valby Torve", - "Valdemars", - "Valgårds", - "Valhals", - "Valhøj", - "Valkendorfs", - "Valkyrie", - "Vallekilde", - "Vallø", - "Valmue", - "Valnødde", - "Vangehus", - "Vangs", - "Vangså", - "Vanløse", - "Vanløse By", - "Varde", - "Vasby", - "Vatna", - "Webers", - "Vedbæk", - "Weidekamps", - "Weimar", - "Vejlands", - "Vejle", - "Vejrø", - "Veksø", - "Venders", - "Vendsyssel", - "Venedig", - "Vennely", - "Venneminde", - "Venø", - "Veras", - "Verdis", - "Vermlands", - "Vermunds", - "Verona", - "Wessels", - "Vestager", - "Vestbane", - "Vesterbro", - "Vester Farimags", - "Vesterfælled", - "Vester", - "Vestergårds", - "Vesterhavs", - "Vestermarks", - "Vester Sø", - "Vestervig", - "Vester Vold", - "Vestmanna", - "Vestre", - "Vestre Kirkegårds", - "Vestre Tegl", - "Weyses", - "Vibeke", - "Vibe", - "Viborg", - "Wibrandts", - "Wiedewelts", - "Vigerslev", - "Vigerslev Gods", - "Wiinblads", - "Viktoria", - "Vildande", - "Wilders", - "Vilhelm Thomsens", - "Willemoes", - "Willums", - "Vindebro", - "Vindinge", - "Vindmølle", - "Vindrue", - "Windsor", - "Vingård", - "Visby", - "Wittenberg", - "Vognborg", - "Vognmager", - "Vogter", - "Voldmester", - "Volos", - "Wolters", - "Vordingborg", - "Vulkan", - "Væbner", - "Værksted", - "Værnedams", - "Væver", - "Vølunds", - "Vånings", - "Yderlands", - "Yduns", - "Ystad", - "Zinns", - "Æbelø", - "Æble", - "Ægina", - "Ægirs", - "Ærtebjerg", - "Ærtelands", - "Ærte", - "Ætna", - "Ølands", - "Øresund Park", - "Øresundsmotoren", - "Øresunds", - "Ørevads", - "Ørhage", - "Ørholm", - "Ørne", - "Øsels", - "Østbane", - "Øster", - "Østerbro", - "Østerdals", - "Øster Farimags", - "Østergårds", - "Øster Sø", - "Østersø", - "Øster Vold", - "Østre Tegl", - "Østrigs", - "Åbakke", - "Åbjerg", - "Ådals", - "Å", - "Ågerup", - "Åkande", - "Ålands", - "Ålborg", - "Ålekiste", - "Ålholm", - "Ålstrup", - "Åløkke", - "Aarestrups", - "Århus", - "Mælkeen", - "Løvstikke", - "Murmansk", - "Antwerpen", - "Travemünde", - "Bohrs", - "Cylinder", - "Støbegods", - "Pladehals", - "Kul", - "Diesel", - "Gloster", - "Burgundy", - "Paradisæble", - ) - - street_suffixes = ( - # gade and vej are the most common so they should be oversampled - "gade", - "gade", - "stræde", - "vej", - "vej", - "vej", - " Allé", - ) - - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - # Postcode should be formatted as described in http://www.nr.dk/danmark.html - postcode_formats = ("%###",) - - city_formats = ("{{city_name}}",) - - cities = ( - "Allinge", - "Allingåbro", - "Almind", - "Anholt", - "Ans by", - "Ansager", - "Arden", - "Askeby", - "Asnæs", - "Asperup", - "Assens", - "Asaa", - "Augustenborg", - "Aulum", - "Auning", - "Bagenkop", - "Bagsværd", - "Balle", - "Ballerup", - "Bandholm", - "Barrit", - "Beder", - "Bedsted Thy", - "Bevtoft", - "Billum", - "Billund", - "Bindslev", - "Birkerød", - "Bjerringbro", - "Bjert", - "Bjæverskov", - "Blokhus", - "Blommenslyst", - "Blåvand", - "Boeslunde", - "Bogense", - "Bogø By", - "Bolderslev", - "Bording", - "Borre", - "Borup", - "Brabrand", - "Bramming", - "Brande", - "Branderup", - "Bredebro", - "Bredsten", - "Brenderup", - "Broager", - "Broby", - "Brovst", - "Bryrup", - "Brædstrup", - "Brøndby", - "Brøndby Strand", - "Brønderslev", - "Brønshøj", - "Brørup", - "Bylderup-Bov", - "Bække", - "Bækmarksbro", - "Bælum", - "Børkop", - "Bøvlingbjerg", - "Charlottenlund", - "Christiansfeld", - "Dalby", - "Dalmose", - "Dannemare", - "Daugård", - "Dianalund", - "Dragør", - "Dronninglund", - "Dronningmølle", - "Dybvad", - "Ebberup", - "Ebeltoft", - "Egernsund", - "Egtved", - "Egå", - "Ejby", - "Ejstrupholm", - "Engesvang", - "Errindlev", - "Erslev", - "Esbjerg", - "Eskebjerg", - "Eskilstrup", - "Espergærde", - "Fakse", - "Fakse Ladeplads", - "Fanø", - "Farsø", - "Farum", - "Fejø", - "Ferritslev Fyn", - "Fjenneslev", - "Fjerritslev", - "Flemming", - "Fredensborg", - "Fredericia", - "Frederiksberg", - "Frederikshavn", - "Frederikssund", - "Frederiksværk", - "Frørup", - "Frøstrup", - "Fuglebjerg", - "Fur", - "Føllenslev", - "Føvling", - "Faaborg", - "Fårevejle", - "Fårup", - "Fårvang", - "Gadbjerg", - "Gadstrup", - "Galten", - "Gandrup", - "Gedser", - "Gedsted", - "Gedved", - "Gelsted", - "Gentofte", - "Gesten", - "Gilleleje", - "Gislev", - "Gislinge", - "Gistrup", - "Give", - "Gjerlev", - "Gjern", - "Glamsbjerg", - "Glejbjerg", - "Glesborg", - "Glostrup", - "Glumsø", - "Gram", - "Gredstedbro", - "Grenaa", - "Greve", - "Greve Strand", - "Grevinge", - "Grindsted", - "Græsted", - "Gråsten", - "Gudbjerg", - "Gudhjem", - "Gudme", - "Guldborg", - "Gørding", - "Gørlev", - "Gørløse", - "Haderslev", - "Haderup", - "Hadsten", - "Hadsund", - "Hagersten", - "Hals", - "Hammel", - "Hampen", - "Hanstholm", - "Harboøre", - "Harlev", - "Harndrup", - "Harpelunde", - "Hasle", - "Haslev", - "Hasselager", - "Havdrup", - "Havndal", - "Hedehusene", - "Hedensted", - "Hejls", - "Hejnsvig", - "Hellebæk", - "Hellerup", - "Helsinge", - "Helsingør", - "Hemmet", - "Henne", - "Herfølge", - "Herlev", - "Herlufmagle", - "Herning", - "Hesselager", - "Hillerød", - "Hinnerup", - "Hirtshals", - "Hjallerup", - "Hjerm", - "Hjortshøj", - "Hjørring", - "Hobro", - "Holbæk", - "Holeby", - "Holme-Olstrup", - "Holstebro", - "Holsted", - "Holte", - "Horbelev", - "Hornbæk", - "Hornslet", - "Hornsyld", - "Horsens", - "Horslunde", - "Hovborg", - "Hovedgård", - "Humble", - "Humlebæk", - "Hundested", - "Hundslund", - "Hurup Thy", - "Hvalsø", - "Hvide Sande", - "Hvidovre", - "Højbjerg", - "Højby", - "Højer", - "Højslev", - "Høng", - "Hørning", - "Hørsholm", - "Hørve", - "Haarby", - "Hårlev", - "Idestrup", - "Ikast", - "Ishøj", - "Janderup", - "Jelling", - "Jerslev", - "Jerslev", - "Jerup", - "Jordrup", - "Juelsminde", - "Jyderup", - "Jyllinge", - "Jystrup", - "Jægerspris", - "Kalundborg", - "Kalvehave", - "Karby", - "Karise", - "Karlslunde", - "Karrebæksminde", - "Karup", - "Kastrup", - "Kerteminde", - "Kettinge", - "Kibæk", - "Kirke Eskilstrup", - "Kirke Hyllinge", - "Kirke Såby", - "Kjellerup", - "Klampenborg", - "Klarup", - "Klemensker", - "Klippinge", - "Klovborg", - "Knebel", - "Kokkedal", - "Kolding", - "Kolind", - "Kongens Lyngby", - "Kongerslev", - "Korsør", - "Kruså", - "Kvistgård", - "Kværndrup", - "København", - "Køge", - "Langebæk", - "Langeskov", - "Langå", - "Lejre", - "Lem", - "Lemming", - "Lemvig", - "Lille Skensved", - "Lintrup", - "Liseleje", - "Lundby", - "Lunderskov", - "Lynge", - "Lystrup", - "Læsø", - "Løgstrup", - "Løgstør", - "Løgumkloster", - "Løkken", - "Løsning", - "Låsby", - "Malling", - "Mariager", - "Maribo", - "Marslev", - "Marstal", - "Martofte", - "Melby", - "Mern", - "Mesinge", - "Middelfart", - "Millinge", - "Morud", - "Munke Bjergby", - "Munkebo", - "Møldrup", - "Mørke", - "Mørkøv", - "Måløv", - "Mårslet", - "Nakskov", - "Nexø", - "Nibe", - "Nimtofte", - "Nivå", - "Nordborg", - "Nyborg", - "Nykøbing F", - "Nykøbing M", - "Nykøbing Sj", - "Nyrup", - "Nysted", - "Nærum", - "Næstved", - "Nørager", - "Nørre Alslev", - "Nørre Asmindrup", - "Nørre Nebel", - "Nørre Snede", - "Nørre Aaby", - "Nørreballe", - "Nørresundby", - "Odder", - "Odense", - "Oksbøl", - "Otterup", - "Oure", - "Outrup", - "Padborg", - "Pandrup", - "Præstø", - "Randbøl", - "Randers", - "Ranum", - "Rask Mølle", - "Redsted", - "Regstrup", - "Ribe", - "Ringe", - "Ringkøbing", - "Ringsted", - "Risskov", - "Roskilde", - "Roslev", - "Rude", - "Rudkøbing", - "Ruds Vedby", - "Rungsted Kyst", - "Ry", - "Rynkeby", - "Ryomgård", - "Ryslinge", - "Rødby", - "Rødding", - "Rødekro", - "Rødkærsbro", - "Rødovre", - "Rødvig Stevns", - "Rømø", - "Rønde", - "Rønne", - "Rønnede", - "Rørvig", - "Sabro", - "Sakskøbing", - "Saltum", - "Samsø", - "Sandved", - "Sejerø", - "Silkeborg", - "Sindal", - "Sjællands Odde", - "Sjølund", - "Skagen", - "Skals", - "Skamby", - "Skanderborg", - "Skibby", - "Skive", - "Skjern", - "Skodsborg", - "Skovlunde", - "Skælskør", - "Skærbæk", - "Skævinge", - "Skødstrup", - "Skørping", - "Skårup", - "Slagelse", - "Slangerup", - "Smørum", - "Snedsted", - "Snekkersten", - "Snertinge", - "Solbjerg", - "Solrød Strand", - "Sommersted", - "Sorring", - "Sorø", - "Spenstrup", - "Spjald", - "Sporup", - "Spøttrup", - "Stakroge", - "Stege", - "Stenderup", - "Stenlille", - "Stenløse", - "Stenstrup", - "Stensved", - "Stoholm", - "Stokkemarke", - "Store Fuglede", - "Store Heddinge", - "Store Merløse", - "Storvorde", - "Stouby", - "Strandby", - "Struer", - "Strøby", - "Stubbekøbing", - "Støvring", - "Suldrup", - "Sulsted", - "Sunds", - "Svaneke", - "Svebølle", - "Svendborg", - "Svenstrup", - "Svinninge", - "Sydals", - "Sæby", - "Søborg", - "Søby Ærø", - "Søllested", - "Sønder Felding", - "Sønder Omme", - "Sønder Stenderup", - "Sønderborg", - "Søndersø", - "Sørvad", - "Tappernøje", - "Tarm", - "Terndrup", - "Them", - "Thisted", - "Thorsø", - "Thyborøn", - "Thyholm", - "Tikøb", - "Tilst", - "Tim", - "Tinglev", - "Tistrup", - "Tisvildeleje", - "Tjele", - "Tjæreborg", - "Toftlund", - "Tommerup", - "Toreby", - "Torrig", - "Tranbjerg J", - "Tranekær", - "Trige", - "Trustrup", - "Tureby", - "Tylstrup", - "Tølløse", - "Tønder", - "Tørring", - "Tårs", - "Taastrup", - "Ugerløse", - "Uldum", - "Ulfborg", - "Ullerslev", - "Ulstrup", - "Vadum", - "Valby", - "Vallensbæk", - "Vallensbæk Strand", - "Vamdrup", - "Vandel", - "Vanløse", - "Varde", - "Vedbæk", - "Veflinge", - "Vejby", - "Vejen", - "Vejers Strand", - "Vejle", - "Vejle Øst", - "Vejstrup", - "Veksø Sjælland", - "Vemb", - "Vemmelev", - "Vesløs", - "Vestbjerg", - "Vester Skerninge", - "Vesterborg", - "Vestervig", - "Viborg", - "Viby J", - "Viby Sjælland", - "Videbæk", - "Vig", - "Vildbjerg", - "Vils", - "Vinderup", - "Vipperød", - "Virum", - "Vissenbjerg", - "Viuf", - "Vodskov", - "Vojens", - "Vonge", - "Vorbasse", - "Vordingborg", - "Vrå", - "Væggerløse", - "Værløse", - "Ærøskøbing", - "Ølgod", - "Ølsted", - "Ølstykke", - "Ørbæk", - "Ørnhøj", - "Ørsted", - "Ørum Djurs", - "Østbirk", - "Øster Assels", - "Øster Ulslev", - "Øster Vrå", - "Østermarie", - "Aabenraa", - "Aabybro", - "Åbyhøj", - "Aakirkeby", - "Aalborg", - "Ålbæk", - "Aalestrup", - "Ålsgårde", - "Århus", - "Årre", - "Aars", - "Årslev", - "Aarup", - ) - - countries = ( - "Afghanistan", - "Albanien", - "Algeriet", - "Andorra", - "Angola", - "Antigua og Barbuda", - "Argentina", - "Armenien", - "Aserbajdsjan", - "Australien", - "Bahamas", - "Bahrain", - "Bangladesh", - "Barbados", - "Belgien", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivia", - "Bosnien og Hercegovina", - "Botswana", - "Brasilien", - "Brunei", - "Bulgarien", - "Burkina Faso", - "Burma", - "Burundi", - "Cambodja", - "Cameroun", - "Canada", - "Centralafrikanske Republik", - "Chile", - "Colombia", - "Comorerne", - "Republikken Congo", - "Den Demokratiske Republik Congo", - "Costa Rica", - "Cuba", - "Cypern", - "Danmark", - "Djibouti", - "Dominica", - "Dominikanske Republik", - "Ecuador", - "Egypten", - "El Salvador", - "Elfenbenskysten", - "Eritrea", - "Estland", - "Etiopien", - "Fiji", - "Filippinerne", - "Finland", - "Forenede Arabiske Emirater", - "Frankrig", - "Færøerne", - "Gabon", - "Gambia", - "Georgien", - "Ghana", - "Grenada", - "Grækenland", - "Grønland", - "Guatemala", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Fransk Guiana", - "Haiti", - "Holland", - "Honduras", - "Hviderusland", - "Indien", - "Indonesien", - "Irak", - "Iran", - "Irland", - "Island", - "Israel", - "Italien", - "Jamaica", - "Japan", - "Jordan", - "Kap Verde", - "Kasakhstan", - "Kenya", - "Kina", - "Kirgisistan", - "Kiribati", - "Kroatien", - "Kuwait", - "Laos", - "Lesotho", - "Letland", - "Libanon", - "Liberia", - "Libyen", - "Liechtenstein", - "Litauen", - "Luxembourg", - "Madagaskar", - "Malawi", - "Malaysia", - "Maldiverne", - "Mali", - "Malta", - "Marokko", - "Marshall-øerne", - "Mauretanien", - "Mauritius", - "Mexico", - "Mikronesien", - "Moldova", - "Monaco", - "Mongoliet", - "Montenegro", - "Mozambique", - "Myanmar", - "Namibia", - "Nauru", - "Nederlandske Antiller", - "Nepal", - "New Zealand", - "Nicaragua", - "Niger", - "Nigeria", - "Niue", - "Nordkorea", - "Nordmakedonien", - "Norge", - "Oman", - "Pakistan", - "Palau", - "Palæstinensisk Selvstyreområde", - "Panama", - "Papua Ny Guinea", - "Paraguay", - "Peru", - "Pitcairn", - "Polen", - "Portugal", - "Puerto Rico", - "Qatar", - "Rumænien", - "Rusland", - "Rwanda", - "Saint Kitts and Nevis", - "Saint Lucia", - "Saint Vincent og Grenadinerne", - "Salomonøerne", - "Samoa", - "San Marino", - "São Tomé og Príncipe", - "Saudi-Arabien", - "Schweiz", - "Senegal", - "Serbien", - "Seychellerne", - "Sierra Leone", - "Singapore", - "Slovakiet", - "Slovenien", - "Somalia", - "Spanien", - "Sri Lanka", - "Storbritannien", - "Sudan", - "Surinam", - "Sverige", - "Swaziland", - "Sydafrika", - "Sydkorea", - "Syrien", - "Tadsjikistan", - "Taiwan", - "Tanzania", - "Tchad", - "Thailand", - "Tjekkiet", - "Tjetjenien", - "Togo", - "Tonga", - "Trinidad og Tobago", - "Tunesien", - "Turkmenistan", - "Tuvalu", - "Tyrkiet", - "Tyskland", - "Uganda", - "Ukraine", - "Ungarn", - "Uruguay", - "USA", - "Usbekistan", - "Vanuatu", - "Vatikanstaten", - "Venezuela", - "Vestsahara", - "Vietnam", - "Yemen", - "Zambia", - "Zimbabwe", - "Ækvatorialguinea", - "Østrig", - "Østtimor", - ) - - # Known as regions in Denmark - states = ( - "Hovedstaden", - "Midtjylland", - "Nordjylland", - "Sjælland", - "Syddanmark", - ) - - def dk_street_name(self) -> str: - """ - This returns the name of a street, without any suffix. - """ - return self.random_element(self.street_names) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/da_DK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/da_DK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 069c90886c5832e9c0cdbf683f1cadd390bfb79f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28530 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/de/__init__.py deleted file mode 100644 index d9f07fe..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/de/__init__.py +++ /dev/null @@ -1,253 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - countries = ( - "Afghanistan", - "Alandinseln", - "Albanien", - "Algerien", - "Amerikanisch-Ozeanien", - "Amerikanisch-Samoa", - "Amerikanische Jungferninseln", - "Andorra", - "Angola", - "Anguilla", - "Antarktis", - "Antigua und Barbuda", - "Argentinien", - "Armenien", - "Aruba", - "Aserbaidschan", - "Australien", - "Bahamas", - "Bahrain", - "Bangladesch", - "Barbados", - "Belarus", - "Belgien", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivien", - "Bosnien und Herzegowina", - "Botsuana", - "Bouvetinsel", - "Brasilien", - "Britische Jungferninseln", - "Britisches Territorium im Indischen Ozean", - "Brunei Darussalam", - "Bulgarien", - "Burkina Faso", - "Burundi", - "Chile", - "China", - "Cookinseln", - "Costa Rica", - "Côte d’Ivoire", - "Demokratische Republik Kongo", - "Demokratische Volksrepublik Korea", - "Deutschland", - "Dominica", - "Dominikanische Republik", - "Dschibuti", - "Dänemark", - "Ecuador", - "El Salvador", - "Eritrea", - "Estland", - "Falklandinseln", - "Fidschi", - "Finnland", - "Frankreich", - "Französisch-Guayana", - "Französisch-Polynesien", - "Färöer", - "Gabun", - "Gambia", - "Georgien", - "Ghana", - "Gibraltar", - "Grenada", - "Griechenland", - "Grönland", - "Guadeloupe", - "Guam", - "Guatemala", - "Guernsey", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Heard- und McDonald-Inseln", - "Honduras", - "Indien", - "Indonesien", - "Irak", - "Iran", - "Irland", - "Island", - "Isle of Man", - "Israel", - "Italien", - "Jamaika", - "Japan", - "Jemen", - "Jersey", - "Jordanien", - "Kaimaninseln", - "Kambodscha", - "Kamerun", - "Kanada", - "Kap Verde", - "Kasachstan", - "Katar", - "Kenia", - "Kirgisistan", - "Kiribati", - "Kokosinseln", - "Kolumbien", - "Komoren", - "Kongo", - "Kroatien", - "Kuba", - "Kuwait", - "Laos", - "Lesotho", - "Lettland", - "Libanon", - "Liberia", - "Libyen", - "Liechtenstein", - "Litauen", - "Luxemburg", - "Madagaskar", - "Malawi", - "Malaysia", - "Malediven", - "Mali", - "Malta", - "Marokko", - "Marshallinseln", - "Martinique", - "Mauretanien", - "Mauritius", - "Mayotte", - "Mexiko", - "Mikronesien", - "Monaco", - "Mongolei", - "Montenegro", - "Montserrat", - "Mosambik", - "Myanmar", - "Namibia", - "Nauru", - "Nepal", - "Neukaledonien", - "Neuseeland", - "Nicaragua", - "Niederlande", - "Niederländische Antillen", - "Niger", - "Nigeria", - "Niue", - "Nordmazedonien", - "Norfolkinsel", - "Norwegen", - "Nördliche Marianen", - "Oman", - "Osttimor", - "Pakistan", - "Palau", - "Palästinensische Gebiete", - "Panama", - "Papua-Neuguinea", - "Paraguay", - "Peru", - "Philippinen", - "Pitcairn", - "Polen", - "Portugal", - "Puerto Rico", - "Republik Korea", - "Republik Moldau", - "Ruanda", - "Rumänien", - "Russische Föderation", - "Réunion", - "Salomonen", - "Sambia", - "Samoa", - "San Marino", - "Saudi-Arabien", - "Schweden", - "Schweiz", - "Senegal", - "Serbien", - "Serbien und Montenegro", - "Seychellen", - "Sierra Leone", - "Simbabwe", - "Singapur", - "Slowakei", - "Slowenien", - "Somalia", - "Sonderverwaltungszone Hongkong", - "Sonderverwaltungszone Macao", - "Spanien", - "Sri Lanka", - "St. Barthélemy", - "St. Helena", - "St. Kitts und Nevis", - "St. Lucia", - "St. Martin", - "St. Pierre und Miquelon", - "St. Vincent und die Grenadinen", - "Sudan", - "Suriname", - "Svalbard und Jan Mayen", - "Swasiland", - "Syrien", - "São Tomé und Príncipe", - "Südafrika", - "Südgeorgien und die Südlichen Sandwichinseln", - "Tadschikistan", - "Taiwan", - "Tansania", - "Thailand", - "Togo", - "Tokelau", - "Tonga", - "Trinidad und Tobago", - "Tschad", - "Tschechische Republik", - "Tunesien", - "Turkmenistan", - "Turks- und Caicosinseln", - "Tuvalu", - "Türkei", - "Uganda", - "Ukraine", - "Ungarn", - "Uruguay", - "Usbekistan", - "Vanuatu", - "Vatikanstadt", - "Venezuela", - "Vereinigte Arabische Emirate", - "Vereinigte Staaten", - "Vereinigtes Königreich", - "Vietnam", - "Wallis und Futuna", - "Weihnachtsinsel", - "Westsahara", - "Zentralafrikanische Republik", - "Zypern", - "Ägypten", - "Äquatorialguinea", - "Äthiopien", - "Äußeres Ozeanien", - "Österreich", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/de/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2eef499241c664455a027d8a86e4bb8eeb6dde81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3632 zcmZu!&u=416}FT3XOams!|W`uLd^vcq>Kez5t2QbcoN5+Xza;IxmeHcO1swGUEZp$ zWZV}(ngf3UD^47k%Ls8>&1nTlKJp)w#05^=RvHk}p7>t1GdsH?Qe3a9o~z!E?|t?B zx82=liT^%pe*B{kN~M4L$@-(R9^d{D!l$LM6qe&sQoh(Imo`e>Qn>N56mE)*KW-L! z7v<&Fe&t^qnC+Kc{YHRoiK#V!~}{WMvGg(M~hc^GurjE<_nw3Tzq%9nupU5{%T5 z!1~%Wod_>g+S*RY?Y5236Othegh$P`HJPTE-KceFMhO`&Xp-=^LunLKD4^`>d;x`u z_eD(F7DB{dtzt#y!c{uBj876eVOy%5ndQLMJ1Uk}9HILiW!N5X@?)WM5vgmL!oiNp zj3r3h9c8Zs96*>|qoc`4wlDv%qb0na&b}F~eE;2!2}VLgO=)S9KqkR4^2J|C1D}oj zc1PP($l#D2FcedQD{LH*&)-hR>N%_lj>ssuVWAvKS9v&-F}%Y7`1L@)FvrGixKYsPQ<0~b#$Uiz1iJEI#8~#)*>?D@+pr?@6{0Cp(Jy-GE=&w|? zKr{}8&ENqe&(#lAg2YZKzh6jesEOd_VAnW=vYgmV+6D|dT)j#~0=&4|qp3yubiVy4 z4u%w8@dT@g7T;5QWHNupts{!(@8P_5CAo`m+&-Sy)hp3 zT}w-((cb^&#+izjsW3>Tt@GaMm0rCO+EuzVvA|H5l8FQmxs!A6S1>n1K0*C_i zuGZBeB>-!ui+pif*&gp`7l*B_g9V|8m0bw81sNH}XND+n9d#|L%!noKvoaNw?-t`h zM*$5+Mgb(l;ZHI23Y{TuG)h)A?1x8ErN5QL*bxjXgc$hR_PH3w$el40&G2r z&?Aq&Xfcr!AQ#JOuFU$DMo+~SnPSH1sYD?o_&USc)q7e&9}8POCYx%{UL%Tb>y(%_ zPK8m~3~Hw$E3j5O#RaLtNf5xC_zHw24%j{A{AMCGnP5gal^I#AH%{#fkxZU+p8g*T5)`OM`16*e@hy}%NcOdMXJyG74CZoX)P1G9cSaGKauGLCPU$ zR?0tE3kCVShoqrcBKn-pd}k;bQo*T!1+G4n$%H1?UP>bb6R8-+>YC<2V}qrl8>kIc zf})`O`$KS;&{slVqdd@rm>dTMV76$E|NMLZf4@&t!UH)3J+Y;Yp_aiZ-UPCHh}tlF z!0kvjTfL4&vdo*j@L0fJ%I~t=lUZiGTLW>0MyA1wr*;a1ylzp7`F&nKV+TbM11`>3 zrLYB(5~swYoGYMFwHcE*W6xkIaP;C z?g8wF?7->|Dj2C`_1f#7>D8aosay!lE$VRfc}SPs=Gh19X|#T_-r2%BzC=b zYFX3F?ueM7<+?noBa+u_>WET%ouJYJez077(Ef`04ypmo09$uQF`{dGk z`gqJB9gkgeJWf<-W0rTuW84t0cN$Y=VWt%3b?GgRD1Di?W-1Y_3{NUrn-{Iojews! zAB$<$O5{|l#dd*-C#}U2?{NCF2S52~%g9U|END8XNSM|oh(fpUCI5rT zv?vT=y=jG_H69~Z*?9b5vGhNV{Kpn7Fpw62{)Jv)%D>GFegl@i*esXJe=q&`-__-2x%!)5{-?yF|K9%q DjeAao diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de_AT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/de_AT/__init__.py deleted file mode 100644 index 5cd3a94..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/de_AT/__init__.py +++ /dev/null @@ -1,280 +0,0 @@ -from ..de import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - - city_with_postcode_formats = ("{{postcode}} {{city}}",) - - street_name_formats = ( - "{{first_name}}-{{last_name}}-{{street_suffix_long}}", - "{{last_name}}{{street_suffix_short}}", - ) - street_address_formats = ("{{street_name}} {{building_number}}",) - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - building_number_formats = ("###", "##", "#", "#/#") - - street_suffixes_long = ( - "Gasse", - "Platz", - "Ring", - "Straße", - "Weg", - ) - street_suffixes_short = ( - "gasse", - "platz", - "ring", - "straße", - "str.", - "weg", - ) - - # https://en.wikipedia.org/wiki/List_of_postal_codes_in_Austria - postcode_formats = ( - "1###", - "2###", - "3###", - "4###", - "5###", - "6###", - "7###", - "8###", - "9###", - ) - - # https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Austria - cities = ( - "Allentsteig", - "Altheim", - "Althofen", - "Amstetten", - "Ansfelden", - "Attnang-Puchheim", - "Bad Aussee", - "Bad Hall", - "Bad Ischl", - "Bad Leonfelden", - "Bad Radkersburg", - "Bad Sankt Leonhard im Lavanttal", - "Bad Vöslau", - "Baden", - "Bärnbach", - "Berndorf", - "Bischofshofen", - "Bleiburg", - "Bludenz", - "Braunau am Inn", - "Bregenz", - "Bruck an der Leitha", - "Bruck an der Mur", - "Deutsch-Wagram", - "Deutschlandsberg", - "Dornbirn", - "Drosendorf-Zissersdorf 1", - "Dürnstein", - "Ebenfurth", - "Ebreichsdorf", - "Eferding", - "Eggenburg", - "Eisenerz", - "Eisenstadt", - "Enns", - "Fehring", - "Feldbach", - "Feldkirch", - "Feldkirchen", - "Ferlach", - "Fischamend", - "Frauenkirchen", - "Freistadt", - "Friedberg", - "Friesach", - "Frohnleiten", - "Fürstenfeld", - "Gallneukirchen", - "Gänserndorf", - "Geras", - "Gerasdorf bei Wien", - "Gföhl", - "Gleisdorf", - "Gloggnitz", - "Gmünd", - "Gmünd in Kärnten", - "Gmunden", - "Graz", - "Grein", - "Grieskirchen", - "Groß-Enzersdorf", - "Groß-Gerungs", - "Groß-Siegharts", - "Güssing", - "Haag", - "Hainburg an der Donau", - "Hainfeld", - "Hall in Tirol", - "Hallein", - "Hardegg", - "Hartberg", - "Heidenreichstein", - "Herzogenburg", - "Imst", - "Innsbruck", - "Jennersdorf", - "Judenburg", - "Kapfenberg", - "Kindberg", - "Klagenfurt", - "Klosterneuburg", - "Knittelfeld", - "Köflach", - "Korneuburg", - "Krems an der Donau", - "Kufstein", - "Laa an der Thaya", - "Laakirchen", - "Landeck", - "Langenlois", - "Leibnitz", - "Leoben", - "Lienz", - "Liezen", - "Lilienfeld", - "Linz", - "Litschau", - "Maissau", - "Mank", - "Mannersdorf am Leithagebirge", - "Marchegg", - "Marchtrenk", - "Mariazell", - "Mattersburg", - "Mattighofen", - "Mautern an der Donau", - "Melk", - "Mistelbach an der Zaya", - "Mödling", - "Murau", - "Mureck", - "Mürzzuschlag", - "Neulengbach", - "Neumarkt am Wallersee", - "Neunkirchen", - "Neusiedl am See", - "Oberndorf bei Salzburg", - "Oberpullendorf", - "Oberwart", - "Oberwälz", - "Perg", - "Peuerbach", - "Pinkafeld", - "Pöchlarn", - "Poysdorf", - "Pregarten", - "Pulkau", - "Purbach am Neusiedler See", - "Purkersdorf", - "Raabs an der Thaya", - "Radenthein", - "Radstadt", - "Rattenberg", - "Retz", - "Ried im Innkreis", - "Rohrbach in Oberösterreich", - "Rottenmann", - "Rust", - "Saalfelden am Steinernen Meer", - "Salzburg", - "Sankt Andrä im Lavanttal", - "Sankt Johann im Pongau", - "Sankt Pölten", - "Sankt Valentin", - "Sankt Veit an der Glan", - "Schärding", - "Scheibbs", - "Schladming", - "Schrattenthal", - "Schrems", - "Schwanenstadt", - "Schwaz", - "Schwechat", - "Spittal an der Drau", - "Stadtschlaining", - "Steyr", - "Steyregg", - "Stockerau", - "Straßburg", - "Ternitz", - "Traiskirchen", - "Traismauer", - "Traun", - "Trieben", - "Trofaiach", - "Tulln an der Donau", - "Villach", - "Vils", - "Vöcklabruck", - "Voitsberg", - "Völkermarkt", - "Waidhofen an der Thaya", - "Waidhofen an der Ybbs", - "Weitra", - "Weiz", - "Wels", - "Wien", - "Wiener Neustadt", - "Wieselburg", - "Wilhelmsburg", - "Wolfsberg", - "Wolkersdorf", - "Wörgl", - "Ybbs an der Donau", - "Zell am See", - "Zeltweg", - "Zistersdorf", - "Zwettl", - ) - - # https://en.wikipedia.org/wiki/States_of_Austria - states = ( - "Wien", - "Steiermark", - "Burgenland", - "Tirol", - "Niederösterreich", - "Oberösterreich", - "Salzburg", - "Kärnten", - "Vorarlberg", - ) - - municipality_key_formats = ( - "1####", - "2####", - "3####", - "4####", - "5####", - "6####", - "7####", - "8####", - "9####", - ) - - def street_suffix_short(self) -> str: - return self.random_element(self.street_suffixes_short) - - def street_suffix_long(self) -> str: - return self.random_element(self.street_suffixes_long) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def city_with_postcode(self) -> str: - pattern: str = self.random_element(self.city_with_postcode_formats) - return self.generator.parse(pattern) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de_AT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/de_AT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b5cc4283ff62f3596537e70f26763acc61e3b237..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5123 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 j{sl|mCFPA`*zZfH(|=1n|5 Tuple[str, str]: - """ - Randomly returns a swiss canton ('Abbreviated', 'Name'). - :example ('ZH', 'Zürich') - """ - return self.random_element(self.cantons) - - def city_name(self) -> str: - """ - Randomly returns a swiss city. - :example 'Zug' - """ - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - """ - Randomly returns a Swiss canton name. - :example 'Zürich' - """ - return self.canton()[1] - - canton_name = administrative_unit - - def canton_code(self) -> str: - """ - Randomly returns a Swiss canton code. - :example 'ZH' - """ - return self.canton()[0] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/de_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0e0b2128f396a579cf87b6dd33acfc5cc188df1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4211 zcmcInO^hQ)6>i(z?Vs5h&t^A2B#>AcEfY)edN&&&Bn#4bchGY7jR@+~0i$#2cEWSqVq$CmM-_W+knZ zlkBG&dO}NTRn5|0(=3DP@1>$OjnvRArazX0VnP^e!N8#(C!~f z?j_FLOP-lw8BD7tOr4pT5ozu-!a2o?$9Hxd!u@!~&JJcM^_x8CbnIdYpVUaYQLe{=T!Smw8giDF-I5)L}t!%Z2pSvfI)e?C$e*$j_3H4x!~Achl1lc zn1M_%0o&&spZlZRzE54O?z8b~*797T&oRFz^a>$N7!_hc1|6r4m_WxVl*$T6}r7E({%S%h1>l3JHTqau{7n#e{;fPZgludp6hUW${Z!VAaTGUlXnDZ^k7Mb~W&~m8D zMQ+}9xlJwVz#a4bJ}fb>I7E6qcLhb<+00 z*~TP7u6&bTM2vjMrx(38VXi04#h^>j8;gO@hH@B6FzJg!&XsaYquba-1t+sa7;JTi zLSKUGgt-KDV0m^4(SzG;Y_~**%yt!ymPQ}+V7o|581(2+WF!HPY(q?Xl?QqFVrjIe zeBY7)q%@ekkH>wA%_K&o6ptLKF9poTu7OOWP?*aE8OKF-nF0*TOi99tT*hsA2souz z06Q7Z>`KRneli}$3NjS}E7C>jl|e@VZ*m1^vVP!NDyZpIGL&hhbXe_-ZlfFlpJ9F# zkSaNpmsSEC4{Wb80(}5dbCubSGZe-u(q|avYh*BhemK2!P3CN_Msa+U%jp{IlR!0V z)RkzTsP({!vJ?Xw5Q)}8!ln|TM$ML`CRg+NNU@&B+&~uH+Gx+Wg;_^XA#|eN?vYL> z_CXdS$ELtI1W=5Ia9Ukn9bERR7-j1o(2LZ?0ri1RLu@fX9>GI0k?!T{{@Fs6pdLg3 zucL}}h?uDR6dvKq>vCYbW53sf9uQIw7-A~YYXB)cpm4F)8@(@muCMh1Xtd50xQun_ zcwwxEkPCAg#F2on1z|W9(`$@uNuARhhzQJ41o!N1VQkPX;0qG~A7#MYE;Gg(trQZ7nZCNrj+_iA=-mM7!h~9!|R9bs!F|qFs?{ z1l><%32uz`7-C<1w3rmhxvDU6;dDu$MpwfJ=YS|Tgqnq`$W6w2xY=AaSqmRJnw$&d zt#LG4nP>81mx7hWa9Z6hB@_`0fFd1V@$0xhYV%S5@a(c}y;q5U4Fd`)u*V*NG-SRwpaZGL^XKm{hcs|m8Wm9BUT1Vr0m3gsj zeSvkys=&ae<2$P1(ZTykD$6W90L!c((ztrnwOHj0fk`*dM;8855Z;@QIuo~PTS zkLMvI8w*k(hR|&BPy{wk$&113H>pE$k@_MXZO`9L2pvK1aH(M7-pz8)>(jE2ia`5h zySz3g@aBApw*7M7ZZmHX4_cmIKD$NTt+Hdc%7dZb^V|z(&p%Vul6v-Vbur0)3LRmi?c*+H zKgS^QI{Ss>XAj@a;R8qJkKfXNlhVg|;Dxtd_$XiA&y?9OA@UgyNE|A>J_X{7@cJI+ zXo)$TZbwQ?n^@&1T=T0*8V=(QLjP5Ik4= zYNT-0@mQbuTs-`_FQ?{sBLA81F1%|_#SFF0Sn8pe8K>~k>d!N#$KPFJ5%w#o_|Ie` zF)32mDZ;|9CGWSAH+F$MlKmc>cOz3(f~YS{)yQ`?e-+JZ+MQEpb{FqFesN!a?9Ri5 zAKlnpx%23^_VtJFd}V%LfAr2nmv>hVlDS9Bef{*oBkkmrxqIc{n(yc(X3)!oiew>Z`lg4|LGC>YqrKih)vRxo8N} z9}aN8N2Vq5z>+UBk)Mk`M90Boe*`yLC{zAk=3*4HZ?ivPDDy+5_(3X>Nc>fM str: - return self.random_element(self.street_suffixes_short) - - def street_suffix_long(self) -> str: - return self.random_element(self.street_suffixes_long) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def city_with_postcode(self) -> str: - pattern: str = self.random_element(self.city_with_postcode_formats) - return self.generator.parse(pattern) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/de_DE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/de_DE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b764b68fa4f468d9f9e822d6e95590753e70c598..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7246 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 A$^ZZW diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/el_GR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/el_GR/__init__.py deleted file mode 100644 index d787427..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/el_GR/__init__.py +++ /dev/null @@ -1,4952 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ( - "###", - "##", - "##", - "##", - "#", - "#", - "##-##", - "###-###", - ) - - street_prefixes_short = ( - "Πλ.", - "Πάρ.", - "Λεωφ.", - ) - - street_prefixes_long = ( - "Πλατεία", - "Πάροδος", - "Λεωφόρος", - ) - - street_name_formats = ( - "{{street_prefix}} {{street}}", - "{{street}}", - "{{street}}", - "{{street}}", - "{{last_name_female}}", - ) - - street_address_formats = ("{{street_name}} {{building_number}}",) - - postcode_formats = ( - "### ##", - "#####", - "#####", - "ΤΚ ### ##", - "ΤΚ #####", - ) - - address_formats = ("{{street_address}},\n{{postcode}} {{city}}",) - - line_address_formats = ("{{street_address}}, {{postcode}} {{city}}",) - - def line_address(self) -> str: - pattern: str = self.random_element(self.line_address_formats) - return self.generator.parse(pattern) - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes_short + self.street_prefixes_long) - - def street_prefix_short(self) -> str: - return self.random_element(self.street_prefixes_short) - - def street_prefix_long(self) -> str: - return self.random_element(self.street_prefixes_long) - - def street(self) -> str: - return self.random_element(self.localities) - - def city(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.regions) - - region = administrative_unit - - # Ονόματα πρωτευουσών νομών - cities = ( - "Άμφισσα", - "Άρτα", - "Έδεσσα", - "Αγ. Νικόλαος", - "Αθήνα", - "Αλεξανδρούπολη", - "Αργοστόλι", - "Βέροια", - "Βόλος", - "Γρεβενά", - "Δράμα", - "Ερμούπολη", - "Ζάκυνθος", - "Ηγουμενίτσα", - "Ηράκλειο", - "Θεσσαλονίκη", - "Ιωάννινα", - "Κέρκυρα", - "Καβάλα", - "Καλαμάτα", - "Καρδίτσα", - "Καρπενήσι", - "Καστοριά", - "Κατερίνη", - "Κιλκίς", - "Κοζάνη", - "Κομοτηνή", - "Κόρινθος", - "Λάρισα", - "Λαμία", - "Λευκάδα", - "Λιβαδιά", - "Μεσολόγγι", - "Μυτιλήνη", - "Ναύπλιο", - "Ξάνθη", - "Πάτρα", - "Πολύγυρος", - "Πρέβεζα", - "Πύργος", - "Ρέθυμνο", - "Ρόδος", - "Σάμος", - "Σέρρες", - "Σπάρτη", - "Τρίκαλα", - "Τρίπολη", - "Φλώρινα", - "Χίος", - "Χαλκίδα", - "Χανιά", - ) - - # Ονόματα νομών - regions = ( - "Αιτωλία & Ακαρνανία", - "Αργολίδα", - "Αρκαδία", - "Άρτα", - "Αττική", - "Αχαΐα", - "Βοιωτία", - "Γρεβενά", - "Δράμα", - "Δωδεκάνησσος", - "Έβρος", - "Ευρυτανία", - "Εύβοια", - "Ζάκυνθος", - "Ηλεία", - "Ημαθία", - "Ηράκλειο", - "Θεσπρωτία", - "Θεσσαλονίκη", - "Ιωάννινα", - "Κέρκυρα", - "Καβάλα", - "Καρδίτσα", - "Καστοριά", - "Κεφαλληνία", - "Κιλκίς", - "Κοζάνη", - "Κορινθία", - "Κυκλάδες", - "Λάρισσα", - "Λέσβος", - "Λακωνία", - "Λασσίθι", - "Λευκάδα", - "Μαγνησία", - "Μεσσηνία", - "Ξάνθη", - "Πέλλα", - "Πιερία", - "Πρέβεζα", - "Ρέθυμνο", - "Ροδόπη", - "Σάμος", - "Σέρρες", - "Τρίκαλα", - "Φθιώτιδα", - "Φλώρινα", - "Φωκίδα", - "Χίος", - "Χαλκιδική", - "Χανιά", - ) - - # Ονόματα χωρών - countries = ( - "Άγιος Βαρθολομαίος", - "Άγιος Βικέντιος και Γρεναδίνες", - "Άγιος Μαρίνος", - "Άγιος Μαρτίνος", - "Άγιος Μαρτίνος (Γαλλικό Κομμάτι)", - "Άγιος Πέτρος και Μικελόν", - "Άγιος Χριστόφορος και Νέβις", - "Αίγυπτος", - "Αγία Ελένη, Ασενσιόν και Τριστάν ντα Κούνια", - "Αγία Λουκία", - "Αζερμπαϊτζάν", - "Αιθιοπία", - "Ακτή Ελεφαντοστού", - "Αλβανία", - "Αλγερία", - "Αμερικανικές Παρθένοι Νήσοι", - "Αμερικανική Σαμόα", - "Ανατολικό Τιμόρ", - "Ανγκουίλα", - "Ανγκόλα", - "Ανδόρα", - "Αντίγκουα και Μπαρμπούντα", - "Ανταρκτική", - "Απομακρυσμένες Νησίδες των Ηνωμένων Πολιτειών", - "Αραβική Δημοκρατία της Λιβύης", - "Αργεντινή", - "Αρμενία", - "Αρούμπα", - "Αυστρία", - "Αυστραλία", - "Αφγανιστάν", - "Αϊτή", - "Βέλγιο", - "Βανουάτου", - "Βατικανό", - "Βενεζουέλα", - "Βερμούδες", - "Βιετνάμ", - "Βολιβία", - "Βοσνία-Ερζεγοβίνη", - "Βουλγαρία", - "Βραζιλία", - "Βρετανικές Παρθένοι Νήσοι", - "Βρετανικό Έδαφος Ινδικού Ωκεανού", - "Βόρειες Μαριάνες Νήσοι", - "Γαλλία", - "Γαλλικά Νότια και Ανταρκτικά Εδάφη", - "Γαλλική Γουιάνα", - "Γαλλική Πολυνησία", - "Γερμανία", - "Γεωργία", - "Γιβραλτάρ", - "Γκάμπια", - "Γκάνα", - "Γκέρνσεϊ", - "Γκαμπόν", - "Γκουάμ", - "Γουάλις και Φουτούνα", - "Γουαδελούπη", - "Γουατεμάλα", - "Γουιάνα", - "Γουινέα", - "Γουινέα-Μπισσάου", - "Γρενάδα", - "Γροιλανδία", - "Δανία", - "Δημοκρατία της Βόρειας Μακεδονίας", - "Δημοκρατία της Κορέας", - "Δομινίκα", - "Δομινικανή Δημοκρατία", - "Δυτική Σαχάρα", - "Ελ Σαλβαδόρ", - "Ελβετία", - "Ελλάδα", - "Ερυθραία", - "Εσθονία", - "Ζάμπια", - "Ζιμπάμπουε", - "Ηνωμένα Αραβικά Εμιράτα", - "Ηνωμένες Πολιτείες Αμερικής", - "Ηνωμένο Βασίλειο", - "Ιαπωνία", - "Ινδία", - "Ινδονησία", - "Ιορδανία", - "Ιράκ", - "Ιράν", - "Ιρλανδία", - "Ισημερινή Γουινέα", - "Ισημερινός", - "Ισλανδία", - "Ισπανία", - "Ισραήλ", - "Ιταλία", - "Κένυα", - "Κίνα", - "Καζακστάν", - "Καμερούν", - "Καμπότζη", - "Καναδάς", - "Κατάρ", - "Κεντροαφρικανική Δημοκρατία", - "Κιργιστάν", - "Κιριμπάτι", - "Κολομβία", - "Κομόρες", - "Κονγκό", - "Κουβέιτ", - "Κουρακάο", - "Κούβα", - "Κροατία", - "Κόστα Ρίκα", - "Κύπρος", - "Λίβανος", - "Λαοκρατική Δημοκρατία της Κορέας", - "Λαϊκή Δημοκρατία του Κονγκό", - "Λαϊκή Δημοκρατία του Λάος", - "Λεσότο", - "Λετονία", - "Λευκορωσία", - "Λιβερία", - "Λιθουανία", - "Λιχτενστάϊν", - "Λουξεμβούργο", - "Μάλι", - "Μάλτα", - "Μαγιότ", - "Μαδαγασκάρη", - "Μακάο", - "Μαλάουι", - "Μαλαισία", - "Μαλδίβες", - "Μαρτινίκη", - "Μαρόκο", - "Μαυρίκιος", - "Μαυριτανία", - "Μαυροβούνιο", - "Μεξικό", - "Μιανμάρ", - "Μικρονησία", - "Μογγολία", - "Μοζαμβίκη", - "Μολδαβία", - "Μονακό", - "Μονσεράτ", - "Μπαγκλαντές", - "Μπαρμπάντος", - "Μπαχάμες", - "Μπαχρέιν", - "Μπελίζ", - "Μπενίν", - "Μποτσουάνα", - "Μπουρκίνα Φάσο", - "Μπουρουντί", - "Μπουτάν", - "Μπρουνέι", - "Νέα Ζηλανδία", - "Νέα Καληδονία", - "Νήσοι Κουκ", - "Νήσοι Κόκος", - "Νήσοι Μάρσαλ", - "Νήσοι Πίτκαιρν", - "Νήσοι Σολομώντα", - "Νήσοι Φώκλαντ", - "Νήσοι Χερντ και Μακντόναλντ", - "Νήσοι Ώλαντ", - "Νήσος Μαν", - "Νήσος Μπουβέ", - "Νήσος των Χριστουγέννων", - "Νίγηρας", - "Ναμίμπια", - "Ναουρού", - "Νεπάλ", - "Νησί Νόρφολκ", - "Νησιά Καϋμάν", - "Νησιά Τερκς και Κάικος", - "Νησιά Φερόες", - "Νιγηρία", - "Νικαράγουα", - "Νιούε", - "Νορβηγία", - "Νότιος Αφρική", - "Νότιος Γεωργία και οι Νότιοι Σάντουιτς Νήσοι", - "Ολλανδία", - "Ολλανδικές Αντίλλες", - "Ομάν", - "Ονδούρα", - "Ουγγαρία", - "Ουγκάντα", - "Ουζμπεκιστάν", - "Ουκρανία", - "Ουρουγουάη", - "Πακιστάν", - "Παλάου", - "Παλαιστίνη", - "Παναμάς", - "Παπούα Νέα Γουινέα", - "Παραγουάη", - "Περού", - "Πολωνία", - "Πορτογαλία", - "Πουέρτο Ρίκο", - "Πράσινο Ακρωτήρι", - "Ρεϊνιόν", - "Ρουάντα", - "Ρουμανία", - "Ρωσία", - "Σάο Τομέ και Πρίνσιπε", - "Σαμόα", - "Σαουδική Αραβία", - "Σβάλμπαρντ και Γιαν Μαγιέν", - "Σενεγάλη", - "Σερβία", - "Σεϋχέλλες", - "Σιέρα Λεόνε", - "Σιγκαπούρη", - "Σλοβακία", - "Σλοβενία", - "Σομαλία", - "Σουαζιλάνδη", - "Σουδάν", - "Σουηδία", - "Σουρινάμ", - "Σρι Λάνκα", - "Συρία", - "Τανζανία", - "Τατζικιστάν", - "Ταϊβάν", - "Ταϊλάνδη", - "Τζέρσεϊ", - "Τζαμάικα", - "Τζιμπουτί", - "Τοκελάου", - "Τουβαλού", - "Τουρκία", - "Τουρκμενιστάν", - "Τρινιντάντ και Τομπάγκο", - "Τσαντ", - "Τσεχία", - "Τυνησία", - "Τόγκο", - "Τόνγκα", - "Υεμένη", - "Φίτζι", - "Φιλιππίνες", - "Φινλανδία", - "Χιλή", - "Χονγκ Κονγκ", - ) - - # Επίσημα τοπικά διαμερίσματα. - # Χρησιμοποιούνται ως ονόματα δρόμων (λόγω ανάγκης για γενική κλίση). - # Η λίστα είναι από το ΥΠ.ΕΣ. (μετά από επεξεργασία και μορφοποίηση) - localities = ( - "Άγρα", - "Άγρας", - "Άδελε", - "Άκρης", - "Άλλης Μεριάς", - "Άλσους", - "Άμμου", - "Άμπλιανης", - "Άνδρου", - "Άργους", - "Άργους Ορεστικού", - "Άρζου", - "Άρλας", - "Άρμπουνα", - "Άρνης", - "Άσκρης", - "Άσου", - "Άσπρου", - "Άσπρων Σπιτιών", - "Άσσου", - "Άστρους", - "Άτταλης", - "Άφρας", - "Έλους", - "Έμπωνα", - "Έρφων", - "Ήπιον", - "Ήρας", - "Ίδας", - "Ίμπρου", - "Ίσαρη", - "Αΐμονα", - "Αβάτου", - "Αβίας", - "Αβαρίκου", - "Αβγαριάς", - "Αβγού", - "Αβδέλλας", - "Αβδήρων", - "Αβδού", - "Αβρακόντε", - "Αβραμιού", - "Αβραμυλιάς", - "Αβόρανης", - "Αβόρου", - "Αγάπης", - "Αγία Βαρβάρα", - "Αγία Κυριακή", - "Αγία Παρασκευή", - "Αγίας Άννας", - "Αγίας Άννης", - "Αγίας Αναστασίας", - "Αγίας Βαρβάρας", - "Αγίας Βλαχέρνης", - "Αγίας Γαλήνης", - "Αγίας Ειρήνης", - "Αγίας Ελένης", - "Αγίας Ευθυμίας", - "Αγίας Ευφημίας", - "Αγίας Θέκλης", - "Αγίας Κυριακής", - "Αγίας Μαρίνης", - "Αγίας Μαύρας", - "Αγίας Παρασκευής", - "Αγίας Ρουμέλης", - "Αγίας Σοφίας", - "Αγίας Σωτήρας", - "Αγίου", - "Αγίου Αδριανού", - "Αγίου Αθανασίου", - "Αγίου Ακακίου", - "Αγίου Ανδρέου", - "Αγίου Αντωνίου", - "Αγίου Αρσενίου", - "Αγίου Αχιλλείου", - "Αγίου Βαρθολομαίου", - "Αγίου Βασιλείου", - "Αγίου Βασιλείου Κυνουρίας", - "Αγίου Βασιλείου Μαντινείας", - "Αγίου Βησσαρίου", - "Αγίου Βλασίου", - "Αγίου Γερμανού", - "Αγίου Γεωργίου", - "Αγίου Γεωργίου Δομοκού", - "Αγίου Γεωργίου Λαρίσης", - "Αγίου Γεωργίου Λασιθίου", - "Αγίου Γεωργίου Νηλείας", - "Αγίου Γεωργίου Σητείας", - "Αγίου Γεωργίου Συκούση", - "Αγίου Γεωργίου Φαρσάλων", - "Αγίου Γεωργίου Φερών", - "Αγίου Δημητρίου", - "Αγίου Δημητρίου Μονεμβασίας", - "Αγίου Δημητρίου Πηλίου", - "Αγίου Ευστρατίου", - "Αγίου Ηλία", - "Αγίου Ηλία Πηνηίων", - "Αγίου Ηλία Πύργου", - "Αγίου Θεοδώρου", - "Αγίου Θωμά", - "Αγίου Ισιδώρου", - "Αγίου Ιωάννη", - "Αγίου Ιωάννου", - "Αγίου Ιωάννου Αγίου Βασιλείου", - "Αγίου Ιωάννου Αμαρίου", - "Αγίου Ιωάννου Αρχαίας Ηραίας", - "Αγίου Ιωάννου Επιδαύρου Λιμήρας", - "Αγίου Ιωάννου Μυλοποτάμου", - "Αγίου Ιωάννου Ρέντη", - "Αγίου Κηρύκου", - "Αγίου Κοσμά", - "Αγίου Κυρίλλου", - "Αγίου Κωνσταντίνου", - "Αγίου Λαυρεντίου", - "Αγίου Λουκά", - "Αγίου Μάρκου", - "Αγίου Ματθαίου", - "Αγίου Μηνά", - "Αγίου Νικήτα", - "Αγίου Νικολάου", - "Αγίου Νικολάου Βοιών", - "Αγίου Νικολάου Βονίτσης και Ξηρομέρου", - "Αγίου Νικολάου Κράλης", - "Αγίου Νικολάου Μονεμβασίας", - "Αγίου Νικολάου Σπάτων", - "Αγίου Ονουφρίου", - "Αγίου Πέτρου", - "Αγίου Παντελεήμονα", - "Αγίου Παύλου", - "Αγίου Πολυκάρπου", - "Αγίου Προδρόμου", - "Αγίου Προκοπίου", - "Αγίου Σεραφείμ", - "Αγίου Στεφάνου", - "Αγίου Σύλλα", - "Αγίου Σώστου", - "Αγίου Φλώρου", - "Αγίου Χαραλάμπους", - "Αγίου Χριστοφόρου", - "Αγίων Αναργύρων", - "Αγίων Αποστόλων", - "Αγίων Δέκα", - "Αγίων Δούλων", - "Αγίων Θεοδώρων", - "Αγίων Πάντων", - "Αγίων Παρασκιών", - "Αγαθονησίου", - "Αγαθουπόλεως", - "Αγαλά", - "Αγαλιανής", - "Αγαλιανού", - "Αγγίστης", - "Αγγελιανών", - "Αγγελοκάστρου", - "Αγγελοχωρίου", - "Αγγελώνας", - "Αγδινών", - "Αγιάς", - "Αγιάσου", - "Αγιοβλασιτίκων", - "Αγιονερίου", - "Αγιονορίου", - "Αγιοπηγής", - "Αγιοφύλλου", - "Αγιοχωρίου", - "Αγιοχώριον", - "Αγιωργιτίκων", - "Αγκίστρου", - "Αγκαθιάς", - "Αγκαιριάς", - "Αγκαρυώνων", - "Αγκιστρίου", - "Αγκουσελιανών", - "Αγνάντης", - "Αγνάντων", - "Αγναντερής", - "Αγναντερού", - "Αγναντιάς", - "Αγοράς", - "Αγράφων", - "Αγρίλου", - "Αγραμπέλων", - "Αγραπιδεών", - "Αγραπιδιάς", - "Αγραπιδοχωρίου", - "Αγραφών", - "Αγρελιάς", - "Αγριάνων", - "Αγριάς", - "Αγριακόνας", - "Αγριανής", - "Αγριδίου", - "Αγριλιάς Μεσσήνης", - "Αγριλιάς Τριφυλίας", - "Αγριλοβούνου", - "Αγρινίου", - "Αγριοβοτάνου", - "Αγροσυκέας", - "Αγρού", - "Αγχιάλου", - "Αγόριανης", - "Αδάμ", - "Αδένδρου", - "Αδαμίου", - "Αδελφικού", - "Αδριανής", - "Αερινού", - "Αετολόφου", - "Αετομηλίτσης", - "Αετοπέτρας", - "Αετοπέτρας Δωδώνης", - "Αετοπέτρας Κονίτσης", - "Αετορράχη", - "Αετορράχης", - "Αετού", - "Αζώρου", - "Αηδονίων", - "Αηδονιάς", - "Αηδονοχωρίου", - "Αθαμανίας", - "Αθαμανίου", - "Αθανίου", - "Αθανασίου Διάκου", - "Αθηναίου", - "Αθηναίων", - "Αθικίων", - "Αθύρων", - "Αιανής", - "Αιαντείου", - "Αιγάλεω", - "Αιγάνης", - "Αιγίνης", - "Αιγίου", - "Αιγείρας", - "Αιγείρου", - "Αιγιάλης", - "Αιγινίου", - "Αιγιών", - "Αιγών", - "Αιθαίας", - "Αισύμης", - "Αιτωλικού", - "Ακοντίου", - "Ακουμίων", - "Ακράτας", - "Ακρίτα", - "Ακρίτας", - "Ακρίων", - "Ακραιφνίου", - "Ακρασίου", - "Ακρινής", - "Ακριτοχωρίου", - "Ακρολίμνης", - "Ακροποτάμου", - "Ακροποταμιάς", - "Ακρωτηρίου", - "Ακρών", - "Ακταίου", - "Ακόβου", - "Αλέας", - "Αλίκων", - "Αλίμου", - "Αλαγνίου", - "Αλαγονίας", - "Αλαλκομενών", - "Αλατόπετρας", - "Αλειμματάδων", - "Αλεξάνδρου", - "Αλεξανδρείας", - "Αλεξανδρουπόλεως", - "Αλεποχωρίου", - "Αλεποχωρίου Μπότσαρη", - "Αλεπούς", - "Αλεστίων", - "Αλεσταίνης", - "Αλευράδας", - "Αλευρούς", - "Αληθινής", - "Αλιάρτου", - "Αλιβερίου", - "Αλικάμπου", - "Αλικανά", - "Αλικαρνασσού", - "Αλικιανού", - "Αλισσού", - "Αλιστράτης", - "Αλιφείρας", - "Αλμυροποτάμου", - "Αλμυρού", - "Αλοίδων", - "Αλοννήσου", - "Αλποχωρίου", - "Αλτομιρών", - "Αλυφαντών", - "Αλφάς", - "Αλφειούσης", - "Αλωνίων", - "Αλωνακίων", - "Αλωνισταίνης", - "Αλώνων", - "Αλώρου", - "Αμάδων", - "Αμαλιαπόλεως", - "Αμαξάδων", - "Αμαράντου", - "Αμαράντων", - "Αμαρίου", - "Αμαριανού", - "Αμαρουσίου", - "Αμαρύνθου", - "Αμβρακίας", - "Αμβροσίας", - "Αμελάντων", - "Αμιρά", - "Αμισιανών", - "Αμμολόχου", - "Αμμοτόπου", - "Αμμουδάρας", - "Αμμουδιάς", - "Αμμουλιανής", - "Αμμοχωρίου", - "Αμνάτου", - "Αμορίου", - "Αμοργιανών", - "Αμοργού", - "Αμουρίου", - "Αμπέλου", - "Αμπέλων", - "Αμπελίων", - "Αμπελακίου", - "Αμπελακίων", - "Αμπελακιωτίσσης", - "Αμπελείας", - "Αμπελειών", - "Αμπελιάς", - "Αμπελικού", - "Αμπελιώνας", - "Αμπελοκάμπου", - "Αμπελοκήπων", - "Αμπελοφύτου", - "Αμπελοχωρίου", - "Αμπελούζου", - "Αμυγδαλέας", - "Αμυγδαλής", - "Αμυγδαλεών", - "Αμυγδαλιάς", - "Αμυγδαλοκεφαλίου", - "Αμυκλών", - "Αμυνταίου", - "Αμφία", - "Αμφίσσης", - "Αμφείας", - "Αμφιθέας", - "Αμφικλείας", - "Αμφιλοχίας", - "Αμφιπόλεως", - "Ανάβατου", - "Ανάβρας", - "Ανάφης", - "Ανέζης", - "Αναβρυτής", - "Αναβρυτού", - "Αναβρυτών", - "Αναβύσσου", - "Αναγεννήσεως", - "Ανακασιάς", - "Αναλήψεως", - "Αναργύρων", - "Αναρράχης", - "Αναστάσεως", - "Αναστασίας", - "Ανατολής", - "Ανατολικής", - "Ανατολικής Φραγκίστας", - "Ανατολικού", - "Αναφωνητρίας", - "Ανδανίας", - "Ανδρίτσης", - "Ανδραβίδας", - "Ανδριτσαίνης", - "Ανδρούσης", - "Ανδρωνιάνων", - "Ανεμοδουρίου", - "Ανεμομύλου", - "Ανεμορράχης", - "Ανεμοχωρίου", - "Ανεμότιας", - "Ανηλίου", - "Ανθήλης", - "Ανθής", - "Ανθείας", - "Ανθηρού", - "Ανθοτόπου", - "Ανθοφύτου", - "Ανθοχωρίου", - "Ανθοχωρίου Δωδώνης", - "Ανθοχωρίου Μετσόβου", - "Ανθοχώριον", - "Ανθούσης", - "Ανθρακίτη", - "Ανιάδας", - "Ανοίξεως", - "Ανοιξιάτικου", - "Αντίσσης", - "Ανταρτικού", - "Αντιγονείας", - "Αντικαλάμου", - "Αντικυθήρων", - "Αντικύρας", - "Αντιμαχείας", - "Αντιπάρου", - "Αντιπάτων Ερίσου", - "Αντιπερνών", - "Αντιρρίου", - "Αντισκαρίου", - "Αντιφιλίππων", - "Αντρωνίου", - "Ανυφίου", - "Ανωγής", - "Ανωγείου", - "Ανωγείων", - "Ανωπόλεως", - "Ανύδρου", - "Ανώσκελης", - "Αξιοκάστρου", - "Αξιουπόλεως", - "Αξιοχωρίου", - "Αξού", - "Απεράθου", - "Απερίου", - "Απεσωκαρίου", - "Απιδέα", - "Απιδέας", - "Απιδίων", - "Απλαδιανών", - "Αποδούλου", - "Αποικίων", - "Απολακκιάς", - "Απολλωνίας", - "Απολπαίνης", - "Αποστολιά", - "Αποστόλων", - "Απροβάτου", - "Απτέρων", - "Απόλλωνα", - "Αράξου", - "Αράχου", - "Αρήνης", - "Αρίας", - "Αρίσβη", - "Αρίσβης", - "Αρίστης", - "Αραβησσού", - "Αραχαμιτών", - "Αραχναίου", - "Αραχοβιτίκων", - "Αραχόβης", - "Αρβανίτη", - "Αργέννου", - "Αργίλου", - "Αργαλαστής", - "Αργασίου", - "Αργιθέας", - "Αργινίων", - "Αργολικού", - "Αργοστολίου", - "Αργυράδων", - "Αργυράς", - "Αργυρίου", - "Αργυρίων", - "Αργυροπουλείου", - "Αργυροτόπου", - "Αργυρουπόλεως", - "Αργυροχωρίου", - "Αργυρού", - "Αργυρού Πηγαδίου", - "Αργυρούπολης", - "Αργυρούπολις", - "Αρδάκτου", - "Αρδάσσης", - "Αρδαμερίου", - "Αρδανίου", - "Αρδείας", - "Αρδόσεως", - "Αρεθούσης", - "Αρεοπόλεως", - "Αρετής", - "Αριδαίας", - "Αριοχωρίου", - "Αριστοδημείου", - "Αριστομένους", - "Αρκάσας", - "Αρκίτσας", - "Αρκαδάδων", - "Αρκαδικού", - "Αρκαλοχωρίου", - "Αρκεσίνης", - "Αρκοχωρίου", - "Αρμάτων", - "Αρμένων", - "Αρματολικού", - "Αρμενάδων", - "Αρμενίου", - "Αρμενιών", - "Αρμενοχωρίου", - "Αρμολίων", - "Αρνά", - "Αρνίθας", - "Αρνίσσης", - "Αρναίας", - "Αροανίας", - "Αρραβωνίτσης", - "Αρριανά", - "Αρσενίου", - "Αρσινόης", - "Αρτάκης", - "Αρτέμιδας", - "Αρταίων", - "Αρτεμισίας", - "Αρτεμισίου", - "Αρτεσιανού", - "Αρτικίου", - "Αρτοπούλας", - "Αρτοτίνας", - "Αρφαρών", - "Αρχαίας Ήλιδας", - "Αρχαίας Ελεύθερνας", - "Αρχαίας Επιδαύρου", - "Αρχαίας Κορίνθου", - "Αρχαίας Μεσσήνης", - "Αρχαίας Νεμέας", - "Αρχαίας Ολυμπίας", - "Αρχαίας Πίσας", - "Αρχαίας Φενεού", - "Αρχαίων Κλεωνών", - "Αρχαγγέλου", - "Αρχανίου", - "Αρχανών", - "Αρχιλόχου", - "Αρχιπόλεως", - "Αρχοντικά", - "Αρχοντικής", - "Αρχοντικού", - "Αρχοντοχωρίου", - "Αρωγή", - "Αρωνά", - "Αρωνίου", - "Αρωνιαδίκων", - "Ασέας", - "Ασή Γωνιάς", - "Ασίνης", - "Ασβεστάδων", - "Ασβεστίου", - "Ασβεστοπέτρας", - "Ασβεστοχωρίου", - "Ασημένιου", - "Ασημίου", - "Ασημοχωρίου", - "Ασιτών", - "Ασκληπιείου", - "Ασκού", - "Ασκύφου", - "Ασκών", - "Ασμηνίου", - "Ασπραγγέλων", - "Ασπριάς", - "Ασπροβάλτας", - "Ασπρογείων", - "Ασπρογερακάτων", - "Ασπροκάμπου", - "Ασπροκκλησίου", - "Ασπροκκλησιάς", - "Ασπρονερίου", - "Ασπροπουλιάς", - "Ασπροπύργου", - "Ασπροχωρίου", - "Ασπρούλας", - "Ασσήρου", - "Αστακού", - "Αστερίου", - "Αστρά", - "Αστράκων", - "Αστρίτσης", - "Αστριτσίου", - "Αστροχωρίου", - "Αστυπαλαίας", - "Αστυρακίου", - "Ασφάκας", - "Ασφένδου", - "Ασφενδιού", - "Ασωμάτου", - "Ασωμάτων", - "Ασωπίας", - "Ασωπού", - "Ασώματα", - "Αταλάντης", - "Ατραπού", - "Ατσικής", - "Ατσιποπούλου", - "Ατσιχόλου", - "Αυγής", - "Αυγείου", - "Αυγενικής", - "Αυγερινού", - "Αυγώνυμων", - "Αυλής", - "Αυλακίου", - "Αυλιωτών", - "Αυλοτόπου", - "Αυλωναρίου", - "Αυλών", - "Αφάντου", - "Αφετών", - "Αφιδνών", - "Αφισίου", - "Αφράτου", - "Αφράτων", - "Αφρατίου", - "Αφροξυλιάς", - "Αφύτου", - "Αχαΐας", - "Αχαρνών", - "Αχαϊκού", - "Αχεντριά", - "Αχερουσίας", - "Αχιλλείου", - "Αχινού", - "Αχλάδας", - "Αχλαδέ", - "Αχλαδέας", - "Αχλαδίου", - "Αχλαδίων", - "Αχλαδερής", - "Αχλαδεών", - "Αχλαδινής", - "Αχλαδοκάμπου", - "Αχλαδοκάστρου", - "Αχλαδοχωρίου", - "Αχυρών", - "Αψάλου", - "Αϊδινίου", - "Αϊτανίων", - "Αύρας", - "Βάβδου", - "Βάγγου", - "Βάθειας", - "Βάθης", - "Βάλτας", - "Βάλτου", - "Βάμου", - "Βάρδας", - "Βάρης", - "Βάρνακα", - "Βάρους", - "Βάστα", - "Βάτου", - "Βάχλιας", - "Βάχου", - "Βέλου", - "Βέλους", - "Βέργας", - "Βέργης", - "Βέροιας", - "Βέσσης", - "Βήσσανης", - "Βίβλου", - "Βίγλας", - "Βίνιανης", - "Βίτολης", - "Βίτσης", - "Βαβιλών", - "Βαβουρίου", - "Βαγίων", - "Βαγενιτίου", - "Βαγιονιάς", - "Βαθέως", - "Βαθείας", - "Βαθυκοίλου", - "Βαθυλάκκου", - "Βαθυπέδου", - "Βαθυτόπου", - "Βαλανίδας", - "Βαλανείου", - "Βαλανιδιάς", - "Βαλανιδοράχης", - "Βαλανιδούσσας", - "Βαλαώρας", - "Βαλεριάνου", - "Βαλιμής", - "Βαλιμιτίκων", - "Βαλκάνου", - "Βαλσαμονέρου", - "Βαλτερού", - "Βαλτεσινίκου", - "Βαλτετσίου", - "Βαλτινού", - "Βαλτονέρων", - "Βαλτοτοπίου", - "Βαλτοχωρίου", - "Βαλύρας", - "Βαμβακιάς", - "Βαμβακοπούλου", - "Βαμβακοφύτου", - "Βαμβακούς", - "Βαμβακούσσης", - "Βανάδας", - "Βανάτου", - "Βαπτιστού", - "Βαρβάρας", - "Βαρβίτσης", - "Βαρβασαίνης", - "Βαργιάδων", - "Βαργιάνης", - "Βαρδάτων", - "Βαρδαλής", - "Βαρετάδας", - "Βαρθολομιού", - "Βαρικού", - "Βαρλαάμ", - "Βαρνάβα", - "Βαρυπατάδων", - "Βαρύπετρου", - "Βασαρά", - "Βασιλή", - "Βασιλακίου", - "Βασιλατίκων", - "Βασιλειών", - "Βασιλεωνοίκου", - "Βασιλικής", - "Βασιλικιάδων", - "Βασιλικού", - "Βασιλικών", - "Βασιλικών Ανωγείων", - "Βασιλιτσίου", - "Βασιλοπούλου", - "Βασιλουδίου", - "Βατίου", - "Βατατάδων", - "Βατερού", - "Βατολάκκου", - "Βατοχωρίου", - "Βατούσσης", - "Βατσουνιάς", - "Βαυκερής", - "Βαφέ", - "Βαφιοχωρίου", - "Βαχού", - "Βεγόρων", - "Βελάς", - "Βελίκας", - "Βελίνης", - "Βελανιδίου", - "Βελανιδίων", - "Βελανιδιάς", - "Βελβίνας", - "Βελβεντού", - "Βελεντζικού", - "Βελεσιωτών", - "Βελεστίνου", - "Βελημαχίου", - "Βελιγοστής", - "Βελιμαχίου", - "Βελιτσών", - "Βελιών", - "Βελονάδων", - "Βελωτών", - "Βενίου", - "Βενεράτου", - "Βερίνου", - "Βερβένων", - "Βερβεράτου", - "Βεργίνης", - "Βερδικούσσης", - "Βερενίκης", - "Βερμίου", - "Βερτίσκου", - "Βεύης", - "Βιάννου", - "Βιδιακίου", - "Βιζαρίου", - "Βικίου", - "Βιλίων", - "Βιλανδρέδου", - "Βιλιβίνης", - "Βιρού", - "Βισταγής", - "Βιτάλων", - "Βιταλάδων", - "Βιταλίου", - "Βλάση", - "Βλάστης", - "Βλάτους", - "Βλασίας", - "Βλασίου", - "Βλαχάβας", - "Βλαχάτων Εικοσιμίας", - "Βλαχέρνης", - "Βλαχατάνου", - "Βλαχερωνιτίσσης", - "Βλαχιάς", - "Βλαχιώτη", - "Βλαχογιαννίου", - "Βλαχοκερασέας", - "Βλαχομάνδρας", - "Βλαχοπούλου", - "Βλησιδιάς", - "Βλιζιανών", - "Βλοχού", - "Βλυχού", - "Βοβούσης", - "Βογατσικού", - "Βοθιανών", - "Βολιμών", - "Βολισσού", - "Βομβοκούς", - "Βορδονίας", - "Βορεινού", - "Βοριζίων", - "Βοσκοχωρίου", - "Βοτονοσίου", - "Βουβοποτάμου", - "Βουβών", - "Βουγιάτου", - "Βουζίου", - "Βουκολιών", - "Βουλγάρω", - "Βουλιάστης", - "Βουλιαγμένης", - "Βουλισμένης", - "Βουνάργου", - "Βουναίνων", - "Βουναρίων", - "Βουνιατάδων", - "Βουνιχώρας", - "Βουνοπλαγιάς", - "Βουνού", - "Βουρβούλου", - "Βουρβούρων", - "Βουργαρελίου", - "Βουρκωτής", - "Βουρλιωτών", - "Βουρνικά", - "Βουτά", - "Βουταίνης", - "Βουτιάνων", - "Βουτσίμου", - "Βουτσαρά", - "Βουτύρου", - "Βουτών", - "Βουχωρίνας", - "Βοχαϊκού", - "Βούλας", - "Βούλπης", - "Βούνων", - "Βούρμπιανης", - "Βούτση", - "Βράχας", - "Βράχου", - "Βρίας", - "Βρίνας", - "Βρίσας", - "Βραΐλας", - "Βραγγιανών", - "Βραγιά", - "Βραγκιανών", - "Βραδέτου", - "Βρασνών", - "Βραστάμων", - "Βραχασίου", - "Βραχατίου", - "Βραχιάς", - "Βραχναιίκων", - "Βρεσθένων", - "Βρεστού", - "Βριλησσίων", - "Βρομόβρυσης", - "Βροντάδου", - "Βροντής", - "Βρονταμά", - "Βροντερού", - "Βροντισμένης", - "Βροντούς", - "Βροσίνας", - "Βρουβιανών", - "Βρουστίου", - "Βρουχά", - "Βροχίτσης", - "Βρούτση", - "Βρυναίνης", - "Βρυοτόπου", - "Βρυσέλλας", - "Βρυσακίου", - "Βρυσικών", - "Βρυσιών", - "Βρυσουλών", - "Βρυσοχωρίου", - "Βρυσούλας", - "Βρυσών", - "Βρυσών Αποκορρώνου", - "Βρυσών Κυδωνίας", - "Βρυτών", - "Βρύσης", - "Βυζίτσης", - "Βυζικίου", - "Βυθού", - "Βυρωνείας", - "Βυσσινέας", - "Βυτίνης", - "Βυτιναιίκων", - "Βωλάδας", - "Βωλεώνων", - "Βόλβης", - "Βόλου", - "Βόνης", - "Βόνιτσας", - "Βύσσης", - "Βώρων", - "Γάβρου", - "Γέρακα", - "Γέργερης", - "Γέρμα", - "Γέρμας", - "Γέροντα", - "Γαΐου", - "Γαβαλά", - "Γαβαλοχωρίου", - "Γαβαλούς", - "Γαβρακίων", - "Γαβριάς", - "Γαβρισιών", - "Γαβρολίμνης", - "Γαζίου", - "Γαζώρου", - "Γαλάνης", - "Γαλάρου", - "Γαλήνης", - "Γαλίφας", - "Γαλανάδου", - "Γαλαναίϊκα", - "Γαλανόβρυσης", - "Γαλαξιδίου", - "Γαλαρινού", - "Γαλατά", - "Γαλατάδων", - "Γαλατίστης", - "Γαλατακίου", - "Γαλατείας", - "Γαλατινής", - "Γαλατσάδων", - "Γαλατσίου", - "Γαλατσώνας", - "Γαλησσά", - "Γαληψού", - "Γαλιάς", - "Γαλλικού", - "Γαναδιού", - "Γανοχώρας", - "Γαράζου", - "Γαρέας", - "Γαρίπας", - "Γαργαλιάνων", - "Γαρδελάδων", - "Γαρδικίου", - "Γαρδικίου Σούλι", - "Γαρεφείου", - "Γαρούνας", - "Γαστουρίου", - "Γαστούνης", - "Γαυρίου", - "Γαϊτανίου", - "Γαύδου", - "Γδοχίων", - "Γελάνθης", - "Γελινιατίκων", - "Γενεσίου", - "Γενισέας", - "Γενναδίου", - "Γερακίου", - "Γερακαρίου", - "Γερακαρούς", - "Γερακιούς", - "Γερακλίου", - "Γερανίου", - "Γερανίων", - "Γεροπλατάνου", - "Γεφυρίων", - "Γεφυρουδίου", - "Γεφύρας", - "Γεωργάνων", - "Γεωργανάδων", - "Γεωργιανής", - "Γεωργιανών", - "Γεωργικού", - "Γεωργιουπόλεως", - "Γεωργιτσίου", - "Γιάλτρων", - "Γιάννουλης", - "Γιαννάδων", - "Γιανναίων", - "Γιαννακοχωρίου", - "Γιαννιτσίου", - "Γιαννιτσοχωρίου", - "Γιαννιτσούς", - "Γιαννιτσών", - "Γιαννοπούλων", - "Γιαννωτών", - "Γιμαρίου", - "Γιουργάνιστας", - "Γιρομερίου", - "Γκαγκαλών", - "Γκανέϊκα", - "Γκοριτσάς", - "Γκούρας", - "Γκρίκας", - "Γκραίκα", - "Γκριμπόβου", - "Γλάστρας", - "Γλίνου", - "Γλαφυρών", - "Γλαύκης", - "Γλινάδου", - "Γλυκής", - "Γλυκομηλέας", - "Γλυκορριζίου", - "Γλυκόβρυσης", - "Γλυκών Νερών", - "Γλυφάδα", - "Γλυφάδας", - "Γλύφας", - "Γλώσσης", - "Γολάς", - "Γοματίου", - "Γονίμου", - "Γονούσσης", - "Γοράνων", - "Γοργοβιτών", - "Γοργογυρίου", - "Γοργομύλου", - "Γοργοποτάμου", - "Γοργόπη", - "Γορτυνίας", - "Γουβών", - "Γουλεδιανών", - "Γουλεμίου", - "Γουλών", - "Γουμένισσας", - "Γουμέρου", - "Γουριάς", - "Γουριωτίσσης", - "Γράμου", - "Γρίβας", - "Γραίκα", - "Γραβιάς", - "Γραβούνης", - "Γραικικού", - "Γραικοχωρίου", - "Γραικού", - "Γραμβουσής", - "Γραμμένης", - "Γραμμένης Οξυάς", - "Γραμμένου", - "Γραμματικού", - "Γραμματικούς", - "Γραμμενίτσης", - "Γραμμούσης", - "Γραμπιάς", - "Γρανίτου", - "Γρανίτσης", - "Γρανιτσαιίκων", - "Γρανιτσοπούλας", - "Γρατίνη", - "Γρεβενιτίου", - "Γρεβενών", - "Γρηγορίας", - "Γρηγορίου", - "Γρηγόρη", - "Γριζάνου", - "Γριζάτων", - "Γριμπόβου", - "Γρύλλου", - "Γυθείου", - "Γυμνοτόπου", - "Γυμνού", - "Γυναικοκάστρου", - "Γυρίου", - "Γωνιάς", - "Γωνιών Μαλεβιζίου", - "Γόμφων", - "Γόννων", - "Δάρα", - "Δάφνης", - "Δάφνου", - "Δένδρου", - "Δένδρων Τυρνάβου", - "Δένδρων Φαρσάλων", - "Δέσης", - "Δήμητρας", - "Δίβρης", - "Δίου", - "Δαδιάς", - "Δαιμονίας", - "Δαλαμανάρας", - "Δαμάστας", - "Δαμαβόλου", - "Δαμακινίου", - "Δαμανίων", - "Δαμασίου", - "Δαμασκηνιάς", - "Δαματρίας", - "Δαμουλιανάτων", - "Δανακού", - "Δαράτσου", - "Δαρμένη", - "Δασκίου", - "Δασολόφου", - "Δασοχωρίου", - "Δασυλλίου", - "Δασωτού", - "Δαυγάτων", - "Δαυλείας", - "Δαφίων", - "Δαφνέ", - "Δαφνίου", - "Δαφνιά", - "Δαφνιωτίσσης", - "Δαφνοσπηλιάς", - "Δαφνουδίου", - "Δαφνοφύτου", - "Δαφνούλας", - "Δαφνούσσης", - "Δαφνωτής", - "Δαφνών", - "Δειλινά", - "Δελβινακίου", - "Δελβινακοπούλου", - "Δελερίων", - "Δελιανών", - "Δελφίνου", - "Δελφών", - "Δεματίου", - "Δεμεστίχων", - "Δενδροχωρίου", - "Δερβενίου", - "Δερβιζιάνων", - "Δερματίου", - "Δεσινού", - "Δεσκάτης", - "Δεσποτικού", - "Δεσφίνης", - "Δεσύλλα", - "Δημαίνης", - "Δημαρίου", - "Δημητρητσίου", - "Δημητροπούλου", - "Δημητσάνης", - "Διάβας", - "Διάσελλου", - "Διαβατού", - "Διαβατών", - "Διαβολιτσίου", - "Διακοπίου", - "Διακοπτού", - "Διαλεκτού", - "Διασέλλου", - "Διασέλλων", - "Διασελλακίου", - "Διβαράτων", - "Διγελιωτίκων", - "Διδυμοτείχου", - "Διδύμας", - "Διδύμων", - "Διευχών", - "Δικάστρου", - "Δικαίων", - "Δικορύφου", - "Διλινάτων", - "Διλόφου", - "Διλόφου Λαρίσης", - "Διλόφου Φαρσάλων", - "Διμηνίου", - "Διμηνιού", - "Διμοκορίου", - "Διμυλιάς", - "Διοδίων", - "Διομηδείας", - "Διονυσίου", - "Διονύσου", - "Διπλατάνου", - "Διποτάμου", - "Διποταμιάς", - "Δισπηλίου", - "Διστράτου", - "Διστόμου", - "Διχειμάρρου", - "Διχομοιρίου", - "Διχωρίου", - "Δοβλά", - "Δοκιμίου", - "Δοκός", - "Δολίχης", - "Δολιανών", - "Δολού", - "Δολών", - "Δομίρου", - "Δομβραίνης", - "Δομενίκου", - "Δομιανών", - "Δομνίστης", - "Δομοκού", - "Δονούσης", - "Δοξάτου", - "Δοξαρά", - "Δοξαρού", - "Δορίσκου", - "Δορβιτσιάς", - "Δοτσικού", - "Δουκάδων", - "Δουκαναιίκων", - "Δουλίου", - "Δουμενών", - "Δουμπιών", - "Δουναίικων", - "Δούκα", - "Δράμας", - "Δρίμιτσας", - "Δραΐνας", - "Δραβήσκου", - "Δραγάνου", - "Δραγασιάς", - "Δραγοψάς", - "Δραγωγίου", - "Δρακαίων", - "Δρακείας", - "Δρακοβουνίου", - "Δρακόνας", - "Δρακότρυπας", - "Δραμεσιών", - "Δραπανιά", - "Δραπετσώνας", - "Δρεπάνου", - "Δριμίσκου", - "Δροσάτου", - "Δροσίνη", - "Δροσερού", - "Δροσιά", - "Δροσιάς", - "Δροσινή", - "Δροσοπηγής", - "Δροσοχωρίου", - "Δρυάλου", - "Δρυμάδων", - "Δρυμαίας", - "Δρυμού", - "Δρυοβούνου", - "Δρυοφύτου", - "Δρυόπης", - "Δρύμη", - "Δυρραχίου", - "Δυσβάτου", - "Δυτικής Φραγκίστας", - "Δυτικού", - "Δωδώνης", - "Δωματίων", - "Δωρίου", - "Δωρικού", - "Δωροθέας", - "Δόλιανης", - "Δόξης", - "Δόριζα", - "Δύο Βουνών", - "Δύο Χωρίων", - "Δύστου", - "Εβροπούλων", - "Εγγαρών", - "Εγκλουβής", - "Εδέσσης", - "Εθιάς", - "Εθνικού", - "Ειδομένης", - "Ειρηνικού", - "Εκάλης", - "Εκκάρας", - "Εκκλησιών", - "Εκκλησοχωρίου", - "Εκκλησούλας", - "Ελάτας", - "Ελάτειας", - "Ελάτης", - "Ελάτου", - "Ελάφου", - "Ελίκας", - "Ελίκης", - "Ελαίας", - "Ελαιοφύτου", - "Ελαιοχωρίου", - "Ελαιοχωρίων", - "Ελαταριάς", - "Ελατείας", - "Ελατοχωρίου", - "Ελατούς", - "Ελατόβρυσης", - "Ελαφονήσου", - "Ελαφοχωρίου", - "Ελαφότοπου", - "Ελενών", - "Ελεούσης", - "Ελευθέρνης", - "Ελευθέρου", - "Ελευθερίου", - "Ελευθερίου-Κορδελιού", - "Ελευθεριανής", - "Ελευθερουπόλεως", - "Ελευθεροχωρίου", - "Ελευθερών", - "Ελικίστρας", - "Ελληνίτσης", - "Ελληνικού", - "Ελληνικών", - "Ελληνοεκκλησίας", - "Ελληνοκάστρου", - "Ελληνοπύργου", - "Ελληνοχωρίου", - "Ελλοπίας", - "Ελούντας", - "Εμμανουήλ Παππά", - "Εμπάρου", - "Εμπεσού", - "Εμπορίου", - "Εμπορείου", - "Εμπορειού", - "Εμπροσνέρου", - "Ενορίας", - "Εξάρχου", - "Εξαλόφου", - "Εξαμιλίων", - "Εξανθείας", - "Εξαπλατάνου", - "Εξοχή", - "Εξοχής", - "Εξοχικού", - "Εξωγής", - "Εξωχωρίου", - "Επάνω Βαθείας", - "Επανομής", - "Επανωχωρίου", - "Επιβατών", - "Επιδαύρου", - "Επινιανών", - "Επισκέψεως", - "Επισκοπής", - "Επισκοπής Γωνιάς", - "Επισκοπής Νάουσας", - "Επισκοπικού", - "Επιταλίου", - "Επταλόφου", - "Επταμύλων", - "Επταχωρίου", - "Ερασμίου", - "Ερατεινής", - "Ερατεινού", - "Ερατύρας", - "Ερεικούσσης", - "Ερεσού", - "Ερετρίας", - "Ερινεού", - "Ερμακιάς", - "Ερμητσίου", - "Ερμιόνης", - "Ερμουπόλεως", - "Ερυθραίας", - "Ερυθρών", - "Ερυμανθείας", - "Εσοχή", - "Εσωβάλτων", - "Εσωχωρίων", - "Ευάνδρου", - "Ευαγγελισμού", - "Ευαγγελισμού Λαρίσης", - "Ευαγγελιστρίας", - "Ευγήρου", - "Ευδήλου", - "Ευζώνων", - "Ευηνοχωρίου", - "Ευκαρπίας", - "Ευλάλου", - "Ευμοίρου", - "Ευξεινουπόλεως", - "Ευπαλίου", - "Ευρωπού", - "Ευρωστίνης Ροζενών", - "Ευόσμου", - "Εφέσου", - "Εφύρας", - "Εχίνου", - "Εύας", - "Ζάκα", - "Ζάκρου", - "Ζάρκου", - "Ζήριας", - "Ζίρου", - "Ζίτσης", - "Ζίχνης", - "Ζαγκλιβερίου", - "Ζαγοράς", - "Ζακυνθίων", - "Ζαλόγγου", - "Ζαππείου", - "Ζαράκων", - "Ζαρκαδιάς", - "Ζαρού", - "Ζαρούχλης", - "Ζατούνης", - "Ζαχάρως", - "Ζαχλωριτίκων", - "Ζαχλωρούς", - "Ζαϊμίου", - "Ζελίου", - "Ζεμενού", - "Ζενίων", - "Ζερβοχωρίου", - "Ζερμπισίων", - "Ζευγαρακίου", - "Ζευγολατείου", - "Ζευγολατιού", - "Ζεφυρίου", - "Ζηλευτής", - "Ζηλευτού", - "Ζιγοβιστίου", - "Ζουνακίου", - "Ζουριδίου", - "Ζούζουλης", - "Ζυγού", - "Ζυμπραγού", - "Ζυφιά", - "Ζωής", - "Ζωγράφου", - "Ζωνιανών", - "Ζωοδόχου", - "Ζωοδόχου Πηγής", - "Ζωριάνου", - "Ζωτικού", - "Ζωφόρων", - "Ζόλων", - "Ζώνης", - "Ηγουμενίτσης", - "Ηλέκτρας", - "Ηλιοκάλης", - "Ηλιοκάστρου", - "Ηλιοκώμης", - "Ηλιορράχης", - "Ηλιοχωρίου", - "Ηλιούπολης", - "Ηλιόλουστο", - "Ημεροβιγλίου", - "Ηραίου", - "Ηρακλίτσης", - "Ηρακλείας", - "Ηρακλείου", - "Θάνα", - "Θάνους", - "Θάσου", - "Θέας", - "Θέρμης", - "Θέρμου", - "Θήρας", - "Θίσβης", - "Θαλαμών", - "Θαλερού", - "Θαρουνίων", - "Θαυμακού", - "Θεισόας", - "Θεμέλου", - "Θεοδοσίων", - "Θεοδωρακίου", - "Θεοδωρακείου", - "Θεοδωριάνων", - "Θεοδώρας", - "Θεοκτίστου", - "Θεολόγου", - "Θεοπέτρας", - "Θερίσου", - "Θεραπειό", - "Θεριακησίου", - "Θεριανού", - "Θερινού", - "Θερμησίας", - "Θερμοπυλών", - "Θερμών", - "Θεσπιών", - "Θεσπρωτικού", - "Θεσσαλονίκης", - "Θηβαίων", - "Θηναίας", - "Θηρασίας", - "Θηριοπέτρας", - "Θολαρίων", - "Θολοποταμίου", - "Θολού", - "Θουρίας", - "Θουρίου", - "Θούριο Θουρίου", - "Θρακομακεδόνων", - "Θραψανού", - "Θραψιμίου", - "Θροφαρίου", - "Θρυλορίου", - "Θρόνου", - "Θυμιανών", - "Θυρίου", - "Θωκνίας", - "Ιάσιον", - "Ιάσμου", - "Ιαλυσού", - "Ιβήρων", - "Ιεραπέτρας", - "Ιερισσού", - "Ιερομνήμης", - "Ιεροπηγής", - "Ιητών", - "Ιθάκης", - "Ιθώμης", - "Ικλαίνης", - "Ιλίου", - "Ιμέρου", - "Ιμέρων", - "Ινάχου", - "Ινίου", - "Ιππείου", - "Ιρίων", - "Ισαακίου", - "Ισθμίας", - "Ιστιαίας", - "Ιστρίου", - "Ισώματος Καρυών", - "Ιτέα", - "Ιτέας", - "Ιωαννίνων", - "Ιωαννιτών", - "Ιωνίας", - "Κάινας", - "Κάλφα", - "Κάμπου", - "Κάμπων", - "Κάπης", - "Κάρπης", - "Κάσου", - "Κάσπακα", - "Κάστρου", - "Κάψα", - "Κέδρου", - "Κέδρων", - "Κέλλης", - "Κέντρου", - "Κέχρου", - "Κήπων", - "Κίνυρα", - "Κίου", - "Κίρκης", - "Κίρρας", - "Καβάλας", - "Καβάλου", - "Καβάσιλα", - "Καβαλλαρίου", - "Καβαλλουρίου", - "Καβασίλων", - "Καββαδάδων", - "Καβησού", - "Καβουσίου", - "Καβύλης", - "Καγκαδίου", - "Καδίου", - "Καθενών", - "Καθολικού", - "Καινουργίου", - "Καινούργιου Χωρίου", - "Καισάρειας", - "Καισαρίου", - "Καισαριανής", - "Κακαλετρίου", - "Κακοβάτου", - "Κακοδικίου", - "Κακολάκκου", - "Κακοπέτρου", - "Κακοπλευρίου", - "Κακοταρίου", - "Κακουραίικων", - "Καλάθου", - "Καλάμου", - "Καλάνδρας", - "Καλάνου", - "Καλής", - "Καλής Βρύσης", - "Καλής Κώμης", - "Καλαβάρδα", - "Καλαβρούζης", - "Καλαβρύτων", - "Καλαθενών", - "Καλαμάτας", - "Καλαμίου", - "Καλαμακίου", - "Καλαμαρά", - "Καλαμαριάς", - "Καλαμαύκας", - "Καλαμιά", - "Καλαμιάς", - "Καλαμιτσίου", - "Καλαμιτσίου Αλεξάνδρου", - "Καλαμιτσίου Αμυγδαλίου", - "Καλαμπάκας", - "Καλαμπακίου", - "Καλαμωτής", - "Καλαμωτού", - "Καλανίστρας", - "Καλανδαρές", - "Καλαποδίου", - "Καλαρρυτών", - "Καλαφατιώνων", - "Καλεντίνης", - "Καλεντζίου", - "Καλεσιών", - "Καλεσμένου", - "Καλημεριάνων", - "Καληράχης", - "Καλιανών", - "Καλιδόνης", - "Καλιπάδου", - "Καλιτσαίνης", - "Καλλίου", - "Καλλίστη", - "Καλλίστης", - "Καλλεργιανών", - "Καλλιανίου", - "Καλλιανού", - "Καλλιδρόμου", - "Καλλιθέας", - "Καλλιθέας Σουλίου", - "Καλλιθέας Φαρσάλων", - "Καλλιθέας Φιλιατών", - "Καλλιθήρου", - "Καλλικράτειας", - "Καλλικώμου", - "Καλλιμασιάς", - "Καλλινίκης", - "Καλλιπεύκης", - "Καλλιπόλεως", - "Καλλιράχης", - "Καλλιρρόης", - "Καλλιφωνίου", - "Καλλιφύτου", - "Καλλιόπης", - "Καλλονής", - "Καλλυντήριον", - "Καλοβάτου", - "Καλογέρου", - "Καλογήρων", - "Καλογερεσίου", - "Καλογερικού", - "Καλογερόρραχης", - "Καλογριανής", - "Καλογριανών", - "Καλοκάστρου", - "Καλομοίρας", - "Καλονερίου", - "Καλονύκτου", - "Καλοσκοπής", - "Καλουδίου", - "Καλουδιανών", - "Καλουσίου", - "Καλουτά", - "Καλοχίου", - "Καλοχωρίου", - "Καλοχωρίου-Παντειχίου", - "Καλού Αγρού", - "Καλού Νερού", - "Καλού Χωρίου", - "Καλπακίου", - "Καλτεζών", - "Καλυβίων", - "Καλυβίων Θορικού", - "Καλυβίων Μυρτουντίων", - "Καλυβίων Σοχάς", - "Καλυβακίων", - "Καλυβών", - "Καλυδονίας", - "Καλυθιών", - "Καλυμνίων", - "Καλύβου", - "Καλών Δένδρων", - "Καλών Νερών", - "Καμάρας", - "Καμάρων", - "Καμένης", - "Καμένων Βούρλων", - "Καμήλας", - "Καμαρίνας", - "Καμαρίου", - "Καμαρίτσης", - "Καμαρίων", - "Καμαριώτου", - "Καμαρούλας", - "Καμαρωτού", - "Καμαρών", - "Καματερού", - "Καμενίτσης", - "Καμενιάνων", - "Καμηλαρίου", - "Καμινίων", - "Καμινακίου", - "Καμιναράτων", - "Καμισιανών", - "Καμπάνη", - "Καμπής", - "Καμπανού", - "Καμπιών", - "Καμποχωρίου", - "Κανακάδων", - "Καναλίου", - "Καναλίων", - "Καναλλακίου", - "Κανδάλου", - "Κανδάνου", - "Κανδήλας", - "Καπανδριτίου", - "Καπαρελλίου", - "Καπελέτου", - "Καπεσόβου", - "Καπλανίου", - "Καπνοφύτου", - "Καπνοχωρίου", - "Καππά", - "Καππαδοκικού", - "Καππαριάς", - "Καράνου", - "Καράτουλα", - "Καράτουλα Κυνουρίας", - "Καράτουλα Μεγαπόλεως", - "Καρέας", - "Καρές", - "Καρίτσης", - "Καρίτσης Δολόπων", - "Καρίτσης Καρπενησίου", - "Καραβά", - "Καραβάδου", - "Καραβομύλου", - "Καραβοστάμου", - "Καραιίκων", - "Καρατζά", - "Καραϊσκάκη", - "Καρβάλης", - "Καρβασαρά", - "Καρβελά", - "Καρβελίου", - "Καρβουνάδων", - "Καρβουναρίου", - "Καρδίας", - "Καρδίτσης", - "Καρδαμά", - "Καρδαμαίνης", - "Καρδαμύλης", - "Καρδαμύλων", - "Καρδαρά", - "Καρδαριτσίου", - "Καρδιάς", - "Καρδιακαυτίου", - "Καρδιανής", - "Καρδιτσομαγούλας", - "Καριανής", - "Καρινών", - "Καριταίνης", - "Καριωτίου", - "Καριωτών", - "Καρκιναγρίου", - "Καρλοβασίων", - "Καρνασίου", - "Καρνεζαίικων", - "Καροπλεσίου", - "Καρουζανών", - "Καρουσάδων", - "Καρουτών", - "Καρπάθου", - "Καρπασίου", - "Καρπενησίου", - "Καρπερής", - "Καρπερού", - "Καρποφόρων", - "Καρποχωρίου", - "Καρτεράδου", - "Καρτερίου", - "Καρτερολίου", - "Καρτερών", - "Καρυάς", - "Καρυδίου", - "Καρυδίου Μιραμπέλλου", - "Καρυδίτσας", - "Καρυδιάς", - "Καρυοβουνίου", - "Καρυουπόλεως", - "Καρυοφύτου", - "Καρυοχωρίου", - "Καρυωτίσσης", - "Καρυών", - "Καρωτής", - "Καρύστου", - "Καρών Αποκορρώνου", - "Καρών Κισσάμου", - "Κασάνου", - "Κασσανδρείας", - "Κασσανδρηνού", - "Κασσιόπης", - "Καστάνιανης", - "Καστέλλας", - "Καστέλλου", - "Κασταμονίτσης", - "Καστανέας", - "Καστανέας Επιδαύρου Λιμηράς", - "Καστανίτσης", - "Καστανίων", - "Καστανερής", - "Καστανεών", - "Καστανιάς", - "Καστανιωτίσσης", - "Καστανοφύτου", - "Καστανοχωρίου", - "Καστανούλας", - "Καστανούσσης", - "Καστανώνος Ζαγορίου", - "Καστελλάνων Γύρου", - "Καστελλάνων Μέσης", - "Καστελλίου", - "Καστελλίου Φουρνής", - "Καστελλίων", - "Καστελλιανών", - "Καστορίας", - "Καστορείου", - "Καστού", - "Καστρίου", - "Καστρίτσης", - "Καστρίων", - "Καστρακίου", - "Καστριτσίου", - "Καστριωτίσσης", - "Κατάκαλης", - "Καταβόθρας", - "Κατακαλίου", - "Κατακοίλου", - "Κατακόλου", - "Καταλάκκου", - "Καταλαγαρίου", - "Καταλωνίων", - "Καταμάχης", - "Καταπόλων", - "Καταρράκτου", - "Κατασταρίου", - "Καταφυγίου", - "Καταφυλλίου", - "Καταφύτου", - "Καταχά", - "Κατερίνης", - "Κατοχής", - "Κατούνας", - "Κατούνης", - "Κατσίμπαλη", - "Κατσαρού", - "Κατσαρωνίου", - "Κατσιδωνίου", - "Κατσικά", - "Κατταβίας", - "Κατωγής", - "Κατωμερίου", - "Κατωχωρίου", - "Καυκάσου", - "Καυκωνίας", - "Καψάλων", - "Καψοράχης", - "Κελεφά", - "Κεντρικής", - "Κεντρικού", - "Κεντροχωρίου", - "Κεράμου", - "Κεράς", - "Κερίου", - "Κεραμέ", - "Κεραμίου", - "Κεραμίτσης", - "Κεραματών", - "Κεραμείας", - "Κεραμείων", - "Κεραμειών", - "Κεραμιδίου", - "Κεραμιδιάς", - "Κεραμουτσίου", - "Κεραμωτής", - "Κερασέα", - "Κερασέας", - "Κερασίτσης", - "Κερασίων", - "Κερασεών", - "Κερασιάς", - "Κερασοχωρίου", - "Κεραστάρη", - "Κερασόβου", - "Κερατέας", - "Κερατσινίου", - "Κερδυλίων", - "Κερκίνης", - "Κερκυραίων", - "Κερπινής", - "Κερτέζης", - "Κερυνείας", - "Κεσσάνης", - "Κεστρίνης", - "Κεφάλου", - "Κεφαλά", - "Κεφαλίου", - "Κεφαλαρίου", - "Κεφαλινού", - "Κεφαλοβρυσίου", - "Κεφαλοβρύσου", - "Κεφαλοχωρίου", - "Κεφαλόβρυσης", - "Κεχρινιάς", - "Κεχριών", - "Κεχροκάμπου", - "Κηκίδιον", - "Κηπίων", - "Κηπουρείου", - "Κηρίνθου", - "Κηφισιάς", - "Κιβερίου", - "Κιβωτού", - "Κιζάριον", - "Κιλελέρ", - "Κιλκίς", - "Κιμμερίων", - "Κιμώλου", - "Κινιδάρου", - "Κιονίου", - "Κιρκιζατών", - "Κισσάμου", - "Κισσού", - "Κλένιας", - "Κλήματος Ευπαλίου", - "Κλαδά", - "Κλαδέου", - "Κλαδορράχης", - "Κλαυσίου", - "Κλείτου", - "Κλειδίου", - "Κλειδωνιάς", - "Κλεινού", - "Κλεινών", - "Κλειούς", - "Κλεισορρευμάτων", - "Κλεισούρας", - "Κλεισωρείας", - "Κλειτορίας", - "Κλειτσού", - "Κλεπάς", - "Κληματακίου", - "Κληματιάς", - "Κλημεντίου", - "Κλινδιάς", - "Κλοκοτού", - "Κλωνίου", - "Κνίδης", - "Κοίλων", - "Κοίτας", - "Κοζάνης", - "Κοθρέα", - "Κοιλαδίου", - "Κοιλιωμένου", - "Κοιμήσεως", - "Κοινής", - "Κοκκάλας", - "Κοκκίνου", - "Κοκκίνου Χωρίου", - "Κοκκαρίου", - "Κοκκινίου", - "Κοκκινιάς", - "Κοκκινογείου", - "Κοκκινογείων", - "Κοκκινολιθαρίου", - "Κοκκινομηλέας", - "Κοκκινοπηλού", - "Κοκκινορράχης", - "Κοκκινοχωρίου", - "Κοκκινόβρυσης", - "Κοκκορά", - "Κοκκωνίου", - "Κοκκωτών", - "Κολινδρού", - "Κολιρίου", - "Κολλινών", - "Κολοκυθιάς", - "Κολυμβαρίου", - "Κολχικής", - "Κολχικού", - "Κομάνου", - "Κομάρων", - "Κομίτου", - "Κομηλίου", - "Κομιτάτων", - "Κομμένου", - "Κομνίνης", - "Κομνηνάδων", - "Κομνηνών", - "Κομοτηνής", - "Κομπηγαδίου", - "Κομπιτσίου", - "Κομποτάδων", - "Κομποτίου", - "Κομπωτής", - "Κονίσκης", - "Κονίτσης", - "Κονακίων", - "Κονιάκου", - "Κονιδίτσης", - "Κονισκού", - "Κονιστρών", - "Κονοπίνας", - "Κονταιίκων", - "Κοντακαιίκων", - "Κονταραίνης", - "Κονταριωτίσσης", - "Κοντιά", - "Κοντοβαζαίνης", - "Κοντοβουνίου", - "Κοντογενάδας", - "Κοντοδεσποτίου", - "Κοντολιανίκων", - "Κοντομαρίου", - "Κοντοπουλίου", - "Κοντοπούλων", - "Κοξαρές", - "Κοπάνης", - "Κοπανακίου", - "Κοπανού", - "Κορίνθου", - "Κορίτιανης", - "Κορακιάνας", - "Κορακοβουνίου", - "Κορακοχωρίου", - "Κορησού", - "Κορησσίας", - "Κορθίου", - "Κορινού", - "Κορμίστης", - "Κορνοφωλεάς", - "Κορνού", - "Κοροίβου", - "Κορομηλέας", - "Κορυδαλλού", - "Κορυσχάδων", - "Κορυφής", - "Κορυφασίου", - "Κορυφούλας", - "Κορυφών", - "Κορφιωτίσσης", - "Κορφοβουνίου", - "Κορφών", - "Κορωνείας", - "Κορωνησίας", - "Κορωνούδας", - "Κορώνας", - "Κορώνης", - "Κορώνου", - "Κοσκίνων", - "Κοσκινά", - "Κοσκινού", - "Κοσμά", - "Κοσμαδαίων", - "Κοσματίου", - "Κοσμηράς", - "Κοτρωνίου", - "Κοτσανοπούλου", - "Κοτσικιάς", - "Κοτύλης", - "Κουβαλάτων", - "Κουβαρά", - "Κουβουκλίων", - "Κουδουνίου", - "Κουδουνίων", - "Κουκκουλίου", - "Κουκκουλίων", - "Κουκκουνάρας", - "Κουκλεσίου", - "Κουκλιών", - "Κουκουλιών", - "Κουκουναράς", - "Κουλεντίων", - "Κουλούρας", - "Κουμαιίκων", - "Κουμαραδαίων", - "Κουμαριάς", - "Κουμαριτσίου", - "Κουμπουριανών", - "Κουνάβων", - "Κουνινάς", - "Κουνουπίτσης", - "Κουνουπιάς", - "Κουνουπιδιανών", - "Κουπακίου", - "Κουπιών", - "Κουρέντων", - "Κουραμάδων", - "Κουρεμαδίου", - "Κουρκουλών", - "Κουρνά", - "Κουρουκλάτων", - "Κουρουνίου", - "Κουρουνίων", - "Κουρουνιού", - "Κουρουτών", - "Κουρτακίου", - "Κουρτεσίου", - "Κουσέ", - "Κουσπάδων", - "Κουτίφαρη", - "Κουταλά", - "Κουτρούφων", - "Κουτσίου", - "Κουτσελιού", - "Κουτσοποδίου", - "Κουτσοχέρας", - "Κουτσοχέρου", - "Κουτσού", - "Κουφαλίων", - "Κουφοβούνου", - "Κουφονησίων", - "Κουφοπούλου", - "Κουφού", - "Κοχύλου", - "Κούβελα", - "Κούκκου", - "Κούμανη", - "Κούμαρη", - "Κούμων", - "Κούνου", - "Κούταλης", - "Κούτελης", - "Κούφης", - "Κράψης", - "Κρήμνης", - "Κρήνης", - "Κρήνης Αιγιαλείας", - "Κρήνης Πατρών", - "Κρίνου", - "Κραθίου", - "Κρανέας", - "Κρανιδίου", - "Κρανιδίων", - "Κρανούλας", - "Κρασίου", - "Κρατερού", - "Κρεμαστής", - "Κρεμαστού", - "Κρεμμυδίων", - "Κρεστένων", - "Κρηνίδων", - "Κρηνίτσης", - "Κρηνών", - "Κρηστώνης", - "Κρητηνίας", - "Κριατσίου", - "Κριεζών", - "Κριθαρακίων", - "Κριθιάς", - "Κρικέλλου", - "Κριμηνίου", - "Κρινοφύτων", - "Κριτσάς", - "Κροκίου", - "Κροκεών", - "Κροκυλείου", - "Κρούστα", - "Κρυονέρου", - "Κρυονερίου", - "Κρυονερίου Ηλείας", - "Κρυονερίου Ολυμπίας", - "Κρυονερίτη", - "Κρυονερίων", - "Κρυοπηγής", - "Κρυσταλλοπηγής", - "Κρυσταλλόβρυσης", - "Κρυφοβού", - "Κρυόβρυση", - "Κρυόβρυσης", - "Κρυών", - "Κρωβύλης", - "Κρωπίας", - "Κρόκου", - "Κρύας", - "Κρύας Βρύσης", - "Κτένιον", - "Κτικάδου", - "Κτιμένης", - "Κτισμάτων", - "Κτιστάδων", - "Κυανής", - "Κυδωνέας", - "Κυδωνιών", - "Κυθήρων", - "Κυλλήνης", - "Κυμίνων", - "Κυνηγού", - "Κυνοπιαστών", - "Κυπαρίσσου", - "Κυπαρισσίας", - "Κυπαρισσίου", - "Κυπαρισσίων", - "Κυρά Βγένας", - "Κυρίων", - "Κυρακαλής", - "Κυριάννας", - "Κυριακής", - "Κυριακίου", - "Κυριακοχωρίου", - "Κυρτώνης", - "Κυψέλης", - "Κυψέλης Μεθάνων", - "Κυψελοχωρίου", - "Κω", - "Κωνσταντίας", - "Κωνσταντίνων", - "Κωνσταντινάτου", - "Κωστάνιανης", - "Κωστακιών", - "Κωσταλέξη", - "Κωσταραζίου", - "Κωτιλίου", - "Κωφών", - "Κόκκινων Λουριών", - "Κόκλα", - "Κόμπων", - "Κόντσικας", - "Κόξαρης", - "Κόρφου", - "Κόσμιον", - "Κότρωνα", - "Κύθνου", - "Κύμης", - "Κώμης", - "Κώστου", - "Κώτα", - "Λάβδα", - "Λάβδανης", - "Λάγιου", - "Λάγκας", - "Λάδης", - "Λάκκας", - "Λάκκων", - "Λάλα", - "Λάλουκα", - "Λάμπου Μύλων", - "Λάρδου", - "Λάστης", - "Λάστρου", - "Λάτα", - "Λέκας", - "Λέρου", - "Λίμνης", - "Λίνδου", - "Λίππας", - "Λίστας", - "Λαΐστης", - "Λαέρμων", - "Λαβάρων", - "Λαγίας", - "Λαγανά", - "Λαγκάδας", - "Λαγκαδά", - "Λαγκαδίων", - "Λαγκαδαιίκων", - "Λαγκαδακίων", - "Λαγκαδικίων", - "Λαγοβουνίου", - "Λαγολίου", - "Λαγορράχης", - "Λαγού", - "Λαγυνών", - "Λαγωπόδου", - "Λαδά", - "Λαδικούς", - "Λαδοχωρίου", - "Λαζαράτων", - "Λαζαρίνας", - "Λαιίκων", - "Λαιμού", - "Λακήθρας", - "Λακκοπέτρας", - "Λακκωμάτων", - "Λακκωνίων", - "Λακώνων", - "Λαλιώτου", - "Λαμιέων", - "Λαμπαίνης", - "Λαμπείας", - "Λαμπερού", - "Λαμπινής", - "Λαμπινούς", - "Λαμπιρίου", - "Λαμπιωτών", - "Λαμποκάμπου", - "Λαμπρόν", - "Λαμψάκου", - "Λαμύρων", - "Λανθίου", - "Λαντζουνάτου", - "Λαπαναγών", - "Λαρίσης", - "Λαρανίου", - "Λαρύμνης", - "Λασταιίκων", - "Λατζοΐου", - "Λατσίδας", - "Λαυκίου", - "Λαυρεωτικής", - "Λαφιώνας", - "Λαφυστίου", - "Λαχίου", - "Λαχανά", - "Λαχανάδας", - "Λαχανιάς", - "Λαψίστης", - "Λαύκας", - "Λαύκου", - "Λεήμονα", - "Λεβαίας", - "Λεβαδέων", - "Λεβεντοχωρίου", - "Λεβιδίου", - "Λειανοκλαδίου", - "Λειψυδρίου", - "Λειψών", - "Λεκάνης", - "Λεοντίου", - "Λεοντίτου", - "Λεονταρίου", - "Λεπενούς", - "Λεπετύμνου", - "Λεπιανών", - "Λεπούρων", - "Λεπρέου", - "Λεπτινίου", - "Λεπτοκαρυάς", - "Λεπτοκαρυάς Ζαγορίου", - "Λεπτοκαρυών", - "Λεπτοπόδων", - "Λεσινίου", - "Λευκάρων", - "Λευκίμμης", - "Λευκαδίων", - "Λευκαδιτίου", - "Λευκακίων", - "Λευκασίου", - "Λευκογείων", - "Λευκοθέας", - "Λευκοπηγής", - "Λευκοτόπου", - "Λευκοχωρίου", - "Λευκοχώρας", - "Λευκού", - "Λευκόβρυσης", - "Λευκών", - "Λεχαίου", - "Λεχαινών", - "Λεχουρίου", - "Λεχωνίων", - "Λεχόβου", - "Λεωνιδίου", - "Λεύκας", - "Λεύκης", - "Λεύκτρων", - "Λημερίου", - "Ληνός", - "Ληξουρίου", - "Λητής", - "Λιανοβεργίου", - "Λιαπάδων", - "Λιας", - "Λιβαδίου", - "Λιβαδίων", - "Λιβαδακίου", - "Λιβαδαρίου", - "Λιβαδερού", - "Λιβαδιάς", - "Λιβαδοχωρίου", - "Λιβανατών", - "Λιβαρτζίου", - "Λιβερών", - "Λιγκιάδων", - "Λιγορτύνου", - "Λιγοψάς", - "Λιδωρικίου", - "Λιθίνου", - "Λιθίου", - "Λιθακιάς", - "Λιθιάς", - "Λιθινών", - "Λιθοβουνίων", - "Λιθοτόπου", - "Λιθοχωρίου", - "Λικνάδων", - "Λιλαίας", - "Λιλιανού", - "Λιμένος Χερσονήσου", - "Λιμίνης", - "Λιμεναρίων", - "Λιμνίτσης", - "Λιμνιών", - "Λιμνοτόπου", - "Λιμνοχωρίου", - "Λιμνών", - "Λιναριάς", - "Λινισταίνης", - "Λιοδώρας", - "Λιοπράσου", - "Λιοσίων", - "Λιπαρού", - "Λιποχωρίου", - "Λιρών", - "Λισβορίου", - "Λιτοσέλου", - "Λιτοχώρου", - "Λογγάδων", - "Λογγάς", - "Λογγάστρας", - "Λογγιτσίου", - "Λογγού", - "Λογκανίκου", - "Λογοθετιανίκων", - "Λοξάδας", - "Λουκά", - "Λουκισίων", - "Λουκομίου", - "Λουρδάτων", - "Λουρών", - "Λουσακιών", - "Λουσικών", - "Λουσών", - "Λουτουφίου", - "Λουτρακίου", - "Λουτρακίου Περαχώρας", - "Λουτροπηγής", - "Λουτροπόλεως Θερμής", - "Λουτροπόλεως Μεθάνων", - "Λουτροτόπου", - "Λουτρού", - "Λουτρού Λαρίσης", - "Λουτρών", - "Λουτρών Αιδηψού", - "Λουτρών Ηραίας", - "Λουτρών Υπάτης", - "Λουτσίου", - "Λουτσών", - "Λοφίσκου", - "Λοφαρίου", - "Λοχριάς", - "Λούβρης", - "Λούβρου", - "Λούμα", - "Λούρου", - "Λούτσας", - "Λούτσης", - "Λούχας", - "Λυγαριάς", - "Λυγερέα", - "Λυγερής", - "Λυγιά", - "Λυγιάς", - "Λυδίας", - "Λυκίσσης", - "Λυκαίου", - "Λυκοβρύσεως", - "Λυκοποριάς", - "Λυκοσούρας", - "Λυκοστόμου", - "Λυκοτράφου", - "Λυκουδίου", - "Λυκουρίας", - "Λυκοχίων", - "Λυκούρεση", - "Λυκόγιαννης", - "Λυπουδεσίου", - "Λυρκείας", - "Λυσιμαχείας", - "Λυσσαρέας", - "Λυττού", - "Λυχνού", - "Λόγγου", - "Λόφου", - "Λόφων", - "Λύγγου", - "Λύκειον", - "Λύρας", - "Λύχνων", - "Μάγειρα", - "Μάζης", - "Μάζιας", - "Μάκρης", - "Μάλεμε", - "Μάλης", - "Μάλθης", - "Μάλτας", - "Μάναρη", - "Μάνδρας", - "Μάνεση", - "Μάνης", - "Μάννα", - "Μάννας", - "Μάραθα", - "Μάρθας", - "Μάρκου", - "Μάστρου", - "Μάχου", - "Μέγα Κάμπου", - "Μέγα Πιστόν", - "Μέρους", - "Μέρωνα", - "Μέσα Διδύμας", - "Μέσα Λακκωνίων", - "Μέσα Λασιθίου", - "Μέσα Μουλιανών", - "Μέση", - "Μέσης", - "Μέσης Συνοικίας Τρικάλων", - "Μέσου Γερακαρίου", - "Μήλου", - "Μίλα", - "Μίνας", - "Μίνθης", - "Μίστρου", - "Μαγαζιών", - "Μαγαρικαρίου", - "Μαγγάνων", - "Μαγγανίτου", - "Μαγγανιακού", - "Μαγικού", - "Μαγνησίας", - "Μαγουλάδων", - "Μαγουλίτσης", - "Μαγουλιάνων", - "Μαγούλας", - "Μαδένης", - "Μαδύτου", - "Μαζίου", - "Μαζαράκι", - "Μαζαρακίου", - "Μαζαρακιάς", - "Μαθίας", - "Μαθιάς", - "Μαθρακίου", - "Μαινάλου", - "Μακίστου", - "Μακράδων", - "Μακρίνου", - "Μακρίσης", - "Μακρακώμης", - "Μακρινής", - "Μακρινίτσης", - "Μακρινούς", - "Μακρισίων", - "Μακρολιβάδου", - "Μακροταντάλου", - "Μακροχωρίου", - "Μακρυγιάλου", - "Μακρυκάπας", - "Μακρυλιάς", - "Μακρυπλαγίου", - "Μακρυρράχης", - "Μακρυσίου", - "Μακρυχωρίου", - "Μακρυωτίκων", - "Μακυνείας", - "Μαλάξας", - "Μαλίων", - "Μαλαθύρου", - "Μαλακάσης", - "Μαλακίων", - "Μαλακασίου", - "Μαλαμάτων", - "Μαλανδρίνου", - "Μαλαντρενίου", - "Μαλγάρων", - "Μαλεσίνης", - "Μαλεσιάδας", - "Μαλετιάνων", - "Μαλλωτών", - "Μαλουνίου", - "Μαλυκρείου", - "Μαλών", - "Μαμουλάδας", - "Μαμουσιάς", - "Μαναγούλης", - "Μανασσή", - "Μανδάλου", - "Μανδηλίου", - "Μανδρακίου", - "Μανδρινής", - "Μανδρών", - "Μανεσίου Καλαβρύτων", - "Μανεσίου Πατρών", - "Μανθυρέας", - "Μανιάκων", - "Μανιακίου", - "Μανικίων", - "Μανολατών", - "Μανολιάσης", - "Μανολιοπούλου", - "Μανταμάδου", - "Μαντασιάς", - "Μαντείου", - "Μαντζαρίου", - "Μαντινείας", - "Μαντουδίου", - "Μαράθου", - "Μαρίνης", - "Μαρίου", - "Μαραθέας", - "Μαραθιά", - "Μαραθιάς", - "Μαραθοκάμπου", - "Μαραθοπόλεως", - "Μαραθούσσης", - "Μαραντοχωρίου", - "Μαρασίων", - "Μαργαριτίου", - "Μαργαριτών", - "Μαργελίου", - "Μαριολάτας", - "Μαριού", - "Μαριτσών", - "Μαριών", - "Μαρκινιάδας", - "Μαρκοπούλου", - "Μαρκοπούλου Μεσογαίας", - "Μαρκοπούλου Ωρωπού", - "Μαρμάρου", - "Μαρμάρων", - "Μαρμακέτου", - "Μαρμαρά", - "Μαρμαρίνης", - "Μαρμαρίου", - "Μαρουλά", - "Μαρπήσσης", - "Μαρτίνου", - "Μαρωνίας", - "Μαρωνείας", - "Μασάρων", - "Μασχολουρίου", - "Ματίου", - "Ματαράγκας", - "Ματεσίου", - "Ματονερίου", - "Ματσουκίου", - "Μαυράτων", - "Μαυρίλου", - "Μαυραναίων", - "Μαυρατζαίων", - "Μαυραχάδων", - "Μαυρελίου", - "Μαυρικίου", - "Μαυριών", - "Μαυροβάτου", - "Μαυροβουνίου", - "Μαυρογιάννη", - "Μαυροδενδρίου", - "Μαυροθαλάσσης", - "Μαυροκάμπου", - "Μαυροκκλησίου", - "Μαυρολεύκης", - "Μαυρολιθαρίου", - "Μαυρολόφου", - "Μαυρομμάτας", - "Μαυρομματίου", - "Μαυρομματίου Παμίσου", - "Μαυρονερίου", - "Μαυρονόρους", - "Μαυροπηγής", - "Μαυροπούλου", - "Μαυρουδίου", - "Μαυροχωρίου", - "Μαυρούδας", - "Μαχαιρά", - "Μαχαιράδου", - "Μαχαιρών", - "Μεγάλης Βρύσης", - "Μεγάλης Γότιστας", - "Μεγάλης Δοξιπάρας", - "Μεγάλης Κάψης", - "Μεγάλης Κερασέας", - "Μεγάλης Παναγίας", - "Μεγάλης Στέρνας", - "Μεγάλης Χώρας", - "Μεγάλου Βάλτου", - "Μεγάλου Γαρδικίου", - "Μεγάλου Δουκάτου", - "Μεγάλου Ελευθεροχωρίου", - "Μεγάλου Ευυδρίου", - "Μεγάλου Κεφαλοβρύσου", - "Μεγάλου Μοναστηρίου", - "Μεγάλου Περιστερίου", - "Μεγάλου Σειρηνίου", - "Μεγάλου Χωρίου", - "Μεγάλων Καλυβίων", - "Μεγάρου", - "Μεγάρχης", - "Μεγίστης", - "Μεγαλοβρύσου", - "Μεγαλοκάμπου", - "Μεγαλοπόλεως", - "Μεγαλοχωρίου", - "Μεγαλόχαρης", - "Μεγαπλατάνου", - "Μεγαρέων", - "Μεθώνης", - "Μελά", - "Μελάμπων", - "Μελάνων", - "Μελέτη", - "Μελίας", - "Μελίκης", - "Μελίσσα", - "Μελίσσης", - "Μελίτης", - "Μελανθίου", - "Μελανιού", - "Μελενικιτσίου", - "Μελεσών", - "Μελιάς", - "Μελιανών", - "Μελιβοίας", - "Μελιγαλά", - "Μελιγγών", - "Μελιγούς", - "Μελιδονίου", - "Μελισσίου", - "Μελισσίων", - "Μελισσοκομείου", - "Μελισσοπέτρας", - "Μελισσοτόπου", - "Μελισσουργακίου", - "Μελισσουργού", - "Μελισσουργών", - "Μελισσοχωρίου", - "Μελισσόπετρας", - "Μελιτίνης", - "Μελιταίας", - "Μελπείας", - "Μενδενίτσης", - "Μενεμένης", - "Μενετών", - "Μενιδίου", - "Μεξιατών", - "Μεράς", - "Μεριάς", - "Μερκάδας", - "Μερκοβουνίου", - "Μερόπης", - "Μεσαίας Κάψης", - "Μεσαίου", - "Μεσαγρού", - "Μεσαναγρού", - "Μεσαρίστης", - "Μεσαριάς", - "Μεσαριάς Άνδρου", - "Μεσελέρων", - "Μεσενικόλα", - "Μεσημβρίας", - "Μεσημερίου", - "Μεσιάς", - "Μεσιανής", - "Μεσιανού", - "Μεσινού", - "Μεσκλών", - "Μεσοβουνίου", - "Μεσοβουνίων", - "Μεσοβούνου", - "Μεσογείου", - "Μεσοκάμπου", - "Μεσοκώμης", - "Μεσολακκιάς", - "Μεσολογγίου", - "Μεσολουρίου", - "Μεσολόγγου", - "Μεσονησίου", - "Μεσοποτάμου", - "Μεσοποταμιάς", - "Μεσοπύργου", - "Μεσορράχης", - "Μεσορρουγίου", - "Μεσορόπης", - "Μεσοτόπου", - "Μεσοχωρίου", - "Μεσοχωρίου Υπάτης", - "Μεσοχωρίων", - "Μεσοχώρας", - "Μεσσήνης", - "Μεστών", - "Μετάλλων", - "Μεταγκιτσίου", - "Μεταμορφώσεως", - "Μεταμόρφωσης", - "Μεταξά", - "Μεταξάδας", - "Μεταξάδων", - "Μεταξάτων", - "Μεταξοχωρίου", - "Μετοχίου", - "Μετοχίου Διρφύων", - "Μετοχίου Κηρέως", - "Μετσόβου", - "Μετόχιο Προδρόμου", - "Μηθύμνης", - "Μηλέα", - "Μηλέας", - "Μηλίνης", - "Μηλίτσας", - "Μηλίτσης", - "Μηλεών", - "Μηλιάς", - "Μηλιανών", - "Μηλιωτίου", - "Μηλοχωρίου", - "Μητάτου", - "Μητάτων", - "Μητροπόλεως", - "Μητρουσίου", - "Μηχανιώνας", - "Μιαμούς", - "Μιδέας", - "Μικράς Γότιστας", - "Μικράς Μαντινείας", - "Μικροβάλτου", - "Μικροθηβών", - "Μικροκάμπου", - "Μικροκάστρου", - "Μικροκλεισούρας", - "Μικρολίμνης", - "Μικρολιβάδου", - "Μικρομάνης", - "Μικρομηλέας", - "Μικροπόλεως", - "Μικροσπηλιάς", - "Μικροχωρίου", - "Μικρού Βάλτου", - "Μικρού Βουνού", - "Μικρού Δάσους", - "Μικρού Δερείου", - "Μικρού Μοναστηρίου", - "Μικρού Περιβολακίου", - "Μικρού Περιστερίου", - "Μικρού Ποντιά", - "Μικρού Σουλίου", - "Μικρού Χωρίου", - "Μικρόν Πιστόν", - "Μιλάτου", - "Μιλλιαράδων", - "Μιντιλογλίου", - "Μιράνων", - "Μιραλίου", - "Μιστεγνών", - "Μιτοπόλεως", - "Μιχαλιτσίου", - "Μιχοΐου", - "Μοίρας", - "Μοδίου", - "Μοιρών", - "Μολάων", - "Μολίστης", - "Μολυβδοσκεπάστου", - "Μολόχας", - "Μονής", - "Μοναστηρίου", - "Μοναστηρακίου", - "Μοναχιτίου", - "Μονεμβασίας", - "Μονοδενδρίου", - "Μονοδρύου", - "Μονοκαρυάς", - "Μονοκκλησιάς", - "Μονολίθου", - "Μονολιθίου", - "Μονοπολάτων", - "Μονοσπίτων", - "Μονόβρυσης", - "Μοραΐτικων", - "Μορονίου", - "Μορφοβουνίου", - "Μοσιάς", - "Μοσχάτου", - "Μοσχοκαρυάς", - "Μοσχοποτάμου", - "Μοσχοφύτου", - "Μοσχοχωρίου", - "Μουδανιών", - "Μουζίλου", - "Μουζακίου", - "Μουζακαίων", - "Μουζακαιίκων", - "Μουζουρά", - "Μουλίων", - "Μουλιανών", - "Μουλκίου", - "Μουρεσίου", - "Μουριάς", - "Μουριατάδας", - "Μουρικίου", - "Μουριών", - "Μουρνές", - "Μουρνιών", - "Μουσάτων", - "Μουσθένης", - "Μουσιωτίτσης", - "Μουσουνίτσης", - "Μουσούρων", - "Μοχού", - "Μούδρου", - "Μούντρου", - "Μπάφρας", - "Μπαμπίνης", - "Μπαμπαλιού", - "Μπαουσιών", - "Μπατσίου", - "Μπελοκομίτης", - "Μπενιτσών", - "Μπεστιάς", - "Μπιζανίου", - "Μποζικά", - "Μπολατίου", - "Μπουλαριών", - "Μποχάλης", - "Μπράλου", - "Μπόρσα", - "Μπόρσιον", - "Μυγδαλιάς", - "Μυκηνών", - "Μυκονίων", - "Μυλοποτάμου", - "Μυλοτόπου", - "Μυξόρρουμα", - "Μυρίκης", - "Μυρίνης", - "Μυριναίων", - "Μυριοκεφάλων", - "Μυριοφύτου", - "Μυρκίνου", - "Μυρμηγκίου", - "Μυροδάφνης", - "Μυροφύλλου", - "Μυρρίνης", - "Μυρσίνης", - "Μυρσινοχωρίου", - "Μυρτέας", - "Μυρτιάς", - "Μυρτιδίων", - "Μυρτουντίων", - "Μυρτοφύτου", - "Μυρωδάτου", - "Μυρωνίων", - "Μυρόβρυσης", - "Μυστρά", - "Μυτιλήνης", - "Μυτιληνιών", - "Μυχού", - "Μόριας", - "Μόρφης", - "Μύθων", - "Μύκης", - "Μύλων", - "Μύρθιου", - "Μύρου", - "Μύρτου", - "Μύρων", - "Μύστακας", - "Μύτικα", - "Μώλου", - "Ν.Κερασιάς", - "Νάξου", - "Νάπης", - "Νέα Σάντα", - "Νίκης", - "Νίπους", - "Νίψης", - "Ναμάτων", - "Ναούσης", - "Ναρθακίου", - "Ναρκίσσου", - "Νασίων", - "Ναυπάκτου", - "Ναυπακτίας", - "Ναυπλιέων", - "Νεάπολης", - "Νεαπόλεως", - "Νεγάδων", - "Νεγράδων", - "Νεδούσης", - "Νεμέας", - "Νεμούτας", - "Νενήτων", - "Νενητουρίων", - "Νεοκάστρου", - "Νεοκαισαρείας", - "Νεοχωρίου", - "Νεοχωρακίου", - "Νεοχωροπούλου", - "Νεοχωρούδας", - "Νεράιδας", - "Νεράντζης", - "Νεραντζιών", - "Νεραϊδοχωρίου", - "Νεριανών", - "Νεροκούρου", - "Νερομάννας", - "Νερομύλου", - "Νερομύλων", - "Νεροτριβιάς", - "Νεροφράκτου", - "Νεροχωρίου", - "Νεστάνης", - "Νεστορίου", - "Νευροκοπίου", - "Νεύρα", - "Νησίου", - "Νησακίου", - "Νιάτων", - "Νιγρίτης", - "Νιθαύρεως", - "Νικήσιανης", - "Νικήτης", - "Νικαίας", - "Νικηθιανού", - "Νικηταί", - "Νικηφόρου", - "Νικιών", - "Νικοκλείας", - "Νικολή", - "Νικολαιίκων", - "Νικολιτσίου", - "Νικομηδείας", - "Νικομηδινού", - "Νικοπόλεως", - "Νικοτσάρας", - "Νικόπολης", - "Νιπιδιτού", - "Νιφοραιίκων", - "Νομής", - "Νομίων", - "Νομιτσή", - "Νοστίμου", - "Νοτίας", - "Νοχιών", - "Ντερέ", - "Νυβρίτου", - "Νυδρίου", - "Νυμφίου", - "Νυμφαίου", - "Νυμφασίας", - "Νυμφοπέτρας", - "Νυμφών", - "Νυφίου", - "Ξάνθης", - "Ξαμουδοχωρίου", - "Ξανθάτων", - "Ξανθοχωρίου", - "Ξενιάκου", - "Ξενιών", - "Ξενοπούλου", - "Ξεριά", - "Ξεχασμένης", - "Ξεχώρου", - "Ξηροκάμπου", - "Ξηροκαμπίου", - "Ξηροκαριταίνης", - "Ξηρολίμνης", - "Ξηρολόφου", - "Ξηρονομής", - "Ξηροπηγάδου", - "Ξηροποτάμου", - "Ξηροστερνίου", - "Ξηροχωρίου", - "Ξινονερίου", - "Ξινού Νερού", - "Ξινόβρυσης", - "Ξιφιανής", - "Ξορυχτίου", - "Ξυλαγανής", - "Ξυλικών", - "Ξυλοκάστρου", - "Ξυλοκέρας", - "Ξυλοκερίζης", - "Ξυλοκερατέας", - "Ξυλοπαροίκου", - "Ξυλοπόλεως", - "Οάσεως", - "Οίας", - "Οίτης", - "Οβριάς", - "Οθωνών", - "Οινουσσών", - "Οινοφύτων", - "Οινοχωρίου", - "Οινούσσας", - "Οινόης", - "Οιτύλου", - "Οιχαλίας", - "Οκτωνιάς", - "Ολβίου", - "Ολύμπου", - "Ολύμπων", - "Ολύνθου", - "Ομαλής", - "Ομαλών", - "Ομβριακής", - "Ομηρικόν", - "Ομολίου", - "Ομορφοκκλησιάς", - "Ομορφοχωρίου", - "Οξυάς", - "Οξυλίθου", - "Οξυνείας", - "Ορίου", - "Οργάνης", - "Ορεινής", - "Ορεινού", - "Ορεινού Ξηροβάλτου", - "Ορθέ", - "Ορθοβουνίου", - "Ορθονιών", - "Ορθουνίου", - "Ορμενίου", - "Ορμυλίας", - "Ορνές", - "Οροπεδίου", - "Ορφανίου", - "Ορφανών", - "Ορχομενού", - "Ουρανοπόλεως", - "Οφρυνίου", - "Οχθίων", - "Οχυρού", - "Πάγου", - "Πάγων", - "Πάδων", - "Πάου", - "Πάπαρη", - "Πάργας", - "Πάρου", - "Πάστρας", - "Πάτμου", - "Πέλεκα", - "Πέλλης", - "Πέντε Εκκλησιών", - "Πέπλου", - "Πέρα Μελάνων", - "Πέραν Τριοβασάλου", - "Πέρδικας", - "Πέρκου", - "Πέρνης", - "Πέτα", - "Πέτρα", - "Πέτρας", - "Παγκαλοχωρίου", - "Παγκρατίου", - "Παγκρατών", - "Παγονερίου", - "Παγουριών", - "Παγώνδου", - "Παγώντα", - "Παιανίας", - "Πακίων", - "Παλαίρου", - "Παλαίστρας", - "Παλαιάς Γιαννιτσούς", - "Παλαιάς Καβάλας", - "Παλαιάς Φωκαίας", - "Παλαικάστρου", - "Παλαιοβαρβασαίνης", - "Παλαιοβράχας", - "Παλαιοκάστρου", - "Παλαιοκήπου", - "Παλαιοκαρυάς", - "Παλαιοκατούνας", - "Παλαιοκατούνου", - "Παλαιοκερασέας", - "Παλαιοκκλησίου", - "Παλαιοκώμης", - "Παλαιομανίνας", - "Παλαιομοναστήρου", - "Παλαιοξαρίου", - "Παλαιοπαναγίας", - "Παλαιοπόλεως", - "Παλαιοπύργου", - "Παλαιοσελλίου", - "Παλαιοχούνης", - "Παλαιοχωρίου", - "Παλαιοχωρίου Δωριέων", - "Παλαιοχωρίου Μπότσαρη", - "Παλαιοχωρίου Σιράκου", - "Παλαιοχωρίου Τυμφρηστού", - "Παλαιοχωρακίου", - "Παλαιοχώρας", - "Παλαιού Αγιονερίου", - "Παλαιού Ελευθεροχωρίου", - "Παλαιού Κεραμιδίου", - "Παλαιού Λουτρού", - "Παλαιού Μυλοτόπου", - "Παλαιού Σκυλλιτσίου", - "Παλαιού Φαλήρου", - "Παλαιφύτου", - "Παλαιόβρυσης", - "Παλαιόστανης", - "Παλαιών Ρουμάτων", - "Παλαμά", - "Παλαμαρίου", - "Παλαμπά", - "Παλατίων", - "Παλατιτσίων", - "Παλιαμπέλων", - "Παλιουρίου", - "Παλιουριάς", - "Παλιούρα", - "Παλιούρης", - "Παλλήνης", - "Παλλαντίου", - "Παλούμπας", - "Παμφίλων", - "Παμφίου", - "Πανάσου", - "Παναγίας", - "Παναγίτσας", - "Παναγιούδας", - "Παναγούλας", - "Παναιτωλίου", - "Παναρίτη", - "Παναριτίου", - "Πανδρόσου", - "Πανεθήμου", - "Πανιπερίου", - "Πανουργιά", - "Παντανάσσης", - "Πανόρμου", - "Παπάγου", - "Παπίγκου", - "Παπαδιανίκων", - "Παπαφλέσσα", - "Παππά", - "Παππάδου", - "Παππάδων", - "Παππαγιάννη", - "Παππαγιαννάδων", - "Παππαδάτου", - "Παππαδατών", - "Παππαδιανών", - "Παππαρουσίου", - "Παππουλίων", - "Παραβόλας", - "Παραδείσου", - "Παραδεισίου", - "Παραδεισίων", - "Παρακαλάμου", - "Παρακοίλων", - "Παραλία Μέσης", - "Παραλίας", - "Παραλίας Πλατάνου", - "Παραλίου Άστρους", - "Παραλιμνίου", - "Παραλογγών", - "Παραμέρου", - "Παραμυθίας", - "Παρανεστίου", - "Παρανύμφων", - "Παραποτάμου", - "Παραπουγκίου", - "Παρασκευής", - "Παρδαλίτσης", - "Παρθενίου", - "Παρορίου", - "Παρορείου", - "Παρπαριάς", - "Παρτίρων", - "Πασίου", - "Πασαλιτών", - "Παστίδας", - "Πασχαλίτσης", - "Πασχαλιάς", - "Πατερμά", - "Πατιοπούλου", - "Πατουλιάς", - "Πατρέων", - "Πατρικάτων", - "Πατρικίου", - "Πατρικών", - "Πατσιανού", - "Πατσιδερού", - "Πατσού", - "Παυλιάνας", - "Παυλοπούλου", - "Παχείας Άμμου", - "Παχτουρίου", - "Παχυκαλάμου", - "Παϊδοχωρίου", - "Παύλιανης", - "Παύλιας", - "Παύλου", - "Πεδινής", - "Πεδινού", - "Πεδινών", - "Πεζούλας", - "Πεζών", - "Πεθελινού", - "Πειραιώς", - "Πελάγους", - "Πελαγίας", - "Πελαργού", - "Πελασγίας", - "Πελεκάνου", - "Πελεκανάδας", - "Πελετών", - "Πελλάνας", - "Πελλήνης", - "Πελοπίου", - "Πελόπης", - "Πεμονίων", - "Πεντέλης", - "Πενταβρύσου", - "Πενταγιών", - "Πεντακόρφου", - "Πενταλόφου", - "Πενταμοδίου", - "Πενταπόλεως", - "Πεντατίου", - "Πεντεορίων", - "Πεντολάκκου", - "Πεπονιάς", - "Περάμα", - "Περάμου", - "Περάνθης", - "Περάτη", - "Περίου", - "Περίστης", - "Περαίας", - "Περατάτων", - "Περατιάς", - "Περαχωρίου", - "Περβολακίων", - "Περδίκκα", - "Περδικίου", - "Περδικακίου", - "Περδικονερίου", - "Περδικόβρυσης", - "Περθωρίου", - "Περιβλέπτου", - "Περιβολίου", - "Περιβολίου Δομοκού", - "Περιβολίων", - "Περιβολίων Κισσάμου", - "Περιβολίων Κυδωνίας", - "Περιβολακίου", - "Περιβολακίων", - "Περιγιαλίου", - "Περιθείας", - "Περιθιωτίσσης", - "Περιθωρίου", - "Περικλείας", - "Περιστάσεως", - "Περιστέρας", - "Περιστεράς", - "Περιστερίου", - "Περιστερώνας", - "Περιχώρας", - "Περουλάδων", - "Περσαίνης", - "Περτουλίου", - "Πεσάδας", - "Πεστών", - "Πεταλείας", - "Πεταλιδίου", - "Πετουσίου", - "Πετράδων", - "Πετρίλου", - "Πετρίνας", - "Πετρίνου", - "Πετρίου", - "Πετραίας", - "Πετραλώνων", - "Πετρανών", - "Πετριτής", - "Πετριτσίου", - "Πετριών", - "Πετροβίτσας", - "Πετροβούνιον", - "Πετροκεράσων", - "Πετροκεφάλου", - "Πετροκεφαλίου", - "Πετροπηγής", - "Πετροπόρου", - "Πετροχωρίου", - "Πετρούπολης", - "Πετρούσσης", - "Πετρωτού", - "Πετρωτών", - "Πετρών", - "Πετρώνας", - "Πετσάκων", - "Πετσαλίου", - "Πευκοδάσους", - "Πευκοφύτου", - "Πευκοχωρίου", - "Πεύκης", - "Πεύκου", - "Πεύκων", - "Πηγής", - "Πηγαδίου", - "Πηγαδίτσης", - "Πηγαδίων", - "Πηγαδακίων", - "Πηγαδησάνων", - "Πηγαδούλια", - "Πηγαϊδακίων", - "Πηγών", - "Πηδάσου", - "Πηλίου", - "Πιάνας", - "Πιαλείας", - "Πικέρνη", - "Πικερμίου", - "Πιλαλίστρας", - "Πινακατών", - "Πινακοχωρίου", - "Πιπερίτσης", - "Πιπεριών", - "Πιραμάς", - "Πισίων", - "Πισκοκεφάλου", - "Πισοδερίου", - "Πιστιανών", - "Πιτίτσης", - "Πιτροφού", - "Πιτσίου", - "Πιτσιδίων", - "Πιτσιναιίκων", - "Πιτσιωτών", - "Πιτσών", - "Πλάκας", - "Πλάνου", - "Πλάτης", - "Πλάτσης", - "Πλαγίων", - "Πλαγιά", - "Πλαγιάς", - "Πλαγιαρίου", - "Πλαγιών", - "Πλαισίου", - "Πλαισίων Μαλακασίου", - "Πλακάδου", - "Πλακίδας", - "Πλακωτής", - "Πλανητέρου", - "Πλατάνας", - "Πλατάνης", - "Πλατάνου", - "Πλαταιών", - "Πλατανίου", - "Πλατανίων", - "Πλατανακίου", - "Πλατανακίων", - "Πλατανιά", - "Πλατανιάς", - "Πλατανιστού", - "Πλατανιωτίσσης", - "Πλατανοτόπου", - "Πλατανούσσης", - "Πλατανόβρυσης", - "Πλαταριάς", - "Πλατιάνας", - "Πλατρειθιά", - "Πλατυβόλας", - "Πλατυκάμπου", - "Πλατυστόμου", - "Πλατυστόμων", - "Πλεμενιανών", - "Πληκατίου", - "Πλουτοχωρίου", - "Πλωμαρίου", - "Πλώρας", - "Πογωνίας", - "Ποδογοράς", - "Ποδοχωρίου", - "Ποιμενικού", - "Ποκίστης", - "Πολίχνης", - "Πολεμαρχίου", - "Πολιανής", - "Πολιτικών", - "Πολιχνίτου", - "Πολοβίτσης", - "Πολυάνθου", - "Πολυανέμου", - "Πολυγύρου", - "Πολυδένδρου", - "Πολυδαμείου", - "Πολυδενδρίου", - "Πολυδρόσου", - "Πολυδώρου", - "Πολυθέας", - "Πολυκάρπης", - "Πολυκάστρου", - "Πολυκαρπίου", - "Πολυκαστάνου", - "Πολυκεράσου", - "Πολυλάκκου", - "Πολυλόφου", - "Πολυμύλου", - "Πολυνέρου", - "Πολυνερίου", - "Πολυπέτρου", - "Πολυπλατάνου", - "Πολυποτάμου", - "Πολυρράχου", - "Πολυρρηνίας", - "Πολυσίτου", - "Πολυσταφύλου", - "Πολυστύλου", - "Πολυφύτου", - "Πολυχρόνου", - "Ποντικατών", - "Ποντινής", - "Ποντισμένου", - "Ποντοηρακλείας", - "Ποντοκερασέας", - "Ποντοκώμης", - "Ποντολιβάδου", - "Ποροΐων", - "Ποροβίτσης", - "Πορτής", - "Πορτίτσης", - "Πορταριάς", - "Πορτιανού", - "Πορτοχελίου", - "Πορτών", - "Ποσειδωνίας", - "Ποτάμων", - "Ποταμίδας", - "Ποταμιά", - "Ποταμιάς", - "Ποταμιών", - "Ποταμού", - "Ποταμούλας Μεσολογγίου", - "Ποταμών", - "Ποτειδαίας", - "Ποτιδάνειας", - "Ποτιστικών", - "Πουγκακίων", - "Πουλάτων", - "Πουλίθρων", - "Πουλιτσίου", - "Πουλλίτσης", - "Πουλλακίδας", - "Πουρίου", - "Πουρναρίου", - "Πουρναριάς", - "Πουρνιάς", - "Πούρνου", - "Πρίνας", - "Πρίνου", - "Πραγγίου", - "Πραγματευτή", - "Πραισού", - "Πραιτωρίου", - "Πραιτωρίων", - "Πραμάντων", - "Πρασέ", - "Πρασίνου", - "Πρασιάς", - "Πρασιδακίου", - "Πρασινάδας", - "Πρασιών", - "Πραστού", - "Πρεβέζης", - "Πρινέ", - "Πρινιά", - "Πριολίθου", - "Προαστίου", - "Προβατά", - "Προδρομίου", - "Προδρόμου", - "Προκοπίου", - "Προμάχων", - "Προμυρίου", - "Προσβόρρου", - "Προσηλίου", - "Προσηλίων", - "Προσκυνά", - "Προσκυνητών", - "Προσοτσάνης", - "Προσύμνης", - "Προυσού", - "Προφήτη Ηλία", - "Προφήτης Ηλίας", - "Προφήτου", - "Προφήτου Ηλία", - "Προφήτου Ηλιού", - "Προφίλιας", - "Πρωτοκκλησίου", - "Πρωτοχωρίου", - "Πρωτόπαππα", - "Πρώτης", - "Πτέρης", - "Πτελέας", - "Πτελέας Πλατανιάς", - "Πτελεού", - "Πτελοπούλας", - "Πτεριάς", - "Πυθίου", - "Πυθαγορείου", - "Πυλίου", - "Πυλαίας", - "Πυλωρίου", - "Πυλωρών", - "Πυλών", - "Πυξαρίου", - "Πυράς", - "Πυργέλλας", - "Πυργίου", - "Πυργαδικίων", - "Πυργακίου", - "Πυργετού", - "Πυργιωτίκων", - "Πυργούς", - "Πυρρή", - "Πυρρίχου", - "Πυρσόγιαννης", - "Πωγωνιανής", - "Πόδου", - "Πόμπιας", - "Πόρου", - "Πόρπη", - "Πόρων", - "Πύδνας", - "Πύλας", - "Πύλης", - "Πύλου", - "Πύργου", - "Πύργου Διρού", - "Πύργου Ιθώμης", - "Πύργου Καλαμών", - "Πύργου Καλλίστης", - "Πύργου Κιερίου", - "Πύργου Τριφυλίας", - "Πύργων", - "Πύργων Θερμής", - "Πύρρας", - "Ράδου", - "Ράμιας", - "Ράξας", - "Ράφτη", - "Ράχη", - "Ράχης", - "Ρίγανης", - "Ρίζης", - "Ρίζου", - "Ρίου", - "Ραΐκου", - "Ραβδούχας", - "Ραβενής", - "Ραβενίων", - "Ραγάδα", - "Ραγίου", - "Ραδοβιζίου", - "Ραιδεστού", - "Ραμνής", - "Ραπτοπούλου", - "Ραφήνας", - "Ραφταναίων", - "Ραχούλας", - "Ραχτάδων", - "Ραχωνίου", - "Ραχών", - "Ραχώνας", - "Ραψάνης", - "Ραψομμάτη", - "Ρεγκινίου", - "Ρεθίου", - "Ρεθύμνης", - "Ρειχέας", - "Ρεντίνας", - "Ρεπανιδίου", - "Ρεπετίστης", - "Ρετσίνων", - "Ρετσιανών", - "Ρευματιάς", - "Ρητίνης", - "Ριαχόβου", - "Ριγανίου", - "Ριγκλίων", - "Ριζίων", - "Ριζαρίου", - "Ριζοβουνίου", - "Ριζομύλου", - "Ριζοσπηλιάς", - "Ριζού", - "Ριζωμάτων", - "Ριζών", - "Ριφίου", - "Ριόλου", - "Ροβίων", - "Ροβιάτας", - "Ροβιών", - "Ροβολιαρίου", - "Ρογιτίκων", - "Ρογών", - "Ροδίτου", - "Ροδίτσης", - "Ροδακίνου", - "Ροδαυγής", - "Ροδιάς", - "Ροδιανής", - "Ροδινών", - "Ροδοβανίου", - "Ροδοδάφνης", - "Ροδολίβους", - "Ροδοπόλεως", - "Ροδοτοπίου", - "Ροδοχωρίου", - "Ροδωνιάς", - "Ροδωπού", - "Ροεινού", - "Ρομιρίου", - "Ροποτού", - "Ροσκάς", - "Ρουμελής", - "Ρουπακίου", - "Ρουπακιάς", - "Ρουσσοπουλίου", - "Ρουσσοσπιτίου", - "Ρουστίκων", - "Ρουτσίου", - "Ρουφά", - "Ρουψιάς", - "Ρούσσας Εκκλησίας", - "Ρούσσου", - "Ρυακίου", - "Ρυακίων", - "Ρυζιών", - "Ρυμνίου", - "Ρυσίου", - "Ρωμαιίκου", - "Ρωμανού", - "Ρωμιάς", - "Ρόδου", - "Ρόδων", - "Ρόκκας", - "Σάγκα", - "Σάλπης", - "Σάμης", - "Σάντας", - "Σάρτης", - "Σάρχου", - "Σέκουλα", - "Σέμπρωνα", - "Σέρβου", - "Σέσκλου", - "Σέτας", - "Σίβα", - "Σίβας", - "Σίδερης", - "Σίλης", - "Σίμου", - "Σίνδου", - "Σίτσαινα", - "Σαβαλίων", - "Σαγαιίκων", - "Σαγιάδας", - "Σαγκρίου", - "Σακτουρίων", - "Σαλάκου", - "Σαλμενίκου", - "Σαλμώνης", - "Σαλονίκης", - "Σαμίων", - "Σαμαρίνης", - "Σαμικού", - "Σαμοθράκης", - "Σαμονίδας", - "Σαμπά", - "Σαντομερίου", - "Σανών", - "Σαπουνακαίϊκων", - "Σαπών", - "Σαραβαλίου", - "Σαρακήνας", - "Σαρακηνάδου", - "Σαρακηνών", - "Σαρακινίου", - "Σαρακινίου Ηραίας", - "Σαρανταπήχου", - "Σαρανταπόρου", - "Σαργιάδας", - "Σαρδινίων", - "Σαρδών", - "Σαρκίνης", - "Σασάλου", - "Σατρών", - "Σαϊδόνας", - "Σαϊτουρών", - "Σβορωνάτων", - "Σβορώνου", - "Σγουράδων", - "Σγουροκεφαλίου", - "Σεβαστής", - "Σεβαστιανών", - "Σεβαστού", - "Σειρών", - "Σελέρου", - "Σελίνου", - "Σελεγουδίου", - "Σελευκείας", - "Σεληνίων", - "Σελιάνας", - "Σελιανιτίκων", - "Σελλά", - "Σελλάδων", - "Σελλίου", - "Σελλίων", - "Σελλασίας", - "Σελλών", - "Σενίκου", - "Σερίφου", - "Σερβίων", - "Σερβιανών", - "Σερβωτών", - "Σεργούλας", - "Σεριζιανών", - "Σερνικακίου", - "Σερρών", - "Σημάντρου", - "Σημάντρων", - "Σηρικαρίου", - "Σησαμίας", - "Σητείας", - "Σιάμου", - "Σιάνων", - "Σιατίστης", - "Σιβίστης", - "Σιγουνίου", - "Σιγρίου", - "Σιδήρων", - "Σιδαρίου", - "Σιδερά", - "Σιδηράδες", - "Σιδηροκάστρου", - "Σιδηρονέρου", - "Σιδηροχωρίου", - "Σικίνου", - "Σιλάτων", - "Σιλίμνης", - "Σιμίζα", - "Σιμιάδων", - "Σιμοπούλου", - "Σιναράδων", - "Σινεβρού", - "Σινιών", - "Σινώπης", - "Σιριλίου", - "Σισανίου", - "Σιστρουνίου", - "Σισών", - "Σιταίνης", - "Σιταγρών", - "Σιταρά", - "Σιταραλώνων", - "Σιταριάς", - "Σιτομένων", - "Σιτοχωρίου", - "Σιτοχώρου", - "Σκάλας", - "Σκάλας Ωρωπού", - "Σκάλωμα", - "Σκάφης", - "Σκήτης", - "Σκαδού", - "Σκαλανίου", - "Σκαλοχωρίου", - "Σκαλωτής", - "Σκαμνακίου", - "Σκαμνελλίου", - "Σκανδάλου", - "Σκανδαλίου", - "Σκαρφείας", - "Σκαφιδακίου", - "Σκαφιδιάς", - "Σκαφιδωτής", - "Σκεπαρίου", - "Σκεπαστής", - "Σκεπαστού", - "Σκιάδα", - "Σκιάθου", - "Σκιαδά", - "Σκιλλουντίας", - "Σκινέ", - "Σκινέως", - "Σκινιά", - "Σκιώνης", - "Σκλήθρου", - "Σκλίβανης", - "Σκλίβας", - "Σκλαβοπούλας", - "Σκληρού", - "Σκοπέλου", - "Σκοπής", - "Σκοπιάς", - "Σκοπού", - "Σκορτσινού", - "Σκοτάνης", - "Σκοτίνης", - "Σκοτεινής", - "Σκοτούσσης", - "Σκουληκάδου", - "Σκουληκαριάς", - "Σκουλουφίων", - "Σκουραιίκων", - "Σκουρβούλων", - "Σκουροχωρίου", - "Σκουρτούς", - "Σκουτάρεως", - "Σκουτάρου", - "Σκουταρίου", - "Σκουτεράς", - "Σκουτεσιάδας", - "Σκούπας", - "Σκούρα", - "Σκούρας", - "Σκούρτων", - "Σκρα", - "Σκριπερού", - "Σκύδρας", - "Σκύρου", - "Σμέρνας", - "Σμέρτου", - "Σμίλας", - "Σμίξης", - "Σμαρίου", - "Σμυρτιάς", - "Σμύρνης", - "Σοκαρά", - "Σολακίου", - "Σολομού", - "Σοπίου", - "Σορωνής", - "Σουδεναιίκων", - "Σουλίου", - "Σουλαρίου", - "Σουληναρίου", - "Σουλλάρων", - "Σουλοπούλου", - "Σουνίου", - "Σουρωτής", - "Σουστιάνων", - "Σουφλίου", - "Σοφάδων", - "Σοφιάδας", - "Σοφιανών", - "Σοφικού", - "Σοφικό", - "Σοχού", - "Σούγιας", - "Σούδας", - "Σούλου", - "Σούρπης", - "Σπάθαρη", - "Σπάρτου", - "Σπάτων-Λούτσας", - "Σπήλιου", - "Σπαθάδων", - "Σπαθαρίου", - "Σπαθαραίων", - "Σπανοχωρίου", - "Σπαρτιά", - "Σπαρτιάς", - "Σπαρτιατών", - "Σπαρτιών", - "Σπαρτοχωρίου", - "Σπαρτύλα", - "Σπερχογείας", - "Σπετσών", - "Σπηλίου", - "Σπηλαίου", - "Σπηλαίων", - "Σπηλιάς", - "Σπιταλίου", - "Σπολαίτης", - "Σπόθων", - "Σπόων", - "Στάβλων", - "Στάθη", - "Στάνου", - "Στέρνας", - "Στίβου", - "Στίλιας", - "Στίρφακας", - "Σταβιών", - "Σταγίρων", - "Σταγιατών", - "Σταδίου", - "Σταθά", - "Σταθμού Αγγίστης", - "Σταθμού Μουριών", - "Σταλού", - "Σταμάτας", - "Σταματινού", - "Σταμνάς", - "Στανού", - "Σταροχωρίου", - "Στασίμου", - "Στασιού", - "Σταυρακίου", - "Σταυρακίων", - "Σταυρινήδων", - "Σταυροδρομίου", - "Σταυροπηγίου", - "Σταυροσκιαδίου", - "Σταυρουπόλεως", - "Σταυροχωρίου", - "Σταυρού", - "Σταυρωμένου", - "Σταφιδοκάμπου", - "Στειρίου", - "Στεμνίτσης", - "Στενής", - "Στενημάχου", - "Στενιών", - "Στενού", - "Στενυκλάρου", - "Στερνών", - "Στεφάνης", - "Στεφανίου", - "Στεφανιάς", - "Στεφανινών", - "Στεφανοβικείου", - "Στεφανοβούνου", - "Στιμάγκας", - "Στομίου", - "Στουππαίων", - "Στουρναραιίκων", - "Στράτου", - "Στρίγκου", - "Στρανώμης", - "Στρατινίστης", - "Στρατονίκης", - "Στρατωνίου", - "Στρεφίου", - "Στροβλών", - "Στρογγυλής", - "Στρογγυλοβουνίου", - "Στροπώνων", - "Στρουσίου", - "Στροφή", - "Στροφυλιάς", - "Στρυμονικού", - "Στρυμονοχωρίου", - "Στρόμης", - "Στρύμης", - "Στυλάριον", - "Στυλίων", - "Στυμφαλίας", - "Στόλου", - "Στόλων", - "Στύλιας", - "Στύλου", - "Στύρων", - "Στύψης", - "Συβότων", - "Συγκρέλλου", - "Συκά Υπάτης", - "Συκέας", - "Συκής", - "Συκαμίνου", - "Συκαμινέας", - "Συκεών", - "Συκιάδας", - "Συκολόγου", - "Συκορράχης", - "Συκουρίου", - "Συλιβαινιώτικων", - "Συμβολής", - "Συνδένδρου", - "Συνετίου", - "Συνοικίας Τρικάλων", - "Συρράκου", - "Συρρίζου", - "Σφάκας", - "Σφακερών", - "Σφακοπηγαδίου", - "Σφελινού", - "Σφενδαμίου", - "Σφηκιάς", - "Σφηνωτού", - "Σχίνων", - "Σχηματαρίου", - "Σχινοκαψάλων", - "Σχινοχωρίου", - "Σχοινούσσης", - "Σχολαρίου", - "Σωκρακίου", - "Σωληναρίου", - "Σωσάνδρας", - "Σωστίου", - "Σωτήρας", - "Σωταίνης", - "Σωτηρίου", - "Σωτηρίτσης", - "Σωτηριανίκων", - "Σύβρου", - "Σύμης", - "Σύρνας", - "Σύρου", - "Σώστης", - "Τέμενης", - "Τήνου", - "Ταγαράδων", - "Τακτικουπόλεως", - "Ταλάντων", - "Τανάγρας", - "Ταξιάρχου", - "Ταξιαρχών", - "Ταρσινών", - "Ταρσού", - "Ταυρωνίτου", - "Ταύρου", - "Τειχίου", - "Τεμενίων", - "Τεμπών", - "Τενέδου", - "Τεριαχίου", - "Τερπνής", - "Τερπύλλου", - "Τερψιθέας", - "Τερόβου", - "Τετρακώμου", - "Τετραλόφου", - "Τεφελίου", - "Τζίβα", - "Τζερμιάδου", - "Τζιτζιφέ", - "Τιθορέας", - "Τιθρωνίου", - "Τιτάνης", - "Τοιχίου", - "Τολού", - "Τοξοτών", - "Τοπολίων", - "Τοπολιάνων", - "Τουλιάτων", - "Τουρκολέκα", - "Τουρλάδας", - "Τουρλωτής", - "Τούμπας", - "Τρίκαστρον", - "Τρίτους", - "Τραγάνας", - "Τραγίλου", - "Τραγακίου", - "Τραγανού", - "Τρανοβάλτου", - "Τραπέζης", - "Τραπεζίτσης", - "Τραπεζαντής", - "Τραχήλας", - "Τραχειάς", - "Τραχηλίου", - "Τρεχλού", - "Τριανδρίας", - "Τριαντάρου", - "Τριανταφυλλέας", - "Τριανταφυλλιάς", - "Τριβούνου", - "Τριγλίας", - "Τριγωνικού", - "Τριδένδρου", - "Τριζονίων", - "Τρικάλων", - "Τρικερίου", - "Τρικκαίων", - "Τρικλίνου", - "Τρικοκκιάς", - "Τρικορύφου", - "Τρικόρφου", - "Τρικώμου", - "Τριλόφου", - "Τριοβασάλου", - "Τριποτάμου", - "Τριποταμιάς", - "Τριπόλεως", - "Τριπύλας", - "Τριστένου", - "Τριταίας", - "Τριφυλλίου", - "Τριχωνίου", - "Τριόδου", - "Τροβάτου", - "Τροπαίων", - "Τροπαιούχου", - "Τρυπητής", - "Τρυπών", - "Τρωιανάτων", - "Τρύγονα", - "Τρύπης", - "Τρύφου", - "Τσάκονης", - "Τσάκων", - "Τσαγγαρίου", - "Τσαγκαράδας", - "Τσαγκαροπούλου", - "Τσαμαντά", - "Τσαπουρνιάς", - "Τσαριτσάνης", - "Τσελεπάκου", - "Τσεπελόβου", - "Τσερίων", - "Τσικαλαριών", - "Τσικκαλιών", - "Τσιμανδρίων", - "Τσιπιανών", - "Τσιταλίων", - "Τσοτυλίου", - "Τσουκαλάδων", - "Τσουκαλαιίκων", - "Τσούκκας", - "Τυλίσου", - "Τυμπακίου", - "Τυμφρηστού", - "Τυρνάβου", - "Τυρολόης", - "Τυρού", - "Τυχερού", - "Τόρνου", - "Υαμείας", - "Υδρούσσης", - "Υμηττού", - "Υπάτης", - "Υπάτου", - "Υπερείας", - "Υστερνίων", - "Υψηλάντου", - "Υψηλής Ράχης", - "Υψηλομετώπου", - "Υψηλού Χωρίου", - "Φάρου", - "Φάρσων", - "Φήκης", - "Φίλια", - "Φίλιας", - "Φαβατάτων", - "Φαλάνθης", - "Φαλάννης", - "Φαλαισίας", - "Φαλατάδου", - "Φαλελιανών", - "Φαμίλας", - "Φαναρίου", - "Φανερωμένης", - "Φανού", - "Φανών", - "Φαράκλας", - "Φαραγγίου", - "Φαρακλάδας", - "Φαρακλάτων", - "Φαρακλού", - "Φαρσάλων", - "Φαρών", - "Φασκομηλιάς", - "Φελλίου", - "Φελλού", - "Φενεού", - "Φερών", - "Φιγαλείας", - "Φιδακίων", - "Φιλίας", - "Φιλίππων", - "Φιλίων", - "Φιλαδελφίου", - "Φιλαδελφείας", - "Φιλιατρών", - "Φιλιατών", - "Φιλιππαίων", - "Φιλλύρα", - "Φιλοθέης", - "Φιλοτίου", - "Φιλυρίας", - "Φιλωτείας", - "Φιλύρας", - "Φιλύρου", - "Φιλώτα", - "Φιολίτη", - "Φισίνης", - "Φισκάρδου", - "Φιχτίου", - "Φλαμουριάς", - "Φλαμπουραρίου", - "Φλαμπουρεσίου", - "Φλαμπούρου", - "Φλαμπούρων", - "Φλατσίων", - "Φλογητών", - "Φλωρίνης", - "Φλόκα", - "Φλόκας", - "Φοινίκης", - "Φοινικίου", - "Φολεγάνδρου", - "Φολόης", - "Φοναϊτίκων", - "Φορτοσίου", - "Φουντωτού", - "Φουρνάς", - "Φουρνέ", - "Φουρνής", - "Φουρφουρά", - "Φούρκας", - "Φούρνων", - "Φούστανης", - "Φούφα", - "Φράγκας", - "Φράγκου", - "Φρίξης", - "Φραγκάδων", - "Φραγκουλαιίκων", - "Φραντάτου", - "Φραντζή", - "Φραντζεσκιανών Μετοχίων", - "Φρατσίων", - "Φρε", - "Φρεγκαίνης", - "Φριλιγκιανίκων", - "Φροσύνης", - "Φρουσιούνας", - "Φτέρης", - "Φτελιάς", - "Φτερνού", - "Φυλάκης", - "Φυλής", - "Φυλακής", - "Φυλακίου", - "Φυλακτής", - "Φυλακτού", - "Φυτείας", - "Φυτειών", - "Φυτών", - "Φωκαίας", - "Φωλεάς", - "Φωσταίνης", - "Φωτάδας", - "Φωτεινού", - "Φωτεινών", - "Φωτολίβους", - "Φόδελε", - "Φύλλου", - "Φύλλων", - "Φύσκας", - "Χάλκης", - "Χέρσου", - "Χίνκας", - "Χίου", - "Χαβαρίου", - "Χαβδάτων", - "Χαβριάτων", - "Χαιρεθιανών", - "Χαιρωνείας", - "Χαλάνδρων", - "Χαλάρων", - "Χαλάστρας", - "Χαλαζονίου", - "Χαλανδρίου", - "Χαλανδρίτσης", - "Χαλικίου", - "Χαλικίου Αμβρακίας", - "Χαλιωτάτων", - "Χαλκείου", - "Χαλκερού", - "Χαλκιά", - "Χαλκιάδων", - "Χαλκιδέων", - "Χαλκιοπούλων", - "Χαμαλευρίου", - "Χαμεζίου", - "Χανίων", - "Χανδρά", - "Χανδρινού", - "Χανιώτη", - "Χαράδρου", - "Χαράς", - "Χαράσου", - "Χαραδιατίκων", - "Χαρακίου", - "Χαρακοπίου", - "Χαραυγής", - "Χαριάς", - "Χαριέσσης", - "Χαριτωμένης", - "Χαρκίων", - "Χαροκόπιον", - "Χαροπού", - "Χατζή", - "Χαϊδαρίου", - "Χαϊκαλίου", - "Χειμάρρου", - "Χειμαδιού", - "Χειμερινού", - "Χειμωνίου", - "Χελιδονίου", - "Χελυδορέου", - "Χερσονήσου", - "Χιδήρων", - "Χιλιοδένδρου", - "Χιλιομοδίου", - "Χιονάδου", - "Χιονάδων", - "Χιονάτων", - "Χιράδων", - "Χιόνας", - "Χλοματιανών", - "Χλομού", - "Χολαργού", - "Χορηγού", - "Χορτάτων", - "Χορτερού", - "Χορτιάτη", - "Χουδετσίου", - "Χουλιαράδων", - "Χουμερίου", - "Χουμεριάκου", - "Χουμνικού", - "Χουστουλιανών", - "Χούνης", - "Χράνων", - "Χρισσού", - "Χριστιανουπόλεως", - "Χριστού", - "Χρομοναστηρίου", - "Χρούσων", - "Χρυσάφων", - "Χρυσής", - "Χρυσανθίου", - "Χρυσαυγής", - "Χρυσοβίτσας", - "Χρυσοβίτσης", - "Χρυσοβεργίου", - "Χρυσοβιτσίου", - "Χρυσοκάστρου", - "Χρυσοκελλαριάς", - "Χρυσοκεφάλου", - "Χρυσομηλέας", - "Χρυσοπέτρας", - "Χρυσοπηγής", - "Χρυσορράχης", - "Χρυσοστόμου", - "Χρυσουπόλεως", - "Χρυσοχωράφων", - "Χρυσοχωρίου", - "Χρυσού", - "Χρωμίου", - "Χρύσως", - "Χωματάδας", - "Χωρέμη", - "Χωρίου", - "Χωρίου Αποκορρώνου", - "Χωρίου Κυδωνίας", - "Χωρδακίου", - "Χωρεπισκόπων", - "Χωριστής", - "Χωρυγίου", - "Χωσιαρίου", - "Χωστιά", - "Χωτούσσης", - "Χόβολης", - "Χόικας", - "Χόμορης", - "Χόνδρου", - "Χόχλιας", - "Χώνου", - "Χώρας", - "Χώρας Σφακίων", - "Ψάκας", - "Ψήνας", - "Ψίνθου", - "Ψαθογιάννου", - "Ψαθοπύργου", - "Ψαθοτοπίου", - "Ψαράδων", - "Ψαρίου", - "Ψαρών", - "Ψαχνών", - "Ψηλής Βρύσης", - "Ψηλοβράχου", - "Ψιανών", - "Ψυχικού", - "Ψυχρού", - "Ωλένης", - "Ωραίου", - "Ωραιοκάστρου", - "Ωρεών", - "Ωριάς", - "Ωρολογίου", - "Ωρωπού", - "Όθους", - "Όρμης", - "Όρμου Κορθίου", - "Όρους", - "Όσσης", - "Όχθιας", - "Ύδρας", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/el_GR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/el_GR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e874273f71290cd5c08498844f40562e0cf0f11b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115356 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%0D01FRT)0@>X4Xz4lCtQ4p^ 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 str: - return self.random_element(self.city_prefixes) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def state_abbr(self) -> str: - return self.random_element(self.states_abbr) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_AU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_AU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 688b4a6295c2fd999217c9d87eedb7bebb07381b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4455 zcmcgv&2QVt6(=Q{pLeO`IB4>fIh%4e+1&OVkwsDC>^z)P?dzTrdWwbij`!E zuadD`UF~TF{m%)k3aUtNac|GI7;g=ltgLK5Av^W7cSW+#0K&vc_3?`G#K^TJ z$7|geBTHWBusxF#hnp=p3q(gaGw%yyiQ5+4v4k5ex*yx#1MquYlgwM{5i?yjL!S|4 zl$jfF*cW4Iak*{!Fsf|x7A#N27@;8|w1apjgtD^ZL2#t(IiBlEN6KEOgKU81w!DyI zS1)^AsmgIiMbSqm{iq*j?t#Z^0x;fRf0A-QWY+?p+)qio6>z$z(7? zTRIeF%As?`Vpn{#1&hNVphMcSNoBFj97l{Svpw4kY?zr`w!30<+4ci&H^ab#dCS}; zGbAF-+6skJUvZj*!LM z5D+LWf>O^qgKgTn4JJVp^12-aRDJ87cOP8}w&!()zV1Ch6=@qL?oDklsKYY3K`jjc zBR4$ck#y=Ca0cf#p+KZ=g@Hqav1M`@0AQqmAW~@gB1NRM1q6<5QM&+Q{9r4P?iyRR z8AYbhw;bxc6i~p-P_Dr?w$PyrHM`~6sF6{cAS0N#9VTl;yB(rvGXyE@a4tQdaUCd_ zOwbob#gsEc1BT0$I7byZ3{n;5Gmh+NAkdQ)R1ib$Xcak}0IB;Wf-})rg>sj>wVT_a zVy?*8SI{a@i$dol3PgUVK-r9&kfP?&2_l{nk?s^xB#0eEopyYNu5e(l7nm4d*pTG| zgn~;}sADP^X8>+AT7}tmi%CO_sx8YvuR2~AwqVSo?zCz*z!_wYIB=rO={aVt+0i} zY}5C~*hZt6(7%mggAnh?8r(4*lqNxG%?=s9({rstA<|~(^P* zJ}?zGoM;gooAL;>NEMQ4Om<)PBLYM%0TG}v;?Ls=buoz+* zn-0RAE1O+AFr6G_(MDJIqAVT)Ir%0)89B_4&dN6fM%?*pV~Ug#=^%+kxA3< zn67P#^tRoCQgrkgdTWr5V==r&l8faU9v;;lk=O)rdwp3Xs*9+W#i~ed-zxa8?H~QrL;?c$TAHT4_k1F~e<%LA_ z&h1ztm}rm2u>qgHrQxIil;rpKo1yJcgEri-gSV7)YoICiE4mKVtc5{<#&4LGMISwK z_rIPjs8Q+ItmA{3I4%bVm!(N)_=eeR;$m8NJwIr97Q%@F8CmQGQ#lk)E=to^6J##R zRPioh1MVHyj=AY|w#S?t_BF^C>BUyWi>)XOe0R~jEfo`b_(zXW`v3Aez+>fS%Dp#t z2U6e;AIk#{p|1v#Rpm={vyc#{Xfk=726Grje;~%+s1W9Vsp2KcoL!$zZMcW!ECw&=tED_uM* z@DA{cyLc+|A`Z#NzF!=~xyanc;+#Mg7mm^kFDVFb1(SZH$Y5@Rcuz1%=AA!;SbK+s_SqcQKF37yFLCFFvN!^s(8ENi%03=|HGTn*c;jNC-Rh$ zn{qFjIQHZ<^Un7a=-jjX-1F?!qx4nj!e-$Ek#5Mj+-QhQqtWp!{FDMc)@b0#;m~Aj zH27bsHsY3zrzT#e=ieD?!K{<+vHwNlZSezR$ z2Mv47&%VRpugJ;R=fO>Edh0x{}|wr^7UlxaHFqH zeqaDyRz96M(mw8MH2M#vhqs0q`t5eC^+>^pE3w{)C^!2L35N{e str: - """ - :example: 'Dhaka' - """ - return self.random_element(self.cities) - - def area_name(self) -> str: - """ - :example: 'Dhanmondi' - """ - return self.random_element(self.area_names) - - def building_name(self) -> str: - """ - :example: 'House No.' - """ - return self.random_element(self.building_names) - - def building_number(self) -> str: - """ - :example: '791' - """ - return self.numerify(self.random_element(self.building_number_formats)) - - def city_prefix(self) -> str: - """ - :example: 'North' - """ - return self.random_element(self.city_prefixes) - - def city(self) -> str: - """ - :example: 'Dhaka' - """ - return self.random_element(self.cities) - - def postcode(self) -> str: - """ - See - https://bdpost.portal.gov.bd/site/page/6aaeabe4-479b-4e5a-a671-e9e5b994bf9a - """ - return self.numerify(self.random_element(self.postcode_formats)) - - def secondary_address(self) -> str: - """ - As the generated string format is a Bengali word but English number so splitting the value by space - and then convert the English number to Bengali number and concat with generated Bengali word - and return - : example : 'Apartment 123' - """ - value = self.bothify(self.random_element(self.secondary_address_formats)) - word_list = value.split(" ") - return word_list[0] + " " + word_list[1] - - def town(self) -> str: - """ - :example: 'Dhanmondi' - """ - pattern: str = self.random_element(self.town_formats) - return self.generator.parse(pattern) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b2b9cddc969a8d9880610b4fd2c1a5c93387d1c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9053 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�ozk*E;2HGL&lBC=E&`Velu-`uU+^?O8j)Snxwt^(2rhU zBHfK)QIMNXz4-X#>)R(^|KruiZ@jbp#ydMFfBbRgtHQBgfB4CVj|-#Qh0#X{>GNCJ z^MQsIif8<6EhzVEH9udgwWRKv9Q}b>4VNQHl^ zng`VUlA3>_=3{F9g_?(Gz6i5J;GMz0O$eGS^k(~LK8o%3{ayTM`oXPTr!RFP{a^u( z_&1lgl4t&XWZ^-1H+l4U8jo}D4y7MV?f$fHJu#eqFuU8%WL{2hCC~02J$5qvU~%{L z*r}Jdk|Vo)nKKwZxqBq>5}q%hULJY#!TeVz7O^IoOkH|Zc@o28cOaR%`tS<%uTuZ5 zhc@-!qW)6+(J^{iiqqTmhry2P)W7tbMzlMXnvFjkeG;SR?ocju`4MR0v3nwwy6~IE zH<-8(*f|h(fug-u(`5tpjRiw~VLZIBbz@WgffPo0G|<%3>^q@HysJLP82*ddXVL5? h;_>)@_w~h--)3X+H@->#LpFZl<6nFmqi3-Fe*m&Ee)9kT diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_CA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_CA/__init__.py deleted file mode 100644 index db6592f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_CA/__init__.py +++ /dev/null @@ -1,417 +0,0 @@ -import re - -from typing import Optional - -from faker.providers import ElementsType - -from ..en import Provider as AddressProvider - - -class Provider(AddressProvider): - # Source: https://www.canadapost.ca/tools/pg/manual/PGaddress-e.asp#1449294 - # - # 'W' and 'Z' are valid in non-initial position (easily verified in the - # wild), but online official documentation is hard to find, so just ignore - # them for now. - postal_code_letters = ( - "A", - "B", - "C", - "E", - "G", - "H", - "J", - "K", - "L", - "M", - "N", - "P", - "R", - "S", - "T", - "V", - "X", - "Y", - ) - - city_prefixes: ElementsType[str] = ("North", "East", "West", "South", "New", "Lake", "Port") - - city_suffixes: ElementsType[str] = ( - "town", - "ton", - "land", - "ville", - "berg", - "burgh", - "borough", - "bury", - "view", - "port", - "mouth", - "stad", - "furt", - "chester", - "mouth", - "fort", - "haven", - "side", - "shire", - ) - - building_number_formats = ("#####", "####", "###") - - street_suffixes = ( - "Alley", - "Avenue", - "Branch", - "Bridge", - "Brook", - "Brooks", - "Burg", - "Burgs", - "Bypass", - "Camp", - "Canyon", - "Cape", - "Causeway", - "Center", - "Centers", - "Circle", - "Circles", - "Cliff", - "Cliffs", - "Club", - "Common", - "Corner", - "Corners", - "Course", - "Court", - "Courts", - "Cove", - "Coves", - "Creek", - "Crescent", - "Crest", - "Crossing", - "Crossroad", - "Curve", - "Dale", - "Dam", - "Divide", - "Drive", - "Drive", - "Drives", - "Estate", - "Estates", - "Expressway", - "Extension", - "Extensions", - "Fall", - "Falls", - "Ferry", - "Field", - "Fields", - "Flat", - "Flats", - "Ford", - "Fords", - "Forest", - "Forge", - "Forges", - "Fork", - "Forks", - "Fort", - "Freeway", - "Garden", - "Gardens", - "Gateway", - "Glen", - "Glens", - "Green", - "Greens", - "Grove", - "Groves", - "Harbor", - "Harbors", - "Haven", - "Heights", - "Highway", - "Hill", - "Hills", - "Hollow", - "Inlet", - "Inlet", - "Island", - "Island", - "Islands", - "Islands", - "Isle", - "Isle", - "Junction", - "Junctions", - "Key", - "Keys", - "Knoll", - "Knolls", - "Lake", - "Lakes", - "Land", - "Landing", - "Lane", - "Light", - "Lights", - "Loaf", - "Lock", - "Locks", - "Locks", - "Lodge", - "Lodge", - "Loop", - "Mall", - "Manor", - "Manors", - "Meadow", - "Meadows", - "Mews", - "Mill", - "Mills", - "Mission", - "Mission", - "Motorway", - "Mount", - "Mountain", - "Mountain", - "Mountains", - "Mountains", - "Neck", - "Orchard", - "Oval", - "Overpass", - "Park", - "Parks", - "Parkway", - "Parkways", - "Pass", - "Passage", - "Path", - "Pike", - "Pine", - "Pines", - "Place", - "Plain", - "Plains", - "Plains", - "Plaza", - "Plaza", - "Point", - "Points", - "Port", - "Port", - "Ports", - "Ports", - "Prairie", - "Prairie", - "Radial", - "Ramp", - "Ranch", - "Rapid", - "Rapids", - "Rest", - "Ridge", - "Ridges", - "River", - "Road", - "Road", - "Roads", - "Roads", - "Route", - "Row", - "Rue", - "Run", - "Shoal", - "Shoals", - "Shore", - "Shores", - "Skyway", - "Spring", - "Springs", - "Springs", - "Spur", - "Spurs", - "Square", - "Square", - "Squares", - "Squares", - "Station", - "Station", - "Stravenue", - "Stravenue", - "Stream", - "Stream", - "Street", - "Street", - "Streets", - "Summit", - "Summit", - "Terrace", - "Throughway", - "Trace", - "Track", - "Trafficway", - "Trail", - "Trail", - "Tunnel", - "Tunnel", - "Turnpike", - "Turnpike", - "Underpass", - "Union", - "Unions", - "Valley", - "Valleys", - "Via", - "Viaduct", - "View", - "Views", - "Village", - "Village", - "Villages", - "Ville", - "Vista", - "Vista", - "Walk", - "Walks", - "Wall", - "Way", - "Ways", - "Well", - "Wells", - ) - - postal_code_formats = ("?%? %?%", "?%?%?%") - - provinces = ( - "Alberta", - "British Columbia", - "Manitoba", - "New Brunswick", - "Newfoundland and Labrador", - "Northwest Territories", - "Nova Scotia", - "Nunavut", - "Ontario", - "Prince Edward Island", - "Quebec", - "Saskatchewan", - "Yukon Territory", - ) - - provinces_abbr = ( - "AB", - "BC", - "MB", - "NB", - "NL", - "NT", - "NS", - "NU", - "ON", - "PE", - "QC", - "SK", - "YT", - ) - - provinces_postcode_prefixes = { - "NL": ["A"], - "NS": ["B"], - "PE": ["C"], - "NB": ["E"], - "QC": ["G", "H", "J"], - "ON": ["K", "L", "M", "N", "P"], - "MB": ["R"], - "SK": ["S"], - "AB": ["T"], - "BC": ["V"], - "NU": ["X"], - "NT": ["X"], - "YT": ["Y"], - } - - city_formats: ElementsType[str] = ( - "{{city_prefix}} {{first_name}}{{city_suffix}}", - "{{city_prefix}} {{first_name}}", - "{{first_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - ) - street_name_formats = ( - "{{first_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - ) - street_address_formats = ( - "{{building_number}} {{street_name}}", - "{{building_number}} {{street_name}} {{secondary_address}}", - ) - address_formats = ("{{street_address}}\n{{city}}, {{province_abbr}} {{postalcode}}",) - secondary_address_formats = ("Apt. ###", "Suite ###") - - def administrative_unit(self) -> str: - """ """ - return self.random_element(self.provinces) - - province = administrative_unit - - def province_abbr(self) -> str: - return self.random_element(self.provinces_abbr) - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def postal_code_letter(self) -> str: - """ - Returns a random letter from the list of allowable - letters in a canadian postal code - """ - return self.random_element(self.postal_code_letters) - - def _postcode_replace(self, postal_code_format: str) -> str: - """ - Replaces all question mark ('?') occurrences with a random letter - from given postal_code_format, then passes result to numerify to insert - numbers - """ - temp = re.sub(r"\?", lambda x: self.postal_code_letter(), postal_code_format) - return self.numerify(temp) - - def postcode(self) -> str: - """ - Returns a random postcode - """ - return self._postcode_replace(self.random_element(self.postal_code_formats)) - - def postcode_in_province(self, province_abbr: Optional[str] = None) -> str: - """ - Returns a random postcode within the provided province abbreviation - """ - if province_abbr is None: - province_abbr = self.random_element(self.provinces_abbr) - - if province_abbr in self.provinces_abbr: - postal_code_format: str = self.random_element(self.postal_code_formats) - postal_code_format = postal_code_format.replace( - "?", - self.generator.random_element(self.provinces_postcode_prefixes[province_abbr]), - 1, - ) - return self._postcode_replace(postal_code_format) - else: - raise Exception("Province Abbreviation not found in list") - - def postalcode_in_province(self, province_abbr: Optional[str] = None) -> str: - return self.postcode_in_province(province_abbr) - - def postalcode(self) -> str: - return self.postcode() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index da43929e3fe3710e148ca7f9e61973772ef9ca97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7550 zcmcIpU2Ggja-P|pnO#yOmm;Y@lN3jy{??{Q+49NuSwAOHKlE9oXp)lSMUuVYPLmvI zc4pl(ONuKINBCq!#yy+^H*i{IZ ziQBP^#&l-vK_`~5<0pY_EtA|(r^`Ac(_|+y&2}=g&2GxH*v*+%d)usPx8QBX+cvAt zDt78)g6$ux_IA{D;O)fQg?C5w-3h$wXRVnwdv_+aVU|5|mgh3DZ ztS4G|wNLtvp6T79{(02zt&V*GWBV2lr;l<2s!DeV^{i0O33XVg7le9As3SuCzEIy3 z>Sdvh3Uy4V<3gPf>ZDMognCV=zai9j(g~rD`8=Ex+65~Jh4wZB)F=HSs^Vj8L1>q) z8%${9=pc&}NFLO62As0^@uD%R-&(HfPNmBUtniR7?V4A_DN&cm>M#zi8+7&h$i95j%Ka3J(y*O{3? zJt1P}7Ncd5jq1t&1LdDNpd10J)$Tx+4o;&l5XGqP4EMxi$*ohF*M>r787j9y^ zgMilBbm3;mya1k0)zutF>NRp&NkU*Gs z#NseZk%%zbN2G}*Mwl}@2PqRHz%-pU0*gj7APw_f*Iy9&8=lKT{+`s`8v&U<{}B<1 zhzR%{X}zErf1irU?-#usMNQFED+MC{CX7=9!2EA|U@Z)Z0^UbsbaFkc|1x=2f*@@! zk=VVgf=R-Yt-_vd_y9vYm`|w)|H4b z_>Hm!f^zKyp^;Gs*5!Nr59E4A{m|#6Abr#?!U&TRS&qj)ruL>98Sp=nlaDcombk)m zbJ#wiU75FB93(Kn$jinp+HiuHi4d_)Rtu11oO}@tL14j7KvKvWcVuXCNFU>XP~*63 z<%n`2i7+Gz_^(I;sw-LiPouK$KxSi{P{2*pNq|nUwSYgOPKj}DIox6V&xkT6EZc$1 z+62V|eL@Bjpn?NCmk3f$NL!we!NrgWB2AE+p$+cH|D0IqR1ElERLey;TzmrBk53>* z0l7+9aI%O*gaiIp#8I0p6gh?fQrCBj7H9mgsU;B+ z0bh+MxH|3U-w@R_8FKP~BIAEcv;mq~dH#2G0`|UE9S6^Xix`u|eBKH9-^XG{x5@Gghuw%GSBEoQ{YmNoVvFu_F2iY|`WpskDn`^LO*bV;|IYpI%Ua16Yx#l43 z@qeX8?QP42Ari!X0=XjoHiZEIs$dih2nOj`DRJiD8S~(ogCzq6{H0q(;;f6aFSJVS zIAcO5m@|icx0s)XY)Lqq6Z+FusTBvSd5#yoV8O}VDD43`11GX6j+pdbwx&58l9zVK z!+8N_Ws-t190nPbwvGAomN}X8Lt67#(X-}@2$5GjEW`0jUE{Ee95XN23vf0wib=wF ztH`EVPP9x~!3`_KIlEwarPMpc8@^ZPzKAu%&YlyobHgGw3Oq*dWxP{(C-Ghtu`6RD zHhw|G-a?>#j{ zz%By22~a|qZsiJcMvk;q;W~l;rY3_*NM9BHUqm8#Rrr5U=|2g?iBt(B0n%FO=&f5D z@|UG0^VY2yhX-NSv+`_dsoEN46iZ8`z2Dru)ceiDdv4uwkx^~UT(n3@W_+HQ>>U7WtB_%(I_lm1(`ri+eCr$p9+%`q+)S>+V1vh>>jq7!jvIp4D_zL>Ra zn=*iV zLN+^CSQMR>od<;tLu8(3*&

-HMekqdS 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 C_ZD0L diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/id_ID/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/id_ID/__init__.py deleted file mode 100644 index 35781ad..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/id_ID/__init__.py +++ /dev/null @@ -1,526 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ("###", "##", "#") - - city_formats = ("{{city_name}}",) - - postcode_formats = ("#####",) - - street_name_formats = ( - "{{street_prefix_short}} {{street}}", - "{{street_prefix_long}} {{street}}", - ) - - street_address_formats = ("{{street_name}} No. {{building_number}}",) - - address_formats = ( - "{{street_address}}\n{{city}}, {{state}} {{postcode}}", - "{{street_address}}\n{{city}}, {{state_abbr}} {{postcode}}", - ) - - # From - # http://elibrary.dephub.go.id/elibrary/media/catalog/0010-021500000000135/swf/618/Lampiran%20E%20Data%20Bandung.pdf - # https://www.surabaya.go.id/id/info-penting/47601/daftar-nama-jalan-dan-status-ja - # https://www.streetdirectory.com/indonesia/jakarta/asia_travel/street/popular/ - streets = ( - "Abdul Muis", - "Antapani Lama", - "Asia Afrika", - "Astana Anyar", - "BKR", - "Cihampelas", - "Cikapayang", - "Cikutra Barat", - "Cikutra Timur", - "Ciumbuleuit", - "Ciwastra", - "Dipatiukur", - "Dipenogoro", - "Dr. Djunjunan", - "Gardujati", - "Gedebage Selatan", - "Gegerkalong Hilir", - "HOS. Cokroaminoto", - "Ir. H. Djuanda", - "Jakarta", - "Jamika", - "Jend. A. Yani", - "Jend. Sudirman", - "K.H. Wahid Hasyim", - "Kebonjati", - "Kiaracondong", - "Laswi", - "Lembong", - "Merdeka", - "Moch. Ramdan", - "Moch. Toha", - "Pacuan Kuda", - "Pasir Koja", - "Pasirkoja", - "Pasteur", - "Pelajar Pejuang", - "Peta", - "PHH. Mustofa", - "Rajawali Barat", - "Rajawali Timur", - "Raya Setiabudhi", - "Raya Ujungberung", - "Rumah Sakit", - "Sadang Serang", - "Sentot Alibasa", - "Setiabudhi", - "Siliwangi", - "Soekarno Hatta", - "Sukabumi", - "Sukajadi", - "Suniaraja", - "Surapati", - "Tubagus Ismail", - "Veteran", - "W.R. Supratman", - "Bangka Raya", - "Cempaka", - "Cihampelas", - "Erlangga", - "Rawamangun", - "Waringin", - "Ronggowarsito", - "Rajiman", - "Yos Sudarso", - "S. Parman", - "Monginsidi", - "M.T Haryono", - "Ahmad Dahlan", - "Jayawijaya", - "R.E Martadinata", - "M.H Thamrin", - "Stasiun Wonokromo", - "Ahmad Yani", - "Joyoboyo", - "Indragiri", - "Kutai", - "Kutisari Selatan", - "Rungkut Industri", - "Kendalsari", - "Wonoayu", - "Medokan Ayu", - "KH Amin Jasuta", - "H.J Maemunah", - "Suryakencana", - "Kapten Muslihat", - "Otto Iskandardinata", - "Tebet Barat Dalam", - ) - - street_prefixes_long = ( - "Jalan", - "Gang", - ) - - street_prefixes_short = ( - "Jl.", - "Gg.", - ) - - # From - # https://id.wikipedia.org/wiki/Daftar_kabupaten_dan_kota_di_Indonesia#Daftar_kota - cities = ( - "Ambon", - "Balikpapan", - "Banda Aceh", - "Bandar Lampung", - "Bandung", - "Banjar", - "Banjarbaru", - "Banjarmasin", - "Batam", - "Batu", - "Bau-Bau", - "Bekasi", - "Bengkulu", - "Bima", - "Binjai", - "Bitung", - "Blitar", - "Bogor", - "Bontang", - "Bukittinggi", - "Cilegon", - "Cimahi", - "Cirebon", - "Denpasar", - "Depok", - "Dumai", - "Gorontalo", - "Jambi", - "Jayapura", - "Kediri", - "Kendari", - "Kota Administrasi Jakarta Barat", - "Kota Administrasi Jakarta Pusat", - "Kota Administrasi Jakarta Selatan", - "Kota Administrasi Jakarta Timur", - "Kota Administrasi Jakarta Utara", - "Kotamobagu", - "Kupang", - "Langsa", - "Lhokseumawe", - "Lubuklinggau", - "Madiun", - "Magelang", - "Makassar", - "Malang", - "Manado", - "Mataram", - "Medan", - "Metro", - "Meulaboh", - "Mojokerto", - "Padang", - "Padang Sidempuan", - "Padangpanjang", - "Pagaralam", - "Palangkaraya", - "Palembang", - "Palopo", - "Palu", - "Pangkalpinang", - "Parepare", - "Pariaman", - "Pasuruan", - "Payakumbuh", - "Pekalongan", - "Pekanbaru", - "Pematangsiantar", - "Pontianak", - "Prabumulih", - "Probolinggo", - "Purwokerto", - "Sabang", - "Salatiga", - "Samarinda", - "Sawahlunto", - "Semarang", - "Serang", - "Sibolga", - "Singkawang", - "Solok", - "Sorong", - "Subulussalam", - "Sukabumi", - "Sungai Penuh", - "Surabaya", - "Surakarta", - "Tangerang", - "Tangerang Selatan", - "Tanjungbalai", - "Tanjungpinang", - "Tarakan", - "Tasikmalaya", - "Tebingtinggi", - "Tegal", - "Ternate", - "Tidore Kepulauan", - "Tomohon", - "Tual", - "Yogyakarta", - ) - - # From https://id.wikipedia.org/wiki/Daftar_provinsi_di_Indonesia - states = ( - "Aceh", - "Bali", - "Banten", - "Bengkulu", - "DI Yogyakarta", - "DKI Jakarta", - "Gorontalo", - "Jambi", - "Jawa Barat", - "Jawa Tengah", - "Jawa Timur", - "Kalimantan Barat", - "Kalimantan Selatan", - "Kalimantan Tengah", - "Kalimantan Timur", - "Kalimantan Utara", - "Kepulauan Bangka Belitung", - "Kepulauan Riau", - "Lampung", - "Maluku", - "Maluku Utara", - "Nusa Tenggara Barat", - "Nusa Tenggara Timur", - "Papua", - "Papua Barat", - "Riau", - "Sulawesi Barat", - "Sulawesi Selatan", - "Sulawesi Tengah", - "Sulawesi Tenggara", - "Sulawesi Utara", - "Sumatera Barat", - "Sumatera Selatan", - "Sumatera Utara", - ) - - # https://id.wikipedia.org/wiki/Daftar_provinsi_di_Indonesia - states_abbr = ( - "AC", - "BA", - "BT", - "BE", - "YO", - "JK", - "GO", - "JA", - "JB", - "JT", - "JI", - "KB", - "KS", - "KT", - "KI", - "KU", - "BB", - "KR", - "LA", - "MA", - "MU", - "NB", - "NT", - "PA", - "PB", - "RI", - "SR", - "SN", - "ST", - "SG", - "SU", - "SB", - "SS", - "SU", - ) - - # From https://id.wikipedia.org/wiki/Daftar_negara-negara_di_dunia - countries = ( - "Afganistan", - "Afrika Selatan", - "Afrika Tengah", - "Albania", - "Aljazair", - "Amerika Serikat", - "Andorra", - "Angola", - "Antigua dan Barbuda", - "Arab Saudi", - "Argentina", - "Armenia", - "Australia", - "Austria", - "Azerbaijan", - "Bahama", - "Bahrain", - "Bangladesh", - "Barbados", - "Belanda", - "Belarus", - "Belgia", - "Belize", - "Benin", - "Bhutan", - "Bolivia", - "Bosnia dan Herzegovina", - "Botswana", - "Brasil", - "Britania Raya", - "Brunei", - "Bulgaria", - "Burkina Faso", - "Burundi", - "Ceko", - "Chad", - "Chili", - "Denmark", - "Djibouti", - "Dominika", - "Ekuador", - "El Salvador", - "Eritrea", - "Estonia", - "Ethiopia", - "Federasi Mikronesia", - "Fiji", - "Filipina", - "Finlandia", - "Gabon", - "Gambia", - "Georgia", - "Ghana", - "Grenada", - "Guatemala", - "Guinea", - "Guinea Khatulistiwa", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Honduras", - "Hongaria", - "India", - "Indonesia", - "Irak", - "Iran", - "Islandia", - "Israel", - "Italia", - "Jamaika", - "Jepang", - "Jerman", - "Kamboja", - "Kamerun", - "Kanada", - "Kazakhstan", - "Kenya", - "Kepulauan Marshall", - "Kepulauan Solomon", - "Kirgizstan", - "Kiribati", - "Kolombia", - "Komoro", - "Korea Selatan", - "Korea Utara", - "Kosta Rika", - "Kroasia", - "Kuba", - "Kuwait", - "Laos", - "Latvia", - "Lebanon", - "Lesotho", - "Liberia", - "Libya", - "Liechtenstein", - "Lituania", - "Luksemburg", - "Madagaskar", - "Makedonia Utara", - "Maladewa", - "Malawi", - "Malaysia", - "Mali", - "Malta", - "Maroko", - "Mauritania", - "Mauritius", - "Meksiko", - "Mesir", - "Moldova", - "Monako", - "Mongolia", - "Montenegro", - "Mozambik", - "Myanmar", - "Namibia", - "Nauru", - "Nepal", - "Niger", - "Nigeria", - "Nikaragua", - "Norwegia", - "Oman", - "Pakistan", - "Palau", - "Panama", - "Pantai Gading", - "Papua Nugini", - "Paraguay", - "Perancis", - "Peru", - "Polandia", - "Portugal", - "Qatar", - "Republik Demokratik Kongo", - "Republik Dominika", - "Republik Irlandia", - "Republik Kongo", - "Republik Rakyat Tiongkok", - "Rumania", - "Rusia", - "Rwanda", - "Saint Kitts dan Nevis", - "Saint Lucia", - "Saint Vincent dan Grenadine", - "Samoa", - "San Marino", - "São Tomé dan Príncipe", - "Selandia Baru", - "Senegal", - "Serbia", - "Seychelles", - "Sierra Leone", - "Singapura", - "Siprus", - "Slovenia", - "Slowakia", - "Somalia", - "Spanyol", - "Sri Lanka", - "Sudan", - "Sudan Selatan", - "Suriah", - "Suriname", - "Swaziland", - "Swedia", - "Swiss", - "Tajikistan", - "Tanjung Verde", - "Tanzania", - "Thailand", - "Timor Leste", - "Togo", - "Tonga", - "Trinidad dan Tobago", - "Tunisia", - "Turki", - "Turkmenistan", - "Tuvalu", - "Uganda", - "Ukraina", - "Uni Emirat Arab", - "Uruguay", - "Uzbekistan", - "Vanuatu", - "Vatikan", - "Venezuela", - "Vietnam", - "Yaman", - "Yordania", - "Yunani", - "Zambia", - "Zimbabwe", - ) - - def street(self) -> str: - return self.random_element(self.streets) - - def street_prefix_short(self) -> str: - return self.random_element(self.street_prefixes_short) - - def street_prefix_long(self) -> str: - return self.random_element(self.street_prefixes_long) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def state_abbr(self) -> str: - return self.random_element(self.states_abbr) - - def country(self) -> str: - return self.random_element(self.countries) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/id_ID/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/id_ID/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 268bc5e5678c0de5cb803d2ddfe28ba896e24407..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7604 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 Pf9>!7_CIpcrt|&>0|Npm diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/it_IT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/it_IT/__init__.py deleted file mode 100644 index 35de91f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/it_IT/__init__.py +++ /dev/null @@ -1,17659 +0,0 @@ -from typing import List - -from .. import Provider as AddressProvider - - -def getcities(fulldict): - return list({c[0] for _cap, cities in fulldict.items() for c in cities}) - - -class Provider(AddressProvider): - # Converted from: https://download.geonames.org/export/zip/IT.zip - cap_city_province = { - "67010": [["Barete", "AQ"]], - "67012": [["San Giovanni", "AQ"], ["Cagnano Amiterno", "AQ"]], - "67013": [["Mascioni", "AQ"], ["Campotosto", "AQ"], ["Ortolano", "AQ"], ["Poggio Cancelli", "AQ"]], - "67014": [["Capitignano", "AQ"]], - "67015": [ - ["Marana Di Montereale", "AQ"], - ["Marana", "AQ"], - ["Cesaproba", "AQ"], - ["Aringo", "AQ"], - ["Ville Di Fano", "AQ"], - ["Montereale", "AQ"], - ["San Giovanni Paganica", "AQ"], - ], - "67017": [["Pizzoli", "AQ"], ["Marruci", "AQ"], ["San Lorenzo Di Pizzoli", "AQ"]], - "67019": [["Sella Di Corno", "AQ"], ["Vigliano", "AQ"], ["Scoppito", "AQ"]], - "67020": [ - ["Castelnuovo Di San Pio Delle Camere", "AQ"], - ["Villa Santa Lucia Degli Abruzzi", "AQ"], - ["Santo Stefano Di Sessanio", "AQ"], - ["Castelnuovo", "AQ"], - ["Castelvecchio Calvisio", "AQ"], - ["Beffi", "AQ"], - ["Castel Di Ieri", "AQ"], - ["Fagnano Alto", "AQ"], - ["Calascio", "AQ"], - ["Acciano", "AQ"], - ["Tussio", "AQ"], - ["San Benedetto In Perillis", "AQ"], - ["Navelli", "AQ"], - ["Collepietro", "AQ"], - ["Molina Aterno", "AQ"], - ["Civitaretenga", "AQ"], - ["San Pio Delle Camere", "AQ"], - ["Gagliano Aterno", "AQ"], - ["Fossa", "AQ"], - ["Goriano Valli", "AQ"], - ["Fontecchio", "AQ"], - ["Prata D'Ansidonia", "AQ"], - ["Roccapreturo", "AQ"], - ["Tione Degli Abruzzi", "AQ"], - ["Carapelle Calvisio", "AQ"], - ["Carrufo", "AQ"], - ["Sant'Eusanio Forconese", "AQ"], - ["Caporciano", "AQ"], - ["Villa Sant'Angelo", "AQ"], - ], - "67021": [["Barisciano", "AQ"], ["Picenze", "AQ"]], - "67022": [["Capestrano", "AQ"]], - "67023": [["Castel Del Monte", "AQ"]], - "67024": [["Castelvecchio Subequo", "AQ"]], - "67025": [["Ofena", "AQ"]], - "67026": [["Poggio Picenze", "AQ"]], - "67027": [["Raiano", "AQ"]], - "67028": [["San Demetrio Ne' Vestini", "AQ"]], - "67029": [["Secinaro", "AQ"]], - "67030": [ - ["Barrea", "AQ"], - ["Villalago", "AQ"], - ["Alfedena", "AQ"], - ["Anversa Degli Abruzzi", "AQ"], - ["Villetta Barrea", "AQ"], - ["Torre Dei Nolfi", "AQ"], - ["Corfinio", "AQ"], - ["Civitella Alfedena", "AQ"], - ["Cansano", "AQ"], - ["Rocca Pia", "AQ"], - ["Castrovalva", "AQ"], - ["Bugnara", "AQ"], - ["Introdacqua", "AQ"], - ["Ateleta", "AQ"], - ["Scontrone", "AQ"], - ["Pacentro", "AQ"], - ["Vittorito", "AQ"], - ["Prezza", "AQ"], - ["Campo Di Fano", "AQ"], - ["Cocullo", "AQ"], - ["Campo Di Giove", "AQ"], - ["Villa Scontrone", "AQ"], - ["Roccacasale", "AQ"], - ["Opi", "AQ"], - ["Goriano Sicoli", "AQ"], - ], - "67031": [["Castel Di Sangro", "AQ"], ["Roccacinquemiglia", "AQ"]], - "67032": [["Pescasseroli", "AQ"]], - "67033": [["Pescocostanzo", "AQ"]], - "67034": [["Pettorano Sul Gizio", "AQ"]], - "67035": [["Bagnaturo", "AQ"], ["Pratola Peligna", "AQ"]], - "67036": [["Rivisondoli", "AQ"]], - "67037": [["Roccaraso", "AQ"], ["Pietransieri", "AQ"], ["Aremogna", "AQ"]], - "67038": [["Scanno", "AQ"], ["Frattura Di Scanno", "AQ"], ["Frattura", "AQ"]], - "67039": [ - ["Torrone Di Sulmona", "AQ"], - ["Cavate", "AQ"], - ["Albanese", "AQ"], - ["Sulmona", "AQ"], - ["Torrone", "AQ"], - ["Marane", "AQ"], - ["Arabona", "AQ"], - ["Abazia Di Sulmona", "AQ"], - ], - "67040": [["Collarmele", "AQ"], ["Ocre", "AQ"], ["San Martino D'Ocre", "AQ"]], - "67041": [["Aielli Stazione", "AQ"], ["Aielli", "AQ"]], - "67043": [["Celano", "AQ"]], - "67044": [["Cerchio", "AQ"]], - "67045": [["Lucoli", "AQ"], ["Casamaina Di Lucoli", "AQ"], ["Casamaina", "AQ"], ["Ville Di Lucoli", "AQ"]], - "67046": [["San Potito", "AQ"], ["Santo Iona", "AQ"], ["Ovindoli", "AQ"]], - "67047": [["Rocca Di Cambio", "AQ"]], - "67048": [["Rocca Di Mezzo", "AQ"], ["Rovere", "AQ"], ["Rovere Di Rocca Di Mezzo", "AQ"]], - "67049": [ - ["Rocca Santo Stefano", "AQ"], - ["San Nicola Di Tornimparte", "AQ"], - ["Villagrande", "AQ"], - ["Rocca Santo Stefano Di Tornimparte", "AQ"], - ["Tornimparte", "AQ"], - ["San Nicola", "AQ"], - ], - "67050": [ - ["Ortucchio", "AQ"], - ["Roccavivi", "AQ"], - ["Castellafiume", "AQ"], - ["Lecce Nei Marsi", "AQ"], - ["Forme", "AQ"], - ["Villavallelonga", "AQ"], - ["Canistro Inferiore", "AQ"], - ["Collelongo", "AQ"], - ["Pagliara", "AQ"], - ["San Vincenzo Valle Roveto", "AQ"], - ["Civita D'Antino", "AQ"], - ["Corona", "AQ"], - ["Bisegna", "AQ"], - ["Canistro", "AQ"], - ["Ortona Dei Marsi", "AQ"], - ["San Vincenzo Valle Roveto Superiore", "AQ"], - ["Albe", "AQ"], - ["Castronovo", "AQ"], - ["Pagliara Dei Marsi", "AQ"], - ["Canistro Superiore", "AQ"], - ["San Sebastiano", "AQ"], - ["Morino", "AQ"], - ["Pero Dei Santi", "AQ"], - ["Rendinara", "AQ"], - ["Grancia", "AQ"], - ["Carrito", "AQ"], - ["San Vincenzo Vecchio", "AQ"], - ["Massa D'Albe", "AQ"], - ], - "67051": [ - ["San Pelino", "AQ"], - ["Cese", "AQ"], - ["Antrosano", "AQ"], - ["Santuario Di Pietracquaria", "AQ"], - ["Avezzano", "AQ"], - ["Paterno", "AQ"], - ], - "67052": [["Balsorano Nuovo", "AQ"], ["Ridotti", "AQ"], ["Ridotti Di Balsorano", "AQ"], ["Balsorano", "AQ"]], - "67053": [ - ["Capistrello", "AQ"], - ["Corcumello", "AQ"], - ["Pescocanale", "AQ"], - ["Pescocanale Di Capistrello", "AQ"], - ], - "67054": [["Meta", "AQ"], ["Civitella Roveto", "AQ"]], - "67055": [["Gioia Dei Marsi", "AQ"], ["Casali D'Aschi", "AQ"]], - "67056": [["Luco Dei Marsi", "AQ"]], - "67057": [["Venere", "AQ"], ["Pescina", "AQ"]], - "67058": [["San Benedetto Dei Marsi", "AQ"]], - "67059": [["Trasacco", "AQ"]], - "67060": [["Cappadocia", "AQ"], ["Petrella Liri", "AQ"], ["Verrecchie", "AQ"]], - "67061": [ - ["Villa Romana", "AQ"], - ["Pietrasecca", "AQ"], - ["Montesabinese", "AQ"], - ["Tufo Di Carsoli", "AQ"], - ["Carsoli", "AQ"], - ["Colli Di Montebove", "AQ"], - ["Poggio Cinolfo", "AQ"], - ], - "67062": [ - ["Magliano De' Marsi", "AQ"], - ["Marano Dei Marsi", "AQ"], - ["Rosciolo", "AQ"], - ["Rosciolo Dei Marsi", "AQ"], - ], - "67063": [["Oricola", "AQ"], ["Civita", "AQ"]], - "67064": [["Pereto", "AQ"]], - "67066": [["Rocca Di Botte", "AQ"]], - "67067": [ - ["Scanzano", "AQ"], - ["Santo Stefano", "AQ"], - ["Santo Stefano Di Sante Marie", "AQ"], - ["Sante Marie", "AQ"], - ], - "67068": [["Scurcola Marsicana", "AQ"], ["Cappelle", "AQ"], ["Cappelle Dei Marsi", "AQ"]], - "67069": [ - ["San Donato Di Tagliacozzo", "AQ"], - ["Villa San Sebastiano", "AQ"], - ["Sorbo Di Tagliacozzo", "AQ"], - ["Gallo", "AQ"], - ["Tremonti", "AQ"], - ["San Donato", "AQ"], - ["Tagliacozzo", "AQ"], - ["Sorbo", "AQ"], - ["Poggetello Di Tagliacozzo", "AQ"], - ["Gallo Di Tagliacozzo", "AQ"], - ["Poggetello", "AQ"], - ["Poggio Filippo", "AQ"], - ["Roccacerro", "AQ"], - ], - "67100": [ - ["Pagliare", "AQ"], - ["Arischia", "AQ"], - ["Monticchio", "AQ"], - ["San Gregorio", "AQ"], - ["San Vittorino", "AQ"], - ["Tempera", "AQ"], - ["Bagno", "AQ"], - ["Preturo", "AQ"], - ["Pile", "AQ"], - ["Aragno", "AQ"], - ["Colle Brincioni", "AQ"], - ["Pianola", "AQ"], - ["Colle Di Roio", "AQ"], - ["Poggio Di Roio", "AQ"], - ["Coppito", "AQ"], - ["Assergi", "AQ"], - ["Forcella", "AQ"], - ["Onna", "AQ"], - ["Santi", "AQ"], - ["L'Aquila", "AQ"], - ["Paganica", "AQ"], - ["Roio Piano", "AQ"], - ["San Benedetto", "AQ"], - ["Collebrincioni", "AQ"], - ["Campo Imperatore", "AQ"], - ["Bazzano", "AQ"], - ["San Vittorino Amiterno", "AQ"], - ["Camarda", "AQ"], - ["Sassa", "AQ"], - ], - "66010": [ - ["Gessopalena", "CH"], - ["Pennapiedimonte", "CH"], - ["Ari", "CH"], - ["Ripa Teatina", "CH"], - ["Canosa Sannita", "CH"], - ["Tollo", "CH"], - ["Roccamontepiano", "CH"], - ["San Rocco", "CH"], - ["Pretoro", "CH"], - ["Lama Dei Peligni", "CH"], - ["Montenerodomo", "CH"], - ["Semivicoli", "CH"], - ["San Martino Sulla Marrucina", "CH"], - ["Lettopalena", "CH"], - ["San Pietro", "CH"], - ["Vacri", "CH"], - ["Civitella Messer Raimondo", "CH"], - ["Terranova", "CH"], - ["Giuliano Teatino", "CH"], - ["Rapino", "CH"], - ["Fara Filiorum Petri", "CH"], - ["Torrevecchia Teatina", "CH"], - ["Miglianico", "CH"], - ["Casacanditella", "CH"], - ["Castelferrato", "CH"], - ["Palombaro", "CH"], - ["Colledimacine", "CH"], - ["Villamagna", "CH"], - ], - "66011": [["Colle Sant'Antonio", "CH"], ["Bucchianico", "CH"]], - "66012": [["Casalincontrada", "CH"]], - "66014": [["Villa Tucci", "CH"], ["Crecchio", "CH"]], - "66015": [["Fara San Martino", "CH"]], - "66016": [ - ["Villa San Vincenzo", "CH"], - ["Comino", "CH"], - ["Piano Delle Fonti", "CH"], - ["Caporosso", "CH"], - ["Guardiagrele", "CH"], - ], - "66017": [["Palena", "CH"]], - "66018": [["Taranta Peligna", "CH"]], - "66019": [["Fallascoso", "CH"], ["Torricella Peligna", "CH"]], - "66020": [ - ["Torino Di Sangro Stazione", "CH"], - ["Pollutri", "CH"], - ["Villalfonsina", "CH"], - ["San Giacomo Di Scerni", "CH"], - ["Sambuceto", "CH"], - ["San Giovanni Teatino", "CH"], - ["Torino Di Sangro", "CH"], - ["Paglieta", "CH"], - ["Rocca San Giovanni", "CH"], - ["Sant'Egidio", "CH"], - ["Scerni", "CH"], - ], - "66021": [["Miracoli", "CH"], ["Casalbordino Stazione", "CH"], ["Casalbordino", "CH"]], - "66022": [["Villascorciosa", "CH"], ["Scorciosa", "CH"], ["Fossacesia Marina", "CH"], ["Fossacesia", "CH"]], - "66023": [["Francavilla Al Mare", "CH"], ["Francavilla Al Mare Rione Foro", "CH"]], - "66026": [ - ["Ortona", "CH"], - ["Ortona Foro", "CH"], - ["San Nicola", "CH"], - ["Villa San Leonardo", "CH"], - ["Ortona Porto", "CH"], - ["Villa Grande", "CH"], - ["San Leonardo", "CH"], - ["Villa Caldari", "CH"], - ["Villa San Nicola", "CH"], - ], - "66030": [ - ["Montazzoli", "CH"], - ["Filetto", "CH"], - ["Villa Romagnoli", "CH"], - ["Santa Maria Imbaro", "CH"], - ["Arielli", "CH"], - ["Guastameroli", "CH"], - ["Poggiofiorito", "CH"], - ["Treglio", "CH"], - ["Frisa", "CH"], - ["Carpineto Sinello", "CH"], - ["Mozzagrogna", "CH"], - ], - "66031": [["Casalanguida", "CH"]], - "66032": [["Castel Frentano", "CH"]], - "66033": [["Castiglione Messer Marino", "CH"]], - "66034": [ - ["Rizzacorno", "CH"], - ["Madonna Del Carmine", "CH"], - ["Lanciano", "CH"], - ["Nasuti", "CH"], - ["Sant'Amato", "CH"], - ["Villa Elce", "CH"], - ], - "66036": [["Orsogna", "CH"]], - "66037": [["Sant'Eusanio Del Sangro", "CH"]], - "66038": [["Marina Di San Vito", "CH"], ["Sant'Apollinare Chietino", "CH"], ["San Vito Chietino", "CH"]], - "66040": [ - ["Pennadomo", "CH"], - ["Roccascalegna", "CH"], - ["Pietraferrazzana", "CH"], - ["Quadri", "CH"], - ["Civitaluparella", "CH"], - ["Rosello", "CH"], - ["Giuliopoli", "CH"], - ["Selva", "CH"], - ["Pizzoferrato", "CH"], - ["Selva Di Altino", "CH"], - ["Altino", "CH"], - ["Monteferrante", "CH"], - ["Perano", "CH"], - ["Montelapiano", "CH"], - ["Buonanotte", "CH"], - ["Colledimezzo", "CH"], - ["Fallo", "CH"], - ["Roio Del Sangro", "CH"], - ["Montebello Sul Sangro", "CH"], - ["Gamberale", "CH"], - ["Borrello", "CH"], - ["Castelguidone", "CH"], - ], - "66041": [ - ["Piana La Fara", "CH"], - ["Atessa", "CH"], - ["Monte Marcone", "CH"], - ["Piazzano Di Atessa", "CH"], - ["Piazzano", "CH"], - ], - "66042": [["Bomba", "CH"]], - "66043": [["Casoli", "CH"], ["Selva Piana", "CH"]], - "66044": [["Piane D'Archi", "CH"], ["Archi", "CH"]], - "66045": [["Schiavi Di Abruzzo", "CH"], ["Taverna Di Schiavi Di Abruzzo", "CH"]], - "66046": [["San Giovanni", "CH"], ["Tornareccio", "CH"]], - "66047": [["Villa Santa Maria", "CH"]], - "66050": [ - ["Lentella", "CH"], - ["Guardiabruna", "CH"], - ["Tufillo", "CH"], - ["Torrebruna", "CH"], - ["San Buono", "CH"], - ["San Giovanni Lipioni", "CH"], - ["Roccaspinalveti", "CH"], - ["Furci", "CH"], - ["Guilmi", "CH"], - ["Dogliola", "CH"], - ["Olmi", "CH"], - ["Celenza Sul Trigno", "CH"], - ["Fraine", "CH"], - ["Liscia", "CH"], - ["Monteodorisio", "CH"], - ["San Salvo", "CH"], - ["Carunchio", "CH"], - ["Fresagrandinaria", "CH"], - ["San Salvo Marina", "CH"], - ["Palmoli", "CH"], - ], - "66051": [["Cupello", "CH"]], - "66052": [["Gissi", "CH"]], - "66054": [ - ["San Lorenzo Di Vasto", "CH"], - ["Incoronata Di Vasto", "CH"], - ["Vasto", "CH"], - ["Marina Di Vasto", "CH"], - ["Vasto Marina", "CH"], - ], - "66100": [ - ["Brecciarola", "CH"], - ["Tricalle", "CH"], - ["Chieti", "CH"], - ["Chieti Scalo", "CH"], - ["Chieti Stazione", "CH"], - ], - "65010": [ - ["Santa Lucia Di Collecorvino", "PE"], - ["Moscufo", "PE"], - ["Montebello Di Bertona", "PE"], - ["Carpineto Della Nora", "PE"], - ["Elice", "PE"], - ["Piccianello", "PE"], - ["Vicoli", "PE"], - ["Civitella Casanova", "PE"], - ["Collecorvino", "PE"], - ["Villa Celiera", "PE"], - ["Caprara D'Abruzzo", "PE"], - ["Spoltore", "PE"], - ["Barberi", "PE"], - ["Farindola", "PE"], - ["Vestea", "PE"], - ["Santa Lucia", "PE"], - ["Congiunti", "PE"], - ["Brittoli", "PE"], - ["Cappelle Sul Tavo", "PE"], - ["Civitaquana", "PE"], - ["Villa Raspa", "PE"], - ["Nocciano", "PE"], - ["Picciano", "PE"], - ["Santa Teresa", "PE"], - ], - "65011": [["Catignano", "PE"]], - "65012": [ - ["Villareia", "PE"], - ["Vallemare Di Cepagatti", "PE"], - ["Vallemare", "PE"], - ["Villanova", "PE"], - ["Cepagatti", "PE"], - ], - "65013": [ - ["Marina", "PE"], - ["San Martino Bassa", "PE"], - ["Citta' Sant'Angelo", "PE"], - ["Villa Cipresso", "PE"], - ], - "65014": [["Loreto Aprutino", "PE"]], - "65015": [ - ["Montesilvano Colle", "PE"], - ["Villa Carmine", "PE"], - ["Montesilvano", "PE"], - ["Montesilvano Spiaggia", "PE"], - ["Montesilvano Marina", "PE"], - ], - "65017": [["Penne", "PE"], ["Roccafinadamo", "PE"]], - "65019": [["Pianella", "PE"], ["Cerratina", "PE"], ["Castellana", "PE"]], - "65020": [ - ["Bolognano", "PE"], - ["Cugnoli", "PE"], - ["Sant'Eufemia A Maiella", "PE"], - ["Alanno", "PE"], - ["Corvara", "PE"], - ["Salle", "PE"], - ["Villa San Giovanni", "PE"], - ["Castiglione A Casauria", "PE"], - ["Pietranico", "PE"], - ["Ticchione", "PE"], - ["Lettomanoppello", "PE"], - ["Musellaro", "PE"], - ["Roccamorice", "PE"], - ["Villa Badessa", "PE"], - ["Rosciano", "PE"], - ["Villa Oliveti", "PE"], - ["Abbateggio", "PE"], - ["San Valentino In Abruzzo Citeriore", "PE"], - ["Pescosansonesco", "PE"], - ["Turrivalignani", "PE"], - ["Pesconuovo", "PE"], - ["Piano D'Orta", "PE"], - ["Alanno Scalo", "PE"], - ["Alanno Stazione", "PE"], - ], - "65022": [["Bussi Officine", "PE"], ["Bussi Sul Tirino", "PE"]], - "65023": [["Caramanico Terme", "PE"], ["San Tommaso", "PE"]], - "65024": [ - ["Ripacorbaria", "PE"], - ["Manoppello", "PE"], - ["Manoppello Stazione", "PE"], - ["Manoppello Scalo", "PE"], - ], - "65025": [["Serramonacesca", "PE"]], - "65026": [["Popoli", "PE"]], - "65027": [["Scafa", "PE"], ["Decontra", "PE"]], - "65028": [["Tocco Da Casauria", "PE"]], - "65029": [["Torre De' Passeri", "PE"]], - "65100": [["Pescara", "PE"]], - "65121": [["Pescara", "PE"]], - "65122": [["Pescara", "PE"]], - "65123": [["Pescara", "PE"]], - "65124": [["Pescara", "PE"]], - "65125": [["Pescara", "PE"], ["Pescara Colli", "PE"]], - "65126": [["Pescara", "PE"]], - "65127": [["Pescara", "PE"]], - "65128": [["Pescara", "PE"]], - "65129": [["Pescara", "PE"], ["Pineta Di Pescara", "PE"]], - "65131": [["Fontanelle", "PE"]], - "65132": [["San Silvestro", "PE"], ["Pescara", "PE"]], - "64010": [ - ["Rocche Di Civitella", "TE"], - ["Civitella Del Tronto", "TE"], - ["Cesano", "TE"], - ["Colonnella", "TE"], - ["San Vito", "TE"], - ["Ancarano", "TE"], - ["Valle Castellana", "TE"], - ["Torano Nuovo", "TE"], - ["Villa Lempa", "TE"], - ["Pietralta", "TE"], - ["Ioanella", "TE"], - ["Villa Favale", "TE"], - ["Rocca Santa Maria", "TE"], - ["Villa Passo", "TE"], - ["Santo Stefano Di Torricella Sicura", "TE"], - ["Controguerra", "TE"], - ["Ripe Civitella Del Tronto", "TE"], - ["Pascellata", "TE"], - ["Ponzano", "TE"], - ["Santo Stefano", "TE"], - ["Cerqueto Del Tronto", "TE"], - ["Leofara", "TE"], - ["Torricella Sicura", "TE"], - ], - "64011": [["Alba Adriatica", "TE"]], - "64012": [ - ["Paterno", "TE"], - ["Villa Paterno", "TE"], - ["Sant'Onofrio", "TE"], - ["Piancarani", "TE"], - ["Campli", "TE"], - ["Campovalano", "TE"], - ["Garrufo Di Campli", "TE"], - ], - "64013": [["Corropoli", "TE"]], - "64014": [["Martinsicuro", "TE"], ["Villa Rosa", "TE"], ["Villa Rosa Di Martinsicuro", "TE"]], - "64015": [["Nereto", "TE"]], - "64016": [ - ["Sant'Egidio Alla Vibrata", "TE"], - ["Paolantonio", "TE"], - ["Faraone", "TE"], - ["Villa Mattoni", "TE"], - ["Faraone Nuovo", "TE"], - ], - "64018": [["Tortoreto", "TE"], ["Salino", "TE"], ["Tortoreto Lido", "TE"]], - "64020": [ - ["Bellante Stazione", "TE"], - ["Zaccheo", "TE"], - ["Canzano", "TE"], - ["Pagliare", "TE"], - ["Petriccione", "TE"], - ["Castelnuovo Vomano", "TE"], - ["Casemolino", "TE"], - ["Morro D'Oro", "TE"], - ["Castelbasso", "TE"], - ["Castellalto", "TE"], - ["Valle Canzano", "TE"], - ["Ripattoni", "TE"], - ["Villa Zaccheo", "TE"], - ["Bellante", "TE"], - ], - "64021": [["Giulianova Spiaggia", "TE"], ["Colleranesco", "TE"], ["Giulianova", "TE"]], - "64023": [["Mosciano Sant'Angelo", "TE"], ["Montone", "TE"], ["Notaresco Stazione", "TE"]], - "64024": [["Guardia Vomano", "TE"], ["Pianura Vomano", "TE"], ["Notaresco", "TE"]], - "64025": [ - ["Borgo Santa Maria Immacolata", "TE"], - ["Mutignano", "TE"], - ["Scerne", "TE"], - ["Scerne Di Pineto", "TE"], - ["Pineto", "TE"], - ], - "64026": [ - ["Cologna", "TE"], - ["Montepagano", "TE"], - ["Cologna Spiaggia", "TE"], - ["San Giovanni", "TE"], - ["Santa Lucia Di Roseto Degli Abruzzi", "TE"], - ["Santa Lucia", "TE"], - ["Roseto Degli Abruzzi", "TE"], - ["Cologna Paese", "TE"], - ], - "64027": [["Garrufo", "TE"], ["Poggio Morello", "TE"], ["Sant'Omero", "TE"]], - "64028": [["Pianacce", "TE"], ["Silvi Marina", "TE"], ["San Silvestro", "TE"], ["Silvi", "TE"]], - "64030": [["Basciano", "TE"], ["Castel Castagna", "TE"], ["Montefino", "TE"], ["Villa Bozza", "TE"]], - "64031": [["Arsita", "TE"]], - "64032": [ - ["Atri", "TE"], - ["Casoli", "TE"], - ["Santa Margherita Di Atri", "TE"], - ["Santa Margherita", "TE"], - ["Fontanelle", "TE"], - ["San Giacomo D'Atri", "TE"], - ["San Giacomo", "TE"], - ["Treciminiere", "TE"], - ["Casoli Di Atri", "TE"], - ], - "64033": [["Bisenti", "TE"]], - "64034": [["Appignano", "TE"], ["Castiglione Messer Raimondo", "TE"]], - "64035": [["Castilenti", "TE"], ["Villa San Romualdo", "TE"]], - "64036": [["Scorrano", "TE"], ["Cellino Attanasio", "TE"]], - "64037": [["Montegualtieri", "TE"], ["Poggio Delle Rose", "TE"], ["Cermignano", "TE"]], - "64039": [["Val Vomano", "TE"], ["Penna Sant'Andrea", "TE"]], - "64040": [["Cortino", "TE"], ["Padula", "TE"], ["Pagliaroli", "TE"]], - "64041": [["Castelli", "TE"], ["Colledoro", "TE"]], - "64042": [["Colledara", "TE"], ["Villa Petto", "TE"], ["Ornano Grande", "TE"]], - "64043": [ - ["Cesacastina", "TE"], - ["Crognaleto", "TE"], - ["Tottea", "TE"], - ["San Giorgio", "TE"], - ["Cervaro", "TE"], - ["San Giorgio Di Crognaleto", "TE"], - ["Macchia Vomano", "TE"], - ["Nerito", "TE"], - ["Poggio Umbricchio", "TE"], - ], - "64044": [["Cerqueto", "TE"], ["Fano Adriano", "TE"]], - "64045": [ - ["Isola Del Gran Sasso D'Italia", "TE"], - ["Fano A Corno", "TE"], - ["Cerchiara", "TE"], - ["Forca Di Valle", "TE"], - ["San Gabriele Dell'Addolorata", "TE"], - ], - "64046": [ - ["Cusciano", "TE"], - ["Collevecchio Di Montorio", "TE"], - ["Leognano", "TE"], - ["Montorio Al Vomano", "TE"], - ], - "64047": [["Intermesoli", "TE"], ["Pietracamela", "TE"]], - "64049": [["Chiarino", "TE"], ["Azzinano", "TE"], ["Tossicia", "TE"]], - "64100": [ - ["Piano D'Accio", "TE"], - ["Valle San Giovanni", "TE"], - ["San Nicolo' A Tordino", "TE"], - ["Poggio San Vittorino", "TE"], - ["Tordinia", "TE"], - ["Varano", "TE"], - ["Castagneto", "TE"], - ["Forcella", "TE"], - ["Nepezzano", "TE"], - ["Miano", "TE"], - ["Cartecchio", "TE"], - ["Colleatterrato Alto", "TE"], - ["Frondarola", "TE"], - ["Sant'Atto", "TE"], - ["Villa Ripa", "TE"], - ["Colleminuccio", "TE"], - ["Colle Santa Maria", "TE"], - ["Teramo", "TE"], - ["Villa Vomano", "TE"], - ["Spiano", "TE"], - ], - "75010": [ - ["Miglionico", "MT"], - ["Craco", "MT"], - ["Garaguso", "MT"], - ["Peschiera", "MT"], - ["Grottole", "MT"], - ["Oliveto Lucano", "MT"], - ["Calciano", "MT"], - ["Gorgoglione", "MT"], - ["Cirigliano", "MT"], - ["Aliano", "MT"], - ["San Mauro Forte", "MT"], - ], - "75011": [["Accettura", "MT"]], - "75012": [["Metaponto Lido", "MT"], ["Metaponto", "MT"], ["Bernalda", "MT"], ["Serra Marina", "MT"]], - "75013": [["Macchia", "MT"], ["Borgo Macchia", "MT"], ["Ferrandina", "MT"]], - "75014": [["Grassano", "MT"]], - "75015": [["Pisticci", "MT"], ["Marconia", "MT"], ["Pisticci Scalo", "MT"]], - "75016": [["Pomarico", "MT"]], - "75017": [["Salandra", "MT"]], - "75018": [["Stigliano", "MT"]], - "75019": [["Tricarico", "MT"], ["Calle", "MT"]], - "75020": [ - ["Nova Siri", "MT"], - ["Nova Siri Scalo", "MT"], - ["Scanzano Jonico", "MT"], - ["Recoleta", "MT"], - ["Nova Siri Stazione", "MT"], - ], - "75021": [["Colobraro", "MT"]], - "75022": [["Irsina", "MT"], ["Taccone", "MT"]], - "75023": [["Montalbano Jonico", "MT"]], - "75024": [["Montescaglioso", "MT"]], - "75025": [["Policoro", "MT"]], - "75026": [["Rotondella", "MT"]], - "75027": [["San Giorgio Lucano", "MT"]], - "75028": [["Gannano", "MT"], ["Caprarico", "MT"], ["Tursi", "MT"]], - "75029": [["Valsinni", "MT"]], - "75100": [["La Martella", "MT"], ["Matera", "MT"], ["Venusio", "MT"]], - "85010": [ - ["Gallicchio", "PZ"], - ["Banzi", "PZ"], - ["Albano Di Lucania", "PZ"], - ["Abriola", "PZ"], - ["San Chirico Nuovo", "PZ"], - ["Armento", "PZ"], - ["Calvello", "PZ"], - ["Madonna Del Pantano", "PZ"], - ["Pignola", "PZ"], - ["Brindisi Montagna", "PZ"], - ["Rifreddo", "PZ"], - ["Pantano", "PZ"], - ["Castelmezzano", "PZ"], - ["Guardia Perticara", "PZ"], - ["Campomaggiore", "PZ"], - ["Cancellara", "PZ"], - ["Pietrapertosa", "PZ"], - ["Vaglio Basilicata", "PZ"], - ["Missanello", "PZ"], - ["Anzi", "PZ"], - ], - "85011": [["Acerenza", "PZ"]], - "85012": [["Corleto Perticara", "PZ"]], - "85013": [["Genzano Di Lucania", "PZ"]], - "85014": [["Laurenzana", "PZ"]], - "85015": [["Oppido Lucano", "PZ"]], - "85016": [["Pietragalla", "PZ"], ["San Giorgio", "PZ"]], - "85017": [["Tolve", "PZ"]], - "85018": [["Trivigno", "PZ"]], - "85020": [ - ["Ruvo Del Monte", "PZ"], - ["Piano San Nicola", "PZ"], - ["Ginestra", "PZ"], - ["Sterpito", "PZ"], - ["San Giorgio Di Pietragalla", "PZ"], - ["Sant'Angelo Di Avigliano", "PZ"], - ["Dragonetti", "PZ"], - ["Filiano", "PZ"], - ["Avigliano Scalo", "PZ"], - ["Sant'Andrea", "PZ"], - ["Rapone", "PZ"], - ["Maschito", "PZ"], - ["San Fele", "PZ"], - ["Atella", "PZ"], - ["San Nicola", "PZ"], - ["Montemilone", "PZ"], - ["Sant'Ilario", "PZ"], - ["Lagopesole", "PZ"], - ["Pescopagano", "PZ"], - ["Scalera", "PZ"], - ["Ripacandida", "PZ"], - ["Sterpito Di Sotto", "PZ"], - ["Sterpito Di Sopra", "PZ"], - ], - "85021": [ - ["Avigliano", "PZ"], - ["Castel Lagopesole", "PZ"], - ["San Cataldo", "PZ"], - ["Sant'Angelo", "PZ"], - ["San Cataldo Di Bella", "PZ"], - ["Possidente", "PZ"], - ["Piano Del Conte", "PZ"], - ], - "85022": [["Barile", "PZ"]], - "85023": [["Forenza", "PZ"]], - "85024": [["Gaudiano", "PZ"], ["Lavello", "PZ"]], - "85025": [["Foggiano", "PZ"], ["Melfi", "PZ"], ["Leonessa Di Melfi", "PZ"]], - "85026": [["Palazzo San Gervasio", "PZ"]], - "85027": [["Rapolla", "PZ"]], - "85028": [["Monticchio", "PZ"], ["Rionero In Vulture", "PZ"], ["Monticchio Bagni", "PZ"]], - "85029": [["Venosa", "PZ"]], - "85030": [ - ["Mezzana", "PZ"], - ["Calvera", "PZ"], - ["Casa Del Conte", "PZ"], - ["San Costantino Albanese", "PZ"], - ["Castronuovo Di Sant'Andrea", "PZ"], - ["Carbone", "PZ"], - ["Cersosimo", "PZ"], - ["Terranova Di Pollino", "PZ"], - ["San Severino Lucano", "PZ"], - ["San Martino D'Agri", "PZ"], - ["Villaneto", "PZ"], - ["San Chirico Raparo", "PZ"], - ["Mezzana Salice", "PZ"], - ["San Paolo Albanese", "PZ"], - ], - "85031": [["Castelsaraceno", "PZ"], ["Frusci", "PZ"], ["Miraldo", "PZ"]], - "85032": [["Teana", "PZ"], ["Chiaromonte", "PZ"]], - "85033": [["Episcopia", "PZ"]], - "85034": [["Fardella", "PZ"], ["Francavilla In Sinni", "PZ"]], - "85035": [["Noepoli", "PZ"]], - "85036": [["Roccanova", "PZ"]], - "85037": [["San Brancato", "PZ"], ["Sant'Arcangelo", "PZ"]], - "85038": [["Senise", "PZ"]], - "85039": [["Spinoso", "PZ"]], - "85040": [ - ["San Costantino", "PZ"], - ["Rivello", "PZ"], - ["Castelluccio Inferiore", "PZ"], - ["San Costantino Di Rivello", "PZ"], - ["Viggianello", "PZ"], - ["Castelluccio Superiore", "PZ"], - ["Pedali Di Viggianello", "PZ"], - ["Nemoli", "PZ"], - ], - "85042": [["Lagonegro", "PZ"]], - "85043": [["Latronico", "PZ"], ["Mileo", "PZ"], ["Cerri", "PZ"], ["Agromonte", "PZ"], ["Magnano", "PZ"]], - "85044": [ - ["Lauria", "PZ"], - ["Seluci", "PZ"], - ["Lauria Superiore", "PZ"], - ["Cogliandrino", "PZ"], - ["Lauria Inferiore", "PZ"], - ["Galdo", "PZ"], - ["Galdo Di Lauria", "PZ"], - ["Pecorone", "PZ"], - ], - "85046": [ - ["Massa", "PZ"], - ["Fiumicello Santa Venere", "PZ"], - ["Acquafredda", "PZ"], - ["Maratea Porto", "PZ"], - ["Maratea", "PZ"], - ], - "85047": [["Moliterno", "PZ"]], - "85048": [["Rotonda", "PZ"]], - "85049": [["Trecchina", "PZ"], ["Piano Dei Peri", "PZ"]], - "85050": [ - ["Baragiano Scalo", "PZ"], - ["Tito Scalo", "PZ"], - ["Scalo Di Baragiano", "PZ"], - ["Castelgrande", "PZ"], - ["Balvano", "PZ"], - ["Sarconi", "PZ"], - ["Sasso Di Castalda", "PZ"], - ["Satriano Di Lucania", "PZ"], - ["Sant'Angelo Le Fratte", "PZ"], - ["Tito", "PZ"], - ["Villa D'Agri", "PZ"], - ["Brienza", "PZ"], - ["Savoia Di Lucania", "PZ"], - ["Marsicovetere", "PZ"], - ["Paterno", "PZ"], - ["Baragiano", "PZ"], - ["Grumento Nova", "PZ"], - ], - "85051": [["Bella", "PZ"], ["Sant'Antonio Casalini", "PZ"]], - "85052": [["Galaino", "PZ"], ["Pergola", "PZ"], ["Marsico Nuovo", "PZ"]], - "85053": [["Montemurro", "PZ"]], - "85054": [["Muro Lucano", "PZ"], ["Capo Di Giano", "PZ"]], - "85055": [["Picerno", "PZ"]], - "85056": [["Ruoti", "PZ"]], - "85057": [["Tramutola", "PZ"]], - "85058": [["Mosileo", "PZ"], ["Vietri Di Potenza", "PZ"]], - "85059": [["Viggiano", "PZ"]], - "85100": [["Giuliano", "PZ"], ["Montocchio", "PZ"], ["Potenza", "PZ"]], - "87010": [ - ["Lattarico", "CS"], - ["Saracena", "CS"], - ["Acquaformosa", "CS"], - ["Mottafollone", "CS"], - ["Regina", "CS"], - ["Santa Maria Le Grotte", "CS"], - ["San Martino Di Finita", "CS"], - ["Cervicati", "CS"], - ["Torano Castello", "CS"], - ["Terranova Da Sibari", "CS"], - ["Santa Caterina Albanese", "CS"], - ["Civita", "CS"], - ["Frascineto", "CS"], - ["Malvito", "CS"], - ["Firmo", "CS"], - ["Sant'Agata Di Esaro", "CS"], - ["Lungro", "CS"], - ["Sartano", "CS"], - ["San Basile", "CS"], - ["Torano Castello Scalo", "CS"], - ["Policastrello", "CS"], - ["Eianina", "CS"], - ["Rota Greca", "CS"], - ["Ioggi", "CS"], - ["San Donato Di Ninea", "CS"], - ["San Sosti", "CS"], - ], - "87011": [ - ["Sibari Stazione", "CS"], - ["Lattughelle", "CS"], - ["Lauropoli", "CS"], - ["Pianoscafo", "CS"], - ["Sibari", "CS"], - ["Doria", "CS"], - ["Cassano Allo Ionio", "CS"], - ], - "87012": [["Vigne Di Castrovillari", "CS"], ["Castrovillari", "CS"]], - "87013": [["Fagnano Castello", "CS"]], - "87014": [["Laino Borgo", "CS"]], - "87015": [["Laino Castello", "CS"]], - "87016": [["Morano Calabro", "CS"]], - "87017": [["Roggiano Gravina", "CS"]], - "87018": [ - ["San Marco Argentano Stazione", "CS"], - ["San Marco Roggiano Stazione", "CS"], - ["San Marco Argentano", "CS"], - ], - "87019": [["Spezzano Albanese Stazione", "CS"], ["Spezzano Albanese Terme", "CS"], ["Spezzano Albanese", "CS"]], - "87020": [ - ["San Nicola Arcella", "CS"], - ["Sangineto", "CS"], - ["Marcellina", "CS"], - ["Acquappesa", "CS"], - ["Maiera'", "CS"], - ["Santa Domenica Talao", "CS"], - ["Bonifati", "CS"], - ["Guardia Piemontese Marina", "CS"], - ["Grisolia", "CS"], - ["Aieta", "CS"], - ["Buonvicino", "CS"], - ["Torrevecchia", "CS"], - ["Orsomarso", "CS"], - ["Guardia Piemontese Terme", "CS"], - ["Le Crete", "CS"], - ["Granata", "CS"], - ["Cittadella Del Capo", "CS"], - ["Tortora Marina", "CS"], - ["Intavolata", "CS"], - ["Guardia Piemontese", "CS"], - ["Acquappesa Marina", "CS"], - ["Marina Di Tortora", "CS"], - ["Verbicaro", "CS"], - ["Papasidero", "CS"], - ["Santa Maria Del Cedro", "CS"], - ["Sangineto Lido", "CS"], - ["Tortora", "CS"], - ], - "87021": [["Laise", "CS"], ["Marina Di Belvedere Marittimo", "CS"], ["Belvedere Marittimo", "CS"]], - "87022": [ - ["Cetraro Marina", "CS"], - ["Cetraro", "CS"], - ["Sant'Angelo Di Cetraro", "CS"], - ["Battendieri", "CS"], - ["San Filippo", "CS"], - ["Sant'Angelo", "CS"], - ], - "87023": [["Cirella", "CS"], ["Diamante", "CS"]], - "87024": [["Cariglio", "CS"], ["Marina Di Fuscaldo", "CS"], ["Scarcelli", "CS"], ["Fuscaldo", "CS"]], - "87026": [["Mormanno", "CS"]], - "87027": [ - ["Paola Marina", "CS"], - ["Paola Santuario", "CS"], - ["Paola", "CS"], - ["San Miceli", "CS"], - ["Fosse", "CS"], - ["Santuario San Francesco", "CS"], - ], - "87028": [["Praia A Mare", "CS"]], - "87029": [["Scalea", "CS"]], - "87030": [ - ["San Vincenzo La Costa", "CS"], - ["Longobardi Marina", "CS"], - ["Carolei", "CS"], - ["Belsito", "CS"], - ["Domanico", "CS"], - ["San Pietro In Amantea", "CS"], - ["Falconara Albanese", "CS"], - ["Savuto Di Cleto", "CS"], - ["Malito", "CS"], - ["Fiumefreddo Bruzio", "CS"], - ["Cleto", "CS"], - ["Serra D'Aiello", "CS"], - ["Vadue", "CS"], - ["Torremezzo Di Falconara", "CS"], - ["Longobardi", "CS"], - ["Savuto", "CS"], - ["Scornavacca", "CS"], - ["Gesuiti", "CS"], - ["Torremezzo", "CS"], - ["Marina Di Fiumefreddo Bruzio", "CS"], - ["Stazione Di Fiumefreddo Bruzio", "CS"], - ["San Biase", "CS"], - ["Reggio", "CS"], - ], - "87031": [["Aiello Calabro", "CS"]], - "87032": [["Amantea Marina", "CS"], ["Amantea", "CS"], ["Campora San Giovanni", "CS"], ["Corica", "CS"]], - "87033": [["Belmonte Calabro Marina", "CS"], ["Belmonte Calabro", "CS"], ["Vadi", "CS"]], - "87034": [["Grimaldi", "CS"]], - "87035": [["Terrati", "CS"], ["Greci", "CS"], ["Aria Di Lupi", "CS"], ["Lago", "CS"]], - "87036": [ - ["Roges", "CS"], - ["Santo Stefano", "CS"], - ["Arcavacata", "CS"], - ["Commenda", "CS"], - ["Rende", "CS"], - ["Castiglione Cosentino Stazione", "CS"], - ["Surdo", "CS"], - ["Quattromiglia", "CS"], - ], - "87037": [["San Fili", "CS"], ["Bucita", "CS"]], - "87038": [["San Lucido", "CS"], ["Pollella", "CS"]], - "87040": [ - ["Mongrassano Stazione", "CS"], - ["San Lorenzo Del Vallo", "CS"], - ["San Giacomo Di Cerzeto", "CS"], - ["Marano Principato", "CS"], - ["Casal Di Basso", "CS"], - ["Mongrassano", "CS"], - ["Rosario", "CS"], - ["Deposito Di Luzzi", "CS"], - ["Rose", "CS"], - ["Stazione Di Mongrassano", "CS"], - ["San Bartolo", "CS"], - ["Montalto Uffugo Scalo", "CS"], - ["Cavallerizzo", "CS"], - ["Timparello Di Luzzi", "CS"], - ["San Giacomo", "CS"], - ["Andreotta", "CS"], - ["Taverna Di Montalto Uffugo", "CS"], - ["Zumpano", "CS"], - ["Malavicina", "CS"], - ["Andreotta Di Castrolibero", "CS"], - ["Castiglione Cosentino", "CS"], - ["Mendicino", "CS"], - ["Tarsia", "CS"], - ["Luzzi", "CS"], - ["Tivolille", "CS"], - ["Marano Marchesato", "CS"], - ["Paterno Calabro", "CS"], - ["Ortomatera", "CS"], - ["San Benedetto Ullano", "CS"], - ["Timparello", "CS"], - ["Maione", "CS"], - ["Cerzeto", "CS"], - ["Altilia", "CS"], - ["Castrolibero", "CS"], - ["Parenti", "CS"], - ], - "87041": [ - ["Acri", "CS"], - ["Montagnola", "CS"], - ["Serricella", "CS"], - ["San Giacomo D'Acri", "CS"], - ["Duglia", "CS"], - ], - "87042": [["Altomonte", "CS"]], - "87043": [["Bisignano", "CS"]], - "87044": [["Cerisano", "CS"]], - "87045": [["Laurignano", "CS"], ["Tessano", "CS"], ["Dipignano", "CS"]], - "87046": [ - ["Parantoro", "CS"], - ["Caldopiano", "CS"], - ["Vaccarizzo Di Montalto", "CS"], - ["Vaccarizzo", "CS"], - ["Montalto Uffugo", "CS"], - ], - "87047": [["Redipiano", "CS"], ["San Benedetto In Guarano", "CS"], ["San Pietro In Guarano", "CS"]], - "87048": [["Santa Sofia D'Epiro", "CS"]], - "87050": [ - ["Pian Del Lago", "CS"], - ["Trenta", "CS"], - ["Carpanzano", "CS"], - ["Magli", "CS"], - ["Serra Pedace", "CS"], - ["Morelli", "CS"], - ["Perito", "CS"], - ["Casole Bruzio", "CS"], - ["Rovito", "CS"], - ["Bianchi", "CS"], - ["Pedace", "CS"], - ["Marzi", "CS"], - ["Borboruso", "CS"], - ["Panettieri", "CS"], - ["Pedivigliano", "CS"], - ["Colosimi", "CS"], - ["Piane Crati", "CS"], - ["Figline Vegliaturo", "CS"], - ["Cellara", "CS"], - ["Spezzano Piccolo", "CS"], - ["Pietrafitta", "CS"], - ["Mangone", "CS"], - ["Silvana Mansio", "CS"], - ["Lappano", "CS"], - ], - "87051": [["Vico", "CS"], ["Camarda Di Aprigliano", "CS"], ["Aprigliano", "CS"]], - "87052": [ - ["Moccone", "CS"], - ["Croce Di Magara", "CS"], - ["Camigliatello Silano", "CS"], - ["Camigliatello", "CS"], - ["Fago Del Soldato", "CS"], - ], - "87053": [["Celico", "CS"]], - "87054": [["Rogliano", "CS"], ["Saliano", "CS"]], - "87055": [["Lorica", "CS"], ["Monte Oliveto", "CS"], ["San Giovanni In Fiore", "CS"]], - "87056": [["Santo Stefano Di Rogliano", "CS"]], - "87057": [["Scigliano", "CS"], ["Diano", "CS"], ["Calvisi", "CS"]], - "87058": [["Spezzano Della Sila", "CS"]], - "87060": [ - ["Marinella", "CS"], - ["Vaccarizzo Albanese", "CS"], - ["San Morello", "CS"], - ["San Cosmo Albanese", "CS"], - ["Terravecchia", "CS"], - ["Pietrapaola Stazione", "CS"], - ["Caloveto", "CS"], - ["Paludi", "CS"], - ["San Giorgio Albanese", "CS"], - ["Calopezzati", "CS"], - ["Crosia", "CS"], - ["Camigliano", "CS"], - ["Mirto", "CS"], - ["Cropalati", "CS"], - ["Vecchiarello", "CS"], - ["Bocchigliero", "CS"], - ["Pietrapaola", "CS"], - ["Scala Coeli", "CS"], - ["Mandatoriccio", "CS"], - ], - "87061": [["Campana", "CS"]], - "87062": [["Cariati", "CS"], ["Cariati Marina", "CS"]], - "87064": [ - ["Marina Di Schiavonea", "CS"], - ["Fabrizio", "CS"], - ["Villaggio Frasso", "CS"], - ["Schiavonea", "CS"], - ["Corigliano Calabro Stazione", "CS"], - ["Corigliano Calabro", "CS"], - ["Corigliano Scalo", "CS"], - ["Cantinella", "CS"], - ], - "87066": [["Longobucco", "CS"], ["Destro", "CS"]], - "87067": [["Rossano", "CS"], ["Piragineti", "CS"], ["Amica", "CS"], ["Rossano Stazione", "CS"]], - "87069": [["Macchia Albanese", "CS"], ["San Demetrio Corone", "CS"]], - "87070": [ - ["Castroregio", "CS"], - ["Canna", "CS"], - ["Plataci", "CS"], - ["Farneta", "CS"], - ["Albidona", "CS"], - ["Cerchiara Di Calabria", "CS"], - ["Alessandria Del Carretto", "CS"], - ["Borgata Marina", "CS"], - ["Nocara", "CS"], - ["Montegiordano", "CS"], - ["Roseto Capo Spulico Stazione", "CS"], - ["Piana Di Cerchiara", "CS"], - ["San Lorenzo Bellizzi", "CS"], - ["Roseto Capo Spulico", "CS"], - ["Montegiordano Marina", "CS"], - ], - "87071": [["Amendolara Marina", "CS"], ["Amendolara", "CS"]], - "87072": [["Francavilla Marittima", "CS"]], - "87073": [["Oriolo", "CS"]], - "87074": [["Rocca Imperiale", "CS"], ["Rocca Imperiale Marina", "CS"]], - "87075": [["Trebisacce", "CS"]], - "87076": [ - ["Villapiana Lido", "CS"], - ["Torre Cerchiar", "CS"], - ["Villapiana", "CS"], - ["Villapiana Scalo", "CS"], - ], - "87100": [ - ["Cosenza", "CS"], - ["Donnici Superiore", "CS"], - ["Donnici Inferiore", "CS"], - ["Sant'Ippolito Di Cosenza", "CS"], - ["Borgo Partenope", "CS"], - ["Casali", "CS"], - ["Sanvito", "CS"], - ], - "88020": [["Jacurso", "CZ"], ["Cortale", "CZ"]], - "88021": [["Roccelletta", "CZ"], ["Borgia", "CZ"], ["San Floro", "CZ"]], - "88022": [["Curinga", "CZ"], ["Acconia", "CZ"]], - "88024": [["Girifalco", "CZ"]], - "88025": [["San Pietro A Maida", "CZ"], ["Maida", "CZ"]], - "88040": [ - ["Martelletto", "CZ"], - ["Martirano", "CZ"], - ["San Mango D'Aquino", "CZ"], - ["San Pietro Apostolo", "CZ"], - ["Cicala", "CZ"], - ["Gizzeria Lido", "CZ"], - ["Conflenti", "CZ"], - ["Accaria Rosaria", "CZ"], - ["Motta Santa Lucia", "CZ"], - ["Amato", "CZ"], - ["Settingiano", "CZ"], - ["Castagna", "CZ"], - ["Serrastretta", "CZ"], - ["Platania", "CZ"], - ["Martirano Lombardo", "CZ"], - ["Pianopoli", "CZ"], - ["Pratora Sarrottino", "CZ"], - ["Carlopoli", "CZ"], - ["San Michele", "CZ"], - ["Cancello", "CZ"], - ["Ievoli", "CZ"], - ["Angoli", "CZ"], - ["San Mazzeo", "CZ"], - ["Feroleto Antico", "CZ"], - ["Gizzeria", "CZ"], - ["Miglierina", "CZ"], - ["Accaria", "CZ"], - ["Conflenti Inferiore", "CZ"], - ["Migliuso", "CZ"], - ], - "88041": [["Decollatura", "CZ"], ["San Bernardo", "CZ"], ["Adami", "CZ"], ["Cerrisi", "CZ"]], - "88042": [["Falerna Scalo", "CZ"], ["Falerna", "CZ"], ["Castiglione Marittimo", "CZ"]], - "88044": [["Marcellinara", "CZ"]], - "88045": [ - ["Gimigliano Inferiore", "CZ"], - ["Gimigliano", "CZ"], - ["Cavora' Di Gimigliano", "CZ"], - ["Cavora'", "CZ"], - ], - "88046": [ - ["Santa Eufemia Lamezia", "CZ"], - ["Bella Di Lamezia Terme", "CZ"], - ["Fronti", "CZ"], - ["Zangarona", "CZ"], - ["Nicastro", "CZ"], - ["Caronte", "CZ"], - ["Sant'Eufemia Di Lamezia Terme", "CZ"], - ["Sambiase Di Lamezia Terme", "CZ"], - ["Gabella", "CZ"], - ["San Pietro Lametino", "CZ"], - ["Sambiase", "CZ"], - ["Acquafredda", "CZ"], - ["Lamezia Terme", "CZ"], - ["Zangarona Di Lamezia Terme", "CZ"], - ], - "88047": [["Marina Di Nocera Terinese", "CZ"], ["Nocera Terinese", "CZ"]], - "88049": [["San Tommaso", "CZ"], ["Colla", "CZ"], ["Soveria Mannelli", "CZ"]], - "88050": [ - ["Simeri", "CZ"], - ["Belcastro", "CZ"], - ["Sellia", "CZ"], - ["Amaroni", "CZ"], - ["Petrona'", "CZ"], - ["Crichi", "CZ"], - ["Vallefiorita", "CZ"], - ["Sorbo San Basile", "CZ"], - ["Sellia Marina", "CZ"], - ["La Petrizia", "CZ"], - ["Palermiti", "CZ"], - ["Fossato Serralta", "CZ"], - ["Soveria Simeri", "CZ"], - ["San Pietro", "CZ"], - ["Uria", "CZ"], - ["Magisano", "CZ"], - ["Scoppolise", "CZ"], - ["Simeri Crichi", "CZ"], - ["Andali", "CZ"], - ["Pentone", "CZ"], - ["Marcedusa", "CZ"], - ["Caraffa Di Catanzaro", "CZ"], - ["Petrizia", "CZ"], - ["Cerva", "CZ"], - ["San Pietro Magisano", "CZ"], - ["Calabricata", "CZ"], - ["Zagarise", "CZ"], - ], - "88051": [["Cuturella", "CZ"], ["Cropani", "CZ"], ["Cropani Marina", "CZ"]], - "88054": [["Sersale", "CZ"]], - "88055": [ - ["San Giovanni", "CZ"], - ["Albi", "CZ"], - ["Buturo", "CZ"], - ["Villaggio Racise", "CZ"], - ["Taverna", "CZ"], - ["San Giovanni D'Albi", "CZ"], - ["Villaggio Mancuso", "CZ"], - ], - "88056": [["Pratora", "CZ"], ["Tiriolo", "CZ"]], - "88060": [ - ["Davoli", "CZ"], - ["Sant'Andrea Apostolo Dello Ionio", "CZ"], - ["Montepaone", "CZ"], - ["Torre Di Ruggiero", "CZ"], - ["Marina Di Davoli", "CZ"], - ["Argusto", "CZ"], - ["San Sostene", "CZ"], - ["Isca Marina", "CZ"], - ["Montauro", "CZ"], - ["Sant'Andrea Ionio Marina", "CZ"], - ["San Sostene Marina", "CZ"], - ["Badolato Marina", "CZ"], - ["Badolato", "CZ"], - ["Gagliato", "CZ"], - ["Montepaone Lido", "CZ"], - ["Marina Di Sant'Andrea Jonio", "CZ"], - ["Isca Sullo Ionio", "CZ"], - ["Petrizzi", "CZ"], - ["Montauro Stazione", "CZ"], - ["Satriano", "CZ"], - ["Marina Di Guardavalle", "CZ"], - ["Santa Caterina Dello Ionio Marina", "CZ"], - ["Gasperina", "CZ"], - ["Santa Caterina Dello Ionio", "CZ"], - ], - "88062": [["Cardinale", "CZ"], ["Novalba", "CZ"]], - "88064": [["Chiaravalle Centrale", "CZ"]], - "88065": [["Guardavalle", "CZ"], ["Guardavalle Marina", "CZ"]], - "88067": [["Cenadi", "CZ"], ["Centrache", "CZ"], ["San Vito Sullo Ionio", "CZ"], ["Olivadi", "CZ"]], - "88068": [["Soverato Superiore", "CZ"], ["Soverato Marina", "CZ"], ["Soverato", "CZ"]], - "88069": [ - ["Squillace Lido", "CZ"], - ["Staletti", "CZ"], - ["Lido Di Squillace", "CZ"], - ["Copanello", "CZ"], - ["Squillace", "CZ"], - ], - "88070": [["Botricello", "CZ"]], - "88100": [ - ["Pontegrande", "CZ"], - ["Sant'Elia", "CZ"], - ["Siano", "CZ"], - ["Catanzaro Lido", "CZ"], - ["Santa Maria Di Catanzaro", "CZ"], - ["Catanzaro Sala", "CZ"], - ["Catanzaro", "CZ"], - ["Cava Di Catanzaro", "CZ"], - ], - "88811": [["Ciro' Marina", "KR"]], - "88812": [["Crucoli", "KR"], ["Torretta", "KR"], ["Crucoli Torretta", "KR"]], - "88813": [["Ciro'", "KR"]], - "88814": [["Melissa", "KR"], ["Torre Melissa", "KR"]], - "88815": [["Marina Di Strongoli", "KR"]], - "88816": [["Strongoli", "KR"]], - "88817": [["San Nicola Dell'Alto", "KR"], ["Carfizzi", "KR"]], - "88818": [["Pallagorio", "KR"]], - "88819": [["Verzino", "KR"]], - "88821": [["Rocca Di Neto", "KR"], ["Corazzo", "KR"]], - "88822": [["Zinga", "KR"], ["Casabona", "KR"]], - "88823": [["Umbriatico", "KR"], ["Perticaro", "KR"]], - "88824": [["Belvedere Di Spinello", "KR"]], - "88825": [["Savelli", "KR"]], - "88831": [["San Mauro Marchesato", "KR"], ["Scandale", "KR"]], - "88832": [["Altilia", "KR"], ["Santa Severina", "KR"]], - "88833": [["Caccuri", "KR"], ["Cerenzia", "KR"]], - "88834": [["Castelsilano", "KR"]], - "88835": [["Roccabernarda", "KR"]], - "88836": [["Cotronei", "KR"]], - "88837": [["Camellino", "KR"], ["Pagliarelle", "KR"], ["Foresta", "KR"], ["Petilia Policastro", "KR"]], - "88838": [["Filippa", "KR"], ["Mesoraca", "KR"]], - "88841": [ - ["Punta Le Castella", "KR"], - ["Sant'Anna", "KR"], - ["Le Castella", "KR"], - ["Isola Di Capo Rizzuto", "KR"], - ], - "88842": [["San Leonardo Di Cutro", "KR"], ["Cutro", "KR"], ["Steccato Di Cutro", "KR"]], - "88900": [["Villaggio Bucchi", "KR"], ["Crotone", "KR"], ["Papanice", "KR"]], - "89010": [["Scido", "RC"], ["Terranova Sappo Minulio", "RC"], ["Varapodio", "RC"], ["Molochio", "RC"]], - "89011": [ - ["Marinella", "RC"], - ["Ceramida", "RC"], - ["Pellegrina", "RC"], - ["Porelli Di Bagnara", "RC"], - ["Bagnara Calabra", "RC"], - ["Solano Inferiore", "RC"], - ], - "89012": [["Delianuova", "RC"]], - "89013": [["Marina Di Gioia Tauro", "RC"], ["Gioia Tauro", "RC"]], - "89014": [ - ["Tresilico", "RC"], - ["Zurgonadio", "RC"], - ["Piminoro", "RC"], - ["Castellace", "RC"], - ["Messignadi", "RC"], - ["Oppido Mamertina", "RC"], - ], - "89015": [["Palmi", "RC"], ["Taureana", "RC"], ["Trodio", "RC"]], - "89016": [["Rizziconi", "RC"], ["Spina", "RC"], ["Drosi", "RC"], ["Cirello", "RC"]], - "89017": [["San Giorgio Morgeto", "RC"]], - "89018": [ - ["Acciarello", "RC"], - ["Pezzo Di Villa San Giovanni", "RC"], - ["Ferrito", "RC"], - ["Cannitello", "RC"], - ["Villa San Giovanni", "RC"], - ], - "89020": [ - ["Serrata", "RC"], - ["San Procopio", "RC"], - ["Anoia Superiore", "RC"], - ["Tritanti", "RC"], - ["Maropati", "RC"], - ["Giffone", "RC"], - ["Melicucca'", "RC"], - ["Melicucco", "RC"], - ["Sinopoli Inferiore", "RC"], - ["Anoia", "RC"], - ["San Pier Fedele", "RC"], - ["Anoia Inferiore", "RC"], - ["San Pietro Di Carida'", "RC"], - ["Candidoni", "RC"], - ["Sinopoli", "RC"], - ], - "89021": [["Cinquefrondi", "RC"]], - "89022": [["Cittanova", "RC"]], - "89023": [["Stelletanone", "RC"], ["Bellantone", "RC"], ["Laureana Di Borrello", "RC"]], - "89024": [["Polistena", "RC"]], - "89025": [["Bosco", "RC"], ["Rosarno", "RC"]], - "89026": [["San Ferdinando", "RC"]], - "89027": [["Sant'Eufemia D'Aspromonte", "RC"]], - "89028": [["Seminara", "RC"], ["Barritteri", "RC"], ["Sant'Anna", "RC"], ["Sant'Anna Di Seminara", "RC"]], - "89029": [ - ["San Martino", "RC"], - ["Taurianova", "RC"], - ["Amato Di Taurianova", "RC"], - ["San Martino Di Taurianova", "RC"], - ], - "89030": [ - ["Condofuri", "RC"], - ["Benestare", "RC"], - ["Natile Vecchio", "RC"], - ["Staiti", "RC"], - ["Motticella", "RC"], - ["Ferruzzano", "RC"], - ["Careri", "RC"], - ["Casignana", "RC"], - ["Belloro", "RC"], - ["Santuario Di Polsi", "RC"], - ["San Luca", "RC"], - ["Caraffa Del Bianco", "RC"], - ["Natile Nuovo", "RC"], - ["Sant'Agata Del Bianco", "RC"], - ["Bruzzano Zeffirio", "RC"], - ["Samo", "RC"], - ["Africo", "RC"], - ["Natile", "RC"], - ["Canalello", "RC"], - ["Condofuri Marina", "RC"], - ["San Carlo", "RC"], - ], - "89031": [["Bombile", "RC"], ["San Nicola", "RC"], ["Ardore", "RC"]], - "89032": [["Pardesca", "RC"], ["Bianco", "RC"]], - "89033": [["Bova", "RC"]], - "89034": [ - ["Bosco Sant'Ippolito", "RC"], - ["Bovalino Marina", "RC"], - ["Bovalino", "RC"], - ["Bovalino Superiore", "RC"], - ], - "89035": [["Bova Marina", "RC"]], - "89036": [["Brancaleone Marina", "RC"], ["Capo Spartivento", "RC"], ["Galati", "RC"], ["Brancaleone", "RC"]], - "89037": [["Ardore Marina", "RC"], ["Marina D'Ardore", "RC"]], - "89038": [["Marina Di Palizzi", "RC"], ["Palizzi", "RC"], ["Palizzi Marina", "RC"], ["Pietrapennata", "RC"]], - "89039": [["Plati'", "RC"]], - "89040": [ - ["Monasterace", "RC"], - ["Martone", "RC"], - ["Stignano", "RC"], - ["Marina Di Caulonia", "RC"], - ["Monasterace Marina", "RC"], - ["Riace Marina", "RC"], - ["Riace", "RC"], - ["Canolo", "RC"], - ["Marina Di Sant'Ilario Dello Ionio", "RC"], - ["Gerace", "RC"], - ["Canolo Nuova", "RC"], - ["Cimina'", "RC"], - ["Bivongi", "RC"], - ["San Giovanni Di Gerace", "RC"], - ["Condojanni", "RC"], - ["Pazzano", "RC"], - ["Agnana Calabra", "RC"], - ["Antonimina", "RC"], - ["Cirella", "RC"], - ["Placanica", "RC"], - ["Sant'Ilario Dello Ionio", "RC"], - ["Camini", "RC"], - ["Portigliola", "RC"], - ], - "89041": [ - ["San Nicola Di Caulonia", "RC"], - ["Ursini", "RC"], - ["Campoli Di Caulonia", "RC"], - ["Caulonia Marina", "RC"], - ["Caulonia", "RC"], - ], - "89042": [["Gioiosa Ionica", "RC"]], - "89043": [["Grotteria", "RC"], ["Croce Ferrata", "RC"]], - "89044": [["Merici", "RC"], ["Moschetta Di Locri", "RC"], ["Moschetta", "RC"], ["Locri", "RC"]], - "89045": [["Mammola", "RC"]], - "89046": [["Marina Di Gioiosa Ionica", "RC"]], - "89047": [["Roccella Ionica", "RC"]], - "89048": [["Siderno Superiore", "RC"], ["Donisi", "RC"], ["Siderno", "RC"], ["Siderno Marina", "RC"]], - "89049": [["Stilo", "RC"]], - "89050": [ - ["Villa Mesa", "RC"], - ["Cosoleto", "RC"], - ["Fiumara", "RC"], - ["San Roberto", "RC"], - ["Sant'Alessio In Aspromonte", "RC"], - ["Feroleto Della Chiesa", "RC"], - ["Colelli", "RC"], - ["Sitizano", "RC"], - ["Laganadi", "RC"], - ["Acquacalda", "RC"], - ["Plaesano", "RC"], - ["Calanna", "RC"], - ], - "89052": [["Campo Calabro", "RC"]], - "89054": [["Galatro", "RC"]], - "89056": [["Lubrichi", "RC"], ["Santa Cristina D'Aspromonte", "RC"]], - "89057": [["Santo Stefano In Aspromonte", "RC"], ["Gambarie", "RC"]], - "89058": [["Scilla", "RC"], ["Favazzina", "RC"], ["Milea", "RC"], ["Melia", "RC"]], - "89060": [ - ["Saline Joniche", "RC"], - ["Ghorio", "RC"], - ["Bagaladi", "RC"], - ["Cardeto", "RC"], - ["Roghudi Nuovo", "RC"], - ["Roghudi", "RC"], - ["Roccaforte Del Greco", "RC"], - ], - "89062": [["Lazzaro", "RC"]], - "89063": [ - ["Melito Di Porto Salvo", "RC"], - ["Anna'", "RC"], - ["Pentedattilo", "RC"], - ["Caredia", "RC"], - ["Lacco", "RC"], - ["Prunella", "RC"], - ], - "89064": [["Masella", "RC"], ["Fossato Ionico", "RC"], ["Montebello Ionico", "RC"], ["Saline Ioniche", "RC"]], - "89065": [["Motta San Giovanni", "RC"]], - "89069": [ - ["Marina Di San Lorenzo", "RC"], - ["San Fantino", "RC"], - ["Chorio", "RC"], - ["San Lorenzo", "RC"], - ["San Pantaleone", "RC"], - ], - "89100": [["Reggio Calabria", "RC"]], - "89121": [["Reggio Calabria", "RC"], ["Archi", "RC"], ["Santa Caterina", "RC"]], - "89122": [["Vito", "RC"], ["Reggio Calabria", "RC"]], - "89123": [["Reggio Calabria", "RC"]], - "89124": [["Reggio Calabria", "RC"], ["Eremo", "RC"]], - "89125": [["Reggio Calabria", "RC"]], - "89126": [ - ["Orti'", "RC"], - ["Reggio Calabria", "RC"], - ["Cerasi", "RC"], - ["Arasi'", "RC"], - ["Trizzino", "RC"], - ["Schindilifa'", "RC"], - ["Terreti", "RC"], - ["Sant'Elia Di Condera", "RC"], - ["Podargoni", "RC"], - ["In Via Dalmazia", "RC"], - ["Trabocchetto", "RC"], - ["Orti' Superiore", "RC"], - ["Orti' Inferiore", "RC"], - ], - "89127": [["Reggio Calabria", "RC"]], - "89128": [["Reggio Calabria", "RC"], ["Spirito Santo", "RC"]], - "89129": [["Reggio Calabria", "RC"]], - "89131": [["Reggio Calabria", "RC"], ["Armo", "RC"], ["Ravagnese", "RC"], ["Gallina", "RC"], ["Puzzi", "RC"]], - "89132": [["Reggio Calabria", "RC"]], - "89133": [ - ["Reggio Calabria", "RC"], - ["Cataforio", "RC"], - ["Mosorrofa", "RC"], - ["Sbarre", "RC"], - ["San Sperato", "RC"], - ["San Salvatore", "RC"], - ["Pavigliana", "RC"], - ["Cannavo'", "RC"], - ["Vinco", "RC"], - ["San Giorgio Extra", "RC"], - ], - "89134": [ - ["Rosario Valanidi", "RC"], - ["San Gregorio", "RC"], - ["Bocale", "RC"], - ["Pellaro", "RC"], - ["Croce Valanidi", "RC"], - ], - "89135": [ - ["Reggio Calabria", "RC"], - ["Diminniti", "RC"], - ["Sambatello", "RC"], - ["Rosali'", "RC"], - ["Gallico", "RC"], - ["Villa San Giuseppe", "RC"], - ["Salice Calabro", "RC"], - ["Catona", "RC"], - ], - "89812": [["Pizzo", "VV"], ["Pizzo Marina", "VV"]], - "89813": [["Polia", "VV"], ["Menniti", "VV"], ["Trecroci", "VV"]], - "89814": [["Montesoro", "VV"], ["Scarro", "VV"], ["Filadelfia", "VV"]], - "89815": [["Francavilla Angitola", "VV"]], - "89816": [["Cessaniti", "VV"], ["San Cono", "VV"], ["Favelloni", "VV"], ["Pannaconi", "VV"]], - "89817": [ - ["Sciconi", "VV"], - ["Paradisoni", "VV"], - ["Potenzoni", "VV"], - ["San Costantino", "VV"], - ["San Costantino Di Briatico", "VV"], - ["Briatico", "VV"], - ], - "89818": [["Capistrano", "VV"]], - "89819": [["Monterosso Calabro", "VV"]], - "89821": [["Vallelonga", "VV"], ["San Nicola Da Crissa", "VV"]], - "89822": [["Brognaturo", "VV"], ["Serra San Bruno", "VV"], ["Simbario", "VV"], ["Spadola", "VV"]], - "89823": [["Mongiana", "VV"], ["Fabrizia", "VV"]], - "89824": [["Nardodipace", "VV"]], - "89831": [ - ["Sant'Angelo", "VV"], - ["Sorianello", "VV"], - ["Sant'Angelo Gerocarne", "VV"], - ["Soriano Calabro", "VV"], - ["Gerocarne", "VV"], - ["Ciano", "VV"], - ], - "89832": [["Limpidi", "VV"], ["Acquaro", "VV"], ["Arena", "VV"], ["Dasa'", "VV"]], - "89833": [["Melicucca' Di Dinami", "VV"], ["Monsoreto", "VV"], ["Dinami", "VV"]], - "89834": [["Vazzano", "VV"], ["Pizzoni", "VV"]], - "89841": [ - ["Rombiolo", "VV"], - ["Presinaci", "VV"], - ["Moladi", "VV"], - ["Pernocari", "VV"], - ["Arzona", "VV"], - ["Filandari", "VV"], - ["Pizzinni", "VV"], - ], - "89842": [["San Calogero", "VV"], ["Calimera Calabra", "VV"]], - "89843": [["Stefanaconi", "VV"], ["Sant'Onofrio", "VV"], ["Filogaso", "VV"], ["Maierato", "VV"]], - "89844": [ - ["Badia", "VV"], - ["Limbadi", "VV"], - ["Mandaradoni", "VV"], - ["Marina Di Nicotera", "VV"], - ["Nicotera", "VV"], - ["Preitoni", "VV"], - ["Motta Filocastro", "VV"], - ["Comerconi", "VV"], - ["Caroni", "VV"], - ], - "89851": [["Jonadi", "VV"], ["San Costantino Calabro", "VV"], ["Nao", "VV"], ["Francica", "VV"]], - "89852": [["Mileto", "VV"], ["Paravati", "VV"], ["San Giovanni", "VV"], ["Comparni", "VV"]], - "89853": [["San Gregorio D'Ippona", "VV"]], - "89861": [["Tropea", "VV"], ["Parghelia", "VV"], ["Fitili", "VV"]], - "89862": [["Drapia", "VV"], ["Gasponi", "VV"], ["Caria", "VV"], ["Brattiro'", "VV"]], - "89863": [["Coccorino", "VV"], ["Joppolo", "VV"], ["Caroniti", "VV"]], - "89864": [["Panaia", "VV"], ["Spilinga", "VV"]], - "89866": [ - ["Barbalaconi", "VV"], - ["San Nicolo' Di Ricadi", "VV"], - ["Santa Domenica Ricadi", "VV"], - ["San Nicolo'", "VV"], - ["Santa Domenica", "VV"], - ["Lampazzone", "VV"], - ["Ricadi", "VV"], - ], - "89867": [["Zaccanopoli", "VV"], ["Zungri", "VV"]], - "89868": [["Zambrone", "VV"], ["Daffina'", "VV"], ["San Giovanni Di Zambrone", "VV"]], - "89900": [ - ["Longobardi", "VV"], - ["Vibo Marina", "VV"], - ["Vena Superiore", "VV"], - ["Porto Salvo", "VV"], - ["Vena", "VV"], - ["Vibo Valentia Marina", "VV"], - ["Piscopio", "VV"], - ["Vibo Valentia", "VV"], - ["Triparni", "VV"], - ], - "83010": [ - ["Grottolella", "AV"], - ["Capriglia Irpina", "AV"], - ["Torrioni", "AV"], - ["Summonte", "AV"], - ["Tufo", "AV"], - ["Starze", "AV"], - ["Sant'Angelo A Scala", "AV"], - ["San Felice", "AV"], - ["Chianche", "AV"], - ["Starze Di Summonte", "AV"], - ["Petruro Irpino", "AV"], - ], - "83011": [["Altavilla Irpina", "AV"]], - "83012": [["Cervinara", "AV"], ["Trescine", "AV"], ["Ioffredo", "AV"]], - "83013": [ - ["Santuario Di Montevergine", "AV"], - ["Mercogliano", "AV"], - ["Torelli", "AV"], - ["Torelli Di Mercogliano", "AV"], - ["Torrette", "AV"], - ], - "83014": [["Ospedaletto D'Alpinolo", "AV"]], - "83015": [["Pietrastornina", "AV"], ["Ciardelli Inferiore", "AV"]], - "83016": [["Tufara Valle", "AV"], ["Roccabascerana", "AV"], ["Squillani", "AV"], ["Cassano Caudino", "AV"]], - "83017": [["Ferrari Di Cervinara", "AV"], ["Rotondi", "AV"]], - "83018": [["San Martino Valle Caudina", "AV"]], - "83020": [ - ["Tavernola San Felice", "AV"], - ["Santa Lucia Di Serino", "AV"], - ["Domicella", "AV"], - ["Petruro", "AV"], - ["Quadrelle", "AV"], - ["Celzi", "AV"], - ["Pago Del Vallo Di Lauro", "AV"], - ["Forino", "AV"], - ["Cesinali", "AV"], - ["Aiello Del Sabato", "AV"], - ["San Michele Di Serino", "AV"], - ["Taurano", "AV"], - ["Contrada", "AV"], - ["Moschiano", "AV"], - ["Sperone", "AV"], - ["Casola", "AV"], - ["Marzano Di Nola", "AV"], - ["Quindici", "AV"], - ["Sirignano", "AV"], - ], - "83021": [["Avella", "AV"]], - "83022": [["Baiano", "AV"]], - "83023": [["Lauro", "AV"], ["Fontenovella", "AV"], ["Migliano", "AV"]], - "83024": [["Monteforte Irpino", "AV"], ["Molinelle", "AV"]], - "83025": [ - ["Borgo Di Montoro Inferiore", "AV"], - ["Montoro", "AV"], - ["Preturo", "AV"], - ["Aterrana", "AV"], - ["Caliano", "AV"], - ["Torchiati", "AV"], - ["Piazza Di Pandola", "AV"], - ["Figlioli", "AV"], - ["Borgo", "AV"], - ["Piano", "AV"], - ["San Pietro", "AV"], - ["Banzano", "AV"], - ["Misciano", "AV"], - ["Montoro Superiore", "AV"], - ["Montoro Inferiore", "AV"], - ], - "83026": [["San Pietro Di Montoro Superiore", "AV"], ["Banzano Di Montoro Superiore", "AV"]], - "83027": [["Mugnano Del Cardinale", "AV"]], - "83028": [ - ["Serino", "AV"], - ["Sala", "AV"], - ["San Sossio Di Serino", "AV"], - ["Canale", "AV"], - ["San Biagio", "AV"], - ["Ferrari Stazione Serino", "AV"], - ], - "83029": [["Sant'Andrea Apostolo", "AV"], ["Sant'Agata Irpina", "AV"], ["Solofra", "AV"]], - "83030": [ - ["Savignano Irpino", "AV"], - ["San Barbato", "AV"], - ["Venticano", "AV"], - ["Campanarello", "AV"], - ["Montefredane", "AV"], - ["Lapio", "AV"], - ["Zungoli", "AV"], - ["Prata Di Principato Ultra", "AV"], - ["Melito Irpino", "AV"], - ["Montefusco", "AV"], - ["Dentecane", "AV"], - ["Santa Paolina", "AV"], - ["Manocalzati", "AV"], - ["Arcella", "AV"], - ["Serra", "AV"], - ["Pietradefusi", "AV"], - ["Sant'Angelo A Cancelli", "AV"], - ["Torre Le Nocelle", "AV"], - ["Montaguto", "AV"], - ["Greci", "AV"], - ["Montefalcione", "AV"], - ["Sant'Elena Irpina", "AV"], - ["Savignano Stazione", "AV"], - ["Castello Del Lago", "AV"], - ["Taurasi", "AV"], - ["Villanova Del Battista", "AV"], - ], - "83031": [ - ["Ariano Irpino Stazione", "AV"], - ["Palazzisi", "AV"], - ["Ariano Irpino", "AV"], - ["La Manna", "AV"], - ["Ariano Scalo", "AV"], - ["Orneta", "AV"], - ], - "83032": [["Morroni", "AV"], ["Bonito", "AV"]], - "83034": [["Casalbore", "AV"]], - "83035": [["Grottaminarda", "AV"], ["Carpignano", "AV"]], - "83036": [["Calore", "AV"], ["Pianopantano", "AV"], ["Mirabella Eclano", "AV"], ["Passo Di Mirabella", "AV"]], - "83037": [["Montecalvo Irpino", "AV"]], - "83038": [["Montemiletto", "AV"], ["Montaperto", "AV"]], - "83039": [ - ["Serra", "AV"], - ["Pratola Serra", "AV"], - ["San Michele Di Pratola Serra", "AV"], - ["Serra Di Pratola Serra", "AV"], - ["San Michele Di Pratola", "AV"], - ], - "83040": [ - ["Cassano Irpino", "AV"], - ["Castelvetere Sul Calore", "AV"], - ["Fontanarosa", "AV"], - ["Carife", "AV"], - ["Alvano", "AV"], - ["Materdomini", "AV"], - ["Chiusano Di San Domenico", "AV"], - ["Andretta", "AV"], - ["Castelfranci", "AV"], - ["Castel Baronia", "AV"], - ["Mattinella", "AV"], - ["Cairano", "AV"], - ["Gesualdo", "AV"], - ["Conza Della Campania", "AV"], - ["Guardia Lombardi", "AV"], - ["Luogosano", "AV"], - ["Pila Ai Piani", "AV"], - ["Quaglietta", "AV"], - ["Frigento", "AV"], - ["Flumeri", "AV"], - ["Calabritto", "AV"], - ["Montemarano", "AV"], - ["Caposele", "AV"], - ["Morra De Sanctis", "AV"], - ["Candida", "AV"], - ["Pagliara", "AV"], - ], - "83041": [["Aquilonia", "AV"]], - "83042": [["Atripalda", "AV"]], - "83043": [["Laceno", "AV"], ["Villaggio Laceno", "AV"], ["Bagnoli Irpino", "AV"]], - "83044": [["Piano Regolatore", "AV"], ["Bisaccia Nuova", "AV"], ["Bisaccia", "AV"]], - "83045": [["Calitri", "AV"]], - "83046": [["Lacedonia", "AV"]], - "83047": [["Lioni", "AV"]], - "83048": [["Sorbo Di Montella", "AV"], ["Fontana Di Montella", "AV"], ["Montella", "AV"]], - "83049": [["Monteverde", "AV"]], - "83050": [ - ["Rocca San Felice", "AV"], - ["Volturara Irpina", "AV"], - ["Sant'Angelo All'Esca", "AV"], - ["San Mango Sul Calore", "AV"], - ["Parolise", "AV"], - ["San Potito Ultra", "AV"], - ["Sorbo Serpico", "AV"], - ["Santo Stefano Del Sole", "AV"], - ["Scampitella", "AV"], - ["San Sossio Baronia", "AV"], - ["Salza Irpina", "AV"], - ["Villamaina", "AV"], - ["San Nicola Baronia", "AV"], - ["Vallesaccarda", "AV"], - ["Senerchia", "AV"], - ], - "83051": [["Ponteromito", "AV"], ["Nusco", "AV"]], - "83052": [["Paternopoli", "AV"]], - "83053": [["Sant'Andrea Di Conza", "AV"]], - "83054": [["Sant'Angelo Dei Lombardi", "AV"], ["San Vito", "AV"], ["San Vito Dei Lombardi", "AV"]], - "83055": [["Sturno", "AV"]], - "83056": [["Teora", "AV"]], - "83057": [["Torella Dei Lombardi", "AV"]], - "83058": [["Trevico", "AV"], ["Molini", "AV"]], - "83059": [["Vallata", "AV"]], - "83100": [["Avellino", "AV"], ["Valle Ponticelli", "AV"], ["Bellizzi Irpino", "AV"], ["Picarelli", "AV"]], - "82010": [ - ["Moiano", "BN"], - ["San Giovanni Di Ceppaloni", "BN"], - ["Ripabianca", "BN"], - ["Beltiglio", "BN"], - ["San Nicola Manfredi", "BN"], - ["Perrillo", "BN"], - ["Iannassi", "BN"], - ["Bosco Perrotta", "BN"], - ["Motta", "BN"], - ["Bucciano", "BN"], - ["San Martino Sannita", "BN"], - ["Maccoli", "BN"], - ["Beltiglio Di Ceppaloni", "BN"], - ["Luzzano", "BN"], - ["Bagnara", "BN"], - ["Arpaise", "BN"], - ["Pastene", "BN"], - ["Sant'Angelo A Cupolo", "BN"], - ["Montorsi", "BN"], - ["Monterocchetta", "BN"], - ["Terranova", "BN"], - ["Terranova D'Arpaise", "BN"], - ["Pagliara", "BN"], - ["Ripabianca Tressanti", "BN"], - ["Ceppaloni", "BN"], - ["Cavuoti", "BN"], - ["San Leucio Del Sannio", "BN"], - ], - "82011": [["Forchia", "BN"], ["Arpaia", "BN"], ["Paolisi", "BN"], ["Airola", "BN"]], - "82013": [["Bonea", "BN"]], - "82015": [["Durazzano", "BN"]], - "82016": [["Cirignano", "BN"], ["Varoni", "BN"], ["Montesarchio", "BN"]], - "82017": [["Pannarano", "BN"]], - "82018": [ - ["San Giovanni Di San Giorgio Del Sannio", "BN"], - ["Calvi", "BN"], - ["Cubante", "BN"], - ["San Giorgio Del Sannio", "BN"], - ["San Nazzaro", "BN"], - ], - "82019": [["Bagnoli", "BN"], ["Faggiano", "BN"], ["Sant'Agata De' Goti", "BN"], ["Laiano", "BN"]], - "82020": [ - ["San Giorgio La Molara", "BN"], - ["Ginestra Degli Schiavoni", "BN"], - ["Pesco Sannita", "BN"], - ["Circello", "BN"], - ["Santa Croce Del Sannio", "BN"], - ["Paduli", "BN"], - ["Campolattaro", "BN"], - ["Fragneto L'Abate", "BN"], - ["Pago Veiano", "BN"], - ["Fragneto Monforte", "BN"], - ["Reino", "BN"], - ["Pietrelcina", "BN"], - ["Baselice", "BN"], - ["Foiano Di Val Fortore", "BN"], - ["Molinara", "BN"], - ["Buonalbergo", "BN"], - ], - "82021": [["Apice Nuovo", "BN"], ["Apice", "BN"], ["Sant'Arcangelo Trimonte", "BN"]], - "82022": [["Castelfranco In Miscano", "BN"]], - "82023": [["Castelvetere In Val Fortore", "BN"]], - "82024": [["Colle Sannita", "BN"], ["Castelpagano", "BN"], ["Decorata", "BN"]], - "82025": [["Montefalcone Di Val Fortore", "BN"]], - "82026": [["Sassinoro", "BN"], ["Morcone", "BN"], ["Cuffiano", "BN"]], - "82027": [["Giallonardo", "BN"], ["Casalduni", "BN"], ["Pontelandolfo", "BN"]], - "82028": [["San Bartolomeo In Galdo", "BN"]], - "82029": [["San Marco Dei Cavoti", "BN"]], - "82030": [ - ["Torrecuso", "BN"], - ["Pietraroja", "BN"], - ["Limatola", "BN"], - ["Ponte", "BN"], - ["Melizzano", "BN"], - ["Dugenta", "BN"], - ["Ave Gratia Plena", "BN"], - ["Foglianise", "BN"], - ["Castelpoto", "BN"], - ["Paupisi", "BN"], - ["Campoli Del Monte Taburno", "BN"], - ["Biancano", "BN"], - ["Massa", "BN"], - ["Apollosa", "BN"], - ["Giardoni", "BN"], - ["San Lorenzello", "BN"], - ["Frasso Telesino", "BN"], - ["San Salvatore Telesino", "BN"], - ["Tocco Caudio", "BN"], - ["Cautano", "BN"], - ["Faicchio", "BN"], - ["Cacciano", "BN"], - ["Torello", "BN"], - ["Puglianello", "BN"], - ["Torello Di Melizzano", "BN"], - ], - "82031": [["Amorosi", "BN"]], - "82032": [["Cerreto Sannita", "BN"]], - "82033": [["Civitella Licinio", "BN"], ["Cusano Mutri", "BN"]], - "82034": [["San Lupo", "BN"], ["Guardia Sanframondi", "BN"], ["San Lorenzo Maggiore", "BN"]], - "82036": [["Solopaca", "BN"]], - "82037": [["Telese Terme", "BN"], ["Castelvenere", "BN"]], - "82038": [["Vitulano", "BN"]], - "82100": [["Benevento", "BN"], ["Perrillo", "BN"], ["Pastene", "BN"]], - "81010": [ - ["Letino", "CE"], - ["Torcino", "CE"], - ["Squille", "CE"], - ["Latina Di Baia", "CE"], - ["Gioia Sannitica", "CE"], - ["Dragoni", "CE"], - ["Carattano", "CE"], - ["Gallo Matese", "CE"], - ["Calvisi", "CE"], - ["Baia E Latina", "CE"], - ["San Giorgio", "CE"], - ["Ailano", "CE"], - ["Vallelunga", "CE"], - ["Ciorlano", "CE"], - ["Valle Agricola", "CE"], - ["Pratella", "CE"], - ["Alvignanello", "CE"], - ["Castel Campagnano", "CE"], - ["Prata Sannita", "CE"], - ["San Gregorio Matese", "CE"], - ["Ruviano", "CE"], - ], - "81011": [["Totari", "CE"], ["Alife", "CE"]], - "81012": [["Alvignano", "CE"], ["Marciano Freddo", "CE"]], - "81013": [ - ["Villa Santa Croce", "CE"], - ["Piana Di Monte Verna", "CE"], - ["San Giovanni E Paolo", "CE"], - ["Caiazzo", "CE"], - ], - "81014": [["Fontegreca", "CE"], ["Capriati A Volturno", "CE"]], - "81016": [ - ["Piedimonte D'Alife", "CE"], - ["San Potito Sannitico", "CE"], - ["Castello Del Matese", "CE"], - ["Piedimonte Matese", "CE"], - ["Sepicciano", "CE"], - ], - "81017": [["Quattroventi", "CE"], ["Sant'Angelo D'Alife", "CE"], ["Raviscanina", "CE"]], - "81020": [ - ["Castel Morrone", "CE"], - ["Capodrise", "CE"], - ["Casapulla", "CE"], - ["San Nicola La Strada", "CE"], - ["Valle Di Maddaloni", "CE"], - ["San Marco Evangelista", "CE"], - ["Annunziata", "CE"], - ["Recale", "CE"], - ], - "81021": [["Arienzo", "CE"]], - "81022": [["Casagiove", "CE"]], - "81023": [["Messercola", "CE"], ["Cervino", "CE"], ["Forchia Di Cervino", "CE"]], - "81024": [["Grotticella", "CE"], ["Montedecoro", "CE"], ["Maddaloni", "CE"]], - "81025": [["Cantone", "CE"], ["Marcianise", "CE"]], - "81027": [ - ["San Felice A Cancello", "CE"], - ["Cancello Di Ferrovia", "CE"], - ["Cave", "CE"], - ["San Marco Trotti", "CE"], - ["Cave Di San Felice", "CE"], - ["Polvica", "CE"], - ], - "81028": [["Santa Maria A Vico", "CE"]], - "81030": [ - ["Arnone", "CE"], - ["Orta Di Atella", "CE"], - ["Teverola", "CE"], - ["Villa Di Briano", "CE"], - ["Cancello Ed Arnone", "CE"], - ["Baia Domizia", "CE"], - ["Carinola", "CE"], - ["Frignano", "CE"], - ["Castel Volturno", "CE"], - ["Cesa", "CE"], - ["Casale Di Carinola", "CE"], - ["Sant'Arpino", "CE"], - ["Succivo", "CE"], - ["Villaggio Coppola Pinetamare", "CE"], - ["Casale", "CE"], - ["Cellole", "CE"], - ["Lusciano", "CE"], - ["Casaluce", "CE"], - ["Nocelleto", "CE"], - ["Cancello", "CE"], - ["Gricignano Di Aversa", "CE"], - ["Parete", "CE"], - ["Casanova", "CE"], - ["Falciano Del Massico", "CE"], - ["San Marcellino", "CE"], - ["Casapesenna", "CE"], - ], - "81031": [["Aversa", "CE"]], - "81032": [["Carinaro", "CE"]], - "81033": [["Casal Di Principe", "CE"]], - "81034": [["Mondragone", "CE"]], - "81035": [ - ["Gallo", "CE"], - ["Ameglio", "CE"], - ["Roccamonfina", "CE"], - ["Marzano Appio", "CE"], - ["Fontanafredda", "CE"], - ["Campagnola", "CE"], - ["Filorsi", "CE"], - ["Garofali", "CE"], - ["Grottola", "CE"], - ], - "81036": [["San Cipriano D'Aversa", "CE"]], - "81037": [ - ["Cupa E Fasani", "CE"], - ["Corigliano", "CE"], - ["Piedimonte Di Sessa Aurunca", "CE"], - ["Santa Maria Valongo", "CE"], - ["San Castrese", "CE"], - ["Sant'Agata", "CE"], - ["Carano", "CE"], - ["Fasani", "CE"], - ["San Martino", "CE"], - ["San Carlo", "CE"], - ["Lauro Di Sessa Aurunca", "CE"], - ["San Carlo Di Sessa Aurunca", "CE"], - ["Fontanaradina", "CE"], - ["San Martino Di Sessa Aurunca", "CE"], - ["Avezzano Sorbello", "CE"], - ["Sessa Aurunca", "CE"], - ["Carano Di Sessa Aurunca", "CE"], - ["Piedimonte", "CE"], - ["Cupa", "CE"], - ["Valogno", "CE"], - ["Cascano", "CE"], - ], - "81038": [["Trentola Ducenta", "CE"]], - "81039": [["Bonifica Villa Literno", "CE"], ["Villa Literno", "CE"]], - "81040": [ - ["Rocca D'Evandro", "CE"], - ["Cisterna", "CE"], - ["Maiorano Di Monte", "CE"], - ["Castel Di Sasso", "CE"], - ["Treglia", "CE"], - ["Formicola", "CE"], - ["Curti", "CE"], - ["Bivio Mortola", "CE"], - ["Pontelatone", "CE"], - ["Pietravairano", "CE"], - ["Cocuruzzo", "CE"], - ["Camino", "CE"], - ["Liberi", "CE"], - ["San Felice A Pietravairano", "CE"], - ["San Felice", "CE"], - ["Cisterna Di Castel Di Sasso", "CE"], - ["Borgo Sant'Antonio Abate", "CE"], - ], - "81041": [["Vitulazio", "CE"], ["Bellona", "CE"]], - "81042": [ - ["Calvi Risorta", "CE"], - ["Petrulo", "CE"], - ["Pozzillo", "CE"], - ["Val D'Assano", "CE"], - ["Rocchetta E Croce", "CE"], - ["Giano Vetusto", "CE"], - ["Petrullo", "CE"], - ["Visciano", "CE"], - ], - "81043": [["Capua", "CE"], ["Sant'Angelo In Formis", "CE"]], - "81044": [ - ["San Clemente", "CE"], - ["Tora", "CE"], - ["Piccilli", "CE"], - ["Orchi", "CE"], - ["Conca Della Campania", "CE"], - ["Sipicciano", "CE"], - ["Galluccio", "CE"], - ["Tora E Piccilli", "CE"], - ["Cave", "CE"], - ["Vaglie", "CE"], - ], - "81046": [["Grazzanise", "CE"], ["Brezza", "CE"], ["Borgo Rurale Appio", "CE"], ["Borgo Appio", "CE"]], - "81047": [["Macerata Campania", "CE"], ["Caturano", "CE"]], - "81049": [["Mignano Monte Lungo", "CE"], ["San Pietro Infine", "CE"], ["Caspoli", "CE"]], - "81050": [ - ["Portico Di Caserta", "CE"], - ["San Felice", "CE"], - ["Musicile", "CE"], - ["Santa Maria La Fossa", "CE"], - ["Montanaro", "CE"], - ["Pastorano", "CE"], - ["Francolise", "CE"], - ["Ciamprisco", "CE"], - ["Sant'Andrea Del Pizzone", "CE"], - ["Pantuliano", "CE"], - ["Camigliano", "CE"], - ["San Tammaro", "CE"], - ["Presenzano", "CE"], - ], - "81051": [["Roccaromana", "CE"], ["Statigliano", "CE"], ["Pietramelara", "CE"]], - "81052": [["Pignataro Maggiore", "CE"]], - "81053": [["Riardo", "CE"]], - "81054": [["San Prisco", "CE"]], - "81055": [["Santa Maria Capua Vetere", "CE"]], - "81056": [["Sparanise", "CE"]], - "81057": [ - ["San Marco", "CE"], - ["Casale Di Teano", "CE"], - ["Furnolo", "CE"], - ["Pugliano", "CE"], - ["Casamostra", "CE"], - ["Teano", "CE"], - ["Casafredda", "CE"], - ["Versano", "CE"], - ["Fontanelle", "CE"], - ["Casi", "CE"], - ["Casale", "CE"], - ["San Giuliano", "CE"], - ], - "81058": [ - ["Vairano", "CE"], - ["Vairano Scalo", "CE"], - ["Patenora", "CE"], - ["Marzanello", "CE"], - ["Vairano Patenora", "CE"], - ], - "81059": [["Santa Lucia", "CE"], ["Caianello", "CE"], ["Vairano Stazione", "CE"], ["Montano", "CE"]], - "81100": [ - ["Casolla", "CE"], - ["Tredici", "CE"], - ["Staturano", "CE"], - ["Briano", "CE"], - ["Tuoro", "CE"], - ["Ercole", "CE"], - ["Mezzano", "CE"], - ["Caserta", "CE"], - ["Falciano", "CE"], - ["Santa Barbara", "CE"], - ["Puccianiello", "CE"], - ["Vaccheria", "CE"], - ["Centurano", "CE"], - ["San Clemente Di Caserta", "CE"], - ["Casola", "CE"], - ["San Leucio", "CE"], - ["Sala Di Caserta", "CE"], - ["San Clemente", "CE"], - ["Casertavecchia", "CE"], - ["Casola Di Caserta", "CE"], - ], - "80010": [["Scalzapecora", "NA"], ["Quarto", "NA"], ["Torretta", "NA"], ["Villaricca", "NA"]], - "80011": [["Pezzalunga", "NA"], ["Acerra", "NA"]], - "80012": [["Calvizzano", "NA"]], - "80013": [ - ["Casalnuovo Di Napoli", "NA"], - ["Tavernanova", "NA"], - ["Licignano Di Napoli", "NA"], - ["Casarea", "NA"], - ], - "80014": [["Giugliano In Campania", "NA"], ["Varcaturo", "NA"], ["Lago Patria", "NA"]], - "80016": [["Torre Piscitelli", "NA"], ["San Rocco", "NA"], ["Marano Di Napoli", "NA"]], - "80017": [["Melito Di Napoli", "NA"]], - "80018": [["Mugnano Di Napoli", "NA"]], - "80019": [["Qualiano", "NA"]], - "80020": [["Crispano", "NA"], ["Parco Delle Acacie", "NA"], ["Casavatore", "NA"], ["Frattaminore", "NA"]], - "80021": [["Afragola", "NA"]], - "80022": [["Arzano", "NA"]], - "80023": [["Pascarola", "NA"], ["Caivano", "NA"]], - "80024": [["Carditello", "NA"], ["Cardito", "NA"]], - "80025": [["Casandrino", "NA"]], - "80026": [["Arpino", "NA"], ["Casoria", "NA"]], - "80027": [["Frattamaggiore", "NA"]], - "80028": [["Grumo Nevano", "NA"]], - "80029": [["Sant'Antimo", "NA"]], - "80030": [ - ["San Vitaliano", "NA"], - ["Camposano", "NA"], - ["Cimitile", "NA"], - ["Castello Di Cisterna", "NA"], - ["Visciano", "NA"], - ["Spartimento", "NA"], - ["Gallo", "NA"], - ["Carbonara Di Nola", "NA"], - ["Comiziano", "NA"], - ["Gargani", "NA"], - ["Mariglianella", "NA"], - ["Schiava", "NA"], - ["Scisciano", "NA"], - ["Liveri", "NA"], - ["Tufino", "NA"], - ["San Paolo Bel Sito", "NA"], - ["Roccarainola", "NA"], - ], - "80031": [["Brusciano", "NA"]], - "80032": [["Casamarciano", "NA"]], - "80033": [["Cicciano", "NA"]], - "80034": [["Marigliano", "NA"], ["Faibano", "NA"], ["Lausdomini", "NA"], ["Selva", "NA"], ["Casaferro", "NA"]], - "80035": [["Nola", "NA"], ["Polvica", "NA"], ["Piazzolla", "NA"], ["Cinquevie", "NA"], ["Pollastri", "NA"]], - "80036": [["Palma Campania", "NA"], ["Vico Di Palma", "NA"], ["Vico", "NA"], ["Castello", "NA"]], - "80038": [["Pomigliano D'Arco", "NA"]], - "80039": [["Saviano", "NA"], ["Piazzolla Di Saviano", "NA"]], - "80040": [ - ["Volla", "NA"], - ["Boccia Al Mauro", "NA"], - ["San Gennaro Vesuviano", "NA"], - ["Flocco", "NA"], - ["Caravita", "NA"], - ["Terzigno", "NA"], - ["Massa Di Somma", "NA"], - ["Musci", "NA"], - ["Trecase", "NA"], - ["Poggiomarino", "NA"], - ["Cercola", "NA"], - ["San Sebastiano Al Vesuvio", "NA"], - ["Striano", "NA"], - ["Pollena Trocchia", "NA"], - ], - "80041": [["Boscoreale", "NA"], ["Marchesa", "NA"]], - "80042": [["Boscotrecase", "NA"]], - "80044": [["Ottaviano", "NA"], ["San Gennarello", "NA"]], - "80045": [["Mariconda", "NA"], ["Messigno", "NA"], ["Pompei", "NA"], ["Pompei Scavi", "NA"]], - "80046": [["San Giorgio A Cremano", "NA"]], - "80047": [["Santa Maria La Scala", "NA"], ["San Giuseppe Vesuviano", "NA"], ["Casilli", "NA"]], - "80048": [ - ["Madonna Dell'Arco", "NA"], - ["Starza Vecchia", "NA"], - ["Ponte Di Ferro", "NA"], - ["Sant'Anastasia", "NA"], - ], - "80049": [["Somma Vesuviana", "NA"]], - "80050": [ - ["Santa Maria La Carita'", "NA"], - ["Pimonte", "NA"], - ["Piazza Roma", "NA"], - ["Tralia", "NA"], - ["Franche", "NA"], - ["Piazza", "NA"], - ["Casola Di Napoli", "NA"], - ["San Nicola", "NA"], - ["Lettere", "NA"], - ], - "80051": [["Agerola", "NA"], ["Pianillo", "NA"], ["San Lazzaro Di Agerola", "NA"], ["Bomerano", "NA"]], - "80053": [ - ["Castellammare Di Stabia", "NA"], - ["Scanzano", "NA"], - ["Ponte Della Persica", "NA"], - ["Quisisana", "NA"], - ], - "80054": [["Caprile", "NA"], ["Gragnano", "NA"]], - "80055": [["Portici", "NA"], ["Bellavista", "NA"]], - "80056": [["Ercolano", "NA"], ["Resina", "NA"]], - "80057": [["Sant'Antonio Abate", "NA"]], - "80058": [["Torre Annunziata", "NA"]], - "80059": [["Torre Del Greco", "NA"], ["Leopardi", "NA"], ["Santa Maria La Bruna", "NA"]], - "80060": [["Massaquano", "NA"], ["Monte Faito", "NA"]], - "80061": [ - ["Massa Lubrense", "NA"], - ["Nerano", "NA"], - ["Sant'Agata Sui Due Golfi", "NA"], - ["Termini", "NA"], - ["Monticchio Di Massa Lubrense", "NA"], - ], - "80062": [["Meta", "NA"]], - "80063": [["Piano Di Sorrento", "NA"]], - "80065": [["Sant'Agnello", "NA"], ["Colli Di Fontanelle", "NA"]], - "80066": [["Seiano", "NA"], ["Fornacelle", "NA"], ["Montechiaro", "NA"], ["Fornacella", "NA"]], - "80067": [["Priora", "NA"], ["Capo Di Sorrento", "NA"], ["Sorrento", "NA"]], - "80069": [["Moiano", "NA"], ["Vico Equense", "NA"], ["Villaggio Monte Faito", "NA"]], - "80070": [ - ["Buonopane", "NA"], - ["Succhivo", "NA"], - ["Fontana", "NA"], - ["Miliscola", "NA"], - ["Testaccio D'Ischia", "NA"], - ["Barano D'Ischia", "NA"], - ["Serrara", "NA"], - ["Fusaro", "NA"], - ["Torregaveta", "NA"], - ["Bacoli", "NA"], - ["Capo Miseno", "NA"], - ["Miseno", "NA"], - ["Sant'Angelo", "NA"], - ["Serrara Fontana", "NA"], - ["Monte Di Procida", "NA"], - ["Cappella", "NA"], - ["Cuma", "NA"], - ["Baia", "NA"], - ], - "80071": [["Anacapri", "NA"]], - "80073": [["Marina Grande Di Capri", "NA"], ["Capri", "NA"]], - "80074": [["Casamicciola Terme", "NA"]], - "80075": [["Forio", "NA"], ["Panza", "NA"], ["Monterone", "NA"]], - "80076": [["Lacco Ameno", "NA"]], - "80077": [ - ["Ischia San Michele", "NA"], - ["Piedimonte D'Ischia", "NA"], - ["Sant'Antuono D'Ischia", "NA"], - ["Ischia", "NA"], - ["Ischia Ponte", "NA"], - ["Ischia Porto", "NA"], - ], - "80078": [ - ["Pozzuoli", "NA"], - ["Lucrino", "NA"], - ["Lago Averno", "NA"], - ["Monterusciello", "NA"], - ["Arco Felice", "NA"], - ["Cappuccini", "NA"], - ["Lido Di Licola", "NA"], - ["Licola", "NA"], - ], - "80079": [["Procida", "NA"]], - "80100": [["Napoli", "NA"]], - "80121": [["Napoli", "NA"]], - "80122": [["Napoli", "NA"], ["Chiaia", "NA"]], - "80123": [["Napoli", "NA"]], - "80124": [["Napoli", "NA"], ["Bagnoli", "NA"]], - "80125": [["Napoli", "NA"], ["Agnano", "NA"]], - "80126": [["Pianura", "NA"], ["Napoli", "NA"], ["Soccavo", "NA"]], - "80127": [["Vomero", "NA"], ["Napoli", "NA"]], - "80128": [["Napoli", "NA"]], - "80129": [["Napoli", "NA"]], - "80131": [["Napoli", "NA"], ["Miano", "NA"], ["Arenella", "NA"], ["Cappella Cangiani", "NA"]], - "80132": [["Napoli", "NA"]], - "80133": [["Napoli", "NA"]], - "80134": [["Napoli", "NA"]], - "80135": [["Napoli", "NA"]], - "80136": [["Napoli", "NA"]], - "80137": [["Napoli", "NA"]], - "80138": [["Napoli", "NA"]], - "80139": [["Napoli", "NA"]], - "80141": [["Napoli", "NA"]], - "80142": [["Napoli", "NA"]], - "80143": [["Napoli", "NA"]], - "80144": [["Napoli", "NA"], ["San Pietro A Patierno", "NA"], ["Secondigliano", "NA"]], - "80145": [ - ["Marianella", "NA"], - ["Chiaiano Ed Uniti", "NA"], - ["Scampia", "NA"], - ["Miano", "NA"], - ["Piscinola", "NA"], - ["Napoli", "NA"], - ], - "80146": [["Napoli", "NA"], ["San Giovanni A Teduccio", "NA"]], - "80147": [["Barra", "NA"], ["Ponticelli", "NA"], ["Napoli", "NA"]], - "84010": [ - ["Atrani", "SA"], - ["Ravello", "SA"], - ["Cetara", "SA"], - ["San Lorenzo Di Sant'Egidio", "SA"], - ["Minori", "SA"], - ["Corbara", "SA"], - ["Tramonti", "SA"], - ["San Valentino Torio", "SA"], - ["Praiano", "SA"], - ["Furore", "SA"], - ["Campinola", "SA"], - ["Conca Dei Marini", "SA"], - ["San Marzano Sul Sarno", "SA"], - ["Pontone", "SA"], - ["San Michele", "SA"], - ["Scala", "SA"], - ["Erchie", "SA"], - ["Maiori", "SA"], - ["Sant'Egidio Del Monte Albino", "SA"], - ], - "84011": [ - ["Pastena", "SA"], - ["Vettica Pastena", "SA"], - ["Pogerola", "SA"], - ["Pogerola Di Amalfi", "SA"], - ["Lone", "SA"], - ["Amalfi", "SA"], - ], - "84012": [["Angri", "SA"]], - "84013": [ - ["Corpo Di Cava", "SA"], - ["Passiano", "SA"], - ["San Pietro Di Cava", "SA"], - ["Cava De' Tirreni", "SA"], - ["Badia Di Cava De' Tirreni", "SA"], - ["Pregiato", "SA"], - ["Arcara", "SA"], - ["Santa Lucia Di Cava", "SA"], - ["Dupino", "SA"], - ["Alessia", "SA"], - ["Marini", "SA"], - ], - "84014": [["Nocera Inferiore", "SA"]], - "84015": [["Nocera Superiore", "SA"], ["Materdomini Di Nocera", "SA"]], - "84016": [["Pagani", "SA"]], - "84017": [["Positano", "SA"], ["Montepertuso", "SA"]], - "84018": [["San Pietro Di Scafati", "SA"], ["Scafati", "SA"]], - "84019": [ - ["Benincasa", "SA"], - ["Raito", "SA"], - ["Vietri Sul Mare", "SA"], - ["Dragonea", "SA"], - ["Marina Di Vietri", "SA"], - ["Molina Di Vietri Sul Mare", "SA"], - ["Molina", "SA"], - ], - "84020": [ - ["Romagnano Al Monte", "SA"], - ["Controne", "SA"], - ["Santomenna", "SA"], - ["Ottati", "SA"], - ["Valva", "SA"], - ["Colliano", "SA"], - ["Bivio Palomonte", "SA"], - ["Aquara", "SA"], - ["Perrazze", "SA"], - ["Bellosguardo", "SA"], - ["Ricigliano", "SA"], - ["Quadrivio Di Campagna", "SA"], - ["Palomonte", "SA"], - ["Serra Di Castelcivita", "SA"], - ["Salvitelle", "SA"], - ["San Gregorio Magno", "SA"], - ["Laviano", "SA"], - ["Roscigno", "SA"], - ["Castelcivita", "SA"], - ["Corleto Monforte", "SA"], - ["Oliveto Citra", "SA"], - ["Castelnuovo Di Conza", "SA"], - ["Petina", "SA"], - ["Centro Urbano", "SA"], - ], - "84021": [["Tufariello", "SA"], ["Buccino", "SA"], ["Buccino Stazione", "SA"]], - "84022": [["Serradarce", "SA"], ["Puglietta", "SA"], ["Quadrivio", "SA"], ["Campagna", "SA"]], - "84023": [["Persano", "SA"]], - "84024": [["Bagni Di Contursi", "SA"], ["Contursi Terme", "SA"]], - "84025": [ - ["Bivio Santa Cecilia", "SA"], - ["Santa Cecilia Di Eboli", "SA"], - ["Corno D'Oro", "SA"], - ["Eboli", "SA"], - ], - "84026": [["Postiglione", "SA"]], - "84027": [["Sant'Angelo A Fasanella", "SA"]], - "84028": [["Borgo San Lazzaro", "SA"], ["Serre", "SA"]], - "84029": [ - ["Sicignano Degli Alburni", "SA"], - ["Galdo Degli Alburni", "SA"], - ["Sicignano Degli Alburni Stazione", "SA"], - ["Castelluccio Cosentino", "SA"], - ["Zuppino", "SA"], - ["Scorzo", "SA"], - ], - "84030": [ - ["Torraca", "SA"], - ["Sanza", "SA"], - ["Casaletto Spartano", "SA"], - ["Atena Lucana", "SA"], - ["Caselle In Pittari", "SA"], - ["Monte San Giacomo", "SA"], - ["Sicili'", "SA"], - ["Pertosa", "SA"], - ["Caggiano", "SA"], - ["Taverne", "SA"], - ["Tortorella", "SA"], - ["Morigerati", "SA"], - ["San Rufo", "SA"], - ["San Pietro Al Tanagro", "SA"], - ["Battaglia", "SA"], - ["Casalbuono", "SA"], - ["Atena Lucana Scalo", "SA"], - ], - "84031": [["Auletta", "SA"]], - "84032": [["Buonabitacolo", "SA"]], - "84033": [ - ["Prato Comune", "SA"], - ["Montesano Sulla Marcellana", "SA"], - ["Tardiano", "SA"], - ["Montesano Scalo", "SA"], - ["Arenabianca", "SA"], - ], - "84034": [["Padula Scalo", "SA"], ["Padula", "SA"]], - "84035": [["Polla", "SA"]], - "84036": [["Sala Consilina", "SA"], ["Trinita'", "SA"]], - "84037": [["Sant'Arsenio", "SA"]], - "84038": [["Sassano", "SA"], ["Caiazzano", "SA"], ["Silla", "SA"]], - "84039": [ - ["Pantano Di Teggiano", "SA"], - ["Prato Perillo", "SA"], - ["Teggiano", "SA"], - ["San Marco Di Teggiano", "SA"], - ], - "84040": [ - ["Poderia", "SA"], - ["Velina", "SA"], - ["Cannalonga", "SA"], - ["Castelnuovo Vallo Stazione", "SA"], - ["Celle Di Bulgheria", "SA"], - ["Casal Velino", "SA"], - ["Castelnuovo Cilento", "SA"], - ["Marina Di Casal Velino", "SA"], - ["Alfano", "SA"], - ["Ponte", "SA"], - ["Campora", "SA"], - ["Acquavella", "SA"], - ["Casal Velino Marina", "SA"], - ], - "84042": [["Acerno", "SA"]], - "84043": [["Agropoli Stazione", "SA"], ["Agropoli", "SA"]], - "84044": [["Matinella", "SA"], ["Albanella", "SA"]], - "84045": [["Borgo Carillia", "SA"], ["Carillia", "SA"], ["Altavilla Silentina", "SA"], ["Cerrelli", "SA"]], - "84046": [ - ["Marina Di Ascea", "SA"], - ["Terradura Di Ascea", "SA"], - ["Terradura", "SA"], - ["Catona", "SA"], - ["Catona Di Ascea", "SA"], - ["Ascea", "SA"], - ["Mandia Di Ascea", "SA"], - ["Mandia", "SA"], - ], - "84047": [ - ["Paestum", "SA"], - ["Capaccio Scalo", "SA"], - ["Vuccolo Di Maiorano", "SA"], - ["Ponte Barizzo", "SA"], - ["Capaccio", "SA"], - ["Gromola", "SA"], - ["Laura", "SA"], - ["Cafasso", "SA"], - ["Vannullo", "SA"], - ["Borgo Nuovo", "SA"], - ["Torre Di Paestum", "SA"], - ["Licinella", "SA"], - ["Santa Venere", "SA"], - ["Rettifilo", "SA"], - ], - "84048": [ - ["San Marco", "SA"], - ["Castellabate", "SA"], - ["Santa Maria", "SA"], - ["Santa Maria Di Castellabate", "SA"], - ["Ogliastro Marina", "SA"], - ], - "84049": [["Castel San Lorenzo", "SA"]], - "84050": [ - ["Laurito", "SA"], - ["Capitello", "SA"], - ["Magliano Vetere", "SA"], - ["Giungano", "SA"], - ["Laureana Cilento", "SA"], - ["Lustra", "SA"], - ["Matonti", "SA"], - ["Ispani", "SA"], - ["Cuccaro Vetere", "SA"], - ["Capizzo", "SA"], - ["Magliano Nuovo", "SA"], - ["Futani", "SA"], - ["Sorvaro", "SA"], - ], - "84051": [ - ["San Severino", "SA"], - ["San Severino Di Centola", "SA"], - ["Foria", "SA"], - ["Centola", "SA"], - ["San Nicola", "SA"], - ["San Nicola Di Centola", "SA"], - ["Palinuro", "SA"], - ], - "84052": [ - ["San Biase", "SA"], - ["Ceraso", "SA"], - ["Santa Barbara", "SA"], - ["San Sumino", "SA"], - ["Massascusa", "SA"], - ], - "84053": [["Monte Cicerale", "SA"], ["Cicerale", "SA"]], - "84055": [["Felitto", "SA"]], - "84056": [["Cardile", "SA"], ["Gioi", "SA"]], - "84057": [["Villa Littorio", "SA"], ["Laurino", "SA"]], - "84059": [["Lentiscosa", "SA"], ["Camerota", "SA"], ["Licusati", "SA"], ["Marina Di Camerota", "SA"]], - "84060": [ - ["Vatolla", "SA"], - ["Montecorice", "SA"], - ["Prignano Cilento", "SA"], - ["Abatemarco", "SA"], - ["Massicelle", "SA"], - ["Omignano Scalo", "SA"], - ["Mercato Cilento", "SA"], - ["Novi Velia", "SA"], - ["Omignano", "SA"], - ["Acquavena", "SA"], - ["Montano Antilia", "SA"], - ["Orria", "SA"], - ["Ostigliano", "SA"], - ["Piano Vetrale", "SA"], - ["Agnone Cilento", "SA"], - ["Pellare", "SA"], - ["Case Del Conte", "SA"], - ["Omignano Stazione", "SA"], - ["Perdifumo", "SA"], - ["Roccagloriosa", "SA"], - ["Ortodonico", "SA"], - ["Fornelli", "SA"], - ["Moio Della Civitella", "SA"], - ["Perito", "SA"], - ["Monteforte Cilento", "SA"], - ], - "84061": [["Eredita", "SA"], ["Ogliastro Cilento", "SA"], ["Finocchito", "SA"]], - "84062": [ - ["Olevano Sul Tusciano", "SA"], - ["Salitto", "SA"], - ["Monticelli", "SA"], - ["Ariano", "SA"], - ["Valle", "SA"], - ], - "84065": [["Piaggine", "SA"]], - "84066": [["Pisciotta", "SA"], ["Marina Di Pisciotta", "SA"], ["Rodio", "SA"], ["Caprioli", "SA"]], - "84067": [["Santa Marina", "SA"], ["Policastro Bussentino", "SA"]], - "84068": [ - ["Galdo Cilento", "SA"], - ["Celso", "SA"], - ["Pollica", "SA"], - ["Pioppi", "SA"], - ["Acciaroli", "SA"], - ["Galdo", "SA"], - ["Cannicchio", "SA"], - ], - "84069": [["Acquaviva", "SA"], ["Carratiello", "SA"], ["Fonte", "SA"], ["Roccadaspide", "SA"], ["Serra", "SA"]], - "84070": [ - ["San Mauro La Bruca", "SA"], - ["Scario", "SA"], - ["Rofrano", "SA"], - ["Bosco", "SA"], - ["Stella Cilento", "SA"], - ["San Mauro Cilento", "SA"], - ["Trentinara", "SA"], - ["Salento", "SA"], - ["Rutino", "SA"], - ["Valle Dell'Angelo", "SA"], - ["Sacco", "SA"], - ["San Giovanni A Piro", "SA"], - ["Casalsottano", "SA"], - ["Serramezzana", "SA"], - ], - "84073": [["Sapri", "SA"]], - "84074": [ - ["San Mango Cilento", "SA"], - ["San Mango", "SA"], - ["Santa Lucia Cilento", "SA"], - ["Sessa Cilento", "SA"], - ], - "84075": [["Gorga", "SA"], ["Stio", "SA"]], - "84076": [["Copersito", "SA"], ["Copersito Cilento", "SA"], ["Torchiara", "SA"]], - "84077": [["Torre Orsaia", "SA"], ["Castel Ruggero", "SA"]], - "84078": [["Pattano", "SA"], ["Angellara", "SA"], ["Massa Della Lucania", "SA"], ["Vallo Della Lucania", "SA"]], - "84079": [["Vibonati", "SA"], ["Villammare", "SA"]], - "84080": [ - ["Capezzano Inferiore", "SA"], - ["Capezzano", "SA"], - ["Capezzano Superiore", "SA"], - ["Calvanico", "SA"], - ["Capriglia", "SA"], - ["Pellezzano", "SA"], - ["Cologna", "SA"], - ["Coperchia", "SA"], - ], - "84081": [ - ["Baronissi", "SA"], - ["Antessano", "SA"], - ["Fusara", "SA"], - ["Acquamela", "SA"], - ["Saragnano", "SA"], - ["Caprecano", "SA"], - ["Sava", "SA"], - ], - "84082": [["Manzi", "SA"], ["Bracigliano", "SA"], ["San Nazario", "SA"]], - "84083": [["Castelluccio", "SA"], ["Fimiani", "SA"], ["Castel San Giorgio", "SA"], ["Lanzara", "SA"]], - "84084": [ - ["Villa", "SA"], - ["Pizzolano", "SA"], - ["Fisciano", "SA"], - ["Settefichi", "SA"], - ["Lancusi", "SA"], - ["Bolano", "SA"], - ["Penta", "SA"], - ["Gaiano", "SA"], - ], - "84085": [ - ["Spiano", "SA"], - ["Carifi", "SA"], - ["Curteri", "SA"], - ["Sant'Angelo", "SA"], - ["Pandola", "SA"], - ["Ciorani", "SA"], - ["Torello", "SA"], - ["Piazza Del Galdo", "SA"], - ["Sant'Angelo Di Mercato San Severino", "SA"], - ["Sant'Eustachio", "SA"], - ["Monticelli", "SA"], - ["Acquarola", "SA"], - ["Mercato San Severino", "SA"], - ], - "84086": [["Casali Di Roccapiemonte", "SA"], ["Casali San Potito", "SA"], ["Roccapiemonte", "SA"]], - "84087": [["Lavorate", "SA"], ["Episcopio", "SA"], ["Sarno", "SA"]], - "84088": [["Siano", "SA"]], - "84090": [ - ["Capitignano", "SA"], - ["Prepezzano", "SA"], - ["San Mango Piemonte", "SA"], - ["Montecorvino Pugliano", "SA"], - ["Sieti", "SA"], - ["Castelpagano", "SA"], - ["Pugliano", "SA"], - ["Castiglione Del Genovesi", "SA"], - ["Giffoni Sei Casali", "SA"], - ["Santa Tecla", "SA"], - ], - "84091": [ - ["Battipaglia", "SA"], - ["Santa Lucia Di Battipaglia", "SA"], - ["Sant'Anna", "SA"], - ["Belvedere Di Battipaglia", "SA"], - ], - "84092": [["Bivio", "SA"], ["Bellizzi", "SA"]], - "84095": [ - ["Giffoni Valle Piana", "SA"], - ["Mercato", "SA"], - ["Curti", "SA"], - ["Santa Caterina", "SA"], - ["Ornito", "SA"], - ["San Giovanni", "SA"], - ], - "84096": [ - ["Montecorvino Rovella", "SA"], - ["Gauro", "SA"], - ["Macchia", "SA"], - ["San Martino Montecorvino Rovella", "SA"], - ["Lenzi", "SA"], - ], - "84098": [ - ["Pontecagnano Faiano", "SA"], - ["Pontecagnano", "SA"], - ["Magazzeno", "SA"], - ["Sant'Antonio", "SA"], - ["Corvinia", "SA"], - ["Sant'Antonio Di Pontecagnano", "SA"], - ["Faiano", "SA"], - ], - "84099": [ - ["San Cipriano Picentino", "SA"], - ["Pezzano", "SA"], - ["Campigliano", "SA"], - ["Vignale", "SA"], - ["Filetta", "SA"], - ], - "84100": [["Salerno", "SA"]], - "84121": [["Salerno", "SA"]], - "84122": [["Salerno", "SA"]], - "84123": [["Salerno", "SA"]], - "84124": [["Salerno", "SA"]], - "84125": [["Salerno", "SA"]], - "84126": [["Salerno", "SA"]], - "84127": [["Salerno", "SA"], ["Torrione Di Salerno", "SA"]], - "84128": [["Pastena Di Salerno", "SA"], ["Salerno", "SA"]], - "84129": [["Salerno", "SA"]], - "84131": [["Salerno", "SA"], ["San Leonardo", "SA"], ["Fuorni", "SA"], ["Mercatello Di Salerno", "SA"]], - "84132": [["Salerno", "SA"]], - "84133": [["Salerno", "SA"]], - "84134": [["Giovi", "SA"], ["Salerno", "SA"]], - "84135": [["Fratte", "SA"], ["Salerno", "SA"], ["Ogliara", "SA"], ["Matierno", "SA"]], - "40010": [ - ["Bentivoglio", "BO"], - ["Osteria Nuova", "BO"], - ["San Marino", "BO"], - ["Padulle", "BO"], - ["Interporto Bentivoglio", "BO"], - ["Santa Maria In Duno", "BO"], - ["Sala Bolognese", "BO"], - ], - "40011": [ - ["San Giacomo Del Martignone", "BO"], - ["Lavino Di Mezzo", "BO"], - ["Anzola Dell'Emilia", "BO"], - ["Santa Maria In Strada", "BO"], - ], - "40012": [ - ["Bargellino", "BO"], - ["Tavernelle D'Emilia", "BO"], - ["Tavernelle Emilia", "BO"], - ["Longara", "BO"], - ["Lippo", "BO"], - ["Calderara Di Reno", "BO"], - ], - "40013": [ - ["Trebbo Di Reno", "BO"], - ["Castel Maggiore", "BO"], - ["Progresso", "BO"], - ["Trebbo", "BO"], - ["Villa Salina", "BO"], - ], - "40014": [["Caselle", "BO"], ["Palata Pepoli", "BO"], ["Crevalcore", "BO"]], - "40015": [ - ["Bosco Di Galliera", "BO"], - ["Bosco", "BO"], - ["Galliera Frazione", "BO"], - ["Galliera", "BO"], - ["San Vincenzo", "BO"], - ["San Venanzio", "BO"], - ], - "40016": [["San Giorgio Di Piano", "BO"]], - "40017": [ - ["Decima", "BO"], - ["San Giovanni In Persiceto", "BO"], - ["San Matteo Della Decima", "BO"], - ["Amola Di Piano", "BO"], - ["Budrie", "BO"], - ], - "40018": [["Maccaretolo", "BO"], ["San Pietro In Casale", "BO"]], - "40019": [["Sant'Agata Bolognese", "BO"]], - "40020": [["Casalfiumanese", "BO"]], - "40021": [["Tossignano", "BO"], ["Borgo Tossignano", "BO"]], - "40022": [ - ["Castel Del Rio", "BO"], - ["Moraduccio", "BO"], - ["Sassoleone", "BO"], - ["Moraduccio Di Valsalva", "BO"], - ["Giugnola", "BO"], - ], - "40023": [["Castel Guelfo Di Bologna", "BO"]], - "40024": [ - ["Castel San Pietro Terme", "BO"], - ["Osteria Grande", "BO"], - ["San Martino In Pedriolo", "BO"], - ["Gallo", "BO"], - ["Gaiana", "BO"], - ], - "40025": [["Fontanelice", "BO"], ["Carseggio", "BO"]], - "40026": [ - ["Sesto Imolese", "BO"], - ["Spazzate Sassatelli", "BO"], - ["Imola", "BO"], - ["Ponticelli", "BO"], - ["Piratello", "BO"], - ["San Prospero", "BO"], - ["Sasso Morelli", "BO"], - ], - "40027": [["Bubano", "BO"], ["Mordano", "BO"]], - "40030": [ - ["Grizzana Morandi", "BO"], - ["Berzantina", "BO"], - ["Badi", "BO"], - ["Piano Di Setta", "BO"], - ["Pioppe Di Salvaro", "BO"], - ["Piandisetta", "BO"], - ["Castel Di Casio", "BO"], - ["Pian Di Casale", "BO"], - ["Suviana", "BO"], - ], - "40032": [["Ponte Di Verzuno", "BO"], ["Bargi", "BO"], ["Camugnano", "BO"]], - "40033": [["Casalecchio Di Reno", "BO"], ["Ceretolo", "BO"], ["Cantagallo", "BO"]], - "40034": [ - ["Santa Maria Di Labante", "BO"], - ["Castel D'Aiano", "BO"], - ["Villa D'Aiano", "BO"], - ["Rocca Di Roffeno", "BO"], - ], - "40035": [["Castiglione Dei Pepoli", "BO"], ["Baragazza", "BO"], ["Lagaro", "BO"], ["Creda", "BO"]], - "40036": [["Rioveggio", "BO"], ["Monzuno", "BO"], ["Vado", "BO"]], - "40037": [["Sasso Marconi", "BO"], ["Pontecchio Marconi", "BO"], ["Fontana", "BO"], ["Borgonuovo", "BO"]], - "40038": [["Susano", "BO"], ["Tole'", "BO"], ["Vergato", "BO"], ["Cereglio", "BO"], ["Riola", "BO"]], - "40041": [ - ["Marano", "BO"], - ["Santa Maria Villiana", "BO"], - ["Silla", "BO"], - ["Bombiana", "BO"], - ["Gaggio Montano", "BO"], - ], - "40042": [ - ["Querciola", "BO"], - ["Vidiciatico", "BO"], - ["Farneto Di Lizzano", "BO"], - ["Monteacuto Delle Alpi", "BO"], - ["Pianaccio", "BO"], - ["Rocca Corneta", "BO"], - ["Lizzano In Belvedere", "BO"], - ], - "40043": [["Lama Di Reno", "BO"], ["Lama Di Setta", "BO"], ["Marzabotto", "BO"], ["Pian Di Venola", "BO"]], - "40046": [ - ["Capugnano", "BO"], - ["Porretta Terme", "BO"], - ["Molino Del Pallone", "BO"], - ["Casa Calistri", "BO"], - ["Casa Forlai", "BO"], - ["Castelluccio", "BO"], - ["Granaglione", "BO"], - ["Vizzero", "BO"], - ["Ponte Della Venturina", "BO"], - ["Borgo Capanne", "BO"], - ], - "40048": [ - ["Madonna Dei Fornelli", "BO"], - ["San Benedetto Val Di Sambro", "BO"], - ["Castel Dell'Alpi", "BO"], - ["Piano Del Voglio", "BO"], - ], - "40050": [ - ["Monte San Giovanni", "BO"], - ["Castelletto", "BO"], - ["Funo", "BO"], - ["San Martino", "BO"], - ["Castello Di Serravalle", "BO"], - ["Rignano Bolognese", "BO"], - ["San Benedetto Del Querceto", "BO"], - ["Centergross", "BO"], - ["Monteveglio", "BO"], - ["Castello D'Argile", "BO"], - ["Loiano", "BO"], - ["Gavignano", "BO"], - ["Bisano", "BO"], - ["Monterenzio", "BO"], - ["Argelato", "BO"], - ["Monte San Pietro", "BO"], - ["Pizzano", "BO"], - ["Calderino", "BO"], - ["Casadio", "BO"], - ["Savazza", "BO"], - ["Venezzano", "BO"], - ], - "40051": [["Altedo", "BO"], ["Casoni", "BO"], ["Malalbergo", "BO"], ["Pegola", "BO"]], - "40052": [["Boschi", "BO"], ["Baricella", "BO"], ["Mondonuovo", "BO"], ["San Gabriele", "BO"]], - "40053": [["Valsamoggia", "BO"], ["Bazzano", "BO"]], - "40054": [["Vedrana", "BO"], ["Bagnarola", "BO"], ["Riccardina", "BO"], ["Budrio", "BO"], ["Mezzolara", "BO"]], - "40055": [["Fiesso", "BO"], ["Villanova", "BO"], ["Castenaso", "BO"]], - "40056": [["Muffa", "BO"], ["Pragatto", "BO"], ["Crespellano", "BO"], ["Calcara", "BO"]], - "40057": [ - ["Granarolo Dell'Emilia", "BO"], - ["Fabbreria Di Cadriana", "BO"], - ["Lovoleto", "BO"], - ["Quarto Inferiore", "BO"], - ], - "40059": [ - ["Portonovo", "BO"], - ["Buda", "BO"], - ["Medicina", "BO"], - ["Ganzanigo", "BO"], - ["Sant'Antonio", "BO"], - ["Villa Fontana", "BO"], - ], - "40060": [ - ["Gallo Bolognese", "BO"], - ["Dozza", "BO"], - ["Savigno", "BO"], - ["Toscanella", "BO"], - ["Vedegheto", "BO"], - ], - "40061": [["Minerbio", "BO"], ["Ca' De' Fabbri", "BO"]], - "40062": [ - ["Marmorta", "BO"], - ["Selva Malvezzi", "BO"], - ["Molinella", "BO"], - ["Selva", "BO"], - ["San Pietro Capofiume", "BO"], - ["San Martino In Argine", "BO"], - ], - "40063": [["Monghidoro", "BO"]], - "40064": [["Mercatale", "BO"], ["Ozzano Dell'Emilia", "BO"]], - "40065": [["Pianoro", "BO"], ["Livergnano", "BO"], ["Pianoro Vecchio", "BO"]], - "40066": [["Pieve Di Cento", "BO"]], - "40067": [["Rastignano", "BO"]], - "40068": [ - ["San Lazzaro Di Savena", "BO"], - ["Ponticella", "BO"], - ["San Lazzaro", "BO"], - ["Castel Dei Britti", "BO"], - ["Farneto", "BO"], - ["Martiri Di Pizzocalvo", "BO"], - ["Pulce", "BO"], - ], - "40069": [["Ponte Ronca", "BO"], ["Riale", "BO"], ["Zola Predosa", "BO"], ["Zola", "BO"]], - "40100": [["Bologna", "BO"]], - "40121": [["Bologna", "BO"]], - "40122": [["Bologna", "BO"]], - "40123": [["Bologna", "BO"]], - "40124": [["Bologna", "BO"]], - "40125": [["Bologna", "BO"]], - "40126": [["Bologna", "BO"]], - "40127": [["Bologna", "BO"], ["San Donnino", "BO"]], - "40128": [["Bologna", "BO"], ["Corticella", "BO"]], - "40129": [["Bologna", "BO"]], - "40131": [["Bologna", "BO"], ["Bertalia", "BO"]], - "40132": [["Borgo Panigale", "BO"], ["Bologna", "BO"]], - "40133": [["Bologna", "BO"]], - "40134": [["Bologna", "BO"]], - "40135": [["Bologna", "BO"], ["Casaglia", "BO"]], - "40136": [["Roncrio", "BO"], ["Gaibola", "BO"], ["Bologna", "BO"], ["Paderno", "BO"]], - "40137": [["Bologna", "BO"]], - "40138": [["Bologna", "BO"], ["Roveri", "BO"]], - "40139": [["Bologna", "BO"]], - "40141": [["Bologna", "BO"], ["San Ruffillo", "BO"], ["Monte Donato", "BO"]], - "47010": [ - ["Portico Di Romagna", "FC"], - ["Bocconi", "FC"], - ["Strada San Zeno", "FC"], - ["Portico E San Benedetto", "FC"], - ["San Benedetto In Alpe", "FC"], - ["Galeata", "FC"], - ["Premilcuore", "FC"], - ], - "47011": [["Terra Del Sole", "FC"], ["Castrocaro Terme E Terra Del Sole", "FC"], ["Pieve Salutare", "FC"]], - "47012": [["Cusercoli", "FC"], ["Voltre", "FC"], ["Nespoli", "FC"], ["Civitella Di Romagna", "FC"]], - "47013": [["San Ruffillo", "FC"], ["Dovadola", "FC"]], - "47014": [ - ["Teodorano", "FC"], - ["Rico'", "FC"], - ["San Colombano", "FC"], - ["Meldola", "FC"], - ["San Colombano Di Meldola", "FC"], - ["Vitignano", "FC"], - ["Para", "FC"], - ], - "47015": [["Santa Reparata", "FC"], ["Modigliana", "FC"]], - "47016": [ - ["Tontola", "FC"], - ["Rocca Delle Caminate", "FC"], - ["Predappio", "FC"], - ["Predappio Alta", "FC"], - ["Fiumana", "FC"], - ], - "47017": [["Rocca San Casciano", "FC"], ["Calbola", "FC"]], - "47018": [["Biserno", "FC"], ["Corniolo", "FC"], ["Santa Sofia", "FC"]], - "47019": [["Tredozio", "FC"]], - "47020": [["Budrio", "FC"], ["Longiano", "FC"], ["Roncofreddo", "FC"], ["Montiano", "FC"], ["Oriola", "FC"]], - "47021": [ - ["Monte Guidi", "FC"], - ["Vessa", "FC"], - ["Selvapiana", "FC"], - ["San Piero In Bagno", "FC"], - ["Bagno Di Romagna", "FC"], - ], - "47023": [ - ["Bulgaria", "FC"], - ["Cesuola", "FC"], - ["Diegaro", "FC"], - ["Saiano", "FC"], - ["San Vittore", "FC"], - ["Sant'Egidio", "FC"], - ["San Giorgio Di Cesena", "FC"], - ["Torre Del Moro", "FC"], - ["Case Scuola Vecchia", "FC"], - ["San Mauro In Valle", "FC"], - ["Pievesestina", "FC"], - ["Madonna Dell Ulivo", "FC"], - ["Lizzano", "FC"], - ["Macerone", "FC"], - ["Celletta", "FC"], - ["Gattolino", "FC"], - ["San Carlo Di Cesena", "FC"], - ["Roversano", "FC"], - ["Aie", "FC"], - ["Cesena", "FC"], - ["Calisese", "FC"], - ["Tessello", "FC"], - ["Martorano", "FC"], - ["Ronta", "FC"], - ["Borello", "FC"], - ["Settecrociari", "FC"], - ["Rio Marano", "FC"], - ], - "47025": [ - ["Tornano", "FC"], - ["Bacciolino", "FC"], - ["Monte Castello", "FC"], - ["Ciola", "FC"], - ["Cella", "FC"], - ["Mercato Saraceno", "FC"], - ["Piavola", "FC"], - ["Linaro", "FC"], - ["Bora Bassa", "FC"], - ], - "47027": [ - ["Sorbano", "FC"], - ["Quarto Di Sarsina", "FC"], - ["Ranchio", "FC"], - ["Pieve Di Rivoschio", "FC"], - ["Sarsina", "FC"], - ["Quarto", "FC"], - ], - "47028": [["Alfero", "FC"], ["Balze", "FC"], ["Verghereto", "FC"]], - "47030": [ - ["San Mauro A Mare", "FC"], - ["San Mauro Pascoli", "FC"], - ["Borghi", "FC"], - ["Sogliano Al Rubicone", "FC"], - ["San Giovanni In Galilea", "FC"], - ["Savignano Di Rigo", "FC"], - ["San Martino In Converseto", "FC"], - ["Montegelli", "FC"], - ["Rontagnano", "FC"], - ["Montepetra", "FC"], - ["Lo Stradone", "FC"], - ], - "47032": [ - ["Collinello Polenta", "FC"], - ["Polenta", "FC"], - ["Capocolle", "FC"], - ["Collinello", "FC"], - ["Panighina", "FC"], - ["Fratta Terme", "FC"], - ["Bertinoro", "FC"], - ["Santa Maria Nuova", "FC"], - ], - "47034": [["Forlimpopoli", "FC"], ["Selbagnone", "FC"]], - "47035": [["Gambettola", "FC"]], - "47039": [["Savignano Sul Rubicone", "FC"], ["Fiumicino Di Savignano", "FC"]], - "47042": [["Bagnarola", "FC"], ["Cesenatico", "FC"], ["Villalta", "FC"], ["Sala", "FC"]], - "47043": [["Gatteo", "FC"], ["Sant'Angelo In Salute", "FC"], ["Gatteo A Mare", "FC"]], - "47100": [ - ["Villanova", "FC"], - ["Pianta", "FC"], - ["San Martino In Strada", "FC"], - ["Rovere", "FC"], - ["Barisano", "FC"], - ["Ronco", "FC"], - ["Villafranca", "FC"], - ["Roncadello", "FC"], - ["Carpinello", "FC"], - ["San Lorenzo In Noceto", "FC"], - ["San Varano", "FC"], - ["Villa Rovere", "FC"], - ["Carpena", "FC"], - ["Cava", "FC"], - ["Vecchiazzano", "FC"], - ], - "47121": [["Forlì", "FC"]], - "47122": [["Forlì", "FC"]], - "44011": [ - ["Argenta", "FE"], - ["Ospital Monacale", "FE"], - ["Anita", "FE"], - ["Campotto", "FE"], - ["Filo", "FE"], - ["Traghetto", "FE"], - ["La Fiorana", "FE"], - ["San Nicolo'", "FE"], - ["Boccaleone", "FE"], - ["Longastrino", "FE"], - ["Bando", "FE"], - ["San Biagio", "FE"], - ["Santa Maria Codifiume", "FE"], - ["Consandolo", "FE"], - ], - "44012": [ - ["Ospitale", "FE"], - ["Pilastri", "FE"], - ["Stellata", "FE"], - ["Scortichino", "FE"], - ["Burana", "FE"], - ["Gavello", "FE"], - ["Bondeno", "FE"], - ], - "44014": [["Madonna Boschi", "FE"]], - "44015": [ - ["Portomaggiore", "FE"], - ["Maiero", "FE"], - ["Gambulaga", "FE"], - ["Ripapersico", "FE"], - ["Portoverrara", "FE"], - ["Runco", "FE"], - ], - "44019": [["Voghenza", "FE"], ["Montesanto", "FE"], ["Voghiera", "FE"]], - "44020": [ - ["Gorino Di Goro", "FE"], - ["Rovereto Ferrarese", "FE"], - ["Masi San Giacomo", "FE"], - ["Gorino", "FE"], - ["Masi Torello", "FE"], - ["Goro", "FE"], - ["Medelana", "FE"], - ["San Giuseppe Di Comacchio", "FE"], - ["San Giovanni Di Ostellato", "FE"], - ["San Giovanni", "FE"], - ["Ostellato", "FE"], - ["Dogato", "FE"], - ], - "44021": [ - ["Pomposa", "FE"], - ["Codigoro", "FE"], - ["Pontemaodino", "FE"], - ["Mezzogoro", "FE"], - ["Pontelangorino", "FE"], - ], - "44022": [["San Giuseppe", "FE"], ["Volania", "FE"], ["Comacchio", "FE"], ["Vaccolino", "FE"]], - "44023": [["Marozzo", "FE"], ["Lagosanto", "FE"]], - "44026": [ - ["Bosco", "FE"], - ["Mesola", "FE"], - ["Bosco Mesola", "FE"], - ["Massenzatica", "FE"], - ["Monticelli", "FE"], - ["Ariano Ferrarese", "FE"], - ["Ariano", "FE"], - ], - "44027": [["Migliaro", "FE"], ["Massa Fiscaglia", "FE"], ["Migliarino", "FE"], ["Fiscaglia", "FE"]], - "44028": [["Poggio Renatico", "FE"], ["Coronella", "FE"], ["Gallo", "FE"], ["Chiesa Nuova", "FE"]], - "44029": [["Lido Di Spina", "FE"], ["Lido Degli Estensi", "FE"], ["Porto Garibaldi", "FE"]], - "44030": [ - ["Alberone Di Ro", "FE"], - ["Guarda", "FE"], - ["Ruina", "FE"], - ["Guarda Ferrarese", "FE"], - ["Alberone Di Guarda", "FE"], - ], - "44033": [["Ro", "FE"], ["Cologna", "FE"], ["Serravalle", "FE"], ["Berra", "FE"]], - "44034": [ - ["Tamara", "FE"], - ["Fossalta", "FE"], - ["Copparo", "FE"], - ["Ambrogio", "FE"], - ["Cesta", "FE"], - ["Sabbioncello San Vittore", "FE"], - ["Saletta", "FE"], - ["Zenzalino", "FE"], - ["Coccanile", "FE"], - ["Sabbioncello San Pietro", "FE"], - ["Gradizza", "FE"], - ], - "44035": [["Brazzolo", "FE"]], - "44037": [["Jolanda Di Savoia", "FE"]], - "44039": [["Formignana", "FE"], ["Tresigallo", "FE"], ["Rero", "FE"], ["Final Di Rero", "FE"]], - "44041": [["Casumaro", "FE"], ["Reno Centese", "FE"], ["Buonacompra", "FE"]], - "44042": [ - ["Penzale", "FE"], - ["Corpo Reno", "FE"], - ["Alberone", "FE"], - ["Cento", "FE"], - ["Alberone Di Cento", "FE"], - ["Corpo Di Reno", "FE"], - ], - "44043": [["Mirabello", "FE"]], - "44045": [["Dodici Morelli", "FE"], ["Renazzo", "FE"]], - "44047": [["Dosso", "FE"], ["San Carlo", "FE"], ["Sant'Agostino", "FE"]], - "44049": [["Vigarano Mainarda", "FE"], ["Vigarano Pieve", "FE"]], - "44121": [["Ferrara", "FE"]], - "44122": [["Ferrara", "FE"]], - "44123": [["Ferrara", "FE"]], - "44124": [["Ferrara", "FE"]], - "41011": [["Panzano", "MO"], ["Saliceto Buzzalino", "MO"], ["Campogalliano", "MO"]], - "41012": [ - ["Gargallo", "MO"], - ["Budrione", "MO"], - ["Fossoli", "MO"], - ["Cortile", "MO"], - ["Carpi", "MO"], - ["San Marino", "MO"], - ["Migliarina", "MO"], - ["San Martino Secchia", "MO"], - ["Santa Croce", "MO"], - ], - "41013": [ - ["Gaggio Di Piano", "MO"], - ["Castelfranco Emilia", "MO"], - ["Riolo", "MO"], - ["Cavazzona", "MO"], - ["Rastellino", "MO"], - ["Recovato", "MO"], - ["Manzolino", "MO"], - ["Piumazzo", "MO"], - ], - "41014": [ - ["Solignano Nuovo", "MO"], - ["Levizzano Rangone", "MO"], - ["Castelvetro Di Modena", "MO"], - ["Ca' Di Sola", "MO"], - ], - "41015": [ - ["Bagazzano", "MO"], - ["Nonantola", "MO"], - ["Via Larga", "MO"], - ["La Grande", "MO"], - ["Campazzo", "MO"], - ["Redu'", "MO"], - ], - "41016": [["Rovereto Sulla Secchia", "MO"], ["Sant'Antonio In Mercadello", "MO"], ["Novi Di Modena", "MO"]], - "41017": [["Ravarino", "MO"], ["Stuffione", "MO"]], - "41018": [["San Cesario Sul Panaro", "MO"]], - "41019": [["Soliera", "MO"], ["Sozzigalli", "MO"], ["Appalto", "MO"], ["Limidi", "MO"]], - "41020": [ - ["Castellino Brocco", "MO"], - ["Serpiano", "MO"], - ["Castello", "MO"], - ["Groppo", "MO"], - ["Riolunato", "MO"], - ["Castellino", "MO"], - ], - "41021": [ - ["Canevare", "MO"], - ["Trignano Nel Frignano", "MO"], - ["Ospitale", "MO"], - ["Fellicarolo", "MO"], - ["Serrazzone", "MO"], - ["Lotta", "MO"], - ["Fanano", "MO"], - ["Trignano", "MO"], - ["Ospitale Nel Frignano", "MO"], - ["Trentino Nel Frignano", "MO"], - ], - "41022": [["Fiumalbo", "MO"], ["Dogana Nuova", "MO"], ["Faidello", "MO"]], - "41023": [ - ["Sassostorno", "MO"], - ["Vaglio", "MO"], - ["Montecenere", "MO"], - ["La Santona", "MO"], - ["Lama", "MO"], - ["Barigazzo", "MO"], - ["Mocogno", "MO"], - ["Cadignano", "MO"], - ["Lama Mocogno", "MO"], - ["Pianorso", "MO"], - ], - "41025": [["Montecreto", "MO"], ["Acquaria", "MO"]], - "41026": [ - ["Gaianello", "MO"], - ["Castagneto", "MO"], - ["Niviano", "MO"], - ["Frassineti", "MO"], - ["Monzone", "MO"], - ["Sant'Antonio", "MO"], - ["Pavullo Nel Frignano", "MO"], - ["Gaiato", "MO"], - ["Olina", "MO"], - ["Montebonello", "MO"], - ["Miceno", "MO"], - ["Benedello", "MO"], - ["Camatta", "MO"], - ["Renno", "MO"], - ["Iddiano", "MO"], - ["Montorso", "MO"], - ["Sasso Guidano", "MO"], - ["Crocette", "MO"], - ["Coscogno", "MO"], - ["Verica", "MO"], - ["Montecuccolo", "MO"], - ], - "41027": [ - ["Pievepelago", "MO"], - ["Tagliole", "MO"], - ["Sant'Anna Pelago", "MO"], - ["Roccapelago", "MO"], - ["Sant'Andrea Pelago", "MO"], - ], - "41028": [ - ["Faeto", "MO"], - ["Ricco' Nel Frignano", "MO"], - ["Rocca Santa Maria", "MO"], - ["San Dalmazio Nel Frignano", "MO"], - ["Varana", "MO"], - ["Selva Nel Frignano", "MO"], - ["Ligorzano", "MO"], - ["Valle", "MO"], - ["Pazzano", "MO"], - ["Montagnana", "MO"], - ["San Dalmazio", "MO"], - ["Pompeano", "MO"], - ["Ricco'", "MO"], - ["Monfestino", "MO"], - ["Serramazzoni", "MO"], - ["Selva", "MO"], - ], - "41029": [ - ["Vesale", "MO"], - ["Sestola", "MO"], - ["Rocchetta Sandri", "MO"], - ["Casine", "MO"], - ["Castellaro", "MO"], - ["Roncoscaglia", "MO"], - ["Castellaro Nel Frignano", "MO"], - ], - "41030": [ - ["San Martino Di San Prospero", "MO"], - ["San Pietro", "MO"], - ["Sorbara", "MO"], - ["San Pietro In Elda", "MO"], - ["Staggia Modenese", "MO"], - ["San Lorenzo Della Pioppa", "MO"], - ["Solara", "MO"], - ["Gorghetto", "MO"], - ["San Martino", "MO"], - ["San Lorenzo Pioppa", "MO"], - ["Bomporto", "MO"], - ["San Prospero", "MO"], - ["Bastiglia", "MO"], - ["Staggia", "MO"], - ], - "41031": [["Camposanto", "MO"]], - "41032": [["Cavezzo", "MO"], ["Motta Sulla Secchia", "MO"], ["Motta", "MO"], ["Villa Motta", "MO"]], - "41033": [ - ["Concordia Sulla Secchia", "MO"], - ["Santa Caterina", "MO"], - ["Fossa Di Concordia", "MO"], - ["Vallalta", "MO"], - ["San Giovanni", "MO"], - ["Fossa", "MO"], - ], - "41034": [["Finale Emilia", "MO"], ["Reno Finalese", "MO"]], - "41035": [["Massa Finalese", "MO"]], - "41036": [["Villafranca", "MO"], ["Medolla", "MO"], ["Villafranca Di Medolla", "MO"], ["Camurana", "MO"]], - "41037": [ - ["Gavello", "MO"], - ["Cividale", "MO"], - ["San Martino Carano", "MO"], - ["Quarantoli", "MO"], - ["Mortizzuolo", "MO"], - ["San Martino Spino", "MO"], - ["Tramuschio", "MO"], - ["Ponte San Pellegrino", "MO"], - ["Mirandola", "MO"], - ["San Giacomo Roncole", "MO"], - ], - "41038": [ - ["Rivara", "MO"], - ["San Felice Sul Panaro", "MO"], - ["San Biagio In Padule", "MO"], - ["San Biagio", "MO"], - ["Dogaro", "MO"], - ["Pavignane", "MO"], - ["Confine", "MO"], - ], - "41039": [["San Possidonio", "MO"]], - "41040": [ - ["Gombola", "MO"], - ["San Martino Vallata", "MO"], - ["Ponte Gombola", "MO"], - ["Polinago", "MO"], - ["Cassano", "MO"], - ], - "41042": [["Ubersetto", "MO"], ["Fiorano Modenese", "MO"], ["Spezzano", "MO"]], - "41043": [ - ["Casinalbo", "MO"], - ["Corlo Di Formigine", "MO"], - ["Magreta", "MO"], - ["Colombaro", "MO"], - ["Colombaro Di Formigine", "MO"], - ["Formigine", "MO"], - ], - "41044": [ - ["Madonna Di Pietravolta", "MO"], - ["Romanoro", "MO"], - ["Piandelagotti", "MO"], - ["Riccovolto", "MO"], - ["Rovolo", "MO"], - ["Sassatella", "MO"], - ["Frassinoro", "MO"], - ["Fontanaluccia", "MO"], - ["Cargedolo", "MO"], - ], - "41045": [ - ["Lago", "MO"], - ["Montefiorino", "MO"], - ["Vitriola", "MO"], - ["Macognano", "MO"], - ["Farneta", "MO"], - ["Gusciola", "MO"], - ["Casola", "MO"], - ["Rubbiano", "MO"], - ], - "41046": [ - ["Monchio Nel Frignano", "MO"], - ["Susano", "MO"], - ["Savoniero", "MO"], - ["Palagano", "MO"], - ["Boccassuolo", "MO"], - ["Monchio", "MO"], - ["Costrignano", "MO"], - ], - "41048": [ - ["Morano", "MO"], - ["Saltino Sulla Secchia", "MO"], - ["Castelvecchio", "MO"], - ["Castelvecchio Sulla Secchia", "MO"], - ["Pigneto", "MO"], - ["Sasso Morello", "MO"], - ["Prignano Sulla Secchia", "MO"], - ["Moncerrato", "MO"], - ["Saltino", "MO"], - ["Montebaranzone", "MO"], - ], - "41049": [["Sassuolo", "MO"], ["San Michele Dei Mucchietti", "MO"], ["Montegibbio", "MO"]], - "41051": [["Montale", "MO"], ["Montale Rangone", "MO"], ["Castelnuovo Rangone", "MO"]], - "41052": [ - ["Guiglia", "MO"], - ["Samone", "MO"], - ["Gainazzo", "MO"], - ["Rocca Malatina", "MO"], - ["Rocchetta", "MO"], - ["Monteorsello", "MO"], - ["Castellino Delle Formiche", "MO"], - ["Pieve Di Trebbio", "MO"], - ["Pieve Trebbio", "MO"], - ], - "41053": [["Torre Maina", "MO"], ["Gorzano", "MO"], ["Maranello", "MO"], ["Pozza", "MO"]], - "41054": [["Marano Sul Panaro", "MO"], ["Ospitaletto", "MO"], ["Villa Bianca", "MO"], ["Festa'", "MO"]], - "41055": [ - ["Iola", "MO"], - ["Iola Di Montese", "MO"], - ["Montalto", "MO"], - ["Bertocchi", "MO"], - ["Salto", "MO"], - ["San Martino", "MO"], - ["Montese", "MO"], - ["San Giacomo Maggiore", "MO"], - ["Montespecchio", "MO"], - ["Castelluccio", "MO"], - ["Castelluccio Di Moscheda", "MO"], - ["Maserno", "MO"], - ["Semelano", "MO"], - ], - "41056": [ - ["Formica", "MO"], - ["Garofano", "MO"], - ["Magazzino", "MO"], - ["Savignano Sul Panaro", "MO"], - ["Mulino", "MO"], - ], - "41057": [["Spilamberto", "MO"], ["San Vito", "MO"]], - "41058": [["Vignola", "MO"]], - "41059": [ - ["Monteombraro", "MO"], - ["Montealbano", "MO"], - ["Montetortore", "MO"], - ["Ciano Nel Frignano", "MO"], - ["Montecorone", "MO"], - ["Missano", "MO"], - ["Zocca", "MO"], - ["Rosola", "MO"], - ["Ciano", "MO"], - ], - "41100": [ - ["Villanova San Pancrazio", "MO"], - ["Vaciglio", "MO"], - ["Marzaglia", "MO"], - ["Modena", "MO"], - ["Baggiovara", "MO"], - ["Saliceto San Giuliano", "MO"], - ["Freto", "MO"], - ["Saliceto Panaro", "MO"], - ["Lesignana", "MO"], - ["Chiesa Nuova Di Marzaglia", "MO"], - ["Cognento", "MO"], - ["Villanova", "MO"], - ["Albareto", "MO"], - ["San Donnino", "MO"], - ["Ganaceto", "MO"], - ["Portile", "MO"], - ["San Damaso", "MO"], - ], - "29010": [ - ["Besenzone", "PC"], - ["Agazzano", "PC"], - ["Rottofreno", "PC"], - ["Fogarole", "PC"], - ["Stra'", "PC"], - ["Vicobarone", "PC"], - ["San Nicolo'", "PC"], - ["Campremoldo Sopra", "PC"], - ["Gazzola", "PC"], - ["Sarmato", "PC"], - ["Monticelli D'Ongina", "PC"], - ["Tassara", "PC"], - ["Lusurasco", "PC"], - ["Ziano Piacentino", "PC"], - ["Vigoleno", "PC"], - ["Chiaravalle", "PC"], - ["Valconasso", "PC"], - ["Cadeo", "PC"], - ["Calendasco", "PC"], - ["San Pietro In Cerro", "PC"], - ["San Nazzaro D'Ongina", "PC"], - ["Caminata", "PC"], - ["Castelnuovo Fogliani", "PC"], - ["Olza", "PC"], - ["Roveleto", "PC"], - ["San Giuliano", "PC"], - ["Mezzano Chitantolo", "PC"], - ["Fontana Fredda", "PC"], - ["San Giuliano Piacentino", "PC"], - ["Casaliggio", "PC"], - ["Piozzano", "PC"], - ["Campremoldo Sopra E Sotto", "PC"], - ["Bacedasco Sotto", "PC"], - ["Villanova Sull'Arda", "PC"], - ["San Nicolo' A Trebbia", "PC"], - ["Sant'Imento", "PC"], - ["Villanova", "PC"], - ["Nibbiano", "PC"], - ["Vernasca", "PC"], - ["Pontenure", "PC"], - ["Pianello Val Tidone", "PC"], - ["Gragnano Trebbiense", "PC"], - ["Campremoldo Sotto", "PC"], - ["Trevozzo", "PC"], - ["Castelvetro Piacentino", "PC"], - ["Pecorara", "PC"], - ["Rezzanello", "PC"], - ["Alseno", "PC"], - ], - "29011": [["Borgonovo Val Tidone", "PC"], ["Castelnovo Val Tidone", "PC"], ["Castelnuovo", "PC"]], - "29012": [["Caorso", "PC"]], - "29013": [["Rezzano", "PC"], ["Carpaneto Piacentino", "PC"]], - "29014": [["Castell'Arquato", "PC"], ["Vigolo Marchese", "PC"]], - "29015": [["Fontana Pradosa", "PC"], ["Castel San Giovanni", "PC"], ["Creta", "PC"], ["Ganaghello", "PC"]], - "29016": [["Cortemaggiore", "PC"]], - "29017": [["San Protaso", "PC"], ["Baselicaduce", "PC"], ["Fiorenzuola D'Arda", "PC"]], - "29018": [["Chiavenna Rocchetta", "PC"], ["Rustigazzo", "PC"], ["Lugagnano Val D'Arda", "PC"]], - "29019": [["San Damiano", "PC"], ["San Giorgio Piacentino", "PC"], ["Godi", "PC"]], - "29020": [ - ["Quadrelli", "PC"], - ["Perino", "PC"], - ["Coli", "PC"], - ["Zerba", "PC"], - ["Pej", "PC"], - ["Corte Brugnatella", "PC"], - ["Morfasso", "PC"], - ["Quadrelli Di Fellino", "PC"], - ["Villo'", "PC"], - ["Cerignale", "PC"], - ["Carmiano", "PC"], - ["Marsaglia", "PC"], - ["Ponte Organasco", "PC"], - ["Gossolengo", "PC"], - ["Settima", "PC"], - ["Vigolzone", "PC"], - ["Grazzano Visconti", "PC"], - ["Quarto", "PC"], - ["Travo", "PC"], - ], - "29021": [ - ["San Bernardino", "PC"], - ["San Giovanni", "PC"], - ["Bramaiano", "PC"], - ["Groppoducale", "PC"], - ["Bettola", "PC"], - ], - "29022": [ - ["Santa Maria Di Bobbio", "PC"], - ["Santa Maria", "PC"], - ["Cassolo", "PC"], - ["Vaccarezza", "PC"], - ["Bobbio", "PC"], - ["Passo Penice", "PC"], - ["Mezzano Scotti", "PC"], - ["Ceci", "PC"], - ], - "29023": [["Mareto", "PC"], ["Groppallo", "PC"], ["Le Moline", "PC"], ["Farini", "PC"]], - "29024": [ - ["Centenaro Castello", "PC"], - ["Centenaro", "PC"], - ["Torrio Casetta", "PC"], - ["Brugneto", "PC"], - ["Torrio Sopra", "PC"], - ["Salsominore", "PC"], - ["Ferriere", "PC"], - ["Torrio Sopra E Sotto E Casetta", "PC"], - ], - "29025": [["Gropparello", "PC"], ["Sariano", "PC"], ["Groppovisdomo", "PC"]], - "29026": [["Ottone", "PC"], ["Orezzoli", "PC"]], - "29027": [["Podenzano", "PC"], ["San Polo", "PC"]], - "29028": [["Torrano", "PC"], ["Ponte Dell'Olio", "PC"], ["Biana", "PC"]], - "29029": [ - ["Roveleto Landi", "PC"], - ["Rivergaro", "PC"], - ["Niviano", "PC"], - ["Niviano Castello", "PC"], - ["Ancarano Di Sopra", "PC"], - ], - "29100": [ - ["San Bonico", "PC"], - ["Mucinasso", "PC"], - ["Pittolo", "PC"], - ["Roncaglia", "PC"], - ["Borgo Trebbia", "PC"], - ["Baia Del Re", "PC"], - ["Raffaelina", "PC"], - ["Verza", "PC"], - ["Gerbido Di Mortizza", "PC"], - ["Sant'Antonio", "PC"], - ["San Lazzaro Alberoni", "PC"], - ["Piacenza", "PC"], - ["Gerbido", "PC"], - ["Raffaellina", "PC"], - ["Mortizza", "PC"], - ], - "29121": [["Piacenza", "PC"]], - "29122": [["Piacenza", "PC"]], - "43010": [ - ["Bianconese", "PR"], - ["Monchio Delle Corti", "PR"], - ["Rigoso", "PR"], - ["Fontanelle", "PR"], - ["Riana Di Monchio", "PR"], - ["Riana", "PR"], - ["Roccabianca", "PR"], - ["Castelguelfo", "PR"], - ["Valditacca", "PR"], - ["Ragazzola", "PR"], - ["Ponte Taro", "PR"], - ["Fontevivo", "PR"], - ], - "43011": [["Busseto", "PR"], ["Roncole Verdi", "PR"]], - "43012": [["Parola", "PR"], ["Fontanellato", "PR"]], - "43013": [ - ["Riano", "PR"], - ["Pilastro", "PR"], - ["Cozzano", "PR"], - ["Pastorello", "PR"], - ["Langhirano", "PR"], - ["Torrechiara", "PR"], - ], - "43014": [["Ramiola", "PR"], ["Felegara", "PR"], ["Medesano", "PR"]], - "43015": [["Cella Di Costamezzana", "PR"], ["Costamezzana", "PR"], ["Noceto", "PR"]], - "43016": [["Polesine Parmense", "PR"], ["Pieveottoville", "PR"], ["Zibello", "PR"]], - "43017": [["San Secondo Parmense", "PR"]], - "43018": [ - ["Coltaro", "PR"], - ["Ronco Campo Canneto", "PR"], - ["Gramignazzo", "PR"], - ["Trecasali", "PR"], - ["Sissa", "PR"], - ["San Quirico Trecasali", "PR"], - ["Sissa Trecasali", "PR"], - ["Viarolo", "PR"], - ], - "43019": [["Soragna", "PR"]], - "43021": [ - ["Bosco", "PR"], - ["Beduzzo", "PR"], - ["Vestola Ghiare", "PR"], - ["Ghiare Di Corniglio", "PR"], - ["Corniglio", "PR"], - ["Bosco Di Corniglio", "PR"], - ], - "43022": [ - ["Montechiarugolo", "PR"], - ["Basilicanova", "PR"], - ["Monticelli Terme", "PR"], - ["Monticelli Terme Di Montechiarugolo", "PR"], - ["Basilicagoiano", "PR"], - ], - "43024": [ - ["Scurano", "PR"], - ["Mediano", "PR"], - ["Neviano Degli Arduini", "PR"], - ["Mozzano", "PR"], - ["Vezzano", "PR"], - ["Lupazzano", "PR"], - ["Provazzano", "PR"], - ["Sasso Di Neviano", "PR"], - ["Bazzano Parmense", "PR"], - ], - "43025": [ - ["Isola", "PR"], - ["Palanzano", "PR"], - ["Vairo", "PR"], - ["Ruzzano", "PR"], - ["Isola Di Palanzano", "PR"], - ["Vairo Superiore", "PR"], - ["Selvanizza", "PR"], - ["Ranzano", "PR"], - ], - "43028": [ - ["Tizzano Val Parma", "PR"], - ["Carpaneto", "PR"], - ["Reno", "PR"], - ["Capoponte", "PR"], - ["Lagrimone", "PR"], - ["Capriglio", "PR"], - ["Musiara Inferiore", "PR"], - ], - "43029": [["Traversetolo", "PR"], ["Vignale", "PR"], ["Mamiano", "PR"], ["Castione De' Baratti", "PR"]], - "43030": [["Marzolara", "PR"], ["Bore", "PR"], ["Calestano", "PR"], ["Ravarano", "PR"]], - "43032": [ - ["Bardi", "PR"], - ["Santa Giustina", "PR"], - ["Pione", "PR"], - ["Santa Giustina Val Di Lecca", "PR"], - ["Gravago", "PR"], - ], - "43035": [["Sant'Ilario Di Baganza", "PR"], ["San Michele Di Tiorre", "PR"], ["Felino", "PR"]], - "43036": [ - ["Fidenza", "PR"], - ["Chiusa Ferranda", "PR"], - ["Cogolonchio", "PR"], - ["Castione Marchesi", "PR"], - ["Castione Dei Marchesi", "PR"], - ["Pieve Di Cusignano", "PR"], - ], - "43037": [ - ["Mulazzano Ponte", "PR"], - ["San Michele Cavana", "PR"], - ["Mulazzano", "PR"], - ["Lesignano De' Bagni", "PR"], - ["Santa Maria Del Piano", "PR"], - ], - "43038": [["San Vitale", "PR"], ["Sala Baganza", "PR"], ["San Vitale Di Baganza", "PR"], ["Talignano", "PR"]], - "43039": [ - ["Tabiano", "PR"], - ["Congelasio", "PR"], - ["Salsomaggiore Terme", "PR"], - ["Campore", "PR"], - ["Bagni Di Tabiano", "PR"], - ["Pie' Di Via", "PR"], - ["Bargone", "PR"], - ["Cangelasio", "PR"], - ["Scipione", "PR"], - ], - "43040": [ - ["Corniana", "PR"], - ["Terenzo", "PR"], - ["Vianino", "PR"], - ["Casola", "PR"], - ["Specchio", "PR"], - ["Solignano", "PR"], - ["Selva Del Bocchetto", "PR"], - ["Viazzano", "PR"], - ["Cassio", "PR"], - ["Boschi Di Bardone", "PR"], - ["Varano De' Melegari", "PR"], - ["Lesignano Palmia", "PR"], - ["Prelerna", "PR"], - ], - "43041": [ - ["Pontestrambo", "PR"], - ["Ponteceno", "PR"], - ["Bedonia", "PR"], - ["Masanti", "PR"], - ["Molino Dell'Anzola", "PR"], - ["Drusco", "PR"], - ["Masanti Di Sotto", "PR"], - ], - "43042": [ - ["Berceto", "PR"], - ["Ghiare Di Berceto", "PR"], - ["Ghiare", "PR"], - ["Bergotto", "PR"], - ["Castellonchio", "PR"], - ["Fugazzolo", "PR"], - ["Casaselvatica", "PR"], - ], - "43043": [ - ["Porcigatone", "PR"], - ["Ostia Parmense", "PR"], - ["Tiedoli", "PR"], - ["Ostia Di Borgo Val Di Taro", "PR"], - ["Pontolo", "PR"], - ["Borgo Val Di Taro", "PR"], - ], - "43044": [ - ["Collecchio", "PR"], - ["Gaiano", "PR"], - ["Madregolo", "PR"], - ["Ozzano Taro", "PR"], - ["San Martino Sinzano", "PR"], - ], - "43045": [ - ["Ricco'", "PR"], - ["Neviano De' Rossi", "PR"], - ["Sivizzano", "PR"], - ["Piantonia", "PR"], - ["Fornovo Di Taro", "PR"], - ], - "43047": [["Pellegrino Parmense", "PR"], ["Grotta", "PR"], ["Mariano", "PR"], ["Iggio", "PR"]], - "43048": [["Sant'Andrea Bagni", "PR"], ["Varano Marchesi", "PR"], ["Varano Dei Marchesi", "PR"]], - "43049": [["Pessola", "PR"], ["Carpadasco", "PR"], ["Varsi", "PR"]], - "43050": [ - ["Valmozzola Stazione", "PR"], - ["Stazione Valmozzola", "PR"], - ["Valmozzola", "PR"], - ["Mormorola", "PR"], - ["San Martino Di Valmozzola", "PR"], - ], - "43051": [["Albareto", "PR"], ["San Quirico", "PR"], ["San Quirico D'Albareto", "PR"], ["Bertorella", "PR"]], - "43052": [["Colorno", "PR"]], - "43053": [["Compiano", "PR"], ["Strela", "PR"], ["Cereseto", "PR"]], - "43055": [ - ["Mezzano Superiore", "PR"], - ["Casale", "PR"], - ["Mezzano Rondani", "PR"], - ["Mezzano Inferiore", "PR"], - ], - "43056": [["Torrile", "PR"], ["San Polo", "PR"]], - "43058": [["Sorbolo", "PR"], ["Chiozzola", "PR"], ["Mezzani", "PR"]], - "43059": [["Casale Di Tornolo", "PR"], ["Tornolo", "PR"], ["Santa Maria Del Taro", "PR"], ["Tarsogno", "PR"]], - "43100": [ - ["Vicomero", "PR"], - ["Botteghino", "PR"], - ["Alberi", "PR"], - ["Carignano", "PR"], - ["Panocchia", "PR"], - ["Parma", "PR"], - ["Baganzola", "PR"], - ["Cortile San Martino", "PR"], - ["Moletolo", "PR"], - ["San Leonardo", "PR"], - ["Vicofertile", "PR"], - ["Paradigna", "PR"], - ["Fontanini", "PR"], - ["Gaione", "PR"], - ["Fraore", "PR"], - ["San Lazzaro Parmense", "PR"], - ["San Prospero Parmense", "PR"], - ["Fontana", "PR"], - ["Porporano", "PR"], - ["Corcagnano", "PR"], - ["Marano", "PR"], - ["Vigatto", "PR"], - ["San Pancrazio Parmense", "PR"], - ], - "43122": [["Parma", "PR"]], - "43126": [["Parma", "PR"]], - "48010": [["Casal Borsetti", "RA"]], - "48011": [["Alfonsine", "RA"]], - "48012": [ - ["Bagnacavallo", "RA"], - ["Villanova Di Bagnacavallo", "RA"], - ["Glorie", "RA"], - ["Abbatesse", "RA"], - ["Villanova", "RA"], - ["Boncellino", "RA"], - ["Masiera", "RA"], - ["Traversara", "RA"], - ], - "48013": [ - ["San Cassiano", "RA"], - ["Fognano", "RA"], - ["San Martino In Gattara", "RA"], - ["Zattaglia", "RA"], - ["Monteromano", "RA"], - ["Brisighella", "RA"], - ["Marzeno", "RA"], - ], - "48014": [["Castel Bolognese", "RA"]], - "48015": [ - ["Pisignano", "RA"], - ["Villa Inferno", "RA"], - ["Pinarella", "RA"], - ["Madonna Degli Angeli", "RA"], - ["Castiglione", "RA"], - ["Savio", "RA"], - ["Cervia", "RA"], - ["Cannuzzo", "RA"], - ["Cervia Milano Marittima", "RA"], - ], - "48017": [["Conselice", "RA"], ["Lavezzola", "RA"], ["San Patrizio", "RA"]], - "48018": [ - ["San Martino", "RA"], - ["Errano", "RA"], - ["Case San Martino", "RA"], - ["Castel Raniero", "RA"], - ["Cosina", "RA"], - ["Santa Lucia Delle Spianate", "RA"], - ["Celle", "RA"], - ["Sarna", "RA"], - ["San Silvestro", "RA"], - ["Prada", "RA"], - ["Faenza", "RA"], - ["Fossolo", "RA"], - ["Mezzeno", "RA"], - ["Reda", "RA"], - ["Granarolo", "RA"], - ], - "48020": [["Savarna", "RA"], ["Sant'Alberto", "RA"], ["Sant'Agata Sul Santerno", "RA"]], - "48022": [ - ["Santa Maria In Fabriago", "RA"], - ["San Bernardino", "RA"], - ["Passogatto", "RA"], - ["Giovecca", "RA"], - ["Lugo", "RA"], - ["San Lorenzo Di Lugo", "RA"], - ["Ascensione", "RA"], - ["Voltana", "RA"], - ["San Potito", "RA"], - ["Belricetto", "RA"], - ["Villa San Martino", "RA"], - ], - "48024": [["Villa Serraglio", "RA"], ["Massa Lombarda", "RA"]], - "48025": [["Riolo Terme", "RA"], ["Borgo Rivola", "RA"]], - "48026": [["San Pancrazio", "RA"], ["Russi", "RA"], ["Godo", "RA"]], - "48027": [["Gaiano", "RA"], ["Solarolo", "RA"]], - "48031": [["Bagnara Di Romagna", "RA"]], - "48032": [["Casola Valsenio", "RA"]], - "48033": [["Barbiano", "RA"], ["San Severo", "RA"], ["Cotignola", "RA"]], - "48034": [["Fusignano", "RA"]], - "48100": [ - ["Santerno", "RA"], - ["San Bartolo", "RA"], - ["Lido Di Savio", "RA"], - ["Piangipane", "RA"], - ["Madonna Dell'Albero", "RA"], - ["San Romualdo", "RA"], - ["Lido Di Classe", "RA"], - ["Porto Corsini", "RA"], - ["Camerlona", "RA"], - ["Mezzano", "RA"], - ["Romea Vecchia", "RA"], - ["San Zaccaria", "RA"], - ["Roncalceci", "RA"], - ["Ducenta", "RA"], - ["Classe", "RA"], - ["Carraie", "RA"], - ["Durazzano", "RA"], - ["Filetto", "RA"], - ["Punta Marina", "RA"], - ["Gambellara", "RA"], - ["Marina Romea", "RA"], - ["Ravenna", "RA"], - ["Fornace Zarattini", "RA"], - ["San Pietro In Trento", "RA"], - ["Ghibullo", "RA"], - ["Marina Di Ravenna", "RA"], - ["San Pietro In Vincoli", "RA"], - ["Campiano", "RA"], - ["Fosso Ghiaia", "RA"], - ["Santo Stefano", "RA"], - ["Lido Adriano", "RA"], - ["Coccolia", "RA"], - ["Castiglione Di Ravenna", "RA"], - ["Porto Fuori", "RA"], - ["Ammonite", "RA"], - ["San Pietro In Campiano", "RA"], - ], - "42010": [ - ["Quara", "RE"], - ["Rio Saliceto", "RE"], - ["Cerredolo", "RE"], - ["Cavola", "RE"], - ["Toano", "RE"], - ["San Cassiano", "RE"], - ], - "42011": [["Bagnolo In Piano", "RE"]], - "42012": [["Campagnola Emilia", "RE"]], - "42013": [["Villalunga", "RE"], ["Veggia", "RE"], ["Casalgrande", "RE"], ["Salvaterra", "RE"]], - "42014": [["Cadiroggio", "RE"], ["Castellarano", "RE"], ["Roteglia", "RE"]], - "42015": [["Prato", "RE"], ["San Martino", "RE"], ["Fosdondo", "RE"], ["Correggio", "RE"], ["Budrio", "RE"]], - "42016": [["San Girolamo", "RE"], ["Pieve", "RE"], ["Guastalla", "RE"]], - "42017": [ - ["Novellara", "RE"], - ["San Bernardino", "RE"], - ["Santa Maria", "RE"], - ["Vezzola", "RE"], - ["San Giovanni", "RE"], - ], - "42018": [["San Martino In Rio", "RE"]], - "42019": [ - ["Arceto", "RE"], - ["Pratissolo", "RE"], - ["Ca' De Caroli", "RE"], - ["Ventoso", "RE"], - ["Scandiano", "RE"], - ["Chiozza", "RE"], - ["Fellegara", "RE"], - ["Iano", "RE"], - ["Bosco", "RE"], - ["Rondinara", "RE"], - ], - "42020": [ - ["Vetto", "RE"], - ["Cola", "RE"], - ["Puianello", "RE"], - ["Rosano", "RE"], - ["Quattro Castella", "RE"], - ["Borzano", "RE"], - ["Albinea", "RE"], - ["San Polo D'Enza", "RE"], - ["Montecavolo", "RE"], - ["Roncolo", "RE"], - ], - "42021": [["Bibbiano", "RE"], ["Barco", "RE"]], - "42022": [["Boretto", "RE"]], - "42023": [["Cadelbosco Di Sopra", "RE"], ["Argine", "RE"], ["Cadelbosco Di Sotto", "RE"]], - "42024": [["Meletole", "RE"], ["Castelnovo Di Sotto", "RE"]], - "42025": [["Cavriago", "RE"]], - "42026": [["Canossa", "RE"], ["Ciano D'Enza", "RE"], ["Compiano D'Enza", "RE"]], - "42027": [["Montecchio Emilia", "RE"]], - "42028": [["Poviglio", "RE"]], - "42030": [ - ["Gazzano", "RE"], - ["Succiso", "RE"], - ["Viano", "RE"], - ["Montalto", "RE"], - ["Asta Nell'Emilia", "RE"], - ["Villa Minozzo", "RE"], - ["San Giovanni Di Querciola", "RE"], - ["Pecorile", "RE"], - ["La Vecchia", "RE"], - ["Regnano", "RE"], - ["Civago", "RE"], - ["Minozzo", "RE"], - ["Sologno", "RE"], - ["Vezzano Sul Crostolo", "RE"], - ], - "42031": [["Baiso", "RE"], ["Casino Levizzano", "RE"], ["Levizzano", "RE"]], - "42032": [ - ["Succiso Nuovo", "RE"], - ["Ramiseto", "RE"], - ["Castagneto", "RE"], - ["Pieve San Vincenzo", "RE"], - ["Cervarezza", "RE"], - ["Cinquecerri", "RE"], - ["Ligonchio", "RE"], - ["Busana", "RE"], - ["Collagna", "RE"], - ["Cerreto Alpi", "RE"], - ], - "42033": [["Carpineti", "RE"], ["Pantano", "RE"], ["Savognatica", "RE"], ["Valestra", "RE"], ["Marola", "RE"]], - "42034": [["Casina", "RE"], ["Paullo Di Casina", "RE"], ["Trinita'", "RE"]], - "42035": [ - ["Casale", "RE"], - ["Felina", "RE"], - ["Villaberza", "RE"], - ["Vologno Di Sotto", "RE"], - ["Vologno", "RE"], - ["Monteduro", "RE"], - ["Castelnuovo Ne' Monti", "RE"], - ["Croce", "RE"], - ["Croce Ne' Monti", "RE"], - ["Gatta", "RE"], - ["Castelnovo Ne' Monti", "RE"], - ], - "42040": [["Campegine", "RE"], ["Caprara", "RE"]], - "42041": [["Brescello", "RE"], ["Lentigione", "RE"]], - "42042": [["Fabbrico", "RE"]], - "42043": [["Taneto", "RE"], ["Gattatico", "RE"], ["Praticello", "RE"]], - "42044": [ - ["Gualtieri", "RE"], - ["Santa Vittoria Di Gualtieri", "RE"], - ["Santa Vittoria", "RE"], - ["Pieve Saliceto", "RE"], - ], - "42045": [["Villarotta", "RE"], ["Casoni", "RE"], ["Luzzara", "RE"], ["Codisotto", "RE"]], - "42046": [["Reggiolo", "RE"], ["Brugneto", "RE"]], - "42047": [["Rolo", "RE"]], - "42048": [["Rubiera", "RE"]], - "42049": [["Sant'Ilario D'Enza", "RE"], ["Calerno", "RE"]], - "42100": [ - ["Marmirolo", "RE"], - ["Reggio Emilia", "RE"], - ["Bagno", "RE"], - ["San Pellegrino", "RE"], - ["Mancasale", "RE"], - ["Gavassa", "RE"], - ["Cella", "RE"], - ["Cade'", "RE"], - ["Ospizio", "RE"], - ["Fogliano", "RE"], - ["Quaresimo", "RE"], - ["Codemondo", "RE"], - ["Cavazzoli", "RE"], - ["Coviolo", "RE"], - ["Roncocesi", "RE"], - ["Massenzatico", "RE"], - ["Canali", "RE"], - ["Castellazzo", "RE"], - ["Rivalta", "RE"], - ["Gaida", "RE"], - ["Pieve Modolena", "RE"], - ["Masone", "RE"], - ["Sesso", "RE"], - ["San Maurizio", "RE"], - ["Corticella", "RE"], - ["Gavasseto", "RE"], - ], - "47814": [["Igea Marina", "RN"], ["Bellaria Igea Marina", "RN"], ["Bellaria", "RN"]], - "47822": [ - ["Santarcangelo Di Romagna", "RN"], - ["Santa Giustina Di Santarcangelo", "RN"], - ["San Michele", "RN"], - ["Sant'Ermete", "RN"], - ["Ciola Corniale", "RN"], - ["Montalbano Di Santarcangelo Di Romagna", "RN"], - ["San Martino Dei Mulini", "RN"], - ["San Vito", "RN"], - ], - "47824": [ - ["Poggio Torriana", "RN"], - ["Torriana", "RN"], - ["Trebbio", "RN"], - ["Santo Marino", "RN"], - ["Poggio Berni", "RN"], - ], - "47826": [["Verucchio", "RN"], ["Villa Verucchio", "RN"]], - "47832": [["San Clemente", "RN"], ["Sant'Andrea In Casale", "RN"]], - "47833": [["Morciano Di Romagna", "RN"]], - "47834": [["Montefiore Conca", "RN"], ["Serbadone", "RN"]], - "47835": [["Saludecio", "RN"], ["Santa Maria Del Monte", "RN"]], - "47836": [["Mondaino", "RN"]], - "47837": [["Montegridolfo", "RN"]], - "47838": [["Riccione", "RN"]], - "47841": [["Cattolica", "RN"]], - "47842": [["Pianventena", "RN"], ["Montalbano", "RN"], ["San Giovanni In Marignano", "RN"]], - "47843": [ - ["Misano Monte", "RN"], - ["Misano Adriatico", "RN"], - ["Belvedere", "RN"], - ["Santa Monica", "RN"], - ["Villaggio Argentina", "RN"], - ["Scacciano", "RN"], - ["Cella", "RN"], - ], - "47853": [ - ["Ospedaletto", "RN"], - ["Ospedaletto Di Rimini", "RN"], - ["Sant'Andrea In Besanigo", "RN"], - ["Cerasolo", "RN"], - ["Coriano", "RN"], - ], - "47854": [ - ["Trarivi", "RN"], - ["San Savino", "RN"], - ["San Savino Di Monte Colombo", "RN"], - ["Monte Colombo", "RN"], - ["Croce", "RN"], - ["Taverna Di Monte Colombo", "RN"], - ["Montescudo", "RN"], - ["Santa Maria Del Piano", "RN"], - ], - "47855": [["Onferno", "RN"], ["Gemmano", "RN"]], - "47861": [["Casteldelci", "RN"]], - "47862": [["Maiolo", "RN"]], - "47863": [ - ["Secchiano Marecchia", "RN"], - ["Ponte Molino Baffoni", "RN"], - ["Novafeltria", "RN"], - ["Perticara", "RN"], - ], - "47864": [ - ["Molino Di Bascio", "RN"], - ["Soanne", "RN"], - ["Ponte Messa", "RN"], - ["Pennabilli", "RN"], - ["Maciano", "RN"], - ], - "47865": [["San Leo", "RN"], ["Pietracuta", "RN"], ["Montemaggio", "RN"]], - "47866": [["San Donato", "RN"], ["Sant'Agata Feltria", "RN"]], - "47867": [["Talamello", "RN"]], - "47900": [ - ["San Fortunato", "RN"], - ["Rimini", "RN"], - ["Rivazzurra", "RN"], - ["Torre Pedrera", "RN"], - ["Bellariva", "RN"], - ["Vergiano", "RN"], - ["Santa Giustina", "RN"], - ["San Lorenzo In Correggiano", "RN"], - ["Miramare Di Rimini", "RN"], - ["Corpolo'", "RN"], - ["Viserbella", "RN"], - ["San Giuliano A Mare", "RN"], - ["Gaiofana", "RN"], - ["Viserba", "RN"], - ["Santa Aquilina", "RN"], - ["Rivabella", "RN"], - ], - "47921": [["Rimini", "RN"]], - "47922": [["Rimini", "RN"]], - "47923": [["Rimini", "RN"]], - "47924": [["Rimini", "RN"]], - "34070": [ - ["Jamiano", "GO"], - ["Scrio'", "GO"], - ["Marcottini", "GO"], - ["Villesse", "GO"], - ["Capriva Del Friuli", "GO"], - ["San Lorenzo Isontino", "GO"], - ["Mariano Del Friuli", "GO"], - ["San Floriano Del Collio", "GO"], - ["Dolegna Del Collio", "GO"], - ["Corona", "GO"], - ["Doberdo' Del Lago", "GO"], - ["Polazzo", "GO"], - ["Savogna D'Isonzo", "GO"], - ["Redipuglia", "GO"], - ["Lonzano", "GO"], - ["Venco'", "GO"], - ["Cassegliano", "GO"], - ["Redipuglia Sacrario", "GO"], - ["San Pier D'Isonzo", "GO"], - ["Mernicco", "GO"], - ["Rupa", "GO"], - ["San Michele Del Carso", "GO"], - ["Fogliano Redipuglia", "GO"], - ["Moraro", "GO"], - ["Mossa", "GO"], - ["Giasbana", "GO"], - ["Turriaco", "GO"], - ["Gabria", "GO"], - ], - "34071": [["Cormons", "GO"], ["Brazzano", "GO"], ["Borgnano", "GO"]], - "34072": [["Farra D'Isonzo", "GO"], ["Gradisca D'Isonzo", "GO"]], - "34073": [ - ["Rotta Primero", "GO"], - ["Grado Citta' Giardino", "GO"], - ["Fossalon", "GO"], - ["Grado", "GO"], - ["Grado Pineta", "GO"], - ], - "34074": [["Monfalcone", "GO"], ["Marina Julia", "GO"]], - "34075": [["Isola Morosini", "GO"], ["Pieris", "GO"], ["San Canzian D'Isonzo", "GO"], ["Begliano", "GO"]], - "34076": [["Medea", "GO"], ["Versa", "GO"], ["Romans D'Isonzo", "GO"], ["Fratta", "GO"]], - "34077": [["Ronchi Dei Legionari", "GO"], ["Vermegliano", "GO"]], - "34078": [["Poggio Terzarmata", "GO"], ["San Martino Del Carso", "GO"], ["Sagrado", "GO"]], - "34079": [["Bistrigna", "GO"], ["Staranzano", "GO"]], - "34170": [ - ["Oslavia", "GO"], - ["Piedimonte Del Calvario", "GO"], - ["Gorizia", "GO"], - ["Lucinico", "GO"], - ["Piuma", "GO"], - ], - "33070": [ - ["Polcenigo", "PN"], - ["Sarone", "PN"], - ["Caneva", "PN"], - ["Dardago", "PN"], - ["Santa Lucia Di Budoia", "PN"], - ["Brugnera", "PN"], - ["San Giovanni Di Polcenigo", "PN"], - ["Stevena'", "PN"], - ["Maron", "PN"], - ["Tamai", "PN"], - ["Budoia", "PN"], - ], - "33072": [["San Giovanni Di Casarsa", "PN"], ["Casarsa Della Delizia", "PN"]], - "33074": [["Vigonovo", "PN"], ["Fontanafredda", "PN"], ["Nave", "PN"], ["Ceolini", "PN"]], - "33075": [["Morsano Al Tagliamento", "PN"], ["Mussons", "PN"], ["Cordovado", "PN"]], - "33076": [["Pravisdomini", "PN"], ["Barco", "PN"]], - "33077": [["Cavolano", "PN"], ["Schiavoi", "PN"], ["Sacile", "PN"], ["San Giovanni Di Livenza", "PN"]], - "33078": [["San Vito Al Tagliamento", "PN"], ["Gleris", "PN"], ["Savorgnano", "PN"]], - "33079": [["Ramuscello", "PN"], ["Bagnarola", "PN"], ["Sesto Al Reghena", "PN"], ["Casette", "PN"]], - "33080": [ - ["Fiume Veneto", "PN"], - ["Palse", "PN"], - ["Claut", "PN"], - ["Bannia", "PN"], - ["Ghirano", "PN"], - ["Barcis", "PN"], - ["Porcia", "PN"], - ["Vajont", "PN"], - ["Roraipiccolo", "PN"], - ["Zoppola", "PN"], - ["Cimolais", "PN"], - ["Puia", "PN"], - ["Poffabro", "PN"], - ["San Quirino", "PN"], - ["Cimpello", "PN"], - ["Sedrano", "PN"], - ["Castions", "PN"], - ["San Foca", "PN"], - ["Prata Di Pordenone", "PN"], - ["Villanova", "PN"], - ["Roveredo In Piano", "PN"], - ["Frisanco", "PN"], - ["Erto E Casso", "PN"], - ["Orcenico Inferiore", "PN"], - ["Andreis", "PN"], - ], - "33081": [ - ["Aviano", "PN"], - ["Castello", "PN"], - ["Cortina", "PN"], - ["Giais", "PN"], - ["Selva", "PN"], - ["Glera", "PN"], - ["Marsure", "PN"], - ["San Martino Di Campagna", "PN"], - ], - "33082": [["Corva", "PN"], ["Fagnigola", "PN"], ["Tiezzo", "PN"], ["Azzano Decimo", "PN"]], - "33083": [["Chions", "PN"], ["Villotta", "PN"], ["Taiedo", "PN"]], - "33084": [["Musil", "PN"], ["Cordenons", "PN"], ["Villa D'Arco", "PN"]], - "33085": [["Campagna", "PN"], ["Maniago", "PN"]], - "33086": [ - ["San Leonardo Valcellina", "PN"], - ["Montereale Valcellina", "PN"], - ["San Leonardo", "PN"], - ["Malnisio", "PN"], - ], - "33087": [ - ["Rivarotta", "PN"], - ["Visinale", "PN"], - ["Cecchini", "PN"], - ["Pasiano", "PN"], - ["Pasiano Di Pordenone", "PN"], - ["Pozzo", "PN"], - ], - "33090": [ - ["Castelnovo Del Friuli", "PN"], - ["Casiacco", "PN"], - ["Chievolis", "PN"], - ["Sequals", "PN"], - ["Tramonti Di Sopra", "PN"], - ["Vito D'Asio", "PN"], - ["Solimbergo", "PN"], - ["Travesio", "PN"], - ["Colle", "PN"], - ["Toppo", "PN"], - ["Pielungo", "PN"], - ["Arba", "PN"], - ["Lestans", "PN"], - ["Anduins", "PN"], - ["Campone", "PN"], - ["Clauzetto", "PN"], - ["Usago", "PN"], - ["Tramonti Di Sotto", "PN"], - ], - "33092": [["Fanna", "PN"], ["Meduno", "PN"], ["Cavasso Nuovo", "PN"]], - "33094": [["Valeriano", "PN"], ["Pinzano Al Tagliamento", "PN"]], - "33095": [["Domanins", "PN"], ["Rauscedo", "PN"], ["Provesano", "PN"], ["San Giorgio Della Richinvelda", "PN"]], - "33097": [["Tauriano", "PN"], ["Barbeano", "PN"], ["Spilimbergo", "PN"], ["Istrago", "PN"], ["Vacile", "PN"]], - "33098": [ - ["San Lorenzo", "PN"], - ["Valvasone Arzene", "PN"], - ["Arzene", "PN"], - ["San Martino Al Tagliamento", "PN"], - ["Valvasone", "PN"], - ], - "33099": [["Vivaro", "PN"]], - "33170": [ - ["Vallenoncello", "PN"], - ["La Comina", "PN"], - ["Comina (La)", "PN"], - ["Borgo Meduna", "PN"], - ["Pordenone", "PN"], - ], - "34010": [["Sgonico", "TS"]], - "34011": [ - ["Sistiana", "TS"], - ["Aurisina", "TS"], - ["Villaggio Del Pescatore", "TS"], - ["Duino", "TS"], - ["San Pelagio", "TS"], - ["Duino Aurisina", "TS"], - ["Visogliano", "TS"], - ], - "34012": [["Basovizza", "TS"]], - "34014": [["Grignano", "TS"], ["Santa Croce", "TS"], ["Santa Croce Di Trieste", "TS"]], - "34015": [["Muggia", "TS"], ["San Rocco", "TS"], ["Stramare", "TS"], ["Aquilinia", "TS"]], - "34016": [["Monrupino", "TS"]], - "34017": [["Prosecco", "TS"]], - "34018": [ - ["San Giuseppe Della Chiusa", "TS"], - ["Domio", "TS"], - ["Bagnoli Della Rosandra", "TS"], - ["San Dorligo Della Valle", "TS"], - ["Sant'Antonio In Bosco", "TS"], - ], - "34100": [["Trieste", "TS"]], - "34121": [["Trieste", "TS"]], - "34122": [["Trieste", "TS"]], - "34123": [["Trieste", "TS"]], - "34124": [["Trieste", "TS"]], - "34125": [["Trieste", "TS"]], - "34126": [["Trieste", "TS"]], - "34127": [["Trieste", "TS"]], - "34128": [["Trieste", "TS"]], - "34129": [["Trieste", "TS"]], - "34131": [["Trieste", "TS"]], - "34132": [["Trieste", "TS"]], - "34133": [["Trieste", "TS"]], - "34134": [["Trieste", "TS"]], - "34135": [["Trieste", "TS"]], - "34136": [["Trieste", "TS"], ["Cedas", "TS"]], - "34137": [["Trieste", "TS"]], - "34138": [["Trieste", "TS"]], - "34139": [["Trieste", "TS"]], - "34141": [["Trieste", "TS"]], - "34142": [["Trieste", "TS"]], - "34143": [["Trieste", "TS"]], - "34144": [["Trieste", "TS"]], - "34145": [["Trieste", "TS"]], - "34146": [["Trieste", "TS"]], - "34147": [["Trieste", "TS"], ["Aquilinia", "TS"]], - "34148": [["Trieste", "TS"]], - "34149": [["Trieste", "TS"], ["Cattinara", "TS"]], - "34151": [["Trieste", "TS"]], - "33010": [ - ["Carvacco", "UD"], - ["Treppo Grande", "UD"], - ["Montenars", "UD"], - ["Colugna", "UD"], - ["Borgo Zurini", "UD"], - ["Magnano In Riviera", "UD"], - ["Valbruna", "UD"], - ["Colloredo Di Monte Albano", "UD"], - ["Mels", "UD"], - ["Tavagnacco", "UD"], - ["Peonis", "UD"], - ["Vendoglio", "UD"], - ["La Carnia", "UD"], - ["Reana Del Roiale", "UD"], - ["Cassacco", "UD"], - ["Lauzzana", "UD"], - ["Resia", "UD"], - ["Venzone", "UD"], - ["Trasaghis", "UD"], - ["Malborghetto", "UD"], - ["Chiusaforte", "UD"], - ["Ugovizza", "UD"], - ["Cavalicco", "UD"], - ["Vergnacco", "UD"], - ["Qualso", "UD"], - ["Osoppo", "UD"], - ["Dogna", "UD"], - ["Caporiacco", "UD"], - ["Stolvizza", "UD"], - ["Lusevera", "UD"], - ["Avasinis", "UD"], - ["Resiutta", "UD"], - ["Feletto Umberto", "UD"], - ["Vedronza", "UD"], - ["Alesso", "UD"], - ["Adegliacco", "UD"], - ["Carnia", "UD"], - ["Braulins", "UD"], - ["Bordano", "UD"], - ["Pagnacco", "UD"], - ["Malborghetto Valbruna", "UD"], - ], - "33011": [["Artegna", "UD"]], - "33013": [["Gemona Piovega", "UD"], ["Ospedaletto Di Gemona", "UD"], ["Gemona Del Friuli", "UD"]], - "33015": [["Moggio Di Sotto", "UD"], ["Moggio Di Sopra", "UD"], ["Moggio Udinese", "UD"]], - "33016": [["Pontebba", "UD"]], - "33017": [["Collalto", "UD"], ["Tarcento", "UD"], ["Bulfons", "UD"]], - "33018": [ - ["Camporosso In Valcanale", "UD"], - ["Cave Del Predil", "UD"], - ["Fusine In Valromana", "UD"], - ["Tarvisio", "UD"], - ], - "33019": [["Leonacco", "UD"], ["Tricesimo", "UD"]], - "33020": [ - ["Forni Avoltri", "UD"], - ["Prato Carnico", "UD"], - ["Treppo Carnico", "UD"], - ["Sutrio", "UD"], - ["Ligosullo", "UD"], - ["Ravascletto", "UD"], - ["Sauris", "UD"], - ["Forni Di Sotto", "UD"], - ["Pesariis", "UD"], - ["Mediis", "UD"], - ["Cavazzo Carnico", "UD"], - ["Socchieve", "UD"], - ["Verzegnis", "UD"], - ["Cercivento", "UD"], - ["Pieria", "UD"], - ["Quinis", "UD"], - ["Zuglio", "UD"], - ["Rigolato", "UD"], - ["Amaro", "UD"], - ["Preone", "UD"], - ["Enemonzo", "UD"], - ], - "33021": [["Ampezzo", "UD"]], - "33022": [["Arta Terme", "UD"], ["Piano D'Arta", "UD"]], - "33023": [["Comeglians", "UD"]], - "33024": [["Forni Di Sopra", "UD"]], - "33025": [["Ovaro", "UD"]], - "33026": [["Paluzza", "UD"], ["Cleulis", "UD"], ["Timau", "UD"]], - "33027": [["Salino", "UD"], ["Paularo", "UD"], ["Dierico", "UD"]], - "33028": [ - ["Caneva", "UD"], - ["Terzo Di Tolmezzo", "UD"], - ["Caneva Di Tolmezzo", "UD"], - ["Tolmezzo", "UD"], - ["Cadunea", "UD"], - ["Illegio", "UD"], - ["Imponzo", "UD"], - ], - "33029": [ - ["Villa Santina", "UD"], - ["Invillino", "UD"], - ["Lauco", "UD"], - ["Chiassis", "UD"], - ["Trava", "UD"], - ["Raveo", "UD"], - ], - "33030": [ - ["Dignano", "UD"], - ["Carpacco", "UD"], - ["Canussio", "UD"], - ["San Vito Di Fagagna", "UD"], - ["Avilla", "UD"], - ["Talmassons", "UD"], - ["Coseano", "UD"], - ["Varmo", "UD"], - ["San Pietro", "UD"], - ["Madonna Di Buja", "UD"], - ["San Giacomo", "UD"], - ["Flambro", "UD"], - ["Brazzacco", "UD"], - ["Basaldella", "UD"], - ["Rodeano", "UD"], - ["Vidulis", "UD"], - ["Silvella", "UD"], - ["Camino Al Tagliamento", "UD"], - ["San Tomaso", "UD"], - ["Majano", "UD"], - ["Rodeano Basso", "UD"], - ["Muris Di Ragogna", "UD"], - ["Campoformido", "UD"], - ["Flaibano", "UD"], - ["Roveredo", "UD"], - ["Santo Stefano Di Buja", "UD"], - ["Cornino", "UD"], - ["Flumignano", "UD"], - ["Ragogna", "UD"], - ["Buja", "UD"], - ["Muris", "UD"], - ["Forgaria Nel Friuli", "UD"], - ["Urbignacco", "UD"], - ["Romans Di Varmo", "UD"], - ["Flagogna", "UD"], - ["Santa Margherita", "UD"], - ["Bressa", "UD"], - ["Rive D'Arcano", "UD"], - ["Cisterna Del Friuli", "UD"], - ["Cisterna", "UD"], - ["Romans", "UD"], - ["Moruzzo", "UD"], - ], - "33031": [ - ["Villaorba", "UD"], - ["Blessano", "UD"], - ["Basagliapenta", "UD"], - ["Variano", "UD"], - ["Vissandone", "UD"], - ["Orgnano", "UD"], - ["Basiliano", "UD"], - ], - "33032": [["Bertiolo", "UD"], ["Pozzecco", "UD"]], - "33033": [ - ["Beano", "UD"], - ["Rivolto", "UD"], - ["Codroipo", "UD"], - ["Biauzzo", "UD"], - ["Goricizza E Pozzo", "UD"], - ["Lonca", "UD"], - ], - "33034": [["Fagagna", "UD"], ["Madrisio", "UD"], ["Ciconicco", "UD"]], - "33035": [["Torreano Di Martignacco", "UD"], ["Nogaredo Di Prato", "UD"], ["Martignacco", "UD"]], - "33036": [ - ["Mereto Di Tomba", "UD"], - ["Tomba", "UD"], - ["Plasencis", "UD"], - ["San Marco", "UD"], - ["Pantianicco", "UD"], - ], - "33037": [["Pasian Di Prato", "UD"], ["Colloredo Di Prato", "UD"], ["Passons", "UD"]], - "33038": [["Villanova", "UD"], ["Villanova Di San Daniele", "UD"], ["San Daniele Del Friuli", "UD"]], - "33039": [ - ["Sedegliano", "UD"], - ["Coderno", "UD"], - ["Turrida", "UD"], - ["San Lorenzo", "UD"], - ["Gradisca Di Sedegliano", "UD"], - ], - "33040": [ - ["Savorgnano Del Torre", "UD"], - ["Savogna", "UD"], - ["Racchiuso", "UD"], - ["Campolongo Al Torre", "UD"], - ["Tapogliano", "UD"], - ["Grions", "UD"], - ["Povoletto", "UD"], - ["Corno Di Rosazzo", "UD"], - ["Paciug", "UD"], - ["Podresca", "UD"], - ["Grimacco", "UD"], - ["Attimis", "UD"], - ["Campeglio", "UD"], - ["Ipplis", "UD"], - ["Faedis", "UD"], - ["Stregna", "UD"], - ["Ravosa", "UD"], - ["Taipana", "UD"], - ["Moimacco", "UD"], - ["Drenchia", "UD"], - ["Orsaria", "UD"], - ["San Leonardo", "UD"], - ["Cavenzano", "UD"], - ["Visco", "UD"], - ["Castelmonte", "UD"], - ["Pradamano", "UD"], - ["Magredis", "UD"], - ["Prepotto", "UD"], - ["Primulacco", "UD"], - ["Torreano", "UD"], - ["Premariacco", "UD"], - ["Clodig", "UD"], - ], - "33041": [["Aiello Del Friuli", "UD"], ["Joannis", "UD"]], - "33042": [["Buttrio", "UD"]], - "33043": [["Purgessimo", "UD"], ["Sanguarzo", "UD"], ["Cividale Del Friuli", "UD"]], - "33044": [["Manzano", "UD"]], - "33045": [["Nimis", "UD"]], - "33046": [["Pulfero", "UD"]], - "33047": [["Orzano", "UD"], ["Cerneglons", "UD"], ["Ziracco", "UD"], ["Remanzacco", "UD"]], - "33048": [ - ["San Giovanni Al Natisone", "UD"], - ["Chiopris", "UD"], - ["Medeuzza", "UD"], - ["Dolegnano", "UD"], - ["Villanova Dello Iudrio", "UD"], - ["Chiopris Viscone", "UD"], - ], - "33049": [["San Pietro Al Natisone", "UD"]], - "33050": [ - ["Porpetto", "UD"], - ["Clauiano", "UD"], - ["Mortegliano", "UD"], - ["Chiasellis", "UD"], - ["Sammardenchia", "UD"], - ["Pozzuolo Del Friuli", "UD"], - ["Papariano", "UD"], - ["Pocenia", "UD"], - ["Ruda", "UD"], - ["Castello", "UD"], - ["Lestizza", "UD"], - ["Sevegliano", "UD"], - ["Terenzano", "UD"], - ["Zugliano", "UD"], - ["Carpeneto", "UD"], - ["San Vito Al Torre", "UD"], - ["Felettis", "UD"], - ["Ontagnano", "UD"], - ["Torviscosa", "UD"], - ["Malisana", "UD"], - ["Carlino", "UD"], - ["Fiumicello", "UD"], - ["Gonars", "UD"], - ["Precenicco", "UD"], - ["Castions Di Strada", "UD"], - ["Galleriano", "UD"], - ["Lumignacco", "UD"], - ["Santa Maria", "UD"], - ["Lavariano", "UD"], - ["Perteole", "UD"], - ["Sclaunicco", "UD"], - ["Terzo D'Aquileia", "UD"], - ["Cargnacco", "UD"], - ["Pavia Di Udine", "UD"], - ["San Valentino", "UD"], - ["Percoto", "UD"], - ["Marano Lagunare", "UD"], - ["Bagnaria Arsa", "UD"], - ["Risano", "UD"], - ["Mereto Di Capitolo", "UD"], - ["Casale Della Madonna", "UD"], - ["Nespoledo", "UD"], - ["Trivignano Udinese", "UD"], - ["Lauzacco", "UD"], - ["Tissano", "UD"], - ["Torsa", "UD"], - ["Torsa Di Pocenia", "UD"], - ["Bicinicco", "UD"], - ["Castions Delle Mura", "UD"], - ["Ronchis", "UD"], - ["Santa Maria La Longa", "UD"], - ], - "33051": [["Belvedere Di Aquileia", "UD"], ["Belvedere", "UD"], ["Aquileia", "UD"]], - "33052": [["Cervignano Del Friuli", "UD"], ["Strassoldo", "UD"]], - "33053": [["Pertegada", "UD"], ["Latisana", "UD"], ["Gorgo", "UD"]], - "33054": [["Lignano Sabbiadoro", "UD"], ["Lignano Pineta", "UD"]], - "33055": [["Muzzana Del Turgnano", "UD"]], - "33056": [["Palazzolo Dello Stella", "UD"]], - "33057": [["Sottoselva", "UD"], ["Ialmicco", "UD"], ["Jalmicco", "UD"], ["Palmanova", "UD"]], - "33058": [["San Giorgio Di Nogaro", "UD"]], - "33059": [["Villa Vicentina", "UD"]], - "33061": [["Teor", "UD"], ["Rivignano Teor", "UD"], ["Rivarotta", "UD"], ["Rivignano", "UD"]], - "33100": [ - ["Cussignacco", "UD"], - ["Laipacco", "UD"], - ["Udine", "UD"], - ["Baldasseria", "UD"], - ["Godia", "UD"], - ["Gervasutta", "UD"], - ], - "03010": [ - ["Filettino", "FR"], - ["Fumone", "FR"], - ["Torre Cajetani", "FR"], - ["Sgurgola", "FR"], - ["Certosa Di Trisulti", "FR"], - ["Trivigliano", "FR"], - ["Patrica", "FR"], - ["Serrone", "FR"], - ["Pitocco", "FR"], - ["Collepardo", "FR"], - ["Vico Nel Lazio", "FR"], - ["Patoni", "FR"], - ["La Forma", "FR"], - ["Madonna Delle Grazie", "FR"], - ["Trevi Nel Lazio", "FR"], - ["Quattro Strade", "FR"], - ["Piglio", "FR"], - ["San Giovanni", "FR"], - ["Acuto", "FR"], - ], - "03011": [["Monte San Marino", "FR"], ["Tecchiena", "FR"], ["Collelavena", "FR"], ["Alatri", "FR"]], - "03012": [["Osteria Della Fontana", "FR"], ["Anagni", "FR"]], - "03013": [["Tofe", "FR"], ["Porciano", "FR"], ["Ferentino", "FR"], ["Ferentino Stazione", "FR"]], - "03014": [["Fiuggi", "FR"], ["Fiuggi Fonte", "FR"]], - "03016": [["Guarcino", "FR"], ["Campocatino", "FR"]], - "03017": [["Morolo", "FR"], ["Cerquotti Madonna Del Piano", "FR"]], - "03018": [["Paliano", "FR"]], - "03019": [["Supino", "FR"]], - "03020": [ - ["Arnara", "FR"], - ["Pastena", "FR"], - ["Castro Dei Volsci", "FR"], - ["Pico", "FR"], - ["Strangolagalli", "FR"], - ["Torrice", "FR"], - ["Vallecorsa", "FR"], - ["Madonna Del Piano", "FR"], - ["Falvaterra", "FR"], - ["San Sosio", "FR"], - ["Giuliano Di Roma", "FR"], - ["Villa Santo Stefano", "FR"], - ], - "03021": [["Amaseno", "FR"]], - "03022": [ - ["Scrima", "FR"], - ["Rotabile", "FR"], - ["Colle Campano", "FR"], - ["Casavitola", "FR"], - ["Mozzano Torretta", "FR"], - ["Antica Colle Piscioso", "FR"], - ["Brecciaro", "FR"], - ["Boville Ernica", "FR"], - ], - "03023": [["Ceccano", "FR"]], - "03024": [["Ceprano", "FR"]], - "03025": [ - ["Anitrella", "FR"], - ["Colli", "FR"], - ["Monte San Giovanni Campano", "FR"], - ["Porrino", "FR"], - ["Chiaiamari", "FR"], - ], - "03026": [["Pofi", "FR"]], - "03027": [["Ripi", "FR"]], - "03028": [["San Giovanni Incarico", "FR"]], - "03029": [ - ["Scifelli", "FR"], - ["Colleberardi", "FR"], - ["Giglio", "FR"], - ["Castelmassimo", "FR"], - ["Veroli", "FR"], - ["Cotropagno", "FR"], - ["Case Campoli", "FR"], - ["Santa Francesca", "FR"], - ["Panetta", "FR"], - ["Sant'Angelo In Villa", "FR"], - ["Casamari", "FR"], - ], - "03030": [ - ["Santopadre", "FR"], - ["Villa Santa Lucia", "FR"], - ["Broccostella", "FR"], - ["Madonna Della Stella", "FR"], - ["Campoli Appennino", "FR"], - ["Colle San Magno", "FR"], - ["Casalattico", "FR"], - ["Posta Fibreno", "FR"], - ["Castrocielo", "FR"], - ["Piedimonte San Germano", "FR"], - ["Piedimonte San Germano Alta", "FR"], - ["Villa Felice", "FR"], - ["Vicalvi", "FR"], - ["Rocca D'Arce", "FR"], - ["Fontechiari", "FR"], - ["Castelliri", "FR"], - ["Colfelice", "FR"], - ["Coldragone", "FR"], - ["Pescosolido", "FR"], - ["Piumarola", "FR"], - ], - "03031": [["Aquino", "FR"]], - "03032": [["Isoletta", "FR"], ["Arce", "FR"]], - "03033": [["Scaffa", "FR"], ["Arpino", "FR"], ["Scaffa San Sossio", "FR"]], - "03034": [["Casalvieri", "FR"], ["Purgatorio", "FR"], ["Roselli", "FR"]], - "03035": [ - ["Fontana Liri", "FR"], - ["Fontana Liri Superiore", "FR"], - ["Collefontana", "FR"], - ["San Paolo", "FR"], - ], - "03036": [["Isola Del Liri", "FR"]], - "03037": [ - ["Pontecorvo", "FR"], - ["Sant'Oliva Di Pontecorvo", "FR"], - ["Sant'Oliva", "FR"], - ["Pastine Di Pontecorvo", "FR"], - ], - "03038": [["Roccasecca", "FR"], ["Roccasecca Stazione", "FR"], ["Caprile", "FR"]], - "03039": [["Sora", "FR"], ["Carnello", "FR"], ["Selva Di Sora", "FR"]], - "03040": [ - ["Selvacava", "FR"], - ["Cardito Di Vallerotonda", "FR"], - ["Pignataro Interamna", "FR"], - ["Valvori", "FR"], - ["Sant'Ambrogio Sul Garigliano", "FR"], - ["Gallinaro", "FR"], - ["Acquafondata", "FR"], - ["Villa Latina", "FR"], - ["Picinisco", "FR"], - ["San Biagio Saracinisco", "FR"], - ["Cerreto Di Vallerotonda", "FR"], - ["Casalcassinese", "FR"], - ["Sant'Andrea Del Garigliano", "FR"], - ["Pietrafitta", "FR"], - ["Belmonte Castello", "FR"], - ["Viticuso", "FR"], - ["San Vittore Del Lazio", "FR"], - ["Terelle", "FR"], - ["Coreno Ausonio", "FR"], - ["Ausonia", "FR"], - ["Vallemaio", "FR"], - ["Castelnuovo Parano", "FR"], - ["Settefrati", "FR"], - ["Vallerotonda", "FR"], - ], - "03041": [["Castello D'Alvito", "FR"], ["Sant'Onofrio", "FR"], ["Alvito", "FR"]], - "03042": [["Atina", "FR"], ["Casino Pica", "FR"], ["Atina Inferiore", "FR"]], - "03043": [ - ["Sant'Angelo In Theodice", "FR"], - ["San Bartolomeo", "FR"], - ["Montecassino", "FR"], - ["Caira", "FR"], - ["Cassino", "FR"], - ["Cappella Morrone", "FR"], - ], - "03044": [ - ["Pacitti", "FR"], - ["Sprumaro", "FR"], - ["Pastenelle", "FR"], - ["Cervaro", "FR"], - ["Santa Lucia", "FR"], - ], - "03045": [["Monticelli", "FR"], ["Esperia", "FR"], ["Esperia Inferiore", "FR"]], - "03046": [["San Donato Val Di Comino", "FR"]], - "03047": [["San Giorgio A Liri", "FR"]], - "03048": [["Sant'Apollinare", "FR"]], - "03049": [["Olivella", "FR"], ["Valleluce", "FR"], ["Sant'Elia Fiumerapido", "FR"], ["Portella", "FR"]], - "03100": [ - ["Frosinone", "FR"], - ["De Matteis", "FR"], - ["Madonna Della Neve", "FR"], - ["Frosinone Stazione", "FR"], - ], - "04010": [ - ["Sezze Stazione", "LT"], - ["Roccasecca Dei Volsci", "LT"], - ["Prossedi", "LT"], - ["Sezze Scalo", "LT"], - ["Giulianello", "LT"], - ["Roccagorga", "LT"], - ["Rocca Massima", "LT"], - ["Pisterzo", "LT"], - ["Sonnino Scalo", "LT"], - ["Cori", "LT"], - ["Bassiano", "LT"], - ["Maenza", "LT"], - ["Sonnino", "LT"], - ["Norma", "LT"], - ], - "04011": [ - ["Fossignano", "LT"], - ["Camilleri", "LT"], - ["Campoleone", "LT"], - ["Torre Del Padiglione", "LT"], - ["Carano", "LT"], - ["Campoverde", "LT"], - ["Aprilia", "LT"], - ["Casalazara", "LT"], - ["Vallelata", "LT"], - ["Pantanelle", "LT"], - ["Campo Di Carne", "LT"], - ["Cogna", "LT"], - ], - "04012": [["Le Castella", "LT"], ["Borgo Flora", "LT"], ["Cisterna Di Latina", "LT"]], - "04013": [ - ["Sermoneta", "LT"], - ["Monticchio", "LT"], - ["Carrara", "LT"], - ["Doganella Di Ninfa", "LT"], - ["Doganella", "LT"], - ["Latina Aeroporto", "LT"], - ["Sermoneta Scalo", "LT"], - ], - "04014": [["Pontinia", "LT"], ["Borgo Pasubio", "LT"]], - "04015": [["Abbazia Di Fossanova", "LT"], ["Fossanova", "LT"], ["Priverno", "LT"]], - "04016": [["Borgo Vodice", "LT"], ["Sabaudia", "LT"], ["Borgo San Donato", "LT"], ["Baia D'Argento", "LT"]], - "04017": [["San Felice Circeo", "LT"], ["Borgo Montenero", "LT"]], - "04018": [["Colli Di Suso", "LT"], ["Sezze", "LT"]], - "04019": [["Badino", "LT"], ["Borgo Hermada", "LT"], ["Terracina", "LT"], ["La Fiora", "LT"]], - "04020": [ - ["Ventotene", "LT"], - ["Santi Cosma E Damiano", "LT"], - ["Itri", "LT"], - ["Santo Stefano", "LT"], - ["Campodimele", "LT"], - ["Grunuovo", "LT"], - ["Monte San Biagio", "LT"], - ["Campomaggiore San Luca", "LT"], - ["San Lorenzo Di Santi Cosma E Damiano", "LT"], - ["Spigno Saturnia", "LT"], - ["Spigno Saturnia Inferiore", "LT"], - ["Grunuovo Di Santi Cosma E Damiano", "LT"], - ], - "04021": [["Suio Terme", "LT"], ["San Cataldo", "LT"], ["Castelforte", "LT"], ["Forme Di Suio", "LT"]], - "04022": [["Salto Di Fondi", "LT"], ["San Magno", "LT"], ["Fondi", "LT"]], - "04023": [ - ["Acquatraversa Di Formia", "LT"], - ["Penitro", "LT"], - ["Castellonorato", "LT"], - ["Trivio Di Formia", "LT"], - ["Vindicio Di Formia", "LT"], - ["Maranola", "LT"], - ["Formia", "LT"], - ], - "04024": [["Gaeta", "LT"]], - "04025": [["Valle Bernardo", "LT"], ["Lenola", "LT"]], - "04026": [ - ["Scauri", "LT"], - ["Tufo Di Minturno", "LT"], - ["Tremensuoli", "LT"], - ["Minturno", "LT"], - ["Santa Maria Infante", "LT"], - ["Marina Di Minturno", "LT"], - ], - "04027": [["Ponza", "LT"], ["Le Forna", "LT"]], - "04029": [["Sperlonga", "LT"]], - "04100": [ - ["Borgo Grappa", "LT"], - ["Borgo Podgora", "LT"], - ["Borgo Carso", "LT"], - ["Latina Scalo", "LT"], - ["Borgo San Michele", "LT"], - ["Borgo Montello", "LT"], - ["Borgo Piave", "LT"], - ["Foce Verde", "LT"], - ["Latina", "LT"], - ["Borgo Bainsizza", "LT"], - ["Borgo Faiti", "LT"], - ["Fogliano", "LT"], - ["Foro Appio", "LT"], - ["Tor Tre Ponti", "LT"], - ["Borgo Isonzo", "LT"], - ["Borgo Sabotino", "LT"], - ["Le Ferriere", "LT"], - ], - "02010": [ - ["Rivodutri", "RI"], - ["Borgo Velino", "RI"], - ["Micigliano", "RI"], - ["Borbona", "RI"], - ["Morro Reatino", "RI"], - ["Labro", "RI"], - ["Vallemare", "RI"], - ["Canetra Di Castel Sant'Angelo", "RI"], - ["Santa Croce Di Cittareale", "RI"], - ["Colli Sul Velino", "RI"], - ["Piedicolle", "RI"], - ["Castel Sant'Angelo", "RI"], - ["Santa Croce", "RI"], - ["Cittareale", "RI"], - ], - "02011": [["Accumoli", "RI"], ["Grisciano", "RI"]], - "02012": [ - ["Torrita", "RI"], - ["Santi Lorenzo E Flaviano", "RI"], - ["Preta", "RI"], - ["Collemoresco", "RI"], - ["Amatrice", "RI"], - ["Scai", "RI"], - ["Sommati", "RI"], - ["Santa Giusta", "RI"], - ], - "02013": [["Antrodoco", "RI"]], - "02014": [["Fantauzzi", "RI"], ["Cantalice", "RI"], ["San Liberato", "RI"]], - "02015": [["Cittaducale", "RI"], ["Grotti", "RI"], ["Santa Rufina", "RI"], ["Grotti Di Cittaducale", "RI"]], - "02016": [ - ["San Clemente Di Leonessa", "RI"], - ["Leonessa", "RI"], - ["Villa Bigioni", "RI"], - ["Piedelpoggio", "RI"], - ["Albaneto", "RI"], - ["Vindoli", "RI"], - ["Terzone", "RI"], - ], - "02018": [["Poggio Bustone", "RI"]], - "02019": [["Picciame", "RI"], ["Sigillo Di Posta", "RI"], ["Posta", "RI"], ["Favischio", "RI"]], - "02020": [ - ["Longone Sabino", "RI"], - ["Colle Di Tora", "RI"], - ["Turania", "RI"], - ["Belmonte In Sabina", "RI"], - ["Stipes", "RI"], - ["Collegiove", "RI"], - ["Varco Sabino", "RI"], - ["Concerviano", "RI"], - ["Nespolo", "RI"], - ["Ascrea", "RI"], - ["Marcetelli", "RI"], - ["Campolano", "RI"], - ["Paganico Sabino", "RI"], - ["Roccaranieri", "RI"], - ["Castel Di Tora", "RI"], - ["Vaccareccia", "RI"], - ], - "02021": [ - ["Corvaro", "RI"], - ["Poggiovalle Di Borgorose", "RI"], - ["Collemaggiore", "RI"], - ["Sant'Anatolia", "RI"], - ["Villerose", "RI"], - ["Grotti Di Borgorose", "RI"], - ["Torano", "RI"], - ["Poggiovalle", "RI"], - ["Borgorose", "RI"], - ], - "02022": [["Collalto Sabino", "RI"]], - "02023": [ - ["Fiamignano", "RI"], - ["Santa Lucia Di Fiamignano", "RI"], - ["Sant'Ippolito", "RI"], - ["Sant'Agapito", "RI"], - ["Santa Lucia", "RI"], - ["Peschieta", "RI"], - ], - "02024": [ - ["Pescorocchiano", "RI"], - ["Leofreni", "RI"], - ["Pace", "RI"], - ["Sant'Elpidio Di Pescorocchiano", "RI"], - ["Sant'Elpidio", "RI"], - ], - "02025": [ - ["Fiumata", "RI"], - ["Castelmareri", "RI"], - ["Capradosso", "RI"], - ["Borgo San Pietro", "RI"], - ["Petrella Salto", "RI"], - ], - "02026": [["Rocca Sinibalda", "RI"], ["Posticciola", "RI"]], - "02030": [ - ["Pozzaglia Sabina", "RI"], - ["Poggio San Lorenzo", "RI"], - ["Casaprota", "RI"], - ["Collelungo", "RI"], - ["Torricella In Sabina", "RI"], - ["Poggio Nativo", "RI"], - ["Collelungo Sabino", "RI"], - ["Monte Santa Maria", "RI"], - ["Frasso Sabino", "RI"], - ["Villetta Sant'Antonio", "RI"], - ], - "02031": [["Castelnuovo Di Farfa", "RI"]], - "02032": [ - ["Canneto Sabino", "RI"], - ["Prime Case", "RI"], - ["Borgo Salario", "RI"], - ["Talocci", "RI"], - ["Coltodino", "RI"], - ["Farfa", "RI"], - ["Passo Corese", "RI"], - ["Canneto", "RI"], - ["Borgo Quinzio", "RI"], - ["Fara In Sabina", "RI"], - ["Farfa Sabina", "RI"], - ["Corese Terra", "RI"], - ], - "02033": [["Ginestra Sabina", "RI"], ["Monteleone Sabino", "RI"]], - "02034": [["Bocchignano", "RI"], ["Montopoli Di Sabina", "RI"]], - "02035": [["Orvinio", "RI"]], - "02037": [["Fiacchini", "RI"], ["Osteria Nuova", "RI"], ["Cerdomare", "RI"], ["Poggio Moiano", "RI"]], - "02038": [["Scandriglia", "RI"], ["Ponticelli", "RI"]], - "02039": [["Toffia", "RI"]], - "02040": [ - ["Roccantica", "RI"], - ["Vacone", "RI"], - ["Cottanello", "RI"], - ["San Polo Sabino", "RI"], - ["San Polo", "RI"], - ["Mompeo", "RI"], - ["Configni", "RI"], - ["Fianello", "RI"], - ["Cantalupo In Sabina", "RI"], - ["Poggio Catino", "RI"], - ["Monte San Giovanni In Sabina", "RI"], - ["Montenero Sabino", "RI"], - ["Montebuono", "RI"], - ["Salisano", "RI"], - ["Tarano", "RI"], - ["Selci", "RI"], - ["Montasola", "RI"], - ], - "02041": [["Casperia", "RI"]], - "02042": [["Collevecchio", "RI"]], - "02043": [ - ["Montisola", "RI"], - ["Contigliano", "RI"], - ["San Filippo Di Contigliano", "RI"], - ["San Filippo", "RI"], - ], - "02044": [["Forano", "RI"], ["Gavignano Sabino", "RI"]], - "02045": [["Greccio", "RI"], ["Limiti Di Greccio", "RI"]], - "02046": [["Foglia", "RI"], ["Magliano Sabina", "RI"]], - "02047": [ - ["Castel San Pietro", "RI"], - ["Poggio Mirteto Scalo", "RI"], - ["Poggio Mirteto", "RI"], - ["Poggio Mirteto Stazione", "RI"], - ], - "02048": [["Stimigliano Stazione", "RI"], ["Stimigliano", "RI"], ["Stimigliano Scalo", "RI"]], - "02049": [["Torri In Sabina", "RI"]], - "02100": [ - ["Poggio Fidoni", "RI"], - ["Rieti", "RI"], - ["Casette", "RI"], - ["Poggio Perugino", "RI"], - ["San Giovanni Reatino", "RI"], - ["Vazia", "RI"], - ["Pie' Di Moggio", "RI"], - ["Monte Terminillo", "RI"], - ], - "00010": [ - ["Poli", "RM"], - ["Borgo Santa Maria", "RM"], - ["Montorio Romano", "RM"], - ["Setteville Di Guidonia", "RM"], - ["San Polo Dei Cavalieri", "RM"], - ["Casape", "RM"], - ["Sant'Angelo Romano", "RM"], - ["San Gregorio Da Sassola", "RM"], - ["Gallicano Nel Lazio", "RM"], - ["Setteville", "RM"], - ["Marcellina", "RM"], - ["Monteflavio", "RM"], - ["Moricone", "RM"], - ["Montelibretti", "RM"], - ], - "00011": [["Bagni Di Tivol", "RM"]], - "00012": [ - ["Villalba", "RM"], - ["Colle Verde", "RM"], - ["Guidonia Montecelio", "RM"], - ["Villanova", "RM"], - ["Albuccione", "RM"], - ["Montecelio", "RM"], - ["La Botte", "RM"], - ["Villanova Di Guidonia", "RM"], - ["Guidonia", "RM"], - ], - "00013": [ - ["Castelchiodato", "RM"], - ["Tor Lupara", "RM"], - ["Fonte Nuova", "RM"], - ["Torlupara Di Mentana", "RM"], - ["Santa Lucia", "RM"], - ["Mentana", "RM"], - ], - "00015": [["Monterotondo", "RM"], ["Monterotondo Stazione", "RM"]], - "00017": [["Nerola", "RM"], ["Acquaviva", "RM"]], - "00018": [["Palombara Sabina", "RM"], ["Cretone", "RM"]], - "00019": [ - ["Tivoli Terme", "RM"], - ["Pontelucano", "RM"], - ["Tivoli", "RM"], - ["Arci", "RM"], - ["Empolitana", "RM"], - ["Villa Adriana", "RM"], - ["Bivio San Polo", "RM"], - ], - "00020": [ - ["Jenne", "RM"], - ["Agosta", "RM"], - ["Pisoniano", "RM"], - ["Canterano", "RM"], - ["Altipiani Di Arcinazzo", "RM"], - ["Marano Equo", "RM"], - ["Ciciliano", "RM"], - ["Arcinazzo Romano", "RM"], - ["Percile", "RM"], - ["Vivaro Romano", "RM"], - ["Madonna Della Pace", "RM"], - ["Cervara Di Roma", "RM"], - ["Camerata Nuova", "RM"], - ["Riofreddo", "RM"], - ["Cerreto Laziale", "RM"], - ["Rocca Canterano", "RM"], - ["Mandela", "RM"], - ["Vallepietra", "RM"], - ["Vallinfreda", "RM"], - ["Cineto Romano", "RM"], - ["Sambuci", "RM"], - ["Roccagiovine", "RM"], - ["Saracinesco", "RM"], - ], - "00021": [["Affile", "RM"]], - "00022": [["Anticoli Corrado", "RM"]], - "00023": [["Arsoli", "RM"]], - "00024": [["Castel Madama", "RM"]], - "00025": [["Gerano", "RM"]], - "00026": [["Civitella", "RM"], ["Licenza", "RM"]], - "00027": [["Roviano", "RM"]], - "00028": [["Subiaco", "RM"]], - "00029": [["Vicovaro", "RM"]], - "00030": [ - ["Castel San Pietro Romano", "RM"], - ["Colonna", "RM"], - ["San Cesareo", "RM"], - ["Gorga", "RM"], - ["Labico", "RM"], - ["Montelanico", "RM"], - ["Capranica Prenestina", "RM"], - ["Guadagnolo", "RM"], - ["Rocca Di Cave", "RM"], - ["San Vito Romano", "RM"], - ["Colonna Stazione", "RM"], - ["Genazzano", "RM"], - ["Bellegra", "RM"], - ["Gavignano", "RM"], - ["Roiate", "RM"], - ["Rocca Santo Stefano", "RM"], - ], - "00031": [["Artena", "RM"], ["Macere", "RM"], ["Colubro", "RM"]], - "00032": [["Carpineto Romano", "RM"]], - "00033": [["San Bartolomeo", "RM"], ["Cave", "RM"]], - "00034": [["Colleferro Scalo", "RM"], ["Colleferro Stazione", "RM"], ["Colleferro", "RM"]], - "00035": [["Olevano Romano", "RM"]], - "00036": [["Palestrina", "RM"], ["Carchitti", "RM"]], - "00037": [["Segni", "RM"]], - "00038": [["Valmontone", "RM"]], - "00039": [["Valle Martella", "RM"], ["Zagarolo", "RM"]], - "00040": [ - ["Rocca Di Papa", "RM"], - ["Santa Maria Delle Mole", "RM"], - ["Tor San Lorenzo", "RM"], - ["Marina Di Ardea", "RM"], - ["Ardea", "RM"], - ["Ponte Sulla Moletta", "RM"], - ["Frattocchie", "RM"], - ], - "00041": [ - ["Cecchina Stazione", "RM"], - ["Cecchina", "RM"], - ["Pavona Stazione", "RM"], - ["Albano Laziale", "RM"], - ["Pavona", "RM"], - ], - "00042": [["Lido Dei Pini", "RM"], ["Anzio", "RM"], ["Lavinio Lido Di Enea", "RM"], ["Colonia Di Anzio", "RM"]], - "00043": [["Casabianca", "RM"], ["Ciampino Aeroporto", "RM"], ["Ciampino", "RM"]], - "00044": [["Frascati", "RM"], ["Vermicino", "RM"]], - "00045": [["Landi", "RM"], ["Pedica", "RM"], ["Genzano Di Roma", "RM"]], - "00046": [["Poggio Tulliano", "RM"], ["Grottaferrata", "RM"]], - "00047": [["Marino", "RM"]], - "00048": [["Nettuno", "RM"]], - "00049": [["Velletri", "RM"]], - "00050": [["Testa Di Lepre Di Sopra", "RM"]], - "00051": [["La Bianca", "RM"], ["Allumiere", "RM"]], - "00052": [ - ["Ceri", "RM"], - ["Marina Di Cerveteri", "RM"], - ["Cerveteri", "RM"], - ["Cerenova", "RM"], - ["Stazione Di Furbara", "RM"], - ["Furbara Cerenova", "RM"], - ["Borgo San Martino Di Cerveteri", "RM"], - ], - "00053": [["Civitavecchia", "RM"], ["Aurelia", "RM"], ["Aurelia Di Civitavecchia", "RM"]], - "00054": [ - ["Maccarese", "RM"], - ["Fregene", "RM"], - ["Testa Di Lepre", "RM"], - ["Isola Sacra", "RM"], - ["Fiumicino", "RM"], - ["Torrimpietra", "RM"], - ["Focene", "RM"], - ["Fiumicino Aeroporto", "RM"], - ["Ara Nova", "RM"], - ["Passo Oscuro", "RM"], - ], - "00055": [["Marina San Nicola", "RM"], ["Ladispoli", "RM"], ["Palo", "RM"]], - "00057": [["Malagrotta", "RM"], ["Pantano Di Grano", "RM"]], - "00058": [["Santa Marinella", "RM"], ["Santa Severa", "RM"]], - "00059": [["Tolfa", "RM"], ["Santa Severa Nord", "RM"]], - "00060": [ - ["Ponte Storto", "RM"], - ["Nazzano", "RM"], - ["Filacciano", "RM"], - ["Castelnuovo Di Porto", "RM"], - ["Terme Di Stiglian", "RM"], - ["Monte Caminetto", "RM"], - ["Belvedere", "RM"], - ["Torrita Tiberina", "RM"], - ["Bellavista", "RM"], - ["Mazzano Romano", "RM"], - ["Canale Monterano", "RM"], - ["Formello", "RM"], - ["Bivio Di Capanelle", "RM"], - ["Capena", "RM"], - ["Bagni Di Stigliano", "RM"], - ["Le Rughe", "RM"], - ["Riano", "RM"], - ["Sant'Oreste", "RM"], - ["Civitella San Paolo", "RM"], - ["Magliano Romano", "RM"], - ["Terrazze", "RM"], - ["Montevirginio", "RM"], - ["Girardi", "RM"], - ["Ponzano Romano", "RM"], - ["Sacrofano", "RM"], - ], - "00061": [["Anguillara Sabazia", "RM"]], - "00062": [["Bracciano", "RM"], ["Rinascente", "RM"], ["Castel Giuliano", "RM"], ["Vigna Di Valle", "RM"]], - "00063": [["Campagnano Di Roma", "RM"]], - "00065": [["Feronia", "RM"], ["Fiano Romano", "RM"]], - "00066": [["Manziana", "RM"], ["Quadroni", "RM"]], - "00067": [["Morlupo", "RM"]], - "00068": [["Rignano Flaminio", "RM"]], - "00069": [["Vicarello", "RM"], ["Trevignano Romano", "RM"]], - "00071": [["Pratica Di Mare", "RM"], ["Santa Palomba", "RM"], ["Pomezia", "RM"], ["Torvaianica", "RM"]], - "00072": [["Ariccia", "RM"], ["Galloro", "RM"]], - "00073": [["Laghetto Di Castel Gandolfo", "RM"], ["Castel Gandolfo", "RM"]], - "00074": [["Nemi", "RM"]], - "00075": [["Pascolare", "RM"], ["Lanuvio", "RM"]], - "00076": [["Lariano", "RM"]], - "00077": [["Laghetto Di Montecompatri", "RM"], ["Molara", "RM"], ["Montecompatri", "RM"]], - "00078": [["Monte Porzio Catone", "RM"], ["Armetta", "RM"]], - "00079": [["Rocca Priora", "RM"], ["Colle Di Fuori", "RM"]], - "00118": [["Roma", "RM"]], - "00119": [["Roma", "RM"], ["Ostia Antica", "RM"]], - "00120": [["Roma", "RM"]], - "00121": [["Roma", "RM"], ["Lido Di Ostia Ponente", "RM"]], - "00122": [["Roma", "RM"], ["Lido Di Ostia Levante", "RM"], ["Castel Fusano", "RM"], ["Castel Porziano", "RM"]], - "00123": [["La Storta", "RM"], ["Roma", "RM"], ["Isola Farnese", "RM"]], - "00124": [["Casal Palocco", "RM"], ["Roma", "RM"]], - "00125": [["Acilia", "RM"], ["Roma", "RM"]], - "00126": [["Roma", "RM"]], - "00127": [["Risaro", "RM"], ["Roma", "RM"], ["Mezzocammino", "RM"], ["Vitinia", "RM"]], - "00128": [ - ["Roma", "RM"], - ["Castel Di Decima", "RM"], - ["Castel Romano", "RM"], - ["Malpasso", "RM"], - ["Tor De' Cenci", "RM"], - ], - "00131": [["Roma", "RM"], ["Settecamini", "RM"]], - "00132": [ - ["Roma", "RM"], - ["Borgata Finocchio", "RM"], - ["Colle Della Valentina", "RM"], - ["Borgata Borghesiana", "RM"], - ], - "00133": [["Torre Gaia", "RM"], ["Torre Angela", "RM"], ["Roma", "RM"], ["Torrenova", "RM"]], - "00134": [["Castel Di Leva", "RM"], ["Divino Amore", "RM"], ["Roma", "RM"]], - "00135": [["Roma", "RM"], ["Borgata Ottavia", "RM"], ["La Giustiniana", "RM"]], - "00136": [["Roma", "RM"]], - "00137": [["Roma", "RM"]], - "00138": [ - ["Borgata Fidene", "RM"], - ["Roma", "RM"], - ["Marcigliana", "RM"], - ["Castel Giubileo", "RM"], - ["Settebagni", "RM"], - ], - "00139": [["Roma", "RM"]], - "00141": [["Roma", "RM"]], - "00142": [["Roma", "RM"]], - "00143": [["Roma", "RM"], ["Cecchignola", "RM"]], - "00144": [["Roma", "RM"], ["Decima", "RM"]], - "00145": [["Roma", "RM"]], - "00146": [["Roma", "RM"]], - "00147": [["Roma", "RM"]], - "00148": [["Borgata Corviale", "RM"], ["Roma", "RM"], ["Magliana Trullo", "RM"]], - "00149": [["Roma", "RM"]], - "00151": [["Roma", "RM"]], - "00152": [["Roma", "RM"]], - "00153": [["Roma", "RM"]], - "00154": [["Roma", "RM"]], - "00155": [["La Rustica", "RM"], ["Tor Sapienza", "RM"], ["Roma", "RM"]], - "00156": [["Roma", "RM"], ["Rebibbia", "RM"]], - "00157": [["Roma", "RM"]], - "00158": [["Roma", "RM"]], - "00159": [["Roma", "RM"]], - "00161": [["Roma", "RM"]], - "00162": [["Roma", "RM"]], - "00163": [["Roma", "RM"]], - "00164": [["Roma", "RM"]], - "00165": [["Roma", "RM"]], - "00166": [["Roma", "RM"], ["Borgata Casalotti", "RM"]], - "00167": [["Roma", "RM"]], - "00168": [["Roma", "RM"]], - "00169": [["Roma", "RM"], ["Torre Maura", "RM"], ["Torre Spaccata", "RM"]], - "00171": [["Roma", "RM"]], - "00172": [["Roma", "RM"]], - "00173": [["Roma", "RM"]], - "00174": [["Roma", "RM"]], - "00175": [["Roma", "RM"]], - "00176": [["Roma", "RM"]], - "00177": [["Roma", "RM"]], - "00178": [["Roma", "RM"], ["Torricola", "RM"], ["Capannelle", "RM"]], - "00179": [["Roma", "RM"]], - "00181": [["Roma", "RM"]], - "00182": [["Roma", "RM"]], - "00183": [["Roma", "RM"]], - "00184": [["Roma", "RM"]], - "00185": [["Roma", "RM"]], - "00186": [["Roma", "RM"]], - "00187": [["Roma", "RM"]], - "00188": [["Labaro", "RM"], ["Prima Porta", "RM"], ["Roma", "RM"]], - "00189": [["Roma", "RM"], ["Tomba Di Nerone", "RM"], ["Grottarossa", "RM"]], - "00191": [["Roma", "RM"]], - "00192": [["Roma", "RM"]], - "00193": [["Roma", "RM"]], - "00194": [["Roma", "RM"]], - "00195": [["Roma", "RM"]], - "00196": [["Roma", "RM"]], - "00197": [["Roma", "RM"]], - "00198": [["Roma", "RM"]], - "00199": [["Roma", "RM"]], - "01010": [ - ["Arlena Di Castro", "VT"], - ["Blera", "VT"], - ["Oriolo Romano", "VT"], - ["Vejano", "VT"], - ["Barbarano Romano", "VT"], - ["Gradoli", "VT"], - ["Piansano", "VT"], - ["Tessennano", "VT"], - ["Capodimonte", "VT"], - ["Villa San Giovanni In Tuscia", "VT"], - ["Cellere", "VT"], - ["Onano", "VT"], - ["Marta", "VT"], - ["Farnese", "VT"], - ["Civitella Cesi", "VT"], - ["Latera", "VT"], - ["Ischia Di Castro", "VT"], - ["Monte Romano", "VT"], - ], - "01011": [["Musignano", "VT"], ["Canino", "VT"]], - "01012": [["Vico Matrino", "VT"], ["Capranica", "VT"]], - "01014": [["Montalto Di Castro", "VT"], ["Pescia Romana", "VT"]], - "01015": [["Sutri", "VT"]], - "01016": [["Tarquinia", "VT"], ["Lido Di Tarquinia", "VT"], ["Marina Velca", "VT"]], - "01017": [["Tuscania", "VT"]], - "01018": [["Valentano", "VT"]], - "01019": [ - ["La Botte", "VT"], - ["Pietrara", "VT"], - ["Giardino", "VT"], - ["Tre Croci", "VT"], - ["Cura", "VT"], - ["Vetralla", "VT"], - ], - "01020": [ - ["Bomarzo", "VT"], - ["Lubriano", "VT"], - ["Celleno", "VT"], - ["Casenuove", "VT"], - ["San Michele In Teverina", "VT"], - ["Sipicciano", "VT"], - ["Proceno", "VT"], - ["Mugnano", "VT"], - ["San Lorenzo Nuovo", "VT"], - ["Civitella D'Agliano", "VT"], - ["Graffignano", "VT"], - ], - "01021": [["Acquapendente", "VT"], ["Torre Alfina", "VT"], ["Trevinano", "VT"]], - "01022": [["Civita", "VT"], ["Bagnoregio", "VT"], ["Vetriolo", "VT"], ["Castel Cellesi", "VT"]], - "01023": [["Bolsena", "VT"]], - "01024": [["Castiglione In Teverina", "VT"], ["Sermugnano", "VT"]], - "01025": [["Grotte Di Castro", "VT"]], - "01027": [["Le Mosse", "VT"], ["Montefiascone", "VT"], ["Zepponami", "VT"]], - "01028": [["Orte Scalo", "VT"], ["Orte", "VT"], ["Orte Stazione", "VT"]], - "01030": [ - ["Bassano Romano", "VT"], - ["Vitorchiano Stazione", "VT"], - ["Vitorchiano", "VT"], - ["Vallerano", "VT"], - ["Corchiano", "VT"], - ["Vasanello", "VT"], - ["Bassano In Teverina", "VT"], - ["Castel Sant'Elia", "VT"], - ["Carbognano", "VT"], - ["Canepina", "VT"], - ["Monterosi", "VT"], - ["Calcata", "VT"], - ["Faleria", "VT"], - ["Calcata Nuova", "VT"], - ], - "01032": [["Caprarola", "VT"]], - "01033": [ - ["Borghetto", "VT"], - ["Civita Castellana Stazione", "VT"], - ["Borghetto Di Civita Castellana Stazione", "VT"], - ["Civita Castellana", "VT"], - ], - "01034": [["Regolelli", "VT"], ["Fabrica Di Roma", "VT"]], - "01035": [["Scalo Teverina", "VT"], ["Gallese", "VT"]], - "01036": [["Nepi", "VT"]], - "01037": [["Lago Di Vico", "VT"], ["Ronciglione", "VT"]], - "01038": [["Soriano Nel Cimino", "VT"], ["Chia", "VT"]], - "01039": [["Vignanello", "VT"]], - "01100": [ - ["Fastello", "VT"], - ["Viterbo", "VT"], - ["Tobia", "VT"], - ["Magugnano", "VT"], - ["San Martino Al Cimino", "VT"], - ["Grotte Santo Stefano", "VT"], - ["La Quercia", "VT"], - ["Roccalvecce", "VT"], - ["Bagnaia", "VT"], - ], - "16010": [ - ["Prelo", "GE"], - ["Tiglieto", "GE"], - ["Castagna", "GE"], - ["Savignone", "GE"], - ["Acquasanta", "GE"], - ["Rossiglione", "GE"], - ["Crocefieschi", "GE"], - ["Mele", "GE"], - ["Manesseno", "GE"], - ["Isorelle", "GE"], - ["Ponte Di Savignone", "GE"], - ["Pedemonte", "GE"], - ["Carsi", "GE"], - ["Masone", "GE"], - ["Orero Di Serra Ricco'", "GE"], - ["Valbrevenna", "GE"], - ["Sant'Olcese", "GE"], - ["Vobbia", "GE"], - ["Piccarello", "GE"], - ["Mainetto", "GE"], - ["Serra Ricco'", "GE"], - ], - "16011": [["Pineta Di Arenzano", "GE"], ["Arenzano", "GE"]], - "16012": [["Busalla", "GE"], ["Sarissola", "GE"], ["Camarza", "GE"]], - "16013": [["Campo Ligure", "GE"]], - "16014": [ - ["Geo", "GE"], - ["Langasco", "GE"], - ["Isoverde", "GE"], - ["Guardia", "GE"], - ["Ceranesi", "GE"], - ["Pontasso", "GE"], - ["Ferriera", "GE"], - ["Campomorone", "GE"], - ["Santuario Della Guardia", "GE"], - ], - "16015": [["Orero", "GE"], ["Casella", "GE"]], - "16016": [["Sciarborasca", "GE"], ["Lerca", "GE"], ["Cogoleto", "GE"]], - "16017": [["Isola Del Cantone", "GE"]], - "16018": [["Giovi", "GE"], ["Mignanego", "GE"]], - "16019": [["Pieve", "GE"], ["Ronco Scrivia", "GE"], ["Borgo Fornari", "GE"]], - "16020": [["Fascia", "GE"], ["Cassingheno", "GE"], ["Gorreto", "GE"], ["Fontanarossa", "GE"]], - "16021": [["Bargagli", "GE"]], - "16022": [["Davagna", "GE"], ["Moranego", "GE"], ["Scoffera", "GE"], ["Meco", "GE"]], - "16023": [["Canale Fontanigorda", "GE"], ["Canale", "GE"], ["Fontanigorda", "GE"], ["Casoni", "GE"]], - "16024": [["Lumarzo", "GE"]], - "16025": [["Rondanina", "GE"], ["Ponte Trebbia", "GE"], ["Montebruno", "GE"]], - "16026": [["Trefontane", "GE"], ["Montoggio", "GE"]], - "16027": [["Propata", "GE"]], - "16028": [["Casanova", "GE"], ["Rovegno", "GE"]], - "16029": [["Fascia Di Carlo", "GE"], ["Torriglia", "GE"], ["Laccio", "GE"]], - "16030": [ - ["Zoagli", "GE"], - ["Sori", "GE"], - ["Sant'Anna", "GE"], - ["Capreno", "GE"], - ["Uscio", "GE"], - ["Colonia Arnaldi", "GE"], - ["Testana", "GE"], - ["Bargone", "GE"], - ["Canepa", "GE"], - ["Moneglia", "GE"], - ["Casarza Ligure", "GE"], - ["Cogorno", "GE"], - ["Tribogna", "GE"], - ["Castiglione Chiavarese", "GE"], - ["San Salvatore", "GE"], - ["Pieve Ligure", "GE"], - ["Avegno", "GE"], - ["Velva", "GE"], - ], - "16031": [["Poggio Favaro", "GE"], ["Bogliasco", "GE"], ["San Bernardo", "GE"]], - "16032": [ - ["San Rocco", "GE"], - ["San Fruttuoso", "GE"], - ["San Rocco Di Camogli", "GE"], - ["Camogli", "GE"], - ["San Fruttuoso Di Camogli", "GE"], - ["Ruta", "GE"], - ], - "16033": [["Lavagna", "GE"], ["Cavi", "GE"]], - "16034": [["Portofino", "GE"]], - "16035": [["San Michele Di Pagana", "GE"], ["San Massimo", "GE"], ["Rapallo", "GE"]], - "16036": [["Recco", "GE"]], - "16038": [["Santa Margherita Ligure", "GE"], ["Paraggi", "GE"], ["San Lorenzo Della Costa", "GE"]], - "16039": [ - ["Sestri Levante", "GE"], - ["Pila Sul Gromolo", "GE"], - ["Riva Trigoso", "GE"], - ["Santa Vittoria Di Libiola", "GE"], - ], - "16040": [ - ["Celesia", "GE"], - ["Leivi", "GE"], - ["San Colombano Certenoli", "GE"], - ["Pian Dei Ratti", "GE"], - ["Calvari", "GE"], - ["Piandifieno", "GE"], - ["Ognio", "GE"], - ["Neirone", "GE"], - ["Coreglia Ligure", "GE"], - ["Statale", "GE"], - ["Ne", "GE"], - ["Roccatagliata", "GE"], - ["Isolona", "GE"], - ["Orero", "GE"], - ["Reppia", "GE"], - ["Conscenti", "GE"], - ["Favale Di Malvaro", "GE"], - ], - "16041": [ - ["Giaiette", "GE"], - ["Prato Sopralacroce", "GE"], - ["Bertigaro", "GE"], - ["Borzonasca", "GE"], - ["Brizzolara", "GE"], - ], - "16042": [["Carasco", "GE"], ["Rivarola", "GE"], ["Graveglia", "GE"]], - "16043": [["Sant'Andrea Di Rovereto", "GE"], ["Chiavari", "GE"], ["Caperana", "GE"]], - "16044": [["Cicagna", "GE"], ["Monleone", "GE"]], - "16045": [["Lorsica", "GE"]], - "16046": [["Passo Del Bocco", "GE"], ["Borgonovo", "GE"], ["Borgonovo Ligure", "GE"], ["Mezzanego", "GE"]], - "16047": [["Moconesi", "GE"], ["Gattorna", "GE"], ["Ferrada", "GE"]], - "16048": [ - ["Rezzoaglio", "GE"], - ["Priosa", "GE"], - ["Parazzuolo", "GE"], - ["Magnasco", "GE"], - ["Cabanne", "GE"], - ["Alpepiana", "GE"], - ], - "16049": [["Amborzasco", "GE"], ["Allegrezze", "GE"], ["Santo Stefano D'Aveto", "GE"]], - "16100": [["Genova", "GE"]], - "16121": [["Genova", "GE"]], - "16122": [["Genova", "GE"]], - "16123": [["Genova", "GE"]], - "16124": [["Genova", "GE"]], - "16125": [["Genova", "GE"]], - "16126": [["Genova", "GE"]], - "16127": [["Genova", "GE"]], - "16128": [["Genova", "GE"]], - "16129": [["Genova", "GE"]], - "16131": [["Genova", "GE"]], - "16132": [["Genova", "GE"]], - "16133": [["Genova", "GE"], ["Apparizione", "GE"], ["Bavari", "GE"], ["San Desiderio", "GE"]], - "16134": [["Genova", "GE"]], - "16135": [["Genova", "GE"]], - "16136": [["Genova", "GE"]], - "16137": [["Genova", "GE"], ["Staglieno", "GE"]], - "16138": [["Genova", "GE"], ["Molassana", "GE"]], - "16139": [["Genova", "GE"]], - "16141": [["Genova", "GE"], ["Sant'Eusebio", "GE"]], - "16142": [["Genova", "GE"]], - "16143": [["Genova", "GE"]], - "16144": [["Genova", "GE"]], - "16145": [["Genova", "GE"]], - "16146": [["Genova", "GE"]], - "16147": [["Genova", "GE"], ["Sturla", "GE"]], - "16148": [["Genova", "GE"], ["Quarto Dei Mille", "GE"]], - "16149": [["Genova", "GE"], ["Sampierdarena", "GE"]], - "16151": [["Genova", "GE"], ["Campasso", "GE"]], - "16152": [["Cornigliano Ligure", "GE"], ["Coronata", "GE"], ["Genova", "GE"]], - "16153": [["Genova", "GE"], ["Borzoli", "GE"]], - "16154": [["Genova", "GE"], ["Sestri Ponente", "GE"], ["San Giovanni Battista", "GE"]], - "16155": [["Pegli", "GE"], ["Multedo", "GE"], ["Genova", "GE"]], - "16156": [["Genova", "GE"]], - "16157": [["Genova", "GE"], ["Pra'", "GE"], ["Palmaro Di Pra'", "GE"]], - "16158": [["Fabbriche", "GE"], ["Voltri", "GE"], ["Genova", "GE"]], - "16159": [["Genova", "GE"], ["Certosa Di Rivarolo Ligure", "GE"], ["Rivarolo Ligure", "GE"]], - "16161": [["Fegino", "GE"], ["Genova", "GE"], ["Teglia", "GE"]], - "16162": [["Genova", "GE"], ["Bolzaneto", "GE"]], - "16163": [["San Quirico In Val Polcevera", "GE"], ["Genova", "GE"]], - "16164": [["Genova", "GE"], ["Pontedecimo", "GE"]], - "16165": [["Struppa", "GE"], ["Genova", "GE"]], - "16166": [["Genova", "GE"], ["Quinto Al Mare", "GE"]], - "16167": [["Genova", "GE"], ["Nervi", "GE"], ["Sant'Ilario Ligure", "GE"]], - "18010": [ - ["Pietrabruna", "IM"], - ["Villa Faraldi", "IM"], - ["Riva Faraldi", "IM"], - ["Carpasio", "IM"], - ["Montalto Ligure", "IM"], - ["Cervo", "IM"], - ["Terzorio", "IM"], - ["Boscomare", "IM"], - ["Molini Di Triora", "IM"], - ["Badalucco", "IM"], - ["Santo Stefano Al Mare", "IM"], - ["Agaggio Inferiore", "IM"], - ["Triora", "IM"], - ], - "18011": [["Castellaro", "IM"]], - "18012": [ - ["Bordighera", "IM"], - ["Piani Di Borghetto", "IM"], - ["Bordighera Alta", "IM"], - ["Seborga", "IM"], - ["Vallebona", "IM"], - ["Borghetto San Nicolo'", "IM"], - ], - "18013": [ - ["Diano Castello", "IM"], - ["Diano Arentino", "IM"], - ["Diano Marina", "IM"], - ["Diano San Pietro", "IM"], - ], - "18014": [["Ospedaletti", "IM"]], - "18015": [["Riva Ligure", "IM"], ["Pompeiana", "IM"]], - "18016": [["San Bartolomeo Al Mare", "IM"]], - "18017": [ - ["San Lorenzo Al Mare", "IM"], - ["Cipressa", "IM"], - ["Costarainera", "IM"], - ["Civezza", "IM"], - ["Lingueglietta", "IM"], - ], - "18018": [["Taggia", "IM"], ["Arma Di Taggia", "IM"]], - "18019": [["Vallecrosia Alta", "IM"], ["Vallecrosia", "IM"]], - "18020": [ - ["Caravonica", "IM"], - ["Vasia", "IM"], - ["Dolcedo", "IM"], - ["Aquila Di Arroscia", "IM"], - ["Lucinasco", "IM"], - ["Borghetto D'Arroscia", "IM"], - ["Aurigo", "IM"], - ["Ranzo", "IM"], - ["Prela'", "IM"], - ], - "18021": [["Borgomaro", "IM"]], - "18022": [["Arzeno D'Oneglia", "IM"], ["Cesio", "IM"], ["Cartari", "IM"]], - "18023": [["Cosio Di Arroscia", "IM"]], - "18024": [["Case Di Nava", "IM"], ["Nava", "IM"], ["Pornassio", "IM"]], - "18025": [["Mendatica", "IM"], ["Montegrosso Pian Latte", "IM"], ["Piaggia", "CN"], ["Briga Alta", "CN"]], - "18026": [ - ["Armo", "IM"], - ["Calderara", "IM"], - ["Pieve Di Teco", "IM"], - ["Rezzo", "IM"], - ["Vessalico", "IM"], - ["Cenova", "IM"], - ], - "18027": [["Pontedassio", "IM"], ["Chiusanico", "IM"], ["Chiusavecchia", "IM"]], - "18030": [ - ["Airole", "IM"], - ["Rocchetta Nervina", "IM"], - ["Olivetta San Michele", "IM"], - ["Castel Vittorio", "IM"], - ], - "18031": [["Bajardo", "IM"]], - "18032": [["Perinaldo", "IM"]], - "18033": [["Camporosso Mare", "IM"], ["Camporosso", "IM"]], - "18034": [["Ceriana", "IM"]], - "18035": [["Dolceacqua", "IM"], ["Isolabona", "IM"], ["Apricale", "IM"]], - "18036": [["Soldano", "IM"], ["San Biagio Della Cima", "IM"]], - "18037": [["Pigna", "IM"]], - "18038": [ - ["Coldirodi", "IM"], - ["San Remo", "IM"], - ["San Bartolomeo", "IM"], - ["Borello", "IM"], - ["San Giacomo", "IM"], - ["Bussana", "IM"], - ["Poggio", "IM"], - ["Verezzo", "IM"], - ["San Romolo", "IM"], - ], - "18039": [ - ["Bevera", "IM"], - ["Sealza", "IM"], - ["Ventimiglia", "IM"], - ["Torri", "IM"], - ["Sant'Antonio", "IM"], - ["Grimaldi", "IM"], - ["Grimaldi Di Ventimiglia", "IM"], - ["Calvo", "IM"], - ["Latte", "IM"], - ["Trucco", "IM"], - ["Roverino", "IM"], - ], - "18100": [ - ["Imperia", "IM"], - ["Vasia", "IM"], - ["Dolcedo", "IM"], - ["Porto Maurizio", "IM"], - ["Borgo Primo", "IM"], - ["Prela'", "IM"], - ["Oneglia", "IM"], - ["Castelvecchio Di Santa Maria Maggiore", "IM"], - ["Caramagna Ligure", "IM"], - ], - "19010": [["Torza", "SP"], ["Maissana", "SP"]], - "19011": [["Bonassola", "SP"]], - "19012": [["Castello", "SP"], ["Carro", "SP"]], - "19013": [["Deiva Marina", "SP"]], - "19014": [["Framura", "SP"]], - "19015": [["Levanto", "SP"], ["Montale", "SP"]], - "19016": [["Monterosso Al Mare", "SP"]], - "19017": [["Manarola", "SP"], ["Riomaggiore", "SP"]], - "19018": [["Vernazza", "SP"], ["Corniglia", "SP"]], - "19020": [ - ["Bottagna", "SP"], - ["Calice Al Cornoviglio", "SP"], - ["Cavanella Vara", "SP"], - ["Pieve Di Zignago", "SP"], - ["Ponzo'", "SP"], - ["Fornola", "SP"], - ["Zignago", "SP"], - ["Piano Di Valeriano", "SP"], - ["Piano Di Follo", "SP"], - ["Follo", "SP"], - ["Padivarma", "SP"], - ["Suvero", "SP"], - ["Beverino", "SP"], - ["Mattarana", "SP"], - ["Valeriano", "SP"], - ["Carrodano", "SP"], - ["Borghetto Di Vara", "SP"], - ["Rocchetta Di Vara", "SP"], - ["Bastremoli", "SP"], - ["Tivegna", "SP"], - ["Valdurasca", "SP"], - ["Brugnato", "SP"], - ["Ponzo' Bovecchio", "SP"], - ["San Martino Di Durasca", "SP"], - ["Veppo", "SP"], - ["Madonna Di Buonviaggio", "SP"], - ["Piana Battolla", "SP"], - ["Vezzano Ligure", "SP"], - ["Pignone", "SP"], - ["Carpena", "SP"], - ["Sesta Godano", "SP"], - ["Prati", "SP"], - ["Ricco' Del Golfo Di Spezia", "SP"], - ["Bolano", "SP"], - ["Ceparana", "SP"], - ["San Benedetto", "SP"], - ], - "19021": [["Romito Magra", "SP"], ["Arcola", "SP"]], - "19025": [ - ["Portovenere", "SP"], - ["Le Grazie Varignano", "SP"], - ["Isola Palmaria", "SP"], - ["Le Grazie", "SP"], - ["Fezzano", "SP"], - ], - "19028": [ - ["Varese Ligure", "SP"], - ["San Pietro Vara", "SP"], - ["Scurtabo'", "SP"], - ["Comuneglia", "SP"], - ["Porciorasco", "SP"], - ], - "19030": [["Fiumaretta", "SP"]], - "19031": [ - ["Fiumaretta Di Ameglia", "SP"], - ["Montemarcello", "SP"], - ["Ameglia", "SP"], - ["Bocca Di Magra", "SP"], - ], - "19032": [ - ["Serra", "SP"], - ["Tellaro", "SP"], - ["Lerici", "SP"], - ["Pugliola", "SP"], - ["Fiascherino", "SP"], - ["San Terenzo", "SP"], - ], - "19033": [["Molicciara", "SP"], ["Colombiera", "SP"], ["Castelnuovo Magra", "SP"]], - "19034": [ - ["Luni", "SP"], - ["Ortonovo", "SP"], - ["Dogana", "SP"], - ["Isola Di Ortonovo", "SP"], - ["Casano", "SP"], - ["Luni Mare", "SP"], - ["Nicola", "SP"], - ["Serravalle", "SP"], - ], - "19037": [["Ponzano Magra", "SP"], ["Ponzano Superiore", "SP"], ["Santo Stefano Di Magra", "SP"]], - "19038": [ - ["Sarzana", "SP"], - ["Falcinello", "SP"], - ["Marinella Di Sarzana", "SP"], - ["Sarzanello", "SP"], - ["San Lazzaro", "SP"], - ["Marinella", "SP"], - ["Santa Caterina", "SP"], - ], - "19100": [["La Spezia", "SP"]], - "19121": [["Laspezia", "SP"]], - "19122": [["Laspezia", "SP"]], - "19123": [["Fabiano", "SP"], ["Chiappa", "SP"], ["Laspezia", "SP"], ["Pegazzano", "SP"]], - "19124": [["Laspezia", "SP"], ["La Spezia", "SP"]], - "19125": [["Laspezia", "SP"], ["Migliarina", "SP"]], - "19126": [["Isola", "SP"], ["Laspezia", "SP"]], - "19131": [["Laspezia", "SP"], ["Cadimare", "SP"]], - "19132": [["Marola", "SP"], ["Laspezia", "SP"], ["Campiglia", "SP"]], - "19133": [["Biassa", "SP"], ["Laspezia", "SP"]], - "19134": [["Laspezia", "SP"], ["Marinasco", "SP"], ["La Foce", "SP"]], - "19135": [["Laspezia", "SP"], ["San Venerio", "SP"]], - "19136": [["Termo", "SP"], ["Laspezia", "SP"], ["Melara", "SP"], ["Limone", "SP"]], - "19137": [["Laspezia", "SP"], ["Pitelli", "SP"]], - "19138": [["Laspezia", "SP"], ["San Bartolomeo", "SP"]], - "19139": [["Muggiano", "SP"], ["Laspezia", "SP"]], - "12071": [["Massimino", "SV"], ["Bagnasco", "CN"]], - "17010": [["Osiglia", "SV"], ["Giusvalla", "SV"]], - "17011": [["Albisola Superiore", "SV"], ["Albisola Capo", "SV"], ["Ellera", "SV"]], - "17012": [["Albissola Marina", "SV"]], - "17013": [["Murialdo", "SV"], ["Valle", "SV"], ["Valle Di Murialdo", "SV"], ["Piano", "SV"]], - "17014": [ - ["San Giuseppe Di Cairo", "SV"], - ["Bragno", "SV"], - ["Rocchetta Cairo", "SV"], - ["San Giuseppe", "SV"], - ["Ferrania", "SV"], - ["Cairo Montenotte", "SV"], - ], - "17015": [["Celle Ligure", "SV"]], - "17017": [["Roccavignale", "SV"], ["Millesimo", "SV"], ["Cosseria", "SV"]], - "17019": [["Alpicella", "SV"], ["Casanova", "SV"], ["Varazze", "SV"], ["Faie", "SV"], ["Pero", "SV"]], - "17020": [ - ["Bardino Nuovo", "SV"], - ["Stellanello", "SV"], - ["Calice Ligure", "SV"], - ["Tovo San Giacomo", "SV"], - ["Balestrino", "SV"], - ["Magliolo", "SV"], - ["Testico", "SV"], - ["Bardino Vecchio", "SV"], - ["Rialto", "SV"], - ], - "17021": [["Alassio", "SV"], ["Moglio", "SV"]], - "17022": [["Borgio Verezzi", "SV"], ["Borgio", "SV"]], - "17023": [["Ceriale", "SV"]], - "17024": [ - ["Orco Feglino", "SV"], - ["Varigotti", "SV"], - ["Feglino", "SV"], - ["Finalborgo", "SV"], - ["Finale Ligure", "SV"], - ["Gorra", "SV"], - ], - "17025": [["Loano", "SV"]], - "17026": [["Noli", "SV"]], - "17027": [["Giustenice", "SV"], ["Pietra Ligure", "SV"]], - "17028": [["Bergeggi", "SV"], ["Spotorno", "SV"], ["Vezzi Portio", "SV"]], - "17030": [["Erli", "SV"], ["Castelbianco", "SV"], ["Nasino", "SV"]], - "17031": [ - ["San Fedele", "SV"], - ["Bastia", "SV"], - ["Leca", "SV"], - ["Lusignano", "SV"], - ["Albenga", "SV"], - ["Campochiesa", "SV"], - ], - "17032": [["Arnasco", "SV"], ["Vendone", "SV"]], - "17033": [["Villafranca", "SV"], ["Garlenda", "SV"], ["Casanova Lerrone", "SV"]], - "17034": [["Castelvecchio Di Rocca Barbena", "SV"]], - "17035": [["Cisano Sul Neva", "SV"]], - "17037": [["Pogli", "SV"], ["Onzo", "SV"], ["Ortovero", "SV"]], - "17038": [["Villanova D'Albenga", "SV"]], - "17039": [["Zuccarello", "SV"]], - "17040": [["Mioglia", "SV"]], - "17041": [["Altare", "SV"], ["Cadibona", "SV"]], - "17042": [["Giovo Ligure", "SV"], ["Giovo", "SV"], ["Pontinvrea", "SV"]], - "17043": [["Plodio", "SV"], ["Pallare", "SV"], ["Piani", "SV"], ["Carcare", "SV"]], - "17044": [ - ["Santa Giustina", "SV"], - ["San Martino Stella", "SV"], - ["San Martino", "SV"], - ["Stella", "SV"], - ["San Bernardo", "SV"], - ], - "17045": [["Mallare", "SV"], ["Bormida", "SV"]], - "17046": [["Sassello", "SV"], ["Palo", "SV"], ["Piampaludo", "SV"]], - "17047": [["Vado Ligure", "SV"], ["Valleggia", "SV"], ["Quiliano", "SV"]], - "17048": [ - ["Olba", "SV"], - ["San Pietro D'Olba", "SV"], - ["Vara", "SV"], - ["Vara Inferiore", "SV"], - ["Vara Superiore", "SV"], - ["Urbe", "SV"], - ], - "17051": [["Andora", "SV"], ["Marina Di Andora", "SV"]], - "17052": [["Borghetto Santo Spirito", "SV"]], - "17053": [["Laigueglia", "SV"]], - "17054": [["Boissano", "SV"]], - "17055": [["Toirano", "SV"]], - "17056": [["Cengio", "SV"]], - "17057": [["Calizzano", "SV"], ["Bardineto", "SV"], ["Caragna", "SV"]], - "17058": [["Piana Crixia", "SV"], ["Dego", "SV"]], - "17100": [ - ["Savona", "SV"], - ["Santuario", "SV"], - ["Santuario Di Savona", "SV"], - ["Zinola", "SV"], - ["Legino", "SV"], - ["Lavagnola", "SV"], - ["Fornaci", "SV"], - ], - "24010": [ - ["Dossena", "BG"], - ["Vedeseta", "BG"], - ["Costa Serina", "BG"], - ["Ubiale", "BG"], - ["Olmo Al Brembo", "BG"], - ["Valleve", "BG"], - ["Ubiale Clanezzo", "BG"], - ["Branzi", "BG"], - ["Muggiasca", "BG"], - ["Valnegra", "BG"], - ["Colla", "BG"], - ["Moio De' Calvi", "BG"], - ["Piazzatorre", "BG"], - ["Roncobello", "BG"], - ["Piazzolo", "BG"], - ["Carona", "BG"], - ["Cusio", "BG"], - ["Camerata Cornello", "BG"], - ["Peghera", "BG"], - ["Ornica", "BG"], - ["Cassiglio", "BG"], - ["Foppolo", "BG"], - ["Botta Di Sedrina", "BG"], - ["Ponteranica", "BG"], - ["Sorisole", "BG"], - ["Mezzoldo", "BG"], - ["Clanezzo", "BG"], - ["Santa Brigida", "BG"], - ["Botta", "BG"], - ["Isola Di Fondra", "BG"], - ["Bordogna", "BG"], - ["Algua", "BG"], - ["Petosino", "BG"], - ["Taleggio", "BG"], - ["Valtorta", "BG"], - ["Averara", "BG"], - ["Fondra", "BG"], - ["Olda", "BG"], - ["Lenna", "BG"], - ["Bracca", "BG"], - ["Blello", "BG"], - ["Sedrina", "BG"], - ], - "24011": [["Alme'", "BG"]], - "24012": [ - ["Laxolo", "BG"], - ["San Gottardo", "BG"], - ["Gerosa", "BG"], - ["Brembilla", "BG"], - ["Val Brembilla", "BG"], - ], - "24013": [["Oltre Il Colle", "BG"]], - "24014": [["Piazza Brembana", "BG"]], - "24015": [["San Giovanni Bianco", "BG"]], - "24016": [["Santa Croce", "BG"], ["San Pellegrino Terme", "BG"]], - "24017": [["Cornalba", "BG"], ["Serina", "BG"]], - "24018": [["Villa D'Alme'", "BG"]], - "24019": [["Poscante", "BG"], ["Spino", "BG"], ["Zogno", "BG"], ["Ambria", "BG"]], - "24020": [ - ["Selvino", "BG"], - ["Bondione", "BG"], - ["Villa Di Serio", "BG"], - ["Negrone", "BG"], - ["Cene", "BG"], - ["Casnigo", "BG"], - ["Piario", "BG"], - ["Ardesio", "BG"], - ["Gorle", "BG"], - ["Parre", "BG"], - ["Songavazzo", "BG"], - ["Fiumenero", "BG"], - ["Fino Del Monte", "BG"], - ["Dezzo", "BG"], - ["Valgoglio", "BG"], - ["Cerete Basso", "BG"], - ["Ponte Selva", "BG"], - ["Ranica", "BG"], - ["Boario", "BG"], - ["Premolo", "BG"], - ["Peia", "BG"], - ["Cerete", "BG"], - ["Oneta", "BG"], - ["Torre Boldone", "BG"], - ["Rovetta", "BG"], - ["Gorno", "BG"], - ["Aviatico", "BG"], - ["Scanzorosciate", "BG"], - ["Gavarno", "BG"], - ["Parre Ponte Selva", "BG"], - ["San Lorenzo Di Rovetta", "BG"], - ["Pradalunga", "BG"], - ["Onore", "BG"], - ["Gromo", "BG"], - ["Valbondione", "BG"], - ["Bratto", "BG"], - ["Gandellino", "BG"], - ["Colzate", "BG"], - ["Vilminore", "BG"], - ["Scanzo", "BG"], - ["Castione Della Presolana", "BG"], - ["Azzone", "BG"], - ["Oltressenda Alta", "BG"], - ["Cantoniera Della Presolana", "BG"], - ["Vilminore Di Scalve", "BG"], - ["Colere", "BG"], - ["Schilpario", "BG"], - ["Villa D'Ogna", "BG"], - ["Tribulina", "BG"], - ["Villassio", "BG"], - ["Fiorano Al Serio", "BG"], - ["Rosciate", "BG"], - ["Lizzola", "BG"], - ["Cornale", "BG"], - ], - "24021": [ - ["Comenduno", "BG"], - ["Abbazia", "BG"], - ["Albino", "BG"], - ["Vall'Alta", "BG"], - ["Desenzano Al Serio", "BG"], - ["Bondo Petello", "BG"], - ], - "24022": [["Alzano Lombardo", "BG"], ["Nese", "BG"]], - "24023": [["Clusone", "BG"]], - "24024": [["Gandino", "BG"]], - "24025": [["Orezzo", "BG"], ["Gazzaniga", "BG"]], - "24026": [["Cazzano Sant'Andrea", "BG"], ["Leffe", "BG"]], - "24027": [["Gavarno Rinnovata", "BG"], ["Nembro", "BG"]], - "24028": [["Ponte Nossa", "BG"]], - "24029": [["Vertova", "BG"]], - "24030": [ - ["Camoneone", "BG"], - ["Paladina", "BG"], - ["Ponte Giurino", "BG"], - ["Caprino Bergamasco", "BG"], - ["Crocette", "BG"], - ["Valbrembo", "BG"], - ["Strozza", "BG"], - ["Mapello", "BG"], - ["Celana", "BG"], - ["Berbenno", "BG"], - ["Costa Valle Imagna", "BG"], - ["Capizzone", "BG"], - ["Terno D'Isola", "BG"], - ["Caprino", "BG"], - ["Ambivere", "BG"], - ["Brembate Di Sopra", "BG"], - ["Presezzo", "BG"], - ["Corna Imagna", "BG"], - ["Mozzo", "BG"], - ["Carvico", "BG"], - ["Barzana", "BG"], - ["Roncola", "BG"], - ["Medolago", "BG"], - ["Solza", "BG"], - ["Bedulita", "BG"], - ["Sant'Antonio", "BG"], - ["Pontida", "BG"], - ["Fuipiano Valle Imagna", "BG"], - ["Locatello", "BG"], - ["Scano Al Brembo", "BG"], - ["Gromlongo", "BG"], - ["Almenno San Bartolomeo", "BG"], - ["Palazzago", "BG"], - ["Villa D'Adda", "BG"], - ], - "24031": [["Almenno San Salvatore", "BG"]], - "24033": [["Calusco D'Adda", "BG"]], - "24034": [["Cisano Bergamasco", "BG"]], - "24035": [["Curno", "BG"]], - "24036": [["Ponte San Pietro", "BG"]], - "24037": [["Rota D'Imagna", "BG"], ["Brumano", "BG"], ["Frontale", "BG"], ["Calchera", "BG"]], - "24038": [["Mazzoleni", "BG"], ["Selino Basso", "BG"], ["Valsecca", "BG"], ["Sant'Omobono Terme", "BG"]], - "24039": [["Sotto Il Monte Giovanni Xxiii", "BG"], ["Piazza Caduti", "BG"]], - "24040": [ - ["Suisio", "BG"], - ["Lallio", "BG"], - ["Castel Rozzone", "BG"], - ["Grumello Del Piano", "BG"], - ["Isso", "BG"], - ["Casirate D'Adda", "BG"], - ["Arcene", "BG"], - ["Bonate Sotto", "BG"], - ["Madone", "BG"], - ["Boltiere", "BG"], - ["Zingonia", "BG"], - ["Levate", "BG"], - ["Pontirolo Nuovo", "BG"], - ["Canonica D'Adda", "BG"], - ["Arzago D'Adda", "BG"], - ["Bottanuco", "BG"], - ["Filago", "BG"], - ["Fornovo San Giovanni", "BG"], - ["Osio Sopra", "BG"], - ["Verdellino", "BG"], - ["Ghiaie", "BG"], - ["Stezzano", "BG"], - ["Calvenzano", "BG"], - ["Bonate Sopra", "BG"], - ["Pognano", "BG"], - ["Comun Nuovo", "BG"], - ["Ciserano", "BG"], - ["Chignolo D'Isola", "BG"], - ["Misano Di Gera D'Adda", "BG"], - ["Pagazzano", "BG"], - ["Barbata", "BG"], - ], - "24041": [["Brembate", "BG"], ["Grignano", "BG"]], - "24042": [["Capriate San Gervasio", "BG"], ["San Gervasio D'Adda", "BG"], ["Crespi D'Adda", "BG"]], - "24043": [["Vidalengo", "BG"], ["Caravaggio", "BG"], ["Masano", "BG"]], - "24044": [["Dalmine", "BG"], ["Sforzatica", "BG"], ["Sabbio Bergamasco", "BG"]], - "24045": [["Badalasco", "BG"], ["Fara Gera D'Adda", "BG"]], - "24046": [["Osio Sotto", "BG"]], - "24047": [["Geromina", "BG"], ["Treviglio", "BG"], ["Castel Cerreto", "BG"]], - "24048": [["Treviolo", "BG"]], - "24049": [["Verdello", "BG"]], - "24050": [ - ["Bariano", "BG"], - ["Torre Pallavicina", "BG"], - ["Mozzanica", "BG"], - ["Cortenuova", "BG"], - ["Lurano", "BG"], - ["Malpaga", "BG"], - ["Cavernago", "BG"], - ["Pumenengo", "BG"], - ["Zanica", "BG"], - ["Palosco", "BG"], - ["Mornico Al Serio", "BG"], - ["Calcinate", "BG"], - ["Cividate Al Piano", "BG"], - ["Ghisalba", "BG"], - ["Grassobbio", "BG"], - ["Covo", "BG"], - ["Morengo", "BG"], - ["Orio Al Serio", "BG"], - ["Spirano", "BG"], - ], - "24051": [["Antegnate", "BG"]], - "24052": [["Azzano San Paolo", "BG"]], - "24053": [["Brignano Gera D'Adda", "BG"]], - "24054": [["Calcio", "BG"]], - "24055": [["Cologno Al Serio", "BG"]], - "24056": [["Fontanella", "BG"]], - "24057": [["Martinengo", "BG"]], - "24058": [ - ["Romano Di Lombardia", "BG"], - ["Fara Olivana", "BG"], - ["Fara Olivana Con Sola", "BG"], - ["Sola", "BG"], - ], - "24059": [["Basella", "BG"], ["Urgnano", "BG"]], - "24060": [ - ["Gaverina Terme", "BG"], - ["Viadanica", "BG"], - ["Sovere", "BG"], - ["Castelli Calepio", "BG"], - ["Credaro", "BG"], - ["Ranzanico", "BG"], - ["Casco", "BG"], - ["Carobbio Degli Angeli", "BG"], - ["Bianzano", "BG"], - ["Endine", "BG"], - ["Gorlago", "BG"], - ["Bossico", "BG"], - ["Chiuduno", "BG"], - ["Monasterolo", "BG"], - ["Torre De' Roveri", "BG"], - ["Entratico", "BG"], - ["Berzo San Fermo", "BG"], - ["Telgate", "BG"], - ["Pianico", "BG"], - ["Spinone Al Lago", "BG"], - ["Villongo", "BG"], - ["Zandobbio", "BG"], - ["Parzanica", "BG"], - ["Foresto Sparso", "BG"], - ["Rogno", "BG"], - ["Borgo Di Terzo", "BG"], - ["Brusaporto", "BG"], - ["Adrara San Martino", "BG"], - ["Cividino", "BG"], - ["Endine Gaiano", "BG"], - ["Castel De' Conti", "BG"], - ["San Paolo D'Argon", "BG"], - ["Casazza", "BG"], - ["Solto Collina", "BG"], - ["Piangaiano", "BG"], - ["Cenate Sopra", "BG"], - ["Celatica", "BG"], - ["Vigolo", "BG"], - ["Grone", "BG"], - ["Predore", "BG"], - ["Tolari", "BG"], - ["Costa Di Mezzate", "BG"], - ["Montello", "BG"], - ["Gandosso", "BG"], - ["Vigano San Martino", "BG"], - ["Adrara San Rocco", "BG"], - ["Bolgare", "BG"], - ["Fonteno", "BG"], - ["Tavernola Bergamasca", "BG"], - ["Bagnatica", "BG"], - ["Monasterolo Del Castello", "BG"], - ["Riva Di Solto", "BG"], - ], - "24061": [["Albano Sant'Alessandro", "BG"]], - "24062": [["Costa Volpino", "BG"]], - "24063": [["Castro", "BG"], ["Fonderia Di Lovere", "BG"]], - "24064": [["Grumello Del Monte", "BG"]], - "24065": [["Lovere", "BG"]], - "24066": [["Pedrengo", "BG"]], - "24067": [["Sarnico", "BG"]], - "24068": [["Seriate", "BG"], ["Cassinone", "BG"]], - "24069": [["Cenate Di Sotto", "BG"], ["Luzzana", "BG"], ["Cenate Sotto", "BG"], ["Trescore Balneario", "BG"]], - "24100": [["Bergamo", "BG"]], - "24121": [["Bergamo", "BG"]], - "24122": [["Bergamo", "BG"]], - "24123": [["Bergamo", "BG"], ["Valtesse", "BG"]], - "24124": [["Redona", "BG"], ["Bergamo", "BG"]], - "24125": [["Boccaleone", "BG"], ["Bergamo", "BG"]], - "24126": [["Colognola Al Piano", "BG"], ["Malpensata", "BG"], ["Campagnola", "BG"], ["Bergamo", "BG"]], - "24127": [["Bergamo", "BG"]], - "24128": [["Bergamo", "BG"], ["Loreto", "BG"]], - "24129": [["Bergamo", "BG"], ["Longuelo", "BG"]], - "25010": [ - ["Campione Del Garda", "BS"], - ["San Zeno Naviglio", "BS"], - ["Visano", "BS"], - ["San Felice Del Benaco", "BS"], - ["Acquafredda", "BS"], - ["Remedello Di Sotto", "BS"], - ["Isorella", "BS"], - ["Limone Sul Garda", "BS"], - ["San Martino Della Battaglia", "BS"], - ["Campione", "BS"], - ["Rivoltella", "BS"], - ["Tremosine", "BS"], - ["Remedello Di Sopra", "BS"], - ["Remedello", "BS"], - ["Pozzolengo", "BS"], - ["Montirone", "BS"], - ["Vesio", "BS"], - ["Borgosatollo", "BS"], - ], - "25011": [["Calcinatello", "BS"], ["Calcinato", "BS"], ["Ponte San Marco", "BS"]], - "25012": [["Viadana", "BS"], ["Calvisano", "BS"], ["Malpaga", "BS"], ["Mezzane", "BS"]], - "25013": [["Carpenedolo", "BS"]], - "25014": [["Capodimonte", "BS"], ["Castenedolo", "BS"]], - "25015": [["Desenzano Del Garda", "BS"]], - "25016": [["Ghedi", "BS"]], - "25017": [["Lonato", "BS"], ["Sedena", "BS"], ["Centenaro", "BS"], ["Esenta", "BS"]], - "25018": [["Vighizzolo", "BS"], ["Sant'Antonio", "BS"], ["Montichiari", "BS"], ["Novagli", "BS"]], - "25019": [["Colombare Di Sirmione", "BS"], ["Sirmione", "BS"]], - "25020": [ - ["Scarpizzolo", "BS"], - ["Cignano", "BS"], - ["Offlaga", "BS"], - ["Gambara", "BS"], - ["San Gervasio Bresciano", "BS"], - ["Cigole", "BS"], - ["Faverzano", "BS"], - ["Poncarale", "BS"], - ["Capriano Del Colle", "BS"], - ["Corticelle Pieve", "BS"], - ["Bassano Bresciano", "BS"], - ["Fiesse", "BS"], - ["Milzano", "BS"], - ["San Paolo", "BS"], - ["Flero", "BS"], - ["Pralboino", "BS"], - ["Azzano Mella", "BS"], - ["Quinzanello", "BS"], - ["Seniga", "BS"], - ["Pavone Del Mella", "BS"], - ["Alfianello", "BS"], - ["Dello", "BS"], - ], - "25021": [["Bagnolo Mella", "BS"]], - "25022": [["Borgo San Giacomo", "BS"], ["Motella", "BS"], ["Farfengo", "BS"], ["Padernello", "BS"]], - "25023": [["Gottolengo", "BS"]], - "25024": [["Castelletto", "BS"], ["Castelletto Di Leno", "BS"], ["Porzano", "BS"], ["Leno", "BS"]], - "25025": [["Manerbio", "BS"]], - "25026": [["Pontevico", "BS"]], - "25027": [["Quinzano D'Oglio", "BS"]], - "25028": [["Verolanuova", "BS"], ["Cadignano", "BS"]], - "25029": [["Verolavecchia", "BS"]], - "25030": [ - ["Longhena", "BS"], - ["Pievedizio", "BS"], - ["Pompiano", "BS"], - ["Mairano", "BS"], - ["Ludriano", "BS"], - ["Roncadelle", "BS"], - ["Barbariga", "BS"], - ["Torbole Casaglia", "BS"], - ["Brandico", "BS"], - ["Berlingo", "BS"], - ["Erbusco", "BS"], - ["Castelcovati", "BS"], - ["Torbiato", "BS"], - ["Castrezzato", "BS"], - ["Roccafranca", "BS"], - ["Maclodio", "BS"], - ["Urago D'Oglio", "BS"], - ["Rudiano", "BS"], - ["Cossirano", "BS"], - ["Paratico", "BS"], - ["Villa Pedergnano", "BS"], - ["Lograto", "BS"], - ["Comezzano Cizzago", "BS"], - ["Villachiara", "BS"], - ["Zocco", "BS"], - ["Orzivecchi", "BS"], - ["Castel Mella", "BS"], - ["Comezzano", "BS"], - ["Cizzago", "BS"], - ["Coccaglio", "BS"], - ["Trenzano", "BS"], - ["Corzano", "BS"], - ["Adro", "BS"], - ], - "25031": [["Capriolo", "BS"]], - "25032": [["Chiari", "BS"]], - "25033": [["Cologne", "BS"]], - "25034": [["Orzinuovi", "BS"], ["Coniolo", "BS"]], - "25035": [["Ospitaletto", "BS"]], - "25036": [["Palazzolo Sull'Oglio", "BS"], ["San Pancrazio", "BS"]], - "25037": [["Pontoglio", "BS"]], - "25038": [["Duomo", "BS"], ["Sant'Andrea", "BS"], ["Rovato", "BS"], ["Lodetto", "BS"], ["Sant'Anna", "BS"]], - "25039": [["Travagliato", "BS"]], - "25040": [ - ["Forno D'Allione", "BS"], - ["Cerveno", "BS"], - ["Badetto", "BS"], - ["Plemo", "BS"], - ["Incudine", "BS"], - ["Monticelli Brusati", "BS"], - ["Lozio", "BS"], - ["Forno Allione", "BS"], - ["Corte Franca", "BS"], - ["Galleno", "BS"], - ["Borgonato", "BS"], - ["Nigoline", "BS"], - ["Malonno", "BS"], - ["Bienno", "BS"], - ["Artogne", "BS"], - ["Saviore Dell'Adamello", "BS"], - ["Timoline", "BS"], - ["Monno", "BS"], - ["Bonomelli", "BS"], - ["Angolo Terme", "BS"], - ["Sacca", "BS"], - ["Cevo", "BS"], - ["Berzo Demo", "BS"], - ["Prestine", "BS"], - ["Gianico", "BS"], - ["Colombaro", "BS"], - ["Braone", "BS"], - ["Esine", "BS"], - ["Santicolo", "BS"], - ["Ono San Pietro", "BS"], - ["Corteno Golgi", "BS"], - ["Parmezzana Calzana", "BS"], - ["Ceto", "BS"], - ["Berzo Inferiore", "BS"], - ["Cividate Camuno", "BS"], - ], - "25041": [["Boario Terme", "BS"], ["Erbanno", "BS"]], - "25042": [["Borno", "BS"]], - "25043": [["Astrio", "BS"], ["Pescarzo", "BS"], ["Breno", "BS"]], - "25044": [["Capo Di Ponte", "BS"]], - "25045": [["Castegnato", "BS"]], - "25046": [["Bornato", "BS"], ["Cazzago San Martino", "BS"], ["Calino", "BS"], ["Pedrocca", "BS"]], - "25047": [["Gorzone", "BS"], ["Darfo Boario Terme", "BS"], ["Darfo", "BS"]], - "25048": [["Cortenedolo", "BS"], ["Edolo", "BS"], ["Sonico", "BS"]], - "25049": [["Pilzone", "BS"], ["Iseo", "BS"], ["Clusane", "BS"]], - "25050": [ - ["Paderno Franciacorta", "BS"], - ["Provezze", "BS"], - ["Temu'", "BS"], - ["Stadolina", "BS"], - ["Zone", "BS"], - ["Camignone", "BS"], - ["Ossimo Superiore", "BS"], - ["Peschiera Maraglio", "BS"], - ["Sellero", "BS"], - ["Vione", "BS"], - ["Ossimo Inferiore", "BS"], - ["Rodengo Saiano", "BS"], - ["Ossimo", "BS"], - ["Novelle", "BS"], - ["Fontane", "BS"], - ["Ponte Cingoli", "BS"], - ["Crist", "BS"], - ["Monte Isola", "BS"], - ["Pontagna", "BS"], - ["Cimbergo", "BS"], - ["Zurane", "BS"], - ["Siviano", "BS"], - ["Provaglio D'Iseo", "BS"], - ["Monterotondo", "BS"], - ["Passirano", "BS"], - ["Valle Di Saviore", "BS"], - ["Ome", "BS"], - ["Niardo", "BS"], - ["Gresine", "BS"], - ["Paisco Loveno", "BS"], - ["Pian Camuno", "BS"], - ["Paspardo", "BS"], - ["Losine", "BS"], - ], - "25051": [["Cedegolo", "BS"]], - "25052": [["Pian Di Borno", "BS"], ["Cogno", "BS"], ["Annunciata", "BS"], ["Piancogno", "BS"]], - "25053": [["Malegno", "BS"]], - "25054": [["Marone", "BS"]], - "25055": [["Pisogne", "BS"], ["Toline", "BS"], ["Gratacasolo", "BS"]], - "25056": [["Ponte Di Legno", "BS"]], - "25057": [["Sale Marasino", "BS"]], - "25058": [["Sulzano", "BS"]], - "25059": [["Vezza D'Oglio", "BS"]], - "25060": [ - ["Pezzaze", "BS"], - ["Cellatica", "BS"], - ["Tavernole Sul Mella", "BS"], - ["Lodrino", "BS"], - ["Polaveno", "BS"], - ["Gombio", "BS"], - ["Marcheno", "BS"], - ["Stravignino", "BS"], - ["Brozzo", "BS"], - ["Fantasina", "BS"], - ["Marmentino", "BS"], - ["Collebeato", "BS"], - ["Collio", "BS"], - ["Lavone", "BS"], - ["San Colombano", "BS"], - ["Lavone Di Pezzaze", "BS"], - ["Brione", "BS"], - ], - "25061": [["Irma", "BS"], ["Bovegno", "BS"]], - "25062": [["San Vigilio", "BS"], ["Concesio", "BS"]], - "25063": [["Gardone Val Trompia", "BS"], ["Magno", "BS"]], - "25064": [["Piazza", "BS"], ["Ronco", "BS"], ["Mandolossa", "BS"], ["Gussago", "BS"]], - "25065": [ - ["Lumezzane Pieve", "BS"], - ["Lumezzane Sant'Apollonio", "BS"], - ["Pieve", "BS"], - ["Sant'Apollonio", "BS"], - ["Lumezzane", "BS"], - ["San Sebastiano", "BS"], - ], - "25068": [["Ponte Zanano", "BS"], ["Zanano", "BS"], ["Sarezzo", "BS"]], - "25069": [["Carcina", "BS"], ["Cogozzo", "BS"], ["Villa Carcina", "BS"]], - "25070": [ - ["Preseglie", "BS"], - ["Trebbio", "BS"], - ["Sabbio Chiese", "BS"], - ["Mura", "BS"], - ["Barghe", "BS"], - ["Capovalle", "BS"], - ["Sottocastello", "BS"], - ["Treviso Bresciano", "BS"], - ["Anfo", "BS"], - ["Gazzane", "BS"], - ["Provaglio Val Sabbia", "BS"], - ["Casto", "BS"], - ["Ponte Caffaro", "BS"], - ["Caino", "BS"], - ["San Faustino", "BS"], - ["Livemmo", "BS"], - ["Bione", "BS"], - ["Pertica Alta", "BS"], - ], - "25071": [["Agnosine", "BS"]], - "25072": [["Bagolino", "BS"]], - "25073": [["Bovezzo", "BS"]], - "25074": [["Idro", "BS"], ["Lavenone", "BS"], ["Crone", "BS"]], - "25075": [["Nave", "BS"]], - "25076": [["Odolo", "BS"]], - "25077": [["Roe' Volciano", "BS"], ["Roe'", "BS"]], - "25078": [["Forno D'Ono", "BS"], ["Pertica Bassa", "BS"], ["Vestone", "BS"], ["Nozza", "BS"]], - "25079": [["Vobarno", "BS"], ["Carpeneda", "BS"], ["Pompegnino", "BS"], ["Degagna", "BS"]], - "25080": [ - ["Padenghe Sul Garda", "BS"], - ["Valvestino", "BS"], - ["Vallio Terme", "BS"], - ["Soiano Del Lago", "BS"], - ["Mazzano", "BS"], - ["Ciliverghe", "BS"], - ["Calvagese Della Riviera", "BS"], - ["Moniga Del Garda", "BS"], - ["Soiano", "BS"], - ["Castello", "BS"], - ["Molinetto", "BS"], - ["Gardola", "BS"], - ["Serle", "BS"], - ["Magasa", "BS"], - ["Paitone", "BS"], - ["Carzago Riviera", "BS"], - ["Manerba Del Garda", "BS"], - ["Carzago Della Riviera", "BS"], - ["Nuvolento", "BS"], - ["Moerna", "BS"], - ["Chiesa", "BS"], - ["Solarolo", "BS"], - ["Case Nuove", "BS"], - ["Puegnago Sul Garda", "BS"], - ["Nuvolera", "BS"], - ["Polpenazze Del Garda", "BS"], - ["Prevalle", "BS"], - ["Muscoline", "BS"], - ["Tignale", "BS"], - ["Raffa", "BS"], - ], - "25081": [["Bedizzole", "BS"], ["Campagnola", "BS"]], - "25082": [["Botticino Sera", "BS"], ["Botticino Mattina", "BS"], ["Botticino", "BS"], ["San Gallo", "BS"]], - "25083": [["San Michele", "BS"], ["Gardone Riviera", "BS"], ["Fasano Del Garda", "BS"], ["Montecucco", "BS"]], - "25084": [["Gargnano", "BS"], ["Bogliaco", "BS"], ["Navazzo", "BS"]], - "25085": [["San Giacomo", "BS"], ["San Biagio", "BS"], ["Sopraponte", "BS"], ["Gavardo", "BS"]], - "25086": [["Rezzato", "BS"], ["Virle Treponti", "BS"]], - "25087": [["Barbarano", "BS"], ["Campoverde", "BS"], ["Salo'", "BS"]], - "25088": [["Toscolano Maderno", "BS"], ["Maderno", "BS"]], - "25089": [["Bostone", "BS"], ["Villanuova Sul Clisi", "BS"]], - "25100": [["Brescia", "BS"]], - "25121": [["Brescia", "BS"]], - "25122": [["Brescia", "BS"]], - "25123": [["Brescia", "BS"]], - "25124": [["Brescia", "BS"]], - "25125": [["Brescia", "BS"]], - "25126": [["Brescia", "BS"]], - "25127": [["Brescia", "BS"]], - "25128": [["Brescia", "BS"]], - "25129": [["Brescia", "BS"], ["Bettole Di Buffalora", "BS"]], - "25131": [["Fornaci", "BS"], ["Brescia", "BS"]], - "25132": [["Brescia", "BS"], ["Mandolossa Di Brescia", "BS"]], - "25133": [["Brescia", "BS"], ["Mompiano", "BS"]], - "25134": [["San Polo", "BS"], ["Brescia", "BS"]], - "25135": [["Brescia", "BS"], ["Caionvico", "BS"], ["Sant'Eufemia Della Fonte", "BS"]], - "25136": [["Stocchetta", "BS"], ["Brescia", "BS"]], - "22010": [ - ["San Nazzaro Val Cavargna", "CO"], - ["Urio", "CO"], - ["Stazzona", "CO"], - ["Dosso Del Liro", "CO"], - ["Germasino", "CO"], - ["Peglio", "CO"], - ["San Gregorio", "CO"], - ["Plesio", "CO"], - ["Carate Urio", "CO"], - ["Laglio", "CO"], - ["Brienno", "CO"], - ["Musso", "CO"], - ["Albogasio", "CO"], - ["Bene Lario", "CO"], - ["Livo", "CO"], - ["Montemezzo", "CO"], - ["Calozzo", "CO"], - ["Ossuccio", "CO"], - ["Cusino", "CO"], - ["Carlazzo", "CO"], - ["Garzeno", "CO"], - ["Acquaseria", "CO"], - ["Santa Maria", "CO"], - ["Claino Con Osteno", "CO"], - ["Cremia", "CO"], - ["Oria", "CO"], - ["Sala Comacina", "CO"], - ["Mezzegra", "CO"], - ["San Bartolomeo Val Cavargna", "CO"], - ["Azzano", "CO"], - ["Codogna", "CO"], - ["Val Rezzo", "CO"], - ["Trezzone", "CO"], - ["Gera Lario", "CO"], - ["Colonno", "CO"], - ["Sorico", "CO"], - ["Argegno", "CO"], - ["Moltrasio", "CO"], - ["Piano Porlezza", "CO"], - ["Valsolda", "CO"], - ["Cavargna", "CO"], - ["Santa Maria Rezzonico", "CO"], - ["San Pietro Sovera", "CO"], - ["Sant'Abbondio", "CO"], - ["Corrido", "CO"], - ["Pianello Del Lario", "CO"], - ["San Siro", "CO"], - ["Rezzonico", "CO"], - ["Consiglio Di Rumo", "CO"], - ["Grandola Ed Uniti", "CO"], - ], - "22011": [["Cadenabbia", "CO"], ["Griante", "CO"]], - "22012": [["Cernobbio", "CO"]], - "22013": [["Vercana", "CO"], ["Domaso", "CO"]], - "22014": [["Dongo", "CO"]], - "22015": [["Gravedona", "CO"]], - "22016": [["Lenno", "CO"], ["Tremezzina", "CO"]], - "22017": [["Menaggio", "CO"]], - "22018": [["Porlezza", "CO"], ["Cima", "CO"]], - "22019": [["Tremezzo", "CO"]], - "22020": [ - ["Nesso", "CO"], - ["San Fermo Della Battaglia", "CO"], - ["Pare'", "CO"], - ["Schignano", "CO"], - ["Cerano D'Intelvi", "CO"], - ["Camnago Faloppio", "CO"], - ["Veleso", "CO"], - ["Pognana Lario", "CO"], - ["Lemna", "CO"], - ["Ramponio Verna", "CO"], - ["Boscone", "CO"], - ["Pigra", "CO"], - ["Zelbio", "CO"], - ["Gaggino", "CO"], - ["Blevio", "CO"], - ["Pellio Intelvi", "CO"], - ["Faggeto Lario", "CO"], - ["Laino", "CO"], - ["Pellio", "CO"], - ["Dizzasco", "CO"], - ["Torno", "CO"], - ["Camnago", "CO"], - ["Faloppio", "CO"], - ["Occagno", "CO"], - ["Bizzarone", "CO"], - ["Ponna", "CO"], - ["Drezzo", "CO"], - ], - "22021": [["Bellagio", "CO"], ["San Giovanni Di Bellagio", "CO"]], - "22022": [["Casasco D'Intelvi", "CO"]], - "22023": [["Castiglione D'Intelvi", "CO"]], - "22024": [["Lanzo D'Intelvi", "CO"], ["Scaria", "CO"]], - "22025": [["Lezzeno", "CO"]], - "22026": [["Maslianico", "CO"]], - "22027": [["Ronago", "CO"]], - "22028": [["Blessagno", "CO"], ["San Fedele Intelvi", "CO"]], - "22029": [["Uggiate Trevano", "CO"]], - "22030": [ - ["Lipomo", "CO"], - ["Castelmarte", "CO"], - ["Corneno", "CO"], - ["Orsenigo", "CO"], - ["Penzano", "CO"], - ["Lasnigo", "CO"], - ["Longone Al Segrino", "CO"], - ["Galliano", "CO"], - ["Montorfano", "CO"], - ["Rezzago", "CO"], - ["Civenna", "CO"], - ["Caglio", "CO"], - ["Magreglio", "CO"], - ["Caslino D'Erba", "CO"], - ["Barni", "CO"], - ["Eupilio", "CO"], - ["Pusiano", "CO"], - ["Sormano", "CO"], - ["Proserpio", "CO"], - ], - "22031": [["Albavilla", "CO"]], - "22032": [["Albese Con Cassano", "CO"]], - "22033": [["Asso", "CO"]], - "22034": [["Brunate", "CO"]], - "22035": [["Canzo", "CO"]], - "22036": [["Erba", "CO"], ["Arcellasco", "CO"]], - "22037": [["Ponte Lambro", "CO"]], - "22038": [["Tavernerio", "CO"], ["Solzago", "CO"]], - "22039": [["Valbrona", "CO"], ["Osigo", "CO"]], - "22040": [ - ["Brenna", "CO"], - ["Alzate Brianza", "CO"], - ["Lurago D'Erba", "CO"], - ["Alserio", "CO"], - ["Nobile", "CO"], - ["Fabbrica Durini", "CO"], - ["Anzano Del Parco", "CO"], - ["Monguzzo", "CO"], - ], - "22041": [["Colverde", "CO"], ["Gironico Al Piano", "CO"], ["Gironico", "CO"]], - "22042": [["Cavallasca", "CO"]], - "22043": [["Cagno", "CO"], ["Solbiate", "CO"]], - "22044": [["Inverigo", "CO"], ["Cremnago", "CO"], ["Romano' Brianza", "CO"]], - "22045": [["Lambrugo", "CO"]], - "22046": [["Merone", "CO"]], - "22060": [ - ["Cabiate", "CO"], - ["Figino Serenza", "CO"], - ["Cucciago", "CO"], - ["Campione D'Italia", "CO"], - ["Novedrate", "CO"], - ["Montesolaro", "CO"], - ["Arosio", "CO"], - ["Carimate", "CO"], - ["Carugo", "CO"], - ], - "22063": [ - ["Asnago Di Cantu'", "CO"], - ["Cantu' Asnago", "CO"], - ["Vighizzolo Di Cantu'", "CO"], - ["Cascina Amata", "CO"], - ["Cantu'", "CO"], - ["Mirabello Di Cantu'", "CO"], - ], - "22066": [["Mariano Comense", "CO"], ["Perticato", "CO"]], - "22069": [["Rovellasca", "CO"]], - "22070": [ - ["Luisago", "CO"], - ["Bregnano", "CO"], - ["Puginate", "CO"], - ["Lucino", "CO"], - ["Capiago Intimiano", "CO"], - ["Lurago Marinone", "CO"], - ["Guanzate", "CO"], - ["Portichetto", "CO"], - ["Casanova Lanza", "CO"], - ["Montano Lucino", "CO"], - ["Intimiano", "CO"], - ["Rodero", "CO"], - ["Capiago", "CO"], - ["Minoprio", "CO"], - ["San Giorgio", "CO"], - ["Casnate", "CO"], - ["Bulgarograsso", "CO"], - ["Appiano Gentile", "CO"], - ["Grandate", "CO"], - ["Beregazzo Con Figliaro", "CO"], - ["Vertemate Con Minoprio", "CO"], - ["Binago", "CO"], - ["Limido Comasco", "CO"], - ["Senna Comasco", "CO"], - ["Carbonate", "CO"], - ["Albiolo", "CO"], - ["San Michele", "CO"], - ["Cascina Restelli", "CO"], - ["Casnate Con Bernate", "CO"], - ["Beregazzo", "CO"], - ["Concagno", "CO"], - ["Montano", "CO"], - ["Cirimido", "CO"], - ["Valmorea", "CO"], - ["Cassina Rizzardi", "CO"], - ["Locate Varesino", "CO"], - ["Rovello Porro", "CO"], - ["Fenegro'", "CO"], - ["Castelnuovo Bozzente", "CO"], - ["Veniano", "CO"], - ["Figliaro", "CO"], - ["Oltrona Di San Mamette", "CO"], - ], - "22071": [["Bulgorello", "CO"], ["Caslino Al Piano", "CO"], ["Cadorago", "CO"]], - "22072": [["Cermenate", "CO"]], - "22073": [["Andrate", "CO"], ["Fino Mornasco", "CO"], ["Molinetto", "CO"]], - "22074": [["Lomazzo", "CO"], ["Manera", "CO"]], - "22075": [["Lurate Caccivio", "CO"]], - "22076": [["Mozzate", "CO"]], - "22077": [["Olgiate Comasco", "CO"]], - "22078": [["Turate", "CO"]], - "22079": [["Villa Guardia", "CO"]], - "22100": [ - ["Monte Olimpino", "CO"], - ["Civiglio", "CO"], - ["Breccia", "CO"], - ["Lora", "CO"], - ["Rebbio", "CO"], - ["Camerlata", "CO"], - ["Tavernola", "CO"], - ["Camnago Volta", "CO"], - ["Albate", "CO"], - ["Como", "CO"], - ["Ponte Chiasso", "CO"], - ], - "26010": [ - ["Ripalta Nuova", "CR"], - ["Casale Cremasco", "CR"], - ["Capralba", "CR"], - ["Vaiano Cremasco", "CR"], - ["Olmeneta", "CR"], - ["Robecco D'Oglio", "CR"], - ["Ripalta Guerina", "CR"], - ["Chieve", "CR"], - ["Bagnolo Cremasco", "CR"], - ["Montodine", "CR"], - ["Bolzone", "CR"], - ["Salvirola", "CR"], - ["Zappello", "CR"], - ["Cremosano", "CR"], - ["Credera", "CR"], - ["Fiesco", "CR"], - ["Dovera", "CR"], - ["Moscazzano", "CR"], - ["Sergnano", "CR"], - ["Camisano", "CR"], - ["Casaletto Vaprio", "CR"], - ["Pozzaglio Ed Uniti", "CR"], - ["Credera Rubbiano", "CR"], - ["Casale Cremasco Vidolasco", "CR"], - ["Ripalta Cremasca", "CR"], - ["Casaletto Ceredano", "CR"], - ["Campagnola Cremasca", "CR"], - ["Casalsigone", "CR"], - ["Ricengo", "CR"], - ["Rovereto", "CR"], - ["Castelvisconti", "CR"], - ["Pianengo", "CR"], - ["Offanengo", "CR"], - ["Rubbiano", "CR"], - ["Pozzaglio", "CR"], - ["Ripalta Arpina", "CR"], - ["Corte De' Frati", "CR"], - ["Capergnanica", "CR"], - ["Izano", "CR"], - ["Monte Cremasco", "CR"], - ["Azzanello", "CR"], - ["Castel Gabbiano", "CR"], - ], - "26011": [["Casalbuttano", "CR"], ["Casalbuttano Ed Uniti", "CR"]], - "26012": [["Castelleone", "CR"]], - "26013": [ - ["Crema", "CR"], - ["Santo Stefano In Vairano", "CR"], - ["Ombriano", "CR"], - ["Santa Maria Della Croce", "CR"], - ["Sabbioni", "CR"], - ], - "26014": [["Casaletto Di Sopra", "CR"], ["Romanengo", "CR"]], - "26015": [["Soresina", "CR"]], - "26016": [["Spino D'Adda", "CR"]], - "26017": [["Torlino Vimercati", "CR"], ["Quintano", "CR"], ["Trescore Cremasco", "CR"], ["Pieranica", "CR"]], - "26018": [["Trigolo", "CR"]], - "26019": [["Vailate", "CR"]], - "26020": [ - ["Cappella Cantone", "CR"], - ["Corte De' Cortesi Con Cignone", "CR"], - ["Madignano", "CR"], - ["Crotta D'Adda", "CR"], - ["Gombito", "CR"], - ["Cignone", "CR"], - ["Corte De' Cortesi", "CR"], - ["Formigara", "CR"], - ["Spinadesco", "CR"], - ["Bordolano", "CR"], - ["Casalmorano", "CR"], - ["Fengo", "CR"], - ["Agnadello", "CR"], - ["Ticengo", "CR"], - ["Acquanegra Cremonese", "CR"], - ["Cascine Gandini", "CR"], - ["Scannabue", "CR"], - ["Genivolta", "CR"], - ["Palazzo Pignano", "CR"], - ["Cumignano Sul Naviglio", "CR"], - ["San Bassano", "CR"], - ], - "26021": [["Barzaniga", "CR"], ["Annicco", "CR"]], - "26022": [["San Martino In Beliseto", "CR"], ["Castelverde", "CR"], ["Costa Sant'Abramo", "CR"]], - "26023": [["Farfengo", "CR"], ["Grumello Cremonese Ed Uniti", "CR"], ["Grumello Cremonese", "CR"]], - "26024": [["Paderno Ponchielli", "CR"]], - "26025": [["Pandino", "CR"], ["Nosadello", "CR"]], - "26026": [["Pizzighettone", "CR"], ["Roggione", "CR"], ["Regona", "CR"]], - "26027": [["Rivolta D'Adda", "CR"]], - "26028": [["Casanova Del Morbasco", "CR"], ["Sesto Cremonese", "CR"], ["Sesto Ed Uniti", "CR"]], - "26029": [["Gallignano", "CR"], ["Soncino", "CR"]], - "26030": [ - ["Spineda", "CR"], - ["Gabbioneta", "CR"], - ["Ca' De' Mari", "CR"], - ["Pessina Cremonese", "CR"], - ["Volongo", "CR"], - ["Malagnino", "CR"], - ["Cicognolo", "CR"], - ["Solarolo Rainerio", "CR"], - ["Calvatone", "CR"], - ["Voltido", "CR"], - ["Tornata", "CR"], - ["Gabbioneta Binanuova", "CR"], - ["Binanuova", "CR"], - ["Gadesco Pieve Delmona", "CR"], - ["Ardole San Marino", "CR"], - ["Casteldidone", "CR"], - ["Cappella De' Picenardi", "CR"], - ], - "26031": [["Isola Dovarese", "CR"]], - "26032": [["Ostiano", "CR"]], - "26033": [["Pieve Terzagni", "CR"], ["Pescarolo Ed Uniti", "CR"], ["Pescarolo", "CR"]], - "26034": [["Piadena", "CR"], ["Drizzona", "CR"]], - "26035": [["Pieve San Giacomo", "CR"]], - "26036": [["Rivarolo Del Re Ed Uniti", "CR"], ["Rivarolo Del Re", "CR"]], - "26037": [["San Giovanni In Croce", "CR"]], - "26038": [["Torre De' Picenardi", "CR"], ["Ca' D'Andrea", "CR"], ["San Lorenzo De' Picenardi", "CR"]], - "26039": [["Ca' De' Stefani", "CR"], ["Vescovato", "CR"]], - "26040": [ - ["Gussola", "CR"], - ["Derovere", "CR"], - ["Gerre De' Caprioli", "CR"], - ["Bonemerse", "CR"], - ["Cella Dati", "CR"], - ["Pieve D'Olmi", "CR"], - ["San Martino Del Lago", "CR"], - ["Castelponzone", "CR"], - ["Scandolara Ravara", "CR"], - ["Torricella Del Pizzo", "CR"], - ["Martignana Di Po", "CR"], - ], - "26041": [ - ["Casalbellotto", "CR"], - ["Casalmaggiore", "CR"], - ["Vicomoscano", "CR"], - ["Roncadello", "CR"], - ["Quattrocase", "CR"], - ["Vicoboneghisio", "CR"], - ["Agoiolo", "CR"], - ["Vicobellignano", "CR"], - ], - "26042": [["Cingia De' Botti", "CR"]], - "26043": [["Persichello", "CR"], ["Dosimo", "CR"], ["Persico Dosimo", "CR"]], - "26044": [["Grontardo", "CR"], ["Levata", "CR"]], - "26045": [["Motta Baluffi", "CR"]], - "26046": [["San Daniele Po", "CR"]], - "26047": [["Scandolara Ripa D'Oglio", "CR"]], - "26048": [["San Salvatore", "CR"], ["Sospiro", "CR"]], - "26049": [["Stagno Lombardo", "CR"]], - "26100": [ - ["Cava Tigozzi", "CR"], - ["Boschetto", "CR"], - ["San Felice", "CR"], - ["Migliaro", "CR"], - ["Maristella", "CR"], - ["Cremona", "CR"], - ], - "23801": [["Calolziocorte", "LC"], ["Rossino", "LC"]], - "23802": [["Carenno", "LC"]], - "23804": [["Monte Marenzo", "LC"]], - "23805": [["Erve", "LC"]], - "23806": [["Torre De' Busi", "LC"], ["San Gottardo", "LC"], ["Valcava", "LC"], ["Favirano", "LC"]], - "23807": [["Merate", "LC"], ["Cassina Fra Martino", "LC"]], - "23808": [["Vercurago", "LC"]], - "23811": [["Ballabio", "LC"], ["Morterone", "LC"]], - "23813": [["Cortenova", "LC"], ["Bindo", "LC"]], - "23814": [["Cremeno", "LC"], ["Maggio", "LC"]], - "23815": [["Introbio", "LC"]], - "23816": [["Barzio", "LC"]], - "23817": [["Moggio", "LC"], ["Cassina Valsassina", "LC"]], - "23818": [["Pasturo", "LC"]], - "23819": [["Primaluna", "LC"], ["Cortabbio", "LC"]], - "23821": [["Crebbio", "LC"], ["Abbadia Lariana", "LC"]], - "23822": [["Bellano", "LC"], ["Vestreno", "LC"]], - "23823": [["Colico Piano", "LC"], ["Colico", "LC"]], - "23824": [["Dervio", "LC"], ["Dorio", "LC"]], - "23825": [["Esino Lario", "LC"]], - "23826": [["Mandello Del Lario", "LC"]], - "23827": [["Lierna", "LC"]], - "23828": [["Perledo", "LC"]], - "23829": [["Fiumelatte", "LC"], ["Varenna", "LC"]], - "23831": [["Casargo", "LC"]], - "23832": [["Margno", "LC"], ["Crandola Valsassina", "LC"]], - "23833": [["Pagnona", "LC"]], - "23834": [["Premana", "LC"]], - "23835": [["Sueglio", "LC"], ["Introzzo", "LC"]], - "23836": [["Tremenico", "LC"]], - "23837": [["Taceno", "LC"], ["Parlasco", "LC"]], - "23838": [["Vendrogno", "LC"]], - "23841": [["Annone Di Brianza", "LC"]], - "23842": [["Bosisio Parini", "LC"]], - "23843": [["Dolzago", "LC"]], - "23844": [["Sirone", "LC"]], - "23845": [["Costa Masnaga", "LC"], ["Camisasca", "LC"]], - "23846": [["Brongio", "LC"], ["Garbagnate Monastero", "LC"]], - "23847": [["Luzzana", "LC"], ["Molteno", "LC"]], - "23848": [["Oggiono", "LC"], ["Ello", "LC"]], - "23849": [["Rogeno", "LC"], ["Casletto", "LC"]], - "23851": [["Galbiate", "LC"], ["Vergano Villa", "LC"], ["Sala Al Barro", "LC"]], - "23852": [["Garlate", "LC"]], - "23854": [["Olginate", "LC"]], - "23855": [["Pescate", "LC"]], - "23857": [["Valgreghentino", "LC"]], - "23861": [["Cesana Brianza", "LC"]], - "23862": [["Civate", "LC"]], - "23864": [["Malgrate", "LC"]], - "23865": [["Limonta", "LC"], ["Oliveto Lario", "LC"], ["Onno", "LC"]], - "23867": [["Suello", "LC"]], - "23868": [["Caserta", "LC"], ["Valmadrera", "LC"]], - "23870": [["Cernusco Lombardone", "LC"]], - "23871": [["Lomagna", "LC"]], - "23873": [["Missaglia", "LC"], ["Maresso", "LC"]], - "23874": [["Montevecchia", "LC"], ["Quattro Strade", "LC"]], - "23875": [["Osnago", "LC"]], - "23876": [["Monticello Brianza", "LC"]], - "23877": [["Paderno D'Adda", "LC"]], - "23878": [["Verderio Superiore", "LC"]], - "23879": [["Verderio Inferiore", "LC"], ["Verderio", "LC"]], - "23880": [ - ["Campofiorenzo", "LC"], - ["Casatenovo", "LC"], - ["Galgiana", "LC"], - ["Rimoldo", "LC"], - ["Rogoredo", "LC"], - ["Valaperta", "LC"], - ["California", "LC"], - ], - "23881": [["Airuno", "LC"]], - "23883": [["Beverate", "LC"], ["Brivio", "LC"]], - "23884": [["Caraverio", "LC"], ["Cologna", "LC"], ["Castello Di Brianza", "LC"]], - "23885": [["Calco", "LC"], ["Arlate", "LC"]], - "23886": [["Colle Brianza", "LC"], ["Nava", "LC"]], - "23887": [["Monticello", "LC"], ["Canova", "LC"], ["Olgiate Molgora", "LC"]], - "23888": [["La Valletta Brianza", "LC"], ["Rovagnate", "LC"], ["Perego", "LC"]], - "23889": [["Santa Maria Hoe'", "LC"]], - "23890": [["Barzago", "LC"]], - "23891": [["Barzano'", "LC"]], - "23892": [["Bulciago", "LC"]], - "23893": [["Cassago Brianza", "LC"]], - "23894": [["Cremella", "LC"]], - "23895": [["Cibrone", "LC"], ["Nibionno", "LC"], ["Tabiago", "LC"]], - "23896": [["Sirtori", "LC"], ["Bevera Di Sirtori", "LC"]], - "23897": [["Vigano'", "LC"]], - "23898": [["Imbersago", "LC"]], - "23899": [["Robbiate", "LC"]], - "23900": [["Lecco", "LC"]], - "26811": [["Boffalora D'Adda", "LO"]], - "26812": [["Borghetto Lodigiano", "LO"], ["Casoni", "LO"]], - "26813": [["Graffignana", "LO"]], - "26814": [["Livraga", "LO"]], - "26815": [["Motta Vigana", "LO"], ["Massalengo", "LO"]], - "26816": [["Ossago Lodigiano", "LO"]], - "26817": [["San Martino In Strada", "LO"]], - "26818": [["Villanova Del Sillaro", "LO"], ["Bargano", "LO"]], - "26821": [["Bertonico", "LO"]], - "26822": [["Brembio", "LO"]], - "26823": [["Castiglione D'Adda", "LO"], ["Camairago", "LO"]], - "26824": [["Cavenago D'Adda", "LO"]], - "26825": [["Basiasco", "LO"], ["Mairago", "LO"]], - "26826": [["Secugnago", "LO"]], - "26827": [["Terranova Dei Passerini", "LO"]], - "26828": [["Melegnanello", "LO"], ["Turano Lodigiano", "LO"]], - "26831": [["Cologno", "LO"], ["Casalmaiocco", "LO"]], - "26832": [["Cervignano D'Adda", "LO"], ["Galgagnano", "LO"]], - "26833": [["Comazzo", "LO"], ["Merlino", "LO"]], - "26834": [["Cadilana", "LO"], ["Corte Palasio", "LO"], ["Abbadia Cerreto", "LO"], ["Terraverde", "LO"]], - "26835": [["Crespiatica", "LO"]], - "26836": [["Montanaso Lombardo", "LO"]], - "26837": [["Mulazzano", "LO"], ["Cassino D'Alberi", "LO"], ["Quartiano", "LO"]], - "26838": [["Tavazzano Con Villavesco", "LO"], ["Villavesco", "LO"], ["Tavazzano", "LO"]], - "26839": [["Zelo Buon Persico", "LO"]], - "26841": [["Casalpusterlengo", "LO"], ["Zorlesco", "LO"]], - "26842": [["Cornovecchio", "LO"], ["Caselle Landi", "LO"]], - "26843": [["Maccastorna", "LO"], ["Castelnuovo Bocca D'Adda", "LO"], ["Meleti", "LO"]], - "26844": [["Cavacurta", "LO"]], - "26845": [["Codogno", "LO"]], - "26846": [["Corno Giovine", "LO"]], - "26847": [["Maleo", "LO"]], - "26848": [["San Fiorano", "LO"]], - "26849": [["Santo Stefano Lodigiano", "LO"]], - "26851": [["Borgo San Giovanni", "LO"]], - "26852": [["Casaletto Lodigiano", "LO"], ["Mairano", "LO"]], - "26853": [["Caselle Lurani", "LO"]], - "26854": [["Cornegliano Laudense", "LO"], ["Muzza Sant'Angelo", "LO"], ["Pieve Fissiraga", "LO"]], - "26855": [["Lodi Vecchio", "LO"]], - "26856": [["Senna Lodigiana", "LO"], ["Mirabello", "LO"]], - "26857": [["Salerano Sul Lambro", "LO"]], - "26858": [["Sordio", "LO"]], - "26859": [["Valera Fratta", "LO"]], - "26861": [["Fombio", "LO"], ["Retegno", "LO"]], - "26862": [["Guardamiglio", "LO"]], - "26863": [["Orio Litta", "LO"]], - "26864": [["Ospedaletto Lodigiano", "LO"]], - "26865": [["San Rocco Al Porto", "LO"]], - "26866": [["Sant'Angelo Lodigiano", "LO"], ["Marudo", "LO"], ["Castiraga Vidardo", "LO"], ["Vidardo", "LO"]], - "26867": [["Somaglia", "LO"], ["San Martino Pizzolano", "LO"]], - "26900": [["San Grato", "LO"], ["Lodi", "LO"]], - "20811": [["Binzago", "MB"], ["Villaggio Snia", "MB"], ["Cassina Savina", "MB"], ["Cesano Maderno", "MB"]], - "20812": [["Villaggio Dei Giovi", "MB"], ["Villaggio Del Sole", "MB"], ["Mombello", "MB"], ["Limbiate", "MB"]], - "20813": [["Masciago", "MB"], ["Bovisio-Masciago", "MB"], ["Bovisio", "MB"]], - "20814": [["Valera", "MB"], ["Varedo", "MB"]], - "20815": [["Cogliate", "MB"]], - "20816": [["Ceriano Laghetto", "MB"], ["Dal Pozzo", "MB"]], - "20821": [["Meda", "MB"]], - "20822": [["Baruccana", "MB"], ["Seveso", "MB"]], - "20823": [["Lentate Sul Seveso", "MB"], ["Cimnago", "MB"], ["Camnago", "MB"]], - "20824": [["Lazzate", "MB"]], - "20825": [["Barlassina", "MB"]], - "20826": [["Misinto", "MB"], ["Cascina Nuova", "MB"]], - "20831": [["Seregno", "MB"]], - "20832": [["Desio", "MB"]], - "20833": [["Robbiano Di Giussano", "MB"], ["Paina", "MB"], ["Giussano", "MB"]], - "20834": [["Nova Milanese", "MB"]], - "20835": [["Muggio'", "MB"], ["Taccona", "MB"]], - "20836": [["Capriano", "MB"], ["Briosco", "MB"], ["Fornaci", "MB"]], - "20837": [["Veduggio Con Colzano", "MB"]], - "20838": [["Renate", "MB"]], - "20841": [["Carate Brianza", "MB"], ["Agliate", "MB"]], - "20842": [["Villa Raverio", "MB"], ["Besana In Brianza", "MB"], ["Zoccorino", "MB"]], - "20843": [["Verano Brianza", "MB"]], - "20844": [["Tregasio", "MB"], ["Triuggio", "MB"], ["Canonica", "MB"]], - "20845": [["Sovico", "MB"]], - "20846": [["Macherio", "MB"]], - "20847": [["Albiate", "MB"]], - "20851": [["Santa Margherita", "MB"], ["Lissone", "MB"]], - "20852": [["Villasanta", "MB"]], - "20853": [["Biassono", "MB"]], - "20854": [["Vedano Al Lambro", "MB"]], - "20855": [["Peregallo", "MB"], ["Lesmo", "MB"]], - "20856": [["Correzzana", "MB"]], - "20857": [["Camparada", "MB"]], - "20861": [["Brugherio", "MB"], ["San Damiano", "MB"]], - "20862": [["Arcore", "MB"]], - "20863": [["Concorezzo", "MB"]], - "20864": [["Agrate Brianza", "MB"], ["Omate", "MB"]], - "20865": [["Velate", "MB"], ["Usmate Velate", "MB"]], - "20866": [["Carnate", "MB"]], - "20867": [["Caponago", "MB"]], - "20871": [["Velasca", "MB"], ["Vimercate", "MB"], ["Oreno", "MB"]], - "20872": [["Porto D'Adda", "MB"], ["Colnago", "MB"], ["Cornate D'Adda", "MB"]], - "20873": [["Cavenago Di Brianza", "MB"]], - "20874": [["Busnago", "MB"]], - "20875": [["Burago Di Molgora", "MB"]], - "20876": [["Ornago", "MB"]], - "20877": [["Roncello", "MB"]], - "20881": [["Villanova", "MB"], ["Bernareggio", "MB"]], - "20882": [["Bellusco", "MB"]], - "20883": [["Mezzago", "MB"]], - "20884": [["Sulbiate", "MB"]], - "20885": [["Ronco Briantino", "MB"]], - "20886": [["Aicurzio", "MB"]], - "20900": [["San Fruttuoso", "MB"], ["Monza", "MB"]], - "20001": [["Inveruno", "MI"]], - "20002": [["Ossona", "MI"]], - "20003": [["Casorezzo", "MI"]], - "20004": [["Arluno", "MI"]], - "20005": [["Pogliano Milanese", "MI"]], - "20006": [["Pregnana Milanese", "MI"]], - "20007": [["Cornaredo", "MI"]], - "20008": [["Bareggio", "MI"]], - "20009": [["Vittuone", "MI"]], - "20010": [ - ["Mesero", "MI"], - ["Bernate Ticino", "MI"], - ["Rogorotto", "MI"], - ["Santo Stefano Ticino", "MI"], - ["Boffalora Sopra Ticino", "MI"], - ["Casate", "MI"], - ["Mantegazza", "MI"], - ["Marcallo Con Casone", "MI"], - ["Furato", "MI"], - ["Buscate", "MI"], - ["San Pietro All'Olmo", "MI"], - ["Casone", "MI"], - ], - "20011": [["Corbetta", "MI"], ["Battuello", "MI"], ["Cerello", "MI"]], - "20012": [["Cuggiono", "MI"]], - "20013": [["Ponte Nuovo", "MI"], ["Magenta", "MI"]], - "20014": [["Nerviano", "MI"], ["Sant'Ilario Milanese", "MI"]], - "20015": [["Parabiago", "MI"], ["Villastanza", "MI"]], - "20016": [["Pero", "MI"], ["Cerchiate", "MI"]], - "20017": [ - ["Lucernate", "MI"], - ["Mazzo Milanese", "MI"], - ["Terrazzano", "MI"], - ["Passirana", "MI"], - ["Rho", "MI"], - ], - "20018": [["Sedriano", "MI"]], - "20019": [["Vighignolo", "MI"], ["Settimo Milanese", "MI"]], - "20020": [ - ["Cascina Nuova Di Misinto", "MI"], - ["Bienate", "MI"], - ["Villaggio Brollo", "MI"], - ["Vanzaghello", "MI"], - ["Magnago", "MI"], - ["Arconate", "MI"], - ["Nosate", "MI"], - ["Barbaiana", "MI"], - ["Robecchetto Con Induno", "MI"], - ], - "20021": [["Baranzate", "MI"], ["Cassina Nuova", "MI"], ["Bollate", "MI"]], - "20022": [["Castano Primo", "MI"]], - "20023": [["Cantalupo", "MI"], ["Cerro Maggiore", "MI"]], - "20024": [["Villaggio Garbagnate", "MI"], ["Garbagnate Milanese", "MI"]], - "20025": [["Legnano", "MI"]], - "20026": [["Novate Milanese", "MI"]], - "20027": [["Rescalda", "MI"], ["Rescaldina", "MI"]], - "20028": [["San Vittore Olona", "MI"]], - "20029": [["Turbigo", "MI"]], - "20030": [["Senago", "MI"]], - "20031": [["Cesate", "MI"]], - "20032": [["Cormano", "MI"], ["Brusuglio", "MI"], ["Ospitaletto", "MI"]], - "20033": [["Solaro", "MI"]], - "20034": [["San Giorgio Su Legnano", "MI"]], - "20035": [["Villa Cortese", "MI"]], - "20036": [["Dairago", "MI"]], - "20037": [["Paderno Dugnano", "MI"], ["Palazzolo Milanese", "MI"]], - "20038": [["Busto Garolfo", "MI"]], - "20039": [["Canegrate", "MI"]], - "20040": [["Velate Milanese", "MI"], ["Torrazza Dei Mandelli", "MI"], ["Cambiago", "MI"]], - "20041": [["Bussero", "MI"]], - "20042": [["Pessano Con Bornago", "MI"]], - "20043": [["Vanzago", "MI"]], - "20044": [["Arese", "MI"]], - "20045": [["Lainate", "MI"]], - "20046": [["Cisliano", "MI"]], - "20047": [["Cusago", "MI"]], - "20048": [["Pantigliate", "MI"]], - "20049": [["Settala", "MI"]], - "20050": [["Liscate", "MI"]], - "20051": [["Cassina De' Pecchi", "MI"]], - "20052": [["Vignate", "MI"]], - "20053": [["Rodano", "MI"]], - "20054": [["Segrate", "MI"]], - "20055": [["Vimodrone", "MI"]], - "20056": [["Concesa", "MI"], ["Trezzo Sull'Adda", "MI"], ["Grezzago", "MI"]], - "20057": [["Assago", "MI"]], - "20058": [["Zibido San Giacomo", "MI"]], - "20059": [["Casarile", "MI"]], - "20060": [ - ["Trecella", "MI"], - ["Triginto", "MI"], - ["Trezzano Rosa", "MI"], - ["Bellinzago Lombardo", "MI"], - ["Villa Fornaci", "MI"], - ["Bustighera", "MI"], - ["Gessate", "MI"], - ["Bettola Di Pozzo D'Adda", "MI"], - ["Truccazzano", "MI"], - ["Pozzo D'Adda", "MI"], - ["Pozzuolo Martesana", "MI"], - ["Masate", "MI"], - ["Mombretto", "MI"], - ["Sant'Agata Martesana", "MI"], - ["Basiano", "MI"], - ["Albignano", "MI"], - ["Bornago", "MI"], - ["Albignano D'Adda", "MI"], - ["Vigliano", "MI"], - ["Balbiano", "MI"], - ], - "20061": [["Carugate", "MI"]], - "20062": [["Cassano D'Adda", "MI"], ["Cascine San Pietro", "MI"], ["Groppello D'Adda", "MI"]], - "20063": [["Cernusco Sul Naviglio", "MI"]], - "20064": [["Gorgonzola", "MI"]], - "20065": [["Inzago", "MI"]], - "20066": [["Melzo", "MI"]], - "20067": [["Paullo", "MI"], ["Tribiano", "MI"]], - "20068": [ - ["Mezzate", "MI"], - ["Peschiera Borromeo", "MI"], - ["Bettola", "MI"], - ["Linate Paese", "MI"], - ["Zeloforomagno", "MI"], - ["Bellaria", "MI"], - ["San Bovio", "MI"], - ["Linate", "MI"], - ], - "20069": [["Vaprio D'Adda", "MI"]], - "20070": [ - ["Dresano", "MI"], - ["Cerro Al Lambro", "MI"], - ["San Zenone Al Lambro", "MI"], - ["Sarmazzano", "MI"], - ["Villa Bissone", "MI"], - ["Vizzolo Predabissi", "MI"], - ["Riozzo", "MI"], - ], - "20071": [["Zelo Surrigone", "MI"], ["Vermezzo", "MI"]], - "20072": [["Pieve Emanuele", "MI"]], - "20073": [["Opera", "MI"]], - "20074": [["Carpiano", "MI"]], - "20075": [["Colturano", "MI"]], - "20076": [["Mediglia", "MI"]], - "20077": [["Melegnano", "MI"]], - "20078": [["San Colombano Al Lambro", "MI"]], - "20079": [["Basiglio", "MI"]], - "20080": [ - ["Calvignasco", "MI"], - ["San Pietro Cusico", "MI"], - ["Bubbiano", "MI"], - ["Moirago", "MI"], - ["Besate", "MI"], - ["Moncucco", "MI"], - ["Ozzero", "MI"], - ["Pasturago", "MI"], - ["Albairate", "MI"], - ["Badile", "MI"], - ["Vernate", "MI"], - ], - "20081": [["Cassinetta Di Lugagnano", "MI"], ["Abbiategrasso", "MI"], ["Morimondo", "MI"]], - "20082": [["Noviglio", "MI"], ["Binasco", "MI"], ["Santa Corinna", "MI"]], - "20083": [["San Vito", "MI"], ["Gaggiano", "MI"], ["Vigano", "MI"]], - "20084": [["Lacchiarella", "MI"]], - "20085": [["Locate Di Triulzi", "MI"]], - "20086": [["Motta Visconti", "MI"]], - "20087": [["Castellazzo De' Barzi", "MI"], ["Robecco Sul Naviglio", "MI"], ["Casterno", "MI"]], - "20088": [["Rosate", "MI"], ["Gudo Visconti", "MI"]], - "20089": [["Rozzano", "MI"], ["Quinto De Stampi", "MI"]], - "20090": [ - ["Sporting Mirasole", "MI"], - ["Trezzano Sul Naviglio", "MI"], - ["Cesano Boscone", "MI"], - ["Noverasco", "MI"], - ["San Felice", "MI"], - ["Lucino", "MI"], - ["Caleppio", "MI"], - ["Romano Banco", "MI"], - ["Zingone", "MI"], - ["Zingone Di Trezzano Sul Naviglio", "MI"], - ["Premenugo", "MI"], - ["Novegro", "MI"], - ["Tregarezzo", "MI"], - ["Monzoro", "MI"], - ["Fizzonasco", "MI"], - ["Linate Aeroporto", "MI"], - ["Millepini", "MI"], - ["Buccinasco", "MI"], - ], - "20091": [["Bresso", "MI"]], - "20092": [["Cinisello Balsamo", "MI"]], - "20093": [["San Maurizio Al Lambro", "MI"], ["Cologno Monzese", "MI"]], - "20094": [["Corsico", "MI"]], - "20095": [["Milanino", "MI"], ["Cusano Milanino", "MI"]], - "20096": [["Pioltello", "MI"], ["Limito", "MI"], ["Seggiano", "MI"]], - "20097": [["San Donato Milanese", "MI"], ["Poasco", "MI"], ["Metanopoli", "MI"], ["Sorigherio", "MI"]], - "20098": [["Borgo Lombardo", "MI"], ["San Giuliano Milanese", "MI"], ["Sesto Ulteriano", "MI"]], - "20099": [["Sesto San Giovanni", "MI"]], - "20121": [["Milano", "MI"]], - "20122": [["Milano", "MI"]], - "20123": [["Milano", "MI"]], - "20124": [["Milano", "MI"]], - "20125": [["Milano", "MI"], ["Greco", "MI"], ["Gorla", "MI"], ["Precotto", "MI"]], - "20126": [["Milano", "MI"]], - "20127": [["Milano", "MI"], ["Crescenzago", "MI"]], - "20128": [["Milano", "MI"]], - "20129": [["Milano", "MI"]], - "20131": [["Milano", "MI"]], - "20132": [["Milano", "MI"]], - "20133": [["Milano", "MI"]], - "20134": [["Lambrate", "MI"], ["Milano", "MI"]], - "20135": [["Milano", "MI"]], - "20136": [["Milano", "MI"]], - "20137": [["Milano", "MI"]], - "20138": [["Milano", "MI"], ["Rogoredo", "MI"]], - "20139": [["Milano", "MI"], ["Chiaravalle Milanese", "MI"]], - "20141": [["Milano", "MI"]], - "20142": [["Milano", "MI"], ["Gratosoglio", "MI"]], - "20143": [["Barona", "MI"], ["Milano", "MI"]], - "20144": [["Milano", "MI"]], - "20145": [["Milano", "MI"]], - "20146": [["Milano", "MI"]], - "20147": [["Milano", "MI"]], - "20148": [["Milano", "MI"]], - "20149": [["Milano", "MI"]], - "20151": [["Milano", "MI"], ["Musocco", "MI"]], - "20152": [["Baggio", "MI"], ["Milano", "MI"]], - "20153": [["Milano", "MI"], ["Figino", "MI"], ["Trenno", "MI"]], - "20154": [["Milano", "MI"]], - "20155": [["Milano", "MI"]], - "20156": [["Milano", "MI"]], - "20157": [["Milano", "MI"], ["Vialba", "MI"], ["Quarto Oggiaro", "MI"]], - "20158": [["Milano", "MI"]], - "20159": [["Milano", "MI"]], - "20161": [["Milano", "MI"], ["Bruzzano", "MI"], ["Affori", "MI"]], - "20162": [["Niguarda", "MI"], ["Milano", "MI"]], - "46010": [ - ["San Michele In Bosco", "MN"], - ["San Martino Dall'Argine", "MN"], - ["Redondesco", "MN"], - ["Belforte", "MN"], - ["Grazie", "MN"], - ["Curtatone", "MN"], - ["Villaggio Eremo", "MN"], - ["Cesole", "MN"], - ["Gazzuolo", "MN"], - ["Campitello", "MN"], - ["Montanara", "MN"], - ["Commessaggio", "MN"], - ["Buscoldo", "MN"], - ["San Silvestro", "MN"], - ["Casatico", "MN"], - ["Canicossa", "MN"], - ["Gabbiana", "MN"], - ["Ospitaletto", "MN"], - ["Levata", "MN"], - ["Marcaria", "MN"], - ["Mariana Mantovana", "MN"], - ], - "46011": [["Acquanegra Sul Chiese", "MN"], ["Mosio", "MN"]], - "46012": [["Bozzolo", "MN"]], - "46013": [["Canneto Sull'Oglio", "MN"]], - "46014": [["Sarginesco", "MN"], ["Ospitaletto Mantovano", "MN"], ["Castellucchio", "MN"]], - "46017": [["Cividale Mantovano", "MN"], ["Rivarolo Mantovano", "MN"]], - "46018": [["Breda Cisoni", "MN"], ["Ponteterra", "MN"], ["Villa Pasquali", "MN"], ["Sabbioneta", "MN"]], - "46019": [ - ["Cogozzo", "MN"], - ["Cicognara", "MN"], - ["San Matteo Delle Chiaviche", "MN"], - ["Buzzoletto", "MN"], - ["Viadana", "MN"], - ["Cizzolo", "MN"], - ["Bellaguarda", "MN"], - ], - "46020": [ - ["Polesine", "MN"], - ["San Giacomo Delle Segnate", "MN"], - ["San Giovanni Del Dosso", "MN"], - ["Magnacavallo", "MN"], - ["Motteggiana", "MN"], - ["Pieve Di Coriano", "MN"], - ["Villa Poma", "MN"], - ["Villa Saviola", "MN"], - ["Quingentole", "MN"], - ["Schivenoglia", "MN"], - ["Pegognaga", "MN"], - ], - "46021": [["Borgofranco Sul Po", "MN"], ["Carbonara Di Po", "MN"]], - "46022": [["Felonica", "MN"]], - "46023": [["Bondeno Di Gonzaga", "MN"], ["Palidano", "MN"], ["Gonzaga", "MN"]], - "46024": [["Bondanello", "MN"], ["Moglia", "MN"]], - "46025": [["Poggio Rusco", "MN"]], - "46026": [["Quistello", "MN"], ["Nuvolato", "MN"]], - "46027": [["Portiolo", "MN"], ["San Benedetto Po", "MN"], ["Mirasole", "MN"], ["San Siro", "MN"]], - "46028": [ - ["Santa Croce", "MN"], - ["Sermide", "MN"], - ["Caposotto", "MN"], - ["Moglia Di Sermide", "MN"], - ["Malcantone", "MN"], - ], - "46029": [ - ["Sailetto", "MN"], - ["Tabellano", "MN"], - ["Riva", "MN"], - ["Brusatasso", "MN"], - ["Suzzara", "MN"], - ["San Prospero", "MN"], - ], - "46030": [ - ["Gazzo", "MN"], - ["Dosolo", "MN"], - ["Correggioverde", "MN"], - ["Mottella", "MN"], - ["Stradella", "MN"], - ["Tripoli", "MN"], - ["Sacchetta", "MN"], - ["Villanova De Bellis", "MN"], - ["Pomponesco", "MN"], - ["Sustinente", "MN"], - ["Villastrada", "MN"], - ["Serravalle A Po", "MN"], - ["Ca' Vecchia", "MN"], - ["Libiola", "MN"], - ], - "46031": [["San Nicolo' Po", "MN"], ["San Biagio", "MN"], ["Bagnolo San Vito", "MN"]], - "46032": [["Castelbelforte", "MN"]], - "46033": [["Castel D'Ario", "MN"]], - "46034": [ - ["Boccadiganda", "MN"], - ["San Cataldo", "MN"], - ["Borgoforte", "MN"], - ["Cerese", "MN"], - ["Virgilio", "MN"], - ["Romanore", "MN"], - ["Pietole", "MN"], - ["Borgo Virgilio", "MN"], - ["Cappelletta", "MN"], - ], - "46035": [["Ostiglia", "MN"], ["Correggioli", "MN"]], - "46036": [["Revere", "MN"]], - "46037": [ - ["Casale", "MN"], - ["Barbasso", "MN"], - ["Roncoferraro", "MN"], - ["Borgo Castelletto", "MN"], - ["Pontemerlano", "MN"], - ["Villa Garibaldi", "MN"], - ["Governolo", "MN"], - ], - "46039": [["Villimpenta", "MN"]], - "46040": [ - ["Fontanella Grazioli", "MN"], - ["Ponti Sul Mincio", "MN"], - ["San Fermo", "MN"], - ["Ceresara", "MN"], - ["Gazoldo Degli Ippoliti", "MN"], - ["Rivalta", "MN"], - ["Casalromano", "MN"], - ["Rivalta Sul Mincio", "MN"], - ["Rodigo", "MN"], - ["Monzambano", "MN"], - ["Guidizzolo", "MN"], - ["Cavriana", "MN"], - ["Solferino", "MN"], - ["Casalmoro", "MN"], - ["Piubega", "MN"], - ["Casaloldo", "MN"], - ], - "46041": [["Castelnuovo Asolano", "MN"], ["Asola", "MN"], ["Castelnuovo", "MN"], ["Barchi Di Asola", "MN"]], - "46042": [["Castel Goffredo", "MN"]], - "46043": [["Gozzolina", "MN"], ["Castiglione Delle Stiviere", "MN"]], - "46044": [["Goito", "MN"], ["Cerlongo", "MN"], ["Solarolo", "MN"]], - "46045": [["Pozzolo", "MN"], ["Marengo", "MN"], ["Marmirolo", "MN"]], - "46046": [["Medole", "MN"]], - "46047": [["Soave", "MN"], ["Porto Mantovano", "MN"], ["Sant'Antonio", "MN"], ["Soave Mantovano", "MN"]], - "46048": [ - ["Roverbella", "MN"], - ["Malavicina", "MN"], - ["Castiglione Mantovano", "MN"], - ["Canedole", "MN"], - ["Pellaloco", "MN"], - ], - "46049": [["Cereta", "MN"], ["Volta Mantovana", "MN"]], - "46051": [["Bigarello", "MN"], ["San Giorgio Di Mantova", "MN"]], - "46100": [ - ["Frassino Mantovano", "MN"], - ["Lunetta", "MN"], - ["Mantova", "MN"], - ["Borgovirgiliana", "MN"], - ["Formigosa", "MN"], - ], - "27010": [ - ["Gerenzago", "PV"], - ["Borgarello", "PV"], - ["San Genesio Ed Uniti", "PV"], - ["San Leonardo Di Linarolo", "PV"], - ["San Zenone Al Po", "PV"], - ["Giovenzano", "PV"], - ["Roncaro", "PV"], - ["Costa De' Nobili", "PV"], - ["Albuzzano", "PV"], - ["Camporinaldo", "PV"], - ["Motta San Damiano", "PV"], - ["Giussago", "PV"], - ["Zeccone", "PV"], - ["San Leonardo", "PV"], - ["Santa Cristina E Bissone", "PV"], - ["Inverno E Monteleone", "PV"], - ["Badia Pavese", "PV"], - ["Vellezzo Bellini", "PV"], - ["Torre D'Arese", "PV"], - ["Rognano", "PV"], - ["Bornasco", "PV"], - ["Torrevecchia Pia", "PV"], - ["Marzano", "PV"], - ["Copiano", "PV"], - ["Turago Bordone", "PV"], - ["Vistarino", "PV"], - ["Spessa", "PV"], - ["Vigonzone", "PV"], - ["Inverno", "PV"], - ["Bascape'", "PV"], - ["Cura Carpignano", "PV"], - ["Monticelli Pavese", "PV"], - ["Siziano", "PV"], - ["Ceranova", "PV"], - ["Linarolo", "PV"], - ["Magherno", "PV"], - ["Monteleone", "PV"], - ["Guinzano", "PV"], - ["Filighera", "PV"], - ["Valle Salimbene", "PV"], - ["Miradolo Terme", "PV"], - ], - "27011": [["Belgioioso", "PV"], ["Torre De' Negri", "PV"]], - "27012": [["Torriano", "PV"], ["Certosa Di Pavia", "PV"], ["Torre Del Mangano", "PV"]], - "27013": [["Lambrinia", "PV"], ["Chignolo Po", "PV"]], - "27014": [["Genzone", "PV"], ["Corteolona", "PV"]], - "27015": [["Landriano", "PV"]], - "27016": [["Lardirago", "PV"], ["Sant'Alessio Con Vialone", "PV"]], - "27017": [["Zerbo", "PV"], ["Pieve Porto Morone", "PV"]], - "27018": [["Vidigulfo", "PV"]], - "27019": [["Villanterio", "PV"]], - "27020": [ - ["Torre D'Isola", "PV"], - ["Semiana", "PV"], - ["Trivolzio", "PV"], - ["Zerbolo'", "PV"], - ["Marcignago", "PV"], - ["Massaua", "PV"], - ["Dorno", "PV"], - ["Alagna", "PV"], - ["San Giorgio Di Lomellina", "PV"], - ["Cergnago", "PV"], - ["Olevano Di Lomellina", "PV"], - ["Valle Lomellina", "PV"], - ["Carbonara Al Ticino", "PV"], - ["Travaco' Siccomario", "PV"], - ["Borgo San Siro", "PV"], - ["Gravellona Lomellina", "PV"], - ["Velezzo Lomellina", "PV"], - ["Casottole", "PV"], - ["Rotta", "PV"], - ["Tromello", "PV"], - ["Battuda", "PV"], - ["Albonese", "PV"], - ["Valeggio", "PV"], - ["Parona", "PV"], - ["Sartirana Lomellina", "PV"], - ["Breme", "PV"], - ["Nicorvo", "PV"], - ["Trovo", "PV"], - ["Scaldasole", "PV"], - ], - "27021": [["Bereguardo", "PV"]], - "27022": [["Casorate Primo", "PV"]], - "27023": [["Cassolnovo", "PV"]], - "27024": [["Cilavegna", "PV"]], - "27025": [["Gambolo'", "PV"]], - "27026": [["San Biagio", "PV"], ["Garlasco", "PV"], ["Madonna Delle Bozzole", "PV"]], - "27027": [["Gropello Cairoli", "PV"]], - "27028": [["Bivio Cava Manara", "PV"], ["San Martino Siccomario", "PV"]], - "27029": [["Vigevano", "PV"], ["Sforzesca", "PV"]], - "27030": [ - ["Balossa Bigli", "PV"], - ["Ottobiano", "PV"], - ["Frascarolo", "PV"], - ["Langosco", "PV"], - ["Castello D'Agogna", "PV"], - ["Zeme", "PV"], - ["Confienza", "PV"], - ["Zinasco", "PV"], - ["Rosasco", "PV"], - ["Torre Beretti E Castellaro", "PV"], - ["Castellaro De' Giorgi", "PV"], - ["Pieve Albignola", "PV"], - ["Ceretto Lomellina", "PV"], - ["Castelnovetto", "PV"], - ["Mezzana Bigli", "PV"], - ["Zinasco Nuovo", "PV"], - ["Gambarana", "PV"], - ["Suardi", "PV"], - ["Cozzo", "PV"], - ["Sairano", "PV"], - ["Sant'Angelo Lomellina", "PV"], - ["Zinasco Vecchio", "PV"], - ["Mezzana Rabattone", "PV"], - ["Villanova D'Ardenghi", "PV"], - ["Palestro", "PV"], - ], - "27031": [["Candia Lomellina", "PV"]], - "27032": [["Ferrera Erbognone", "PV"]], - "27033": [["Garbana", "PV"]], - "27034": [["Galliavola", "PV"], ["Lomello", "PV"]], - "27035": [["Villa Biscossi", "PV"], ["Mede", "PV"]], - "27036": [["Mortara", "PV"]], - "27037": [["Pieve Del Cairo", "PV"]], - "27038": [["Robbio", "PV"]], - "27039": [["Sannazzaro De' Burgondi", "PV"]], - "27040": [ - ["Mezzanino", "PV"], - ["Bosnasco", "PV"], - ["Casatisma", "PV"], - ["San Damiano Al Colle", "PV"], - ["Arena Po", "PV"], - ["Castelletto Di Branduzzo", "PV"], - ["Vallescuropasso", "PV"], - ["Rea", "PV"], - ["Castana", "PV"], - ["Borgoratto Mormorolo", "PV"], - ["Montu' Beccaria", "PV"], - ["Tornello", "PV"], - ["Pinarolo Po", "PV"], - ["Rovescala", "PV"], - ["Albaredo Arnaboldi", "PV"], - ["Castelletto Po", "PV"], - ["Montalto Pavese", "PV"], - ["Portalbera", "PV"], - ["Rocca De' Giorgi", "PV"], - ["Casenove", "PV"], - ["Mornico Losana", "PV"], - ["Torre Degli Alberi", "PV"], - ["Mornico", "PV"], - ["Montescano", "PV"], - ["Fortunago", "PV"], - ["Pometo", "PV"], - ["Borgo Priolo", "PV"], - ["Lirio", "PV"], - ["Verrua Po", "PV"], - ["Campospinoso", "PV"], - ["Busca", "PV"], - ["Pietra De' Giorgi", "PV"], - ["Calvignano", "PV"], - ["Cigognola", "PV"], - ], - "27041": [["Barbianello", "PV"], ["Casanova Lonati", "PV"]], - "27042": [["Robecco Pavese", "PV"], ["Bressana Bottarone", "PV"], ["Bressana", "PV"], ["Bottarone", "PV"]], - "27043": [["Broni", "PV"], ["San Cipriano Po", "PV"]], - "27044": [["Canneto Pavese", "PV"], ["Canneto", "PV"]], - "27045": [["Casteggio", "PV"]], - "27046": [["Santa Giuletta", "PV"]], - "27047": [ - ["Santa Maria Della Versa", "PV"], - ["Montecalvo Versiggia", "PV"], - ["Golferenzo", "PV"], - ["Volpara", "PV"], - ], - "27048": [["Sommo", "PV"]], - "27049": [["Zenevredo", "PV"], ["Stradella", "PV"]], - "27050": [ - ["Casei", "PV"], - ["Torrazza Coste", "PV"], - ["Val Di Nizza", "PV"], - ["Brallo Di Pregola", "PV"], - ["Pancarana", "PV"], - ["Casei Gerola", "PV"], - ["Corana", "PV"], - ["Cervesina", "PV"], - ["Santa Margherita Di Staffora", "PV"], - ["Collegio", "PV"], - ["Codevilla", "PV"], - ["Romagnese", "PV"], - ["Pizzale", "PV"], - ["Ghiaie", "PV"], - ["Silvano Pietra", "PV"], - ["Retorbido", "PV"], - ["Casanova Di Destra", "PV"], - ["Ponte Nizza", "PV"], - ["Cecima", "PV"], - ["Corvino San Quirico", "PV"], - ["Fumo", "PV"], - ["Oliva Gessi", "PV"], - ["Redavalle", "PV"], - ["Torricella Verzate", "PV"], - ["Menconico", "PV"], - ["Bagnaria", "PV"], - ["Bastida Pancarana", "PV"], - ], - "27051": [["Mezzana Corti", "PV"], ["Tre Re", "PV"], ["Cava Manara", "PV"]], - "27052": [["Montesegale", "PV"], ["Godiasco", "PV"], ["Rocca Susella", "PV"], ["Salice Terme", "PV"]], - "27053": [["Verretto", "PV"], ["Lungavilla", "PV"]], - "27054": [["Montebello Della Battaglia", "PV"]], - "27055": [["Rivanazzano", "PV"]], - "27056": [["Cornale E Bastida", "PV"], ["Bastida De' Dossi", "PV"], ["Cornale", "PV"]], - "27057": [["Pietragavina", "PV"], ["Varzi", "PV"]], - "27058": [["Oriolo", "PV"], ["Voghera", "PV"]], - "27059": [["Zavattarello", "PV"]], - "27061": [["Ruino", "PV"], ["Canevino", "PV"]], - "27100": [["Mirabello Di Pavia", "PV"], ["Ca' Della Terra", "PV"], ["Pavia", "PV"], ["Fossarmato", "PV"]], - "23010": [ - ["Cedrasco", "SO"], - ["Rogolo", "SO"], - ["Mello", "SO"], - ["Val Masino", "SO"], - ["Dazio", "SO"], - ["Fusine", "SO"], - ["Piantedo", "SO"], - ["Rasura", "SO"], - ["Civo", "SO"], - ["Cevo", "SO"], - ["San Martino", "SO"], - ["Albosaggia", "SO"], - ["San Martino Val Masino", "SO"], - ["Berbenno Di Valtellina", "SO"], - ["Cino", "SO"], - ["Campo Tartano", "SO"], - ["Cataeggio", "SO"], - ["Pedesina", "SO"], - ["Buglio In Monte", "SO"], - ["Pedemonte", "SO"], - ["Colorina", "SO"], - ["Gerola Alta", "SO"], - ["Albaredo Per San Marco", "SO"], - ["Tartano", "SO"], - ["Villapinta", "SO"], - ["Sirta", "SO"], - ["San Pietro Di Berbenno", "SO"], - ["Bema", "SO"], - ["Torchione", "SO"], - ["Sant'Antonio Morignone", "SO"], - ["Moia", "SO"], - ["Forcola", "SO"], - ["Caiolo", "SO"], - ["Postalesio", "SO"], - ], - "23011": [["Ardenno", "SO"]], - "23012": [["Castione Andevenno", "SO"]], - "23013": [["Regoledo", "SO"], ["Sacco", "SO"], ["Cosio Stazione", "SO"], ["Cosio Valtellino", "SO"]], - "23014": [["Andalo Valtellino", "SO"], ["Delebio", "SO"]], - "23015": [["Dubino", "SO"], ["Nuova Olonio", "SO"]], - "23016": [["Cercino", "SO"], ["Mantello", "SO"]], - "23017": [["Campovico", "SO"], ["Morbegno", "SO"]], - "23018": [["Talamona", "SO"]], - "23019": [["Traona", "SO"]], - "23020": [ - ["Caspoggio", "SO"], - ["Verceia", "SO"], - ["Gordona", "SO"], - ["Prasomaso", "SO"], - ["Boffetto", "SO"], - ["Montagna In Valtellina", "SO"], - ["Mese", "SO"], - ["Faedo Valtellino", "SO"], - ["Piuro", "SO"], - ["Borgonuovo Di Piuro", "SO"], - ["Menarola", "SO"], - ["Piateda", "SO"], - ["Tresivio", "SO"], - ["Lirone", "SO"], - ["Poggiridenti", "SO"], - ["Spriana", "SO"], - ["Lanzada", "SO"], - ["San Giacomo Filippo", "SO"], - ["Torre Di Santa Maria", "SO"], - ["San Cassiano", "SO"], - ["San Cassiano Valchiavenna", "SO"], - ["Santa Croce", "SO"], - ["Prosto", "SO"], - ["Prata Camportaccio", "SO"], - ["Santa Croce Di Piuro", "SO"], - ], - "23021": [["Campodolcino", "SO"], ["Fraciscio", "SO"]], - "23022": [["Bette", "SO"], ["Chiavenna", "SO"]], - "23023": [["Primolo", "SO"], ["Chiareggio", "SO"], ["Chiesa In Valmalenco", "SO"]], - "23024": [["Isola", "SO"], ["Pianazzo", "SO"], ["Madesimo", "SO"], ["Montespluga", "SO"]], - "23025": [["Novate Mezzola", "SO"], ["Campo", "SO"]], - "23026": [["Ponte In Valtellina", "SO"], ["Arigna", "SO"]], - "23027": [ - ["San Pietro Samolaco", "SO"], - ["Somaggia", "SO"], - ["Era", "SO"], - ["Era Samolaco", "SO"], - ["San Pietro", "SO"], - ["Samolaco", "SO"], - ], - "23029": [["Dogana Di Villa Chiavenna", "SO"], ["Dogana", "SO"], ["Villa Di Chiavenna", "SO"]], - "23030": [ - ["Castello Dell'Acqua", "SO"], - ["Cepina Valdisotto", "SO"], - ["Piatta", "SO"], - ["Livigno", "SO"], - ["San Nicolo' Di Valfurva", "SO"], - ["Trepalle", "SO"], - ["Valfurva", "SO"], - ["Tovo Di Sant'Agata", "SO"], - ["Stazzona", "SO"], - ["Villa Di Tirano", "SO"], - ["Mazzo Di Valtellina", "SO"], - ["Valdisotto", "SO"], - ["Santa Caterina", "SO"], - ["Sant'Antonio", "SO"], - ["Lovero", "SO"], - ["Castionetto", "SO"], - ["Santa Caterina Valfurva", "SO"], - ["Sernio", "SO"], - ["Bianzone", "SO"], - ["Cepina", "SO"], - ["Chiuro", "SO"], - ["Vervio", "SO"], - ], - "23031": [["Aprica", "SO"]], - "23032": [["Passo Stelvio", "SO"], ["Bormio", "SO"]], - "23033": [["Tiolo", "SO"], ["Ravoledo", "SO"], ["Grosio", "SO"]], - "23034": [["Grosotto", "SO"]], - "23035": [ - ["Villaggio Sondalo", "SO"], - ["Frontale", "SO"], - ["Pineta Di Sortenna", "SO"], - ["Pineta Di Sortenna Vallesana", "SO"], - ["Sondalo", "SO"], - ["Mondadizza", "SO"], - ["Abetina Vallesana", "SO"], - ["Le Prese", "SO"], - ["Pendosso", "SO"], - ], - "23036": [["Teglio", "SO"], ["San Giacomo", "SO"], ["San Giacomo Di Teglio", "SO"], ["Tresenda", "SO"]], - "23037": [["Madonna Di Tirano", "SO"], ["Tirano", "SO"]], - "23038": [ - ["Isolaccia", "SO"], - ["Semogo", "SO"], - ["Bagni Nuovi", "SO"], - ["Bagni Nuovi Di Bormio", "SO"], - ["Valdidentro", "SO"], - ], - "23100": [ - ["Ponchiera", "SO"], - ["Sant'Anna", "SO"], - ["Albosaggia", "SO"], - ["Mossini", "SO"], - ["Sondrio", "SO"], - ["Faedo", "SO"], - ["Triangia", "SO"], - ], - "21010": [ - ["San Macario", "VA"], - ["Arsago Seprio", "VA"], - ["Muceno", "VA"], - ["Calde'", "VA"], - ["Montegrino Valtravaglia", "VA"], - ["Nasca", "VA"], - ["Castelveccana", "VA"], - ["Domo", "VA"], - ["Germignaga", "VA"], - ["Castello", "VA"], - ["Porto Valtravaglia", "VA"], - ["Ligurno", "VA"], - ["Tronzano Lago Maggiore", "VA"], - ["Vizzola Ticino", "VA"], - ["Curiglia Con Monteviasco", "VA"], - ["Golasecca", "VA"], - ["Due Cossani", "VA"], - ["Ferno", "VA"], - ["Besnate", "VA"], - ["Dumenza", "VA"], - ["Veddasca", "VA"], - ["Brezzo Di Bedero", "VA"], - ["Agra", "VA"], - ["Cardano Al Campo", "VA"], - ["Pino Sulla Sponda Del Lago Maggiore", "VA"], - ], - "21011": [["Casorate Sempione", "VA"]], - "21012": [["Cassano Magnago", "VA"]], - "21013": [["Gallarate", "VA"], ["Crenna", "VA"], ["Cedrate", "VA"]], - "21014": [["Laveno Mombello", "VA"], ["Mombello", "VA"], ["Laveno", "VA"]], - "21015": [["Lonate Pozzolo", "VA"], ["Tornavento", "VA"], ["Sant'Antonino Ticino", "VA"]], - "21016": [["Voldomino", "VA"], ["Poppino", "VA"], ["Creva", "VA"], ["Luino", "VA"]], - "21017": [["Cascina Elisa", "VA"], ["Verghera", "VA"], ["Cascina Costa", "VA"], ["Samarate", "VA"]], - "21018": [["Sesto Calende", "VA"], ["Lisanza", "VA"]], - "21019": [ - ["Malpensa Aeroporto", "VA"], - ["Somma Lombardo", "VA"], - ["Coarezza", "VA"], - ["Maddalena", "VA"], - ["Case Nuove", "VA"], - ], - "21020": [ - ["Villadosia", "VA"], - ["Barasso", "VA"], - ["Montonate", "VA"], - ["Crosio Della Valle", "VA"], - ["Taino", "VA"], - ["Ternate", "VA"], - ["Bregano", "VA"], - ["Daverio", "VA"], - ["Inarzo", "VA"], - ["Bodio Lomnago", "VA"], - ["Bodio", "VA"], - ["Casale Litta", "VA"], - ["Mornago", "VA"], - ["Buguggiate", "VA"], - ["Cazzago Brabbia", "VA"], - ["Ranco", "VA"], - ["Varano Borghi", "VA"], - ["Galliate Lombardo", "VA"], - ["Comabbio", "VA"], - ["Mercallo", "VA"], - ["Brebbia", "VA"], - ["Crugnola", "VA"], - ["Monvalle", "VA"], - ["Malgesso", "VA"], - ["Luvinate", "VA"], - ["Lomnago", "VA"], - ["Bernate", "VA"], - ["Bardello", "VA"], - ["Brunello", "VA"], - ["Casciago", "VA"], - ], - "21021": [["Angera", "VA"]], - "21022": [["Azzate", "VA"]], - "21023": [["Besozzo", "VA"]], - "21024": [["Biandronno", "VA"]], - "21025": [["Comerio", "VA"]], - "21026": [["Oltrona Al Lago", "VA"], ["Gavirate", "VA"]], - "21027": [["Ispra", "VA"], ["Ispra Centro Euratom", "VA"], ["Barza", "VA"]], - "21028": [["Travedona Monate", "VA"]], - "21029": [["Cimbro", "VA"], ["Cuirone", "VA"], ["Corgeno", "VA"], ["Vergiate", "VA"]], - "21030": [ - ["Castello Cabiaglio", "VA"], - ["Brenta", "VA"], - ["Cugliate", "VA"], - ["Cugliate Fabiasco", "VA"], - ["Mesenzana", "VA"], - ["Brinzio", "VA"], - ["Brissago Valtravaglia", "VA"], - ["Masciago Primo", "VA"], - ["Cassano Valcuvia", "VA"], - ["Fabiasco", "VA"], - ["Marchirolo", "VA"], - ["Azzio", "VA"], - ["Orino", "VA"], - ["Marzio", "VA"], - ["Duno", "VA"], - ["Casalzuigno", "VA"], - ["Grantola", "VA"], - ["Cremenaga", "VA"], - ["Ferrera Di Varese", "VA"], - ["Cuveglio", "VA"], - ["Cuvio", "VA"], - ["Rancio Valcuvia", "VA"], - ], - "21031": [["Cadegliano Viconago", "VA"], ["Viconago", "VA"], ["Cadegliano", "VA"]], - "21032": [["Caravate", "VA"]], - "21033": [["Cittiglio", "VA"]], - "21034": [["Caldana", "VA"], ["Trevisago", "VA"], ["Cocquio Trevisago", "VA"], ["Cocquio", "VA"]], - "21035": [["Cunardo", "VA"]], - "21036": [["Gemonio", "VA"]], - "21037": [["Lavena Ponte Tresa", "VA"], ["Ponte Tresa", "VA"]], - "21038": [["Leggiuno", "VA"], ["Sangiano", "VA"]], - "21039": [["Bedero Valcuvia", "VA"], ["Valganna", "VA"], ["Ganna", "VA"], ["Ghirla", "VA"]], - "21040": [ - ["Caronno Varesino", "VA"], - ["Cascine Maggio", "VA"], - ["Venegono Superiore", "VA"], - ["Santo Stefano", "VA"], - ["Gornate Olona", "VA"], - ["Castronno", "VA"], - ["Oggiona", "VA"], - ["Morazzone", "VA"], - ["Cislago", "VA"], - ["Vedano Olona", "VA"], - ["Origgio", "VA"], - ["Jerago Con Orago", "VA"], - ["Oggiona Con Santo Stefano", "VA"], - ["Sumirago", "VA"], - ["Uboldo", "VA"], - ["Massina", "VA"], - ["Carnago", "VA"], - ["Lozza", "VA"], - ["Rovate", "VA"], - ["Venegono Inferiore", "VA"], - ["Gerenzano", "VA"], - ], - "21041": [["Albizzate", "VA"]], - "21042": [["Caronno Pertusella", "VA"]], - "21043": [["Gornate Superiore", "VA"], ["Castiglione Olona", "VA"]], - "21044": [["Cavaria Con Premezzo", "VA"]], - "21045": [["Schianno", "VA"], ["Gazzada", "VA"], ["Gazzada Schianno", "VA"]], - "21046": [["Malnate", "VA"], ["San Salvatore", "VA"]], - "21047": [["Saronno", "VA"]], - "21048": [["Solbiate Arno", "VA"], ["Monte", "VA"]], - "21049": [["Abbiate Guazzone", "VA"], ["Tradate", "VA"]], - "21050": [ - ["Marnate", "VA"], - ["Brusimpiano", "VA"], - ["Cuasso Al Monte", "VA"], - ["Lonate Ceppino", "VA"], - ["Besano", "VA"], - ["Bolladello", "VA"], - ["Porto Ceresio", "VA"], - ["Gorla Maggiore", "VA"], - ["Clivio", "VA"], - ["Cairate", "VA"], - ["Saltrio", "VA"], - ["Cuasso Al Piano", "VA"], - ["Gaggiolo", "VA"], - ["Bisuschio", "VA"], - ["Cavagnano", "VA"], - ["Castelseprio", "VA"], - ["Cantello", "VA"], - ], - "21051": [["Brenno Useria", "VA"], ["Arcisate", "VA"]], - "21052": [["Sacconago", "VA"], ["Borsano", "VA"], ["Busto Arsizio", "VA"]], - "21053": [["Castellanza", "VA"]], - "21054": [["Fagnano Olona", "VA"], ["Bergoro", "VA"]], - "21055": [["Gorla Minore", "VA"]], - "21056": [["Induno Olona", "VA"]], - "21057": [["Cascina Buon Gesu'", "VA"], ["Olgiate Olona", "VA"]], - "21058": [["Solbiate Olona", "VA"]], - "21059": [["Baraggia", "VA"], ["Viggiu'", "VA"]], - "21061": [["Maccagno Con Pino E Veddasca", "VA"], ["Maccagno", "VA"]], - "21062": [["Osmate", "VA"], ["Cadrezzate", "VA"]], - "21100": [ - ["Rasa", "VA"], - ["Rasa Di Velate", "VA"], - ["Cartabbia", "VA"], - ["San Fermo", "VA"], - ["Santa Maria Del Monte", "VA"], - ["Bizzozero", "VA"], - ["Sant'Ambrogio Olona", "VA"], - ["Calcinate Del Pesce", "VA"], - ["Varese", "VA"], - ["Capolago", "VA"], - ["Masnago", "VA"], - ["Casbeno", "VA"], - ], - "60010": [ - ["Ostra", "AN"], - ["Castelleone Di Suasa", "AN"], - ["Vaccarile", "AN"], - ["Barbara", "AN"], - ["Casine", "AN"], - ["Pianello Di Ostra", "AN"], - ["Ostra Vetere", "AN"], - ["Ponte Rio Di Monterado", "AN"], - ["Pianello", "AN"], - ], - "60011": [ - ["Palazzo D'Arcevia", "AN"], - ["Castiglioni D'Arcevia", "AN"], - ["Arcevia", "AN"], - ["Nidastore", "AN"], - ["Piticchio", "AN"], - ["Palazzo", "AN"], - ["Costa D'Arcevia", "AN"], - ["Avacelli", "AN"], - ["Castiglioni", "AN"], - ["Montefortino", "AN"], - ], - "60012": [ - ["Ponte Rio", "AN"], - ["Ripe", "AN"], - ["Monterado", "AN"], - ["Brugnetto", "AN"], - ["Trecastelli", "AN"], - ["Castel Colonna", "AN"], - ["Passo Di Ripe", "AN"], - ], - "60013": [["Corinaldo", "AN"]], - "60015": [["Castelferretti", "AN"], ["Falconara Alta", "AN"], ["Falconara Marittima", "AN"]], - "60018": [["Marina Di Montemarciano", "AN"], ["Lungomare", "AN"], ["Montemarciano", "AN"]], - "60019": [ - ["Sant'Angelo Di Senigallia", "AN"], - ["Marzocca Di Senigallia", "AN"], - ["Montignano", "AN"], - ["Marzocca", "AN"], - ["Sant'Angelo", "AN"], - ["Vallone", "AN"], - ["Roncitelli", "AN"], - ["Cesano Di Senigallia", "AN"], - ["Senigallia", "AN"], - ["Scapezzano", "AN"], - ], - "60020": [ - ["Sirolo", "AN"], - ["Agugliano", "AN"], - ["Offagna", "AN"], - ["Polverigi", "AN"], - ["Camerata Picena", "AN"], - ["Castel D'Emilio", "AN"], - ], - "60021": [["Camerano", "AN"], ["Aspio Terme", "AN"]], - "60022": [["Acquaviva Villa Musone", "AN"], ["San Rocchetto", "AN"], ["Castelfidardo", "AN"]], - "60024": [["Montoro", "AN"], ["Filottrano", "AN"]], - "60025": [["Villa Musone", "AN"], ["Loreto Stazione", "AN"], ["Loreto", "AN"]], - "60026": [["Numana", "AN"], ["Marcelli", "AN"], ["Numana Lido", "AN"]], - "60027": [ - ["Passatempo", "AN"], - ["Osimo Stazione", "AN"], - ["Casenuove", "AN"], - ["Padiglione", "AN"], - ["Campocavallo", "AN"], - ["Osimo", "AN"], - ["San Sabino", "AN"], - ["San Biagio", "AN"], - ], - "60030": [ - ["San Marcello", "AN"], - ["Collina Santa Maria Nuova", "AN"], - ["Mergo", "AN"], - ["Monsano", "AN"], - ["Pianello Vallesina", "AN"], - ["Angeli Di Rosora", "AN"], - ["Belvedere Ostrense", "AN"], - ["Rosora", "AN"], - ["Angeli", "AN"], - ["Poggio San Marcello", "AN"], - ["Castelbellino", "AN"], - ["Serra De' Conti", "AN"], - ["Monte Roberto", "AN"], - ["Morro D'Alba", "AN"], - ["Stazione", "AN"], - ["Osteria", "AN"], - ["Santa Maria Nuova", "AN"], - ["Angeli Di Mergo", "AN"], - ["Maiolati Spontini", "AN"], - ["Moie", "AN"], - ], - "60031": [["Castelplanio", "AN"], ["Castelplanio Stazione", "AN"], ["Macine", "AN"], ["Borgo Loreto", "AN"]], - "60033": [["Chiaravalle", "AN"], ["Grancetta", "AN"]], - "60034": [["Cupramontana", "AN"]], - "60035": [["Jesi", "AN"]], - "60036": [["Montecarotto", "AN"]], - "60037": [["Le Cozze", "AN"], ["Borghetto", "AN"], ["Monte San Vito", "AN"]], - "60038": [["San Paolo Di Jesi", "AN"]], - "60039": [["Staffolo", "AN"]], - "60040": [ - ["Trinquelli", "AN"], - ["Colleponi Di Genga", "AN"], - ["Colleponi", "AN"], - ["Genga Stazione", "AN"], - ["Genga", "AN"], - ], - "60041": [ - ["Cabernardi", "AN"], - ["Piano Di Frassineta", "AN"], - ["Monterosso Stazione", "AN"], - ["Sassoferrato", "AN"], - ["Monterosso", "AN"], - ["Perticano", "AN"], - ["Borgo Sassoferrato", "AN"], - ], - "60043": [["Cerreto D'Esi", "AN"]], - "60044": [ - ["Sant'Elia", "AN"], - ["Castelletta", "AN"], - ["Serradica", "AN"], - ["Melano", "AN"], - ["Borgo Tufico", "AN"], - ["Fabriano", "AN"], - ["Attiggio", "AN"], - ["Nebbiano", "AN"], - ["San Michele", "AN"], - ["Rocchetta Di Fabriano", "AN"], - ["Marischio", "AN"], - ["San Donato", "AN"], - ["Campodonico", "AN"], - ["Albacina", "AN"], - ["Argignano", "AN"], - ["Cancelli", "AN"], - ["Collamato", "AN"], - ["Melano Bastia", "AN"], - ], - "60048": [ - ["Castellaro", "AN"], - ["Serra San Quirico Stazione", "AN"], - ["Domo", "AN"], - ["Serra San Quirico", "AN"], - ["Sasso", "AN"], - ], - "60100": [["Ancona", "AN"]], - "60121": [["Ancona", "AN"]], - "60122": [["Ancona", "AN"]], - "60123": [["Ancona", "AN"]], - "60124": [["Ancona", "AN"]], - "60125": [["Ancona", "AN"]], - "60126": [["Ancona", "AN"]], - "60127": [["Ancona", "AN"], ["Pinocchio", "AN"]], - "60128": [["Ancona", "AN"]], - "60129": [["Ancona", "AN"], ["Varano", "AN"], ["Pietralacroce", "AN"], ["Poggio", "AN"]], - "60131": [["Ancona", "AN"], ["Montesicuro", "AN"]], - "63020": [["Piane Di Falerone", "AP"]], - "63031": [["Castel Di Lama Stazione", "AP"]], - "63061": [["Massignano", "AP"]], - "63062": [["Montefiore Dell'Aso", "AP"]], - "63063": [["Carassai", "AP"]], - "63064": [["Cupra Marittima", "AP"]], - "63065": [["San Savino", "AP"], ["Ripatransone", "AP"]], - "63066": [["Ischia", "AP"], ["Grottammare", "AP"]], - "63067": [["Cossignano", "AP"]], - "63068": [["Porchia", "AP"], ["Patrignone", "AP"], ["Montalto Delle Marche", "AP"]], - "63069": [["Montedinove", "AP"]], - "63071": [["Rotella", "AP"], ["Castel Di Croce", "AP"]], - "63072": [["Castignano", "AP"], ["Ripaberarda", "AP"]], - "63073": [["Offida", "AP"]], - "63074": [["San Benedetto Del Tronto", "AP"], ["Porto D'Ascoli", "AP"]], - "63075": [["Acquaviva Picena", "AP"]], - "63076": [["Centobuchi", "AP"], ["Monteprandone", "AP"]], - "63077": [["Monsampolo Del Tronto", "AP"], ["Stella Di Monsampolo", "AP"]], - "63078": [["Pagliare", "AP"], ["Spinetoli", "AP"]], - "63079": [["Villa San Giuseppe", "AP"], ["Colli Del Tronto", "AP"]], - "63081": [["Castorano", "AP"], ["San Silvestro", "AP"]], - "63082": [ - ["Villa Sant'Antonio", "AP"], - ["Castel Di Lama Piattoni", "AP"], - ["Piattoni", "AP"], - ["Castel Di Lama", "AP"], - ], - "63083": [["Appignano Del Tronto", "AP"]], - "63084": [["Folignano", "AP"], ["Piane Di Morro", "AP"], ["Villa Pigna", "AP"], ["Pigna Bassa", "AP"]], - "63085": [["Caselle", "AP"], ["Maltignano", "AP"]], - "63086": [["Force", "AP"]], - "63087": [["Comunanza", "AP"], ["Croce Di Casale", "AP"]], - "63088": [["Montemonaco", "AP"]], - "63091": [["Venarotta", "AP"]], - "63092": [["Palmiano", "AP"]], - "63093": [["Roccafluvione", "AP"], ["Marsia", "AP"], ["Agelli", "AP"]], - "63094": [["Montegallo", "AP"], ["Bisignano", "AP"]], - "63095": [ - ["Quintodecimo", "AP"], - ["San Martino Di Acquasanta", "AP"], - ["Paggese", "AP"], - ["Acquasanta Terme", "AP"], - ["Ponte D'Arli", "AP"], - ["Pozza Di Acquasanta", "AP"], - ["Tallacano", "AP"], - ], - "63096": [ - ["Pretare", "AP"], - ["Spelonga", "AP"], - ["Pescara Del Tronto", "AP"], - ["Trisungo", "AP"], - ["Arquata Del Tronto", "AP"], - ["Capodacqua", "AP"], - ], - "63100": [ - ["Castel Trosino", "AP"], - ["Piagge Di Ascoli Piceno", "AP"], - ["Piagge", "AP"], - ["Venagrande", "AP"], - ["Mozzano", "AP"], - ["Lisciano", "AP"], - ["Marino Del Tronto", "AP"], - ["Monticelli", "AP"], - ["Ascoli Piceno", "AP"], - ["Campolungo", "AP"], - ["Poggio Di Bretta", "AP"], - ["Lisciano Di Colloto", "AP"], - ], - "63811": [ - ["Castellano", "FM"], - ["Bivio Cascinare", "FM"], - ["Sant'Elpidio A Mare", "FM"], - ["Casette D'Ete", "FM"], - ["La Luce", "FM"], - ["Cretarola", "FM"], - ["Cascinare", "FM"], - ], - "63812": [["Montegranaro", "FM"]], - "63813": [["Monte Urano", "FM"]], - "63814": [["Torre San Patrizio", "FM"]], - "63815": [["Monte San Pietrangeli", "FM"]], - "63816": [["Francavilla D'Ete", "FM"]], - "63821": [["Porto Sant'Elpidio", "FM"]], - "63822": [["Porto San Giorgio", "FM"]], - "63823": [["Lapedona", "FM"]], - "63824": [["Marina Di Altidona", "FM"], ["Altidona", "FM"]], - "63825": [["Rubbianello", "FM"], ["Monterubbiano", "FM"]], - "63826": [["Moresco", "FM"]], - "63827": [["Pedaso", "FM"]], - "63828": [["Campofilone", "FM"]], - "63831": [["Contrada Tenna", "FM"], ["Rapagnano", "FM"]], - "63832": [["Magliano Di Tenna", "FM"]], - "63833": [["Montegiorgio", "FM"], ["Piane Di Montegiorgio", "FM"], ["Alteta", "FM"]], - "63834": [["Massa Fermana", "FM"]], - "63835": [["Montappone", "FM"]], - "63836": [["Monte Vidon Corrado", "FM"]], - "63837": [["Falerone", "FM"], ["Piane", "FM"]], - "63838": [["Belmonte Piceno", "FM"]], - "63839": [["Curetta", "FM"], ["Servigliano", "FM"]], - "63841": [["Monteleone Di Fermo", "FM"]], - "63842": [["Monsampietro Morico", "FM"], ["Sant'Elpidio Morico", "FM"]], - "63843": [["Montottone", "FM"]], - "63844": [["Grottazzolina", "FM"]], - "63845": [["Capparuccia", "FM"], ["Ponzano Di Fermo", "FM"], ["Torchiaro", "FM"]], - "63846": [["Monte Giberto", "FM"]], - "63847": [["Monte Vidon Combatte", "FM"]], - "63848": [["Moregnano", "FM"], ["Petritoli", "FM"]], - "63851": [["Ortezzano", "FM"]], - "63852": [["Monte Rinaldo", "FM"]], - "63853": [["Montelparo", "FM"]], - "63854": [["Santa Vittoria In Matenano", "FM"]], - "63855": [["Montefalcone Appennino", "FM"]], - "63856": [["San Martino Al Faggio", "FM"], ["Smerillo", "FM"]], - "63857": [["Amandola", "FM"]], - "63858": [["Santa Lucia In Consilvano", "FM"], ["Montefortino", "FM"]], - "63900": [ - ["Salvano", "FM"], - ["Torre Di Palme", "FM"], - ["Campiglione", "FM"], - ["Molini Di Tenna", "FM"], - ["Capodarco", "FM"], - ["Caldarette", "FM"], - ["Fermo", "FM"], - ["Marina Palmense", "FM"], - ["Lido Di Fermo", "FM"], - ["Ponte Ete", "FM"], - ["San Tommaso Tre Archi", "FM"], - ["San Marco", "FM"], - ], - "62010": [ - ["Trodica", "MC"], - ["Morrovalle", "MC"], - ["Montefano", "MC"], - ["Appignano", "MC"], - ["Sant'Egidio", "MC"], - ["Montecosaro Stazione", "MC"], - ["Passo Di Treia", "MC"], - ["Borgo Stazione", "MC"], - ["Montecassiano", "MC"], - ["Urbisaglia", "MC"], - ["Casette Verdini", "MC"], - ["Pollenza", "MC"], - ["Mogliano", "MC"], - ["Morrovalle Stazione", "MC"], - ["Sambucheto", "MC"], - ["Montecosaro", "MC"], - ["Pintura", "MC"], - ["Santa Maria In Selva", "MC"], - ["Stazione Morrovalle", "MC"], - ["Chiesanuova", "MC"], - ["Treia", "MC"], - ["Montelupone", "MC"], - ], - "62011": [ - ["San Vittore", "MC"], - ["Moscosi", "MC"], - ["Avenale", "MC"], - ["Troviggiano", "MC"], - ["Villa Moscosi", "MC"], - ["Villa Torre", "MC"], - ["Torre", "MC"], - ["Strada", "MC"], - ["Cingoli", "MC"], - ["Grottaccia", "MC"], - ], - "62012": [ - ["Fontespina", "MC"], - ["Civitanova Alta", "MC"], - ["Civitanova Marche Alta", "MC"], - ["Civitanova Marche", "MC"], - ["Santa Maria Apparente", "MC"], - ], - "62014": [ - ["Corridonia", "MC"], - ["Petriolo", "MC"], - ["Passo Del Bidollo", "MC"], - ["San Claudio", "MC"], - ["Colbuccaro", "MC"], - ], - "62015": [["Villa San Filippo", "MC"], ["Monte San Giusto", "MC"]], - "62017": [["Porto Recanati", "MC"]], - "62018": [["Potenza Picena", "MC"], ["Porto Potenza Picena", "MC"]], - "62019": [["Recanati", "MC"], ["Musone", "MC"]], - "62020": [ - ["Penna San Giovanni", "MC"], - ["Serrapetrona", "MC"], - ["Caldarola", "MC"], - ["Sant'Angelo In Pontano", "MC"], - ["Cessapalombo", "MC"], - ["Monte San Martino", "MC"], - ["Gualdo", "MC"], - ["Belforte Del Chienti", "MC"], - ["Loro Piceno", "MC"], - ["Camporotondo Di Fiastrone", "MC"], - ["Colmurano", "MC"], - ["Valcimarra", "MC"], - ["Ripe San Ginesio", "MC"], - ], - "62021": [["Frontale", "MC"], ["Poggio San Vicino", "MC"], ["Apiro", "MC"]], - "62022": [["Gagliole", "MC"], ["Castelraimondo", "MC"], ["Crispiero", "MC"]], - "62024": [["Colferraio", "MC"], ["Esanatoglia", "MC"], ["Matelica", "MC"]], - "62025": [ - ["Seppio", "MC"], - ["Massa", "MC"], - ["Sefro", "MC"], - ["Fiuminata", "MC"], - ["Fonte Di Brescia", "MC"], - ["Pioraco", "MC"], - ], - "62026": [["San Ginesio", "MC"], ["Passo San Ginesio", "MC"], ["Pian Di Pieca", "MC"]], - "62027": [["Castel San Pietro", "MC"], ["Cesolo", "MC"], ["San Severino Marche", "MC"]], - "62028": [["Sarnano", "MC"]], - "62029": [["Tolentino", "MC"]], - "62032": [ - ["Mergnano San Savino", "MC"], - ["Polverina", "MC"], - ["Morro", "MC"], - ["San Luca", "MC"], - ["Mergnano", "MC"], - ["Camerino", "MC"], - ], - "62034": [["Muccia", "MC"]], - "62035": [ - ["Pievebovigliana", "MC"], - ["Acquacanina", "MC"], - ["Fiordimonte", "MC"], - ["Fiegni", "MC"], - ["Bolognola", "MC"], - ["Fiastra", "MC"], - ], - "62036": [ - ["Casavecchia", "MC"], - ["Monte Cavallo", "MC"], - ["Pie' Casavecchia", "MC"], - ["Pieve Torina", "MC"], - ["Appennino", "MC"], - ], - "62038": [["Serravalle Di Chienti", "MC"], ["Cesi", "MC"], ["Cesi Di Macerata", "MC"]], - "62039": [["Visso", "MC"], ["Ussita", "MC"], ["Castelsantangelo Sul Nera", "MC"], ["Fematre", "MC"]], - "62100": [ - ["Madonna Del Monte", "MC"], - ["Villa Potenza", "MC"], - ["Macerata", "MC"], - ["Sforzacosta", "MC"], - ["Corridonia Stazione", "MC"], - ["Piediripa", "MC"], - ], - "61010": [ - ["Belvedere Fogliense", "PU"], - ["Case Bernardi", "PU"], - ["Rio Salso", "PU"], - ["Monte Cerignone", "PU"], - ["Savignano Montetassi", "PU"], - ["Montegrimano", "PU"], - ["Tavullia", "PU"], - ["Padiglione", "PU"], - ["Montelicciano", "PU"], - ["Valle Di Teva", "PU"], - ], - "61011": [["Gabicce Mare", "PU"], ["Case Badioli", "PU"]], - "61012": [["Fanano", "PU"], ["Gradara", "PU"]], - "61013": [ - ["Mercatino Conca", "PU"], - ["Piandicastello", "PU"], - ["Valle Sant'Anastasio", "PU"], - ["Fratte Di Sassofeltrio", "PU"], - ["Sassofeltrio", "PU"], - ], - "61014": [["Madonna Di Pugliano", "PU"], ["Montecopiolo", "PU"], ["Villagrande", "PU"]], - "61020": [ - ["Casinina", "PU"], - ["Borgo Massano", "PU"], - ["Gallo", "PU"], - ["Gallo Di Petriano", "PU"], - ["Petriano", "PU"], - ["Ca' Gallo", "PU"], - ["Montecalvo In Foglia", "PU"], - ["Tavoleto", "PU"], - ], - "61021": [["Frontino", "PU"], ["Carpegna", "PU"]], - "61022": [ - ["Sant'Angelo In Lizzola", "PU"], - ["Vallefoglia", "PU"], - ["Colbordolo", "PU"], - ["Morciola", "PU"], - ["Bottega", "PU"], - ["Montecchio", "PU"], - ], - "61023": [["Macerata Feltria", "PU"], ["Pietrarubbia", "PU"]], - "61024": [["Mombaroccio", "PU"], ["Monteciccardo", "PU"]], - "61025": [["Montelabbate", "PU"], ["Osteria Nuova", "PU"]], - "61026": [ - ["Lunano", "PU"], - ["Belforte All'Isauro", "PU"], - ["Monastero", "PU"], - ["Piandimeleto", "PU"], - ["San Sisto", "PU"], - ], - "61028": [["Caprazzino", "PU"], ["Mercatale", "PU"], ["Sassocorvaro", "PU"], ["Auditore", "PU"]], - "61029": [ - ["Ponte In Foglia", "PU"], - ["Schieti", "PU"], - ["Gadana", "PU"], - ["Trasanni", "PU"], - ["Pieve Di Cagna", "PU"], - ["Urbino", "PU"], - ["Castello Di Cavallino", "PU"], - ["Castelcavallino", "PU"], - ["Via Piana", "PU"], - ["Canavaccio", "PU"], - ], - "61030": [ - ["Serrungarina", "PU"], - ["Montemaggiore Al Metauro", "PU"], - ["Calcinelli", "PU"], - ["Cartoceto", "PU"], - ["San Giorgio Di Pesaro", "PU"], - ["Tavernelle", "PU"], - ["Isola Del Piano", "PU"], - ["Monteguiduccio", "PU"], - ["Villanova", "PU"], - ["Piagge", "PU"], - ["Saltara", "PU"], - ["Montefelcino", "PU"], - ["Lucrezia", "PU"], - ], - "61032": [["Fenile", "PU"], ["Cuccurano", "PU"], ["Bellocchi", "PU"], ["Fano", "PU"]], - "61033": [["Fermignano", "PU"]], - "61034": [["Isola Di Fano", "PU"], ["Calmazzo", "PU"], ["Fossombrone", "PU"]], - "61037": [["Marotta", "PU"], ["Mondolfo", "PU"], ["Centocroci", "PU"]], - "61038": [["Orciano Di Pesaro", "PU"]], - "61039": [["San Costanzo", "PU"], ["Cerasa", "PU"]], - "61040": [ - ["Fratte Rosa", "PU"], - ["Sant'Ippolito", "PU"], - ["Serra Sant'Abbondio", "PU"], - ["Sant'Andrea Di Suasa", "PU"], - ["San Filippo Sul Cesano", "PU"], - ["Mondavio", "PU"], - ["San Michele Al Fiume", "PU"], - ["Mercatello Sul Metauro", "PU"], - ["Borgo Pace", "PU"], - ["Frontone", "PU"], - ["Lamoli", "PU"], - ["Monte Porzio", "PU"], - ["Sorbolongo", "PU"], - ["Castelvecchio", "PU"], - ["Barchi", "PU"], - ], - "61041": [ - ["Acqualagna", "PU"], - ["Abbadia Di Naro", "PU"], - ["Furlo", "PU"], - ["Petriccio", "PU"], - ["Pole", "PU"], - ["Bellaria", "PU"], - ], - "61042": [["Apecchio", "PU"], ["Serravalle Di Carda", "PU"]], - "61043": [ - ["Secchiano", "PU"], - ["Acquaviva Marche", "PU"], - ["Smirra", "PU"], - ["Pianello", "PU"], - ["Cagli", "PU"], - ], - "61044": [["Pontericcioli", "PU"], ["Chiaserna", "PU"], ["Cantiano", "PU"]], - "61045": [["Bellisio Solfare", "PU"], ["Monterolo", "PU"], ["Pergola", "PU"]], - "61046": [["Piobbico", "PU"]], - "61047": [["San Lorenzo In Campo", "PU"], ["San Vito Sul Cesano", "PU"]], - "61048": [["Sant'Angelo In Vado", "PU"]], - "61049": [["Muraglione", "PU"], ["Urbania", "PU"]], - "61100": [ - ["Villa San Martino", "PU"], - ["Novilara", "PU"], - ["Villa Ceccolini", "PU"], - ["Muraglia", "PU"], - ["Fiorenzuola Di Focara", "PU"], - ["Ponte Del Colombarone", "PU"], - ["Montegranaro", "PU"], - ["Candelara", "PU"], - ["Soria", "PU"], - ["Pantano", "PU"], - ["Pozzo Alto", "PU"], - ["San Pietro In Calibano", "PU"], - ["Pesaro", "PU"], - ["Santa Maria Delle Fabrecce", "PU"], - ["Borgo Santa Maria", "PU"], - ["Case Bruciate", "PU"], - ["Santa Veneranda", "PU"], - ["Cattabrighe", "PU"], - ["Villa Fastiggi", "PU"], - ["Ginestreto", "PU"], - ], - "61121": [["Pesaro", "PU"]], - "61122": [["Pesaro", "PU"]], - "86010": [ - ["Campodipietra", "CB"], - ["San Giovanni In Galdo", "CB"], - ["San Giuliano Del Sannio", "CB"], - ["Casalciprano", "CB"], - ["Busso", "CB"], - ["Tufara", "CB"], - ["Mirabello Sannitico", "CB"], - ["Castropignano", "CB"], - ["Ferrazzano", "CB"], - ["Oratino", "CB"], - ["Roccaspromonte", "CB"], - ["Cercepiccola", "CB"], - ["Gildone", "CB"], - ], - "86011": [["Baranello", "CB"]], - "86012": [["Cercemaggiore", "CB"]], - "86013": [["Gambatesa", "CB"]], - "86014": [["Guardiaregia", "CB"]], - "86015": [["Jelsi", "CB"]], - "86016": [["Riccia", "CB"]], - "86017": [["Sepino", "CB"]], - "86018": [["Toro", "CB"]], - "86019": [["Vinchiaturo", "CB"]], - "86020": [ - ["Campochiaro", "CB"], - ["Sant'Angelo Limosano", "CB"], - ["Duronia", "CB"], - ["Pietracupa", "CB"], - ["Colle D'Anchise", "CB"], - ["Castellino Del Biferno", "CB"], - ["Molise", "CB"], - ["Roccavivara", "CB"], - ["San Polo Matese", "CB"], - ["Fossalto", "CB"], - ["Spinete", "CB"], - ["San Biase", "CB"], - ], - "86021": [ - ["Castellone", "CB"], - ["Bojano", "CB"], - ["Monteverde", "CB"], - ["Monteverde Di Boiano", "CB"], - ["Castellone Di Boiano", "CB"], - ], - "86022": [["Limosano", "CB"]], - "86023": [["Montagano", "CB"]], - "86024": [["Petrella Tifernina", "CB"]], - "86025": [["Ripalimosani", "CB"]], - "86026": [["Salcito", "CB"]], - "86027": [["San Massimo", "CB"]], - "86028": [["Torella Del Sannio", "CB"]], - "86029": [["Trivento", "CB"]], - "86030": [ - ["Castelbottaccio", "CB"], - ["Civitacampomarano", "CB"], - ["Mafalda", "CB"], - ["Lucito", "CB"], - ["San Giacomo Degli Schiavoni", "CB"], - ["Lupara", "CB"], - ["Acquaviva Collecroce", "CB"], - ["Tavenna", "CB"], - ["Guardialfiera", "CB"], - ["San Felice Del Molise", "CB"], - ["Montemitro", "CB"], - ["Matrice", "CB"], - ], - "86031": [["Castelmauro", "CB"]], - "86032": [["Montecilfone", "CB"]], - "86033": [["Montefalcone Nel Sannio", "CB"]], - "86034": [["Guglionesi", "CB"]], - "86035": [["Larino", "CB"]], - "86036": [["Montenero Di Bisaccia", "CB"]], - "86037": [["Palata", "CB"]], - "86038": [["Collecalcioni", "CB"], ["Petacciato", "CB"]], - "86039": [["Termoli", "CB"]], - "86040": [ - ["Ripabottoni", "CB"], - ["Montelongo", "CB"], - ["Macchia Valfortore", "CB"], - ["Campolieto", "CB"], - ["Morrone Del Sannio", "CB"], - ["Montorio Nei Frentani", "CB"], - ["Ripabottoni Stazione", "CB"], - ["San Giuliano Di Puglia", "CB"], - ["Pietracatella", "CB"], - ["Monacilioni", "CB"], - ["Provvidenti", "CB"], - ["Rotello", "CB"], - ], - "86041": [["Bonefro", "CB"]], - "86042": [["Nuova Cliternia", "CB"], ["Campomarino", "CB"], ["Lido Di Campomarino", "CB"]], - "86043": [["Casacalenda", "CB"]], - "86044": [["Colletorto", "CB"]], - "86045": [["Portocannone", "CB"]], - "86046": [["San Martino In Pensilis", "CB"]], - "86047": [["Santa Croce Di Magliano", "CB"]], - "86048": [["Sant'Elia A Pianisi", "CB"]], - "86049": [["Ururi", "CB"]], - "86100": [["Santo Stefano Di Campobasso", "CB"], ["Campobasso", "CB"], ["Santo Stefano", "CB"]], - "86070": [ - ["Castelnuovo Al Volturno", "IS"], - ["Scapoli", "IS"], - ["Sant'Agapito", "IS"], - ["Taverna Ravindola", "IS"], - ["Sant'Agapito Scalo", "IS"], - ["Rocchetta Nuova", "IS"], - ["Macchia D'Isernia", "IS"], - ["Roccaravindola", "IS"], - ["Roccaravindola Stazione", "IS"], - ["Montaquila", "IS"], - ["Rocchetta A Volturno", "IS"], - ["Conca Casale", "IS"], - ["Fornelli", "IS"], - ], - "86071": [["Pizzone", "IS"], ["Castel San Vincenzo", "IS"]], - "86072": [["Cerro Al Volturno", "IS"], ["Cupone", "IS"]], - "86073": [["Colli A Volturno", "IS"]], - "86074": [["Cerasuolo", "IS"], ["Filignano", "IS"]], - "86075": [["Monteroduni", "IS"], ["Sant'Eusanio", "IS"]], - "86077": [["Santa Maria Oliveto", "IS"], ["Pozzilli", "IS"]], - "86078": [ - ["Roccapipirozzi", "IS"], - ["Sesto Campano", "IS"], - ["Selvotta", "IS"], - ["Campopino", "IS"], - ["Pianura", "IS"], - ], - "86079": [["Ceppagna", "IS"], ["Venafro", "IS"]], - "86080": [ - ["Belmonte Del Sannio", "IS"], - ["Castel Del Giudice", "IS"], - ["Roccasicura", "IS"], - ["Acquaviva D'Isernia", "IS"], - ["Miranda", "IS"], - ["Montenero Val Cocchiara", "IS"], - ["Castelverrino", "IS"], - ["Pescopennataro", "IS"], - ["Sant'Angelo Del Pesco", "IS"], - ], - "86081": [["Agnone", "IS"], ["Villa Canale", "IS"]], - "86082": [["Capracotta", "IS"]], - "86083": [["Castiglione", "IS"], ["Carovilli", "IS"]], - "86084": [["Vandra", "IS"], ["Forli' Del Sannio", "IS"]], - "86085": [["Pietrabbondante", "IS"]], - "86086": [["Poggio Sannita", "IS"]], - "86087": [["Rionero Sannitico", "IS"]], - "86088": [["San Pietro Avellana", "IS"]], - "86089": [["Vastogirardi", "IS"], ["Cerreto", "IS"], ["Villa San Michele", "IS"]], - "86090": [ - ["Pettoranello Del Molise", "IS"], - ["Pastena", "IS"], - ["Longano", "IS"], - ["Guasto", "IS"], - ["Indiprete", "IS"], - ["Pesche", "IS"], - ["Castelpetroso", "IS"], - ["Castelpizzuto", "IS"], - ], - "86091": [["Bagnoli Del Trigno", "IS"]], - "86092": [["Roccamandolfi", "IS"], ["Cantalupo Nel Sannio", "IS"]], - "86093": [["Carpinone", "IS"]], - "86094": [["Civitanova Del Sannio", "IS"]], - "86095": [["Frosolone", "IS"], ["San Pietro In Valle", "IS"], ["Sant'Elena Sannita", "IS"]], - "86096": [ - ["Santa Maria Del Molise", "IS"], - ["Macchiagodena", "IS"], - ["Incoronata", "IS"], - ["Sant'Angelo In Grotte", "IS"], - ], - "86097": [["Sessano Del Molise", "IS"], ["Pescolanciano", "IS"], ["Chiauci", "IS"]], - "86170": [["Miranda", "IS"], ["Castelromano", "IS"], ["Isernia", "IS"]], - "15010": [ - ["Grognardo", "AL"], - ["Orsara Bormida", "AL"], - ["Merana", "AL"], - ["Visone", "AL"], - ["Castelletto D'Erro", "AL"], - ["Ponti", "AL"], - ["Pareto", "AL"], - ["Prasco", "AL"], - ["Alice Bel Colle", "AL"], - ["Ricaldone", "AL"], - ["Montechiaro Denice", "AL"], - ["Terzo", "AL"], - ["Cavatore", "AL"], - ["Morbello", "AL"], - ["Montechiaro D'Acqui", "AL"], - ["Melazzo", "AL"], - ["Frascaro", "AL"], - ["Morsasco", "AL"], - ["Ponzone", "AL"], - ["Denice", "AL"], - ["Cremolino", "AL"], - ["Montaldo Bormida", "AL"], - ["Gamalero", "AL"], - ["Rivalta Bormida", "AL"], - ], - "15011": [["Moirano", "AL"], ["Acqui Terme", "AL"]], - "15012": [["Bistagno", "AL"]], - "15013": [["Borgoratto Alessandrino", "AL"]], - "15014": [["Cantalupo", "AL"]], - "15015": [["Cartosio", "AL"], ["Malvicino", "AL"]], - "15016": [["Cassine", "AL"], ["Caranzano", "AL"], ["Gavonata", "AL"]], - "15017": [["Castelnuovo Bormida", "AL"]], - "15018": [["Spigno Monferrato", "AL"]], - "15019": [["Strevi", "AL"]], - "15020": [ - ["Gabiano", "AL"], - ["San Giorgio Monferrato", "AL"], - ["Villamiroglio", "AL"], - ["San Giorgio", "AL"], - ["Odalengo Piccolo", "AL"], - ["Zanco", "AL"], - ["Casalbagliano", "AL"], - ["Castel San Pietro Monferrato", "AL"], - ["Cerrina Monferrato", "AL"], - ["Casalino Di Mombello", "AL"], - ["Lussello", "AL"], - ["Montalero", "AL"], - ["Brusaschetto", "AL"], - ["Castel San Pietro", "AL"], - ["Villa Del Foro", "AL"], - ["Varengo", "AL"], - ["Serralunga Di Crea", "AL"], - ["Mombello Monferrato", "AL"], - ["Cereseto", "AL"], - ["Castelletto Merli", "AL"], - ["Moncestino", "AL"], - ["Murisengo", "AL"], - ["Pozzengo", "AL"], - ["Camino", "AL"], - ["Odalengo Grande", "AL"], - ["Solonghello", "AL"], - ["Valle Cerrina", "AL"], - ["Vallegioliti", "AL"], - ["Cantavenna", "AL"], - ["Ponzano Monferrato", "AL"], - ["Villadeati", "AL"], - ], - "15021": [["Cardona", "AL"], ["Alfiano Natta", "AL"], ["Sanico", "AL"]], - "15022": [["Bergamasco", "AL"]], - "15023": [["Felizzano", "AL"]], - "15024": [["Abbazia", "AL"], ["Masio", "AL"]], - "15025": [["Morano Sul Po", "AL"]], - "15026": [["Oviglio", "AL"], ["Carentino", "AL"]], - "15027": [["Pontestura", "AL"]], - "15028": [["Piepasso", "AL"], ["Quattordio", "AL"]], - "15029": [["Solero", "AL"]], - "15030": [ - ["Villanova Monferrato", "AL"], - ["Terruggia", "AL"], - ["Stevani", "AL"], - ["Treville", "AL"], - ["Sala Monferrato", "AL"], - ["San Martino", "AL"], - ["San Maurizio", "AL"], - ["Rosignano Monferrato", "AL"], - ["Conzano", "AL"], - ["Camagna Monferrato", "AL"], - ["Olivola", "AL"], - ["Coniolo", "AL"], - ], - "15031": [["Balzola", "AL"]], - "15032": [["Borgo San Martino", "AL"]], - "15033": [ - ["Terranova", "AL"], - ["Terranova Monferrato", "AL"], - ["San Germano", "AL"], - ["Casale Monferrato", "AL"], - ["Popolo", "AL"], - ["Pozzo Sant'Evasio", "AL"], - ["Roncaglia", "AL"], - ["Santa Maria Del Tempio", "AL"], - ], - "15034": [["Cella Monte", "AL"]], - "15035": [["Frassinello Monferrato", "AL"]], - "15036": [["Giarole", "AL"]], - "15037": [["Lu", "AL"], ["Cuccaro Monferrato", "AL"]], - "15038": [["Ottiglio", "AL"]], - "15039": [["Ozzano Monferrato", "AL"]], - "15040": [ - ["Valmadonna", "AL"], - ["San Michele", "AL"], - ["Rivarone", "AL"], - ["Pietra Marazzi", "AL"], - ["Bozzole", "AL"], - ["Pecetto Di Valenza", "AL"], - ["Castelletto Monferrato", "AL"], - ["Mirabello Monferrato", "AL"], - ["Ticineto", "AL"], - ["Pavone D'Alessandria", "AL"], - ["Piovera", "AL"], - ["Occimiano", "AL"], - ["Valle San Bartolomeo", "AL"], - ["Valmacca", "AL"], - ["Frassineto Po", "AL"], - ["Giardinetto", "AL"], - ["Montecastello", "AL"], - ["Pomaro Monferrato", "AL"], - ["Grava", "AL"], - ["Alluvioni Cambio'", "AL"], - ], - "15041": [["Franchini", "AL"], ["Altavilla Monferrato", "AL"]], - "15042": [["Bassignana", "AL"], ["Mugarone", "AL"], ["Fiondi", "AL"]], - "15043": [["Fubine", "AL"]], - "15044": [["Quargnento", "AL"]], - "15045": [["Sale", "AL"]], - "15046": [["San Salvatore Monferrato", "AL"]], - "15048": [["Valenza", "AL"], ["Monte", "AL"], ["Villabella", "AL"]], - "15049": [["Vignale Monferrato", "AL"]], - "15050": [ - ["Guazzora", "AL"], - ["Montacuto", "AL"], - ["Casasco", "AL"], - ["Montemarzino", "AL"], - ["Sarezzano", "AL"], - ["Pozzol Groppo", "AL"], - ["Molino Dei Torti", "AL"], - ["Costa Vescovato", "AL"], - ["Momperone", "AL"], - ["Avolasca", "AL"], - ["Villaromagnano", "AL"], - ["Volpeglino", "AL"], - ["Berzano Di Tortona", "AL"], - ["Castellar Guidobono", "AL"], - ["Carbonara Scrivia", "AL"], - ["Alzano Scrivia", "AL"], - ["Cerreto Grue", "AL"], - ["Montegioco", "AL"], - ["Brignano Frascata", "AL"], - ["Spineto Scrivia", "AL"], - ["Villalvernia", "AL"], - ["Isola Sant'Antonio", "AL"], - ["Garbagna", "AL"], - ["Paderna", "AL"], - ["Sant'Agata Fossili", "AL"], - ], - "15051": [["Carezzano", "AL"], ["Castellania", "AL"]], - "15052": [["Casalnoceto", "AL"]], - "15053": [["Castelnuovo Scrivia", "AL"]], - "15054": [["Fabbrica Curone", "AL"], ["Caldirola", "AL"], ["Garadassi", "AL"]], - "15055": [["Pontecurone", "AL"]], - "15056": [["San Sebastiano Curone", "AL"], ["Gremiasco", "AL"], ["Dernice", "AL"]], - "15057": [ - ["Passalacqua", "AL"], - ["Tortona", "AL"], - ["Rivalta Scrivia", "AL"], - ["Castellar Ponzano", "AL"], - ["Torre Garofoli", "AL"], - ], - "15058": [["Viguzzolo", "AL"]], - "15059": [["Volpedo", "AL"], ["Monleale", "AL"]], - "15060": [ - ["Castelletto D'Orba", "AL"], - ["Mongiardino Ligure", "AL"], - ["Borghetto Di Borbera", "AL"], - ["Cuquello", "AL"], - ["Rocchetta Ligure", "AL"], - ["Carrosio", "AL"], - ["Parodi Ligure", "AL"], - ["Persi", "AL"], - ["Albera Ligure", "AL"], - ["Sardigliano", "AL"], - ["Basaluzzo", "AL"], - ["Cabella Ligure", "AL"], - ["Castagnola", "AL"], - ["Vignole Borbera", "AL"], - ["Carrega Ligure", "AL"], - ["Cantalupo Ligure", "AL"], - ["Grondona", "AL"], - ["San Cristoforo", "AL"], - ["Voltaggio", "AL"], - ["Montaldeo", "AL"], - ["Cosola Di Cabella", "AL"], - ["Capriata D'Orba", "AL"], - ["Francavilla Bisio", "AL"], - ["Torre De' Ratti", "AL"], - ["Castagnola Di Fraconalto", "AL"], - ["Tassarolo", "AL"], - ["Silvano D'Orba", "AL"], - ["Stazzano", "AL"], - ["Pasturana", "AL"], - ["Fraconalto", "AL"], - ["Bosio", "AL"], - ["Roccaforte Ligure", "AL"], - ], - "15061": [["Arquata Scrivia", "AL"]], - "15062": [["Donna", "AL"], ["Bosco Marengo", "AL"], ["Pollastra", "AL"]], - "15063": [["Cassano Spinola", "AL"], ["Gavazzana", "AL"]], - "15064": [["Fresonara", "AL"]], - "15065": [["Frugarolo", "AL"]], - "15066": [["Gavi", "AL"]], - "15067": [["Novi Ligure", "AL"], ["Merella", "AL"]], - "15068": [["Pozzolo Formigaro", "AL"]], - "15069": [["Serravalle Scrivia", "AL"]], - "15070": [ - ["Castelspina", "AL"], - ["Cassinelle", "AL"], - ["Casaleggio Boiro", "AL"], - ["Lerma", "AL"], - ["Villa Botteri", "AL"], - ["Mongiardino", "AL"], - ["Trisobbio", "AL"], - ["Bandita", "AL"], - ["Belforte Monferrato", "AL"], - ["Tagliolo Monferrato", "AL"], - ], - "15071": [["Carpeneto", "AL"]], - "15072": [["Portanova", "AL"], ["Casal Cermelli", "AL"]], - "15073": [["Castellazzo Bormida", "AL"]], - "15074": [["Molare", "AL"]], - "15075": [["Mornese", "AL"]], - "15076": [["Gnocchetto", "AL"], ["Ovada", "AL"]], - "15077": [["Predosa", "AL"], ["Castelferro", "AL"]], - "15078": [["Rocca Grimalda", "AL"]], - "15079": [["Sezzadio", "AL"]], - "15100": [ - ["San Giuliano Vecchio", "AL"], - ["Spinetta Marengo", "AL"], - ["Cascinagrossa", "AL"], - ["Litta Parodi", "AL"], - ["Alessandria", "AL"], - ["Lobbi", "AL"], - ["Castelceriolo", "AL"], - ["Orti", "AL"], - ["San Giuliano Nuovo", "AL"], - ["Cristo", "AL"], - ["Mandrogne", "AL"], - ], - "15121": [["Alessandria", "AL"]], - "14010": [ - ["Cantarana", "AT"], - ["San Martino Alfieri", "AT"], - ["Dusino", "AT"], - ["Antignano", "AT"], - ["Montegrosso Di Cinaglio", "AT"], - ["Dusino San Michele", "AT"], - ["Celle Enomondo", "AT"], - ["San Matteo", "AT"], - ["Viale", "AT"], - ["Revigliasco D'Asti", "AT"], - ["Cellarengo", "AT"], - ["Cortazzone", "AT"], - ["Cisterna D'Asti", "AT"], - ["San Paolo Solbrito", "AT"], - ], - "14011": [["Baldichieri D'Asti", "AT"]], - "14012": [["Ferrere", "AT"]], - "14013": [["Castellero", "AT"], ["Monale", "AT"], ["Cortandone", "AT"]], - "14014": [["Montafia", "AT"], ["Capriglio", "AT"]], - "14015": [["San Pietro", "AT"], ["San Damiano D'Asti", "AT"]], - "14016": [["Pratomorone", "AT"], ["Tigliole", "AT"]], - "14017": [["Valfenera", "AT"]], - "14018": [["Roatto", "AT"], ["Maretto", "AT"], ["Villafranca D'Asti", "AT"]], - "14019": [["Villanova D'Asti Stazione", "AT"], ["Villanova D'Asti", "AT"]], - "14020": [ - ["Robella", "AT"], - ["Villa San Secondo", "AT"], - ["Passerano", "AT"], - ["Schierano", "AT"], - ["Cinaglio", "AT"], - ["Marmorito", "AT"], - ["Cortanze", "AT"], - ["Serravalle D'Asti", "AT"], - ["Cerreto D'Asti", "AT"], - ["Berzano Di San Pietro", "AT"], - ["Settime", "AT"], - ["Camerano Casasco", "AT"], - ["Pino D'Asti", "AT"], - ["Aramengo", "AT"], - ["Cossombrato", "AT"], - ["Piea", "AT"], - ["Soglio", "AT"], - ["Passerano Marmorito", "AT"], - ["Corsione", "AT"], - ], - "14021": [["Buttigliera D'Asti", "AT"]], - "14022": [ - ["Becchi", "AT"], - ["Mondonio San Domenico Savio", "AT"], - ["Albugnano", "AT"], - ["Castelnuovo Don Bosco", "AT"], - ], - "14023": [ - ["Cocconito Vignaretto", "AT"], - ["Tonengo", "AT"], - ["Cocconito", "AT"], - ["Cocconato", "AT"], - ["Moransengo", "AT"], - ], - "14024": [["Moncucco Torinese", "AT"]], - "14025": [["Montechiaro D'Asti", "AT"], ["Chiusano D'Asti", "AT"]], - "14026": [ - ["Montiglio", "AT"], - ["Scandeluzza", "AT"], - ["Cunico", "AT"], - ["Colcavagno", "AT"], - ["Montiglio Monferrato", "AT"], - ["Piova' Massaia", "AT"], - ], - "14030": [ - ["Refrancore", "AT"], - ["Rocca D'Arazzo", "AT"], - ["Valenzani", "AT"], - ["Accorneri", "AT"], - ["Montemagno", "AT"], - ["Frinco", "AT"], - ["Scurzolengo", "AT"], - ["Azzano D'Asti", "AT"], - ["Castagnole Monferrato", "AT"], - ["Viarigi", "AT"], - ["Cerro Tanaro", "AT"], - ["Penango", "AT"], - ["Rocchetta Tanaro", "AT"], - ], - "14031": [["San Desiderio", "AT"], ["Calliano", "AT"], ["Grana", "AT"]], - "14032": [["Casorzo", "AT"]], - "14033": [["Callianetto", "AT"], ["Castell'Alfero Stazione", "AT"], ["Castell'Alfero", "AT"]], - "14034": [["Castello Di Annone", "AT"], ["Monfallito", "AT"]], - "14035": [["Grazzano Badoglio", "AT"]], - "14036": [["Moncalvo", "AT"]], - "14037": [["Castiglione D'Asti", "AT"], ["Portacomaro", "AT"], ["Migliandolo", "AT"]], - "14039": [["Tonco", "AT"]], - "14040": [ - ["Cortiglione", "AT"], - ["Quaranti", "AT"], - ["Castelnuovo Calcea", "AT"], - ["Castelletto Molina", "AT"], - ["Vigliano D'Asti", "AT"], - ["Vinchio", "AT"], - ["Mongardino", "AT"], - ["Montabone", "AT"], - ["Castel Boglione", "AT"], - ["Belveglio", "AT"], - ["Maranzana", "AT"], - ], - "14041": [["Agliano", "AT"], ["Agliano Terme", "AT"]], - "14042": [["Rocchetta Palafea", "AT"], ["Calamandrana", "AT"]], - "14043": [["Castelnuovo Belbo", "AT"]], - "14044": [["Castel Rocchero", "AT"], ["Fontanile", "AT"]], - "14045": [["Ghiare", "AT"], ["Incisa Scapaccino", "AT"], ["Madonna", "AT"]], - "14046": [["Bazzana", "AT"], ["Bruno", "AT"], ["Mombaruzzo", "AT"]], - "14047": [["Mombercelli", "AT"]], - "14048": [["Montegrosso D'Asti", "AT"], ["Montaldo Scarampi", "AT"], ["Montegrosso D'Asti Stazione", "AT"]], - "14049": [["Vaglio Serra", "AT"], ["Nizza Monferrato", "AT"]], - "14050": [ - ["Cessole", "AT"], - ["Motta Di Costigliole", "AT"], - ["Mombaldone", "AT"], - ["Olmo Gentile", "AT"], - ["Serole", "AT"], - ["Moasca", "AT"], - ["Roccaverano", "AT"], - ["San Marzano Oliveto", "AT"], - ["Cassinasco", "AT"], - ], - "14051": [["Loazzolo", "AT"], ["Bubbio", "AT"]], - "14052": [["Calosso", "AT"]], - "14053": [ - ["Canelli Recapito Gancia", "AT"], - ["Canelli", "AT"], - ["Sant'Antonio", "AT"], - ["Sant'Antonio Di Canelli", "AT"], - ], - "14054": [ - ["Coazzolo", "AT"], - ["Castagnole Delle Lanze", "AT"], - ["San Bartolomeo Lanze", "AT"], - ["Olmo Di Castagnole Lanze", "AT"], - ["Olmo", "AT"], - ], - "14055": [["Costigliole D'Asti", "AT"], ["Motta", "AT"], ["Boglietto", "AT"]], - "14057": [["Isola D'Asti", "AT"], ["Piano", "AT"], ["Molini D'Isola", "AT"]], - "14058": [["Monastero Bormida", "AT"], ["Sessame", "AT"]], - "14059": [["San Giorgio Scarampi", "AT"], ["Vesime", "AT"]], - "14100": [ - ["Stazione Di Portacomaro", "AT"], - ["Serravalle", "AT"], - ["Montemarzo", "AT"], - ["Valletanaro", "AT"], - ["Viatosto", "AT"], - ["Poggio D'Asti", "AT"], - ["Montemarzo D'Asti", "AT"], - ["Montegrosso", "AT"], - ["Portacomaro Stazione", "AT"], - ["Valleandona", "AT"], - ["Sessant", "AT"], - ["Valgera", "AT"], - ["Variglie", "AT"], - ["Mombarone", "AT"], - ["San Marzanotto", "AT"], - ["Asti", "AT"], - ["Vaglierano", "AT"], - ["Castiglione", "AT"], - ["Casabianca", "AT"], - ["Quarto D'Asti", "AT"], - ["Revignano", "AT"], - ], - "13811": [["Tavigliano", "BI"], ["Andorno Micca", "BI"]], - "13812": [ - ["Balma Biellese", "BI"], - ["Quittengo", "BI"], - ["Campiglia Cervo", "BI"], - ["Balma", "BI"], - ["Montesinaro", "BI"], - ["Piedicavallo", "BI"], - ["San Paolo Cervo", "BI"], - ], - "13814": [["Pollone", "BI"]], - "13815": [["Rosazza", "BI"]], - "13816": [["Miagliano", "BI"], ["Sagliano Micca", "BI"]], - "13817": [["Sordevolo", "BI"]], - "13818": [["Tollegno", "BI"]], - "13821": [["Pianezze", "BI"], ["Callabiana", "BI"], ["Camandona", "BI"]], - "13822": [["Pistolesa", "BI"]], - "13823": [["Fontanella Ozino", "BI"], ["Strona", "BI"]], - "13824": [["Veglio", "BI"]], - "13825": [["Crocemosso", "BI"], ["Campore", "BI"]], - "13831": [["Mezzana Mortigliengo", "BI"]], - "13833": [["Portula", "BI"]], - "13835": [ - ["Bulliana", "BI"], - ["Soprana", "BI"], - ["Ponzone", "BI"], - ["Valle Mosso", "BI"], - ["Mosso", "BI"], - ["Vico", "BI"], - ["Trivero", "BI"], - ["Botto", "BI"], - ["Pratrivero", "BI"], - ["Giardino", "BI"], - ], - "13836": [["Ponte Guelpa", "BI"], ["Castellengo", "BI"], ["Aglietti", "BI"], ["Cossato", "BI"]], - "13841": [["Selve Marcone", "BI"], ["Bioglio", "BI"]], - "13843": [["Pettinengo", "BI"], ["Vaglio", "BI"]], - "13844": [["Piatto", "BI"], ["Ternengo", "BI"]], - "13845": [["Ronco Biellese", "BI"]], - "13847": [["Vallanzengo", "BI"], ["Valle San Nicolao", "BI"]], - "13848": [["Zumaglia", "BI"]], - "13851": [["Castelletto Cervo", "BI"]], - "13853": [["Capovilla", "BI"], ["Castello", "BI"], ["Lessona", "BI"], ["Crosa", "BI"]], - "13854": [["Cerreto Castello", "BI"], ["Quaregna", "BI"]], - "13855": [["Valdengo", "BI"]], - "13856": [["Vigliano Biellese", "BI"], ["Villaggi", "BI"]], - "13861": [["Ailoche", "BI"]], - "13862": [["Brusnengo", "BI"]], - "13863": [["Coggiola", "BI"]], - "13864": [["Crevacuore", "BI"], ["Caprile", "BI"]], - "13865": [["Curino", "BI"]], - "13866": [["Casapinta", "BI"], ["Masserano", "BI"]], - "13867": [["Flecchia", "BI"], ["Pray", "BI"], ["Pianceri Alto", "BI"]], - "13868": [["Sostegno", "BI"], ["Villa Del Bosco", "BI"]], - "13871": [["Verrone", "BI"], ["Benna", "BI"]], - "13872": [["Borriana", "BI"]], - "13873": [["Massazza", "BI"]], - "13874": [["Mottalciata", "BI"], ["Gifflenga", "BI"]], - "13875": [["Ponderano", "BI"]], - "13876": [["Sandigliano", "BI"]], - "13877": [["Villanova Biellese", "BI"]], - "13878": [["Candelo", "BI"]], - "13881": [["Cavaglia'", "BI"], ["Dorzano", "BI"]], - "13882": [["Cerrione", "BI"], ["Vergnasco", "BI"], ["Magnonevolo", "BI"]], - "13883": [["Roppolo", "BI"]], - "13884": [["Torrazzo", "BI"], ["Sala Biellese", "BI"]], - "13885": [["Brianco", "BI"], ["Salussola", "BI"], ["Vigellio", "BI"]], - "13886": [["Viverone", "BI"]], - "13887": [["Zimone", "BI"], ["Magnano", "BI"]], - "13888": [["Mongrando", "BI"], ["Ceresane", "BI"], ["Curanuova", "BI"], ["Zubiena", "BI"]], - "13891": [["Camburzano", "BI"]], - "13893": [["Donato", "BI"]], - "13894": [["Gaglianico", "BI"]], - "13895": [["Graglia", "BI"], ["Muzzano", "BI"], ["Graglia Santuario", "BI"], ["Graglia Bagni", "BI"]], - "13896": [["Netro", "BI"]], - "13897": [["Occhieppo Inferiore", "BI"]], - "13898": [["Occhieppo Superiore", "BI"]], - "13899": [["Pralungo", "BI"]], - "13900": [ - ["Chiavazza", "BI"], - ["Oropa", "BI"], - ["Pavignano", "BI"], - ["Biella", "BI"], - ["Barazzetto", "BI"], - ["Cossila", "BI"], - ["Vandorno", "BI"], - ["Favaro", "BI"], - ], - "12010": [ - ["Argentera", "CN"], - ["Roccasparvera", "CN"], - ["Rittana", "CN"], - ["Valdieri", "CN"], - ["Bersezio", "CN"], - ["Moiola", "CN"], - ["Pianche", "CN"], - ["Bernezzo", "CN"], - ["Santa Croce Cervasca", "CN"], - ["Aisone", "CN"], - ["Santa Croce", "CN"], - ["Andonno", "CN"], - ["Gaiola", "CN"], - ["Bagni Di Vinadio", "CN"], - ["Vignolo", "CN"], - ["San Defendente", "CN"], - ["Valloriate", "CN"], - ["Cervasca", "CN"], - ["Entracque", "CN"], - ["Vinadio", "CN"], - ["Sant'Anna Di Valdieri", "CN"], - ["Sant'Anna", "CN"], - ["Pietraporzio", "CN"], - ["Roaschia", "CN"], - ["Sambuco", "CN"], - ["San Rocco Di Bernezzo", "CN"], - ], - "12011": [["Martinetto Del Rame", "CN"], ["Aradolo La Bruna", "CN"], ["Borgo San Dalmazzo", "CN"]], - "12012": [ - ["Boves", "CN"], - ["Cerati", "CN"], - ["Fontanelle", "CN"], - ["Mellana", "CN"], - ["San Giacomo", "CN"], - ["Rivoira", "CN"], - ["San Giacomo Di Boves", "CN"], - ], - "12013": [["Chiusa Di Pesio", "CN"], ["San Bartolomeo", "CN"]], - "12014": [["Festiona", "CN"], ["Demonte", "CN"]], - "12015": [["Limone Piemonte", "CN"]], - "12016": [["Peveragno", "CN"], ["Santa Margherita", "CN"], ["San Lorenzo Peveragno", "CN"]], - "12017": [["Robilante", "CN"]], - "12018": [["Brignola", "CN"], ["Roccavione", "CN"], ["Brignola Sottana", "CN"]], - "12019": [["Vernante", "CN"]], - "12020": [ - ["Casteldelfino", "CN"], - ["Monsola", "CN"], - ["Elva", "CN"], - ["Roccabruna", "CN"], - ["Sampeyre", "CN"], - ["Villar San Costanzo", "CN"], - ["Marmora", "CN"], - ["Frassino", "CN"], - ["Venasca", "CN"], - ["Monterosso Grana", "CN"], - ["Lemma", "CN"], - ["Canosio", "CN"], - ["Macra", "CN"], - ["Melle", "CN"], - ["Brossasco", "CN"], - ["Rore", "CN"], - ["Valgrana", "CN"], - ["Pontechianale", "CN"], - ["Villar", "CN"], - ["Villar Sampeyre", "CN"], - ["Stroppo", "CN"], - ["Isasca", "CN"], - ["Vottignasco", "CN"], - ["Castelmagno", "CN"], - ["Cartignano", "CN"], - ["Villafalletto", "CN"], - ["Bellino", "CN"], - ["Celle Di Macra", "CN"], - ["San Pietro Monterosso", "CN"], - ["Villa San Pietro", "CN"], - ["Rossana", "CN"], - ["Tarantasca", "CN"], - ], - "12021": [["Acceglio", "CN"]], - "12022": [["San Chiaffredo", "CN"], ["Valmala", "CN"], ["Busca", "CN"], ["Castelletto Busca", "CN"]], - "12023": [["Caraglio", "CN"]], - "12024": [["Costigliole Saluzzo", "CN"]], - "12025": [["Montemale Di Cuneo", "CN"], ["Dronero", "CN"]], - "12026": [["Piasco", "CN"]], - "12027": [["Pradleves", "CN"]], - "12028": [["San Michele Prazzo", "CN"], ["Prazzo", "CN"]], - "12029": [["Lottulo", "CN"], ["San Damiano Macra", "CN"]], - "12030": [ - ["Scarnafigi", "CN"], - ["Torre San Giorgio", "CN"], - ["Envie", "CN"], - ["Rifreddo", "CN"], - ["Cavallermaggiore", "CN"], - ["Gambasca", "CN"], - ["Monasterolo Di Savigliano", "CN"], - ["Marene", "CN"], - ["Lagnasco", "CN"], - ["Villanova Solaro", "CN"], - ["Faule", "CN"], - ["Murello", "CN"], - ["Ostana", "CN"], - ["Pagno", "CN"], - ["Manta", "CN"], - ["Oncino", "CN"], - ["Rifreddo Di Saluzzo", "CN"], - ["Madonna Del Pilone", "CN"], - ["Brondello", "CN"], - ["Sanfront", "CN"], - ["Polonghera", "CN"], - ["Casalgrasso", "CN"], - ["Crissolo", "CN"], - ["Caramagna Piemonte", "CN"], - ["Cavallerleone", "CN"], - ["Carde'", "CN"], - ["Ruffia", "CN"], - ["Martiniana Po", "CN"], - ], - "12031": [["Bagnolo Piemonte", "CN"]], - "12032": [["Galleane", "CN"], ["Barge", "CN"]], - "12033": [["Moretta", "CN"]], - "12034": [["Paesana", "CN"]], - "12035": [["Racconigi", "CN"]], - "12036": [["Staffarda", "CN"], ["Revello", "CN"]], - "12037": [ - ["Cervignasco", "CN"], - ["Saluzzo", "CN"], - ["San Lazzaro Saluzzo", "CN"], - ["San Lazzaro", "CN"], - ["Castellar", "CN"], - ["Via Dei Romani", "CN"], - ], - "12038": [["Savigliano", "CN"], ["Levaldigi", "CN"]], - "12039": [["Verzuolo", "CN"], ["Villanovetta", "CN"], ["Falicetto", "CN"]], - "12040": [ - ["San Lorenzo Roero", "CN"], - ["Morozzo", "CN"], - ["Piobesi D'Alba", "CN"], - ["Genola", "CN"], - ["Santo Stefano Roero", "CN"], - ["Vezza D'Alba", "CN"], - ["Cervere", "CN"], - ["Ceresole Alba", "CN"], - ["Priocca", "CN"], - ["Canove", "CN"], - ["Sant'Albano Stura", "CN"], - ["Sommariva Perno", "CN"], - ["Castelletto Stura", "CN"], - ["Margarita", "CN"], - ["Montanera", "CN"], - ["Govone", "CN"], - ["Montaldo Roero", "CN"], - ["Trucchi", "CN"], - ["Corneliano D'Alba", "CN"], - ["Sanfre'", "CN"], - ["Monteu Roero", "CN"], - ["San Giuseppe", "CN"], - ["Baldissero D'Alba", "CN"], - ["Salmour", "CN"], - ], - "12041": [["Isola Di Bene Vagienna", "CN"], ["Isola", "CN"], ["Bene Vagienna", "CN"]], - "12042": [["Bandito", "CN"], ["Bra", "CN"], ["Pollenzo", "CN"]], - "12043": [["Canale", "CN"], ["Valpone", "CN"]], - "12044": [["Roata Chiusani", "CN"], ["San Biagio", "CN"], ["Centallo", "CN"]], - "12045": [ - ["Piovani", "CN"], - ["Murazzo", "CN"], - ["Gerbo", "CN"], - ["San Sebastiano Della Comunia", "CN"], - ["San Sebastiano", "CN"], - ["Tagliata", "CN"], - ["San Vittore", "CN"], - ["Fossano", "CN"], - ["Maddalene", "CN"], - ], - "12046": [["San Rocco", "CN"], ["Monta'", "CN"], ["San Rocco Monta'", "CN"]], - "12047": [["Rocca De' Baldi", "CN"], ["Crava", "CN"]], - "12048": [["Sommariva Del Bosco", "CN"]], - "12049": [["Trinita'", "CN"]], - "12050": [ - ["Feisoglio", "CN"], - ["Baraccone", "CN"], - ["Lequio Berria", "CN"], - ["Magliano Alfieri", "CN"], - ["Rocchetta Belbo", "CN"], - ["Guarene", "CN"], - ["Serralunga D'Alba", "CN"], - ["Castagnito", "CN"], - ["Neviglie", "CN"], - ["Borgomale", "CN"], - ["Treiso", "CN"], - ["Torre Bormida", "CN"], - ["Arguello", "CN"], - ["Rodello", "CN"], - ["Sinio", "CN"], - ["Castellinaldo", "CN"], - ["Benevello", "CN"], - ["Sant'Antonio Magliano Alfieri", "CN"], - ["Sant'Antonio", "CN"], - ["San Benedetto Belbo", "CN"], - ["Barbaresco", "CN"], - ["Niella Belbo", "CN"], - ["Serravalle Langhe", "CN"], - ["Vaccheria", "CN"], - ["Cerreto Langhe", "CN"], - ["Trezzo Tinella", "CN"], - ["Montelupo Albese", "CN"], - ["Castelrotto", "CN"], - ["Cravanzana", "CN"], - ["Castino", "CN"], - ["Bosia", "CN"], - ["Albaretto Della Torre", "CN"], - ["Roddino", "CN"], - ["Cissone", "CN"], - ], - "12051": [["Mussotto", "CN"], ["Alba", "CN"]], - "12052": [["Neive", "CN"], ["Borgonuovo Di Neive", "CN"], ["Borgonovo", "CN"]], - "12053": [["Santuario Tinella", "CN"], ["Castiglione Tinella", "CN"]], - "12054": [["Cossano Belbo", "CN"], ["Santa Libera", "CN"]], - "12055": [["Diano D'Alba", "CN"], ["Valle Talloria", "CN"], ["San Rocco Cherasca", "CN"], ["Ricca", "CN"]], - "12056": [["San Donato", "CN"], ["San Donato Di Mango", "CN"], ["Mango", "CN"]], - "12058": [["Camo", "CN"], ["Valdivilla", "CN"], ["Santo Stefano Belbo", "CN"]], - "12060": [ - ["Magliano Alpi", "CN"], - ["Gallo Di Grinzane", "CN"], - ["Bossolasco", "CN"], - ["Farigliano", "CN"], - ["Niella Tanaro", "CN"], - ["Clavesana", "CN"], - ["Somano", "CN"], - ["Roddi", "CN"], - ["Grinzane Cavour", "CN"], - ["Lequio Tanaro", "CN"], - ["Madonna Della Neve", "CN"], - ["Marsaglia", "CN"], - ["Belvedere Langhe", "CN"], - ["Piozzo", "CN"], - ["Castellino Tanaro", "CN"], - ["Macellai", "CN"], - ["Igliano", "CN"], - ["Magliano Alpi Sottano", "CN"], - ["Barolo", "CN"], - ["Magliano Alpi Soprano", "CN"], - ["Gallo", "CN"], - ["Verduno", "CN"], - ["Rocca Ciglie'", "CN"], - ["Bastia Mondovi'", "CN"], - ["Bonvicino", "CN"], - ["Ciglie'", "CN"], - ["Murazzano", "CN"], - ["Castiglione Falletto", "CN"], - ["Pocapaglia", "CN"], - ["Novello", "CN"], - ["Monchiero", "CN"], - ], - "12061": [["Carru'", "CN"]], - "12062": [["Bricco Favole", "CN"], ["Cherasco", "CN"], ["Roreto", "CN"]], - "12063": [["Dogliani", "CN"]], - "12064": [["Rivalta", "CN"], ["La Morra", "CN"]], - "12065": [["Perno", "CN"], ["Monforte D'Alba", "CN"]], - "12066": [["Borgo", "CN"], ["Monticello D'Alba", "CN"]], - "12068": [["Narzole", "CN"]], - "12069": [ - ["Cinzano", "CN"], - ["Villa", "CN"], - ["Santa Vittoria D'Alba Cinzano", "CN"], - ["Santa Vittoria D'Alba", "CN"], - ], - "12070": [ - ["Montezemolo", "CN"], - ["Perlo", "CN"], - ["Mombarcaro", "CN"], - ["Priero", "CN"], - ["Bragioli", "CN"], - ["Viola", "CN"], - ["Nucetto", "CN"], - ["Lisio", "CN"], - ["Paroldo", "CN"], - ["Castelletto Uzzone", "CN"], - ["Scagnello", "CN"], - ["Alto", "CN"], - ["Scaletta Uzzone", "CN"], - ["Sale San Giovanni", "CN"], - ["Gorzegno", "CN"], - ["Levice", "CN"], - ["Castelnuovo Di Ceva", "CN"], - ["Pezzolo Valle Uzzone", "CN"], - ["Gottasecca", "CN"], - ["Priola", "CN"], - ["Torresina", "CN"], - ["Sale Delle Langhe", "CN"], - ["Battifollo", "CN"], - ["Perletto", "CN"], - ["Caprauna", "CN"], - ["Mombasiglio", "CN"], - ], - "12072": [["Camerana", "CN"]], - "12073": [["Ceva", "CN"], ["Roascio", "CN"]], - "12074": [["Bergolo", "CN"], ["Cortemilia", "CN"]], - "12075": [ - ["Garessio", "CN"], - ["Garessio Borgo Piave", "CN"], - ["Cerisola", "CN"], - ["Garessio Borgo Ponte", "CN"], - ["Trappa", "CN"], - ], - "12076": [["Lesegno", "CN"]], - "12077": [["Prunetto", "CN"], ["Monesiglio", "CN"]], - "12078": [["Ormea", "CN"], ["Ponte Di Nava", "CN"]], - "12079": [["Saliceto", "CN"]], - "12080": [ - ["Pra'", "CN"], - ["Montaldo Di Mondovi'", "CN"], - ["Monasterolo Casotto", "CN"], - ["Monastero Di Vasco", "CN"], - ["Vicoforte", "CN"], - ["Santuario Di Vicoforte", "CN"], - ["Le Moline", "CN"], - ["Roburent", "CN"], - ["Torre Mondovi'", "CN"], - ["San Michele Mondovi'", "CN"], - ["Briaglia", "CN"], - ["Pianfei", "CN"], - ["Moline", "CN"], - ["Pra' Di Roburent", "CN"], - ], - "12081": [["Beinette", "CN"]], - "12082": [["Frabosa Soprana", "CN"], ["Bossea", "CN"], ["Fontane", "CN"], ["Corsaglia", "CN"]], - "12083": [["Gosi Pianvignale", "CN"], ["Gosi", "CN"], ["Frabosa Sottana", "CN"]], - "12084": [ - ["Pogliola", "CN"], - ["Breo", "CN"], - ["Gratteria", "CN"], - ["Breolungi", "CN"], - ["Sant'Anna Avagnina", "CN"], - ["Piazza", "CN"], - ["Rifreddo Mondovi'", "CN"], - ["Pascomonti", "CN"], - ["Mondovi'", "CN"], - ], - "12087": [["Valcasotto", "CN"], ["Pamparato", "CN"], ["Serra", "CN"], ["Serra Pamparato", "CN"]], - "12088": [["Roccaforte Mondovi'", "CN"], ["Lurisia", "CN"], ["Prea", "CN"], ["Prea Di Roccaforte", "CN"]], - "12089": [["Villanova Mondovi'", "CN"]], - "12100": [ - ["Madonna Delle Grazie", "CN"], - ["Passatore", "CN"], - ["San Pietro Del Gallo", "CN"], - ["San Benigno", "CN"], - ["Borgo San Giuseppe", "CN"], - ["San Rocco Castagnaretta", "CN"], - ["Confreria", "CN"], - ["Borgo Gesso", "CN"], - ["Spinetta", "CN"], - ["Madonna Dell'Olmo", "CN"], - ["Ronchi", "CN"], - ["Cuneo", "CN"], - ["Roata Rossi", "CN"], - ], - "28010": [ - ["Fontaneto D'Agogna", "NO"], - ["Boca", "NO"], - ["Bogogno", "NO"], - ["Cavallirio", "NO"], - ["Revislate", "NO"], - ["Bolzano Novarese", "NO"], - ["Miasino", "NO"], - ["Gargallo", "NO"], - ["Alzo", "NO"], - ["Soriso", "NO"], - ["Briga Novarese", "NO"], - ["Cavaglietto", "NO"], - ["Pisano", "NO"], - ["Sologno", "NO"], - ["Barengo", "NO"], - ["Ameno", "NO"], - ["Vaprio D'Agogna", "NO"], - ["Cavaglio D'Agogna", "NO"], - ["Nebbiuno", "NO"], - ["Caltignaga", "NO"], - ["Agrate Conturbia", "NO"], - ["Pella", "NO"], - ["Divignano", "NO"], - ["Colazza", "NO"], - ], - "28011": [["Coiromonte", "NO"], ["Armeno", "NO"], ["Sovazza", "NO"]], - "28012": [["Cressa", "NO"]], - "28013": [["Veruno", "NO"], ["Gattico", "NO"]], - "28014": [["Maggiora", "NO"]], - "28015": [["Momo", "NO"]], - "28016": [["Orta Novarese", "NO"], ["Isola San Giulio", "NO"], ["Orta San Giulio", "NO"]], - "28017": [["San Maurizio D'Opaglio", "NO"]], - "28019": [["Suno", "NO"], ["Baraggia", "NO"]], - "28021": [ - ["Borgomanero", "NO"], - ["Vergano Di Borgomanero", "NO"], - ["Santa Cristina Di Borgomanero", "NO"], - ["San Marco Di Borgomanero", "NO"], - ], - "28024": [["Gozzano", "NO"]], - "28028": [["Pratolungo", "NO"], ["Pettenasco", "NO"]], - "28040": [ - ["Oleggio Castello", "NO"], - ["Lesa", "NO"], - ["Dormelletto", "NO"], - ["Paruzzaro", "NO"], - ["Marano Ticino", "NO"], - ["Mezzomerico", "NO"], - ["Borgo Ticino", "NO"], - ["Varallo Pombia", "NO"], - ["Massino Visconti", "NO"], - ], - "28041": [["Arona", "NO"], ["Dagnente", "NO"], ["Mercurago", "NO"]], - "28043": [["Bellinzago Novarese", "NO"]], - "28045": [["Invorio", "NO"]], - "28046": [["Ghevio", "NO"], ["Meina", "NO"]], - "28047": [["Oleggio", "NO"], ["Fornaci", "NO"]], - "28050": [["Pombia", "NO"]], - "28053": [["Castelletto Sopra Ticino", "NO"]], - "28060": [ - ["Vinzaglio", "NO"], - ["Granozzo Con Monticello", "NO"], - ["Casalvolone", "NO"], - ["Granozzo", "NO"], - ["San Nazzaro Sesia", "NO"], - ["Castellazzo Novarese", "NO"], - ["Casaleggio Novara", "NO"], - ["Orfengo", "NO"], - ["Nibbia", "NO"], - ["Mandello Vitta", "NO"], - ["Sozzago", "NO"], - ["Cameriano", "NO"], - ["Vicolungo", "NO"], - ["Cureggio", "NO"], - ["Casalbeltrame", "NO"], - ["Recetto", "NO"], - ["San Pietro Mosezzo", "NO"], - ["Comignago", "NO"], - ["Casalino", "NO"], - ], - "28061": [["Biandrate", "NO"]], - "28062": [["Cameri Aeronautica", "NO"], ["Cameri", "NO"]], - "28064": [["Sillavengo", "NO"], ["Carpignano Sesia", "NO"], ["Landiona", "NO"]], - "28065": [["Cerano", "NO"]], - "28066": [["Galliate", "NO"]], - "28068": [["Romentino", "NO"]], - "28069": [["Trecate", "NO"]], - "28070": [ - ["Sizzano", "NO"], - ["Garbagna Novarese", "NO"], - ["Nibbiola", "NO"], - ["Tornaco", "NO"], - ["Terdobbiate", "NO"], - ], - "28071": [["Borgolavezzaro", "NO"]], - "28072": [["San Bernardino", "NO"], ["Briona", "NO"]], - "28073": [["Fara Novarese", "NO"]], - "28074": [["Ghemme", "NO"]], - "28075": [["Grignasco", "NO"]], - "28076": [["Pogno", "NO"]], - "28077": [["Prato Sesia", "NO"]], - "28078": [["Romagnano Sesia", "NO"]], - "28079": [["Vespolate", "NO"]], - "28100": [ - ["Veveri", "NO"], - ["Vignale", "NO"], - ["Olengo", "NO"], - ["Bicocca Di Novara", "NO"], - ["Torrion Quartara", "NO"], - ["Agognate", "NO"], - ["Sant'Agabio", "NO"], - ["Casalgiate", "NO"], - ["Novara", "NO"], - ["Lumellogno", "NO"], - ["Pernate", "NO"], - ], - "10010": [ - ["Colleretto Giacosa", "TO"], - ["Salerano Canavese", "TO"], - ["Banchette", "TO"], - ["Lessolo", "TO"], - ["Bairo", "TO"], - ["Orio Canavese", "TO"], - ["Parella", "TO"], - ["Tavagnasco", "TO"], - ["Palazzo Canavese", "TO"], - ["Nomaglio", "TO"], - ["Settimo Rottaro", "TO"], - ["Quagliuzzo", "TO"], - ["Fiorano Canavese", "TO"], - ["Candia Canavese", "TO"], - ["Burolo", "TO"], - ["Calea", "TO"], - ["Mercenasco", "TO"], - ["Quassolo", "TO"], - ["San Martino Canavese", "TO"], - ["Masino", "TO"], - ["Andrate", "TO"], - ["Cossano Canavese", "TO"], - ["Quincinetto", "TO"], - ["Strambinello", "TO"], - ["Barone Canavese", "TO"], - ["Carema", "TO"], - ["Azeglio", "TO"], - ["Gauna", "TO"], - ["Piverone", "TO"], - ["Perosa Canavese", "TO"], - ["Torre Canavese", "TO"], - ["Albiano D'Ivrea", "TO"], - ["Villate", "TO"], - ["Cascinette D'Ivrea", "TO"], - ["Settimo Vittone", "TO"], - ["Caravino", "TO"], - ["Scarmagno", "TO"], - ["Chiaverano", "TO"], - ["Loranze'", "TO"], - ["Rueglio", "TO"], - ], - "10011": [["Aglie'", "TO"]], - "10012": [["Bollengo", "TO"]], - "10013": [["Baio Dora", "TO"], ["Borgofranco D'Ivrea", "TO"]], - "10014": [["Caluso", "TO"], ["Vallo Di Caluso", "TO"], ["Vallo", "TO"], ["Are'", "TO"], ["Rodallo", "TO"]], - "10015": [["San Bernardo D'Ivrea", "TO"], ["Torre Balfredo", "TO"], ["Ivrea", "TO"]], - "10016": [["Montalto Dora", "TO"]], - "10017": [["Montanaro", "TO"]], - "10018": [["Pavone Canavese", "TO"]], - "10019": [["Strambino", "TO"], ["Cerone", "TO"], ["Carrone", "TO"]], - "10020": [ - ["Pecetto Torinese", "TO"], - ["Moriondo Torinese", "TO"], - ["Marcorengo", "TO"], - ["Cavagnolo", "TO"], - ["Colombaro", "TO"], - ["San Sebastiano Da Po", "TO"], - ["Verrua Savoia", "TO"], - ["Brusasco", "TO"], - ["Riva Presso Chieri", "TO"], - ["San Pietro", "TO"], - ["Baldissero Torinese", "TO"], - ["Arignano", "TO"], - ["Monteu Da Po", "TO"], - ["Lauriano", "TO"], - ["Madonna Della Scala", "TO"], - ["Brozolo", "TO"], - ["Pavarolo", "TO"], - ["Marentino", "TO"], - ["Andezeno", "TO"], - ["Montaldo Torinese", "TO"], - ["Cambiano", "TO"], - ["Mombello Di Torino", "TO"], - ["Casalborgone", "TO"], - ["Rivodora", "TO"], - ], - "10022": [ - ["Cavalleri", "TO"], - ["Carmagnola", "TO"], - ["Fumeri", "TO"], - ["San Michele E Grato", "TO"], - ["San Bernardo Carmagnola", "TO"], - ["Borgo Salsasio", "TO"], - ], - "10023": [["Chieri", "TO"], ["Pessione", "TO"]], - "10024": [ - ["Moncalieri", "TO"], - ["Revigliasco", "TO"], - ["Tagliaferro", "TO"], - ["Barauda", "TO"], - ["Colle Della Maddalena", "TO"], - ["Testona", "TO"], - ["Revigliasco Torinese", "TO"], - ["Borgo San Pietro Di Moncalieri", "TO"], - ], - "10025": [["Pino Torinese", "TO"]], - "10026": [["Santena", "TO"]], - "10028": [["Valle Sauglio", "TO"], ["Trofarello", "TO"]], - "10029": [["Villastellone", "TO"]], - "10030": [ - ["Maglione", "TO"], - ["Vische", "TO"], - ["Tina", "TO"], - ["Rondissone", "TO"], - ["Vestigne'", "TO"], - ["Villareggia", "TO"], - ], - "10031": [["Borgomasino", "TO"]], - "10032": [["Brandizzo", "TO"]], - "10034": [["Boschetto", "TO"], ["Chivasso", "TO"], ["Torassi", "TO"], ["Castelrosso", "TO"]], - "10035": [["Casale", "TO"], ["Mazze'", "TO"], ["Tonengo Di Mazze'", "TO"]], - "10036": [["Olimpia", "TO"], ["Settimo Torinese", "TO"]], - "10037": [["Torrazza Piemonte", "TO"]], - "10038": [["Verolengo", "TO"], ["Casabianca", "TO"], ["Borgo Revel", "TO"]], - "10039": [["Pecco", "TO"], ["Lugnacco", "TO"], ["Alice Superiore", "TO"]], - "10040": [ - ["La Cassa", "TO"], - ["Rivarossa", "TO"], - ["Rivera", "TO"], - ["Rivalta Di Torino", "TO"], - ["Milanere", "TO"], - ["Tedeschi", "TO"], - ["Bivio Cumiana", "TO"], - ["Givoletto", "TO"], - ["San Gillio", "TO"], - ["Caselette", "TO"], - ["Gerbole", "TO"], - ["Montelera", "TO"], - ["Zucche", "TO"], - ["Druento", "TO"], - ["Rubiana", "TO"], - ["Cumiana", "TO"], - ["Val Della Torre", "TO"], - ["Leini'", "TO"], - ["Lombardore", "TO"], - ["Almese", "TO"], - ["Novaretto", "TO"], - ["Villar Dora", "TO"], - ["Piobesi Torinese", "TO"], - ["Brione", "TO"], - ["La Loggia", "TO"], - ["Osasio", "TO"], - ["Caprie", "TO"], - ["Pralormo", "TO"], - ["Lombriasco", "TO"], - ["Volvera", "TO"], - ], - "10041": [["Carignano", "TO"], ["Ceretto Di Carignano", "TO"], ["Ceretto", "TO"]], - "10042": [["Stupinigi", "TO"], ["Nichelino", "TO"]], - "10043": [["Orbassano", "TO"]], - "10044": [["Pianezza", "TO"]], - "10045": [["Piossasco", "TO"], ["Garola", "TO"]], - "10046": [["Marocchi", "TO"], ["Avatanei", "TO"], ["Isolabella", "TO"], ["Poirino", "TO"], ["Favari", "TO"]], - "10048": [["Vinovo", "TO"], ["Garino", "TO"]], - "10050": [ - ["Sauze D'Oulx", "TO"], - ["Coazze", "TO"], - ["San Giorio Di Susa", "TO"], - ["Borgone Susa", "TO"], - ["Chiomonte", "TO"], - ["Salice D'Ulzio", "TO"], - ["Baratte", "TO"], - ["Chianocco", "TO"], - ["Vernetto", "TO"], - ["Meana Di Susa", "TO"], - ["Novalesa", "TO"], - ["San Didero", "TO"], - ["Zoie", "TO"], - ["Claviere", "TO"], - ["Chiusa Di San Michele", "TO"], - ["Giaglione", "TO"], - ["Venaus", "TO"], - ["San Giorio", "TO"], - ["Mattie", "TO"], - ["Gravere", "TO"], - ["Sant'Antonino Di Susa", "TO"], - ["Exilles", "TO"], - ["Vaie", "TO"], - ["Villar Focchiardo", "TO"], - ["Moncenisio", "TO"], - ["Salbertrand", "TO"], - ["Bruzolo", "TO"], - ], - "10051": [["Drubiaglio", "TO"], ["Grangia", "TO"], ["Avigliana", "TO"]], - "10052": [["Bardonecchia", "TO"], ["Borgonovo Bardonecchia", "TO"]], - "10053": [["Foresto", "TO"], ["Bussoleno", "TO"]], - "10054": [["Bousson", "TO"], ["Cesana Torinese", "TO"], ["Solomiac", "TO"], ["Sauze Di Cesana", "TO"]], - "10055": [["Condove", "TO"]], - "10056": [["Beaulard", "TO"], ["Oulx", "TO"]], - "10057": [["Sant'Ambrogio Di Torino", "TO"]], - "10058": [["Sestriere", "TO"], ["Colle Sestriere", "TO"]], - "10059": [["Mompantero", "TO"], ["San Giuseppe", "TO"], ["Susa", "TO"]], - "10060": [ - ["Bibiana", "TO"], - ["Bricherasio", "TO"], - ["Villar Pellice", "TO"], - ["Rora'", "TO"], - ["Combalere", "TO"], - ["Cantalupa", "TO"], - ["Airasca", "TO"], - ["Roletto", "TO"], - ["Inverso Pinasca", "TO"], - ["Pragelato", "TO"], - ["Campiglione", "TO"], - ["Scalenghe", "TO"], - ["Castagnole Piemonte", "TO"], - ["Macello", "TO"], - ["Pancalieri", "TO"], - ["Mentoulles", "TO"], - ["None", "TO"], - ["Villaretto", "TO"], - ["Candiolo", "TO"], - ["Villaretto Chisone", "TO"], - ["Roure", "TO"], - ["Perrero", "TO"], - ["Dubbione", "TO"], - ["Piscina", "TO"], - ["Prarostino", "TO"], - ["Angrogna", "TO"], - ["Miradolo", "TO"], - ["Garzigliana", "TO"], - ["Frossasco", "TO"], - ["Massello", "TO"], - ["Bobbio Pellice", "TO"], - ["Roreto", "TO"], - ["Riclaretto", "TO"], - ["Castel Del Bosco", "TO"], - ["Virle Piemonte", "TO"], - ["Roreto Chisone", "TO"], - ["Buriasco", "TO"], - ["Viotto", "TO"], - ["Prali", "TO"], - ["Osasco", "TO"], - ["Salza Di Pinerolo", "TO"], - ["Fenestrelle", "TO"], - ["Pinasca", "TO"], - ["Castelnuovo", "TO"], - ["Pra' Catinat", "TO"], - ["Cercenasco", "TO"], - ["San Pietro Val Lemina", "TO"], - ["San Secondo Di Pinerolo", "TO"], - ["Usseaux", "TO"], - ["Porte", "TO"], - ["Lusernetta", "TO"], - ["Campiglione Fenile", "TO"], - ], - "10061": [["Cavour", "TO"]], - "10062": [["Airali", "TO"], ["Luserna", "TO"], ["Luserna San Giovanni", "TO"]], - "10063": [["Perosa Argentina", "TO"], ["Pomaretto", "TO"]], - "10064": [["Abbadia Alpina", "TO"], ["Riva Di Pinerolo", "TO"], ["Pinerolo", "TO"], ["Baudenasca", "TO"]], - "10065": [["San Germano Chisone", "TO"], ["Pramollo", "TO"]], - "10066": [["Torre Pellice", "TO"]], - "10067": [["Vigone", "TO"]], - "10068": [["Villafranca Piemonte", "TO"]], - "10069": [["Villar Perosa", "TO"]], - "10070": [ - ["Fiano", "TO"], - ["Levone", "TO"], - ["Villanova Canavese", "TO"], - ["Benne", "TO"], - ["Vauda Canavese Superiore", "TO"], - ["Ala Di Stura", "TO"], - ["Front", "TO"], - ["La Villa", "TO"], - ["Vauda Canavese", "TO"], - ["Monasterolo Torinese", "TO"], - ["San Francesco Al Campo", "TO"], - ["Vallo Torinese", "TO"], - ["Ceres", "TO"], - ["Col San Giovanni Di Viu'", "TO"], - ["Varisella", "TO"], - ["Corio", "TO"], - ["Mezzenile", "TO"], - ["Cantoira", "TO"], - ["Rocca Canavese", "TO"], - ["Mondrone", "TO"], - ["Coassolo Torinese", "TO"], - ["San Carlo Canavese", "TO"], - ["Lemie", "TO"], - ["Col San Giovanni", "TO"], - ["Bonzo", "TO"], - ["Pessinetto", "TO"], - ["Germagnano", "TO"], - ["Balangero", "TO"], - ["Monasterolo", "TO"], - ["Cafasse", "TO"], - ["Traves", "TO"], - ["Viu'", "TO"], - ["Procaria", "TO"], - ["Forno Alpi Graie", "TO"], - ["Groscavallo", "TO"], - ["Grosso", "TO"], - ["Usseglio", "TO"], - ["Monastero Di Lanzo", "TO"], - ["Balme", "TO"], - ["Robassomero", "TO"], - ["Barbania", "TO"], - ["Chialamberto", "TO"], - ], - "10071": [["Borgaro Torinese", "TO"]], - "10072": [["Caselle Torinese", "TO"], ["Mappano", "TO"]], - "10073": [["Devesi", "TO"], ["Cirie'", "TO"]], - "10074": [["Lanzo Torinese", "TO"]], - "10075": [["Mathi", "TO"]], - "10076": [["San Giovanni", "TO"], ["Nole", "TO"]], - "10077": [["Malanghero", "TO"], ["Ceretta Di San Maurizio Canavese", "TO"], ["San Maurizio Canavese", "TO"]], - "10078": [["Venaria Reale", "TO"], ["Altessano", "TO"]], - "10080": [ - ["Rosone", "TO"], - ["Ciconio", "TO"], - ["Baldissero Canavese", "TO"], - ["Sparone", "TO"], - ["Lusiglie'", "TO"], - ["San Ponso", "TO"], - ["Oglianico", "TO"], - ["Ceresole Reale", "TO"], - ["Cintano", "TO"], - ["Fornolosa", "TO"], - ["Alpette", "TO"], - ["Drusacco", "TO"], - ["Pratiglione", "TO"], - ["Ozegna", "TO"], - ["Traversella", "TO"], - ["Casetti", "TO"], - ["Ingria", "TO"], - ["Colleretto Castelnuovo", "TO"], - ["Valprato Soana", "TO"], - ["Vistrorio", "TO"], - ["San Colombano Belmonte", "TO"], - ["Villa Castelnuovo", "TO"], - ["Ribordone", "TO"], - ["Bosconero", "TO"], - ["Canischio", "TO"], - ["Salassa", "TO"], - ["Brosso", "TO"], - ["Noasca", "TO"], - ["Locana", "TO"], - ["Castelnuovo Nigra", "TO"], - ["Frassinetto", "TO"], - ["Pertusio", "TO"], - ["Prascorsano", "TO"], - ["Vidracco", "TO"], - ["Chiesanuova", "TO"], - ["Feletto", "TO"], - ["Issiglio", "TO"], - ["Ronco Canavese", "TO"], - ["Busano", "TO"], - ["San Benigno Canavese", "TO"], - ["Rivara", "TO"], - ["Borgiallo", "TO"], - ], - "10081": [ - ["Campo Canavese", "TO"], - ["San Giovanni Canavese", "TO"], - ["Muriaglio", "TO"], - ["Castellamonte", "TO"], - ], - "10082": [["Priacco", "TO"], ["Salto Canavese", "TO"], ["Cuorgne'", "TO"]], - "10083": [["Favria", "TO"]], - "10084": [["Forno Canavese", "TO"]], - "10085": [["Pont Canavese", "TO"]], - "10086": [["Argentera", "TO"], ["Rivarolo Canavese", "TO"]], - "10087": [["Valperga", "TO"]], - "10088": [["Volpiano", "TO"]], - "10089": [["Vico Canavese", "TO"], ["Trausella", "TO"], ["Meugliano", "TO"]], - "10090": [ - ["San Bernardino", "TO"], - ["San Giorgio Canavese", "TO"], - ["Bussolino", "TO"], - ["Sciolze", "TO"], - ["Rivalba", "TO"], - ["Piana San Raffaele", "TO"], - ["San Raffaele Cimena", "TO"], - ["Trana", "TO"], - ["Cinzano", "TO"], - ["Foglizzo", "TO"], - ["Sangano", "TO"], - ["Bruino", "TO"], - ["Gassino Torinese", "TO"], - ["Reano", "TO"], - ["Cuceglio", "TO"], - ["Vialfre'", "TO"], - ["Buttigliera Alta", "TO"], - ["San Giusto Canavese", "TO"], - ["Villaggio La Quercia", "TO"], - ["Villarbasse", "TO"], - ["Castagneto Po", "TO"], - ["Montalenghe", "TO"], - ["Romano Canavese", "TO"], - ["Rosta", "TO"], - ["Corbiglia", "TO"], - ["Castiglione Torinese", "TO"], - ["Ferriera", "TO"], - ], - "10091": [["Alpignano", "TO"]], - "10092": [["Borgaretto", "TO"], ["Beinasco", "TO"]], - "10093": [ - ["Leumann", "TO"], - ["Savonera", "TO"], - ["Collegno", "TO"], - ["Borgata Paradiso Di Collegno", "TO"], - ["Regina Margherita", "TO"], - ], - "10094": [["Valgioie", "TO"], ["Pontepietra", "TO"], ["Giaveno", "TO"], ["Selvaggio", "TO"]], - "10095": [["Gerbido", "TO"], ["Lesna", "TO"], ["Grugliasco", "TO"]], - "10098": [["Tetti Neirotti", "TO"], ["Rivoli", "TO"], ["Bruere", "TO"], ["Cascine Vica", "TO"]], - "10099": [["San Mauro Torinese", "TO"]], - "10100": [["Torino", "TO"]], - "10121": [["Torino", "TO"]], - "10122": [["Torino", "TO"]], - "10123": [["Torino", "TO"]], - "10124": [["Torino", "TO"]], - "10125": [["Torino", "TO"]], - "10126": [["Torino", "TO"]], - "10127": [["Torino", "TO"]], - "10128": [["Torino", "TO"]], - "10129": [["Torino", "TO"]], - "10131": [["Torino", "TO"]], - "10132": [["Superga", "TO"], ["Torino", "TO"]], - "10133": [["Torino", "TO"], ["Cavoretto", "TO"]], - "10134": [["Torino", "TO"]], - "10135": [["Torino", "TO"]], - "10136": [["Torino", "TO"]], - "10137": [["Torino", "TO"]], - "10138": [["Torino", "TO"]], - "10139": [["Torino", "TO"]], - "10141": [["Torino", "TO"]], - "10142": [["Torino", "TO"]], - "10143": [["Torino", "TO"]], - "10144": [["Torino", "TO"]], - "10145": [["Torino", "TO"]], - "10146": [["Torino", "TO"]], - "10147": [["Torino", "TO"]], - "10148": [["Torino", "TO"]], - "10149": [["Torino", "TO"]], - "10151": [["Torino", "TO"]], - "10152": [["Torino", "TO"]], - "10153": [["Torino", "TO"]], - "10154": [["Torino", "TO"]], - "10155": [["Torino", "TO"]], - "10156": [["Bertolla Barca", "TO"], ["Torino", "TO"], ["Falchera", "TO"]], - "28801": [["Cossogno", "VB"]], - "28802": [["Albo", "VB"], ["Mergozzo", "VB"]], - "28803": [["Premosello Chiovenda", "VB"], ["Cuzzago", "VB"]], - "28804": [["San Bernardino Verbano", "VB"], ["Bieno", "VB"]], - "28805": [["Vogogna", "VB"]], - "28811": [["Cissano", "VB"], ["Cresseglio", "VB"], ["Arizzano", "VB"]], - "28812": [["Aurano", "VB"]], - "28813": [["Bee", "VB"]], - "28814": [["Cambiasca", "VB"]], - "28815": [["Caprezzo", "VB"]], - "28816": [["Intragna", "VB"]], - "28817": [["Miazzina", "VB"]], - "28818": [["Premeno", "VB"]], - "28819": [["Vignone", "VB"]], - "28821": [["Cannero Riviera", "VB"]], - "28822": [["Cannobio", "VB"]], - "28823": [["Ghiffa", "VB"], ["Susello", "VB"], ["Cargiago", "VB"]], - "28824": [["Gonte", "VB"], ["Oggebbio", "VB"]], - "28825": [["Ponte Di Falmenta", "VB"]], - "28826": [["Trarego Viggiona", "VB"]], - "28827": [["Cursolo Orasso", "VB"], ["Cavaglio Spoccia", "VB"], ["Falmenta", "VB"], ["Airetta", "VB"]], - "28828": [["Gurro", "VB"]], - "28831": [["Feriolo Baveno", "VB"], ["Feriolo", "VB"], ["Baveno", "VB"]], - "28832": [["Belgirate", "VB"]], - "28833": [["Brovello Carpugnino", "VB"]], - "28836": [["Gignese", "VB"], ["Vezzo", "VB"]], - "28838": [ - ["Binda", "VB"], - ["Levo", "VB"], - ["Carciano", "VB"], - ["Isola Bella", "VB"], - ["Magognino", "VB"], - ["Stresa", "VB"], - ], - "28841": [["Antrona Schieranco", "VB"], ["Antronapiana", "VB"]], - "28842": [["Fonti", "VB"], ["Bognanco Fonti", "VB"], ["Bognanco", "VB"]], - "28843": [["Montescheno", "VB"]], - "28844": [["Villadossola", "VB"]], - "28845": [["Domodossola", "VB"]], - "28846": [["Viganella", "VB"], ["Seppiana", "VB"]], - "28851": [["Cuzzego", "VB"], ["Beura", "VB"], ["Beura Cardezza", "VB"]], - "28852": [["Craveggia", "VB"], ["Vocogno", "VB"]], - "28853": [["Druogno", "VB"]], - "28854": [["Malesco", "VB"], ["Zornasco", "VB"], ["Finero", "VB"]], - "28855": [["Masera", "VB"]], - "28856": [["Re", "VB"], ["Villette", "VB"]], - "28857": [["Santa Maria Maggiore", "VB"]], - "28858": [["Toceno", "VB"]], - "28859": [["Trontano", "VB"]], - "28861": [["Baceno", "VB"]], - "28862": [["Crodo", "VB"]], - "28863": [["Formazza", "VB"]], - "28864": [["Roldo", "VB"], ["Montecrestese", "VB"], ["Pontetto", "VB"]], - "28865": [["Preglia", "VB"], ["Crevoladossola", "VB"]], - "28866": [["Premia", "VB"], ["San Rocco", "VB"]], - "28868": [["Iselle", "VB"], ["Trasquera", "VB"], ["Varzo", "VB"]], - "28871": [["Bannio Anzino", "VB"]], - "28873": [["Calasca Castiglione", "VB"], ["Castiglione D'Ossola", "VB"], ["Castiglione", "VB"]], - "28875": [["Ceppo Morelli", "VB"]], - "28876": [["Pestarena", "VB"], ["Borca", "VB"], ["Borca Di Macugnaga", "VB"], ["Macugnaga", "VB"]], - "28877": [["Anzola D'Ossola", "VB"], ["Ornavasso", "VB"]], - "28879": [["San Carlo", "VB"], ["Vanzone Con San Carlo", "VB"]], - "28881": [ - ["Cereda", "VB"], - ["Ramate", "VB"], - ["Sant'Anna", "VB"], - ["Casale Corte Cerro", "VB"], - ["Gabbio", "VB"], - ["Gabbio Con Monte Ossolano", "VB"], - ], - "28883": [["Granerolo", "VB"], ["Gravellona Toce", "VB"], ["Pedemonte", "VB"]], - "28884": [["Pallanzeno", "VB"]], - "28885": [["Piedimulera", "VB"]], - "28886": [["Pieve Vergonte", "VB"]], - "28887": [ - ["Cireggio", "VB"], - ["Crusinallo", "VB"], - ["Omegna", "VB"], - ["Bagnella", "VB"], - ["Germagno", "VB"], - ["Agrano", "VB"], - ], - "28891": [["Nonio", "VB"], ["Cesara", "VB"]], - "28893": [["Loreglia", "VB"]], - "28894": [["Madonna Del Sasso", "VB"]], - "28895": [["Forno Di Omegna", "VB"], ["Massiola", "VB"]], - "28896": [["Quarna Sotto", "VB"]], - "28897": [["Fornero", "VB"], ["Luzzogno", "VB"], ["Valstrona", "VB"], ["Sambughetto", "VB"]], - "28898": [["Quarna Sopra", "VB"]], - "28899": [["Arola", "VB"]], - "28922": [["Verbania", "VB"]], - "13010": [ - ["Civiasco", "VC"], - ["Caresana", "VC"], - ["Postua", "VC"], - ["Villata", "VC"], - ["Guardabosone", "VC"], - ["Motta De' Conti", "VC"], - ["Stroppiana", "VC"], - ["Pezzana", "VC"], - ], - "13011": [["Bettole Sesia", "VC"], ["Isolella", "VC"], ["Borgosesia", "VC"]], - "13012": [["Borgo Vercelli", "VC"], ["Prarolo", "VC"]], - "13017": [["Quarona", "VC"], ["Doccio", "VC"]], - "13018": [["Valduggia", "VC"], ["Zuccaro", "VC"]], - "13019": [["Morca", "VC"], ["Valmaggia", "VC"], ["Varallo", "VC"], ["Roccapietra", "VC"]], - "13020": [ - ["Sabbia", "VC"], - ["Mollia", "VC"], - ["Balmuccia", "VC"], - ["Rimella", "VC"], - ["Breia", "VC"], - ["Rassa", "VC"], - ["Vocca", "VC"], - ["Rossa", "VC"], - ["Piode", "VC"], - ["Cravagliana", "VC"], - ["Ferrera", "VC"], - ["Ca' Di Ianzo", "VC"], - ["Pila", "VC"], - ], - "13021": [["Riva Valdobbia", "VC"], ["Alagna Valsesia", "VC"]], - "13022": [["Fervento", "VC"], ["Boccioleto", "VC"]], - "13023": [["Campertogno", "VC"]], - "13024": [["Cellio", "VC"]], - "13025": [["Fobello", "VC"], ["Cervatto", "VC"]], - "13026": [["Carcoforo", "VC"], ["Rima San Giuseppe", "VC"], ["Rimasco", "VC"]], - "13027": [["Scopa", "VC"]], - "13028": [["Scopello", "VC"]], - "13030": [ - ["San Giacomo Vercellese", "VC"], - ["Albano Vercellese", "VC"], - ["Villarboit", "VC"], - ["Rive", "VC"], - ["Oldenico", "VC"], - ["Ghislarengo", "VC"], - ["Greggio", "VC"], - ["Caresanablot", "VC"], - ["Quinto Vercellese", "VC"], - ["Collobiano", "VC"], - ["Pertengo", "VC"], - ["Casanova Elvo", "VC"], - ["Formigliana", "VC"], - ], - "13031": [["Arborio", "VC"]], - "13032": [["Asigliano Vercellese", "VC"]], - "13033": [["Costanzana", "VC"]], - "13034": [["Desana", "VC"], ["Lignana", "VC"]], - "13035": [["Lenta", "VC"]], - "13036": [["Ronsecco", "VC"]], - "13037": [["Bornate Sesia", "VC"], ["Vintebbio", "VC"], ["Serravalle Sesia", "VC"]], - "13038": [["Tricerro", "VC"]], - "13039": [["Trino", "VC"]], - "13040": [ - ["Crova", "VC"], - ["Moncrivello", "VC"], - ["Buronzo", "VC"], - ["Palazzolo Vercellese", "VC"], - ["Rovasenda", "VC"], - ["Borgo D'Ale", "VC"], - ["Alice Castello", "VC"], - ["Salasco", "VC"], - ["Fontanetto Po", "VC"], - ["Fornace Crocicchio", "VC"], - ["Saluggia", "VC"], - ["Sali Vercellese", "VC"], - ["Balocco", "VC"], - ["Sant'Antonino", "VC"], - ["Carisio", "VC"], - ], - "13041": [["Bianze'", "VC"]], - "13043": [["Cigliano", "VC"]], - "13044": [["Crescentino", "VC"], ["San Silvestro", "VC"], ["San Genuario", "VC"]], - "13045": [["Lozzolo", "VC"], ["Gattinara", "VC"]], - "13046": [["Lamporo", "VC"], ["Livorno Ferraris", "VC"]], - "13047": [["Olcenengo", "VC"], ["San Germano Vercellese", "VC"]], - "13048": [["Santhia'", "VC"]], - "13049": [["Tronzano Vercellese", "VC"]], - "13060": [["San Maurizio", "VC"], ["Roasio", "VC"], ["Sant'Eusebio", "VC"]], - "13100": [ - ["Vercelli", "VC"], - ["Cappuccini", "VC"], - ["Prarolo", "VC"], - ["Lignana", "VC"], - ["Brarola", "VC"], - ["Larizzate", "VC"], - ], - "70010": [ - ["Capurso", "BA"], - ["Adelfia", "BA"], - ["Adelfia Montrone", "BA"], - ["Adelfia Canneto", "BA"], - ["Cellamare", "BA"], - ["Locorotondo", "BA"], - ["Casamassima", "BA"], - ["San Marco", "BA"], - ["Sammichele Di Bari", "BA"], - ["Superga", "BA"], - ["Turi", "BA"], - ["Valenzano", "BA"], - ["San Pietro", "BA"], - ["Trito", "BA"], - ], - "70011": [["Coreggia", "BA"], ["Alberobello", "BA"]], - "70013": [["Castellana Grotte", "BA"]], - "70014": [["Triggianello", "BA"], ["Conversano", "BA"]], - "70015": [["Lamadacqua", "BA"], ["Noci", "BA"]], - "70016": [["Parchitello", "BA"], ["Noicattaro", "BA"], ["Parco Scizzo", "BA"]], - "70017": [["San Michele In Monte Laureto", "BA"], ["Putignano", "BA"], ["San Pietro Piturno", "BA"]], - "70018": [["Rutigliano", "BA"]], - "70019": [["Triggiano", "BA"]], - "70020": [ - ["Bitetto", "BA"], - ["Cassano Delle Murge", "BA"], - ["Poggiorsini", "BA"], - ["Binetto", "BA"], - ["Bitritto", "BA"], - ["Toritto", "BA"], - ], - "70021": [["Acquaviva Delle Fonti", "BA"]], - "70022": [["Altamura", "BA"], ["Curtaniello", "BA"], ["Parisi", "BA"]], - "70023": [["Murgia", "BA"], ["Gioia Del Colle", "BA"]], - "70024": [["Gravina In Puglia", "BA"], ["Murgetta", "BA"], ["Dolcecanto", "BA"], ["La Murgetta", "BA"]], - "70025": [["Grumo Appula", "BA"]], - "70026": [["Modugno", "BA"]], - "70027": [["Palo Del Colle", "BA"]], - "70028": [["Sannicandro Di Bari", "BA"]], - "70029": [["Santeramo In Colle", "BA"]], - "70032": [["Bitonto", "BA"], ["Mariotto", "BA"], ["Palombaio", "BA"]], - "70033": [["Corato", "BA"]], - "70037": [["Ruvo Di Puglia", "BA"]], - "70038": [["Terlizzi", "BA"]], - "70042": [["Mola Di Bari", "BA"], ["San Maderno", "BA"], ["Cozze", "BA"]], - "70043": [ - ["Antonelli", "BA"], - ["Impalata", "BA"], - ["Lamalunga", "BA"], - ["Gorgofreddo", "BA"], - ["Cozzana", "BA"], - ["Sant'Antonio D'Ascula", "BA"], - ["Santa Lucia", "BA"], - ["Monopoli", "BA"], - ], - "70044": [["Polignano A Mare", "BA"]], - "70054": [["Giovinazzo", "BA"]], - "70056": [["Molfetta", "BA"]], - "70100": [["Bari", "BA"]], - "70121": [["Bari", "BA"]], - "70122": [["Bari", "BA"]], - "70123": [ - ["Bari", "BA"], - ["San Paolo", "BA"], - ["Fesca", "BA"], - ["San Francesco Dell'Arena", "BA"], - ["Stanic", "BA"], - ["San Cataldo", "BA"], - ["San Girolamo", "BA"], - ], - "70124": [["Picone", "BA"], ["Poggio Franco", "BA"], ["Bari", "BA"]], - "70125": [["Bari", "BA"], ["San Pasquale", "BA"], ["Carrassi", "BA"]], - "70126": [["Mungivacca", "BA"], ["Japigia", "BA"], ["Bari", "BA"], ["Torre A Mare", "BA"]], - "70127": [["Santo Spirito", "BA"]], - "70128": [["Palese", "BA"]], - "70129": [["Loseto", "BA"], ["Ceglie Del Campo", "BA"]], - "70131": [["Carbonara Di Bari", "BA"]], - "72012": [["Carovigno", "BR"], ["Serranova Di Carovigno", "BR"], ["Serranova", "BR"]], - "72013": [["Ceglie Messapica", "BR"]], - "72014": [["Cisternino", "BR"], ["Caranna", "BR"], ["Casalini", "BR"]], - "72015": [ - ["Savelletri", "BR"], - ["Lamie Di Olimpie", "BR"], - ["Montalbano", "BR"], - ["Madonna Pozzo Guacito", "BR"], - ["Stazione Di Fasano", "BR"], - ["Torre Canne", "BR"], - ["Selva", "BR"], - ["Selva Di Fasano", "BR"], - ["Fasano", "BR"], - ["Pezze Di Greco", "BR"], - ["Marina Di Savelletri", "BR"], - ], - "72016": [["Pozzo Guacito", "BR"], ["Montalbano Di Fasano", "BR"]], - "72017": [["Ostuni", "BR"]], - "72018": [["San Michele Salentino", "BR"]], - "72019": [["San Vito Dei Normanni", "BR"]], - "72020": [["Cellino San Marco", "BR"], ["Torchiarolo", "BR"], ["Erchie", "BR"], ["Tuturano", "BR"]], - "72021": [["Capece Bax", "BR"], ["Francavilla Fontana", "BR"], ["Capece", "BR"]], - "72022": [["Latiano", "BR"]], - "72023": [["Mesagne", "BR"]], - "72024": [["Oria", "BR"], ["San Cosimo Alla Macchia", "BR"], ["San Cosimo", "BR"]], - "72025": [["San Donaci", "BR"]], - "72026": [["San Pancrazio Salentino", "BR"]], - "72027": [["San Pietro Vernotico", "BR"]], - "72028": [["Torre Santa Susanna", "BR"]], - "72029": [["Villa Castelli", "BR"]], - "72100": [["Brindisi Casale", "BR"], ["Brindisi", "BR"]], - "76011": [["Bisceglie", "BT"]], - "76012": [["Canosa Di Puglia", "BT"], ["Loconia", "BT"]], - "76013": [["Minervino Murge", "BT"]], - "76014": [["Spinazzola", "BT"]], - "76015": [["Trinitapoli", "BT"]], - "76016": [["Margherita Di Savoia", "BT"]], - "76017": [["San Ferdinando Di Puglia", "BT"]], - "76121": [["Barletta", "BT"]], - "76123": [["Montegrosso", "BT"], ["Andria", "BT"]], - "76125": [["Trani", "BT"]], - "71010": [ - ["Poggio Imperiale", "FG"], - ["San Paolo Di Civitate", "FG"], - ["Rignano Garganico", "FG"], - ["Carpino", "FG"], - ["Serracapriola", "FG"], - ["Ischitella", "FG"], - ["Cagnano Varano", "FG"], - ["Ripalta", "FG"], - ["Difensola", "FG"], - ["Lesina", "FG"], - ["Chieuti Scalo", "FG"], - ["Foce Varano", "FG"], - ["Chieuti", "FG"], - ["Peschici", "FG"], - ], - "71011": [["Apricena", "FG"]], - "71012": [["Rodi Garganico", "FG"]], - "71013": [["San Giovanni Rotondo", "FG"], ["Matine", "FG"]], - "71014": [["Borgo Celano", "FG"], ["San Marco In Lamis", "FG"]], - "71015": [["San Nicandro Garganico", "FG"]], - "71016": [["San Severo", "FG"]], - "71017": [["Petrulli", "FG"], ["Torremaggiore", "FG"]], - "71018": [["Umbra", "FG"], ["Vico Del Gargano", "FG"], ["San Menaio", "FG"]], - "71019": [["Vieste", "FG"]], - "71020": [ - ["Rocchetta Sant'Antonio Stazione", "FG"], - ["Castelluccio Valmaggiore", "FG"], - ["Faeto", "FG"], - ["Monteleone Di Puglia", "FG"], - ["Rocchetta Sant'Antonio", "FG"], - ["Panni", "FG"], - ["Anzano Di Puglia", "FG"], - ["Celle Di San Vito", "FG"], - ], - "71021": [["Accadia", "FG"]], - "71022": [["San Carlo", "FG"], ["San Carlo D'Ascoli", "FG"], ["Ascoli Satriano", "FG"]], - "71023": [["Bovino", "FG"]], - "71024": [["Candela", "FG"]], - "71025": [["Castelluccio Dei Sauri", "FG"]], - "71026": [["Deliceto", "FG"]], - "71027": [["Orsara Di Puglia", "FG"]], - "71028": [["Sant'Agata Di Puglia", "FG"]], - "71029": [["Borgo Giardinetto", "FG"], ["Troia", "FG"]], - "71030": [ - ["San Marco La Catola", "FG"], - ["Volturara Appula", "FG"], - ["Casalvecchio Di Puglia", "FG"], - ["Zapponeta", "FG"], - ["Carlantino", "FG"], - ["Volturino", "FG"], - ["Fonterosa", "FG"], - ["Macchia", "FG"], - ["Mattinata", "FG"], - ["Motta Montecorvino", "FG"], - ], - "71031": [["Alberona", "FG"]], - "71032": [["Biccari", "FG"], ["Berardinone", "FG"]], - "71033": [["Casalnuovo Monterotaro", "FG"]], - "71034": [["Castelnuovo Della Daunia", "FG"]], - "71035": [["Celenza Valfortore", "FG"]], - "71036": [["Lucera", "FG"], ["Palmori", "FG"]], - "71037": [["Monte Sant'Angelo", "FG"]], - "71038": [["Pietramontecorvino", "FG"]], - "71039": [["Roseto Valfortore", "FG"]], - "71040": [ - ["San Nicola", "FG"], - ["San Nicola Di Tremiti", "FG"], - ["Ordona", "FG"], - ["Isole Tremiti", "FG"], - ["Borgata Mezzanone", "FG"], - ["Mezzanone", "FG"], - ["San Domino", "FG"], - ], - "71041": [["Carapelle", "FG"]], - "71042": [ - ["Borgo Liberta'", "FG"], - ["Cerignola", "FG"], - ["Borgo Tressanti", "FG"], - ["La Moschella", "FG"], - ["Tressanti", "FG"], - ["Moschella", "FG"], - ], - "71043": [["Siponto", "FG"], ["Manfredonia", "FG"]], - "71045": [["Orta Nova", "FG"]], - "71047": [["Stornara", "FG"]], - "71048": [["Stornarella", "FG"]], - "71100": [ - ["Incoronata", "FG"], - ["Tavernola", "FG"], - ["Arpinova", "FG"], - ["Borgo Incoronata", "FG"], - ["Segezia", "FG"], - ["Foggia", "FG"], - ["Borgo Cervaro", "FG"], - ["Rignano Garganico Scalo", "FG"], - ["Cervaro", "FG"], - ], - "73010": [ - ["Lequile", "LE"], - ["Caprarica Di Lecce", "LE"], - ["Dragoni", "LE"], - ["Sternatia", "LE"], - ["Porto Cesareo", "LE"], - ["Torre Lapillo", "LE"], - ["Riesci", "LE"], - ["Veglie", "LE"], - ["Sogliano Cavour", "LE"], - ["San Donato Di Lecce", "LE"], - ["San Pietro In Lama", "LE"], - ["Zollino", "LE"], - ["Villa Baldassarri", "LE"], - ["Arnesano", "LE"], - ["Galugnano", "LE"], - ["Surbo", "LE"], - ["Soleto", "LE"], - ["Guagnano", "LE"], - ], - "73011": [["Alezio", "LE"]], - "73012": [["Campi Salentina", "LE"]], - "73013": [["Collemeto", "LE"], ["Galatina", "LE"], ["Noha", "LE"], ["Santa Barbara", "LE"]], - "73014": [["Gallipoli", "LE"]], - "73015": [["Salice Salentino", "LE"]], - "73016": [["San Cesario Di Lecce", "LE"]], - "73017": [["Lido Conchiglie", "LE"], ["San Simone", "LE"], ["Sannicola", "LE"], ["Chiesanuova", "LE"]], - "73018": [["Squinzano", "LE"]], - "73019": [["Trepuzzi", "LE"]], - "73020": [ - ["Serrano", "LE"], - ["Palmariggi", "LE"], - ["Melpignano", "LE"], - ["Castrignano De' Greci", "LE"], - ["Santa Cesarea Terme", "LE"], - ["Giurdignano", "LE"], - ["Uggiano La Chiesa", "LE"], - ["Botrugno", "LE"], - ["Bagnolo Del Salento", "LE"], - ["Cavallino", "LE"], - ["Castri Di Lecce", "LE"], - ["Martignano", "LE"], - ["Nociglia", "LE"], - ["Cutrofiano", "LE"], - ["Vitigliano", "LE"], - ["Cerfignano", "LE"], - ["Scorrano", "LE"], - ["Castromediano", "LE"], - ["Casamassella", "LE"], - ["Carpignano Salentino", "LE"], - ["Cannole", "LE"], - ["Cursi", "LE"], - ["San Cassiano", "LE"], - ], - "73021": [["Calimera", "LE"]], - "73022": [["Corigliano D'Otranto", "LE"]], - "73023": [["Merine", "LE"], ["Lizzanello", "LE"]], - "73024": [["Maglie", "LE"], ["Morigino", "LE"]], - "73025": [["Martano", "LE"]], - "73026": [ - ["Torre Dell'Orso", "LE"], - ["San Foca", "LE"], - ["Roca", "LE"], - ["Rocca Vecchia", "LE"], - ["Borgagne", "LE"], - ["Melendugno", "LE"], - ], - "73027": [["Minervino Di Lecce", "LE"], ["Cocumola", "LE"], ["Specchia Gallone", "LE"]], - "73028": [["Otranto", "LE"]], - "73029": [ - ["Struda'", "LE"], - ["Pisignano", "LE"], - ["Vanze", "LE"], - ["Acquarica Di Lecce", "LE"], - ["Vernole", "LE"], - ["Acaia", "LE"], - ], - "73030": [ - ["Tiggiano", "LE"], - ["Montesano Salentino", "LE"], - ["Diso", "LE"], - ["Giuggianello", "LE"], - ["Castro Marina", "LE"], - ["Ortelle", "LE"], - ["Marittima", "LE"], - ["Vignacastrisi", "LE"], - ["Sanarica", "LE"], - ["Surano", "LE"], - ], - "73031": [["Alessano", "LE"], ["Montesardo", "LE"]], - "73032": [["Castiglione", "LE"], ["Andrano", "LE"]], - "73033": [["Corsano", "LE"]], - "73034": [["Gagliano Del Capo", "LE"], ["San Dana", "LE"], ["Arigliano", "LE"]], - "73035": [["Miggiano", "LE"]], - "73036": [["Muro Leccese", "LE"]], - "73037": [["Poggiardo", "LE"], ["Vaste", "LE"]], - "73038": [["Spongano", "LE"]], - "73039": [ - ["Tutino", "LE"], - ["Depressa", "LE"], - ["Sant'Eufemia", "LE"], - ["Tricase Porto", "LE"], - ["Lucugnano", "LE"], - ["Caprarica Del Capo", "LE"], - ["Tricase", "LE"], - ], - "73040": [ - ["Neviano", "LE"], - ["Giuliano Di Lecce", "LE"], - ["Barbarano Del Capo", "LE"], - ["Aradeo", "LE"], - ["Marina Di Leuca", "LE"], - ["Alliste", "LE"], - ["Felline", "LE"], - ["Castrignano Del Capo", "LE"], - ["Acquarica Del Capo", "LE"], - ["Specchia", "LE"], - ["Morciano Di Leuca", "LE"], - ["Collepasso", "LE"], - ["Melissano", "LE"], - ["Supersano", "LE"], - ["Leuca", "LE"], - ["Salignano", "LE"], - ], - "73041": [["Magliano", "LE"], ["Carmiano", "LE"]], - "73042": [["Casarano", "LE"]], - "73043": [["Copertino", "LE"]], - "73044": [["Galatone", "LE"]], - "73045": [["Leverano", "LE"]], - "73046": [["Matino", "LE"]], - "73047": [["Monteroni Di Lecce", "LE"]], - "73048": [["Nardo'", "LE"]], - "73049": [["Ruffano", "LE"], ["Torrepaduli", "LE"]], - "73050": [ - ["Santa Chiara Di Nardo'", "LE"], - ["Ruggiano", "LE"], - ["Salve", "LE"], - ["Villaggio Boncore", "LE"], - ["Santa Maria Al Bagno", "LE"], - ["Santa Chiara", "LE"], - ["Boncore", "LE"], - ["Santa Caterina", "LE"], - ["Secli'", "LE"], - ], - "73051": [["Villa Convento", "LE"], ["Novoli", "LE"]], - "73052": [["Parabita", "LE"]], - "73053": [["Patu'", "LE"]], - "73054": [["Presicce", "LE"]], - "73055": [["Racale", "LE"]], - "73056": [["Taurisano", "LE"]], - "73057": [["Taviano", "LE"]], - "73058": [["Tuglie", "LE"]], - "73059": [["Gemini", "LE"], ["Ugento", "LE"]], - "73100": [["Frigole", "LE"], ["Lecce", "LE"], ["Torre Chianca", "LE"], ["San Cataldo", "LE"]], - "74010": [["Statte", "TA"]], - "74011": [ - ["Case Perrone", "TA"], - ["Borgo Perrone", "TA"], - ["Marina Di Castellaneta", "TA"], - ["Castellaneta", "TA"], - ], - "74012": [["Crispiano", "TA"]], - "74013": [["Ginosa", "TA"]], - "74014": [["Laterza", "TA"]], - "74015": [ - ["San Paolo", "TA"], - ["Specchia Tarantina", "TA"], - ["Lanzo Di Martina Franca", "TA"], - ["Carpari", "TA"], - ["Martina Franca", "TA"], - ], - "74016": [["Massafra", "TA"]], - "74017": [["Mottola", "TA"], ["San Basilio Mottola", "TA"]], - "74018": [["Palagianello", "TA"]], - "74019": [["Palagiano", "TA"], ["Conca D'Oro", "TA"]], - "74020": [ - ["Monteparano", "TA"], - ["Leporano Marina", "TA"], - ["Leporano", "TA"], - ["Torricella", "TA"], - ["San Marzano Di San Giuseppe", "TA"], - ["Faggiano", "TA"], - ["Montemesola", "TA"], - ["Roccaforzata", "TA"], - ["Lizzano", "TA"], - ["Avetrana", "TA"], - ["Maruggio", "TA"], - ["Monteiasi", "TA"], - ], - "74021": [["Carosino", "TA"]], - "74022": [["Fragagnano", "TA"]], - "74023": [["Grottaglie", "TA"]], - "74024": [ - ["Uggiano Montefusco", "TA"], - ["Manduria", "TA"], - ["San Pietro In Bevagna", "TA"], - ["Specchiarica", "TA"], - ], - "74025": [["Marina Di Ginosa", "TA"]], - "74026": [["Lido Silvana", "TA"], ["Pulsano", "TA"], ["Bosco Caggione", "TA"], ["Monti D'Arena", "TA"]], - "74027": [["San Giorgio Ionico", "TA"]], - "74028": [["Sava", "TA"]], - "74100": [["Paolo Vi", "TA"], ["Talsano", "TA"], ["San Vito Taranto", "TA"], ["Taranto", "TA"], ["Lama", "TA"]], - "74121": [["Taranto", "TA"]], - "74122": [["Taranto", "TA"]], - "74123": [["Taranto", "TA"]], - "08030": [ - ["Orroli", "CA"], - ["Escolca", "CA"], - ["Lixius", "CA"], - ["Nurallao", "CA"], - ["Serri", "CA"], - ["Sadali", "CA"], - ["Seulo", "CA"], - ["Nuragus", "CA"], - ["Villanova Tulo", "CA"], - ["Esterzili", "CA"], - ["Gergei", "CA"], - ["Meana Sardo", "NU"], - ["Atzara", "NU"], - ["Austis", "NU"], - ["Gadoni", "NU"], - ["Belvi", "NU"], - ["Teti", "NU"], - ["Genoni", "OR"], - ], - "08033": [["Isili", "CA"]], - "08035": [["Nurri", "CA"]], - "08043": [["Escalaplano", "CA"]], - "09010": [ - ["Siliqua", "CA"], - ["Forte Village", "CA"], - ["Vallermosa", "CA"], - ["Villaspeciosa", "CA"], - ["Decimoputzu", "CA"], - ["Domus De Maria", "CA"], - ["Pula", "CA"], - ["Uta", "CA"], - ["Villa San Pietro", "CA"], - ["Buggerru", "SU"], - ["Villamassargia", "SU"], - ["Sant'Anna Arresi", "SU"], - ["Palmas", "SU"], - ["Masainas", "SU"], - ["San Giovanni Suergiu", "SU"], - ["Giba", "SU"], - ["Rosas", "SU"], - ["Musei", "SU"], - ["Terraseo", "SU"], - ["Matzaccara", "SU"], - ["Gonnesa", "SU"], - ["Terresoli", "SU"], - ["Fluminimaggiore", "SU"], - ["Nuraxi Figus", "SU"], - ["Is Urigus", "SU"], - ["Riomurtas", "SU"], - ["Piscinas", "SU"], - ["Portoscuso", "SU"], - ["Perdaxius", "SU"], - ["Villarios", "SU"], - ["Villaperuccio", "SU"], - ["Paringianu", "SU"], - ["Narcao", "SU"], - ["Tratalias", "SU"], - ["Nuxis", "SU"], - ["Santadi", "SU"], - ], - "09012": [["San Leone", "CA"], ["Capoterra", "CA"], ["Poggio Dei Pini", "CA"], ["La Maddalena", "CA"]], - "09018": [["Villa D'Orri", "CA"], ["Sarroch", "CA"]], - "09019": [["Teulada", "CA"]], - "09020": [ - ["Samatzai", "CA"], - ["Pimentel", "CA"], - ["Ussana", "CA"], - ["Pauli Arbarei", "SU"], - ["Ussaramanna", "SU"], - ["Turri", "SU"], - ["Genuri", "SU"], - ["Villamar", "SU"], - ["Siddi", "SU"], - ["Villanovafranca", "SU"], - ["Gesturi", "SU"], - ["Collinas", "SU"], - ["Las Plassas", "SU"], - ["Villanovaforru", "SU"], - ], - "09023": [["Monastir", "CA"]], - "09024": [["Villagreca", "CA"], ["Nuraminis", "CA"]], - "09026": [["San Sperate", "CA"]], - "09028": [["Sestu", "CA"]], - "09030": [["Elmas", "CA"], ["Pabillonis", "SU"], ["Sardara", "SU"], ["Montevecchio", "SU"], ["Samassi", "SU"]], - "09032": [["Assemini", "CA"], ["Macchiareddu", "CA"]], - "09033": [["Decimomannu", "CA"]], - "09034": [["Villasor", "CA"]], - "09040": [ - ["Armungia", "CA"], - ["Villasalto", "CA"], - ["Maracalagonis", "CA"], - ["Senorbi'", "CA"], - ["Donori'", "CA"], - ["Settimo San Pietro", "CA"], - ["Suelli", "CA"], - ["Goni", "CA"], - ["Selegas", "CA"], - ["Gesico", "CA"], - ["San Vito", "CA"], - ["Silius", "CA"], - ["Siurgus Donigala", "CA"], - ["Guamaggiore", "CA"], - ["Guasila", "CA"], - ["Santa Maria", "CA"], - ["Arixi", "CA"], - ["Barrali", "CA"], - ["Mandas", "CA"], - ["Soleminis", "CA"], - ["Ballao", "CA"], - ["Villaputzu", "CA"], - ["Burcei", "CA"], - ["Sant'Andrea Frius", "CA"], - ["Castiadas", "CA"], - ["Serdiana", "CA"], - ["Sisini", "CA"], - ["San Nicolo' Gerrei", "CA"], - ["Ortacesus", "CA"], - ["San Basilio", "CA"], - ["Furtei", "SU"], - ["Segariu", "SU"], - ], - "09041": [["Dolianova", "CA"]], - "09042": [["Monserrato", "CA"]], - "09043": [["Muravera", "CA"]], - "09044": [["Quartucciu", "CA"]], - "09045": [["Flumini Di Quartu Sant'Elena", "CA"], ["Quartu Sant'Elena", "CA"]], - "09047": [["Selargius", "CA"], ["Su Planu", "CA"]], - "09048": [["Sinnai", "CA"]], - "09049": [["Villasimius", "CA"]], - "09100": [["Cagliari", "CA"]], - "09121": [["Cagliari", "CA"]], - "09122": [["Cagliari", "CA"]], - "09123": [["Cagliari", "CA"]], - "09124": [["Cagliari", "CA"]], - "09125": [["Cagliari", "CA"]], - "09126": [ - ["Cagliari", "CA"], - ["Cala Mosca", "CA"], - ["San Bartolomeo", "CA"], - ["Lazzaretto", "CA"], - ["Poetto", "CA"], - ], - "09127": [["Cagliari", "CA"]], - "09128": [["Cagliari", "CA"]], - "09129": [["Cagliari", "CA"]], - "09131": [["Cagliari", "CA"]], - "09134": [["Cagliari", "CA"], ["Pirri", "CA"]], - "08010": [ - ["Lei", "NU"], - ["Birori", "NU"], - ["Noragugume", "NU"], - ["Dualchi", "NU"], - ["Santa Maria", "OR"], - ["Suni", "OR"], - ["Magomadas", "OR"], - ["Sa Lumenera", "OR"], - ["Sagama", "OR"], - ["Flussio", "OR"], - ["Montresta", "OR"], - ["Tinnura", "OR"], - ], - "08011": [["Bolotana", "NU"]], - "08012": [["Bortigali", "NU"], ["Mulargia", "NU"]], - "08015": [["Macomer", "NU"]], - "08016": [["Borore", "NU"]], - "08017": [["Silanus", "NU"]], - "08018": [["Sindia", "NU"]], - "08020": [ - ["Onifai", "NU"], - ["Su Cossu", "NU"], - ["Sa Pala Ruia", "NU"], - ["Ottana", "NU"], - ["Onani", "NU"], - ["San Giovanni", "NU"], - ["Ovodda", "NU"], - ["Sant'Efisio", "NU"], - ["Monte Longu", "NU"], - ["Tiana", "NU"], - ["S'Ena Sa Chitta", "NU"], - ["Olzai", "NU"], - ["Orotelli", "NU"], - ["Sarule", "NU"], - ["Ovedi'", "NU"], - ["Orune", "NU"], - ["Berchidda", "NU"], - ["Lodine", "NU"], - ["Galtelli", "NU"], - ["Oniferi", "NU"], - ["Sas Murtas", "NU"], - ["Su Pradu", "NU"], - ["Concas", "NU"], - ["Osidda", "NU"], - ["Torpe'", "NU"], - ["Ollolai", "NU"], - ["Gavoi", "NU"], - ["Brunella", "NU"], - ["Lode'", "NU"], - ["Talava'", "NU"], - ["Irgoli", "NU"], - ["Mamone", "NU"], - ["Lula", "NU"], - ["Loculi", "NU"], - ["Posada", "NU"], - ["Muvruneddi", "SS"], - ["S'Iscala", "SS"], - ["Straulas", "SS"], - ["San Gavino", "SS"], - ["Agrustos", "SS"], - ["Luddui", "SS"], - ["Tanaunella", "SS"], - ["Nuditta", "SS"], - ["Birgalavo'", "SS"], - ["Budoni", "SS"], - ["San Lorenzo", "SS"], - ["Malamori'", "SS"], - ["Lu Cuponeddi", "SS"], - ["Pedra E Cupa", "SS"], - ["La Runcina", "SS"], - ["Lu Ricciu", "SS"], - ["Bircolovo'", "SS"], - ["Silimini", "SS"], - ["Lutturai", "SS"], - ["Lu Impostu", "SS"], - ["Schifoni", "SS"], - ["Lu Sitagliacciu", "SS"], - ["Franculacciu", "SS"], - ["La Traversa", "SS"], - ["Stazzu Mesu", "SS"], - ["Strugas", "SS"], - ["Pira Maseda", "SS"], - ["Lu Tintimbaru", "SS"], - ["Pattimedda", "SS"], - ["Terrapadedda", "SS"], - ["Tiridduli", "SS"], - ["Li Mori", "SS"], - ["Budditogliu", "SS"], - ["Lu Muvruneddu", "SS"], - ["Lotturai", "SS"], - ["Stazzu Bruciatu", "SS"], - ["Su Linalvu", "SS"], - ["Rinaggiu", "SS"], - ["Suaredda", "SS"], - ["Limpostu", "SS"], - ["Lu Titimbaru", "SS"], - ["Traversa", "SS"], - ["Sitagliacciu", "SS"], - ["L'Alzoni", "SS"], - ["Li Teggi", "SS"], - ["Nuragheddu", "SS"], - ["Ottiolu", "SS"], - ["Muriscuvo'", "SS"], - ["San Pietro", "SS"], - ["Puntaldia", "SS"], - ["Lu Lioni", "SS"], - ["Maiorca", "SS"], - ["Tamarispa", "SS"], - ["Capo Coda Cavallo", "SS"], - ["Lu Fraili", "SS"], - ["San Silvestro", "SS"], - ["Solita'", "SS"], - ["Badualga", "SS"], - ["Monte Petrosu", "SS"], - ["Limpiddu", "SS"], - ["Luttuni", "SS"], - ["Berruiles", "SS"], - ], - "08021": [["Bitti", "NU"]], - "08022": [["Dorgali", "NU"], ["Cala Gonone", "NU"]], - "08023": [["Fonni", "NU"]], - "08024": [["Mamoiada", "NU"]], - "08025": [["Oliena", "NU"], ["Su Cologone", "NU"]], - "08026": [["Orani", "NU"]], - "08027": [["Orgosolo", "NU"]], - "08028": [ - ["Cala Liberotto", "NU"], - ["Orosei", "NU"], - ["Sos Alinos", "NU"], - ["Sas Linnas Siccas", "NU"], - ["Cala Ginepro", "NU"], - ], - "08029": [ - ["Siniscola", "NU"], - ["Sa Pischera", "NU"], - ["Sarenargiu", "NU"], - ["Su Tilio'", "NU"], - ["La Caletta", "NU"], - ["Sa Perta Ruia", "NU"], - ["Berchida", "NU"], - ["Capo Comino", "NU"], - ["Mandras", "NU"], - ["Ena Sa Chitta", "NU"], - ["Overì", "NU"], - ["Santa Lucia", "NU"], - ], - "08031": [["Gidilau", "NU"], ["Aritzo", "NU"]], - "08032": [["Desulo", "NU"]], - "08036": [["Ortueri", "NU"]], - "08037": [["Seui", "NU"]], - "08038": [["Sorgono", "NU"]], - "08039": [["Tonara", "NU"]], - "08040": [ - ["S'Arridellu", "NU"], - ["Girasole", "NU"], - ["Arzana", "NU"], - ["Urzulei", "NU"], - ["Ardali", "NU"], - ["Gairo", "NU"], - ["Osini", "NU"], - ["Santa Maria Navarrese", "NU"], - ["Ussassai", "NU"], - ["Tancau", "NU"], - ["Baunei", "NU"], - ["Loceri", "NU"], - ["Ulassai", "NU"], - ["Gairo Sant'Elena", "NU"], - ["Lotzorai", "NU"], - ["Triei", "NU"], - ["Taquisara", "NU"], - ["Talana", "NU"], - ["Cardedu", "NU"], - ["Elini", "NU"], - ["Ilbono", "NU"], - ["Tancau Sul Mare", "NU"], - ], - "08042": [["Bari Sardo", "NU"]], - "08044": [["Jerzu", "NU"]], - "08045": [["Lanusei", "NU"]], - "08046": [["Perdasdefogu", "NU"]], - "08047": [["Migheli", "NU"], ["Tertenia", "NU"]], - "08048": [ - ["Su Troccu", "NU"], - ["Porto Frailis", "NU"], - ["Calamoresca", "NU"], - ["Tortoli'", "NU"], - ["Su Pinu", "NU"], - ["Arbatax", "NU"], - ["Is Murdegus", "NU"], - ], - "08049": [["Villanova Strisaili", "NU"], ["Villagrande Strisaili", "NU"]], - "08100": [["Nuoro", "NU"], ["Monte Ortobene", "NU"], ["Manasuddas", "NU"], ["Lollove", "NU"]], - "08013": [["Turas", "OR"], ["Bosa Marina", "OR"], ["Bosa", "OR"]], - "08019": [["Modolo", "OR"]], - "08034": [["Santa Sofia", "OR"], ["Crastu", "OR"], ["Su Lau", "OR"], ["Traidodini", "OR"], ["Laconi", "OR"]], - "09070": [ - ["Sa Rocca Tunda", "OR"], - ["Bauladu", "OR"], - ["Norbello", "OR"], - ["Zeddiani", "OR"], - ["Rocca Tunda", "OR"], - ["Siamaggiore", "OR"], - ["Seneghe", "OR"], - ["San Vero Milis", "OR"], - ["Putzu Idu", "OR"], - ["Pardu Nou", "OR"], - ["Baratili San Pietro", "OR"], - ["Bonarcado", "OR"], - ["Zerfaliu", "OR"], - ["Riola Sardo", "OR"], - ["Narbolia", "OR"], - ["Mandriola", "OR"], - ["Milis", "OR"], - ["Nurachi", "OR"], - ["Domusnovas Canales", "OR"], - ["Paulilatino", "OR"], - ["Tramatza", "OR"], - ["Aidomaggiore", "OR"], - ], - "09071": [["Abbasanta", "OR"]], - "09072": [["Solanas", "OR"], ["Cabras", "OR"]], - "09073": [ - ["Santa Caterina Di Pittinurri", "OR"], - ["Santa Caterina", "OR"], - ["S'Archittu", "OR"], - ["Cuglieri", "OR"], - ["Torre Del Pozzo", "OR"], - ], - "09074": [["Zuri", "OR"], ["Ghilarza", "OR"]], - "09075": [["San Leonardo", "OR"], ["Santu Lussurgiu", "OR"]], - "09076": [["Sedilo", "OR"]], - "09077": [["Solarussa", "OR"]], - "09078": [["Sennariolo", "OR"], ["Scano Di Montiferro", "OR"]], - "09079": [["Tresnuraghes", "OR"]], - "09080": [ - ["Sorradile", "OR"], - ["Soddi'", "OR"], - ["Bidoni'", "OR"], - ["Senis", "OR"], - ["Neoneli", "OR"], - ["Siapiccia", "OR"], - ["Sant'Antonio Ruinas", "OR"], - ["Villa Sant'Antonio", "OR"], - ["Boroneddu", "OR"], - ["Siamanna", "OR"], - ["Ula' Tirso", "OR"], - ["Villaurbana", "OR"], - ["Nughedu Santa Vittoria", "OR"], - ["Mogorella", "OR"], - ["Nureci", "OR"], - ["Assolo", "OR"], - ["Allai", "OR"], - ["Asuni", "OR"], - ["Tadasuni", "OR"], - ], - "09081": [["Ardauli", "OR"]], - "09082": [["Busachi", "OR"]], - "09083": [["Fordongianus", "OR"]], - "09084": [["Villanova Truschedu", "OR"]], - "09085": [["Ruinas", "OR"]], - "09086": [["Samugheo", "OR"]], - "09088": [["Ollastra", "OR"], ["Simaxis", "OR"]], - "09090": [ - ["Gonnoscodina", "OR"], - ["Palmas Arborea", "OR"], - ["Baressa", "OR"], - ["Morgongiori", "OR"], - ["Albagiara", "OR"], - ["Sini", "OR"], - ["Baradili", "OR"], - ["Curcuris", "OR"], - ["Masullas", "OR"], - ["Pau", "OR"], - ["Tiria", "OR"], - ["Siris", "OR"], - ["Gonnosno'", "OR"], - ["Usellus", "OR"], - ["Simala", "OR"], - ["Villa Verde", "OR"], - ], - "09091": [["Ales", "OR"]], - "09092": [["Arborea", "OR"]], - "09093": [["Gonnostramatza", "OR"], ["Pompu", "OR"]], - "09094": [["Marrubiu", "OR"], ["Sant'Anna", "OR"]], - "09095": [["Mogoro", "OR"]], - "09096": [["Santa Giusta", "OR"]], - "09097": [["San Nicolo' D'Arcidano", "OR"]], - "09098": [["Tanca Marchese", "OR"], ["Terralba", "OR"]], - "09099": [["Uras", "OR"]], - "09170": [ - ["Massama", "OR"], - ["Oristano", "OR"], - ["Donigala Fenughedu", "OR"], - ["Nuraxinieddu", "OR"], - ["Sili'", "OR"], - ["Torre Grande", "OR"], - ], - "07010": [ - ["Benetutti", "SS"], - ["Bottidda", "SS"], - ["Nughedu San Nicolo'", "SS"], - ["Romana", "SS"], - ["Nule", "SS"], - ["Mara", "SS"], - ["Bultei", "SS"], - ["Tula", "SS"], - ["Foresta Burgos", "SS"], - ["Cossoine", "SS"], - ["Giave", "SS"], - ["Foresta Di Burgos", "SS"], - ["Semestene", "SS"], - ["Burgos", "SS"], - ["Ardara", "SS"], - ["Anela", "SS"], - ["Illorai", "SS"], - ["Esporlatu", "SS"], - ["Ittireddu", "SS"], - ["Monteleone Rocca Doria", "SS"], - ], - "07011": [["Bono", "SS"]], - "07012": [["Rebeccu", "SS"], ["Santa Lucia", "SS"], ["Bonorva", "SS"]], - "07013": [["Mores", "SS"]], - "07014": [["San Nicola", "SS"], ["Chilivani", "SS"], ["Ozieri", "SS"], ["Vigne", "SS"], ["Fraigas", "SS"]], - "07015": [["Padria", "SS"]], - "07016": [["Pattada", "SS"]], - "07017": [["Ploaghe", "SS"]], - "07018": [["Pozzomaggiore", "SS"]], - "07019": [["Villanova Monteleone", "SS"]], - "07020": [ - ["Budduso'", "SS"], - ["Porto San Paolo", "SS"], - ["Vaccileddi", "SS"], - ["Padru", "SS"], - ["Golfo Aranci", "SS"], - ["Ala' Dei Sardi", "SS"], - ["Monti", "SS"], - ["Luogosanto", "SS"], - ["Su Canale", "SS"], - ["Telti", "SS"], - ["Loiri", "SS"], - ["San Francesco D'Aglientu", "SS"], - ["Aglientu", "SS"], - ["Palau", "SS"], - ["Loiri Porto San Paolo", "SS"], - ["Aggius", "SS"], - ], - "07021": [ - ["Pirazzolu", "SS"], - ["Costa Smeralda", "SS"], - ["Capo Ferro", "SS"], - ["Cala Di Volpe", "SS"], - ["Cannigione", "SS"], - ["Baia Sardinia", "SS"], - ["Arzachena", "SS"], - ["Porto Cervo", "SS"], - ], - "07022": [["Berchidda", "SS"]], - "07023": [["Calangianus", "SS"]], - "07024": [["Moneta", "SS"], ["Isola Di Caprera", "SS"], ["La Maddalena", "SS"]], - "07025": [["Luras", "SS"]], - "07026": [["San Pantaleo", "SS"], ["Porto Rotondo", "SS"], ["Olbia", "SS"], ["Berchiddeddu", "SS"]], - "07027": [["Oschiri", "SS"]], - "07028": [["San Pasquale", "SS"], ["Santa Teresa Gallura", "SS"]], - "07029": [["Tempio Pausania", "SS"], ["Nuchis", "SS"], ["Bassacutena", "SS"]], - "07030": [ - ["Martis", "SS"], - ["Chiaramonti", "SS"], - ["Tergu", "SS"], - ["Santa Maria Coghinas", "SS"], - ["Bortigiadas", "SS"], - ["Muros", "SS"], - ["Florinas", "SS"], - ["Badesi", "SS"], - ["Sant'Antonio Di Gallura", "SS"], - ["Viddalba", "SS"], - ["Erula", "SS"], - ["Cargeghe", "SS"], - ["Bulzi", "SS"], - ["Laerru", "SS"], - ], - "07031": [["Lu Bagnu", "SS"], ["Castelsardo", "SS"]], - "07032": [["Nulvi", "SS"]], - "07033": [["Osilo", "SS"], ["Santa Vittoria", "SS"]], - "07034": [["Perfugas", "SS"]], - "07035": [["Sedini", "SS"]], - "07036": [["Sennori", "SS"]], - "07037": [["Platamona", "SS"], ["Sorso", "SS"]], - "07038": [["Lu Colbu", "SS"], ["Trinita' D'Agultu E Vignola", "SS"]], - "07039": [["La Muddizza", "SS"], ["Valledoria", "SS"], ["Codaruina", "SS"]], - "07040": [ - ["Tissi", "SS"], - ["Tottubella", "SS"], - ["Campanedda", "SS"], - ["Palmadula", "SS"], - ["Canaglia", "SS"], - ["Argentiera Nurra", "SS"], - ["Siligo", "SS"], - ["Codrongianos", "SS"], - ["Stintino", "SS"], - ["Rumanedda", "SS"], - ["Olmedo", "SS"], - ["La Corte", "SS"], - ["Argentiera", "SS"], - ["Borutta", "SS"], - ["Uri", "SS"], - ["Bessude", "SS"], - ["Putifigari", "SS"], - ["Cheremule", "SS"], - ["Biancareddu", "SS"], - ["Banari", "SS"], - ], - "07041": [ - ["Alghero", "SS"], - ["Santa Maria La Palma", "SS"], - ["Maristella Porto Conte", "SS"], - ["Fertilia", "SS"], - ["Tramariglio", "SS"], - ], - "07043": [["Bonnanaro", "SS"]], - "07044": [["Ittiri", "SS"]], - "07045": [["Ossi", "SS"]], - "07046": [ - ["Asinara Cala D'Oliva", "SS"], - ["Porto Torres", "SS"], - ["Cala Reale", "SS"], - ["Asinara Lazzaretto", "SS"], - ], - "07047": [["Thiesi", "SS"]], - "07048": [["Torralba", "SS"]], - "07049": [["Usini", "SS"]], - "07100": [ - ["Sassari", "SS"], - ["Ottava", "SS"], - ["La Landrigga", "SS"], - ["Li Punti", "SS"], - ["San Giovanni", "SS"], - ["Bancali", "SS"], - ["Macciadosa", "SS"], - ], - "09011": [["Calasetta", "SU"], ["Cussorgia", "SU"]], - "09013": [ - ["Bacu Abis", "SU"], - ["Sirai", "SU"], - ["Barbusi", "SU"], - ["Carbonia", "SU"], - ["Cortoghiana", "SU"], - ["Serbariu", "SU"], - ], - "09014": [["Carloforte", "SU"]], - "09015": [["Domusnovas", "SU"]], - "09016": [["Nebida", "SU"], ["Iglesias", "SU"], ["San Benedetto", "SU"], ["Bindua", "SU"], ["Monteponi", "SU"]], - "09017": [["Sant'Antioco", "SU"]], - "09021": [["Barumini", "SU"]], - "09022": [["Lunamatrona", "SU"]], - "09025": [["Sanluri Stato", "SU"], ["Sanluri", "SU"]], - "09027": [["Serrenti", "SU"]], - "09029": [["Tuili", "SU"], ["Setzu", "SU"]], - "09031": [["Gennamari", "SU"], ["Sant'Antonio Di Santadi", "SU"], ["Arbus", "SU"], ["Ingurtosu", "SU"]], - "09035": [["Gonnosfanadiga", "SU"]], - "09036": [["Guspini", "SU"]], - "09037": [["San Gavino Monreale", "SU"]], - "09038": [["Serramanna", "SU"]], - "09039": [["Villacidro", "SU"]], - "92010": [ - ["Burgio", "AG"], - ["Lampedusa", "AG"], - ["Caltabellotta", "AG"], - ["Calamonaci", "AG"], - ["Realmonte", "AG"], - ["Lucca Sicula", "AG"], - ["Lampedusa E Linosa", "AG"], - ["Joppolo Giancaxio", "AG"], - ["Linosa", "AG"], - ["Alessandria Della Rocca", "AG"], - ["Montevago", "AG"], - ["Sant'Anna Di Caltabellotta", "AG"], - ["Siculiana", "AG"], - ["Sant'Anna", "AG"], - ["Montallegro", "AG"], - ["Bivona", "AG"], - ], - "92011": [["Cattolica Eraclea", "AG"]], - "92012": [["Cianciana", "AG"]], - "92013": [["Menfi", "AG"]], - "92014": [["Porto Empedocle", "AG"]], - "92015": [["Raffadali", "AG"]], - "92016": [["Borgo Bonsignore", "AG"], ["Ribera", "AG"]], - "92017": [["Sambuca Di Sicilia", "AG"]], - "92018": [["Santa Margherita Di Belice", "AG"]], - "92019": [["Sciacca", "AG"]], - "92020": [ - ["Santa Elisabetta", "AG"], - ["San Giovanni Gemini", "AG"], - ["Villafranca Sicula", "AG"], - ["San Biagio Platani", "AG"], - ["Sant'Angelo Muxaro", "AG"], - ["Castrofilippo", "AG"], - ["Racalmuto", "AG"], - ["Comitini", "AG"], - ["Camastra", "AG"], - ["Grotte", "AG"], - ["Santo Stefano Quisquina", "AG"], - ["Palma Di Montechiaro", "AG"], - ], - "92021": [["Aragona", "AG"], ["Caldare", "AG"]], - "92022": [["Borgo Callea", "AG"], ["Cammarata", "AG"]], - "92023": [["Campobello Di Licata", "AG"]], - "92024": [["Canicatti'", "AG"]], - "92025": [["Zolfare", "AG"], ["Casteltermini Zolfare", "AG"], ["Casteltermini", "AG"]], - "92026": [["Favara", "AG"]], - "92027": [["Licata", "AG"]], - "92028": [["Naro", "AG"]], - "92029": [["Campobello Ravanusa Stazione", "AG"], ["Ravanusa", "AG"]], - "92100": [ - ["Giardina Gallotti", "AG"], - ["Villaggio Mose'", "AG"], - ["Villaseta", "AG"], - ["San Leone Mose'", "AG"], - ["Agrigento", "AG"], - ["Montaperto", "AG"], - ["Borgo La Loggia", "AG"], - ], - "93010": [ - ["Campofranco", "CL"], - ["Sutera", "CL"], - ["Bompensiere", "CL"], - ["Acquaviva Platani", "CL"], - ["Vallelunga Pratameno", "CL"], - ["Serradifalco", "CL"], - ["Milena", "CL"], - ["Montedoro", "CL"], - ["Villalba", "CL"], - ["Marianopoli", "CL"], - ["Resuttano", "CL"], - ["Delia", "CL"], - ], - "93011": [["Butera", "CL"]], - "93012": [["Gela", "CL"]], - "93013": [["Mazzarino", "CL"]], - "93014": [["Polizzello", "CL"], ["Mussomeli", "CL"]], - "93015": [["Niscemi", "CL"]], - "93016": [["Riesi", "CL"]], - "93017": [["San Cataldo", "CL"]], - "93018": [["Santa Caterina Villarmosa", "CL"]], - "93019": [["Trabia Miniere", "CL"], ["Sommatino", "CL"]], - "93100": [ - ["Favarella", "CL"], - ["Villaggio Santa Barbara", "CL"], - ["Borgo Petilia", "CL"], - ["Caltanissetta", "CL"], - ], - "95010": [ - ["Santa Venerina", "CT"], - ["Milo", "CT"], - ["Sant'Alfio", "CT"], - ["Dagala Del Re", "CT"], - ["Fornazzo", "CT"], - ["Linera", "CT"], - ], - "95011": [["Pasteria", "CT"], ["Calatabiano", "CT"]], - "95012": [ - ["Solicchiata", "CT"], - ["Passopisciaro", "CT"], - ["Mitogio", "CT"], - ["Verzella", "CT"], - ["Castiglione Di Sicilia", "CT"], - ], - "95013": [["Fiumefreddo Di Sicilia", "CT"]], - "95014": [ - ["Trepunti", "CT"], - ["Carruba", "CT"], - ["San Giovanni", "CT"], - ["Giarre", "CT"], - ["San Leonardello", "CT"], - ["Altarello", "CT"], - ["San Giovanni Montebello", "CT"], - ["Macchia Di Giarre", "CT"], - ], - "95015": [["Linguaglossa", "CT"]], - "95016": [ - ["Puntalazzo", "CT"], - ["Carrabba", "CT"], - ["Portosalvo", "CT"], - ["Santa Venera", "CT"], - ["Nunziata", "CT"], - ["Mascali", "CT"], - ], - "95017": [["Presa", "CT"], ["Vena", "CT"], ["Piedimonte Etneo", "CT"]], - "95018": [["Torre Archirafi", "CT"], ["Riposto", "CT"]], - "95019": [["Pisano Etneo", "CT"], ["Fleri", "CT"], ["Sarro", "CT"], ["Zafferana Etnea", "CT"]], - "95020": [["Aci Bonaccorsi", "CT"]], - "95021": [["Ficarazzi", "CT"], ["Aci Trezza", "CT"], ["Cannizzaro", "CT"], ["Aci Castello", "CT"]], - "95022": [ - ["Vampolieri", "CT"], - ["Nizzeti", "CT"], - ["Aci Catena", "CT"], - ["Aci San Filippo", "CT"], - ["San Nicolo'", "CT"], - ["Eremo Sant'Anna", "CT"], - ], - "95024": [ - ["Santa Tecla Di Acireale", "CT"], - ["Acireale", "CT"], - ["Santa Maria Degli Ammalati", "CT"], - ["Pozzillo", "CT"], - ["Guardia", "CT"], - ["Pennisi", "CT"], - ["Aci Platani", "CT"], - ["Stazzo", "CT"], - ["Mangano", "CT"], - ["Piano D'Api", "CT"], - ["Scillichenti", "CT"], - ["Santa Maria La Scala", "CT"], - ], - "95025": [ - ["Aci Sant'Antonio", "CT"], - ["Lavina", "CT"], - ["Monterosso Etneo", "CT"], - ["Santa Maria La Stella", "CT"], - ["Monterosso", "CT"], - ["Lavinaio", "CT"], - ], - "95027": [["Cerza", "CT"], ["San Gregorio Di Catania", "CT"]], - "95028": [["Valverde", "CT"]], - "95029": [["Viagrande", "CT"]], - "95030": [ - ["Sant'Agata Li Battiati", "CT"], - ["Nicolosi", "CT"], - ["San Pietro Clarenza", "CT"], - ["Mascalucia", "CT"], - ["Ragalna", "CT"], - ["Tremestieri Etneo", "CT"], - ["Maniace", "CT"], - ["Pedara", "CT"], - ["Canalicchio", "CT"], - ["Gravina Di Catania", "CT"], - ], - "95031": [["Adrano", "CT"]], - "95032": [ - ["Belpasso", "CT"], - ["Borrello Di Catania", "CT"], - ["Villaggio Le Ginestre", "CT"], - ["Villaggio Del Pino", "CT"], - ["Piano Tavola", "CT"], - ["Palazzolo", "CT"], - ], - "95033": [["Biancavilla", "CT"]], - "95034": [["Bronte", "CT"]], - "95035": [["Maletto", "CT"]], - "95036": [["Randazzo", "CT"], ["Calderara", "CT"]], - "95037": [["San Giovanni La Punta", "CT"], ["Trappeto", "CT"]], - "95038": [["Santa Maria Di Licodia", "CT"]], - "95039": [["Trecastagni", "CT"]], - "95040": [ - ["Castel Di Iudica", "CT"], - ["Motta Sant'Anastasia", "CT"], - ["Libertinia", "CT"], - ["Licodia Eubea", "CT"], - ["Giumarra", "CT"], - ["Mazzarrone", "CT"], - ["San Cono", "CT"], - ["San Michele Di Ganzaria", "CT"], - ["Raddusa", "CT"], - ["Cinquegrana", "CT"], - ["Mirabella Imbaccari", "CT"], - ["Camporotondo Etneo", "CT"], - ["Ramacca", "CT"], - ["Carrubbo", "CT"], - ], - "95041": [ - ["Santo Pietro", "CT"], - ["Caltagirone", "CT"], - ["Granieri", "CT"], - ["San Pietro Di Caltagirone", "CT"], - ], - "95042": [["Grammichele", "CT"]], - "95043": [["Militello In Val Di Catania", "CT"]], - "95044": [["Borgo Lupo", "CT"], ["Mineo", "CT"]], - "95045": [["Misterbianco", "CT"], ["San Nullo", "CT"]], - "95046": [["Palagonia", "CT"]], - "95047": [["Paterno'", "CT"], ["Sferro", "CT"]], - "95048": [["Scordia", "CT"]], - "95049": [["Vizzini", "CT"]], - "95100": [["Catania", "CT"]], - "95121": [ - ["Catania", "CT"], - ["Zia Lisa", "CT"], - ["San Teodoro", "CT"], - ["San Giorgio", "CT"], - ["San Giuseppe Alla Rena", "CT"], - ["Santa Maria Goretti", "CT"], - ["Fontanarossa Aereoporto", "CT"], - ], - "95122": [["Nesima Inferiore", "CT"], ["Acquicella", "CT"], ["Nesima Superiore", "CT"], ["Catania", "CT"]], - "95123": [["Catania", "CT"], ["San Nullo", "CT"], ["Cibali", "CT"]], - "95124": [["Catania", "CT"]], - "95125": [["Catania", "CT"], ["Canalicchio", "CT"], ["Barriera Del Bosco", "CT"]], - "95126": [["Ognina", "CT"], ["Catania", "CT"]], - "95127": [["Catania", "CT"], ["Picanello", "CT"]], - "95128": [["Catania", "CT"]], - "95129": [["Catania", "CT"]], - "95131": [["Catania", "CT"]], - "94010": [ - ["San Giorgio", "EN"], - ["Assoro", "EN"], - ["Nissoria", "EN"], - ["Calascibetta", "EN"], - ["Cacchiamo", "EN"], - ["Borgo Baccarato", "EN"], - ["Gagliano Castelferrato", "EN"], - ["Sperlinga", "EN"], - ["Cerami", "EN"], - ["Centuripe", "EN"], - ["Villarosa", "EN"], - ["Catenanuova", "EN"], - ["Villapriolo", "EN"], - ["Aidone", "EN"], - ], - "94011": [["Agira", "EN"]], - "94012": [["Barrafranca", "EN"]], - "94013": [["Leonforte", "EN"]], - "94014": [["Nicosia", "EN"], ["Villadoro", "EN"], ["San Giacomo", "EN"]], - "94015": [["Grottacalda", "EN"], ["Piazza Armerina", "EN"]], - "94016": [["Pietraperzia", "EN"]], - "94017": [["Regalbuto", "EN"]], - "94018": [["Troina", "EN"]], - "94019": [["Valguarnera Caropepe", "EN"]], - "94100": [["Enna", "EN"], ["Pergusa", "EN"], ["Borgo Cascino", "EN"]], - "98020": [["Rocchenere", "ME"], ["Pagliara", "ME"], ["Mandanici", "ME"], ["Ali'", "ME"], ["Locadi", "ME"]], - "98021": [["Ali' Terme", "ME"]], - "98022": [["Fiumedinisi", "ME"]], - "98023": [["Furci Siculo", "ME"]], - "98025": [["Itala", "ME"], ["Itala Marina", "ME"]], - "98026": [["Nizza Di Sicilia", "ME"]], - "98027": [["Sciglio", "ME"], ["Roccalumera", "ME"], ["Allume", "ME"]], - "98028": [["Misserio", "ME"], ["Santa Teresa Di Riva", "ME"], ["Barracca", "ME"]], - "98029": [ - ["Guidomandri Marina", "ME"], - ["Guidomandri Superiore", "ME"], - ["Scaletta Zanclea", "ME"], - ["Guidomandri", "ME"], - ], - "98030": [ - ["San Teodoro", "ME"], - ["Floresta", "ME"], - ["Mongiuffi Melia", "ME"], - ["Gallodoro", "ME"], - ["Roccafiorita", "ME"], - ["Mongiuffi", "ME"], - ["Santa Domenica Vittoria", "ME"], - ["Forza D'Agro'", "ME"], - ["Sant'Alessio Siculo", "ME"], - ["Limina", "ME"], - ["Gaggi", "ME"], - ["Motta Camastra", "ME"], - ["Castelmola", "ME"], - ["Roccella Valdemone", "ME"], - ["Moio Alcantara", "ME"], - ["Melia", "ME"], - ["Antillo", "ME"], - ["Malvagna", "ME"], - ], - "98031": [["Capizzi", "ME"]], - "98032": [ - ["Misitano", "ME"], - ["Misitano Superiore", "ME"], - ["Casalvecchio Siculo", "ME"], - ["Misitano Inferiore", "ME"], - ], - "98033": [["Cesaro'", "ME"]], - "98034": [["Francavilla Di Sicilia", "ME"]], - "98035": [["Naxos", "ME"], ["Giardini Naxos", "ME"], ["Pallio", "ME"]], - "98036": [["Graniti", "ME"]], - "98037": [["Letojanni", "ME"]], - "98038": [["Rina", "ME"], ["Savoca", "ME"]], - "98039": [ - ["Chianchitta", "ME"], - ["Mazzeo", "ME"], - ["Taormina", "ME"], - ["Trappitello", "ME"], - ["Mazzaro'", "ME"], - ], - "98040": [ - ["Fondachello", "ME"], - ["Gualtieri Sicamino'", "ME"], - ["Torregrotta", "ME"], - ["Condro'", "ME"], - ["Roccavaldina", "ME"], - ["Venetico", "ME"], - ["Venetico Superiore", "ME"], - ["Venetico Marina", "ME"], - ["Valdina", "ME"], - ["Soccorso", "ME"], - ["Scala Di Torregrotta", "ME"], - ["Meri'", "ME"], - ], - "98041": [["Monforte San Giorgio", "ME"], ["Pellegrino", "ME"], ["Monforte Marina", "ME"]], - "98042": [["Giammoro", "ME"], ["Pace Del Mela", "ME"]], - "98043": [["Rometta", "ME"], ["Rometta Marea", "ME"], ["Gimello", "ME"], ["Sant'Andrea", "ME"]], - "98044": [ - ["San Filippo Del Mela", "ME"], - ["Archi", "ME"], - ["Cattafi", "ME"], - ["Olivarella", "ME"], - ["Corriolo", "ME"], - ], - "98045": [["San Pier Marina", "ME"], ["San Pier Niceto", "ME"]], - "98046": [["Santa Lucia Del Mela", "ME"]], - "98047": [["Saponara Marittima", "ME"], ["Saponara", "ME"], ["Cavaliere", "ME"], ["Scarcelli", "ME"]], - "98048": [["Spadafora", "ME"], ["San Martino Spadafora", "ME"], ["San Martino", "ME"]], - "98049": [["Villafranca Tirrena", "ME"], ["Divieto", "ME"], ["Calvaruso", "ME"], ["Serro", "ME"]], - "98050": [ - ["Filicudi", "ME"], - ["Alicudi Porto", "ME"], - ["Panarea", "ME"], - ["Alicudi", "ME"], - ["Rubino", "ME"], - ["Castroreale Terme", "ME"], - ["Malfa", "ME"], - ["Vulcano", "ME"], - ["Terme Vigliatore", "ME"], - ["Vigliatore", "ME"], - ["Fondachelli Fantina", "ME"], - ["Lingua", "ME"], - ["Ginostra", "ME"], - ["Fantina", "ME"], - ["Ginostra Di Lipari", "ME"], - ["Filicudi Porto", "ME"], - ["Pecorini A Mare", "ME"], - ["Santa Marina Salina", "ME"], - ["Leni", "ME"], - ["Stromboli", "ME"], - ["Evangelisti", "ME"], - ["Vulcano Porto", "ME"], - ], - "98051": [ - ["San Paolo", "ME"], - ["Pozzo Di Gotto", "ME"], - ["La Gala", "ME"], - ["Sant'Antonino Convento", "ME"], - ["Caldera'", "ME"], - ["Sant'Antonio", "ME"], - ["Porto Salvo", "ME"], - ["Barcellona Pozzo Di Gotto", "ME"], - ["Cannistra'", "ME"], - ["Gala", "ME"], - ["Acquaficara", "ME"], - ], - "98053": [["Bafia", "ME"], ["Castroreale", "ME"], ["Protonotaro", "ME"]], - "98054": [["Furnari", "ME"], ["Tonnarella", "ME"]], - "98055": [ - ["Canneto Lipari", "ME"], - ["Lipari", "ME"], - ["Acquacalda", "ME"], - ["Canneto", "ME"], - ["Pianoconte", "ME"], - ["Quattropani", "ME"], - ], - "98056": [["Mazzarra' Sant'Andrea", "ME"]], - "98057": [["Santa Marina Di Milazzo", "ME"], ["Milazzo", "ME"], ["San Pietro Di Milazzo", "ME"]], - "98058": [["Novara Di Sicilia", "ME"], ["San Basilio Di Novara Di Sicilia", "ME"]], - "98059": [["Rodi' Milici", "ME"], ["Milici", "ME"]], - "98060": [ - ["Tripi", "ME"], - ["Salina'", "ME"], - ["Belvedere", "ME"], - ["San Lorenzitto", "ME"], - ["Montagnareale", "ME"], - ["Piraino", "ME"], - ["Sant'Angelo Di Brolo", "ME"], - ["Falcone", "ME"], - ["Basico'", "ME"], - ["San Silvestro", "ME"], - ["Gliaca", "ME"], - ["Oliveri", "ME"], - ["Fiumara Di Piraino", "ME"], - ["Campogrande", "ME"], - ["Santa Maria Lo Piano", "ME"], - ["Ucria", "ME"], - ["Cavallo Pastorio", "ME"], - ], - "98061": [["Brolo", "ME"]], - "98062": [["Ficarra", "ME"]], - "98063": [["Magaro", "ME"], ["Gioiosa Marea", "ME"], ["San Giorgio", "ME"]], - "98064": [["Nasidi", "ME"], ["Librizzi", "ME"], ["Colla Maffone", "ME"]], - "98065": [["Santa Barbara", "ME"], ["Montalbano Elicona", "ME"], ["Braidi", "ME"]], - "98066": [ - ["Scala", "ME"], - ["Mongiove", "ME"], - ["Tindari", "ME"], - ["Patti", "ME"], - ["San Cosimo", "ME"], - ["Marina Di Patti", "ME"], - ["Case Nuove Russo", "ME"], - ], - "98067": [["Raccuja", "ME"], ["Fondachello Di Raccuja", "ME"], ["Zappa", "ME"]], - "98068": [["San Piero Patti", "ME"], ["Fiumara", "ME"], ["Tesoriero", "ME"]], - "98069": [["Sinagra", "ME"]], - "98070": [ - ["Militello Rosmarino", "ME"], - ["Alcara Li Fusi", "ME"], - ["Galati Mamertino", "ME"], - ["Mirto", "ME"], - ["Reitano", "ME"], - ["Torrenova", "ME"], - ["Frazzano'", "ME"], - ["Capri Leone", "ME"], - ["Rocca Di Capri Leone", "ME"], - ["Acquedolci", "ME"], - ["Castel Di Lucio", "ME"], - ["San Marco D'Alunzio", "ME"], - ["Pettineo", "ME"], - ["Motta D'Affermo", "ME"], - ["Castell'Umberto", "ME"], - ["San Salvatore Di Fitalia", "ME"], - ["San Basilio", "ME"], - ["Sfaranda", "ME"], - ["Longi", "ME"], - ["Torremuzza", "ME"], - ], - "98071": [["Piana Di Capo D'Orlando", "ME"], ["Scafa", "ME"], ["Capo D'Orlando", "ME"]], - "98072": [["Marina Di Caronia", "ME"], ["Canneto Di Caronia", "ME"], ["Caronia", "ME"]], - "98073": [["Mistretta", "ME"]], - "98074": [["Malo'", "ME"], ["Cresta", "ME"], ["Naso", "ME"]], - "98075": [["San Fratello", "ME"]], - "98076": [["Sant'Agata Di Militello", "ME"], ["Vallebruca", "ME"], ["Torrecandele", "ME"]], - "98077": [["Santo Stefano Di Camastra", "ME"]], - "98078": [ - ["Moira", "ME"], - ["Tortorici", "ME"], - ["Sceti", "ME"], - ["Grazia", "ME"], - ["Ilombati", "ME"], - ["Sant'Antonino Sciortino", "ME"], - ], - "98079": [["Castel Di Tusa", "ME"], ["Tusa", "ME"]], - "98100": [["Messina", "ME"]], - "98121": [["Messina", "ME"]], - "98122": [["Messina", "ME"]], - "98123": [["Messina", "ME"]], - "98124": [["Messina", "ME"], ["Gazzi", "ME"]], - "98125": [["Contesse", "ME"], ["Messina", "ME"]], - "98126": [["Messina", "ME"], ["Santa Lucia Sopra Contesse", "ME"]], - "98127": [["Zafferia", "ME"], ["Messina", "ME"]], - "98128": [["Messina", "ME"], ["Tremestieri", "ME"]], - "98129": [["Larderia", "ME"], ["Messina", "ME"]], - "98131": [["Messina", "ME"], ["Mili Marina", "ME"]], - "98132": [["Mili Marina", "ME"], ["Mili San Marco", "ME"], ["Messina", "ME"]], - "98133": [["Messina", "ME"], ["Mili Superiore", "ME"]], - "98134": [["Messina", "ME"], ["Galati Marina", "ME"]], - "98135": [["Messina", "ME"], ["Santo Stefano Medio", "ME"], ["Santa Margherita", "ME"]], - "98136": [["Santo Stefano Medio", "ME"], ["Messina", "ME"]], - "98137": [["Santo Stefano Di Briga", "ME"], ["Messina", "ME"]], - "98138": [["Messina", "ME"], ["Pezzolo", "ME"]], - "98139": [["San Placido Calonero'", "ME"], ["Briga Marina", "ME"], ["Briga", "ME"], ["Messina", "ME"]], - "98141": [["Messina", "ME"], ["Giampilieri Marina", "ME"]], - "98142": [["Giampilieri", "ME"], ["San Filippo Inferiore", "ME"], ["Messina", "ME"]], - "98143": [["Messina", "ME"], ["Altolia", "ME"], ["Molino", "ME"]], - "98144": [["Messina", "ME"], ["San Filippo", "ME"]], - "98145": [["Messina", "ME"], ["Bordonaro", "ME"], ["San Filippo", "ME"]], - "98146": [["Cumia", "ME"], ["Santo", "ME"], ["Messina", "ME"]], - "98147": [["Messina", "ME"], ["Villaggio Aldisio", "ME"]], - "98148": [["Santo", "ME"], ["Messina", "ME"]], - "98149": [["Messina", "ME"], ["Camaro", "ME"], ["Camaro Inferiore", "ME"], ["Cataratti", "ME"]], - "98151": [["Camaro", "ME"], ["Messina", "ME"]], - "98152": [["Messina", "ME"], ["Scala Ritiro", "ME"], ["San Michele", "ME"]], - "98153": [["Gesso", "ME"], ["Messina", "ME"]], - "98154": [["Messina", "ME"], ["Salice Calabro", "ME"], ["Salice", "ME"]], - "98155": [["Castanea", "ME"], ["Castanea Delle Furie", "ME"], ["Messina", "ME"]], - "98156": [["Massa San Giorgio", "ME"], ["Messina", "ME"]], - "98157": [["Messina", "ME"], ["Massa Santa Lucia", "ME"], ["Massa San Giovanni", "ME"]], - "98158": [["Faro Superiore", "ME"], ["Messina", "ME"]], - "98159": [["Messina", "ME"], ["Liuzzo Orto", "ME"]], - "98161": [["Messina", "ME"], ["Rodia", "ME"]], - "98162": [["San Saba", "ME"], ["Messina", "ME"]], - "98163": [["Messina", "ME"], ["Sparta'", "ME"]], - "98164": [["Lido Di Mortelle", "ME"], ["Messina", "ME"], ["Torre Faro", "ME"]], - "98165": [["Messina", "ME"], ["Ganzirri", "ME"]], - "98166": [["Sant'Agata", "ME"], ["Messina", "ME"]], - "98167": [["Messina", "ME"], ["Pace", "ME"]], - "98168": [ - ["Villaggio Annunziata", "ME"], - ["Contemplazione", "ME"], - ["Pace", "ME"], - ["Villaggio Paradiso", "ME"], - ["Messina", "ME"], - ], - "90010": [ - ["San Mauro Castelverde", "PA"], - ["Ustica", "PA"], - ["Cerda", "PA"], - ["Finale", "PA"], - ["Gratteri", "PA"], - ["Pollina", "PA"], - ["Isnello", "PA"], - ["Altavilla Milicia", "PA"], - ["Campofelice Di Roccella", "PA"], - ["Lascari", "PA"], - ["Ficarazzi", "PA"], - ["Borrello Di San Mauro Castelverde", "PA"], - ["Geraci Siculo", "PA"], - ["Torre Normanna", "PA"], - ["Lascari Scalo", "PA"], - ], - "90011": [["Aspra", "PA"], ["Bagheria", "PA"]], - "90012": [["Sambuchi", "PA"], ["San Giovanni Li Greci", "PA"], ["Caccamo", "PA"]], - "90013": [["Castelbuono", "PA"]], - "90014": [["Casteldaccia", "PA"]], - "90015": [["Gibilmanna", "PA"], ["Sant'Ambrogio", "PA"], ["Cefalu'", "PA"]], - "90016": [["Collesano", "PA"]], - "90017": [["Sant'Elia", "PA"], ["Santa Flavia", "PA"], ["Porticello", "PA"]], - "90018": [["Termini Imerese", "PA"], ["Danigarci", "PA"]], - "90019": [["San Nicolo' L'Arena", "PA"], ["Trabia", "PA"]], - "90020": [ - ["Scillato", "PA"], - ["Vicari", "PA"], - ["Ventimiglia Di Sicilia", "PA"], - ["Sciara", "PA"], - ["Calcarelli", "PA"], - ["Roccapalumba", "PA"], - ["Baucina", "PA"], - ["Blufi", "PA"], - ["Alimena", "PA"], - ["Castellana Sicula", "PA"], - ["Nociazzi Inferiore", "PA"], - ["Aliminusa", "PA"], - ["Regalgioffoli", "PA"], - ["Sclafani Bagni", "PA"], - ["Montemaggiore Belsito", "PA"], - ["Bompietro", "PA"], - ["Nociazzi", "PA"], - ["Locati", "PA"], - ], - "90021": [["Alia", "PA"]], - "90022": [["Caltavuturo", "PA"]], - "90023": [["Ciminna", "PA"]], - "90024": [["Gangi", "PA"]], - "90025": [["Lercara Friddi", "PA"]], - "90026": [ - ["Pianello", "PA"], - ["Pianello Di Petralia Sottana", "PA"], - ["Raffo", "PA"], - ["Petralia Soprana", "PA"], - ["Fasano'", "PA"], - ], - "90027": [["Petralia Sottana", "PA"]], - "90028": [["Polizzi Generosa", "PA"]], - "90029": [["Valledolmo", "PA"]], - "90030": [ - ["Cefala' Diana", "PA"], - ["Godrano", "PA"], - ["Blandino", "PA"], - ["Santa Cristina Gela", "PA"], - ["Campofiorito", "PA"], - ["Giuliana", "PA"], - ["Piano Maglio", "PA"], - ["Contessa Entellina", "PA"], - ["Castronuovo Di Sicilia", "PA"], - ["Mezzojuso", "PA"], - ["Villafrati", "PA"], - ["Palazzo Adriano", "PA"], - ["Altofonte", "PA"], - ["Bolognetta", "PA"], - ["Campofelice Di Fitalia", "PA"], - ], - "90031": [["Belmonte Mezzagno", "PA"]], - "90032": [["Bisacquino", "PA"]], - "90033": [["San Carlo", "PA"], ["Chiusa Sclafani", "PA"]], - "90034": [["Corleone", "PA"], ["Ficuzza", "PA"]], - "90035": [["Marineo", "PA"]], - "90036": [["Portella Di Mare", "PA"], ["Misilmeri", "PA"]], - "90037": [["Piana Degli Albanesi", "PA"]], - "90038": [["Filaga", "PA"], ["Prizzi", "PA"]], - "90039": [["Villabate", "PA"]], - "90040": [ - ["Montelepre", "PA"], - ["Giardinello", "PA"], - ["Trappeto", "PA"], - ["Roccamena", "PA"], - ["San Cipirello", "PA"], - ["Grisi'", "PA"], - ["Isola Delle Femmine", "PA"], - ["Capaci", "PA"], - ["Torretta", "PA"], - ["Cortiglia", "PA"], - ], - "90041": [["Balestrate", "PA"], ["Foce", "PA"]], - "90042": [["Borgetto", "PA"]], - "90043": [["Camporeale", "PA"]], - "90044": [["Villagrazia Di Carini", "PA"], ["Carini", "PA"]], - "90045": [["Cinisi", "PA"], ["Punta Raisi Aeroporto", "PA"]], - "90046": [ - ["Villa Ciambra", "PA"], - ["Poggio San Francesco", "PA"], - ["Pioppo", "PA"], - ["San Martino Delle Scale", "PA"], - ["Malpasso", "PA"], - ["Monreale", "PA"], - ], - "90047": [["Partinico", "PA"]], - "90048": [["San Giuseppe Jato", "PA"]], - "90049": [["Terrasini", "PA"], ["Citta' Del Mare", "PA"]], - "90100": [["Palermo", "PA"]], - "90121": [ - ["Palermo", "PA"], - ["Boccadifalco", "PA"], - ["In Via Messina Marine", "PA"], - ["In Via Ammiraglio Cristodulo", "PA"], - ["Brancaccio Ciaculli", "PA"], - ["Acqua Dei Corsari", "PA"], - ], - "90122": [["Roccella Guarnaschelli", "PA"], ["Palermo", "PA"]], - "90123": [["Palermo", "PA"], ["Settecannoli", "PA"]], - "90124": [ - ["In Via Chiavelli", "PA"], - ["Brancaccio Ciaculli", "PA"], - ["In Via Brancaccio", "PA"], - ["In Via Santa Maria Di Gesu'", "PA"], - ["Palermo", "PA"], - ], - "90125": [["Palermo", "PA"], ["In Via Aloi", "PA"]], - "90126": [["Mezzomonreale Boccadifalco", "PA"], ["Palermo", "PA"]], - "90127": [["Palermo", "PA"]], - "90128": [["Palermo", "PA"]], - "90129": [["Palermo", "PA"]], - "90131": [["Palermo", "PA"], ["Rocca Monreale", "PA"]], - "90132": [["Palermo", "PA"]], - "90133": [["Palermo", "PA"], ["Tribunali Castellammare", "PA"]], - "90134": [["Zisa", "PA"], ["In Via Gioiamia", "PA"], ["Palermo", "PA"]], - "90135": [["Palermo", "PA"], ["Zisa", "PA"]], - "90136": [["Palermo", "PA"]], - "90137": [["Palermo", "PA"]], - "90138": [["Palermo", "PA"], ["Zisa", "PA"]], - "90139": [["Palermo", "PA"]], - "90141": [["Palermo", "PA"]], - "90142": [["Palermo", "PA"], ["Montepellegrino", "PA"], ["Arenella Vergine Maria", "PA"]], - "90143": [["Palermo", "PA"]], - "90144": [["Palermo", "PA"]], - "90145": [["Palermo", "PA"]], - "90146": [ - ["Palermo", "PA"], - ["In Via San Nicola", "PA"], - ["Pallavicino", "PA"], - ["Cruillas", "PA"], - ["San Lorenzo Colli", "PA"], - ["Resuttana San Lorenzo", "PA"], - ], - "90147": [["Tommaso Natale Sferracavallo", "PA"], ["Palermo", "PA"]], - "90148": [["Palermo", "PA"], ["Sferracavallo", "PA"], ["Villagrazia", "PA"], ["Tommaso Natale", "PA"]], - "90149": [["Palermo", "PA"]], - "90151": [["Palermo", "PA"], ["Partanna Mondello", "PA"], ["Mondello", "PA"]], - "97010": [ - ["Marina Di Modica", "RG"], - ["Bellocozzo", "RG"], - ["Marina Di Ragusa", "RG"], - ["Monterosso Almo", "RG"], - ["Roccazzo", "RG"], - ["Giarratana", "RG"], - ], - "97011": [["Acate", "RG"]], - "97012": [["Chiaramonte Gulfi", "RG"]], - "97013": [["Pedalino", "RG"], ["Comiso", "RG"]], - "97014": [["Ispica", "RG"]], - "97015": [ - ["Modica Alta", "RG"], - ["Frigintini", "RG"], - ["Rocciola Sorda", "RG"], - ["Cava D'Ispica", "RG"], - ["Modica", "RG"], - ], - "97016": [["Pozzallo", "RG"]], - "97017": [["Santa Croce Camerina", "RG"], ["Donnafugata", "RG"]], - "97018": [["Donnalucata", "RG"], ["Jungi", "RG"], ["Cava D'Aliga", "RG"], ["Scicli", "RG"], ["Sampieri", "RG"]], - "97019": [["Scoglitti", "RG"], ["Vittoria", "RG"]], - "97100": [["Ragusa", "RG"], ["Ragusa Ibla", "RG"]], - "96010": [ - ["Portopalo Di Capo Passero", "SR"], - ["Melilli", "SR"], - ["Buccheri", "SR"], - ["Villasmundo", "SR"], - ["Sortino", "SR"], - ["Ferla", "SR"], - ["Priolo Gargallo", "SR"], - ["San Foca'", "SR"], - ["Marina Di Melilli", "SR"], - ["Cassaro", "SR"], - ["Buscemi", "SR"], - ["Rizzolo", "SR"], - ["Solarino", "SR"], - ["Canicattini Bagni", "SR"], - ["Palazzolo Acreide", "SR"], - ], - "96011": [["Augusta", "SR"], ["Brucoli", "SR"]], - "96012": [["Avola", "SR"]], - "96013": [["Borgo Rizza", "SR"], ["Carlentini", "SR"], ["Pedagaggi", "SR"]], - "96014": [["Floridia", "SR"]], - "96015": [["Francofonte", "SR"]], - "96016": [["Lentini", "SR"]], - "96017": [ - ["Santa Lucia", "SR"], - ["San Paolo Di Noto", "SR"], - ["San Paolo", "SR"], - ["Testa Dell'Acqua", "SR"], - ["Noto", "SR"], - ["Santa Lucia Di Noto", "SR"], - ["San Corrado Di Fuori", "SR"], - ["Rigolizia", "SR"], - ["Castelluccio", "SR"], - ], - "96018": [["Marzamemi", "SR"], ["Pachino", "SR"]], - "96019": [["Rosolini", "SR"]], - "96100": [ - ["Siracusa", "SR"], - ["Carrozziere", "SR"], - ["Belvedere Di Siracusa", "SR"], - ["Belvedere", "SR"], - ["Cassibile", "SR"], - ], - "91010": [ - ["Castelluzzo", "TP"], - ["Macari", "TP"], - ["Vita", "TP"], - ["Marettimo", "TP"], - ["San Vito Lo Capo", "TP"], - ], - "91011": [["Alcamo", "TP"]], - "91012": [["Bruca", "TP"], ["Battaglia", "TP"], ["Buseto Palizzolo", "TP"]], - "91013": [["Sasi", "TP"], ["Calatafimi Segesta", "TP"], ["Calatafimi", "TP"]], - "91014": [ - ["Scopello", "TP"], - ["Castellammare Del Golfo", "TP"], - ["Balata Di Baida", "TP"], - ["Castello Inici", "TP"], - ], - "91015": [["Sperone Di Custonaci", "TP"], ["Purgatorio", "TP"], ["Custonaci", "TP"]], - "91016": [ - ["Napola", "TP"], - ["Ballata", "TP"], - ["Pizzolungo", "TP"], - ["Casa Santa", "TP"], - ["San Giuliano Trentapiedi", "TP"], - ["Rigaletta", "TP"], - ["Erice", "TP"], - ], - "91017": [ - ["Kamma", "TP"], - ["Scauri Siculo", "TP"], - ["Scauri", "TP"], - ["Pantelleria Aeroporto", "TP"], - ["Pantelleria", "TP"], - ], - "91018": [["Ulmi", "TP"], ["Filci", "TP"], ["San Ciro", "TP"], ["Salemi", "TP"], ["Gorgazzo", "TP"]], - "91019": [ - ["Valderice", "TP"], - ["Sant'Andrea Bonagia", "TP"], - ["Chiesanuova", "TP"], - ["Crocevie", "TP"], - ["Tonnara Di Bonagia", "TP"], - ["Bonagia", "TP"], - ["Crocci", "TP"], - ["Fico", "TP"], - ], - "91020": [ - ["Poggioreale", "TP"], - ["Salaparuta", "TP"], - ["Granitola", "TP"], - ["Costiera Di Mazara", "TP"], - ["Petrosino", "TP"], - ], - "91021": [["Tre Fontane", "TP"], ["Granitola Torretta", "TP"], ["Campobello Di Mazara", "TP"]], - "91022": [["Castelvetrano", "TP"], ["Marinella Di Selinunte", "TP"], ["Marinella", "TP"], ["Triscina", "TP"]], - "91023": [["Favignana", "TP"], ["Levanzo", "TP"]], - "91024": [["Gibellina", "TP"], ["Villaggio Madonna Delle Grazie", "TP"]], - "91025": [ - ["Spagnola", "TP"], - ["Marsala", "TP"], - ["Ragattisi", "TP"], - ["Matarocco", "TP"], - ["Ciavolotto", "TP"], - ["Bufalata", "TP"], - ["Tabaccaro", "TP"], - ["Terrenove Bambina", "TP"], - ["Santo Padre Delle Perriere", "TP"], - ["Strasatti Di Marsala", "TP"], - ["Paolini", "TP"], - ["Ciavolo", "TP"], - ], - "91026": [["Borgata Costiera", "TP"], ["Mazara Del Vallo", "TP"]], - "91027": [["Paceco", "TP"], ["Dattilo", "TP"], ["Nubia", "TP"]], - "91028": [["Partanna", "TP"]], - "91029": [["Santa Ninfa", "TP"]], - "91100": [ - ["Xitta", "TP"], - ["Birgi Aerostazione", "TP"], - ["Locogrande", "TP"], - ["San Giuliano Trentapiedi", "TP"], - ["Marausa Loco Grande", "TP"], - ["Borgo Fazio", "TP"], - ["Marausa", "TP"], - ["Ummari", "TP"], - ["Fulgatore", "TP"], - ["Fontanelle Casasanta", "TP"], - ["Borgo Annunziata", "TP"], - ["Trapani", "TP"], - ["Guarrato", "TP"], - ["Salinagrande", "TP"], - ["Rilievo", "TP"], - ], - "52010": [ - ["La Verna", "AR"], - ["Serravalle Di Bibbiena", "AR"], - ["Biforco", "AR"], - ["Subbiano", "AR"], - ["Corsalone", "AR"], - ["Ortignano", "AR"], - ["Chiusi Della Verna", "AR"], - ["Santa Mama", "AR"], - ["Montemignaio", "AR"], - ["Faltona", "AR"], - ["Capolona", "AR"], - ["Chitignano", "AR"], - ["Talla", "AR"], - ["Ortignano Raggiolo", "AR"], - ["Raggiolo", "AR"], - ["Moggiona Di Poppi", "AR"], - ], - "52011": [ - ["Bibbiena", "AR"], - ["Soci", "AR"], - ["Partina", "AR"], - ["Banzena", "AR"], - ["Bibbiena Stazione", "AR"], - ["Serravalle", "AR"], - ], - "52014": [ - ["Ponte A Poppi", "AR"], - ["Avena", "AR"], - ["Quota", "AR"], - ["Camaldoli", "AR"], - ["Poppi", "AR"], - ["Porrena", "AR"], - ["Badia Prataglia", "AR"], - ["Moggiona", "AR"], - ], - "52015": [["Pratovecchio", "AR"], ["Pratovecchio Stia", "AR"]], - "52016": [["Castel Focognano", "AR"], ["Rassina", "AR"], ["Salutio", "AR"], ["Pieve A Socana", "AR"]], - "52017": [["Papiano", "AR"], ["Stia", "AR"]], - "52018": [["Borgo Alla Collina", "AR"], ["Strada", "AR"], ["Castel San Niccolo'", "AR"]], - "52020": [ - ["Castelfranco Di Sopra", "AR"], - ["Laterina", "AR"], - ["Ponticino", "AR"], - ["Laterina Stazione", "AR"], - ["Montalto", "AR"], - ["Pieve A Presciano", "AR"], - ["Pergine Valdarno", "AR"], - ["Cavi", "AR"], - ["Casalone", "AR"], - ], - "52021": [ - ["Torre", "AR"], - ["Badia Agnano", "AR"], - ["Capannole", "AR"], - ["Ambra", "AR"], - ["Bucine", "AR"], - ["Pietraviva", "AR"], - ], - "52022": [ - ["Meleto", "AR"], - ["Cavriglia", "AR"], - ["San Cipriano", "AR"], - ["Neri", "AR"], - ["Vacchereccia", "AR"], - ["Santa Barbara", "AR"], - ["Monastero", "AR"], - ["Castelnuovo Dei Sabbioni", "AR"], - ["Montegonzi", "AR"], - ], - "52024": [["Loro Ciuffenna", "AR"], ["San Giustino Valdarno", "AR"]], - "52025": [["Levane", "AR"], ["Montevarchi", "AR"], ["Moncioni", "AR"], ["Mercatale Valdarno", "AR"]], - "52026": [["Castelfranco Piandiscò", "AR"], ["Pian Di Sco", "AR"], ["Vaggio", "AR"], ["Faella", "AR"]], - "52027": [["San Giovanni Valdarno", "AR"]], - "52028": [ - ["Penna", "AR"], - ["Madrigale", "AR"], - ["Terranuova Bracciolini", "AR"], - ["Ville", "AR"], - ["Campogialli", "AR"], - ["Malva", "AR"], - ], - "52029": [["Castiglion Fibocchi", "AR"]], - "52031": [["San Leo Di Anghiari", "AR"], ["Anghiari", "AR"]], - "52032": [["Badia Tedalda", "AR"], ["Ca' Raffaello", "AR"], ["Fresciano", "AR"]], - "52033": [["Caprese Michelangelo", "AR"]], - "52035": [["Le Ville", "AR"], ["Monterchi", "AR"]], - "52036": [["Madonnuccia", "AR"], ["Pieve Santo Stefano", "AR"]], - "52037": [["Gricignano", "AR"], ["Santa Fiora", "AR"], ["Sansepolcro", "AR"]], - "52038": [["Colcellalto", "AR"], ["Sestino", "AR"], ["Monterone", "AR"]], - "52041": [ - ["Pieve Al Toppo", "AR"], - ["Viciomaggio", "AR"], - ["Ciggiano", "AR"], - ["Badia Al Pino", "AR"], - ["Tegoleto", "AR"], - ["Civitella In Val Di Chiana", "AR"], - ], - "52043": [["Castiglion Fiorentino", "AR"], ["Montecchio", "AR"], ["Manciano", "AR"]], - "52044": [ - ["Mercatale Di Cortona", "AR"], - ["Cortona", "AR"], - ["Mercatale", "AR"], - ["Santa Caterina", "AR"], - ["Santa Caterina Di Cortona", "AR"], - ["Fratta", "AR"], - ["Centoia", "AR"], - ["Terontola Stazione", "AR"], - ["Capezzine", "AR"], - ["Montanare", "AR"], - ["Montanare Di Cortona", "AR"], - ["Camucia", "AR"], - ["Sant'Andrea Di Sorbello", "AR"], - ["Terontola", "AR"], - ], - "52045": [["Pozzo Della Chiana", "AR"], ["Foiano Della Chiana", "AR"]], - "52046": [["Lucignano", "AR"]], - "52047": [["Marciano", "AR"], ["Cesa", "AR"], ["Marciano Della Chiana", "AR"]], - "52048": [ - ["Montagnano", "AR"], - ["Monte San Savino", "AR"], - ["Montagnano Alberoro", "AR"], - ["Palazzuolo", "AR"], - ["Alberoro", "AR"], - ], - "52100": [ - ["Patrignone", "AR"], - ["Chiassa", "AR"], - ["Giovi D'Arezzo", "AR"], - ["San Giuliano D'Arezzo", "AR"], - ["Pieve Al Bagnoro", "AR"], - ["Chiassa Superiore", "AR"], - ["Olmo", "AR"], - ["Ponte Alla Chiassa", "AR"], - ["Indicatore", "AR"], - ["Battifolle", "AR"], - ["Molin Nuovo", "AR"], - ["Frassineto", "AR"], - ["Rigutino", "AR"], - ["Pratantico", "AR"], - ["Quarata", "AR"], - ["Ruscello", "AR"], - ["Poggiola", "AR"], - ["Arezzo", "AR"], - ["Palazzo Del Pero", "AR"], - ["Ceciliano", "AR"], - ["Antria", "AR"], - ["Staggiano", "AR"], - ["Puglia", "AR"], - ["Tregozzano", "AR"], - ], - "50010": [["Trespiano", "FI"]], - "50012": [ - ["Vallina", "FI"], - ["Bagno A Ripoli", "FI"], - ["Grassina Ponte A Ema", "FI"], - ["Osteria Nuova", "FI"], - ["Candeli", "FI"], - ["Grassina", "FI"], - ["Antella", "FI"], - ["Rimaggio", "FI"], - ], - "50013": [ - ["San Piero A Ponti", "FI"], - ["Il Rosi", "FI"], - ["San Donnino Di Campi", "FI"], - ["Capalle", "FI"], - ["Sant'Angelo", "FI"], - ["San Donnino", "FI"], - ["Sant'Angelo A Lecore", "FI"], - ["Campi Bisenzio", "FI"], - ], - "50014": [["Caldine", "FI"], ["San Domenico Di Fiesole", "FI"], ["Fiesole", "FI"], ["Pian Di Mugnone", "FI"]], - "50018": [ - ["San Vincenzo A Torri", "FI"], - ["Casellina", "FI"], - ["San Martino Alla Palma", "FI"], - ["Scandicci", "FI"], - ["Badia A Settimo", "FI"], - ["Le Bagnese San Giusto", "FI"], - ], - "50019": [ - ["Querceto", "FI"], - ["Quinto", "FI"], - ["Osmannoro", "FI"], - ["Sesto Fiorentino", "FI"], - ["Colonnata", "FI"], - ["Ponte A Giogoli", "FI"], - ], - "50020": [["Mercatale Val Di Pesa", "FI"]], - "50021": [["Vico D'Elsa", "FI"], ["Marcialla", "FI"]], - "50022": [ - ["Lamole", "FI"], - ["Panzano", "FI"], - ["San Polo In Chianti", "FI"], - ["Lucolena", "FI"], - ["Greve In Chianti", "FI"], - ], - "50023": [ - ["Tavarnuzze", "FI"], - ["Monte Oriolo", "FI"], - ["Impruneta", "FI"], - ["Pozzolatico", "FI"], - ["Bottai", "FI"], - ], - "50025": [ - ["San Quirico In Collina", "FI"], - ["Lucardo", "FI"], - ["Montespertoli", "FI"], - ["Martignana", "FI"], - ["Baccaiano", "FI"], - ["Montagnana Val Di Pesa", "FI"], - ], - "50026": [ - ["San Casciano In Val Di Pesa", "FI"], - ["San Pancrazio", "FI"], - ["Cerbaia", "FI"], - ["Mercatale", "FI"], - ["Romola", "FI"], - ["Montefiridolfi", "FI"], - ["Spedaletto", "FI"], - ], - "50027": [["Chiocchio", "FI"], ["Strada In Chianti", "FI"], ["Passo Dei Pecorai", "FI"]], - "50028": [ - ["San Donato In Poggio", "FI"], - ["Barberino Val D'Elsa", "FI"], - ["Sambuca Val Di Pesa", "FI"], - ["Tavarnelle Val Di Pesa", "FI"], - ["Sambuca", "FI"], - ], - "50031": [ - ["Cavallina", "FI"], - ["Cafaggiolo", "FI"], - ["Galliano", "FI"], - ["Gagliano Di Mugello", "FI"], - ["Barberino Di Mugello", "FI"], - ["Montecarelli", "FI"], - ], - "50032": [ - ["Borgo San Lorenzo", "FI"], - ["Luco Mugello", "FI"], - ["Ronta", "FI"], - ["Panicaglia", "FI"], - ["Polcanto", "FI"], - ], - "50033": [ - ["Bruscoli", "FI"], - ["Rifredo", "FI"], - ["Filigare", "FI"], - ["Traversa", "FI"], - ["Pietramala", "FI"], - ["Coniale", "FI"], - ["Cornacchiaia", "FI"], - ["Firenzuola", "FI"], - ["Covigliaio", "FI"], - ["Piancaldoli", "FI"], - ], - "50034": [["Crespino Del Lamone", "FI"], ["Casaglia", "FI"], ["Lutirano", "FI"], ["Marradi", "FI"]], - "50035": [["Misileo", "FI"], ["Palazzuolo Sul Senio", "FI"]], - "50036": [["Bivigliano", "FI"], ["Pratolino", "FI"], ["Vaglia", "FI"], ["Fontebuona", "FI"]], - "50037": [["San Piero A Sieve", "FI"]], - "50038": [ - ["Sant'Agata Mugello", "FI"], - ["Scarperia", "FI"], - ["Sant'Agata", "FI"], - ["Scarperia E San Piero", "FI"], - ], - "50039": [["Cistio", "FI"], ["Rupecanina", "FI"], ["Villore", "FI"], ["Gattaia", "FI"], ["Vicchio", "FI"]], - "50041": [ - ["Calenzano", "FI"], - ["Carraia", "FI"], - ["Le Croci", "FI"], - ["Croci Di Calenzano", "FI"], - ["Settimello", "FI"], - ], - "50050": [ - ["Capraia", "FI"], - ["Stabbia", "FI"], - ["Montaione", "FI"], - ["Pieve A Ripoli", "FI"], - ["Il Castagno Val D'Elsa", "FI"], - ["Varna", "FI"], - ["Limite Sull'Arno", "FI"], - ["Il Castagno", "FI"], - ["Ponte Di Masino", "FI"], - ["Bassa", "FI"], - ["Badia A Cerreto", "FI"], - ["Capraia E Limite", "FI"], - ["Cerreto Guidi", "FI"], - ["Lazzeretto", "FI"], - ["Gambassi Terme", "FI"], - ["San Zio", "FI"], - ["Gavena", "FI"], - ], - "50051": [ - ["Dogana", "FI"], - ["Petrazzi", "FI"], - ["Castelnuovo D'Elsa", "FI"], - ["Cambiano", "FI"], - ["Castelfiorentino", "FI"], - ["Granaiolo", "FI"], - ], - "50052": [["Fiano", "FI"], ["Certaldo", "FI"]], - "50053": [ - ["Empoli", "FI"], - ["Brusciana", "FI"], - ["Fontanella", "FI"], - ["Sant'Andrea", "FI"], - ["Osteria Bianca", "FI"], - ["Case Nuove", "FI"], - ["Monterappoli", "FI"], - ["Ponte A Elsa", "FI"], - ["Marcignana", "FI"], - ], - "50054": [ - ["San Pierino", "FI"], - ["Galleno", "FI"], - ["Torre", "FI"], - ["Ponte A Cappiano", "FI"], - ["Massarella", "FI"], - ["Le Botteghe", "FI"], - ["Fucecchio", "FI"], - ["La Torre", "FI"], - ["Querce", "FI"], - ], - "50055": [ - ["Ponte A Signa", "FI"], - ["Lastra A Signa", "FI"], - ["Malmantile", "FI"], - ["Porto Di Mezzo", "FI"], - ["Brucianesi", "FI"], - ["Ginestra Fiorentina", "FI"], - ], - "50056": [ - ["Ambrogiana", "FI"], - ["Sammontana", "FI"], - ["Samminiatello", "FI"], - ["Fibbiana", "FI"], - ["Montelupo Fiorentino", "FI"], - ], - "50058": [["Signa", "FI"], ["San Mauro", "FI"], ["San Mauro A Signa", "FI"]], - "50059": [ - ["Orbignano", "FI"], - ["Sant'Amato", "FI"], - ["Vitolini", "FI"], - ["San Pantaleo", "FI"], - ["Spicchio", "FI"], - ["Sovigliana", "FI"], - ["Vinci", "FI"], - ], - "50060": [ - ["Consuma", "FI"], - ["Londa", "FI"], - ["Borselli", "FI"], - ["San Godenzo", "FI"], - ["Pelago", "FI"], - ["Diacceto", "FI"], - ], - "50061": [["Compiobbi", "FI"]], - "50062": [["Sandetole", "FI"], ["Dicomano", "FI"]], - "50063": [["Figline E Incisa Valdarno", "FI"], ["Figline Valdarno", "FI"]], - "50064": [["Incisa In Val D'Arno", "FI"], ["Loppiano", "FI"]], - "50065": [ - ["Pontassieve", "FI"], - ["Montebonello", "FI"], - ["Molino Del Piano", "FI"], - ["Santa Brigida", "FI"], - ["Sieci", "FI"], - ], - "50066": [ - ["Tosi", "FI"], - ["Cancelli", "FI"], - ["Cascia", "FI"], - ["Sant'Ellero", "FI"], - ["Pietrapiana", "FI"], - ["Donnini", "FI"], - ["Reggello", "FI"], - ["Saltino", "FI"], - ["Matassino", "FI"], - ["Vaggio", "FI"], - ["Leccio", "FI"], - ["Borgo A Cascia", "FI"], - ["Vallombrosa", "FI"], - ["San Donato Fronzano", "FI"], - ], - "50067": [["Troghi", "FI"], ["San Donato In Collina", "FI"], ["Rignano Sull'Arno", "FI"], ["Rosano", "FI"]], - "50068": [["Pomino", "FI"], ["Rufina", "FI"], ["Contea", "FI"]], - "50100": [["Firenze", "FI"]], - "50121": [["Firenze", "FI"]], - "50122": [["Firenze", "FI"]], - "50123": [["Firenze", "FI"]], - "50124": [["Firenze", "FI"], ["Galluzzo", "FI"]], - "50125": [["Arcetri", "FI"], ["Poggio Imperiale", "FI"], ["San Felice A Ema", "FI"], ["Firenze", "FI"]], - "50126": [ - ["Firenze", "FI"], - ["Ponte A Ema", "FI"], - ["Sorgane", "FI"], - ["Bandino", "FI"], - ["Pieve A Ripoli", "FI"], - ["Badia A Ripoli", "FI"], - ], - "50127": [["Firenze", "FI"], ["Novoli", "FI"]], - "50129": [["Firenze", "FI"]], - "50131": [["Firenze", "FI"]], - "50132": [["Firenze", "FI"]], - "50133": [["Firenze", "FI"]], - "50134": [["Firenze", "FI"], ["Careggi", "FI"]], - "50135": [["Montalbano", "FI"], ["Settignano", "FI"], ["Coverciano", "FI"], ["Firenze", "FI"]], - "50136": [["Firenze", "FI"], ["Rovezzano", "FI"], ["Varlungo", "FI"]], - "50137": [["Firenze", "FI"]], - "50139": [["Firenze", "FI"]], - "50141": [["Firenze", "FI"], ["Castello", "FI"], ["Rifredi", "FI"]], - "50142": [["Mantignano", "FI"], ["Isolotto", "FI"], ["Firenze", "FI"]], - "50143": [["Firenze", "FI"]], - "50144": [["Firenze", "FI"]], - "50145": [["Firenze", "FI"], ["Brozzi", "FI"], ["Peretola", "FI"]], - "58010": [ - ["San Quirico", "GR"], - ["Montebuono", "GR"], - ["San Valentino", "GR"], - ["Sorano", "GR"], - ["Pratolungo", "GR"], - ["Elmo", "GR"], - ["Castell'Ottieri", "GR"], - ["Montorio", "GR"], - ["Sovana", "GR"], - ["Albinia", "GR"], - ["Montevitozzo", "GR"], - ["San Giovanni Delle Contee", "GR"], - ], - "58011": [["Capalbio Stazione", "GR"], ["Borgo Carige", "GR"], ["Chiarone", "GR"], ["Capalbio", "GR"]], - "58012": [ - ["Giglio Castello", "GR"], - ["Isola Del Giglio", "GR"], - ["Giglio Porto", "GR"], - ["Campese", "GR"], - ["Giglio Campese", "GR"], - ], - "58014": [ - ["Poggio Murella", "GR"], - ["Poderi Di Montemerano", "GR"], - ["Poggio Capanne", "GR"], - ["Marsiliana", "GR"], - ["San Martino Sul Fiora", "GR"], - ["Saturnia", "GR"], - ["Manciano", "GR"], - ["Montemerano", "GR"], - ], - "58015": [ - ["Polverosa", "GR"], - ["Fonteblanda", "GR"], - ["Orbetello", "GR"], - ["Santa Liberata", "GR"], - ["Orbetello Scalo", "GR"], - ["Talamone", "GR"], - ["Orbetello Stazione", "GR"], - ], - "58017": [["Il Casone", "GR"], ["Casone", "GR"], ["Pitigliano", "GR"]], - "58018": [["Porto Ercole", "GR"]], - "58019": [["Porto Santo Stefano", "GR"], ["Monte Argentario", "GR"], ["Giannutri", "GR"]], - "58020": [["Puntone", "GR"], ["Scarlino Stazione", "GR"], ["Scarlino Scalo", "GR"], ["Scarlino", "GR"]], - "58022": [["Prato Ranieri", "GR"], ["Follonica", "GR"]], - "58023": [ - ["Castel Di Pietra", "GR"], - ["Miniera", "GR"], - ["Bagno Di Gavorrano", "GR"], - ["Bivio Di Ravi", "GR"], - ["Potassa", "GR"], - ["Caldana", "GR"], - ["Ravi", "GR"], - ["Giuncarico", "GR"], - ["Grilli", "GR"], - ["Gavorrano", "GR"], - ["Boschetto", "GR"], - ["Filare", "GR"], - ], - "58024": [ - ["Montebamboli", "GR"], - ["Capanne Vecchie", "GR"], - ["Prata", "GR"], - ["Niccioleta", "GR"], - ["Capanne", "GR"], - ["Massa Marittima", "GR"], - ["Tatti", "GR"], - ["Ghirlanda", "GR"], - ["Valpiana", "GR"], - ], - "58025": [["Lago Boracifero", "GR"], ["Monterotondo Marittimo", "GR"], ["Frassine", "GR"]], - "58026": [["Travale", "GR"], ["Montieri", "GR"], ["Boccheggiano", "GR"], ["Gerfalco", "GR"]], - "58027": [["Ribolla", "GR"], ["Montemassi", "GR"]], - "58031": [ - ["Bagnoli", "GR"], - ["Arcidosso", "GR"], - ["Salaiola", "GR"], - ["Montelaterone", "GR"], - ["Zancona", "GR"], - ["Stribugliano", "GR"], - ], - "58033": [["Montegiovi", "GR"], ["Castel Del Piano", "GR"], ["Montenero", "GR"]], - "58034": [["Castell'Azzara", "GR"], ["Selvena", "GR"]], - "58036": [ - ["Sticciano Stazione", "GR"], - ["Sassofortino", "GR"], - ["Sticciano", "GR"], - ["Roccatederighi", "GR"], - ["Roccastrada", "GR"], - ["Torniella", "GR"], - ["Sticciano Scalo", "GR"], - ], - "58037": [["Bagnolo", "GR"], ["Selva", "GR"], ["Santa Fiora", "GR"], ["Marroneto", "GR"], ["Bagnore", "GR"]], - "58038": [["Seggiano", "GR"]], - "58042": [["Montorsaio", "GR"], ["Campagnatico", "GR"], ["Arcille", "GR"], ["Arcille Di Campagnatico", "GR"]], - "58043": [ - ["Buriano", "GR"], - ["Vetulonia", "GR"], - ["Riva Del Sole", "GR"], - ["Tirli", "GR"], - ["Punta Ala", "GR"], - ["Castiglione Della Pescaia", "GR"], - ], - "58044": [ - ["Sasso D'Ombrone", "GR"], - ["Cinigiano", "GR"], - ["Castiglioncello Bandini", "GR"], - ["Monticello Dell'Amiata", "GR"], - ["Monticello Amiata", "GR"], - ], - "58045": [ - ["Stazione Di Monte Antico", "GR"], - ["Monte Antico Scalo", "GR"], - ["Monte Antico", "GR"], - ["Paganico", "GR"], - ["Civitella Paganico", "GR"], - ["Casale Di Pari", "GR"], - ["Pari", "GR"], - ["Civitella Marittima", "GR"], - ], - "58051": [["Magliano In Toscana", "GR"], ["Pereta", "GR"], ["Montiano", "GR"]], - "58053": [ - ["Cana", "GR"], - ["Vallerona", "GR"], - ["Roccalbegna", "GR"], - ["Santa Caterina", "GR"], - ["Triana", "GR"], - ], - "58054": [ - ["Murci", "GR"], - ["Pomonte", "GR"], - ["Pancole", "GR"], - ["Scansano", "GR"], - ["Montorgiali", "GR"], - ["Preselle Sergardi", "GR"], - ["Baccinello", "GR"], - ["Polveraia", "GR"], - ["Preselle", "GR"], - ["Poggioferro", "GR"], - ], - "58055": [["Semproniano", "GR"], ["Petricci", "GR"], ["Catabbio", "GR"], ["Cellena", "GR"]], - "58100": [ - ["Marina Di Grosseto", "GR"], - ["Santa Maria Di Rispescia", "GR"], - ["Rispescia", "GR"], - ["Batignano", "GR"], - ["Le Stiacciole", "GR"], - ["Braccagni", "GR"], - ["Montepescali Stazione", "GR"], - ["Bagno Roselle", "GR"], - ["Roselle Terme", "GR"], - ["Alberese", "GR"], - ["Montepescali", "GR"], - ["Grosseto", "GR"], - ["Istia D'Ombrone", "GR"], - ], - "57014": [ - ["Vicarello", "LI"], - ["Parrana San Giusto", "LI"], - ["Castell'Anselmo", "LI"], - ["Crocino", "LI"], - ["Crocino San Giusto", "LI"], - ["Collesalvetti", "LI"], - ["Colognole", "LI"], - ["Parrana San Martino", "LI"], - ], - "57016": [ - ["Rosignano Solvay", "LI"], - ["Nibbiaia", "LI"], - ["Caletta Di Castiglioncello", "LI"], - ["Castiglioncello", "LI"], - ["Rosignano Marittimo", "LI"], - ["Gabbro", "LI"], - ["Vada", "LI"], - ["Castelnuovo Misericordia", "LI"], - ], - "57017": [["Stagno", "LI"], ["Nugola Nuova", "LI"], ["Nugola", "LI"], ["Guasticce", "LI"]], - "57020": [["Sassetta", "LI"], ["La California", "LI"], ["Bibbona", "LI"]], - "57021": [ - ["Stazione Di Campiglia Marittima", "LI"], - ["Campiglia Marittima Stazione", "LI"], - ["Campiglia Marittima", "LI"], - ["Venturina", "LI"], - ], - "57022": [ - ["Donoratico", "LI"], - ["Marina Di Castagneto", "LI"], - ["Marina Di Castagneto Carducci", "LI"], - ["Castagneto Carducci", "LI"], - ["San Guido", "LI"], - ["Bolgheri", "LI"], - ], - "57023": [["San Pietro In Palazzi", "LI"], ["Cecina", "LI"], ["Cecina Marina", "LI"]], - "57025": [ - ["Piombino", "LI"], - ["Vignale Riotorto", "LI"], - ["Colmata", "LI"], - ["Portovecchio", "LI"], - ["Torre Mozza", "LI"], - ["Riotorto", "LI"], - ["Populonia", "LI"], - ["Cotone", "LI"], - ["Colmata Fiorentina Di Piombino", "LI"], - ], - "57027": [["San Vincenzo", "LI"], ["San Carlo", "LI"]], - "57028": [["Montioni", "LI"], ["Suvereto", "LI"]], - "57030": [["Procchio", "LI"], ["Poggio", "LI"], ["Marciana", "LI"], ["Pomonte", "LI"]], - "57031": [["Capoliveri", "LI"]], - "57032": [["Capraia Isola", "LI"]], - "57033": [["Marciana Marina", "LI"]], - "57034": [ - ["Pianosa Isola", "LI"], - ["Cavoli", "LI"], - ["San Piero In Campo", "LI"], - ["Pianosa", "LI"], - ["Marina Di Campo", "LI"], - ["Seccheto", "LI"], - ["Sant'Ilario", "LI"], - ["Campo Nell'Elba", "LI"], - ["La Pila", "LI"], - ], - "57036": [["Porto Azzurro", "LI"]], - "57037": [["Portoferraio", "LI"], ["Magazzini", "LI"], ["Carpani", "LI"], ["San Giovanni", "LI"]], - "57038": [["Rio Marina", "LI"], ["Cavo", "LI"]], - "57039": [["Rio Nell'Elba", "LI"]], - "57100": [["Livorno", "LI"]], - "57121": [["Livorno", "LI"]], - "57122": [["Livorno", "LI"]], - "57123": [["Livorno", "LI"]], - "57124": [["Livorno", "LI"], ["Salviano", "LI"], ["Valle Benedetta", "LI"]], - "57125": [["Livorno", "LI"]], - "57126": [["Livorno", "LI"]], - "57127": [["Livorno", "LI"]], - "57128": [["Antignano", "LI"], ["Livorno", "LI"], ["Montenero", "LI"], ["Ardenza", "LI"]], - "55010": [["Camigliano Santa Gemma", "LU"], ["Gragnano", "LU"], ["San Gennaro", "LU"], ["Lappato", "LU"]], - "55011": [["Marginone", "LU"], ["Altopascio", "LU"], ["Badia Pozzeveri", "LU"], ["Spianate", "LU"]], - "55012": [["Capannori", "LU"], ["Zone", "LU"], ["Lunata", "LU"], ["Pieve San Paolo", "LU"]], - "55013": [["Lammari", "LU"]], - "55014": [["Marlia", "LU"]], - "55015": [ - ["San Salvatore", "LU"], - ["San Salvatore Di Montecarlo", "LU"], - ["Montecarlo", "LU"], - ["Turchetto", "LU"], - ], - "55016": [["Porcari", "LU"]], - "55018": [ - ["Segromigno In Piano", "LU"], - ["San Colombano", "LU"], - ["Matraia", "LU"], - ["Segromigno In Monte", "LU"], - ], - "55019": [["Pracando", "LU"], ["Botticino", "LU"], ["Villa Basilica", "LU"]], - "55020": [ - ["Fosciandora", "LU"], - ["San Pellegrinetto", "LU"], - ["Fornovolasco", "LU"], - ["Vergemoli", "LU"], - ["Sassi", "LU"], - ["Molazzana", "LU"], - ], - "55021": [["Fabbriche Di Vergemoli", "LU"], ["Fabbriche Di Vallico", "LU"]], - "55022": [ - ["Bagni Di Lucca", "LU"], - ["Bagni Di Lucca Ponte", "LU"], - ["San Cassiano Di Controni", "LU"], - ["Scesta", "LU"], - ["Pieve Di Controne", "LU"], - ["Montefegatesi", "LU"], - ["Ponte A Serraglio", "LU"], - ["Bagni Di Lucca Villa", "LU"], - ["Benabbio", "LU"], - ["San Cassiano", "LU"], - ["Lucchio", "LU"], - ["Casabasciana", "LU"], - ["Fornoli", "LU"], - ["Isola", "LU"], - ], - "55023": [ - ["Gioviano", "LU"], - ["Diecimo", "LU"], - ["Chifenti", "LU"], - ["Anchiano", "LU"], - ["Corsagna", "LU"], - ["Borgo A Mozzano", "LU"], - ["Valdottavo", "LU"], - ], - "55025": [ - ["Tereglio", "LU"], - ["Ghivizzano", "LU"], - ["Calavorno", "LU"], - ["Piano Di Coreglia", "LU"], - ["Coreglia Antelminelli", "LU"], - ], - "55027": [["Gallicano", "LU"], ["Fiattone", "LU"], ["Turritecava", "LU"], ["Trassilico", "LU"]], - "55030": [ - ["Villa Collemandina", "LU"], - ["Vagli Sotto", "LU"], - ["Careggine", "LU"], - ["Corfino", "LU"], - ["Vagli Sopra", "LU"], - ["Magliano", "LU"], - ], - "55031": [["Poggio", "LU"], ["Poggio Garfagnana", "LU"], ["Camporgiano", "LU"], ["Filicaia", "LU"]], - "55032": [["Palleroso", "LU"], ["Castelnuovo Di Garfagnana", "LU"]], - "55033": [ - ["Chiozza", "LU"], - ["Castiglione Di Garfagnana", "LU"], - ["Valbona", "LU"], - ["Cerageto", "LU"], - ["San Pellegrino", "LU"], - ], - "55034": [ - ["Gramolazzo", "LU"], - ["Minucciano", "LU"], - ["Gorfigliano", "LU"], - ["Carpinelli", "LU"], - ["Casone Carpinelli", "LU"], - ["Pieve San Lorenzo", "LU"], - ], - "55035": [["Sant'Anastasio", "LU"], ["San Michele", "LU"], ["Piazza Al Serchio", "LU"]], - "55036": [["Pieve Fosciana", "LU"]], - "55038": [["San Romano In Garfagnana", "LU"]], - "55039": [["Giuncugnano", "LU"], ["Sillano Giuncugnano", "LU"], ["Sillano", "LU"]], - "55040": [["Stazzema", "LU"], ["Ruosina", "LU"], ["Pontestazzemese", "LU"], ["Terrinca", "LU"]], - "55041": [ - ["Nocchi", "LU"], - ["Pieve", "LU"], - ["Camaiore", "LU"], - ["Vado", "LU"], - ["Valpromaro", "LU"], - ["Lido Di Camaiore", "LU"], - ["Capezzano Pianore", "LU"], - ["Montebello", "LU"], - ["Pedona", "LU"], - ["Montemagno", "LU"], - ["Casoli", "LU"], - ], - "55042": [["Forte Dei Marmi", "LU"]], - "55045": [ - ["Fiumetto", "LU"], - ["Pietrasanta", "LU"], - ["Focette", "LU"], - ["Capezzano Monte", "LU"], - ["Capriglia", "LU"], - ["Valdicastello Carducci", "LU"], - ["Crociale", "LU"], - ["Marina Di Pietrasanta", "LU"], - ["Capezzano", "LU"], - ["Vallecchia", "LU"], - ["Strettoia", "LU"], - ["Tonfano", "LU"], - ], - "55047": [ - ["Pozzi", "LU"], - ["Riomagno", "LU"], - ["Querceta", "LU"], - ["Seravezza", "LU"], - ["Ripa", "LU"], - ["Ponterosso", "LU"], - ["Basati", "LU"], - ["Azzano", "LU"], - ], - "55049": [["Viareggio", "LU"], ["Torre Del Lago Puccini", "LU"]], - "55051": [ - ["Filecchio", "LU"], - ["Sommocolonia", "LU"], - ["Castelvecchio Pascoli", "LU"], - ["Barga", "LU"], - ["Ponte All'Ania", "LU"], - ["Fornaci Di Barga", "LU"], - ["Tiglio", "LU"], - ["Mologno", "LU"], - ["Sommacolonia", "LU"], - ], - "55054": [ - ["Piano Di Mommio", "LU"], - ["Corsanico", "LU"], - ["Bozzano", "LU"], - ["Quiesa", "LU"], - ["Gualdo Di Massarosa", "LU"], - ["Stiava", "LU"], - ["Massarosa", "LU"], - ["Pieve A Elici", "LU"], - ["Gualdo", "LU"], - ], - "55060": [ - ["Palagnana", "LU"], - ["Guamo", "LU"], - ["Vorno", "LU"], - ["Massa Macinaia", "LU"], - ["Badia Cantignano", "LU"], - ], - "55061": [["Carraia", "LU"], ["San Ginese", "LU"]], - "55062": [["Ruota", "LU"], ["Colle Di Compito", "LU"], ["Pieve Di Compito", "LU"]], - "55064": [ - ["Pascoso", "LU"], - ["Villa A Roggio", "LU"], - ["San Martino In Freddana", "LU"], - ["Loppeglia", "LU"], - ["Piegaio Basso", "LU"], - ["Piegaio", "LU"], - ["San Rocco In Turrite", "LU"], - ["Pescaglia", "LU"], - ], - "55100": [ - ["San Lorenzo Di Moriano", "LU"], - ["Lucca", "LU"], - ["Cerasomma", "LU"], - ["San Concordio Di Moriano", "LU"], - ["Ponte A Moriano", "LU"], - ["Pontetetto", "LU"], - ["Santa Maria Del Giudice", "LU"], - ["Piaggione", "LU"], - ["Saltocchio", "LU"], - ["Nozzano", "LU"], - ["Ponte San Pietro", "LU"], - ["Monte San Quirico", "LU"], - ["Fagnano", "LU"], - ["Montuolo", "LU"], - ["Maggiano", "LU"], - ["San Pietro A Vico", "LU"], - ["Picciorana", "LU"], - ["Vinchiana", "LU"], - ["Mutigliano", "LU"], - ["Gattaiola", "LU"], - ["Ponte Del Giglio", "LU"], - ["Massa Pisana", "LU"], - ], - "54010": [["Montedivalli", "MS"], ["Podenzana", "MS"]], - "54011": [ - ["Quercia", "MS"], - ["Pallerone", "MS"], - ["Bigliolo", "MS"], - ["Caprigliola", "MS"], - ["Aulla", "MS"], - ["Bibola", "MS"], - ["Serricciolo", "MS"], - ["Albiano Magra", "MS"], - ], - "54012": [["Barbarasco", "MS"], ["Tresana", "MS"], ["Villa Di Tresana", "MS"]], - "54013": [ - ["Campiglione", "MS"], - ["Sassalbo", "MS"], - ["Tenerano", "MS"], - ["Soliera", "MS"], - ["Moncigoli", "MS"], - ["Vinca", "MS"], - ["Fivizzano", "MS"], - ["San Terenzo Monti", "MS"], - ["Agnino", "MS"], - ["Rometta Apuana", "MS"], - ["Gragnola", "MS"], - ["Gassano", "MS"], - ["Colla", "MS"], - ["Rometta", "MS"], - ["Ceserano", "MS"], - ["Monzone", "MS"], - ["Soliera Apuana", "MS"], - ], - "54014": [ - ["Regnano", "MS"], - ["Codiponte", "MS"], - ["Casola In Lunigiana", "MS"], - ["Equi", "MS"], - ["Equi Terme", "MS"], - ], - "54015": [["Comano", "MS"], ["Crespiano", "MS"]], - "54016": [ - ["Monti Di Licciana", "MS"], - ["Licciana Nardi", "MS"], - ["Tavernelle", "MS"], - ["Monti", "MS"], - ["Terrarossa", "MS"], - ], - "54021": [["Treschietto", "MS"], ["Gabbiana", "MS"], ["Bagnone", "MS"], ["Corlaga", "MS"]], - "54023": [["Filattiera", "MS"], ["Cantiere", "MS"], ["Ponticello", "MS"], ["Scorcetoli", "MS"]], - "54026": [ - ["Montereggio Di Mulazzo", "MS"], - ["Montereggio", "MS"], - ["Groppoli", "MS"], - ["Arpiola", "MS"], - ["Mulazzo", "MS"], - ], - "54027": [ - ["Traverde", "MS"], - ["Molinello", "MS"], - ["Pontremoli", "MS"], - ["Grondola", "MS"], - ["Guinadi", "MS"], - ["Cervara", "MS"], - ["Vignola", "MS"], - ], - "54028": [["Filetto", "MS"], ["Villafranca In Lunigiana", "MS"], ["Virgoletta", "MS"], ["Merizzo", "MS"]], - "54029": [["Zeri", "MS"], ["Chiesa Di Rossano", "MS"]], - "54033": [ - ["Castelpoggio", "MS"], - ["Fossone", "MS"], - ["Fossola", "MS"], - ["Marina Di Carrara", "MS"], - ["Avenza", "MS"], - ["Codena", "MS"], - ["Gragnana", "MS"], - ["Sorgnano", "MS"], - ["Carrara", "MS"], - ["Torano", "MS"], - ["Bergiola", "MS"], - ["Fontia", "MS"], - ["Miseglia", "MS"], - ["Bedizzano", "MS"], - ["Colonnata", "MS"], - ], - "54035": [ - ["Tendola", "MS"], - ["Fosdinovo", "MS"], - ["Caniparola", "MS"], - ["Borghetto", "MS"], - ["Melara", "MS"], - ["Marciaso", "MS"], - ], - "54038": [ - ["Prato Capanne", "MS"], - ["Cerreto", "MS"], - ["San Vito", "MS"], - ["Cinquale", "MS"], - ["Montignoso", "MS"], - ], - "54100": [ - ["Turano", "MS"], - ["Ronchi", "MS"], - ["Forno", "MS"], - ["Casette", "MS"], - ["Mirteto", "MS"], - ["Canevara", "MS"], - ["Altagnana", "MS"], - ["Massa", "MS"], - ["Quercioli", "MS"], - ["Marina Di Massa", "MS"], - ], - "56010": [ - ["Arena Metato", "PI"], - ["Uliveto Terme", "PI"], - ["Campo", "PI"], - ["Caprona", "PI"], - ["Cucigliana", "PI"], - ["San Giovanni Alla Vena", "PI"], - ["Mezzana", "PI"], - ["Vicopisano", "PI"], - ], - "56011": [["Gabella", "PI"], ["Castelmaggiore", "PI"], ["Calci", "PI"], ["Montemagno", "PI"]], - "56012": [["Calcinaia", "PI"], ["Fornacette", "PI"]], - "56017": [ - ["Gello", "PI"], - ["Ripafratta", "PI"], - ["Agnano", "PI"], - ["San Giuliano Terme", "PI"], - ["Pontasserchio", "PI"], - ["Arena", "PI"], - ["Molina Di Quosa", "PI"], - ["Rigoli", "PI"], - ["Ghezzano", "PI"], - ["Asciano", "PI"], - ["Pappiana", "PI"], - ], - "56019": [["Vecchiano", "PI"], ["Avane", "PI"], ["Filettole", "PI"], ["Migliarino", "PI"], ["Nodica", "PI"]], - "56020": [ - ["Cerretti", "PI"], - ["Montecalvoli", "PI"], - ["Castel Del Bosco", "PI"], - ["San Romano", "PI"], - ["Montopoli", "PI"], - ["Montopoli In Val D'Arno", "PI"], - ["Marti", "PI"], - ["Santa Maria A Monte", "PI"], - ["Capanne", "PI"], - ], - "56021": [ - ["Cascina", "PI"], - ["San Casciano", "PI"], - ["Marciana", "PI"], - ["San Lorenzo A Pagnatico", "PI"], - ["San Frediano A Settimo", "PI"], - ["San Benedetto A Settimo", "PI"], - ["Latignano", "PI"], - ], - "56022": [["Castelfranco Di Sotto", "PI"], ["Villa Campanile", "PI"], ["Orentano", "PI"]], - "56023": [ - ["Navacchio", "PI"], - ["San Lorenzo Alle Corti", "PI"], - ["Montione", "PI"], - ["Musigliano", "PI"], - ["Ripoli", "PI"], - ], - "56024": [["Corazzano", "PI"], ["La Serra", "PI"], ["Ponte A Egola", "PI"]], - "56025": [ - ["Montecastello", "PI"], - ["Pontedera", "PI"], - ["La Borra", "PI"], - ["Il Romito", "PI"], - ["Treggiaia", "PI"], - ["La Rotta", "PI"], - ["Santa Lucia", "PI"], - ], - "56028": [ - ["Isola", "PI"], - ["La Scala", "PI"], - ["San Miniato Basso", "PI"], - ["San Miniato", "PI"], - ["Ponte A Elsa", "PI"], - ], - "56029": [["Staffoli", "PI"], ["Santa Croce Sull'Arno", "PI"]], - "56030": [ - ["Selvatelle", "PI"], - ["Orciatico", "PI"], - ["Soiana", "PI"], - ["Terricciola", "PI"], - ["Morrona", "PI"], - ["Lajatico", "PI"], - ], - "56031": [["Bientina", "PI"], ["Quattro Strade", "PI"]], - "56032": [["La Croce", "PI"], ["Buti", "PI"], ["Cascine", "PI"]], - "56033": [["San Pietro Belvedere", "PI"], ["Capannoli", "PI"]], - "56034": [["Rivalto", "PI"], ["Casciana Terme", "PI"], ["Chianni", "PI"]], - "56035": [ - ["Usigliano", "PI"], - ["Cevoli", "PI"], - ["Lavaiano", "PI"], - ["Casciana Alta", "PI"], - ["Perignano", "PI"], - ["Le Casine", "PI"], - ["Casciana Terme Lari", "PI"], - ["Lari", "PI"], - ["Spinelli", "PI"], - ], - "56036": [ - ["Montefoscoli", "PI"], - ["Palaia", "PI"], - ["Villa Saletta", "PI"], - ["Alica", "PI"], - ["Forcoli", "PI"], - ["Partino", "PI"], - ], - "56037": [ - ["Fabbrica", "PI"], - ["Ghizzano Di Peccioli", "PI"], - ["Fabbrica Di Peccioli", "PI"], - ["Ghizzano", "PI"], - ["Peccioli", "PI"], - ["Legoli", "PI"], - ], - "56038": [["Giardino", "PI"], ["Ponsacco", "PI"]], - "56040": [ - ["Monteverdi Marittimo", "PI"], - ["Guardistallo", "PI"], - ["Orciano Pisano", "PI"], - ["Montescudaio", "PI"], - ["Casale Marittimo", "PI"], - ["Cenaia", "PI"], - ["Casino Di Terra", "PI"], - ["Sassa", "PI"], - ["Castellina Marittima", "PI"], - ["Montecatini Val Di Cecina", "PI"], - ["Castello Di Querceto", "PI"], - ["Canneto", "PI"], - ["Pieve Di Santa Luce", "PI"], - ["Ponteginori", "PI"], - ["Canneto Di Monteverdi", "PI"], - ["Crespina", "PI"], - ["Le Badie", "PI"], - ["Pastina", "PI"], - ["Pomaia", "PI"], - ["Santa Luce", "PI"], - ], - "56041": [["Sasso Pisano", "PI"], ["Castelnuovo Di Val Di Cecina", "PI"], ["Montecastelli Pisano", "PI"]], - "56042": [["Crespina Lorenzana", "PI"], ["Lorenzana", "PI"]], - "56043": [["Luciana", "PI"], ["Fauglia", "PI"]], - "56044": [["Lustignano", "PI"], ["Larderello", "PI"], ["Serrazzano", "PI"], ["Montecerboli", "PI"]], - "56045": [ - ["San Dalmazio", "PI"], - ["Montegemoli", "PI"], - ["Micciano", "PI"], - ["Libbiano", "PI"], - ["Pomarance", "PI"], - ], - "56046": [["Riparbella", "PI"]], - "56048": [ - ["Volterra", "PI"], - ["Pignano", "PI"], - ["Mazzolla", "PI"], - ["Villamagna", "PI"], - ["Ulignano", "PI"], - ["Saline Di Volterra", "PI"], - ["Saline", "PI"], - ], - "56100": [["Pisa", "PI"]], - "56121": [["Putignano", "PI"], ["Pisa", "PI"], ["Riglione", "PI"], ["Coltano", "PI"]], - "56122": [["San Piero A Grado", "PI"], ["Pisa", "PI"]], - "56123": [["Pisa", "PI"]], - "56124": [["Pisa", "PI"]], - "56125": [["Pisa", "PI"]], - "56126": [["Pisa", "PI"]], - "56127": [["Pisa", "PI"]], - "56128": [["Pisa", "PI"]], - "59011": [["Seano", "PO"], ["Bacchereto", "PO"]], - "59013": [["Fornacelle", "PO"], ["Montemurlo", "PO"], ["Oste", "PO"]], - "59015": [ - ["La Serra", "PO"], - ["Artimino", "PO"], - ["Poggio Alla Malva", "PO"], - ["Carmignano", "PO"], - ["Comeana", "PO"], - ], - "59016": [["Poggio A Caiano", "PO"], ["Poggetto", "PO"]], - "59021": [["La Briglia", "PO"], ["Vaiano", "PO"], ["Schignano", "PO"]], - "59024": [ - ["Mercatale Vernio", "PO"], - ["Mercatale", "PO"], - ["Cavarzano", "PO"], - ["San Quirico Di Vernio", "PO"], - ["San Quirico", "PO"], - ["Vernio", "PO"], - ], - "59025": [ - ["Il Fabbro", "PO"], - ["Cantagallo", "PO"], - ["Carmignanello", "PO"], - ["Usella", "PO"], - ["Luicciana", "PO"], - ], - "59026": [["Montepiano", "PO"]], - "59100": [ - ["Cafaggio", "PO"], - ["Galciana", "PO"], - ["Santa Lucia", "PO"], - ["Figline Di Prato", "PO"], - ["Mezzana", "PO"], - ["Narnali", "PO"], - ["Santa Maria A Colonica", "PO"], - ["Iolo", "PO"], - ["Viaccia", "PO"], - ["San Giorgio A Colonica", "PO"], - ["Paperino", "PO"], - ["Prato", "PO"], - ["Maliseti", "PO"], - ["Coiano", "PO"], - ["La Querce", "PO"], - ["Tavola", "PO"], - ], - "51010": [ - ["Traversagna", "PT"], - ["Marliana", "PT"], - ["Montagnana", "PT"], - ["Santa Lucia Uzzanese", "PT"], - ["Forone", "PT"], - ["Avaglio", "PT"], - ["Margine Coperta", "PT"], - ["Santa Lucia", "PT"], - ["Serra Pistoiese", "PT"], - ["Uzzano", "PT"], - ["Casore Del Monte", "PT"], - ["Momigno", "PT"], - ["Massa E Cozzile", "PT"], - ], - "51011": [["Buggiano", "PT"], ["Borgo A Buggiano", "PT"]], - "51012": [["Veneri", "PT"], ["Ponte All'Abate", "PT"], ["Castellare Di Pescia", "PT"], ["Collodi", "PT"]], - "51013": [["Chiesina Uzzanese", "PT"], ["Chiesanuova", "PT"], ["Chiesanuova Uzzanese", "PT"]], - "51015": [ - ["Cintolese", "PT"], - ["Montevettolini", "PT"], - ["Pozzarello", "PT"], - ["Monsummano Terme", "PT"], - ["Grotta Giusti", "PT"], - ["Uggia", "PT"], - ["Pazzera", "PT"], - ], - "51016": [ - ["Nievole", "PT"], - ["Montecatini Val Di Nievole", "PT"], - ["Montecatini Terme", "PT"], - ["Montecatini Alto", "PT"], - ], - "51017": [ - ["San Quirico", "PT"], - ["Pietrabuona", "PT"], - ["Pescia", "PT"], - ["Castelvecchio", "PT"], - ["Vellano", "PT"], - ["San Quirico Valleriana", "PT"], - ["Castelvecchio Di Vellano", "PT"], - ["Pontito", "PT"], - ], - "51018": [["Pieve A Nievole", "PT"]], - "51019": [["Ponte Buggianese", "PT"], ["Anchione", "PT"]], - "51020": [ - ["Castello", "PT"], - ["Prunetta", "PT"], - ["Popiglio", "PT"], - ["Calamecca", "PT"], - ["Pavana", "PT"], - ["San Pellegrino Al Cassero", "PT"], - ["Treppio", "PT"], - ["San Pellegrino", "PT"], - ["Pavana Pistoiese", "PT"], - ["Prataccio", "PT"], - ["Torri", "PT"], - ["Collina", "PT"], - ["Crespole", "PT"], - ["Frassignoni", "PT"], - ["Piteglio", "PT"], - ["La Lima", "PT"], - ["Sambuca Pistoiese", "PT"], - ], - "51021": [["Abetone", "PT"], ["Le Regine", "PT"]], - "51024": [["Pianosinatico", "PT"], ["Pian Degli Ontani", "PT"], ["Cutigliano", "PT"]], - "51028": [ - ["San Marcello Pistoiese", "PT"], - ["Pontepetri", "PT"], - ["Gavinana", "PT"], - ["Campo Tizzoro", "PT"], - ["Bardalone", "PT"], - ["Limestre Pistoiese", "PT"], - ["Mammiano", "PT"], - ["Maresca", "PT"], - ["Lizzano Pistoiese", "PT"], - ["Limestre", "PT"], - ], - "51030": [["Montagnana Pistoiese", "PT"]], - "51031": [["San Michele", "PT"], ["Agliana", "PT"], ["San Piero", "PT"]], - "51034": [ - ["Ponte Di Serravalle", "PT"], - ["Stazione Masotti", "PT"], - ["Serravalle Pistoiese", "PT"], - ["Casalguidi", "PT"], - ], - "51035": [ - ["San Baronto", "PT"], - ["Lamporecchio", "PT"], - ["Porciano", "PT"], - ["Mastromarco", "PT"], - ["Orbignano", "PT"], - ], - "51036": [["San Rocco", "PT"], ["Larciano", "PT"], ["Castelmartini", "PT"]], - "51037": [ - ["Fognano Di Montale", "PT"], - ["Fognano", "PT"], - ["Montale", "PT"], - ["Stazione Di Montale", "PT"], - ["Tobbiana", "PT"], - ], - "51039": [ - ["Catena", "PT"], - ["Olmi", "PT"], - ["Santonuovo", "PT"], - ["Quarrata", "PT"], - ["Montemagno", "PT"], - ["Ferruccia", "PT"], - ["Tizzana", "PT"], - ["Montemagno Di Quarrata", "PT"], - ], - "51100": [ - ["Candeglia", "PT"], - ["Capostrada", "PT"], - ["Saturnana", "PT"], - ["Ponzano", "PT"], - ["Orsigna", "PT"], - ["Pontelungo", "PT"], - ["Piazza", "PT"], - ["San Felice", "PT"], - ["Piastre", "PT"], - ["Masiano", "PT"], - ["Chiazzano", "PT"], - ["Le Grazie", "PT"], - ["Valdibrana", "PT"], - ["Grazie", "PT"], - ["Piteccio", "PT"], - ["Pistoia", "PT"], - ["Villa Di Baggio", "PT"], - ["Villa Baggio", "PT"], - ["Pracchia", "PT"], - ["Corbezzi", "PT"], - ["Bottegone", "PT"], - ["Cireglio", "PT"], - ["Sammomme'", "PT"], - ["Santomato", "PT"], - ], - "53011": [["Fonterutoli", "SI"], ["Castellina In Chianti", "SI"]], - "53012": [["Chiusdino", "SI"], ["Ciciano", "SI"], ["Frosini", "SI"], ["Montalcinello", "SI"]], - "53013": [ - ["Lecchi", "SI"], - ["Nusenna", "SI"], - ["Castagnoli", "SI"], - ["Monti", "SI"], - ["Ama", "SI"], - ["Gaiole In Chianti", "SI"], - ], - "53014": [ - ["Ponte A Tressa", "SI"], - ["Lucignano D'Arbia", "SI"], - ["Monteroni D'Arbia", "SI"], - ["Corsano", "SI"], - ["Ville Di Corsano", "SI"], - ["Ponte D'Arbia", "SI"], - ], - "53015": [ - ["Iesa", "SI"], - ["San Lorenzo A Merse", "SI"], - ["Monticiano", "SI"], - ["Scalvaia", "SI"], - ["Tocchi", "SI"], - ], - "53016": [["Casciano", "SI"], ["Murlo", "SI"], ["Vescovado", "SI"]], - "53017": [["Lucarelli", "SI"], ["Radda In Chianti", "SI"]], - "53018": [["Rosia", "SI"], ["Sovicille", "SI"], ["San Rocco A Pilli", "SI"]], - "53019": [ - ["Vagliagli", "SI"], - ["Casetta", "SI"], - ["Quercegrossa", "SI"], - ["Ponte A Bozzone", "SI"], - ["Castelnuovo Berardenga", "SI"], - ["Pianella", "SI"], - ["Monteaperti", "SI"], - ["San Gusme'", "SI"], - ], - "53020": [ - ["Montisi", "SI"], - ["Trequanda", "SI"], - ["Castelmuzio", "SI"], - ["Petroio", "SI"], - ["San Giovanni D'Asso", "SI"], - ], - "53021": [["Abbadia San Salvatore", "SI"]], - "53022": [["Buonconvento", "SI"]], - "53023": [ - ["Castiglione D'Orcia", "SI"], - ["Gallina", "SI"], - ["Bagni Di San Filippo", "SI"], - ["Bagni San Filippo", "SI"], - ["Campiglia D'Orcia", "SI"], - ["Vivo D'Orcia", "SI"], - ], - "53024": [ - ["Montalcino", "SI"], - ["Sant'Angelo In Colle", "SI"], - ["Monte Amiata", "SI"], - ["Torrenieri", "SI"], - ["Castelnuovo Dell'Abate", "SI"], - ], - "53025": [["Saragiolo", "SI"], ["Piancastagnaio", "SI"]], - "53026": [["Monticchiello", "SI"], ["Pienza", "SI"]], - "53027": [["San Quirico D'Orcia", "SI"], ["Bagno Vignoni", "SI"]], - "53030": [ - ["Belforte", "SI"], - ["Anqua", "SI"], - ["Castel San Giminiano", "SI"], - ["Castel San Gimignano", "SI"], - ["Radicondoli", "SI"], - ], - "53031": [["Monteguidi", "SI"], ["Pievescola", "SI"], ["Casole D'Elsa", "SI"]], - "53034": [ - ["Quartaia", "SI"], - ["Colle Di Val D'Elsa", "SI"], - ["Gracciano Di Colle Val D'Elsa", "SI"], - ["Campiglia", "SI"], - ], - "53035": [ - ["San Martino", "SI"], - ["Castellina Scalo", "SI"], - ["Uopini", "SI"], - ["Monteriggioni", "SI"], - ["Belverde", "SI"], - ["Castellina In Chianti Stazione", "SI"], - ["Badesse", "SI"], - ["Strove", "SI"], - ["Tognazza", "SI"], - ], - "53036": [["Poggibonsi", "SI"], ["Bellavista", "SI"], ["Staggia", "SI"]], - "53037": [["Ulignano", "SI"], ["Badia A Elmi", "SI"], ["San Gimignano", "SI"]], - "53040": [ - ["Serre Di Rapolano", "SI"], - ["Contignano", "SI"], - ["Radicofani", "SI"], - ["Cetona", "SI"], - ["San Casciano Dei Bagni", "SI"], - ["Celle Sul Rigo", "SI"], - ["Palazzone", "SI"], - ["Rapolano Terme", "SI"], - ["Piazze", "SI"], - ], - "53041": [ - ["Chiusure", "SI"], - ["Arbia", "SI"], - ["Asciano", "SI"], - ["Monte Sante Marie", "SI"], - ["Monte Oliveto Maggiore", "SI"], - ], - "53042": [["Chianciano Terme", "SI"]], - "53043": [["Chiusi Stazione", "SI"], ["Chiusi", "SI"], ["Montallese", "SI"], ["Chiusi Scalo", "SI"]], - "53045": [ - ["Montepulciano Stazione", "SI"], - ["Abbadia", "SI"], - ["Valiano", "SI"], - ["Acquaviva", "SI"], - ["Abbadia Di Montepulciano", "SI"], - ["Gracciano", "SI"], - ["Montepulciano", "SI"], - ["Sant'Albino", "SI"], - ], - "53047": [["Sarteano", "SI"]], - "53048": [ - ["Rigomagno", "SI"], - ["Guazzino", "SI"], - ["Pieve Di Sinalunga", "SI"], - ["Rigaiolo", "SI"], - ["Bettolle", "SI"], - ["Sinalunga", "SI"], - ["Scrofiano", "SI"], - ], - "53049": [["Montefollonico", "SI"], ["Torrita Stazione", "SI"], ["Torrita Di Siena", "SI"]], - "53100": [ - ["Costalpino", "SI"], - ["Sant'Andrea A Montecchio", "SI"], - ["Siena", "SI"], - ["Isola D'Arbia", "SI"], - ["Coroncina", "SI"], - ["Ponte Al Bozzone", "SI"], - ["Malafrasca", "SI"], - ["Taverne D'Arbia", "SI"], - ], - "39010": [ - ["Grissian", "BZ"], - ["Saltusio", "BZ"], - ["Tisens", "BZ"], - ["Tesimo", "BZ"], - ["Unsere liebe Frau i. W.", "BZ"], - ["Sinich", "BZ"], - ["Nals", "BZ"], - ["Pawigl", "BZ"], - ["Nalles", "BZ"], - ["Sigmundskron", "BZ"], - ["Gfrill", "BZ"], - ["Platzers", "BZ"], - ["St. Nikolaus/Ulten", "BZ"], - ["Vilpian", "BZ"], - ["Vernue", "BZ"], - ["Gfeis", "BZ"], - ["Schlaneid", "BZ"], - ["Pfelders", "BZ"], - ["Saltaus", "BZ"], - ["Verschneid", "BZ"], - ["Kuens", "BZ"], - ["St. Helena", "BZ"], - ["St. Gertraud", "BZ"], - ["Riffian", "BZ"], - ["Caines", "BZ"], - ["St. Felix", "BZ"], - ["San Felice", "BZ"], - ["Unsere Liebe Frau Im Wald", "BZ"], - ["Cermes", "BZ"], - ["Senale San Felice", "BZ"], - ["San Martino In Passiria", "BZ"], - ["Andrian", "BZ"], - ["San Felice Val Di Non", "BZ"], - ["Frangart", "BZ"], - ["Prissia", "BZ"], - ["St. Martin in Passeier", "BZ"], - ["Mölten", "BZ"], - ["St. Pankraz", "BZ"], - ["San Pancrazio", "BZ"], - ["Meltina", "BZ"], - ["Vöran", "BZ"], - ["Hafling", "BZ"], - ["Tscherms", "BZ"], - ["Avelengo", "BZ"], - ["Senale", "BZ"], - ["Sant'Orsola In Passiria", "BZ"], - ["Rifiano", "BZ"], - ["Andriano", "BZ"], - ["Gargazon", "BZ"], - ["Prissiano", "BZ"], - ["Gargazzone", "BZ"], - ["Walten", "BZ"], - ["Verano", "BZ"], - ], - "39011": [ - ["Lana", "BZ"], - ["Pawig", "BZ"], - ["Vigiljoc", "BZ"], - ["Völlan", "BZ"], - ["Pavicolo", "BZ"], - ["Monte San Vigilio", "BZ"], - ], - "39012": [ - ["Borgo Vittoria", "BZ"], - ["Sinic", "BZ"], - ["Sinigo", "BZ"], - ["Obermais", "BZ"], - ["Gratsch", "BZ"], - ["Meran Sinic", "BZ"], - ["Untermais", "BZ"], - ["Meran", "BZ"], - ["Merano", "BZ"], - ], - "39013": [ - ["Moos", "BZ"], - ["Moso In Passiria", "BZ"], - ["Stuls", "BZ"], - ["Plan In Passiria", "BZ"], - ["Platt", "BZ"], - ["Pfelder", "BZ"], - ["Rabenstein", "BZ"], - ["Ulfas", "BZ"], - ], - "39014": [["Postal", "BZ"], ["Burgstall", "BZ"]], - "39015": [ - ["Walte", "BZ"], - ["San Leonardo In Passiria", "BZ"], - ["St. Leonhard in Pass.", "BZ"], - ["Schweinsteg", "BZ"], - ["Valtina", "BZ"], - ["Sant'Orsola", "BZ"], - ["Windegg", "BZ"], - ], - "39016": [ - ["St. Moritz/Ulten", "BZ"], - ["Kuppelwies", "BZ"], - ["St.Nikolau", "BZ"], - ["Santa Valburga Ultimo", "BZ"], - ["Ultimo", "BZ"], - ["St.Walburg Ulte", "BZ"], - ["Santa Geltrude In Ultimo", "BZ"], - ["San Nicolo' Ultimo", "BZ"], - ["San Nicolo'", "BZ"], - ["Santa Valburga", "BZ"], - ["St. Walburg/Ulten", "BZ"], - ["Santa Gertrude", "BZ"], - ], - "39017": [["Verdins", "BZ"], ["Videgg", "BZ"], ["Schenna", "BZ"], ["Tall", "BZ"], ["Scena", "BZ"]], - "39018": [ - ["Vilpiano", "BZ"], - ["Siebeneich", "BZ"], - ["Vilpia", "BZ"], - ["Terlan", "BZ"], - ["Terlano", "BZ"], - ["Settequerce", "BZ"], - ], - "39019": [["Tirolo", "BZ"], ["Tirol", "BZ"]], - "39020": [ - ["Tanas", "BZ"], - ["Vernagt", "BZ"], - ["Gand/Martell", "BZ"], - ["Lichtenberg", "BZ"], - ["Schluderns", "BZ"], - ["Karthaus", "BZ"], - ["Eyrs", "BZ"], - ["Staben", "BZ"], - ["Taufers i. Münstertal", "BZ"], - ["Plawenn", "BZ"], - ["Melag", "BZ"], - ["Planeil", "BZ"], - ["St. Valentin a. d. H.", "BZ"], - ["Laatsch", "BZ"], - ["Graun/Vinschg.", "BZ"], - ["Matsch", "BZ"], - ["Unsere Frau i. Schnals", "BZ"], - ["Freiberg", "BZ"], - ["Marein", "BZ"], - ["Töll", "BZ"], - ["Tartsch", "BZ"], - ["Tabland", "BZ"], - ["Marlengo", "BZ"], - ["Marling", "BZ"], - ["Tschengls", "BZ"], - ["Glurns", "BZ"], - ["Goldrain", "BZ"], - ["Pedroß", "BZ"], - ["Freiberg Vinschga", "BZ"], - ["Tschars", "BZ"], - ["Katharinaberg", "BZ"], - ["Kastelbell", "BZ"], - ["Castelbello Ciardes", "BZ"], - ["Tol", "BZ"], - ["Unser Fra", "BZ"], - ["Montefranco In Venosta", "BZ"], - ["Tarsch", "BZ"], - ["Gries", "BZ"], - ["Ciardes", "BZ"], - ["Tubre", "BZ"], - ["Sluderno", "BZ"], - ["Santa Caterina", "BZ"], - ["Gomagoi", "BZ"], - ["Glorenza", "BZ"], - ["Parcines", "BZ"], - ["Partschins", "BZ"], - ["Senales", "BZ"], - ["Tel", "BZ"], - ["Montefranco", "BZ"], - ["Rabland", "BZ"], - ["Rabla'", "BZ"], - ["Madonna", "BZ"], - ["Trafoi", "BZ"], - ["Castelbello", "BZ"], - ["Martello", "BZ"], - ["Hinterkirch", "BZ"], - ["Morter", "BZ"], - ["Stilfs", "BZ"], - ["Rifair", "BZ"], - ["Martell", "BZ"], - ], - "39021": [ - ["Laces", "BZ"], - ["Latsch", "BZ"], - ["Morter", "BZ"], - ["Morte", "BZ"], - ["Goldrai", "BZ"], - ["Tarsc", "BZ"], - ["St. Martin am Kofl", "BZ"], - ["Coldrano", "BZ"], - ["Tarres", "BZ"], - ], - "39022": [ - ["Oberplars", "BZ"], - ["Vellau", "BZ"], - ["Aschbach", "BZ"], - ["Plars", "BZ"], - ["Lagundo", "BZ"], - ["Algund", "BZ"], - ], - "39023": [ - ["Laas", "BZ"], - ["Lasa", "BZ"], - ["Allitz", "BZ"], - ["Tana", "BZ"], - ["Tarnell", "BZ"], - ["Eyr", "BZ"], - ["Tanas", "BZ"], - ["Tschengel", "BZ"], - ["Cengles", "BZ"], - ["Oris", "BZ"], - ], - "39024": [ - ["Laatsc", "BZ"], - ["Marienberg", "BZ"], - ["Planol", "BZ"], - ["Planei", "BZ"], - ["Tartsc", "BZ"], - ["Schleis", "BZ"], - ["Matsc", "BZ"], - ["Mazia", "BZ"], - ["Laudes", "BZ"], - ["Burgusio", "BZ"], - ["Schlinig", "BZ"], - ["Burgeis", "BZ"], - ["Tarces", "BZ"], - ["Malles Venosta", "BZ"], - ["Mals", "BZ"], - ], - "39025": [["Plaus", "BZ"], ["Stabe", "BZ"], ["Stava", "BZ"], ["Naturno", "BZ"], ["Naturns", "BZ"]], - "39026": [ - ["Agums", "BZ"], - ["Montechiaro", "BZ"], - ["Prad", "BZ"], - ["Lichtenber", "BZ"], - ["Prato Allo Stelvio", "BZ"], - ], - "39027": [["Resia", "BZ"], ["Reschen", "BZ"], ["San Valentino Alla Muta", "BZ"], ["Curon Venosta", "BZ"]], - "39028": [ - ["Silandro", "BZ"], - ["Covelano", "BZ"], - ["Vezzano", "BZ"], - ["Schlanders", "BZ"], - ["Talatsch", "BZ"], - ["Vezzan", "BZ"], - ["Goefla", "BZ"], - ["Kortsch", "BZ"], - ["Göflan", "BZ"], - ], - "39029": [ - ["Trafo", "BZ"], - ["Gomago", "BZ"], - ["Stelvio", "BZ"], - ["Sulden", "BZ"], - ["Solda", "BZ"], - ["Trafoi", "BZ"], - ["Gomagoi", "BZ"], - ], - "39030": [ - ["San Lorenzo Di Sebato", "BZ"], - ["St. Sigmund", "BZ"], - ["Vallarga", "BZ"], - ["St. Lorenzen", "BZ"], - ["Niederolang", "BZ"], - ["St. Walburg i. Antholz", "BZ"], - ["Casteldarne", "BZ"], - ["St. Kassia", "BZ"], - ["Mühlen/Pfalzen", "BZ"], - ["St.Martin Gsie", "BZ"], - ["La Valle", "BZ"], - ["Obervintl", "BZ"], - ["Zwischenwasser", "BZ"], - ["Steinhaus", "BZ"], - ["Enneberg/Mareo", "BZ"], - ["St. Jakob in Ahrn", "BZ"], - ["St. Veit in Prags", "BZ"], - ["Chienes", "BZ"], - ["Kiens", "BZ"], - ["Issing", "BZ"], - ["Mühlbach b. Gais", "BZ"], - ["Pflaurenz", "BZ"], - ["Oberolang", "BZ"], - ["Greinwalden", "BZ"], - ["Kampill", "BZ"], - ["Untergsies", "BZ"], - ["St. Martin in Gsies", "BZ"], - ["Pichl", "BZ"], - ["Untermoi", "BZ"], - ["Margen", "BZ"], - ["Saalen", "BZ"], - ["Onach", "BZ"], - ["Gais", "BZ"], - ["Kasern", "BZ"], - ["St. Johann in Ahrn", "BZ"], - ["St.Vigi", "BZ"], - ["Ahrntal", "BZ"], - ["Oberrasen", "BZ"], - ["Niederrasen", "BZ"], - ["St. Peter in Ahrn", "BZ"], - ["Percha", "BZ"], - ["Vandoies", "BZ"], - ["Campil", "BZ"], - ["Valle Di Casies", "BZ"], - ["Mitterolang", "BZ"], - ["Hofern", "BZ"], - ["Valle Aurina", "BZ"], - ["Nasen", "BZ"], - ["Untervintl", "BZ"], - ["Ahornach", "BZ"], - ["Pikolein", "BZ"], - ["Perca", "BZ"], - ["Montal", "BZ"], - ["St. Vigil i. Enneberg", "BZ"], - ["Kolfuschg", "BZ"], - ["San Giovanni In Valle Aurina", "BZ"], - ["San Giuseppe", "BZ"], - ["St.Johann In Ahrnta", "BZ"], - ["St.Magdalen", "BZ"], - ["St. Martin in Thurn/S. Martin de Tor", "BZ"], - ["Longiaru'", "BZ"], - ["San Giacomo In Valle Aurina", "BZ"], - ["St.Jakob In Ahrnta", "BZ"], - ["St.Sigmun", "BZ"], - ["Moo", "BZ"], - ["Weitental", "BZ"], - ["Pedero", "BZ"], - ["Ehrenburg", "BZ"], - ["Ellen", "BZ"], - ["St. Magdalena i. G.", "BZ"], - ["Wengen/La Val", "BZ"], - ["Oberwielenbach", "BZ"], - ["Rasun Anterselva", "BZ"], - ["Wielenberg", "BZ"], - ["San Sigismondo", "BZ"], - ["Rasun Di Sotto", "BZ"], - ["Villa Ottone", "BZ"], - ["Stefansdorf", "BZ"], - ["Kurfar", "BZ"], - ["Longega", "BZ"], - ["Weißenbach", "BZ"], - ["San Vigilio", "BZ"], - ["Geiselsberg", "BZ"], - ["Anterselva Di Mezzo", "BZ"], - ["Tesselberg", "BZ"], - ["Niedervintl", "BZ"], - ["Vandoies Di Sotto", "BZ"], - ["Vintl", "BZ"], - ["Prettau", "BZ"], - ["Terenten", "BZ"], - ["Welschellen", "BZ"], - ["Rasun Di Sopra", "BZ"], - ["Terento", "BZ"], - ["Lappach", "BZ"], - ["Piccolino", "BZ"], - ["Rodeneck", "BZ"], - ["Sexten", "BZ"], - ["Sesto", "BZ"], - ["Cadipietra", "BZ"], - ["Pfalzen", "BZ"], - ["Falzes", "BZ"], - ["Pfunders", "BZ"], - ["Rein", "BZ"], - ["San Martino In Casies", "BZ"], - ["Uttenheim", "BZ"], - ["Selva Dei Molini", "BZ"], - ["Mühlwald", "BZ"], - ["Fundres", "BZ"], - ["Predoi", "BZ"], - ["Prags", "BZ"], - ["Braies", "BZ"], - ["Vandoies Di Sopra", "BZ"], - ["Valdaora Di Mezzo", "BZ"], - ["Unterplanken", "BZ"], - ["Valdaora Di Sotto", "BZ"], - ["Platten", "BZ"], - ["Olang", "BZ"], - ["Valdaora", "BZ"], - ["Luttach", "BZ"], - ["Antholz", "BZ"], - ["San Martino In Badia", "BZ"], - ["Lutago", "BZ"], - ["Pederoa", "BZ"], - ["Marebbe", "BZ"], - ["Santa Maddalena", "BZ"], - ], - "39031": [ - ["Luns", "BZ"], - ["Bruneck", "BZ"], - ["Riscone", "BZ"], - ["Reischach", "BZ"], - ["Aufhofen", "BZ"], - ["Teodone", "BZ"], - ["Dietenheim", "BZ"], - ["Stegen", "BZ"], - ["Brunico", "BZ"], - ["St. Georgen", "BZ"], - ], - "39032": [ - ["Kematen", "BZ"], - ["Mühlen i. Taufers", "BZ"], - ["Ahornac", "BZ"], - ["Moehlen In Taufer", "BZ"], - ["Taufers/Ahrntal", "BZ"], - ["Campo Tures", "BZ"], - ["Sand in Taufers", "BZ"], - ["Riva Di Tures", "BZ"], - ["Acereto", "BZ"], - ["Molini Di Tures", "BZ"], - ], - "39033": [["Kolfusch", "BZ"], ["Colfosco", "BZ"], ["Corvara In Badia", "BZ"], ["Corvara", "BZ"]], - "39034": [["Toblach", "BZ"], ["Dobbiaco", "BZ"], ["Aufkirchen", "BZ"], ["Wahlen", "BZ"]], - "39035": [["Monguelfo", "BZ"], ["Taisten", "BZ"], ["Tesido", "BZ"], ["Welsberg", "BZ"]], - "39036": [ - ["St. Kassian", "BZ"], - ["San Cassiano", "BZ"], - ["Stern", "BZ"], - ["Pedraces", "BZ"], - ["Badia", "BZ"], - ["Abtei/Badia", "BZ"], - ["La Villa", "BZ"], - ["Pedrace", "BZ"], - ], - "39037": [ - ["Mühlbach", "BZ"], - ["Vals", "BZ"], - ["Meransen", "BZ"], - ["Spinges", "BZ"], - ["Rodengo", "BZ"], - ["Rio Di Pusteria", "BZ"], - ], - "39038": [["Vierschach", "BZ"], ["Winnebach", "BZ"], ["San Candido", "BZ"]], - "39039": [["Villabassa", "BZ"], ["Niederdorf", "BZ"]], - "39040": [ - ["Stilves", "BZ"], - ["Penon", "BZ"], - ["Kastelruth", "BZ"], - ["Proves", "BZ"], - ["Campodazzo", "BZ"], - ["Mauls", "BZ"], - ["Villandro", "BZ"], - ["San Pietro", "BZ"], - ["Lajen", "BZ"], - ["Mareta", "BZ"], - ["Seis am Schlern", "BZ"], - ["Siusi", "BZ"], - ["Ridanna", "BZ"], - ["Barbiano", "BZ"], - ["Petersberg", "BZ"], - ["Olmi", "BZ"], - ["Casateia", "BZ"], - ["Tramin", "BZ"], - ["Stanghe", "BZ"], - ["Leone Santa Elisabetta", "BZ"], - ["Neustift", "BZ"], - ["Ratschings", "BZ"], - ["Laion", "BZ"], - ["Cauria", "BZ"], - ["Novacella", "BZ"], - ["Varna", "BZ"], - ["Rasa", "BZ"], - ["Salorno", "BZ"], - ["San Lugano", "BZ"], - ["Ridnaun", "BZ"], - ["Auer", "BZ"], - ["Ora", "BZ"], - ["Pfitsch", "BZ"], - ["Aldino", "BZ"], - ["Laag", "BZ"], - ["Ponte Gardena", "BZ"], - ["Racines", "BZ"], - ["Salurn", "BZ"], - ["Mareit", "BZ"], - ["Villanders", "BZ"], - ["Sciaves", "BZ"], - ["Luson", "BZ"], - ["Vahrn", "BZ"], - ["Mühlen/Truden", "BZ"], - ["Tanürz", "BZ"], - ["Villnöß", "BZ"], - ["Proveis", "BZ"], - ["Pfulters", "BZ"], - ["Söll", "BZ"], - ["Pflersch", "BZ"], - ["St. Michael/Kastelr.", "BZ"], - ["Graun/Unterl.", "BZ"], - ["Lüsen", "BZ"], - ["Flitt", "BZ"], - ["Garn", "BZ"], - ["Buchholz", "BZ"], - ["Entiklar", "BZ"], - ["Schmuders", "BZ"], - ["Kollmann", "BZ"], - ["Montan", "BZ"], - ["Hohlen", "BZ"], - ["Albions", "BZ"], - ["Castelrotto", "BZ"], - ["Naz Sciaves", "BZ"], - ["Pruno", "BZ"], - ["Feldthurns", "BZ"], - ["St.Peter Laje", "BZ"], - ["Pruno Di Stilves", "BZ"], - ["Velturno", "BZ"], - ["Gastei", "BZ"], - ["Trodena", "BZ"], - ["Magre' Sulla Strada Del Vino", "BZ"], - ["Redagno", "BZ"], - ["Laurein", "BZ"], - ["Mules", "BZ"], - ["Lauregno", "BZ"], - ["Alpe Di Siusi", "BZ"], - ["Raa", "BZ"], - ["Radein", "BZ"], - ["Loewenviertel Elisabethsiedlun", "BZ"], - ["Seiser Al", "BZ"], - ["Atzwang", "BZ"], - ["Truden", "BZ"], - ["St.Lugan", "BZ"], - ["Natz", "BZ"], - ["Stilfes", "BZ"], - ["Gfrill/Unterland", "BZ"], - ["Funes", "BZ"], - ["Fontanefredde", "BZ"], - ["Schabs", "BZ"], - ["Elzenbaum", "BZ"], - ["San Pietro Laion", "BZ"], - ["Valgiovo", "BZ"], - ["Seis Am Schler", "BZ"], - ["Termeno Sulla Strada Del Vino", "BZ"], - ["Kurtinig", "BZ"], - ["Waidbruck", "BZ"], - ["Jaufental", "BZ"], - ["Hole", "BZ"], - ["Cortaccia Sulla Strada Del Vino", "BZ"], - ["St.Pete", "BZ"], - ["Altrei", "BZ"], - ["Stange", "BZ"], - ["Kaltenbrunn", "BZ"], - ["Anterivo", "BZ"], - ["Naz", "BZ"], - ["Kurtatsch", "BZ"], - ["Tschövas", "BZ"], - ["Gschnon", "BZ"], - ["Aldein", "BZ"], - ["Klerant", "BZ"], - ["Weißenstein", "BZ"], - ["S. Lugano", "BZ"], - ["Innerpfitsch", "BZ"], - ["Margreid", "BZ"], - ["Schnauders", "BZ"], - ["Fennberg", "BZ"], - ["Tagusens", "BZ"], - ["Flans", "BZ"], - ["Pinzon", "BZ"], - ["St. Andrä_", "BZ"], - ["St. Oswald", "BZ"], - ["Afers", "BZ"], - ["Montagna", "BZ"], - ["Freins", "BZ"], - ["Rungg", "BZ"], - ["St. Leonhard", "BZ"], - ["Trens", "BZ"], - ["Telfes", "BZ"], - ["Spiluck", "BZ"], - ["St. Peter b. Lajen", "BZ"], - ["Schrambach", "BZ"], - ["Gossensaß", "BZ"], - ["St. Moritz b. Villanders", "BZ"], - ["Campo Di Trens", "BZ"], - ["Freienfeld", "BZ"], - ["Barbian", "BZ"], - ["Glen", "BZ"], - ["Cortina Sulla Strada Del Vino", "BZ"], - ["Viums", "BZ"], - ["Schalders", "BZ"], - ], - "39041": [["Gossensas", "BZ"], ["Brennero", "BZ"], ["Brenner", "BZ"], ["Colle Isarco", "BZ"]], - "39042": [ - ["Sant'Andrea In Monte", "BZ"], - ["Albes", "BZ"], - ["Neustift", "BZ"], - ["Brixen", "BZ"], - ["Eores", "BZ"], - ["St.Andr", "BZ"], - ["Sarns", "BZ"], - ["Albeins", "BZ"], - ["Zinggen", "BZ"], - ["Afer", "BZ"], - ["Pinzagen", "BZ"], - ["Bressanone", "BZ"], - ["Tschötsch", "BZ"], - ["Mellaun", "BZ"], - ["Elvas", "BZ"], - ["Milland", "BZ"], - ["Karnol", "BZ"], - ["Tils", "BZ"], - ], - "39043": [ - ["Teis", "BZ"], - ["Verdings", "BZ"], - ["Latzfons", "BZ"], - ["Gufidaun", "BZ"], - ["Gudon", "BZ"], - ["Chiusa", "BZ"], - ["Klausen", "BZ"], - ["Lazfons", "BZ"], - ], - "39044": [["Laghetti", "BZ"], ["Mazon", "BZ"], ["Neumarkt", "BZ"], ["Egna", "BZ"]], - "39045": [ - ["Oberau", "BZ"], - ["Mittewald", "BZ"], - ["Grasstein", "BZ"], - ["Fortezza", "BZ"], - ["Franzensfeste", "BZ"], - ], - "39046": [["St. Ulrich/Urtijei", "BZ"], ["Ortisei", "BZ"], ["Pufels", "BZ"], ["St. Jakob", "BZ"]], - "39047": [["Santa Cristina Val Gardena", "BZ"], ["St. Christina/S. Crestina -Gherdeina", "BZ"]], - "39048": [["Selva Di Val Gardena", "BZ"], ["Selva", "BZ"], ["Wolkenstein/Selva", "BZ"]], - "39049": [ - ["Flains", "BZ"], - ["Steckholz", "BZ"], - ["Thuins", "BZ"], - ["Kematen/Pfitsch", "BZ"], - ["Val Di Vizze", "BZ"], - ["Bahnho", "BZ"], - ["Tschöfs", "BZ"], - ["Prati", "BZ"], - ["Wiesen", "BZ"], - ["Sterzing", "BZ"], - ["Ried", "BZ"], - ["Vipiteno", "BZ"], - ["Stazione", "BZ"], - ], - "39050": [ - ["Valas", "BZ"], - ["Völs am Schlern", "BZ"], - ["Fie' Allo Sciliar", "BZ"], - ["Prösels", "BZ"], - ["Oberinn", "BZ"], - ["Breien", "BZ"], - ["Gummer", "BZ"], - ["Eggen", "BZ"], - ["Steinmannwald", "BZ"], - ["Unterrain/Eppan", "BZ"], - ["St. Justina/Eppan", "BZ"], - ["St. Nikolaus i. Eggen", "BZ"], - ["Missian", "BZ"], - ["San Nicolo' D'Ega", "BZ"], - ["Wangen", "BZ"], - ["Jenesien", "BZ"], - ["Lengstein", "BZ"], - ["Seit", "BZ"], - ["San Genesio Atesino", "BZ"], - ["Ums", "BZ"], - ["Perdonig", "BZ"], - ["St. Jakob/Bozen", "BZ"], - ["Tiers", "BZ"], - ["Karneid", "BZ"], - ["Steinegg", "BZ"], - ["Birchabruck", "BZ"], - ["Ponte Nova", "BZ"], - ["Flaas", "BZ"], - ["Blumau", "BZ"], - ["Raut", "BZ"], - ["St. Konstantin", "BZ"], - ["Untereggen", "BZ"], - ["Völser Aicha", "BZ"], - ["Innichen", "BZ"], - ["San Paolo", "BZ"], - ["Afing", "BZ"], - ["Unterglaning", "BZ"], - ["Girlan", "BZ"], - ["Nova Ponente", "BZ"], - ["St.Pauls", "BZ"], - ["Unterinn", "BZ"], - ["St. Pauls/Eppan", "BZ"], - ["Monte San Pietro", "BZ"], - ["Petersberg", "BZ"], - ["Deutschnofen", "BZ"], - ["Cologna Di Sotto", "BZ"], - ["Avigna", "BZ"], - ["Aica Di Fie'", "BZ"], - ["Tires", "BZ"], - ], - "39051": [["Branzoll", "BZ"], ["Bronzolo", "BZ"], ["Pfatten", "BZ"], ["Vadena", "BZ"]], - "39052": [ - ["St. Josef am See", "BZ"], - ["St. Nikolaus/Kaltern", "BZ"], - ["Oberplanitzing", "BZ"], - ["St. Anton", "BZ"], - ["Mitterdorf", "BZ"], - ["Altenburg", "BZ"], - ["Unterplanitzing", "BZ"], - ["Kaltern", "BZ"], - ["Caldaro Sulla Strada Del Vino", "BZ"], - ], - "39053": [ - ["Kardaun", "BZ"], - ["Collepietra", "BZ"], - ["Contrada Val D'Ega", "BZ"], - ["San Valentino In Campo", "BZ"], - ["Prato All'Isarco", "BZ"], - ["Eggenta", "BZ"], - ["Cornedo All'Isarco", "BZ"], - ["Cardano", "BZ"], - ["Kardaun/Bozen", "BZ"], - ["Steineg", "BZ"], - ["Bluma", "BZ"], - ["Gumme", "BZ"], - ], - "39054": [ - ["Gissmann", "BZ"], - ["Unterin", "BZ"], - ["Auna Inferiore", "BZ"], - ["Wange", "BZ"], - ["Collalbo", "BZ"], - ["Lengmoos", "BZ"], - ["Auna Di Sopra", "BZ"], - ["Oberi", "BZ"], - ["Sant'Ottilia In Renon", "BZ"], - ["Oberboze", "BZ"], - ["Ritten", "BZ"], - ["Lengstein Am Ritte", "BZ"], - ["Renon", "BZ"], - ["Vanga", "BZ"], - ["Klobenstein", "BZ"], - ["Soprabolzano", "BZ"], - ], - "39055": [ - ["Laives", "BZ"], - ["San Giacomo Di Laives", "BZ"], - ["San Giacomo", "BZ"], - ["Leifers", "BZ"], - ["Seit Bei Leifer", "BZ"], - ["La Costa Di Laives", "BZ"], - ["La Costa", "BZ"], - ["Pineta", "BZ"], - ["St.Jakob Bei Boze", "BZ"], - ], - "39056": [ - ["Carezza Al Lago", "BZ"], - ["Karersee", "BZ"], - ["Carezza", "BZ"], - ["Welschnofen", "BZ"], - ["Nova Levante", "BZ"], - ], - "39057": [ - ["Cornaiano", "BZ"], - ["Appiano Sulla Strada Del Vino", "BZ"], - ["Girla", "BZ"], - ["Eppan", "BZ"], - ["San Michele Appiano", "BZ"], - ["San Michele", "BZ"], - ["Montiggl", "BZ"], - ["Frangar", "BZ"], - ["St. Michael/Eppan", "BZ"], - ["Frangarto", "BZ"], - ], - "39058": [ - ["Pens", "BZ"], - ["Nordhei", "BZ"], - ["Sarentino", "BZ"], - ["Asten", "BZ"], - ["Riedelsberg", "BZ"], - ["Bundschen", "BZ"], - ["Weißenbach/Sarntal", "BZ"], - ["Reinswald", "BZ"], - ["Durnholz", "BZ"], - ["Villa", "BZ"], - ["Astfeld-Nordheim", "BZ"], - ["Sarnthein", "BZ"], - ["Campolasta", "BZ"], - ["Aberstückl", "BZ"], - ], - "39059": [["Wolfsgruben", "BZ"], ["Oberbozen", "BZ"]], - "39100": [ - ["Kampenn", "BZ"], - ["Glaning", "BZ"], - ["Sigmundskro", "BZ"], - ["Castelfirmiano", "BZ"], - ["Oberau/Bozen", "BZ"], - ["Signat", "BZ"], - ["Rentsch", "BZ"], - ["Bozen", "BZ"], - ["Bolzano", "BZ"], - ], - "38010": [ - ["Faedo", "TN"], - ["Campodenno", "TN"], - ["Spormaggiore", "TN"], - ["Malgolo", "TN"], - ["Cavedago", "TN"], - ["Sporminore", "TN"], - ["Ronzone", "TN"], - ["Denno", "TN"], - ["Dambel", "TN"], - ["Fai Della Paganella", "TN"], - ["Andalo", "TN"], - ["Vigo Di Ton", "TN"], - ["Casez", "TN"], - ["San Michele All'Adige", "TN"], - ["Sanzeno", "TN"], - ["San Romedio", "TN"], - ["Banco", "TN"], - ["Ruffre'", "TN"], - ["Ton", "TN"], - ["Sfruz", "TN"], - ["Romeno", "TN"], - ["Cima Paganella", "TN"], - ["Vigo Anaunia", "TN"], - ["Tavon", "TN"], - ], - "38011": [["Seio", "TN"], ["Amblar", "TN"], ["Don", "TN"], ["Sarnonico", "TN"], ["Cavareno", "TN"]], - "38012": [ - ["Segno", "TN"], - ["Coredo", "TN"], - ["Vervò", "TN"], - ["Smarano", "TN"], - ["Predaia", "TN"], - ["Tres", "TN"], - ["Dermulo", "TN"], - ["Mollaro", "TN"], - ["Taio", "TN"], - ], - "38013": [["Tret", "TN"], ["Malosco", "TN"], ["Vasio", "TN"], ["Fondo", "TN"]], - "38015": [["Lavis", "TN"], ["Nave San Felice", "TN"], ["Pressano", "TN"]], - "38016": [["Mezzocorona", "TN"]], - "38017": [["Mezzolombardo", "TN"]], - "38018": [["Molveno", "TN"]], - "38019": [["Tassullo", "TN"], ["Tuenno", "TN"], ["Nanno", "TN"]], - "38020": [ - ["Deggiano", "TN"], - ["Mocenigo", "TN"], - ["Pellizzano", "TN"], - ["Cloz", "TN"], - ["Commezzadura", "TN"], - ["Bresimo", "TN"], - ["Rabbi", "TN"], - ["Rumo", "TN"], - ["Marcena", "TN"], - ["Castelfondo", "TN"], - ["Mestriago", "TN"], - ["Mezzana", "TN"], - ["Pracorno", "TN"], - ["Cis", "TN"], - ], - "38021": [["Brez", "TN"]], - "38022": [["Cavizzana", "TN"], ["Caldes", "TN"], ["Bozzana", "TN"]], - "38023": [["Mechel", "TN"], ["Caltron", "TN"], ["Cles", "TN"]], - "38024": [ - ["Cogolo", "TN"], - ["Cogolo In Val Di Pejo", "TN"], - ["Celledizzo", "TN"], - ["Celedizzo", "TN"], - ["Peio", "TN"], - ], - "38025": [["Monclassico", "TN"], ["Dimaro", "TN"]], - "38026": [["Fucine Di Ossana", "TN"], ["Ossana", "TN"], ["Cusiano", "TN"], ["Fucine", "TN"]], - "38027": [["Male'", "TN"], ["Terzolas", "TN"], ["Croviana", "TN"]], - "38028": [["Tregiovo", "TN"], ["Romallo", "TN"], ["Revo'", "TN"], ["Cagno'", "TN"]], - "38029": [["Passo Del Tonale", "TN"], ["Fraviano", "TN"], ["Vermiglio", "TN"]], - "38030": [ - ["Soraga", "TN"], - ["Daiano", "TN"], - ["Molina", "TN"], - ["Castello Di Fiemme", "TN"], - ["Varena", "TN"], - ["Molina Di Fiemme", "TN"], - ["Stramentizzo", "TN"], - ["Capriana", "TN"], - ["Rovere' Della Luna", "TN"], - ["Giovo", "TN"], - ["Panchia'", "TN"], - ["Castello Molina Di Fiemme", "TN"], - ["Palu'", "TN"], - ["Stramentizzo Nuovo", "TN"], - ["Verla", "TN"], - ["Ziano Di Fiemme", "TN"], - ["Campestrin", "TN"], - ["Mazzin", "TN"], - ], - "38031": [["Campitello Di Fassa", "TN"]], - "38032": [["Sass Pordoi", "TN"], ["Alba Di Canazei", "TN"], ["Penia", "TN"], ["Canazei", "TN"]], - "38033": [["Carano", "TN"], ["Cavalese", "TN"], ["Masi Di Cavalese", "TN"]], - "38034": [["Lisignago", "TN"], ["Cembra", "TN"]], - "38035": [["Forno Di Fiemme", "TN"], ["Moena", "TN"], ["Forno", "TN"]], - "38036": [["Pera", "TN"], ["Pera Di Fassa", "TN"], ["Pozza Di Fassa", "TN"]], - "38037": [["Paneveggio", "TN"], ["Predazzo", "TN"], ["Passo Rolle", "TN"], ["Bellamonte", "TN"]], - "38038": [["Tesero", "TN"]], - "38039": [["Passo Costalunga", "TN"], ["Costalunga", "TN"], ["Vigo Di Fassa", "TN"]], - "38040": [ - ["Fornace", "TN"], - ["Lases", "TN"], - ["Valfloriana", "TN"], - ["Lona Lases", "TN"], - ["Ravina", "TN"], - ["Luserna", "TN"], - ["Lona", "TN"], - ], - "38041": [["Albiano", "TN"]], - "38042": [ - ["Campolongo", "TN"], - ["Faida Di Pine'", "TN"], - ["Faida", "TN"], - ["Rizzolaga", "TN"], - ["Baselga Di Pine'", "TN"], - ["Montagnaga", "TN"], - ["San Mauro", "TN"], - ], - "38043": [["Regnana", "TN"], ["Bedollo", "TN"], ["Brusago", "TN"]], - "38045": [["Civezzano", "TN"], ["Seregnano", "TN"]], - "38046": [["Gionghi", "TN"], ["Lavarone Cappella", "TN"], ["Lavarone", "TN"], ["Cappella", "TN"]], - "38047": [["Valcava", "TN"], ["Sevignano", "TN"], ["Quaras", "TN"], ["Segonzano", "TN"]], - "38048": [["Sover", "TN"]], - "38049": [ - ["Vigolo Vattaro", "TN"], - ["Bosentino", "TN"], - ["Centa San Nicolo'", "TN"], - ["Vattaro", "TN"], - ["Migazzone", "TN"], - ], - "38050": [ - ["Calceranica Al Lago", "TN"], - ["Ospedaletto", "TN"], - ["Torcegno", "TN"], - ["Pieve Tesino", "TN"], - ["Fierozzo", "TN"], - ["Marter", "TN"], - ["Prade", "TN"], - ["Tenna", "TN"], - ["Sagron Mis", "TN"], - ["Bieno", "TN"], - ["Monte Di Mezzo", "TN"], - ["Carzano", "TN"], - ["Sant'Orsola Terme", "TN"], - ["Telve Di Sopra", "TN"], - ["Santa Brigida", "TN"], - ["Ronchi Valsugana", "TN"], - ["Canal San Bovo", "TN"], - ["Imer", "TN"], - ["Castelnuovo", "TN"], - ["Novaledo", "TN"], - ["Scurelle", "TN"], - ["Gobbera", "TN"], - ["Cinte Tesino", "TN"], - ["Mezzano", "TN"], - ["Palu' Del Fersina", "TN"], - ["Caoria", "TN"], - ["Frassilongo", "TN"], - ["San Francesco", "TN"], - ["Telve", "TN"], - ["Telve Di Valsugana", "TN"], - ["Roncegno", "TN"], - ], - "38051": [["Borgo Valsugana", "TN"], ["Borgo", "TN"], ["Olle", "TN"]], - "38052": [["Caldonazzo", "TN"]], - "38053": [["Castello Tesino", "TN"]], - "38054": [ - ["Siror", "TN"], - ["San Martino Di Castrozza", "TN"], - ["Transacqua", "TN"], - ["Fiera Di Primiero", "TN"], - ["Tonadico", "TN"], - ], - "38055": [ - ["Tezze", "TN"], - ["Selva Di Grigno", "TN"], - ["Tezze Val Sugana", "TN"], - ["Selva", "TN"], - ["Grigno", "TN"], - ], - "38056": [["Barco", "TN"], ["Levico Terme", "TN"]], - "38057": [ - ["Pergine Valsugana", "TN"], - ["Vignola", "TN"], - ["Falesina", "TN"], - ["Costasavina", "TN"], - ["Susa'", "TN"], - ["Canezza", "TN"], - ["San Cristoforo", "TN"], - ["Viarago", "TN"], - ["Roncogno", "TN"], - ["Canale", "TN"], - ["Vignola Falesina", "TN"], - ["Serso", "TN"], - ["Vigalzano", "TN"], - ["San Cristoforo Al Lago", "TN"], - ["Ischia Trentina", "TN"], - ["Canzolino", "TN"], - ["Madrano", "TN"], - ], - "38059": [ - ["Ivano Fracena", "TN"], - ["Villa Agnedo", "TN"], - ["Strigno", "TN"], - ["Spera", "TN"], - ["Samone", "TN"], - ["Agnedo", "TN"], - ], - "38060": [ - ["Tenno", "TN"], - ["Pieve Di Ledro", "TN"], - ["Valmorbia", "TN"], - ["Corte", "TN"], - ["Ronzo", "TN"], - ["Riva Di Vallarsa", "TN"], - ["Gavazzo Nuova", "TN"], - ["Castellano", "TN"], - ["Ronzo Chienis", "TN"], - ["Chienis", "TN"], - ["Pedersano", "TN"], - ["Garniga Terme", "TN"], - ["Castione", "TN"], - ["Villa Lagarina", "TN"], - ["Anghebeni", "TN"], - ["Pregasina", "TN"], - ["Anghebeni Di Vallarsa", "TN"], - ["Cimone", "TN"], - ["Isera", "TN"], - ["Nogaredo", "TN"], - ["Besenello", "TN"], - ["Cornale'", "TN"], - ["Valduga", "TN"], - ["Tiarno Di Sotto", "TN"], - ["Bezzecca", "TN"], - ["Molina Di Ledro", "TN"], - ["Tiarno Di Sopra", "TN"], - ["Nomi", "TN"], - ["Cologna", "TN"], - ["Brentonico", "TN"], - ["Volano", "TN"], - ["Terragnolo", "TN"], - ["Raossi", "TN"], - ["Raossi Di Vallarsa", "TN"], - ["Romagnano", "TN"], - ["Concei", "TN"], - ["Aldeno", "TN"], - ["Vallarsa", "TN"], - ["Crosano", "TN"], - ["Pomarolo", "TN"], - ], - "38061": [ - ["Santa Margherita", "TN"], - ["Pilcante", "TN"], - ["Serravalle All'Adige", "TN"], - ["Ala", "TN"], - ["Chizzola", "TN"], - ["Serravalle", "TN"], - ["Sega Dei Lessini", "TN"], - ], - "38062": [["Oltresarca", "TN"], ["Arco", "TN"], ["Bolognano", "TN"], ["San Giorgio", "TN"], ["Vignole", "TN"]], - "38063": [["Sabbionara", "TN"], ["Borghetto All'Adige", "TN"], ["Avio", "TN"]], - "38064": [ - ["Mezzomonte Di Sotto", "TN"], - ["Folgaria", "TN"], - ["Mezzomonte", "TN"], - ["Nosellari", "TN"], - ["Carbonare Di Folgaria", "TN"], - ["Serrada", "TN"], - ["Serrada Di Folgaria", "TN"], - ["San Sebastiano", "TN"], - ["Carbonare", "TN"], - ["Mezzomonte Di Sopra", "TN"], - ], - "38065": [ - ["Manzano", "TN"], - ["Besagno", "TN"], - ["Sano", "TN"], - ["Valle San Felice", "TN"], - ["Mori", "TN"], - ["Pannone", "TN"], - ], - "38066": [["Varone", "TN"], ["Riva Del Garda", "TN"]], - "38067": [["Mezzolago", "TN"], ["Biacesa Di Ledro", "TN"], ["Ledro", "TN"]], - "38068": [ - ["Rovereto", "TN"], - ["Borgo Sacco", "TN"], - ["Mori Ferrovia", "TN"], - ["Trambileno", "TN"], - ["Lizzanella", "TN"], - ["Marco", "TN"], - ], - "38069": [["Nago Torbole", "TN"], ["Torbole", "TN"], ["Nago", "TN"]], - "38070": [["Tavodo", "TN"], ["Villa Banale", "TN"], ["Lomaso", "TN"], ["Stenico", "TN"]], - "38071": [ - ["Larido", "TN"], - ["Marazzone", "TN"], - ["Bleggio Inferiore", "TN"], - ["Bleggio Superiore", "TN"], - ["Bivedo", "TN"], - ], - "38073": [["Vigo", "TN"], ["Vigo Cavedine", "TN"], ["Stravino", "TN"], ["Cavedine", "TN"]], - "38074": [["Drena", "TN"], ["Ceniga", "TN"], ["Dro", "TN"], ["Pietramurata", "TN"]], - "38075": [["Ballino", "TN"], ["Fiave'", "TN"]], - "38076": [ - ["Castel Madruzzo", "TN"], - ["Calavino", "TN"], - ["Lasino", "TN"], - ["Sarche", "TN"], - ["Madruzzo", "TN"], - ], - "38077": [ - ["Comano Terme", "TN"], - ["Vigo Lomaso", "TN"], - ["Lundo", "TN"], - ["Bagni Di Comano", "TN"], - ["Ponte Arche", "TN"], - ], - "38078": [ - ["Dorsino", "TN"], - ["Moline", "TN"], - ["San Lorenzo In Banale", "TN"], - ["Moline Di Banale", "TN"], - ["San Lorenzo Dorsino", "TN"], - ], - "38079": [["Bolbeno", "TN"], ["Zuclo", "TN"], ["Tione Di Trento", "TN"], ["Pelugo", "TN"], ["Saone", "TN"]], - "38080": [ - ["Baitoni", "TN"], - ["Carisolo", "TN"], - ["Bocenago", "TN"], - ["Bondone", "TN"], - ["Strembo", "TN"], - ["Iavre' Vigo Rendena", "TN"], - ["Caderzone", "TN"], - ], - "38082": [["Castel Condino", "TN"]], - "38083": [["Condino", "TN"], ["Brione", "TN"], ["Cimego", "TN"]], - "38085": [["Pieve Di Bono", "TN"], ["Creto", "TN"], ["Prezzo", "TN"]], - "38086": [ - ["Massimeno", "TN"], - ["Sant'Antonio Di Mavignola", "TN"], - ["Pinzolo", "TN"], - ["Madonna Di Campiglio", "TN"], - ["Giustino", "TN"], - ], - "38087": [["Bondo", "TN"], ["Lardaro", "TN"], ["Roncone", "TN"], ["Breguzzo", "TN"]], - "38088": [["Spiazzo Rendena", "TN"], ["Spiazzo", "TN"]], - "38089": [["Storo", "TN"], ["Darzo", "TN"], ["Lodrone", "TN"]], - "38091": [["Praso", "TN"], ["Bersone", "TN"], ["Valdaone", "TN"], ["Daone", "TN"]], - "38092": [["Grauno", "TN"], ["Grumes", "TN"], ["Valda", "TN"], ["Faver", "TN"]], - "38093": [["Terres", "TN"], ["Flavon", "TN"], ["Cunevo", "TN"]], - "38094": [ - ["Verdesina", "TN"], - ["Villa Rendena", "TN"], - ["Vigo Rendena", "TN"], - ["Iavre'", "TN"], - ["Dare'", "TN"], - ], - "38095": [["Ragoli", "TN"], ["Montagne", "TN"], ["Preore", "TN"]], - "38096": [["Vezzano", "TN"], ["Terlago", "TN"], ["Margone", "TN"], ["Ranzo", "TN"], ["Padergnone", "TN"]], - "38097": [["Zambana", "TN"], ["Nave San Rocco", "TN"]], - "38100": [ - ["Gardolo Di Mezzo", "TN"], - ["Trento", "TN"], - ["Gardolo", "TN"], - ["Sopramonte", "TN"], - ["Baselga Del Bondone", "TN"], - ["Vigo Meano", "TN"], - ["Cadine", "TN"], - ["Cognola", "TN"], - ["Sardagna", "TN"], - ["Vaneze", "TN"], - ["Martignano", "TN"], - ["Baselga Di Vezzano", "TN"], - ["Vaneze Di Bondone", "TN"], - ["Valsorda", "TN"], - ["Villamontagna", "TN"], - ["Meano", "TN"], - ["Vigolo Baselga", "TN"], - ["Vela", "TN"], - ["Villazzano", "TN"], - ["Montevaccino", "TN"], - ["Povo", "TN"], - ["Mattarello", "TN"], - ], - "38121": [["Trento", "TN"]], - "06010": [["Citerna", "PG"], ["Monte Santa Maria Tiberina", "PG"], ["Lippiano", "PG"], ["Fighille", "PG"]], - "06012": [ - ["Riosecco", "PG"], - ["Muccignano", "PG"], - ["Cinquemiglia", "PG"], - ["Morra", "PG"], - ["Piosina", "PG"], - ["Cerbara", "PG"], - ["San Maiano", "PG"], - ["Citta' Di Castello", "PG"], - ["San Secondo", "PG"], - ["Lerchi", "PG"], - ["Promano", "PG"], - ["Fraccano", "PG"], - ], - "06014": [["Montone", "PG"]], - "06016": [["Selci", "PG"], ["San Giustino", "PG"], ["Lama", "PG"]], - "06018": [ - ["Pistrino", "PG"], - ["Petroia", "PG"], - ["Lugnano", "PG"], - ["Badia Petroia", "PG"], - ["San Leo Bastia", "PG"], - ["Petrelle", "PG"], - ["Trestina", "PG"], - ["Lugnano Citta' Di Castello", "PG"], - ], - "06019": [ - ["Verna", "PG"], - ["Montecastelli Umbro", "PG"], - ["Preggio", "PG"], - ["Calzolaro", "PG"], - ["Montecastelli", "PG"], - ["Pierantonio", "PG"], - ["Niccone", "PG"], - ["Umbertide", "PG"], - ], - "06020": [["Branca", "PG"], ["Torre Dei Calzolari", "PG"]], - "06021": [["Costacciaro", "PG"], ["Villa Col De' Canali", "PG"], ["Villa Col Dei Canali", "PG"]], - "06022": [ - ["Fossato Di Vico Stazione", "PG"], - ["Purello", "PG"], - ["Osteria Del Gatto", "PG"], - ["Fossato Di Vico", "PG"], - ], - "06023": [ - ["San Pellegrino Di Gualdo Tadino", "PG"], - ["Gualdo Tadino", "PG"], - ["San Pellegrino", "PG"], - ["Cerqueto", "PG"], - ["Morano", "PG"], - ["Morano Madonnuccia", "PG"], - ["Pieve Di Compresseto", "PG"], - ], - "06024": [ - ["Gubbio", "PG"], - ["Mocaiana", "PG"], - ["Ponte D'Assi", "PG"], - ["Stazione Di Padule", "PG"], - ["San Benedetto Vecchio", "PG"], - ["Torre Calzolari", "PG"], - ["Scritto", "PG"], - ["Padule", "PG"], - ["Caicambiucci", "PG"], - ["Semonte", "PG"], - ["Mocaiana Stazione", "PG"], - ["Colpalombo", "PG"], - ["Casamorcia", "PG"], - ["Cipolleto", "PG"], - ["Camporeggiano", "PG"], - ], - "06025": [["Gaifana", "PG"], ["Nocera Umbra", "PG"], ["Molinaccio", "PG"]], - "06026": [["Pietralunga", "PG"]], - "06027": [["Scheggia E Pascelupo", "PG"], ["Scheggia", "PG"], ["Isola Fossara", "PG"], ["Pascelupo", "PG"]], - "06028": [["Sigillo", "PG"]], - "06029": [["Casa Castalda", "PG"], ["Valfabbrica", "PG"]], - "06030": [ - ["Orsano E Cammoro", "PG"], - ["Cammoro", "PG"], - ["Sellano", "PG"], - ["Giano Dell'Umbria", "PG"], - ["Valtopina", "PG"], - ["Bastardo", "PG"], - ], - "06031": [["Bevagna", "PG"], ["Cantalupo", "PG"]], - "06033": [["Cannara", "PG"]], - "06034": [ - ["Scafali", "PG"], - ["Sant'Eraclio", "PG"], - ["Annifo", "PG"], - ["Foligno", "PG"], - ["Capodacqua", "PG"], - ["Fiamenga", "PG"], - ["Rasiglia", "PG"], - ["Casenove", "PG"], - ["Verchiano", "PG"], - ["Scopoli", "PG"], - ["Colfiorito", "PG"], - ["Uppello", "PG"], - ["San Giovanni Profiamma", "PG"], - ["Scanzano", "PG"], - ["Sterpete", "PG"], - ["Pale", "PG"], - ["Perticani", "PG"], - ["Pieve Fanonica", "PG"], - ["Belfiore", "PG"], - ], - "06035": [ - ["San Terenziano", "PG"], - ["Collesecco", "PG"], - ["Pozzo Di Gualdo Cattaneo", "PG"], - ["Pozzo", "PG"], - ["Gualdo Cattaneo", "PG"], - ["Marcellano", "PG"], - ], - "06036": [["Montefalco", "PG"], ["Madonna Della Stella", "PG"], ["San Marco Di Montefalco", "PG"]], - "06038": [["Spello", "PG"], ["Capitan Loreto", "PG"]], - "06039": [ - ["Trevi", "PG"], - ["Cannaiola", "PG"], - ["Santa Maria In Valle", "PG"], - ["Matigge", "PG"], - ["Li Celli", "PG"], - ["Borgo Di Trevi", "PG"], - ], - "06040": [ - ["Piedipaterno", "PG"], - ["Piedipaterno Sul Nera", "PG"], - ["Ceselli", "PG"], - ["Sant'Anatolia Di Narco", "PG"], - ["Scheggino", "PG"], - ["Poggiodomo", "PG"], - ["Vallo Di Nera", "PG"], - ], - "06041": [["Borgo Cerreto", "PG"], ["Triponzo", "PG"], ["Cerreto Di Spoleto", "PG"], ["Bugiano", "PG"]], - "06042": [["Campello Sul Clitunno", "PG"]], - "06043": [["Cascia", "PG"], ["Chiavano", "PG"], ["Maltignano Di Cascia", "PG"]], - "06044": [["Castel Ritaldi", "PG"], ["Bruna", "PG"]], - "06045": [["Monteleone Di Spoleto", "PG"]], - "06046": [ - ["Ancarano", "PG"], - ["Agriano", "PG"], - ["San Pellegrino Di Norcia", "PG"], - ["Serravalle Di Norcia", "PG"], - ["Norcia", "PG"], - ["Serravalle", "PG"], - ["Castelluccio", "PG"], - ["Savelli Di Norcia", "PG"], - ], - "06047": [ - ["Abeto", "PG"], - ["Belforte", "PG"], - ["Todiano", "PG"], - ["Casali Belforte", "PG"], - ["Preci", "PG"], - ["Piedivalle", "PG"], - ["Roccanolfi", "PG"], - ], - "06049": [ - ["Montemartano", "PG"], - ["Baiano Di Spoleto", "PG"], - ["Bazzano Inferiore", "PG"], - ["Cortaccione", "PG"], - ["San Brizio", "PG"], - ["Maiano", "PG"], - ["Eggi", "PG"], - ["Morgnano", "PG"], - ["San Martino In Trignano", "PG"], - ["San Giacomo Di Spoleto", "PG"], - ["Terzo La Pieve", "PG"], - ["Madonna Di Baiano", "PG"], - ["Sant'Angelo In Mercole", "PG"], - ["Beroide", "PG"], - ["Spoleto", "PG"], - ["San Giovanni Di Baiano", "PG"], - ["San Giacomo", "PG"], - ["Strettura", "PG"], - ], - "06050": [["Collazzone", "PG"], ["Collepepe", "PG"], ["Piedicolle", "PG"], ["Casalalta", "PG"]], - "06051": [["Ripabianca", "PG"], ["Casalina", "PG"]], - "06053": [ - ["San Nicolo' Di Celle", "PG"], - ["San Niccolo' Di Celle", "PG"], - ["Deruta", "PG"], - ["Ponte Nuovo", "PG"], - ["Sant'Angelo Di Celle", "PG"], - ], - "06054": [["Fratta Todina", "PG"]], - "06055": [ - ["Papiano", "PG"], - ["San Valentino Della Collina", "PG"], - ["Marsciano", "PG"], - ["San Valentino", "PG"], - ], - "06056": [["Colpetrazzo", "PG"], ["Villa San Faustino", "PG"], ["Viepri", "PG"], ["Massa Martana", "PG"]], - "06057": [["Monte Castello Di Vibio", "PG"]], - "06059": [ - ["Todi", "PG"], - ["Camerata", "PG"], - ["Montenero Di Todi", "PG"], - ["Pantalla", "PG"], - ["Montenero", "PG"], - ["Canonica", "PG"], - ["Collevalenza", "PG"], - ["Izzalini", "PG"], - ["Ponterio", "PG"], - ["Ilci", "PG"], - ["Pontecuti", "PG"], - ["Pian Di San Martino", "PG"], - ["Monticello", "PG"], - ], - "06060": [["Villastrada Umbra", "PG"], ["Lisciano Niccone", "PG"], ["Paciano", "PG"]], - "06061": [ - ["Pozzuolo", "PG"], - ["Villastrada", "PG"], - ["Macchie", "PG"], - ["Castiglione Del Lago", "PG"], - ["Gioiella", "PG"], - ["Panicarola", "PG"], - ["Petrignano Del Lago", "PG"], - ["Sanfatucchio", "PG"], - ["Porto", "PG"], - ], - "06062": [ - ["Citta' Della Pieve", "PG"], - ["Salci", "PG"], - ["Po Bandino", "PG"], - ["Ponticelli", "PG"], - ["Ponticelli Citta' Della Pieve", "PG"], - ["Moiano", "PG"], - ], - "06063": [ - ["Soccorso", "PG"], - ["Agello", "PG"], - ["Villa", "PG"], - ["San Savino", "PG"], - ["San Feliciano", "PG"], - ["Sant'Arcangelo Di Magione", "PG"], - ["Magione", "PG"], - ["Sant'Arcangelo", "PG"], - ], - "06064": [["Panicale", "PG"]], - "06065": [["Castel Rigone", "PG"], ["Passignano Sul Trasimeno", "PG"]], - "06066": [["Pietrafitta", "PG"], ["Piegaro", "PG"], ["Castiglion Fosco", "PG"]], - "06068": [["Tavernelle", "PG"]], - "06069": [["Tuoro Sul Trasimeno", "PG"], ["Borghetto Di Tuoro", "PG"], ["Isola Maggiore", "PG"]], - "06070": [["Ellera", "PG"], ["San Mariano", "PG"], ["Ellera Umbra", "PG"]], - "06072": [ - ["Mercatello", "PG"], - ["San Biagio Della Valle", "PG"], - ["Migliano", "PG"], - ["Pieve Caina", "PG"], - ["Compignano", "PG"], - ["Castiglione Della Valle", "PG"], - ["Spina", "PG"], - ["Badiola", "PG"], - ], - "06073": [["Corciano", "PG"], ["Mantignana", "PG"]], - "06081": [ - ["Rivotorto", "PG"], - ["Assisi", "PG"], - ["Castelnuovo", "PG"], - ["Tordandrea", "PG"], - ["Santa Maria Degli Angeli", "PG"], - ["Assisi Santuario", "PG"], - ["Viole Di Assisi", "PG"], - ["Palazzo D'Assisi", "PG"], - ["Castelnuovo D'Assisi", "PG"], - ["Petrignano D'Assisi", "PG"], - ["San Vitale", "PG"], - ["Petrignano", "PG"], - ["Palazzo", "PG"], - ["Torchiagina", "PG"], - ], - "06083": [ - ["Costano", "PG"], - ["Ospedalicchio Di Bastia Umbra", "PG"], - ["Ospedalicchio", "PG"], - ["Bastia", "PG"], - ], - "06084": [["Bettona", "PG"], ["Passaggio Di Bettona", "PG"], ["Passaggio", "PG"]], - "06089": [["Torgiano", "PG"], ["Ponte Nuovo", "PG"], ["Brufa", "PG"], ["Fornaci", "PG"]], - "06100": [["Perugia", "PG"]], - "06121": [["Perugia", "PG"]], - "06122": [["Perugia", "PG"]], - "06123": [["Perugia", "PG"]], - "06124": [["Perugia", "PG"], ["Perugia Stazione", "PG"]], - "06125": [["Perugia", "PG"]], - "06126": [["Perugia", "PG"], ["Montecorneo", "PG"], ["Montebello", "PG"]], - "06127": [["Ferro Di Cavallo", "PG"], ["Perugia", "PG"]], - "06128": [["Perugia", "PG"], ["Ponte Della Pietra", "PG"]], - "06129": [["Prepo", "PG"], ["Perugia", "PG"]], - "06131": [["Perugia", "PG"], ["San Marco", "PG"]], - "06132": [["San Sisto", "PG"], ["Perugia", "PG"]], - "06134": [["Perugia", "PG"]], - "05010": [ - ["San Venanzo", "TR"], - ["Porano", "TR"], - ["Montegabbione", "TR"], - ["Parrano", "TR"], - ["Ospedaletto", "TR"], - ["Poggio Aquilone", "TR"], - ["Pornello", "TR"], - ["San Vito In Monte", "TR"], - ["Collelungo", "TR"], - ["Ripalvella", "TR"], - ], - "05011": [["Allerona Stazione", "TR"], ["Stazione Di Allerona", "TR"], ["Allerona", "TR"]], - "05012": [["Attigliano", "TR"]], - "05013": [["Castel Giorgio", "TR"]], - "05014": [["Castel Viscardo", "TR"], ["Monterubiaglio", "TR"], ["Pianlungo", "TR"]], - "05015": [["Fabro Scalo", "TR"], ["Fabro", "TR"], ["Carnaiola", "TR"]], - "05016": [["Sala", "TR"], ["Ficulle", "TR"]], - "05017": [["Santa Maria", "TR"], ["Monteleone D'Orvieto", "TR"]], - "05018": [ - ["Sugano", "TR"], - ["Ciconia", "TR"], - ["Corbara", "TR"], - ["Orvieto", "TR"], - ["Prodo", "TR"], - ["Canale Vecchio", "TR"], - ["Morrano Vecchio", "TR"], - ["Orvieto Stazione", "TR"], - ["Canale Nuovo", "TR"], - ["Sferracavallo", "TR"], - ["Titignano", "TR"], - ["Canale", "TR"], - ["Morrano Nuovo", "TR"], - ["Gabelletta", "TR"], - ["Morrano", "TR"], - ["Orvieto Scalo", "TR"], - ], - "05020": [ - ["Santa Restituta", "TR"], - ["Melezzole", "TR"], - ["Lugnano In Teverina", "TR"], - ["Dunarobba", "TR"], - ["Montecchio", "TR"], - ["Tenaglie", "TR"], - ["Sismano", "TR"], - ["Avigliano Umbro", "TR"], - ["Alviano", "TR"], - ], - "05021": [["Casigliano", "TR"], ["Acquasparta", "TR"], ["Portaria", "TR"]], - "05022": [ - ["Porchiano Del Monte", "TR"], - ["Montecampano", "TR"], - ["Porchiano", "TR"], - ["Amelia", "TR"], - ["Macchie", "TR"], - ["Fornole", "TR"], - ], - "05023": [["Civitella Del Lago", "TR"], ["Acqualoreto", "TR"], ["Baschi", "TR"], ["Morre", "TR"]], - "05024": [["Giove", "TR"]], - "05025": [["Guardea", "TR"]], - "05026": [ - ["Collesecco", "TR"], - ["Montecastrilli", "TR"], - ["Castel Dell'Aquila", "TR"], - ["Quadrelli", "TR"], - ["Casteltodino", "TR"], - ["Farnetta", "TR"], - ], - "05028": [["Penna In Teverina", "TR"]], - "05029": [["San Gemini", "TR"]], - "05030": [ - ["Polino", "TR"], - ["Poggio Di Otricoli", "TR"], - ["Fontechiaruccia", "TR"], - ["Montefranco", "TR"], - ["Otricoli", "TR"], - ], - "05031": [["Casteldilago", "TR"], ["Arrone", "TR"], ["Buonacquisto", "TR"]], - "05032": [["Santa Maria Della Neve", "TR"], ["Calvi Dell'Umbria", "TR"]], - "05034": [["Ferentillo", "TR"]], - "05035": [ - ["Taizzano", "TR"], - ["Narni", "TR"], - ["Vigne", "TR"], - ["Schifanoia", "TR"], - ["San Liberato", "TR"], - ["Montoro", "TR"], - ["Itieli", "TR"], - ["Narni Scalo", "TR"], - ["Borgaria Di Narni", "TR"], - ["Nera Montoro", "TR"], - ["Gualdo", "TR"], - ["San Vito", "TR"], - ["Gualdo Di Narni", "TR"], - ["Narni Stazione", "TR"], - ["Capitone", "TR"], - ["Vigne Di Narni", "TR"], - ["Ponte San Lorenzo", "TR"], - ["Stifone", "TR"], - ["Testaccio", "TR"], - ["Borgaria", "TR"], - ["Sant'Urbano", "TR"], - ], - "05039": [["Stroncone", "TR"]], - "05100": [ - ["Collestatte", "TR"], - ["Marmore", "TR"], - ["Cesi Di Terni", "TR"], - ["Miranda", "TR"], - ["Terni", "TR"], - ["Cesi", "TR"], - ["Gabelletta Di Cesi", "TR"], - ["Collestatte Piano", "TR"], - ["Collescipoli", "TR"], - ["Valenza", "TR"], - ["Cecalocco", "TR"], - ["Giuncano", "TR"], - ["Giuncano Scalo", "TR"], - ["Battiferro", "TR"], - ["Papigno", "TR"], - ["Piediluco", "TR"], - ["Rocca San Zenone", "TR"], - ["Torreorsina", "TR"], - ], - "11010": [ - ["Doues", "AO"], - ["Vieyes", "AO"], - ["Plan D'Introd", "AO"], - ["Valgrisenche", "AO"], - ["La Cretaz", "AO"], - ["Allein", "AO"], - ["Valpelline", "AO"], - ["Ollomont", "AO"], - ["Pre' Saint Didier", "AO"], - ["Runaz", "AO"], - ["Montan", "AO"], - ["Saint Maurice", "AO"], - ["Saint Pierre", "AO"], - ["Bionaz", "AO"], - ["Bosses", "AO"], - ["Verrand", "AO"], - ["Chesallet Sarre", "AO"], - ["Oyace", "AO"], - ["Saint Nicolas", "AO"], - ["Sarre", "AO"], - ["Rhemes Notre Dame", "AO"], - ["Aymavilles", "AO"], - ["Rhemes Saint Georges", "AO"], - ["Saint Rhemy En Bosses", "AO"], - ["Roisan", "AO"], - ["Angelin", "AO"], - ["Arensod", "AO"], - ["Introd", "AO"], - ["Chesallet", "AO"], - ["Valsavarenche", "AO"], - ["Gignod", "AO"], - ["Avise", "AO"], - ], - "11011": [["Leverogne", "AO"], ["Planaval", "AO"], ["Arvier", "AO"]], - "11012": [["Cogne", "AO"], ["Gimillian", "AO"], ["Epinel", "AO"]], - "11013": [["Dolonne", "AO"], ["Courmayeur", "AO"], ["Entreves", "AO"], ["La Saxe", "AO"]], - "11014": [["Etroubles", "AO"], ["Saint Oyen", "AO"]], - "11015": [["La Salle", "AO"], ["Derby", "AO"]], - "11016": [["La Thuile", "AO"]], - "11017": [["Morgex", "AO"]], - "11018": [["Villeneuve", "AO"]], - "11020": [ - ["La Place", "AO"], - ["Saint Barthelemy", "AO"], - ["Gressoney La Trinite'", "AO"], - ["Gaby", "AO"], - ["Antey Saint Andre'", "AO"], - ["Pontboset", "AO"], - ["Challand Saint Anselme", "AO"], - ["Ville", "AO"], - ["Peroulaz", "AO"], - ["Challand Saint Victor", "AO"], - ["Grand Villa Cravon", "AO"], - ["Etabloz", "AO"], - ["Saint Christophe", "AO"], - ["Blavy Nus", "AO"], - ["Perloz", "AO"], - ["Ville Sur Nus", "AO"], - ["Fontainemore", "AO"], - ["Verrayes", "AO"], - ["Nus", "AO"], - ["Saint Marcel", "AO"], - ["Plan Felinaz", "AO"], - ["Chef Lieu", "AO"], - ["Pont Suaz", "AO"], - ["Barme", "AO"], - ["Periasc", "AO"], - ["Issogne", "AO"], - ["Brissogne", "AO"], - ["Charvensod", "AO"], - ["Mongnod", "AO"], - ["La Magdeleine", "AO"], - ["Jovencan", "AO"], - ["Champoluc", "AO"], - ["Champdepraz", "AO"], - ["Villefranche", "AO"], - ["Quart", "AO"], - ["Villair", "AO"], - ["Antagnod", "AO"], - ["Buisson", "AO"], - ["Hone", "AO"], - ["Champorcher", "AO"], - ["Pollein", "AO"], - ["Blavy", "AO"], - ["Bard", "AO"], - ["Vert", "AO"], - ["Montjovet", "AO"], - ["Lignod", "AO"], - ["Issime", "AO"], - ["Torgnon", "AO"], - ["Fiernaz", "AO"], - ["Chez Croiset", "AO"], - ["Fenis", "AO"], - ["Neyran", "AO"], - ["Ayas", "AO"], - ["Grand Vert", "AO"], - ["Gressan", "AO"], - ["Donnas", "AO"], - ["Lillianes", "AO"], - ["Chamois", "AO"], - ["Emarese", "AO"], - ["Arnad", "AO"], - ["Grand Villa", "AO"], - ], - "11021": [["Breuil", "AO"], ["Breuil Cervinia", "AO"], ["Cervinia", "AO"]], - "11022": [["Arcesaz", "AO"], ["Brusson", "AO"], ["Extrepieraz", "AO"]], - "11023": [["Saint Denis", "AO"], ["Chambave", "AO"]], - "11024": [["Chatillon", "AO"], ["Ussel", "AO"], ["Pontey", "AO"], ["Lassolaz", "AO"]], - "11025": [["Gressoney Saint Jean", "AO"]], - "11026": [["Pont Saint Martin", "AO"]], - "11027": [["Moron", "AO"], ["Saint Vincent", "AO"]], - "11028": [["Valtournenche", "AO"], ["Paquier", "AO"]], - "11029": [["Verres", "AO"], ["Glair", "AO"]], - "11100": [ - ["Signayes", "AO"], - ["Porossan", "AO"], - ["Roisan", "AO"], - ["Excenex", "AO"], - ["Arpuilles", "AO"], - ["Aosta", "AO"], - ], - "32010": [ - ["Garna", "BL"], - ["Mareson", "BL"], - ["Ospitale Di Cadore", "BL"], - ["Zoppe' Di Cadore", "BL"], - ["Tignes", "BL"], - ["Lamosano", "BL"], - ["Tambre", "BL"], - ["Pecol", "BL"], - ["Podenzoi", "BL"], - ["Codissago", "BL"], - ["Termine", "BL"], - ["Soverzene", "BL"], - ["Zoldo Alto", "BL"], - ["Castello Lavazzo", "BL"], - ["Pieve D'Alpago", "BL"], - ["Termine Di Cadore", "BL"], - ["Perarolo Di Cadore", "BL"], - ["Chies D'Alpago", "BL"], - ], - "32012": [["Dont Di Zoldo", "BL"], ["Dont", "BL"], ["Dozza Di Zoldo", "BL"], ["Forno Di Zoldo", "BL"]], - "32013": [["Igne", "BL"], ["Longarone", "BL"], ["Fortogna", "BL"]], - "32014": [ - ["La Secca", "BL"], - ["Polpet", "BL"], - ["Col Di Cugnan", "BL"], - ["Paiane", "BL"], - ["Ponte Nelle Alpi", "BL"], - ["Cadola", "BL"], - ["Casan", "BL"], - ["Soccher", "BL"], - ], - "32015": [["Puos D'Alpago", "BL"], ["Cornei", "BL"]], - "32016": [["Farra D'Alpago", "BL"], ["Santa Croce", "BL"], ["Spert", "BL"], ["Santa Croce Del Lago", "BL"]], - "32020": [ - ["Tiser", "BL"], - ["Villapiana", "BL"], - ["Selva Di Cadore", "BL"], - ["Gosaldo", "BL"], - ["Limana", "BL"], - ["San Tomaso Agordino", "BL"], - ["Livinallongo Del Col Di Lana", "BL"], - ["Voltago Agordino", "BL"], - ["Colle Santa Lucia", "BL"], - ["La Valle Agordina", "BL"], - ["Falcade", "BL"], - ["Arabba", "BL"], - ["Avoscan", "BL"], - ["Rivamonte Agordino", "BL"], - ["Dussoi", "BL"], - ["Caviola", "BL"], - ["Ronchena", "BL"], - ["Vallada Agordina", "BL"], - ["Cencenighe Agordino", "BL"], - ["Canale D'Agordo", "BL"], - ["Frassene'", "BL"], - ["Pie' Falcade", "BL"], - ], - "32021": [["Agordo", "BL"]], - "32022": [["Caprile", "BL"], ["Alleghe", "BL"]], - "32023": [["Rocca Pietore", "BL"], ["Santa Maria Delle Grazie", "BL"], ["Laste Di Rocca Pietore", "BL"]], - "32026": [["Trichiana", "BL"], ["Lentiai", "BL"], ["Villa Di Villa", "BL"], ["Mel", "BL"]], - "32027": [["Taibon Agordino", "BL"]], - "32028": [["Sant'Antonio Tortal", "BL"]], - "32030": [ - ["San Gregorio Nelle Alpi", "BL"], - ["Busche", "BL"], - ["Rocca", "BL"], - ["Rocca D'Arsie'", "BL"], - ["Fastro", "BL"], - ["Arten", "BL"], - ["Cesiomaggiore", "BL"], - ["Seren Del Grappa", "BL"], - ["Mellame", "BL"], - ["Sovramonte", "BL"], - ["Arsie'", "BL"], - ["Fonzaso", "BL"], - ["Paderno", "BL"], - ["Soranzen", "BL"], - ["Sorriva", "BL"], - ], - "32031": [["Colmirano", "BL"], ["Fener", "BL"], ["Alano Di Piave", "BL"]], - "32032": [ - ["Villabruna", "BL"], - ["Mugnai", "BL"], - ["Anzu'", "BL"], - ["Umin", "BL"], - ["Tomo", "BL"], - ["Feltre", "BL"], - ["Foen", "BL"], - ["Villapaiera", "BL"], - ], - "32033": [["Lamon", "BL"], ["Arina", "BL"]], - "32034": [["Pedavena", "BL"], ["Facen", "BL"], ["Norcen", "BL"], ["Travagola", "BL"]], - "32035": [["Meano", "BL"], ["Formegan", "BL"], ["Santa Giustina", "BL"]], - "32036": [["Mas", "BL"], ["Bribano", "BL"], ["Roe Alte", "BL"], ["Sedico", "BL"]], - "32037": [["Sospirolo", "BL"], ["Mis", "BL"]], - "32038": [["Vas", "BL"], ["Quero Vas", "BL"], ["Quero", "BL"]], - "32040": [ - ["Dosoledo", "BL"], - ["Candide", "BL"], - ["Villaggio Turistico Di Borca Di Cadore", "BL"], - ["Venas", "BL"], - ["Valle Di Cadore", "BL"], - ["Lorenzago Di Cadore", "BL"], - ["Vallesella", "BL"], - ["Casamazzagno", "BL"], - ["Borca Di Cadore", "BL"], - ["Comelico Superiore", "BL"], - ["Presenaio", "BL"], - ["San Nicolo' Di Comelico", "BL"], - ["Laggio Di Cadore", "BL"], - ["Padola", "BL"], - ["Costalta", "BL"], - ["San Pietro Di Cadore", "BL"], - ["Danta Di Cadore", "BL"], - ["Pelos", "BL"], - ["Villapiccola", "BL"], - ["Vigo Di Cadore", "BL"], - ["Cibiana Di Cadore", "BL"], - ["Domegge Di Cadore", "BL"], - ["Pelos Di Cadore", "BL"], - ["Masarie'", "BL"], - ["Lozzo Di Cadore", "BL"], - ["Vodo Cadore", "BL"], - ], - "32041": [["Giralba", "BL"], ["Misurina", "BL"], ["Reane", "BL"], ["Auronzo Di Cadore", "BL"]], - "32042": [["Calalzo Di Cadore", "BL"]], - "32043": [["Acquabona", "BL"], ["Zuel", "BL"], ["Verocai", "BL"], ["Cortina D'Ampezzo", "BL"]], - "32044": [["Pozzale", "BL"], ["Tai Di Cadore", "BL"], ["Sottocastello", "BL"], ["Pieve Di Cadore", "BL"]], - "32045": [["Santo Stefano Di Cadore", "BL"], ["Campolongo Di Cadore", "BL"], ["Costalissoio", "BL"]], - "32046": [["Chiapuzza", "BL"], ["San Vito Di Cadore", "BL"]], - "32047": [["Granvilla", "BL"], ["Sappada", "BL"]], - "32100": [ - ["Salce", "BL"], - ["Sossai", "BL"], - ["Levego", "BL"], - ["Tisoi", "BL"], - ["Caleipo", "BL"], - ["Bolzano Di Belluno", "BL"], - ["Belluno", "BL"], - ["Visome", "BL"], - ["Antole", "BL"], - ["Fiammoi", "BL"], - ["Sois", "BL"], - ["Bes", "BL"], - ["Safforze", "BL"], - ["Castion", "BL"], - ], - "35010": [ - ["San Vito", "PD"], - ["Ronchi Di Campanile", "PD"], - ["Grantorto", "PD"], - ["Curtarolo", "PD"], - ["Ca' Baglioni", "PD"], - ["Cadoneghe", "PD"], - ["Loreggiola", "PD"], - ["Borgoricco", "PD"], - ["San Michele Delle Badesse", "PD"], - ["San Pietro In Gu", "PD"], - ["Cavino", "PD"], - ["Santa Maria Di Non", "PD"], - ["Perarolo", "PD"], - ["San Giorgio In Bosco", "PD"], - ["Villanova", "PD"], - ["Limena", "PD"], - ["Villa Del Conte", "PD"], - ["Vigodarzere", "PD"], - ["Ponterotto", "PD"], - ["Arsego", "PD"], - ["Santa Giustina In Colle", "PD"], - ["Fossalta Di Trebaseleghe", "PD"], - ["Villafranca Padovana", "PD"], - ["Campodoro", "PD"], - ["Codiverno", "PD"], - ["Tavo", "PD"], - ["Taggi'", "PD"], - ["Camazzole", "PD"], - ["Terraglione", "PD"], - ["Pieve", "PD"], - ["Mejaniga", "PD"], - ["Loreggia", "PD"], - ["Silvelle", "PD"], - ["Massanzago", "PD"], - ["Pionca", "PD"], - ["Villanova Di Camposampiero", "PD"], - ["Fratte", "PD"], - ["Pieve Di Curtarolo", "PD"], - ["San Giorgio Delle Pertiche", "PD"], - ["Sant'Ambrogio", "PD"], - ["Campo San Martino", "PD"], - ["Fossalta", "PD"], - ["Carmignano Di Brenta", "PD"], - ["Vigonza", "PD"], - ["Marsango", "PD"], - ["Saletto Di Vigodarzere", "PD"], - ["Abbazia Pisani", "PD"], - ["Trebaseleghe", "PD"], - ["Gazzo", "PD"], - ], - "35011": [["Sant'Andrea Di Campodarsego", "PD"], ["Campodarsego", "PD"]], - "35012": [["Rustega", "PD"], ["Camposampiero", "PD"]], - "35013": [["Santa Croce Bigolina", "PD"], ["Laghi", "PD"], ["Cittadella", "PD"]], - "35014": [["Fontaniva", "PD"]], - "35015": [["Galliera Veneta", "PD"]], - "35016": [["Presina", "PD"], ["Vaccarino", "PD"], ["Piazzola Sul Brenta", "PD"], ["Tremignon", "PD"]], - "35017": [["Piombino Dese", "PD"], ["Torreselle", "PD"], ["Levada", "PD"], ["Ronchi", "PD"]], - "35018": [["San Martino Di Lupari", "PD"]], - "35019": [["Onara", "PD"], ["Tombolo", "PD"]], - "35020": [ - ["Legnaro", "PD"], - ["Carrara San Giorgio", "PD"], - ["Tribano", "PD"], - ["Arzercavalli", "PD"], - ["Masera' Di Padova", "PD"], - ["Brugine", "PD"], - ["Polverara", "PD"], - ["Codevigo", "PD"], - ["Terradura", "PD"], - ["Casone", "PD"], - ["Due Carrare", "PD"], - ["Cive'", "PD"], - ["Correzzola", "PD"], - ["Candiana", "PD"], - ["Pozzonovo", "PD"], - ["Albignasego", "PD"], - ["Casalserugo", "PD"], - ["Campagnola", "PD"], - ["Arzergrande", "PD"], - ["Conche", "PD"], - ["Vallonga", "PD"], - ["Vigorovea", "PD"], - ["Saonara", "PD"], - ["Terrassa Padovana", "PD"], - ["San Pietro Viminario", "PD"], - ["Ponte San Nicolo'", "PD"], - ["Sant'Angelo Di Piove Di Sacco", "PD"], - ["Pernumia", "PD"], - ["Arre", "PD"], - ["Carrara Santo Stefano", "PD"], - ["Roncaglia", "PD"], - ["Bertipaglia", "PD"], - ["Sant'Agostino", "PD"], - ["Conche Di Codevigo", "PD"], - ["Mandriola", "PD"], - ["Villatora", "PD"], - ], - "35021": [["Agna", "PD"]], - "35022": [["Anguillara Veneta", "PD"], ["Borgoforte", "PD"]], - "35023": [["Le Casette", "PD"], ["San Siro", "PD"], ["Bagnoli Di Sopra", "PD"]], - "35024": [["Bovolenta", "PD"]], - "35025": [["Cagnola", "PD"], ["Cartura", "PD"]], - "35026": [["Conselve", "PD"]], - "35027": [["Oltre Brenta", "PD"], ["Noventa Padovana", "PD"]], - "35028": [["Arzerello", "PD"], ["Piove Di Sacco", "PD"], ["Piovega", "PD"], ["Corte", "PD"]], - "35029": [["Pontelongo", "PD"]], - "35030": [ - ["Cinto Euganeo", "PD"], - ["Baone", "PD"], - ["Rivadolmo", "PD"], - ["Caselle Di Selvazzano Dentro", "PD"], - ["Bosco", "PD"], - ["Veggiano", "PD"], - ["Tencarola", "PD"], - ["Cervarese Santa Croce", "PD"], - ["Valsanzibio", "PD"], - ["Vo' Vecchio", "PD"], - ["Villaguattera", "PD"], - ["Sarmeola", "PD"], - ["Feriole", "PD"], - ["Saccolongo", "PD"], - ["Bastia Di Rovolon", "PD"], - ["Rubano", "PD"], - ["Caselle", "PD"], - ["Fossona", "PD"], - ["Galzignano", "PD"], - ["Vo'", "PD"], - ["Rovolon", "PD"], - ["Bastia", "PD"], - ["Galzignano Terme", "PD"], - ["Selvazzano Dentro", "PD"], - ["Montemerlo", "PD"], - ], - "35031": [["Abano Terme", "PD"], ["Monteortone", "PD"]], - "35032": [["Arqua' Petrarca", "PD"]], - "35034": [["Lanzetta", "PD"], ["Lozzo Atestino", "PD"]], - "35035": [["Mestrino", "PD"], ["Arlesega", "PD"]], - "35036": [["Montegrotto Terme", "PD"]], - "35037": [ - ["Teolo", "PD"], - ["Treponti", "PD"], - ["Villa Di Teolo", "PD"], - ["Villa", "PD"], - ["San Biagio", "PD"], - ["Bresseo", "PD"], - ], - "35038": [["Torreglia", "PD"]], - "35040": [ - ["Barbona", "PD"], - ["San Fidenzio", "PD"], - ["Vescovana", "PD"], - ["Sant'Elena", "PD"], - ["Vighizzolo D'Este", "PD"], - ["Valli Mocenighe", "PD"], - ["Villa Estense", "PD"], - ["Masi", "PD"], - ["Megliadino San Fidenzio", "PD"], - ["Merlara", "PD"], - ["Piacenza D'Adige", "PD"], - ["Boara Pisani", "PD"], - ["Bresega", "PD"], - ["Valli Moceniche", "PD"], - ["Carmignano", "PD"], - ["Urbana", "PD"], - ["Colombare", "PD"], - ["Ponso", "PD"], - ["Casale Di Scodosia", "PD"], - ["Granze", "PD"], - ["Ca' Morosini", "PD"], - ["Megliadino San Vitale", "PD"], - ["Carceri", "PD"], - ["Santa Margherita D'Adige", "PD"], - ["Sant'Urbano", "PD"], - ["Castelbaldo", "PD"], - ], - "35041": [["Battaglia Terme", "PD"]], - "35042": [["Deserto", "PD"], ["Este", "PD"], ["Pilastro", "PD"]], - "35043": [["Costa Calcinara", "PD"], ["Monselice", "PD"], ["San Cosma", "PD"]], - "35044": [["Montagnana", "PD"]], - "35045": [["Ospedaletto Euganeo", "PD"]], - "35046": [["Saletto", "PD"]], - "35047": [["Solesino", "PD"]], - "35048": [["Stanghella", "PD"], ["Pisana", "PD"], ["Ponte Gorzone", "PD"]], - "35100": [["Padova", "PD"]], - "35121": [["Padova", "PD"]], - "35122": [["Padova", "PD"]], - "35123": [["Padova", "PD"]], - "35124": [["Padova", "PD"], ["Salboro", "PD"]], - "35125": [["Guizza", "PD"], ["Padova", "PD"]], - "35126": [["Padova", "PD"]], - "35127": [["Padova", "PD"], ["Camin", "PD"], ["Terranegra", "PD"]], - "35128": [["Padova", "PD"]], - "35129": [["Padova", "PD"], ["Mortise", "PD"], ["Ponte Di Brenta", "PD"]], - "35131": [["Padova", "PD"]], - "35132": [["Padova", "PD"]], - "35133": [["Padova", "PD"]], - "35134": [["Padova", "PD"]], - "35135": [["Padova", "PD"]], - "35136": [["Padova", "PD"]], - "35137": [["Padova", "PD"]], - "35138": [["Padova", "PD"], ["Monta'", "PD"]], - "35139": [["Padova", "PD"]], - "35141": [["Padova", "PD"]], - "35142": [["Padova", "PD"], ["Mandria", "PD"]], - "35143": [["Brusegana", "PD"], ["Padova", "PD"]], - "45010": [ - ["Rosolina", "RO"], - ["Rosolina Mare", "RO"], - ["Villadose", "RO"], - ["Ceregnano", "RO"], - ["Lama Pezzoli", "RO"], - ["Braglia", "RO"], - ["Lama Polesine", "RO"], - ["Pettorazza Grimani", "RO"], - ["Gavello", "RO"], - ["Canale", "RO"], - ["Papozze", "RO"], - ], - "45011": [ - ["Piantamelon", "RO"], - ["Baricetta", "RO"], - ["Adria", "RO"], - ["Valliera", "RO"], - ["Cavedon", "RO"], - ["Ca' Emo", "RO"], - ["Bottrighe", "RO"], - ["Fasana Polesine", "RO"], - ["Bellombra", "RO"], - ["Fasana", "RO"], - ["Cavanella Po", "RO"], - ["Passetto", "RO"], - ], - "45012": [ - ["Piano", "RO"], - ["Santa Maria In Punta", "RO"], - ["Grillara", "RO"], - ["Riva'", "RO"], - ["Ariano", "RO"], - ["San Basilio", "RO"], - ["Ariano Nel Polesine", "RO"], - ["Crociara", "RO"], - ], - "45014": [["Porto Viro", "RO"], ["Contarina", "RO"], ["Donada", "RO"], ["Villaregia", "RO"]], - "45015": [["Corbola", "RO"]], - "45017": [["Loreo", "RO"]], - "45018": [ - ["Scardovari", "RO"], - ["Ca' Tiepolo", "RO"], - ["Bonelli", "RO"], - ["Ca' Dolfin", "RO"], - ["Ca' Zuliani", "RO"], - ["Tolle", "RO"], - ["Gnocca", "RO"], - ["Porto Tolle", "RO"], - ["Donzella", "RO"], - ["Boccasette", "RO"], - ["Ivica", "RO"], - ["Ca' Venier", "RO"], - ], - "45019": [ - ["Mazzorno", "RO"], - ["Ca' Vendramin", "RO"], - ["Mazzorno Destro", "RO"], - ["Taglio Di Po", "RO"], - ["Polesinello", "RO"], - ], - "45020": [ - ["Lusia", "RO"], - ["San Bellino", "RO"], - ["Castelguglielmo", "RO"], - ["Cavazzana", "RO"], - ["Pincara", "RO"], - ["Zelo", "RO"], - ["Ca Morosini", "RO"], - ["Giacciano Con Baruchella", "RO"], - ["Villanova Del Ghebbo", "RO"], - ["Canda", "RO"], - ["Baruchella", "RO"], - ], - "45021": [["Salvaterra", "RO"], ["Badia Polesine", "RO"], ["Villa D'Adige", "RO"], ["Colombano", "RO"]], - "45022": [["Bagnolo Di Po", "RO"]], - "45023": [["Costa Di Rovigo", "RO"]], - "45024": [["Fiesso Umbertiano", "RO"]], - "45025": [["Fratta Polesine", "RO"]], - "45026": [ - ["Barbuglio", "RO"], - ["Ramodipalo Rasa", "RO"], - ["Saguedo", "RO"], - ["Ramodipalo", "RO"], - ["Lendinara", "RO"], - ], - "45027": [["Sariano", "RO"], ["Pissatola", "RO"], ["Trecenta", "RO"]], - "45030": [ - ["Guarda Veneta", "RO"], - ["Santa Maria Maddalena", "RO"], - ["Castelnovo Bariano", "RO"], - ["San Martino Di Venezze", "RO"], - ["Chiesa", "RO"], - ["Frassinelle Polesine", "RO"], - ["San Pietro Polesine", "RO"], - ["Pontecchio Polesine", "RO"], - ["Villanova Marchesana", "RO"], - ["Calto", "RO"], - ["Trona Di Sopra", "RO"], - ["Occhiobello", "RO"], - ["Gaiba", "RO"], - ["Beverare", "RO"], - ["Crespino", "RO"], - ["Salara", "RO"], - ["Villamarzana", "RO"], - ["Ceneselli", "RO"], - ], - "45031": [["Corne'", "RO"], ["Arqua' Polesine", "RO"]], - "45032": [["Bergantino", "RO"]], - "45033": [["Bosaro", "RO"]], - "45034": [["Canaro", "RO"], ["Paviole", "RO"]], - "45035": [["Castelmassa", "RO"]], - "45036": [["Ficarolo", "RO"]], - "45037": [["Santo Stefano", "RO"], ["Melara", "RO"]], - "45038": [["Raccano", "RO"], ["Polesella", "RO"]], - "45039": [["Sabbioni", "RO"], ["Stienta", "RO"], ["Zampine", "RO"]], - "45100": [ - ["Grignano Polesine", "RO"], - ["Boara Polesine", "RO"], - ["Mardimago", "RO"], - ["Roverdicre'", "RO"], - ["Concadirame", "RO"], - ["Sant'Apollinare Con Selva", "RO"], - ["Rovigo", "RO"], - ["Sant'Apollinare", "RO"], - ["Granzette", "RO"], - ["Borsea", "RO"], - ["Cantonazzo", "RO"], - ["Buso Sarzano", "RO"], - ], - "31010": [ - ["Fonte", "TV"], - ["Farra Di Soligo", "TV"], - ["San Michele Di Piave", "TV"], - ["Santa Maria Di Piave", "TV"], - ["Ponte Della Priula", "TV"], - ["Fonte Alto", "TV"], - ["Soligo", "TV"], - ["Monfumo", "TV"], - ["Santa Maria Del Piave", "TV"], - ["One'", "TV"], - ["Maser", "TV"], - ["Pianzano", "TV"], - ["Cimadolmo", "TV"], - ["Mosnigo", "TV"], - ["Godega Di Sant'Urbano", "TV"], - ["Col San Martino", "TV"], - ["Orsago", "TV"], - ["Bibano", "TV"], - ["Moriago Della Battaglia", "TV"], - ["Fregona", "TV"], - ["Crespignaga", "TV"], - ["Mareno Di Piave", "TV"], - ["Colfosco", "TV"], - ["Osigo", "TV"], - ["Priula", "TV"], - ["Muliparte", "TV"], - ], - "31011": [["Casella D'Asolo", "TV"], ["Asolo", "TV"], ["Pagnano", "TV"], ["Villa D'Asolo", "TV"]], - "31012": [["Cappella Maggiore", "TV"], ["Anzano", "TV"]], - "31013": [["Roverbasso", "TV"], ["Cimetta", "TV"], ["Codogne'", "TV"]], - "31014": [["San Martino Di Colle Umberto", "TV"], ["San Martino", "TV"], ["Colle Umberto", "TV"]], - "31015": [["Conegliano", "TV"], ["Scomigo", "TV"], ["Collalbrigo", "TV"]], - "31016": [["Villa Di Villa", "TV"], ["Cordignano", "TV"]], - "31017": [["Crespano Del Grappa", "TV"], ["Paderno Del Grappa", "TV"]], - "31018": [["Gaiarine", "TV"], ["Campomolino", "TV"], ["Francenigo", "TV"], ["Albina", "TV"]], - "31020": [ - ["Villorba", "TV"], - ["Zoppe'", "TV"], - ["Cosniga", "TV"], - ["Liedolo", "TV"], - ["Tarzo", "TV"], - ["Fossamerlo", "TV"], - ["Revine", "TV"], - ["Revine Lago", "TV"], - ["San Vendemiano", "TV"], - ["Corbanese", "TV"], - ["Bagnolo", "TV"], - ["San Fior Di Sotto", "TV"], - ["San Zenone Degli Ezzelini", "TV"], - ["Sernaglia Della Battaglia", "TV"], - ["Vidor", "TV"], - ["San Pietro Di Feletto", "TV"], - ["San Polo Di Piave", "TV"], - ["Castello Roganzuolo", "TV"], - ["Refrontolo", "TV"], - ["San Fior Di Sopra", "TV"], - ["Lancenigo", "TV"], - ["San Fior", "TV"], - ["Ca' Rainati", "TV"], - ["Lago", "TV"], - ["Falze' Di Piave", "TV"], - ["Rua", "TV"], - ], - "31021": [ - ["Zerman", "TV"], - ["Bonisiolo", "TV"], - ["Campocroce", "TV"], - ["Mogliano Veneto", "TV"], - ["Marocco", "TV"], - ], - "31022": [ - ["Sambughe", "TV"], - ["Preganziol", "TV"], - ["San Trovaso", "TV"], - ["Frescada", "TV"], - ["Borgo Verde", "TV"], - ], - "31023": [["Castelminio", "TV"], ["San Marco", "TV"], ["Resana", "TV"]], - "31024": [["Ormelle", "TV"], ["Roncadelle", "TV"]], - "31025": [["Santa Lucia Di Piave", "TV"]], - "31026": [["Sarmede", "TV"], ["Montaner", "TV"]], - "31027": [["Spresiano", "TV"], ["Lovadina", "TV"], ["Visnadello", "TV"]], - "31028": [["Vazzola", "TV"], ["Tezze", "TV"], ["Visna'", "TV"]], - "31029": [ - ["Fadalto", "TV"], - ["San Giacomo Di Veglia", "TV"], - ["San Floriano", "TV"], - ["Cozzuolo", "TV"], - ["Nove", "TV"], - ["Carpesica", "TV"], - ["Vittorio Veneto", "TV"], - ], - "31030": [ - ["Borso Del Grappa", "TV"], - ["Pero", "TV"], - ["Caselle Di Altivole", "TV"], - ["Dosson", "TV"], - ["Carbonera", "TV"], - ["San Vito Di Altivole", "TV"], - ["Saletto", "TV"], - ["Valla'", "TV"], - ["Casier", "TV"], - ["Cison Di Valmarino", "TV"], - ["Sant'Eulalia", "TV"], - ["Mignagola", "TV"], - ["Arcade", "TV"], - ["Vacil", "TV"], - ["Tovena", "TV"], - ["Semonzo", "TV"], - ["Castelcucco", "TV"], - ["Altivole", "TV"], - ["Castello Di Godego", "TV"], - ["San Bartolomeo", "TV"], - ["Breda Di Piave", "TV"], - ], - "31031": [["Caerano Di San Marco", "TV"]], - "31032": [["Lughignano", "TV"], ["Casale Sul Sile", "TV"], ["Conscio", "TV"]], - "31033": [ - ["Salvatronda", "TV"], - ["Salvarosa", "TV"], - ["Castelfranco Veneto", "TV"], - ["Sant'Andrea", "TV"], - ["Villarazzo", "TV"], - ], - "31034": [["Cavaso Del Tomba", "TV"]], - "31035": [["Ciano Del Montello", "TV"], ["Ciano", "TV"], ["Crocetta Del Montello", "TV"]], - "31036": [["Istrana", "TV"], ["Ospedaletto", "TV"], ["Pezzan", "TV"], ["Sala", "TV"]], - "31037": [["Ramon Campagna", "TV"], ["Loria", "TV"], ["Castione", "TV"], ["Bessica", "TV"]], - "31038": [ - ["Paese", "TV"], - ["Padernello", "TV"], - ["Castagnole", "TV"], - ["Porcellengo", "TV"], - ["Postioma", "TV"], - ], - "31039": [["Riese Pio X", "TV"], ["Poggiana", "TV"], ["Spineda", "TV"]], - "31040": [ - ["Portobuffole'", "TV"], - ["Pederobba", "TV"], - ["Campo Di Pietra", "TV"], - ["Santi Angeli", "TV"], - ["Musano Di Trevignano", "TV"], - ["Segusino", "TV"], - ["Volpago Del Montello", "TV"], - ["Bavaria", "TV"], - ["Salgareda", "TV"], - ["Venegazzu'", "TV"], - ["Giavera Del Montello", "TV"], - ["Campo Di Pietra Di Salgareda", "TV"], - ["Mansue'", "TV"], - ["Covolo", "TV"], - ["Cessalto", "TV"], - ["Onigo", "TV"], - ["Falze'", "TV"], - ["Selva Del Montello", "TV"], - ["Meduna Di Livenza", "TV"], - ["Signoressa", "TV"], - ["Fossalta Maggiore", "TV"], - ["Santi Angeli Del Montello", "TV"], - ["Trevignano", "TV"], - ["Gorgo Al Monticano", "TV"], - ["Nervesa Della Battaglia", "TV"], - ["Cusignana", "TV"], - ["Chiarano", "TV"], - ["Musano", "TV"], - ], - "31041": [["Cornuda", "TV"]], - "31042": [["Fagare' Della Battaglia", "TV"], ["Fagare'", "TV"]], - "31043": [["Lutrano", "TV"], ["Fontanelle", "TV"]], - "31044": [["Biadene", "TV"], ["Montebelluna", "TV"]], - "31045": [["Motta Di Livenza", "TV"]], - "31046": [["Fae'", "TV"], ["Oderzo", "TV"], ["Rustigne'", "TV"], ["Piavon", "TV"]], - "31047": [["Negrisia", "TV"], ["Ponte Di Piave", "TV"], ["Levada", "TV"]], - "31048": [ - ["Cavrie", "TV"], - ["Spercenigo", "TV"], - ["Olmi", "TV"], - ["Olmi Di Treviso", "TV"], - ["San Biagio Di Callalta", "TV"], - ], - "31049": [ - ["San Vito Di Valdobbiadene", "TV"], - ["Bigolino", "TV"], - ["San Pietro Di Barbozza", "TV"], - ["Valdobbiadene", "TV"], - ["Guia", "TV"], - ["Pianezze", "TV"], - ["Santo Stefano", "TV"], - ], - "31050": [ - ["Santandra'", "TV"], - ["Morgano", "TV"], - ["Combai", "TV"], - ["Zenson Di Piave", "TV"], - ["Fossalunga", "TV"], - ["Carpenedo", "TV"], - ["Miane", "TV"], - ["Cavasagra Di Vedelago", "TV"], - ["Vedelago", "TV"], - ["Fanzolo", "TV"], - ["Albaredo", "TV"], - ["Vascon", "TV"], - ["Barcon", "TV"], - ["Camalo'", "TV"], - ["Badoere", "TV"], - ["Povegliano", "TV"], - ["Casacorba", "TV"], - ["Premaor", "TV"], - ["Ponzano Veneto", "TV"], - ["Cavasagra", "TV"], - ["Monastier Di Treviso", "TV"], - ], - "31051": [["Valmareno", "TV"], ["Follina", "TV"], ["Pedeguarda", "TV"]], - "31052": [["Varago", "TV"], ["Maserada Sul Piave", "TV"], ["Candelu'", "TV"]], - "31053": [["Pieve Di Soligo", "TV"], ["Barbisano", "TV"], ["Solighetto", "TV"]], - "31054": [["Possagno", "TV"]], - "31055": [["Quinto Di Treviso", "TV"], ["Santa Cristina", "TV"]], - "31056": [["Musestre", "TV"], ["San Cipriano", "TV"], ["Roncade", "TV"], ["Biancade", "TV"]], - "31057": [["Cendon", "TV"], ["Silea", "TV"], ["Sant'Elena", "TV"]], - "31058": [["Susegana", "TV"]], - "31059": [["Scandolara", "TV"], ["Zero Branco", "TV"], ["Sant'Alberto", "TV"]], - "31100": [ - ["Treviso", "TV"], - ["Fiera", "TV"], - ["Selvana Bassa", "TV"], - ["Monigo", "TV"], - ["Santa Maria Della Rovere", "TV"], - ["Canizzano", "TV"], - ], - "30010": [ - ["Lughetto", "VE"], - ["Campolongo Maggiore", "VE"], - ["Cona", "VE"], - ["Campagna Lupia", "VE"], - ["Lova", "VE"], - ["Pegolotte", "VE"], - ["Cantarana", "VE"], - ["Camponogara", "VE"], - ["Liettoli", "VE"], - ["Bojon", "VE"], - ], - "30013": [ - ["Ca' Pasquali", "VE"], - ["Cavallino Treporti", "VE"], - ["Cavallino", "VE"], - ["Treporti", "VE"], - ["Ca' Ballarin", "VE"], - ["Ca' Savio", "VE"], - ], - "30014": [ - ["Rottanova", "VE"], - ["Rottanova Di Cavarzere", "VE"], - ["Cavarzere", "VE"], - ["San Pietro", "VE"], - ["Boscochiaro", "VE"], - ["Villaggio Busonera", "VE"], - ["San Pietro Di Cavarzere", "VE"], - ], - "30015": [ - ["Valli", "VE"], - ["Sant'Anna", "VE"], - ["Ca' Bianca", "VE"], - ["Sottomarina", "VE"], - ["Chioggia", "VE"], - ["Sant'Anna Di Chioggia", "VE"], - ["Cavanella D'Adige", "VE"], - ], - "30016": [["Iesolo", "VE"], ["Lido Di Iesolo", "VE"]], - "30020": [ - ["Eraclea Mare", "VE"], - ["Torre Di Mosto", "VE"], - ["Giai", "VE"], - ["Cinto Caomaggiore", "VE"], - ["Stretti", "VE"], - ["Pramaggiore", "VE"], - ["Stretti Di Eraclea", "VE"], - ["Portegrandi", "VE"], - ["Belfiore", "VE"], - ["Marcon", "VE"], - ["Torre Di Fine", "VE"], - ["Meolo", "VE"], - ["Noventa Di Piave", "VE"], - ["Loncon", "VE"], - ["Pramaggiore Blessaglia", "VE"], - ["Quarto D'Altino", "VE"], - ["Fossalta Di Piave", "VE"], - ["Annone Veneto", "VE"], - ["Gruaro", "VE"], - ["Gaggio", "VE"], - ["Losson Della Battaglia", "VE"], - ["San Liberale", "VE"], - ["Bagnara", "VE"], - ["Eraclea", "VE"], - ["Ponte Crepaldo", "VE"], - ], - "30021": [ - ["Ca' Corniani", "VE"], - ["San Giorgio Di Livenza", "VE"], - ["San Gaetano", "VE"], - ["Caorle", "VE"], - ["Porto Santa Margherita", "VE"], - ], - "30022": [["Ceggia", "VE"]], - "30023": [["Concordia Sagittaria", "VE"], ["Sindacale", "VE"]], - "30024": [["Croce", "VE"], ["Musile Di Piave", "VE"]], - "30025": [ - ["Cintello", "VE"], - ["Teglio Veneto", "VE"], - ["Fossalta Di Portogruaro", "VE"], - ["Fratta", "VE"], - ["Villanova Santa Margherita", "VE"], - ], - "30026": [["Lugugnana", "VE"], ["Summaga", "VE"], ["Pradipozzo", "VE"], ["Portogruaro", "VE"]], - "30027": [["Passarella", "VE"], ["Calvecchia", "VE"], ["San Dona' Di Piave", "VE"]], - "30028": [ - ["Bibione", "VE"], - ["Cesarolo", "VE"], - ["San Giorgio Al Tagliamento", "VE"], - ["Bibione Pineda", "VE"], - ["Pozzi San Michele Tagliamento", "VE"], - ["San Michele Al Tagliamento", "VE"], - ["Pozzi", "VE"], - ], - "30029": [["La Salute Di Livenza", "VE"], ["Corbolone", "VE"], ["Santo Stino Di Livenza", "VE"]], - "30030": [ - ["Fosso'", "VE"], - ["Martellago", "VE"], - ["Sandon", "VE"], - ["Maerne", "VE"], - ["Olmo Di Martellago", "VE"], - ["Galta", "VE"], - ["Salzano", "VE"], - ["Olmo", "VE"], - ["Tombelle", "VE"], - ["Pianiga", "VE"], - ["Cazzago Di Pianiga", "VE"], - ["Robegano", "VE"], - ["Vigonovo", "VE"], - ["Cazzago", "VE"], - ], - "30031": [["Arino", "VE"], ["Sambruson", "VE"], ["Dolo", "VE"]], - "30032": [["Fiesso D'Artico", "VE"]], - "30033": [["Moniego", "VE"], ["Cappelletta", "VE"], ["Moniego Di Noale", "VE"], ["Noale", "VE"]], - "30034": [ - ["Gambarare", "VE"], - ["Marano", "VE"], - ["Marano Veneziano", "VE"], - ["Mira Porte", "VE"], - ["Oriago", "VE"], - ["Borbiago", "VE"], - ["Mira Taglio", "VE"], - ["Mira", "VE"], - ], - "30035": [["Ballo'", "VE"], ["Zianigo", "VE"], ["Mirano", "VE"], ["Vetrego", "VE"], ["Scaltenigo", "VE"]], - "30036": [ - ["Caltana", "VE"], - ["Santa Maria Di Sala", "VE"], - ["Veternigo", "VE"], - ["Stigliano", "VE"], - ["Sant'Angelo", "VE"], - ], - "30037": [["Peseggia", "VE"], ["Scorze'", "VE"], ["Rio San Martino", "VE"]], - "30038": [["Fornase", "VE"], ["Orgnano", "VE"], ["Spinea", "VE"]], - "30039": [["San Pietro Di Stra'", "VE"], ["Stra", "VE"], ["Paluello", "VE"]], - "30100": [["Venezia", "VE"]], - "30121": [["Venezia", "VE"], ["Cannaregio", "VE"]], - "30122": [["Sant'Elena", "VE"], ["Venezia", "VE"], ["Castello", "VE"]], - "30123": [["Venezia", "VE"], ["Dorsoduro", "VE"]], - "30124": [["Venezia", "VE"], ["San Marco", "VE"]], - "30125": [["San Polo", "VE"], ["Venezia", "VE"]], - "30126": [ - ["Venezia", "VE"], - ["Malamocco", "VE"], - ["Lido", "VE"], - ["Alberoni", "VE"], - ["Portosecco", "VE"], - ["San Pietro In Volta", "VE"], - ["Vianelli", "VE"], - ["Zennari", "VE"], - ["Scarpa", "VE"], - ["Lido Di Venezia", "VE"], - ["Busetti", "VE"], - ], - "30131": [["Venezia", "VE"]], - "30132": [["Venezia", "VE"], ["Sant'Elena", "VE"]], - "30133": [["Sacca Fisola", "VE"], ["Venezia", "VE"], ["Giudecca", "VE"]], - "30135": [["Santa Croce", "VE"], ["Venezia", "VE"]], - "30141": [["Venezia", "VE"], ["Murano", "VE"]], - "30142": [ - ["Mazzorbo", "VE"], - ["San Martino Destra", "VE"], - ["Burano", "VE"], - ["San Martino Sinistra", "VE"], - ["Giudecca Di Burano", "VE"], - ["Terranova", "VE"], - ["San Mauro", "VE"], - ], - "30170": [["Venezia Mestre", "VE"]], - "30171": [["Mestre", "VE"]], - "30172": [["Mestre", "VE"]], - "30173": [["Campalto", "VE"], ["Mestre", "VE"], ["Venezia", "VE"], ["Villaggio San Marco", "VE"]], - "30174": [["Zelarino", "VE"], ["Gazzera", "VE"], ["Mestre", "VE"]], - "30175": [["Mestre", "VE"], ["Ca' Emiliani", "VE"], ["Carpenedo", "VE"], ["Marghera", "VE"]], - "36010": [ - ["Camporovere", "VI"], - ["Chiuppano", "VI"], - ["Seghe Di Velo", "VI"], - ["Mezzaselva Di Roana", "VI"], - ["Cavazzale", "VI"], - ["Laghi", "VI"], - ["Cesuna", "VI"], - ["Velo", "VI"], - ["Roana", "VI"], - ["Carre'", "VI"], - ["Canove Di Roana", "VI"], - ["Cogollo Del Cengio", "VI"], - ["Monticello Conte Otto", "VI"], - ["Tresche' Conca", "VI"], - ["Rotzo", "VI"], - ["Seghe", "VI"], - ["Foza", "VI"], - ["Vigardolo", "VI"], - ["Zane'", "VI"], - ["Posina", "VI"], - ["Velo D'Astico", "VI"], - ], - "36011": [["Arsiero", "VI"], ["Castana", "VI"]], - "36012": [["Rigoni", "VI"], ["Rodeghieri", "VI"], ["Asiago", "VI"], ["Sasso", "VI"]], - "36013": [["Piovene Rocchette", "VI"]], - "36014": [["Santorso", "VI"]], - "36015": [ - ["Monte Magre'", "VI"], - ["Giavenale", "VI"], - ["Sant'Ulderico Di Tretto", "VI"], - ["Magre' Di Schio", "VI"], - ["Schio", "VI"], - ["Tretto", "VI"], - ["Sant'Ulderico", "VI"], - ], - "36016": [["Thiene", "VI"], ["Rozzampia", "VI"]], - "36020": [ - ["Zovencedo", "VI"], - ["San Marino", "VI"], - ["Solagna", "VI"], - ["Albettone", "VI"], - ["Campiglia Dei Berici", "VI"], - ["Agugliaro", "VI"], - ["Ponte Di Castegnero", "VI"], - ["Villaganzerla", "VI"], - ["Primolano", "VI"], - ["Asigliano Veneto", "VI"], - ["Pove Del Grappa", "VI"], - ["Castegnero", "VI"], - ["Carpane'", "VI"], - ], - "36021": [["Villaga", "VI"], ["Ponte Di Barbarano", "VI"], ["Barbarano Vicentino", "VI"]], - "36022": [["San Giuseppe", "VI"], ["San Zeno", "VI"], ["San Giuseppe Di Cassola", "VI"], ["Cassola", "VI"]], - "36023": [["Longare", "VI"], ["Lumignano", "VI"], ["Bugano", "VI"]], - "36024": [["Mossano", "VI"], ["Nanto", "VI"], ["Ponte Di Nanto", "VI"]], - "36025": [["Noventa Vicentina", "VI"]], - "36026": [["Cagnano", "VI"], ["Poiana Maggiore", "VI"]], - "36027": [["Rosa'", "VI"]], - "36028": [["Rossano Veneto", "VI"]], - "36029": [ - ["Campolongo Sul Brenta", "VI"], - ["Valstagna", "VI"], - ["San Nazario", "VI"], - ["Cismon Del Grappa", "VI"], - ], - "36030": [ - ["Lugo Di Vicenza", "VI"], - ["Cresole", "VI"], - ["Sarcedo", "VI"], - ["Fara Vicentino", "VI"], - ["Novoledo", "VI"], - ["Zugliano", "VI"], - ["Grumolo Pedemonte", "VI"], - ["Priabona", "VI"], - ["Sant'Antonio", "VI"], - ["Leva' Di Montecchio Precalcino", "VI"], - ["Villaverla", "VI"], - ["Caltrano", "VI"], - ["Staro", "VI"], - ["Calvene", "VI"], - ["Montecchio Precalcino", "VI"], - ["Monte Di Malo", "VI"], - ["Rettorgole", "VI"], - ["Sant'Antonio Valli", "VI"], - ["Valli Del Pasubio", "VI"], - ["Motta", "VI"], - ["San Vito Di Leguzzano", "VI"], - ["Costabissara", "VI"], - ["Leva'", "VI"], - ["Preara", "VI"], - ["San Giorgio Di Perlena", "VI"], - ["Centrale", "VI"], - ["Caldogno", "VI"], - ], - "36031": [["Dueville", "VI"], ["Povolaro", "VI"]], - "36032": [["Gallio", "VI"]], - "36033": [["Isola Vicentina", "VI"], ["Castelnovo", "VI"]], - "36034": [["Malo", "VI"], ["San Tomio", "VI"]], - "36035": [["Marano Vicentino", "VI"]], - "36036": [["Torrebelvicino", "VI"], ["Pievebelvicino", "VI"]], - "36040": [ - ["Orgiano", "VI"], - ["Lastebasse", "VI"], - ["Pedescala", "VI"], - ["Poiana Di Granfion", "VI"], - ["Valdastico", "VI"], - ["Casotto", "VI"], - ["Lerino", "VI"], - ["Pedemonte", "VI"], - ["Brendola", "VI"], - ["Pederiva", "VI"], - ["San Pietro Valdastico", "VI"], - ["Marola", "VI"], - ["Sossano", "VI"], - ["Laverda", "VI"], - ["Sarego", "VI"], - ["Grancona", "VI"], - ["Grisignano Di Zocco", "VI"], - ["Salcedo", "VI"], - ["Grumolo Delle Abbadesse", "VI"], - ["Vo'", "VI"], - ["San Germano Dei Berici", "VI"], - ["Monticello Di Fara", "VI"], - ["Meledo", "VI"], - ["Tonezza Del Cimone", "VI"], - ["Barcarola", "VI"], - ["Torri Di Quartesolo", "VI"], - ], - "36042": [["Mirabella", "VI"], ["Maragnole", "VI"], ["Breganze", "VI"]], - "36043": [["Camisano Vicentino", "VI"]], - "36045": [ - ["Lonigo", "VI"], - ["Bagnolo Di Lonigo", "VI"], - ["Bagnolo", "VI"], - ["Almisano", "VI"], - ["Alonte", "VI"], - ], - "36046": [["Santa Caterina", "VI"], ["Conco", "VI"], ["Lusiana", "VI"]], - "36047": [["Montegalda", "VI"], ["Montegaldella", "VI"]], - "36050": [ - ["Bolzano Vicentino", "VI"], - ["Monteviale", "VI"], - ["Friola", "VI"], - ["Villaggio Montegrappa", "VI"], - ["Pozzoleone", "VI"], - ["Lanze'", "VI"], - ["Bressanvido", "VI"], - ["Zermeghedo", "VI"], - ["Poianella", "VI"], - ["Sovizzo", "VI"], - ["Cartigliano", "VI"], - ["Ospedaletto", "VI"], - ["Montorso Vicentino", "VI"], - ["Quinto Vicentino", "VI"], - ["Lisiera", "VI"], - ["Gambugliano", "VI"], - ], - "36051": [["Olmo", "VI"], ["Creazzo", "VI"]], - "36052": [["Enego", "VI"], ["Stoner", "VI"]], - "36053": [["Gambellara", "VI"]], - "36054": [["Montebello Vicentino", "VI"]], - "36055": [["Nove", "VI"]], - "36056": [["Tezze Sul Brenta", "VI"], ["Belvedere", "VI"]], - "36057": [ - ["Tormeno", "VI"], - ["Arcugnano", "VI"], - ["Pianezze Del Lago", "VI"], - ["Nogarazza", "VI"], - ["Torri D'Arcugnano", "VI"], - ], - "36060": [ - ["Fellette Di Romano D'Ezzellino", "VI"], - ["Fellette", "VI"], - ["Romano D'Ezzelino", "VI"], - ["Villa Di Molvena", "VI"], - ["Spin", "VI"], - ["Pianezze", "VI"], - ["Longa", "VI"], - ["Schiavon", "VI"], - ], - "36061": [["Valrovina", "VI"], ["Bassano Del Grappa", "VI"], ["Campese", "VI"]], - "36062": [["Fontanelle", "VI"]], - "36063": [["Valle San Floriano", "VI"], ["Marostica", "VI"], ["Vallonara", "VI"], ["Crosara", "VI"]], - "36064": [["Molvena", "VI"], ["Mason Vicentino", "VI"], ["Villaraspa", "VI"]], - "36065": [["Mussolente", "VI"], ["Casoni", "VI"]], - "36066": [["Sandrigo", "VI"]], - "36070": [ - ["Molino Di Altissimo", "VI"], - ["Altissimo", "VI"], - ["Molino", "VI"], - ["Brogliano", "VI"], - ["Lovara", "VI"], - ["Ferrazza", "VI"], - ["Trissino", "VI"], - ["San Pietro Mussolino", "VI"], - ["San Pietro Vecchio", "VI"], - ["Crespadoro", "VI"], - ["Nogarole Vicentino", "VI"], - ["Castelgomberto", "VI"], - ], - "36071": [["Pugnello", "VI"], ["Arzignano", "VI"], ["Tezze", "VI"]], - "36072": [["Chiampo", "VI"]], - "36073": [["Cereda", "VI"], ["Cornedo Vicentino", "VI"]], - "36075": [ - ["Montecchio Maggiore", "VI"], - ["Alte Di Montecchio Maggiore", "VI"], - ["Alte Ceccato", "VI"], - ["Sant'Urbano", "VI"], - ], - "36076": [["Rovegliana", "VI"], ["Recoaro Terme", "VI"]], - "36077": [["Valmarana", "VI"], ["Altavilla Vicentina", "VI"], ["Tavernelle Vicentina", "VI"]], - "36078": [ - ["Maglio Di Sopra", "VI"], - ["Novale", "VI"], - ["Castelvecchio", "VI"], - ["Valdagno", "VI"], - ["Piana", "VI"], - ["San Quirico", "VI"], - ], - "36100": [ - ["Vicenza", "VI"], - ["Setteca'", "VI"], - ["Anconetta", "VI"], - ["Longara", "VI"], - ["Polegge", "VI"], - ["Campedello", "VI"], - ], - "37010": [ - ["Brenzone", "VR"], - ["Albare' Stazione", "VR"], - ["Albare'", "VR"], - ["Torri Del Benaco", "VR"], - ["Costermano", "VR"], - ["Magugnano", "VR"], - ["San Zeno Di Montagna", "VR"], - ["Piovezzano", "VR"], - ["Rivoli Veronese", "VR"], - ["Castelletto Di Brenzone", "VR"], - ["Sega", "VR"], - ["Sega Di Cavaion", "VR"], - ["Affi", "VR"], - ["San Zeno", "VR"], - ["Cavaion Veronese", "VR"], - ["Castion Veronese", "VR"], - ["Pastrengo", "VR"], - ], - "37011": [["Cisano", "VR"], ["Calmasino", "VR"], ["Bardolino", "VR"]], - "37012": [["Bussolengo", "VR"], ["San Vito Al Mantico", "VR"]], - "37013": [["Pesina", "VR"], ["Spiazzi", "VR"], ["Caprino Veronese", "VR"], ["Boi", "VR"]], - "37014": [["Oliosi", "VR"], ["Castelnuovo Del Garda", "VR"], ["Sandra'", "VR"], ["Cavalcaselle", "VR"]], - "37015": [["Gargagnago", "VR"], ["Domegliara", "VR"], ["Monte", "VR"], ["Sant'Ambrogio Di Valpolicella", "VR"]], - "37016": [["Garda", "VR"]], - "37017": [["Lazise", "VR"], ["Cola' Di Lazise", "VR"], ["Cola'", "VR"], ["Pacengo", "VR"]], - "37018": [["Cassone", "VR"], ["Malcesine", "VR"]], - "37019": [["Peschiera Del Garda", "VR"], ["San Benedetto Di Lugana", "VR"]], - "37020": [ - ["Rivalta", "VR"], - ["Valgatara", "VR"], - ["Sant'Anna D'Alfaedo", "VR"], - ["Belluno Veronese", "VR"], - ["Peri", "VR"], - ["Cerro Veronese", "VR"], - ["Brentino Belluno", "VR"], - ["Ferrara Di Monte Baldo", "VR"], - ["Cerna", "VR"], - ["Marano Di Valpolicella", "VR"], - ["Prun", "VR"], - ["Fosse", "VR"], - ["Fane", "VR"], - ["Erbezzo", "VR"], - ["Dolce'", "VR"], - ["Volargne", "VR"], - ], - "37021": [["Bosco Chiesanuova", "VR"], ["Corbiolo", "VR"], ["Lughezzano", "VR"]], - "37022": [["Fumane", "VR"], ["Cavalo", "VR"], ["Breonio", "VR"]], - "37023": [ - ["Stallavena", "VR"], - ["Romagnano", "VR"], - ["Azzago", "VR"], - ["Grezzana", "VR"], - ["Lugo Di Grezzana", "VR"], - ], - "37024": [ - ["Negrar", "VR"], - ["Santa Maria Di Negrar", "VR"], - ["Arbizzano Di Valpolicella", "VR"], - ["Arbizzano", "VR"], - ], - "37026": [["Ospedaletto", "VR"], ["Pescantina", "VR"], ["Settimo", "VR"]], - "37028": [["Rovere' Veronese", "VR"]], - "37029": [ - ["Pedemonte", "VR"], - ["San Floriano", "VR"], - ["Negarine", "VR"], - ["San Pietro In Cariano", "VR"], - ["Corrubbio", "VR"], - ["Bure", "VR"], - ], - "37030": [ - ["Vestenanova", "VR"], - ["Lavagno", "VR"], - ["Montecchia Di Crosara", "VR"], - ["Vago", "VR"], - ["San Vittore", "VR"], - ["Colognola Ai Colli", "VR"], - ["San Bortolo", "VR"], - ["Mezzane Di Sotto", "VR"], - ["Selva Di Progno", "VR"], - ["Stra'", "VR"], - ["Velo Veronese", "VR"], - ["Montanara", "VR"], - ["Terrossa", "VR"], - ["San Rocco Di Piegara", "VR"], - ["San Briccio", "VR"], - ["Ronca'", "VR"], - ["San Mauro Di Saline", "VR"], - ["Cazzano Di Tramigna", "VR"], - ["San Pietro", "VR"], - ["Badia Calavena", "VR"], - ], - "37031": [["Cellore", "VR"], ["Illasi", "VR"]], - "37032": [["Monteforte D'Alpone", "VR"], ["Brognoligo", "VR"], ["Costalunga", "VR"]], - "37035": [["San Giovanni Ilarione", "VR"]], - "37036": [["Ferrazze", "VR"], ["Marcellise", "VR"], ["San Martino Buon Albergo", "VR"], ["Mambrotta", "VR"]], - "37038": [["Soave", "VR"], ["Castelletto", "VR"]], - "37039": [["Tregnago", "VR"], ["Cogollo", "VR"], ["Centro", "VR"]], - "37040": [ - ["Arcole", "VR"], - ["Caselle", "VR"], - ["Marega", "VR"], - ["Begosso", "VR"], - ["Zimella", "VR"], - ["Bevilacqua", "VR"], - ["Terrazzo", "VR"], - ["Bonavigo", "VR"], - ["Roveredo Di Gua'", "VR"], - ["San Gregorio Di Veronella", "VR"], - ["San Gregorio", "VR"], - ["Santo Stefano Di Zimella", "VR"], - ["Sabbion", "VR"], - ["Veronella", "VR"], - ["Pressana", "VR"], - ["Santo Stefano", "VR"], - ["Boschi Sant'Anna", "VR"], - ["Gazzolo", "VR"], - ["Orti", "VR"], - ], - "37041": [["Presina", "VR"], ["Albaredo D'Adige", "VR"], ["Michellorie", "VR"], ["Coriano Veronese", "VR"]], - "37042": [["Caldiero", "VR"], ["Caldierino", "VR"]], - "37043": [["Castagnaro", "VR"], ["Mena'", "VR"], ["Mena' Vallestrema", "VR"]], - "37044": [["Cologna Veneta", "VR"], ["San Sebastiano", "VR"], ["Sule'", "VR"], ["Baldaria", "VR"]], - "37045": [ - ["San Pietro Di Legnago", "VR"], - ["Casette", "VR"], - ["Gallese", "VR"], - ["Legnago", "VR"], - ["Vangadizza", "VR"], - ["Terranegra", "VR"], - ], - "37046": [["Minerbe", "VR"]], - "37047": [["Locara", "VR"], ["San Bonifacio", "VR"], ["Prova", "VR"], ["Villabella", "VR"]], - "37049": [["Spinimbecco", "VR"], ["Carpi Di Villa Bartolomea", "VR"], ["Villa Bartolomea", "VR"]], - "37050": [ - ["Belfiore", "VR"], - ["Concamarise", "VR"], - ["Bonavicina", "VR"], - ["Vallese", "VR"], - ["San Pietro Di Morubio", "VR"], - ["Roverchiaretta", "VR"], - ["Piazza", "VR"], - ["Roverchiara", "VR"], - ["Isola Rizza", "VR"], - ["Ca' Degli Oppi", "VR"], - ["Angiari", "VR"], - ["Oppeano", "VR"], - ["Palu'", "VR"], - ], - "37051": [["Bovolone", "VR"], ["Villafontana", "VR"]], - "37052": [["Casaleone", "VR"]], - "37053": [["Cherubine", "VR"], ["Asparetto", "VR"], ["Cerea", "VR"]], - "37054": [["Nogara", "VR"]], - "37055": [["Tombazosana", "VR"], ["Albaro", "VR"], ["Ronco All'Adige", "VR"]], - "37056": [["Crosarol", "VR"], ["Valmorsel", "VR"], ["Salizzole", "VR"], ["Bionde", "VR"], ["Engazza'", "VR"]], - "37057": [["Raldon", "VR"], ["San Giovanni Lupatoto", "VR"], ["Pozzo Camacici", "VR"]], - "37058": [["Sanguinetto", "VR"]], - "37059": [ - ["Zevio", "VR"], - ["Campagnola", "VR"], - ["Perzacco", "VR"], - ["Volon", "VR"], - ["Santa Maria Di Zevio", "VR"], - ], - "37060": [ - ["Maccacari", "VR"], - ["Pradelle", "VR"], - ["Castel D'Azzano", "VR"], - ["Pontepossero", "VR"], - ["Bovo", "VR"], - ["Correzzo", "VR"], - ["Azzano", "VR"], - ["Roncanova", "VR"], - ["Buttapietra", "VR"], - ["Bagnolo", "VR"], - ["Palazzolo", "VR"], - ["Bonferraro", "VR"], - ["Sorga'", "VR"], - ["San Pietro In Valle", "VR"], - ["Erbe'", "VR"], - ["Sona", "VR"], - ["Marchesino", "VR"], - ["Beccacivetta", "VR"], - ["Roncoleva'", "VR"], - ["Trevenzuolo", "VR"], - ["San Giorgio In Salici", "VR"], - ["Mozzecane", "VR"], - ["Nogarole Rocca", "VR"], - ["Lugagnano", "VR"], - ["Gazzo Veronese", "VR"], - ], - "37062": [["Dossobuono", "VR"], ["Alpo", "VR"]], - "37063": [["Pellegrina", "VR"], ["Tarmassia", "VR"], ["Isola Della Scala", "VR"]], - "37064": [["Povegliano Veronese", "VR"]], - "37066": [["Custoza", "VR"], ["Sommacampagna", "VR"], ["Caselle Di Sommacampagna", "VR"]], - "37067": [["Salionze", "VR"], ["Valeggio Sul Mincio", "VR"]], - "37068": [["Forette", "VR"], ["Vigasio", "VR"], ["Isolalta", "VR"]], - "37069": [ - ["Pizzoletta", "VR"], - ["Villafranca Di Verona", "VR"], - ["Caluri", "VR"], - ["Quaderni", "VR"], - ["Rosegaferro", "VR"], - ], - "37100": [["Verona", "VR"]], - "37121": [["Verona", "VR"]], - "37122": [["Verona", "VR"]], - "37123": [["Verona", "VR"]], - "37124": [["Verona", "VR"]], - "37125": [["Quinzano", "VR"], ["Verona", "VR"]], - "37126": [["Verona", "VR"]], - "37127": [["Verona", "VR"], ["Avesa", "VR"]], - "37128": [["Verona", "VR"]], - "37129": [["Verona", "VR"]], - "37131": [["Verona", "VR"]], - "37132": [["Verona", "VR"], ["San Michele Extra", "VR"]], - "37133": [["Verona", "VR"]], - "37134": [["Verona", "VR"]], - "37135": [["Verona", "VR"]], - "37136": [["Verona", "VR"]], - "37137": [["Verona", "VR"]], - "37138": [["Verona", "VR"]], - "37139": [["San Massimo All'Adige", "VR"], ["Verona", "VR"], ["Chievo", "VR"]], - "37142": [["Verona", "VR"]], - } - - city_prefixes = ("San", "Borgo", "Sesto", "Quarto", "Settimo") - city_suffixes = ( - "a mare", - "lido", - "ligure", - "del friuli", - "salentino", - "calabro", - "veneto", - "nell'emilia", - "umbro", - "laziale", - "terme", - "sardo", - ) - building_number_formats = ("@@#",) - street_suffixes = ( - "Piazza", - "Strada", - "Via", - "Borgo", - "Contrada", - "Rotonda", - "Incrocio", - "Viale", - "Stretto", - "Vicolo", - "Canale", - ) - postcode_formats = cap_city_province.keys() - - cities = getcities(cap_city_province) - states = ( - "Agrigento", - "Alessandria", - "Ancona", - "Aosta", - "Arezzo", - "Ascoli Piceno", - "Asti", - "Avellino", - "Bari", - "Barletta-Andria-Trani", - "Belluno", - "Benevento", - "Bergamo", - "Biella", - "Bologna", - "Bolzano", - "Brescia", - "Brindisi", - "Cagliari", - "Caltanissetta", - "Campobasso", - "Carbonia-Iglesias", - "Caserta", - "Catania", - "Catanzaro", - "Chieti", - "Como", - "Cosenza", - "Cremona", - "Crotone", - "Cuneo", - "Enna", - "Fermo", - "Ferrara", - "Firenze", - "Foggia", - "Forlì-Cesena", - "Frosinone", - "Genova", - "Gorizia", - "Grosseto", - "Imperia", - "Isernia", - "La Spezia", - "L'Aquila", - "Latina", - "Lecce", - "Lecco", - "Livorno", - "Lodi", - "Lucca", - "Macerata", - "Mantova", - "Massa-Carrara", - "Matera", - "Messina", - "Milano", - "Modena", - "Monza e della Brianza", - "Napoli", - "Novara", - "Nuoro", - "Olbia-Tempio", - "Oristano", - "Padova", - "Palermo", - "Parma", - "Pavia", - "Perugia", - "Pesaro e Urbino", - "Pescara", - "Piacenza", - "Pisa", - "Pistoia", - "Pordenone", - "Potenza", - "Prato", - "Ragusa", - "Ravenna", - "Reggio Calabria", - "Reggio Emilia", - "Rieti", - "Rimini", - "Roma", - "Rovigo", - "Salerno", - "Medio Campidano", - "Sassari", - "Savona", - "Siena", - "Siracusa", - "Sondrio", - "Taranto", - "Teramo", - "Terni", - "Torino", - "Ogliastra", - "Trapani", - "Trento", - "Treviso", - "Trieste", - "Udine", - "Varese", - "Venezia", - "Verbano-Cusio-Ossola", - "Vercelli", - "Verona", - "Vibo Valentia", - "Vicenza", - "Viterbo", - ) - states_abbr = ( - "AG", - "AL", - "AN", - "AO", - "AR", - "AP", - "AT", - "AV", - "BA", - "BT", - "BL", - "BN", - "BG", - "BI", - "BO", - "BZ", - "BS", - "BR", - "CA", - "CL", - "CB", - "CI", - "CE", - "CT", - "CZ", - "CH", - "CO", - "CS", - "CR", - "KR", - "CN", - "EN", - "FM", - "FE", - "FI", - "FG", - "FC", - "FR", - "GE", - "GO", - "GR", - "IM", - "IS", - "SP", - "AQ", - "LT", - "LE", - "LC", - "LI", - "LO", - "LU", - "MC", - "MN", - "MS", - "MT", - "ME", - "MI", - "MO", - "MB", - "NA", - "NO", - "NU", - "OT", - "OR", - "PD", - "PA", - "PR", - "PV", - "PG", - "PU", - "PE", - "PC", - "PI", - "PT", - "PN", - "PZ", - "PO", - "RG", - "RA", - "RC", - "RE", - "RI", - "RN", - "RM", - "RO", - "SA", - "VS", - "SS", - "SV", - "SI", - "SR", - "SO", - "TA", - "TE", - "TR", - "TO", - "OG", - "TP", - "TN", - "TV", - "TS", - "UD", - "VA", - "VE", - "VB", - "VC", - "VR", - "VV", - "VI", - "VT", - ) - countries = ( - "Afghanistan", - "Albania", - "Algeria", - "American Samoa", - "Andorra", - "Angola", - "Anguilla", - "Antartide (territori a sud del 60° parallelo)", - "Antigua e Barbuda", - "Argentina", - "Armenia", - "Aruba", - "Australia", - "Austria", - "Azerbaijan", - "Bahamas", - "Bahrain", - "Bangladesh", - "Barbados", - "Bielorussia", - "Belgio", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivia", - "Bosnia e Herzegovina", - "Botswana", - "Bouvet Island (Bouvetoya)", - "Brasile", - "Territorio dell'arcipelago indiano", - "Isole Vergini Britanniche", - "Brunei Darussalam", - "Bulgaria", - "Burkina Faso", - "Burundi", - "Cambogia", - "Cameroon", - "Canada", - "Capo Verde", - "Isole Cayman", - "Repubblica Centrale Africana", - "Chad", - "Cile", - "Cina", - "Isola di Pasqua", - "Isola di Cocos (Keeling)", - "Colombia", - "Comoros", - "Congo", - "Isole Cook", - "Costa Rica", - "Costa d'Avorio", - "Croazia", - "Cuba", - "Cipro", - "Repubblica Ceca", - "Danimarca", - "Gibuti", - "Repubblica Dominicana", - "Equador", - "Egitto", - "El Salvador", - "Guinea Equatoriale", - "Eritrea", - "Estonia", - "Etiopia", - "Isole Faroe", - "Isole Falkland (Malvinas)", - "Fiji", - "Finlandia", - "Francia", - "Guyana Francese", - "Polinesia Francese", - "Territori Francesi del sud", - "Gabon", - "Gambia", - "Georgia", - "Germania", - "Ghana", - "Gibilterra", - "Grecia", - "Groenlandia", - "Grenada", - "Guadalupa", - "Guam", - "Guatemala", - "Guernsey", - "Guinea", - "Guinea-Bissau", - "Guyana", - "Haiti", - "Heard Island and McDonald Islands", - "Città del Vaticano", - "Honduras", - "Hong Kong", - "Ungheria", - "Islanda", - "India", - "Indonesia", - "Iran", - "Iraq", - "Irlanda", - "Isola di Man", - "Israele", - "Italia", - "Giamaica", - "Giappone", - "Jersey", - "Giordania", - "Kazakhstan", - "Kenya", - "Kiribati", - "Korea", - "Kuwait", - "Republicca Kirgiza", - "Repubblica del Laos", - "Latvia", - "Libano", - "Lesotho", - "Liberia", - "Libyan Arab Jamahiriya", - "Liechtenstein", - "Lituania", - "Lussemburgo", - "Macao", - "Macedonia del Nord", - "Madagascar", - "Malawi", - "Malesia", - "Maldive", - "Mali", - "Malta", - "Isole Marshall", - "Martinica", - "Mauritania", - "Mauritius", - "Mayotte", - "Messico", - "Micronesia", - "Moldova", - "Principato di Monaco", - "Mongolia", - "Montenegro", - "Montserrat", - "Marocco", - "Mozambico", - "Myanmar", - "Namibia", - "Nauru", - "Nepal", - "Antille Olandesi", - "Olanda", - "Nuova Caledonia", - "Nuova Zelanda", - "Nicaragua", - "Niger", - "Nigeria", - "Niue", - "Isole Norfolk", - "Northern Mariana Islands", - "Norvegia", - "Oman", - "Pakistan", - "Palau", - "Palestina", - "Panama", - "Papua Nuova Guinea", - "Paraguay", - "Peru", - "Filippine", - "Pitcairn Islands", - "Polonia", - "Portogallo", - "Porto Rico", - "Qatar", - "Reunion", - "Romania", - "Russia", - "Rwanda", - "San Bartolomeo", - "Sant'Elena", - "Saint Kitts and Nevis", - "Saint Lucia", - "Saint Martin", - "Saint Pierre and Miquelon", - "Saint Vincent and the Grenadines", - "Samoa", - "San Marino", - "Sao Tome and Principe", - "Arabia Saudita", - "Senegal", - "Serbia", - "Seychelles", - "Sierra Leone", - "Singapore", - "Slovenia", - "Isole Solomon", - "Somalia", - "Sud Africa", - "Georgia del sud e South Sandwich Islands", - "Spagna", - "Sri Lanka", - "Sudan", - "Suriname", - "Svalbard & Jan Mayen Islands", - "Swaziland", - "Svezia", - "Svizzera", - "Siria", - "Taiwan", - "Tajikistan", - "Tanzania", - "Tailandia", - "Timor-Leste", - "Togo", - "Tokelau", - "Tonga", - "Trinidad e Tobago", - "Tunisia", - "Turchia", - "Turkmenistan", - "Isole di Turks and Caicos", - "Tuvalu", - "Uganda", - "Ucraina", - "Emirati Arabi Uniti", - "Regno Unito", - "Stati Uniti d'America", - "United States Minor Outlying Islands", - "Isole Vergini Statunitensi", - "Uruguay", - "Uzbekistan", - "Vanuatu", - "Venezuela", - "Vietnam", - "Wallis and Futuna", - "Western Sahara", - "Yemen", - "Zambia", - "Zimbabwe", - ) - city_formats = ( - "{{city_prefix}} {{first_name}} {{city_suffix}}", - "{{city_prefix}} {{first_name}}", - "{{first_name}} {{city_suffix}}", - "{{last_name}} {{city_suffix}}", - ) - street_name_formats = ( - "{{street_suffix}} {{first_name}}", - "{{street_suffix}} {{last_name}}", - ) - street_address_formats = ( - "{{street_name}}, {{building_number}}", - "{{street_name}}, {{building_number}} {{secondary_address}}", - ) - address_formats = ("{{street_address}}\n{{postcode_city_province}}",) - secondary_address_formats = ("Appartamento @#", "Piano #") - - def postcode_city_province(self) -> str: - """ - :sample: - """ - cap = self.postcode() - rand_city_prov: List[str] = self.random_element(self.cap_city_province[cap]) - return cap + ", " + rand_city_prov[0] + " (" + rand_city_prov[1] + ")" - - def city(self) -> str: - """ - :sample: - """ - return self.random_element(self.cities) - - def city_prefix(self) -> str: - """ - :sample: - """ - return self.random_element(self.city_prefixes) - - def secondary_address(self) -> str: - """ - :sample: - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - """ - :sample: - """ - return self.random_element(self.states) - - state = administrative_unit - - def state_abbr(self) -> str: - """ - :sample: - """ - return self.random_element(self.states_abbr) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/it_IT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/it_IT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 17af9226e9481d0bf5679a1c4d3f3a28f004f7fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729558 zcmZVH2mDR-AIEY0_TEc-M@73((H^w5G=$3!Ss_I!m9|0)O%?4;rJd4Lb}30kgLbJD zs{i|ZKcDlu=l*{lk9&U4&*$^K=bU@i{oZrVz2=sb6gG?g%`EJ{d7Hv!t3u#|9RIs^ zUtvjn-RSSjc7ZdU(dEfMh@>gc+ehgcH6z}Fimrp zAw7DX)1$HXu(o}AoYQ+~TRkZ(x?yd5q*6nB4;$9D-|+57c5U0ed%r2GMXsKo?SC3)sG#Jxtc~RMeJ3i6op*D+Kw_jS`c|m#SDLYTzc53cxhb=1aJnP&E z6%%&5san|y)l14dFD~k`AiK-oQg~&z)wV0{rLpjDYuDONL$b8OdN=FVJk_jQi+Q*zj#brkNL z>Vl6>9TQvY^VrmJQItA93{MEd6T`4;7@ib{Cx_uFVR&j7o)(7P!tnGkJR=Ox48ya+ zuzMJu9fm!^uxA+d3d2+w_71~7Vb~akeWPJxgI;mJRR54UCuE}KF(5TCI9eWqQiJi3 z)VX+QYFOmd@Q{g~bzW)&)$>yqgzCsJ92N4>c64FtqL3LKh8L5+BsC^vE)B!W!tnAi z92&xkeL>S z)5GxoFnk~kAB={Lxf@a*i4BrUDIbrx_G;G{dbNg26?T~pV z4BrjI_rh>)7``73!|VDWH7{i5hv9-STo|g+@?Df#95PG7@WU|ti0abR$074c$V6*# zS?be}Sx)A&)QaF}y?&nhB2>Smx-zwj>Q||+@i(b&L(A1+xF+PI_4-}v`;hq|41Wy6 zpTh9xF#IJ9e~pIWX!%=eZOHr{hJS?NpP?GPx^=0)Lgw#~iROQOYC~|m-E2(#6UV84 zQ~yPtpmzZO+uZ-Q2yHY*)w1-+_I!^2%?)+UziN4U3=uzznl8s&HV4?{&x%iyQTl# z%KvWdf4A|!+xp+_{O|VucL)EwqyKH?e_Q+Co&4|4{&yGu+s6O4^}oCN-`)K0?$O`q zokOp64?XtOW3RBL_D1`leNj8q9(6$bq5aVTs3Yox4nzl`gV7=AP;?kN936pO#KqC+iM-8 z=u&EznNkmuxg3o}SD-7=Rp@F{V?lUT*C@J{+I46gx*pwt#-j;nBDxXXgl;zZvb;sn zt)8(hV3MNA8JQ`HZp+BruILWSXm}^O3*C*TqI*oy`=4~L9`||1raVp2^o-2?iXO0x zhUsPfkhiim{jj1(X!R(13_XsXKu@Bl(9>uJnu(r4&!XqhEc85j0lkP`LNB9N(5vV* zQ)6vdTC)|sPVEge2fc~jGWkCKwxV}DW6SwnMekWg!?|9wt^9pOA5fc@QJb%50kwr0 zwMD5MDvQ$<->;S^^Py*L9zIgE)G``=j6Olj(5GlQ`V6f=pQA6(muMwgg}y>xqi@i+ zXf;}czB4sehxPNlq8~hCukc4jKV@WoR`iQyH2f9)hSs9rO}-BQQ1mCYb?7hjH(GD< zXKqlmQICJZ`|`i&KUa%XGZgKWQM(qY7AOm4qi9WAyIhoq@=*aQL`A3=m7r2ohRRU| zszg<&+SFLD_0b|#qerc0qV>@tRi{Tits78Fv(RdjT0k=jj< z-Kp(?_C$N3z0p2sU(^n@M;*|9Xn%A7>WDg_1JOa~U~~vN6di^RM@OI|O}+&jrPtk= zS{JX`k~>l_8C&D0D06B?<}_ux@%+=h zX7h7~YG-D&K1-SI8JV+{>5-A?*(B4eNhZ}K)4NHgPdXztX3SaNbS*mPrl?<&O#ddC zbJ7`UK*kscDl;hkI(&%_R(6PG)6We(-WI8Il^LqXuyAY|j?P0P(D~>BG!l(M7ov;M zXml~U1dTzLqRY_bXe_$IrBANpu0&U%t4)n{VfkL8=vvR%62C6>K5fUL>(LEpJeq(e znxfC;(v5oDMUSD!(G%!N^pvTwG%UTR70sYF6FuXt zY|fum^c=NW==qFRFDQDE+Dqu=j8?BGdX?I1Xf}Esyh6bS(=yUW1`qC6WqqRt_RJ6)7HqEaTeQg;Hzww$K z)xTA=n%bI-+INb+r}jfe?MFpFQTrMF;;n2M|ElOWYHPh_Q~q7iAJqOt>%5hX;V(sh zQ(Nyf8^Z=g8>#(+{`FQihW{pHact9tFmIKm{-bSMSvoHlD;vdIURElXTpr3dg(aSq zD$o=PsTFxGn#ZhEu^uJVN>LdqM-`^9Z)Bw^^~@@2)u;yfu_bJ4S?W7xsqYxSk_J=s z?iAj=vQjNo--P<6XftmaEv+o|A+u6jP}>r1g|tIX1QzpT`rdSA{;?S=M6`=EVMJJcR^K>MNn(E+A##v&`# zQBfz)MEhV?>OegXvW$iYqeIZ4CSRL}DLS0m5$H&7WozpwMV&ok)9IqZ?HPLwJrwn{jE23uX46S2>g^e8-A7SlI^$b=UuF8Gvr>OO&dJCOP&6H~I4}P&87HQDIxW5M6{uql?icXbid(U4|}4 zW6>4pN^}*v8eM~~Mc1Km=z5dyTQ?{g?-^ST6BJF%$lR#tri{$Zif+ls+^T3&MrN|2 zDVEVN%WJj;+@|Pu&)8J&P;_TT<}O8dTSmjF=pJ-0x(`i5)6xCt0rVhx2tAA*L64er zPB32QkDCDFP@cpM$xm>oQv?Je}Sx3Xi`JBr@*j7{Y|MRPMU@2ihgZy60gK=Ztn zjcLB31)i}nEmX9~G8!&MOVEetBeWEKj6Olj(5GlQ`V6f=pPNFzJS+8uqA#hfM60}& zy_T;OeNF8fui0|_R?%wD*y~)Q=sU}3_`TPx^$&`E^o+IsNzu<4nO_wBY8efG^O`+> zt)kyOqv!j!@rN>hrnAyIJ^r$chJT~=Xam}a{z3nu|4gA5pRGPywt8z}&k65Q+3KZ!NRPGzGUl#B9A;XNihm9J+OP%A`5s2G)?QdEY@O+Jqm8gC`FDpZYXP_4=5s7}xH zE!$sRgEB3>O|-tU)mzI>ZOZdE^IEiavei$^RzJ;-E7_?n(N<_{v<=!8ZHKl;JD?p= zE7Th8gmyOR(^fnuyP!6v#)>e%Z8g8UQrpdI_F8sVZ4YXDqP@ITv}a_e_SRz`&)D+W zSDALSZtpc4X9v~x%V@p7G6!U2Ix5pCoe5ibwt8yWp{EwTOJ|3kniS6RWTy^M=Fs#r z6dk6=;g*q(Ku3BjoA;ws>#RqYFwUdVG3Z!y96BDIfKEhR(MjlJllH=RTBo2>(P^j~ zIvt&X&O~RS?&xgP1NB6`P|DQUGOWekiuzD%M14^|)E}LL2AIN`qHOivvUQ#=eyxMO zW?R4zMdy0PwwIxbhGk@iD>^SDGeXh%8JPM})_QyYt}Kv$xx(ADS~bS=6LjYHR?8_;+(0Zl|VqMOjo=oWMagY$bOox|`ZmbdR^Pz3N^?_feaMrlb4O1Fo#p^QLfxH(PzP?9@ZFdf02) zg8XRkh%%2-e+)g2o-l>aZP}?O6+Pt{+v=WHG{Z6)&P30kXVG(LmdWQbn&%fhV`F_$ z(MuVbmleHY84X`Wuc6uKb@T?BgWg1Mp|{aH=w0+4nv32?AE0??K3aelqD5#iT4D;l z-fUf|%}#yf8CxPt6@6?O4L?E4(5EI}Q_B^7Mr{T9+*{c;_JyJ^J!8{Zsc4mDH2eyE zjlMDYbiP%z+H28S_V{SE27QOVM?at+(N8Atd;F~E7izzH&5nJ)DOyYI_l(*fjnO>( zX}O8b^>>knqNY|4I1Yg#W`i@$1)gbJV*F%Obc%!dbXQ%GX9{lTAKH zXNJ?y%}qEj;rxUP5-v=*DBoH>V#_&u1&ZuwvK~2>LKQ& z8Z0BVM4O;Z(PpO5zsynpFh~8vu#BSqWjLDUsGpdV+A5t@w6z}FWMsBgW;@GB+oK)4 zRkUB^q;}M!6}8rAC$ux##pH9=M$c?ZZCA9Lx3cl?u2y?^Cfe_Ebmv}<&fnSIlM{M_ zQEw_oeZn}mFKUO{qYh|4v_Cokbwr)ef#@J~FggSsiVj1Eqa)Cf=qS_~buoop>f zm!tD|@oPL59p|lVc^$7-Cr~>PbwwwklTE%pPSG<@^^7g))0F8(>(jj!9a(a84_}V1 z0>^W67V7S;Y;Mk0s~(=QarRWE7p+sMcgFMjs8wUe^ZF{&kJkOsIcNYHhz6m-Xb3tN z4MoGyaC9CTfzC%4ppj@4y3o{E6_(mXdKIHRlinLIR`wE}F~;k*oG(@FGHREjvFHkP zCAtb-jjl0;ca0ofwarOgM{S(fY?{}rb_2EXXabt(?W3z(Il4}pqjP)lws5o8Y+Sdf zb}O|>Xfm3DZbP@DJJ6lzE_64Vita)8qWjP^Q)5|}^XZzq`>8$PHJkGXReQ)Yw(UNw z%p)0@N0oVu=RcnD{3ldKhLz8|9!}l;_G$ zRg=p{1*ULzHCNYPb5ljsioF(Xak=68>#@{IQJJ@jmP>A`T#pKBm8c4(=c0yOEviFN zugzX*18RvjL7Sq@T+Ma9DSqzeXbTke-)ziVp{>z2DC)ymyY0~SXa}?-YK2;x!YA=u z-Pf0!+L_ueDC)&&3gKKwuKIJiI=g3?Xq(DS?WP`jJP*60J#}tlWxv70M zzIN2wd(GBu2i5kYwm&)mbwr)ef#@KVUh;>KI}{y;4o63zBhgW)GwOnlM#rG^mU$ex zPf8^N_i{Wqk5}VA8L)LFY1T-n?j#7SJ!ECbw^%udm5n-_qw`FmKa{I$wYfUqmz%mk+p=xBBNdIZjD{DYi%h=7k5+WCXY6^GC>moK4KMYY zt&z(VUG5ocJyy{b8JQ~;U1b>!ulAZf{~ATtdd8lAouY9Wnd=qZU>Oa^d(ECdLD58N zH>PXhb78J}ak;6Rso#>WOSkGV$ul|AWNuS*yJa-I!)rF}JGH!PsNI!OyIavz zYWHN+?p1W3XKcFD6iv^_+^^_?jLd_I9A~u4fcIOYJ!{%UjuA@w}oJsJ)0@%4qenqF3~IHN0cKhGwJJO+M{6w3Pc% zn}gm&Z=tu*JEm}!F;`b(bJdp%)8w2%uCB=DsxKGM$p>DyB{Wabd}<5OLbM1iMoUaS z)ejYYL~SYh*jw3B`$W+)YM-Lz=rfZqj}?kO_l#{lUnu(0G8(Q#tI$`j7U3O7OWu!0 zUn~C&t-eL8(His}`X2p&endZ^pV2SqSM(cNi+(qS&oa5Xhb~wBIo6uAPLIDbGJh*t zZy60Ypp7O!rv0PnU(eVw`)@*?`f|4J^VFBKsYL5OPgi5})RRk3H&0h&^YpHt%;YMQ z$Mf@Dx%xB|kF&trNAD|n>c!=$7Z=xxQ3)!|XkVuG<QMt~i8eu-qRr6eXbZF@+6rxrwn5vP8f*M)U7pUu<>~xem_uEsi05<%Zx`(sc{&f5 zr}J=et+m%|4eg}b&Yp?ZXP&-|k*9BC#I4(+UD0md-qy$NYQKkPYz%uUvlp%RM*EBwfBUJnKeYo;N7TvN+qe!?`-41Vb91mVhtT>^bQn4u9f6KSN1@KB z3pyGdgN{YVq2tjB=tR^No#cwHIK}JWWONET6`f`Z*F5snd&^6mPVEeICOQjsH-#fu zp6;*93w^fem}X0^r!u{0o$}VUUV5w6hgu`*i~4zcTQB|9{v6NP*as*xFe5WanZfBy z=y&Al4!b;Eqm7rvP&5n;_vhG@&Qtplp0O#NugnFs9*IVw3(-YrG`bjFg2tdr(Pijz zQ)6-1qsD6bS9r$e=t^a-%E(-;%r!j!TCdr%zD~7q)UMB{-JsfdY7@{zbfdSorE`D2B= z46uS^#@5x0bVhfY&Et79y_Fqf zpHZu4sl{W^`tz;$x%60k@0yj)NYDG&Y>mH=u6gShm3is^$FJPWP1@`EXywawEx!90EUBCh?6e(_ee)&8pJ zH)?Cq?-{NBQ1qu~Y@b-C=r7A?_%~XQHkhJ4)c1gm%KSt9UljEpqgN2!A!y21e==6I z-c=1phJ5uW_1h<&iRL6<{mFdwC#{WTa+S&B`T1Upw#Izj- zZm#xQP}>r1<*lOioUbdm`MQD|zm9FaX0KyA)wZX$1B!Z$_PSf4)@UcRvnjkI zZwlYa$=AJp`T8D4T+ zPDf{;GtpV7JBs>`TE@N|^w8L%{-Z7RUS6{)rBsXhk5=o08oiaxYhPWVdY@W96!j$S zndhJZXdoJd2BWAi8O>w#OC|a0Rp#saxcRB*`?&e3;pjXx0-cX8KqJv8bRoJ3jW&hv z{p9P6V7{*ChN=1%F-Fm)meKGsbh#;f^3G3Pe&nSA9+H+pBwJ}T4^VD8&HP>%B#7q1|^b&d*y@Fmvuc6tl=$cYI zzSq$kXbyVQ6wWKwT`G_bsF02WTFej~1YXCVziiq-Zg< zCFnzMWyg+>6fLFpG5Q28L!YAM=rgneeU83BU!s+075WN&jlMzOqSa`PE4pVeULW6~ z@6iwFNAwf=*%a=k&e#2a`MT;GkL@?K7X6O?K!2KisjpM?7q!2=X6t#qq79z0^}JEh zKbFz(U$0r~|0WcucV}}`ptFUsTA(a%ulKcZ1SwD-uR!myp=CH?7U=u71?uC)&&~H* zG=+lD$BUPDfqHv!t0Gj4O8lA8=ZgaM_6pS7i`$o@3RH=zP&KMSwWto&qXyIxZGtvM z@jhOlJN4qZ+5&BfwnAH@ZP2!8JG4F8!4w~*!ZuT&Glm5^V;H9COT4u*J7r{cR%RE* z(+0KmR?(hVpew!w>hr~OzdPC^qt%{jwU=k2ZKy!^?iJ{+z2qG1t4zC$OnYTISVr0p z?eDE@4h~SQW5)A3DRUsL4?+i{L(rk*OPN$g>)y)rp>-qbi~4!{s2^LPZ{QZ_JYhj%Pe`-K^*q%V>BjnuI2!DW=d1El`iIKz+UV_1}T+M0c6|Roty;Dz$siz34tP4NXV) zqX*D~=ppnldIUX+9z&0#CrpjyVT*lI(NomYYj}pY(!S<<f&^$CBEkFy=BD5GSK_8-zT+z2F~Z`WStJmZ4A4a`YKmfj&oHpfAx% zQ}mnK(keZ^@{BE|uN8fhk@;59YRhQ2#%p%0{7%vL)P6uedMi6d|D@<=&)8IcQS_^2 zH2lqLHqNz*e)o*E{zK89meKHB<6H}r&SjI!LAfXo<)Z>rh>A?nbVtx~lrYSpL))q4Bry{k~au2QIPW5nZX@S07hrD~f{+Z1hvHb+~S!f~@u z-^VD__c7wJZjH9_R?&7+nA%p4?Wk>!c0fC#R;V@F3GHkO=a>uC!zPTPrRc2j0|p1%j$)1PN^xR+Y(O>G~vZ$_(jYSo@v2d~*O+)uUrsU3hiqE6^Q zbdV{0k}1^Z+(MnfOTL~%l{t*ohod9Vk?1JY8FfKNqhrvq=s0vdIsu)Cx}uZN$>ESfCi#LXs{`qzbn+0;lgl4OK*uol^I6s;pjXx0-cX8KqJv8 zS9Gt5E!{lrWASpn5Jkt)=!jXU?{37p7+r$Kpi9wZ=yEg`U19QL*p-^XRi25C?1j4f zuTWQv<7r;&HQQ6JQ*9iz>(LEpJeq(eq8rgo=w@^ax)n`AlhG7czV4Nb=kqpnyD5D4 zzff0^3-$XfajUz$X0PUM)uvLr2i=SAL(|Z7bU%8)-O6@W9 zIC=s-iJn4FqZufDoSJF5aAmPjeZoSW|BGMyb7&TN-rL*z%nNG&BDI&iX7l~BYOhdx z6}{%I>{vWotzP$9a_zi9`#I=M^cH#>y@TFG@40exPCb5AbJ6>z=xVYbUp~;>%%eUZ zE%25$&kNORk!NfVSgg#FjLe71e3X${s?5h3nNO5imXY~XndO#|K0_y`Um~%%1`Wl|9P&6-eY?IE28&Uq$|K-xrSet(*Jic zp-5*3i&8l{0vGA5peec|JI>{q!e`1N{l-g?&JV`5La#-8PLYoDMOv1j7Wy?s>N6JU zoM7C#43(n_laIYpQ5CgnRO79p?YKzy6BenbXk*p?RpcsC&(WrBtr`@y^o+Llu%{HM z2U(jBV-+1|84Zs|C%BsH>{9$nPBcYF3Ey(MDsz(83w4KN-11~}3Odykjxk00 zPDqii3&-tGcSYYfj&o<2e0w@m(OI6cwb)(J*_P3;hu3VK_f*u2S_<_>eNZFni~6Dd z=o~Zv4Mc;`U^K)Oz9&|sK4p=v3&*c+nAdE6hbubIGxq96C_3LV8eZTvYduoYC~E1W z(naJ(d;944T%>EmMY=W|rtHU{F^Vp=jE0w?%T3|DPLZw+7wIfvJjYj}tI*XZUq{y{ zy4ExHDy~yB&N3Qak8VKY(F8OR-DuK1$njjibQiU|y{2{GTmMvL?xB8fx-Q+P$24lwGivuM@?(atkLdM19M2pa3v;=+Vitf>hx5JOnQshfi@h9Y#nHnp@Uizt`<({!^;4?)lETiG) zUbChAg`zJ#qt?Dfu2g1~Wi|W?eQols<{L%ddd8--TG1NIX!sra9{qrRL_e9rIglcq zPb|_^;dmMRihe_D(eLOF^e0+p3ZJKnboQ`F_W~xj$MuRfWMnor$^4VfNdJ0kTXxZ& zpL~9?dWU4Ro!y>jU94VWx>l^7qRmM(CjF0SdSqKBqg9T#iniTi^&pFNT{&Jd@sw>0 z`RV6{V?lA~NycrWwNtFC&FMMFiu+K?7x_4g>0w64d;LG2>Gsh$!?sZz`ka~LEz4}D zXO=g~R5Zy{Hpx^q$y7JV)HKP|Hp$dA$<(Jan!5%?QJ=h+KCCU@O_bS`+Gc2TS8|zc z;W?IQ*m{dY-`1Co#psU~-RBrjd)p>su({Yyt+v-=hcJgbqE@Ii+6nE9 zc0p}WTeK_M4egHhKzq7!baaU4WiPZh+6V1x3ilrs>solR`n~ZpJD~m0{^$VI(d5gr zlcEDXlivOgQs!XGYIq1b6di^RM@OI|(NU-~>Vl3oh5O=))t@X*9qSp}n~qa-yk#^z z!E3fRo~Wp+XRP%}icYqShNpPVTA!-uG-};4YNsnYgW8$sEYuyHje4M-rf}b5vHG&b zIx`xtmENciYD9feKhz(cg9f01Xb>8VhM;rNP&5n;N9Umt=zMem8i_`s3r*p>=EeGj z!(yEQjbHc0=n`*bd)^pDmr}b7U5>_@LXV?ZecEDO`3__CWA0UouC|PZ*Lcm=^0kVt zqc#p*k8Uve*vBiH;2GP7CMvoyBXg6Yn=PZ^Enc(f-KuC3waI7-x((fq?l47rpdat= zROT+~ccZE39&|6d4^2bU(f#NF^dNc&J&YbfkD|xW4dO9OB zL(xpjX!s0z7Cnb%nL@9&SpBnNUHP_csfDgy+H`E0zo_UX&)7P9SFrnpzqN4=m%5iRTk@;EXDdJOZ?2A(J$y%^cz}> zen)>G-=-9=Blj2j8?8qhOwkzv-)lF9v&Qj!{X@%t(SNQI^;&I>ME4n%sGnM*-l=7x zb)^5NSC4F3=b&7ahw@PYDnv!77?q$>REEk;Vf!i3uiKR9{tA0lB|4iKs~Xjq^hrOi z)uK96crPr`8O?0ns~fj!a24uX=5eki+Qbx&043@pmgo-WxYg!fi?-PkecPo(eZWu) z?+GR91D1rIU(}x~QUA|s)_PlIwqs1&XVi93ZAWUYP;0c4w~u=3B|6JlqU+)DT(v=M z(XMDWv^&}Z?TPk6d!v2OzNj5)k2;|J(EjKE)Dd+;2cm<}!LA&gMU7wOA*OK8ONoBh zx+PDf{;GtpVDY<(JwUrBdUv~`DLK#9(3mgszDTLQnk8_+T~ueF^pC13TjuP ztI*Zn-sa{SwZE3ybzZY^jZ^J{=ic}Bwst>I`+3ynd(F1`1*$Eiw#Zc&f9BD* zA}u~qfWi!hyV#-K#k+e`Gj+VPY>az+0SRh(OjJ~sIg?-M<98MRN5_efR!jNA&8 zUQ)hw_@42l+OMS5D)bfl8hvB(`S@1PTokl zYK2;(olHL0J1g3SS{tuL+h?h+U(+J z#<91eeW>k=+M)KSgURP?KSld{#$M$CiaJ_G!%pZxS9EPZo{NJ_KCXim9YXC;uh|?P zrs!~LN1!8J#kvnL9_vx4GwNdUZT4tI$51=gYc{3h6dh0P1auRPJaZmGWE6VL4#=uB^A+u&J>x>GwF^~h+|Q&BH!DbySFG5OxtsHiWseyBe>$K>q? zC>ls@5E|^QY+i>bI+xl|SCP)X#IJIg$;Uce(RtKHp!3lMXr#%vkx_~+q;`?3SUtaZ zN~6)mCV%E7ipEg86kUccM`O_y=t@(x1^FIzl`>aTzXn~4t~2?o9;fJfYB!+qXabt( ziu#c8E4vZhgluV?|ag=i64?27t{@zj@?{C)64 zMITXHiati4pk*ds2A?WgPR+;fOLm3wpHuq+ed&tsyNc&$C0b?jIr~b{*PgNWu5T25 zYZ(n!drj{PzQ?ao<~!=&qaVDbt(6}Y{p1-N@6U>U$;kYw=r_w~xEB46{y=}Cb?7gX zzn}fBXg#$JXe0W^2uOkCT~c-lR>7CYh`znd~N+oF*9>oC3=3TWfISe*JYW$WAy*apu9<@BAwCLDix*Y zv`U$3%SbgY#;IJbw~u=HWxBhRn$LZGI-`1nw~l%tWuc#%xjr_@XuYYmR?E%&dC|64 zrk-n=dah-uE!DR#(>d5!Tcd5zwrD%Fy(w&0W$LY#>0E3)j#j9(x3X#Oq-bYqyP!6x ztto7MW$LY#>0EL=*4?~juX}ezdr;dG?S=M6`=EVMJCo0Udqo|n?dLU{(*BALpwZiu@f2h}NtcNK&oZ1oSNN=Sj7LFxlIu~1}|5-4M#kYqpT9dEw zjHA&p=vZ`|$>->JMJG@@5p_i;p_5Ji%u^JdO6@e%4V{k8a5dL`nDMJW6P<;+qq9*D z)D!hWDbySFL5-*{>WBKHbI<@Z5Dh|u(GYa5DSWrPEWEy9)P|$;& z@EM>?SLVxfWj6F4N<3ua)U;(|BxGn8H=lGM#@Y(|45O z+STY9bS=6LjYHR?8_;+(0ZlZ8`$o!i?y5}RQIDs3Gr9%ciYB4SXbQT`6wYRr>E5z3 z^;6^V-sv^l_wG`3w`c5KZK|SsETiGQUbEIw@AMUF)6jHR^jkP#I)2o;U(o}!dJsM2 zt?XF%u)h1T3AIPiqb7Z0DxUYp(BtR{^dx!;J&k6dndlkxEPBoqe#4?HHA~U+p0VZg zLT1K~OfM??k{&OI_mF5AnO;S&q1otl^oA>6zgiJLcMf_Jy+ykPkrXKXes&_ePRmz$ugZsEz>pq zcrKQs&%BjwAuAMpPVEcyC0dDAp|8-_=o|E{NoR%Qsjo(BOyOHiW$L|_>HF<*s~^yh z=qL2E$=@k{QS>Xd-_Tn0yUF*LKNS5*ZJpO_--~`zvKh6%(R#GORibZT#B;lm+|edq zoBt^KmsbC|%9%pBuI-0$ggGnM8P9TE+qbcn>k7XqIxiLHd^vjiT(!@mmX8Wd;W%5a zyG+XyV<@Io2`WWp{>l^R!Slgmq(QasWw1+9|pXECHS+3tR zO3v%v%IrhyeZ3ZKqvg7jvs`y_+7zR28OPJ^;H_-F_EW3R1E>x3nyukMiUxbe*6xrIbP=`DuIT+TUZxkLOVAi}DY^_@j>ek8dBt*F=`UB0G9K?$ z=xT3e%j_CO*HXIi|Fh1#uNv-LAc(PXb>>8KRX_Y`y+ zy4@9>$%@3>F9p+0D2HTgdR49vzq1lZd19w)fCU?W9V`8 z1bWgG-p9*zF0@?d#^PtraJA4k+~V9!^bC3yJ?ARX6%>0$UgD@Qi+0bW7to97CG@f@ zI%5~c7kp#Sl-_UV zl6xP0;EK+O$77j?=DSMu**>l=KnqQwPg|}YXu0mh3$6UUbBUr4Eu-N_u7Z>wGZZhi zoF6?tR`iLtitZAKr??D#YEsWI)O2mork6enE>|YK#jo(X?LVI@`oc4Ie2aRi=`Cxe z)ihj%zVi0=?*6sf$IGN#ccR8~_$^wE)}Zgu_vi=oBl^kYM}nUf{X*?m^qVVR=d$DJ zuSLJ3KTN*G{HbW2XY95ArRZ}AFzb+8x>P?{+P@(gm6*}u_wdm?#+-eiFDcTHe zj_NW8e&*bZGe@)>4Y8_E0bfCA_9vpf~75Zj+ z1;@+^o%@Vm>!Ikd^mEkqa6OKob|g9q#Ye{qeZI4?rH`i-`k%AoDI9~2bwyW12Ms_2(I7M! z4MFF+qVrhs)P}mEt2J?M7#fazuMOWvsYs1zY^HfWUl08sjT58SFf!p$3167-MG23_ z(Yd7bcrH%(l7z=3d}+d$C470pV-vn2;VToqD&eaWz9!*o6TU9taS30a@C^x%$A!8Y znSPBE5}ugwjS1hB@XZO|lJKnwPfB=l!c%ax*3Ik zH{tsdo)$Z7`O_8MZy60AFzL)gn9uO(w?f~0sL(r$WukZM3jN(F-P@;};dZMD1ntN=B+x7hQ5h;n6{yk_u8UNvM_Z}80m3-KyLqL0wf~=~ zQKnXpI`yk7_0Alt!4>_sSe$E#HbI-B&Cup(3$!KL$`sDqSL$e2sq?Jy6t?wRv}P-H zUZYa?md3RmGHN?2YDKLz+6nE9c0p}SoGYu;eNC0>y~fkn4ejnNqwTL!SMDp-dyQM| zh4wau?Wj^`Tr2f!QE{twsC`DO4vO~kOmsxA)OprQ^<3lUbwr)ef#@J~FggSsY6|;S zrM^2=sUB+>udn~;{|0JC>m$)os59zZw-h-qLv9&PF{@Pt*&gP;b=7aA>VxJ=RI)W)JK(3R*abhXL1qH7dgOYJ%|4qcCKFh%ni z`UI8wE%{1)mp)!16VZ+6CX+9bn-$$c?N&4iO-57DZRmD%2fEYbTi#uY?xr>s-Q$YR z55)6(FS-v+L(|dy=mGQ~N{{bh%Y{#dmFgQ-s#h3K>oN2=dICL(o~dpX;bU=tmOezo6BZXr;H0&S_TaTxX^Fgkkyk`$cqY`o=OEev4L{{C#hY zqVK#`sIwCB68;|jVDhE&qoSX@R-yBaHbuSX``-PtGQW7eQrG6=@%`p4ZRxF5^gFdb z(4T0X$*204qQ9y6R26R^w-Nn={zd<}s(1&jQeV;LE&4W;sY+)%V`ZUil!J0n9?Ew` z-!O>BQh*9w(KiL+Y7r_nh5wnkO5aAR)Tf2eDy+*Y-81_CnX(C0x<+4>s_@@duhN~M zRq8b+Gu4V}ETds9szddz=o5B$riKluCGu)`N3GHo`YPSw8MogYZGpB#TcNGdHl}b~ zsnS*KD)knV^S!;I9W0~aj;IxCjdnsiqg_xN)YcS^_*LpPR_Urk{0eqQdw8p8E3Hzm zF*^Sjx7rKsjrKwNqIRe~>fmajzC%2|{m}mC0Mrq6LI;|{Cxj}U|E$va&vDnpqjtL2Yzk*6I@2>zAH7OF%PRFO z!#I6^I$Kc>%V^jW^)iKHW0iiLsY?GZMe=!lboQ`HXFNkrXAg69Jc(VUUS`_;67HYy zISCI)cwoYVaG|dDq{lfpVc(844^_IhpKdcW;b936$I<`q6Sr@!UqOmprRy7Mk4X6Z zgfB>VWWu8ozA)j75+0rK#R*@6n`bP~G32ZCTTtnFyDZ_$6CRuJ6|ut>aHXQF^tf7| zl&kbxP_eE>(Q>frI20Y@lnZ^As<6~<@QiI&;}uQF$V^mpqh&O_3EhltF@^WFDt#lW zO5cczr#u-&`&cw(+uCnabi3E=h-7nm2kq~4MfYmkGo!n>s`Oh?RqENs=+S^KRRO-KXaN%=Sz}fpRVYB&)5=qK+%Ji(eNSkFnR<%ilRN)UeV*|30L%) zH?BTuimq_^(c&p(o~Awn%|y?jXVG(L7J44NfL=6(D{58h`&Q|DQ}MjK;x#+wys9W( z^0p*qEAu+7-#~LrzU1Fj^cJ?&a@^Q{nG~YA!yakFD zW@HvAT5K5&m!J<_6}oFHex)CwrRZby30j6eMa$7=Xa)M*6z)8zQXjWUzakY+btPKm zt!!WTO3~NUzHvqO(ZtXE7Oh5W(0Ay2^aJ|QA?IuAPyH@bS6Zz@f1$t8db9y;ME{`lKKq~Ns^dKwu7&-rTIWWq^=&A7Mzn2J>)L*`uId{uK4;!~CL*=N#+ee>fs@0dR4t?3^s8GrtUafPW@i=NS+SjUmo!2T-zCOcsm1>28ROpE$8F1G3)Qxyww0@S=mkgfSFQ7)@my_#wsn>1 zT4P*|x6x{y8I5y0pdC>w)Ee!Cc1F9PHmEJy743$0M|+?>(O$0TJ8tp(?QIJG>rb`L zl2+?1X?3byc-`$$2UFOtt96F7TIWUMRtLDEUoVYw9Z@HAAUenuUEvPT2%kHu)!VJs zb^dr9hoZyK;phlc*dMF)J5$v@{1zU9=ZIO6};3+A)fb^^9%r$0<7AG8&%X zH5=23in>xeDP8lu=VWD0@vM#QR7Iy{WV$IjJtK35qBAoxXDRA#84b@yJxsn9dMfHg zEroicKBy7(bw%5)Eqi^pTRSG(h7IRFhrgG|2c2P+yv?OZez4RclL*Foa( z4oBy?D)qmQ+Z^SGIU1qJ=TW-AYqlmvDjMY(ThbRQx+o(vTG7Rp(eM&923=|jeYI+R zv#DBVPUHC-i>^RdqN_~41g=(e4Yh00b>7O3k>m8cEYWe&_O0u^X0IoD<>NhLuV;dy ziI&muMsyRp8Qp?zbydboNAV=8lhG7(8@e6cf$l_ip}S4d9h1J@PgTa}(2v0PG|AlC zBy(Sr%rs@D>v4ZL`aFOhL=T~d(IY6@%k8<3p~p?SVjkC?Ku@Bl(9>uJnu*e5d6wLB zXcl@Ny?|asFQJ#wE9h19nyGQqus_UJ^g6XS&>U}NTiKh6-lF!l*K8|$N71{~-a~WI z`{)CcZ{hP4&8N1&Yc|$}iWX5@jFzAeO}?Lfq-ZI%kI^S+naSIKs%Sa2&%9>SUZLo7 zYG0r)y_GGKm5NqT`^sxJhOZTUL+x9%8m&R!nS7aiujmIoehgddPv~d#3;GrPhSs9r z(I4nfw9e$cyT26uO>Mo`^jdsh+@Q=xuNQ{nxXs@`Jm+73j`hU;n^2?vqrHln(07d5 z*Qf^>a^bzEM!m?I(07b#Rk};sYS9v`QGc>VJ;`_sc_<$hc>8FIHR?^)=&W1Zz8FQv zMvdR6SgKZKUW>jn8MiM-72e*)TB-I`)T&Vpszr6E9yOqrXcM$4+6--uwm@5=tpP~!LI0Re>|^;czc_#L)HE;YKNmE(2?jU)Y%ly5!L9v(Hh++8jt@N zbSyd!9gj{xC!((CBy=)51)YjcL*3BnD80VVBzKl6{9h$C>QUB&zN9Vj9<=J|t!%yY zQmYiT-d>B3FEzR&v_|Jg<0a4+^+WyrIkwc#QTqYZ2BJY|FdAYC$JZL2^~}><|M8TD zqG4z_I?v?K9HD8R@0qAKRioZxjjp=K;~Ir7L>HmaCLh^RdqN~u=rf_wnM*YSbU29K{|2jqEETe0p$Gd8De$ramdb&Z;c&|nOcU(L_ z6VOCcco(fv|ExymE0fc?SvrRJ3r882zHQ6hem9F_K zcs`wxUeF``dS6V}y!A`E&QhbZtu?7v!d==mI&+rxYYERz`1OR}NO(@dZzlX!!fz-1 zPQvdd{9eLy6MjG84-%f2@ce`qB)l-;MF}rXcuB$^Cj3#tOB4P$;ZG7?mhh(uFHiWh zgjXc|dBR^L{AI!`6JC|@R|$We@Her;G5A|Wt1aVO!5T&1Sw_R}(GMo?3I3?)Cu%>V zUou+#s^~Y**b!*0qTel};UDNvlaGC!qQ9v9jn<REEk?1*$|XS9m?&hge#tGf*1_N`EBv=iDH?P3b=)3y2?fLh&;8joXFv>VzT?Sb|* zh2CRrYA+r2YW2UEhOy|%ZmrI@roC^%?GkREaEFAW_k25g*6M6*?C5)@v1@hbYU~#J zoE*DWzm=MHr-Tno_@IQ7<2)phKQ!UP5pCnbC`ZlSxo)63_SgilTQG+Y?^X7Re{M!r^OdVM@$yFEi|{7lP8XQA%s zY}5nwM7>PDMW!^4-qiYd&Gx=V)%sHFhx(&)&;T^h-#%u=ieVxv=+Mlkl|(UzhN>gs)HdhJ?o_JR#wU z3E!CTO$pze@GS}7n((BACnr25;oB0vJ>ffW^vOCbnef{0O!%&Z?@oAX!uKTX$L=tm z`x5zS2~SV>{@7tJdO&ONLCZ)FnL^LHR^Pv>)jhUhF8w{~QDq*Z_2bCba_9xr>i1e} z_5G{l^PW~_Mn-0)GS6gWo>k^K#yAT-k6!Th(P!aW-QQZPyA0y3>t*x`dKJBfW}AGk zd|l&s!!uDor#3YwY?p6ZE-cfx5>EGfYxTcZrPtrP3BQ-{+=Smx_yZiBTS|{-Uc&Pe zUXbv@gcl{eIN>D;f0*z`2`^3f(q;`)4d3Fsm*lmy-vTi8fy!* zCE5yYjkZDCqV3T3Xa}?-YK2;(ozTu`7gJaZHlJ-Q6TV?tr=D}2?#Yekd^fZ^+QSq+ zW!34<+&cYgR@{DXuSI>EI`x_BbbdLmwL|Su2a}I$KSldfJHTr;u8xX2Q9CfBc95cj zsU4D0J5Z=8XbdTU{G3F=a3E9&7Hn^I3jy)rT>MZGPf zVIS0p`l5cO(D$m-oe6cimKBy(cwev6IpsS29|6hCAVq^SGD8%dYZ(oPqG4z_IuDIN z=c5bINHhvvXbM;8>eO4U)32Cu*KCivRna7`73m)QcsWe=R(5=!qUbhix1&2U zTHUGWE^2q9spuY)@9Fm{y3aEP+&@A*kdI7zNUP3Rsa&&i8JfE+iSJ7)| zHhLYsf##q$(Oc+kQ}{oC>(tY%)13x3)fW1698do}Z)ID-Tt)9w`vA?$Xf zjLescR%T>YDf-GX8h(wwLEoBu`(CYR4Ylvk_vit6h8%^OZ;5zmF>eSDU=jlIJedzH;^I5NcpH&NW#m-c(9$>626s<9P zMh?nFc_`l$zSCZ>eqgRX*Tv5)L`B{zTA%gm3)ZVIXsw#-9B16V6qTWJRDmi@(V3cX zRH;|LuwHk!#^b5+dUVXJ*ICtiolA{t>8Uk%E1Rd5YPAWiHbtAE&Aolp_pH~M)q366 z8jp1=uh|s0R&5(<+h)|ZQ*C={JD?p=D{pVpX|47%)E4cEc0;?P zJ- z4mE{yb@l2i*6UkZVa`JTrCxo-`fyyfE%+#}+1lx>T6D~@+R^A3bSyd!9d8Opyn5Za zTCeY7#pCGeH5>m)s-5ha=x9~1yH@K%uh6D=8qe#7PDf{;GtpV7J31TnKs{a6`u<-$ zZ@o|o^+tVAqbdB(Q@ze^*6W_t`c(gL%s2-PKm*YrG}zTb*C*oV4ngOlp=cNy?uxF- z$Im^_6dl`qKOdpY`P47)x-IvSibhep5M6{uql?icXbig46#CxvI;UB$bDCkEeCryk z=nBhdcqO{Z6nZE1`hTSAb^k&9TCPRcp>d}0ep0XZ@p|2(8@C^iCZLJvMsyRp+2s4g zEsAdSjBSOJ6iv2_hEvdO=ysFO&mD^Hq;?m&8%;&`pnK7MXd0T1?ne)x2hl_5Ve|-k z)D(VIv|jzhdj0ZKyxg8ZPok&L(`W{oiJn2vn!@*8>va~gUPr#<7Vx~H7c8UUi|8fv zva3aSx3m4|70dZCV@B;KML&DS_O)LW{c0I~1E+pS492zEj9Q&)_0$?NYAsdUgxaQP zGqkz4w|Uq??YE@1724WcMZKK{^#vPPr&@zyYj4nZ?i$n+jOTF&SB+j*oZAt#LaotG zXlGM+ziQC$>Nn_mdPAzM-n$!gUNF{fXm_*++7s=C_D1`leO=jl2aLzu4z))eOyP4$ zgYKYf&{@LJ-q-d4iaJ_G!%pZxS9Hg2JpO~w!RQclC_2m(j@k|C5jLnF7?0yfbQJ3B zijL87yDp}1jBe1~s15qnr?_^k*K8X*PSNpRi~e`|&?=mVZ&3fRLH)z{d0jJVCn-9a z+9~K%bQF4WW~8D~8JP1sW$v5bb-qU&5Gx&j}syK(4x zbORcXCZLJvMsyRp*;T4DbMZ88G3h*>Eirw|NV-*zNtV%YGMZuv{n-YcQEbrn=#xwO z4t-`==&cLmz1jDGJC(o7YYqAqeLM$KO+L+7 z23@I+m&nWL74)hp^bQ)-OKeEZruI5|!&}+A%p65;QhUp5dgcCp^R_bYP=6P_=Phk4 za}~W$?E|mb@|&k8sC|l- zqtDO^^f~&%25MJuVTLSK0+d(B@f`i9!KXf;}czC+)mAJC8JC-k!^^n4ri>rM^o z8OH1WH?-DU*&O|@=nratdd-&5Iz@j``#YnyUeN|>8#8MEDEgP$f3BA5`PtmGRL?I~ z3zX%Gu1Ck!Y*$gd?@nl`Ym;#`7v-URRDcRmkt_OL%Xloss05XwGE|N#P$jA|h41jR zRIjk5dWB&MVQX!vbAv5)ZZMu^J!(KLy}kN-VLxiAeo0GRF;0$UGi5gC8C!TQT3apE zJ8Y?YF5@X|ol)CHwQW5U?N2S$Cv2%cVRGC%D6=Ea_vI6gu`Ts~EVb0R!Fb#|qg_xN zQ#g*a)OF&P^aoq&>XA*y=5u$|_TYJYX4LjlZEw%meD0&nzO-(a(Yn2A9Wq+)r_BDe zJ^*#}R?#-!QhmUd`rnk|S96fpZ0-(L?U4V`b)I2b6i?T`{F@LZDF)bGSaxA^X3aUE zAQBWsl3-YZk`xtC0VOF(l0*e1NKzD#oDon^f`Ebuil7Lh5+n+UzGu2>&QyE9&xf7s zSEs6bdU|?h>h1|kUp3EnFMRi@BCV?)DWDorwC=(CBfpM=nvnu}ASwZ?mglQ2K4^7F zbu~WtO;8>=VR@JT1^G8y2CAn~vb7IGd4x5D?U${s58tEzhp$0Yr?$Nzlt%xJhSr!` z6CoW1k3}_rnlh>x>2cB%S~B<^PI=^yc6**upR~Ei^F`;17ObnK#!D}?Lj2S8Jwwu- zfVZ_5-v&xsMzte_Jtw`|-fP9PjCxM%lBf<*l=k8CG0F>2US#>GRUN5yB6Zf@Ff z$GsKyl&<0B80D21rAwrMx@xV`zukoLk3F-o5prEiSV4@!Toe*nqfqi;s#Km)aH(kFu=U$EVJbPx7bSVLlzp)tx^ zG0LzQWq6D-B1Rb*DWFkadq+n;-A`}FDDOlHXbgL0tkxuZ<=rSsYkDt685g6Bk5MMX zC=-1}`}BQZg*7QsK$F?dDPB9LMp4?%X)($NG0KNA%JdlJqZsAm7-dF`G84)ywl&Q0 zqhnQicXm_`q**^`uD5OTqA1_6WIOs^#%3qCCEG;M$^ldoQeC zJY^ro$33E8xu5ha=>X|B((giU#;H8!n9CO(r0)>vFzE>CPo?4*(_t?iB^@IjC!HXj z6mm~hmB;*YdHkjb>o`q1qfv5PoW-nj81pyj9O)m8mMi?fgX8eqf<5NObsTN@avXj? z#JOJ$!SNl3-ww7vQ=z1>T)OAWfG<;(;5dlG*A3z@cO3R&ju)K^Umkt=p05DDs;Wp$ zg;1_#^mU}`NjH#gB;7>1nRE;3Rv|aH8;3Wq;xOM7S9FKl>N}M##8Dq=caiQU-9xHI zx|ehxsXD0!>3&j8rLx%SaBUBeYLRM_>X7P^9wa>^oHNVY)WcIdYtqG=}FR4q#{ytA>Ah}V6~*LmHMRR zPs4hKzSg8R8YRbZTUhN>kyf|I^I>Ng{jB<=&gby0lyUTRAU&^9Qs)b>UZk%hsS~NQ zko$EMhs-?=v&XLg-FZF^GqiD-Jr4IsS5i09t3q1CYp}YjuNdab!je6df-mw({c;5N zgw;zG+3Mb~UKa(+H%NVi+!ZMf^U86UQ4VYGuRiIU0kGawMd}=g@3iTNfIi5J9t>-U zC|C|9y(JW^Psi0TD8uO=p>$EWMX*QGJBl=#^tRIFm`M&>9?=+TV@dCl-Xn#3{bFPQ zVJ+iH6G#(-rntzrCRr3>*4pVPEgr{Ftcw=ildX&UJR(ubt!Lhc$KhbI!^ zFwY#WX@>e_&&-51OBLBO!DyH*3YK$7bA_~B^I*+aManIJwNMl+7m*eVX}Kk^meRM3 zw4Ag;NJsCduvXHyinN;a8R>J<8q!+Q7o;yq>qzTK8%P^T(Rm~~em2p&S;*a6j>Ffn z;*cqZz5NYoD`^`^$BUbXkHgG!9G*l7OYR`;6w)629@Y=^?IQi?MeT;QhrXZGC;R+o zSbJ5GefJBjeWGBwpY$u~fROH$-(dYt-yfud8WkO(!Dv2A{}Ixkq@$!`q~k(5eow$U zN#7~bUm7K6*3+=gs3Kc+Hb(h7MmZOw{1c=6`yVA9d8EItc$Y`owZ|i?{BO+pG0Fuo z%7rn?MUgT%9@(dik9fT86w)O^Zr{Ya?9*?_rBMyRHN>4e<8hDqzwIj#DOgiUtu+`k z@yJve4Xd>0D--$LH7Xv@LD=Xkyy&u#PouAlQLc(nu8vWziBZZ$3ffp67V27&N-VAG%7X6i`|LIX{4#27A>*(0>bee* z*Z;Q$Xg7FKH^PeQx=DR9)^0}hE&r`S_v5Wzx!b&Qx1-!0|3|qyy>fSXwvYdYtrxke+9rg!Pmv(OIPkN^?=M zY@vSHuPtGl#sJbf>C zz87J2q^}dHGwCJL%cNIGT}WL?-Gtolj(B`OEFMp8*uB#oRu56I>`Ce+q{m=ySg)%h zz4HdFKB8dRm()*4%k_sffW9|L13`n_SRE{+`)vrmw6=j!LrHIuhLMJoMhNLx83}6? zeWOWlYm^)@@4y;E-&oSSr1ylhW#eFtS4DbY0<4Li@;^nOm#@eg|qwY8)#gmk;UgtZQT>)pr<#vw@0?HgfzrHb_ProqAY2g2x}ccbVn zu)g-9zk#*YQ?|kSRuudPt~~Y0UfmAsJ5^+DJ7Db;142M;Xe!?G<=90eD5)8+hM~;4F75P zsNrLVj~hN=_@v=ehW|2r+VB~}XAS>NE`>WCQJc>h{>SjYEmwl0dTsG^t3%T)_fcf79%>RbIi%1ufijgi6a#yDWKAb(JMuNxDkogZY~TJU>zl_W{EAYe?ltKySE_4|OMh32db3}7bW+mXew+YB^r4`ceg;1{b zl!IABbte?vNYZlf-lR3izPUN70Tiw;IKw0$#F<|XwQ_M-08DA|{H!FTunZw=7z@yb_t(1T#v!xBi@C>CR zm;EFZJqhb6Mir5oE0w}?dSUBZkXj1qaoY;k)2c`-o`Ka`6fE12+6o27l8&KvP}-|M zn41mP^(^T*QU@VDXFU(=1^QkjbtH8nbtb(;dYSYJsf&=y8WQmANdlga4qNo9`eeVp z2CF-LJv?7eSiMw{{^$+sby2WOFQnTu0oFwN-dCTrb<*Hc z_(odT^OH$aG)me!71lIWq(?r0^`WOshxL&tSbj{>+RaFu3EwR7yWh77n9ol@zU^9} z${bj8J!KxO`J!OCKz*_m3t=syZ!u|!M#)wzg|&>n<)jrP|A-C#|7|pOS7}u6Ki$Iq zTCEh!>Pzc`C)X12Tyz57m*%QSi3ysM_9W(We=>MB1O+g zKSS9oDwe;H_6cboupid1^c_&2wC^`qzti^z=^#n>3+%(xj*$Ko(j4I^^85t1M~=HZ zKLO7~ClrNz((oz6e;Gb)_>AGRhW|Evj(id3W21HbWB6Zk1?0M6Oa+(OO4}+R!;SRw z4PRjRLc3>nppw!z!mUx zgsm$TN}8vnL&@-zO!tlWaD7?o3&wf{7&zA>ZzE@KLl&Xv_Bwb6oPUC}& ztU}TC82c5F>$>{!yS4(d-H2~8e6!(O4Bu+_Hp90YzQgdHhVL?bx8ZvXS2KLC;rk3% zH(bN;{f28Ae!y@o!?g|9FTcsTNrL>xRv3j4L@VJwc$2~+lK7MV>^t%_M(8EB|S&#Kzg3^ zf{?qiRlsu?6)+bZ9x zUw6;f1HPX0_40hZ;d@<`;Hp{yd1?jB1l#rYb;n~r(cJOa-|zs#Z<0&nZMEo_9cXxv z;lYN77#?c)EyKeM4>vr*@JPd>439Saw&8aSk1;&f@VkcJGd#}lcycgH8g2Uo!xIg^ zZ+Md7$%btoPBr?pklh~p0DJ61QFNqChw_o9d<2`MG&ky28D4GpGsB-7USoKz;V%q- zX?UIC^@cYX-e~wM!XVUj6ux7s$T{pdloO0TNjjxb(!ReCb=oU;2Fh7a`5VeP zmj8$JuTsS@4<1}G%z{DxqxXE$1*8i}7m+R|6(e0jDo(nTbQ!4xsU)eCko!t%MLa`M z5i`BfIlUrgK`UaW*D7V9T(yf`yd40Bn>=|;~moM|}AaJJzb!?}j@ z4CfmzFkIDeq2X%{UuXDw!#5bd(eO=%Z#I03;ad&gX83l)cNo6Y@Lh)QHhhoaYKHGM ze4pX!hHDtU-*8RC4;ZdxxVGUshU*%B(C|Zs>luF7@FRxn8-CPq1H%msHwxK}yT%x4 zO+<0m*@}3Mp`x3K#TibOW>6lN7|;_ME#vk{C{KCii=Z_3lon80dP*xOPkYKUP+E%u zYNI|`M_VZE=xa}Umh_y)2UqNh_;zhYJilPi124oVFUBYxBL&n+%S#J7LwSj73+oo& z%b4NQD|b`_uPYUi?^eX~#^F)lRjGKmji!vWzMD~kGk--q5y9;Nz2>#7yXWiS`Fg_F z3xB}|-ir8! zMMXS&9JXl`X|zTKSG$V%hDAj@c^pQKAqCqjTRm3D-6N=oFIZH>w=0}a$M!h9hwufX z$E#2F>;za7z3BI0P4bk!<46Tai6V*~nT@nN}z z^tF)ghi_nQRYhvp2J2f-*$(SFPuT%$rzn_t(j&p$7psU_-iqP=*Ri3~cRFmj zyP(|dDfd9B#`5=)?ju##_#lT##M8ZrcwWKP393nYK%->Mwcx8wUma3iFX}-=Jw#tU z(!*ZVBW@Je7tM`gJ&qhVFnUA7jSM$7+{Ex>hMO90X83W#PZ)mE@Kc713^zC2!f;E& ztqebH_!+~k4Ywf&-@A)OYg@zZ47WG@tl{SjcQE|C;TH_Q7_u7$9kJ&+iQ=wsiTJWx zBJ${PT)a$rh15mkWgK-yd^c5st8OB4;Y4J>cC>bf(u3uDl6q;BjJ4i~dOa$q=e{?f z_K8$jeeu`NQ~E<0;3;oH87K;95NR-J2x%zkEz&U3aMB3UNYW_MXwuuHca%!uDXXwY z$B@Pfxp%4(k@qHsc`s<3`s4~T9?Arko9Ox8hi?*nlRe)QJX;!WXDK|75Vm0|X`05% zzWe}neMsMQrQn^jx*BCiYHbB|vDPKX^#2Pn~wrG^}-q-j~Rp+8|dYpWNvRfk+);9co%R08JPe#;t z@a>>)C+U0A4;n8cV;ACoq;EHA59uc_{%6GRrSBKgKGJ^DuO!WHQT8`#zmxt@3Z9n^ z$HGC{LP?TPe(A@#b(F^#%K@5;EFKVMYtOKx?QJ=Csf*()eJ1RYGQaA)eNj)>aC$Tj-Zi zEAGW#3g2b)l^~VWs9@w(LQWez>o2ty<4CQIS*=U9=t?M8 zXYYK)Q=DWG(33xYZ1aMVUEk}c2l%4K=wvOQmp=gYXoj6u~KVe52u;4Bu?{7V>%6>rvTT z4c}(?cEfiVzSHnshVM3fkKt;D?=^g%;p&EK7{1?dO>*$R7o+w+V7Qjy+J@^Gu50)~ z!w(s*XZT^mj~K3R_))_R3^z2~$Z%uBO$ZFR4?+oiDQLubjeG>f&tS+iZbXQp2M8Wb^(rcvdq#mT6q+X=n zq}NGrkou7NlKPSQlLnC9Bn>1DA`K=DAq^$HMH)sLP8vZPNg5^8GS2Pe(Xig8?;Z6? zAC7@FRu$>PcVWHfDdS*`7X`}+>XY&lVZE=4l%E7^vZqXeHPut5!TLZHEI(AA)Hog1 zN2*ATAH$j<3YIfTvq+ziW|QWS=91=-=93nX7Lpc`7L%5cmXel{mXlVHJ{1b?+v@SL z63Qx7W!qN6`pi>4hqcC2*24P2Q@(_?&QsRI+8_#+8`UR0`W38As>oV5!`dPWmS3w+ zqQ8N)mA-AB?^{^g>HChfgS3Drx;E(oMt%PaE9Sb!&!#24d;aH_J1z+c%CSrd{Tjsdrm$HPx~ezJ9X`KSwIrz zU6R6#6m-3oOT_p7Bq}(vl8~n+VW!q8pqtbuWASDvx2Pgx@m46edCKij?(md5q1@#u zcSE_yQ>sC^R}|2Fr0S#^r29!VNe_@}k!q9bkm?G#_n(uB9&|_2Ls(-ym!&7++h-9! zVz|EHM-4YH+|Y0%!;K9$G5na}riPmte%$aAhMzS2l;I-7%?-CO+|qC>!%rK2#&B!H zZ49?H+|F=&!_OLi&Tt3A&y&mGKjTFG|AOHc4R@GBv^vEBt%S5dI+ zCgif{BxIpUn7MVW3639kwok&FXGxg7bt;xUNxewDNv{jJyIDzirZ)+5w_(Y?>XYND zAFTeW$Z<6Q)|;L(5Y`}3upCSpLK-UM<{OfV-hwqu6{&MLtP!3v64oeDupCW#oAeH8 z3~4OsUDA7`aisC238aan_eqmTlSxxZQ%TcEACNvIO&4gfVJ#8`%f;%GH7|j+l)h!8!m|iTc*76PgqCkJElIV^Ej*%^qnM~ zBK<`=O*%t5OZuC1j`R=dUmNELB)Rp1*%93s=_K11U2w{hqHTtOw|;<@svEszYC0&-Wm#hv=*4`5uP#h$_;$`mi4Llm@UGdP*Z$ zjXk9atj9#bvZ?xHo0`FTToqZz6R@5X1^)FiJ&7Ra@H#y}Re@0jsAdSoZRKyr#fc2&- z(ia0^4f2%1u!eZbP*`ty$}m{NBSrVZ2q+^X6*LNeqdnzqSnr5}`h8fFJY_PhDWYIGRee%^8mtf0cQwApBkL94hp?ur zB0csItdBiq2CSK$G7Huxo-!NO98s{Gt3FxBJXrJTTR>V!T0~k*T0&YXm-w*uCuqF}jFeOR~dw^dM9tN(wPF$~YiO1e)zhrWiswL*Hu_yX3K>I=RKXM1oR zto7pocfRgu>I3hRKU{08fHPx%AZ!AQ}4bO_2} z{2kFZ2$FHHF&Vj4njLHWwa+A1S!i=rzdbE}M;%_IOvJ zsEVxbCMY+1$}LcC^_1J7-0mrNK)KUX?t*f6r09OT2WquQg>^6f?h^&q;NVCO#O|@+r13Ao zdYQggNL@5a_FPw3-ROH&eX<3w!RoGx^jHsAJw?H?m--~SH>}rHk?1#I^$`WjzUq_c zez5w}H$bTpaxAxn?#fabd0J&W5h;q)ISAHZPZ*PLfVosu*Rw)EqNE#d!k@DPJLLf?%(lHCeS}oDR@4{ZsGf|CaEIzPKGtb zQ>Mb2CJL4xs86==Ls--4`-t?hM#)~D0c)lzvX)t}J`n}W*`zr_y47=G%~M6n&4;zX zQx?Kn5&E{C zzU{ES^OPO1c8Y@K_ayB_-5a~0|483%(jFm=`U%$0s>u5G!urKi_QBfkDZj!x;3>bs z`rT9hz#!=a)+4aOu?|J|!cnNlytw1API$^mSf@NC_>Tg?Q6T5a z)9RBopMiB2e}D75eh$_@p7QVDDlQ)jW2zuCtK#ypNI4(M1*TLLWM);6lSMUG!4ryA zkds;E5-7zzf4tCFv^C)ud}k<%C*ZhK!~Pa2l_HRUna_B(U(oiA?1?tgxr0bD!9K|1-Y4Re^n@jjJ{TV!KkT%`>RzjUlz9g z2GWhBn@Bg4ZXw-Dx{Y+Zkoz`b72I2`f($KO!(F7iHA;H@9z<1BB{*)XAU~^u{46Y2 zU47E(8t~muUro>V0DQGnk(z2lspBbip*+a)4|(P5!S}Ei{Rou$p7JP^29cuUpdr*o zkqWCZ{+fsadQ2&JKTY+sNR>fsy(K+NrC>_1JJ3;B}DK9~J*;8JD z(#2D{Lg^MM+Rv{-eJxU9b;n;1Pw5Gzm#6fG^17$I0i}J5sG=(&k6l7v@CjEdEWMRQ0WDRZ93{)3ET=EXje;#KgBhc6TR$bOR4R*K zt)X`nX|<5M!&C*CS`~ax(?#hqvj)mqMh97%^yQbNAV(8zJt@e|MB6Cj=J~21L#u)r zv(UF$eX>nk;0y9Hl+$&810~4KB4rztAUBJY?NEZ;EK+tr+36|YL;1l|c0u{kQ+7ky z<0(Hu`B@auUeYh5eWd-QUr9lBhE}2MZ=@hU6YURDke3CmztoMqLx?|2-x1QE8ijGD zW9TR%gUn3oJ5CC6v!Fg1ktdM@cB1bT=`SzpH0nB|ij4QOQ2zFmb5LxSRt58CDPfid zI#26PVV)MWAO$mMDPf)lx=`y3_IV1jwG`xNvJENB)WmlQe8uUzlyn)Xgi>%9QR+y- z-O#YMlB80k(xft^%SmAdmx7tKu$C}`OK~%5L0_j}UM=)qLkcsv%iVUBM^v2n+*nS* znI;AEYOb6r6`)jP`9$@}wpW5L$%{^gQkl_Jyyz78Qt3-0rE8SzhYUnz(w9ZbCgo^+ zFjta-Ikgl#4Hs@{KB+*X!jYJQC*o4VyiK?5S}50PTri$ekh}d?xgkcmF-Ey5Qb6JP zD+SNWh3&dk*CK7cEsEEc+#V^QJ2YB)`Oe6v(RaltcgHCA#3GikH#nsVw8rF0&3*7u`!e;|3@1i^U5`4R5PtXj)uphDBY4LVw5L+Mfbu} zkqRne{ms4lTSQS>f6Ex9RiuEPW=+p{HMNGX4SoJtY71XG{Iz%IrDsXckvfo`C%r&= zk<^jYiPV|&66s~qD@y;v8!llBx{$h(x+w*}CL}Hy@A8EuUM0OInniJvq;do)2q*C|E8eEmEq4U!Si1x>pvvFFl7_w1n|XNy|vfwPf&Z`4r4J zrr-{ASaKz46=^l;Go_O59F3#VJ+YL6Tsj4FonakoNnen@B&{Q@Cv6~YBz;BNMA}T+ zLi(EYjgb4_Ateu|nJ**!@8GOFkE4x%n zL5>~PzMHg%^b_f4(q17qCzFC%&=h=kGpu93`efYv3hRI>(!$^HyhU(5lC$COq(4Xp zNry;>Nk@eA2>cV)QB|b=W3Y~kg5?R)Nzy6OUrJ?>Lxn9mO*%t5OZuC1j`R=dU!_!J z+)`gEGVYN6C)BbuMs6xH?o?#lq3=Q=r*Xa`04S-_Gx@R;hT-FcsN% zSmILk1wEgN+0saCO5q4Bv0Krr`$+*D_q&a2>;S4L@l3p^)A9tOx61QLubONJmnASdY@z zfYeZ<b>nTyNEK(n8((^!bC@tu38Tmo2 z@b|PTQrk1IT6;cqqz$E%LF$n`oZe2iuC3HSZ{jDKv;u3WiYHEo-!2H zTb?ou|F>?FC|C|BjnF6=QzK!GQbpE38rIvQVEK;vWR#78HI}}2J>Pq<#?d#PG=Vgc z^gd}4X)yV-r0JxONFS4CkY zB7M0S))G%y3Ts)U=<&83$_i1j{8atY=PO~YqHne5`wZ6Ss>mAGz*_4mU%>j(Q`W&+ z?NjfFuehH=Gxye*KG3oX$mS@x_W9=-gztwjQX1!gMuIC)Ae^imN_V3^{ zWT6rhC~3$<(=h8Rb*H)f6Zs9a3#eVF@j=d(hI!vKmvbV@<(p~9KGR&z8I()Gb01L) z(vXLyVO}?^{W4MsQb|%NQfX2d(&eNpNM%V^lCC0MtyBTOnZg!aLn=oqPl_YOlM+Z3 zNEJzmq)MbDQZlKsQ1BHCcm7DjJ^VD>xewcwN=nnn;9Q@Erz+FJoD-DEs4P;p#>?Kx zK~ye%dFl&BN*eCkr{S)>>>b(nRiPAm%C%6gWBKcqDukJVn|n#a`_O54vNCM@OO=Z&@qD+U+-<5z3vP#U2cz%wqVIz5Zu;&aRU_T2@v`mr;f$D8R2_dcT!x;8 z`}YyoH2i?!T83*Iu4A~a;Rnfy*fU}M!GF99ISq5L5!W;Pu;E7x*EjsA;Rc2qlHzyTN+ZQ(lABT@);Pkb07Ok$RI}C%r-HL+VTFN9s=+Kzfrj zkTi%im^6eml=PO;75If6_S`U~(s-UF)P|ErkVXo*%qk5TY8syP4CCKcpPVD!fi;G{ zv7YZ;Snts{jx=7Q99Vc z?_<&o(oCiEaIOm5GfT+LB&Oln&os=EiZ21P4`I|Cjgl>z3u_*I^GORx3rUMei%CmJ zOO-0&938G}8EH9bg;MZ;pd~JtsR>JbN?J);MOsbzjPyBa4QZ{A`x1N_o)k?(UhCGN zXMlCE){BDW2KC8)*$C?^`Zkd^YZUrTkK`>-zE)L^$Zue66$NjHM!mUBwKP175N_#q z(s!gCq@ASih1~pRn(L`u>I=Sl7}gfiZjF}_xChoxjQUx9vZZ@r{X*Y9(tgsfqys{3 zRw@n8C#2!YQCWBJt?;lF50U;L9V8th9Tsx)rfK+AP#SX9w4$Rf13X4LPC7w4NjgRP zi*%ZFMk)9zXIS%D(%+?!x{!1c>0(kb(j`Lf ztd)*@HQimwu?9Cn(=lV3ju}(8CRIv8DaG=oNo6!DIG)q-W_CJeN2P_8-E~GZ#NhO0@}cv0mLRi3^$QamX^k&GacD#I_5~jlG&sjQZ6Zvlus%kRV5XYt|eVZx}J0c zDL4npcHKm}nRE;3R?=;x+evqj?j+qs3eNnpj(bSeNcWQNBULBW5DLEW>dt2A$nMf{ zFG_kcIGd&8U7&P47hsjzQ0jO}T__KF%0p1HVZEz&TJ zm-Y-t{0RC+l13?=XU^=S>3y5@4rvT&Ea_d+d!%us@uUf)iKO>QlSq?EQ%F-u(}dhp z4(Z4k)A2jk9+T6deB>z~Lz%(yGu0=@+bsA#@uFu#nZxM0qy$7N{@yiifm7 z>RbrlB2{GXFNU&2qto#us*PR--*Wm^c)m~JTS?z4(rVIYq|ZrfNNY)7kb=xlj)--n z^`s4?jij$gn@F2UTZG(qanh0hrQ^Mza1C44C;hSwKJ6*cc1C@tQPQ(J;M=K+^xpSS zeqi)2^+iX@kMQsIO6-C1lc)R)WiRXaC8`7ZKK$+XqJM>QfYCvAhaPjkXVa1ArQ<6* z;T9hBe23sWOy3dD_a}Tu={rU`u9Si|wWZdw=IU^QaiKRIZwiHL|BG~*bcS?R$h{Mj zj@ij{e2+f8=pUE0{i~FLBVV)(pP)LM|82z?@_T<|MMqjVUerB^sz%?vO6Bn@Dy;uLQgu=d()~)oJwI7{G1tbLs5i*?q?c=vYLn`a z>XIHL1$m#8tw#znKhYi`)h7kHpLiRP8j>23g6uDdD}}p_VTmTBAQO~YnhLo$GBPkv zlYzIvL*EmmCrM9fe2_C_;NEr_Jj)QqH&>tRzZUSfR3$h^XW-s;24)pqv>rjvKxyqM zZJ@Lj1#dS-$4xtpl5x`>QO|nio`cfCQ=W(Ng4UFQcf`Y1b|iHobry2JhBA;7W*{dF z<6j|lAqDxM^j|kpkP(U&j?jzUR(D5jJ;WDmwaeTx@V@v(m>&&G^dj{pMg95)wLYZ2 zq<%`lw_(Hj`jZAIorhn>q4!PFK++)6VA2rMP$BmpQ8I8Ryfp5ahP4e-O2d7xP#aDf zA*4M!5`8gB6&VwwW0bdJly_p3F)_;680Fm<<-JG&jnj6>XdNH zw#8!(&~2}q-_F4I$hmExNnY)fp-jQwRGq8Hz?ih`{==oTEP3(z*CgLVwUV&-2ZPwLlfwKMP?k5(Ue}q$NUn7G4T# znJQ9lIjj|;VEL)~qy;Nst)g$W=lcxS=c-6eYhbMv1_*y&l#EQLx;o zK8gMc)+YKkd%i7$&%^9a*kfONzHjgizJ2s<^?ci4eXG9U8Ex64SfB2#?NGi`e+J$h z3)ird^u3Udq90)GQbo4tM_9W>!Ez7jC(_SCTEkv^^C!qmWZ(ayKIwsAEB31*wf_q1 zfGAl0rap=O9hQz1Jthu9IixXC{xGZ~p7JNGqoQDWjC5Q`N6ZOWC)IZ$o&jXPfllG? zFZE^MtP*a^8PZwO-=uS-e}pt|`*(0A@>i)N6ZvaM!I2U4Q6{q1kS-uyDCDx8Ok}N@ z$XdgwVx&t*#g#6{%uE<}Dd{q$637-pZwXRKQYlhtA(xkDB9qNTCYxDwg==qF(v_sE zNLQ1tA(azyJ(7tmHWMSn)#mnVCbHN}+(n||#%?C&CNq(}QUxXAuac)E!Aka&%CM?< zN(!u0Pf3H7?kO3tGDX2MOMSsO%*2<7GLf%_Tc7Ls@?hnw5{$@9+&9m}yHd8*g|M#m zln_#VLd7emJLV^g>>5+!D_6E)YJslW1i9!Rx?qsd|Z9fk|$t2sfv_;3RaP)G>6r~ zQ(D4m)!)hZ6mTlFCwQAqDgVJ7AS@W~7o)ZPfU}^P9J3GL7UVWL!F2gbT zBB>*(6R9)lCDO~JS4dq*U6qRCt0yv|f^Sx2Vh%DBcds*xUUTPx?xY?{|HHj0@t%il zIE?E_>P6~JdY$wJsSl|ysUN97X#nX>(m>K6(qPgM(ooV{LT*Mj6L0vG!n}3Z_Ti)v zq>-diq|v0eN$-%xkj4tRU&5LAnq(&KV2A4(M;cF>K$D#V^w4{&VV&j6f9?{Poh78HJiRUo^LL!dGyUEEg&rx>Eh8-_tss3$S}D}Bgd4M~++E$Ur&crSGmQ#<(Pbj%%fvf8VbogE7eacT`4ZMT z`qq;+cu^Z+eWkt&+;vlqmrab{Oxi;FT1c<>-@w{R-!{^>8iiKt8D#t5a_(v>>-dh5 zJEBO?PW%POGNSaF`va_9p7JBC-J)Q*hxC)u#qP>2>-m}9y+YdV;P~ICij1KBuznQ< z%LAm}NWYW*ARQFaS`WcGOy3dGpQNLtV?sLGkHb1a-$~Lbjgr0p7p&9togtki{Vn8j z+)T_-X5wkdaJ2lZl!ZJ`v@GO#A^neZzL49dEIc)th4>LdKVc950NisB|9gs)t%4sS+uPluW8D@W0ZkTOYGq-;`-knX))Sb6m2t515g09IA{3O(Pou&z^I zNj#U}TH$8xvyc&HAr}nWbtCB}(#@n>gtWJBg>{?yO5zt*SjX+8JA~Z$&BBaj7Ba&y z>Tc3Kq-vylNzpi~POS#%eo{>#9eWSJszqOIQXNuV(u1UjNcBh$D+S*>leTB#Y2t7z z9wF5yJu2j`1X;))v+%9TFuoC~F{z1=_R?dpnyM0<%d(I^W+8J7Yj}e6q>zs5r(hM) z*PPVCi)sn0l`2yE)3BZq1R$KL5gZp%08`_cDlb$6#N9sU&p7a9gMN&sn zCsJpnGWewxuJNQy18P!95(NWtIN-z3* zlU`TKFlW;@MAM_A53Ih7??>vdQNcAJ3vY>M;mw?I`vxjqfIAJ+N{Jc-Yp^P^*M`6v zDhifwsZaLWFj&J?k?0YyMv8*vDD_G7=)qUuNsX`tZpzT9rbGD%e;>Q6 z;0)4C(k#*^q}il7q`9Pdr1_);q=lqKLV9*s3@bRU&=Qv+W#Jxp7G@Q#vK-b5Px%zq zN>5n@Yqh6*2J7=k(W}rJC~G4X^acLD^pth5)_ckZSQ|yb@+;CN(q_^Y($}PKNLxwU zNZ*pSD_wxQ<{9Sm!+DA6WlJiW@oE$TG8$Uq&Ufkw;`>7SSpfK)KLU zE`oBgrxb&7i724r>I=?A*~r1N@jRogu>_Qoj4nkgO)5jWoOA`LEa^(pRivv)*O1By zx&F#VMw#u-aN+TpjakENmqP~Uj%=4n3RTo{!5KRnbB5WNGqhWh1SQ#1DnqH_DJf7= zJtYlFx~F77$@G*gDA}Hp10`1!P@YooER(bdZPdM*4}Ssvs=BQyRJsOdp-{V)bRFq> z(hZ~=NjH&hCf!21RjCAWLAMTfCd@`AnT_K)T zVm5xAgf&%HpVU+X*8TL=^n4G%szqOI&sPUlUHTp*Jw&RfbQykQ$#w{YNLwO)D~7dPiYV9*+|jx_Z*ZCkqUYqe=mrF<%^__LN43Q z#`DVA_?D*h>SdU@4*T~d(#xb*NL@%>N!^6puefZ?GiKvi3)z3NCEa255CzMg>XRPq z1*^9z68$=?H$0^etiGaP*^ks;NVjJItT*W!NE$>MEaZMAWaAmfY~+98R=-6WrcrVh z8V)NOHzOD|(u*1eYc&4ecISY1NMlH2N$-;0BaI`CCruztB)w0XM4C*RLYhjNM*4vC zA!$14BhtsD8Kjw{SwbzZaYyDSux8UYM}4wq=faw&itO3>uoieq@LkQ|JcE9789+Af z8E4~eaoCef)Q1{%v@eCSjQ-`M6&fjf?NeAQRgrbCg0w!-h1tmM+}iP8 zbv81)h`%HU|J^sz*BM@Kc!S}MhQBhr$?#^wTMU0q4(1D^^?qY`tKn^iza?LexxA?C zcEjHp-eGtrxj26LL}kA>{Da|LhJQ4?+wdO4KZWc@($BE=ih|`YqV}M)vgYm^Tj2l5#Bmp*|Ut2VouZq7TD5A_|s&s!yVi!aAmk)O{S*2~n^-sXmE5 z1?w+WB>FV0GooO5mh?C29O)mW;4M>Wds*Cj47cK6r5u+-23wYcOj5i#E{hDbM7*c% zG?#hhV3g*#D`|LihE#!6k(5ZPL`othlPZ&{kWxsgq%=}GDT98K zImkc5w&$x)`lA58s`M3-bmX|BCI|DDIhdogy>H3&j8(gUPgq}rr9q`IUB zNe_|gksc;JLaI-Cl+=LKkkp9OnAAilc;`%yvd6G>P3do@e%X(Y!}o+L!MP&`8D|dO zp|Sg{2ugF7Z$WCQQPTUZ5cRZI?inbp8Qq4|)+^TzQSIpq&!0KCqaBXC4y5O`WRRWb zAk)loIcBuKJ3{Hi=*}7~Tlx~Nu{n53($$Jhm5yf3ebMUry4!$B3?(KI;?`f2buW^VPPu~Rf$-bQk-}|b_D4qmmvZqXeGSyS2 zLHR%w(1+?nje6Wnhx(CM;$tW?JY^=7S*+s|(rnTk(p=I!(tOea(n8WAA$MOS2ifUW z_HAJ>@GXn^=A`Nw*2!uc>`Q+Dh6+`j)hv^c`u3ko$IN4(?;;;N2bDYu`ip z0e`z(HuEECH)#*)C(_TPy`*1A`$+pqzmg7+ek1)Z%MW z9g|0({3$AyM@h$o^tyW-)(Q1pj=Mlouk6K>$hm^+qHO&s&-WLs)AXJ3d}m?(t%~g7 zbFlsq1DBV9r& zPP&wI8L0#*$O5J2Qluac6s-&?$OJ{Zf)wO}qFqV4iWFpn@V30dZQ(U&dyowVO3*X8 z$P07viz%!jo|HhUpz*<53AuP?F&DFrVSFW05-FKfS;)KQ~F*;p+ z!M@MMH)V1$M-;9nilpf~k_t)Jl7jqC>bRa1WPqaG zND6X5(QYQ)Lb{a{HG|Z4rFUS+0fWYYAT~Rir1Lh7x3d zQd4U$x(&XrGLJqzHzB^AMoFKvhw?0=o+EYeqMk?83#!PPUxd<;(Va-0y>c%h>Sg*~ zQJ-vS7x=o;*NyZl=`~V!QV&v3QZG_(pNP3?%i8Prsg*25kjr0NOL(+88 zN2HHQGe|Q@vy_54cWGZa(+{68ZnltnuR9m_9CPsn^W36&?s_+0NUwzpU@fF?5os}L z327;58ELtYdtyEpnO`p27pNWFy=jxOFvj)~$Rb&i)0qaXoSqE#q zC|GVFZ4?S}5gqMcLD{6L)V3Mc7E!SLT79zaZ(wazMWVOC`c@R2J%Z7P9@Ku@4(mHr zBzgy|ou2YNtRF9(wnXej@#>R37t!(w^WQ-dxNj=3*8x zEV+-gpA^Q+v3dadZ}j~xq}%oftb^(+jqfVRdZd>Q!8)wIT+Ad|-=DCKsv>=I4AyZ` zusoqYsp%xFQ>sYxU$9Pl${AQ^MZw!xO_Xwx5r$iOPRQNk$VFb5i;PfwdB_OaIyWNn zkQL@3D-<I?cf4;f(|GQ!Xo z@A(qotDuVXMMWryo>B=)63ZuhQ+^x z&fB2euF)58Y)GAVz;`EWx{Gu-DaihU-U^PuJmi6Sn1#0ecOR4>_ltV829*0fr6!aI zL;=+zg=dXCJeg(JQWsGVdNn)*CCL4vwLA>v5l^WP<^mQS1)hHR6-4OLE zeXl9~57}(E&hFHHq}GGfQ^;Ml^YFA{9_~p?$*b{SiXFLYK_1>(&qKx-*4oGO^@XpW zDsp`EhcZB;ga6_jmU~m9r1b+4HOMPB7|IYv4<)_jl^cer;a<5Bm|e|7mgv@l+0{H; zr6V3~_-(`Q7#?GItl@VJzh`)y;qiti7@lbOeZ!LsPc}To@KnRo41ZwwL&MVze`NS$ z!!r!eG(5|&j#k%)vyDE-@La?5LUyBeK6-wED0(ee2xXBdpv6k5m~jfn#1f5{v*A)i zEmK9t(sC#(Jmpg;D_MS(`f&Eu^V4ehKl4g_4rPs}tcCIg>-aLN1Nu7rt*38;=i3P1 zSM+Tn>Cu8W-+NKpLi(EY4QVTB8|hopcG7pG9i*M4?@7^7wu@SH%{iI(>2ZUP2yAkjk`sa65WdHpEQki$CQWcF%Q|JjL&>zkB;1VFdvy?J~GG9cRuL? zjS9|e`N$vhku`=<7n6#SE+G{sT}rx)RDx8JREkuZREBgp=?YR=(v_sENLQ1tA(bPQ zS1N^>-*AiKNby4MxtM(1YtBb5DN(^!Y{U498YR7xh^R{RC6SV&D0d|1<0}%yc(mms z%XIbWo=8D0saiJp&P=$jw5S$Dq~kAxzD!aUDO)H!>mWWyeZhN`VXe8OJR$d#Tt4O_ z&%?XUVN?OBsz%8c7oyf{>AOyS!HCVr9qN3%MI&1l95MOGNH4?J%dBz}u5bCcPwh0E zoAbkUI=Ai2@B`#v9x2+cT83*I zu4A|^xp;UCyMB0(dOp5W9@SaT@WX~5F8}~RyWt*&dm7g3xGUS6dhoViG_qbd{D$E^hWi@s zXSl!N0fyf+Jkao@6<$~&xSjOQDR^YaS&-t~O%q1-rC$^?xrf&1fOJ13If*LWGLlMo+8 zO<~kj(lpWsqz_5cNgt6uCe0wtB+VjyLYhsQLz+vPN19JsKw3yzL|RN*LRv~%MhdS0 z!SBI*^m0CCR9%m`%sL+#a6V>K!#-TCKG|oV!S^|RYdqgt_`aa;OVT>hdeR0VH#?t? z`|0`Nk*00f1Z6X$w`jDq;cNK5p>M0_+Xmmas>s;b4l9Sz-;s8Zc9Om)>6HU#fPK_< zk$xoYChZ~pMEaSuS17nEt{KQLXsOn%+q@sjuPkvuDG_f_hWp|-twl!h?}-0{zJsJg z8YRc%VMHCF?@!WE(lOF;rAxyz0Lq@A_ay0*kY*}>A?h@JXOxOzwm59}S&f%=|Bd)_ z^!-EnSE+!RaS&gC%(x)Tj9pI^U{3XF=3WJuU6u6|AUh7}BGSdAVx&t*#YuYh#kww| zR)SQLR7%L*t1ZCumj#$zEhxGiGfM?{?lPpZq$^2Rk*+3Pqf{ERaADbUr1GRVQamX^ z=?cvJhh-~}Dv}aOl}JgXWKv~P6;cW*RmkPz1-KJmfDAZXYX&J(qk^$lfLYf9%(}WL z-E%pxaz(*1Pkq60U4V?Y0C(VRbX8b|o^ma$>qNowdeRL-F6Svgo?C$TFKkUW!@5Nj zJZX7AeORwM8VfKBTY$HH!tJ@8bO-59Avd>Lfafs_aQEG=;T~AkM8Wc2^~sjq2dg@L zHAvAuuSx9zQY}(#QXNuVA$JTGVCJy^nQ7SmdZdRnO7_PiuI`_ROoWUQu*&tj2zh(4b^~shEfi={NehbzxPZ;Xi_FAFHw-{$IVA1F(J*1mi~ZB<<+iQXDq75QYSoiF6_nySbp zt0IdGec_f>#huttD@MA6R9wi-@>a#~_^QYu!}t>F3(lEUaeuxl?$3w5(xft^%Sl&| z%95@mT_xo1a8|`V`l`4`@9K4XzAEn1SH<0VtHeQxXZZy6NxLe*SJ8`3gi?voNu*>_ zWl|MVijek1D(Xm6CAg|pMb20inLAtMj+CmnSD%a--mq7)NZF(uEff4AsEQ0S_|NxY zd>$!Zqk`k3DssuHc$X)PDpa3r@3rt$>6%2>p|tBQ=C_n?ep^mz5jUY!8nL@)Y%D3cgH*^8b6-&FMlce}!oGEJjoYlGaf zs>v;@;yFGSiJ9W6CeN&jFH=VP48t=G&ocap;n{}gkTdbdSybm-!}AQ!H@v{`Lc@y; zFE+fy@KVFe3@Hyhq!`0J4IJY3Y8ZwzlWyv^{phPNC3&hQSyJ41Fy;`bO^KZv54!!9U4iUQhA z+M`i2T7QD?XZrT4PmYdX;M+&ve$ua`0~#;K-fxKioxVTRCv_c!?~p2TTposU#8du+ za@13fK{*~NdcHW}jxIa03-SD^YoQzKg~)IV!{ZHkZ#v_(sDw8NS)@ErxG3e4F9h4c}q-PQ!N@ zzT5CUhN~IA*YJIYs~fIi_lm(U_(8)D8LnseVZ)CYu20Uy-IHj) zJZiXs;f97A8E#B29iHXfS)xg(yRq>Y_I^`QK+Q;xlb#TA^VNlT0-!L=jX_0>YOYZ- z;#$DhQkCFbTZktB3i0;4+ZsJ$o`KTZQ`+FErYA*#udVvz7-|QleH87^!-dF|3-KPj zt+fM`=UK-Kq!%?x+SgHMBjt$b#Hh}smq;&@ULkcMbyW)P8@qO3{oP2fl3pWqC-orp zB=sWoCcRF2gVcxAm(-8cpEQ8-Q(z_ZTT-6Kl9@ORT{+R5oaf}+TQL;}bAaWvo z?~^8xCTqOZItB4lRgp0|4ax_e@?nfJJx2K`M)^2KnGvJR^c5Y?vwRiSCo#(G7-de3 zG8f7`Zg;p%vft)M(Vzvoz2aLK`Sd7V6r(JTQI^CgOJkH}G0O57WkrngX^gTmMp@-6 z+LNn&71n1l%I7i4niyqmjPgZ{@@0&&E=E}&qile(@xS{B+E=^$e2R!9BSigJ9AFvL3${|>XJ>>|jKRx9rtYe;X9M%a> zISK2OC|LeQIxVDIcLvs3`us?m!0j1t$!GhD8WTh%A!SB393`b_?e9u4gdjgl>?2Bo?xrd8`Bldf;`XV?Gh zBa^O=9NOQmd!W>0iTA2c)>{j{+VtH=s-sb|-nxjopS}mwCnY=x-$SZMo$5h(n9=n~ z5gH|BMj|RIv|Kcl7)HmcPu3C#UwkM!0ZL+^=w3~NnjEOGQt+1=QqrKLhm;H`4MIvL zlq^v|*`yqel5NO^FOR-_^+}Bz!uN>!%nW1MBjS4$zQ?#+BT{3HlG2+Xs;Mf{vdy48 z&gdtU%rnGNx-9o3qMC=6YXPMtmup38O?pb>6#XnDKPkKQ}kCGQrMhE&#UTey@#q9%o?x~Mlx4zA8wcqRB?*z58 zmL@Is3Y1qvN*5?yS$;QCcTx{hPf{--tz&PL(TBdi>XY{A2VZ|xqzYTaKA~?$ z;L{#46Ur?5KPAm3eI{hTztzXvnd;-$hg@yvlD;6#BYjDlPg+1)NcxKOHR&7DBGO_Z zJL9cB-pf=UPc*oiEK#4d$WmC#=vyB0t$?*s71{f%V66@*YhbMv1)uBGCuOgPwSm5k zq)i$n`)f0-Evm>`w!->8r2GKuM^W(k6KNZ1J81`LCutXHH|b~69@1XYKGJ?6ZOdO^ z9Z*GTdl1&4ka8H-k&to})~}-A^O*Xim41WuyDC!RAF%!m6zzYq|2ngNPm<5AzdN;OZrbK0y&!Wxd@w|nX^FzvNWe% zL;9bP{XLEdjKD?M{0#B-n^6QZwFtal(=MmV^-xOa^5&OAU6~~{%Ji%VWNQ(~)|{`D z`b?`wAYY5HS(?P^>b!FN; z6@mOM0{8Z%b|sND3)ROrYe(8o5LZ>T2xNA$rt9pwZ-?&={8h7UTb)#cbSLR9(%qzc zl+17Cxl(E>neVkuyO&f;$;=3G-r7R;{b3OpH;uq(sq@uUpS1e@upUqat!I071V&9G zkoUPI>ZxCrco9sq^&yw)|>RbMGBT2sqrR< zj6k*+fzfrTjqK@Buto=p_J}c1-Vqg_@2X#V_*hu)sUl^JgEbz16YQC9BI$i0t?LJ{ zOiLh2kG4s$Ol!(=lSxxFN?KwntZDR3SE_({EN;nHWFC|+HAdQGKCA^HWg#rnCuD2CR=NT6sGRnVke(S9 z!CFk;x1{ehN?KM-N2`L9)9SkXlU>y!A=8a9JPoZY`JgPpa$FH!CsUr3G4c71Y`@=^6 zNjgqCK{`n~MLJD7Lpn=3M>6?+r93wHZ=dYzSlroGit5n7wm!|zAaWCD~xIC!>sUqnnA$whkLI;jLJ%YG}FJpxho(?toG)q*RAeBc$93<*tx&HLiX*$k;n%l?HLT~vgg7`JXI8F zGeKEbH80hG*;l4Xx- zsbRKw5R*g7CFPOwNezYU+j$}}8W?G_!Jq{mgVKo6jY&;NO-ap2j|0XIvdt~vYpIH~Vk;=EL&{T7o(>f48Ex>!ym)T=~zC3P{hA+LGFlo>RJp zM?cP&it^eU+fsVk`)sXM6$sVAwI zP`h%r?!964QAOIdFRXqcr9Z6KM8W3((m-j0Z;I86#1o%)zjRgp@a6 z4Gk&7U=0@qpCd?bDw#PF{#xFGHBuE>OCc;5Bg!Z!qa_BPV@U6i-X)DCy+;~H8c&)) znn-$|^a1HZ(j?MHq{&KG<4&0CB~wUKNz+KvNgpef$Jtj}1!c9>c4@t zh`z<7Z#7D;HQ&KnqKa(WQdrAG!PWO3rAXv~t`;juD@m(_blt0At)Xu%X&q@jX#;5^ zX%lHPX$xtqkX|*uhxG$}KdMh!{wMp3Wv<@aLcZ;=cBmp-z7y6iQSiB&^s|ut?h%RX zFcNoqrGLnB`(W)4DZjuvAPPPYs!!^42-aa$Wceeoj*5cMUrEPEzma|?1^xR^(exT} z9M%a&og|$iohF?joh6+kohMx&T_jy1T_)-I3ijXB{vllvYFEY{RsX{JPkm)^A75J3 zv{4kY#3*EmY-4*=L?K&@vNqANjC?!M64Nz_j zDW#y476nvBeNwx!P|DF)o>YNUk#rO3W>O`kV)&kC>yGj&3)yFgqi`QM3gd{*cdPnj z?N#BsO%>CBqL3LzVYJY1g=$c$hm;yn^gN<%cNdhqLoxS2sTor4g;Fb|)P{1OD4;s( zL(Oy_)rERL{SS~HR5D{3Qd2XE5QXuPxe+e ztQ=KjZ{@XYb(upXiBQPN|iMx@3{*W>wIw;fGLO_fSx+|GHMksc>KA!L75 zD+*a+6vhkvZEFFmWk_iSt93|u3f9x2;Ij=WSaX4By2qY{)m9a>iT0d!P@WSNpU;!p zlU@+gQeK4BK^1A)j(GZbLP&WD*2|*cvlFQ^=@q3ixF0IpZGQPD3U`E~FbmRei7rKy zu0@n?P`cx<2QtWbap6u}ykEeP(&Ex4Ff9&xm9?$T2 zrpL29{?y~y9)ITX=N`}Tc&^7^cs$Qz(>|^p=6k%rK*Z7m3`VDCjX|a$V zZQsKBj=m-8le5-RSj$wABXK#b6{6sCC219DH3&7v=Ni&l(mK+5(gxB-(k9Yo(iYNI zAv<~%g%QIj>j3^_4;&P-BVkdv?;M33k#z+f!Qau4@~b`aj)`WEyx%IH1HQip%UNDQA~xWSXu%(Kg3)`Zb>ZKd>BO(a1QJaU?|}y{$QtwofoMU>l$D7Oa+=nh#kGA?rrn*JV*u}eqQwO;1B8;udn|F=$e z7E$ghqTF3XxhGISHFX`*n)gDf1;t!9qcOti=sr>%CF!fUMk1~*G@<)R50D-tJw&QU zdRWM2Sgm4b6dH16=*HR0He#&~DI=^kfz+`zHz`KX6oGSjIjCClS%k8?cE^*GPte2*J? z{D{Yodi`&w2d3$L&3S!Q&S_?%;7pk6$7e!(GZ?y)S#*$>Yu*zvA($9(VD$tH<3u z?(T69k9&ID%j4c2_wl%|$NfC+@9}FM5Ab-P$FF-l$m78t5Apa7kB53Z%;Vu6kMQ_S zkKgimq{oFGzwPlTk4JkvhHU2W1pDzFkKgrptjF(pJkI0sWHTEpD070x6Fq+4;}1Ok z(Bnyt?fL#ASd*pa>$z|Wl&PYCrm0WP+|!|$JUloTegb7iNSO&`7MK4twES%NJ_|*g z9zQ3f%!Tp=m!C)ak~E)W@@rEUxppnYl3&sHHOXYxh=SK-*Fq+{7W$U-9cc;4Nm9ZIq?$ycWv3kg^`ihLExm%BGOA8OoMG(JReX zsOH)(HT{9~Bk3p7Hj>G&Wr-c6oupkPlVeMq$+U$`rY*FWw2!o(WU_3DJ3u-}GI_Rm z50j3NOuh|oyPIrJ{T172vTdWtRrfb2CeIF(KcM^>QjSA0xpfe863Qu2K&RCwd+7|6 zv-F)KohO-m8D$~PWXnRANSB4|NN_an9z|mu)8%qiQDaF{l*k~~} zD>m_FoGu1=aSX;@B?F4FZo>YNUk#rNuik6=dH%8H3+mim_w0Mv-=T6v|^7BT6GEjYCQkC{063GboRTlqaB=EHo&& zIg}QnfLf|gdPOTJt?7G;^fajr=^0W1=~+@+QajRfq~}TPNiUFIBy}Kl6teewV(>gp zj2(*&wyG19&Ke`_^$L_%xqKJ(VLP>-c7?y2`pq*#(nit_-Qnw@ij>x~uoCXC`|a2Z zF}*`dA1HlA0rgX#l-M6ic=-WP1~U3}(jZcB6b+&FhLF8C8iTv@F_?pCb19H!h#<`m zL7E+cG&clkW(d-}5TsclNOMAvW`rQk2SJ(vf;9gFY4!)w+z+IgA4u~)kY;)y&GSH- z<+ZC|&q^Oa(fm%2gGo?KUWacmg(gRF+d5fDuN6}eHB}YaU(+y?#>JXU&nzEjlajC??knlrNyn3l!~hUqYQPDrf=8WP4J> zuSj2$z9B6lEhc?S`i``Ow3M`rw47wJJX!BbAw9lUp>`(A6W3h7Xd6f- z*As1%ke$UAgFCa)IICHow&fPA$z*(pR^@vrKZpYQQ7H;@P9;jRgP-8r7FupQlpS1d zCutXHx5i5r@-yQ1s3LoMFXj#fN7Fv_$?>}%(Z8^y1Ehl*CAB()sKfLfAsr=|%uib8 z7|G;*qWw-X*`H{Cl1%<5+6j`$07W}RIxS?!s$=k^PYm)v7j;g3vQ_8dyP%4+!9^&S zG`a#t4()Q9GhBwx0UNwBP?%7>jIB>JW=;Feo(^*tH)w|G!}C;T?r*g?raf@{LgtykxG+vD^W^WYUN1fNfk&HNjH&h zCRHL;CRHKbLb{byRmh$NV{u157Wd&@jqe~;BULBW5VE;hEONkD5AUcvdIYW_{-VNG#s)ZpYAVFO9|6Wh|c3k$WexcFaavA8E6i#evEnByWA_vB;kcMlT-#rEr1JgF0F@5oCTCeJf;72431Ycf9Z znvBmZZLTx1$oOJy#%B~+!=q44#uq4!pqPv=P?|t786Ol-GxeEcITm?eEM{l=(N98Y z&S;bKnUW;BC48;uGdZ7>X>vXxlk=H)+2?H#Z!$ikNPP>Sn0zl#+CnkeUZ6Y&#pHT{ z(jJP*^aABYC>`+E(QeaAq?bvZNS#TqkX|KqA$28nBXuYBAoWx-`JbynFH&zIdrgeR z49r+$cQ#5}pdYOMA>}n#0|G^R$v`Nt2P$X~{sxDXA+X*M1)oFJC;Ms`tl_Fi+mC?t zW=MGp*2s`j2aisC238aZab_6LFnO!XIsk>JFP<^sR zlVE*B-{g>Q3aqKB$ktASH9e$!4C@n7@HvAtQ^;n8vB=|M@vcpOkIjblSxEUD)|`+s z7go?4=BZEW{UxmVqTq7@X(8z=($`AYW8A{E!Z$+ZET(;95tPOF`_}gU??_8XOG(Q} z%SkIpE0rqSGoX~Wir&?vHA1?V*1}q+inR86SQ|phMp&Cd%4S$wM8W4)^+_9j59XRlvi9l+l~ z+scPXhe=0BM@hd5={4aPtl#MSU42rYKVbby-*M6j(n-=OA-xWqhIK|2X|1!c&WVE0 z^Fp{Ly4qhLT_jy1T_*h{WHawrjNQc|Q?q557T4Z)1D$znQ*Dq{^f!O2sik;>x{6NVoe| zlu?zw+eo)7mB76SS@IS<6X?pggH(-Fom7K#C+RMwk{Ca*rPw1k4w+pXGCNmpP13!j zT1vI-bxT^lwrIKy_o0kBjIXOc)2HK*<;5Y(lQo*28HbU*IAnRgQV+_*T)sXjf)q)L zB1My8NU@|iQoN9zn;nNNFV3FXOuv!(Btc1LbP6ezltxM?We8~tG(Z`dsz|9>P_hHX z9w~9i^5XDZiofl7Q1V5=Z%2(%pR`>=_#RPT9G=3F<;3?Ge2r9*H8zIQB&0Nj(u~VL zPI`j$B&j*6g;Fv6ZkJsnN(p*zD{8GtLBD*OS{u?cLiT%P9G=vUL%!$AZA)rLdQRiz z7<(S^?NyQOd;yA{A9N3PfYOo6zogO9PA|jPiN4Mu-z)IFs*04|1xi;&cMC;#hp$H{ zx+j!gA*DBzJ|U%Vpn&>`57b}j8hmSYt)WLIyaT8W6ymi$4mn_)&HUs@9L&feBv%7z z!8Z`E3P@W3G*nBLGwZM*N?Ub!pn!toX+&tbH{pA$$eN|?M}|r$)aAtYcHqKJ9BDjh0%;=YebNV{4@r|qACV>tX^)-)YpN>Ji>ASv z9#TGr^+`yX0c)lx_?)G5HJ;kA+hlXkIOLsi7&UZT`I-8p1wV&1M-^G`Tv%TOik@@k zLHROJLG$sqAfzmW^_3|2{F?NQkk)1qti||4zGc^Avcovc!L$lKmynhU+3X|^Gcn`v ztd5P+eZ2zK%8;@O*6NV52G&|p@VQQXvhC|(ZBRwFeIu+*qTq8gX^W6xnD*80j}5JI6W>cZ=ijT$;ac{)Ba06nvf_og|$S(yc!Y>x?S0FV4a`7bw~f z&qKK&Dn2igE(z%#x(w?tRiw1PVf__8q*3NP9glo79#3$)sLJY-ZLb2~E%e<=s;YF2JqKa??4FCq2w^-%2&Js6c+A9O zcBCu68mYRFJ)+|=Co&$Rgf8kX^+_%6hVLF#%pQ!#T*r8f6}sqJq}odV!?$Vc)q35B z_&SWLt5gixy+lb%+>fXS81*3OAyPe!H`l>apK*}U#k+OyC-TQdtm*x#FZX0t+d8B+&LnZS|=(0p{jH$V0 zA0a(TdW_Ua$h=L&9^LU6VT?!i>6UIvYNnC0&mKqA6ZAc)KIu2j;cG!(OQmA?z9OYo z!W?v0ek)RIA)ANC;~P>up8K&;_DU09&<4sgj4mKOt5H&~wuov+-*f7ddOZ(cd-}A6 z?03$1P&it^s17X-{wl`Lh4HDM(R%LLF!5BCDg90 zJqmiG#(h+gqq8rRej%kl6xZtU$VH_Vl6jf4hqT#1M7^%Qcx0rmu7kBKi5h}m?{#r&dW$qt$d2pB<9>8J#w=abDAH(+lA4V{)H~`c zh9{$3{JWv3v50z46||T3_Hj_hbBPJ0iAvYv7js;B?<-aDj;;^r{g5d4eE!|(P1gToXgQOu znxhgv?Va1;-~N9ryCbyh&R|*SyYRRB|5)zl&~kf1%k70v70|vSB}nhtA1XmJT|JK; z2>A|%NP52|1GrU-{Jd%%bC1bj;G@! zw_hZ~I1wuAWT>oD@SWyzXGpFDX`{2D5;TW~c3#Vps0&`y|1cYc`ycv6&lit-@KWa> z3MFVSxs1raSdYI+;TruDD(^~YUH`&YbUA6)|GecAkd;e45}2DOxZK?4d8OqmLz%CM}mq4ku5ul)Z}LWNKX6?Hk;ikm{dn?t@zD6{haQKtD` zpxc0`TSCj-3Z?4*yBxIJG|Kgt1bkEQOSvOdN;O>NgDk|gm(;qtw_GKT1BkB%)^w+? zJppqLq?a%X-n&)fy6rcR1bo9t!1s!Tf_rhrO28acN3}`!k?N4@lI|xxKzfk$kdnC{ z;7YDXdYDw76d`2aESrFN2?>~e>XwXFpKNmstXTTuNbwpay(|G%qAKPZlYrR>2^gog zW!l^}0dEFKz;hLDEor25jgpcwU^P%hO3K9B&0k`47Aae!WVswzx%B0!PqrZ+Rzvz8 z3Hcs{^%#APNR3HNNKHx2NRN}AAU#QHPHI7FNoqxEO?ry-G^q{g86i6wl7P|a1my01 z8@GkkE>P^bGXZY}NWhE)KdwEj7edO5usVd4j)k>w_Hz3x*aI(9>qP3TOPaBX1U&bj zfRSo{eO+L64JqAVbq^^$VD%IQpS?)ENqtCtN&QIuNw1LxkOq=oCk-MECJiCIA*9F1 zP*}rMk$yQG)`*burhPk|Yq7V~Cw*`vtU^)n`F6-R3f5>Gtns4YbAtLLdLpd%RYA1&h!3EAC@MZDDVe)AuJ#|1CX=R+rjn*9UFYqw>7v}hzpNoReIqH+;=fe7ezIh?vm$2s3w}7;e z^p#Q-d=q!|`&!86)d>aPz*?k=)Ne7YZ$rv=u$G8|&!y^<`YnUCToqY zelMc@5mt0B{28dA!I>nwe){iNTWgC4Zsc}86zT@=y``ce?D zTXH#2Kz~UzKK~Zd7WfC&75x2cGpYZS5|OiumWZ6)(bc4DgzR=CB12EKS2mPk*PV!L zJQ3NrT~3waP_F0lCDdoOH4#~NB4*|L(KkXV#pu$cGNiJkazZvUOhjg#h;ekktcp-> zV)V`GlQma@uQGjANVkw~B~=yD_1uOfZ>R4L^+~DK;Hyqwjgaq7`0m2r-DvMb)}L!^47hlR{l+4k&2jKn2kj;*U#r21vcqF_a@>v%hM~WA+y(|&)E)tQ?+9>T0NwAVbN(!vhkdkJf)^KH~i_ea6J1s-CMC7XU8Fht*IO+15v3Jt_)5A0stVG9$mPtj0px zTbjUXioa%duRl(Dg7hS*xsWc|0#-{^q!z7UwH5{Ark^S$;+kvA*A{;oRvY@BAr*w8 zp2e>`d{19nQajRf8gIrp5|Q;LVl-T~<7Q+=Zi`+J(sjQGs{?%ekj(sgm7y(x%<$?JlJ4*8^5h`g)OillqYQ3h9#lVD+c(H6`$>G`VOpj89!Eiatyo&YaD&!Lq4yV-q)DWYNRvrZNK;AENYhCl z3)wrSiO7KyF>BYg<4pBQy=TD+j*Qui`b?vwr9Ou>M-@4?=EC|Sq|Af$r6~BEPg+0< zdhkMOUy;5heM4GAT1@(u^c`slX(?%$ko^{whzubS@3l%SSZU8It4OO!Ye;KJ>qzTK z8%P^Tn@F2UTS!|;-;;hI{U~JTy(c1{O~jlESI_OF9i*M4T}ovz`eK*REMqsUpBc4> zw3oDxw4d|~=>X}VkU1Xpns*4wVfv4#U;5HfSijPDjPx7ncOjdJC1T7t5%YN6wjNiX zlyw5uN%hsX=TF&lr!-3XAX@|%rbP|3#5xmx8Qr8^Ij6N@AFK= z+`iiQhU~%u6mPyDUlQ4GceAlbbv}6+I`zG1EQA)UhQ8$uGX}mehC1Gqf2_v$utg*DWz z`W_%Xs8O=chY(edzK4}c;;nG9Z4y-jaIG zH6u~DM}S^x65g%q%=}GDTCC2lu61W>9J^M1|}i5OtSfj^w2zs zvfqG{Fy}YP=9a-edj!g(T2cw;gZ7v%C)?QwN@K3C38^Wm8R>B$n>!?7-bF2pytwUs zlGL2kg4B}KO6h()z3rB5O?ry-G^q{g8Bzi1SyEe4JJNHc=Sl5JFOXg&bs%*ly(HAG zl07s0Jj?Hv>_h5H z>Zf!K?sQ9BX?u=C-C*};+-pKw?f_T=>3f|th%{KpUVoC1UnU{HboCfY8b%sU8bNwf zNRPU=V2z}&kn}cb6lpYRjF2fq&ou8qc~@0Ai;ji$o+$Vnr#?B~jfXWseP!@oW48?x zN$-jXGmvB=Sb&C7f2ULmq?dMf06zs{X@D!`j_;dQZn*R+h%rFTQYLb zs<@9Vt(eTScQR%bh*rtXfnnwov(z_ z?YNgNnweSayd{gnR|Cf%b^=A4#{JNn7UTP5l$p3jqUe_u57ZVp#QZPITC$7(X(mYU4#WG&nebx|3l2Bb_<7Aae)EZaTV=B<*E1U)U6 zOXQLANezWe-fPc3$#`xp8QH9>&10lSO64(`6lomylmVp9lr6tNfYz^fpUBCIoJ6ETtNv;Owdu4J#n^0NLFsgv`tWpxb z$-C0p3TZEE=amuVjz0TMAsKTG{@-nWzKGJki1I=a<;6e&b&`0MB4AB$;h|=-|gudD1{|42i&c_TTmJzy5p}0eLYF8 zX3|4?1!d{_dKXdp1PZ7xOX?R|U;n~#xLPL{yoPgKWn49cZo)TQp=8XA7J3LrpwkAD zUMCGA4JHjCy+Il(WJfoXF*hO^?`v@7jv&2BdP_);ppmc&>3f?riZq%uMo7;g@4$MO zzOkhDNaIN3NfVTka8`4*oG4_!w9!`7~J5)pr-} z*|~B*)+pKkpTL@-iku;4!kQ%tK0hVR7P5CNlJNveGRDeWnR7^UNnZ$QYtMuAC4KYN zhoedR{Q@Wp>HmuKHR&7DBBguTqmuEQovX{Yr0+;elxko+$;B-d(%!QS)^hq*kXDjb zkyew|kk*pck=6@oKCuDTM*239HfxmZk1epa()T^-2hxv1+O9vr+D6}Y^~qUkN8$DO zcIdWuCutXHH|b~69w9x`?uE6FzWpRU(zQ1nfPRp^Lqd8!J`C#!eMd>Zl8%vnBmGYL zLr8n|pRkUr&-|LNY+VwbY;xOqf^?4CjBF%?Rf>(zx4g5l!AO)>Ysw#+|kuSw*D!|%~N<*O~DATi@J_fj8vR- zJ*fn#q>w%9q+lLF3f|P^N-L#Q8Y5~}vwJuN`F0BOZ5LIRR8Gl^7dmfwAyaRAbf;i` zK?=r(o&P4%&7?{sccx0guN$}}ZXw-Daz}EC&9ZUTvEN}+kZ-3T({@W%BULBW5VCtU z1(|jVGHn-sH|ZWyO_KH>EK!SEZPI(rqMxRnp z4_D9>Jb&k?J}H6}Ns1yxlVXH)568laqc5J6KuRPfk&;O%q*Ng-Hw{)geHo+%q)Z`g z=`2{;^yQFpHOia;Q}D}LDH!c_+uo4$2vCYDRio$R3p`$dOa< z6pveHb5aY9lA5)I)r!8>q^C$vliHA;Ar+9GCAAf@*N7C%oGpcUFj9|Vwr8R**z;%# z^4b*Kk#==#ugjS;eF|pMrr_B+@!g7XDHqj&bd!*_Sw~nesba4BDR_1+1*5)pIeT_Y z!J7|KFprjs9?7pl=^`pVyOO$*x|4d4dMaImyusD27pb?9wm~0QeN~aV^@G)46nwr$ z8X$yoq14iRzevHzZwj8Xb88u-K53`Hu!g82WxoMyXh<1WL>XR08Bs)eGf+Tp;ZKg@ zkwSVFEexWxmESI+j4GmxF06~uFIS@07H5uMsErZQz55QVckwqC=aG{5b}W>FQDjHs zgfxCUtO@i@B)w1iKuF_FiIdcKhdpl0no=-R$dx}?$i!>EnF3|1s?ze)U`-DxA7l3N z4pH#=326ptrjXWS7OYQIkuqn)GCj=Hr!?kex%zxgnj@qo%!T!Z`l{J}BwI31qvW{% z64rc;O0h?mL@lKD73pizH$r-bSp;h_ec!52dgXVpme9A9w2ZWzw1Tvfw2HKvv_{GN z60U27wWM{V^-AS1L(0b4dvPgv{v`$3s#|gsX)|dHX)Eb_(hov5YfHiVWK%Gs!Iid+ zw4D^}_no3?*0T%NZbtn~+C$naq1`c>oQjB^auZ}k1HKH0Z_;P-1yuatHFNjgqCp;W=1`4OjEeiHgAMx7>|A)O_i zBb^sATcSta1t=HQZ=L~jb-ARG(#J2u`b!l#mi~tIPe{1}>t9jusclx6iriIN&y4zVj73T*S7E-oCG!kE)>sOErByN8n~Ll<6>l_?=v3VMa8#aDLFq=!7<1l=q?<@L zGtOKGq~?`Kl}S~E>^IOMV9N<@DQmU>0wfR zlG|&k7(I5&Mk&>H=TTilG}aKqs8~`QDV~%dWRI{^%&$$t+#^?hlKP}&l2K|3eW|20 zjgr2ej;IX!8jvzcS)^=I4k?$EC#3rOx;vQa7bC$d+B*x|4d4 zdXjpPdXxH)`jYx7U1!ft=I!F6c(tPdFVA!!onBhqBj6s58laksU! zxlJmv+N-=4n#TC)q>nXTu6LinnnB-8^+{{bg7qnVvq_(kJ}1o~%_V(7nx|BWy{QsL zXk6>}8`;O?)qL+9uLw(iWv_Fpt8;Z57h<&-Zwm_*(jcs2^1`Ig4FV`}t3> zwlRLY`lP??fVGppT}n3~|8nczO)}>Ovn|DuWjOC1(q7U&(tgq}LYg}rfOU|*L!`q> zWsniNH5?JreRvesuk;;Ls^_)yZ}k37`h)Z*>9|rd-hyY>rP;sp_^&XHZIxy-XS0XW-2Stp z25HEl>tY6~)ISY*v?JGx(rgYbOBSQIxRUw(7HJ{8{~BdqkNb438C8N*lBDq%VK7G- z%C)skgOz5_CbFi|>N7nt4cT*=J^sXJjxeF}qza^pq??57xgia6h0`$OLYBN4^KE6_ zQhsIls&KhmNZOaRrK%$8Hu`Q4O0dUt8qQB?_}yApx9X%C8fo@t8nWdyj0n4^yGi$u zYLf0H)glG^O1A;!)e*1lrD>RHk%pNTZVeBR9wa?Psz-WQNL#Bu%Fr_fD3Vc8q-atM zDOO0!h{K4pI||b^UjVRl8D&03^iHeys`jgo!e1W`@tYoMg&yr2fe+M)C3Mz!li{Rc)Hn_Eh20um zS<;4Gf)dOKs2-PH!z!$9MU?JElpaNto<)>iPA-h}m*`pleI zSBsIPLM1cz!g=2o(qnuStkLQ#g}42=s4=8>Nbd@1{l~(3PZjA2<6w;!1)md?%oWC! zI#J2wKTdm}^a1HZ(j?MHq{&LhFx zSf|Y*eM*{5`b}oC8Yz9&^y;PbEh8-_tst!=ts<=!(lf#uSZnE9M_NzXAf)HE zjdmuGtJx+-ZB{CaF)8QWLfT6Do@DwETHj{QX&6OL!zi*S(jT|M+Aaz{cc@QVcc+~j z<<_%{QM*Y$llGAIlJ+T?aamW&ev&!bOux95dm{~Ft1j*!=@98K=?Lklko^XqW{>Y< z^!=tj*_z*B{XyTKq~jVT`~3v0lk}Y;ohF?joh6+kohMx&T_jx+viI53@I+i1vR=Ez z_Fh&R-jiU)mt7nDL%O0-QpbN`{inWkWWN%hZqKo%MbnY}N~z{*l8)>*9XYRyx>o6C zJXPy*q~SXt7{p-soA@>RI+?V^g4uGc72pL9GImyYM+B&s~JN1?J9xpYgKvzyfH zMj?BCOh+!9jxl8MUBxX=x4E#ymsPL%PUp%fM=DRMAY}TvJrL3)zZoYX={x4b2+R;rkDeLB9grXy>%W!dvh zI&zuxf;OVy&hZwdbiBXVt+9agEUB%K?wfY7o}=%1QhU-1q!)#>h8`f8N)mVU7M)At%_ zfKpY=td~}n^Y1{kZAnJGP8viSOd3LZgEW*hj5J)xej855JIvDYyK1t}O5*o>gv#J) zB&mng+vLH)z8I-d>6pXoN4*Ve6n&#fV@U6i-X)DCy+;~H8ZV@^od9bheeWx!;;ysQ zI~`-ojy@F9{WA&HN2*AlHrqNy6nsu4O(RVg(lgq}us)%025F|!jrN$3bLT92KPAm3 zeI}&G>F2QKs3J9+3+oF}@Hvn4C22ls0cj!WDE{XJS`g3=eWlwJU;31DUVNke8%Im9-s60yvG+j zzUc8Kk1u=tmt*F1e?$34RD50`{Y&~!DFb=2-O9oYqx~&#YxwbN{~tl+4EZlzRPD|q}Q#z6sa_+45=)s9H~61f{;B5Gmz0{Aft8V-mE@z zz0AO(_4G|l*dnd+{WW)JTCC~S+bdxAJna_$L&0R&g17jZtw969>3^u2ah|F@3)z; zYoC{>XJDRjP@hg7clP)dk6-n;i^p9Z+vBDidUAJBKs`uW611MwdXajQ`jGmP`U&Y- zu|LXqjlKb-fuz?-gGhsg^vE27GTxwXC}|jJIB5jwO_CnBDCI3`BT0oqc625K-~Tgg z9xP{)(To~HdWZBbX)NhI(m2w1(ge~(()*+jNFS0W3E7zh8OVY&Y@RQ*o5HB6q-mt- zx}=;TKgN=usIMf(IBjo&HiI;iG)u^4-x-)!Q4#N+b@8)FpOHS-csJUbft)y_U@rY% zD3xQ~EwSf!Z54Zd zStiR^UheS|9E`G z<9|K=kKDlJ(dc6hTqbS#YA@y*kN@ZKwH{yRaWRjJdwjjeB|I+a@eLl|=y55JOOx+# zXGvS@bR<4PV^_PC12w|IQ3$5lPP&EwlWzQf~c z9#{9chR1h$e3!>}dwh?_H9fx9<60iq_V_-J>v&w(P0zJtCy*dKBw=jJ`&s#!6S?9*V7r9SduKw_h~CObu7JW~9eS zPlV#1M0|7lT98_jT7}|UBmOD%nWt#nnw}=LQ7Vonjhy!xrF#5+-vG0mrQW!^gEF7R zUt7kvBRxlYp46W7f{@K58{k>L2AI+2*4dHtl17>Fv%A9GjXQ3D_f7;n+~W}*zv=N? z9*^|6(Bro~9_8_9kH>iYj>qqMJl5m)JRaxqc#kJ|JkjI#J^sMs4?Ujb@kbs{_IQfN zQ$3#M@pO+r_V^QzXLvl*<5?bmN`4S;%L(?;Y>z+l_;Zivcs$qRFFc;-@s}RY_jrNF z3qAhI4hm}%#E zm>egQW9ON8dxndzPl_N#lA@Gu#gnaWiD*&`DV7wcR0~hO+a>Hwzs!PoWK@|h3rF^o zY3F=M29t?*E!$YDCwrXYajM5@9;bVp;c)|xGd<4oINReKk8?fF^Elt*h8{oS@uMC; z=5ZsB8++WuX~+)iPN9=^!6UV;Mn%=7txD4hyvnbt82r^&s^Wvg4JRcxQ8_ons=$TOUUCCG{iqC%r}*KpIGToivCvm^4Jl z-doGW_<1JY*Wr%TVWi=t5u`UsZ;?il3Q2F1Mv+F7#*p42y-ONPdQZsCK+eQ_nlmv| z+SPM{($#jBh_u~Adfz8~K>Cn0iKKm4_rzqZVG4ayNz+KvNgoT@k?>56pJ#HsJk#}D zXtNmqDQUKnnc3;K<}=dgq&cLyLiSsICeGWL93#(kccY-qXZ!-vLef{HuSwsK7Af6` z_lLMTEhc?S`i`_j$iCYm6L$?V@q5>9$>r*ktIi7eR?@eMw3@Vrw3f7vw4Stqv{6X+ z+or;r1t+kU&Gw45g|wCQJ?RJ1kEEYS+eq6hj9T74!JMFx;%z~p(ex?5y={M5vq(6kT&;AMPIDJ9;ouqb(beeRAbe43EbY4jJ z%LP~$>AOU_O!`Ym&$WNU`iH(Nq<=L^@{|7xvus|9y=`YLW+6k(LT+mJzbe;2`Cmx6 z7Rq&6Vix8xOK-`-99>z?l%0hq`LZy3+4)M6ZXn%ADn%+yDnlwuGI^-!nOVq29aT^= z&vZDgBIza}du(Ol8NMvc=CDz^b(Nu1VYJCdrTkkpO17mcqHd$_c9O|OP1{LSHAGdX zuLkK((p@Bzi<%`(W}1bpGz;%mbL+lWedd_Y!hGW_n~6%j?qgIPlF3C)Ste`ELROlE z+2O9N2T2cUl+?8zq8_HNJ}H6}sqrrJ&cbZtEX+1`CC89rHBw5BLsUF{2}(BQyJg|+Zqk}&rePN59%o_h zv0LY(q{m2&G+tW2F@8I{2YpRQO*Kl|s2NIqoW3X2C;R(J_?pw#LMavR=a+g(2`v%T ziczgePlckMMpV%5&oHWh^sL59?b{;0ohq{Z&p~;f(d|huXq43EMMQO=uOsOt(#xby zO7-wem}}S0LiRp!7UuP5VeHr63tgaeWpp=EcT&*iJ*o9lO19tp%n@RqG0sAUm{rh+ zQGH4Mg!E|ckEqw^8=yYfM+4z|oxVY&!Ad3Z+`H62IC_Q@*1)$(x5aOehLVN_%b@(> z_#2^$?29*{yv68|q(ai$q)|e8ei@B#e_8m=7rSpN?Dk@VQZ>=Z7!m|P(}9j zJSbm=l=)B=aQTI#uSj2$z7f*BzX(e%rte$QcS>gb!qx_HON4aErFd(Li^@V)Ds`4) zU^$}ooK$GuI^s%LNm@l(OsW_gOaNhN#4Wx~vO{C4FVA-vr*(cbt zFk?T<%Mo18nuVwK+`6_YmBl?Xr)}3V%RIkAY0E$0=?6VNj@yN#L)TR!LM=RLmQ@kNg>d3@R9zdZii<9|H9;@IxzfAL$jx~H($ z{}W$fw#$}5S5doK$^62h^qOppO_mWl|N=EkgDlaW+PMvvJqjm2sQ;%$X${??}$Jqr5m8K-CykU87{1 zYZO+;J!DtHous=+ca!cR)fCcN+>7#S(N~*vpGL`=>L98vefN_dAU&w@CX33(Ud_f> zudCU^BzI29##{mCjnpM&Z%1LtX!>GEv7|VSmo>#BK7qbOQW7aS6rY0lRQl4?C#{|i zUj}^*NSUN8Qnrx2N@U|HzHB_j=e8)1luv3%dPGQYD0QPNRR9Sl=iGD=E|Lo*%R3=hc3JW zznb8-={b!;pVH&#c|^9S{{_;EK_ntN;IAWnFOh=2--%jhT~d0}D_HVX`nr(1lDcWU z^rr5J??GQr^-1sO1z&Ia`jGl+lpHDj5Y?Z)*GL0M12taO_&VYT(Knbhg!D!zekkIH z(KnnlLZhS>ZzAd~`bLrpNpF)z32EOLjU~s>_YUb@jgs=m;tc{pKYNc+c#KBdg6WSZL4nUy;5heIsN? zH?r~lKO4EMi~pAN9cc+^DQOvLIcWuHC219DHEE5I9pTT$nTkbV@hcTuyEzh>hdY_3hVlXj4Hl6H}H zlYS=c5z=z^!rDjQe)Y-u;1^g2=sQR{q*1cPhhZI|?#o6wqEK1n1#XM~BpnyhbMpyUC+RyyI!!u5I!ii7I#0Slx=6Z2x=i|u^f&1r(iI{5 zltDJ`=w>6Ylx@gCUg^jjCpa4HH^Ur^#pWP46vbR$a*#{rAeVH}*O6TR%dt75DZ!j$ zbC5mexK^{rTn?U>&aoMzIp%VZH%jSdzvke(cMh^fS9%#zSyDMtc~S)-n^ooDS-KqL zh*HK~n4#&He=~fQRFUne45f-j=U_&FTlcM`s!FxJ?Y@oP+m-HNf6PJl=t^l_?ei3RSek%LiQSMmTQ^Sf}ejP%KY zDCKoV4I&LD4GG1+f%u`SNPim!WjLcpklrM{rDT3NL+W#<&6nip8p*gq(%Ym_q|u}? zN;O>0VP^v6V6-;}zrW$Ocr58XAw9>8L)3Wn-Hnkm7e9eCk@P<41JZ}2NhCdH>>bS< zJUfzu@mg2zRMIr18}N=E=bf%}J>IclH9b>(jJHq+*Qif4%G`OEB`aWtxhrD^X(nlw z(lwYfE#;b7@Hu!IF9*MiAd2k2&!BwH<>shQ&MtHDW+^>~A?gc8&C@73KYdwf-b?M5 zIUmsr7`>46RcN`d@oTuj+2b2VEeb^~Mp@s|_nlI4uLmumcPVL^(sdZGckQ%XNY7_0 zQ0_|lR;f?6do_G(=vyn~U1!(Px1O|tw2`!lw3)O;sT|&*;%c^4sg{?$XwT$tmF8fC zHwW)xbIbfh+NM+$-^pb!$g#a0@jDo`lcbrl9uK<_<=V(U+w5Vfr$eRgMf^ThqzCOU zqWn@sIZ#A77$~4aTB5Z7;lQU?$|HdSI;wR`b?v3w@+*AD)ECrJ%KR->tv)_<>#l_*nEE@n>T;=7`YDo!$aI^yj<%0XOwgDc_2 zkgpW{rRgi9bOY`@y7;oBa-{O43M7-oOZ{(BO2AVlPBVGD@tQj|POC&RIlU}fg>;LM zoq?8%@!wpG|GKE#NVk*jP`VFeuP&|{sXD0!=}sYgeaXc;l5=t2*DZMusisEB-nbW0 zCUckC)+Pn*RY$cPyzSG)X^revC>Jv>axvq=`5q)aL^2sW)?hQ8T;%S#xW6Qd^rZ+W zks&1tR#1m%@gXWksVvUQZjG^|I3cZ9JmM2nk@X}(NeUF34dvpETDkZ&5m#C&DNQK@ zPjor2$>z9dq%4h+HqJ&=4t=@mlfIk>U%o0*$A(ZIVf3R)F}Nq| z)?>1Hv%f0g*V2TF<0*CLZA5BJYC>wNWPYbbmN0Mkcgr>-Jx+Rp^dzY{sRgMesTHZU zP`iq@wVuM3J*|ptYa1xfFuH*BtWq6Z`CZ-GD%Hkw3r=fCdXDtGQeDjOc5&`JnT!0% zX~912K&>O`CDO~JPC_=n&n@VTJE6JA=5q^PwRg&M@p}mYclEfN$K5^d;c-uodwJa3 z<38jDm=_wXtFOoXJnrxDYaS2qc%a9xdpyYF!5$Cs_zjPTdOXbI;U16h_)U-B@_3}j zg&x1{@hHc(SB-`>MihL$LwZ+8uP0++y+_|T()du+1XvU4d!O_H=|dqslTCv45q*=@ zCr9=aSX1en7V=Gp^|2~)BzyvEMo2MxcveXH)b_a9qT&8+w2|*L%Fd=dz~h4+AM*IH$45Lq>hZ50A9Jju6S?@czFdrg+a8I}KS+NH=@ES# z)(QGfl1_!9PQyAw-&ys^5qb{RdHODpE|M+@>Ct`})?cc~QTsQne?rO?SpSNG&;QhC z)|ZEjIS(1LY*(JmmT~2Bhc2tH`mQ;>Zo>YNUk#rO3W>O_mWl|N=Eu>pXRY|vzZWppw+B}SA z=V5%y)wnvT2I)>AyPxuq`Q{<>b@BI*YHF0p%JT3o<2+=(E~+-^K2jZ0UDExe2S^VJ z*%5<0%zntj2(>HsVf9H5s1GYbeP!^Q7cMH26eXlv5)CUxeb-_v!^Ovv;z;qN1X3a? ziIhxAA*GViNa>^uQUg*ZDT|a%$|2>F@<{nY{H3`(%reeH&TF^MewWNc+myteTDQHA zsZUz55v<1aH6b!~SADX_`oZc?-)p1+q=7=ZFU(l;Z2AT%mBSdg z>J8FR(l8+{bvUdM^u4J*so`6&M$%VEdRwDpjiX?Vrf&@C9n!m`v84A% z<4EI46G#(D?~{UK;6rMYNFR|VlctcSlBSWSlRhSWLYhIENt#9aRH$7Qdvuun^BH}g zlje}-3Ypfo-?Z~EHk^m&&HN+EoYUrug3kq{g`}^9bRT{V>l^wODcymwU)S#!3u(O3 zzoTynX{koZeq9D@IejbCCp}{&tX1@_4*Ax=T1($L(t6Sc(niuI(q_^Y(pJ* zl71p>6SB|vQ@J`Zzs%?$25%*79Qm&dz3{@LR_9`E&dpU3+>{>9@19v}4h zkjIC~SL1$nP`4u{+|Jw8J=zk(dp`K-t1 zJU;L71&=R!e2IJ`vdEy!%O3wlPAEtt=V8Rw#h0;H2Dh*Ma;`8Y4>_re&qG$~IN#=^ zvTQzbQ>WjJ`x?qP*7K38=GzPvk)Z#H&t|Uq7~Rdsn68Zm6$|-_L%E*55~PwEWsbgl zYtBU82L6w4U{ra%5wQ~r1GQ+TBfK@nd z_)d@S^7wA@4Y*I?%D)SBbexYT<^rzi@x30`^0>Cg_jz20Tmqw7<^gTj)R4EJhOKMAMr)2J8x_$8+>3LFnp>~yRi@$(!wReL$ zs89ArM<_3;BJK4uluj(Eb13>1_+F*2OUTz1zHX{WN!_9JV02GXFC}xQUbdomfw}I> z`L(x@`R1*nK)4tD)|M309ufh9~-Drdj% zn`??3weKV914eyF((AiMeT3hF{7QUU`eZCOC8SJ+GA*P`hw^bq`2@-gQ9v_EvouQT z^eKF^L(6?uMESgkGN*_#H&8%dXo=F}=Rx_B>vwAt-~3=Xv$fj)76dA2A(wUSB6a^d zh|-q&CQv|&xZGl`k1Y3X5T(m~S43G-L|IxySyn_@UPM_@L|GXqg%8@%8`DFiHC6>a zt=Z}#%9=m{t<^1)<<~)3&#ex(^al7g;%}49sWy|gkhYS(C;dSBk@S;NY21sJ^2}Xn zSMoL?`|Hs8_&vUS%=U1;oupl)-K3vMdq{gp`$+pqzmN`)4hot1RWm2Sin=@J)>{L?M*E9sb!9f8QlxN$zlja}3qq(4c=h4e~!0@g`YAw+gDpuIf_mt&@72q~12EmnQYHq|PUGA*qW= zO(r#!)O1oaNzFQC{_{o7typANU1`(X#XU)=Mey??xk+|U<8Lc;k@G7S!N_@)U+={K zFV8ya2kN-Yz4-&BuW;q+fh*Ve+GFA4=aCKJb$c7GQ~DKt1?t9ud#_}d<45Mbc#cvF zQOalMCRc7{sl}ukNi8L{oYYEEt3f@s9@2{XUX^!mC-v&2-o+_frHf$YW7r0Z>vwEL zzFShSN$TB`dXJ>uGpYAVs+rW?qy{yw=e1T+8%b>@^-NOjq+XlUdneUNYAdPjq`E;} z$DZ)My#W1DdbyL->zpz)wn)zRB3Tio)P7REr0zLoQg{)>yhtW`DgS+m#CP)RyW)xv#3C4Xk<6-6)AzSzT$6so~>Y)WIvzf ze<7(~OzM|{lI>Gk`O8WDN>aa?)IfUtdS3gDq<%B0ep0`c)L?#oC$If(P>+$JUs~{c zPFc>`B6|rI*%xK^0$=nKJF>Ax77X*K`9^B%MT>TKXT=tvgAJp zbz`W1|1x+6>ROMU$Q_qeu5enWZhe>fGr`cHoSSKj;Ypk9b|Gu(&&dA5O; z_Zk|Y)j~a#)Wb;~N@^sj(WJ(b8c*tQQWHrXN$O})$C5gp)QO}{CUq*Q(@C94>TFVv zB=u-gk0n*+vw?rM^!Lf6o^opQX{18~%-X;+=_4lIXnYmjwZTJ^G^ zZWZ3OHPRsGx4~|`QtDz*`UXI`Hks6vQ^rjVvVR-vGkI?|skx*sCG~bey$oyF>lKnT z%A{8V4BG(1mUq5GQtz15J0D@k2V>RM9QlX^u`HCs- zNrNni2DuMD!p=YM$(8rYCz^53Iq@#{*5cmFi4>J~tS8lq^3Gcul;6yI&jfXA{llY_ z_o+>(*TxlZ!+Ue3lh17hb%v;zx7458rc^ge?IiWOq;`|qOKRUK%av-7$J^kvwZ{7U zfaV)u(?Y#pQdLs#pVS8g^-|8wDNlT0QXiDm2Rmgaur~1FHrRhx%70i;vt*%`YagD} zMi??|pPq9}|?m`cZ28*rYx#sgHLmR?{c&>l5SND4xUeNdY*L?` z)Tbo%sZK?0pT@6G&wHN{_ndP+lV6{e_dYwR&q?ZYlNyZ2=jXLANa_oNdS|3uY3~;$ z^~FhjNm5^$)R!go`lP-*sjo=tE0g-Fq`o?-Hzf5nK^-PrrL^U1llnTREH2Riw>CHl zt(5x4qz0q@&3WxxoC*p0t^E47xZ>;M+xhh!euaO(Gw%6Fe-~bv|H^ycJ-8Pu{(HFc zy?OuplKTFj&aU_K+7CDt?f5}{{ZQWf;iP^fsULO9ti1-9wLxsT^!O)|`pGEetN5q* z_0xIpXOjBaq<$``pHJ!+f|@ry%jyjt{6((+QkMGVq<+Pz&}P5NuV2f1zn;`@B=ws~ z4MyX)^4f0)^)j;2OaFc+sozcN_mcYkpw1HgFHih|QN&UN1!B=nO*MH=_!T1y|e%Q30B=p0{>)MmkAk(3N z*VNy+1X3uJ?ujQfW=rU)B|N8o@6q+US?bV%QX`Za&3j`>jUOm=m{JpQMdQDO4sH7jfh+?!VhV-an9KKE)_ zQyHBl!^49ad?9hUrTa@o4KEt1eF>aAJUVZ|y%*5ij&nd{cIMIi<5y zy*8bty2ObWOYBqgD?ayc%axZNxbm_GuAJw}g{U!0b8XPqi&29x(-Qf_OYEBS7AzTh z7U$=a!P7H?D^RmhzQO*s^5op0*5JfTlzcn>|6f+$+b8u7NxfrI?-bN6+F71>c~bSH zE+;jg)Rm;JCUq^T>q)&LsT)bXGO2e?Y9XncN!@bFu=5f*6HDY2dppmq|61Jh6|%&y z<+!(mceC_nHK?~*{|u*0J}x0^mey~_6`$o-^Xpv>TzOZ1-SI2@`)*0SCaHH%>OGQr z&!pbVDbra?WEn3Zl}fwT;-0sDonNiEcN{5JN^K;ynbb2$wUc^nQtzEqC#kKZwv*~6 zwd0hXrLaVn#1h`3^8US~_M?=`+TOGJs%R;7FRAxQ>V2cUbNl=8tIB)tpVS9LDX;Yd z`Sn40?}L;2kOQSYlwThfSA6C^oL?W|SNQjT$2}j}kL1@!#T768(fsy;$rH7y3RC;=sz|%`)7nl3bCiTfleM(ZF8q}lsw8|5omei*Qbqp(`+znpk z_h;s{&r0gEllq*bJ~ye)OX~BJ`huiNpAM7rQr`AONquorUy{_9CiP`Wy*{ZgcWUz~ zlWJeVudmE|UlsR!Ccc_qZ-^^C6JNuxuk|bZ`*m^8OMgATz9H{@sllq>dzBj4w3+gE{yvm4ue^Nh?)DH%AhTTb} z+z%!7!%6)}Qa_s1k0tfvN&Q4nw>W>X)c2D~{Zvvvoz%}H^|ML+oKxnLUm}NKiL9hj z+khK?DN6Y|{AGUqN?h^r{Z)SbnqT4HUk^%gh*H;YB=wt48R}cY$`~UvrIh-uq<%X} z`5VRgznk}dFYfvL{XW0`An*NQQh$`xA1C!EN&RV3f0oprC-oOe{bf>r6_h-+rM-Wh z)S#z-lh^*%Dck?QwElO`%1$Ux{(ao@K8Pd!G4K7;fqVaqB^MGj2hmS<5f#SJdxi zko7Xz!=?5UNu5mURFs#lSq2X;^DT{1{%lf@L@9sIqm+6q?j6S`;&0U0E#nhi#`8Pe zh9|l5RFq!E7WLZS0ZXX7=XpuJSyInWs+QCXl6qlMFG}jolX?rMEE>HGLS4rHTi*4O zpcG5;R(hY_l2UIKSA6W=`q^nbbLF|WiF@A5x25z;^WMvnIv

^SpK+*9(-tn58D; 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ja_JP/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ja_JP/__init__.py deleted file mode 100644 index c2f7311..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ja_JP/__init__.py +++ /dev/null @@ -1,649 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - address_formats = ( - "{{prefecture}}{{city}}{{town}}{{chome}}{{ban}}{{gou}}", - "{{prefecture}}{{city}}{{town}}{{chome}}{{ban}}{{gou}} {{town}}{{building_name}}{{building_number}}", - "{{prefecture}}{{city}}{{town}}{{chome}}{{ban}}{{gou}} {{building_name}}{{town}}{{building_number}}", - ) - - building_number_formats = ("###",) - - countries = ( - "アフガニスタン", - "アルバニア", - "アルジェリア", - "アメリカ領サモア", - "アンドラ", - "アンゴラ", - "アンギラ", - "南極大陸", - "アンティグアバーブーダ", - "アルゼンチン", - "アルメニア", - "アルバ", - "オーストラリア", - "オーストリア", - "アゼルバイジャン", - "バハマ", - "バーレーン", - "バングラデシュ", - "バルバドス", - "ベラルーシ", - "ベルギー", - "ベリーズ", - "ベナン", - "バミューダ島", - "ブータン", - "ボリビア", - "ボスニア・ヘルツェゴビナ", - "ボツワナ", - "ブーベ島", - "ブラジル", - "イギリス領インド洋地域", - "イギリス領ヴァージン諸島", - "ブルネイ", - "ブルガリア", - "ブルキナファソ", - "ブルンジ", - "カンボジア", - "カメルーン", - "カナダ", - "カーボベルデ", - "ケイマン諸島", - "中央アフリカ共和国", - "チャド", - "チリ", - "中国", - "クリスマス島", - "ココス諸島", - "コロンビア", - "コモロ", - "コンゴ共和国", - "クック諸島", - "コスタリカ", - "コートジボワール", - "クロアチア", - "キューバ", - "キプロス共和国", - "チェコ共和国", - "デンマーク", - "ジブチ共和国", - "ドミニカ国", - "ドミニカ共和国", - "エクアドル", - "エジプト", - "エルサルバドル", - "赤道ギニア共和国", - "エリトリア", - "エストニア", - "エチオピア", - "フェロー諸島", - "フォークランド諸島", - "フィジー共和国", - "フィンランド", - "フランス", - "フランス領ギアナ", - "フランス領ポリネシア", - "フランス領極南諸島", - "ガボン", - "ガンビア", - "グルジア", - "ドイツ", - "ガーナ", - "ジブラルタル", - "ギリシャ", - "グリーンランド", - "グレナダ", - "グアドループ", - "グアム", - "グアテマラ", - "ガーンジー", - "ギニア", - "ギニアビサウ", - "ガイアナ", - "ハイチ", - "ハード島とマクドナルド諸島", - "バチカン市国", - "ホンジュラス", - "香港", - "ハンガリー", - "アイスランド", - "インド", - "インドネシア", - "イラン", - "イラク", - "アイルランド共和国", - "マン島", - "イスラエル", - "イタリア", - "ジャマイカ", - "日本", - "ジャージー島", - "ヨルダン", - "カザフスタン", - "ケニア", - "キリバス", - "朝鮮", - "韓国", - "クウェート", - "キルギス共和国", - "ラオス人民民主共和国", - "ラトビア", - "レバノン", - "レソト", - "リベリア", - "リビア国", - "リヒテンシュタイン", - "リトアニア", - "ルクセンブルク", - "マカオ", - "北マケドニア共和国", - "マダガスカル", - "マラウィ", - "マレーシア", - "モルディブ", - "マリ", - "マルタ共和国", - "マーシャル諸島", - "マルティニーク", - "モーリタニア・イスラム共和国", - "モーリシャス", - "マヨット", - "メキシコ", - "ミクロネシア連邦", - "モルドバ共和国", - "モナコ公国", - "モンゴル", - "モンテネグロ共和国", - "モントセラト", - "モロッコ", - "モザンビーク", - "ミャンマー", - "ナミビア", - "ナウル", - "ネパール", - "オランダ領アンティル", - "オランダ", - "ニューカレドニア", - "ニュージーランド", - "ニカラグア", - "ニジェール", - "ナイジェリア", - "ニース", - "ノーフォーク島", - "北マリアナ諸島", - "ノルウェー", - "オマーン", - "パキスタン", - "パラオ", - "パレスチナ自治区", - "パナマ", - "パプアニューギニア", - "パラグアイ", - "ペルー", - "フィリピン", - "ピトケアン諸島", - "ポーランド", - "ポルトガル", - "プエルトリコ", - "カタール", - "レユニオン", - "ルーマニア", - "ロシア", - "ルワンダ", - "サン・バルテルミー島", - "セントヘレナ", - "セントクリストファー・ネイビス連邦", - "セントルシア", - "セント・マーチン島", - "サンピエール島・ミクロン島", - "セントビンセント・グレナディーン", - "サモア", - "サンマリノ", - "サントメプリンシペ", - "サウジアラビア", - "セネガル", - "セルビア", - "セイシェル", - "シエラレオネ", - "シンガポール", - "スロバキア", - "スロベニア", - "ソロモン諸島", - "ソマリア", - "南アフリカ共和国", - "サウスジョージア・サウスサンドウィッチ諸島", - "スペイン", - "スリランカ", - "スーダン", - "スリナム", - "スヴァールバル諸島およびヤンマイエン島", - "スワジランド王国", - "スウェーデン", - "スイス", - "シリア", - "台湾", - "タジキスタン共和国", - "タンザニア", - "タイ", - "東ティモール", - "トーゴ", - "トケラウ", - "トンガ", - "トリニダード・トバゴ", - "チュニジア", - "トルコ", - "トルクメニスタン", - "タークス・カイコス諸島", - "ツバル", - "ウガンダ", - "ウクライナ", - "アラブ首長国連邦", - "イギリス", - "アメリカ合衆国", - "合衆国領有小離島", - "アメリカ領ヴァージン諸島", - "ウルグアイ", - "ウズベキスタン", - "バヌアツ", - "ベネズエラ", - "ベトナム", - "ウォリス・フツナ", - "西サハラ", - "イエメン", - "ザンビア", - "ジンバブエ", - ) - - prefectures = ( - "北海道", - "青森県", - "岩手県", - "宮城県", - "秋田県", - "山形県", - "福島県", - "茨城県", - "栃木県", - "群馬県", - "埼玉県", - "千葉県", - "東京都", - "神奈川県", - "新潟県", - "富山県", - "石川県", - "福井県", - "山梨県", - "長野県", - "岐阜県", - "静岡県", - "愛知県", - "三重県", - "滋賀県", - "京都府", - "大阪府", - "兵庫県", - "奈良県", - "和歌山県", - "鳥取県", - "島根県", - "岡山県", - "広島県", - "山口県", - "徳島県", - "香川県", - "愛媛県", - "高知県", - "福岡県", - "佐賀県", - "長崎県", - "熊本県", - "大分県", - "宮崎県", - "鹿児島県", - "沖縄県", - ) - - cities = ( - "八千代市", - "我孫子市", - "鴨川市", - "鎌ケ谷市", - "君津市", - "富津市", - "浦安市", - "四街道市", - "袖ケ浦市", - "八街市", - "印西市", - "白井市", - "富里市", - "南房総市", - "匝瑳市", - "香取市", - "山武市", - "いすみ市", - "大網白里市", - "印旛郡酒々井町", - "印旛郡印旛村", - "印旛郡本埜村", - "印旛郡栄町", - "香取郡神崎町", - "香取郡多古町", - "香取郡東庄町", - "山武郡九十九里町", - "山武郡芝山町", - "山武郡横芝光町", - "長生郡一宮町", - "長生郡睦沢町", - "長生郡長生村", - "長生郡白子町", - "長生郡長柄町", - "長生郡長南町", - "夷隅郡大多喜町", - "夷隅郡御宿町", - "安房郡鋸南町", - "千代田区", - "中央区", - "港区", - "新宿区", - "文京区", - "台東区", - "墨田区", - "江東区", - "品川区", - "目黒区", - "大田区", - "世田谷区", - "渋谷区", - "中野区", - "杉並区", - "豊島区", - "北区", - "荒川区", - "板橋区", - "練馬区", - "足立区", - "葛飾区", - "江戸川区", - "八王子市", - "立川市", - "武蔵野市", - "三鷹市", - "青梅市", - "府中市", - "昭島市", - "調布市", - "町田市", - "小金井市", - "小平市", - "日野市", - "東村山市", - "国分寺市", - "国立市", - "福生市", - "狛江市", - "東大和市", - "清瀬市", - "東久留米市", - "武蔵村山市", - "多摩市", - "稲城市", - "羽村市", - "あきる野市", - "西東京市", - "西多摩郡瑞穂町", - "西多摩郡日の出町", - "西多摩郡檜原村", - "西多摩郡奥多摩町", - "大島町", - "利島村", - "新島村", - "神津島村", - "三宅島三宅村", - "御蔵島村", - "八丈島八丈町", - "青ヶ島村", - "小笠原村", - "横浜市鶴見区", - "横浜市神奈川区", - "横浜市西区", - "横浜市中区", - "横浜市南区", - "横浜市保土ケ谷区", - "横浜市磯子区", - "横浜市金沢区", - "横浜市港北区", - "横浜市戸塚区", - "横浜市港南区", - "横浜市旭区", - "横浜市緑区", - "横浜市瀬谷区", - "横浜市栄区", - "横浜市泉区", - "横浜市青葉区", - "横浜市都筑区", - "川崎市川崎区", - "川崎市幸区", - "川崎市中原区", - "川崎市高津区", - "川崎市多摩区", - "川崎市宮前区", - ) - - towns = ( - "丹勢", - "中宮祠", - "手岡", - "東和町", - "所野", - "土沢", - "独鈷沢", - "轟", - "土呂部", - "中小来川", - "長畑", - "中鉢石町", - "中三依", - "西小来川", - "西川", - "日光", - "東三島", - "東大和町", - "蟇沼", - "二つ室", - "方京", - "細竹", - "前弥六", - "前弥六南町", - "松浦町", - "南赤田", - "南郷屋", - "美原町", - "無栗屋", - "睦", - "百村", - "箭坪", - "山中新田", - "油井", - "湯宮", - "豊町", - "湯本塩原", - "横林", - "四区町", - "渡辺", - "氏家", - "氏家新田", - "卯の里", - "小入", - "大中", - "押上", - "柿木沢", - "柿木沢新田", - "鍛冶ケ沢", - "上高野", - "上吉羽", - "木立", - "権現堂", - "幸手", - "下宇和田", - "下吉羽", - "神明内", - "外国府間", - "千塚", - "天神島", - "戸島", - "中川崎", - "長間", - "西関宿", - "花島", - "平須賀", - "細野", - "松石", - "太田ヶ谷", - "上広谷", - "五味ヶ谷", - "脚折", - "脚折町", - "鶴ヶ丘", - "羽折町", - "藤金", - "九段南", - "皇居外苑", - "麹町", - "猿楽町", - "外神田", - "西神田", - "隼町", - "東神田", - "一ツ橋", - "日比谷公園", - "平河町", - "丸の内", - "丸の内JPタワー", - "四番町", - "六番町", - "明石町", - "勝どき", - "京橋", - "月島", - "北青山", - "港南", - "芝浦", - "芝公園", - "芝大門", - "白金", - "白金台", - "台場", - "高輪", - "虎ノ門", - "虎ノ門虎ノ門ヒルズ森タワー", - "大京町", - "高田馬場", - "箪笥町", - "津久戸町", - "筑土八幡町", - "戸塚町", - "富久町", - "戸山", - "秋葉原", - "浅草", - "浅草橋", - "池之端", - "今戸", - "入谷", - "上野公園", - "上野桜木", - "雷門", - "北上野", - "蔵前", - "千束", - "台東", - "鳥越", - "西浅草", - "日本堤", - "橋場", - "花川戸", - "東浅草", - "東上野", - "松が谷", - "三筋", - "三ノ輪", - "元浅草", - "竜泉", - "吾妻橋", - ) - - building_names = ( - "パレス", - "ハイツ", - "コーポ", - "アーバン", - "クレスト", - "パーク", - "シティ", - "シャルム", - "コート", - ) - - def administrative_unit(self) -> str: - """ - :example: '東京都' - """ - return self.random_element(self.prefectures) - - prefecture = administrative_unit - - def city(self) -> str: - """ - :example: '台東区' - """ - return self.random_element(self.cities) - - def town(self) -> str: - """ - :example: '浅草' - """ - return self.random_element(self.towns) - - def chome(self) -> str: - """ - :example: '1丁目' - """ - return "%d丁目" % self.generator.random.randint(1, 42) - - def ban(self) -> str: - """ - :example: '3番' - """ - return "%d番" % self.generator.random.randint(1, 27) - - def gou(self) -> str: - """ - :example: '10号' - """ - return "%d号" % self.generator.random.randint(1, 20) - - def building_name(self) -> str: - """ - :example: 'コーポ芝浦' - """ - return self.random_element(self.building_names) - - def postcode(self) -> str: - """ - :example: '101-1212' - """ - return "%03d-%04d" % ( - self.generator.random.randint(0, 999), - self.generator.random.randint(0, 9999), - ) - - def zipcode(self) -> str: - """ - :example: '101-1212' - """ - return self.postcode() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ja_JP/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ja_JP/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3230f353583c2979ddc3d1a7fc1bf150fa76da12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13808 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 W^!)7m{9hGjz0mUe|Mt)~ulpbF8OWUg diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ka_GE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ka_GE/__init__.py deleted file mode 100644 index 102e08e..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ka_GE/__init__.py +++ /dev/null @@ -1,1297 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ["{{city_name}}"] - street_name_formats = ["{{street_title}} {{street_suffix}}"] - street_address_formats = ["{{street_name}} {{building_number}}"] - address_formats = ["{{street_address}}, {{city}}"] - building_number_formats = ["##"] - street_suffixes = ["ქ."] - - # Source: Wikipedia's list of sovereign states - # https://en.wikipedia.org/wiki/List_of_sovereign_states - countries = ( - "ავსტრალია", - "ავსტრია", - "ავღანეთი", - "აზერბაიჯანი", - "ალბანეთი", - "ალჟირი", - "ამერიკის სამოა", - "ამერიკის ვირჯინიის კუნძულები", - "ამერიკის შეერთებული შტატები", - "ანგილია", - "ანგოლა", - "ანდორა", - "ანტიგუა და ბარბუდა", - "არაბთა გაერთიანებული საამიროები", - "არგენტინა", - "არუბა", - "აღმოსავლეთი ტიმორი", - "ახალი ზელანდია", - "ახალი კალედონია", - "ბანგლადეში", - "ბარბადოსი", - "ბასას-და-ინდია", - "ბაჰამის კუნძულები", - "ბაჰრეინი", - "ბელარუსი", - "ბელგია", - "ბელიზი", - "ბენინი", - "ბერმუდა", - "ბოლივია", - "ბოსნია და ჰერცეგოვინა", - "ბოტსვანა", - "ბრაზილია", - "ბრიტანეთის ვირჯინიის კუნძულები", - "ბრიტანეთის ინდოეთის ოკეანის ტერიტორია", - "ბრუნეი", - "ბულგარეთი", - "ბურკინა ფასო", - "ბურუნდი", - "ბუვე", - "ბჰუტანი", - "გაბონი", - "გაიანა", - "გამბია", - "განა", - "გერმანია", - "გვადელუპა", - "გვატემალა", - "გვინეა", - "გვინეა-ბისაუ", - "გიბრალტარი", - "გრენადა", - "გრენლანდია", - "გუამი", - "დანია", - "დიდი ბრიტანეთი", - "დომინიკელთა რესპუბლიკა", - "დომინიკა", - "ეგვიპტე", - "ევროპა (კუნძული)", - "ეთიოპია", - "ეკვადორი", - "ეკვატორული გვინეა", - "ერაყი", - "ერიტრეა", - "ესპანეთი", - "ესტონეთი", - "ეშმორის და კარტიეს კუნძულები", - "უოლისი და ფუტუნა", - "ვანუატუ", - "ვატიკანი", - "ვენესუელა", - "ვიეტნამი", - "ზამბია", - "ზიმბაბვე", - "თურქეთი", - "თურქმენეთი", - "იამაიკა", - "იან მაიენი", - "იაპონია", - "იემენი", - "ინდოეთი", - "ინდონეზია", - "იორდანია", - "ირანი", - "ირლანდია", - "ისლანდია", - "ისრაელი", - "იტალია", - "კაბო-ვერდე", - "კაიმანის კუნძულები", - "კამბოჯა", - "კამერუნი", - "კანადა", - "კატარი", - "კენია", - "კვიპროსი", - "კინგმენის რიფი", - "კირიბატი", - "ქოქოსის კუნძულები", - "კოლუმბია", - "კომორის კუნძულები", - "კონგოს დემოკრატიული რესპუბლიკა", - "კონგოს რესპუბლიკა", - "კორეის რესპუბლიკა", - "ჩრდილოეთი კორეა", - "კოსტა-რიკა", - "კოტ-დ’ივუარი", - "კუბა", - "კუკის კუნძულები", - "ლაოსი", - "ლატვია", - "ლესოთო", - "ლიბანი", - "ლიბერია", - "ლიბია", - "ლიტვა", - "ლიხტენშტაინი", - "ლუქსემბურგი", - "მადაგასკარი", - "მავრიკი", - "მავრიტანია", - "მაიოტა", - "მაკაო", - "მაკედონია", - "მალავი", - "მალაიზია", - "მალდივი", - "მალი", - "მალტა", - "მაროკო", - "მარშალის კუნძულები", - "მარჯნის ზღვის კუნძულები", - "მექსიკა", - "მიანმარი", - "მიკრონეზია", - "მოზამბიკი", - "მოლდოვა", - "მონაკო", - "მონსერატი", - "მონღოლეთი", - "ნამიბია", - "ნაურუ", - "ნეპალი", - "ნიგერი", - "ნიგერია", - "ნიდერლანდი", - "ნიდერლანდის ანტილები", - "ნიკარაგუა", - "ნიუე", - "ნორვეგია", - "ნორფოლკის კუნძული", - "ომანი", - "პაკისტანი", - "პალაუ", - "პალმირა (ატოლი)", - "პანამა", - "პაპუა-ახალი გვინეა", - "პარაგვაი", - "პერუ", - "პიტკერნის კუნძულები", - "პოლონეთი", - "პორტუგალია", - "პრინც-ედუარდის კუნძული", - "პუერტო-რიკო", - "ჟუან-დი-ნოვა", - "რეიუნიონი", - "რუანდა", - "რუმინეთი", - "რუსეთი", - "საბერძნეთი", - "სალვადორი", - "სამოა", - "სამხრეთ აფრიკის რესპუბლიკა", - "სამხრეთი გეორგია და სამხრეთ სენდვიჩის კუნძულები", - "სამხრეთი სუდანი", - "სან-მარინო", - "სან-ტომე და პრინსიპი", - "საუდის არაბეთი", - "საფრანგეთი", - "საფრანგეთის გვიანა", - "საფრანგეთის პოლინეზია", - "საფრანგეთის სამხრეთული და ანტარქტიდული ტერიტორია", - "საქართველო", - "სეიშელის კუნძულები", - "სენეგალი", - "სენ-პიერი და მიკელონი", - "სენტ-ვინსენტი და გრენადინები", - "სენტ-კიტსი და ნევისი", - "სენტ-ლუსია", - "სერბეთი", - "სეუტა", - "სვაზილენდი", - "სვალბარდი", - "სიერა-ლეონე", - "სინგაპური", - "სირია", - "სლოვაკეთი", - "სლოვენია", - "სოლომონის კუნძულები", - "სომალი", - "სომხეთი", - "სუდანი", - "სურინამი", - "ტაივანი", - "ტაილანდი", - "ტანზანია", - "ტაჯიკეთი", - "ტერქსისა და კაიკოსის კუნძულები", - "ტოგო", - "ტოკელაუ", - "ტონგა", - "ტრინიდადი და ტობაგო", - "ტუვალუ", - "ტუნისი", - "უგანდა", - "უზბეკეთი", - "უკრაინა", - "უნგრეთი", - "ურუგვაი", - "ფარერის კუნძულები", - "ფილიპინები", - "ფინეთი", - "ფიჯი", - "ფოლკლენდის კუნძულები", - "ქუვეითი", - "ღაზის სექტორი", - "ყაზახეთი", - "ყირგიზეთი", - "შვეიცარია", - "შვედეთი", - "შობის კუნძული", - "შრი-ლანკა", - "ჩადი", - "ჩერნოგორია", - "ჩეხეთი", - "ჩეჩნეთის რესპუბლიკა იჩქერია", - "ჩილე", - "ჩინეთი", - "ჩრდილოეთი მარიანას კუნძულები", - "ცენტრალური აფრიკის რესპუბლიკა", - "წმინდა ელენე, ამაღლება და ტრისტანი-და-კუნია", - "წყნარი ოკეანის კუნძულები", - "ხორვატია", - "ჯერსი", - "ჯიბუტი", - "ჰაიტი", - "ჰონდურასი", - "ჰონკონგი", - "ჰერდი და მაკდონალდის კუნძულები", - ) - - # Source: Tbilisi city directory - # http://directory.ge/map/index.php?lang=eng - street_titles = ( - "300 არაგველის", - "8 მარტის", - "აბაკელიას", - "აბანოს", - "აბასთუმანის", - "აბაშელის", - "აბაშის", - "აბაშიძე გრიგოლის", - "აბაშიძე დოდოს", - "აბაშიძე ირაკლის", - "აბაშიძე ჰეიდარის", - "აბაშიძის", - "აბდუშელიშვილი მალხაზის", - "აბესაძე გიას", - "აბზიანიძის", - "აბო ტბილელის", - "აბოვიანის", - "აბუსერიძე-ტბელის", - "აგარის", - "აგლაძე რაფიელის", - "ადიგენის", - "ავთანდილის", - "ავლაბრის", - "ავლევის", - "ათონელის", - "აკეთის", - "აკოფიანის", - "აკურის", - "ალადაშვილის", - "ალაზნის", - "ალგეთის", - "ალექსიძე მერაბის", - "ალვანის", - "ალიხანიანის", - "ალმასიანის", - "ამაღლების", - "ამბროლაურის", - "ამირანაშვილი პეტრეს", - "ამირეჯიბის", - "ანაკლიის", - "ანანურის", - "ანდრონიკაშვილის", - "ანდღულაძის", - "ანტონ კატალიკოსის", - "ანტონოვსკაიას", - "ანჯაფარიძე ვერიკოს", - "არაგვის", - "არაგვისპირელი შიოს", - "არალეთის", - "არარატის", - "არაყიშვილი დიმიტრის", - "არბოს", - "არბოშიკის", - "არგვეთის", - "არდაზიანის", - "არდონის", - "არეშიძის", - "არველაძის", - "ართვინის", - "არმაზის", - "არსენალის", - "ასათიანი ლადოს", - "ასკანის", - "ასურეთის", - "ასხინის", - "ატენის", - "აფანასიევის", - "აფხაზეთის", - "აწყურის", - "აჭარის", - "ახალარსენალის", - "ახალდაბის", - "ახალუბნის", - "ახალქალაქის", - "ახვლედიანი ელენეს", - "ახვლედიანი გიორგის", - "ახვლედიანის", - "ახმეტელის", - "ახმეტის", - "ახოსპირელის", - "ახტალის", - "ახუთის", - "ახუნდოვის", - "აჯამეთის", - "ბააზოვის", - "ბაგინეთის", - "ბადიაურის", - "ბაზალეთის", - "ბათუმის", - "ბაკურიანის", - "ბაკურციხის", - "ბალადინის", - "ბალანჩივაძე მელიტონის", - "ბარათაშვილი ნოკოლოზის", - "ბარათაშვილის", - "ბარალეთის", - "ბარამიძე ალექსანდრეს", - "ბარისახოს", - "ბარნოვის", - "ბაქოს", - "ბაქრაძე დავითის", - "ბაქრაძე დიმიტრის", - "ბაღდათის", - "ბაღნარის", - "ბახმაროს", - "ბახტრიონის", - "ბედიის", - "ბევრეთის", - "ბეთანიის", - "ბეთლემის", - "ბელიაშვილი აკაკის", - "ბენაშვილის", - "ბენდელიანი ჭიჭიკოს", - "ბეჟანიშვილი ეკას", - "ბერბუქის", - "ბერიაშვილის", - "ბერიკაშვილის", - "ბერიტაშვილის", - "ბერიძე ვუკოლის", - "ბერძენიშვილის", - "ბესიკის", - "ბექა ოპიზარის", - "ბეღლეთის", - "ბზიფის", - "ბიჭვინთის", - "ბოგვის", - "ბოდავის", - "ბოდბის", - "ბოლნისის", - "ბორბალოს", - "ბოროდინოს", - "მ. ლებანიძის", - "ბოტანიკურის", - "ბოცვაძის", - "ბოჭორიშვილის", - "ბოჭორმის", - "ბჟოლეთის", - "ბროლოსანის", - "ბროსეს", - "ბუაჩიძე თენგიზის", - "ბუდაპეშტის", - "ბულაჩაურის", - "ბურკიაშვილის", - "ბურძგლას", - "ბუღეულის", - "ბუხაიძის", - "გაბაშვილი ეკატერინეს", - "გაგარინი იურის", - "გალავნის", - "გალაქტიონ ტაბიძის", - "გალის", - "გამრეკელის", - "გამყრელიძის", - "გამცემლიძე შოთას", - "განთიადის", - "გარე კახეთის", - "გარეჯელი დავითის", - "გარიყული მარიამის", - "გაფრინდაულის", - "გახოკიძე აკაკის", - "გახოკიძის", - "გეგუთის", - "გედევანიშვილის", - "გეზათის", - "გელათის", - "გერგეტის", - "გვაზაურის", - "გვეტაძე რაჟდენის", - "გივიშვილის", - "გიორგაძის", - "გიორგი ბრწყინვალის", - "გიორგი მერჩულეს", - "გლინკას", - "გოგაშენის", - "გოგებაშვილის იაკობის", - "გოგიბერიძის", - "გოგოლაურის", - "გოგოლის", - "გოგჩის", - "გოთუას", - "გოკიელის", - "გომარეთის", - "გომბორის", - "გომის", - "გონაშვილი ჰამლეტის", - "გორგასლის", - "გორდის", - "გორის", - "გორკის", - "გოცირიძის", - "გოძიაშვილის", - "გრანელი ტერენტის", - "გრიბოედოვის", - "გრიშაშვილის", - "გროზნოს", - "გრუზინსკი პეტრეს", - "გუდამაყრის", - "გუდარეხის", - "გუდარის", - "გუდაუთის", - "გუდიაშვილი ლადოს", - "გუთნის", - "გულიას", - "გულისაშვილის", - "გულუა გიას", - "გუმათის", - "გუმათჰესის", - "გუმბრის", - "გუნიას", - "გურგენიძის", - "გურიელის", - "გურიის", - "გურჯაანის", - "დაბახანას", - "დადიანი შალვას", - "დადიანი ცოტნეს", - "დაისის", - "ლ. ელიავას", - "დარკვეთის", - "დგებუაძის", - "დედოფლისწყაროს", - "დეკაბრისტების", - "დელისის", - "დეპოს", - "დვალის", - "დვირის", - "დიდგორის", - "დიდხევის", - "დიდი ხეივნის", - "დიდი ჯიხაიშის", - "დ. ყიფიანის", - "დიმიტრი თავდადებულის", - "დირსიჭალას", - "დიუმა ალექსანდრეს", - "დმანისის", - "დობროლიუბოვის", - "დოდაშვილი სოლომონის", - "დოესის", - "დოლიძე გოგის", - "დოლიძის", - "დოქის", - "დოღუმბარის", - "დუტუ მეგრელის", - "დუშეთის", - "ედისის", - "ევდოშვილის", - "ეკალაძის", - "ელდარის", - "ენგურის", - "ენგურჰესის", - "ენისელის", - "ენუქიძის", - "ერევნის", - "ერისთავი თორნიკეს", - "ერისთავი კონსტანტინეს", - "ერისთავ-ხოშტარიას", - "ერწოს", - "ესენინის", - "სანდრო ეულის", - "ეფრემ მცირის", - "ექიმის", - "ვაზიანის", - "ვაზისუბნის", - "ვაკელი იონას", - "ვანის", - "ვარდევანის", - "ვარდისუბნის", - "ვართაგავას", - "რომის", - "ვასაძის", - "ვაშლოვანის", - "ვახტანგ VI–ის", - "ვეზიროვის", - "ვეკუა ვოვას", - "ვერცხლის", - "ვერჰარნის", - "ვეძათხევის", - "ვეძინის", - "ვირსალაძის", - "ვორონინის", - "საარბრჯუკენის", - "ზაზიშვილი გიგოს", - "ზალდასტანიშვილის", - "ზანდუკელი მიხეილის", - "ზარზმის", - "ზაქარიაძე სერგოს", - "ზედაზნის", - "ზედამზის", - "ზედაუბნის", - "ზეინკლის", - "ზეკარის", - "ზემო ვაკის", - "ზემო ვეძისის", - "ზესტაფონის", - "ზვარეთის", - "ზიარის", - "ზიგზაგის", - "ზინდისის", - "ზიჩი მიხაის", - "ზოვრეთის", - "ზუბალაშვილების", - "ზუგდიდის", - "ზურაბიშვილი ავლიპის", - "თაბუკაშვილი რეზოს", - "თავაძე ფერდინანდის", - "თამარაშენის", - "თამარაშვილი მიხეილის", - "გ. სვანიძის", - "თარხნიშვილის", - "თაქთაქიშვილის", - "თაყაიშვილი სესილიას", - "თევდორე მღვდლის", - "თეთნულდის", - "თეთრიწყაროს", - "თეკლათის", - "თელავის", - "ხახანაშვილის", - "თელეთის", - "თერგის", - "თეძმის", - "თვალჭრელიძის", - "თიანეთის", - "თმოგველის", - "თმოგვის", - "თოდრიას", - "თოიძის", - "თონეს", - "თორაძის", - "თოფურიას", - "თრიალეთის", - "თუმანიანის", - "თხინვალის", - "იალბუზის", - "იამანიძე შოთას", - "იაშვილი პაოლოს", - "იბრაჰიმ ისპაჰანელის", - "იდუმალას", - "იეთიმ გურჯის", - "იერუსალიმის", - "ივერიის", - "ივლეთის", - "იზაშვილის", - "ილორის", - "ილურიძე კონსტანტინეს", - "იმედაშვილი გაიოზის", - "იმერეთის", - "ინანიშვილი რამაზის", - "ინაშვილის", - "ინგოროყვა პავლეს", - "ინტერნატის", - "იორის", - "იოსებიძის", - "იოსელიანის", - "იპოლიტე-ივანოვის", - "ირბაქი ნიკიფორეს", - "ირგვლივის", - "ისაკიანის", - "ისნის", - "იფნის", - "იყალთოს", - "კავთისხევის", - "კავსაძის", - "კაიშაურის", - "კაკაბაძე პოლიკარპეს", - "კაკაბაძეების", - "კაკლიანის", - "კოტე ხიმშიაშვილის", - "კალატოზის", - "კალიუჟნის", - "კალოუბნის", - "კანდელაკის", - "კანდელაკის", - "კანკავას", - "კაპანაძის", - "კარალეთის", - "კარგარეთელის", - "კასპის", - "კაჭრეთის", - "კახიანის", - "კედია სპირიდონის", - "კეკელიძე კორნელის", - "კელაპტრიშვილი ომარის", - "კერესელიძე არჩილის", - "კერესელიძის", - "კეცხოველი ნიკოს", - "კვალეთის", - "კვალის", - "კვანტალიანის", - "კვერნაულის", - "კვესეთის", - "კიევის", - "კიკეთის", - "კიკვიძის", - "კისისხევის", - "კიშინიოვის", - "კლდეკარის", - "კლდიაშვილის", - "კნოლევის", - "კობახიძის", - "კობერიძის", - "კოდალოს", - "კოდორის", - "კოკინაკის", - "კოლმეურნეობის ველის", - "კოლხეთის", - "კომუნის", - "კონდოლის", - "კონსტიტუციის", - "კოფცოვის", - "კოსტავას", - "კოტეტიშვილი ვახტანგის", - "კოშკოვანის", - "კოხრეიძის", - "კოჯრის", - "ჯ. კახიძის", - "კრწანისის", - "კუმისის", - "კუპრაძის", - "კურნატოვსკის", - "კურსების", - "კურსკის", - "კუფტინის", - "ლაგოდეხის", - "ლაზოს", - "ლაითურის", - "ლაილაშის", - "ლალიონის", - "ლამის", - "ლამისყანის", - "ლანჩხუთის", - "ლარეხის", - "ლარსის", - "ლაღიძე მიტროფანეს", - "ლაღიძე რევაზის", - "ლებარდეს", - "ლეკიშვილის", - "ლენტეხის", - "ლეონიძე გიორგის", - "ლეჟავას", - "ლერმონტოვის", - "ლერწმის", - "ლესელიძის", - "ლესია უკრაინკას", - "ლეჩხუმის", - "ლიახვის", - "ლიბანის", - "ლიკანის", - "ლისაშვილის", - "ლიუბოვსკის", - "ლიხაურის", - "ლიხის", - "ლომაურის", - "ლომთათიძის", - "ლომონოსოვის", - "ლორთქიფანიძე გრიგოლის", - "ლორთქიფანიძის", - "ლოჭინის", - "ლუბლიანას", - "ლუსიანინის", - "მაზნიაშვილის", - "მათიაშვილის", - "მაიაკოვსკის", - "მამასახლისოვის", - "მამკოდის", - "მამკოდის", - "მამრაძის", - "მანაგაძე ალეხსანდეს", - "მანავის", - "მანგლისის", - "მანიჯაშვილი კახას", - "მანჯგალაძე ეროსის", - "მარაბდის", - "მარგიანი რევაზის", - "მარელისის", - "მარი ნიკოს", - "მარიჯანის", - "მარტვილის", - "მარტყოფის", - "მარუაშვილი გიორგის", - "მარუხის გმირების", - "მარჯანიშვილი კოტეს", - "მარჯანიშვილი კოტეს", - "მაღალაშვილის", - "მაღაროს", - "მაჩაბელი ივანეს", - "მაჩხაანის", - "მაცესტის", - "მაჭრის", - "მახათას", - "მახინჯაურის", - "მგალობლიშვილის", - "მებაღიშვილის", - "მეგობრობის", - "მეგრელაძის", - "მეველეს", - "მელაანის", - "მელიქიშვილის", - "მესხეთის", - "მესხიას", - "მესხიშვილი ალექსის", - "მესხიშვილის", - "მეტეხის", - "მეუნარგიას", - "მექანიზაციის", - "მეჯვრისხევის", - "მთავარანგელოზის", - "მთაწმინდის", - "მთისძირის", - "მიმინოშვილი რომანის", - "მინდელაურის", - "მინდელის", - "მირზა მეფის", - "მირზაანის", - "მიროტაძის", - "მიტინგის", - "მიქატაძის", - "მიქატაძის", - "მიქელაძე ევგენის", - "მიქელაძის", - "მიშველაძე არჩილის", - "მიჩურინის", - "მიცკევიჩის", - "მნათობის", - "მოლითის", - "მოლოკოვის", - "მორეტის", - "მოსაშვილის", - "მოსე ხონელის", - "მოსიძე ვახტანგის", - "მოსტკოვის", - "მოსულიშვილის", - "მრევლიშვილის", - "მტკვრის", - "მუკუზანის", - "მუსხელიშვილის", - "მუხაძის", - "მუხაძის", - "მუხრანის", - "მშველიძის", - "მცხეთის", - "ნაბახტაურის", - "ნაგომარის", - "ნადიკვარის", - "ნადირაძე კოლაუს", - "ნავთლუღის", - "ნათაძის", - "ნაკადულის", - "ნიშნიანიძის", - "ნანეიშვილი ვიქტორის", - "ნანეიშვილი ვლადიმერის", - "ნარგიზის", - "ნასაკირალის", - "ნასიძე სულხანის", - "ნაქალაქევის", - "ნაქერალას", - "ნიაბის", - "ნიაღვრის", - "ნიზამის", - "ნიკოლაძე ნიკოს", - "ნინიძის", - "ნიორაძის", - "ნოვოროსისკის", - "ნონეშვილი იოსების", - "ნოსირის", - "ნოსტეს", - "ნუცუბიძის", - "ობსერვატორიის", - "ოდესის", - "ონიაშვილის", - "ონის", - "ოჟიოს", - "ორბეთის", - "ორბელების", - "ორთაჭალის", - "ორპირის", - "ორხევის", - "ოსეთის", - "ოსიაურის", - "ოფრეთის", - "ოქრომჭედლების", - "ოქროყანის", - "ოჩამჩირის", - "ოცხელების", - "ოძელაშვილის", - "ოძისის", - "პაიჭაძის", - "პალიასტომის", - "პანკისის", - "პასტერის", - "პატარიძის", - "პატარძეულის", - "პეტეფი შანდორის", - "პეტრე იბერის", - "პეტრიაშვილის", - "პეტრიწის", - "პიატიგორსკის", - "პიონერის", - "პისარევის", - "პლატონის", - "პუშკინი ალექსანდრეს", - "ჟველაურის", - "ჟინვალის", - "ჟონეთის", - "ჟორესის", - "ჟღენტის", - "რადიანი შალვას", - "რაზიკაშვილის", - "რაზმაძის", - "რატევანის", - "რატილის", - "რაჭის", - "რევოლუცის", - "რთველაძის", - "რიონის", - "რიონჰესის", - "რიწის", - "რკინიგზის", - "რკინის", - "როდენის", - "როსტოვის", - "როსტომაშვილის", - "რუისპირის", - "რუსთაველის", - "რჩეულიშვილის", - "საადის", - "სააკაძე პაატას", - "სააკაძის", - "საბადურის", - "საბანისძის", - "საბაშვილის", - "საგარეჯოს", - "საგურამოს", - "სადმელის", - "სავანელის", - "სათემოს", - "საიათნოვას", - "საირმის", - "სალამის", - "სალხინოს", - "სამამულო ომის გმირების", - "სამგორის", - "სამტრედიის", - "სამურზაყანოს", - "სამურის", - "სამღებროს", - "სამღერეთის", - "სამშვილდეს", - "სანავარდოს", - "სანკტ-პეტერბურგის", - "სარაჯიშვილი დავითის", - "სარაჯიშვილი პეტრეს", - "სართანიას", - "სართიჭალის", - "სარკინეთის", - "საქანელას", - "საქარის", - "საყვირის", - "საჩხერის", - "საცხენისის", - "საჭილაოს", - "სახოკიას", - "სევანის", - "სენაკის", - "სვანეთის", - "გუდაურის", - "სვირის", - "სიონის", - "სიღნაღის", - "სიხარულიძის", - "სკოლის", - "სომხეთის", - "სოხუმის", - "სოღანლუღის", - "სპანდარიანის", - "სპარტაკის", - "სტამბის", - "სტანისლავსკის", - "სტურუას", - "სუვოროვის", - "სულიაშვილის", - "სულხანიშვილის", - "სულხან-საბას", - "სუმბატაშვილ-იუჟინსკის", - "სუნდუკიანის", - "სურამის", - "სურგულაძის", - "სხვიტორის", - "სხირტლაძის", - "სხულუხიას", - "ტაბახმელას", - "ტაბიძე ტიციანის", - "ტანძიის", - "ტარიელის", - "ტატიშვილი ერეკლეს", - "ტატიშვილის", - "ტაშირის", - "ტაშკენტის", - "ტელეგრაფის", - "ტეტელაშვილის", - "ტეხურის", - "ტვიშის", - "ტიბაანის", - "ტირიფონის", - "ტიულენევის", - "ტიხონოვის", - "ტოლენჯის", - "ტოლსტოის", - "ტოლსტონოგოვის", - "ტრანსპორტის", - "ტრაქტორის", - "ტრიკოტაჟის", - "ტურგენევის", - "ტუსკიას", - "ტყავის", - "ტყეკულტურის", - "ტყვარჩელის", - "ტყვიავის", - "ტყიბულის", - "ტყის", - "უბილავას", - "უზნაძე დიმიტრის", - "უზნაძის", - "უიარაღოს", - "უკლება კირილეს", - "უმიკაშვილის", - "უნივერსიტეტის", - "ურბნისის", - "ურეკის", - "ურიდიას", - "ურიცკის", - "უფლისციხის", - "უშაკოვის", - "უჩანეიშვილი ირაკლის", - "უწერის", - "უჯარმის", - "ფაბრიკის", - "ფალიაშვილის", - "ფანასკერტელ-ციციშვილის", - "ფანჯიკიძის", - "ფარავნის", - "ფასანაურის", - "ფაღავა ირაკლის", - "ფერისცვალების", - "ფიზკულტურის", - "ფილიას", - "ფირდოუსის", - "ფიროსმანის", - "ფიფიას", - "ფოთის", - "ფოსტის", - "ფოცხვერაშვილის", - "ფოცხიაშვილი მორისის", - "ფურცელაძის", - "ფშავის", - "ქავთარაძის", - "ქარელის", - "ქართველიშვილი ლევანის", - "ქართლის", - "ქებურიას", - "ქედის", - "ქერჩის", - "ქვალონის", - "ქვიშხეთის", - "ქიაჩელის", - "ქიზიყის", - "ქინქლაძე ოთარის", - "ქინძმარაულის", - "ქიქოძე გერონტის", - "ქობულაძის", - "ქობულეთის", - "ქსნის", - "ქსოვრელის", - "ქუთათელაძის", - "ქუთათელაძე აპოლონის", - "ქუთაისის", - "ქუმსიაშვილის", - "ქურდიანი არჩილის", - "ქურდიანი ზაქარიას", - "ქურხულის", - "ქუჩიშვილის", - "ღამბაშიძის", - "ღრმაღელეს", - "ღუდუშაური ოთარის", - "ყავლაშვილი შოთას", - "ყარყარაშვილის", - "ყვარელის", - "ყირიმის", - "ყიფიანის", - "ყიფშიძის", - "ყუშიტაშვილის", - "შავგულიძის", - "შავთელის", - "შავი ზღვის", - "შავიშვილის", - "შავნაბადას", - "შავსოფელის", - "შანიძე აკაკის", - "შანშიაშვილის", - "შარაშიძის", - "შარდენის", - "შარტავა ჟიულის", - "შატბერაშვილის", - "შატილის", - "შაქრიანის", - "შევჩენკო ტარასის", - "შენგელაიას", - "შერვაშიძის", - "შილდის", - "შინდისის", - "შიო მღვიმელის", - "შირაქის", - "შოვის", - "შორაპნის", - "შროშის", - "შუამთის", - "შურდულის", - "შხეფის", - "ჩაიკოვსკის", - "ჩაილურის", - "ჩაისუბნის", - "ჩანჩიბაძის", - "ჩარგლის", - "ჩარხის", - "ჩაქვის", - "ჩაჩავას", - "ჩახრუხაძის", - "ჩერნიშევსკის", - "ჩერქეზიშვილის", - "ჩეჩელაშვილის", - "ჩეხოვის", - "ჩიკვანიას", - "ჩიტაიას", - "ჩიტაძის", - "ჩიქობავა არნოლდის", - "ჩიქოვანის", - "ჩკალოვის", - "ჩოლოყაშვილი ქაიხოსროს", - "ჩოჩუას", - "ჩოხატაურის", - "ჩოხელის", - "ჩუბინაშვილი გიორგის", - "ჩუბინიძის", - "ჩხიკვაძის", - "ცაბაძე გიორგის", - "ცაგარელი არჩილის", - "ცაგერის", - "ცაიშის", - "ცემის", - "ციმაკურიძის", - "ცინცაძე კალისტრატეს", - "ცისარტკელას", - "ცისკრის", - "ციხისძირის", - "ცოდნისკარის", - "ცურტაველი იაკობის", - "ცუცქირიძის", - "ცხემის", - "ცხვედაძის", - "ცხრა აპრილის", - "ცხრა ძმის", - "ძეგამის", - "ძევერის", - "ძმობის", - "ძოწენიძის", - "წავკისის", - "წალენჯიხის", - "წალკის", - "წაღვერის", - "წერეთლის", - "წერნაკის", - "წერონისის", - "წიკლაურის", - "წინამძღვრიშვილის", - "წინამძღვრიშვილის", - "წინანაურის", - "წინანდლის", - "წინაუბნის", - "წიწამურის", - "წმ. ნიკოლოზის", - "წნორისწყლის", - "წრომის", - "წულაძის", - "წულუკიძის", - "წურწუმიას", - "წუწუნავას", - "წუწხვატის", - "წყალსადენის", - "წყალტუბოს", - "წყაროს", - "ჭაბუკიანი ვახტანგის", - "ჭავჭავაძე ზურაბის", - "ჭავჭავაძე ალექსანდრეს", - "ჭალადიდის", - "ჭანტურია გიას", - "ჭიათურის", - "ჭიაურელი მიხეილის", - "ჭიჭინაძე ზაქარიას", - "ჭოველიძე თამარის", - "ჭონქაძე დანიელის", - "ჭოპორტის", - "ჭოროხის", - "ჭრებალოს", - "ჭრელაშვილის", - "ხაბეიშვილის", - "ხაზინის", - "ხანძთელი გრიგოლის", - "ხარაბაძის", - "ხარაგაულის", - "ხარფუხის", - "ხაჩატურიანის", - "ხევის", - "ხევისუბნის", - "ხევსურეთის", - "ხევძმარის", - "ხეთაგუროვის", - "ხერგიანის", - "ხერთვისის", - "ხერხეულიძეების", - "ხეჩუაშვილის", - "ხვამლის", - "ხვანჭკარის", - "ხვედელიანის", - "ხვინგიას", - "ხვიჩია იპოლიტეს", - "ხიდის", - "ხიდისთავის", - "ხივინის", - "ხიმშიაშვილის", - "ხმელნიცკის", - "ხოდაშენის", - "ხომლელის", - "ხონის", - "ხორავა აკაკის", - "ხორნაბუჯის", - "ხოშარაულის", - "ხრამჰესის", - "ხრესილის", - "ხუდადოვის", - "ჯაბაურის", - "ჯაბიძის", - "ჯავახეთის", - "ჯავახიშვილი ივანეს", - "ჯავახიშვილი მიხეილის", - "ჯავის", - "ჯამბულის", - "ჯანაშვილის", - "ჯანაშიას", - "ჯანჯღავას", - "ჯვარედინის", - "პოლიტკოვსკაიას", - "ჯიქიას", - "ჯორბენაძის", - "ჯორჯაძის", - "ჰოსპიტალის", - ) - - # Source: List of cities and towns in Georgia (Wikipedia) - # https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Georgia_(country) - city_names = ( - "აბაშა", - "ამბროლაური", - "ახალი ათონი", - "ახალქალაქი", - "ახალციხე", - "ახმეტა", - "ბათუმი", - "ბაღდათი", - "ბოლნისი", - "ბორჯომი", - "გაგრა", - "გალი", - "გარდაბანი", - "გორი", - "გუდაუთა", - "გურჯაანი", - "დედოფლისწყარო", - "დმანისი", - "დუშეთი", - "ვალე", - "ვანი", - "ზესტაფონი", - "ზუგდიდი", - "თბილისი", - "თეთრიწყარო", - "თელავი", - "თერჯოლა", - "კასპი", - "ლაგოდეხი", - "ლანჩხუთი", - "მარნეული", - "მარტვილი", - "მცხეთა", - "ნინოწმინდა", - "ოზურგეთი", - "ონი", - "ოჩამჩირე", - "რუსთავი", - "საგარეჯო", - "სამტრედია", - "საჩხერე", - "სენაკი", - "სიღნაღი", - "სოხუმი", - "ტყვარჩელი", - "ტყიბული", - "ფოთი", - "ქარელი", - "ქობულეთი", - "ქუთაისი", - "ყვარელი", - "ცაგერი", - "ცხინვალი", - "წალენჯიხა", - "წალკა", - "წნორი", - "წყალტუბო", - "ჭიათურა", - "ხაშური", - "ხობი", - "ხონი", - "ჯვარი", - ) - - def street_title(self) -> str: - return self.random_element(self.street_titles) - - def city_name(self) -> str: - return self.random_element(self.city_names) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ka_GE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ka_GE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e54c371bc8ff3d1effcf5410f9b58056377b9d41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45091 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ko_KR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ko_KR/__init__.py deleted file mode 100644 index cdd004f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ko_KR/__init__.py +++ /dev/null @@ -1,643 +0,0 @@ -import string - -from .. import Provider as AddressProvider - -ALPHABET = string.ascii_uppercase - - -class Provider(AddressProvider): - """ - Korean Address Provider - ======================= - - Korea has two address and postal code system. - - Address: - - Address based on land parcel numbers - (지번 주소, OLD, but someone use consistently) - - Address based on road names and building numbers (도로명 주소, NEW) - - :meth:`land_address` generate Address based on land parcel numbers and - :meth:`road_address` generate Address based on road names and building - numbers. - - Postal code: - - Old postal code (6-digit, OLD and dead) - - New postal code (5-digit, New) - - :meth:`old_postal_code` and :meth:`postcode` generate old 6-digit code - and :meth:`postal_code` generate newer 5-digit code. - - Reference: - - `Official Confirmation Prividing that Old and New Addresses are Identical`__ - (warn: cert error) - - __ https://www.juso.go.kr/addridentity/AddrIdentityHelp.htm - - """ - - building_suffixes = ( - "빌라", - "아파트", - "연립", - "마을", - "타운", - "타워", - ) - road_suffixes = ("로", "길", "거리", "가") - town_suffixes = ("동", "읍", "면", "리", "마을") - postcode_formats = ("###-###",) - new_postal_code_formats = ("#####",) - metropolitan_cities = ( - "서울특별시", - "부산광역시", - "대구광역시", - "인천광역시", - "광주광역시", - "대전광역시", - "울산광역시", - "세종특별자치시", - ) - provinces = ( - "경기도", - "강원도", - "충청북도", - "충청남도", - "전라북도", - "전라남도", - "경상북도", - "경상남도", - "제주특별자치도", - ) - cities = ( - "파주시", - "수원시", - "수원시 권선구", - "수원시 팔달구", - "수원시 영통구", - "성남시", - "성남시 수정구", - "성남시 중원구", - "화성시", - "성남시 분당구", - "안양시", - "안양시 만안구", - "안양시 동안구", - "부천시", - "부천시 원미구", - "부천시 소사구", - "부천시 오정구", - "광명시", - "평택시", - "이천시", - "동두천시", - "안산시", - "안산시 상록구", - "안산시 단원구", - "안성시", - "고양시", - "고양시 덕양구", - "고양시 일산동구", - "고양시 일산서구", - "과천시", - "구리시", - "남양주시", - "오산시", - "시흥시", - "군포시", - "의왕시", - "하남시", - "김포시", - "용인시", - "용인시 처인구", - "용인시 기흥구", - "용인시 수지구", - "연천군", - "가평군", - "양평군", - "광주시", - "포천시", - "양주시", - "수원시 장안구", - "의정부시", - "여주시", - "춘천시", - "원주시", - "강릉시", - "동해시", - "태백시", - "속초시", - "삼척시", - "홍천군", - "횡성군", - "영월군", - "평창군", - "정선군", - "철원군", - "화천군", - "양구군", - "인제군", - "고성군", - "양양군", - "천안시 동남구", - "천안시 서북구", - "공주시", - "보령시", - "아산시", - "서산시", - "논산시", - "계룡시", - "당진시", - "금산군", - "부여군", - "서천군", - "청양군", - "홍성군", - "예산군", - "태안군", - "청주시 상당구", - "청주시 서원구", - "청주시 흥덕구", - "청주시 청원구", - "충주시", - "제천시", - "보은군", - "옥천군", - "영동군", - "증평군", - "진천군", - "괴산군", - "음성군", - "단양군", - ) - road_names = ( - "압구정", - "도산대", - "학동", - "봉은사", - "테헤란", - "역삼", - "논현", - "언주", - "강남대", - "양재천", - "삼성", - "영동대", - "개포", - "선릉", - "반포대", - "서초중앙", - "서초대", - "잠실", - "석촌호수", - "백제고분", - "가락", - "오금", - ) - boroughs = ( - "종로구", - "중구", - "용산구", - "성동구", - "광진구", - "동대문구", - "중랑구", - "성북구", - "강북구", - "도봉구", - "노원구", - "은평구", - "서대문구", - "마포구", - "양천구", - "강서구", - "구로구", - "금천구", - "영등포구", - "동작구", - "관악구", - "서초구", - "강남구", - "송파구", - "강동구", - "동구", - "서구", - "남구", - "북구", - ) - countries = ( - "가나", - "가봉", - "가이아나", - "감비아", - "과테말라", - "그레나다", - "그리스", - "기니", - "기니비사우", - "나미비아", - "나우루", - "나이지리아", - "남수단", - "남아프리카 공화국", - "네덜란드 왕국", - "네팔", - "노르웨이", - "뉴질랜드", - "니제르", - "니카라과", - "대한민국", - "덴마크", - "도미니카 공화국", - "도미니카 연방", - "독일", - "동티모르", - "라오스", - "라이베리아", - "라트비아", - "러시아", - "레바논", - "레소토", - "루마니아", - "룩셈부르크", - "르완다", - "리비아", - "리투아니아", - "리히텐슈타인", - "마다가스카르", - "마셜 제도", - "북마케도니아 공화국", - "말라위", - "말레이시아", - "말리", - "멕시코", - "모나코", - "모로코", - "모리셔스", - "모리타니", - "모잠비크", - "몬테네그로", - "몰도바", - "몰디브", - "몰타", - "몽골", - "미국", - "미얀마", - "미크로네시아 연방", - "바누아투", - "바레인", - "바베이도스", - "바하마", - "방글라데시", - "베냉", - "베네수엘라", - "베트남", - "벨기에", - "벨라루스", - "벨리즈", - "보스니아 헤르체고비나", - "보츠와나", - "볼리비아", - "부룬디", - "부르키나파소", - "부탄", - "불가리아", - "브라질", - "브루나이", - "사모아", - "사우디아라비아", - "산마리노", - "상투메 프린시페", - "세네갈", - "세르비아", - "세이셸", - "세인트루시아", - "세인트빈센트 그레나딘", - "세인트키츠 네비스", - "소말리아", - "솔로몬 제도", - "수단", - "수리남", - "스리랑카", - "스와질란드", - "스웨덴", - "스위스", - "스페인", - "슬로바키아", - "슬로베니아", - "시리아", - "시에라리온 공화국", - "싱가포르", - "아랍에미리트", - "아르메니아", - "아르헨티나", - "아이슬란드", - "아이티", - "아일랜드", - "아제르바이잔", - "아프가니스탄", - "안도라", - "알바니아", - "알제리", - "앙골라", - "앤티가 바부다", - "에리트레아", - "에스토니아", - "에콰도르", - "에티오피아", - "엘살바도르", - "영국", - "예멘", - "오만", - "오스트레일리아", - "오스트리아", - "온두라스", - "요르단", - "우간다", - "우루과이", - "우즈베키스탄", - "우크라이나", - "이라크", - "이란", - "이스라엘", - "이집트", - "이탈리아", - "인도네시아", - "일본", - "자메이카", - "잠비아", - "적도 기니", - "조선민주주의인민공화국", - "조지아", - "중앙아프리카 공화국", - "중화인민공화국", - "지부티", - "짐바브웨", - "차드", - "체코", - "칠레", - "카메룬", - "카보베르데", - "카자흐스탄", - "카타르", - "캄보디아", - "캐나다", - "케냐", - "코모로", - "코스타리카", - "코트디부아르", - "콜롬비아", - "콩고 공화국", - "콩고 민주 공화국", - "쿠바", - "쿠웨이트", - "크로아티아", - "키르기스스탄", - "키리바시", - "키프로스", - "타이", - "타지키스탄", - "탄자니아", - "터키", - "토고", - "통가", - "투르크메니스탄", - "투발루", - "튀니지", - "트리니다드 토바고", - "파나마", - "파라과이", - "파키스탄", - "파푸아 뉴기니", - "팔라우", - "페루", - "포르투갈", - "폴란드", - "프랑스", - "피지", - "핀란드", - "필리핀", - "헝가리", - ) - building_dongs = ( - "가", - "나", - "다", - "라", - "마", - "바", - "##", - "###", - ) + tuple(ALPHABET) - land_numbers = ( - "###", - "###-#", - "###-##", - ) - road_numbers = ( - "#", - "##", - "###", - ) - - town_formats = ( - "{{first_name}}{{last_name}}{{town_suffix}}", - "{{first_name}}{{last_name}}{{last_name}}{{town_suffix}}", - ) - building_name_formats = ( - "{{first_name}}{{last_name}}{{building_suffix}}", - "{{first_name}}{{last_name}}{{last_name}}{{building_suffix}}", - ) - address_detail_formats = ( - "{{building_name}}", - "{{building_name}} ###호", - "{{building_name}} {{building_dong}}동 ###호", - ) - road_formats = ( - "{{road_name}}{{road_suffix}} {{building_number}}", - "{{road_name}}{{road_number}}{{road_suffix}} {{building_number}}", - ) - road_address_formats = ( - "{{metropolitan_city}} {{borough}} {{road}}", - "{{province}} {{city}} {{road}}", - "{{metropolitan_city}} {{borough}} {{road}} ({{town}})", - "{{province}} {{city}} {{road}} ({{town}})", - ) - land_address_formats = ( - "{{metropolitan_city}} {{borough}} {{town}} {{land_number}}", - "{{province}} {{city}} {{town}} {{land_number}}", - ) - - # Keep backward compatibility - city_suffixes = ("시",) - street_suffixes = road_suffixes - street_name_formats = ("{{road_name}}",) - street_address_formats = road_address_formats - address_formats = road_address_formats - - def land_number(self) -> str: - """ - :example: 507 - """ - return self.bothify(self.random_element(self.land_numbers)) - - def land_address(self) -> str: - """ - :example: 세종특별자치시 어진동 507 - """ - pattern: str = self.random_element(self.land_address_formats) - return self.generator.parse(pattern) - - def road_number(self) -> str: - """ - :example: 24 - """ - return self.bothify(self.random_element(self.road_numbers)) - - def road_address(self) -> str: - """ - :example: 세종특별자치시 도움5로 19 (어진동) - """ - pattern: str = self.random_element(self.road_address_formats) - return self.generator.parse(pattern) - - def address_detail(self) -> str: - """ - :example: 가나아파트 가동 102호 - """ - pattern: str = self.bothify(self.random_element(self.address_detail_formats)) - return self.generator.parse(pattern) - - def road(self) -> str: - """ - :example: 도움5로 - """ - pattern: str = self.random_element(self.road_formats) - return self.generator.parse(pattern) - - def road_name(self) -> str: - """ - :example: 압구정 - """ - return self.random_element(self.road_names) - - def road_suffix(self) -> str: - """ - :example: 길 - """ - return self.random_element(self.road_suffixes) - - def building_number(self) -> str: - """ - :returns: A random building number - - Generates building number(건물 번호). There are 3 types of building number with current ROK addressing system. - (1) 19: A typical format. Only marks one building. - (2) 지하11: The building entrance is underground. - (3) 132-1: Several buildings are distinguished with sub-building-number(가지 번호). - - Generating probability is arbitrarily. - - :example: 19, 지하11, 143-1 - """ - if self.random_int() % 9 < 1: - return self.building_number_underground() - elif self.random_int() % 9 < 4: - return self.building_number_segregated() - else: - return "%d" % self.generator.random.randint(1, 999) - - def building_number_underground(self) -> str: - """ - :returns: A random building number with undergrond entrances - - :example: 지하11 - """ - return "지하%d" % (self.generator.random.randint(1, 999)) - - def building_number_segregated(self) -> str: - """ - :returns: A random building number distinguished with sub-building-number(가지 번호) - - :example: 143-1 - """ - main_building_number = self.generator.random.randint(1, 999) - sub_building_number = self.generator.random.randint(1, 99) - return "%d-%d" % (main_building_number, sub_building_number) - - def metropolitan_city(self) -> str: - """ - :example: 서울특별시 - """ - return self.random_element(self.metropolitan_cities) - - def administrative_unit(self) -> str: - """ - :example: 경기도 - """ - return self.random_element(self.provinces) - - province = administrative_unit - - def city(self) -> str: - """ - :example: 고양시 - """ - pattern: str = self.random_element(self.cities) - return self.generator.parse(pattern) - - def borough(self) -> str: - """ - :example: 중구 - """ - return self.random_element(self.boroughs) - - def town(self) -> str: - """ - :example: 가나동 - """ - pattern: str = self.random_element(self.town_formats) - return self.generator.parse(pattern) - - def town_suffix(self) -> str: - """ - :example: 동 - """ - return self.random_element(self.town_suffixes) - - def building_name(self) -> str: - """ - :example: 김구아파트 - """ - pattern: str = self.random_element(self.building_name_formats) - return self.generator.parse(pattern) - - def building_suffix(self) -> str: - """ - :example: 아파트 - """ - return self.random_element(self.building_suffixes) - - def building_dong(self) -> str: - """ - :example: 가 - """ - return self.bothify(self.random_element(self.building_dongs)) - - def old_postal_code(self) -> str: - """ - :example: 123-456 - """ - return self.bothify(self.random_element(self.postcode_formats)) - - def postcode(self) -> str: - """ - :example: 12345 - """ - return self.bothify(self.random_element(self.new_postal_code_formats)) - - def postal_code(self) -> str: - """ - :example: 12345 - """ - return self.postcode() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ko_KR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ko_KR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 61888461eb2725856c334674a1a24904921b2f3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17232 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 RPA;`??E3j1ZS-bX{ue~GG?4%R diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ne_NP/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ne_NP/__init__.py deleted file mode 100644 index 206b40c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ne_NP/__init__.py +++ /dev/null @@ -1,621 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ("#", "##", "###") - street_name_formats = ("{{last_name}} {{street_suffix}}",) - street_address_formats = ("{{street_name}}",) - city_formats = ("{{city}}",) - # http://www.nepalpost.gov.np/index.php/postal-codes-of-nepal - postcode_formats = ("#####",) - - address_formats = ("{{street_name}} {{building_prefix}} {{building_number}} \n{{city}}\n{{district}} {{postcode}}",) - - street_suffixes = ( - "मार्ग", - "आश्रम", - "बाटो", - "पथ", - "गल्ली", - "गेट", - "हाईट", - "टार", - "रोड", - "कुना", - "चौर", - "निवास", - ) - - building_prefixes = ("वडा", "घर") - # https://en.wikipedia.org/wiki/List_of_sovereign_states - countries = ( - "अंगोला", - "अक्रोटिरी र धेकेलिया", - "अजरबैजान", - "अफगानिस्तान", - "अमेरिकी सामोआ", - "अरुबा", - "अर्जेन्टिना", - "अर्मेनिया", - "अलडेर्नी", - "अल्जेरिया", - "अल्बानिया", - "अस्ट्रिया", - "अस्ट्रेलिया", - "आइजल अफ म्यान", - "आइभोरी कोस्ट", - "आइसल्याण्ड", - "आजाद कश्मीर", - "आयरल्याण्ड", - "इक्वेटोरियल गिनी", - "इक्वेडर", - "इजरायल", - "इटाली", - "इण्डोनेशिया", - "इथियोपिया", - "इराक", - "इरान", - "इस्टोनिया", - "उज्बेकिस्तान", - "उत्तर कोरिया", - "उत्तरी मारिआना टापु", - "उत्तरी साइप्रस", - "उरुग्वे", - "एङगुइला", - "एण्डोरा", - "एन्टिगुआ र बर्बुडा", - "एरिट्रिया", - "एल साल्भादोर", - "एशमोर र कर्टियर टापु", - "ओमान", - "कजाख्स्तान", - "कतार", - "कम्बोडिया", - "किरिबाटी", - "किर्गिजस्तान", - "कुक द्वीप", - "कुराकाओ", - "कुवैत", - "केन्या", - "केप भर्ड", - "केम्यान टापु", - "कोकोस टापु", - "कोटे डी आइभोरी", - "कोमोरोस", - "कोरल सी टापु क्षेत्र", - "कोलम्बिया", - "कोसोभो", - "कोस्टारिका", - "क्यानडा", - "क्यामेरून", - "क्युबा", - "क्रिसमस टापु", - "क्रोएसिया", - "क्लिप्परटन द्वीप", - "क्वीन माउड ल्याण्ड", - "गणतन्त्र कङ्गो", - "गणतन्त्र कोरिया", - "गणतन्त्र स्पर्स्का", - "गाबोन", - "गिनी", - "गिब्राल्टार", - "गिलगीत", - "गुयना", - "गुर्न्जी", - "ग्रिनाडा", - "ग्रीनल्याण्ड", - "ग्रीस", - "ग्वाटेमाला", - "ग्वाम", - "घाना", - "चाड", - "चिली", - "चीन", - "चेक गणतन्त्र", - "जमैका", - "जर्मनी", - "जर्सी", - "जापान", - "जाम्बिया", - "जिबुटी", - "जोर्डन", - "टर्की", - "टिमोर", - "टुभालु", - "टुर्क्स तथा काइकोस टापु", - "टोंगा", - "टोकेलाउ", - "टोगो", - "ट्युनिसिया", - "ट्रान्सनिसट्रिया", - "ट्रिनिडाड र टोबागो", - "डेनमार्क", - "डोमिनिकन गणतन्त्र", - "डोमिनिका", - "तन्जानिया", - "ताइवान", - "ताजिकिस्तान", - "तुर्कमेनिस्तान", - "थाइल्याण्ड", - "दक्षिण अफ्रिका", - "दक्षिण ओसेटिया", - "दक्षिण कोरिया", - "दक्षिण जर्जिया तथा दक्षिण स्याण्डवीच टापु", - "दक्षिणी सुडान", - "नर्वे", - "नर्वेको", - "नाइजर", - "नाइजेरिया", - "नाउरु", - "नागोर्नो", - "नामिबिया", - "निकाराग्वा", - "नियु", - "नेदरल्याण्ड", - "नेपाल", - "नोर्फोक टापु", - "न्यु क्यालोडेनिया", - "न्युजिल्यान्ड", - "पपुवा न्युगिनी", - "पलाउ", - "पाकिस्तान", - "पानामा", - "पाराग्वे", - "पिटकेर्न टापु", - "पिटर द्वीप", - "पूर्वी टिमोर", - "पेरु", - "पोर्चुगल", - "पोल्याण्ड", - "प्यालेस्टाइन", - "प्युर्तो रिको", - "प्रजातान्त्रिक गणतन्त्र कंगो", - "प्रजातान्त्रिक गणतन्त्र कोरिया", - "प्रिडेनेस्ट्रोभी", - "फकल्याण्ड टापु", - "फरोइ टापु", - "फिजी", - "फिनल्याण्ड", - "फिलिपिन्स", - "फ्रान्स", - "फ्रेन्च दक्षिणी र अन्टार्कटिक द्वीप", - "फ्रेन्च पोलिनेसिया", - "बंगलादेश", - "बर्मा", - "बर्मुडा", - "बहराइन", - "बहामस", - "बार्बाडोस", - "बुरुन्डी", - "बुर्किना फासो", - "बुल्गेरिया", - "बेनिन", - "बेलारूस", - "बेलिज", - "बेल्जियम", - "बोत्स्वाना", - "बोलिभिया", - "बोस्निया र हर्जगोभिना", - "बोस्निया र हर्जगोभिना संघ", - "बौभेट द्वीप", - "ब्राजिल", - "ब्रिटिस भर्जिन टापु", - "ब्रुनेई", - "भानुअटु", - "भारत", - "भियतनाम", - "भुटान", - "भेनेजुएला", - "भ्याटिकन", - "भ्याटिकन सिटी", - "मकाउ", - "मङ्गोलिया", - "मध्य अफ्रिकी गणतन्त्र", - "मलावी", - "मलेशिया", - "माइक्रोनेसियाको संघीय राज्य", - "माडागास्कर", - "मार्शल द्वीप", - "माली", - "माल्टा", - "माल्दिभ्स", - "मिश्र", - "मेक्सिको", - "मोजाम्बिक", - "मोनाको", - "मोन्टसेराट", - "मोन्टेनेग्रो", - "मोरक्को", - "मोल्डोभा", - "मौरिसनिया", - "मौरिसस", - "म्यानमार", - "उत्तरी म्यासेडोनिया", - "यमन", - "युक्रेन", - "युगान्डा", - "रसिया", - "रुवाण्डा", - "रोमानिया", - "रोस डिपेन्डेन्सी", - "लक्जेम्बर्ग", - "लाईबेरिया", - "लाओस", - "लात्भिया", - "लिचटेन्स्टाइन", - "लिथुआनिया", - "लिबिया", - "लेबनान", - "लेसोथो", - "वाल्लिस र फुटुना", - "श्रीलंका", - "संघीय राज्य माइक्रोनेसिया", - "संयुक्त अधिराज्य", - "संयुक्त अरब इमिरेट्स", - "संयुक्त राज्य अमेरिका", - "संयुक्त राज्य भर्जिन टापु", - "सर्बिया", - "साइप्रस", - "साउदी अरब", - "साओ टोमे र प्रिन्सिपे", - "सान मारिनो", - "साबा", - "सामोआ", - "साहरवी अरब लोकतान्त्रिक गणतन्त्र", - "सिंगापुर", - "सिन्ट मार्टिन", - "सीरियन कुर्दिस्तान", - "सीरिया", - "सुडान", - "सुरिनेम", - "सेनेगल", - "सेन्ट किट्स र नेभिस", - "सेन्ट पियेर्रे र मिकुएलन", - "सेन्ट बार्थेलेमी", - "सेन्ट भिन्सेन्ट र ग्रेनाडाइन्स", - "सेन्ट मार्टिन", - "सेन्ट लुसिया", - "सेन्ट हेलेना", - "सेरा लियोन", - "सेसेल्स", - "सोमालिया", - "सोमालील्याण्ड", - "सोलोमन द्वीप", - "स्पेन", - "स्लोभाकिया", - "स्लोभेनिया", - "स्वाजिल्याण्ड", - "स्विजरल्याण्ड", - "स्वीडेन", - "हंगेरी", - "हङकङ", - "हर्म", - "हाइटी", - "हेयर्ड द्वीप र म्याकडोनाल्ड टापु", - "होन्डुरस", - "अबखाजिया", - "जर्जिया", - ) - - # cities are taken from - # https://en.wikipedia.org/wiki/List_of_cities_in_Nepal - cities = ( - "मिर्चैया", - "प्युठान", - "कञ्चनपुर", - "लुम्बिनी सांस्कृतिक", - "बागलुङ", - "इलाम", - "भक्तपुर", - "भद्रपुर", - "घोराही", - "स्याङ्जा", - "खैरहानी नगरपालिका", - "म्याग्दी", - "रंगेली", - "काठमाडौं", - "शनि-अर्जुन", - "पर्वत", - "सप्तरी", - "पनौती", - "जयपृथ्वी", - "लहान", - "वालिङ", - "बर्दघाट", - "डोटी", - "धरान", - "पथरी शनिश्चरे", - "चन्दननाथ", - "नवलपरासी", - "किर्तिपुर", - "दैलेख", - "सुनसरी", - "बेलौरी", - "कुस्मा", - "मकवानपुर", - "कञ्चनरूप", - "गुलरिया", - "टीकापुर", - "राजापुर", - "फिदिम", - "खोटाङ", - "धनुषाधाम", - "झापा", - "पुनर्वास", - "भक्तपुर", - "बर्दिया", - "बागलुङ", - "दमक", - "तेह्रथुम", - "नारायण", - "ताप्लेजुङ", - "तानसेन", - "पाँचखाल", - "बनेपा", - "म्याङ्लुङ", - "ललितपुर", - "दिपायल", - "अपी", - "दाङ", - "सन्धिखर्क", - "धनकुटा", - "बिरेन्द्रनगर", - "गौर", - "मोरङ", - "सङ्खुवासभा", - "लम्की-चुहा", - "बारा", - "हरिवन नगरपालिका", - "मलङ्वा", - "सिराहा", - "जनकपुर", - "सल्यान", - "सिन्धुपाल्चोक", - "दुल्लु", - "ओखलढुङ्गा", - "पाल्पा", - "इटहरी", - "रेसुङगा", - "कृष्णनगर", - "शुक्लगण्डकी", - "नुवाकोट", - "साँफेबगर", - "राजविराज", - "नेपालगंज", - "भिमेश्वर", - "ताप्लेजुङ", - "धुलिखेल", - "व्यास", - "भोजपुर", - "धादिङ", - "बेनी", - "अर्घाखाँची", - "भीमदत्त", - "रौतहट", - "जलेश्वर", - "देवदह", - "बेलवारी", - "बुटवल", - "सुर्खेत", - "मङ्गलसेन", - "कैलाली", - "धनकुटा", - "रुपन्देही", - "सल्यान", - "रामपुर", - "बिराटनगर", - "चौतारा", - "देवचुली", - "कपिलवस्तु", - "सुनवल", - "शिवराज", - "चम्पापुर (चापागाउँ)", - "भरतपुर", - "गढिमाई", - "उर्लावारी", - "लेखनाथ", - "सिद्धिचरण", - "मेचीनगर", - "चित्रवन", - "कास्की", - "गौशाला", - "पुतलीबजार", - "बिदुर", - "शम्भुनाथ", - "पर्सा", - "प्युठान", - "निजगढ", - "डडेलधुरा", - "कन्काई", - "गैंडाकोट", - "पाल्पा", - "कार्यविनायक*", - "तिलोत्तमा", - "तुलसीपुर", - "वीरगञ्ज", - "शंखरपुर*", - "अत्तरिया", - "बझाङ", - "मन्थली*", - "कपिलवस्तु", - "कटारी", - "हेटौडा", - "कलैया", - "सुन्दर दुलारी", - "सिन्धुली", - "थाहा", - "बाँके", - "ललितपुर", - "दार्चुला", - "पोखरा", - "बन्दीपुर", - "सर्लाही", - "कोहलपुर", - "सैनामैना", - "अमरागढी", - "उदयपुर", - "काठमाडौं", - "सुर्योदय", - "सिराहा", - "महोत्तरी", - "धनगढी", - "शारदा", - "काभ्रेपलाञ्चोक", - "त्रियुगा", - "रामेछाप", - "पाँचथर", - "इलाम", - "भोजपुर", - "मध्यपुर ठिमी", - "दुहवी-भलुवा", - "दशरथचन्द", - "बैतडी", - "कोशी हरैंचा", - "चापाकोट", - "दिक्तेल", - "चन्द्रपुर", - "लालबन्दी", - "चितवन", - "रत्ननगर", - "पृथ्वीनारायण", - "धनुषा", - "गुल्मी", - "बेंसीशहर", - "लमजुङ", - "अछाम", - "तनहुँ", - "खाँदबारी", - "बिर्तामोड", - "कमलामाई", - "छिरेश्वरनाथ", - "सिद्धार्थनगर", - "निलकण्ठ", - "गोर्खा", - "दोलखा", - "रामग्राम", - "इनरूवा", - "कावासोती", - "बेल्टार बसाहा", - "जुम्ला", - "ईश्वरपुर", - ) - - # district taken from - # https://www.election.gov.np/election/np/district-wise-constituency-map.html - districts = ( - "अछाम", - "अर्घाखाँची", - "इलाम", - "उदयपुर", - "ओखलढुङ्गा", - "कञ्चनपुर", - "कपिलवस्तु", - "काठमाडौं", - "काभ्रेपलाञ्चोक", - "कालीकोट", - "कास्की", - "कैलाली", - "खोटाङ", - "गुल्मी", - "गोर्खा", - "चितवन", - "जाजरकोट", - "जुम्ला", - "झापा", - "डडेल्धुरा", - "डोटी", - "डोल्पा", - "तनहुँ", - "ताप्लेजुङ", - "तेह्रथुम", - "दाङ", - "दार्चुला", - "दैलेख", - "दोलखा", - "धनकुटा", - "धनुषा", - "धादिङ", - "नवलपरासी (बर्दघाट सुस्ता पूर्व)", - "नवलपरासी (बर्दघाट सुस्ता पश्चिम)", - "नुवाकोट", - "पर्वत", - "पर्सा", - "पाँचथर", - "पाल्पा", - "प्युठान", - "बझाङ", - "बर्दिया", - "बाँके", - "बाग्लुङ", - "बाजुरा", - "बारा", - "भक्तपुर", - "भोजपुर", - "मकवानपुर", - "मनाङ", - "महोत्तरी", - "मुगु", - "मुस्ताङ", - "मोरङ", - "म्याग्दी", - "रसुवा", - "रामेछाप", - "‍रुकुम पूर्व", - "रुकुम पश्चिम", - "रूपन्देही", - "रोल्पा", - "रौतहट", - "लमजुङ्", - "ललितपुर", - "वैतडी", - "संखुवासभा", - "सप्तरी", - "सर्लाही", - "सल्यान", - "सिन्धुपलाञ्चोक", - "सिन्धुली", - "सिराहा", - "सुनसरी", - "सुर्खेत", - "सोलुखुम्बु", - "स्याङ्जा", - "हुम्ला", - ) - - # province taken from - # https://ne.wikipedia.org/wiki/%E0%A4%A8%E0%A5%87%E0%A4%AA%E0%A4%BE%E0%A4%B2%E0%A4%95%E0%A4%BE_%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A4%A6%E0%A5%87%E0%A4%B6%E0%A4%B9%E0%A4%B0%E0%A5%82 # noqa: E501 - provinces = ( - "प्रदेश नं १", - "प्रदेश नं २", - "बाग्मती प्रदेश", - "गण्डकी प्रदेश", - "प्रदेश नं ५", - "कर्णाली प्रदेश", - "सुदूरपश्चिम प्रदेश", - ) - - def administrative_unit(self) -> str: - """ - :example: सुदूरपश्चिम प्रदेश - """ - return self.random_element(self.provinces) - - province = administrative_unit - - def district(self) -> str: - """ - :example: अछाम - """ - return self.random_element(self.districts) - - def city(self) -> str: - """ - :example: कावासोती - """ - return self.random_element(self.cities) - - def building_prefix(self) -> str: - """ - :example: वडा - """ - return self.random_element(self.building_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ne_NP/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ne_NP/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 26b9e62d27f9d8461bfa54f656d0c7b8e84bc71e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17870 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 WpS9b6xou*5&;Gf;+o;)3U-!S;ADs~Z diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_BE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/nl_BE/__init__.py deleted file mode 100644 index 1568d20..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_BE/__init__.py +++ /dev/null @@ -1,3047 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ("#", "##", "###", "#", "##", "###") - - street_suffixes = ( - "baan", - "boulevard", - "dreef", - "hof", - "laan", - "lei", - "pad", - "ring", - "singel", - "steeg", - "straat", - "weg", - ) - - # the 4 digit numerical part of Belgium postal codes is between 1000 and 9999; - # see https://nl.wikipedia.org/wiki/Postcode#Postnummers_in_België - postcode_formats = ("%###",) - - city_formats = ("{{city}}",) - - # countries are from http://nl.wikipedia.org/wiki/ISO_3166-1 - countries = ( - "Afghanistan", - "Albanië", - "Algerije", - "Amerikaans-Samoa", - "Amerikaanse Maagdeneilanden", - "Andorra", - "Angola", - "Anguilla", - "Antarctica", - "Antigua en Barbuda", - "Argentinië", - "Armenië", - "Aruba", - "Australië", - "Azerbeidzjan", - "Bahama's", - "Bahrein", - "Bangladesh", - "Barbados", - "België", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivia", - "Bonaire, Sint Eustatius en Saba", - "Bosnië en Herzegovina", - "Botswana", - "Bouveteiland", - "Brazilië", - "Brits Indische Oceaanterritorium", - "Britse Maagdeneilanden", - "Brunei", - "Bulgarije", - "Burkina Faso", - "Burundi", - "Cambodja", - "Canada", - "Centraal-Afrikaanse Republiek", - "Chili", - "China", - "Christmaseiland", - "Cocoseilanden", - "Colombia", - "Comoren", - "Congo-Brazzaville", - "Congo-Kinshasa", - "Cookeilanden", - "Costa Rica", - "Cuba", - "Curaçao", - "Cyprus", - "Denemarken", - "Djibouti", - "Dominica", - "Dominicaanse Republiek", - "Duitsland", - "Ecuador", - "Egypte", - "El Salvador", - "Equatoriaal-Guinea", - "Eritrea", - "Estland", - "Ethiopië", - "Faeröer", - "Falklandeilanden", - "Fiji", - "Filipijnen", - "Finland", - "Frankrijk", - "Frans-Guyana", - "Frans-Polynesië", - "Franse Zuidelijke en Antarctische Gebieden", - "Gabon", - "Gambia", - "Georgië", - "Ghana", - "Gibraltar", - "Grenada", - "Griekenland", - "Groenland", - "Guadeloupe", - "Guam", - "Guatemala", - "Guernsey", - "Guinee", - "Guinee-Bissau", - "Guyana", - "Haïti", - "Heard en McDonaldeilanden", - "Honduras", - "Hongarije", - "Hongkong", - "IJsland", - "Ierland", - "India", - "Indonesië", - "Irak", - "Iran", - "Israël", - "Italië", - "Ivoorkust", - "Jamaica", - "Japan", - "Jemen", - "Jersey", - "Jordanië", - "Kaaimaneilanden", - "Kaapverdië", - "Kameroen", - "Kazachstan", - "Kenia", - "Kirgizië", - "Kiribati", - "Kleine Pacifische eilanden van de Verenigde Staten", - "Koeweit", - "Kroatië", - "Laos", - "Lesotho", - "Letland", - "Libanon", - "Liberia", - "Libië", - "Liechtenstein", - "Litouwen", - "Luxemburg", - "Macau", - "Madagaskar", - "Malawi", - "Maldiven", - "Maleisië", - "Mali", - "Malta", - "Man", - "Marokko", - "Marshalleilanden", - "Martinique", - "Mauritanië", - "Mauritius", - "Mayotte", - "Mexico", - "Micronesia", - "Moldavië", - "Monaco", - "Mongolië", - "Montenegro", - "Montserrat", - "Mozambique", - "Myanmar", - "Namibië", - "Nauru", - "Nederland", - "Nepal", - "Nicaragua", - "Nieuw-Caledonië", - "Nieuw-Zeeland", - "Niger", - "Nigeria", - "Niue", - "Noord-Korea", - "Noord-Macedonië", - "Noordelijke Marianen", - "Noorwegen", - "Norfolk", - "Oeganda", - "Oekraïne", - "Oezbekistan", - "Oman", - "Oost-Timor", - "Oostenrijk", - "Pakistan", - "Palau", - "Palestina", - "Panama", - "Papoea-Nieuw-Guinea", - "Paraguay", - "Peru", - "Pitcairneilanden", - "Polen", - "Portugal", - "Puerto Rico", - "Qatar", - "Roemenië", - "Rusland", - "Rwanda", - "Réunion", - "Saint Kitts en Nevis", - "Saint Lucia", - "Saint Vincent en de Grenadines", - "Saint-Barthélemy", - "Saint-Pierre en Miquelon", - "Salomonseilanden", - "Samoa", - "San Marino", - "Sao Tomé en Principe", - "Saoedi-Arabië", - "Senegal", - "Servië", - "Seychellen", - "Sierra Leone", - "Singapore", - "Sint Maarten", - "Sint-Helena, Ascension en Tristan da Cunha", - "Sint-Maarten", - "Slovenië", - "Slowakije", - "Soedan", - "Somalië", - "Spanje", - "Spitsbergen en Jan Mayen", - "Sri Lanka", - "Suriname", - "Swaziland", - "Syrië", - "Tadzjikistan", - "Taiwan", - "Tanzania", - "Thailand", - "Togo", - "Tokelau", - "Tonga", - "Trinidad en Tobago", - "Tsjaad", - "Tsjechië", - "Tunesië", - "Turkije", - "Turkmenistan", - "Turks- en Caicoseilanden", - "Tuvalu", - "Uruguay", - "Vanuatu", - "Vaticaanstad", - "Venezuela", - "Verenigd Koninkrijk", - "Verenigde Arabische Emiraten", - "Verenigde Staten", - "Vietnam", - "Wallis en Futuna", - "Westelijke Sahara", - "Wit-Rusland", - "Zambia", - "Zimbabwe", - "Zuid-Afrika", - "Zuid-Georgia en de Zuidelijke Sandwicheilanden", - "Zuid-Korea", - "Zuid-Soedan", - "Zweden", - "Zwitserland", - "Åland", - ) - - # cities as listed on "postcodezoeker" - # http://www.postcodes-maps.be/postcodelijst.php - cities = ( - "'s Herenelderen", - "'s-Gravenvoeren", - "'s-Gravenwezel", - "Aaigem", - "Aalbeke", - "Aalst", - "Aalter", - "Aarschot", - "Aarsele", - "Aartrijke", - "Aartselaar", - "Abolens", - "Abée", - "Achel", - "Achet", - "Achêne", - "Acosse", - "Acoz", - "Adegem", - "Adinkerke", - "Affligem", - "Afsnee", - "Agimont", - "Aineffe", - "Aische-en-Refail", - "Aiseau", - "Aiseau-Presles", - "Aisemont", - "Alken", - "Alle", - "Alleur", - "Alsemberg", - "Alveringem", - "Amay", - "Amberloup", - "Ambly", - "Ambresin", - "Amel", - "Amonines", - "Amougies", - "Ampsin", - "Andenne", - "Anderlecht", - "Anderlues", - "Andrimont", - "Angleur", - "Angre", - "Angreau", - "Anhée", - "Anlier", - "Anloy", - "Annevoie-Rouillon", - "Ans", - "Anseremme", - "Anseroeul", - "Antheit", - "Anthisnes", - "Anthée", - "Antoing", - "Antwerpen", - "Anvaing", - "Anzegem", - "Appels", - "Appelterre-Eichem", - "Arbre", - "Arbrefontaine", - "Arc-Ainières", - "Arc-Wattripont", - "Archennes", - "Ardooie", - "Arendonk", - "Argenteau", - "Arlon", - "Arquennes", - "Arsimont", - "Arville", - "As", - "Aspelare", - "Asper", - "Asquillies", - "Asse", - "Assebroek", - "Assenede", - "Assenois", - "Assent", - "Assesse", - "Astene", - "Ath", - "Athis", - "Athus", - "Attenhoven", - "Attenrode", - "Attert", - "Attre", - "Aubange", - "Aubechies", - "Aubel", - "Aublain", - "Auby-sur-Semois", - "Audregnies", - "Aulnois", - "Autelbas", - "Autre-Eglise", - "Autreppe", - "Auvelais", - "Ave-et-Auffe", - "Avekapelle", - "Avelgem", - "Avennes", - "Averbode", - "Avernas-le-Bauduin", - "Avin", - "Awans", - "Awenne", - "Awirs", - "Aye", - "Ayeneux", - "Aywaille", - "Baaigem", - "Baal", - "Baardegem", - "Baarle-Hertog", - "Baasrode", - "Bachte-Maria-Leerne", - "Baelen", - "Bagimont", - "Baileux", - "Bailièvre", - "Baillamont", - "Bailleul", - "Baillonville", - "Baisieux", - "Baisy-Thy", - "Balegem", - "Balen", - "Balâtre", - "Bambrugge", - "Bande", - "Barbençon", - "Barchon", - "Baronville", - "Barry", - "Barvaux-Condroz", - "Barvaux-sur-Ourthe", - "Bas-Oha", - "Basse-Bodeux", - "Bassenge", - "Bassevelde", - "Bassilly", - "Bastogne", - "Basècles", - "Batsheers", - "Battice", - "Battignies", - "Baudour", - "Bauffe", - "Baugnies", - "Baulers", - "Bavegem", - "Bavikhove", - "Bazel", - "Beaufays", - "Beaumont", - "Beauraing", - "Beausaint", - "Beauvoorde", - "Beauwelz", - "Beclers", - "Beek", - "Beerlegem", - "Beernem", - "Beerse", - "Beersel", - "Beerst", - "Beert", - "Beervelde", - "Beerzel", - "Beez", - "Beffe", - "Begijnendijk", - "Beho", - "Beigem", - "Bekegem", - "Bekkerzeel", - "Bekkevoort", - "Belgrade", - "Bellaire", - "Bellecourt", - "Bellefontaine", - "Bellegem", - "Bellem", - "Bellevaux", - "Bellevaux-Ligneuville", - "Bellingen", - "Beloeil", - "Belsele", - "Ben-Ahin", - "Bende", - "Berbroek", - "Berchem", - "Berendrecht", - "Berg", - "Bergilers", - "Beringen", - "Berlaar", - "Berlare", - "Berlingen", - "Berloz", - "Berneau", - "Bernissart", - "Bersillies-l'Abbaye", - "Bertem", - "Bertogne", - "Bertrix", - "Bertrée", - "Berzée", - "Beselare", - "Betekom", - "Bettincourt", - "Beuzet", - "Bevekom", - "Bevel", - "Bever", - "Bevercé", - "Bevere", - "Beveren-Leie", - "Beveren-Roeselare", - "Beveren-Waas", - "Beveren-aan-den-Ijzer", - "Beverlo", - "Beverst", - "Beyne-Heusay", - "Bienne-lez-Happart", - "Bierbeek", - "Biercée", - "Bierges", - "Bierghes", - "Bierset", - "Bierwart", - "Biesme", - "Biesme-sous-Thuin", - "Biesmerée", - "Biez", - "Bihain", - "Bikschote", - "Bilstain", - "Bilzen", - "Binche", - "Binderveld", - "Binkom", - "Bioul", - "Bissegem", - "Bizet", - "Bièvre", - "Blaasveld", - "Blaimont", - "Blandain", - "Blanden", - "Blankenberge", - "Blaregnies", - "Blaton", - "Blaugies", - "Blehen", - "Bleid", - "Bleret", - "Blicquy", - "Blégny", - "Bléharies", - "Bocholt", - "Boechout", - "Boekhout", - "Boekhoute", - "Boezinge", - "Bogaarden", - "Bohan", - "Boignée", - "Boirs", - "Bois-d'Haine", - "Bois-de-Lessines", - "Bois-de-Villers", - "Bois-et-Borsu", - "Bolinne", - "Bolland", - "Bomal", - "Bomal-sur-Ourthe", - "Bombaye", - "Bommershoven", - "Bon-Secours", - "Boncelles", - "Boneffe", - "Bonheiden", - "Boninne", - "Bonlez", - "Bonnert", - "Bonneville", - "Bonsin", - "Booischot", - "Booitshoeke", - "Boom", - "Boorsem", - "Boortmeerbeek", - "Borchtlombeek", - "Borgerhout", - "Borgloon", - "Borlez", - "Borlo", - "Borlon", - "Bornem", - "Bornival", - "Borsbeek", - "Borsbeke", - "Bossière", - "Bossuit", - "Bossut-Gottechain", - "Bost", - "Bothey", - "Bottelare", - "Bouffioulx", - "Bouge", - "Bougnies", - "Bouillon", - "Bourlers", - "Bourseigne-Neuve", - "Bourseigne-Vieille", - "Boussoit", - "Boussu", - "Boussu-en-Fagne", - "Boussu-lez-Walcourt", - "Bousval", - "Boutersem", - "Bouvignes-sur-Meuse", - "Bouvignies", - "Bouwel", - "Bovekerke", - "Bovelingen", - "Bovenistier", - "Bovesse", - "Bovigny", - "Boëlhe", - "Bra", - "Braffe", - "Braibant", - "Braine-l'Alleud", - "Braine-le-Château", - "Braine-le-Comte", - "Braives", - "Brakel", - "Branchon", - "Bras", - "Brasmenil", - "Brasschaat", - "Bray", - "Brecht", - "Bredene", - "Bree", - "Breendonk", - "Bressoux", - "Briegden", - "Brielen", - "Broechem", - "Broekom", - "Brugelette", - "Brugge", - "Brunehaut", - "Brussegem", - "Brussel", - "Brustem", - "Bruyelle", - "Brye", - "Brûly", - "Brûly-de-Pesche", - "Budingen", - "Buggenhout", - "Buissenal", - "Buissonville", - "Buizingen", - "Buken", - "Bulskamp", - "Bunsbeek", - "Burcht", - "Burdinne", - "Bure", - "Burg-Reuland", - "Burst", - "Bury", - "Buvingen", - "Buvrinnes", - "Buzenol", - "Buzet", - "Büllingen", - "Bütgenbach", - "Callenelle", - "Calonne", - "Cambron-Casteau", - "Cambron-Saint-Vincent", - "Carlsbourg", - "Carnières", - "Casteau", - "Castillon", - "Celles", - "Cerfontaine", - "Chaineux", - "Chairière", - "Champion", - "Champlon", - "Chanly", - "Chantemelle", - "Chapelle-lez-Herlaimont", - "Chapelle-à-Oie", - "Chapelle-à-Wattines", - "Chapon-Seraing", - "Charleroi", - "Charneux", - "Chassepierre", - "Chastre", - "Chastre-Villeroux-Blanmont", - "Chastrès", - "Chaudfontaine", - "Chaumont-Gistoux", - "Chaussée-Notre-Dame-Louvignies", - "Cherain", - "Cheratte", - "Chercq", - "Chevetogne", - "Chevron", - "Chimay", - "Chiny", - "Chièvres", - "Chokier", - "Châtelet", - "Châtelineau", - "Châtillon", - "Chênée", - "Ciergnon", - "Ciney", - "Ciplet", - "Ciply", - "Clabecq", - "Clavier", - "Clermont", - "Clermont-sous-Huy", - "Cognelée", - "Colfontaine", - "Comblain-Fairon", - "Comblain-au-Pont", - "Comblain-la-Tour", - "Conneux", - "Corbais", - "Corbion", - "Cordes", - "Corenne", - "Cornesse", - "Cornimont", - "Corroy-le-Château", - "Corroy-le-Grand", - "Corswarem", - "Cortil-Noirmont", - "Cortil-Wodon", - "Couillet", - "Cour-sur-Heure", - "Courcelles", - "Courrière", - "Court-Saint-Etienne", - "Couthuin", - "Coutisse", - "Couture-Saint-Germain", - "Couvin", - "Cras-Avernas", - "Crehen", - "Crisnée", - "Croix-lez-Rouveroy", - "Crombach", - "Crupet", - "Cuesmes", - "Cugnon", - "Cul-des-Sarts", - "Custinne", - "Cérexhe-Heuseux", - "Céroux-Mousty", - "Dadizele", - "Dailly", - "Daknam", - "Dalhem", - "Damme", - "Dampicourt", - "Dampremy", - "Darion", - "Daussois", - "Daussoulx", - "Dave", - "Daverdisse", - "De Haan", - "De Klinge", - "De Moeren", - "De Panne", - "De Pinte", - "Deerlijk", - "Deftinge", - "Deinze", - "Denderbelle", - "Denderhoutem", - "Denderleeuw", - "Dendermonde", - "Denderwindeke", - "Dentergem", - "Denée", - "Dergneau", - "Dessel", - "Desselgem", - "Destelbergen", - "Desteldonk", - "Deurle", - "Deurne", - "Deux-Acren", - "Dhuy", - "Diepenbeek", - "Diest", - "Diets-Heur", - "Dikkebus", - "Dikkele", - "Dikkelvenne", - "Diksmuide", - "Dilbeek", - "Dilsen-Stokkem", - "Dinant", - "Dion", - "Dion-Valmont", - "Dison", - "Dochamps", - "Doel", - "Dohan", - "Doische", - "Dolembreux", - "Donceel", - "Dongelberg", - "Donk", - "Donstiennes", - "Dorinne", - "Dormaal", - "Dottenijs", - "Dour", - "Dourbes", - "Dranouter", - "Driekapellen", - "Drieslinter", - "Drogenbos", - "Drongen", - "Dréhance", - "Dudzele", - "Duffel", - "Duisburg", - "Duras", - "Durbuy", - "Durnal", - "Dworp", - "Eben-Emael", - "Ebly", - "Ecaussinnes", - "Ecaussinnes-Lalaing", - "Ecaussinnes-d'Enghien", - "Edegem", - "Edelare", - "Edingen", - "Eeklo", - "Eernegem", - "Egem", - "Eggewaartskapelle", - "Eghezée", - "Ehein", - "Eigenbilzen", - "Eindhout", - "Eine", - "Eisden", - "Eke", - "Ekeren", - "Eksaarde", - "Eksel", - "Elen", - "Elene", - "Elewijt", - "Eliksem", - "Elingen", - "Ellemelle", - "Ellezelles", - "Ellignies-Sainte-Anne", - "Ellignies-lez-Frasnes", - "Ellikom", - "Elouges", - "Elsegem", - "Elsenborn", - "Elsene", - "Elst", - "Elverdinge", - "Elversele", - "Emblem", - "Embourg", - "Emelgem", - "Emines", - "Emptinne", - "Ename", - "Engelmanshoven", - "Engis", - "Enines", - "Ensival", - "Epinois", - "Eppegem", - "Eprave", - "Erbaut", - "Erbisoeul", - "Ere", - "Erembodegem", - "Erezée", - "Ermeton-sur-Biert", - "Ernage", - "Erneuville", - "Ernonheid", - "Erondegem", - "Erpe", - "Erpe-Mere", - "Erpent", - "Erpion", - "Erps-Kwerps", - "Erquelinnes", - "Erquennes", - "Ertvelde", - "Erwetegem", - "Escanaffles", - "Esen", - "Esneux", - "Esplechin", - "Esquelmes", - "Essen", - "Essene", - "Estaimbourg", - "Estaimpuis", - "Estinnes", - "Estinnes-au-Mont", - "Estinnes-au-Val", - "Etalle", - "Ethe", - "Etikhove", - "Ettelgem", - "Etterbeek", - "Eugies", - "Eupen", - "Evegnée", - "Evelette", - "Everbeek", - "Everberg", - "Evere", - "Evergem", - "Evregnies", - "Evrehailles", - "Eynatten", - "Ezemaal", - "Fagnolle", - "Faimes", - "Falaën", - "Falisolle", - "Fallais", - "Falmagne", - "Falmignoul", - "Familleureux", - "Farciennes", - "Faulx-les-Tombes", - "Fauroeulx", - "Fauvillers", - "Faymonville", - "Fays-les-Veneurs", - "Fayt-le-Franc", - "Fayt-lez-Manage", - "Felenne", - "Feluy", - "Feneur", - "Fernelmont", - "Ferrières", - "Feschaux", - "Fexhe-Slins", - "Fexhe-le-Haut-Clocher", - "Filot", - "Finnevaux", - "Fize-Fontaine", - "Fize-le-Marsal", - "Flamierge", - "Flavion", - "Flawinne", - "Fleurus", - "Floreffe", - "Florennes", - "Florenville", - "Floriffoux", - "Florée", - "Flostoy", - "Flémalle", - "Flémalle-Grande", - "Flémalle-Haute", - "Flénu", - "Fléron", - "Flône", - "Focant", - "Folx-les-Caves", - "Fontaine-Valmont", - "Fontaine-l'Evêque", - "Fontenelle", - "Fontenoille", - "Fontenoy", - "Fooz", - "Forchies-la-Marche", - "Forest", - "Forges", - "Forges-Philippe", - "Forrières", - "Forville", - "Forêt", - "Fosse", - "Fosses-la-Ville", - "Fouleng", - "Fourbechies", - "Foy-Notre-Dame", - "Fraipont", - "Fraire", - "Fraiture", - "Frameries", - "Framont", - "Franc-Waret", - "Franchimont", - "Francorchamps", - "Franière", - "Frasnes", - "Frasnes-lez-Anvaing", - "Frasnes-lez-Buissenal", - "Frasnes-lez-Gosselies", - "Freloux", - "Freux", - "Froidchapelle", - "Froidfontaine", - "Froidmont", - "Fronville", - "Froyennes", - "Fumal", - "Furfooz", - "Furnaux", - "Gaasbeek", - "Gages", - "Gallaix", - "Galmaarden", - "Ganshoren", - "Gaurain-Ramecroix", - "Gavere", - "Gedinne", - "Geel", - "Geer", - "Geest-Gérompont-Petit-Rosière", - "Geetbets", - "Gelbressée", - "Gelinden", - "Gellik", - "Gelrode", - "Geluveld", - "Geluwe", - "Gembes", - "Gembloux", - "Gemmenich", - "Genappe", - "Genk", - "Genly", - "Genoelselderen", - "Gent", - "Gentbrugge", - "Gentinnes", - "Genval", - "Geraardsbergen", - "Gerdingen", - "Gerin", - "Gerpinnes", - "Gestel", - "Gesves", - "Ghislenghien", - "Ghlin", - "Ghoy", - "Gibecq", - "Gierle", - "Gijverinkhove", - "Gijzegem", - "Gijzelbrechtegem", - "Gijzenzele", - "Gilly", - "Gimnée", - "Gingelom", - "Gistel", - "Gits", - "Givry", - "Glabais", - "Glabbeek-Zuurbemde", - "Glain", - "Gleixhe", - "Glimes", - "Glons", - "Gochenée", - "Godarville", - "Godinne", - "Godveerdegem", - "Goeferdinge", - "Goegnies-Chaussée", - "Goesnes", - "Goetsenhoven", - "Gomzé-Andoumont", - "Gondregnies", - "Gonrieux", - "Gontrode", - "Gooik", - "Gors-Opleeuw", - "Gorsem", - "Gosselies", - "Gotem", - "Gottem", - "Gottignies", - "Gougnies", - "Gourdinne", - "Goutroux", - "Gouvy", - "Gouy-lez-Piéton", - "Gozée", - "Goé", - "Graide", - "Grammene", - "Grand-Axhe", - "Grand-Hallet", - "Grand-Halleux", - "Grand-Leez", - "Grand-Manil", - "Grand-Rechain", - "Grand-Reng", - "Grand-Rosière-Hottomont", - "Grandglise", - "Grandhan", - "Grandmenil", - "Grandmetz", - "Grandrieu", - "Grandville", - "Grandvoir", - "Grapfontaine", - "Graty", - "Graux", - "Grazen", - "Grembergen", - "Grez-Doiceau", - "Grimbergen", - "Grimminge", - "Grivegnée", - "Grobbendonk", - "Groot-Bijgaarden", - "Groot-Gelmen", - "Groot-Loon", - "Gros-Fays", - "Grosage", - "Grote-Brogel", - "Grote-Spouwen", - "Grotenberge", - "Gruitrode", - "Grune", - "Grupont", - "Grâce-Berleur", - "Grâce-Hollogne", - "Guignies", - "Guigoven", - "Guirsch", - "Gullegem", - "Gutschoven", - "Gérompont", - "Gérouville", - "Haacht", - "Haaltert", - "Haasdonk", - "Haasrode", - "Habay", - "Habay-la-Neuve", - "Habay-la-Vieille", - "Habergy", - "Haccourt", - "Hachy", - "Hacquegnies", - "Haillot", - "Haine-Saint-Paul", - "Haine-Saint-Pierre", - "Hainin", - "Hakendover", - "Halanzy", - "Halen", - "Hallaar", - "Halle", - "Halle-Booienhoven", - "Halleux", - "Halma", - "Halmaal", - "Haltinne", - "Ham", - "Ham-sur-Heure", - "Ham-sur-Heure-Nalinnes", - "Ham-sur-Sambre", - "Hamipré", - "Hamme", - "Hamme-Mille", - "Hamoir", - "Hamois", - "Hamont", - "Hamont-Achel", - "Hampteau", - "Han-sur-Lesse", - "Handzame", - "Haneffe", - "Hannut", - "Hannêche", - "Hanret", - "Hansbeke", - "Hantes-Wihéries", - "Hanzinelle", - "Hanzinne", - "Harchies", - "Harelbeke", - "Haren", - "Haren-Borgloon", - "Haren-Tongeren", - "Hargimont", - "Harmignies", - "Harnoncourt", - "Harre", - "Harsin", - "Harveng", - "Harzé", - "Hasselt", - "Hastière", - "Hastière-Lavaux", - "Hastière-par-Delà", - "Hatrival", - "Haulchin", - "Hauset", - "Haut-Fays", - "Haut-Ittre", - "Haut-le-Wastia", - "Hautrage", - "Havay", - "Havelange", - "Haversin", - "Havinnes", - "Havré", - "Hechtel", - "Hechtel-Eksel", - "Heer", - "Heers", - "Hees", - "Heestert", - "Heffen", - "Heikruis", - "Heindonk", - "Heinsch", - "Heist-aan-Zee", - "Heist-op-den-Berg", - "Hekelgem", - "Heks", - "Helchteren", - "Heldergem", - "Helen-Bos", - "Helkijn", - "Hellebecq", - "Hemelveerdegem", - "Hemiksem", - "Hemptinne", - "Hemptinne-lez-Florennes", - "Hendrieken", - "Henis", - "Hennuyères", - "Henri-Chapelle", - "Henripont", - "Hensies", - "Heppen", - "Heppenbach", - "Heppignies", - "Herbeumont", - "Herchies", - "Herderen", - "Herdersem", - "Herent", - "Herentals", - "Herenthout", - "Herfelingen", - "Hergenrath", - "Herk-de-Stad", - "Hermalle-sous-Argenteau", - "Hermalle-sous-Huy", - "Hermeton-sur-Meuse", - "Hermée", - "Herne", - "Herquegies", - "Herseaux", - "Herselt", - "Herstal", - "Herstappe", - "Hertain", - "Herten", - "Hertsberge", - "Herve", - "Herzele", - "Heule", - "Heure", - "Heure-le-Romain", - "Heurne", - "Heusden", - "Heusden-Zolder", - "Heusy", - "Heuvelland", - "Hever", - "Heverlee", - "Heyd", - "Hillegem", - "Hingene", - "Hingeon", - "Hives", - "Hoboken", - "Hodeige", - "Hodister", - "Hody", - "Hoegaarden", - "Hoeilaart", - "Hoeke", - "Hoelbeek", - "Hoeleden", - "Hoepertingen", - "Hoeselt", - "Hoevenen", - "Hofstade", - "Hogne", - "Hognoul", - "Hollain", - "Hollange", - "Hollebeke", - "Hollogne-aux-Pierres", - "Hollogne-sur-Geer", - "Holsbeek", - "Hombeek", - "Hombourg", - "Hompré", - "Hondelange", - "Honnay", - "Honnelles", - "Hooglede", - "Hoogstade", - "Hoogstraten", - "Horebeke", - "Horion-Hozémont", - "Hornu", - "Horpmaal", - "Horrues", - "Hotton", - "Houdemont", - "Houdeng-Aimeries", - "Houdeng-Goegnies", - "Houdremont", - "Houffalize", - "Hour", - "Housse", - "Houtain-Saint-Siméon", - "Houtain-le-Val", - "Houtaing", - "Houtave", - "Houtem", - "Houthalen", - "Houthalen-Helchteren", - "Houthem", - "Houthulst", - "Houtvenne", - "Houwaart", - "Houx", - "Houyet", - "Hove", - "Hoves", - "Howardries", - "Huccorgne", - "Huise", - "Huissignies", - "Huizingen", - "Huldenberg", - "Hulshout", - "Hulsonniaux", - "Hulste", - "Humain", - "Humbeek", - "Hundelgem", - "Huppaye", - "Huy", - "Hyon", - "Hélécine", - "Hérinnes-lez-Pecq", - "Héron", - "Hévillers", - "Ichtegem", - "Iddergem", - "Idegem", - "Ieper", - "Impe", - "Incourt", - "Ingelmunster", - "Ingooigem", - "Irchonwelz", - "Isières", - "Isnes", - "Itegem", - "Itterbeek", - "Ittre", - "Ivoz-Ramet", - "Izegem", - "Izel", - "Izenberge", - "Izier", - "Jabbeke", - "Jalhay", - "Jallet", - "Jamagne", - "Jambes", - "Jamiolle", - "Jamioulx", - "Jamoigne", - "Jandrain-Jandrenouille", - "Jauche", - "Jauchelette", - "Javingue", - "Jehay", - "Jehonville", - "Jemappes", - "Jemelle", - "Jemeppe-sur-Meuse", - "Jemeppe-sur-Sambre", - "Jeneffe", - "Jesseren", - "Jette", - "Jeuk", - "Jodoigne", - "Jodoigne-Souveraine", - "Jollain-Merlin", - "Joncret", - "Julémont", - "Jumet", - "Jupille-sur-Meuse", - "Juprelle", - "Jurbise", - "Juseret", - "Kaaskerke", - "Kachtem", - "Kaggevinne", - "Kain", - "Kalken", - "Kallo", - "Kallo-Kieldrecht", - "Kalmthout", - "Kampenhout", - "Kanegem", - "Kanne", - "Kapelle-op-den-Bos", - "Kapellen", - "Kaprijke", - "Kaster", - "Kasterlee", - "Kaulille", - "Keerbergen", - "Keiem", - "Kelmis", - "Kemexhe", - "Kemmel", - "Kemzeke", - "Kerkhove", - "Kerkom", - "Kerkom-bij-Sint-Truiden", - "Kerksken", - "Kermt", - "Kerniel", - "Kersbeek-Miskom", - "Kessel", - "Kessel-Lo", - "Kessenich", - "Kester", - "Kettenis", - "Keumiée", - "Kieldrecht", - "Kinrooi", - "Klein-Gelmen", - "Kleine-Brogel", - "Kleine-Spouwen", - "Klemskerke", - "Klerken", - "Kluisbergen", - "Kluizen", - "Knesselare", - "Knokke", - "Knokke-Heist", - "Kobbegem", - "Koekelare", - "Koekelberg", - "Koersel", - "Koksijde", - "Kolmont-Borgloon", - "Kolmont-Tongeren", - "Komen", - "Komen-Waasten", - "Koningshooikt", - "Koninksem", - "Kontich", - "Kooigem", - "Koolkerke", - "Koolskamp", - "Korbeek-Dijle", - "Korbeek-Lo", - "Kortemark", - "Kortenaken", - "Kortenberg", - "Kortessem", - "Kortijs", - "Kortrijk", - "Kortrijk-Dutsel", - "Kozen", - "Kraainem", - "Krombeke", - "Kruibeke", - "Kruishoutem", - "Kumtich", - "Kuringen", - "Kuttekoven", - "Kuurne", - "Kwaadmechelen", - "Kwaremont", - "La", - "La Bruyère", - "La Glanerie", - "La Gleize", - "La Hestre", - "La Hulpe", - "La Louvière", - "La bouverie", - "La-Roche-en-Ardenne", - "Laakdal", - "Laar", - "Laarne", - "Labuissière", - "Lacuisine", - "Ladeuze", - "Laforêt", - "Lahamaide", - "Laken", - "Lamain", - "Lambermont", - "Lambusart", - "Lamine", - "Lamontzée", - "Lamorteau", - "Lampernisse", - "Lanaken", - "Lanaye", - "Landegem", - "Landelies", - "Landen", - "Landenne", - "Landskouter", - "Laneffe", - "Langdorp", - "Langemark", - "Langemark-Poelkapelle", - "Lanklaar", - "Lanquesaint", - "Lantin", - "Lantremange", - "Laplaigne", - "Lapscheure", - "Lasne", - "Lasne-Chapelle-Saint-Lambert", - "Lathuy", - "Latinne", - "Latour", - "Lauw", - "Lauwe", - "Lavacherie", - "Lavaux-Sainte-Anne", - "Lavoir", - "Le Mesniel", - "Le Roeulx", - "Le Roux", - "Lebbeke", - "Lede", - "Ledeberg", - "Ledegem", - "Leefdaal", - "Leerbeek", - "Leernes", - "Leers-Nord", - "Leers-et-Fosteau", - "Leest", - "Leeuwergem", - "Leffinge", - "Leignon", - "Leisele", - "Leke", - "Lembeek", - "Lembeke", - "Lemberge", - "Lendelede", - "Lennik", - "Lens", - "Lens-Saint-Remy", - "Lens-Saint-Servais", - "Lens-sur-Geer", - "Leopoldsburg", - "Les Avins", - "Les Bons", - "Les Bulles", - "Les Hayons", - "Les Waleffes", - "Lesdain", - "Lessines", - "Lessive", - "Lesterny", - "Lesve", - "Lettelingen", - "Letterhoutem", - "Leugnies", - "Leupegem", - "Leut", - "Leuven", - "Leuze", - "Leuze-en-Hainaut", - "Leval-Chaudeville", - "Leval-Trahegnies", - "Liberchies", - "Libin", - "Libramont", - "Libramont-Chevigny", - "Lichtaart", - "Lichtervelde", - "Liedekerke", - "Lieferinge", - "Lier", - "Lierde", - "Lierneux", - "Liernu", - "Liers", - "Liezele", - "Ligne", - "Ligney", - "Ligny", - "Lille", - "Lillo", - "Lillois-Witterzée", - "Limal", - "Limbourg", - "Limelette", - "Limerlé", - "Limont", - "Lincent", - "Linden", - "Linkebeek", - "Linkhout", - "Linsmeau", - "Lint", - "Linter", - "Lippelo", - "Lisogne", - "Lissewege", - "Lives-sur-Meuse", - "Lixhe", - "Liège", - "Lo", - "Lo-Reninge", - "Lobbes", - "Lochristi", - "Lodelinsart", - "Loenhout", - "Loker", - "Lokeren", - "Loksbergen", - "Lombardsijde", - "Lombise", - "Lommel", - "Lommersweiler", - "Lompret", - "Lomprez", - "Loncin", - "Londerzeel", - "Longchamps", - "Longlier", - "Longueville", - "Longvilly", - "Lontzen", - "Lonzée", - "Loonbeek", - "Loppem", - "Lorcé", - "Lot", - "Lotenhulle", - "Louette-Saint-Denis", - "Louette-Saint-Pierre", - "Loupoigne", - "Louvain-la-Neuve", - "Louveigné", - "Lovendegem", - "Lovenjoel", - "Loverval", - "Loyers", - "Lubbeek", - "Luingne", - "Lummen", - "Lustin", - "Luttre", - "Léglise", - "Maarke-Kerkem", - "Maarkedal", - "Maaseik", - "Maasmechelen", - "Mabompré", - "Machelen", - "Macon", - "Macquenoise", - "Maffe", - "Maffle", - "Magnée", - "Maillen", - "Mainvault", - "Maisières", - "Maissin", - "Maizeret", - "Mal", - "Maldegem", - "Malderen", - "Malempré", - "Malle", - "Malmedy", - "Malonne", - "Malvoisin", - "Malèves-Sainte-Marie-Wastines", - "Manage", - "Manderfeld", - "Manhay", - "Mannekensvere", - "Maransart", - "Marbais", - "Marbaix", - "Marbehan", - "Marche-en-Famenne", - "Marche-les-Dames", - "Marche-lez-Ecaussinnes", - "Marchienne-au-Pont", - "Marchin", - "Marchipont", - "Marchovelette", - "Marcinelle", - "Marcourt", - "Marenne", - "Mariakerke", - "Mariekerke", - "Mariembourg", - "Marilles", - "Mark", - "Marke", - "Markegem", - "Marneffe", - "Marquain", - "Martelange", - "Martenslinde", - "Martouzin-Neuville", - "Masbourg", - "Masnuy-Saint-Jean", - "Masnuy-Saint-Pierre", - "Massemen", - "Massenhoven", - "Matagne-la-Grande", - "Matagne-la-Petite", - "Mater", - "Maubray", - "Maulde", - "Maurage", - "Mazenzele", - "Mazy", - "Mazée", - "Mechelen", - "Mechelen-Bovelingen", - "Mechelen-aan-de-Maas", - "Meeffe", - "Meensel-Kiezegem", - "Meer", - "Meerbeek", - "Meerbeke", - "Meerdonk", - "Meerhout", - "Meerle", - "Meeswijk", - "Meetkerke", - "Meeuwen", - "Meeuwen-Gruitrode", - "Mehaigne", - "Meigem", - "Meilegem", - "Meise", - "Meix-devant-Virton", - "Meix-le-Tige", - "Melden", - "Meldert", - "Melen", - "Melkwezer", - "Melle", - "Mellery", - "Melles", - "Mellet", - "Mellier", - "Melsbroek", - "Melsele", - "Melsen", - "Membach", - "Membre", - "Membruggen", - "Mendonk", - "Menen", - "Merbes-Sainte-Marie", - "Merbes-le-Château", - "Merchtem", - "Merdorp", - "Mere", - "Merelbeke", - "Merendree", - "Merkem", - "Merksem", - "Merksplas", - "Merlemont", - "Mesen", - "Meslin-l'Evêque", - "Mesnil-Eglise", - "Mesnil-Saint-Blaise", - "Mespelare", - "Messancy", - "Messelbroek", - "Mesvin", - "Mettekoven", - "Mettet", - "Meulebeke", - "Meux", - "Meyerode", - "Michelbeke", - "Micheroux", - "Middelburg", - "Middelkerke", - "Mielen-boven-Aalst", - "Mignault", - "Millen", - "Milmort", - "Minderhout", - "Mirwart", - "Miécret", - "Modave", - "Moelingen", - "Moen", - "Moerbeke", - "Moerbeke-Waas", - "Moere", - "Moerkerke", - "Moerzeke", - "Moeskroen", - "Moha", - "Mohiville", - "Moignelée", - "Moircy", - "Mol", - "Molenbaix", - "Molenbeek-Wersbeek", - "Molenbeersel", - "Molenstede", - "Mollem", - "Momalle", - "Momignies", - "Monceau-Imbrechies", - "Monceau-en-Ardenne", - "Monceau-sur-Sambre", - "Mons", - "Mons-lez-Liège", - "Monstreux", - "Mont", - "Mont-Gauthier", - "Mont-Saint-André", - "Mont-Saint-Aubert", - "Mont-Saint-Guibert", - "Mont-Sainte-Aldegonde", - "Mont-Sainte-Geneviève", - "Mont-de-l'Enclus", - "Mont-sur-Marchienne", - "Montbliart", - "Montegnée", - "Montenaken", - "Montignies-Saint-Christophe", - "Montignies-lez-Lens", - "Montignies-sur-Roc", - "Montignies-sur-Sambre", - "Montigny-le-Tilleul", - "Montleban", - "Montroeul-au-Bois", - "Montroeul-sur-Haine", - "Montzen", - "Moorsel", - "Moorsele", - "Moorslede", - "Moortsele", - "Mopertingen", - "Moregem", - "Moresnet", - "Morhet", - "Morialmé", - "Morkhoven", - "Morlanwelz", - "Morlanwelz-Mariemont", - "Mormont", - "Mornimont", - "Mortier", - "Mortroux", - "Mortsel", - "Morville", - "Moulbaix", - "Mourcourt", - "Moustier", - "Moustier-sur-Sambre", - "Mouzaive", - "Moxhe", - "Mozet", - "Muizen", - "Mullem", - "Munkzwalm", - "Muno", - "Munsterbilzen", - "Munte", - "Musson", - "Mussy-la-Ville", - "My", - "Méan", - "Mélin", - "Mévergnies-lez-Lens", - "Naast", - "Nadrin", - "Nafraiture", - "Nalinnes", - "Namur", - "Namêche", - "Nandrin", - "Naninne", - "Naomé", - "Nassogne", - "Natoye", - "Nazareth", - "Neder-over-Heembeek", - "Nederboelare", - "Nederbrakel", - "Nederename", - "Nederhasselt", - "Nederokkerzeel", - "Nederzwalm-Hermelgem", - "Neerglabbeek", - "Neerharen", - "Neerhespen", - "Neerheylissem", - "Neerijse", - "Neerlanden", - "Neerlinter", - "Neeroeteren", - "Neerpelt", - "Neerrepen", - "Neervelp", - "Neerwaasten", - "Neerwinden", - "Neigem", - "Nerem", - "Nessonvaux", - "Nethen", - "Nettinne", - "Neu-Moresnet", - "Neufchâteau", - "Neufmaison", - "Neufvilles", - "Neupré", - "Neuville", - "Neuville-en-Condroz", - "Nevele", - "Niel", - "Niel-bij-As", - "Niel-bij-Sint-Truiden", - "Nieuwenhove", - "Nieuwenrode", - "Nieuwerkerken", - "Nieuwkapelle", - "Nieuwkerke", - "Nieuwkerken-Waas", - "Nieuwmunster", - "Nieuwpoort", - "Nieuwrode", - "Nijlen", - "Nil-Saint-Vincent-Saint-Martin", - "Nimy", - "Ninove", - "Nismes", - "Nivelles", - "Niverlée", - "Nives", - "Nobressart", - "Nodebais", - "Noduwez", - "Noirchain", - "Noirefontaine", - "Noiseux", - "Nokere", - "Nollevaux", - "Noorderwijk", - "Noordschote", - "Nossegem", - "Nothomb", - "Nouvelles", - "Noville", - "Noville-les-Bois", - "Noville-sur-Méhaigne", - "Nukerke", - "Néchin", - "Obaix", - "Obigies", - "Obourg", - "Ochamps", - "Ocquier", - "Odeigne", - "Odeur", - "Oedelem", - "Oekene", - "Oelegem", - "Oeren", - "Oeselgem", - "Oetingen", - "Oeudeghien", - "Oevel", - "Offagne", - "Ogy", - "Ohain", - "Ohey", - "Oignies-en-Thiérache", - "Oisquercq", - "Oizy", - "Okegem", - "Olen", - "Oleye", - "Ollignies", - "Olloy-sur-Viroin", - "Olmen", - "Olne", - "Olsene", - "Omal", - "Ombret", - "Omezée", - "On", - "Onhaye", - "Onkerzele", - "Onnezies", - "Onoz", - "Onze-Lieve-Vrouw-Lombeek", - "Onze-Lieve-Vrouw-Waver", - "Ooigem", - "Ooike", - "Oombergen", - "Oorbeek", - "Oordegem", - "Oostakker", - "Oostduinkerke", - "Oosteeklo", - "Oostende", - "Oosterzele", - "Oostham", - "Oostkamp", - "Oostkerke-Damme", - "Oostkerke-Diksmuide", - "Oostmalle", - "Oostnieuwkerke", - "Oostrozebeke", - "Oostvleteren", - "Oostwinkel", - "Opbrakel", - "Opdorp", - "Opglabbeek", - "Opgrimbie", - "Ophain-Bois-Seigneur-Isaac", - "Ophasselt", - "Opheers", - "Opheylissem", - "Ophoven", - "Opitter", - "Oplinter", - "Opoeteren", - "Opont", - "Opprebais", - "Oppuurs", - "Opvelp", - "Opwijk", - "Orbais", - "Orchimont", - "Orcq", - "Ordingen", - "Oret", - "Oreye", - "Orgeo", - "Ormeignies", - "Orp-Jauche", - "Orp-le-Grand", - "Orroir", - "Orsmaal-Gussenhoven", - "Ortho", - "Ostiches", - "Otegem", - "Oteppe", - "Othée", - "Otrange", - "Ottenburg", - "Ottergem", - "Ottignies", - "Ottignies-Louvain-la-Neuve", - "Oud-Heverlee", - "Oud-Turnhout", - "Oudegem", - "Oudekapelle", - "Oudenaarde", - "Oudenaken", - "Oudenburg", - "Oudergem", - "Ouffet", - "Ougrée", - "Oupeye", - "Outer", - "Outgaarden", - "Outrelouxhe", - "Outrijve", - "Ouwegem", - "Overboelare", - "Overhespen", - "Overijse", - "Overmere", - "Overpelt", - "Overrepen", - "Overwinden", - "Paal", - "Paifve", - "Pailhe", - "Paliseul", - "Pamel", - "Papignies", - "Parike", - "Passendale", - "Patignies", - "Paturages", - "Paulatem", - "Pecq", - "Peer", - "Peissant", - "Pellaines", - "Pellenberg", - "Pepingen", - "Pepinster", - "Perk", - "Pervijze", - "Perwez", - "Perwez-Haillot", - "Pesche", - "Pessoux", - "Petegem-aan-de-Leie", - "Petegem-aan-de-Schelde", - "Petigny", - "Petit-Fays", - "Petit-Hallet", - "Petit-Rechain", - "Petit-Roeulx-lez-Braine", - "Petit-Roeulx-lez-Nivelles", - "Petit-Thier", - "Petite-Chapelle", - "Peutie", - "Philippeville", - "Pipaix", - "Piringen", - "Pironchamps", - "Pittem", - "Piéton", - "Piétrain", - "Piétrebais", - "Plainevaux", - "Plancenoit", - "Ploegsteert", - "Plombières", - "Poederlee", - "Poeke", - "Poelkapelle", - "Poesele", - "Pollare", - "Polleur", - "Pollinkhove", - "Pommeroeul", - "Pondrôme", - "Pont-de-Loup", - "Pont-à-Celles", - "Pontillas", - "Poperinge", - "Poppel", - "Popuelles", - "Porcheresse", - "Pottes", - "Poucet", - "Poulseur", - "Poupehan", - "Pousset", - "Presgaux", - "Presles", - "Profondeville", - "Proven", - "Pry", - "Pulderbos", - "Pulle", - "Purnode", - "Pussemange", - "Putte", - "Puurs", - "Péronnes-lez-Antoing", - "Péronnes-lez-Binche", - "Péruwelz", - "Quaregnon", - "Quartes", - "Quenast", - "Queue-du-Bois", - "Quevaucamps", - "Quiévrain", - "Quévy", - "Quévy-le-Grand", - "Quévy-le-Petit", - "Rachecourt", - "Racour", - "Raeren", - "Ragnies", - "Rahier", - "Ramegnies", - "Ramegnies-Chin", - "Ramelot", - "Ramillies-Offus", - "Ramsdonk", - "Ramsel", - "Ramskapelle-Knokke-Heist", - "Ramskapelle-Nieuwpoort", - "Rance", - "Ransart", - "Ransberg", - "Ranst", - "Ravels", - "Rebaix", - "Rebecq", - "Rebecq-Rognon", - "Recht", - "Recogne", - "Redu", - "Reet", - "Rekem", - "Rekkem", - "Relegem", - "Remagne", - "Remersdaal", - "Remicourt", - "Rendeux", - "Reninge", - "Reningelst", - "Renlies", - "Reppel", - "Ressaix", - "Ressegem", - "Resteigne", - "Retie", - "Retinne", - "Reuland", - "Rhisnes", - "Richelle", - "Riemst", - "Rienne", - "Rijkel", - "Rijkevorsel", - "Rijkhoven", - "Rijmenam", - "Riksingen", - "Rillaar", - "Rivière", - "Rixensart", - "Rièzes", - "Robechies", - "Robelmont", - "Robertville", - "Roborst", - "Rochefort", - "Rochehaut", - "Rocherath", - "Roclenge-sur-Geer", - "Rocourt", - "Roesbrugge-Haringe", - "Roeselare", - "Rognée", - "Roisin", - "Roksem", - "Rollegem", - "Rollegem-Kapelle", - "Roloux", - "Roly", - "Romedenne", - "Romershoven", - "Romerée", - "Romsée", - "Rongy", - "Ronquières", - "Ronse", - "Ronsele", - "Roosbeek", - "Roosdaal", - "Roselies", - "Rosières", - "Rosmeer", - "Rosoux-Crenwick", - "Rossignol", - "Rosée", - "Rotem", - "Rotheux-Rimière", - "Rotselaar", - "Roucourt", - "Rouveroy", - "Rouvreux", - "Rouvroy", - "Roux", - "Roux-Miroir", - "Roy", - "Rozebeke", - "Ruddervoorde", - "Ruette", - "Ruien", - "Ruisbroek", - "Ruiselede", - "Rukkelingen-Loon", - "Rulles", - "Rumbeke", - "Rumes", - "Rumillies", - "Rummen", - "Rumsdorp", - "Rumst", - "Runkelen", - "Rupelmonde", - "Russeignies", - "Rutten", - "Rèves", - "Saint-Amand", - "Saint-André", - "Saint-Aubin", - "Saint-Denis", - "Saint-Denis-Bovesse", - "Saint-Georges-sur-Meuse", - "Saint-Germain", - "Saint-Ghislain", - "Saint-Gérard", - "Saint-Géry", - "Saint-Hubert", - "Saint-Jean-Geest", - "Saint-Léger", - "Saint-Marc", - "Saint-Mard", - "Saint-Martin", - "Saint-Maur", - "Saint-Médard", - "Saint-Nicolas", - "Saint-Pierre", - "Saint-Remy", - "Saint-Remy-Geest", - "Saint-Sauveur", - "Saint-Servais", - "Saint-Symphorien", - "Saint-Séverin", - "Saint-Vaast", - "Saint-Vincent", - "Sainte-Cécile", - "Sainte-Marie-Chevigny", - "Sainte-Marie-sur-Semois", - "Sainte-Ode", - "Saintes", - "Saive", - "Salles", - "Samart", - "Sambreville", - "Samrée", - "Sankt-Vith", - "Sars-la-Bruyère", - "Sars-la-Buissière", - "Sart-Bernard", - "Sart-Custinne", - "Sart-Dames-Avelines", - "Sart-Eustache", - "Sart-Saint-Laurent", - "Sart-en-Fagne", - "Sart-lez-Spa", - "Sautin", - "Sautour", - "Sauvenière", - "Schaarbeek", - "Schaffen", - "Schalkhoven", - "Schaltin", - "Schelderode", - "Scheldewindeke", - "Schelle", - "Schellebelle", - "Schendelbeke", - "Schepdaal", - "Scherpenheuvel", - "Scherpenheuvel-Zichem", - "Schilde", - "Schoonaarde", - "Schore", - "Schorisse", - "Schoten", - "Schriek", - "Schuiferskapelle", - "Schulen", - "Schönberg", - "Sclayn", - "Scy", - "Seilles", - "Seloignes", - "Semmerzake", - "Seneffe", - "Sensenruth", - "Seny", - "Senzeille", - "Septon", - "Seraing", - "Seraing-le-Château", - "Serinchamps", - "Serskamp", - "Serville", - "Sibret", - "Signeulx", - "Sijsele", - "Silenrieux", - "Silly", - "Sinaai-Waas", - "Sinsin", - "Sint-Agatha-Berchem", - "Sint-Agatha-Rode", - "Sint-Amands", - "Sint-Amandsberg", - "Sint-Andries", - "Sint-Antelinks", - "Sint-Baafs-Vijve", - "Sint-Blasius-Boekel", - "Sint-Denijs", - "Sint-Denijs-Boekel", - "Sint-Denijs-Westrem", - "Sint-Eloois-Vijve", - "Sint-Eloois-Winkel", - "Sint-Genesius-Rode", - "Sint-Gillis", - "Sint-Gillis-Waas", - "Sint-Gillis-bij-Dendermonde", - "Sint-Goriks-Oudenhove", - "Sint-Huibrechts-Hern", - "Sint-Huibrechts-Lille", - "Sint-Jacobs-Kapelle", - "Sint-Jan", - "Sint-Jan-in-Eremo", - "Sint-Jans-Molenbeek", - "Sint-Job-in-'t-Goor", - "Sint-Joost-ten-Node", - "Sint-Joris-Beernem", - "Sint-Joris-Nieuwpoort", - "Sint-Joris-Weert", - "Sint-Joris-Winge", - "Sint-Katelijne-Waver", - "Sint-Katherina-Lombeek", - "Sint-Kornelis-Horebeke", - "Sint-Kruis", - "Sint-Kruis-Winkel", - "Sint-Kwintens-Lennik", - "Sint-Lambrechts-Herk", - "Sint-Lambrechts-Woluwe", - "Sint-Laureins", - "Sint-Laureins-Berchem", - "Sint-Lenaarts", - "Sint-Lievens-Esse", - "Sint-Lievens-Houtem", - "Sint-Margriete", - "Sint-Margriete-Houtem", - "Sint-Maria-Horebeke", - "Sint-Maria-Latem", - "Sint-Maria-Lierde", - "Sint-Maria-Oudenhove-Brakel", - "Sint-Maria-Oudenhove-Zottegem", - "Sint-Martens-Bodegem", - "Sint-Martens-Latem", - "Sint-Martens-Leerne", - "Sint-Martens-Lennik", - "Sint-Martens-Lierde", - "Sint-Martens-Voeren", - "Sint-Michiels", - "Sint-Niklaas", - "Sint-Pauwels", - "Sint-Pieters-Kapelle", - "Sint-Pieters-Leeuw", - "Sint-Pieters-Rode", - "Sint-Pieters-Voeren", - "Sint-Pieters-Woluwe", - "Sint-Rijkers", - "Sint-Stevens-Woluwe", - "Sint-Truiden", - "Sint-Ulriks-Kapelle", - "Sippenaeken", - "Sirault", - "Sivry", - "Sivry-Rance", - "Sleidinge", - "Slijpe", - "Slins", - "Sluizen", - "Smeerebbe-Vloerzegem", - "Smetlede", - "Smuid", - "Snaaskerke", - "Snellegem", - "Soheit-Tinlot", - "Sohier", - "Soignies", - "Soiron", - "Solre-Saint-Géry", - "Solre-sur-Sambre", - "Sombreffe", - "Somme-Leuze", - "Sommethonne", - "Sommière", - "Somzée", - "Sorinne-la-Longue", - "Sorinnes", - "Sorée", - "Sosoye", - "Sougné-Remouchamps", - "Soulme", - "Soumagne", - "Soumoy", - "Sourbrodt", - "Souvret", - "Sovet", - "Soy", - "Soye", - "Spa", - "Spalbeek", - "Spermalie", - "Spiennes", - "Spiere", - "Spiere-Helkijn", - "Spontin", - "Spouwen", - "Sprimont", - "Spy", - "Stabroek", - "Staden", - "Stalhille", - "Stambruges", - "Stave", - "Stavele", - "Stavelot", - "Steendorp", - "Steenhuffel", - "Steenhuize-Wijnhuize", - "Steenkerke", - "Steenkerque", - "Steenokkerzeel", - "Stekene", - "Stembert", - "Stene", - "Sterrebeek", - "Stevoort", - "Stokrooie", - "Stoumont", - "Straimont", - "Strijpen", - "Strijtem", - "Strombeek-Bever", - "Strée", - "Strée-lez-Huy", - "Strépy-Bracquegnies", - "Stuivekenskerke", - "Suarlée", - "Sugny", - "Surice", - "Suxy", - "Sélange", - "Tailles", - "Taintignies", - "Tamines", - "Tarcienne", - "Tavier", - "Taviers", - "Tavigny", - "Tellin", - "Templeuve", - "Temploux", - "Temse", - "Tenneville", - "Teralfene", - "Terhagen", - "Termes", - "Ternat", - "Tertre", - "Tervuren", - "Terwagne", - "Tessenderlo", - "Testelt", - "Teuven", - "Theux", - "Thiaumont", - "Thieu", - "Thieulain", - "Thieusies", - "Thimister", - "Thimister-Clermont", - "Thimougies", - "Thiméon", - "Thines", - "Thirimont", - "Thisnes", - "Thommen", - "Thon", - "Thorembais-Saint-Trond", - "Thorembais-les-Béguines", - "Thoricourt", - "Thuillies", - "Thuin", - "Thulin", - "Thumaide", - "Thy-le-Bauduin", - "Thy-le-Château", - "Thynes", - "Thys", - "Tiegem", - "Tielen", - "Tielrode", - "Tielt", - "Tielt-Winge", - "Tienen", - "Tignée", - "Tihange", - "Tildonk", - "Tilff", - "Tillet", - "Tilleur", - "Tillier", - "Tilly", - "Tinlot", - "Tintange", - "Tintigny", - "Tisselt", - "Toernich", - "Tohogne", - "Tollembeek", - "Tongeren", - "Tongerlo", - "Tongre-Notre-Dame", - "Tongre-Saint-Martin", - "Tongrinne", - "Tontelange", - "Torgny", - "Torhout", - "Tourinne", - "Tourinnes-Saint-Lambert", - "Tournai", - "Tournay", - "Tourpes", - "Transinne", - "Trazegnies", - "Treignes", - "Trembleur", - "Tremelo", - "Trivières", - "Trognée", - "Trois-Ponts", - "Trooz", - "Tubize", - "Turnhout", - "Ucimont", - "Uikhoven", - "Uitbergen", - "Uitkerke", - "Ukkel", - "Ulbeek", - "Upigny", - "Ursel", - "Vaalbeek", - "Val-Meer", - "Vance", - "Varendonk", - "Varsenare", - "Vaucelles", - "Vaulx", - "Vaulx-lez-Chimay", - "Vaux-Chavanne", - "Vaux-et-Borset", - "Vaux-lez-Rosières", - "Vaux-sous-Chèvremont", - "Vaux-sur-Sûre", - "Vechmaal", - "Vedrin", - "Veerle", - "Velaine-sur-Sambre", - "Velaines", - "Veldegem", - "Veldwezelt", - "Vellereille-le-Sec", - "Vellereille-les-Brayeux", - "Velm", - "Velroux", - "Veltem-Beisem", - "Velzeke-Ruddershove", - "Vencimont", - "Vergnies", - "Verlaine", - "Verlée", - "Verrebroek", - "Vertrijk", - "Verviers", - "Vesqueville", - "Veulen", - "Veurne", - "Vezin", - "Vezon", - "Viane", - "Vichte", - "Vielsalm", - "Viemme", - "Viersel", - "Vierset-Barse", - "Vierves-sur-Viroin", - "Viesville", - "Vieux-Genappe", - "Vieux-Waleffe", - "Vieuxville", - "Villance", - "Ville-Pommeroeul", - "Ville-en-Hesbaye", - "Ville-sur-Haine", - "Villerot", - "Villers-Deux-Eglises", - "Villers-Notre-Dame", - "Villers-Perwin", - "Villers-Poterie", - "Villers-Saint-Amand", - "Villers-Saint-Ghislain", - "Villers-Saint-Siméon", - "Villers-Sainte-Gertrude", - "Villers-aux-Tours", - "Villers-devant-Orval", - "Villers-en-Fagne", - "Villers-l'Evêque", - "Villers-la-Bonne-Eau", - "Villers-la-Loue", - "Villers-la-Tour", - "Villers-la-Ville", - "Villers-le-Bouillet", - "Villers-le-Gambon", - "Villers-le-Peuplier", - "Villers-le-Temple", - "Villers-lez-Heest", - "Villers-sur-Lesse", - "Villers-sur-Semois", - "Vilvoorde", - "Vinalmont", - "Vinderhoute", - "Vinkem", - "Vinkt", - "Virelles", - "Virginal-Samme", - "Viroinval", - "Virton", - "Vissenaken", - "Visé", - "Vitrival", - "Vivegnis", - "Vivy", - "Vladslo", - "Vlamertinge", - "Vlekkem", - "Vleteren", - "Vlezenbeek", - "Vliermaal", - "Vliermaalroot", - "Vlierzele", - "Vlijtingen", - "Vlimmeren", - "Vlissegem", - "Vloesberg", - "Vodecée", - "Vodelée", - "Voeren", - "Vogenée", - "Volkegem", - "Vollezele", - "Vonêche", - "Voorde", - "Voormezele", - "Voort", - "Voroux-Goreux", - "Voroux-lez-Liers", - "Vorselaar", - "Vorsen", - "Vorst", - "Vosselaar", - "Vosselare", - "Vossem", - "Vottem", - "Vrasene", - "Vremde", - "Vreren", - "Vresse-sur-Semois", - "Vroenhoven", - "Vucht", - "Vurste", - "Vyle-et-Tharoul", - "Waanrode", - "Waarbeke", - "Waardamme", - "Waarloos", - "Waarmaarde", - "Waarschoot", - "Waasmont", - "Waasmunster", - "Waasten", - "Wachtebeke", - "Wadelincourt", - "Wagnelée", - "Waha", - "Waillet", - "Wakken", - "Walcourt", - "Walem", - "Walhain", - "Walhain-Saint-Paul", - "Walhorn", - "Walsbets", - "Walshoutem", - "Waltwilder", - "Wambeek", - "Wancennes", - "Wandre", - "Wanfercée-Baulet", - "Wange", - "Wangenies", - "Wanlin", - "Wanne", - "Wannebecq", - "Wannegem-Lede", - "Wansin", - "Wanze", - "Wanzele", - "Warchin", - "Warcoing", - "Wardin", - "Waregem", - "Waremme", - "Waret-l'Evêque", - "Waret-la-Chaussée", - "Warisoulx", - "Warnant", - "Warnant-Dreye", - "Warquignies", - "Warsage", - "Warzée", - "Wasmes", - "Wasmes-Audemez-Briffoeil", - "Wasmuel", - "Wasseiges", - "Waterland-Oudeman", - "Waterloo", - "Watermaal-Bosvoorde", - "Watervliet", - "Watou", - "Wattripont", - "Waudrez", - "Waulsort", - "Wauthier-Braine", - "Waver", - "Wavreille", - "Wayaux", - "Ways", - "Webbekom", - "Wechelderzande", - "Weelde", - "Weerde", - "Weert", - "Wegnez", - "Weillen", - "Weismes", - "Welden", - "Welkenraedt", - "Welle", - "Wellen", - "Wellin", - "Wemmel", - "Wenduine", - "Werbomont", - "Werchter", - "Werken", - "Werm", - "Wervik", - "Wespelaar", - "Westende", - "Westerlo", - "Westkapelle", - "Westkerke", - "Westmalle", - "Westmeerbeek", - "Westouter", - "Westrem", - "Westrozebeke", - "Westvleteren", - "Wetteren", - "Wevelgem", - "Wez-Velvain", - "Wezemaal", - "Wezembeek-Oppem", - "Wezeren", - "Wibrin", - "Wichelen", - "Widooie", - "Wiekevorst", - "Wielsbeke", - "Wierde", - "Wiers", - "Wiesme", - "Wieze", - "Wihogne", - "Wihéries", - "Wijchmaal", - "Wijer", - "Wijgmaal", - "Wijnegem", - "Wijshagen", - "Wijtschate", - "Wilderen", - "Willaupuis", - "Willebringen", - "Willebroek", - "Willemeau", - "Willerzie", - "Wilrijk", - "Wilsele", - "Wilskerke", - "Wimmertingen", - "Winenne", - "Wingene", - "Winksele", - "Wintershoven", - "Witry", - "Wodecq", - "Woesten", - "Wolkrange", - "Wolvertem", - "Wommelgem", - "Wommersom", - "Wonck", - "Wondelgem", - "Wontergem", - "Wortegem", - "Wortegem-Petegem", - "Wortel", - "Woubrechtegem", - "Woumen", - "Wulpen", - "Wulvergem", - "Wulveringem", - "Wuustwezel", - "Wépion", - "Wéris", - "Xhendelesse", - "Xhendremael", - "Xhoris", - "Yernée-Fraineux", - "Yves-Gomezée", - "Yvoir", - "Zaffelare", - "Zandbergen", - "Zande", - "Zandhoven", - "Zandvliet", - "Zandvoorde-Oostende", - "Zandvoorde-Zonnebeke", - "Zarlardinge", - "Zarren", - "Zaventem", - "Zedelgem", - "Zeebrugge", - "Zegelsem", - "Zele", - "Zelem", - "Zellik", - "Zelzate", - "Zemst", - "Zepperen", - "Zerkegem", - "Zevekote", - "Zeveneken", - "Zeveren", - "Zevergem", - "Zichem", - "Zichen-Zussen-Bolder", - "Zillebeke", - "Zingem", - "Zoerle-Parwijs", - "Zoersel", - "Zolder", - "Zomergem", - "Zonhoven", - "Zonnebeke", - "Zonnegem", - "Zottegem", - "Zoutenaaie", - "Zoutleeuw", - "Zuidschote", - "Zuienkerke", - "Zulte", - "Zulzeke", - "Zutendaal", - "Zwalm", - "Zwevegem", - "Zwevezele", - "Zwijnaarde", - "Zwijndrecht", - "Zétrud-Lumay", - "l'Escaillère", - ) - - provinces = ( - "Antwerpen", - "Henegouwen", - "Limburg", - "Luik", - "Luxemburg", - "Namen", - "Oost-Vlaanderen", - "Vlaams-Brabant", - "Waals-Brabant", - "West-Vlaanderen", - ) - - street_name_formats = ("{{first_name}}{{street_suffix}}",) - - street_address_formats = ("{{street_name}} {{building_number}}",) - - address_formats = ( - "{{street_address}}\n{{postcode}}\n{{city}}", - "{{street_address}}\n{{postcode}} {{city}}", - ) - - def administrative_unit(self) -> str: - return self.random_element(self.provinces) - - province = administrative_unit - - def city(self) -> str: - return self.random_element(self.cities) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_BE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/nl_BE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3a77724175f7db83832e41e661429f9b5e695b40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36211 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_NL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/nl_NL/__init__.py deleted file mode 100644 index d7ff67a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_NL/__init__.py +++ /dev/null @@ -1,2737 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ("#", "##", "###", "#", "##", "###") - - street_suffixes = ( - "baan", - "boulevard", - "dreef", - "hof", - "laan", - "pad", - "ring", - "singel", - "steeg", - "straat", - "weg", - ) - - # the 4 digit numerical part of Dutch postcodes is between 1000 and 9999; - # see http://nl.wikipedia.org/wiki/Postcode#Postcodes_in_Nederland - postcode_formats = ("%###??", "%### ??") - - city_formats = ("{{city}}",) - - # countries are from http://nl.wikipedia.org/wiki/ISO_3166-1 - countries = ( - "Afghanistan", - "Albanië", - "Algerije", - "Amerikaans-Samoa", - "Amerikaanse Maagdeneilanden", - "Andorra", - "Angola", - "Anguilla", - "Antarctica", - "Antigua en Barbuda", - "Argentinië", - "Armenië", - "Aruba", - "Australië", - "Azerbeidzjan", - "Bahama's", - "Bahrein", - "Bangladesh", - "Barbados", - "België", - "Belize", - "Benin", - "Bermuda", - "Bhutan", - "Bolivia", - "Bonaire, Sint Eustatius en Saba", - "Bosnië en Herzegovina", - "Botswana", - "Bouveteiland", - "Brazilië", - "Brits Indische Oceaanterritorium", - "Britse Maagdeneilanden", - "Brunei", - "Bulgarije", - "Burkina Faso", - "Burundi", - "Cambodja", - "Canada", - "Centraal-Afrikaanse Republiek", - "Chili", - "China", - "Christmaseiland", - "Cocoseilanden", - "Colombia", - "Comoren", - "Congo-Brazzaville", - "Congo-Kinshasa", - "Cookeilanden", - "Costa Rica", - "Cuba", - "Curaçao", - "Cyprus", - "Denemarken", - "Djibouti", - "Dominica", - "Dominicaanse Republiek", - "Duitsland", - "Ecuador", - "Egypte", - "El Salvador", - "Equatoriaal-Guinea", - "Eritrea", - "Estland", - "Ethiopië", - "Faeröer", - "Falklandeilanden", - "Fiji", - "Filipijnen", - "Finland", - "Frankrijk", - "Frans-Guyana", - "Frans-Polynesië", - "Franse Zuidelijke en Antarctische Gebieden", - "Gabon", - "Gambia", - "Georgië", - "Ghana", - "Gibraltar", - "Grenada", - "Griekenland", - "Groenland", - "Guadeloupe", - "Guam", - "Guatemala", - "Guernsey", - "Guinee", - "Guinee-Bissau", - "Guyana", - "Haïti", - "Heard en McDonaldeilanden", - "Honduras", - "Hongarije", - "Hongkong", - "IJsland", - "Ierland", - "India", - "Indonesië", - "Irak", - "Iran", - "Israël", - "Italië", - "Ivoorkust", - "Jamaica", - "Japan", - "Jemen", - "Jersey", - "Jordanië", - "Kaaimaneilanden", - "Kaapverdië", - "Kameroen", - "Kazachstan", - "Kenia", - "Kirgizië", - "Kiribati", - "Kleine Pacifische eilanden van de Verenigde Staten", - "Koeweit", - "Kroatië", - "Laos", - "Lesotho", - "Letland", - "Libanon", - "Liberia", - "Libië", - "Liechtenstein", - "Litouwen", - "Luxemburg", - "Macau", - "Madagaskar", - "Malawi", - "Maldiven", - "Maleisië", - "Mali", - "Malta", - "Man", - "Marokko", - "Marshalleilanden", - "Martinique", - "Mauritanië", - "Mauritius", - "Mayotte", - "Mexico", - "Micronesia", - "Moldavië", - "Monaco", - "Mongolië", - "Montenegro", - "Montserrat", - "Mozambique", - "Myanmar", - "Namibië", - "Nauru", - "Nederland", - "Nepal", - "Nicaragua", - "Nieuw-Caledonië", - "Nieuw-Zeeland", - "Niger", - "Nigeria", - "Niue", - "Noord-Korea", - "Noord-Macedonië", - "Noordelijke Marianen", - "Noorwegen", - "Norfolk", - "Oeganda", - "Oekraïne", - "Oezbekistan", - "Oman", - "Oost-Timor", - "Oostenrijk", - "Pakistan", - "Palau", - "Palestina", - "Panama", - "Papoea-Nieuw-Guinea", - "Paraguay", - "Peru", - "Pitcairneilanden", - "Polen", - "Portugal", - "Puerto Rico", - "Qatar", - "Roemenië", - "Rusland", - "Rwanda", - "Réunion", - "Saint Kitts en Nevis", - "Saint Lucia", - "Saint Vincent en de Grenadines", - "Saint-Barthélemy", - "Saint-Pierre en Miquelon", - "Salomonseilanden", - "Samoa", - "San Marino", - "Sao Tomé en Principe", - "Saoedi-Arabië", - "Senegal", - "Servië", - "Seychellen", - "Sierra Leone", - "Singapore", - "Sint Maarten", - "Sint-Helena, Ascension en Tristan da Cunha", - "Sint-Maarten", - "Slovenië", - "Slowakije", - "Soedan", - "Somalië", - "Spanje", - "Spitsbergen en Jan Mayen", - "Sri Lanka", - "Suriname", - "Swaziland", - "Syrië", - "Tadzjikistan", - "Taiwan", - "Tanzania", - "Thailand", - "Togo", - "Tokelau", - "Tonga", - "Trinidad en Tobago", - "Tsjaad", - "Tsjechië", - "Tunesië", - "Turkije", - "Turkmenistan", - "Turks- en Caicoseilanden", - "Tuvalu", - "Uruguay", - "Vanuatu", - "Vaticaanstad", - "Venezuela", - "Verenigd Koninkrijk", - "Verenigde Arabische Emiraten", - "Verenigde Staten", - "Vietnam", - "Wallis en Futuna", - "Westelijke Sahara", - "Wit-Rusland", - "Zambia", - "Zimbabwe", - "Zuid-Afrika", - "Zuid-Georgia en de Zuidelijke Sandwicheilanden", - "Zuid-Korea", - "Zuid-Soedan", - "Zweden", - "Zwitserland", - "Åland", - ) - - # cities are taken from the BAG "woonplaats"; - # in this case the 8-Mar-2014 extract; - # see http://data.nlextract.nl/bag/csv/ - cities = ( - "'s Gravenmoer", - "'s-Graveland", - "'s-Gravendeel", - "'s-Gravenhage", - "'s-Gravenpolder", - "'s-Gravenzande", - "'s-Heer Abtskerke", - "'s-Heer Arendskerke", - "'s-Heer Hendrikskinderen", - "'s-Heerenberg", - "'s-Heerenbroek", - "'s-Heerenhoek", - "'s-Hertogenbosch", - "'t Goy", - "'t Haantje", - "'t Harde", - "'t Loo Oldebroek", - "'t Veld", - "'t Waar", - "'t Zand", - "'t Zandt", - "1e Exloërmond", - "2e Exloërmond", - "2e Valthermond", - "Aadorp", - "Aagtekerke", - "Aalden", - "Aalsmeer", - "Aalsmeerderbrug", - "Aalst", - "Aalsum", - "Aalten", - "Aardenburg", - "Aarlanderveen", - "Aarle-Rixtel", - "Aartswoud", - "Abbega", - "Abbekerk", - "Abbenbroek", - "Abbenes", - "Abcoude", - "Achlum", - "Achterveld", - "Achthuizen", - "Achtmaal", - "Acquoy", - "Adorp", - "Aduard", - "Aerdenhout", - "Aerdt", - "Afferden", - "Afferden L", - "Agelo", - "Akersloot", - "Akkrum", - "Akmarijp", - "Albergen", - "Alblasserdam", - "Alde Leie", - "Aldeboarn", - "Aldtsjerk", - "Alem", - "Alkmaar", - "Allingawier", - "Almelo", - "Almen", - "Almere", - "Almkerk", - "Alphen", - "Alphen aan den Rijn", - "Alteveer", - "Alteveer gem Hoogeveen", - "Altforst", - "Ambt Delden", - "Ameide", - "Amen", - "America", - "Amerongen", - "Amersfoort", - "Ammerstol", - "Ammerzoden", - "Amstelhoek", - "Amstelveen", - "Amstenrade", - "Amsterdam", - "Amsterdam-Duivendrecht", - "Andel", - "Andelst", - "Anderen", - "Andijk", - "Ane", - "Anerveen", - "Anevelde", - "Angeren", - "Angerlo", - "Anjum", - "Ankeveen", - "Anloo", - "Anna Paulowna", - "Annen", - "Annerveenschekanaal", - "Ansen", - "Apeldoorn", - "Appelscha", - "Appeltern", - "Appingedam", - "Arcen", - "Arkel", - "Arnemuiden", - "Arnhem", - "Arriën", - "Arum", - "Asch", - "Asperen", - "Assen", - "Assendelft", - "Asten", - "Augsbuurt", - "Augustinusga", - "Austerlitz", - "Avenhorn", - "Axel", - "Azewijn", - "Baaiduinen", - "Baaium", - "Baak", - "Baambrugge", - "Baard", - "Baarland", - "Baarle-Nassau", - "Baarlo", - "Baarn", - "Baars", - "Babberich", - "Babyloniënbroek", - "Bad Nieuweschans", - "Badhoevedorp", - "Baexem", - "Baflo", - "Bakel", - "Bakhuizen", - "Bakkeveen", - "Balgoij", - "Balinge", - "Balk", - "Balkbrug", - "Balloo", - "Balloërveld", - "Ballum", - "Baneheide", - "Banholt", - "Bant", - "Bantega", - "Barchem", - "Barendrecht", - "Barger-Compascuum", - "Barneveld", - "Barsingerhorn", - "Basse", - "Batenburg", - "Bathmen", - "Bavel", - "Bavel AC", - "Bears", - "Bedum", - "Beegden", - "Beek", - "Beek en Donk", - "Beekbergen", - "Beemte Broekland", - "Beers NB", - "Beerta", - "Beerze", - "Beerzerveld", - "Beesd", - "Beesel", - "Beets", - "Beetsterzwaag", - "Beilen", - "Beinsdorp", - "Belfeld", - "Bellingwolde", - "Belt-Schutsloot", - "Beltrum", - "Bemelen", - "Bemmel", - "Beneden-Leeuwen", - "Bennebroek", - "Bennekom", - "Benneveld", - "Benningbroek", - "Benschop", - "Bentelo", - "Benthuizen", - "Bentveld", - "Berg en Dal", - "Berg en Terblijt", - "Bergambacht", - "Bergeijk", - "Bergen (NH)", - "Bergen L", - "Bergen aan Zee", - "Bergen op Zoom", - "Bergentheim", - "Bergharen", - "Berghem", - "Bergschenhoek", - "Beringe", - "Berkel en Rodenrijs", - "Berkel-Enschot", - "Berkenwoude", - "Berkhout", - "Berlicum", - "Berltsum", - "Bern", - "Best", - "Beugen", - "Beuningen", - "Beuningen Gld", - "Beusichem", - "Beutenaken", - "Beverwijk", - "Biddinghuizen", - "Bierum", - "Biervliet", - "Biest-Houtakker", - "Biezenmortel", - "Biggekerke", - "Bilthoven", - "Bingelrade", - "Bitgum", - "Bitgummole", - "Bladel", - "Blankenham", - "Blaricum", - "Blauwestad", - "Blauwhuis", - "Bleiswijk", - "Blesdijke", - "Bleskensgraaf ca", - "Blessum", - "Blije", - "Blijham", - "Blitterswijck", - "Bloemendaal", - "Blokker", - "Blokzijl", - "Boazum", - "Bocholtz", - "Bodegraven", - "Boekel", - "Boelenslaan", - "Boer", - "Boerakker", - "Boesingheliede", - "Boijl", - "Boksum", - "Bolsward", - "Bontebok", - "Boornbergum", - "Boornzwaag", - "Borculo", - "Borger", - "Borgercompagnie", - "Borgsweer", - "Born", - "Borne", - "Bornerbroek", - "Bornwird", - "Borssele", - "Bosch en Duin", - "Boschoord", - "Boskoop", - "Bosschenhoofd", - "Botlek Rotterdam", - "Bourtange", - "Boven-Leeuwen", - "Bovenkarspel", - "Bovensmilde", - "Boxmeer", - "Boxtel", - "Braamt", - "Brakel", - "Brandwijk", - "Brantgum", - "Breda", - "Bredevoort", - "Breedenbroek", - "Breezand", - "Breezanddijk", - "Breskens", - "Breukelen", - "Breukeleveen", - "Brielle", - "Briltil", - "Britsum", - "Britswert", - "Broek", - "Broek in Waterland", - "Broek op Langedijk", - "Broekhuizen", - "Broekhuizenvorst", - "Broekland", - "Broeksterwâld", - "Bronkhorst", - "Bronneger", - "Bronnegerveen", - "Brouwershaven", - "Bruchem", - "Brucht", - "Bruchterveld", - "Bruinehaar", - "Bruinisse", - "Brummen", - "Brunssum", - "Bruntinge", - "Buchten", - "Budel", - "Budel-Dorplein", - "Budel-Schoot", - "Buggenum", - "Buinen", - "Buinerveen", - "Buitenkaag", - "Buitenpost", - "Bunde", - "Bunne", - "Bunnik", - "Bunschoten-Spakenburg", - "Burdaard", - "Buren", - "Burgerbrug", - "Burgerveen", - "Burgh-Haamstede", - "Burgum", - "Burgwerd", - "Burum", - "Bussum", - "Buurmalsen", - "Cadier en Keer", - "Cadzand", - "Callantsoog", - "Capelle aan den IJssel", - "Castelre", - "Castenray", - "Casteren", - "Castricum", - "Chaam", - "Clinge", - "Coevorden", - "Colijnsplaat", - "Collendoorn", - "Colmschate", - "Cornwerd", - "Cothen", - "Creil", - "Cromvoirt", - "Cruquius", - "Cuijk", - "Culemborg", - "Daarle", - "Daarlerveen", - "Dalem", - "Dalen", - "Dalerpeel", - "Dalerveen", - "Dalfsen", - "Dalmsholte", - "Damwâld", - "Darp", - "De Bilt", - "De Blesse", - "De Bult", - "De Cocksdorp", - "De Falom", - "De Glind", - "De Goorn", - "De Groeve", - "De Heen", - "De Heurne", - "De Hoeve", - "De Kiel", - "De Klomp", - "De Knipe", - "De Koog", - "De Krim", - "De Kwakel", - "De Lier", - "De Meern", - "De Moer", - "De Mortel", - "De Pol", - "De Punt", - "De Rijp", - "De Rips", - "De Schiphorst", - "De Steeg", - "De Tike", - "De Veenhoop", - "De Waal", - "De Weere", - "De Westereen", - "De Wilgen", - "De Wilp", - "De Zilk", - "Dearsum", - "Dedemsvaart", - "Dedgum", - "Deelen", - "Deest", - "Deil", - "Deinum", - "Delden", - "Delfgauw", - "Delfstrahuizen", - "Delft", - "Delfzijl", - "Delwijnen", - "Demen", - "Den Andel", - "Den Bommel", - "Den Burg", - "Den Dolder", - "Den Dungen", - "Den Ham", - "Den Helder", - "Den Hoorn", - "Den Horn", - "Den Hout", - "Den Ilp", - "Den Oever", - "Den Velde", - "Denekamp", - "Deurne", - "Deurningen", - "Deursen-Dennenburg", - "Deurze", - "Deventer", - "Didam", - "Dieden", - "Diemen", - "Diepenheim", - "Diepenveen", - "Dieren", - "Diessen", - "Diever", - "Dieverbrug", - "Diffelen", - "Dijken", - "Dinteloord", - "Dinxperlo", - "Diphoorn", - "Dirkshorn", - "Dirksland", - "Dodewaard", - "Doenrade", - "Doesburg", - "Doetinchem", - "Doeveren", - "Doezum", - "Dokkum", - "Doldersum", - "Domburg", - "Donderen", - "Dongen", - "Dongjum", - "Doniaga", - "Donkerbroek", - "Doorn", - "Doornenburg", - "Doornspijk", - "Doorwerth", - "Dordrecht", - "Dorst", - "Drachten", - "Drachten-Azeven", - "Drachtstercompagnie", - "Dreischor", - "Drempt", - "Dreumel", - "Driebergen-Rijsenburg", - "Drieborg", - "Driebruggen", - "Driehuis NH", - "Driehuizen", - "Driel", - "Driewegen", - "Driezum", - "Drijber", - "Drimmelen", - "Drogeham", - "Drogteropslagen", - "Drongelen", - "Dronryp", - "Dronten", - "Drouwen", - "Drouwenermond", - "Drouwenerveen", - "Drunen", - "Druten", - "Duiven", - "Duivendrecht", - "Duizel", - "Dussen", - "Dwingeloo", - "Eagum", - "Earnewâld", - "Easterein", - "Easterlittens", - "Eastermar", - "Easterwierrum", - "Echt", - "Echteld", - "Echten", - "Echtenerbrug", - "Eck en Wiel", - "Eckelrade", - "Edam", - "Ede", - "Ederveen", - "Ee", - "Eede", - "Eefde", - "Eelde", - "Eelderwolde", - "Eemdijk", - "Eemnes", - "Eemshaven", - "Een", - "Een-West", - "Eenrum", - "Eenum", - "Eerbeek", - "Eersel", - "Ees", - "Eesergroen", - "Eeserveen", - "Eesterga", - "Eesveen", - "Eethen", - "Eext", - "Eexterveen", - "Eexterveenschekanaal", - "Eexterzandvoort", - "Egchel", - "Egmond aan Zee", - "Egmond aan den Hoef", - "Egmond-Binnen", - "Eibergen", - "Eijsden", - "Eindhoven", - "Einighausen", - "Ekehaar", - "Elahuizen", - "Elburg", - "Eldersloo", - "Eleveld", - "Elim", - "Elkenrade", - "Ell", - "Ellecom", - "Ellemeet", - "Ellertshaar", - "Ellewoutsdijk", - "Elp", - "Elsendorp", - "Elshout", - "Elsloo", - "Elspeet", - "Elst", - "Elst Ut", - "Emmeloord", - "Emmen", - "Emmer-Compascuum", - "Empe", - "Emst", - "Engwierum", - "Enkhuizen", - "Ens", - "Enschede", - "Enspijk", - "Enter", - "Enumatil", - "Epe", - "Epen", - "Eppenhuizen", - "Epse", - "Erica", - "Erichem", - "Erlecom", - "Erm", - "Ermelo", - "Erp", - "Esbeek", - "Esch", - "Escharen", - "Espel", - "Est", - "Etten", - "Etten-Leur", - "Europoort Rotterdam", - "Eursinge", - "Everdingen", - "Evertsoord", - "Ewijk", - "Exloo", - "Exloërveen", - "Exmorra", - "Eygelshoven", - "Eys", - "Ezinge", - "Farmsum", - "Feanwâlden", - "Feerwerd", - "Feinsum", - "Ferwert", - "Ferwoude", - "Fijnaart", - "Finsterwolde", - "Firdgum", - "Fleringen", - "Fluitenberg", - "Fochteloo", - "Follega", - "Folsgare", - "Formerum", - "Foudgum", - "Foxhol", - "Foxwolde", - "Franeker", - "Frederiksoord", - "Friens", - "Frieschepalen", - "Froombosch", - "Gaanderen", - "Gaast", - "Gaastmeer", - "Galder", - "Gameren", - "Gapinge", - "Garderen", - "Garmerwolde", - "Garminge", - "Garnwerd", - "Garrelsweer", - "Garsthuizen", - "Garyp", - "Gassel", - "Gasselte", - "Gasselternijveen", - "Gasselternijveenschemond", - "Gastel", - "Gasteren", - "Gauw", - "Geelbroek", - "Geerdijk", - "Geersdijk", - "Geertruidenberg", - "Geervliet", - "Gees", - "Geesbrug", - "Geesteren", - "Geeuwenbrug", - "Geffen", - "Geijsteren", - "Geldermalsen", - "Gelderswoude", - "Geldrop", - "Geleen", - "Gellicum", - "Gelselaar", - "Gemert", - "Gemonde", - "Genderen", - "Gendringen", - "Gendt", - "Genemuiden", - "Gennep", - "Gerkesklooster", - "Gersloot", - "Geulle", - "Giesbeek", - "Giessen", - "Giessenburg", - "Gieten", - "Gieterveen", - "Giethmen", - "Giethoorn", - "Gilze", - "Ginnum", - "Glane", - "Glimmen", - "Godlinze", - "Goedereede", - "Goes", - "Goingarijp", - "Goirle", - "Goor", - "Gorinchem", - "Gorredijk", - "Gorssel", - "Gouda", - "Gouderak", - "Goudriaan", - "Goudswaard", - "Goutum", - "Goënga", - "Goëngahuizen", - "Graauw", - "Grafhorst", - "Graft", - "Gramsbergen", - "Grashoek", - "Grathem", - "Grave", - "Greonterp", - "Grevenbicht", - "Griendtsveen", - "Grijpskerk", - "Grijpskerke", - "Groede", - "Groenekan", - "Groeningen", - "Groenlo", - "Groesbeek", - "Groessen", - "Groet", - "Grolloo", - "Groningen", - "Gronsveld", - "Groot-Ammers", - "Grootebroek", - "Grootegast", - "Grootschermer", - "Grou", - "Grubbenvorst", - "Gulpen", - "Guttecoven", - "Gytsjerk", - "Haaften", - "Haaksbergen", - "Haalderen", - "Haaren", - "Haarle", - "Haarlem", - "Haarlemmerliede", - "Haarlo", - "Haarsteeg", - "Haarzuilens", - "Haastrecht", - "Haelen", - "Hagestein", - "Haghorst", - "Haler", - "Halfweg", - "Hall", - "Halle", - "Hallum", - "Halsteren", - "Handel", - "Hank", - "Hansweert", - "Hantum", - "Hantumeruitburen", - "Hantumhuizen", - "Hapert", - "Haps", - "Harbrinkhoek", - "Hardenberg", - "Harderwijk", - "Hardinxveld-Giessendam", - "Haren", - "Haren Gn", - "Harfsen", - "Harich", - "Haringhuizen", - "Harkema", - "Harkstede", - "Harlingen", - "Harmelen", - "Harreveld", - "Harskamp", - "Hartwerd", - "Haskerdijken", - "Haskerhorne", - "Hasselt", - "Hattem", - "Hattemerbroek", - "Haule", - "Haulerwijk", - "Hauwert", - "Havelte", - "Havelterberg", - "Hazerswoude-Dorp", - "Hazerswoude-Rijndijk", - "Hedel", - "Hedikhuizen", - "Hee", - "Heeg", - "Heel", - "Heelsum", - "Heelweg", - "Heemserveen", - "Heemskerk", - "Heemstede", - "Heenvliet", - "Heerde", - "Heerenveen", - "Heerewaarden", - "Heerhugowaard", - "Heerjansdam", - "Heerle", - "Heerlen", - "Heesbeen", - "Heesch", - "Heesselt", - "Heeswijk-Dinther", - "Heeten", - "Heeze", - "Hegebeintum", - "Hegelsom", - "Hei- en Boeicop", - "Heibloem", - "Heide", - "Heijen", - "Heijenrath", - "Heijningen", - "Heikant", - "Heilig Landstichting", - "Heiligerlee", - "Heiloo", - "Heinenoord", - "Heinkenszand", - "Heino", - "Hekelingen", - "Hekendorp", - "Helden", - "Helenaveen", - "Hellendoorn", - "Hellevoetsluis", - "Hellouw", - "Hellum", - "Helmond", - "Helvoirt", - "Hem", - "Hemelum", - "Hemmen", - "Hempens", - "Hemrik", - "Hendrik-Ido-Ambacht", - "Hengelo", - "Hengelo (Gld)", - "Hengevelde", - "Hengstdijk", - "Hensbroek", - "Herbaijum", - "Herkenbosch", - "Herkingen", - "Hernen", - "Herpen", - "Herpt", - "Herten", - "Hertme", - "Herveld", - "Herwen", - "Herwijnen", - "Heteren", - "Heukelom", - "Heukelum", - "Heumen", - "Heusden", - "Heveadorp", - "Heythuysen", - "Hezingen", - "Hiaure", - "Hichtum", - "Hidaard", - "Hierden", - "Hieslum", - "Hijken", - "Hijum", - "Hilaard", - "Hillegom", - "Hilvarenbeek", - "Hilversum", - "Hindeloopen", - "Hinnaard", - "Hippolytushoef", - "Hitzum", - "Hobrede", - "Hoedekenskerke", - "Hoek", - "Hoek van Holland", - "Hoenderloo", - "Hoensbroek", - "Hoenzadriel", - "Hoevelaken", - "Hoeven", - "Hoge Hexel", - "Hollandsche Rading", - "Hollandscheveld", - "Hollum", - "Holsloot", - "Holten", - "Holthees", - "Holtheme", - "Holthone", - "Holtum", - "Holwerd", - "Holwierde", - "Hommerts", - "Homoet", - "Honselersdijk", - "Hoofddorp", - "Hoofdplaat", - "Hoog Soeren", - "Hoog-Keppel", - "Hoogblokland", - "Hooge Mierde", - "Hooge Zwaluwe", - "Hoogeloon", - "Hoogenweg", - "Hoogerheide", - "Hoogersmilde", - "Hoogeveen", - "Hoogezand", - "Hooghalen", - "Hoogkarspel", - "Hoogland", - "Hooglanderveen", - "Hoogmade", - "Hoogvliet Rotterdam", - "Hoogwoud", - "Hoorn", - "Hoornaar", - "Hoornsterzwaag", - "Horn", - "Hornhuizen", - "Horssen", - "Horst", - "Houten", - "Houtigehage", - "Houwerzijl", - "Huijbergen", - "Huis ter Heide", - "Huisduinen", - "Huisseling", - "Huissen", - "Huizen", - "Huizinge", - "Hulsberg", - "Hulsel", - "Hulshorst", - "Hulst", - "Hulten", - "Hummelo", - "Hunsel", - "Hurdegaryp", - "Hurwenen", - "Húns", - "IJhorst", - "IJlst", - "IJmuiden", - "IJsselham", - "IJsselmuiden", - "IJsselstein", - "IJzendijke", - "IJzendoorn", - "Idaerd", - "Idsegahuizum", - "Idskenhuizen", - "Idzega", - "Iens", - "Ilpendam", - "Indijk", - "Ingber", - "Ingelum", - "Ingen", - "It Heidenskip", - "Itens", - "Ittervoort", - "Jaarsveld", - "Jabeek", - "Jannum", - "Jellum", - "Jelsum", - "Jirnsum", - "Jislum", - "Jisp", - "Jistrum", - "Jonkerslân", - "Jonkersvaart", - "Joppe", - "Jorwert", - "Joure", - "Jouswier", - "Jubbega", - "Julianadorp", - "Jutrijp", - "Kaag", - "Kaard", - "Kaatsheuvel", - "Kalenberg", - "Kallenkote", - "Kamerik", - "Kampen", - "Kamperland", - "Kamperveen", - "Kantens", - "Kapel Avezaath", - "Kapel-Avezaath", - "Kapelle", - "Kapellebrug", - "Katlijk", - "Kats", - "Kattendijke", - "Katwijk", - "Katwijk NB", - "Katwoude", - "Kedichem", - "Keent", - "Keijenborg", - "Kekerdom", - "Kelpen-Oler", - "Kerk Avezaath", - "Kerk-Avezaath", - "Kerkdriel", - "Kerkenveld", - "Kerkrade", - "Kerkwerve", - "Kerkwijk", - "Kessel", - "Kesteren", - "Kiel-Windeweer", - "Kilder", - "Kimswerd", - "Kinderdijk", - "Kinnum", - "Klaaswaal", - "Klarenbeek", - "Klazienaveen", - "Klazienaveen-Noord", - "Klein Zundert", - "Klijndijk", - "Klimmen", - "Kloetinge", - "Klooster Lidlum", - "Kloosterburen", - "Kloosterhaar", - "Kloosterzande", - "Klundert", - "Knegsel", - "Koarnjum", - "Kockengen", - "Koedijk", - "Koekange", - "Koewacht", - "Kolderwolde", - "Kolham", - "Kolhorn", - "Kollum", - "Kollumerpomp", - "Kollumerzwaag", - "Kommerzijl", - "Koningsbosch", - "Koningslust", - "Koog aan de Zaan", - "Koolwijk", - "Kootstertille", - "Kootwijk", - "Kootwijkerbroek", - "Kornhorn", - "Kornwerderzand", - "Kortehemmen", - "Kortenhoef", - "Kortgene", - "Koudekerk aan den Rijn", - "Koudekerke", - "Koudum", - "Koufurderrige", - "Krabbendijke", - "Kraggenburg", - "Kreileroord", - "Krewerd", - "Krimpen aan de Lek", - "Krimpen aan den IJssel", - "Kring van Dorth", - "Krommenie", - "Kronenberg", - "Kropswolde", - "Kruiningen", - "Kruisland", - "Kudelstaart", - "Kuinre", - "Kuitaart", - "Kwadendamme", - "Kwadijk", - "Kwintsheul", - "Kûbaard", - "Laag Zuthem", - "Laag-Keppel", - "Laag-Soeren", - "Lage Mierde", - "Lage Vuursche", - "Lage Zwaluwe", - "Lageland", - "Lambertschaag", - "Lamswaarde", - "Landerum", - "Landgraaf", - "Landhorst", - "Landsmeer", - "Langbroek", - "Langedijke", - "Langelille", - "Langelo", - "Langenboom", - "Langerak", - "Langeveen", - "Langeweg", - "Langezwaag", - "Langweer", - "Laren", - "Lathum", - "Lattrop-Breklenkamp", - "Lauwersoog", - "Lauwerzijl", - "Ledeacker", - "Leek", - "Leende", - "Leens", - "Leerbroek", - "Leerdam", - "Leermens", - "Leersum", - "Leeuwarden", - "Legemeer", - "Leiden", - "Leiderdorp", - "Leidschendam", - "Leimuiden", - "Leimuiderbrug", - "Lekkerkerk", - "Lekkum", - "Lellens", - "Lelystad", - "Lemele", - "Lemelerveld", - "Lemiers", - "Lemmer", - "Lengel", - "Lent", - "Leons", - "Lepelstraat", - "Lettelbert", - "Lettele", - "Leunen", - "Leur", - "Leusden", - "Leuth", - "Leutingewolde", - "Leuvenheim", - "Leveroy", - "Lewedorp", - "Lexmond", - "Lichtaard", - "Lichtenvoorde", - "Liempde", - "Lienden", - "Lierderholthuis", - "Lieren", - "Lierop", - "Lies", - "Lieshout", - "Liessel", - "Lievelde", - "Lieveren", - "Lijnden", - "Limbricht", - "Limmen", - "Linde", - "Linden", - "Linne", - "Linschoten", - "Lioessens", - "Lippenhuizen", - "Lisse", - "Lisserbroek", - "Lith", - "Lithoijen", - "Lobith", - "Lochem", - "Loenen", - "Loenen aan de Vecht", - "Loenersloot", - "Loerbeek", - "Lollum", - "Lomm", - "Longerhouw", - "Loo Gld", - "Loon", - "Loon op Zand", - "Loosbroek", - "Loosdrecht", - "Loozen", - "Lopik", - "Lopikerkapel", - "Loppersum", - "Losdorp", - "Losser", - "Lottum", - "Loënga", - "Lucaswolde", - "Luddeweer", - "Luinjeberd", - "Lunteren", - "Lutjebroek", - "Lutjegast", - "Lutjewinkel", - "Luttelgeest", - "Lutten", - "Luttenberg", - "Luxwoude", - "Luyksgestel", - "Lytsewierrum", - "Maarheeze", - "Maarn", - "Maarsbergen", - "Maarssen", - "Maartensdijk", - "Maasbommel", - "Maasbracht", - "Maasbree", - "Maasdam", - "Maasdijk", - "Maashees", - "Maasland", - "Maassluis", - "Maastricht", - "Maastricht-Airport", - "Maasvlakte Rotterdam", - "Macharen", - "Made", - "Makkinga", - "Makkum", - "Malden", - "Mander", - "Manderveen", - "Mantgum", - "Mantinge", - "Maren-Kessel", - "Margraten", - "Maria Hoop", - "Mariahout", - "Mariaparochie", - "Marijenkampen", - "Mariënberg", - "Mariënheem", - "Mariënvelde", - "Markelo", - "Marken", - "Markenbinnen", - "Marknesse", - "Marle", - "Marrum", - "Marsum", - "Marum", - "Marwijksoord", - "Mastenbroek", - "Matsloot", - "Maurik", - "Mechelen", - "Medemblik", - "Meeden", - "Meedhuizen", - "Meerkerk", - "Meerlo", - "Meerssen", - "Meerstad", - "Meeuwen", - "Megchelen", - "Megen", - "Meijel", - "Melderslo", - "Melick", - "Meliskerke", - "Melissant", - "Menaam", - "Mensingeweer", - "Meppel", - "Meppen", - "Merkelbeek", - "Merselo", - "Meteren", - "Meterik", - "Metslawier", - "Mheer", - "Middelaar", - "Middelburg", - "Middelharnis", - "Middelie", - "Middelstum", - "Middenbeemster", - "Middenmeer", - "Midlaren", - "Midlum", - "Midsland", - "Midwolda", - "Midwolde", - "Midwoud", - "Miedum", - "Mierlo", - "Mijdrecht", - "Mijnsheerenland", - "Mildam", - "Milheeze", - "Mill", - "Millingen aan de Rijn", - "Milsbeek", - "Minnertsga", - "Mirns", - "Moddergat", - "Moerdijk", - "Moergestel", - "Moerkapelle", - "Moerstraten", - "Molenaarsgraaf", - "Molenhoek", - "Molenschot", - "Molkwerum", - "Monnickendam", - "Monster", - "Montfoort", - "Montfort", - "Mook", - "Mookhoek", - "Moordrecht", - "Moorveld", - "Morra", - "Muiden", - "Muiderberg", - "Munnekeburen", - "Munnekezijl", - "Munstergeleen", - "Muntendam", - "Mussel", - "Musselkanaal", - "Mûnein", - "Naaldwijk", - "Naarden", - "Nagele", - "Nederasselt", - "Nederhemert", - "Nederhorst den Berg", - "Nederland", - "Nederweert", - "Nederweert-Eind", - "Neede", - "Neer", - "Neerijnen", - "Neeritter", - "Neerkant", - "Neerlangel", - "Neerloon", - "Nes", - "Netersel", - "Netterden", - "Niawier", - "Nibbixwoud", - "Niebert", - "Niehove", - "Niekerk", - "Nietap", - "Nieuw Annerveen", - "Nieuw Beerta", - "Nieuw Heeten", - "Nieuw Namen", - "Nieuw Scheemda", - "Nieuw- en Sint Joosland", - "Nieuw-Amsterdam", - "Nieuw-Balinge", - "Nieuw-Beijerland", - "Nieuw-Buinen", - "Nieuw-Dordrecht", - "Nieuw-Lekkerland", - "Nieuw-Roden", - "Nieuw-Schoonebeek", - "Nieuw-Vennep", - "Nieuw-Vossemeer", - "Nieuw-Weerdinge", - "Nieuwaal", - "Nieuwdorp", - "Nieuwe Niedorp", - "Nieuwe Pekela", - "Nieuwe Wetering", - "Nieuwe-Tonge", - "Nieuwebrug", - "Nieuwediep", - "Nieuwegein", - "Nieuwehorne", - "Nieuwendijk", - "Nieuwer Ter Aa", - "Nieuwerbrug aan den Rijn", - "Nieuwerkerk", - "Nieuwerkerk aan den IJssel", - "Nieuweroord", - "Nieuwersluis", - "Nieuweschoot", - "Nieuwkoop", - "Nieuwkuijk", - "Nieuwland", - "Nieuwlande", - "Nieuwlande Coevorden", - "Nieuwleusen", - "Nieuwolda", - "Nieuwpoort", - "Nieuwstadt", - "Nieuwveen", - "Nieuwvliet", - "Niezijl", - "Niftrik", - "Nigtevecht", - "Nij Altoenae", - "Nij Beets", - "Nijbroek", - "Nijeberkoop", - "Nijega", - "Nijehaske", - "Nijeholtpade", - "Nijeholtwolde", - "Nijelamer", - "Nijemirdum", - "Nijensleek", - "Nijetrijne", - "Nijeveen", - "Nijhuizum", - "Nijkerk", - "Nijkerkerveen", - "Nijland", - "Nijlande", - "Nijmegen", - "Nijverdal", - "Nispen", - "Nisse", - "Nistelrode", - "Noardburgum", - "Nooitgedacht", - "Noorbeek", - "Noord-Scharwoude", - "Noord-Sleen", - "Noordbeemster", - "Noordbroek", - "Noordeinde", - "Noordeinde Gld", - "Noordeloos", - "Noorden", - "Noordgouwe", - "Noordhoek", - "Noordhorn", - "Noordlaren", - "Noordscheschut", - "Noordwelle", - "Noordwijk", - "Noordwijkerhout", - "Noordwolde", - "Nootdorp", - "Norg", - "Notter", - "Nuenen", - "Nuis", - "Nuland", - "Numansdorp", - "Nunhem", - "Nunspeet", - "Nuth", - "Nutter", - "Obbicht", - "Obdam", - "Ochten", - "Odijk", - "Odiliapeel", - "Odoorn", - "Odoornerveen", - "Oeffelt", - "Oegstgeest", - "Oene", - "Oentsjerk", - "Offingawier", - "Ohé en Laak", - "Oijen", - "Oirlo", - "Oirsbeek", - "Oirschot", - "Oisterwijk", - "Okkenbroek", - "Olburgen", - "Oldeberkoop", - "Oldebroek", - "Oldeholtpade", - "Oldeholtwolde", - "Oldehove", - "Oldekerk", - "Oldelamer", - "Oldemarkt", - "Oldenzaal", - "Oldenzijl", - "Oldeouwer", - "Oldetrijne", - "Olst", - "Olterterp", - "Ommel", - "Ommen", - "Ommeren", - "Onderdendam", - "Onna", - "Onnen", - "Onstwedde", - "Ooij", - "Ooltgensplaat", - "Oost West en Middelbeers", - "Oost-Graftdijk", - "Oost-Souburg", - "Oostburg", - "Oostdijk", - "Oosteind", - "Oosterbeek", - "Oosterbierum", - "Oosterblokker", - "Oosterend", - "Oosterhesselen", - "Oosterhout", - "Oosterland", - "Oosterleek", - "Oosternieland", - "Oosternijkerk", - "Oosterstreek", - "Oosterwijk", - "Oosterwijtwerd", - "Oosterwolde", - "Oosterwolde Gld", - "Oosterzee", - "Oosthem", - "Oosthuizen", - "Oostkapelle", - "Oostknollendam", - "Oostrum", - "Oostvoorne", - "Oostwold", - "Oostwoud", - "Oostzaan", - "Ootmarsum", - "Opeinde", - "Opende", - "Ophemert", - "Opheusden", - "Opijnen", - "Oploo", - "Opmeer", - "Oppenhuizen", - "Opperdoes", - "Oranje", - "Oranjewoud", - "Orvelte", - "Ospel", - "Oss", - "Ossendrecht", - "Ossenisse", - "Ossenwaard", - "Ossenzijl", - "Oterleek", - "Otterlo", - "Ottersum", - "Ottoland", - "Oud Ade", - "Oud Annerveen", - "Oud Gastel", - "Oud Ootmarsum", - "Oud Zuilen", - "Oud-Alblas", - "Oud-Beijerland", - "Oud-Vossemeer", - "Ouddorp", - "Oude Meer", - "Oude Niedorp", - "Oude Pekela", - "Oude Wetering", - "Oude Willem", - "Oude-Tonge", - "Oudebildtzijl", - "Oudega", - "Oudehaske", - "Oudehorne", - "Oudelande", - "Oudemirdum", - "Oudemolen", - "Oudenbosch", - "Oudendijk", - "Oudenhoorn", - "Ouderkerk aan de Amstel", - "Ouderkerk aan den IJssel", - "Oudeschans", - "Oudeschild", - "Oudeschip", - "Oudeschoot", - "Oudesluis", - "Oudewater", - "Oudezijl", - "Oudheusden", - "Oudkarspel", - "Oudorp", - "Oudwoude", - "Ouwerkerk", - "Ouwster-Nijega", - "Ouwsterhaule", - "Overasselt", - "Overberg", - "Overdinkel", - "Overlangel", - "Overloon", - "Overschild", - "Overslag", - "Overveen", - "Ovezande", - "Paasloo", - "Paesens", - "Pannerden", - "Panningen", - "Papekop", - "Papendrecht", - "Papenhoven", - "Papenvoort", - "Parrega", - "Paterswolde", - "Peest", - "Peins", - "Peize", - "Peperga", - "Pernis Rotterdam", - "Persingen", - "Pesse", - "Petten", - "Philippine", - "Piaam", - "Piershil", - "Pieterburen", - "Pietersbierum", - "Pieterzijl", - "Pijnacker", - "Pingjum", - "Plasmolen", - "Poederoijen", - "Poeldijk", - "Polsbroek", - "Poortugaal", - "Poortvliet", - "Poppenwier", - "Posterholt", - "Prinsenbeek", - "Puiflijk", - "Punthorst", - "Purmer", - "Purmerend", - "Purmerland", - "Puth", - "Putte", - "Putten", - "Puttershoek", - "Raalte", - "Raamsdonk", - "Raamsdonksveer", - "Raard", - "Radewijk", - "Radio Kootwijk", - "Raerd", - "Randwijk", - "Ransdaal", - "Rasquert", - "Ravenstein", - "Ravenswaaij", - "Ravenswoud", - "Readtsjerk", - "Reahûs", - "Reduzum", - "Reek", - "Reeuwijk", - "Reijmerstok", - "Reitsum", - "Rekken", - "Renesse", - "Renkum", - "Renswoude", - "Ressen", - "Retranchement", - "Reusel", - "Reutum", - "Reuver", - "Rha", - "Rheden", - "Rhee", - "Rheeze", - "Rheezerveen", - "Rhenen", - "Rhenoy", - "Rhoon", - "Ridderkerk", - "Ried", - "Riel", - "Rien", - "Riethoven", - "Rietmolen", - "Rijen", - "Rijkevoort", - "Rijkevoort-De Walsert", - "Rijnsaterwoude", - "Rijnsburg", - "Rijpwetering", - "Rijs", - "Rijsbergen", - "Rijsenhout", - "Rijssen", - "Rijswijk", - "Rijswijk (GLD)", - "Rijswijk (NB)", - "Rilland", - "Rinsumageast", - "Ritthem", - "Rockanje", - "Roden", - "Roderesch", - "Roderwolde", - "Roelofarendsveen", - "Roermond", - "Rogat", - "Roggel", - "Rohel", - "Rolde", - "Roodeschool", - "Roosendaal", - "Roosteren", - "Rosmalen", - "Rossum", - "Roswinkel", - "Rotstergaast", - "Rotsterhaule", - "Rotterdam", - "Rotterdam-Albrandswaard", - "Rottevalle", - "Rottum", - "Rouveen", - "Rozenburg", - "Rozendaal", - "Rucphen", - "Ruigahuizen", - "Ruinen", - "Ruinerwold", - "Rumpt", - "Rutten", - "Ruurlo", - "Ryptsjerk", - "Saaksum", - "Saasveld", - "Saaxumhuizen", - "Sambeek", - "Sandfirden", - "Santpoort-Noord", - "Santpoort-Zuid", - "Sappemeer", - "Sas van Gent", - "Sassenheim", - "Sauwerd", - "Schagen", - "Schagerbrug", - "Schaijk", - "Schalkhaar", - "Schalkwijk", - "Schalsum", - "Schardam", - "Scharendijke", - "Scharmer", - "Scharnegoutum", - "Scharsterbrug", - "Scharwoude", - "Scheemda", - "Scheerwolde", - "Schellinkhout", - "Schelluinen", - "Schermerhorn", - "Scherpenisse", - "Scherpenzeel", - "Schettens", - "Scheulder", - "Schiedam", - "Schiermonnikoog", - "Schijf", - "Schijndel", - "Schildwolde", - "Schimmert", - "Schin op Geul", - "Schinnen", - "Schinveld", - "Schipborg", - "Schiphol", - "Schiphol-Rijk", - "Schipluiden", - "Schokland", - "Schoondijke", - "Schoonebeek", - "Schoonhoven", - "Schoonloo", - "Schoonoord", - "Schoonrewoerd", - "Schoorl", - "Schore", - "Schouwerzijl", - "Schraard", - "Schuinesloot", - "Sebaldeburen", - "Sellingen", - "Serooskerke", - "Sevenum", - "Sexbierum", - "Sibculo", - "Sibrandabuorren", - "Sibrandahûs", - "Siddeburen", - "Siebengewald", - "Siegerswoude", - "Sijbekarspel", - "Silvolde", - "Simonshaven", - "Simpelveld", - "Sinderen", - "Sint Agatha", - "Sint Annen", - "Sint Anthonis", - "Sint Geertruid", - "Sint Hubert", - "Sint Jansklooster", - "Sint Jansteen", - "Sint Joost", - "Sint Kruis", - "Sint Maarten", - "Sint Maartensbrug", - "Sint Maartensvlotbrug", - "Sint Nicolaasga", - "Sint Odiliënberg", - "Sint Pancras", - "Sint Philipsland", - "Sint-Annaland", - "Sint-Maartensdijk", - "Sint-Michielsgestel", - "Sint-Oedenrode", - "Sintjohannesga", - "Sirjansland", - "Sittard", - "Skingen", - "Slagharen", - "Slappeterp", - "Sleen", - "Sleeuwijk", - "Slenaken", - "Sliedrecht", - "Slijk-Ewijk", - "Slijkenburg", - "Slochteren", - "Slootdorp", - "Sloten", - "Sluis", - "Sluiskil", - "Smakt", - "Smalle Ee", - "Smallebrugge", - "Smilde", - "Snakkerburen", - "Sneek", - "Snelrewaard", - "Snikzwaag", - "Soerendonk", - "Soest", - "Soesterberg", - "Someren", - "Sommelsdijk", - "Son en Breugel", - "Sondel", - "Sonnega", - "Spaarndam", - "Spaarndam gem. Haarlem", - "Spanbroek", - "Spanga", - "Spankeren", - "Spannum", - "Spaubeek", - "Spier", - "Spierdijk", - "Spijk", - "Spijk Gn", - "Spijkenisse", - "Spijkerboor", - "Sprang-Capelle", - "Sprundel", - "Spui", - "St. Willebrord", - "St.-Annaparochie", - "St.-Jacobiparochie", - "Stad aan 't Haringvliet", - "Stadskanaal", - "Stampersgat", - "Standdaarbuiten", - "Staphorst", - "Starnmeer", - "Startenhuizen", - "Stavenisse", - "Stavoren", - "Stedum", - "Steenbergen", - "Steendam", - "Steenderen", - "Steenenkamer", - "Steensel", - "Steenwijk", - "Steenwijkerwold", - "Stegeren", - "Steggerda", - "Stein", - "Stellendam", - "Sterksel", - "Stevensbeek", - "Stevensweert", - "Steyl", - "Stieltjeskanaal", - "Stiens", - "Stitswerd", - "Stokkum", - "Stolwijk", - "Stompetoren", - "Stoutenburg", - "Stoutenburg Noord", - "Stramproy", - "Streefkerk", - "Striep", - "Strijbeek", - "Strijen", - "Strijensas", - "Stroe", - "Stroobos", - "Stuifzand", - "Sumar", - "Surhuisterveen", - "Surhuizum", - "Susteren", - "Suwâld", - "Swalmen", - "Sweikhuizen", - "Swichum", - "Swifterbant", - "Swolgen", - "Taarlo", - "Teeffelen", - "Teerns", - "Tegelen", - "Ten Boer", - "Ten Post", - "Ter Aar", - "Ter Aard", - "Ter Apel", - "Ter Apelkanaal", - "Ter Heijde", - "Ter Idzard", - "Terband", - "Terborg", - "Terheijden", - "Terherne", - "Terhole", - "Terkaple", - "Termunten", - "Termunterzijl", - "Ternaard", - "Terneuzen", - "Teroele", - "Terschuur", - "Tersoal", - "Terwispel", - "Terwolde", - "Teteringen", - "Teuge", - "Thesinge", - "Tholen", - "Thorn", - "Tiel", - "Tiendeveen", - "Tienhoven", - "Tienray", - "Tijnje", - "Tilburg", - "Tilligte", - "Tinallinge", - "Tinte", - "Tirns", - "Tjalhuizum", - "Tjalleberd", - "Tjerkgaast", - "Tjerkwerd", - "Tjuchem", - "Tolbert", - "Toldijk", - "Tolkamer", - "Tollebeek", - "Tonden", - "Toornwerd", - "Tricht", - "Triemen", - "Tripscompagnie", - "Tubbergen", - "Tuil", - "Tuitjenhorn", - "Tuk", - "Tull en 't Waal", - "Twello", - "Twijzel", - "Twijzelerheide", - "Twisk", - "Tynaarlo", - "Tytsjerk", - "Tzum", - "Tzummarum", - "Ubbena", - "Ubbergen", - "Uddel", - "Uden", - "Udenhout", - "Uffelte", - "Ugchelen", - "Uitdam", - "Uitgeest", - "Uithoorn", - "Uithuizen", - "Uithuizermeeden", - "Uitwellingerga", - "Uitwijk", - "Ulestraten", - "Ulft", - "Ulicoten", - "Ulrum", - "Ulvenhout", - "Ulvenhout AC", - "Ureterp", - "Urk", - "Urmond", - "Ursem", - "Ursem gem. S", - "Usquert", - "Utrecht", - "Vaals", - "Vaassen", - "Valburg", - "Valkenburg", - "Valkenswaard", - "Valthe", - "Valthermond", - "Varik", - "Varsselder", - "Varsseveld", - "Vasse", - "Veelerveen", - "Veen", - "Veendam", - "Veenendaal", - "Veenhuizen", - "Veeningen", - "Veenklooster", - "Veenoord", - "Veere", - "Veessen", - "Vegelinsoord", - "Veghel", - "Velddriel", - "Velden", - "Veldhoven", - "Velp", - "Velsen-Noord", - "Velsen-Zuid", - "Velserbroek", - "Ven-Zelderheide", - "Venebrugge", - "Venhorst", - "Venhuizen", - "Venlo", - "Venray", - "Vessem", - "Vethuizen", - "Veulen", - "Vianen", - "Vianen NB", - "Vierakker", - "Vierhouten", - "Vierhuizen", - "Vierlingsbeek", - "Vierpolders", - "Vijfhuizen", - "Vijlen", - "Vilsteren", - "Vinkega", - "Vinkel", - "Vinkenbuurt", - "Vinkeveen", - "Visvliet", - "Vlaardingen", - "Vlagtwedde", - "Vledder", - "Vledderveen", - "Vleuten", - "Vlieland", - "Vlierden", - "Vlijmen", - "Vlissingen", - "Vlist", - "Vlodrop", - "Voerendaal", - "Vogelenzang", - "Vogelwaarde", - "Volendam", - "Volkel", - "Vollenhove", - "Vondelingenplaat Rotterdam", - "Voorburg", - "Voorhout", - "Voorschoten", - "Voorst", - "Voorthuizen", - "Vorchten", - "Vorden", - "Vorstenbosch", - "Vortum-Mullem", - "Vragender", - "Vredenheim", - "Vredepeel", - "Vreeland", - "Vries", - "Vriescheloo", - "Vriezenveen", - "Vroomshoop", - "Vrouwenakker", - "Vrouwenparochie", - "Vrouwenpolder", - "Vught", - "Vuren", - "Waaksens", - "Waal", - "Waalre", - "Waalwijk", - "Waarde", - "Waardenburg", - "Waarder", - "Waardhuizen", - "Waarland", - "Waaxens", - "Wachtum", - "Waddinxveen", - "Wadenoijen", - "Wagenberg", - "Wagenborgen", - "Wageningen", - "Walem", - "Walsoorden", - "Wamel", - "Wanneperveen", - "Wanroij", - "Wanssum", - "Wapenveld", - "Wapse", - "Wapserveen", - "Warder", - "Warffum", - "Warfhuizen", - "Warfstermolen", - "Warmenhuizen", - "Warmond", - "Warns", - "Warnsveld", - "Warstiens", - "Warten", - "Waskemeer", - "Waspik", - "Wassenaar", - "Wateren", - "Watergang", - "Waterhuizen", - "Wateringen", - "Waterlandkerkje", - "Waverveen", - "Wedde", - "Weerselo", - "Weert", - "Weesp", - "Wehe-den Hoorn", - "Wehl", - "Weidum", - "Weiteveen", - "Wekerom", - "Well", - "Well L", - "Wellerlooi", - "Welsum", - "Wemeldinge", - "Wenum Wiesel", - "Wergea", - "Werkendam", - "Werkhoven", - "Wernhout", - "Wervershoof", - "Wesepe", - "Wessem", - "West-Graftdijk", - "West-Terschelling", - "Westbeemster", - "Westbroek", - "Westdorp", - "Westdorpe", - "Westendorp", - "Westerbeek", - "Westerbork", - "Westerbroek", - "Westeremden", - "Westergeest", - "Westerhaar-Vriezenveensewijk", - "Westerhoven", - "Westerland", - "Westerlee", - "Westernieland", - "Westervelde", - "Westervoort", - "Westerwijtwerd", - "Westhem", - "Westhoek", - "Westkapelle", - "Westknollendam", - "Westmaas", - "Westwoud", - "Westzaan", - "Wetering", - "Weteringbrug", - "Wetsens", - "Wetsinge", - "Weurt", - "Wezep", - "Wezup", - "Wezuperbrug", - "Wichmond", - "Wier", - "Wierden", - "Wieringerwaard", - "Wieringerwerf", - "Wierum", - "Wijchen", - "Wijckel", - "Wijdenes", - "Wijdewormer", - "Wijhe", - "Wijk aan Zee", - "Wijk bij Duurstede", - "Wijk en Aalburg", - "Wijlre", - "Wijnaldum", - "Wijnandsrade", - "Wijnbergen", - "Wijngaarden", - "Wijnjewoude", - "Wijster", - "Wilbertoord", - "Wildervank", - "Wilhelminadorp", - "Wilhelminaoord", - "Willemsoord", - "Willemstad", - "Wilnis", - "Wilp", - "Wilsum", - "Winde", - "Windraak", - "Winkel", - "Winneweer", - "Winschoten", - "Winssen", - "Winsum", - "Wintelre", - "Winterswijk", - "Winterswijk Brinkheurne", - "Winterswijk Corle", - "Winterswijk Henxel", - "Winterswijk Huppel", - "Winterswijk Kotten", - "Winterswijk Meddo", - "Winterswijk Miste", - "Winterswijk Ratum", - "Winterswijk Woold", - "Wirdum", - "Wirdum Gn", - "Wissenkerke", - "Witharen", - "Witmarsum", - "Witte Paarden", - "Wittelte", - "Wittem", - "Witteveen", - "Wiuwert", - "Wjelsryp", - "Woensdrecht", - "Woerden", - "Woerdense Verlaat", - "Wognum", - "Woldendorp", - "Wolfheze", - "Wolphaartsdijk", - "Wolsum", - "Woltersum", - "Wolvega", - "Wommels", - "Wons", - "Workum", - "Wormer", - "Wormerveer", - "Woubrugge", - "Woudbloem", - "Woudenberg", - "Woudrichem", - "Woudsend", - "Wouw", - "Wouwse Plantage", - "Wyns", - "Wytgaard", - "Wâlterswâld", - "Wânswert", - "Yde", - "Yerseke", - "Ypecolsga", - "Ysbrechtum", - "Ysselsteyn", - "Zaamslag", - "Zaandam", - "Zaandijk", - "Zalk", - "Zaltbommel", - "Zandberg", - "Zandeweer", - "Zandhuizen", - "Zandpol", - "Zandvoort", - "Zeddam", - "Zeegse", - "Zeeland", - "Zeerijp", - "Zeewolde", - "Zegge", - "Zegveld", - "Zeijen", - "Zeijerveen", - "Zeijerveld", - "Zeist", - "Zelhem", - "Zenderen", - "Zennewijnen", - "Zetten", - "Zevenaar", - "Zevenbergen", - "Zevenbergschen Hoek", - "Zevenhoven", - "Zevenhuizen", - "Zierikzee", - "Zieuwent", - "Zijderveld", - "Zijdewind", - "Zijldijk", - "Zoelen", - "Zoelmond", - "Zoetermeer", - "Zoeterwoude", - "Zonnemaire", - "Zorgvlied", - "Zoutelande", - "Zoutkamp", - "Zuid-Beijerland", - "Zuid-Scharwoude", - "Zuidbroek", - "Zuiddorpe", - "Zuidermeer", - "Zuiderwoude", - "Zuidhorn", - "Zuidlaarderveen", - "Zuidland", - "Zuidlaren", - "Zuidoostbeemster", - "Zuidschermer", - "Zuidveen", - "Zuidveld", - "Zuidvelde", - "Zuidwolde", - "Zuidzande", - "Zuilichem", - "Zuna", - "Zundert", - "Zurich", - "Zutphen", - "Zuurdijk", - "Zwaag", - "Zwaagdijk-Oost", - "Zwaagdijk-West", - "Zwaanshoek", - "Zwagerbosch", - "Zwammerdam", - "Zwanenburg", - "Zwartebroek", - "Zwartemeer", - "Zwartewaal", - "Zwartsluis", - "Zweeloo", - "Zweins", - "Zwiggelte", - "Zwijndrecht", - "Zwinderen", - "Zwolle", - "de Hoef", - "de Lutte", - "de Wijk", - "de Woude", - ) - - provinces = ( - "Drenthe", - "Flevoland", - "Friesland", - "Gelderland", - "Groningen", - "Limburg", - "Noord-Brabant", - "Noord-Holland", - "Overijssel", - "Utrecht", - "Zeeland", - "Zuid-Holland", - ) - - street_name_formats = ("{{first_name}}{{street_suffix}}",) - - street_address_formats = ("{{street_name}} {{building_number}}",) - - address_formats = ("{{street_address}}\n{{postcode}}\n{{city}}",) - - def administrative_unit(self) -> str: - return self.random_element(self.provinces) - - province = administrative_unit - - def city(self) -> str: - return self.random_element(self.cities) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/nl_NL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/nl_NL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4792e270d1f4dc1e5f703a942cd0aefc046c2b0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31440 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 str: - suffix: str = self.random_element(self.building_number_suffixes) - return self.numerify(self.random_element(self.building_number_formats)).replace("?", suffix) - - def city_suffix(self) -> str: - return self.random_element(self.city_suffixes) - - def street_suffix(self) -> str: - return self.random_element(self.street_suffixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/no_NO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/no_NO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index bbe1655f8c7367bce114e64da4b08bb789fbdbbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2583 zcmb_dO>7%Q6rR~#ubsbcQQ9=LO$jxXa0GE%`YTmLg_Kl+BuFhPxK!J zs_k0j&_g+KY~fT@Dk3U}9ykQ9J|Ql)a!6PS2?-(8o7J?JoOm-{TZsi1#2nsx^WHaa z-+S}s?Jr|v!-%gRh6_IpA@qmXgd`I3t&pP>S7-=w_<`i(>>9pO1Rl#Alye3r7%G$ zDF>f^gi|tb3AjRJqU5AhghX;Ur4lt2CDBxj#8N{NqQih1dW4_guCLSx8BUFo5jvKY z$mm@qwI`IvK-NNe56F9~T4FEbNhb~mN}949P#36_u9kUT>E>D>6T=E*YLXz5El|ti z%w;4{vaaU^ksK>KPN3usThNLVMDl>5fnpo17|0FWZ5BsTrrDfUY|}M+DT7fTm}U4zpyW7><_Z+9(GS!dqYeR3j=3dZ zd4nHR^F~?t$r}~NfURr!@FkvKzPXkIyvhs3&lg>&2%IP~mj@+VCKxTqkt?k#k3*cZ znrp=(e1Mk@qOe`CD|Qv)i8_>xf_T5qmAQ8VTwv}!I3fzcM<_!ZCr%r9E zUeB7$^L59tX`@lEXH37Ud*y7_yxnNj#_Dy5x@WB&*|n|LAs|ZqK0JYI@xHR_aJpVk zmraX6bh=Zvp+g%DfF=4cgAhhNuhDo5pe5JyGcJKZV8bH;aBLeNWAhNOAT{aO+_n^t zvrC|<$?^CcC-FoqAqDv2U*CMq*Uxi&_a0jS442;TOYiO#N0!+riMerT`B#h$DwhEQ-p`?C9_76vLqZ5)7eXg zO_g+9eQ7zV>!xG+x;|T~2HHT}waMO0pB=CiAYPAm&I@U9V^a}I?6);U+uDqc!R>?(K&#&*12>aAk-8E8G;jnnKp2aN0h)b{lg-=TH* ziC2L@(%SfjcC@V>eRygke!3k$y{?^U#m=xBVEzBoU^=+%C8F(`E7W5K4{JvvW4i#g ziGC`(^tbq_e@NzRJAQUuJJ*Vx6Ui(kUI}8l7=XGS4C}h>lCniX9@X_*Wy9i=OxM{> zaK{LcU{qAB*YV@wM+K~>oCuX+C+a=DHlSeFxL4i<>=W*KZ*K(lPsrejea-=CPAHI7 zBmx(gDt`Wgh~IJz%y-dqX==Z^viST$@_@Rs+_{O-{!>r&*7&8BkA9E6*^#9~YD+oL zQPGhPa7#J3IWfPoym@4?r5yV8wVCJA(9rOfJTeWK!<|Vq`Fcy)*HNSh#Sh1~5a*p3 zj+}jPWeWl8s5o-|f%gLB^WCucBwK>HGLqr{oQ!X}jwezKkO(x;E_R20@7kElGvkdV pQreDP=w89Q%mW?2cX5p!8Dsn#ivNjbUZ@tv=kI;-5^*k${tc=Q^+x~z diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/pl_PL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/pl_PL/__init__.py deleted file mode 100644 index d5b33e5..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/pl_PL/__init__.py +++ /dev/null @@ -1,750 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - cities = ( - "Warszawa", - "Kraków", - "Łódź", - "Wrocław", - "Poznań", - "Gdańsk", - "Szczecin", - "Bydgoszcz", - "Lublin", - "Katowice", - "Białystok", - "Gdynia", - "Częstochowa", - "Radom", - "Sosnowiec", - "Toruń", - "Kielce", - "Gliwice", - "Rzeszów", - "Zabrze", - "Bytom", - "Olsztyn", - "Bielsko-Biała", - "Ruda Śląska", - "Rybnik", - "Tychy", - "Dąbrowa Górnicza", - "Gorzów Wielkopolski", - "Elbląg", - "Płock", - "Opole", - "Wałbrzych", - "Zielona Góra", - "Włocławek", - "Tarnów", - "Chorzów", - "Koszalin", - "Kalisz", - "Legnica", - "Grudziądz", - "Słupsk", - "Jaworzno", - "Jastrzębie-Zdrój", - "Nowy Sącz", - "Jelenia Góra", - "Konin", - "Piotrków Trybunalski", - "Siedlce", - "Inowrocław", - "Mysłowice", - "Piła", - "Lubin", - "Ostrów Wielkopolski", - "Ostrowiec Świętokrzyski", - "Gniezno", - "Stargard Szczeciński", - "Siemianowice Śląskie", - "Suwałki", - "Głogów", - "Pabianice", - "Chełm", - "Zamość", - "Tomaszów Mazowiecki", - "Leszno", - "Przemyśl", - "Stalowa Wola", - "Kędzierzyn-Koźle", - "Łomża", - "Żory", - "Mielec", - "Tarnowskie Góry", - "Tczew", - "Bełchatów", - "Świdnica", - "Ełk", - "Pruszków", - "Będzin", - "Biała Podlaska", - "Zgierz", - "Piekary Śląskie", - "Racibórz", - "Legionowo", - "Ostrołęka", - "Świętochłowice", - "Starachowice", - "Zawiercie", - "Wejherowo", - "Puławy", - "Wodzisław Śląski", - "Starogard Gdański", - "Skierniewice", - "Tarnobrzeg", - "Skarżysko-Kamienna", - "Radomsko", - "Krosno", - "Rumia", - "Dębica", - "Kołobrzeg", - "Kutno", - "Nysa", - "Ciechanów", - "Otwock", - "Piaseczno", - "Zduńska Wola", - "Sieradz", - "Świnoujście", - "Żyrardów", - "Szczecinek", - "Świdnik", - "Chojnice", - "Nowa Sól", - "Oświęcim", - "Bolesławiec", - "Mińsk Mazowiecki", - "Mikołów", - "Jarosław", - "Sanok", - "Knurów", - "Malbork", - "Żary", - "Kwidzyn", - "Chrzanów", - "Sopot", - "Sochaczew", - "Wołomin", - "Oleśnica", - "Brzeg", - "Olkusz", - "Jasło", - "Cieszyn", - "Kraśnik", - "Lębork", - "Czechowice-Dziedzice", - "Dzierżoniów", - "Ostróda", - "Police", - "Nowy Targ", - "Iława", - "Czeladź", - "Myszków", - "Żywiec", - "Zgorzelec", - "Oława", - "Bielawa", - "Swarzędz", - "Mława", - "Ząbki", - "Łuków", - "Augustów", - "Śrem", - "Bochnia", - "Luboń", - "Giżycko", - "Grodzisk Mazowiecki", - "Łowicz", - "Krotoszyn", - "Września", - "Turek", - "Pruszcz Gdański", - "Brodnica", - "Gorlice", - "Czerwionka-Leszczyny", - "Kłodzko", - "Marki", - "Nowy Dwór Mazowiecki", - "Kętrzyn", - "Zakopane", - "Wyszków", - "Biłgoraj", - "Żagań", - "Bielsk Podlaski", - "Świecie", - "Wałcz", - "Jarocin", - "Pszczyna", - "Wągrowiec", - "Szczytno", - "Białogard", - "Sandomierz", - "Bartoszyce", - "Kluczbork", - "Lubliniec", - "Skawina", - "Jawor", - "Kościan", - "Wieluń", - "Kościerzyna", - "Nowa Ruda", - "Świebodzice", - "Koło", - "Piastów", - "Goleniów", - "Ostrów Mazowiecka", - "Polkowice", - "Lubartów", - "Zambrów", - "Płońsk", - "Reda", - "Łaziska Górne", - "Środa Wielkopolska", - ) - - street_prefixes_feminine = ( - "ulica", - "aleja", - ) - - street_prefixes_masculine = ("plac",) - - street_prefixes = street_prefixes_feminine + street_prefixes_masculine - - streets_adjective_feminine = ( - "Polna", - "Leśna", - "Słoneczna", - "Krótka", - "Szkolna", - "Ogrodowa", - "Lipowa", - "Brzozowa", - "Łąkowa", - "Kwiatowa", - "Sosnowa", - "Kościelna", - "Akacjowa", - "Parkowa", - "Zielona", - "Kolejowa", - "Sportowa", - "Dębowa", - "Cicha", - "Spokojna", - "Klonowa", - "Spacerowa", - "Swierkowa", - "Kasztanowa", - "Nowa", - "Piaskowa", - "Rózana", - "Topolowa", - "Wiśniowa", - "Dworcowa", - "Wiejska", - "Graniczna", - "Długa", - "Wrzosowa", - "Boczna", - "Wąska", - "Wierzbowa", - "Jaśminowa", - "Wspólna", - "Modrzewiowa", - "Poprzeczna", - "Wesoła", - "Pogodna", - "Bukowa", - "Sadowa", - "Górna", - "Jodłowa", - "Glówna", - "Młyńska", - "Strażacka", - "Jesionowa", - "Przemysłowa", - "Osiedlowa", - "Wiosenna", - "Południowa", - "Malinowa", - "Stawowa", - "Reymonta", - "Zacisze", - "Cmentarna", - "Okrężna", - "Miła", - "Jasna", - "Wodna", - "Zamkowa", - "Warszawska", - "Miodowa", - "Krzywa", - "Dolna", - "Podgórna", - "Kreta", - "Jarzębinowa", - "Targowa", - "Prosta", - "Spółdzielcza", - "Jagodowa", - "Działkowa", - "Orzechowa", - "Rzemieślnicza", - "Rzeczna", - "Fabryczna", - "Tęczowa", - "Chabrowa", - "Poziomkowa", - "Konwaliowa", - "Kalinowa", - "Północna", - "Grunwaldzka", - "Cisowa", - "Nadrzeczna", - "Pocztowa", - "Zachodnia", - "Dąbrowskiego", - "Grabowa", - "Źródlana", - "Gajowa", - "Mostowa", - "Wschodnia", - "Jaworowa", - "Poznańska", - "Makowa", - "Jeziorna", - "Piękna", - "Czereśniowa", - "Mała", - "Krakowska", - "Radosna", - "Leszczynowa", - "Rolna", - "Piastowska", - "Grzybowa", - "Podleśna", - "Żytnia", - "Złota", - "Bursztynowa", - "Żwirowa", - "Widokowa", - "Kamienna", - "Jałowcowa", - "Morelowa", - "Myśliwska", - "Łączna", - "Szpitalna", - "Wczasowa", - "Żurawia", - "Fiołkowa", - "Rolnicza", - "Tulipanowa", - "Dworska", - "Letnia", - "Liliowa", - "Owocowa", - "Harcerska", - "Strzelecka", - "Wrocławska", - "Gdańska", - "Turystyczna", - "Rybacka", - "Okrzei", - "Krucza", - "Jagiellońska", - "Szeroka", - "Młynarska", - "Olchowa", - "Rumiankowa", - "Stroma", - "Starowiejska", - "Mazowiecka", - "Lawendowa", - "Robotnicza", - "Zbożowa", - "Mokra", - "Towarowa", - "Dobra", - "Środkowa", - "Willowa", - "Zielna", - "Zdrojowa", - "Opolska", - "Agrestowa", - "Księżycowa", - "Zwycięstwa", - "Letniskowa", - "Orla", - "Błękitna", - "Rubinowa", - "Brzoskwiniowa", - "Urocza", - "Pomorska", - "Jeżynowa", - "Zaciszna", - "Porzeczkowa", - "Krańcowa", - "Jesienna", - "Klasztorna", - "Irysowa", - "Niecała", - "Nadbrzeżna", - "Wałowa", - "Strumykowa", - "Gołębia", - "Torowa", - "Cegielniana", - "Cyprysowa", - "Słowianska", - "Diamentowa", - "Częstochowska", - "Dojazdowa", - "Przechodnia", - "Lubelska", - "Borówkowa", - "Plażowa", - "Tartaczna", - "Jabłoniowa", - "Ludowa", - "Sokola", - "Azaliowa", - "Szmaragdowa", - "Lipca", - "Jastrzębia", - "Storczykowa", - "Wilcza", - "Górnicza", - "Szafirowa", - "Handlowa", - "Krokusowa", - "Składowa", - "Widok", - "Perłowa", - "Skośna", - "Wypoczynkowa", - "Chmielna", - "Jaskółcza", - "Nowowiejska", - "Piwna", - "Śląska", - "Zaułek", - "Głogowa", - "Górska", - "Truskawkowa", - "Kaszubska", - "Mazurska", - "Srebrna", - "Bociania", - "Ptasia", - "Cedrowa", - "Rycerska", - "Żabia", - "Toruńska", - "Podmiejska", - "Słonecznikowa", - "Sowia", - "Stolarska", - "Szczęśliwa", - "Lazurowa", - "Miarki", - "Narcyzowa", - "Browarna", - "Majowa", - "Orkana", - "Skrajna", - "Bankowa", - "Bydgoska", - "Piekarska", - "Żeglarska", - "Turkusowa", - "Tylna", - "Wysoka", - "Zakątek", - "Morska", - "Rataja", - "Szewska", - "Podwale", - "Pałacowa", - "Magnoliowa", - "Ceglana", - "Wiklinowa", - "Zakole", - "Borowa", - "Kolorowa", - "Lisia", - "Lotnicza", - "Sarnia", - "Wiązowa", - "Kolonia", - "Królewska", - "Promienna", - "Daleka", - "Wiatraczna", - "Kaliska", - "Łanowa", - "Średnia", - "Wiślana", - "Koralowa", - "Sybiraków", - "Kowalska", - "Morcinka", - "Odrzańska", - "Okulickiego", - "Zapolskiej", - "Łabędzia", - "Bałtycka", - "Lwowska", - "Rajska", - "Pszenna", - "Ciasna", - "Hutnicza", - "Kielecka", - ) - - streets_universal = ( - "Stycznia", - "Maja", - "Listopada", - "Rynek", - "Kościuszki", - "Mickiewicza", - "Sienkiewicza", - "Słowackiego", - "Konopnickiej", - "Kopernika", - "Jana Pawła II", - "Żeromskiego", - "Wojska Polskiego", - "Wolności", - "Prusa", - "Sikorskiego", - "Chopina", - "Piłsudskiego", - "Kochanowskiego", - "Armii Krajowej", - "Witosa", - "Reja", - "Partyzantów", - "Kilińskiego", - "Moniuszki", - "Orzeszkowej", - "Staszica", - "Bolesława Chrobrego", - "Wyszyńskiego", - "Matejki", - "Norwida", - "Asnyka", - "Paderewskiego", - "Wyspiańskiego", - "Broniewskiego", - "Tuwima", - "Bema", - "Traugutta", - "Jadwigi", - "Wyzwolenia", - "Krasickiego", - "Kazimierza Wielkiego", - "Mieszka I", - "Głowackiego", - "Władysława Jagiełły", - "Pułaskiego", - "Stefana Batorego", - "Kołłątaja", - "Kraszewskiego", - "Władysława Łokietka", - "Żwirki i Wigury", - "Niepodległości", - "Poniatowskiego", - "Korczaka", - "Narutowicza", - "Świerczewskiego", - "Kasprowicza", - "Jana III Sobieskiego", - "Powstańców Śląskich", - "Powstańców Wielkopolskich", - "Fredry", - "Andersa", - "Baczyńskiego", - "Batalionów Chłopskich", - "Dąbrowskiej", - "Skłodowskiej-Curie", - "Gałczyńskiego", - "Krasińskiego", - "Szymanowskiego", - "Czarnieckiego", - "Nałkowskiej", - "Wybickiego", - "Szarych Szeregów", - "Słowicza", - "Drzymały", - "Waryńskiego", - "Hallera", - "Plater", - "Popiełuszki", - "Chełmońskiego", - "Daszyńskiego", - "Kossaka", - "Skargi", - "Staffa", - "Tysiąclecia", - "Brzechwy", - "Kusocińskiego", - "Długosza", - "Kosynierów", - "Wieniawskiego", - "Powstańców", - "Sucharskiego", - "Bolesława Krzywoustego", - "Konarskiego", - "Konstytucji 3 Maja", - "Miłosza", - "Malczewskiego", - "Jana", - "Maczka", - "Sawickiej", - "Ściegiennego", - "Grottgera", - "Jana Sobieskiego", - "Rejtana", - "Wróblewskiego", - "Kruczkowskiego", - "Lelewela", - "Makuszyńskiego", - "Solidarności", - "Wojciecha", - "Korfantego", - "Floriana", - ) - - streets = streets_adjective_feminine + streets_universal - - regions = ( - "Dolnośląskie", - "Kujawsko - pomorskie", - "Lubelskie", - "Lubuskie", - "Łódzkie", - "Małopolskie", - "Mazowieckie", - "Opolskie", - "Podkarpackie", - "Podlaskie", - "Pomorskie", - "Śląskie", - "Świętokrzyskie", - "Warmińsko - mazurskie", - "Wielkopolskie", - "Zachodniopomorskie", - ) - - building_number_formats = ("##", "###", "##/##") - postcode_formats = ("##-###",) - street_address_formats = ( - "{{street_prefix_feminine}} {{street_name_adjective_feminine}} {{building_number}}", - "{{street_prefix_feminine}} {{street_name_universal}} {{building_number}}", - "{{street_prefix_masculine}} {{street_name_universal}} {{building_number}}", - "{{street_prefix_feminine_short}} {{street_name_adjective_feminine}} {{building_number}}", - "{{street_prefix_feminine_short}} {{street_name_universal}} {{building_number}}", - "{{street_prefix_masculine_short}} {{street_name_universal}} {{building_number}}", - ) - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - def street_prefix(self) -> str: - """ - Randomly returns a street prefix - :example: 'aleja' - """ - return self.random_element(self.street_prefixes) - - def street_prefix_feminine(self) -> str: - """ - Randomly returns a feminine street prefix - :example: 'aleja' - """ - return self.random_element(self.street_prefixes_feminine) - - def street_prefix_masculine(self) -> str: - """ - Randomly returns a masculine street prefix - :example: 'plac' - """ - return self.random_element(self.street_prefixes_masculine) - - def street_prefix_short(self) -> str: - """ - Randomly returns an abbreviation of the street prefix. - :example: 'al.' - """ - return self.random_element(self.street_prefixes)[:2] + "." # type: ignore - - def street_prefix_feminine_short(self) -> str: - """ - Randomly returns an abbreviation of the feminine street prefix. - :example: 'al.' - """ - return self.random_element(self.street_prefixes_feminine)[:2] + "." # type: ignore - - def street_prefix_masculine_short(self) -> str: - """ - Randomly returns an abbreviation of the masculine street prefix. - :example: 'pl.' - """ - return self.random_element(self.street_prefixes_masculine)[:2] + "." # type: ignore - - def street_name(self) -> str: - """ - Randomly returns a street name - :example: 'Wróblewskiego' - """ - return self.random_element(self.streets) - - def street_name_adjective_feminine(self) -> str: - """ - Randomly returns an adjective feminine street name - :example: 'Zielona' - """ - return self.random_element(self.streets_adjective_feminine) - - def street_name_universal(self) -> str: - """ - Randomly returns a universal street name - :example: 'Wróblewskiego' - """ - return self.random_element(self.streets_universal) - - def city(self) -> str: - """ - Randomly returns a city name - :example: 'Konin' - """ - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - """ - :example: 'Wielkopolskie' - """ - return self.random_element(self.regions) - - def postcode(self) -> str: - """ - :example: '62-200' - """ - return "%02d-%03d" % (self.generator.random.randint(1, 99), self.generator.random.randint(1, 999)) - - def zipcode(self) -> str: - """ - :example: '62-200' - """ - return self.postcode() - - def postalcode(self) -> str: - """ - :example: '62-200' - """ - return self.postcode() - - region = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/pl_PL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/pl_PL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 485d4ece54e6d0aeecf7092b119d5d2948222428..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13651 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/pt_BR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/pt_BR/__init__.py deleted file mode 100644 index 69ca1eb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/pt_BR/__init__.py +++ /dev/null @@ -1,935 +0,0 @@ -from typing import Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_suffixes = ( - "do Sul", - "do Norte", - "de Minas", - "do Campo", - "Grande", - "da Serra", - "do Oeste", - "de Goiás", - "Paulista", - "da Mata", - "Alegre", - "da Praia", - "das Flores", - "das Pedras", - "dos Dourados", - "do Amparo", - "do Galho", - "da Prata", - "Verde", - ) - street_prefixes = ( - "Aeroporto", - "Alameda", - "Área", - "Avenida", - "Campo", - "Chácara", - "Colônia", - "Condomínio", - "Conjunto", - "Distrito", - "Esplanada", - "Estação", - "Estrada", - "Favela", - "Fazenda", - "Feira", - "Jardim", - "Ladeira", - "Lago", - "Lagoa", - "Largo", - "Loteamento", - "Morro", - "Núcleo", - "Parque", - "Passarela", - "Pátio", - "Praça", - "Praia", - "Quadra", - "Recanto", - "Residencial", - "Rodovia", - "Rua", - "Setor", - "Sítio", - "Travessa", - "Trecho", - "Trevo", - "Vale", - "Vereda", - "Via", - "Viaduto", - "Viela", - "Vila", - ) - city_formats = ( - "{{last_name}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}} {{city_suffix}}", - "{{last_name}} {{city_suffix}}", - "{{last_name}} {{city_suffix}}", - "{{last_name}} de {{last_name}}", - ) - street_name_formats = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{first_name}} {{last_name}}", - "{{street_prefix}} de {{last_name}}", - ) - - street_address_formats = ( - "{{street_name}}", - "{{street_name}}, {{building_number}}", - "{{street_name}}, {{building_number}}", - "{{street_name}}, {{building_number}}", - "{{street_name}}, {{building_number}}", - "{{street_name}}, {{building_number}}", - "{{street_name}}, {{building_number}}", - ) - - address_formats = ("{{street_address}}\n{{bairro}}\n{{postcode}} {{city}} / {{estado_sigla}}",) - - building_number_formats = ("%", "%#", "%#", "%#", "%##") - - postcode_raw_formats = ("########",) - postcode_all_formats = postcode_raw_formats + ("#####-###",) - - bairros = ( - "Aarão Reis", - "Acaba Mundo", - "Acaiaca", - "Ademar Maldonado", - "Aeroporto", - "Aguas Claras", - "Alípio De Melo", - "Alpes", - "Alta Tensão 1ª Seção", - "Alta Tensão 2ª Seção", - "Alto Caiçaras", - "Alto Das Antenas", - "Alto Dos Pinheiros", - "Alto Vera Cruz", - "Álvaro Camargos", - "Ambrosina", - "Andiroba", - "Antonio Ribeiro De Abreu 1ª Seção", - "Aparecida 7ª Seção", - "Ápia", - "Apolonia", - "Araguaia", - "Atila De Paiva", - "Bacurau", - "Bairro Das Indústrias Ii", - "Baleia", - "Barão Homem De Melo 1ª Seção", - "Barão Homem De Melo 2ª Seção", - "Barão Homem De Melo 3ª Seção", - "Barreiro", - "Beija Flor", - "Beira Linha", - "Bela Vitoria", - "Belmonte", - "Bernadete", - "Betânia", - "Biquinhas", - "Boa Esperança", - "Boa União 1ª Seção", - "Boa União 2ª Seção", - "Boa Viagem", - "Boa Vista", - "Bom Jesus", - "Bonfim", - "Bonsucesso", - "Brasil Industrial", - "Braúnas", - "Buraco Quente", - "Cabana Do Pai Tomás", - "Cachoeirinha", - "Caetano Furquim", - "Caiçara - Adelaide", - "Calafate", - "Califórnia", - "Camargos", - "Campo Alegre", - "Camponesa 1ª Seção", - "Camponesa 2ª Seção", - "Canaa", - "Canadá", - "Candelaria", - "Capitão Eduardo", - "Cardoso", - "Casa Branca", - "Castanheira", - "Cdi Jatoba", - "Cenaculo", - "Céu Azul", - "Chácara Leonina", - "Cidade Jardim Taquaril", - "Cinquentenário", - "Colégio Batista", - "Comiteco", - "Concórdia", - "Cônego Pinheiro 1ª Seção", - "Cônego Pinheiro 2ª Seção", - "Confisco", - "Conjunto Bonsucesso", - "Conjunto Califórnia I", - "Conjunto Califórnia Ii", - "Conjunto Capitão Eduardo", - "Conjunto Celso Machado", - "Conjunto Floramar", - "Conjunto Jardim Filadélfia", - "Conjunto Jatoba", - "Conjunto Lagoa", - "Conjunto Minas Caixa", - "Conjunto Novo Dom Bosco", - "Conjunto Paulo Vi", - "Conjunto Providencia", - "Conjunto Santa Maria", - "Conjunto São Francisco De Assis", - "Conjunto Serra Verde", - "Conjunto Taquaril", - "Copacabana", - "Coqueiros", - "Corumbiara", - "Custodinha", - "Das Industrias I", - "Delta", - "Diamante", - "Distrito Industrial Do Jatoba", - "Dom Bosco", - "Dom Cabral", - "Dom Joaquim", - "Dom Silverio", - "Dona Clara", - "Embaúbas", - "Engenho Nogueira", - "Ermelinda", - "Ernesto Nascimento", - "Esperança", - "Estrela", - "Estrela Do Oriente", - "Etelvina Carneiro", - "Europa", - "Eymard", - "Fazendinha", - "Flamengo", - "Flavio De Oliveira", - "Flavio Marques Lisboa", - "Floramar", - "Frei Leopoldo", - "Gameleira", - "Garças", - "Glória", - "Goiania", - "Graça", - "Granja De Freitas", - "Granja Werneck", - "Grota", - "Grotinha", - "Guarani", - "Guaratã", - "Havaí", - "Heliopolis", - "Horto Florestal", - "Inconfidência", - "Indaiá", - "Independência", - "Ipe", - "Itapoa", - "Itatiaia", - "Jaqueline", - "Jaraguá", - "Jardim Alvorada", - "Jardim Atlântico", - "Jardim Do Vale", - "Jardim Dos Comerciarios", - "Jardim Felicidade", - "Jardim Guanabara", - "Jardim Leblon", - "Jardim Montanhês", - "Jardim São José", - "Jardim Vitoria", - "Jardinópolis", - "Jatobá", - "João Alfredo", - "João Paulo Ii", - "Jonas Veiga", - "Juliana", - "Lagoa", - "Lagoinha", - "Lagoinha Leblon", - "Lajedo", - "Laranjeiras", - "Leonina", - "Leticia", - "Liberdade", - "Lindéia", - "Lorena", - "Madre Gertrudes", - "Madri", - "Mala E Cuia", - "Manacas", - "Mangueiras", - "Mantiqueira", - "Marajó", - "Maravilha", - "Marçola", - "Maria Goretti", - "Maria Helena", - "Maria Tereza", - "Maria Virgínia", - "Mariano De Abreu", - "Marieta 1ª Seção", - "Marieta 2ª Seção", - "Marieta 3ª Seção", - "Marilandia", - "Mariquinhas", - "Marmiteiros", - "Milionario", - "Minas Brasil", - "Minas Caixa", - "Minaslandia", - "Mineirão", - "Miramar", - "Mirante", - "Mirtes", - "Monsenhor Messias", - "Monte Azul", - "Monte São José", - "Morro Dos Macacos", - "Nazare", - "Nossa Senhora Aparecida", - "Nossa Senhora Da Aparecida", - "Nossa Senhora Da Conceição", - "Nossa Senhora De Fátima", - "Nossa Senhora Do Rosário", - "Nova America", - "Nova Cachoeirinha", - "Nova Cintra", - "Nova Esperança", - "Nova Floresta", - "Nova Gameleira", - "Nova Pampulha", - "Novo Aarão Reis", - "Novo Das Industrias", - "Novo Glória", - "Novo Santa Cecilia", - "Novo Tupi", - "Oeste", - "Olaria", - "Olhos D'água", - "Ouro Minas", - "Pantanal", - "Paquetá", - "Paraíso", - "Parque São José", - "Parque São Pedro", - "Paulo Vi", - "Pedreira Padro Lopes", - "Penha", - "Petropolis", - "Pilar", - "Pindorama", - "Pindura Saia", - "Piraja", - "Piratininga", - "Pirineus", - "Pompéia", - "Pongelupe", - "Pousada Santo Antonio", - "Primeiro De Maio", - "Providencia", - "Ribeiro De Abreu", - "Rio Branco", - "Salgado Filho", - "Santa Amelia", - "Santa Branca", - "Santa Cecilia", - "Santa Cruz", - "Santa Helena", - "Santa Inês", - "Santa Isabel", - "Santa Margarida", - "Santa Maria", - "Santa Rita", - "Santa Rita De Cássia", - "Santa Sofia", - "Santa Terezinha", - "Santana Do Cafezal", - "Santo André", - "São Benedito", - "São Bernardo", - "São Cristóvão", - "São Damião", - "São Francisco", - "São Francisco Das Chagas", - "São Gabriel", - "São Geraldo", - "São Gonçalo", - "São João", - "São João Batista", - "São Jorge 1ª Seção", - "São Jorge 2ª Seção", - "São Jorge 3ª Seção", - "São José", - "São Marcos", - "São Paulo", - "São Salvador", - "São Sebastião", - "São Tomaz", - "São Vicente", - "Satelite", - "Saudade", - "Senhor Dos Passos", - "Serra Do Curral", - "Serra Verde", - "Serrano", - "Solar Do Barreiro", - "Solimoes", - "Sport Club", - "Suzana", - "Taquaril", - "Teixeira Dias", - "Tiradentes", - "Tirol", - "Tres Marias", - "Trevo", - "Túnel De Ibirité", - "Tupi A", - "Tupi B", - "União", - "Unidas", - "Universitário", - "Universo", - "Urca", - "Vale Do Jatoba", - "Varzea Da Palma", - "Venda Nova", - "Ventosa", - "Vera Cruz", - "Vila Aeroporto", - "Vila Aeroporto Jaraguá", - "Vila Antena", - "Vila Antena Montanhês", - "Vila Atila De Paiva", - "Vila Bandeirantes", - "Vila Barragem Santa Lúcia", - "Vila Batik", - "Vila Betânia", - "Vila Boa Vista", - "Vila Calafate", - "Vila Califórnia", - "Vila Canto Do Sabiá", - "Vila Cemig", - "Vila Cloris", - "Vila Copacabana", - "Vila Copasa", - "Vila Coqueiral", - "Vila Da Amizade", - "Vila Da Ária", - "Vila Da Luz", - "Vila Da Paz", - "Vila Das Oliveiras", - "Vila Do Pombal", - "Vila Dos Anjos", - "Vila Ecológica", - "Vila Engenho Nogueira", - "Vila Esplanada", - "Vila Formosa", - "Vila Fumec", - "Vila Havaí", - "Vila Independencia 1ª Seção", - "Vila Independencia 2ª Seção", - "Vila Independencia 3ª Seção", - "Vila Inestan", - "Vila Ipiranga", - "Vila Jardim Alvorada", - "Vila Jardim Leblon", - "Vila Jardim São José", - "Vila Madre Gertrudes 1ª Seção", - "Vila Madre Gertrudes 2ª Seção", - "Vila Madre Gertrudes 3ª Seção", - "Vila Madre Gertrudes 4ª Seção", - "Vila Maloca", - "Vila Mangueiras", - "Vila Mantiqueira", - "Vila Maria", - "Vila Minaslandia", - "Vila Nossa Senhora Do Rosário", - "Vila Nova", - "Vila Nova Cachoeirinha 1ª Seção", - "Vila Nova Cachoeirinha 2ª Seção", - "Vila Nova Cachoeirinha 3ª Seção", - "Vila Nova Dos Milionarios", - "Vila Nova Gameleira 1ª Seção", - "Vila Nova Gameleira 2ª Seção", - "Vila Nova Gameleira 3ª Seção", - "Vila Nova Paraíso", - "Vila Novo São Lucas", - "Vila Oeste", - "Vila Olhos D'água", - "Vila Ouro Minas", - "Vila Paquetá", - "Vila Paraíso", - "Vila Petropolis", - "Vila Pilar", - "Vila Pinho", - "Vila Piratininga", - "Vila Piratininga Venda Nova", - "Vila Primeiro De Maio", - "Vila Puc", - "Vila Real 1ª Seção", - "Vila Real 2ª Seção", - "Vila Rica", - "Vila Santa Monica 1ª Seção", - "Vila Santa Monica 2ª Seção", - "Vila Santa Rosa", - "Vila Santo Antônio", - "Vila Santo Antônio Barroquinha", - "Vila São Dimas", - "Vila São Francisco", - "Vila São Gabriel", - "Vila São Gabriel Jacui", - "Vila São Geraldo", - "Vila São João Batista", - "Vila São Paulo", - "Vila São Rafael", - "Vila Satélite", - "Vila Sesc", - "Vila Sumaré", - "Vila Suzana Primeira Seção", - "Vila Suzana Segunda Seção", - "Vila Tirol", - "Vila Trinta E Um De Março", - "Vila União", - "Vila Vista Alegre", - "Virgínia", - "Vista Alegre", - "Vista Do Sol", - "Vitoria", - "Vitoria Da Conquista", - "Xangri-Lá", - "Xodo-Marize", - "Zilah Sposito", - "Outro", - "Novo São Lucas", - "Esplanada", - "Estoril", - "Novo Ouro Preto", - "Ouro Preto", - "Padre Eustáquio", - "Palmares", - "Palmeiras", - "Vila De Sá", - "Floresta", - "Anchieta", - "Aparecida", - "Grajaú", - "Planalto", - "Bandeirantes", - "Gutierrez", - "Jardim América", - "Renascença", - "Barro Preto", - "Barroca", - "Sagrada Família", - "Ipiranga", - "Belvedere", - "Santa Efigênia", - "Santa Lúcia", - "Santa Monica", - "Vila Jardim Montanhes", - "Santa Rosa", - "Santa Tereza", - "Buritis", - "Vila Paris", - "Santo Agostinho", - "Santo Antônio", - "Caiçaras", - "São Bento", - "Prado", - "Lourdes", - "Fernão Dias", - "Carlos Prates", - "Carmo", - "Luxemburgo", - "São Lucas", - "São Luiz", - "Mangabeiras", - "São Pedro", - "Horto", - "Cidade Jardim", - "Castelo", - "Cidade Nova", - "Savassi", - "Serra", - "Silveira", - "Sion", - "Centro", - "Alto Barroca", - "Nova Vista", - "Coração De Jesus", - "Coração Eucarístico", - "Funcionários", - "Cruzeiro", - "João Pinheiro", - "Nova Granada", - "Nova Suíça", - "Itaipu", - ) - countries = ( - "Afeganistão", - "África do Sul", - "Akrotiri", - "Albânia", - "Alemanha", - "Andorra", - "Angola", - "Anguila", - "Antártica", - "Antígua e Barbuda", - "Antilhas Holandesas", - "Arábia Saudita", - "Argélia", - "Argentina", - "Armênia", - "Aruba", - "Ashmore and Cartier Islands", - "Austrália", - "Áustria", - "Azerbaijão", - "Bahamas", - "Bangladesh", - "Barbados", - "Barein", - "Bélgica", - "Belize", - "Benim", - "Bermudas", - "Bielorrússia", - "Birmânia", - "Bolívia", - "Bósnia e Herzegovina", - "Botsuana", - "Brasil", - "Brunei", - "Bulgária", - "Burquina Faso", - "Burundi", - "Butão", - "Cabo Verde", - "Camarões", - "Camboja", - "Canadá", - "Catar", - "Cazaquistão", - "Chade", - "Chile", - "China", - "Chipre", - "Clipperton Island", - "Colômbia", - "Comores", - "Congo-Brazzaville", - "Congo-Kinshasa", - "Coral Sea Islands", - "Coreia do Norte", - "Coreia do Sul", - "Costa do Marfim", - "Costa Rica", - "Croácia", - "Cuba", - "Dhekelia", - "Dinamarca", - "Domínica", - "Egito", - "Costa do Marfim", - "Costa Rica", - "Croácia", - "Cuba", - "Dhekelia", - "Dinamarca", - "Domínica", - "Egito", - "Emirados Árabes Unidos", - "Equador", - "Eritreia", - "Eslováquia", - "Eslovênia", - "Espanha", - "Estados Unidos", - "Estônia", - "Etiópia", - "Faroé", - "Fiji", - "Filipinas", - "Finlândia", - "França", - "Gabão", - "Gâmbia", - "Gana", - "Geórgia", - "Geórgia do Sul e Sandwich do Sul", - "Gibraltar", - "Granada", - "Grécia", - "Groenlândia", - "Guam", - "Guatemala", - "Guernsey", - "Guiana", - "Guiné", - "Guiné Equatorial", - "Guiné-Bissau", - "Haiti", - "Honduras", - "Hong Kong", - "Hungria", - "Iêmen", - "Ilha Bouvet", - "Ilha do Natal", - "Ilha Norfolk", - "Ilhas Caiman", - "Ilhas Cook", - "Ilhas dos Cocos", - "Ilhas Falkland", - "Ilhas Heard e McDonald", - "Ilhas Marshall", - "Ilhas Salomão", - "Ilhas Turcas e Caicos", - "Ilhas Virgens Americanas", - "Ilhas Virgens Britânicas", - "Índia", - "Indonésia", - "Iran", - "Iraque", - "Irlanda", - "Islândia", - "Israel", - "Itália", - "Jamaica", - "Jan Mayen", - "Japão", - "Jersey", - "Jibuti", - "Jordânia", - "Kuwait", - "Laos", - "Lesoto", - "Letônia", - "Líbano", - "Libéria", - "Líbia", - "Liechtenstein", - "Lituânia", - "Luxemburgo", - "Macau", - "Macedônia do Norte", - "Madagascar", - "Malásia", - "Malávi", - "Maldivas", - "Mali", - "Malta", - "Ilha de Man", - "Marianas do Norte", - "Marrocos", - "Maurícia", - "Mauritânia", - "Mayotte", - "México", - "Micronésia", - "Moçambique", - "Moldávia", - "Mônaco", - "Mongólia", - "Monserrate", - "Montenegro", - "Namíbia", - "Nauru", - "Navassa Island", - "Nepal", - "Nicarágua", - "Níger", - "Nigéria", - "Niue", - "Noruega", - "Nova Caledónia", - "Nova Zelândia", - "Omã", - "Países Baixos", - "Palau", - "Panamá", - "Papua-Nova Guiné", - "Paquistão", - "Paracel Islands", - "Paraguai", - "Peru", - "Pitcairn", - "Polinésia Francesa", - "Polônia", - "Porto Rico", - "Portugal", - "Quênia", - "Quirguizistão", - "Quiribáti", - "Reino Unido", - "República Centro-Africana", - "República Checa", - "República Dominicana", - "Roménia", - "Ruanda", - "Rússia", - "Salvador", - "Samoa", - "Samoa Americana", - "Santa Helena", - "Santa Lúcia", - "São Cristóvão e Neves", - "São Marinho", - "São Pedro e Miquelon", - "São Tomé e Príncipe", - "São Vicente e Granadinas", - "Sara Ocidental", - "Seicheles", - "Senegal", - "Serra Leoa", - "Sérvia", - "Singapura", - "Síria", - "Somália", - "Sri Lanka", - "Suazilândia", - "Sudão", - "Suécia", - "Suíça", - "Suriname", - "Svalbard e Jan Mayen", - "Tailândia", - "Taiwan", - "Tajiquistão", - "Tanzânia", - "Território Britânico do Oceano Índico", - "Territórios Austrais Franceses", - "Timor Leste", - "Togo", - "Tokelau", - "Tonga", - "Trindade e Tobago", - "Tunísia", - "Turquemenistão", - "Turquia", - "Tuvalu", - "Ucrânia", - "Uganda", - "União Europeia", - "Uruguai", - "Usbequistão", - "Vanuatu", - "Vaticano", - "Venezuela", - "Vietnam", - "Ilha Wake", - "Wallis e Futuna", - "Zâmbia", - "Zimbábue", - ) - - estados = ( - ("AC", "Acre"), - ("AL", "Alagoas"), - ("AP", "Amapá"), - ("AM", "Amazonas"), - ("BA", "Bahia"), - ("CE", "Ceará"), - ("DF", "Distrito Federal"), - ("ES", "Espírito Santo"), - ("GO", "Goiás"), - ("MA", "Maranhão"), - ("MT", "Mato Grosso"), - ("MS", "Mato Grosso do Sul"), - ("MG", "Minas Gerais"), - ("PA", "Pará"), - ("PB", "Paraíba"), - ("PR", "Paraná"), - ("PE", "Pernambuco"), - ("PI", "Piauí"), - ("RJ", "Rio de Janeiro"), - ("RN", "Rio Grande do Norte"), - ("RS", "Rio Grande do Sul"), - ("RO", "Rondônia"), - ("RR", "Roraima"), - ("SC", "Santa Catarina"), - ("SP", "São Paulo"), - ("SE", "Sergipe"), - ("TO", "Tocantins"), - ) - - def street_prefix(self) -> str: - """ - :example: 'rua' - """ - return self.random_element(self.street_prefixes) - - def estado(self) -> Tuple[str, str]: - """ - Randomly returns a Brazilian State ('sigla' , 'nome'). - :example: ('MG' . 'Minas Gerais') - """ - return self.random_element(self.estados) - - def estado_nome(self) -> str: - """ - Randomly returns a Brazilian State Name - :example: 'Minas Gerais' - """ - return self.estado()[1] - - def estado_sigla(self) -> str: - """ - Randomly returns the abbreviation of a Brazilian State - :example: 'MG' - """ - return self.estado()[0] - - def bairro(self) -> str: - """ - Randomly returns a bairro (neighborhood) name. - The names were taken from the city of Belo Horizonte - Minas Gerais - :example: 'Serra' - """ - return self.random_element(self.bairros) - - def postcode(self, formatted: bool = True) -> str: - """ - Randomly returns a postcode. - :param formatted: True to allow formatted postcodes, else False (default True) - :example formatted: '41224-212' '83992-291' '12324322' - :example raw: '43920231' '34239530' - """ - template = self.postcode_all_formats if formatted else self.postcode_raw_formats - return self.bothify(self.random_element(template)) - - # aliases - def neighborhood(self) -> str: - return self.bairro() - - def administrative_unit(self) -> str: - return self.estado_nome() - - state = administrative_unit - - def state_abbr(self) -> str: - return self.estado_sigla() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/pt_BR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/pt_BR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 6f69692eca56cfe4518434bba66e3f57a45312fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16487 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 S*h~$a{iA>RO+mi((f str: - """ - :example: 'Rua' - """ - return self.random_element(self.street_prefixes) - - def city_name(self) -> str: - """ - :example: 'Amora' - """ - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - """ - :example: 'Bragança' - """ - return self.random_element(self.distritos) - - distrito = administrative_unit - - def concelho(self) -> str: - """ - :example: 'Tondela' - """ - return self.random_element(self.concelhos) - - def freguesia(self) -> str: - """ - :example: 'Miranda do Douro' - """ - return self.random_element(self.freguesias) - - def place_name(self) -> str: - """ - :example: "do Pombal" - """ - return self.random_element(self.places) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/pt_PT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/pt_PT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index eada29b7f07efdc467571c1aa57f8daabb846cc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21483 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ro_RO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ro_RO/__init__.py deleted file mode 100644 index 99155de..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ro_RO/__init__.py +++ /dev/null @@ -1,438 +0,0 @@ -from typing import Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - street_prefixes = ( - "Strada", - "Aleea", - "Intrarea", - "Bulevardul", - "Soseaua", - "Drumul", - ) - street_name_formats = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{first_name}} {{last_name}}", - "{{street_prefix}} {{last_name}}", - ) - street_address_formats = ( - "{{street_name}}", - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}} {{secondary_address}}", - ) - address_formats = ("{{street_address}}\n{{city}}, {{postcode}}",) - building_number_formats = ("Nr. %#", "Nr. %##") - secondary_address_formats = ("Bl. %# Sc. %# Ap. %##",) - postcode_formats = ( - "1#####", - "2#####", - "3#####", - "4#####", - "5#####", - "6#####", - "7#####", - "8#####", - "9#####", - ) - city_formats = ("{{city_name}}",) - cities = ( - "Cluj-Napoca", - "Timisoara", - "Iasi", - "Constanta", - "Craiova", - "Brasov", - "Galati", - "Ploiesti", - "Oradea", - "Braila", - "Arad", - "Pitesti", - "Sibiu", - "Bacau", - "Targu Mures", - "Baia Mare", - "Buzau", - "Botosani", - "Satu Mare", - "Suceava", - "Ramnicu Valcea", - "Drobeta-Turnu Severin", - "Piatra-Neamt", - "Targoviste", - "Targu Jiu", - "Focsani", - "Tulcea", - "Resita", - "Slatina", - "Bistrita", - "Calarasi", - "Giurgiu", - "Deva", - "Hunedoara", - "Zalau", - "Barlad", - "Alba Iulia", - "Sfantu Gheorghe", - "Roman", - "Vaslui", - "Turda", - "Medias", - "Alexandria", - "Voluntari", - "Pipera (Voluntari)", - "Slobozia", - "Lugoj", - "Medgidia", - "Onesti", - "Miercurea-Ciuc", - "Petrosani", - "Tecuci", - "Mangalia", - "Odorheiu Secuiesc", - "Ramnicu Sarat", - "Sighetu Marmatiei", - "Campina", - "Navodari", - "Campulung", - "Caracal", - "Sacele", - "Fagaras", - "Dej", - "Rosiori de Vede", - "Mioveni", - "Curtea de Arges", - "Husi", - "Reghin", - "Sighisoara", - "Pantelimon", - "Pascani", - "Oltenita", - "Turnu Magurele", - "Caransebes", - "Falticeni", - "Radauti", - "Lupeni", - "Dorohoi", - "Vulcan", - "Campia Turzii", - "Zarnesti", - "Borsa", - "Popesti-Leordeni", - "Codlea", - "Carei", - "Moinesti", - "Petrila", - "Sebes", - "Tarnaveni", - "Floresti", - "Gherla", - "Fetesti-Gara", - "Buftea", - "Cugir", - "Moreni", - "Gheorgheni", - "Comanesti", - "Salonta", - "Cernavoda", - "Targu Secuiesc", - "Bailesti", - "Campulung Moldovenesc", - "Aiud", - "Dragasani", - "Valea Caselor (Dragasani)", - "Bals", - "Bocsa", - "Motru", - "Corabia", - "Bragadiru", - "Urziceni", - "Rasnov", - "Rasnov Romacril", - "Buhusi", - "Zimnicea", - "Marghita", - "Mizil", - "Cisnadie", - "Targu Neamt", - "Calafat", - "Vatra Dornei", - "Adjud", - "Gaesti", - "Tandarei", - "Gura Humorului", - "Chitila", - "Viseu de Sus", - "Otopeni", - "Ludus", - "Brad", - "Dragu-Brad", - "Valu lui Traian", - "Cumpana", - "Sannicolau Mare", - "Valenii de Munte", - "Jilava", - "Dabuleni", - "Filiasi", - "Blaj", - "Ovidiu", - "Simleu Silvaniei", - "Matca", - "Pecica", - "Rovinari", - "Videle", - "Baicoi", - "Pucioasa", - "Jimbolia", - "Baia Sprie", - "Targu Frumos", - "Vicovu de Sus", - "Orsova", - "Sinaia", - "Negresti-Oas", - "Beius", - "Santana", - "Pechea", - "Simeria", - "Boldesti-Scaeni", - "Poienile de sub Munte", - "Valea lui Mihai", - "Covasna", - "Targu Ocna", - "Toplita", - "Sovata", - "Otelu Rosu", - "Oravita", - "Moisei", - "Harsova", - "Murfatlar", - "Beclean", - "Poiana Mare", - "Huedin", - "Babadag", - "Marasesti", - "Topoloveni", - "Sangeorgiu de Mures", - "Jibou", - "Sabaoani", - "Hateg", - "Avrig", - "Darmanesti", - "Marginea", - "Moldova Veche", - "Ineu", - "Bolintin-Vale", - "Mihail Kogalniceanu", - "Macin", - "Tomesti", - "Nasaud", - "Uricani", - "Rosu", - "Calan", - "Borcea", - "Afumati", - "Domnesti", - "Draganesti-Olt", - "Cristuru Secuiesc", - "1 Decembrie", - "Lumina", - "Fetesti", - "Mogosoaia", - "Modelu", - "Dumbravita", - "Seini", - "Alesd", - "Sangeorz-Bai", - "Curtici", - "Darabani", - "Nadlac", - "Victoria", - "Amara", - "Branesti", - "Harlau", - "Lipova", - "Techirghiol", - "Agnita", - "Sacueni", - "Titu", - "Siret", - "Segarcea", - "Odobesti", - "Podu Iloaiei", - "Ocna Mures", - "Urlati", - "Strehaia", - "Tasnad", - "Cajvana", - "Tuzla", - "Sadova", - "Vlahita", - "Stei", - "Diosig", - "Cobadin", - "Gilau", - "Vladimirescu", - "Dancu", - "Bumbesti-Jiu", - "Busteni", - "Peretu", - "Cudalbi", - "Bosanci", - "Balotesti", - "Lunca Cetatuii", - "Dragalina", - "Fieni", - "Chisineu-Cris", - "Balan", - "Sandominic", - "Strejnicu", - "Baciu", - "Fundulea", - "Remetea", - "Fagetel (Remetea)", - "Ianca", - "Roseti", - "Breaza de Sus", - "Cornetu", - "Insuratei", - "Apahida", - "Berceni", - "Vicovu de Jos", - "Savinesti (Poiana Teiului)", - "Savinesti", - "Teius", - "Barbulesti", - "Plosca", - "Toflea", - "Magurele", - "Feldru", - "Anina", - "Negresti", - "Valea Mare (Negresti)", - "Peris", - "Fundeni", - "Giroc", - "Baile Borsa", - "Oituz", - "Rucar", - "Curcani", - "Babeni", - "Valea Mare (Babeni)", - "Rodna", - "Deta", - "Ruscova", - "Intorsura Buzaului", - "Pancota", - "Glina", - "Talmaciu", - "Copsa Mica", - "Motatei", - "Gugesti", - "Schela Cladovei", - "Sancraiu de Mures", - "Iernut", - "Targu Lapus", - "Maieru", - "Prejmer", - "Pogoanele", - "Dobroesti", - "Baraolt", - "Arbore", - "Homocea", - "Corund", - "Tufesti", - "Giarmata", - "Baia", - "Dumbraveni", - "Eforie Nord", - "Horodnic de Sus", - "Greci", - "Tudora", - "Straja", - "Rasinari", - "Sebis", - "Raducaneni", - "Siria", - "Paunesti", - "Saveni", - "Tunari", - ) - - states: Tuple[Tuple[str, str], ...] = ( - ("AB", "Alba"), - ("AG", "Argeș"), - ("AR", "Arad"), - ("B", "București"), - ("BC", "Bacău"), - ("BH", "Bihor"), - ("BN", "Bistrița-Năsăud"), - ("BR", "Brăila"), - ("BT", "Botoșani"), - ("BV", "Brașov"), - ("BZ", "Buzău"), - ("CJ", "Cluj"), - ("CL", "Călărași"), - ("CS", "Caraș Severin"), - ("CT", "Constanța"), - ("CV", "Covasna"), - ("DB", "Dâmbovița"), - ("DJ", "Dolj"), - ("GJ", "Gorj"), - ("GL", "Galați"), - ("GR", "Giurgiu"), - ("HD", "Hunedoara"), - ("HR", "Harghita"), - ("IF", "Ilfov"), - ("IL", "Ialomița"), - ("IS", "Iași"), - ("MH", "Mehedinți"), - ("MM", "Maramureș"), - ("MS", "Mureș"), - ("NT", "Neamț"), - ("OT", "Olt"), - ("PH", "Prahova"), - ("SB", "Sibiu"), - ("SJ", "Sălaj"), - ("SM", "Satu Mare"), - ("SV", "Suceava"), - ("TL", "Tulcea"), - ("TM", "Timiș"), - ("TR", "Teleorman"), - ("VL", "Vâlcea"), - ("VN", "Vrancea"), - ("VS", "Vaslui"), - ) - - def street_prefix(self) -> str: - """ - :example: 'Strada' - """ - return self.random_element(self.street_prefixes) - - def secondary_address(self) -> str: - """ - :example: 'Bl. 123 Sc. 2 Ap. 15' - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def city_with_postcode(self) -> str: - return self.postcode() + " " + self.random_element(self.cities) - - def administrative_unit(self) -> str: - """ - :example: u'Timiș' - """ - return self.random_element(self.states)[1] # type: ignore - - state = administrative_unit - - def state_abbr(self) -> str: - """ - :example: u'TM' - """ - return self.random_element(self.states)[0] # type: ignore diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ro_RO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ro_RO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5dd3edd8d26de5d437a7547f710bab98e275be26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6969 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ru_RU/__init__.py deleted file mode 100644 index 9b3ac39..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ru_RU/__init__.py +++ /dev/null @@ -1,1597 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_suffixes = ("ск", "вль", "град", "поль", "ин", "ов", "бург") - street_suffixes = ("ул.", "алл.", "наб.", "пр.", "пер.", "бул.", "ш.") - region_suffixes = ("респ.", "обл.", "край", "АО") - city_formats = ("{{city_prefix}} {{city_name}}",) - street_address_formats = ( - "{{street_name}}, д. {{building_number}}", - "{{street_name}}, д. {{building_number}} к. {{building_number}}", - "{{street_name}}, д. {{building_number}} стр. {{building_number}}", - ) - address_formats = ("{{city}}, {{street_address}}, {{postcode}}",) - postcode_formats = ("######",) - building_number_formats = ("%##", "%#", "%", "%/%") - - city_prefixes = ("г.", "п.", "к.", "с.", "д.", "клх", "ст.") - - street_suffixes_masc = ("пр.", "пер.", "бул.") - street_suffixes_fem = ("ул.", "алл.", "наб.") - street_suffixes_neu = ("ш.",) - - street_titles = ( - "Советская", - "Молодежная", - "Центральная", - "Школьная", - "Новая", - "Садовая", - "Лесная", - "Набережная", - "Октябрьская", - "Зеленая", - "Комсомольская", - "Заречная", - "Первомайская", - "Полевая", - "Луговая", - "Пионерская", - "Юбилейная", - "Северная", - "Пролетарская", - "Степная", - "Южная", - "Колхозная", - "Рабочая", - "Солнечная", - "Железнодорожная", - "Восточная", - "Заводская", - "Нагорная", - "Береговая", - "Кооперативная", - "Красноармейская", - "Совхозная", - "Речная", - "Спортивная", - "Озерная", - "Строительная", - "Парковая", - "Подгорная", - "Почтовая", - "Партизанская", - "Вокзальная", - "Дорожная", - "Дачная", - "Западная", - "Московская", - "Красная", - "Трудовая", - "Шоссейная", - "Коммунистическая", - "Сосновая", - "Клубная", - "Березовая", - "Больничная", - "Интернациональная", - "Цветочная", - "Трактовая", - "Горная", - "Весенняя", - "Коммунальная", - "Майская", - "Привокзальная", - "Таежная", - "Транспортная", - "Овражная", - "Светлая", - "Вишневая", - "Ключевая", - "Песчаная", - "Ленинградская", - "Профсоюзная", - "Верхняя", - "Ленинская", - "Кирпичная", - "Мостовая", - "Станционная", - "Уральская", - "Линейная", - "Фабричная", - "Магистральная", - "Сибирская", - "Крестьянская", - "Российская", - "Тихая", - "Широкая", - "Нижняя", - "Народная", - "Промышленная", - "Кольцевая", - "Дальняя", - "Базарная", - "Целинная", - "Родниковая", - "Революционная", - "Социалистическая", - "Звездная", - "Студенческая", - "Мирная", - "Кубанская", - "Гаражная", - "Фестивальная", - "Гражданская", - "Песочная", - "Сиреневая", - "Сельская", - "Кузнечная", - "Пушкинская", - "Крайняя", - "Гвардейская", - "Веселая", - "Загородная", - "Олимпийская", - "Приозерная", - "Рябиновая", - "Заозерная", - "Боровая", - "Урожайная", - "Торговая", - "Донская", - "Пограничная", - "Огородная", - "Пригородная", - "Стадионная", - "Виноградная", - "Киевская", - "Индустриальная", - "Красногвардейская", - "Волжская", - "Свободная", - "Кедровая", - "Подлесная", - "Полярная", - "Раздольная", - "Карьерная", - "Мельничная", - "Украинская", - "Шахтерская", - "Запрудная", - "Элеваторная", - "Театральная", - "Геологическая", - "Болотная", - "Придорожная", - "Кленовая", - "Казачья", - "Малая", - "Морская", - "Волгоградская", - "Средняя", - "Безымянная", - "Краснофлотская", - "Братская", - "Тенистая", - "Учительская", - "Кавказская", - "Короткая", - "Деповская", - "Амурская", - "Сенная", - "Поселковая", - "Прудовая", - "Депутатская", - "Авиационная", - "Аэродромная", - "Большая", - "Приморская", - "Алтайская", - "Тополиная", - "Ростовская", - "Тракторная", - "Мелиоративная", - "Ольховая", - "Славянская", - "Радужная", - "Краснодарская", - "Стахановская", - "Ярославская", - "Коллективная", - "Ангарская", - "Локомотивная", - "Ягодная", - "Смоленская", - "Тепличная", - "Водопроводная", - "Республиканская", - "Осенняя", - "Байкальская", - "Саратовская", - "Казанская", - "Воронежская", - "Брянская", - "Производственная", - "Техническая", - "Енисейская", - "Севастопольская", - "Окружная", - "Орловская", - "Хуторская", - "Тупиковая", - "Каштановая", - "Омская", - "Привольная", - "Курортная", - "Ивановская", - "Выгонная", - "Крымская", - "Путейская", - "Проезжая", - "Краснознаменная", - "Одесская", - "Логовая", - "Высокая", - "Ясная", - "Портовая", - "Снежная", - "Санаторная", - "Союзная", - "Ульяновская", - "Сахалинская", - "Горняцкая", - "Прибрежная", - "Рыбацкая", - "Полтавская", - "Тамбовская", - "Красноярская", - "Новосельская", - "Проточная", - "Черноморская", - "Минская", - "Главная", - "Вольная", - "Хвойная", - "Космическая", - "Моховая", - "Курская", - "Курганная", - "Угловая", - "Камская", - "Инженерная", - "Лесозаводская", - "Астраханская", - "Белорусская", - "Заовражная", - "Азовская", - "Ручейная", - "Волочаевская", - "Ставропольская", - "Слободская", - "Тульская", - "Харьковская", - "Петровская", - "Владимирская", - "Высоковольтная", - "Лазурная", - "Покровская", - "Новгородская", - "Ленская", - "Сплавная", - "Ударная", - "Калужская", - "Прудная", - "Краснопартизанская", - "Ореховая", - "Таманская", - "Иркутская", - "Отрадная", - "Большевистская", - "Троицкая", - "Лесхозная", - "Васильковая", - "Механическая", - "Путевая", - "Кузнецкая", - "Физкультурная", - "Черемуховая", - "Флотская", - "Угольная", - "Просторная", - "Поперечная", - "Городская", - "Абрикосовая", - "Бульварная", - "Прохладная", - "Томская", - "Энергетическая", - "Литейная", - "Медицинская", - "Заливная", - "Бригадная", - "Детская", - "Запорожская", - "Дальневосточная", - "Балтийская", - "Февральская", - "Лунная", - "Высотная", - "Рязанская", - "Малиновая", - ) - - street_titles_noflex = ( - "Ленина", - "Мира", - "Гагарина", - "Кирова", - "Пушкина", - "Калинина", - "Чапаева", - "Строителей", - "Победы", - "Горького", - "Чкалова", - "Мичурина", - "Дружбы", - "Лермонтова", - "Свободы", - "Маяковского", - "Фрунзе", - "Дзержинского", - "Свердлова", - "Некрасова", - "Гоголя", - "Чехова", - "Труда", - "Комарова", - "Матросова", - "Островского", - "Куйбышева", - "Крупской", - "Карла Маркса", - "8 Марта", - "Суворова", - "Ломоносова", - "Космонавтов", - "Энергетиков", - "Шевченко", - "Механизаторов", - "40 лет Победы", - "Энгельса", - "Чернышевского", - "Урицкого", - "Ворошилова", - "Тургенева", - "Толстого", - "Буденного", - "Орджоникидзе", - "Герцена", - "Щорса", - "Луначарского", - "Энтузиастов", - "Титова", - "Лазо", - "50 лет Октября", - "Пугачева", - "Володарского", - "Кутузова", - "Чайковского", - "Мелиораторов", - "Новоселов", - "Белинского", - "Тельмана", - "Тимирязева", - "Котовского", - "60 лет Октября", - "Есенина", - "К.Маркса", - "40 лет Октября", - "Крылова", - "Декабристов", - "70 лет Октября", - "Фурманова", - "Гайдара", - "Терешковой", - "Ватутина", - "Коммунаров", - "Гастелло", - "Жданова", - "Радищева", - "Нефтяников", - "Осипенко", - "Нахимова", - "Жукова", - "Павлова", - "Степана Разина", - "Попова", - "Жуковского", - "Королева", - "Грибоедова", - "Менделеева", - "Достоевского", - "Репина", - "Циолковского", - "Воровского", - "Максима Горького", - "Революции", - "Кошевого", - "Пархоменко", - "Серова", - "Добролюбова", - "50 лет Победы", - "Красина", - "Коминтерна", - "30 лет Победы", - "Разина", - "Черняховского", - "Ветеранов", - "Пирогова", - "Льва Толстого", - "Геологов", - "Димитрова", - "М.Горького", - "Розы Люксембург", - "Маркса", - "Ушакова", - "Юности", - "Короленко", - "Шолохова", - "50 лет ВЛКСМ", - "Черемушки", - "Кольцова", - "Плеханова", - "Макаренко", - "Глинки", - "Специалистов", - "Халтурина", - "Морозова", - "Коммуны", - "Красных Партизан", - "Зои Космодемьянской", - "Карбышева", - "Баумана", - "Марта 8", - "Правды", - "Маркса Карла", - "Фадеева", - "60 лет СССР", - "Челюскинцев", - "Олега Кошевого", - "Новостройка", - "Шмидта", - "Кузнецова", - "Войкова", - "Панфилова", - "Карла Либкнехта", - "Парижской Коммуны", - "Автомобилистов", - "Космодемьянской", - "Седова", - "Блюхера", - "Демьяна Бедного", - "Спартака", - "Николаева", - "Бабушкина", - "Октября", - "Щетинкина", - "Гончарова", - "Щербакова", - "Азина", - "Сурикова", - "9 Января", - "Подстанция", - "Волкова", - "Никитина", - "Рылеева", - "Химиков", - "Курчатова", - "Микрорайон", - "Докучаева", - "Просвещения", - "Смирнова", - "Макарова", - "Иванова", - "Л.Толстого", - "Гафури", - "Высоцкого", - "Бажова", - "Кочубея", - "Леонова", - "Надежды", - "Металлистов", - "Вавилова", - "Ульянова", - "Павлика Морозова", - "Семашко", - "Шаумяна", - "Чайкиной", - "Ермака", - "Дорожников", - "Советской Армии", - "Монтажников", - "Шишкина", - "Металлургов", - "Беляева", - "Дружба", - "Серафимовича", - "Ильича", - "Мусы Джалиля", - "Невского", - "Клары Цеткин", - "Леваневского", - "Водников", - "Вахитова", - "Станиславского", - "Советов", - "Восьмого Марта", - "Пожарского", - "Папанина", - "Победа", - "8-е Марта", - "Журавлева", - "Культуры", - "Мая 1", - "Минина", - "Машиностроителей", - "ДОС", - "Тюленина", - "Громова", - "О.Кошевого", - "Р.Люксембург", - "Толбухина", - "Дарвина", - "З.Космодемьянской", - "1 Мая", - "9 мая", - "Тукая", - ) - - street_titles_irregular_masc = { - "Полевая": "Полевой", - "Луговая": "Луговой", - "Степная": "Степной", - "Заводская": "Заводской", - "Береговая": "Береговой", - "Речная": "Речной", - "Трудовая": "Трудовой", - "Ключевая": "Ключевой", - "Мостовая": "Мостовой", - "Кольцевая": "Кольцевой", - "Боровая": "Боровой", - "Донская": "Донской", - "Морская": "Морской", - "Сенная": "Сенной", - "Прудовая": "Прудовой", - "Большая": "Большой", - "Окружная": "Окружной", - "Хуторская": "Хуторской", - "Логовая": "Логовой", - "Моховая": "Моховой", - "Угловая": "Угловой", - "Слободская": "Слободской", - "Путевая": "Путевой", - "Городская": "Городской", - "Рабочая": "Рабочий", - "Верхняя": "Верхний", - "Тихая": "Тихий", - "Широкая": "Широкий", - "Нижняя": "Нижний", - "Дальняя": "Дальний", - "Крайняя": "Крайний", - "Казачья": "Казачий", - "Весенняя": "Весенний", - "Средняя": "Средний", - "Короткая": "Короткий", - "Осенняя": "Осенний", - "Проезжая": "Проезжий", - "Высокая": "Высокий", - } - - street_titles_irregular_neu = { - "Весенняя": "Весеннее", - "Верхняя": "Верхнее", - "Нижняя": "Нижнее", - "Средняя": "Среднее", - "Дальняя": "Дальнее", - "Крайняя": "Крайнее", - "Казачья": "Казачье", - "Рабочая": "Рабочее", - "Осеняя": "Осеннее", - "Проезжая": "Проезжее", - } - - city_names = ( - "Абакан", - "Абинск", - "Агата", - "Агинское (Забайк.)", - "Адлер", - "Адыгейск", - "Азов (Рост.)", - "Алагир", - "Алапаевск", - "Алдан", - "Александров", - "Александров Гай", - "Александровск", - "Александровск-Сахалинский", - "Алексин", - "Амдерма", - "Амурск", - "Анадырь", - "Анапа", - "Ангарск", - "Андреаполь", - "Анива", - "Апатиты", - "Апрелевка", - "Апшеронск", - "Аргаяш", - "Ардон", - "Арзамас", - "Армавир", - "Арсеньев", - "Артем", - "Архангельск", - "Архыз", - "Аршан (Бурят.)", - "Асбест", - "Асино", - "Астрахань", - "Ахтубинск", - "Ачинск", - "Ачхой Мартан", - "Аша", - "Бавлы", - "Байкальск", - "Баксан", - "Балашиха", - "Балашов", - "Балтийск", - "Баргузин", - "Барнаул", - "Батайск", - "Белгород", - "Белогорск (Амур.)", - "Белокуриха", - "Беломорск", - "Белорецк", - "Белореченск", - "Белоярский", - "Белый Яр (Томск.)", - "Березники", - "Беслан", - "Бийск", - "Билибино", - "Биробиджан", - "Бирск", - "Благовещенск (Амур.)", - "Богучар", - "Бодайбо", - "Бологое", - "Бомнак", - "Борзя", - "Боровск", - "Братск", - "Бреды", - "Бронницы", - "Брянск", - "Бугульма", - "Бугуруслан", - "Буденновск", - "Бузулук", - "Буйнакск", - "Быково (метеост.)", - "Валаам", - "Валдай", - "Ведено", - "Великие Луки", - "Великий Устюг", - "Вендинга", - "Верещагино (Перм.)", - "Верхнее Пенжино", - "Верхний Баскунчак", - "Верхний Тагил", - "Верхний Уфалей", - "Верхотурье", - "Верхоянск", - "Видное", - "Вилюйск", - "Витим", - "Владивосток", - "Владикавказ", - "Владимир", - "Внуково (метеост.)", - "Волгоград", - "Волгодонск", - "Вологда", - "Волоколамск", - "Волхов", - "Воркута", - "Воронеж", - "Воскресенск", - "Воткинск", - "Всеволожск", - "Вуктыл", - "Выборг", - "Вытегра", - "Вязьма", - "Гаврилов-Ям", - "Гагарин", - "Галич", - "Гатчина", - "Гдов", - "Геленджик", - "Глазов", - "Голицыно", - "Горно-Алтайск", - "Городовиковск", - "Горячий Ключ", - "Горячинск", - "Гремячинск (Бурят.)", - "Гремячинск (Перм.)", - "Грозный", - "Губаха", - "Губкин", - "Губкинский", - "Гудермес", - "Гусь-Хрустальный", - "Дагомыс", - "Далматово", - "Данков", - "Двинской", - "Дербент", - "Джейрах", - "Джубга", - "Дзержинск", - "Дивногорск", - "Диксон", - "Дмитров", - "Дно", - "Добрянка", - "Долинск", - "Домбай", - "Домодедово", - "Дубна", - "Дудинка", - "Егорьевск", - "Ейск", - "Екатеринбург", - "Елабуга", - "Елатьма", - "Елец", - "Ельня", - "Енисейск", - "Ербогачен", - "Ершов", - "Ессентуки", - "Железногорск(Курск.)", - "Жиганск", - "Жигулевск", - "Жуковский", - "Забайкальск", - "Заводоуковск", - "Завьялиха", - "Зарайск", - "Звенигород", - "Зеленогорск (Ленин.)", - "Зеленоград", - "Златоуст", - "Змеиногорск", - "Иваново", - "Ивдель", - "Игарка", - "Игнашино", - "Ижевск", - "Избербаш", - "Инта", - "Ирбит", - "Иркутск", - "Истра", - "Ишим", - "Йошкар-Ола", - "Кабанск", - "Кажим", - "Казань", - "Калач", - "Калач-на-Дону", - "Калачинск", - "Калевала", - "Калининград", - "Калуга", - "Калязин", - "Каменномостский", - "Каменск-Уральский", - "Каменск-Шахтинский", - "Камень-на-Оби", - "Камышин", - "Камышлов", - "Кандалакша", - "Каневская", - "Канск", - "Карабудахкент", - "Карабулак", - "Карачаевск", - "Каргасок", - "Каргополь", - "Карпинск", - "Карталы", - "Касимов", - "Каспийск", - "Катав-Ивановск", - "Катайск", - "Качканар", - "Кашира", - "Кашхатау", - "Кедровый", - "Кежма", - "Кемерово", - "Кетченеры", - "Кижи", - "Кизел", - "Кизилюрт", - "Кизляр", - "Кимры", - "Кингисепп", - "Кинешма", - "Киренск", - "Киржач", - "Кириши", - "Киров (Вятка)", - "Кирово-Чепецк", - "Кировск (Мурм.)", - "Кировск (Ленин.)", - "Кисловодск", - "Клин", - "Ковров", - "Когалым", - "Коломна", - "Колпашево", - "Комсомольск-на-Амуре", - "Кондопога", - "Королев", - "Корсаков", - "Костомукша", - "Кострома", - "Котельнич", - "Котлас", - "Кош-Агач", - "Красная Поляна", - "Красновишерск", - "Красногорск (Моск.)", - "Краснодар", - "Краснокамск", - "Красноселькуп", - "Краснотурьинск", - "Красноуральск", - "Красноуфимск", - "Красноярск", - "Кропоткин (Краснод.)", - "Крымск", - "Кудымкар", - "Кузнецк", - "Кулу", - "Кулунда", - "Кунгур", - "Курган", - "Курганинск", - "Курильск", - "Курск", - "Куртамыш", - "Курумкан", - "Курчатов", - "Кущевская", - "Кызыл", - "Кырен", - "Кыштым", - "Кяхта", - "Лабинск", - "Лабытнанги", - "Лагань", - "Лазаревское", - "Лесной (Сверд.)", - "Липецк", - "Листвянка (Иркут.)", - "Лодейное Поле", - "Лотошино", - "Луга", - "Луховицы", - "Лысьва", - "Льгов", - "Любань", - "Люберцы", - "Лянтор", - "Магадан", - "Магас", - "Магнитогорск", - "Майкоп", - "Макаров", - "Макушино", - "Малая Вишера", - "Малгобек", - "Малоярославец", - "Махачкала", - "Медногорск", - "Междуреченский", - "Мезень", - "Мелеуз", - "Меренга", - "Миасс", - "Миллерово", - "Минеральные Воды", - "Минусинск", - "Мирный", - "Мичуринск", - "Можайск", - "Можга", - "Моздок", - "Мокшан", - "Мончегорск", - "Морозовск", - "Моршанск", - "Москва", - "Москва, МГУ", - "Мостовской", - "Муравленко", - "Мураши", - "Мурманск", - "Муром", - "Мценск", - "Мыс Шмидта", - "Мытищи", - "Набережные Челны", - "Надым", - "Назрань", - "Нальчик", - "Наро-Фоминск", - "Нарткала", - "Нарым", - "Нарьян-Мар", - "Находка", - "Невельск", - "Невинномысск", - "Невьянск", - "Неплюевка", - "Нерчинск", - "Нефедова", - "Нефтегорск (Самар.)", - "Нефтекамск", - "Нефтеюганск", - "Нижневартовск", - "Нижнекамск", - "Нижнеудинск", - "Нижний Новгород", - "Нижний Тагил", - "Новая Игирма", - "Новгород Великий", - "Новокузнецк", - "Новомичуринск", - "Новомосковск", - "Новороссийка", - "Новороссийск", - "Новосибирск", - "Новочеркасск", - "Новый Оскол", - "Новый Уренгой", - "Ногинск (Моск.)", - "Ноглики", - "Норильск", - "Ноябрьск", - "Нурлат", - "Нягань", - "Нязепетровск", - "Обнинск", - "Обоянь", - "Объячево", - "Одинцово", - "Озеры", - "Оймякон", - "Октябрьский (Башк.)", - "Октябрьское (Хант.)", - "Октябрьское (Челяб.)", - "Оленегорск (Якут.)", - "Оленек", - "Омск", - "Онега", - "Орел", - "Оренбург", - "Орехово-Зуево", - "Орск", - "Оса", - "Осташков", - "Оха", - "Охотск", - "Павловская", - "Павловский Посад", - "Палана", - "Партизанск", - "Певек", - "Пенза", - "Переславль-Залесский", - "Пермь", - "Петрозаводск", - "Петропавловск-Камчатский", - "Петухово", - "Петушки", - "Печенга", - "Печора", - "Пинега", - "Плес", - "Плесецк", - "Подольск", - "Поронайск", - "Поярково", - "Приморско-Ахтарск", - "Приозерск", - "Прохладный", - "Псебай", - "Псков", - "Пушкин", - "Пушкино (Моск.)", - "Пушкинские Горы", - "Пышма", - "Пятигорск", - "Радужный", - "Раменское", - "Ребриха", - "Ревда (Сверд.)", - "Ржев", - "Рославль", - "Россошь", - "Ростов", - "Ростов-на-Дону", - "Рубцовск", - "Руза", - "Рыбинск", - "Рыльск", - "Ряжск", - "Рязань", - "Салават", - "Салехард", - "Сальск", - "Самара", - "Санкт-Петербург", - "Саранск", - "Сарапул", - "Саратов", - "Саров (Морд.)", - "Сасово", - "Саянск", - "Светлогорск (Калин.)", - "Северо-Курильск", - "Северобайкальск", - "Северодвинск", - "Североморск", - "Североуральск", - "Сеймчан", - "Семлячики", - "Серафимович", - "Сергиев Посад", - "Серебряные Пруды", - "Середниково", - "Серов", - "Серпухов", - "Сибай", - "Сковородино", - "Славгород", - "Славянск-на-Кубани", - "Сладково", - "Слюдянка", - "Смирных", - "Смоленск", - "Снежинск", - "Снежногорск (Мурм.)", - "Соболево", - "Советский", - "Соликамск", - "Солнечногорск", - "Соловки", - "Соль-Илецк", - "Сорочинск", - "Сортавала", - "Сосновый Бор", - "Сосногорск", - "Сосьва (Хант.)", - "Сочи", - "Ставрополь", - "Старая Русса", - "Старый Оскол", - "Стерлитамак", - "Стрежевой", - "Ступино", - "Суздаль", - "Сузун", - "Сунтар", - "Сургут (Хант.)", - "Сусуман", - "Сухиничи", - "Сызрань", - "Сыктывкар", - "Тавда", - "Таганрог", - "Тайшет", - "Талдом", - "Тамбей", - "Тамбов", - "Тарко-Сале", - "Таштагол", - "Тверь", - "Теберда", - "Темрюк", - "Териберка", - "Терней", - "Терскол", - "Тикси", - "Тимашевск", - "Тихвин", - "Тихорецк", - "Тобольск", - "Токма", - "Токсово", - "Тольятти", - "Томари", - "Томпа", - "Томск", - "Торжок", - "Тосно", - "Тотьма", - "Троицк (Челяб.)", - "Троицк (Моск.)", - "Троицко-Печорск", - "Туапсе", - "Тула", - "Тулпан", - "Тулун", - "Тура", - "Туруханск", - "Тутаев", - "Тутончаны", - "Тымовское", - "Тында", - "Тырныауз", - "Тюмень", - "Уварово", - "Углегорск", - "Углич", - "Улан-Удэ", - "Ульяновск", - "Урай", - "Уренгой", - "Урус-Мартан", - "Урюпинск", - "Усинск", - "Усмань", - "Усолье Сибирское", - "Уссурийск", - "Усть-Баргузин", - "Усть-Джегута", - "Усть-Илимск", - "Усть-Ишим", - "Усть-Калманка", - "Усть-Камчатск", - "Усть-Катав", - "Усть-Кулом", - "Усть-Кут", - "Усть-Ордынский", - "Устюжна", - "Уфа", - "Ухта", - "Учалы", - "Уэлен", - "Фатеж", - "Хабаровск", - "Ханты-Мансийск", - "Хасавюрт", - "Хасан", - "Хатанга", - "Химки", - "Холмогоры", - "Холмск", - "Хоста", - "Хужир", - "Цимлянск", - "Чайковский", - "Чебаркуль", - "Чебоксары", - "Чегем", - "Челюскин", - "Челябинск", - "Черемхово", - "Череповец", - "Черкесск", - "Чермоз", - "Черняховск", - "Черский", - "Черусти", - "Чехов", - "Чикола", - "Чита", - "Чокурдах", - "Чулым", - "Чусовой", - "Шадринск", - "Шали", - "Шамары", - "Шарья", - "Шатки", - "Шатой", - "Шатура", - "Шаховская", - "Шахты", - "Шелагонцы", - "Шелехов", - "Шенкурск", - "Шерегеш", - "Шереметьево", - "Шилка", - "Шумиха", - "Шуя", - "Щелково", - "Щельяюр", - "Элиста", - "Эльбрус", - "Эльтон", - "Энгельс", - "Югорск", - "Южно-Курильск", - "Южно-Сахалинск", - "Южноуральск", - "Юровск", - "Юрьев-Польский", - "Юрьевец (Иван.)", - "Юрюзань", - "Якутск", - "Якша", - "Ялуторовск", - "Ямбург", - "Яр-Сале", - "Ярославль", - "Ясный (Оренб.)", - "Яхрома", - "Яшалта", - "Яшкуль", - ) - - # https://en.wikipedia.org/wiki/Federal_subjects_of_Russia - region_republics = ( - "Адыгея", - "Алтай", - "Башкортостан", - "Бурятия", - "Дагестан", - "Ингушетия", - "Кабардино-Балкария", - "Калмыкия", - "Карачаево-Черкесия", - "Карелия", - "Коми", - "Крым", - "Марий-Эл", - "Мордовия", - "Саха (Якутия)", - "Северная Осетия - Алания", - "Татарстан", - "Тыва", - "Удмуртия", - "Хакасия", - "Чечня", - "Чувашия", - ) - - region_krai = ( - "Алтайский", - "Забайкальский", - "Камчатский", - "Краснодарский", - "Красноярский", - "Пермский", - "Приморский", - "Ставропольский", - "Хабаровский", - ) - - region_oblast = ( - "Амурская", - "Архангельская", - "Астраханская", - "Белгородская", - "Брянская", - "Владимирская", - "Волгоградская", - "Вологодская", - "Воронежская", - "Ивановская", - "Иркутская", - "Калининградская", - "Калужская", - "Кемеровская", - "Кировская", - "Костромская", - "Курганская", - "Курская", - "Ленинградская", - "Липецкая", - "Магаданская", - "Московская", - "Мурманская", - "Нижегородская", - "Новгородская", - "Новосибирская", - "Омская", - "Оренбургская", - "Орловская", - "Пензенская", - "Псковская", - "Ростовская", - "Рязанская", - "Самарская", - "Саратовская", - "Сахалинская", - "Свердловская", - "Смоленская", - "Тамбовская", - "Тверская", - "Томская", - "Тульская", - "Тюменская", - "Ульяновская", - "Челябинская", - "Ярославская", - ) - - region_ao = ( - "Еврейская", - "Ханты-Мансийский", - "Чукотский", - "Ямало-Ненецкий", - "Ненецкий", - ) - - countries = ( - "Австралия", - "Австрия", - "Азербайджан", - "Албания", - "Алжир", - "Ангола", - "Андорра", - "Антигуа и Барбуда", - "Аргентина", - "Армения", - "Афганистан", - "Багамские Острова", - "Бангладеш", - "Барбадос", - "Бахрейн", - "Белоруссия", - "Белиз", - "Бельгия", - "Бенин", - "Болгария", - "Боливия", - "Босния и Герцеговина", - "Ботсвана", - "Бразилия", - "Бруней", - "Буркина-Фасо", - "Бурунди", - "Бутан", - "Вануату", - "Великобритания", - "Венгрия", - "Венесуэла", - "Восточный Тимор", - "Вьетнам", - "Габон", - "Гаити", - "Гайана", - "Гамбия", - "Гана", - "Гватемала", - "Гвинея", - "Гвинея-Бисау", - "Германия", - "Гондурас", - "Гренада", - "Греция", - "Грузия", - "Дания", - "Джибути", - "Доминика", - "Доминиканская Республика", - "Египет", - "Замбия", - "Зимбабве", - "Израиль", - "Индия", - "Индонезия", - "Иордания", - "Ирак", - "Иран", - "Ирландия", - "Исландия", - "Испания", - "Италия", - "Йемен", - "Кабо-Верде", - "Казахстан", - "Камбоджа", - "Камерун", - "Канада", - "Катар", - "Кения", - "Кипр", - "Киргизия", - "Кирибати", - "Китай", - "Колумбия", - "Коморы", - "Республика Конго", - "Демократическая Республика Конго", - "КНДР", - "Республика Корея", - "Коста-Рика", - "Кот-д’Ивуар", - "Куба", - "Кувейт", - "Лаос", - "Латвия", - "Лесото", - "Либерия", - "Ливан", - "Ливия", - "Литва", - "Лихтенштейн", - "Люксембург", - "Маврикий", - "Мавритания", - "Мадагаскар", - "Малави", - "Малайзия", - "Мали", - "Мальдивы", - "Мальта", - "Марокко", - "Маршалловы Острова", - "Мексика", - "Мозамбик", - "Молдавия", - "Монако", - "Монголия", - "Мьянма", - "Намибия", - "Науру", - "Непал", - "Нигер", - "Нигерия", - "Нидерланды", - "Никарагуа", - "Новая Зеландия", - "Норвегия", - "ОАЭ", - "Оман", - "Пакистан", - "Палау", - "Панама", - "Папуа", - "Парагвай", - "Перу", - "Польша", - "Португалия", - "Россия", - "Руанда", - "Румыния", - "Сальвадор", - "Самоа", - "Сан-Марино", - "Сан-Томе и Принсипи", - "Саудовская Аравия", - "Северная Македония", - "Сейшельские Острова", - "Сенегал", - "Сент-Винсент и Гренадины", - "Сент-Китс и Невис", - "Сент-Люсия", - "Сербия", - "Сингапур", - "Сирия", - "Словакия", - "Словения", - "США", - "Соломоновы Острова", - "Сомали", - "Судан", - "Суринам", - "Сьерра-Леоне", - "Таджикистан", - "Таиланд", - "Танзания", - "Того", - "Тонга", - "Тринидад и Тобаго", - "Тувалу", - "Тунис", - "Туркмения", - "Турция", - "Уганда", - "Узбекистан", - "Украина", - "Уругвай", - "Федеративные Штаты Микронезии", - "Фиджи", - "Филиппины", - "Финляндия", - "Франция", - "Хорватия", - "Центральноафриканская Республика", - "Чад", - "Черногория", - "Чехия", - "Чили", - "Швейцария", - "Швеция", - "Шри-Ланка", - "Эквадор", - "Экваториальная Гвинея", - "Эритрея", - "Эсватини", - "Эстония", - "Эфиопия", - "ЮАР", - "Южный Судан", - "Ямайка", - "Япония", - ) - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def city_name(self) -> str: - return self.random_element(self.city_names) - - def country(self) -> str: - return self.random_element(self.countries) - - def administrative_unit(self) -> str: - regions_suffix: str = self.random_element(self.region_suffixes) - if regions_suffix == "респ.": - return f"{regions_suffix} {self.random_element(self.region_republics)}" - elif regions_suffix == "край": - return f"{self.random_element(self.region_krai)} {regions_suffix}" - elif regions_suffix == "обл.": - return f"{self.random_element(self.region_oblast)} {regions_suffix}" - elif regions_suffix == "АО": - return f"{self.random_element(self.region_ao)} {regions_suffix}" - else: - raise ValueError(f'Unknown region "{regions_suffix}"') - - region = administrative_unit - - def street_suffix(self) -> str: - return self.random_element(self.street_suffixes) - - def street_title(self) -> str: - return self.random_element(self.street_titles + self.street_titles_noflex) - - def street_name(self) -> str: - suffix = self.street_suffix() - street = self.street_title() - stem = street[:-2] - result = street - if street not in self.street_titles_noflex and suffix not in self.street_suffixes_fem: - if suffix in self.street_suffixes_masc: - if street in self.street_titles_irregular_masc.keys(): - result = self.street_titles_irregular_masc[street] - else: - if stem.endswith("ск") or stem.endswith("цк"): - result = stem + "ий" - else: - result = stem + "ый" - elif suffix in self.street_suffixes_neu: - if street in self.street_titles_irregular_neu.keys(): - result = self.street_titles_irregular_neu[street] - else: - result = stem + "ое" - return f"{suffix} {result}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 685aa8d9d757684da610fe6bf17a66913118f9e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38881 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/sk_SK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/sk_SK/__init__.py deleted file mode 100644 index e5f72d7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/sk_SK/__init__.py +++ /dev/null @@ -1,5266 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - - street_name_formats = ("{{street_name}}",) - street_address_formats = ("{{street_name}} {{building_number}}",) - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - building_number_formats = ("%", "%#", "%##") - - street_suffixes_long = ("ulica", "trieda", "nábrežie", "námestie") - street_suffixes_short = ("ul.", "tr.", "nábr.", "nám.") - - postcode_formats = ( - "8## ##", - "9## ##", - "0## ##", - ) - - cities = ( - "Ábelová", - "Abovce", - "Abrahám", - "Abrahámovce", - "Abrahámovce", - "Abramová", - "Abranovce", - "Adidovce", - "Alekšince", - "Andovce", - "Andrejová", - "Ardanovce", - "Ardovo", - "Arnutovce", - "Báb", - "Babie", - "Babín", - "Babiná", - "Babindol", - "Babinec", - "Bacúch", - "Bacúrov", - "Báč", - "Bačka", - "Bačkov", - "Bačkovík", - "Badín", - "Baďan", - "Báhoň", - "Bajany", - "Bajč", - "Bajerov", - "Bajerovce", - "Bajka", - "Bajtava", - "Baka", - "Baláže", - "Baldovce", - "Balog nad Ipľom", - "Baloň", - "Banka", - "Bánov", - "Bánovce nad Bebravou", - "Bánovce nad Ondavou", - "Banská Belá", - "Banská Štiavnica", - "Banská Bystrica", - "Banské", - "Banský Studenec", - "Baňa", - "Bara", - "Barca", - "Bartošovce", - "Bardoňovo", - "Bartošova Lehôtka", - "Bardejov", - "Baška", - "Baškovce", - "Baškovce", - "Bašovce", - "Batizovce", - "Bátorová", - "Bátka", - "Bátorove Kosihy", - "Bátovce", - "Beharovce", - "Beckov", - "Becherov", - "Belá", - "Belá", - "Belá - Dulice", - "Belá nad Cirochou", - "Beladice", - "Belejovce", - "Belín", - "Belina", - "Belince", - "Bellova Ves", - "Beloveža", - "Beluj", - "Beluša", - "Belža", - "Beniakovce", - "Benice", - "Benkovce", - "Beňadiková", - "Beňadikovce", - "Beňadovo", - "Beňatina", - "Beňuš", - "Bernolákovo", - "Bertotovce", - "Beša", - "Beša", - "Bešeňov", - "Bešeňová", - "Betlanovce", - "Betliar", - "Bežovce", - "Bidovce", - "Biel", - "Bielovce", - "Biely Kostol", - "Bijacovce", - "Bílkove Humence", - "Bíňa", - "Bíňovce", - "Biskupice", - "Biskupová", - "Bitarová", - "Blahová", - "Blatná na Ostrove", - "Blatná Polianka", - "Blatné", - "Blatné Remety", - "Blatné Revištia", - "Blatnica", - "Blažice", - "Blažovce", - "Blesovce", - "Blhovce", - "Bobot", - "Bobrov", - "Bobrovček", - "Bobrovec", - "Bobrovník", - "Bočiar", - "Bodíky", - "Bodiná", - "Bodorová", - "Bodovce", - "Bodružal", - "Bodza", - "Bodzianske Lúky", - "Bogliarka", - "Bohdanovce", - "Bohdanovce nad Trnavou", - "Boheľov", - "Bohunice", - "Bohunice", - "Bohúňovo", - "Bojná", - "Bojnice", - "Bojničky", - "Boldog", - "Boleráz", - "Bolešov", - "Boliarov", - "Boľ", - "Boľkovce", - "Borcová", - "Borčany", - "Borčice", - "Borinka", - "Borová", - "Borovce", - "Borský Mikuláš", - "Borský Svätý Jur", - "Borša", - "Bory", - "Bošáca", - "Bošany", - "Bottovo", - "Boťany", - "Bôrka", - "Bracovce", - "Branč", - "Branovo", - "Bratislava", - "Okres Bratislava II", - "Okres Bratislava III", - "Okres Bratislava IV", - "Okres Bratislava V", - "Braväcovo", - "Brdárka", - "Brehov", - "Brehy", - "Brekov", - "Brestov", - "Brestov", - "Brestov nad Laborcom", - "Brestovany", - "Brestovec", - "Brestovec", - "Bretejovce", - "Bretka", - "Breza", - "Brezany", - "Brezina", - "Breziny", - "Breznica", - "Breznička", - "Breznička", - "Brezno", - "Brezolupy", - "Brezov", - "Brezová pod Bradlom", - "Brezovec", - "Brezovica", - "Brezovica", - "Brezovička", - "Brezovka", - "Brežany", - "Brhlovce", - "Brieštie", - "Brodské", - "Brodzany", - "Brunovce", - "Brusnica", - "Brusník", - "Brusno", - "Brutovce", - "Bruty", - "Brvnište", - "Brzotín", - "Buclovany", - "Búč", - "Bučany", - "Budča", - "Budikovany", - "Budimír", - "Budiná", - "Budince", - "Budiš", - "Budkovce", - "Budmerice", - "Buglovce", - "Buková", - "Bukovce", - "Bukovec", - "Bukovec", - "Bukovina", - "Bulhary", - "Bunetice", - "Bunkovce", - "Bušince", - "Bušovce", - "Buzica", - "Buzitka", - "Bystrá", - "Bystrá", - "Bystrany", - "Bystré", - "Bystričany", - "Bystrička", - "Byšta", - "Bytča", - "Bzenica", - "Bzenov", - "Bzince pod Javorinou", - "Bziny", - "Bzovík", - "Bzovská Lehôtka", - "Bžany", - "Cabaj - Čápor", - "Cabov", - "Cakov", - "Cejkov", - "Cernina", - "Cerová", - "Cerovo", - "Cestice", - "Cífer", - "Cigeľ", - "Cigeľka", - "Cigla", - "Cimenná", - "Cinobaňa", - "Čabalovce", - "Čabiny", - "Čabradský Vrbovok", - "Čadca", - "Čachtice", - "Čajkov", - "Čaka", - "Čakajovce", - "Čakanovce", - "Čakanovce", - "Čakany", - "Čaklov", - "Čalovec", - "Čamovce", - "Čaňa", - "Čaradice", - "Čáry", - "Častá", - "Častkov", - "Častkovce", - "Čata", - "Čataj", - "Čavoj", - "Čebovce", - "Čečehov", - "Čečejovce", - "Čechy", - "Čechynce", - "Čekovce", - "Čeláre", - "Čelkova Lehota", - "Čelovce", - "Čelovce", - "Čeľadice", - "Čeľadince", - "Čeľovce", - "Čenkovce", - "Čerenčany", - "Čereňany", - "Čerhov", - "Čerín", - "Čermany", - "Černík", - "Černina", - "Černochov", - "Čertižné", - "Červená Voda", - "Červenica", - "Červenica pri Sabinove", - "Červeník", - "Červený Hrádok", - "Červený Kameň", - "Červený Kláštor", - "Červeňany", - "České Brezovo", - "Čičarovce", - "Čičava", - "Čičmany", - "Číčov", - "Čierna", - "Čierna Lehota", - "Čierna Lehota", - "Čierna nad Tisou", - "Čierna Voda", - "Čierne", - "Čierne Kľačany", - "Čierne nad Topľou", - "Čierne Pole", - "Čierny Balog", - "Čierny Brod", - "Čierny Potok", - "Čifáre", - "Čiližská Radvaň", - "Čimhová", - "Čirč", - "Číž", - "Čižatice", - "Čoltovo", - "Čremošné", - "Čučma", - "Čukalovce", - "Dačov Lom", - "Daletice", - "Danišovce", - "Dargov", - "Davidov", - "Debraď", - "Dedačov", - "Dedina Mládeže", - "Dedinka", - "Dedinky", - "Dechtice", - "Dekýš", - "Demandice", - "Demänovská Dolina", - "Demjata", - "Detrík", - "Detva", - "Detvianska Huta", - "Devičany", - "Devičie", - "Dežerice", - "Diaková", - "Diakovce", - "Diviacka Nová Ves", - "Diviaky nad Nitricou", - "Divín", - "Divina", - "Divinka", - "Dlhá", - "Dlhá nad Kysucou", - "Dlhá nad Oravou", - "Dlhá nad Váhom", - "Dlhá Ves", - "Dlhé Klčovo", - "Dlhé nad Cirochou", - "Dlhé Pole", - "Dlhé Stráže", - "Dlhoňa", - "Dlžín", - "Dobrá", - "Dobrá Niva", - "Dobrá Voda", - "Dobroč", - "Dobrohošť", - "Dobroslava", - "Dobšiná", - "Dohňany", - "Dojč", - "Dolinka", - "Dolná Breznica", - "Dolná Krupá", - "Dolná Lehota", - "Dolná Mariková", - "Dolná Mičiná", - "Dolná Poruba", - "Dolná Seč", - "Dolná Streda", - "Dolná Strehová", - "Dolná Súča", - "Dolná Tižina", - "Dolná Trnávka", - "Dolná Ves", - "Dolná Ždaňa", - "Dolné Dubové", - "Dolné Kočkovce", - "Dolné Lefantovce", - "Dolné Lovčice", - "Dolné Mladonice", - "Dolné Naštice", - "Dolné Obdokovce", - "Dolné Orešany", - "Dolné Otrokovce", - "Dolné Plachtince", - "Dolné Saliby", - "Dolné Semerovce", - "Dolné Srnie", - "Dolné Strháre", - "Dolné Trhovište", - "Dolné Vestenice", - "Dolné Zahorany", - "Dolné Zelenice", - "Dolný Badín", - "Dolný Bar", - "Dolný Harmanec", - "Dolný Hričov", - "Dolný Chotár", - "Dolný Kalník", - "Dolný Kubín", - "Dolný Lieskov", - "Dolný Lopašov", - "Dolný Ohaj", - "Dolný Pial", - "Dolný Štál", - "Dolný Vadičov", - "Doľany", - "Doľany", - "Domadice", - "Domaníky", - "Domaniža", - "Domaňovce", - "Donovaly", - "Drábsko", - "Drahňov", - "Drahovce", - "Dravce", - "Dražice", - "Dražkovce", - "Drážovce", - "Drienčany", - "Drienica", - "Drienov", - "Drienovec", - "Drienovo", - "Drienovská Nová Ves", - "Drietoma", - "Drnava", - "Drňa", - "Družstevná pri Hornáde", - "Drženice", - "Držkovce", - "Dubinné", - "Dubnica nad Váhom", - "Dubnička", - "Dubník", - "Dubno", - "Dubodiel", - "Dubová", - "Dubová", - "Dubovany", - "Dubovce", - "Dubové", - "Dubové", - "Dubovec", - "Dubovica", - "Dúbrava", - "Dúbrava", - "Dúbrava", - "Dúbravica", - "Dúbravka", - "Dúbravy", - "Ducové", - "Dudince", - "Dukovce", - "Dulov", - "Dulova Ves", - "Dulovce", - "Dulovo", - "Dunajská Lužná", - "Dunajov", - "Dunajská Streda", - "Dunajský Klátov", - "Duplín", - "Dvorany nad Nitrou", - "Dvorec", - "Dvorianky", - "Dvorníky", - "Dvorníky - Včeláre", - "Dvory nad Žitavou", - "Ďačov", - "Ďanová", - "Ďapalovce", - "Ďubákovo", - "Ďurčiná", - "Ďurďoš", - "Ďurďošík", - "Ďurďové", - "Ďurkov", - "Ďurková", - "Ďurkovce", - "Egreš", - "Fačkov", - "Falkušovce", - "Farná", - "Fekišovce", - "Figa", - "Fijaš", - "Fiľakovo", - "Fiľakovské Kováče", - "Fintice", - "Folkušová", - "Forbasy", - "Frička", - "Fričkovce", - "Fričovce", - "Fulianka", - "Gabčíkovo", - "Gaboltov", - "Gajary", - "Galanta", - "Galovany", - "Gánovce", - "Gáň", - "Gbelce", - "Gbely", - "Gbeľany", - "Geča", - "Gelnica", - "Gemer", - "Gemerček", - "Gemerská Hôrka", - "Gemerská Panica", - "Gemerská Poloma", - "Gemerská Ves", - "Gemerské Dechtáre", - "Gemerské Michalovce", - "Gemerské Teplice", - "Gemerský Jablonec", - "Gemerský Sad", - "Geraltov", - "Gerlachov", - "Gerlachov", - "Giglovce", - "Giraltovce", - "Girovce", - "Glabušovce", - "Gočaltovo", - "Gočovo", - "Golianovo", - "Gortva", - "Gôtovany", - "Granč - Petrovce", - "Gregorova Vieska", - "Gregorovce", - "Gribov", - "Gruzovce", - "Gyňov", - "Habovka", - "Habura", - "Hačava", - "Háj", - "Háj", - "Hajná Nová Ves", - "Hajnáčka", - "Hájske", - "Hajtovka", - "Haláčovce", - "Halič", - "Haligovce", - "Haluzice", - "Hamuliakovo", - "Handlová", - "Hanigovce", - "Haniska", - "Haniska", - "Hanková", - "Hankovce", - "Hankovce", - "Hanušovce nad Topľou", - "Harakovce", - "Harhaj", - "Harichovce", - "Harmanec", - "Hatalov", - "Hatné", - "Havaj", - "Havka", - "Havranec", - "Hažín", - "Hažín nad Cirochou", - "Hažlín", - "Helcmanovce", - "Heľpa", - "Henckovce", - "Henclová", - "Hencovce", - "Hendrichovce", - "Herľany", - "Hermanovce", - "Hermanovce nad Topľou", - "Hertník", - "Hervartov", - "Hiadeľ", - "Hincovce", - "Hladovka", - "Hlboké", - "Hliník nad Hronom", - "Hlinné", - "Hlivištia", - "Hlohovec", - "Hniezdne", - "Hnilčík", - "Hnilec", - "Hnojné", - "Hnúšťa", - "Hodejov", - "Hodejovec", - "Hodkovce", - "Hodruša - Hámre", - "Hokovce", - "Holčíkovce", - "Holiare", - "Holice", - "Holíč", - "Holiša", - "Holumnica", - "Honce", - "Hontianska Vrbica", - "Hontianske Moravce", - "Hontianske Nemce", - "Hontianske Tesáre", - "Hontianske Trsťany", - "Horná Breznica", - "Horná Kráľová", - "Horná Krupá", - "Horná Lehota", - "Horná Lehota", - "Horná Mariková", - "Horná Mičiná", - "Horná Poruba", - "Horná Potôň", - "Horná Seč", - "Horná Streda", - "Horná Strehová", - "Horná Súča", - "Horná Štubňa", - "Horná Ves", - "Horná Ves", - "Horná Ždaňa", - "Horné Dubové", - "Horné Hámre", - "Horné Chlebany", - "Horné Lefantovce", - "Horné Mladonice", - "Horné Mýto", - "Horné Naštice", - "Horné Obdokovce", - "Horné Orešany", - "Horné Otrokovce", - "Horné Plachtince", - "Horné Pršany", - "Horné Saliby", - "Horné Semerovce", - "Horné Srnie", - "Horné Strháre", - "Horné Štitáre", - "Horné Trhovište", - "Horné Turovce", - "Horné Vestenice", - "Horné Zahorany", - "Horné Zelenice", - "Horný Badín", - "Horný Bar", - "Horný Hričov", - "Horný Kalník", - "Horný Lieskov", - "Horný Pial", - "Horný Tisovník", - "Horný Vadičov", - "Horňa", - "Horňany", - "Horovce", - "Horovce", - "Hoste", - "Hostice", - "Hostie", - "Hostišovce", - "Hostovice", - "Hosťová", - "Hosťovce", - "Hosťovce", - "Hozelec", - "Hôrka", - "Hôrka nad Váhom", - "Hôrky", - "Hrabičov", - "Hrabkov", - "Hrabová Roztoka", - "Hrabovčík", - "Hrabovec", - "Hrabovec nad Laborcom", - "Hrabské", - "Hrabušice", - "Hradisko", - "Hradište", - "Hradište", - "Hradište pod Vrátnom", - "Hrádok", - "Hrachovište", - "Hrachovo", - "Hraničné", - "Hranovnica", - "Hraň", - "Hrašné", - "Hrašovík", - "Hrčeľ", - "Hrhov", - "Hriadky", - "Hričovské Podhradie", - "Hriňová", - "Hrišovce", - "Hrkovce", - "Hrlica", - "Hrnčiarovce nad Parnou", - "Hrnčiarska Ves", - "Hrnčiarske Zalužany", - "Hrochoť", - "Hromoš", - "Hronec", - "Hronovce", - "Hronsek", - "Hronská Breznica", - "Hronská Dúbrava", - "Hronské Kľačany", - "Hronské Kosihy", - "Hronský Beňadik", - "Hrubá Borša", - "Hruboňovo", - "Hrubov", - "Hrubý Šúr", - "Hrušov", - "Hrušov", - "Hrušovany", - "Hrušovo", - "Hruštín", - "Hubice", - "Hubina", - "Hubošovce", - "Hubová", - "Hubovo", - "Hucín", - "Hudcovce", - "Hul", - "Humenné", - "Huncovce", - "Hunkovce", - "Hurbanova Ves", - "Hurbanovo", - "Husák", - "Husiná", - "Hutka", - "Huty", - "Hviezdoslavov", - "Hvozdnica", - "Hybe", - "Hýľov", - "Chanava", - "Chlebnice", - "Chlmec", - "Chľaba", - "Chmeľnica", - "Chmeľov", - "Chmeľová", - "Chmeľovec", - "Chminianska Nová Ves", - "Chminianske Jakubovany", - "Chmiňany", - "Choča", - "Chocholná - Velčice", - "Choňkovce", - "Chorvátsky Grob", - "Chorváty", - "Chotča", - "Chotín", - "Chrabrany", - "Chrámec", - "Chrastince", - "Chrastné", - "Chrasť nad Hornádom", - "Chrenovec - Brusno", - "Chropov", - "Chrťany", - "Chtelnica", - "Chudá Lehota", - "Chvalová", - "Chvojnica", - "Chvojnica", - "Chynorany", - "Chyžné", - "Igram", - "Ihľany", - "Ihráč", - "Ilava", - "Iliašovce", - "Ilija", - "Imeľ", - "Inovce", - "Iňa", - "Iňačovce", - "Ipeľské Predmostie", - "Ipeľské Úľany", - "Ipeľský Sokolec", - "Istebné", - "Ivachnová", - "Ivančiná", - "Ivanice", - "Ivanka pri Dunaji", - "Ivanka pri Nitre", - "Ivanovce", - "Iža", - "Ižipovce", - "Ižkovce", - "Jablonec", - "Jablonica", - "Jablonka", - "Jablonov", - "Jablonov nad Turňou", - "Jablonové", - "Jablonové", - "Jabloň", - "Jabloňovce", - "Jacovce", - "Jahodná", - "Jaklovce", - "Jakovany", - "Jakubany", - "Jakubov", - "Jakubova Voľa", - "Jakubovany", - "Jakubovany", - "Jakušovce", - "Jalová", - "Jalovec", - "Jalovec", - "Jalšové", - "Jalšovík", - "Jamník", - "Jamník", - "Janice", - "Janík", - "Janíky", - "Jankovce", - "Janov", - "Janova Lehota", - "Janovce", - "Jánovce", - "Jánovce", - "Janovík", - "Jarabá", - "Jarabina", - "Jarok", - "Jarovnice", - "Jasenica", - "Jasenie", - "Jasenov", - "Jasenov", - "Jasenová", - "Jasenovce", - "Jasenové", - "Jasenovo", - "Jaslovské Bohunice", - "Jasov", - "Jasová", - "Jastrabá", - "Jastrabie nad Topľou", - "Jastrabie pri Michalovciach", - "Jatov", - "Javorina (vojenský obvod)", - "Jazernica", - "Jedlinka", - "Jedľové Kostoľany", - "Jelenec", - "Jelka", - "Jelšava", - "Jelšovce", - "Jelšovec", - "Jenkovce", - "Jesenské", - "Jesenské", - "Jestice", - "Ješkova Ves", - "Jezersko", - "Jovice", - "Jovsa", - "Jur nad Hronom", - "Jurkova Voľa", - "Jurová", - "Jurské", - "Juskova Voľa", - "Kačanov", - "Kajal", - "Kalameny", - "Kalinkovo", - "Kalinov", - "Kalinovo", - "Kalná nad Hronom", - "Kalná Roztoka", - "Kálnica", - "Kalnište", - "Kalonda", - "Kalša", - "Kaloša", - "Kaluža", - "Kaľamenová", - "Kaľava", - "Kamanová", - "Kamenec pod Vtáčnikom", - "Kamenica", - "Kamenica nad Cirochou", - "Kamenica nad Hronom", - "Kameničany", - "Kameničná", - "Kamenín", - "Kamenná Poruba", - "Kamenná Poruba", - "Kamenné Kosihy", - "Kamenný Most", - "Kameňany", - "Kamienka", - "Kamienka", - "Kanianka", - "Kapišová", - "Kaplna", - "Kapušany", - "Kapušianske Kľačany", - "Karlová", - "Karná", - "Kašov", - "Kátlovce", - "Kátov", - "Kazimír", - "Kecerovce", - "Kecerovský Lipovec", - "Kečkovce", - "Kečovo", - "Kechnec", - "Kendice", - "Kesovce", - "Keť", - "Kežmarok", - "Kiarov", - "Kladzany", - "Klasov", - "Kláštor pod Znievom", - "Klátova Nová Ves", - "Klčov", - "Klenov", - "Klenová", - "Klenovec", - "Kleňany", - "Klieština", - "Klin", - "Klin nad Bodrogom", - "Klížska Nemá", - "Klokoč", - "Klokočov", - "Klokočov", - "Klubina", - "Kluknava", - "Kľačany", - "Kľače", - "Kľačno", - "Kľak", - "Kľúčovec", - "Kľušov", - "Kmeťovo", - "Kobeliarovo", - "Kobylnice", - "Kobyly", - "Koceľovce", - "Kociha", - "Kocurany", - "Kočín - Lančár", - "Kočovce", - "Kochanovce", - "Kochanovce", - "Kojatice", - "Kojšov", - "Kokava nad Rimavicou", - "Kokošovce", - "Kokšov - Bakša", - "Kolačkov", - "Kolačno", - "Koláre", - "Kolárovice", - "Kolárovo", - "Kolbasov", - "Kolbovce", - "Kolibabovce", - "Kolinovce", - "Kolíňany", - "Kolonica", - "Kolta", - "Komárany", - "Komárno", - "Komárov", - "Komárovce", - "Komjatice", - "Komjatná", - "Komoča", - "Koniarovce", - "Konrádovce", - "Konská", - "Konská", - "Koňuš", - "Kopčany", - "Kopernica", - "Koplotovce", - "Koprivnica", - "Kordíky", - "Korejovce", - "Korňa", - "Koromľa", - "Korunková", - "Korytárky", - "Korytné", - "Kosihovce", - "Kosihy nad Ipľom", - "Kosorín", - "Kostolec", - "Kostolište", - "Kostolná pri Dunaji", - "Kostolná Ves", - "Kostolná - Záriečie", - "Kostolné", - "Kostolné Kračany", - "Kostoľany pod Tribečom", - "Koš", - "Košariská", - "Košarovce", - "Košeca", - "Košecké Podhradie", - "Košice", - "Okres Košice II", - "Okres Košice III", - "Okres Košice IV", - "Košická Belá", - "Košická Polianka", - "Košické Oľšany", - "Košický Klečenov", - "Koškovce", - "Košolná", - "Košúty", - "Košťany nad Turcom", - "Kotešová", - "Kotmanová", - "Kotrčiná Lúčka", - "Kováčová", - "Kováčová", - "Kováčovce", - "Koválov", - "Koválovec", - "Kovarce", - "Kozárovce", - "Kozelník", - "Kozí Vrbovok", - "Kožany", - "Kožuchov", - "Kožuchovce", - "Kračúnovce", - "Krahule", - "Krajná Bystrá", - "Krajná Poľana", - "Krajná Porúbka", - "Krajné", - "Krajné Čierno", - "Krakovany", - "Králiky", - "Kráľ", - "Kráľov Brod", - "Kráľova Lehota", - "Kráľová nad Váhom", - "Kráľová pri Senci", - "Kraľovany", - "Kráľovce", - "Kráľovce - Krnišov", - "Kráľovičove Kračany", - "Kráľovský Chlmec", - "Kraskovo", - "Krásna Lúka", - "Krásna Ves", - "Krásno", - "Krásno nad Kysucou", - "Krásnohorská Dlhá Lúka", - "Krásnohorské Podhradie", - "Krásnovce", - "Krásny Brod", - "Krasňany", - "Kravany", - "Kravany", - "Kravany nad Dunajom", - "Krčava", - "Kremná", - "Kremnica", - "Kremnické Bane", - "Kristy", - "Krišľovce", - "Krišovská Liesková", - "Krivá", - "Krivany", - "Kriváň", - "Krivé", - "Krivoklát", - "Krivosúd - Bodovka", - "Kríže", - "Krížová Ves", - "Krížovany", - "Križovany nad Dudváhom", - "Krná", - "Krnča", - "Krokava", - "Krompachy", - "Krpeľany", - "Krškany", - "Krtovce", - "Kručov", - "Krupina", - "Krušetnica", - "Krušinec", - "Krušovce", - "Kružlov", - "Kružlová", - "Kružná", - "Kružno", - "Kšinná", - "Kubáňovo", - "Kučín", - "Kučín", - "Kuchyňa", - "Kuklov", - "Kuková", - "Kukučínov", - "Kunerad", - "Kunešov", - "Kunova Teplica", - "Kuraľany", - "Kurima", - "Kurimany", - "Kurimka", - "Kurov", - "Kusín", - "Kútniky", - "Kúty", - "Kuzmice", - "Kuzmice", - "Kvačany", - "Kvačany", - "Kvakovce", - "Kvašov", - "Kvetoslavov", - "Kyjatice", - "Kyjov", - "Kynceľová", - "Kysak", - "Kyselica", - "Kysta", - "Kysucké Nové Mesto", - "Kysucký Lieskovec", - "Láb", - "Lackov", - "Lacková", - "Lada", - "Ladce", - "Ladice", - "Ladmovce", - "Ladomerská Vieska", - "Ladomirov", - "Ladomirová", - "Ladzany", - "Lakšárska Nová Ves", - "Lascov", - "Laskár", - "Lastomír", - "Lastovce", - "Laškovce", - "Látky", - "Lazany", - "Lazisko", - "Lazy pod Makytou", - "Lažany", - "Lednica", - "Lednické Rovne", - "Legnava", - "Lehnice", - "Lehota", - "Lehota nad Rimavicou", - "Lehota pod Vtáčnikom", - "Lehôtka", - "Lehôtka pod Brehmi", - "Lechnica", - "Lekárovce", - "Leles", - "Leľa", - "Lemešany", - "Lenartov", - "Lenartovce", - "Lendak", - "Lenka", - "Lentvora", - "Leopoldov", - "Lesenice", - "Lesíček", - "Lesné", - "Lesnica", - "Leštiny", - "Lešť (vojenský obvod)", - "Letanovce", - "Letničie", - "Leváre", - "Levice", - "Levkuška", - "Levoča", - "Ležiachov", - "Libichava", - "Licince", - "Ličartovce", - "Liesek", - "Lieskovany", - "Lieskovec", - "Lieskovec", - "Liešno", - "Liešťany", - "Lietava", - "Lietavská Lúčka", - "Lietavská Svinná - Babkov", - "Likavka", - "Limbach", - "Lipany", - "Lipník", - "Lipníky", - "Lipová", - "Lipová", - "Lipovany", - "Lipovce", - "Lipové", - "Lipovec", - "Lipovec", - "Lipovník", - "Lipovník", - "Liptovská Anna", - "Liptovská Kokava", - "Liptovská Lúžna", - "Liptovská Osada", - "Liptovská Porúbka", - "Liptovská Sielnica", - "Liptovská Štiavnica", - "Liptovská Teplá", - "Liptovská Teplička", - "Liptovské Beharovce", - "Liptovské Kľačany", - "Liptovské Matiašovce", - "Liptovské Revúce", - "Liptovské Sliače", - "Liptovský Hrádok", - "Liptovský Ján", - "Liptovský Michal", - "Liptovský Mikuláš", - "Liptovský Ondrej", - "Liptovský Peter", - "Liptovský Trnovec", - "Lisková", - "Lišov", - "Litava", - "Litmanová", - "Livina", - "Livinské Opatovce", - "Livov", - "Livovská Huta", - "Lodno", - "Lok", - "Lokca", - "Lom nad Rimavicou", - "Lomná", - "Lomné", - "Lomnička", - "Lontov", - "Lopašov", - "Lopúchov", - "Lopušné Pažite", - "Lošonec", - "Lovce", - "Lovča", - "Lovčica - Trubín", - "Lovinobaňa", - "Lozorno", - "Ložín", - "Lubeník", - "Lubina", - "Lúč na Ostrove", - "Lučatín", - "Lučenec", - "Lúčina", - "Lučivná", - "Lúčka", - "Lúčka", - "Lúčka", - "Lúčka", - "Lúčky", - "Lúčky", - "Lúčky", - "Lúčnica nad Žitavou", - "Ludanice", - "Ludrová", - "Luhyňa", - "Lúka", - "Lukačovce", - "Lukáčovce", - "Lukavica", - "Lukavica", - "Lukov", - "Lukovištia", - "Lúky", - "Lula", - "Lupoč", - "Lutila", - "Lutiše", - "Lužany", - "Lužany pri Topli", - "Lužianky", - "Lysá pod Makytou", - "Lysica", - "Ľubá", - "Ľubela", - "Ľubica", - "Ľubietová", - "Ľubiša", - "Ľubochňa", - "Ľuboreč", - "Ľuboriečka", - "Ľubotice", - "Ľubotín", - "Ľubovec", - "Ľudovítová", - "Ľutina", - "Ľutov", - "Macov", - "Mad", - "Madunice", - "Magnezitovce", - "Machulince", - "Majcichov", - "Majere", - "Majerovce", - "Makov", - "Makovce", - "Malacky", - "Malachov", - "Malá Čalomija", - "Malá Čausa", - "Malá Čierna", - "Malá Domaša", - "Malá Franková", - "Malá Hradná", - "Malá Ida", - "Malá Lehota", - "Malá Lodina", - "Malá nad Hronom", - "Malá Poľana", - "Malá Tŕňa", - "Málaš", - "Malatiná", - "Malatíny", - "Malcov", - "Malčice", - "Malé Borové", - "Malé Dvorníky", - "Malé Chyndice", - "Malé Hoste", - "Malé Kosihy", - "Malé Kozmálovce", - "Malé Kršteňany", - "Malé Lednice", - "Malé Leváre", - "Malé Ludince", - "Malé Ozorovce", - "Malé Raškovce", - "Malé Ripňany", - "Malé Straciny", - "Malé Trakany", - "Malé Uherce", - "Malé Vozokany", - "Malé Zálužie", - "Malé Zlievce", - "Málinec", - "Malinová", - "Malinovo", - "Malužiná", - "Malý Cetín", - "Malý Čepčín", - "Malý Horeš", - "Malý Kamenec", - "Malý Krtíš", - "Malý Lapáš", - "Malý Lipník", - "Malý Slavkov", - "Malý Slivník", - "Malý Šariš", - "Malženice", - "Mankovce", - "Maňa", - "Marcelová", - "Margecany", - "Marhaň", - "Marianka", - "Markovce", - "Markuška", - "Markušovce", - "Maršová - Rašov", - "Martin", - "Martin nad Žitavou", - "Martinček", - "Martinová", - "Martovce", - "Mašková", - "Maškovce", - "Matejovce nad Hornádom", - "Matiaška", - "Matiašovce", - "Matovce", - "Matúškovo", - "Matysová", - "Maťovské Vojkovce", - "Medovarce", - "Medvedie", - "Medveďov", - "Medzany", - "Medzev", - "Medzianky", - "Medzibrod", - "Medzibrodie nad Oravou", - "Medzilaborce", - "Melčice - Lieskové", - "Melek", - "Meliata", - "Mengusovce", - "Merašice", - "Merník", - "Mestečko", - "Mestisko", - "Mičakovce", - "Mierovo", - "Miezgovce", - "Michajlov", - "Michal na Ostrove", - "Michal nad Žitavou", - "Michalková", - "Michalok", - "Michalová", - "Michalovce", - "Michaľany", - "Miklušovce", - "Miková", - "Mikulášová", - "Mikušovce", - "Mikušovce", - "Milhosť", - "Miloslavov", - "Milpoš", - "Miňovce", - "Mirkovce", - "Miroľa", - "Mládzovo", - "Mlynárovce", - "Mlynčeky", - "Mlynica", - "Mlynky", - "Mníchova Lehota", - "Mníšek nad Hnilcom", - "Mníšek nad Popradom", - "Moča", - "Močenok", - "Močiar", - "Modra", - "Modra nad Cirochou", - "Modrany", - "Modrová", - "Modrovka", - "Modrý Kameň", - "Mojmírovce", - "Mojš", - "Mojtín", - "Mojzesovo", - "Mokrá Lúka", - "Mokrance", - "Mokroluh", - "Mokrý Háj", - "Moldava nad Bodvou", - "Moravany", - "Moravany nad Váhom", - "Moravské Lieskové", - "Moravský Svätý Ján", - "Most pri Bratislave", - "Mostová", - "Moškovec", - "Mošovce", - "Moštenica", - "Mošurov", - "Motešice", - "Motyčky", - "Môlča", - "Mrázovce", - "Mučín", - "Mudroňovo", - "Mudrovce", - "Muľa", - "Muráň", - "Muránska Dlhá Lúka", - "Muránska Huta", - "Muránska Lehota", - "Muránska Zdychava", - "Mútne", - "Mužla", - "Myjava", - "Myslina", - "Mýtna", - "Mýtne Ludany", - "Mýto pod Ďumbierom", - "Nacina Ves", - "Nadlice", - "Naháč", - "Nálepkovo", - "Námestovo", - "Nána", - "Nandraž", - "Necpaly", - "Nedanovce", - "Nedašovce", - "Neded", - "Nededza", - "Nedožery - Brezany", - "Nechválova Polianka", - "Nemce", - "Nemcovce", - "Nemcovce", - "Nemčice", - "Nemčiňany", - "Nemecká", - "Nemečky", - "Nemešany", - "Nemšová", - "Nenince", - "Neporadza", - "Neporadza", - "Nesvady", - "Nesluša", - "Neverice", - "Nevidzany", - "Nevidzany", - "Nevoľné", - "Nezbudská Lúčka", - "Nimnica", - "Nitra", - "Nitra nad Ipľom", - "Nitrianska Blatnica", - "Nitrianska Streda", - "Nitrianske Hrnčiarovce", - "Nitrianske Pravno", - "Nitrianske Rudno", - "Nitrianske Sučany", - "Nitrica", - "Nižná", - "Nižná", - "Nižná Boca", - "Nižná Hutka", - "Nižná Jablonka", - "Nižná Jedľová", - "Nižná Kamenica", - "Nižná Myšľa", - "Nižná Olšava", - "Nižná Pisaná", - "Nižná Polianka", - "Nižná Rybnica", - "Nižná Sitnica", - "Nižná Slaná", - "Nižná Voľa", - "Nižné Ladičkovce", - "Nižné Nemecké", - "Nižné Repaše", - "Nižné Ružbachy", - "Nižný Čaj", - "Nižný Hrabovec", - "Nižný Hrušov", - "Nižný Klátov", - "Nižný Komárnik", - "Nižný Kručov", - "Nižný Lánec", - "Nižný Mirošov", - "Nižný Orlík", - "Nižný Skálnik", - "Nižný Slavkov", - "Nižný Tvarožec", - "Nižný Žipov", - "Nolčovo", - "Norovce", - "Nová Baňa", - "Nová Bašta", - "Nová Bošáca", - "Nová Bystrica", - "Nová Dedina", - "Nová Dedinka", - "Nová Dubnica", - "Nová Kelča", - "Nová Lehota", - "Nová Lesná", - "Nová Ľubovňa", - "Nová Polhora", - "Nová Polianka", - "Nová Sedlica", - "Nová Ves", - "Nová Ves nad Váhom", - "Nová Ves nad Žitavou", - "Nová Vieska", - "Nováčany", - "Nováky", - "Nové Hony", - "Nové Mesto nad Váhom", - "Nové Sady", - "Nové Zámky", - "Novosad", - "Novoť", - "Nový Ruskov", - "Nový Salaš", - "Nový Tekov", - "Nový Život", - "Nýrovce", - "Ňagov", - "Ňárad", - "Obeckov", - "Obišovce", - "Oborín", - "Obručné", - "Obyce", - "Očkov", - "Očová", - "Odorín", - "Ohrady", - "Ohradzany", - "Ochodnica", - "Ochtiná", - "Okoč", - "Okoličná na Ostrove", - "Okrúhle", - "Okružná", - "Olcnava", - "Olejníkov", - "Olešná", - "Olováry", - "Olšovany", - "Oľdza", - "Oľka", - "Oľšavce", - "Oľšavica", - "Oľšavka", - "Oľšavka", - "Oľšinkov", - "Oľšov", - "Omastiná", - "Omšenie", - "Ondavka", - "Ondavské Matiašovce", - "Ondrašovce", - "Ondrašová", - "Ondrejovce", - "Opátka", - "Opatovce", - "Opatovce nad Nitrou", - "Opatovská Nová Ves", - "Opava", - "Opiná", - "Opoj", - "Oponice", - "Oravce", - "Orávka", - "Oravská Jasenica", - "Oravská Lesná", - "Oravská Polhora", - "Oravská Poruba", - "Oravský Biely Potok", - "Oravský Podzámok", - "Ordzovany", - "Orechová", - "Orechová Potôň", - "Oravské Veselé", - "Oreské", - "Oreské", - "Orešany", - "Orlov", - "Orovnica", - "Ortuťová", - "Osádka", - "Osadné", - "Osikov", - "Oslany", - "Osrblie", - "Ostrá Lúka", - "Ostratice", - "Ostrov", - "Ostrov", - "Ostrovany", - "Ostrý Grúň", - "Osturňa", - "Osuské", - "Oščadnica", - "Otrhánky", - "Otročok", - "Ovčiarsko", - "Ovčie", - "Ozdín", - "Ožďany", - "Pača", - "Padáň", - "Padarovce", - "Pakostov", - "Palárikovo", - "Palín", - "Palota", - "Panické Dravce", - "Paňa", - "Paňovce", - "Papín", - "Papradno", - "Parchovany", - "Parihuzovce", - "Párnica", - "Partizánska Ľupča", - "Partizánske", - "Pastovce", - "Pastuchov", - "Pašková", - "Paština Závada", - "Pata", - "Pataš", - "Pavčina Lehota", - "Pavlice", - "Pavlová", - "Pavlova Ves", - "Pavlovce", - "Pavlovce", - "Pavlovce nad Uhom", - "Pavľany", - "Pažiť", - "Pčoliné", - "Pečenice", - "Pečeňady", - "Pečeňany", - "Pečovská Nová Ves", - "Peder", - "Perín - Chym", - "Pernek", - "Petkovce", - "Petrikovce", - "Petrová", - "Petrova Lehota", - "Petrova Ves", - "Petrovany", - "Petrovce", - "Petrovce", - "Petrovce", - "Petrovce nad Laborcom", - "Petrovice", - "Petrovo", - "Pezinok", - "Piešťany", - "Pichne", - "Píla", - "Píla", - "Píla", - "Pinciná", - "Pinkovce", - "Piskorovce", - "Pitelová", - "Plášťovce", - "Plavé Vozokany", - "Plavecké Podhradie", - "Plavecký Mikuláš", - "Plavecký Peter", - "Plavecký Štvrtok", - "Plaveč", - "Plavnica", - "Plechotice", - "Pleš", - "Plešivec", - "Plevník - Drienové", - "Pliešovce", - "Ploské", - "Ploské", - "Pobedim", - "Počarová", - "Počúvadlo", - "Podbiel", - "Podbranč", - "Podbrezová", - "Podhájska", - "Podhorany", - "Podhorany", - "Podhorany", - "Podhorie", - "Podhorie", - "Podhoroď", - "Podhradie", - "Podhradie", - "Podhradie", - "Podhradík", - "Podkonice", - "Podkriváň", - "Podkylava", - "Podlužany", - "Podlužany", - "Podolie", - "Podolínec", - "Podrečany", - "Podskalie", - "Podtureň", - "Podvysoká", - "Podzámčok", - "Pohorelá", - "Pohranice", - "Pohronská Polhora", - "Pohronský Bukovec", - "Pohronský Ruskov", - "Pochabany", - "Pokryváč", - "Poliakovce", - "Polianka", - "Polichno", - "Polina", - "Poloma", - "Polomka", - "Poltár", - "Poluvsie", - "Poľanovce", - "Poľany", - "Poľný Kesov", - "Pongrácovce", - "Poniky", - "Poprad", - "Poproč", - "Poproč", - "Popudinské Močidľany", - "Poráč", - "Poriadie", - "Porostov", - "Poruba", - "Poruba pod Vihorlatom", - "Porúbka", - "Porúbka", - "Porúbka", - "Porúbka", - "Poša", - "Potok", - "Potok", - "Potoky", - "Potôčky", - "Potvorice", - "Považany", - "Považská Bystrica", - "Povina", - "Povoda", - "Povrazník", - "Pozba", - "Pozdišovce", - "Pôtor", - "Praha", - "Prakovce", - "Prašice", - "Prašník", - "Pravenec", - "Pravica", - "Pravotice", - "Práznovce", - "Prečín", - "Predajná", - "Predmier", - "Prenčov", - "Preseľany", - "Prestavlky", - "Prešov", - "Príbelce", - "Pribeník", - "Pribeta", - "Pribiš", - "Príbovce", - "Pribylina", - "Priechod", - "Priekopa", - "Priepasné", - "Prietrž", - "Prietržka", - "Prievaly", - "Prievidza", - "Prihradzany", - "Príkra", - "Príslop", - "Prituľany", - "Proč", - "Prochot", - "Prosačov", - "Prosiek", - "Prša", - "Pruské", - "Prusy", - "Pružina", - "Pstriná", - "Ptičie", - "Ptrukša", - "Pucov", - "Púchov", - "Pukanec", - "Pusté Čemerné", - "Pusté Pole", - "Pusté Sady", - "Pusté Úľany", - "Pušovce", - "Rabča", - "Rabčice", - "Rad", - "Radatice", - "Radava", - "Radimov", - "Radnovce", - "Radobica", - "Radoľa", - "Radoma", - "Radošina", - "Radošovce", - "Radošovce", - "Radôstka", - "Radvanovce", - "Radvaň nad Dunajom", - "Radvaň nad Laborcom", - "Radzovce", - "Rafajovce", - "Rajčany", - "Rajec", - "Rajecká Lesná", - "Rajecké Teplice", - "Rákoš", - "Rákoš", - "Raková", - "Rakovčík", - "Rakovec nad Ondavou", - "Rakovice", - "Rakovnica", - "Rakovo", - "Rakša", - "Rakúsy", - "Rakytník", - "Rankovce", - "Rapovce", - "Raslavice", - "Rastislavice", - "Rašice", - "Ratka", - "Ratková", - "Ratkovce", - "Ratkovo", - "Ratkovská Lehota", - "Ratkovská Suchá", - "Ratkovské Bystré", - "Ratnovce", - "Ratvaj", - "Ráztočno", - "Ráztoka", - "Ražňany", - "Reca", - "Regetovka", - "Rejdová", - "Reľov", - "Remeniny", - "Remetské Hámre", - "Renčišov", - "Repejov", - "Repište", - "Rešica", - "Rešov", - "Revúca", - "Revúcka Lehota", - "Riečka", - "Riečka", - "Richnava", - "Richvald", - "Rimavská Baňa", - "Rimavská Seč", - "Rimavská Sobota", - "Rimavské Brezovo", - "Rimavské Janovce", - "Rimavské Zalužany", - "Rohov", - "Rohovce", - "Rohožník", - "Rohožník", - "Rochovce", - "Rokycany", - "Rokytov", - "Rokytov pri Humennom", - "Rokytovce", - "Rosina", - "Roškovce", - "Roštár", - "Rovensko", - "Rovinka", - "Rovné", - "Rovné", - "Rovné", - "Rovňany", - "Rozhanovce", - "Rozložná", - "Roztoky", - "Rožkovany", - "Rožňava", - "Rožňavské Bystré", - "Rúbaň", - "Rudina", - "Rudinka", - "Rudinská", - "Rudlov", - "Rudná", - "Rudnianska Lehota", - "Rudník", - "Rudník", - "Rudno", - "Rudno nad Hronom", - "Rudňany", - "Rumanová", - "Rumince", - "Runina", - "Ruská", - "Ruská Bystrá", - "Ruská Kajňa", - "Ruská Nová Ves", - "Ruská Poruba", - "Ruská Volová", - "Ruská Voľa", - "Ruská Voľa nad Popradom", - "Ruskov", - "Ruskovce", - "Ruskovce", - "Ruský Hrabovec", - "Ruský Potok", - "Ružiná", - "Ružindol", - "Ružomberok", - "Rybany", - "Rybky", - "Rybník", - "Rybník", - "Rykynčice", - "Sabinov", - "Sačurov", - "Sádočné", - "Sady nad Torysou", - "Salka", - "Santovka", - "Sap", - "Sása", - "Sása", - "Sasinkovo", - "Sazdice", - "Sebedín - Bečov", - "Sebedražie", - "Sebechleby", - "Seč", - "Sečianky", - "Sečovce", - "Sečovská Polianka", - "Sedliacka Dubová", - "Sedliská", - "Sedmerovec", - "Sejkov", - "Sekule", - "Selce", - "Selce", - "Selce", - "Selec", - "Selice", - "Seľany", - "Semerovo", - "Senec", - "Seniakovce", - "Senica", - "Senné", - "Senné", - "Senohrad", - "Seňa", - "Sereď", - "Sielnica", - "Sihelné", - "Sihla", - "Sikenica", - "Sikenička", - "Siladice", - "Silica", - "Silická Brezová", - "Silická Jablonica", - "Sirk", - "Sirník", - "Skačany", - "Skalica", - "Skalité", - "Skalka nad Váhom", - "Skároš", - "Skerešovo", - "Sklabiná", - "Sklabinský Podzámok", - "Sklabiňa", - "Sklené", - "Sklené Teplice", - "Skrabské", - "Skýcov", - "Sládkovičovo", - "Slančík", - "Slanec", - "Slanská Huta", - "Slanské Nové Mesto", - "Slaská", - "Slatina", - "Slatina nad Bebravou", - "Slatinka nad Bebravou", - "Slatinské Lazy", - "Slatvina", - "Slavec", - "Slavkovce", - "Slavnica", - "Slavoška", - "Slavošovce", - "Slepčany", - "Sliač", - "Sliepkovce", - "Slizké", - "Slivník", - "Slopná", - "Slovany", - "Slovenská Kajňa", - "Slovenská Ľupča", - "Slovenská Nová Ves", - "Slovenská Ves", - "Slovenská Volová", - "Slovenské Ďarmoty", - "Slovenské Kľačany", - "Slovenské Krivé", - "Slovenské Nové Mesto", - "Slovenské Pravno", - "Slovenský Grob", - "Slovinky", - "Sľažany", - "Smilno", - "Smižany", - "Smolenice", - "Smolinské", - "Smolnícka Huta", - "Smolník", - "Smrdáky", - "Smrečany", - "Snakov", - "Snežnica", - "Snina", - "Socovce", - "Soblahov", - "Soboš", - "Sobotište", - "Sobrance", - "Sokolce", - "Sokolovce", - "Sokoľ", - "Sokoľany", - "Solčany", - "Solčianky", - "Sološnica", - "Soľ", - "Soľnička", - "Soľník", - "Somotor", - "Sopkovce", - "Spišská Belá", - "Spišská Nová Ves", - "Spišská Stará Ves", - "Spišská Teplica", - "Spišské Bystré", - "Spišské Hanušovce", - "Spišské Podhradie", - "Spišské Tomášovce", - "Spišské Vlachy", - "Spišský Hrhov", - "Spišský Hrušov", - "Spišský Štiavnik", - "Spišský Štvrtok", - "Stakčín", - "Stakčínska Roztoka", - "Stanča", - "Stankovany", - "Stankovce", - "Stará Bašta", - "Stará Bystrica", - "Stará Halič", - "Stará Huta", - "Stará Kremnička", - "Stará Lehota", - "Stará Lesná", - "Stará Ľubovňa", - "Stará Myjava", - "Stará Turá", - "Stará Voda", - "Staré", - "Staré Hory", - "Starina", - "Starý Hrádok", - "Starý Tekov", - "Staškov", - "Staškovce", - "Stebnícka Huta", - "Stebník", - "Stožok", - "Stráne pod Tatrami", - "Stránska", - "Stránske", - "Stráňany", - "Stráňavy", - "Stratená", - "Stráža", - "Strážne", - "Strážske", - "Strečno", - "Streda nad Bodrogom", - "Stredné Plachtince", - "Strekov", - "Strelníky", - "Stretava", - "Stretavka", - "Streženice", - "Strihovce", - "Stročín", - "Stropkov", - "Studená", - "Studenec", - "Studienka", - "Stuľany", - "Stupava", - "Stupné", - "Sučany", - "Sudince", - "Súdovce", - "Suchá Dolina", - "Suchá Hora", - "Suchá nad Parnou", - "Sucháň", - "Suché", - "Suché Brezovo", - "Suchohrad", - "Sukov", - "Sulín", - "Súlovce", - "Súľov - Hradná", - "Sušany", - "Sútor", - "Svätá Mária", - "Svätoplukovo", - "Svätuš", - "Svätuše", - "Svätý Anton", - "Svätý Jur", - "Svätý Kríž", - "Svätý Peter", - "Svederník", - "Sverepec", - "Sveržov", - "Svetlice", - "Svidnička", - "Svidník", - "Svinia", - "Svinica", - "Svinice", - "Svinná", - "Svit", - "Svodín", - "Svrbice", - "Svrčinovec", - "Šahy", - "Šajdíkove Humence", - "Šalgovce", - "Šalgočka", - "Šalov", - "Šaľa", - "Šambron", - "Šamorín", - "Šamudovce", - "Šandal", - "Šarbov", - "Šarišská Poruba", - "Šarišská Trstená", - "Šarišské Bohdanovce", - "Šarišské Čierne", - "Šarišské Dravce", - "Šarišské Jastrabie", - "Šarišské Michaľany", - "Šarišské Sokolovce", - "Šarišský Štiavnik", - "Šarkan", - "Šarovce", - "Šašová", - "Šaštín - Stráže", - "Šávoľ", - "Šelpice", - "Šemetkovce", - "Šemša", - "Šenkvice", - "Šiatorská Bukovinka", - "Šiba", - "Šíd", - "Šimonovce", - "Šindliar", - "Šintava", - "Šípkov", - "Šípkové", - "Širákov", - "Širkovce", - "Široké", - "Šišov", - "Šivetice", - "Šmigovec", - "Šoltýska", - "Šoporňa", - "Špačince", - "Špania Dolina", - "Španie Pole", - "Šrobárová", - "Štefanov", - "Štefanov nad Oravou", - "Štefanová", - "Štefanovce", - "Štefanovce", - "Štefanovičová", - "Štefurov", - "Šterusy", - "Štiavnické Bane", - "Štiavnička", - "Štiavnik", - "Štítnik", - "Štós", - "Štôla", - "Štrba", - "Štrkovec", - "Štúrovo", - "Štvrtok", - "Štvrtok na Ostrove", - "Šuľa", - "Šumiac", - "Šuňava", - "Šurany", - "Šurianky", - "Šurice", - "Šúrovce", - "Šútovo", - "Šútovce", - "Švábovce", - "Švedlár", - "Švošov", - "Tachty", - "Tajná", - "Tajov", - "Tarnov", - "Tatranská Javorina", - "Tašuľa", - "Tehla", - "Tekolďany", - "Tekovská Breznica", - "Tekovské Lužany", - "Tekovské Nemce", - "Tekovský Hrádok", - "Telgárt", - "Telince", - "Temeš", - "Teplička", - "Teplička nad Váhom", - "Tepličky", - "Teplý Vrch", - "Terany", - "Terchová", - "Teriakovce", - "Terňa", - "Tesáre", - "Tesárske Mlyňany", - "Tešedíkovo", - "Tibava", - "Tichý Potok", - "Timoradza", - "Tisinec", - "Tisovec", - "Tlmače", - "Točnica", - "Tokajík", - "Tomášikovo", - "Tomášov", - "Tomášovce", - "Tomášovce", - "Topoľa", - "Topoľčany", - "Topoľčianky", - "Topoľnica", - "Topoľníky", - "Topoľovka", - "Toporec", - "Tornaľa", - "Torysa", - "Torysky", - "Tovarné", - "Tovarnianska Polianka", - "Tovarníky", - "Tôň", - "Trakovice", - "Trávnica", - "Trávnik", - "Trebatice", - "Trebejov", - "Trebeľovce", - "Trebichava", - "Trebišov", - "Trebostovo", - "Trebušovce", - "Trenč", - "Trenčianska Teplá", - "Trenčianska Turná", - "Trenčianske Bohuslavice", - "Trenčianske Jastrabie", - "Trenčianske Mitice", - "Trenčianske Stankovce", - "Trenčianske Teplice", - "Trenčín", - "Trhová Hradská", - "Trhovište", - "Trnava", - "Trnavá Hora", - "Trnava pri Laborci", - "Trnávka", - "Trnávka", - "Trnkov", - "Trnovec", - "Trnovec nad Váhom", - "Trnovo", - "Tročany", - "Trpín", - "Trstená", - "Trstená na Ostrove", - "Trstené", - "Trstené pri Hornáde", - "Trstice", - "Trstín", - "Trsťany", - "Tŕnie", - "Tuhár", - "Tuhrina", - "Tuchyňa", - "Tulčík", - "Tupá", - "Turá", - "Turany", - "Turany nad Ondavou", - "Turcovce", - "Turček", - "Turčianky", - "Turčianska Štiavnička", - "Turčianske Jaseno", - "Turčianske Kľačany", - "Turčianske Teplice", - "Turčiansky Ďur", - "Turčiansky Peter", - "Turčok", - "Turecká", - "Tureň", - "Turie", - "Turík", - "Turnianska Nová Ves", - "Turňa nad Bodvou", - "Turová", - "Turzovka", - "Tušice", - "Tušická Nová Ves", - "Tužina", - "Tvarožná", - "Tvrdomestice", - "Tvrdošín", - "Tvrdošovce", - "Ťapešovo", - "Ubľa", - "Úbrež", - "Udavské", - "Udiča", - "Údol", - "Uhliská", - "Úhorná", - "Uhorská Ves", - "Uhorské", - "Uhrovec", - "Uhrovské Podhradie", - "Ulič", - "Uličské Krivé", - "Uloža", - "Úľany nad Žitavou", - "Unín", - "Uňatín", - "Urmince", - "Utekáč", - "Uzovce", - "Uzovská Panica", - "Uzovské Pekľany", - "Uzovský Šalgov", - "Vaďovce", - "Vagrinec", - "Váhovce", - "Vajkovce", - "Valaliky", - "Valaská", - "Valaská Belá", - "Valaská Dubová", - "Valaškovce (vojenský obvod)", - "Valča", - "Valentovce", - "Valice", - "Valkovce", - "Vaľkovňa", - "Vaniškovce", - "Vápeník", - "Varadka", - "Varechovce", - "Varhaňovce", - "Varín", - "Vasiľov", - "Vavrečka", - "Vavrinec", - "Vavrišovo", - "Važec", - "Vechec", - "Velčice", - "Veličná", - "Velušovce", - "Veľaty", - "Veľká Čausa", - "Veľká Čierna", - "Veľká Dolina", - "Veľká Franková", - "Veľká Hradná", - "Veľká Ida", - "Veľká Lesná", - "Veľká Lodina", - "Veľká Lomnica", - "Veľká Mača", - "Veľká Paka", - "Veľká Tŕňa", - "Veľké Bierovce", - "Veľké Blahovo", - "Veľké Borové", - "Veľké Držkovce", - "Veľké Dvorany", - "Veľké Dvorníky", - "Veľké Hoste", - "Veľké Chlievany", - "Veľké Chyndice", - "Veľké Kapušany", - "Veľké Kosihy", - "Veľké Kostoľany", - "Veľké Kozmálovce", - "Veľké Kršteňany", - "Veľké Leváre", - "Veľké Lovce", - "Veľké Ludince", - "Veľké Orvište", - "Veľké Ozorovce", - "Veľké Raškovce", - "Veľké Revištia", - "Veľké Ripňany", - "Veľké Rovné", - "Veľké Slemence", - "Veľké Trakany", - "Veľké Turovce", - "Veľké Uherce", - "Veľké Úľany", - "Veľké Vozokany", - "Veľké Zálužie", - "Veľkrop", - "Veľký Biel", - "Veľký Cetín", - "Veľký Čepčín", - "Veľký Ďur", - "Veľký Folkmar", - "Veľký Grob", - "Veľký Horeš", - "Veľký Kamenec", - "Veľký Klíž", - "Veľký Krtíš", - "Veľký Kýr", - "Veľký Lapáš", - "Veľký Lipník", - "Veľký Meder", - "Veľký Slavkov", - "Veľký Slivník", - "Veľký Šariš", - "Veľopolie", - "Vernár", - "Veselé", - "Veterná Poruba", - "Vieska", - "Vieska", - "Vieska nad Žitavou", - "Vikartovce", - "Vinica", - "Viničky", - "Viničné", - "Vinné", - "Vinodol", - "Vinohrady nad Váhom", - "Vinosady", - "Virt", - "Vislanka", - "Vislava", - "Visolaje", - "Višňov", - "Višňové", - "Višňové", - "Vištuk", - "Vitanová", - "Vítkovce", - "Víťaz", - "Víťazovce", - "Vlača", - "Vladiča", - "Vlachovo", - "Vlachy", - "Vlčany", - "Vlčkovce", - "Vlkas", - "Vlková", - "Vlkovce", - "Vlky", - "Voderady", - "Vojany", - "Vojčice", - "Vojka", - "Vojka nad Dunajom", - "Vojkovce", - "Vojnatina", - "Vojňany", - "Vojtovce", - "Volica", - "Volkovce", - "Voľa", - "Vozokany", - "Vozokany", - "Vráble", - "Vrádište", - "Vrakúň", - "Vranov nad Topľou", - "Vrbnica", - "Vrbov", - "Vrbovce", - "Vrbová nad Váhom", - "Vrbové", - "Vrchteplá", - "Vrícko", - "Vršatské Podhradie", - "Vrútky", - "Vtáčkovce", - "Výborná", - "Výčapy - Opatovce", - "Vydrany", - "Vydrná", - "Vydrník", - "Východná", - "Výrava", - "Vysočany", - "Vysoká", - "Vysoká", - "Vysoká nad Kysucou", - "Vysoká nad Uhom", - "Vysoká pri Morave", - "Vysoké Tatry", - "Vyškovce", - "Vyškovce nad Ipľom", - "Vyšná Boca", - "Vyšná Hutka", - "Vyšná Jablonka", - "Vyšná Jedľová", - "Vyšná Kamenica", - "Vyšná Myšľa", - "Vyšná Olšava", - "Vyšná Pisaná", - "Vyšná Polianka", - "Vyšná Rybnica", - "Vyšná Sitnica", - "Vyšná Slaná", - "Vyšná Šebastová", - "Vyšná Voľa", - "Vyšné Ladičkovce", - "Vyšné nad Hronom", - "Vyšné Nemecké", - "Vyšné Remety", - "Vyšné Repaše", - "Vyšné Ružbachy", - "Vyšný Čaj", - "Vyšný Hrabovec", - "Vyšný Hrušov", - "Vyšný Kazimír", - "Vyšný Klátov", - "Vyšný Komárnik", - "Vyšný Kručov", - "Vyšný Kubín", - "Vyšný Mirošov", - "Vyšný Orlík", - "Vyšný Slavkov", - "Vyšný Tvarožec", - "Vyšný Žipov", - "Zábiedovo", - "Záborie", - "Záborské", - "Zádiel", - "Záhor", - "Záhorie (vojenský obvod)", - "Záhorská Ves", - "Záhradné", - "Zákamenné", - "Zákopčie", - "Zalaba", - "Zálesie", - "Zálesie", - "Zalužice", - "Zamarovce", - "Zámutov", - "Záriečie", - "Záskalie", - "Zatín", - "Závada", - "Závada", - "Závadka", - "Závadka", - "Závadka", - "Zavar", - "Závažná Poruba", - "Závod", - "Zázrivá", - "Zbehňov", - "Zbehy", - "Zboj", - "Zbojné", - "Zborov", - "Zborov nad Bystricou", - "Zbrojníky", - "Zbudská Belá", - "Zbudské Dlhé", - "Zbudza", - "Zbyňov", - "Zeleneč", - "Zemianska Olča", - "Zemianske Kostoľany", - "Zemianske Podhradie", - "Zemianske Sady", - "Zemné", - "Zemplín", - "Zemplínska Nová Ves", - "Zemplínska Široká", - "Zemplínska Teplica", - "Zemplínske Hámre", - "Zemplínske Hradište", - "Zemplínske Jastrabie", - "Zemplínske Kopčany", - "Zemplínsky Branč", - "Zlatá Baňa", - "Zlatá Idka", - "Zlaté", - "Zlaté Klasy", - "Zlaté Moravce", - "Zlatná na Ostrove", - "Zlatník", - "Zlatníky", - "Zlatno", - "Zlatno", - "Zliechov", - "Zohor", - "Zubák", - "Zuberec", - "Zubné", - "Zubrohlava", - "Zvolen", - "Zvončín", - "Žabokreky", - "Žabokreky nad Nitrou", - "Žakarovce", - "Žakovce", - "Žalobín", - "Žarnov", - "Žarnovica", - "Žaškov", - "Žbince", - "Ždaňa", - "Ždiar", - "Žehňa", - "Žehra", - "Železník", - "Želiezovce", - "Želmanovce", - "Žemberovce", - "Žemliare", - "Žiar", - "Žiar", - "Žiar nad Hronom", - "Žihárec", - "Žikava", - "Žilina", - "Žipov", - "Žirany", - "Žitavany", - "Žitavce", - "Žitná - Radiša", - "Žlkovce", - "Župčany", - ) - - streets = ( - "Adámiho", - "Agátová", - "Ahoj", - "Albánska", - "Albrechtova", - "Alejová", - "Alešova", - "Alstrova", - "Alžbetínska", - "Alžbety Gwerkovej", - "Amarelková", - "Ambroseho", - "Ambrova", - "Ambrušova", - "Americká", - "Americké námestie", - "Americké námestie", - "Amurská", - "Andreja Mráza", - "Andreja Plávku", - "Andrusovova", - "Anenská", - "Anenská", - "Anízová", - "Antická", - "Antolská", - "Arménska", - "Astronomická", - "Astrová", - "Avarská", - "Azalková", - "Azovská", - "Babuškova", - "Bagarova", - "Báger", - "Bahniatková", - "Bachova", - "Bajkalská", - "Bajkalská", - "Bajkalská", - "Bajkalská", - "Bajkalská", - "Bajkalská", - "Bajzova", - "Bakošova", - "Balkánska", - "Baltská", - "Bancíkovej", - "Banícka", - "Baničova", - "Baníkova", - "Banskobystrická", - "Banšelova", - "Bardejovská", - "Bárdošova", - "Barónka", - "Bartókova", - "Bartoňova", - "Bartoškova", - "Baštová", - "Batkova", - "Bazalková", - "Bazová", - "Bazovského", - "Bažantia", - "Beblavého", - "Bebravská", - "Beckovská", - "Bedľová", - "Begóniová", - "Belániková", - "Belehradská", - "Belianska", - "Belinského", - "Bellova", - "Belopotockého", - "Beňadická", - "Bencúrova", - "Benediktiho", - "Beniakova", - "Beňovského", - "Bernolákova", - "Beskydská", - "Betliarska", - "Bezekova", - "Bezručova", - "Biela", - "Bielkova", - "Bieloruská", - "Bilíkova", - "Biskupická", - "Björnsonova", - "Blagoevova", - "Blatnická", - "Blatúchová", - "Bleduľová", - "Blumentálska", - "Blyskáčová", - "Bočná", - "Bodliaková", - "Bodrocká", - "Bodvianska", - "Bohrova", - "Bohúňova", - "Bojnická", - "Boragová", - "Borekova", - "Borievková", - "Borinská", - "Borodáčova", - "Borovicová", - "Borská", - "Bosákova", - "Boskovičova", - "Bošániho", - "Botanická", - "Bottova", - "Boženy Němcovej", - "Bôrik", - "Bradáčova", - "Bradlianska", - "Brančská", - "Bratislava-Vinohrady", - "Bratislavská", - "Bratská", - "Brečtanová", - "Brestová", - "Brezová", - "Brezovská", - "Brežná", - "Bridlicová", - "Briežky", - "Brigádnická", - "Brižitská", - "Brnianska", - "Brodná", - "Brodská", - "Brokolicová", - "Bronzová", - "Broskyňová", - "Bršlenová", - "Brumovická", - "Brusnicová", - "Břeclavská", - "Bučinová", - "Budatínska", - "Budatínska", - "Budatínska", - "Búdkova cesta", - "Budovateľská", - "Budyšínska", - "Budyšínska", - "Bujnáková", - "Buková", - "Bukovinská", - "Bukureštská", - "Bulharská", - "Bulíkova", - "Bullova", - "Burgundská", - "Buzalkova", - "Bystrého", - "Bystrická", - "BzovIcka", - "Cabanova", - "Cablkova", - "Cádrova", - "Cesta mládeže", - "Cesta mládeže", - "Cesta na Červený most", - "Cesta na Červený most", - "Cesta na Kamzík", - "Cesta na Klanec", - "Cesta na Senec", - "Cígeľská", - "Cikkerova", - "Cintorínska", - "Cintulova", - "Colnícka", - "Cukrová", - "Cyklámenová", - "Cyprichova", - "Cyprichova", - "Cyrilova", - "Čachtická", - "Čajakova", - "Čajakova", - "Čajkovského", - "Čakanková", - "Čaklovská", - "Čalovská", - "Čapajevova", - "Čapkova", - "Čárskeho", - "Čavojského", - "Čečinová", - "Čelakovského", - "Čerešňová", - "Černicová", - "Černockého", - "Černockého", - "Černyševského", - "Červená", - "Červeňákova", - "Červeňova", - "Česká", - "Československých par", - "Československých tan", - "Čiernohorská", - "Čiernovodská", - "Čierny chodník", - "Čiližská", - "Čipkárska", - "Čmelíkova", - "Čmeľovec", - "Čremchová", - "Čučoriedková", - "Čulenova", - "Daliborovo námestie", - "Damborského", - "Dankovského", - "Dargovská", - "Ďatelinová", - "Daxnerovo námestie", - "Delená", - "Delená cesta", - "Demänovská", - "Desiata", - "Detvianska", - "Devätinová", - "Deviata", - "Devínska cesta", - "Devínska cesta - kam", - "Devínske jazero", - "Dlhá", - "Dlhé diely I.", - "Dlhé diely II.", - "Dlhé diely III.", - "Dneperská", - "Dobrovičova", - "Dobrovičova", - "Dobrovského", - "Dobšinského", - "Dohnalova", - "Dohnányho", - "Doležalova", - "Dolná", - "Dolné Koruny", - "Dolnokorunská", - "Dolnozemská cesta", - "Domašská", - "Domkárska", - "Domové role", - "Donnerova", - "Donovalova", - "Donská", - "Dopravná", - "Dorastenecká", - "Dostojevského rad", - "Dr. Vladimíra Clemen", - "Dražická", - "Drevená", - "Drieňová", - "Drieňová", - "Drieňová", - "Drobného", - "Drotárska cesta", - "Drotárska cesta", - "Drotárska cesta", - "Druhá", - "Druidská", - "Družicová", - "Družobná", - "Družstevná", - "Dubnická", - "Dubová", - "Dúbravčická", - "Dúbravská cesta", - "Dudova", - "Dudvážska", - "Dulovo námestie", - "Dulovo námestie", - "Ďumbierska", - "Dunajská", - "Ďurgalova", - "Dvanásta", - "Dvojkrížna", - "Dvojkrížna", - "Dvořákovo nábrežie", - "Edisonova", - "Egrešová", - "Einsteinova", - "Eisnerova", - "Elektrárenská", - "Estónska", - "Estónska", - "Exnárova", - "F. Kostku", - "Fadruszova", - "Fajnorovo nábrežie", - "Fándlyho", - "Farebná", - "Farská", - "Farského", - "Fazuľová", - "Fedákova", - "Fedinova", - "Ferienčíkova", - "Fialkové údolie", - "Fibichova", - "Fikusová", - "Filiálne nádražie", - "Fláviovská", - "Flöglova", - "Floriánske námestie", - "Fraňa Kráľa", - "Francisciho", - "Francúzskych partizá", - "Frankovská", - "Františkánska", - "Františkánske námest", - "Františka Schmuckera", - "Furdekova", - "Furdekova", - "Furmanská", - "Furmintská", - "Gabčíkova", - "Gagarinova", - "Gagarinova", - "Gagarinova", - "Gajarská", - "Gajc", - "Gajova", - "Galaktická", - "Galandova", - "Galbavého", - "Gallayova", - "Gallova", - "Galvaniho", - "Gašparíkova", - "Gaštanová", - "Gavlovičova", - "Gbelská", - "Gelnická", - "Gemerská", - "Geologická", - "Georgínová", - "Gercenova", - "Gerulatská", - "Gessayova", - "Gettingová", - "Glavica", - "Godrova", - "Gogoľova", - "Goláňova", - "Gondova", - "Goralská", - "Gorazdova", - "Gorkého", - "Gregorovej", - "Gronárska", - "Grösslingova", - "Gruzínska", - "Gunduličova", - "Guothova", - "Gusevova", - "Haanova", - "Haburská", - "Hadia cesta", - "Hadriánová", - "Hagarova", - "Hagarova", - "Hájová", - "Halašova", - "Hálkova", - "Hálova", - "Hamuliakova", - "Hanácka", - "Handlovská", - "Hanulova", - "Hanulova", - "Hany Meličkovej", - "Hargašova", - "Harmanecká", - "Harmincova", - "Hasičská", - "Hattalova", - "Havelkova", - "Havlíčkova", - "Havrania", - "Haydnova", - "Hečkova", - "Herlianska", - "Herlianska", - "Heydukova", - "Heyrovského", - "Hlaváčikova", - "Hlavatého", - "Hlavná", - "Hlavné námestie", - "Hlbinná", - "Hlboká cesta", - "Hlboká cesta", - "Hlinická", - "Hlinická", - "Hlivová", - "Hlohová", - "Hlučínska", - "Hnilecká", - "Hodálova", - "Hodonínska", - "Hodonínska", - "Hodonínska", - "Hodžovo námestie", - "Holekova", - "Holíčska", - "Hollého", - "Holubyho", - "Homolova", - "Hontianska", - "Horárska", - "Horcová", - "Horčičná", - "Horná", - "Horná Vančurová", - "Hornádska", - "Horné Židiny", - "Horská", - "Horská", - "Horská", - "Hospodárska", - "Hrabový chodník", - "Hrad", - "Hradištná", - "Hradná", - "Hradné údolie", - "Hradská", - "Hrachová", - "Hraničiarska", - "Hraničná", - "Hraničný priechod-Ču", - "Hrdličkova", - "Hrebendova", - "Hríbová", - "Hriňovská", - "Hrobákova", - "Hrobárska", - "Hroboňova", - "Hronska", - "Hroznová", - "Hrušková", - "Hrušovská", - "Hubeného", - "Hubeného", - "Hudecova", - "Humenské námestie", - "Hummelova", - "Hurbanovo námestie", - "Hurbanovo námestie", - "Husova", - "Húščavova", - "Hutnícka", - "Hviezdna", - "Hviezdicová", - "Hviezdoslavova", - "Hviezdoslavovo námes", - "Hyacintová", - "Hybešova", - "Hydinárska", - "Hýrošova", - "Chalupkova", - "Charkovská", - "Chemická", - "Chladná", - "Chlumeckého", - "Chmeľová", - "Chorvátska", - "Chorvátska", - "Chotárna", - "Chrasťová", - "Chrenová", - "Chrobákova", - "Ihličnatá", - "Ihrisková", - "Iľjušinova", - "Ilkovičova", - "Ílová", - "Ilýrska", - "Imelová", - "Inovecká", - "Inovecká", - "Ipeľská", - "Irisová", - "Irkutská", - "Iršajská", - "Iskerníková", - "Istrijská", - "Ivana Blazeviča", - "Ivana Bukovčana", - "Ivana Horvátha", - "Ivánska cesta", - "J.C.Hronského", - "Jabloňová", - "Jačmenná", - "Jadranská", - "Jadrová", - "Jahodová", - "Jakabova", - "Jakubíkova", - "Jakubovo námestie", - "Jakubská", - "Jalovcová", - "Jamnického", - "Jána Jonáša", - "Jána Poničana", - "Jána Raka", - "Jána Smreka", - "Jána Stanislava", - "Janáčkova", - "Jančova", - "Janíkove role", - "Janka Kráľa", - "Jankolova", - "Jánošíkova", - "Jánoškova", - "Janotova", - "Janšákova", - "Jantárová", - "Jantárová", - "Jantárová cesta", - "Jarabinková", - "Jarná", - "Jaroslavova", - "Jarošova", - "Jasencová", - "Jaseňová", - "Jaskový rad", - "Jasná", - "Jasovská", - "Jastrabia", - "Jašíkova", - "Javorinská", - "Javorová", - "Jazdecká", - "Jazerná", - "Jazmínová", - "Jedenásta", - "Jedlíkova", - "Jedľová", - "Jégého", - "Jegeneš", - "Jelačičova", - "Jelenia", - "Jelšová", - "Jeséniova", - "Jesenná", - "Jesenského", - "Jesienková", - "Jiráskova", - "Jiskrova", - "Jókaiho", - "Jozefa Mikisitsa", - "Jozefa Vachovského", - "Jozefská", - "Júlová", - "Junácka", - "Jungmannova", - "Júnová", - "Jurigovo námestie", - "Jurkovičova", - "Jurovského", - "Jurská", - "Justičná", - "K horárskej studni", - "K lomu", - "K pasienkom", - "K Železnej studienke", - "Kadnárova", - "Kadnárova", - "Kadnárova", - "Kadnárova", - "Kadnárova", - "Kafendova", - "Kalinčiakova", - "Kalinová", - "Kalištná", - "Kaméliová", - "Kamenárska", - "Kamenné námestie", - "Kamilková", - "Kamilková", - "Kamzík", - "Kapicova", - "Kapitulská", - "Kapitulský dvor", - "Kaplinská", - "Kapucínska", - "Kapušianska", - "Karadžičova", - "Karadžičova", - "Karadžičova", - "Karadžičova", - "Karloveská", - "Karloveské rameno", - "Karpatská", - "Karpatské námestie", - "Kašmírska", - "Kaštielska", - "Kataríny Brúderovej", - "Kaukazská", - "Kazanská", - "Kazanská", - "Kazanská", - "Keltská", - "Kempelenova", - "Ketelec", - "Kežmarské námestie", - "Kladnianska", - "Klariská", - "Klásková", - "Kláštorská", - "Klatovská", - "Klatovská", - "Klemensova", - "Klenová", - "Klimkovičova", - "Klincová", - "Klobučnícka", - "Klokočova", - "Kľukatá", - "Kĺzavá", - "Kmeťovo námestie", - "Knižková dolina", - "Koceľova", - "Kočánkova", - "Kohútova", - "Koľajná", - "Kolárska", - "Kolískova", - "Kollárova", - "Kollárovo námestie", - "Kollárovo námestie", - "Kolmá", - "Komárňanská", - "Komárnická", - "Komárnická", - "Komárovská", - "Komenského námestie", - "Kominárska", - "Komonicová", - "Koncová", - "Koniarkova", - "Konopná", - "Konvalinková", - "Konventná", - "Kopanice", - "Kopčianska", - "Koperníkova", - "Koprivnická", - "Koprivnická", - "Koprivnická", - "Korabinského", - "Kórejská", - "Koreničova", - "Koreňová", - "Korunská", - "Korytnická", - "Kosatcová", - "Kosodrevinová", - "Kostlivého", - "Kostolná", - "Košická", - "Košická", - "Košická", - "Kovácsova", - "Kováčska", - "Kovorobotnícka", - "Kovová", - "Kozia", - "Koziarka", - "Kozičova", - "Kozmonautická", - "Kožušnícka", - "Kôprová", - "Kôstková", - "Krahulčia", - "Krajinská", - "Krajinská cesta", - "Krajná", - "Krakovská", - "Kráľovské údolie", - "Krasinského", - "Kraskova", - "Krásna", - "Krásnohorská", - "Krasovského", - "Kratiny", - "Krátka", - "Krčméryho", - "Kremeľská", - "Kremencová", - "Kremnická", - "Kresánkova", - "Kríková", - "Krivá", - "Križkova", - "Krížna", - "Krížna", - "Krížna", - "Krížna", - "Krmanova", - "Krokusová", - "Krompašská", - "Krupinská", - "Kubačova", - "Kubániho", - "Kubínska", - "Kudlákova", - "Kuklovská", - "Kúkoľová", - "Kukučínova", - "Kukuričná", - "Kulíškova", - "Kultúrna", - "Kuneradská", - "Kupeckého", - "Kúpeľná", - "Kurucova", - "Kutlíkova", - "Kútska", - "Kutuzovova", - "Kuzmányho", - "Kvačalova", - "Kvetinárska", - "Kvetná", - "Kýčerského", - "Kyjevská", - "Kysucká", - "Laborecká", - "Lackova", - "Ladislava Batthyányh", - "Ladislava Dérera", - "Ladislava Sáru", - "Ľadová", - "Ladzianskeho", - "Lachova", - "Ľaliová", - "Lamačská cesta", - "Lamačská cesta", - "Lamačská cesta", - "Lamanského", - "Landauova", - "Landererova", - "Langsfeldova", - "Ľanová", - "Laskomerského", - "Laténská", - "Latorická", - "Laučekova", - "Laurinská", - "Lazaretská", - "Lazaretská", - "Leánska", - "Lediny", - "Legerského", - "Legionárska", - "Legionárska", - "Lehotského", - "Lehotského", - "Leknová", - "Lenardova", - "Lermontovova", - "Lesná", - "Lesnícka", - "Leškova", - "Letecká", - "Letisko M.R.Štefánik", - "Letná", - "Levanduľová", - "Levárska", - "Levická", - "Levočská", - "Lidická", - "Lieskovec", - "Lieskovcová", - "Lieskovská cesta", - "Lietavská", - "Lichardova", - "Likavská", - "Limbová", - "Linzbothova", - "Lipnicová", - "Lipová", - "Lipského", - "Liptovská", - "Lisovňa", - "Listová", - "Líščie nivy", - "Líščie údolie", - "Litovská", - "Lodná", - "Lombardiniho", - "Lomnická", - "Lomonosovova", - "Longobardská", - "Lónyaiová", - "Lopenícka", - "Lotyšská", - "Lovinského", - "Lozornianská", - "Ľubietovská", - "Ľubinská", - "Ľubľanská", - "Ľubochnianska", - "Ľubovnianska", - "Ľubovníková", - "Ľudové námestie", - "Ľudovíta Fullu", - "Luhačovická", - "Lužická", - "Lúčna", - "Lužná", - "Lýcejná", - "Lykovcová", - "Lysákova", - "M. Hella", - "Madáchova", - "Maďarská", - "Magnetová", - "Magnezitová", - "Magnóliová", - "Magurská", - "Macharova", - "Máchova", - "Majakovského", - "Majerníkova", - "Majerská", - "Májkova", - "Majoránová", - "Májová", - "Maková", - "Makovického", - "Malá", - "Malagová", - "Malé pálenisko", - "Malinová", - "Malodunajská", - "Malokarpatské námest", - "Malý Draždiak", - "Malý trh", - "Mamateyova", - "Mamateyova", - "Mandľová", - "Mandľovníková", - "Mánesovo námestie", - "Margarétková", - "Marhuľová", - "Mariánska", - "Marie Curie-Sklodows", - "Márie Medveďovej", - "Markova", - "Marótyho", - "Martákovej", - "Martinčekova", - "Martinčekova", - "Martinengova", - "Martinská", - "Mateja Bela", - "Matejkova", - "Matičná", - "Mätová", - "Matúškova", - "Matúšova", - "Mečíkova", - "Medená", - "Medová", - "Medovková", - "Medzierka", - "Medzilaborecká", - "Mesačná", - "Mestská", - "Meteorová", - "Metodova", - "Mickiewiczova", - "Mierová", - "Michalská", - "Mikovíniho", - "Mikulášska", - "Milana Marečka", - "Milana Pišúta", - "Miletičova", - "Miletičova", - "Mišíkova", - "Mišíkova", - "Mišíkova", - "Mládežnícka", - "Mliekárenská", - "Mlynarovičova", - "Mlynská", - "Mlynská dolina", - "Mlynská dolina", - "Mlynská dolina", - "Mlynské luhy", - "Mlynské nivy", - "Mlynské nivy", - "Mlynské nivy", - "Mlynské nivy", - "Mlynské nivy", - "Modranská", - "Modricová", - "Modrý chodník", - "Mojmírova", - "Mokráň záhon", - "Mokrohájska cesta", - "Moldavská", - "Molecova", - "Monardová", - "Morava", - "Moravská", - "Morušova", - "Moskovská", - "Most SNP", - "Mostná", - "Mostová", - "Mošovského", - "Motýlia", - "Moyšova", - "Moyzesova", - "Mozartova", - "Mramorová", - "Mraziarenská", - "Mrázova", - "Mudrochova", - "Mudroňova", - "Mudroňova", - "Mudroňova", - "Muchovo námestie", - "Muránska", - "Murgašova", - "Murnice", - "Muškátová", - "Muštová", - "Múzejná", - "Myjavská", - "Mýtna", - "Mýtna", - "Na Baránku", - "Na barine", - "Na Brezinách", - "Na doline", - "Na grbe", - "Na Grunte", - "Na Holom vrchu", - "Na hrádzi", - "Na Hrebienku", - "Na hriadkach", - "Na Kalvárii", - "Na kaštieli", - "Na kopci", - "Na križovatkách", - "Na lánoch", - "Na medzi", - "Na mýte", - "Na pántoch", - "Na pasekách", - "Na paši", - "Na pažiti", - "Na piesku", - "Na Revíne", - "Na Riviére", - "Na rozhliadke", - "Na Sitine", - "Na skale", - "Na Slanci", - "Na Slavíne", - "Na spojke", - "Na stráni", - "Na Štyridsiatku", - "Na úvrati", - "Na varte", - "Na Vlkovkách", - "Na vrátkach", - "Na vŕšku", - "Na vyhliadke", - "Na výslní", - "Na Zlatej nohe", - "Nábělkova", - "Nábrežie arm. gen. L", - "Nábrežná", - "Nad Dunajom", - "Nad Gronárom", - "Nad jazierkom", - "Nad kúriou", - "Nad lomom", - "Nad lúčkami", - "Nad lúčkami", - "Nad ostrovom", - "Nad Sihoťou", - "Nákovná", - "Nákupná", - "Námestie 1. mája", - "Námestie 6. apríla", - "Námestie Alexandra D", - "Námestie Andreja Hli", - "Námestie Biely kríž", - "Námestie Hraničiarov", - "Námestie Jána Kostru", - "Námestie Jána Pavla", - "Námestie Ľudovíta Št", - "Námestie Martina Ben", - "Námestie Rodiny", - "Námestie slobody", - "Námestie slobody", - "Námestie SNP", - "Námestie SNP", - "Námestie sv. Františ", - "Námestie sv. Petra a", - "Narcisová", - "Nedbalova", - "Nechtíková", - "Nejedlého", - "Nekrasovova", - "Nemčíkova", - "Nerudova", - "Nevädzová", - "Nevská", - "Nezábudková", - "Nezvalova", - "Niťová", - "Nitrianska", - "Nížinná", - "Nobelova", - "Nobelovo námestie", - "Nová", - "Nová Bellova", - "Nová hora", - "Novackého", - "Nové pálenisko", - "Nové záhrady I", - "Nové záhrady II", - "Nové záhrady III", - "Nové záhrady IV", - "Nové záhrady V", - "Nové záhrady VI", - "Nové záhrady VII", - "Novinárska", - "Novobanská", - "Novodvorská", - "Novohorská", - "Novohradská", - "Novosadná", - "Novosvetská", - "Novosvetská", - "Novosvetská", - "Novoveská", - "Nový záhon", - "Obežná", - "Obchodná", - "Oblačná", - "Oblúková", - "Očovská", - "Odbojárov", - "Odborárska", - "Odborárske námestie", - "Odborárske námestie", - "Odeská", - "Ohnicová", - "Okánikova", - "Okružná", - "Olbrachtova", - "Oleandrová", - "Olejkárska", - "Olivová", - "Olšová", - "Ondavská", - "Ondrejovova", - "Ondrejská", - "Opavská", - "Opletalova", - "Oráčska", - "Oravská", - "Orechová", - "Orechová cesta", - "Orechový rad", - "Orenburská", - "Orgovánová", - "Orchideová", - "Oriešková", - "Ormisova", - "Osadná", - "Osiková", - "Oskorušová", - "Osloboditeľská", - "Ostravská", - "Ostredková", - "Ostružinová", - "Osuského", - "Osvetová", - "Otonelská", - "Ovčiarska", - "Ovocná", - "Ovručská", - "Ovsená", - "Ovsištské námestie", - "Ožvoldíkova", - "Ôsma", - "Pajštúnska", - "Palackého", - "Palárikova", - "Palárikova", - "Palinová", - "Palisády", - "Palisády", - "Palisády", - "Palkovičova", - "Palmová", - "Panenská", - "Pankúchova", - "Panónska cesta", - "Panská", - "Papánkovo námestie", - "Papraďová", - "Parcelná", - "Páričkova", - "Parková", - "Partizánska", - "Pasienková", - "Pasienky", - "Pastierska", - "Paulínyho", - "Pave Vukoviča", - "Pavla Blaha", - "Pavla Horova", - "Pavlovičova", - "Pavlovova", - "Pavlovská", - "Pažického", - "Pažítková", - "Pečnianska", - "Pekná cesta", - "Pekná cesta", - "Pekná cesta", - "Pekná vyhliadka", - "Pekníkova", - "Pernecká", - "Perličková", - "Pestovateľská", - "Petara Pasicha", - "Peterská", - "Petöfiho", - "Petržalská", - "Petúniová", - "Pezinská", - "Piata", - "Pieskovcová", - "Piesočná", - "Piešťanská", - "Pifflova", - "Pilárikova", - "Pílová", - "Píniová", - "Pionierska", - "Pionierska", - "Pivoňková", - "Plachého", - "Plachého", - "Planckova", - "Planét", - "Plánky", - "Platanová", - "Plátenícka", - "Plavecká", - "Plickova", - "Pluhová", - "Plynárenská", - "Plzenská", - "Pobrežná", - "Pod agátmi", - "Pod Bôrikom", - "Pod brehmi", - "Pod gaštanmi", - "Pod Kalváriou", - "Pod Klepáčom", - "Pod Kobylou", - "Pod Krásnou hôrkou", - "Pod lesom", - "Pod lipami", - "Pod Lipovým", - "Pod násypom", - "Pod Rovnicami", - "Pod skalou", - "Pod srdcom", - "Pod Strážami", - "Pod Vachmajstrom", - "Pod Válkom", - "Pod vinicami", - "Pod záhradami", - "Pod záhradami", - "Pod Zečákom", - "Podbeľová", - "Podbrezovská", - "Podháj", - "Podhorská", - "Podhorského", - "Podjavorinskej", - "Podkarpatská", - "Podkerepušky", - "Podkolibská", - "Podkorunská", - "Podlesná", - "Podlučinského", - "Podniková", - "Podpriehradná", - "Podtatranského", - "Podunajská", - "Podunajská", - "Podzáhradná", - "Pohánková", - "Pohraničníkov", - "Pohronská", - "Polárna", - "Polianky", - "Poľná", - "Poľnohospodárska", - "Poľný mlyn", - "Poloreckého", - "Poľská", - "Poludníková", - "Poniklecová", - "Popolná", - "Popovova", - "Popradská", - "Porubského", - "Poštová", - "Potočná", - "Považanova", - "Považská", - "Povoznícka", - "Povraznícka", - "Povraznícka", - "Požiarnická", - "Pračanská", - "Prasličková", - "Pražská", - "Pražská", - "Predstaničné námesti", - "Prepoštská", - "Prešernova", - "Prešovská", - "Prešovská", - "Prešovská", - "Pri Bielom kríži", - "Pri dvore", - "Pri Dynamitke", - "Pri Habánskom mlyne", - "Pri hradnej studni", - "Pri hrádzi", - "Pri kolíske", - "Pri kríži", - "Pri mlyne", - "Pri Rochu", - "Pri seči", - "Pri Starej Prachárni", - "Pri Starom háji", - "Pri starom letisku", - "Pri Starom Mýte", - "Pri strelnici", - "Pri Struhe", - "Pri Suchom mlyne", - "Pri Šajbách", - "Pri tehelni", - "Pri trati", - "Pri vinohradoch", - "Pri zvonici", - "Priama cesta", - "Pribylinská", - "Pribinova", - "Pribinova", - "Pribinova", - "Pribišova", - "Prídanky", - "Prídavková", - "Priečna", - "Priehradná", - "Priekopnícka", - "Priekopy", - "Priemyselná", - "Priemyselná", - "Prievozská", - "Prievozská", - "Prievozská", - "Príjazdná", - "Príkopova", - "Primaciálne námestie", - "Prímoravská", - "Prípojná", - "Prístav", - "Prístavná", - "Prokofievova", - "Prokopa Veľkého", - "Prokopova", - "Prúdová", - "Prvá", - "Prvosienková", - "Pšeničná", - "Púchovská", - "Púpavová", - "Pustá", - "Puškinova", - "Pútnická", - "Pyrenejská", - "Rácova", - "Račianska", - "Račianska", - "Račianska", - "Račianska", - "Račianska", - "Račianska", - "Račianske mýto", - "Radarová", - "Rádiová", - "Radlinského", - "Radničná", - "Radničné námestie", - "Radvanská", - "Rajčianska", - "Rajecká", - "Rajská", - "Rajtákova", - "Raketová", - "Rákosová", - "Rascová", - "Rascová", - "Rastislavova", - "Rastlinná", - "Rašelinová", - "Ráztočná", - "Rázusovo nábrežie", - "Ražná", - "Rebarborová", - "Regrútska", - "Remeselnícka", - "Repašského", - "Repíková", - "Repná", - "Rešetkova", - "Revolučná", - "Révová", - "Revúcka", - "Rezedová", - "Riazanská", - "Riazanská", - "Ribayová", - "Ríbezľová", - "Riečna", - "Rigeleho", - "Rímska", - "Rízlingová", - "Riznerova", - "Robotnícka", - "Roľnícka", - "Romanova", - "Röntgenova", - "Rosná", - "Rostovská", - "Rošického", - "Rovná", - "Rovniankova", - "Rovníková", - "Royova", - "Rozálska", - "Rozmarínová", - "Rozvodná", - "Rožňavská", - "Rožňavská", - "Rožňavská", - "Rubínová", - "Rubinsteinova", - "Rudnayovo námestie", - "Rudnícka", - "Rulandská", - "Rumančeková", - "Rumunská", - "Rusovce", - "Rusovská cesta", - "Rustaveliho", - "Ružičková", - "Ružinovská", - "Ružinovská", - "Ružinovská", - "Ružomberská", - "Ružová dolina", - "Ružová dolina", - "Rybárska brána", - "Rybné námestie", - "Rybničná", - "Rybničná", - "Rybničná", - "Rýdziková", - "Rytierska", - "Sabinovská", - "Sabinovská", - "Sad Janka Kráľa", - "Sadmelijská", - "Sadová", - "Samova", - "Saratovská", - "Sartorisova", - "Sasanková", - "Sasinkova", - "Savignonská", - "Seberíniho", - "Sečovská", - "Sedlárska", - "Sedmokrásková", - "Segnáre", - "Segnerova", - "Sekulská", - "Sekurisova", - "Sekýľska", - "Semenárska", - "Semianova", - "Semilonská", - "Senická", - "Senná", - "Septimiova", - "Schengenská", - "Schillerova", - "Schneidera -Trnavské", - "Schody pri starej vo", - "Sibírska", - "Siedma", - "Sienkiewiczova", - "Silvánska", - "Sinokvetná", - "Skalická cesta", - "Skalná", - "Skerličova", - "Sklabinská", - "Sklenárova", - "Sklenárska", - "Skoroceľová", - "Skuteckého", - "Skýcovská", - "Sládkovičova", - "Sladová", - "Slatinská", - "Slávičie údolie", - "Slavín", - "Slepá", - "Sliačska", - "Sliezska", - "Slivková", - "Sĺňavská", - "Slnečná", - "Slnečnicová", - "Slovanské nábrežie", - "Slovienska", - "Slovinec", - "Slovinská", - "Slovnaftská", - "Slovnaftská", - "Slowackého", - "Smetanova", - "Smikova", - "Smolenická", - "Smolnícka", - "Smrečianska", - "Smrečianska", - "Snežienková", - "Soferove schody", - "Socháňova", - "Sochorova", - "Sokolíkova", - "Sokolská", - "Solivarská", - "Sološnická", - "Somolického", - "Somolického", - "Sosnová", - "Sovia", - "Spádová", - "Spätná cesta", - "Spišská", - "Spojná", - "Spoločenská", - "Sputniková", - "Sreznevského", - "Srnčia", - "Stachanovská", - "Stálicová", - "Stanekova", - "Staničná", - "Stará Černicová", - "Stará Ivánska cesta", - "Stará Klenová", - "Stará Prievozská", - "Stará Stupavská", - "Stará Vajnorská", - "Stará vinárska", - "Staré Grunty", - "Staré ihrisko", - "Staré záhrady", - "Starhradská", - "Starohájska", - "Staromestská", - "Staromlynská", - "Starorímska", - "Staroturský chodník", - "Stavbárska", - "Staviteľská", - "Stepná cesta", - "Stodolova", - "Stoklasová", - "Stolárska", - "Strakova", - "Stratená", - "Strážna", - "Strážnická", - "Strážny dom", - "Strečnianska", - "Stredná", - "Strelecká", - "Strelkova", - "Strmá cesta", - "Strmé sady", - "Strmý bok", - "Strmý vŕšok", - "Strojnícka", - "Stromová", - "Stropkovská", - "Struková", - "Studená", - "Studenohorská", - "Stuhová", - "Stupavská", - "Súbežná", - "Sudová", - "Súhvezdná", - "Suchá", - "Suché mýto", - "Suchohradská", - "Súkennícka", - "Súľovská", - "Sumbalova", - "Súmračná", - "Súťažná", - "Svätého Vincenta", - "Svätoplukova", - "Svätoplukova", - "Svätovojtešská", - "Svébska", - "Svetlá", - "Svíbová", - "Svidnícka", - "Svoradova", - "Svrčia", - "Syslia", - "Šafárikovo námestie", - "Šafárikovo námestie", - "Šafránová", - "Šagátova", - "Šachorová", - "Šalátová", - "Šaldova", - "Šalviová", - "Šamorínska", - "Šancová", - "Šancová", - "Šancová", - "Šancová", - "Šándorova", - "Šarišská", - "Šášovská", - "Šaštínska", - "Ševčenkova", - "Šiesta", - "Šikmá", - "Šinkovské", - "Šintavská", - "Šípková", - "Šípová", - "Šíravská", - "Široká", - "Škarniclova", - "Školská", - "Škovránčia", - "Škultétyho", - "Šoltésovej", - "Šošovicová", - "Špieszova", - "Špitálska", - "Športová", - "Šrobárovo námestie", - "Šťastná", - "Štedrá", - "Štefana Králika", - "Štefana Králika", - "Štefana Majera", - "Štefánikova", - "Štefánikova", - "Štefánikova", - "Štefanovičova", - "Štefunkova", - "Štepná", - "Štetinova", - "Štiavnická", - "Štítová", - "Štrbská", - "Štúrova", - "Štvrtá", - "Štyndlova", - "Šulekova", - "Šulekova", - "Šulekova", - "Šumavská", - "Šuňavcova", - "Šúrska", - "Šustekova", - "Šuty", - "Švabinského", - "Švantnerova", - "Tabaková", - "Tablicova", - "Táborská", - "Tajovského", - "Talichova", - "Tallerova", - "Tatranská", - "Tavaríkova osada", - "Tbiliská", - "Tehelná", - "Tehelňa", - "Tehliarska", - "Technická", - "Tekovská", - "Tekvicová", - "Telocvičná", - "Tematínska", - "Teplická", - "Terchovská", - "Teslova", - "Tešedíkova", - "Tetmayerova", - "Thurzova", - "Tibenského", - "Tibériová", - "Tichá", - "Tilgnerova", - "Timravina", - "Tobrucká", - "Tokajícka", - "Tolstého", - "Tománkova", - "Tomanova", - "Tomášikova", - "Tomášikova", - "Tomášikova", - "Tomášikova", - "Tomášikova", - "Toplianska", - "Topoľčianska", - "Topoľová", - "Toryská", - "Továrenská", - "Trajánova", - "Tramínová", - "Tranovského", - "Trávna", - "Trebišovská", - "Trebišovská", - "Trebišovská", - "Trenčianska", - "Treskoňova", - "Tretia", - "Trhová", - "Trinásta", - "Trnavská cesta", - "Trnavská cesta", - "Trnavská cesta", - "Trnavská cesta", - "Trnavská cesta", - "Trnavské mýto", - "Trnková", - "Tŕňová", - "Trojdomy", - "Trojičné námestie", - "Trstínska", - "Tučkova", - "Tuhovská", - "Tulipánová", - "Tupého", - "Tupolevova", - "Turbínova", - "Turčianska", - "Turistická", - "Turnianska", - "Tvarožkova", - "Tylova", - "Tymiánová", - "Tyršovo nábrežie", - "Učiteľská", - "Údernícka", - "Údolná", - "Uhliská", - "Uhorková", - "Uhrova", - "Uhrovecká", - "Ukrajinská", - "Ulica 1. mája", - "Ulica 29. augusta", - "Ulica 29. augusta", - "Ulica 29. augusta", - "Ulica 29. augusta", - "Ulica 8. mája", - "Ulica Alviano", - "Ulica Imricha Karvaš", - "Ulica J. Valašťana D", - "Ulica Janka Alexyho", - "Ulica Jozefa Krónera", - "Ulica Juraja Hronca", - "Ulica Karola Adlera", - "Ulica kpt. Rašu", - "Ulica Leopoldov maje", - "Ulica Ľuda Zúbka", - "Ulica Nad Válkom", - "Ulica padlých hrdino", - "Ulica Pri gaštanovej", - "Ulica Pri pastierni", - "Ulica Pri Vápeníckom", - "Ulica Pri vodnej nád", - "Ulica svornosti", - "Ulica Viktora Tegelh", - "Úprkova", - "Úradnícka", - "Uránová", - "Urbánkova", - "Urbárska", - "Ursínyho", - "Uršulínska", - "Ušiakova", - "Úvozná", - "Uzbecká", - "Úzka", - "Úžiny", - "V záhradách", - "Vajanského nábrežie", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Vajnorská", - "Valachovej", - "Valašská", - "Valchárska", - "Vančurova", - "Vansovej", - "Vápencová", - "Vápenka", - "Vápenná", - "Varínska", - "Varšavská", - "Varšavská", - "Vavilovova", - "Vavrinecká", - "Vavrínova", - "Vazovova", - "Vážska", - "Včelárska", - "Velehradská", - "Veľké Štepnice", - "Veltlínska", - "Vendelínska", - "Ventúrska", - "Veterná", - "Veternicová", - "Vetvárska", - "Vetvová", - "Vidlicová", - "Viedenská cesta", - "Viedenská cesta", - "Viedenská cesta", - "Vietnamská", - "Vígľašská", - "Vihorlatská", - "Viktorínova", - "Vilová", - "Viničná", - "Vínna", - "Vinohradnícka", - "Višňová", - "Víťazná", - "Vlárska", - "Vlastenecké námestie", - "Vlčie hrdlo", - "Vlčkova", - "Vlčkova", - "Vlčkova", - "Vodné elektrárne", - "Vodný vrch", - "Vosková", - "Votrubova", - "Vrábeľská", - "Vrakunská", - "Vrakunská cesta", - "Vrakunská cesta", - "Vrančovičova", - "Vranovská", - "Vrbánska", - "Vrbenského", - "Vŕbová", - "Vresová", - "Vretenová", - "Vrchná", - "Vrútocká", - "Vtáčikova", - "Vtáčnik", - "Vyhliadka", - "Vyhnianska cesta", - "Výhonská", - "Východná", - "Vysoká", - "Vysokohorská", - "Vyšehradská", - "Vyšná", - "Výtvarná", - "Vývojová", - "Wattova", - "Wilsonova", - "Wolkrova", - "Za bránou", - "Za farou", - "Za Kasárňou", - "Za mlynom", - "Za sokolovňou", - "Za Stanicou", - "Za tehelňou", - "Záborského", - "Zadunajská cesta", - "Záhorácka", - "Záhorská", - "Záhradkárska", - "Záhradná", - "Záhradnícka", - "Záhradnícka", - "Záhradnícka", - "Záhradnícka", - "Záhrady", - "Záhrebská", - "Záhrebská", - "Záhumenná", - "Záhumenská", - "Zákutie", - "Zálužická", - "Zámocká", - "Zámocké schody", - "Zámočnícka", - "Západná", - "Západný rad", - "Záporožská", - "Záruby", - "Zátišie", - "Zátureckého", - "Zavadilová", - "Závadská", - "Záveterná", - "Závodná", - "Závodníkova", - "Zbrody", - "Zdravotnícka", - "Zelená", - "Zeleninová", - "Zelenohorská", - "Zelinárska", - "Zhorínska", - "Zidiny", - "Zimná", - "Zlatá", - "Zlaté piesky", - "Zlaté schody", - "Zlatohorská", - "Znievska", - "Zohorská", - "Zochova", - "Zrinského", - "Zvolenská", - "Zvončeková", - "Žabí majer", - "Žabotova", - "Žarnovická", - "Žatevná", - "Žehrianska", - "Železná", - "Železničiarska", - "Železničná", - "Želiarska", - "Žellova", - "Žiacka", - "Žiarska", - "Židovská", - "Žihľavová", - "Žilinská", - "Žilinská", - "Žitavská", - "Žitná", - "Živnostenská", - "Žižkova", - "Žulová", - "Župné námestie", - "Borágova", - "Parenicová", - "Loparová", - "Jegnešská", - "Jonatanová", - "Monardová", - "Perličková", - ) - - states = ( - "Bratislavský kraj", - "Trnavský kraj", - "Trenčiansky kraj", - "Nitriansky kraj", - "Žilinský kraj", - "Banskobystrický kraj", - "Prešovský kraj", - "Košický kraj", - ) - - countries = ( - "Afganistan", - "Afghanistanská islamská republika", - "Ålandy", - "Albánsko", - "Albánska republika", - "Alžírsko", - "Alžírska demokratická ľudová republika", - "Americká Samoa", - "Andorra", - "Andorrské kniežatstvo", - "Angola", - "Angolská republika", - "Anguilla", - "Antarktída", - "Antigua a Barbuda", - "Argentína", - "Argentínska republika", - "Arménsko", - "Arménska republika", - "Aruba", - "Austrália", - "Rakúsko", - "Rakúska republika", - "Azerbajdžan", - "Azerbajdžanská republika", - "Bahamy", - "Bahamské spoločenstvo", - "Bahrajn", - "Bahrajnské kráľovstvo", - "Bangladéš", - "Bangladéšska ľudová republika", - "Barbados", - "Bielorusko", - "Bieloruská republika", - "Belgicko", - "Belgické kráľovstvo", - "Belize", - "Benin", - "Beninská republika", - "Bermudy", - "Bhután", - "Bhutánske kráľovstvo", - "Bolívijská republika", - "Bolívijská republika", - "Bolívia", - "Bosna a Hercegovina", - "Republika Bosny a Hercegoviny", - "Botswana", - "Botswanská republika", - "Bouvetov ostrov", - "Brazília", - "Brazílska federatívna republika", - "Britské indickooceánske územie", - "Brunejsko-darussalamský štát", - "Bulharsko", - "Bulharská republika", - "Burkina Faso", - "Burundi", - "Burundská republika", - "Kambodža", - "Kambodžské kráľovstvo", - "Kamerun", - "Kamerunská republika", - "Kanada", - "Kapverdy", - "Kapverdská republika", - "Kajmanie ostrovy", - "Stredoafrická republika", - "Čad", - "Čadská republika", - "Čile", - "Čilská republika", - "Čína", - "Čínska ľudová republika", - "Vianočný ostrov", - "Kokosové ostrovy", - "Kolumbia", - "Kolumbijská republika", - "Komory", - "Komorský zväz", - "Kongo", - "Konžská republika", - "Konžská demokratická republika", - "Cookove ostrovy", - "Kostarika", - "Kostarická republika", - "Pobrežie Slonoviny", - "Republika Pobrežia Slonoviny", - "Chorvátsko", - "Chorvátska republika", - "Kuba", - "Kubánska republika", - "Cyprus", - "Cyperská republika", - "Česká republika", - "Dánsko", - "Dánske kráľovstvo", - "Džibutsko", - "Džibutská republika", - "Dominika", - "Dominické spoločenstvo", - "Dominikánska republika", - "Ekvádor", - "Ekvádorská republika", - "Egypt", - "Egyptská arabská republika", - "Salvádor", - "Salvádorská republika", - "Rovníková Guinea", - "Republika Rovníkovej Guiney", - "Eritrea", - "Estónsko", - "Estónska republika", - "Etiópia", - "Etiópska federatívna demokratická republika", - "Falklandy (Malvíny)", - "Faerské ostrovy", - "Fidži", - "Fínsko", - "Fínska republika", - "Francúzsko", - "Francúzska republika", - "Francúzska Guyana", - "Francúzska Polynézia", - "Francúzske južné a antarktické územia", - "Gabon", - "Gabonská republika", - "Gambia", - "Gambijská republika", - "Gruzínsko", - "Nemecko", - "Nemecká spolková republika", - "Ghana", - "Ghanská republika", - "Gibraltár", - "Grécko", - "Grécka republika", - "Grónsko", - "Grenada", - "Guadeloupe", - "Guam", - "Guatemala", - "Guatemalská republika", - "Guernsey", - "Guinea", - "Guinejská republika", - "Guinea-Bissau", - "Guinejsko-bissauská republika", - "Guyana", - "Guyanská kooperatívna republika", - "Haiti", - "Haitská republika", - "Heardov ostrov", - "Svätá stolica (Vatikánsky mestský štát)", - "Honduras", - "Honduraská republika", - "Hongkong", - "Osobitná administratívna oblasť Číny Hongkong", - "Maďarsko", - "Maďarská republika", - "Island", - "Islandská republika", - "India", - "Indická republika", - "Indonézia", - "Indonézska republika", - "Iránska islamská republika", - "Iránska islamská republika", - "Irak", - "Iracká republika", - "Írsko", - "Man", - "Izrael", - "Izraelský štát", - "Taliansko", - "Talianska republika", - "Jamajka", - "Japonsko", - "Jersey", - "Jordánsko", - "Jordánske hášimovské kráľovstvo", - "Kazachstan", - "Kazašská republika", - "Keňa", - "Kenská republika", - "Kiribati", - "Kiribatská republika", - "Kórejská ľudovodemokratická republika", - "Kórejská ľudovodemokratická republika", - "Kórejská republika", - "Kuvajt", - "Kuvajtský štát", - "Kirgizsko", - "Kirgizská republika", - "Laoská ľudovodemokratická republika", - "Lotyšsko", - "Lotyšská republika", - "Libanon", - "Libanonská republika", - "Lesotho", - "Lesothské kráľovstvo", - "Libéria", - "Libérijská republika", - "Líbya", - "Lichtenštajnsko", - "Lichtenštajnské kniežatstvo", - "Litva", - "Litovská republika", - "Luxembursko", - "Luxemburské veľkovojvodstvo", - "Macao", - "Osobitná administratívna oblasť Číny Macao", - "Madagaskar", - "Madagaskarská republika", - "Malawi", - "Malawijská republika", - "Malajzia", - "Maldivy", - "Maldivská republika", - "Mali", - "Malijská republika", - "Malta", - "Maltská republika", - "Marshallove ostrovy", - "Republika Marshallových ostrovov", - "Martinik", - "Mauritánia", - "Mauritánska islamská republika", - "Maurícius", - "Maurícijská republika", - "Mayotte", - "Mexiko", - "Spojené štáty mexické", - "Mikronézske federatívne štáty", - "Mikronézske federatívne štáty", - "Moldavská republika", - "Moldavská republika", - "Moldavsko", - "Monako", - "Monacké kniežatstvo", - "Mongolsko", - "Čierna Hora", - "Montserrat", - "Maroko", - "Marocké kráľovstvo", - "Mozambik", - "Mozambická republika", - "Mjanmarsko", - "Namíbia", - "Namíbijská republika", - "Nauru", - "Nauruská republika", - "Nepál", - "Nepálska federatívna demokratická republika", - "Holandsko", - "Holandské kráľovstvo", - "Nová Kaledónia", - "Nový Zéland", - "Nikaragua", - "Nikaragujská republika", - "Niger", - "Nigerská republika", - "Nigéria", - "Nigérijská federatívna republika", - "Niue", - "Norfolk", - "Severné Macedónsko", - "Severné Mariány", - "Severomacedónska republika", - "Spoločenstvo Severných Marián", - "Nórsko", - "Nórske kráľovstvo", - "Omán", - "Ománsky sultanát", - "Pakistan", - "Pakistanská islamská republika", - "Palau", - "Palauská republika", - "palestínske územie, Okupované", - "Okupované palestínske územie", - "Panama", - "Panamská republika", - "Papua - Nová Guinea", - "Paraguaj", - "Paraguajská republika", - "Peru", - "Peruánska republika", - "Filipíny", - "Filipínska republika", - "Pitcairnove ostrovy", - "Poľsko", - "Poľská republika", - "Portugalsko", - "Portugalská republika", - "Portoriko", - "Katar", - "Katarský štát", - "Réunion", - "Rumunsko", - "Ruská federácia", - "Rwanda", - "Rwandská republika", - "Svätý Bartolomej", - "Svätá Helena, Ascension a Tristan da Cunha", - "Svätý Krištof a Nevis", - "Svätá Lucia", - "Saint Martin", - "Saint Pierre a Miquelon", - "Svätý Vincent a Grenadíny", - "Samoa", - "Samojský nezávislý štát", - "San Maríno", - "Sanmarínska republika", - "Svätý Tomáš a Princov ostrov", - "Demokratická republika Svätého Tomáša a Princovho ostrova", - "Saudská Arábia", - "Saudskoarabské kráľovstvo", - "Senegal", - "Senegalská republika", - "Srbsko", - "Srbská republika", - "Seychely", - "Seychelská republika", - "Sierra Leone", - "Sierraleonská republika", - "Singapur", - "Singapurská republika", - "Slovensko", - "Slovenská republika", - "Slovinsko", - "Slovinská republika", - "Šalamúnove ostrovy", - "Somálsko", - "Somálska republika", - "Južná Afrika", - "Juhoafrická republika", - "Južná Georgia a Južné Sandwichove ostrovy", - "Španielsko", - "Španielske kráľovstvo", - "Srí Lanka", - "Srílanská demokratická socialistická republika", - "Sudán", - "Sudánska republika", - "Surinam", - "Surinamská republika", - "Svalbard a Jan Mayen", - "Svazijsko", - "Svazijské kráľovstvo", - "Švédsko", - "Švédske kráľovstvo", - "Švajčiarsko", - "Švajčiarska konfederácia", - "Sýrska arabská republika", - "Taiwan, provincia Číny", - "Taiwan", - "Tadžikistan", - "Tadžická republika", - "Tanzánijská zjednotená republika", - "Tanzánijská zjednotená republika", - "Thajsko", - "Thajské kráľovstvo", - "Východný Timor", - "Východotimorská demokratická republika", - "Togo", - "Togská republika", - "Tokelau", - "Tonga", - "Tongské kráľovstvo", - "Trinidad a Tobago", - "Republika Trinidadu a Tobaga", - "Tunisko", - "Tuniská republika", - "Turecko", - "Turecká republika", - "Turkménsko", - "Ostrovy Turks a Caicos", - "Tuvalu", - "Uganda", - "Ugandská republika", - "Ukrajina", - "Spojené arabské emiráty", - "Spojené kráľovstvo", - "Spojené kráľovstvo Veľkej Británie a Severného Írska", - "Spojené štáty", - "Spojené štáty americké", - "Menšie odľahlé ostrovy Spojených štátov", - "Uruguaj", - "Uruguajská východná republika", - "Uzbekistan", - "Uzbecká republika", - "Vanuatu", - "Vanuatská republika", - "Venezuelská bolívarovská republika", - "Venezuela", - "Vietnam", - "Vietnamská socialistická republika", - "Panenské ostrovy, Britské", - "Britské Panenské ostrovy", - "Panenské ostrovy, Americké", - "Panenské ostrovy Spojených štátov", - "Wallis a Futuna", - "Západná Sahara", - "Jemen", - "Jemenská republika", - "Zambia", - "Zambijská republika", - "Zimbabwe", - "Zimbabwianska republika", - "Britské antarktické územie", - "Socialistická republika Barmský zväz", - "Bieloruská sovietska socialistická republika", - "ostrovy Canton a Enderbury", - "Československo, Československá socialistická republika", - "Dahome", - "Zem kráľovnej Maud", - "Východný Timor", - "Metropolitné Francúzsko", - "Francúzske pobrežie Afarov a Isasov", - "Francúzske južné a antarktické územia", - "Nemecká demokratická republika", - "Nemecká spolková republika", - "Gilbertove a lagúnové ostrovy", - "Johnston", - "Midwajské ostrovy", - "Holandské Antily", - "neutrálne pôdy", - "Nové Hebridy", - "Poručnícke územie tichomorských ostrovov", - "Panamská republika", - "Panamské prieplavové pásmo", - "Rumunská socialistická republika", - "Svätý Krištof", - "Srbsko a Čierna Hora", - "Sikkim", - "Rodézia", - "Španielska Sahara", - "Tichomorské ostrovy pod správou USA", - "ZSSR, Zväz sovietskych socialistických republík", - "Republika Horná Volta", - "Vatikánsky mestský štát (Svätá stolica)", - "Vietnamská demokratická republika", - "Wake", - "Jemenská ľudovodemokratická republika", - "Jemenská arabská republika", - "Socialistická federatívna republika Juhoslávia", - "Zairská republika", - ) - - def street_suffix_short(self) -> str: - return self.random_element(self.street_suffixes_short) - - def street_suffix_long(self) -> str: - return self.random_element(self.street_suffixes_long) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def street_name(self) -> str: - return self.random_element(self.streets) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def city_with_postcode(self) -> str: - return self.postcode() + " " + self.random_element(self.cities) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/sk_SK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/sk_SK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5a16608efd48ff79085151e722d2e075eafe75e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79625 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 str: - return self.random_element(self.cities) - - def street_name(self) -> str: - return self.random_element(self.streets) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/sl_SI/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/sl_SI/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2e9f927e408f353a4861fd8aca35f35820647f59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29248 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 str: - return self.random_element(self.street_prefixes) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/sv_SE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/sv_SE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4f02a975cf723f40dd975577e6a2ff9f1a09956e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5591 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 F{spY8x7h#y diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ta_IN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/ta_IN/__init__.py deleted file mode 100644 index 902ad9a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/ta_IN/__init__.py +++ /dev/null @@ -1,429 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - - street_name_formats = ( - "{{first_name}} {{last_name}}", - "{{last_name}}", - ) - - street_address_formats = ("{{building_number}} {{street_name}}",) - - address_formats = ( - "{{street_address}}\n{{city}} {{postcode}}", - "{{street_address}}\n{{city}}-{{postcode}}", - ) - - building_number_formats = ( - "####", - "###", - "##", - "#", - "#/#", - "##/##", - "##/###", - "##/####", - ) - - postcode_formats = ("######",) - - # Source: https://ta.wikipedia.org/wiki/மக்கள்_தொகை_மிகுந்த_இந்திய_நகரங்கள் - cities = ( - "சென்னை", - "கோயம்புத்தூர்", - "மதுரை", - "திருச்சிராப்பள்ளி", - "திருப்பூர்", - "சேலம்", - "ஈரோடு", - "திருநெல்வேலி", - "வேலூர்", - "தூத்துக்குடி", - "திண்டுக்கல்", - "தஞ்சாவூர்", - "இராணிப்பேட்டை", - "சிவகாசி", - "கரூர் (கரூர் மாவட்டம்)", - "உதகமண்டலம்", - "ஓசூர்", - "நாகர்கோவில்", - "காஞ்சிபுரம்", - "குமாரபாளையம்", - "காரைக்குடி", - "நெய்வேலி", - "கடலூர்", - "கும்பகோணம்", - "திருவண்ணாமலை", - "பொள்ளாச்சி", - "இராஜபாளையம், விருதுநகர் மாவட்டம்", - "குடியாத்தம்", - "புதுக்கோட்டை", - "வாணியம்பாடி", - "ஆம்பூர்", - "நாகப்பட்டினம்", - "மும்பை பெருநகர்", - "தில்லி", - "கொல்கத்தா பெருநகர்", - "சென்னை பெருநகர்", - "பெங்களூரு", - "ஐதராபாத்", - "புனே", - "அகமதாபாத்", - "கான்பூர்", - "சூரத்", - "ஜெய்ப்பூர்", - "லக்னோ", - "பாட்னா", - "நாக்பூர்", - "இந்தோர்", - "மீரட்", - "நாசிக்", - "போபால்", - "லூதியானா", - "ஆக்ரா", - "வதோதரா", - "புவனேசுவர்", - "கோயம்புத்தூர்", - "ராஜ்கோட்", - "கொச்சி", - "விசாகப்பட்டினம்", - "வாரணாசி", - "மதுரை", - "ஆசன்சோல்", - "அலகாபாத்", - "மைசூர்", - "ஜபல்பூர்", - "ஜம்சேத்பூர்", - "அவுரங்கபாத்", - "அம்ரித்சர்", - "தன்பாத்", - "விஜயவாடா", - "சோலாப்பூர்", - "பிலாய்", - "ஸ்ரீநகர்", - "ராஞ்சி", - "திருவனந்தபுரம்", - "சண்டிகர்", - "குவஹாத்தி", - "கோழிக்கோடு", - "ஜோத்பூர்", - "குவாலியர்", - "ஜலந்தர்", - "திருச்சிராப்பள்ளி", - "பரேலி", - "ஹுப்ளி-தர்வாத்", - "அலிகார்", - "கோட்டா", - "மொரதாபாத்", - "ராய்ப்பூர்", - "தேராதூன்", - "கோரக்பூர்", - "ஜம்மு", - "அமராவதி", - "வாரங்கல்", - "ஜாம்நகர்", - "பிகானேர்", - "சாங்கலி", - "திருப்பூர்", - "பாவ்நகர்", - "மங்களூர்", - "அஜ்மீர்", - "பொகாரோ", - "பெல்காம்", - "புதுச்சேரி", - "சிலிகுரி", - "கண்ணூர்", - "கோலாப்பூர்", - "நான்தேட்", - "ரூர்கேலா", - "துர்காபூர்", - "குல்பர்கா", - "குண்டூர்", - "ஜான்சி", - "சகாரன்பூர்", - "கரக்பூர்", - "கயா", - "ஜல்கான்", - "மதுரா", - "கொல்லம்", - "கோர்பா", - "பிரோசாபாத்", - "திருநெல்வேலி", - "உஜ்ஜைன்", - "அகமத்நகர்", - "நெல்லூர்", - "ராமகுண்டம்", - "ராஜமுந்திரி", - "மாலேகான்", - "உதயப்பூர்", - "அகோலா", - "தாவண்கரே", - "வேலூர்", - "திருவண்ணாமலை", - "காஜுவாகா", - ) - - # Source: https://ta.wikipedia.org/wiki/இந்தியாவின்_மாநிலங்களும்_ஆட்சிப்பகுதிகளும் - states = ( - "ஆந்திரப் பிரதேசம்", - "அருணாச்சலப் பிரதேசம்", - "அசாம்", - "பீகார்", - "சத்தீஸ்கர்", - "கோவா", - "குஜராத்", - "அரியானா", - "இமாச்சலப் பிரதேசம்", - "சம்மு காசுமீர்", - "ஜார்கண்ட்", - "கர்நாடகா", - "கேரளா", - "மத்தியப் பிரதேசம்", - "மகாராஷ்டிரா", - "மணிப்பூர்", - "மேகாலயா", - "மிசோரம்", - "நாகலாந்து", - "ஒரிசா", - "பஞ்சாப்", - "ராஜஸ்தான்", - "சிக்கிம்", - "தமிழ்நாடு", - "தெலுங்கானா", - "திரிபுரா", - "உத்தரப்பிரதேசம்", - "உத்தரகண்ட்", - "மேற்கு வங்கம்", - ) - - # Source: https://ta.wikipedia.org/wiki/பிறப்பு_விகித_அடிப்படையில்_நாடுகளின்_பட்டியல் - countries = ( - "ஆப்கானித்தான்", - "அல்பேனியா", - "அல்ஜீரியா", - "அந்தோரா", - "அங்கோலா", - "அன்டிகுவா பர்புடா", - "அர்கெந்தீனா", - "ஆர்மீனியா", - "ஆத்திரேலியா", - "ஆஸ்திரியா", - "அசர்பைஜான்", - "பஹமாஸ்", - "பகுரைன்", - "வங்காளதேசம்", - "பார்படோசு", - "பெலருஸ்", - "பெல்ஜியம்", - "பெலீசு", - "பெனின்", - "பூட்டான்", - "பொலிவியா", - "பொசுனியா எர்செகோவினா", - "போட்சுவானா", - "பிரேசில்", - "புரூணை", - "பல்கேரியா", - "புர்க்கினா பாசோ", - "புருண்டி", - "கம்போடியா", - "கமரூன்", - "கனடா", - "கேப் வர்டி", - "மத்திய ஆப்பிரிக்கக் குடியரசு", - "சாட்", - "சிலி", - "சீனா", - "கொலம்பியா", - "கொமொரோசு", - "காங்கோ மக்களாட்சிக் குடியரசு", - "காங்கோ மக்களாட்சிக் குடியரசு", - "கோஸ்ட்டா ரிக்கா", - "ஐவரி கோஸ்ட்", - "குரோவாசியா", - "கியூபா", - "சைப்பிரசு", - "செக் குடியரசு", - "டென்மார்க்", - "சீபூத்தீ", - "டொமினிக்கா", - "டொமினிக்கன் குடியரசு", - "எக்குவடோர்", - "எகிப்து", - "எல் சல்வடோர", - "எக்குவடோரியல் கினி", - "எரித்திரியா", - "எசுத்தோனியா", - "எதியோப்பியா", - "பிஜி", - "பின்லாந்து", - "பிரான்சு", - "காபொன்", - "கம்பியா", - "சியார்சியா", - "செருமனி", - "கானா", - "கிரேக்க நாடு", - "கிரெனடா", - "குவாத்தமாலா", - "கினியா", - "கினி-பிசாவு", - "கயானா", - "எயிட்டி", - "ஒண்டுராசு", - "அங்கேரி", - "ஐசுலாந்து", - "இந்தியா", - "இந்தோனேசியா", - "ஈரான்", - "ஈராக்", - "அயர்லாந்து", - "இசுரேல்", - "இத்தாலி", - "ஜமேக்கா", - "சப்பான்", - "யோர்தான்", - "கசக்கஸ்தான்", - "கென்யா", - "கிரிபட்டி", - "வட கொரியா", - "தென் கொரியா", - "குவைத்", - "கிர்கிசுத்தான்", - "லாவோஸ்", - "லாத்வியா", - "லெபனான்", - "லெசோத்தோ", - "லைபீரியா", - "லிபியா", - "லீக்கின்ஸ்டைன்", - "லித்துவேனியா", - "லக்சம்பர்க்", - "மாக்கடோனியக் குடியரசு", - "மடகாசுகர்", - "மலாவி", - "மலேசியா", - "மாலைத்தீவுகள்", - "மாலி", - "மால்ட்டா", - "மார்சல் தீவுகள்", - "மூரித்தானியா", - "மொரிசியசு", - "மெக்சிக்கோ", - "மைக்குரோனீசியக் கூட்டு நாடுகள்", - "மல்தோவா", - "மொனாகோ", - "மங்கோலியா", - "மொண்டெனேகுரோ", - "மொரோக்கோ", - "மொசாம்பிக்", - "மியான்மர்", - "நமீபியா", - "நவூரு", - "நேபாளம்", - "நெதர்லாந்து", - "நியூசிலாந்து", - "நிக்கராகுவா", - "நைஜர்", - "நைஜீரியா", - "நோர்வே", - "ஓமான்", - "பாக்கித்தான்", - "பலாவு", - "பலத்தீன்", - "பனாமா", - "பப்புவா நியூ கினி", - "பரகுவை", - "பெரு", - "பிலிப்பீன்சு", - "போலந்து", - "போர்த்துகல்", - "கட்டார்", - "உருமேனியா", - "உருசியா", - "ருவாண்டா", - "செயிண்ட். கிட்ஸ் நெவிஸ்", - "செயிண்ட். லூசியா", - "செயின்ட் வின்செண்டு மற்றும் கிரெனடீன்கள்", - "சமோவா", - "சான் மரீனோ", - "சாவோ தொமே மற்றும் பிரின்சிப்பி", - "சவூதி அரேபியா", - "செனிகல்", - "செர்பியா", - "சீசெல்சு", - "சியேரா லியோனி", - "சிங்கப்பூர்", - "சிலவாக்கியா", - "சுலோவீனியா", - "சொலமன் தீவுகள்", - "சோமாலியா", - "தென்னாப்பிரிக்கா", - "தெற்கு சூடான்", - "எசுப்பானியா", - "இலங்கை", - "சூடான்", - "சுரிநாம்", - "சுவாசிலாந்து", - "சுவீடன்", - "சுவிட்சர்லாந்து", - "சிரியா", - "சீனக் குடியரசு", - "தாஜிக்ஸ்தான்", - "தன்சானியா", - "தாய்லாந்து", - "கிழக்குத் திமோர்", - "டோகோ", - "தொங்கா", - "டிரினிடாட் மற்றும் டொபாகோ", - "தூனிசியா", - "துருக்கி", - "துருக்மெனிஸ்தான்", - "துவாலு", - "உகாண்டா", - "உக்ரைன்", - "ஐக்கிய அரபு அமீரகம்", - "ஐக்கிய இராச்சியம்", - "ஐக்கிய அமெரிக்கா", - "உருகுவை", - "உஸ்பெகிஸ்தான்", - "வனுவாட்டு", - "வெனிசுவேலா", - "வியட்நாம்", - "மேற்கு சகாரா (Sahrawi)", - "யேமன்", - "சாம்பியா", - "சிம்பாப்வே", - "அங்கியுலா (UK)", - "அரூபா (Netherlands)", - "பெர்முடா (UK)", - "கேமன் தீவுகள் (UK)", - "குயெர்ன்சி (கால்வாய் தீவுகள், UK)", - "யேர்சி (கால்வாய் தீவுகள், UK)", - "குக் தீவுகள் (New Zealand)", - "குராசோ (Netherlands)", - "போக்லாந்து தீவுகள்/Malvinas", - "பரோயே தீவுகள் (Denmark)", - "கிப்ரல்டார் (UK)", - "கிறீன்லாந்து (Denmark)", - "குவாதலூப்பு (France)", - "குவாம் (USA)", - "பிரெஞ்சு கயானா", - "ஆங்காங்", - "மாண் தீவு (UK)", - "கொசோவோ", - "மக்காவு", - "மர்தினிக்கு (France)", - "மயோட்டே (France)", - "மொன்செராட்", - ) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/ta_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/ta_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index db6c76d79ecd9394baf17177eb9c257bbbd2b4e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14016 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 BWnlmS diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/th/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/th/__init__.py deleted file mode 100644 index 7832b9c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/th/__init__.py +++ /dev/null @@ -1,251 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - # country names adapted from - # https://github.com/PyThaiNLP/pythainlp/blob/dev/pythainlp/corpus/countries_th.txt - countries = ( - "กรีซ", - "กรีนแลนด์", - "กวม", - "กัมพูชา", - "กัวเดอลุป", - "กัวเตมาลา", - "กาตาร์", - "กานา", - "กาบอง", - "กาบูเวร์ดี", - "กายอานา", - "กินี-บิสเซา", - "กินี", - "เกรเนดา", - "เกาหลีใต้", - "เกาหลีเหนือ", - "เกาะคริสต์มาส", - "เกาะนอร์ฟอล์ก", - "เกาะบูเวต", - "เกาะแมน", - "เกิร์นซีย์", - "แกมเบีย", - "โกตดิวัวร์", - "คอโมโรส", - "คอสตาริกา", - "คาซัคสถาน", - "คิริบาส", - "คิวบา", - "คีร์กีซสถาน", - "คีลิง", - "คูเวต", - "เคนยา", - "แคนาดา", - "แคเมอรูน", - "โครเอเชีย", - "โคลอมเบีย", - "จอร์เจีย", - "จอร์แดน", - "จาเมกา", - "จิบูตี", - "จีน", - "เจอร์ซีย์", - "ชาด", - "ชิลี", - "ซานมารีโน", - "ซามัว", - "ซาอุดีอาระเบีย", - "ซิมบับเว", - "ซีเรีย", - "ซูดาน", - "ซูรินาม", - "เซเชลส์", - "เซนต์คิตส์และเนวิส", - "เซนต์ลูเซีย", - "เซนต์วินเซนต์และเกรนาดีนส์", - "เซนต์เฮเลนา", - "เซเนกัล", - "เซอร์เบีย", - "เซาตูเมและปรินซิปี", - "เซียร์ราลีโอน", - "แซ็ง-บาร์เตเลมี", - "แซ็งบาร์เตเลมี", - "แซ็ง-มาร์แต็ง", - "แซ็งมาร์แต็ง", - "แซงปีแยร์และมีเกอลง", - "แซมเบีย", - "โซมาเลีย", - "ไซปรัส", - "ญี่ปุ่น", - "ดอมินีกา", - "เดนมาร์ก", - "ตรินิแดดและโตเบโก", - "ตองกา", - "ติมอร์-เลสเต", - "ติมอร์เลสเต", - "ตุรกี", - "ตูนิเซีย", - "ตูวาลู", - "เติร์กเมนิสถาน", - "โตเกเลา", - "โตโก", - "ไต้หวัน", - "ทาจิกิสถาน", - "แทนซาเนีย", - "ไทย", - "นครรัฐวาติกัน", - "นอร์เวย์", - "นามิเบีย", - "นาอูรู", - "นิการากัว", - "นิวแคลิโดเนีย", - "นิวซีแลนด์", - "นีอูเอ", - "เนเธอร์แลนด์แอนทิลลีส", - "เนเธอร์แลนด์", - "เนปาล", - "ไนจีเรีย", - "ไนเจอร์", - "บราซิล", - "บริติชอินเดียนโอเชียนเทร์ริทอรี", - "บรูไนดารุสซาลาม", - "บอตสวานา", - "บอสเนียและเฮอร์เซโกวีนา", - "บังกลาเทศ", - "บัลแกเรีย", - "บาร์เบโดส", - "บาห์เรน", - "บาฮามาส", - "บุรุนดี", - "บูร์กินาฟาโซ", - "เบนิน", - "เบลเยียม", - "เบลารุส", - "เบลีซ", - "เบอร์มิวดา", - "โบลิเวีย", - "ปากีสถาน", - "ปานามา", - "ปาปัวนิวกินี", - "ปารากวัย", - "ปาเลา", - "ปาเลสไตน์", - "เปรู", - "เปอร์โตริโก", - "โปรตุเกส", - "โปแลนด์", - "ฝรั่งเศส", - "พม่า", - "ฟิจิ", - "ฟินแลนด์", - "ฟิลิปปินส์", - "เฟรนช์เกียนา", - "เฟรนช์โปลินีเซีย", - "ภูฏาน", - "มองโกเลีย", - "มอนต์เซอร์รัต", - "มอนเตเนโกร", - "มอริเชียส", - "มอริเตเนีย", - "มอลโดวา", - "มอลตา", - "มัลดีฟส์", - "มาเก๊า", - "ประเทศมาซิโดเนียเหนือ", - "มาดากัสการ์", - "มายอต", - "มาร์ตีนิก", - "มาลาวี", - "มาลี", - "มาเลเซีย", - "เม็กซิโก", - "โมซัมบิก", - "โมนาโก", - "โมร็อกโก", - "ไมโครนีเซีย", - "ยานไมเอน", - "ยิบรอลตาร์", - "ยูกันดา", - "ยูเครน", - "เยเมน", - "เยอรมนี", - "รวันดา", - "รัสเซีย", - "เรอูว์นียง", - "โรมาเนีย", - "ลักเซมเบิร์ก", - "ลัตเวีย", - "ลาว", - "ลิกเตนสไตน์", - "ลิทัวเนีย", - "ลิเบีย", - "เลโซโท", - "เลบานอน", - "ไลบีเรีย", - "วานูอาตู", - "วาลลิสและฟุตูนา", - "เวเนซุเอลา", - "เวสเทิร์นสะฮารา", - "เวียดนาม", - "ศรีลังกา", - "สกอตแลนด์", - "สเปน", - "สฟาลบาร์", - "สโลวาเกีย", - "สโลวีเนีย", - "สวาซิแลนด์", - "สวิตเซอร์แลนด์", - "สวีเดน", - "สหรัฐอเมริกา", - "สหรัฐอาหรับเอมิเรตส์", - "สหราชอาณาจักร", - "สาธารณรัฐคองโก", - "สาธารณรัฐเช็ก", - "สาธารณรัฐโดมินิกัน", - "สิงคโปร์", - "หมู่เกาะคุก", - "หมู่เกาะเคย์แมน", - "หมู่เกาะโคโคส", - "หมู่เกาะโซโลมอน", - "หมู่เกาะบริติชเวอร์จิน", - "หมู่เกาะพิตแคร์น", - "หมู่เกาะฟอล์กแลนด์", - "หมู่เกาะแฟโร", - "หมู่เกาะมาร์แชลล์", - "อเมริกันซามัว", - "ออสเตรเลีย", - "ออสเตรีย", - "อังกฤษ", - "อันดอร์รา", - "อัฟกานิสถาน", - "อาเซอร์ไบจาน", - "อาร์เจนตินา", - "อาร์มีเนีย", - "อารูบา", - "อิเควทอเรียลกินี", - "อิตาลี", - "อินเดีย", - "อินโดนีเซีย", - "อิรัก", - "อิสราเอล", - "อิหร่าน", - "อียิปต์", - "อุซเบกิสถาน", - "อุรุกวัย", - "เอกวาดอร์", - "เอธิโอเปีย", - "เอริเทรีย", - "เอลซัลวาดอร์", - "เอสโตเนีย", - "แองกวิลลา", - "แองโกลา", - "แอฟริกากลาง", - "แอฟริกาใต้", - "แอลจีเรีย", - "แอลเบเนีย", - "โอมาน", - "ไอซ์แลนด์", - "ไอร์แลนด์", - "ไอวอรีโคสต์", - "ฮ่องกง", - "ฮอนดูรัส", - "ฮังการี", - "เฮติ", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/th/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/th/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 6c344d0890a4b1a0b9cb823c7983dfad4cfc3856..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8363 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/th_TH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/th_TH/__init__.py deleted file mode 100644 index cba0d42..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/th_TH/__init__.py +++ /dev/null @@ -1,390 +0,0 @@ -from collections import OrderedDict - -from ..th import Provider as AddressProvider - - -class Provider(AddressProvider): - street_name_formats = ("{{street_prefix}}{{last_name}}",) - street_address_formats = ("{{building_number}} {{street_name}}",) - - address_formats = OrderedDict( - ( - ( - "{{street_address}} {{tambon}} {{amphoe}} {{province}} {{postcode}}", - 50.0, - ), - ( - "{{street_address}} ตำบล{{tambon}} อำเภอ{{amphoe}} {{province}} {{postcode}}", - 50.0, - ), - ( - "{{street_address}} ต.{{tambon}} อ.{{amphoe}} {{province}} {{postcode}}", - 50.0, - ), - ( - "{{street_address}} ต.{{tambon}} อ.{{amphoe}} จ.{{province}} {{postcode}}", - 40.0, - ), - ("{{street_address}} อำเภอ{{amphoe}} {{province}} {{postcode}}", 30.0), - ("{{street_address}} อ.{{amphoe}} {{province}} {{postcode}}", 30.0), - ("{{street_address}} {{amphoe}} {{province}} {{postcode}}", 30.0), - ("{{street_address}} {{tambon}} {{province}} {{postcode}}", 15.0), - ("{{street_address}} {{amphoe}} จ.{{province}} {{postcode}}", 15.0), - ("{{street_address}} {{tambon}} จ.{{province}} {{postcode}}", 15.0), - ("{{street_address}} อ.{{amphoe}} จ.{{province}} {{postcode}}", 15.0), - ("{{street_address}} ต.{{tambon}} จ.{{province}} {{postcode}}", 15.0), - ( - "{{street_address}} อำเภอ{{amphoe}} จังหวัด{{province}} {{postcode}}", - 15.0, - ), - ( - "{{street_address}} ตำบล{{tambon}} อำเภอ{{amphoe}} จังหวัด{{province}} {{postcode}}", - 10.0, - ), - ("{{street_address}} {{province}} {{postcode}}", 15.0), - ("{{street_address}} ต.{{tambon}} อ.{{amphoe}} {{province}}", 15.0), - ("{{street_address}} ต.{{tambon}} อ.{{amphoe}} จ.{{province}}", 15.0), - ( - "{{street_address}} ตำบล{{tambon}} จังหวัด{{province}} {{postcode}}", - 10.0, - ), - ( - "{{building_number}} ต.{{tambon}} อ.{{amphoe}} {{province}} {{postcode}}", - 10.0, - ), - ( - "{{building_number}} หมู่บ้าน{{first_name}} {{amphoe}} {{province}} {{postcode}}", - 10.0, - ), - ) - ) - - # city names are actual city municipalities in Thailand - # source: Wikipedia: https://th.wikipedia.org/wiki/เทศบาลนครในประเทศไทย - city_formats = ("{{city_name}}",) - cities = ( - "กรุงเทพมหานคร", - "นนทบุรี", - "ปากเกร็ด", - "หาดใหญ่", - "เจ้าพระยาสุรศักดิ์", - "สุราษฎร์ธานี", - "อุดรธานี", - "เชียงใหม่", - "นครราชสีมา", - "พัทยา", - "ขอนแก่น", - "นครศรีธรรมราช", - "แหลมฉบัง", - "รังสิต", - "นครสวรรค์", - "ภูเก็ต", - "เชียงราย", - "อุบลราชธานี", - "นครปฐม", - "เกาะสมุย", - "สมุทรสาคร", - "พิษณุโลก", - "ระยอง", - "สงขลา", - "ยะลา", - "ตรัง", - "อ้อมน้อย", - "สกลนคร", - "ลำปาง", - "สมุทรปราการ", - "พระนครศรีอยุธยา", - "แม่สอด", - ) - - building_number_formats = ( - "###", - "##", - "#", - "###/#", - "###/##", - "##/#", - "##/##", - "#/#", - "## หมู่ #", - "## หมู่ ##", - ) - - street_prefixes = OrderedDict( - ( - ("ถนน", 0.5), - ("ถ.", 0.4), - ("ซอย", 0.02), - ("ซ.", 0.02), - ) - ) - - postcode_formats = ( - # as per https://en.wikipedia.org/wiki/Postal_codes_in_Thailand - "1###0", - "2###0", - "3###0", - "4###0", - "5###0", - "6###0", - "7###0", - "8###0", - "9###0", - ) - - provinces = ( - "กระบี่", - "กรุงเทพมหานคร", - "กรุงเทพ", - "กรุงเทพฯ", - "กทม.", - "กาญจนบุรี", - "กาฬสินธุ์", - "กำแพงเพชร", - "ขอนแก่น", - "จันทบุรี", - "ฉะเชิงเทรา", - "ชลบุรี", - "ชัยนาท", - "ชัยภูมิ", - "ชุมพร", - "เชียงราย", - "เชียงใหม่", - "ตรัง", - "ตราด", - "ตาก", - "นครนายก", - "นครปฐม", - "นครพนม", - "นครราชสีมา", - "นครศรีธรรมราช", - "นครสวรรค์", - "นนทบุรี", - "นราธิวาส", - "น่าน", - "บึงกาฬ", - "บุรีรัมย์", - "ปทุมธานี", - "ประจวบคีรีขันธ์", - "ปราจีนบุรี", - "ปัตตานี", - "พระนครศรีอยุธยา", - "พะเยา", - "พังงา", - "พัทลุง", - "พิจิตร", - "พิษณุโลก", - "เพชรบุรี", - "เพชรบูรณ์", - "แพร่", - "ภูเก็ต", - "มหาสารคาม", - "มุกดาหาร", - "แม่ฮ่องสอน", - "ยโสธร", - "ยะลา", - "ร้อยเอ็ด", - "ระนอง", - "ระยอง", - "ราชบุรี", - "ลพบุรี", - "ลำปาง", - "ลำพูน", - "เลย", - "ศรีสะเกษ", - "สกลนคร", - "สงขลา", - "สตูล", - "สมุทรปราการ", - "สมุทรสงคราม", - "สมุทรสาคร", - "สระแก้ว", - "สระบุรี", - "สิงห์บุรี", - "สุโขทัย", - "สุพรรณบุรี", - "สุราษฎร์ธานี", - "สุรินทร์", - "หนองคาย", - "หนองบัวลำภู", - "อ่างทอง", - "อำนาจเจริญ", - "อุดรธานี", - "อุตรดิตถ์", - "อุทัยธานี", - "อุบลราชธานี", - ) - - amphoes = ( - "เกษตรสมบูรณ์", - "แก้งคร้อ", - "คอนสวรรค์", - "คอนสาร", - "ซับใหญ่", - "เทพสถิต", - "เนินสง่า", - "บ้านเขว้า", - "บ้านแท่น", - "บำเหน็จณรงค์", - "หนองบัวโคก", - "ภักดีชุมพล", - "ภูเขียว", - "หนองบัวแดง", - "หนองบัวระเหว", - "เทิง", - "แม่ลาว", - "แม่สรวย", - "เวียงแก่น", - "เวียงชัย", - "เวียงป่าเป้า", - "เขาสมิง", - "คลองใหญ่", - "บ่อไร่", - "นาแก", - "นาทม", - "นาหว้า", - "บ้านแพง", - "ปลาปาก", - "โพนสวรรค์", - "เรณูนคร", - "วังยาง", - "ศรีสงคราม", - "เฉลิมพระเกียรติ", - "เมือง", - "ปากคาด", - "พรเจริญ", - "ศรีวิไล", - "ป้อมปราบศัตรูพ่าย", - "พระนคร", - "สามโคก", - "บางสะพานน้อย", - "บึงกุ่ม", - "ภาษีเจริญ", - "วังทองหลาง", - "ห้วยขวาง", - "หนอกจอก", - "สะพานสูง", - ) - - tambons = ( - "บางแค", - "บางแค", - "บางไผ่", - "บางปะกอก", - "ยางตลาด", - "ดอนสมบูรณ์", - "หัวงัว", - "นาเชือก", - "เทพศิรินทร์", - "อุ่มเม่า", - "คลองขาม", - "บัวบาน", - "เขาพระนอน", - "เว่อ", - "นาดี", - "อิตื้อ", - "โนนสูง", - "หัวนาคำ", - "หนองตอกแป้น", - "หนองอิเฒ่า", - "โนนศิลา", - "หนองปลาหมอ", - "เปือยใหญ่", - "โนนแดง", - "ก้อนแก้ว", - "คลองเขื่อน", - "บางเล่า", - "บางโรง", - "บางตลาด", - "เนินขาม", - "กะบกเตี้ย", - "สุขเดือนห้า", - "พะโต๊ะ", - "ปากทรง", - "ปังหวาน", - "พระรักษ์", - "ห้วยยอด", - "ปากคม", - "หนองช้างแล่น", - "ท่างิ้ว", - "บางดี", - "ลำภูรา", - "บางกุ้ง", - "นาวง", - "เขากอบ", - "เขาขาว", - "ในเตา", - "เขาปูน", - "ทุ่งต่อ", - "ปากแจ่ม", - "เกาะหวาย", - "ปากพลี", - "เกาะโพธิ์", - "ท่าเรือ", - "โคกกรวด", - "หนองแสง", - "นาหินลาด", - ) - - tambon_prefixes = OrderedDict( - ( - ("", 40.0), - ("วัด", 2.0), - ("บ้าน", 2.0), - ("บ่อ", 2.0), - ("บึง", 2.0), - ("ป่า", 1.0), - ("ห้วย", 1.0), - ) - ) - - tambon_suffixes = OrderedDict( - ( - ("", 30), - ("เหนือ", 3), - ("ใต้", 3), - ("ใหญ่", 2), - ("กลาง", 1), - ("เล็ก", 1), - ("ใหม่", 1), - ("เดิม", 0.1), - ) - ) - - city_suffixes = ("นคร",) - - def street_prefix(self) -> str: - """ - :example: 'ถนน' - """ - return self.random_element(self.street_prefixes) - - def administrative_unit(self) -> str: - """ - :example: 'อุบลราชธานี' - """ - return self.random_element(self.provinces) - - province = administrative_unit - - def amphoe(self) -> str: - """ - Get a random Amphoe (district) name. - Currently it's total random and not necessarily matched with a province. - :example: 'บางสะพานน้อย' - """ - return self.random_element(self.amphoes) - - def tambon(self) -> str: - """ - Get a random Tambon (subdistrict) name. - Currently it's total random and not necessarily matched with an amphoe or province. - :example: 'ห้วยนาง' - """ - return ( - f"{self.random_element(self.tambon_prefixes)}{self.random_element(self.tambons)}" - + f"{self.random_element(self.tambon_suffixes)}" - ) - - def city_name(self) -> str: - return self.random_element(self.cities) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/th_TH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/th_TH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index dbd005155b745729621d13d5c5a73ab782ab9356..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10653 zcmcJVU2I$DdB+baik4){@`r4v?iUj}O}Mq9V`p{jBu>+HNxL;khvZ^lR}i$$QOuMQ zy+bmKsTq?J4@%vn7*;v9lC7|07>?tl&0Kq>uG*Uc8+I`nzHmlh0E=NLe8<4mO|JHP z-se4sM>6F&86r^UtA zilfyVac%4So?m{kNb{)9(4(F1+`P>FDaUhiG1tk(-B_;2jpq_^$Ln=_F2;0lF6kz6 z>)hU4pPS6}o4$2n-+mBxbnCrWaZp&=<1-4AA{-w#uO4awgYW|4tjTK)y zc5HI8RH#(*6NPc_*fB<=CnpcpiY2!=@qB)wHh#$Sj~z>ev+S_pOuYWhu(9B}zE`Q3 zan-{3q4I>eEQ}vHTt+Cfj|i+2qxPm;sg9OiZhohbedimQc&eNFSLUx12;#LrT~pD>N(J2BxzwjWjnr1-Rg~NwoNoy@ zPpl>V6Qf`uKPXZkUQ_Cwx!%uw0%2bl+U^Lt+s+TE{y2a}ZsSVCjN4-EOTAeekri=q z8_EJPkKGZlcVy9;qE4=i);qB3`)gXYMk--otMSjR#!RbmvDG+lu4mVzBXHhdOU)-t zGdxx$|g%69mZ^h=<6iYD8w;GGBMXY_ZwfLh}<5H_JH#s?0^uv`1k#|sh zjjC9EaB_0ASUnmnVyWf((A{cGw;E?#jfMoUEEK0&jh`9K=of{p#&HHLZ!=@LO6@Mw^OhMsZA2J}i{!&>O{b}-+1BDKCP!Y!r`p$LnkalV@C~&He81ILFtXkW zRJ?6c3Zb*D#^u)HYsN zDFCQ}^BB1NC8NdqZziLNvFK$u)Lg0!nIYIs`U8sCZGn2(EWLBBMa%{iD4er!hXQd6 zgAj#HT<}3AN7167%4DEBXL{ft(524QwivYx)vAL*mx;n<<4{1Dv6Et?l8*~)I*pA0 zF$M0J1w|(nBx#7?VC`5~zT2o$1Z8s(TDSsAl^l9TEc`t-TPKVv@d{=!6(?b1!CD(O z03W7u%Rm!w${pC^8}$BErY!<1CQL6Y@J!HX!M+*Wh6KFQahH}i81vzUaZC&vsIeA3 zwUKR- z1gr%hf`W@n%C!W7#H0a;A+wo*dQUo?uE*2qk7DV1FW1?0J!wwqdcxe%m}N*0$J%D} zrqd}CPPiyVC6zX^Z)r_u5>z|cbhH|87@y~!=SJ=yqaz^~jWIJG$k1SlHN@EtsmjljD zi#Vk!%yMQh1X&#eEI9C^;7Z8&~5{mW%X5G7IF(OVCsVYj&TOTAcR-8 z;0xFo2PLznS;wALutcO*vY#6=DQ5VGATH)C8ZZUSw870;|BIn7xDZrklNl6k=FZw# zm;q^kFCu;M&tgvp#(_Y@ea#e5#QjdQpORS$zgBm;0cB2uUa+Kj!A8;B1}zB3Qe_X{ zF8E(YhW`Z-q^UzMoFL_#FNSAZ6uBHHu1q9WC4Q6IS9)6>f56f-@pN(Rb=8%qK1bP77xIx^6 z`#noU5E~2DZ-OE0K`@HX8&FwEr7qd|FiSK81Rfw+7`5hc$xuYl$;J^z7^qgf?hA7k z0LI~lB!dY798XmI6B+} zG@3}Y%HS1!NM}CoViF(OlG!pA?Z=F>76lem@L}u!ib*)LYc}|bS(pw<2xN^G@2nm4 zphr2OlVwAIw03m9MHuAZ{=A8&OP14UKW?8gljjr)@mhaLG89VYA(`;N72`ABXgTag zu_QEJPTL`8jAy8rH5K!OAq!;j=$v()A-YXvCONhsQGXlxDr?5t+RX$pRMV8+^R~b# zkicb2sqm=fiA0AAn`xb9Fhvd|E-0o#1$Sy8XfvN21(~@HA(4J5Lnhh6@QQZ6Wy4;C za!saRQZ%Fi954v|;A9NeJOoutCA?4`i4!ew5Q-^e6QiVxhwCV!jH%HE390$cij6V> zDr$zrq8KGHCexuSSb|vK6frL7pSI{=G=sWDei+EWNfeP#j1n`g1>gcuGlqEt&e#xs z+u#q}070kmOBBxQ>McNFA*KKkK%qRO9fOr7T23-R3%$%>;IC|zQQWK(Mn1xWudzm& zOaN4bpyG8Kt)W?%%~w<*rM8zs67UE=C_yaK5J)aD1OKpt7M%Z?rJlG_69UUu!Ghc3 zZ7WPD6G$SEW&oj|RglTt0w_EI2ig~`p$rUnOsoJnGH;PRW9D2CkXE^bVLDf>3GjegL`>Uht8C^LKxQ)gmvto$d|PDVasOVa@j-N} z(*pNDN_1;R1mgv6uwa(arB+~>0tNCKu(P(T%$jjvhJLt03RXal*$$~f@&O2NYep|D zrpzIo2#XUz98K$LCv94%VVh{tm|-}L@>_*981pO@MvB%SoB0yqL4Mm35acKpsx|8H zT&Ey`Jx)d=2o-akl1EYt11pjr_pex78H}+2^ec@XZI+0`bUv0K>wO4{fkEv3WtX)c zX~IHFNYv6c*QJ~r&4SuLXga8hj%I~XcD4?CK!T^d#DFg=esQ6CyYx9CNdSw0A}5z zm`*9YQhw|PUbBKs#ql7r!PRaw4fH{dg+mcfCL&~JMQ%vO+ayr76&IrQ&DG7ykF`O9 zjqp)sf}e6i3HZGz;3+PmGG9;7=@< z|C}p0q#9!||H1Fp#o;2fUYf08#P|r0xrUF1#=7h31WZ zVZtqs=e?3Q?oCviLn|JvdzA~ZW}@Pi#wub=>Z4=X!{u==TP;@)d*g+dvd;wj1l@}f8KVzyK~ls$5^dbm8XcjSRR*-EkMeeFnL^oND#y-Ieh z@I%kfnkQSlv{1>~C-K?p;rw&o&gS#QiDEUMA31WgIk>{Q`gXLM7ac}cw7b|^k?)aH zPP@<9G<<#No~uLmoO$qidf(ObzH37dE%iNgQy~0I@Rw(uA;K&0Cj%+>R5Rj?3?=g@ z=cG3m1jdypFa8Kpn*9b7-Z-fEySY~m{5{gOwcw6}3w{@>#TUJN4UFnv2=VCBE8$d; z-z`?5a{l1_!D~Z%miqSi57PUYVDcLThnPI+Ra1qO#$D=h^Lj<@w+r%&{5r6j2x^`Q<6#yLL%{Dw$4o_}Qik!wS{m-=?!3cOS%Qw-ka z;?os_x7IEpB7N20Magge-g5pazGmr3>X_)UGp|mwDL}vGBIIuc+0U8RYEt)CYKJ}> zz9&-3L8|P39QB>W#bh5jI1}MIp$Ryo?{C=GjJ!&7oi2fn|w|1Xy|{NRJl+pcfkb#?Qu zGtXVWcmLIU_g~w5U}@9CANIrsA8q&a^bgz`M-oFOj{bj(%G0d8rXnSILS5|QZGZUW zy1pe0|FG@v#Ao^8Zp!&!Xlqc8&p$l>@U@}rQeW2C{dDGY&Az;O`kl`=2lDyxvRf;8 zTyMzd|Eg9fNnzk_tF86scC74^@s;Lw+h~`LylwZz_vX;5*5(FdSuo~t8M9;6n**VQ ztn_XQUJMAE6vV*W__F$MVKQ;LKq_;09Nd5t7leNPCCWi}- z!NAmZ^Ol=ANWN9BaX9XLu=CNS#EuWX_$Nz=oxk0FcRRkjf8b`%o*l`lXWFHhGyIjQ z@3!N2Z%j@-(S9Pf{>#aw#OFWU>Fl_t9q*Na>&(C{>+hmtxV`hwW1Evx-)WD<9~eqb zJ=q?M9gy>fFU8D^KAABfGd{e_H1tcudLv?|vn@UKR6CLA-G91r)8W+Kkm%ie=2^Mk z+oryyr@q}zBzqq?-E-67)ZWzJJ0RDb+S_BjyHD@^y~9cUl^6P+&h$3dkCsa%_7BDK zL`6x9R}UKunnRE4i+Mp<`Oh$?gVslVk7%GA^d+mLjG0xg-4lz&{@Y3auk+R4C%=)5 O?SA!dmmN8qss9Je;J?NI diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/tl_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/tl_PH/__init__.py deleted file mode 100644 index da54e58..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/tl_PH/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from ..en_PH import Provider as EnPhAddressProvider - - -class Provider(EnPhAddressProvider): - """No difference from Address Provider for en_PH locale""" - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/tl_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/tl_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 17e3f6c6ec3d0826d9b47d2e4c41b2e1dfd6cd2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522 zcmXw0J4?hs5Z+C48qX()eXtNxc#Drx4lG2g;|i-ZL(EQ0G|9$IJd9v>|G__CBewnv z8(RZ{U}YzqHdb!-a$9^4W@mP0_GNjwOPcfCy?9XcsZ9%=mM2?E+!IbXO-M>TgA#)r z6K;$NH_>=9r}sQsS#IacP|l^bJ(OY;bCf|_MH6k!WKD^Cg2bbocm}7QSsAV=n^L#? z1L5#E3{hehpc6`wI)|J~EDC2<)d_`kFoWTVlZe1iaNt_C4UqXM0@PiARPgJh(MteV z*M8DQ<^i|}03OMt>E-W^MIuF3iZa5~zhS2{pARM z8HsGKx3kNNxWw(;4=(+4ELiAYqGT#bZ=hiQw0l-2s$m8YXK@M8%PT#w21_+l*b2tv z&FX(xwroB|hX$@$cl4~<*6T;vFlrYv+lO3eZtIjqrT*-L>HK}UqHMGFVne~VNhy6N Rdp~m~U3gvH{3VKY+CR#{iqQZ7 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/uk_UA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/uk_UA/__init__.py deleted file mode 100644 index 6579d35..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/uk_UA/__init__.py +++ /dev/null @@ -1,2200 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - address_formats = ["{{street_address}}, {{city_name}}, {{postcode}}"] - building_number_formats = ["#", "##", "###"] - city_formats = ["{{city_prefix}} {{city_name}}"] - street_address_formats = ( - "{{street_prefix}} {{street_name}}, буд. {{building_number}}", - "{{street_prefix}} {{street_name}}, буд. {{building_number}} кв. {{building_number}}", - ) - - street_name_formats = "{{street_prefix}} {{street_title}}" - - city_prefixes = ["місто", "село", "селище", "хутір"] - - city_names = ( - "Авдіївка", - "Алмазна", - "Алупка", - "Алушта", - "Алчевськ", - "Амвросіївка", - "Ананьїв", - "Андрушівка", - "Антрацит", - "Апостолове", - "Армянськ", - "Арциз", - "Балаклія", - "Балта", - "Бар", - "Баранівка", - "Барвінкове", - "Батурин", - "Бахмач", - "Бахмут", - "Бахчисарай", - "Баштанка", - "Белз", - "Бердичів", - "Бердянськ", - "Берегове", - "Бережани", - "Березань", - "Березівка", - "Березне", - "Берестечко", - "Берислав", - "Бершадь", - "Бібрка", - "Біла Церква", - "Білгород-Дністровський", - "Білицьке", - "Білогірськ", - "Білозерське", - "Білопілля", - "Біляївка", - "Благовіщенське", - "Бобринець", - "Бобровиця", - "Богодухів", - "Богуслав", - "Боково-Хрустальне", - "Болград", - "Болехів", - "Борзна", - "Борислав", - "Бориспіль", - "Борщів", - "Боярка", - "Бровари", - "Броди", - "Брянка", - "Бунге", - "Буринь", - "Бурштин", - "Буськ", - "Буча", - "Бучач", - "Валки", - "Вараш", - "Василівка", - "Васильків", - "Багачеве", - "Вашківці", - "Великі Мости", - "Верхівцеве", - "Верхньодніпровськ", - "Вижниця", - "Вилкове", - "Винники", - "Виноградів", - "Вишгород", - "Вишневе", - "Вільногірськ", - "Вільнянськ", - "Вінниця", - "Вовчанськ", - "Вознесенівка", - "Вознесенськ", - "Волноваха", - "Володимир-Волинський", - "Волочиськ", - "Ворожба", - "Вуглегірськ", - "Вугледар", - "Гадяч", - "Гайворон", - "Гайсин", - "Галич", - "Генічеськ", - "Герца", - "Гірник", - "Гірське", - "Глиняни", - "Глобине", - "Глухів", - "Гнівань", - "Гола Пристань", - "Голубівка", - "Горішні Плавні", - "Горлівка", - "Городенка", - "Городище", - "Городня", - "Городок", - "Горохів", - "Гребінка", - "Гуляйполе", - "Дебальцеве", - "Деражня", - "Дергачі", - "Джанкой", - "Дніпро", - "Дніпрорудне", - "Добромиль", - "Добропілля", - "Довжанськ", - "Докучаєвськ", - "Долина", - "Долинська", - "Донецьк", - "Дрогобич", - "Хутір-Михайлівський", - "Дружківка", - "Дубляни", - "Дубно", - "Дубровиця", - "Дунаївці", - "Енергодар", - "Євпаторія", - "Єнакієве", - "Жашків", - "Жданівка", - "Жидачів", - "Житомир", - "Жмеринка", - "Жовква", - "Жовті Води", - "Заводське", - "Залізне", - "Заліщики", - "Запоріжжя", - "Заставна", - "Збараж", - "Зборів", - "Звенигородка", - "Здолбунів", - "Зеленодольськ", - "Зимогір'я", - "Зіньків", - "Зміїв", - "Знам'янка", - "Золоте", - "Золотоноша", - "Золочів", - "Зоринськ", - "Зугрес", - "Івано-Франківськ", - "Ізмаїл", - "Ізюм", - "Ізяслав", - "Іллінці", - "Іловайськ", - "Інкерман", - "Ірміно", - "Ірпінь", - "Іршава", - "Ічня", - "Кагарлик", - "Кадіївка", - "Калинівка", - "Калуш", - "Кальміуське", - "Кам'янець-Подільський", - "Кам'янка (Черкаська область)", - "Кам'янка-Бузька", - "Кам'янка-Дніпровська", - "Кам'янське", - "Камінь-Каширський", - "Канів", - "Карлівка", - "Каховка", - "Керч", - "Київ", - "Кипуче", - "Ківерці", - "Кілія", - "Кіцмань", - "Кобеляки", - "Ковель", - "Кодима", - "Козятин", - "Коломия", - "Комарно", - "Конотоп", - "Копичинці", - "Корець", - "Коростень", - "Коростишів", - "Корсунь-Шевченківський", - "Корюківка", - "Косів", - "Костопіль", - "Костянтинівка", - "Краматорськ", - "Красилів", - "Красногорівка", - "Берестин", - "Красноперекопськ", - "Кременець", - "Кременчук", - "Кремінна", - "Кривий Ріг", - "Кролевець", - "Кропивницький", - "Куп'янськ", - "Курахове", - "Ладижин", - "Ланівці", - "Лебедин", - "Лиман", - "Липовець", - "Лисичанськ", - "Лозова", - "Лохвиця", - "Лубни", - "Луганськ", - "Лутугине", - "Луцьк", - "Львів", - "Любомль", - "Люботин", - "Макіївка", - "Мала Виска", - "Малин", - "Мар'їнка", - "Марганець", - "Маріуполь", - "Мелітополь", - "Мена", - "Мерефа", - "Миколаїв", - "Миколаївка", - "Миргород", - "Мирноград", - "Миронівка", - "Міусинськ", - "Могилів-Подільський", - "Отаманівка", - "Молочанськ", - "Монастириська", - "Монастирище", - "Моршин", - "Моспине", - "Мостиська", - "Мукачево", - "Надвірна", - "Немирів", - "Нетішин", - "Ніжин", - "Нікополь", - "Нова Каховка", - "Нова Одеса", - "Новгород-Сіверський", - "Нове Давидково", - "Новий Буг", - "Новий Калинів", - "Новий Розділ", - "Новоазовськ", - "Нововолинськ", - "Новоград-Волинський", - "Новогродівка", - "Новодністровськ", - "Новодружеськ", - "Новомиргород", - "Самар", - "Новоселиця", - "Новоукраїнка", - "Новояворівськ", - "Носівка", - "Обухів", - "Овруч", - "Одеса", - "Олевськ", - "Олександрівськ", - "Олександрія", - "Олешки", - "Оріхів", - "Остер", - "Острог", - "Охтирка", - "Очаків", - "П'ятихатки", - "Павлоград", - "Сокологірськ", - "Златопіль", - "Перевальськ", - "Перемишляни", - "Перечин", - "Перещепине", - "Переяслав", - "Шахтарське", - "Петрово-Красносілля", - "Пирятин", - "Південне", - "Підгайці", - "Підгородне", - "Погребище", - "Подільськ", - "Покров", - "Покровськ", - "Пологи", - "Полонне", - "Полтава", - "Помічна", - "Попасна", - "Почаїв", - "Привілля", - "Прилуки", - "Приморськ", - "Прип'ять", - "Пустомити", - "Путивль", - "Рава-Руська", - "Радехів", - "Радивилів", - "Радомишль", - "Рахів", - "Рені", - "Решетилівка", - "Ржищів", - "Рівне", - "Ровеньки", - "Рогатин", - "Родинське", - "Рожище", - "Роздільна", - "Ромни", - "Рубіжне", - "Рудки", - "Саки", - "Самбір", - "Сарни", - "Свалява", - "Сватове", - "Світловодськ", - "Світлодарськ", - "Святогірськ", - "Севастополь", - "Селидове", - "Семенівка", - "Середина-Буда", - "Сіверськодонецьк", - "Синельникове", - "Сіверськ", - "Сімферополь", - "Скадовськ", - "Скалат", - "Сквира", - "Сколе", - "Славута", - "Славутич", - "Слов'янськ", - "Сміла", - "Снігурівка", - "Сніжне", - "Сновськ", - "Снятин", - "Сокаль", - "Сокиряни", - "Соледар", - "Сорокине", - "Соснівка", - "Старий Крим", - "Старий Самбір", - "Старобільськ", - "Старокостянтинів", - "Стебник", - "Сторожинець", - "Стрий", - "Судак", - "Судова Вишня", - "Суми", - "Суходільськ", - "Таврійськ", - "Тальне", - "Тараща", - "Татарбунари", - "Теплодар", - "Теребовля", - "Тернівка", - "Тернопіль", - "Тетіїв", - "Тиврів", - "Тисмениця", - "Тлумач", - "Токмак", - "Торецьк", - "Тростянець", - "Трускавець", - "Тульчин", - "Турка", - "Тячів", - "Угнів", - "Ужгород", - "Узин", - "Українка", - "Українськ", - "Умань", - "Устилуг", - "Фастів", - "Федорівка", - "Феодосія", - "Харків", - "Харцизьк", - "Херсон", - "Хирів", - "Хмельницький", - "Хмільник", - "Ходорів", - "Хорол", - "Хоростків", - "Хотин", - "Хрестівка", - "Христинівка", - "Хрустальний", - "Хуст", - "Часів Яр", - "Шептицький", - "Черкаси", - "Чернівці", - "Чернігів", - "Чигирин", - "Чистякове", - "Чоп", - "Чорнобиль", - "Чорноморськ", - "Чортків", - "Чугуїв", - "Чуднів", - "Шаргород", - "Шахтарськ", - "Шепетівка", - "Шостка", - "Шпола", - "Шумськ", - "Щастя", - "Щолкіне", - "Южне", - "Южноукраїнськ", - "Яворів", - "Яготин", - "Ялта", - "Ямпіль", - "Яремче", - "Ясинувата", - ) - - region_names = ( - "Автономна Республіка Крим", - "Вінницька область", - "Волинська область", - "Дніпропетровська область", - "Донецька область", - "Житомирська область", - "Закарпатська область", - "Запорізька область", - "Івано-Франківська область", - "Київська область", - "Кіровоградська область", - "Луганська область", - "Львівська область", - "Миколаївська область", - "Одеська область", - "Полтавська область", - "Рівненська область", - "Сумська область", - "Тернопільська область", - "Харківська область", - "Херсонська область", - "Хмельницька область", - "Черкаська область", - "Чернівецька область", - "Чернігівська область", - ) - - countries = [ - "Австралія", - "Австрія", - "Азербайджан", - "Албанія", - "Алжир", - "Ангола", - "Андорра", - "Антигуа і Барбуда", - "Аргентина", - "Афганістан", - "Багамські Острови", - "Бангладеш", - "Барбадос", - "Бахрейн", - "Беліз", - "Бельгія", - "Бенін", - "Білорусь", - "Болгарія", - "Болівія", - "Боснія і Герцеговина", - "Ботсвана", - "Бразилія", - "Бруней", - "Буркіна-Фасо", - "Бурунді", - "Бутан", - "Вануату", - "Ватикан", - "Велика Британія", - "Венесуела", - "В'єтнам", - "Вірменія", - "Габон", - "Гаїті", - "Гаяна", - "Гамбія", - "Гана", - "Гватемала", - "Гвінея", - "Гвінея-Бісау", - "Гондурас", - "Гренада", - "Греція", - "Грузія", - "Данія", - "Джибуті", - "Домініка", - "Домініканська Республіка", - "Еквадор", - "Екваторіальна Гвінея", - "Еритрея", - "Естонія", - "Ефіопія", - "Єгипет", - "Ємен", - "Замбія", - "Західна Сахара", - "Зімбабве", - "Ізраїль", - "Індія", - "Індонезія", - "Ірак", - "Іран", - "Ірландія", - "Ісландія", - "Іспанія", - "Італія", - "Йорданія", - "Кабо-Верде", - "Казахстан", - "Камбоджа", - "Камерун", - "Канада", - "Катар", - "Кенія", - "Киргизстан", - "КНР", - "Кіпр", - "Кірибаті", - "Колумбія", - "Коморські Острови", - "Конго", - "ДР Конго", - "Південна Корея", - "Північна Корея", - "Косово", - "Коста-Рика", - "Кот-д'Івуар", - "Куба", - "Кувейт", - "Лаос", - "Латвія", - "Лесото", - "Литва", - "Ліберія", - "Ліван", - "Лівія", - "Ліхтенштейн", - "Люксембург", - "Маврикій", - "Мавританія", - "Мадагаскар", - "Малаві", - "Малайзія", - "Малі", - "Мальдіви", - "Мальта", - "Марокко", - "Маршаллові Острови", - "Мексика", - "Федеративні Штати Мікронезії", - "Мозамбік", - "Молдова", - "Монако", - "Монголія", - "М'янма", - "Намібія", - "Науру", - "Непал", - "Нігер", - "Нігерія", - "Нідерланди", - "Нікарагуа", - "Німеччина", - "Нова Зеландія", - "Норвегія", - "ОАЕ", - "Оман", - "Пакистан", - "Палау", - "Палестинська держава", - "Панама", - "Папуа Нова Гвінея", - "ПАР", - "Парагвай", - "Перу", - "Південний Судан", - "Польща", - "Португалія", - "Північна Республіка Македонія", - "Росія", - "Руанда", - "Румунія", - "Сальвадор", - "Самоа", - "Сан-Марино", - "Сан-Томе і Принсіпі", - "Саудівська Аравія", - "Свазіленд", - "Сейшельські Острови", - "Сенегал", - "Сент-Вінсент і Гренадини", - "Сент-Кіттс і Невіс", - "Сент-Люсія", - "Сербія", - "Сінгапур", - "Сирія", - "Словаччина", - "Словенія", - "Соломонові Острови", - "Сомалі", - "Судан", - "Суринам", - "Східний Тимор", - "США", - "Сьєрра-Леоне", - "Таджикистан", - "Таїланд", - "Тайвань", - "Танзанія", - "Того", - "Тонга", - "Тринідад і Тобаго", - "Тувалу", - "Туніс", - "Туреччина", - "Туркменістан", - "Уганда", - "Угорщина", - "Узбекистан", - "Україна", - "Уругвай", - "Фіджі", - "Філіппіни", - "Фінляндія", - "Франція", - "Хорватія", - "Центральноафриканська Республіка", - "Чад", - "Чехія", - "Чилі", - "Чорногорія", - "Швейцарія", - "Швеція", - "Шрі-Ланка", - "Ямайка", - "Японія", - ] - street_prefixes = [ - "вулиця", - "набережна", - "провулок", - "площа", - "проспект", - "узвіз", - "сквер", - "парк", - "шосе", - ] - - # https://data.gov.ua/en/dataset/__-120/resource/76e2684f-e75c-45e5-a0b2-6d5596ab47f8 - # https://opendata.drohobych-rada.gov.ua/sites/default/files/%D0%90%D0%B4%D1%80%D0%B5%D1%81%D0%B8%20%D0%94%D1%80%D0%BE%D0%B3%D0%BE%D0%B1%D0%B8%D1%87.xlsx - street_titles = [ - "1-ша Лінія 4-ї ст. Люстдорфської дороги", - "1-ша Лінія 6-й ст. Люстдорфської дороги", - "1-ша Лінія Марії Демченко", - "Олександра Болдирєва", - "1-й Академічний тупик", - "10-та Лінія 6-й ст. Люстдорфської дороги", - "10-та Лінія Марії Демченко", - "Олександра Богомольця", - "11-ша Лінія 6-й ст. Люстдорфської дороги", - "11-та Лінія Марії Демченко", - "11-та ст. Великого Фонтану пляж", - "Яна Длугоша", - "12-та Лінія 6-й ст. Люстдорфської дороги", - "12-та ст. Великого Фонтану пляж", - "Юрія Кондратюка", - "13-та Лінія 6-й ст. Люстдорфської дороги", - "13-та ст. Великого Фонтану пляж", - "Миколи Костомарова", - "14-та Лінія 6-й ст. Люстдорфської дороги", - "14-та ст. Великого Фонтану пляж", - "Марка Крейна", - "15-та Лінія 6-й ст. Люстдорфської дороги", - "15-та ст. Великого Фонтану пляж", - "Скліфосовського", - "16-та Лінія 6-й ст. Люстдорфської дороги", - "17-та Лінія 6-й ст. Люстдорфської дороги", - "18-та Лінія 6-й ст. Люстдорфської дороги", - "19-та Лінія", - "19-й км Старокиївської дороги", - "2-га Лінія 4-ї ст. Люстдорфської дороги", - "2-га Лінія 6-й ст. Люстдорфської дороги", - "2-га Лінія Марії Демченко", - "Бардаха", - "2-й Академічний тупик", - "21-й км Старокиївської дороги", - "3-тя Лінія 4-ї ст. Люстдорфської дороги", - "3-тя Лінія 6-й ст. Люстдорфської дороги", - "3-тя Лінія Марії Демченко", - "Миколи Пильчикова", - "4-та Лінія 6-й ст. Люстдорфської дороги", - "4-та Лінія Марії Демченко", - "Йосипа Фішера", - "40-річчя оборони Одеси", - "411-ї батареї", - "5-та Лінія 6-й ст. Люстдорфської дороги", - "5-та Лінія Марії Демченко", - "Цесевича", - "6-та Лінія 6-й ст. Люстдорфської дороги", - "6-та Лінія Марії Демченко", - "Баринштейна", - "7-ма Лінія 6-й ст. Люстдорфської дороги", - "7-ма Лінія Дачі Ковалевського", - "Євгена Крамаренка", - "8-ма Лінія 6-й ст. Люстдорфської дороги", - "8-ма Лінія Дачі Ковалевського", - "Володимира Антоновича", - "9-та Лінія Дачі Ковалевського", - "Квітки-Основ’яненка", - "Абрикосова", - "Абрикосовий", - "Авангардна", - "Одеської громади", - "Авіаторів", - "Авіаційна", - "Аграрна", - "Агрономічна", - "Агрономічний", - "Адміральський", - "Аеродромна", - "Аеродромний 1-й", - "Аеродромний 2-й", - "Аеродромний 3-й", - "Аеропортівська", - "Аеропортівський 1-й", - "Аеропортівський 2-й", - "Аеропортівський 3-й", - "Аеропортівський 4-й", - "Аеропортівський 5-й", - "Аеропортівський 6-й", - "Азербайджан", - "Азовський", - "Академіка Богатського", - "Сергія Єфремова", - "Академіка Векслера", - "Карпенка-Карого", - "Віталія Нестеренка", - "Житомирська", - "Князя Ярослава Мудрого", - "Академіка Заболотного", - "Академіка Корольова", - "Дмитра Сигаревича", - "Академіка Сахарова", - "Академіка Філатова", - "Академіка Ясиновського", - "Академічна", - "Академічний", - "Акордна", - "Алмазна", - "Альпіністів", - "Амбулаторна", - "Амбулаторний", - "Амбулаторний 1-й", - "Амбулаторний 2-й", - "Амундсена, 1-й", - "Амундсена, 2-й", - "Амундсена, 3-й", - "Острозька", - "Кам’янецький", - "Глухівський", - "Волинський", - "Кременецький", - "Ананьївська", - "Буджацька", - "Андреєвського", - "Олега Андрійця", - "Андросовський", - "Ганни Ахматової", - "Зої Пасічної", - "Аптекарський", - "Аркадіївський", - "Аркадійська", - "Аркаса Миколи", - "Армійська", - "Артезіанська", - "Артилерійська", - "Артилерійський 2-й", - "Архітекторська", - "Архітектурна", - "Юрія Асєєва", - "Асташкіна", - "Астрономічна", - "Астрономічний", - "Ашгабатська", - "Дмитра Іванова", - "Багрицького", - "Базарна", - "Байдарочний", - "Байкал тупик", - "Юрія Єгорова", - "Балківська", - "Балтська дорога", - "Балтський 1-й", - "Балтський 2-й", - "Балтський 3-й", - "Балтський 4-й", - "Балтський 5-й", - "Балтський 6-й", - "Балтський 7-й", - "Балтський 8-й", - "Банний", - "Баркасний", - "Басейна", - "Басейний 1-й", - "Басейний 2-й", - "Басейний 3-й", - "Басейний 4-й", - "Басейний 6-й", - "Бахчева", - "Баштанна", - "Безіменний", - "Берегова", - "Березова", - "Березовий", - "Бернардацці", - "Бессарабська", - "Данила Самойловича", - "Бібліотечна", - "Кастуся Калиновського", - "Савранський", - "Біляївська", - "Ігоря Іванова", - "Бісквітний", - "Бітумна", - "Ольги Благовидової", - "Богдана Хмельницького", - "Богуна", - "Бодаревського", - "Бокаріуса", - "Болгарська", - "Болградська", - "Бориса Дерев'янка", - "Бориса Літвака", - "Героїв Зміїного", - "Ботанічний", - "Василя Фащенка", - "Вінницька", - "Берестейська", - "Бреуса Якова", - "Бригадна", - "Бугаївська", - "Будівельна", - "Будівельний", - "Бузкова", - "Бузковий", - "Бузковий 1-й", - "Бузковий 2-й", - "Ніни Строкатої", - "Бучми", - "Кінбурнський", - "В’ячеслава Чорновола", - "Валіховський", - "Ванний", - "Миколи Куліша", - "Гіацинтовий", - "Вапняна", - "Вапняне селище", - "Вапняний 1-й", - "Вапняний 2-й", - "Вапняний 3-й", - "Варненська", - "Василя Кандинського", - "Василя Кандинського 1-й", - "Василя Кандинського 2-й", - "Василя Кандинського 3-й", - "Василя Кандинського 4-й", - "Василя Кандинського 5-й", - "Василя Симоненка", - "Василя Стуса", - "Ждахи", - "Михайла Слабченка", - "Ватманський", - "Велика Арнаутська", - "Велика Садова", - "Венгера", - "Академіка Липського", - "Вернидуба", - "Верстатобудівна", - "Вертелецького", - "Верф’яний", - "Верхня", - "Вершинна", - "Весела", - "Весняна", - "Ветеранів праці", - "Назарівська", - "Ігоря Ветрогонова", - "Виїзна", - "Виноградна", - "Виноградна 1-ша", - "Виноградна 2-га", - "Виноградна 3-тя", - "Виноградний", - "Виноградний тупик", - "Висока", - "Високий", - "Ярослава Баїса", - "Виставочна", - "Вишнева", - "Вишневий", - "Відважних", - "Військовий узвіз", - "Вільгельма Габсбурга", - "Віри Інбер", - "Буковецького", - "Віри Холодної", - "Вірського", - "Вітчизняна", - "Андрія Гулого-Гуленка", - "Івана Луценка", - "Водний", - "Водопровідна", - "Водопровідний 1-й", - "Водопровідний 2-й", - "Водопровідний 3-й", - "Вознесенський", - "Вокзальна", - "Вокзальний", - "Олександрійський", - "тупик Хвиля", - "Хвиляста", - "Володимира Вінниченка", - "Володимира Хавкіна", - "Володі Дубініна", - "Батуринська", - "Ізюмська", - "Байгородський", - "Восьмого березня", - "Восьмого березня 1-й", - "Восьмого березня 2-й", - "Восьмого березня 3-й", - "Восьмого березня 4-й", - "Кодимський", - "Восьмого березня 6-й", - "Бейтельсбахера", - "Восьмого березня 8-й", - "Волтона", - "Восьмого Березня Лінія 1-ша", - "Килимова", - "Гобеленова", - "Фахова", - "Бондарна", - "Віктора Скаржинського узвіз", - "Вузький", - "Вчительська", - "Вчительської, 2-й", - "Гаванна", - "Газова", - "Газовий", - "Павла Клепацького", - "Давида Бурлюка", - "Соні Делоне", - "Андрія Музичка", - "Гвоздична", - "Гвоздичний", - "Гена Іоганна", - "Генуезька", - "Геологічна", - "Георгія Гамова", - "Геранієва", - "Героїв Крут", - "Героїв Небесної Сотні", - "Героїв оборони Одеси", - "Героїв прикордонників", - "Галини Могильницької", - "Гетьманський", - "Гілельса", - "Гімназична", - "Каменярів", - "Бориса Нечерди", - "Дмитра Годзенка", - "Кафедральна", - "Глиняна", - "Глухий міст", - "Гоголя", - "Головківська", - "Головна", - "Гонтаренко", - "Горбатий міст", - "Горбиста", - "Горизонтальна", - "Горіхова", - "Городня", - "Хортицька", - "Марка Твена", - "Госпітальний", - "Тараса Кузьміна", - "Гранатна", - "Гранатний", - "Грецька", - "Грецька", - "Грецький", - "Джинестрівська", - "Грузинська", - "Грузовий", - "Давида Ойстраха", - "Трусовська", - "Дальницька", - "Дальницьке", - "Дальній", - "Дальня", - "Данила Крижанівського", - "Проектуєма", - "Дача Ковалевського", - "Дачна", - "Дачний", - "Дачний 1-й", - "Дачний 2-й", - "Всеволода Змієнка", - "Дев’ята", - "Деволанівська", - "Деволанівський узвіз", - "Миргородський", - "Дельфін", - "Грушева", - "Демократична", - "Депутатський", - "Деревообробна", - "Деревообробний 1-й", - "Деревообробний 2-й", - "Деревообробний 3-й", - "Деревообробний 4-й", - "Деревообробний 5-й", - "Глаубермана", - "Квантовий", - "Дерибасівська", - "Десантний", - "Десята", - "Десятого квітня", - "Десятого квітня", - "Джерельна", - "Джутовий", - "Дзвінка", - "Дігтярна", - "Дідріхсона", - "Діхтієвського Віктора", - "Дмитріївська", - "Лазурського", - "Дніпровська", - "Дніпропетровська дорога", - "Дністровська", - "Князя Володимира Великого ", - "Довга", - "Довженка", - "Докова", - "Долинська", - "Донецька", - "Донцова Дмитра", - "Дорбуду", - "Дорожня", - "Друга", - "Дружний", - "Дубова", - "Дубовий гай", - "Дукова", - "Біржова", - "Панаса Саксаганського", - "Мирослава Скорика", - "Олександра Кошиця", - "Лятошинського", - "Дунайська", - "Дюківська", - "Дюківський сад", - "Економічний", - "Елеваторна", - "Естафетна", - "Естонська", - "Естонський", - "Єврейська", - "Халайджогло", - "Ференца Ліста", - "Юрія Коваленка", - "Охтирський", - "Єфімова", - "Жаботинського", - "Жасминна", - "Жевахова", - "Владислава Домбровського", - "Братів Малакових", - "Житомирська", - "Житомирський 3-й", - "Житомирський 4-й", - "Жоліо-Кюрі", - "Жолкова Бориса", - "Леопольда Ященка", - "Заводська", - "Заводська 1-ша", - "Заводська 2-га", - "Заводська 3-тя", - "Заводська 4-та", - "Заводська 5-та", - "Задніпровського", - "Закарпатська", - "Залізнична", - "Залізничний 3-й", - "Заньковецької", - "Запорізька", - "Зарічна", - "Західний 1-й", - "Західний 2-й", - "Західний 3-й", - "Західний 4-й", - "Зелена", - "Зелена балка", - "Зелена гірка", - "Зелений", - "Зернова", - "Злакова", - "Змієнка Всеволода", - "Золотий берег", - "Зоопаркова", - "Караїмська", - "Зоряна", - "Івана Вазова", - "Івана Микитенка", - "Івана Франка", - "Іванівська", - "Іванівський переїзд", - "Бутишів", - "Мерло", - "Каберне", - "Іванова Ігоря", - "Івасюка Володимира", - "Івахненка Петра", - "Сім'ї Глодан", - "Інглезі", - "Індійська", - "Сергія Коновалова", - "Іподромний", - "Іспанська", - "Іспанський", - "Історія Футболу", - "Італійський", - "Рабіна Іцхака", - "Йосипа Тимченка", - "Кавказька", - "Кавказький", - "Кавунова", - "Ізмаїльська", - "Казковий", - "Калинова", - "Петра Калнишевського", - "Валерія Самофалова", - "Кортацці", - "Камишова", - "Канатна", - "Канатний", - "Капітана Гаврікова", - "Капітана Кузнецова", - "Кар’єрна", - "Карантинна", - "Карантинний узвіз", - "Каретний", - "Каркашадзе", - "Карпатська", - "Картамишевська", - "Картамишевський", - "Європейська", - "Каховський", - "Симфонічна", - "Каштанова", - "Квіткова", - "Квітковий", - "Квітнева", - "Кедровий", - "Керченська", - "Керченський 1-й", - "Керченський 2-й", - "Керченський 3-й", - "Луїджі Іоріні", - "Київське", - "Килимовий", - "Кипарисний 1-й", - "Кипарисний 2-й", - "Кипарисний 3-й", - "Китобійна", - "Китобійний 1-й", - "Китобійний 2-й", - "Бориса Кифоренка", - "Кишинівська", - "Кільовий", - "Кільцева", - "Кінна", - "Ігоря Кисельова", - "Кладовищенська", - "Кладовищний", - "Кленова", - "Клинова", - "Ключовий 1-й", - "Ключовий 2-й", - "Книжковий", - "Князівська", - "Князівський", - "Павла Зеленого", - "Пішонівська", - "Ковиловий", - "Колективний", - "Колекційна", - "Колонічна", - "Колонтаївська", - "Василя Капніста", - "Компасний", - "Музична", - "Мелодійний", - "Ніщинського Композитора", - "Кондрашина", - "Конструкторський", - "Віталія Гуляєва", - "Кордонна", - "Кордонний", - "Корнюшина", - "Ігоря Балмагії", - "Короткий", - "Кобзаря", - "Косий", - "Любомира Гузара", - "Космонавтів", - "Косовська", - "Косовський", - "Костанді", - "Костанді 2-й", - "Костанді 3-й", - "Ольги Благовидової", - "Олексія Косяченко", - "Котляревського", - "Коцюбинського", - "Кощового отамана", - "Крайня", - "Красива", - "Красний", - "Краснова", - "Ольвійська", - "Краснослобідська", - "Краснослобідський", - "Кредитний", - "Дур'янівський", - "Кривобалківська", - "Крижанівський", - "Юзефа Крашевського", - "Кримська", - "Кримський", - "Кристаловського", - "Кришталева", - "Кришталевий", - "Кропивницького", - "Кругова", - "Круговий", - "Крутоярська", - "Крушельницької", - "Кузнечна", - "Куликове поле", - "Куликовський 2-й", - "Куниці", - "Купріна", - "Сотника Лугіна", - "Курортний", - "Курортний 6-й", - "Бахмутська", - "Кустанайська", - "Кустанайський 2-й", - "Кутова", - "Генерала Алмазова", - "Куяльницький міст", - "Лавкова", - "Лазурний 1-й", - "Лазурний 2-й", - "Лазурний 3-й", - "Лазурний 4-й", - "Лазурний 5-й", - "Лазурний 6-й", - "Ламаний", - "Ланжерон", - "Ланжеронівська", - "Ланжеронівський узвіз", - "Латвійський узвіз", - "Левадна", - "Гонсіоровського", - "Толвінського", - "Миколи Бурачека", - "Левкоєва", - "Олександра Станкова", - "Олешківська", - "Леонтовича", - "Джевецького", - "Госпітальєрів", - "Лесі Українки", - "Леха Качинського", - "Лиманна", - "Лиманний", - "Лиманчик 2-й Лінія 1-ша", - "Лиманчик 2-й Лінія 11-та", - "Лиманчик 2-й Лінія 2-га", - "Лиманчик 2-й Лінія 3-тя", - "Лиманчик 2-й Лінія 4-та", - "Лиманчик 2-й Лінія 5-та", - "Лиманчик 2-й Лінія 8-ма", - "Лиманчик 2-й Лінія 9-та", - "Ф. Пішеніна", - "Липнева", - "Листяна", - "Листяний", - "Литовська", - "Ліверпульський", - "Гетьмана Сагайдачного", - "Шевальових", - "Лінійна", - "Лінійний", - "Лїнія 1-ша", - "Лінія 22-га", - "Лінія 23-тя", - "Лінія 24-та", - "Лінія 25-та", - "Лінія 26-та", - "Лінія 27-ма", - "Лінія 28-ма", - "Лінія 29-та", - "Лінія 30-та", - "Лінія 31-ша", - "Лінія 32-га", - "Лінія 33-тя", - "Лінія 35-та", - "Лінія 36-та", - "Лінія 37-ма", - "Лінія 38-ма", - "Лінія 39-та", - "Лінія 40-ва", - "Лінія 41-ша", - "Лінія 42-га", - "Лінія 43-тя", - "Лінія 44-та", - "Лінія 45-та", - "Лінія 46-та", - "Лінія 47-ма", - "Лінія 48-ма", - "Лінія 49-та", - "Лінія 50-та", - "Лінія 51-ша", - "Лінія 52-га", - "Лінія 53-тя", - "Лінія 54-та", - "Лінія 55-та", - "Літакова", - "Літературна", - "Літній", - "Літня", - "Лобачевського", - "Лодочний", - "Локальна", - "Локомотивна", - "Локомотивний 1-й", - "Локомотивний 2-й", - "Локомотивний 3-й", - "Локомотивний 4-й", - "Луганська", - "Лугова", - "Лузанівка", - "Лузанівка", - "Лузанівська", - "Лузанівський", - "Лузанівський 1-й", - "Лузанівський 2-й", - "Місячний", - "Луценка Івана", - "Луцька", - "Лучиста", - "Льва Симиренка", - "Менделе Сфоріма", - "Львівська", - "Львівський", - "Любашівський", - "Людмили Гінзбург", - "Люстдорфська дорога", - "Люстдорфський", - "Лютеранський", - "Лютнева", - "Лютневий 1-й", - "Лютневий 2-й", - "Хортицька", - "Остапа Вишні", - "Олександра Ройтбурда", - "М’ясоєдовська", - "Магістральна", - "Михайла Врубеля", - "Адольфа Лози", - "Сергія Параджанова", - "Мазепи Івана", - "Майстерний", - "Лігінська", - "Контрадмірала Остроградського", - "Макова", - "Маковий", - "Мала", - "Мала Арнаутська", - "Мала Садова", - "Маланова", - "Хаджибейський", - "Маловського", - "Манежна", - "Манежний", - "Маразліївська", - "Фруктова", - "Сливовий", - "Чорничний", - "узвіз Віталія Блажка", - "Мариністів", - "Дениса Максишка", - "Михайла Омеляновича-Павленка", - "Марсельська", - "Добровольців", - "Маршрутна", - "Матеріальний 1-й", - "Матроська Слободка ", - "Матроський узвіз", - "Матюшенка", - "Віталія Блажка", - "Мацієвської", - "Мацієвської узвіз", - "Машинобудівний", - "Маячний", - "Мелітопольська", - "Мельницька", - "Металістів", - "Флейтовий", - "Петра Болбочана", - "Мечникова", - "Мигдальна", - "Миколаївська дорога", - "Миколаївський 1-й", - "Миколи Бажана", - "Миколи Боровського", - "Миколи Вороного", - "Ганса Германа", - "Миколи Гумільова", - "Миколи Огренича", - "Миколи Плигуна", - "Мирна", - "Митна", - "Митракова", - "Михайла Божія", - "Михайла Грушевського", - "Військово-морських сил", - "Михайлівська", - "Йозефа Прибіка", - "Місячна", - "Миколи Міхновського", - "Міцкевича", - "Матроський", - "Бєлякова", - "Волова", - "Могилівська", - "Молоді", - "Молодіжна", - "Чайкова", - "Молокова", - "Монастирський", - "Монгольська", - "Морехідна", - "Морехідний", - "Морська", - "Морський", - "Морський 2-й", - "Литавровий", - "Москеті", - "Мостовий", - "Моторна", - "Моторний 1-й", - "Моторний 2-й", - "Моторний 3-й", - "Мукачівський", - "Мусіна", - "Набережна", - "Навігаційний", - "Надіїі", - "Наклонна", - "Наливна", - "Нафтовиків", - "Нафтовиків", - "Нафтовиків 1-й", - "Нафтовиків 2-й", - "Нафтовиків 3-й", - "Миколи Кравченка", - "Наявний 1-й", - "Наявний 2-й", - "Наявний 3-й", - "Наявний 4-й", - "Наявний 5-й", - "Наявний 6-й", - "Наявний 7-й", - "Небесної Сотні", - "Анатолія Бачинського", - "Заможна", - "Ромський", - "Незалежності", - "Отонівський", - "Немировича-Данченка", - "Неплія", - "Нерубайська", - "Нескучна", - "Нечипуренка", - "Ніжинська", - "Шполянська", - "Нова", - "Новаторів", - "Михайла Жука", - "Дворникова", - "Теофіла Фраєрмана", - "Новий", - "Новиков міст", - "Ірини Жиленко", - "Родоканакі", - "Новобазарний", - "Новоберегова", - "Чигиринська", - "Новоселів", - "Новосельского", - "Новоукраїнський", - "Новощіпний ряд", - "Об'їзна дорога", - "Обільна", - "Обільний 1-й", - "Обільний 2-й", - "Обривиста", - "Обсерваторний", - "Овідіопольська", - "Овідіопольська дорога", - "Овідіопольська дуга", - "Овідіопольський", - "Одарія", - "Одеса-Головна", - "Одеська", - "Одеський", - "Озерна", - "Окружна", - "Олександра Блока", - "Композитора Вербицького", - "Олександра Кутузакія", - "Валерія Лобановського", - "Сергія Шелухина", - "Климовича", - "Чехівського", - "Василя Кричевського", - "Павла Чубинського", - "Майка Йогансена", - "Леоніда Осики", - "Олександра Тимошенка", - "Українських Героїв", - "Олексіївська", - "Ольгіївська", - "Ольгіївський узвіз", - "Василя Берладяну", - "Евлії Челебі", - "Онілової", - "Оранжерейний", - "Орликова", - "Олешківська", - "Надії Пучковської", - "Осипова", - "Осіння", - "Остапа Вишні", - "Отамана Головатого", - "Отамана Чепіги", - "Отрада", - "Отрадна", - "Офіцерська", - "Офіцерський 1-й", - "Офіцерський 2-й", - "П'ята", - "Пiвденний", - "Павла Кравцова", - "Павла Шклярука", - "Павлова", - "Павлодарська", - "Палія Семена", - "Палубна", - "Палубний", - "Панаса Мирного", - "Пантелеймонівська", - "Панченка", - "Парашутний", - "Паркова", - "Парковий", - "Партизанська", - "Партизанської слави", - "Парусна", - "Пассіонарії", - "Пастера", - "Патріотична", - "Педагогічна", - "Педагогічний", - "Пейзажна", - "Добровольців", - "Рятувальників", - "Перепечка", - "Пересипський міст", - "Пересипська 1-ша", - "Пересипська 10-та", - "Пересипська 2-га", - "Пересипська 3-тя", - "Пересипська 4-та", - "Пересипська 5-та", - "Пересипська 6-та", - "Пересипська 7-ма", - "Пересипська 8-ма", - "Пересипська 9-та", - "Пересипський 1-й", - "Пересипський 2-й", - "Пересипський узвіз", - "Перлинна", - "Перша", - "Перший Кришталевий", - "Миколи Леонтовича", - "Саймона Літмана", - "Цукровий", - "Петра Лещенка", - "Леся Курбаса", - "Пироговська", - "Пироговський", - "Бориса Едуардса", - "Південна", - "Південна дорога", - "Південно-Санаторний", - "Північна", - "Північний", - "Підйомний", - "Пілотна", - "Пісочна", - "Пісочний", - "Пішонівська", - "Планетна", - "Платанова", - "Бродська", - "Пляжна", - "Побратимів", - "Подільська", - "Поїзна", - "Покровський", - "Буковинська", - "Хотинський", - "Політкаторжан", - "Полтавська", - "Полуничний", - "Польова", - "Польовий 1-й", - "Польська", - "Польський узвіз", - "Поперечний", - "Посівна", - "Балтиморська", - "Поштова", - "Поштовий", - "Преображенська", - "Пресича Олександра", - "Стрийський", - "Прибережний", - "Привозна", - "Привокзальна", - "Привокзальний", - "Приморська", - "Приморський", - "Приморський", - "Прирейкова", - "Проектна 1-ша", - "Проектна 2-га", - "Проектний 5-й", - "Проектований 3-й", - "Проектований 4-й", - "Проїзний 1-й", - "Проїзний 2-й", - "Проїзний 3-й", - "Прокатна", - "Іони Отаманського", - "Географічний", - "Промислова", - "Промисловий", - "Прорізна", - "Прорізний", - "Просвіти", - "Путівна", - "Проточний", - "Професора Каришковського", - "Професора Коровицького", - "Профспілкова", - "Прохоровська", - "Прохоровський", - "Прохоровський", - "Проценка", - "Почаївська", - "Опішнянський", - "Персикова", - "Путьова", - "Рози вітрів", - "Пшенична", - "Прилуцький", - "Радіальна", - "Радіальний", - "Радіо", - "Радісна", - "Радісний", - "Разумовська", - "Раїси Сергієнко", - "Райдужна", - "Ракетна", - "Рачкова", - "Регенсбург", - "Рекордний", - "Рельєфна", - "Ремонтна", - "Республіканська", - "Рєпіна", - "Рибальська", - "Рибальська балка", - "Рибальський", - "Ризька", - "Рівний", - "Рівності", - "Рівності", - "Рівності 1-й", - "Рівності 2-й", - "Різдвяна", - "Різницький", - "Різовська", - "Рішельєвська", - "Рожева", - "Роздольна", - "Розкидайлівська", - "Розумовський 1-й", - "Розумовський 2-й", - "Решата Аметова", - "Романтиків", - "Романтичний", - "Ромашкова", - "Маріупольська", - "Гайова", - "Рульовий", - "Миколи Савича", - "Сабанський", - "Савицький", - "Савранська", - "Садиковська", - "Садова", - "Садова 1-ша", - "Садова 2-га", - "Садова 3-тя", - "Садова 4-та", - "Садова 5-та", - "Садова 6-та", - "Садовий", - "Садовського", - "Саксаганського", - "Пилипа Орлика", - "Обліпихова", - "Самодіяльна", - "Санаторний", - "Санітарна", - "Сашка Хорошенка", - "Світанку", - "Світла", - "Світлий", - "Свободи", - "Святослава Ріхтера", - "Севастопольський", - "Сегедська", - "Селекційна", - "Селекційний", - "Селищна", - "Селищний", - "Семафорний", - "Семінарська", - "Сергія Ейзенштейна", - "Сергія Уточкіна", - "Сергія Ядова", - "Серединський", - "Середньофонтанська", - "Середньофонтанський", - "Середня", - "Сірожупанників", - "Сєрогодського", - "Зої Бутенко", - "Поліська", - "Сирітський", - "Сирітський 2-й", - "Сільська", - "Сільськогосподарський", - "Сімферопольська", - "Сінна", - "Новопланівська", - "Скидановська", - "Скидановський узвіз", - "Складська", - "Скляна", - "Скляний 1-й", - "Скляний 2-й", - "Скляний 3-й", - "Скрипковий", - "Слави", - "Слави", - "Донорська", - "Сливова", - "Слобідська", - "Слобідський узвіз", - "Слов'янська", - "Сміливий", - "Почаївська", - "Павла Вірського", - "Соборна", - "Совіньйонівський", - "Солонцюватий", - "Солонцюватий 1-й", - "Соляна", - "Соляний 1-й", - "Соляний 2-й", - "Соляний 3-й", - "Соляний 4-й", - "Соляний 5-й", - "Соляний 6-й", - "Соляний 7-й", - "Сонячна", - "Сортувальна 1-ша", - "Сортувальна 2-га", - "Сосюри", - "Софії Перовської", - "Софіївська", - "Соціальна", - "Бахчисарайська", - "Ярмарковий", - "Спаський", - "Спиридонівська", - "Спортивна", - "Спортивний", - "Сталепрокатна", - "Стамбульський", - "Станційна 1-ша", - "Станційна 2-га", - "Станційна 3-тя", - "Старицького", - "Старобазарний", - "Старокінний", - "Старопортофранківська", - "Старорізнична", - "Старосінна", - "Школярський", - "Стельмаха", - "Степана Олійника узвіз", - "Малинова", - "Степна", - "Степний 2-й", - "Степова", - "Стеценко", - "Томатна", - "Стовпова", - "Стороженка Олега", - "Стражеска Миколи", - "Строганов міст", - "Максима Чайки", - "Студена", - "Студентський", - "Студентський 1-й", - "Студентський 2-й", - "Студентський 3-й", - "Студентський 4-й", - "Студентський 5-й", - "Петра Біциллі", - "Суднобудівна", - "Суднобудівний", - "Сумська", - "Сумський", - "Суперфосфатна", - "Супутників", - "Лірний", - "Бандурний", - "Сухолиманна", - "Східний", - "Східний 1-й", - "Східний 2-й", - "Східчастий 3-й", - "Східчастий 4-й", - "Східчастий", - "Сьома", - "Таїрова", - "Танкерна", - "Танкістів", - "Танфільєва", - "Тарутинська", - "Творча", - "Текстильників", - "Олени Теліги", - "Тепла", - "Теплична", - "Тепличний 1-й", - "Тепличний 2-й", - "Володимира Терещенка", - "Тетяни Тесс", - "Технічний", - "Тещин міст", - "Айвазовського", - "Тираспольська", - "Тиха", - "Тіниста", - "Тінистий", - "Ткачова", - "Товарний", - "Трибуни героїв", - "Георгія Липського", - "Василя Данилевича", - "Тополина", - "Тополиний", - "Топольського", - "Торгова", - "Травневий", - "Травневий 1-й", - "Травневий 2-й", - "Травневий 3-й", - "Травневий 4-й", - "Травневий 5-й", - "Тракторна", - "Трамвайна", - "Трамвайний", - "Транспортна", - "Траса Здоров'я", - "Троїцька", - "Миколи Троїцького", - "Тролейбусна", - "Трояндова", - "Трудова", - "Трудовий", - "Олександра Білостінного", - "Героїв УПА", - "Тупиковий", - "Тупиковий 1-й", - "Тупиковий 2-й", - "Андрія Сови", - "Туристська", - "Туристський", - "Тюльпанний", - "Угорська", - "Удільний", - "Українська", - "Український 1-й", - "Український 2-й", - "Український 3-й", - "Улицька", - "Уманська", - "Умова", - "Університетський", - "Уральська", - "Уральський", - "Урожайна", - "Усатівська", - "Успенська", - "Успенський", - "Ніли Крюкової", - "Училищна", - "Учительський", - "Учнівська", - "Багринова", - "Ушинського", - "Затишна", - "Ф. Пішеніна", - "Фабрична", - "Фестивальний", - "Флотська", - "Флотський 1-й", - "Флотський 2-й", - "Флотський 3-й", - "Флотський 4-й", - "Фонтанська дорога", - "Французький", - "Фруктовий", - "Хаджибейська дорога", - "Хаджибейський 1-й", - "Хаджибейський 2-й", - "Хаджибейський 3-й", - "Харківська", - "Хвойний", - "Херсонський", - "Херсонський сквер", - "Хімічна", - "Хімічний 1-й", - "Хімічний 2-й", - "Хімічний 3-й", - "Хлібна гавань", - "Художника Федорова", - "Хутірська", - "Хутірський", - "Цебриківська", - "Цегельнозаводська", - "Цегляна", - "Цементний", - "Центральна", - "Центральний аеропорт", - "Церковна", - "Цимлянська", - "Йоганна Ансельма", - "Театральний", - "Барвінковий", - "Черешнева", - "Черкаська", - "Чернишевського", - "Чернівецький", - "Чернігівська", - "Чернігівський", - "Артура Савельєва", - "Четверта", - "Журавлина", - "Чорноморка", - "Чорноморська", - "Чорноморський", - "Чорноморський", - "Чорноморський 1-й", - "Чорноморський 10-й", - "Чорноморський 11-й", - "Чорноморський 12-й", - "Чорноморський 13-й", - "Чорноморський 2-й", - "Чорноморський 3-й", - "Чорноморський 4-й", - "Чорноморський 5-й", - "Чорноморський 6-й", - "Чорноморський 7-й", - "Чорноморський 8-й", - "Чорноморський 9-й", - "Чорноморського козацтва", - "Чубаївська", - "Чубаївський", - "Чумацька", - "Шампанський", - "Шахтинський", - "Шебелінський", - "Шевченка", - "Шевченка парк", - "Шептицького", - "Шефська", - "Шилова", - "В'ячеслава Липинського", - "Ширяївський", - "Незамаївська", - "Олександра Мурашка", - "Шкільний", - "Шкільний аеродром", - "Шкіперська", - "Шкодова гора", - "Шовкуненка", - "Волокидіна", - "Шоста", - "Шостої 1-й", - "Шостої 2-й", - "Шота Руставелі", - "Штабний", - "Штильова", - "Штурвальна", - "Штурманська", - "Шухевича Романа", - "Щіпний", - "Щоглова", - "Щоголєва", - "Медовий", - "Ювілейний 1-й", - "Ювілейний 2-й", - "Юннатів", - "Юннатів 1-й", - "Юннатів 2-й", - "Юннатів 3-й", - "Олександра Юрженка", - "Юрія Олеші", - "Юрія Яновського", - "Юхима Геллера", - "Юхима Фесенка", - "Альтовий", - "Яблунева", - "Яблучна", - "Якірний", - "Ігоря Бедзая", - "Ялинкова", - "Ялинковий", - "Ігоря Бедзая", - "Ямчитського", - "Ярморочна площа", - "Яружний", - "Ясна", - "Семена Яхненка", - "Яші Гордієнка", - ] - - def city_prefix(self) -> str: - """ - :sample: - """ - return self.random_element(self.city_prefixes) - - def city_name(self) -> str: - """ - :sample: - """ - return self.random_element(self.city_names) - - def postcode(self) -> str: - """ - The code consists of five digits (01000-99999) - - :sample: - """ - return f"{self.generator.random.randrange(1000, 99999):05}" - - def street_prefix(self) -> str: - """ - :sample: - """ - return self.random_element(self.street_prefixes) - - def street_name(self) -> str: - """ - :sample: - """ - return self.random_element(self.street_titles) - - def street_title(self) -> str: - """ - :sample: - """ - prefix = self.street_prefix() - street = self.street_name() - return prefix + " " + street - - def region(self) -> str: - """ - :sample: - """ - return self.random_element(self.region_names) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/uk_UA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/uk_UA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 754464b9e2b8e60cf0c0028ebfc95971834e89bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59010 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/vi_VN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/vi_VN/__init__.py deleted file mode 100644 index 64bade2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/vi_VN/__init__.py +++ /dev/null @@ -1,307 +0,0 @@ -"""This module provides address-related functionalities for Vietnamese addresses.""" - -from collections import OrderedDict -from typing import Optional, Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - """Provider for generating Vietnamese addresses. - Sources: - - # https://vi.wikipedia.org/wiki/B%E1%BA%A3n_m%E1%BA%ABu:K%C3%BD_hi%E1%BB%87u_quy_%C6%B0%E1%BB%9Bc_c%C3%A1c_t%E1%BB%89nh_th%C3%A0nh_Vi%E1%BB%87t_Nam - """ - - city_prefixes = ("Thành phố", "Quận", "Huyện", "Thị xã") - - city_suffixes = ( - "Thành phố", - "Quận", - "Huyện", - "Thị xã", - "Xã", - "Phường", - ) - - building_number_formats = ("###", "##", "#") - - street_suffixes = ( - "Đường", - "Ngõ", - "Hẻm", - "Làng", - "Khu", - "Tổ", - "Số", - "Dãy", - ) - - postcode_formats = ("######",) - - provinces = ( - "An Giang", - "Bà Rịa – Vũng Tàu", - "Bạc Liêu", - "Bắc Kạn", - "Bắc Giang", - "Bắc Ninh", - "Bến Tre", - "Bình Dương", - "Bình Định", - "Bình Phước", - "Bình Thuận", - "Cà Mau", - "Cao Bằng", - "Cần Thơ", - "Đà Nẵng", - "Đắk Lắk", - "Đắk Nông", - "Điện Biên", - "Đồng Nai", - "Đồng Tháp", - "Gia Lai", - "Hà Giang", - "Hà Nam", - "Hà Nội", - "Hà Tĩnh", - "Hải Dương", - "Hải Phòng", - "Hậu Giang", - "Hòa Bình", - "Thành phố Hồ Chí Minh", - "Hưng Yên", - "Khánh Hòa", - "Kiên Giang", - "Kon Tum", - "Lai Châu", - "Lạng Sơn", - "Lào Cai", - "Lâm Đồng", - "Long An", - "Nam Định", - "Nghệ An", - "Ninh Bình", - "Ninh Thuận", - "Phú Thọ", - "Phú Yên", - "Quảng Bình", - "Quảng Nam", - "Quảng Ngãi", - "Quảng Ninh", - "Quảng Trị", - "Sóc Trăng", - "Sơn La", - "Tây Ninh", - "Thái Bình", - "Thái Nguyên", - "Thanh Hóa", - "Thừa Thiên Huế", - "Tiền Giang", - "Trà Vinh", - "Tuyên Quang", - "Vĩnh Long", - "Vĩnh Phúc", - "Yên Bái", - ) - - provinces_abbr = ( - "AG", - "BV", - "BL", - "BK", - "BG", - "BN", - "BT", - "BD", - "BĐ", - "BP", - "BTh", - "CM", - "CB", - "CT", - "ĐNa", - "ĐL", - "ĐNo", - "ĐB", - "ĐN", - "ĐT", - "GL", - "HG", - "HNa", - "HN", - "HT", - "HD", - "HP", - "HGi", - "HB", - "SG", - "HY", - "KH", - "KG", - "KT", - "LC", - "LS", - "LCa", - "LĐ", - "LA", - "NĐ", - "NA", - "NB", - "NT", - "PT", - "PY", - "QB", - "QNa", - "QNg", - "QN", - "QT", - "ST", - "SL", - "TN", - "TB", - "TNg", - "TH", - "TTH", - "TG", - "TV", - "TQ", - "VL", - "VP", - "YB", - ) - - provinces_postcode = { - "AG": (88000, 88999), - "BV": (79000, 79999), - "BL": (96000, 96999), - "BK": (26000, 26999), - "BG": (23000, 23999), - "BN": (22000, 22999), - "BT": (93000, 93999), - "BD": (82000, 82999), - "BĐ": (59000, 59999), - "BP": (83000, 83999), - "BTh": (80000, 80999), - "CM": (97000, 97999), - "CB": (27000, 27999), - "CT": (92000, 92999), - "ĐNa": (55000, 55999), - "ĐL": (63000, 63999), - "ĐNo": (64000, 64999), - "ĐB": (38000, 38999), - "ĐN": (81000, 81999), - "ĐT": (87000, 87999), - "GL": (60000, 60999), - "HG": (31000, 31999), - "HNa": (40000, 40999), - "HN": (10000, 15999), - "HT": (48000, 48999), - "HD": (17000, 17999), - "HP": (18000, 18999), - "HGi": (91000, 91999), - "HB": (35000, 35999), - "SG": (70000, 76999), - "HY": (16000, 16999), - "KH": (65000, 65999), - "KG": (92000, 92999), - "KT": (58000, 58999), - "LC": (39000, 39999), - "LS": (24000, 24999), - "LCa": (33000, 33999), - "LĐ": (67000, 67999), - "LA": (85000, 85999), - "NĐ": (42000, 42999), - "NA": (46000, 47999), - "NB": (43000, 43999), - "NT": (66000, 66999), - "PT": (29000, 29999), - "PY": (62000, 62999), - "QB": (51000, 51999), - "QNa": (56000, 56999), - "QNg": (57000, 57999), - "QN": (20000, 20999), - "QT": (52000, 52999), - "ST": (95000, 95999), - "SL": (36000, 36999), - "TN": (84000, 84999), - "TB": (41000, 41999), - "TNg": (25000, 25999), - "TH": (44000, 45999), - "TTH": (53000, 53999), - "TG": (86000, 86999), - "TV": (94000, 94999), - "TQ": (30000, 30999), - "VL": (89000, 89999), - "VP": (28000, 28999), - "YB": (32000, 32999), - } - - address_formats = OrderedDict( - ( - ("{{street_address}}\n{{city}}, {{postcode}}", 25.0), - ("{{city}}\n{{street_address}}, {{postcode}}", 1.0), - ) - ) - - city_formats = ( - "{{city_prefix}} {{first_name}}{{city_suffix}}", - "{{first_name}}{{city_suffix}}", - ) - - street_name_formats = ( - "{{first_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - ) - - street_address_formats = ("{{building_number}} {{street_name}}",) - - def city_prefix(self) -> str: - """Returns a random city prefix.""" - return self.random_element(self.city_prefixes) - - def administrative_unit(self) -> str: - """Returns a random administrative unit (province).""" - return self.random_element(self.provinces) - - state = administrative_unit - - def state_abbr(self) -> str: - """ - Returns a random two-letter abbreviation for Vietnamese provinces. - - """ - abbreviations: Tuple[str, ...] = self.provinces_abbr - return self.random_element(abbreviations) - - def postcode(self) -> str: - """Returns a random postcode.""" - return f"{self.generator.random.randint(100000, 999999):06d}" - - def postcode_in_state(self, state_abbr: Optional[str] = None) -> str: - """ - Returns a random postcode within the provided province abbreviation. - - :param state_abbr: A province abbreviation. - :returns: A random postcode within the provided province abbreviation. - """ - if state_abbr is None: - state_abbr = self.random_element(self.provinces_abbr) - - if state_abbr in self.provinces_abbr: - postcode = str( - self.generator.random.randint( - self.provinces_postcode[state_abbr][0], self.provinces_postcode[state_abbr][1] - ) - ) - - # zero left pad up until desired length (length is 6) - target_postcode_len = 6 - current_postcode_len = len(postcode) - if current_postcode_len < target_postcode_len: - pad = target_postcode_len - current_postcode_len - postcode = f"{'0' * pad}{postcode}" - - return postcode - - raise ValueError("Province Abbreviation not found in list") diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/vi_VN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/vi_VN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index bddd71742e1012e425693ebe397ee1d1ce25f9a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7528 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 P#CGw*xhDcEFt7d(c2G~G diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_CN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/zh_CN/__init__.py deleted file mode 100644 index 726aeea..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_CN/__init__.py +++ /dev/null @@ -1,449 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_suffixes = ("市", "县") - city_formats = ("{{city_name}}{{city_suffix}}", "{{first_name}}{{city_suffix}}") - - district_formats = ("{{district}}区",) - - building_number_formats = ("?座",) - postcode_formats = ("%#####",) - - street_suffixes = ("街", "路") - street_name_formats = ( - "{{city_name}}{{street_suffix}}", - "{{last_name}}{{street_suffix}}", - ) - street_address_formats = ("{{street_name}}{{building_number}}",) - - address_formats = ("{{province}}{{city}}{{district}}{{street_address}} {{postcode}}",) - - provinces = ( - "北京市", - "上海市", - "天津市", - "重庆市", - "内蒙古自治区", - "山西省", - "河北省", - "吉林省", - "江苏省", - "辽宁省", - "黑龙江省", - "安徽省", - "山东省", - "浙江省", - "江西省", - "福建省", - "湖南省", - "湖北省", - "河南省", - "广东省", - "广西壮族自治区", - "贵州省", - "海南省", - "四川省", - "云南省", - "陕西省", - "甘肃省", - "宁夏回族自治区", - "青海省", - "新疆维吾尔自治区", - "西藏自治区", - "台湾省", - "香港特别行政区", - "澳门特别行政区", - ) - districts = ( - "西夏", - "永川", - "秀英", - "高港", - "清城", - "兴山", - "锡山", - "清河", - "龙潭", - "华龙", - "海陵", - "滨城", - "东丽", - "高坪", - "沙湾", - "平山", - "城北", - "海港", - "沙市", - "双滦", - "长寿", - "山亭", - "南湖", - "浔阳", - "南长", - "友好", - "安次", - "翔安", - "沈河", - "魏都", - "西峰", - "萧山", - "金平", - "沈北新", - "孝南", - "上街", - "城东", - "牧野", - "大东", - "白云", - "花溪", - "吉区", - "新城", - "怀柔", - "六枝特", - "涪城", - "清浦", - "南溪", - "淄川", - "高明", - "东城", - "崇文", - "朝阳", - "大兴", - "房山", - "门头沟", - "黄浦", - "徐汇", - "静安", - "普陀", - "闵行", - "和平", - "蓟州", - "永川", - "长寿", - "璧山", - "合川", - "梁平", - "丰都", - "江北", - ) - cities = ( - "北京", - "上海", - "天津", - "重庆", - "哈尔滨", - "长春", - "沈阳", - "呼和浩特", - "石家庄", - "乌鲁木齐", - "兰州", - "西宁", - "西安", - "银川", - "郑州", - "济南", - "太原", - "合肥", - "武汉", - "长沙", - "南京", - "成都", - "贵阳", - "昆明", - "南宁", - "拉萨", - "杭州", - "南昌", - "广州", - "福州", - "台北", - "海口", - "香港", - "澳门", - "通辽", - "兴安盟", - "太原", - "辛集", - "邯郸", - "沈阳", - "辽阳", - "兴城", - "北镇", - "阜新", - "哈尔滨", - "齐齐哈尔", - "淮安", - "张家港", - "海门", - "六安", - "巢湖", - "马鞍山", - "永安", - "宁德", - "嘉禾", - "荆门", - "潜江", - "大冶", - "宜都", - "佛山", - "深圳", - "潮州", - "惠州", - "汕尾", - "东莞", - "梧州", - "柳州", - "合山", - "六盘水", - "关岭", - ) - countries = ( - "阿富汗", - "阿拉斯加", - "阿尔巴尼亚", - "阿尔及利亚", - "安道尔", - "安哥拉", - "安圭拉岛英", - "安提瓜和巴布达", - "阿根廷", - "亚美尼亚", - "阿鲁巴岛", - "阿森松", - "澳大利亚", - "奥地利", - "阿塞拜疆", - "巴林", - "孟加拉国", - "巴巴多斯", - "白俄罗斯", - "比利时", - "伯利兹", - "贝宁", - "百慕大群岛", - "不丹", - "玻利维亚", - "波斯尼亚和黑塞哥维那", - "博茨瓦纳", - "巴西", - "保加利亚", - "布基纳法索", - "布隆迪", - "喀麦隆", - "加拿大", - "加那利群岛", - "佛得角", - "开曼群岛", - "中非", - "乍得", - "智利", - "圣诞岛", - "科科斯岛", - "哥伦比亚", - "巴哈马国", - "多米尼克国", - "科摩罗", - "刚果", - "科克群岛", - "哥斯达黎加", - "克罗地亚", - "古巴", - "塞浦路斯", - "捷克", - "丹麦", - "迪戈加西亚岛", - "吉布提", - "多米尼加共和国", - "厄瓜多尔", - "埃及", - "萨尔瓦多", - "赤道几内亚", - "厄立特里亚", - "爱沙尼亚", - "埃塞俄比亚", - "福克兰群岛", - "法罗群岛", - "斐济", - "芬兰", - "法国", - "法属圭亚那", - "法属波里尼西亚", - "加蓬", - "冈比亚", - "格鲁吉亚", - "德国", - "加纳", - "直布罗陀", - "希腊", - "格陵兰岛", - "格林纳达", - "瓜德罗普岛", - "关岛", - "危地马拉", - "几内亚", - "几内亚比绍", - "圭亚那", - "海地", - "夏威夷", - "洪都拉斯", - "匈牙利", - "冰岛", - "印度", - "印度尼西亚", - "伊郎", - "伊拉克", - "爱尔兰", - "以色列", - "意大利", - "科特迪瓦", - "牙买加", - "日本", - "约旦", - "柬埔塞", - "哈萨克斯坦", - "肯尼亚", - "基里巴斯", - "朝鲜", - "韩国", - "科威特", - "吉尔吉斯斯坦", - "老挝", - "拉脱维亚", - "黎巴嫩", - "莱索托", - "利比里亚", - "利比亚", - "列支敦士登", - "立陶宛", - "卢森堡", - "北马其顿", - "马达加斯加", - "马拉维", - "马来西亚", - "马尔代夫", - "马里", - "马耳他", - "马里亚纳群岛", - "马绍尔群岛", - "马提尼克", - "毛里塔尼亚", - "毛里求斯", - "马约特岛", - "墨西哥", - "密克罗尼西亚", - "中途岛", - "摩尔多瓦", - "摩纳哥", - "蒙古", - "蒙特塞拉特岛", - "摩洛哥", - "莫桑比克", - "缅甸", - "纳米比亚", - "瑙鲁", - "尼泊尔", - "荷兰", - "荷属安的列斯群岛", - "新喀里多尼亚群岛", - "新西兰", - "尼加拉瓜", - "尼日尔", - "尼日利亚", - "纽埃岛", - "诺福克岛", - "挪威", - "阿曼", - "帕劳", - "巴拿马", - "巴布亚新几内亚", - "巴拉圭", - "秘鲁", - "菲律宾", - "波兰", - "葡萄牙", - "巴基斯坦", - "波多黎各", - "卡塔尔", - "留尼汪岛", - "罗马尼亚", - "俄罗斯", - "卢旺达", - "东萨摩亚", - "西萨摩亚", - "圣马力诺", - "圣皮埃尔岛及密克隆岛", - "圣多美和普林西比", - "沙特阿拉伯", - "塞内加尔", - "塞舌尔", - "新加坡", - "斯洛伐克", - "斯洛文尼亚", - "所罗门群岛", - "索马里", - "南非", - "西班牙", - "斯里兰卡", - "圣克里斯托弗和尼维斯", - "圣赫勒拿", - "圣卢西亚", - "圣文森特岛", - "苏丹", - "苏里南", - "斯威士兰", - "瑞典", - "瑞士", - "叙利亚", - "塔吉克斯坦", - "坦桑尼亚", - "泰国", - "阿拉伯联合酋长国", - "多哥", - "托克劳群岛", - "汤加", - "特立尼达和多巴哥", - "突尼斯", - "土耳其", - "土库曼斯坦", - "特克斯和凯科斯群岛", - "图瓦卢", - "美国", - "乌干达", - "乌克兰", - "英国", - "乌拉圭", - "乌兹别克斯坦", - "瓦努阿图", - "梵蒂冈", - "委内瑞拉", - "越南", - "维尔京群岛", - "维尔京群岛和圣罗克伊", - "威克岛", - "瓦里斯和富士那群岛", - "西撒哈拉", - "也门", - "南斯拉夫", - "扎伊尔", - "赞比亚", - "桑给巴尔", - "津巴布韦", - "中华人民共和国", - "中国", - ) - - def building_number(self) -> str: - return self.lexify(self.random_element(self.building_number_formats)) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.provinces) - - province = administrative_unit - - def district(self) -> str: - return self.random_element(self.districts) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_CN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/zh_CN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index cad36752f81767209bb6347d62410cd2471d4077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7948 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�y-oknV`9!a{AU2Q!3{h-y3mIt5*uh$L8U5~YS|I#=#U zWu^nrG_WTxqh%pvu>xJaMwTQL$S~MTs_~G|j?$FYswb{dLJW^OWnxG>s!lrGXpx_O zygLsX?J&4S4_q;+jxQbR6OUPcK!$dG3dyRC6K_iWPX{S*gcVW(NsH%w(`I^zxG+W- zp@hKV{vq5KBrpiJ4sswDkz-sEeMW{cxmK1$&-S(ARM7R+WO)&$StY+)m#rCg3D$ItG_lmRpo zJ2|cPxV@d8wkA7<)Q5g1q8AD;euIBu+wW~3mCu?|7$untAB@sFf(xH*bG`chm2K1h zUVY_hb&LDc<_8Z?uX`HXTLec{J`=Yw`nYooVg(|%gj;cj`*LHfS; zr|yOi+gsfY-gfVY?$*Xn8-A@Ccw6(4yUE+o+T7%6#~T9C`Jmm~aPJd$+b0bz%^x&; z{LuShd)xhc|N2%#N3+-c{f`@)e%JV0cSpm6#^1R;4dS%|-uHAgm~Rdm9)0NikM|m! z&gQmeuhV(&?(}_XR@voF0A0a^ug;=HbwbuRHYi;@h9szV)o; zt-pyw>Rr{>9jZ}Nk6yLBP(%L>(>+8r!p8UNZ=KdS#j8B0^Yn_-+1l>vY;mJ~)#?1N z&c+schlbuY5li_N&fRf(RdmhLI=!KEt77vIAD-S&Z_Cv1Y3;eUbh`}ptGfBs>;Lqu>du$9?^65L-~0aac}3-&>StBA zpV!!4|B3xs)wjR8<-lmw8?RRTe*XMt_IK=}@qWcS_UqNYpFV%TqPbFx{N@$=rT6R$ zbuVo6{k+CMP}>byzq`wPFK_WkG8wi|Ewe)hZy?Z_K{q#+S8VJ9)5O|(vH|6RVH zRDt$e&7!;ZS*bH{XhJs B$3Or8 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_TW/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/zh_TW/__init__.py deleted file mode 100644 index 7f2decb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_TW/__init__.py +++ /dev/null @@ -1,388 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}", "{{city_name}}{{city_name_suffix}}") - building_number_formats = ("%號", "%#號", "%##號") - postcode_formats = ("%####", "%##") - section_formats = ("", "", "", "", "%段") - street_address_formats = ("{{street_name}}{{street_name_suffix}}{{section_number}}{{building_number}}",) - address_formats = ("{{postcode}} {{city}}{{street_address}}{{secondary_address}}",) - secondary_address_formats = ("#樓", "之#") - - street_names = ( - "中正", - "中山", - "民生", - "中華", - "和平", - "中興", - "仁愛", - "復興", - "民族", - "民權", - "忠孝", - "信義", - "成功", - "新興", - "新生", - "動物園", - "淡水", - "新生", - "文化", - "大同", - "三民", - "新生", - "光復", - "自強", - "光明", - "公園", - "文山", - "松山", - "新店", - "建國", - "西門", - "古亭", - "迴龍", - "中山", - "新莊", - "蘆洲", - "永安", - "四維", - "大橋頭", - "府中", - "福德", - "大同", - "文昌", - "土城", - "博愛", - "象山", - "光華", - "太平", - "水源", - "莒光", - "廣慈", - "大仁", - "中央", - "大智", - "林森", - "長春", - "南", - "劍南", - "大坪", - "國凱" "八德", - "天母", - "東興", - "勝利", - "頂福州", - "東湖", - "大勇", - "民有", - "自由", - "長安", - "明德", - "大安", - "龍山寺", - "德", - "忠義", - "中和", - "自由", - "新埔", - "永和", - "延平", - "正義", - "五福", - "華興", - "育英", - "平和", - "福安", - "小碧潭", - "永寧", - "育英", - "興", - "自立", - "民享", - "昆陽", - "民治", - "關渡", - "學府", - "奇岩", - "紅樹林", - "和街", - "民富", - "關渡", - "北投", - "石牌", - "芝山", - "景美", - "士林", - "劍潭", - "雙連", - "新北投", - "萬隆", - ) - - street_suffixes = ("路", "街", "巷") - - cities = ( - "基隆", - "台北", - "新北", - "桃園", - "新竹", - "新竹", - "苗栗", - "台中", - "彰化", - "南投", - "雲林", - "嘉義", - "桃園", - "台南", - "高雄", - "屏東", - "台東", - "花蓮", - "宜蘭", - "澎湖", - "金門", - "連江", - "太保", - "朴子", - "馬公", - "頭份", - "臺東", - "斗六", - "員林", - "竹北", - "平鎮", - "臺中", - "八德", - "板橋", - "大里", - "鳳山", - "豐原", - "蘆洲", - "蘆竹", - "三重", - "樹林", - "太平", - "新營", - "新營", - "汐止", - "楊梅", - "永和", - "永康", - "中和", - "中壢", - "阿里山", - "白沙", - "褒忠", - "北斗", - "北竿", - "北港", - "卑南", - "草屯", - "梅山", - "牡丹", - "橫山", - "光復", - "關山", - "古坑", - "竹田", - ) - - city_suffixes = ("市", "縣") - - # from - countries = ( - "阿爾巴尼亞", - "剛果共和國", - "阿爾及利亞", - "丹麥", - "安哥拉", - "多明尼加", - "安圭拉", - "多米尼克", - "阿根廷", - "厄瓜多爾", - "亞美尼亞", - "埃及", - "阿路巴", - "薩爾瓦多", - "澳大利亞", - "厄利垂亞", - "奧地利", - "愛沙尼亞", - "亞塞拜然", - "衣索匹亞", - "巴哈馬", - "斐濟", - "巴林", - "芬蘭", - "孟加拉", - "法屬玻里尼西亞", - "法國", - "巴貝多", - "加彭", - "白俄羅斯", - "喬治亞", - "比利時", - "德國", - "貝里斯", - "迦納", - "貝南", - "直布羅陀", - "百慕達", - "英國", - "不丹", - "希臘", - "玻利維亞", - "格瑞那達", - "波希尼亞及赫塞哥維那", - "瓜地馬拉", - "波札那", - "幾內亞", - "巴西", - "蓋亞那", - "汶萊", - "海地", - "保加利亞", - "宏都拉斯", - "布吉納法索", - "香港", - "蒲隆地", - "匈牙利", - "柬埔寨", - "冰島", - "喀麥隆", - "印度", - "加拿大", - "印尼", - "維德角島", - "依朗", - "開曼群島", - "伊拉克", - "中非共和國", - "愛爾蘭", - "查德", - "以色列", - "智利", - "義大利", - "中國大陸", - "牙買加", - "哥倫比亞", - "日本", - "剛果", - "約旦", - "科克群島", - "肯亞", - "哥斯大黎加", - "韓國", - "象牙海岸", - "科威特", - "克羅埃西亞", - "寮國", - "塞浦路斯", - "拉脫維亞", - "捷克", - "賴索托", - "盧森堡", - "聖露西亞", - "澳門", - "聖文森及格瑞那丁", - "北馬其頓", - "聖多美及普林西比", - "馬達加斯加", - "沙烏地阿拉伯", - "馬拉威", - "塞內加爾", - "馬來西亞", - "塞席爾", - "馬爾地夫", - "獅子山", - "馬利", - "新加坡", - "馬爾他", - "斯洛伐克", - "模里西斯", - "斯洛維尼亞", - "茅利塔尼亞", - "索羅門群島", - "墨西哥", - "索馬利亞", - "摩爾多瓦", - "南非", - "蒙古", - "西班牙", - "摩洛哥", - "斯里蘭卡", - "緬甸", - "蘇丹", - "納米比亞", - "蘇利南", - "諾魯", - "史瓦濟蘭", - "尼泊爾", - "瑞典", - "荷蘭", - "瑞士", - "新喀里多尼亞", - "敘利亞", - "紐西蘭", - "坦尚尼亞", - "尼日", - "泰國", - "奈及利亞", - "多哥", - "挪威", - "千里達及托貝哥", - "阿曼", - "突尼西亞", - "巴基斯坦", - "土耳其", - "巴拿馬", - "烏干達", - "巴布亞紐幾內亞", - "烏克蘭", - "巴拉圭", - "阿拉伯聯合大公國", - "秘魯", - "美國", - "菲律賓", - "烏拉圭", - "波蘭", - "委內瑞拉", - "葡萄牙", - "越南", - "卡達", - "西薩摩亞", - "羅馬尼亞", - "葉門", - "俄羅斯", - "尚比亞", - "盧安達", - "辛巴威", - "聖克里斯多福及尼維斯", - ) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def building_number(self) -> str: - return self.numerify(self.random_element(self.building_number_formats)) - - def street_name(self) -> str: - return self.random_element(self.street_names) - - def street_name_suffix(self) -> str: - return self.random_element(self.street_suffixes) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def city_name_suffix(self) -> str: - return self.random_element(self.city_suffixes) - - def section_number(self) -> str: - return self.numerify(self.random_element(self.section_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/zh_TW/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/zh_TW/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 568ad9dafa5d82f12fdeb8fb0ca92b32fc9d61bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7240 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 str: - """ - :sample: - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def building_number(self) -> str: - """ - :sample: - """ - return self.numerify(self.random_element(self.building_number_formats)) - - def street_name(self) -> str: - """ - :sample: - """ - return self.random_element(self.street_names) - - def street_suffix(self) -> str: - """ - :sample: - """ - return self.random_element(self.street_suffixes) - - def city_name(self) -> str: - """ - :sample: - """ - return self.random_element(self.cities) - - def city_name_suffix(self) -> str: - """ - :sample: - """ - return self.random_element(self.city_suffixes) - - def section_number(self) -> str: - """ - :sample: - """ - return self.numerify(self.random_element(self.section_formats)) - - def province(self) -> str: - """ - :sample: - """ - return self.random_element(self.provinces) - - def administrative_unit(self) -> str: - """ - :sample: - """ - return self.random_element(self.provinces) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/zu_ZA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/zu_ZA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 98de58313bc40b15d6cdb2857bd74b1bf85f31fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5050 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 PZ(`!zum4L^eRS^MxP8I^ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/__init__.py deleted file mode 100644 index cb87a7f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/__init__.py +++ /dev/null @@ -1,63 +0,0 @@ -import re - -from string import ascii_uppercase - -from .. import BaseProvider, ElementsType - -localized = True - - -def calculate_vin_str_weight(s: str, weight_factor: list) -> int: - """ - multiply s(str) by weight_factor char by char - e.g. - input: s="ABCDE", weight_factor=[1, 2, 3, 4, 5] - return: A*1 + B*2 + C*3 + D*4 + E*5 - - will multiply 0 when len(weight_factor) less than len(s) - """ - - def _get_char_weight(c: str) -> int: - """A=1, B=2, ...., I=9, - J=1, K=2, ..., R=9, - S=2, T=3, ..., Z=9 - """ - if ord(c) <= 64: # 0-9 - return int(c) - if ord(c) <= 73: # A-I - return ord(c) - 64 - if ord(c) <= 82: # J-R - return ord(c) - 73 - # S-Z - return ord(c) - 81 - - res = 0 - for i, c in enumerate(s): - res += _get_char_weight(c) * weight_factor[i] if i < len(weight_factor) else 0 - return res - - -class Provider(BaseProvider): - """Implement default automotive provider for Faker.""" - - license_formats: ElementsType = () - - def license_plate(self) -> str: - """Generate a license plate.""" - temp = re.sub( - r"\?", - lambda x: self.random_element(ascii_uppercase), - self.random_element(self.license_formats), - ) - return self.numerify(temp) - - def vin(self) -> str: - """Generate vin number.""" - vin_chars = "1234567890ABCDEFGHJKLMNPRSTUVWXYZ" # I, O, Q are restricted - front_part = self.bothify("????????", letters=vin_chars) - rear_part = self.bothify("????####", letters=vin_chars) - front_part_weight = calculate_vin_str_weight(front_part, [8, 7, 6, 5, 4, 3, 2, 10]) - rear_part_weight = calculate_vin_str_weight(rear_part, [9, 8, 7, 6, 5, 4, 3, 2]) - checksum = (front_part_weight + rear_part_weight) % 11 - checksum_char = "X" if checksum == 10 else str(checksum) - return front_part + checksum_char + rear_part diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 65d6b1e9a2abfca448d5b0ed2da9b444eaf1c57b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3287 zcmaJ@O>7&-6`uVexuhsjwq@0_oM@vYj#gDj>o=Av`A4$j%JENX$vrwPC=+jaF5Q5|5>k=M=qO5OR%a4ylx2|0 zsl3i5_$Z(7L_P5BiF#Ep_NhKBr~>xKy{i8{9}TeR0#XC_ky?ZKhn%}_v}T@>f?M?C zip1C<#f)j1oKB@Mi76)DVnHCWc5oOz-X+O7O~u3xp4V{#8#6XvOqOo~#SH9fFe;y^g*~{B+IW=Z z#*pO6*Z~nnBCT6mN}m_aHq#=KI5{uwxttiARtV+N*|EUksj#!qj8xhh5Y3_1v%@3j z&bM~#wH$iCvqS9a5W73Xo({41wqxT)YCt^O-YNc49B%IdI?~<^^jv!n(DUuR0Y~w! zrt3S-oe=L%V?)%j(YD7s30S5nTGNUvG$qH_W@5w-caN2$=){Y@#v%BXz6G*`tg37$ z+A1@96e3w;mEnTWj%;jy3)Zoy+kdwV0R07a+|SstKV!$cGI+o7vqKQz;UNfd7)FOU zI@I6cT%W${MJjx!EbI`k?Us#E_V^GyjAIua>aUt@oq^zNjZ$)rlHUMhO zB!<)g%cQ{*f67FrlL;KLlGZd%DEA`cl?CL^431fmgcc*oRQY2vX+^?w*qDpx+GHd( zZ%rqS?r>*U#MCVOW=e_8DpS~u#Fbf0B4FfXpBYioRx**av^gA+WzEnmSq`V>?Rt3% zTQWtZ>_Q^b6;t$BT30MA&uNAXa4t*2gL)EV=Be=WHVyPHw}9l)vj7T)3U@y2TfFwi z!OcUBi+4WhD_q{Jse6vMJpABSYr&UaDEKjSaIy2lxn*|YcWc7Y66}o#O?Qd6IdF*_ zgthI*Mmm8BxN36%YROAzRuh2|>XXe8Y}$$xydZ>1*XusA=ErN@Xgq_FRc$< zecXSw7;0Hz)o0&9?Vp$Glv5CDLd-k3`$-tomBgf~oXWISUME}$wCi6r(JGpqU~W>#|2K~o)hCTou~GUmvfen5 zM-Fx*kIfQD0y8~HT0xDp0I>xpJGA(`#FE!2gST)Z<@oa3at_q)IXKg}ze8_=u}QH8 z$Nv~Q@bTQj+(z)g55a+rVEvO|OEK88!aosviek@tu(#yn>jMRTJAmpNKF%%Vmd649 zYeK6F^4(FT0C2$bJuGN*&oNoFU))tT%Y4Z_ECVXXzCerLqs8rNKkO9zzxgXu-GSdF z<3Q%!CG%wYtS18=slE(=G3U*CRbjRbg379XBe3i5g|~u&oDcpo_^3^mqZCjP$TU>p z2W3=*rh9_7d+TKX38&q^ec{&^-??=8%DdOb#;@PFdF#DsMmSv_@Yl+x zW6Q$CbeXThkc2H--?nJxZP8@eqG8rx21x;7fvwAU|yhv|E^VAWo8oC8rc(*?xkdfjG+pJM41b zuq3rlpAo z6D#ej+Tz6e;WLH6M#GV%OAjus99?~H@zQ$3>4JarSkG$o@!9D5vG>=6rp@N=)zQbN zZ>~4rS`&_JG`zmncCy%T^3ibd(5Zs3(elRUU7!8_Q|{~T)q7tJ6>2v^P0N>yA?fqc zB9w2T*Fo|XDPRk-Y$ypV%XUDP6G=6#({)gm@1zyIEb+;*nvBV^laho!m>rU3#W0eV zVrfak1QCreX{Y22B`;G#TY^(B$V+rZ31ASJZvgoK{hc3p`r7gQRk$#Je4F=qUR^dz z2&V0Weox=x*fRu^y9c$Dg5)?%wijBbW=uKd$wq`C$92i?w013nRmT~d*ELY3701PZ zc|A|`vg`}s!`n-SJ+suSkxNQW}>N#h6G*+Tt R&jx?N^cAxIK`=S){tu0G7N-CJ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_BH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_BH/__init__.py deleted file mode 100644 index 672b941..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_BH/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ar_BH`` locale. - - Source: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Bahrain - """ - - license_formats = ("######",) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_BH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_BH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1c6fcb7077d5f39a92246d85a6f990591b4d94dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 649 zcmYLHJ&)8d5Ve!tBMNu75+9-shlG@3V*%X>A#n}R97rIFG_$^VcH`S54vu$WuL9}* z0M-2lM9aURp^ijFMR#bSxeCYGgDGa_+2iN&8-Lx|2}x&P!sF|dkRJ|g+;9`ucWrV; z1QE0#B~3j_Jo1DH@0181z0ZDMm(tZB9{%(!ifJ3X&}u0K>TJW}g1y4o`i2c>1W8H- zNj*VRUwG+Y<;Mfv(VcvJR@McUSeb|~j4G9pON{CbXEaqhnoPKcgQt^8RH%#>n1o?u z?WJ1i4EK95j&ft_W}h*vlDBd$YZQ_vO3zq_*lWyXRv>7c$;N1Iq^h7UxWNY06b^W< zxvU&-Oi#A%I6I7oZ2(a55&_x}pj2XENub>Zc(dTeX6FikP?=pG6*9xBL9lI?+%%ua zx>MoeJ str: - serial = self.numerify("#####") - vehicle_class = self.random_element(self.VEHICLE_CLASSES) - year = self.numerify("##") - wilaya = self.random_element(self.WILAYA_CODES) - return f"{serial} {vehicle_class}{year} {wilaya}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d1bd0cb3a3ab7f6934914919690377b6bb72fc58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1478 zcmZ`(%}*Og6rb4-V=TZiNi4TXq-`N>tpsl%4HP$xVgYJV5UFIEwpOcQ*&V~eemJ{p zh%Jy%#eqtd`f(_hP^BJ;P$driE7}XLD?vxEd|TgX5Lwvder0!9LQ7a76^GDIruip{tJu1IP5 z2(q9wX3_UOciA+kr?;|%Lr2Rw{s@dML{R}7s2~`)APR^|JSB{>AsW&yPXscKcAEy; z#Z99S31j89-(f^(v?v%I8&aXO5>0n{yrk+klXl6XHgy6;D+jLa2IewVO0Bw-qU$NM zvzkZ73$wF|njp5m-Xz2E(S$QBstXb#=kDsT#P!0=2bA>ddJD z*RV+SK($TXbK&fvGv@|sW|=z6s%6fprAn~iIyWKZkMp?w8LD_SjLoWg`9KqwCKyl<2 z|Bo%qaWU{INdQx{$m7ol%<{d@NPCs=g1kaILVRIfUf~&OuaZ{rHoTryVH>TAp(Smj z?;?4WmZqz6AD61o*LQ-Iw8WxL*#-&~E3C)U9K*Ex~2I(lPXm6SY*Ytw2J2Q=MLOg6pyzA z)@_+Ob$r@nay8k$)92>n5b9G<>*z3XaqG(0S86Mb#Os@p!_?)2)U|r*+RpgF^}F@! zcN?kPX7^$I{FiH=uhnK6@mDt`SaFc(uP6GypEi0(PP*MO{ZflN{FM`ln@pp#CDA`JU_y^2zgl6tk$0nLJU`jX*noE zA7CbK;j+Py~djrIFaBw5bZ{AUP;W=77r>9ok2X<2Ws-HJ{TJ+u8u l^mg+^cRb#BIjenM^b-+d{5u+W7CDEr`|(%)LNJDV{0mb*bhH2f diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_JO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_JO/__init__.py deleted file mode 100644 index c258108..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_JO/__init__.py +++ /dev/null @@ -1,53 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ar_JO`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Jordan - """ - - license_formats = ( - "{{initials}}-####", - "{{initials}}-#####", - ) - - def initials(self) -> str: - """Generate an initial number for license plates.""" - return self.random_element( - [ - "1", # Ministers - "2", - "3", # Parliament - "5", # General Government - "6", # Aqaba free zone - "7", - "8", # Diplomatic - "9", # Temporary - "10", - "23", # Passenger cars - "38", - "39", # Crew cabs - "41", - "42", # Light goods vehicles - "44", # Tractors - "46", # Motorcycles and scooters - "50", # Taxi - "56", # Small buses - "58", # Coaches - "60", # HGVs - "70", # Rental Cars - "71", # Trailer - "90", # Army - "95", # Ambulance - "96", # Gendarmerie - "99", # Police - ] - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - pattern: str = self.random_element(self.license_formats) - return self.numerify(self.generator.parse(pattern)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_JO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_JO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4742cca77d1cda602329e6b3b9f85ce0dc3c149a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1442 zcmZ`3O>Y}TbY|_f9gD=I6I#m4QNt+eytPVFdmelOoHq`V4zaZu2UTwXK$ z=0h)ZnaBKCqy0GWg4o$%TA1FYbpoz!Y*0?_+}qgD+`ytPGsT)n#?yob+(<5*$y=V-ZkaU{FwC|%VmVKt`o(a#!ldq(4{epNYEj70&Y`3@vAGt z`A3f&--#XSMx)WvBEaz6e?*I-z**eqzJ+B5Qpf|951YINXdiu!w*IY6jk=Ke@A2bQ zb05K##%<;^2#aad*V4;1zwd1_o+QC_Eapd$nIvRGzaVg3;D*4<0yhO-75KWqHw118 zrT&gk8p}diz5xsND|J{6SSzqrh0+9lQ&P~c0)JgDuxSBpHDQ6S)q;}Gaq8QFN7%GL zAjwC}?L;ze?fI_R3p{4VLEK{={mgujG0-Sm%!*CVv3LNLOg5WAY#KYv-!WZh(+mf3 zFYuR*dc%yIm@S3W+NNC=nH{>#xS5qdGEaNLOq#$XL?(w2BOHiQR;1xP+?h0|k%{IZ z#^?f|UG!V!{BdRBu(I%%a&dNUlB>O39;4b!c_OQErg(BdlHz>@%>NY+N}6@ObdW+; z%n=5CHfWg=C`e%(Uxclh7bReM(ioXfXb?Pn?X*F(GtFS=D!&YFL?smy7#fepktjj` zFz$2)Vx~Lou7C?Qq&#A}!WZP3Vo2kdaX*qz(lov(g|nHXq}hhAo+S5-yaA@sDj>*k z_2O~$>S6Wj4=cylZXI5`byR)ti{h`9^Iwm?934FP?%}r&k8AbATK%UhN42%1%FQRG zoBRzpdRH%r5+OeI7$Kreh!@y>m{KBMBIJ`kbyH1|5Ie94;a6mQIT&F6I&fV6IzOVs zRT6sgrzA+uVI-~h(4UH`md10rYGL=@xO_=1A1qD~knsmNr>-AF&k&HQ4_W-XdQPCk zhdB5C$(NMnfXio}UiiGUJ`MR@-UNl5jOZ0W;~d8LDO!3~sN?k~mCJu4pvkd+07&n5 AJpcdz diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_PS/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_PS/__init__.py deleted file mode 100644 index 2d9f3f4..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_PS/__init__.py +++ /dev/null @@ -1,64 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ar_PS`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_Palestinian_National_Authority - """ - - license_formats = ( - # Private vehicles - "{{district}}-####-3#", - "{{district}}-####-4#", - "{{district}}-####-7#", - "{{district}}-####-9#", - # Public transport - "{{district}}-####-30", - # Authority vehicles - "####", - # New police vehicles - "####-99", - # Gaza strip after 2012 - # Private - "1-####-0#", - "3-####-0#", - # Commercial - "1-####-1#", - "3-####-1#", - # Public - "1-####-2#", - "3-####-2#", - # Municipal - "1-####-4#", - "3-####-4#", - # Governmental, and Governmental personal vehicles - "1-####-5#", - "3-####-5#", - ) - - def district(self) -> str: - """Generate a district code for license plates.""" - return self.random_element( - [ - # Gaza Strip - "1", - "3", - # Northern West Bank (Nablus, Tulkarm, Qalqilya, Jenin) - "4", - "7", - # Central West Bank (Ramallah, Jerusalem, Jericho) - "5", - "6", - # Southern West Bank (Bethlehem, Hebron) - "8", - "9", - ] - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - pattern: str = self.random_element(self.license_formats) - return self.numerify(self.generator.parse(pattern)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_PS/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_PS/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e9ca83ba3af51321a19f784f83cc36e1572f9eac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1591 zcmZ`(&2Jk;6rWjp{Uw}j8mLtu(o#zWr?t1Pla{20!l~jCBBkQsLnqtavAxNDF*{D{ zEtYb~0VE`j2`3~@pbCit{{@#sIRveQgv5!P!R68uZ`QkYQ-yb!_vSaV@6Ep7d+*nB zxrBuLQrbSsA@pawNftTLldE7HAQPF`Mh@;s7)j_JGNpZFW~lTuGriZr!)#6dOM+bu zM}-aM?OG;fM&cz_;!w!sIxGi>q7F7uM>26IV@jPYxRbk*ncdHJa)~X2oge0Ec_zYy zKYil(Hg%}WReiuc$K%#6RsAHE+Vz;awWTw%vAMOS+Mc1?v{5RlAe-KR88ld%?&@lv zb3a(qH0m}USv!_bO-pZhtfz^c_8IM4hD`~hJuBc$=a%OZ-_|(|h}R{&Pss-O4!Gr7 zx=YsM3%X4{9`L@$EIy25*5rxNGOwg4Xx>AjDjPe0<4J;T=Bnw&) zH+c`11M~&je)%-H)Pu_U9zRV^Hc?Fquiv9Cg|t&uSJV8dhG){4V%svP8vySyA&pug z!p#V`BD@^o+Yw%g@T~~HAK_If#5tzBrsohkEgL|x0kykPzH+J+M4YaPlLz$Kq zWuVO}Rf|hgBLvEZ6VmX9Q6c@ka2{gDEz?M$C3s`-CMrC@~NJZ=B<5Hz4LBwm&6;;RVUd_iaG z6KKWZ<(FtZLt>*QGX>m4N&*vTWk=^hRB#6lWmb0>6?@Z~@K_}KItyq`Vi&|Wd0*$8 zGB*&vq^fLQfaTOtTqNP87s)+?e*jm5Td+WeD{q}vmX0e+KP;bKyL)`??n&jNFY~`C z3*U^s8XeyM?!mVYP8XZUi_M?kJy~2kQSKZS?yv>;bRFuiK!~e5l#r-Ih~t?9m>nc~ zjgZd=x}BWl2{Ao`5cY<6Uj~K(y9gE&1pkO)SMk&1Nf$4odjc_i_tD>yEEmReZ&z}A zpN`w}a_O)-L7>K0GjjVdc!oetT?p>iYnceeE~1Mtl9D-@rhut%Wft#wp*?-^hpY+* cqA>#T#Bl~={5z^Y%e8U)NO|X91UmlgKeOwXhX4Qo diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_SA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_SA/__init__.py deleted file mode 100644 index 6b7ee49..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_SA/__init__.py +++ /dev/null @@ -1,89 +0,0 @@ -import re - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ar_SA`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Saudi_Arabia - - .. |license_plate_en| replace:: - :meth:`license_plate_en()` - """ - - LICENSE_FORMAT_EN = "#### ???" - LICENSE_FORMAT_AR = "? ? ? ####" - - PLATE_CHARS_EN = "ABDEGHJKLNRSTUVXZ" - PLATE_CHARS_AR = "أبدعقهحكلنرسطوىصم" - - PLATE_MAP = { - "A": "ا", - "B": "ب", - "D": "د", - "E": "ع", - "G": "ق", - "H": "ه", - "J": "ح", - "K": "ك", - "L": "ل", - "N": "ن", - "R": "ر", - "S": "س", - "T": "ط", - "U": "و", - "V": "ى", - "X": "ص", - "Z": "م", - "0": "٠", - "1": "١", - "2": "٢", - "3": "٣", - "4": "٤", - "5": "٥", - "6": "٦", - "7": "٧", - "8": "٨", - "9": "٩", - } - - def license_plate_en(self) -> str: - """Generate a license plate in Latin/Western characters.""" - return self.bothify( - self.LICENSE_FORMAT_EN, - letters=self.PLATE_CHARS_EN, - ) - - def license_plate_ar(self) -> str: - """Generate a license plate in Arabic characters. - - This method first generates a license plate in Latin/Western characters - using |license_plate_en|, and the result is translated internally to - generate the Arabic counterpart which serves as this method's return - value. - """ - english_plate = self.license_plate_en() - return self._translate_license_plate(english_plate) - - def _translate_license_plate(self, license_plate: str) -> str: - nums = list(reversed(license_plate[0:4])) - chars = list(license_plate[5:8]) - - numerated = re.sub( - r"\#", - lambda x: self.PLATE_MAP[nums.pop()], - self.LICENSE_FORMAT_AR, - ) - ar_plate = re.sub( - r"\?", - lambda x: self.PLATE_MAP[chars.pop()], - numerated, - ) - - return ar_plate - - def license_plate(self, ar: bool = True) -> str: - return self.license_plate_ar() if ar else self.license_plate_en() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_SA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ar_SA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d5076c05664d1bb64d2eac7c2e17391268ff9d64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3816 zcmcIn+fQ7_8K2n;?5-DfF_(a2C&xgI*D-ql$CqGaXJcb*$0iPoU1wYCaM&5(;Jwf} zXGuUrS|uc2@{(9>MIZWr>!!wXqc}>VG=D>1KuBeoTCJtF4}RMeSE~HfZ_ezl&Bkuj zN*&Pe`^}keuHR*5|4>uoL!$i7H(BdN=&yFA2=1cX3au$EpoPsz~)uG4T*DppR?=^phIES`q*Zk~+Zcq#m$=Gy*n}=Kz~Y z3*Zj&Jm5~U3-AT87rMkTgEh1ri!PdjHQ_}GNLmr8W|Z;66v^}pkbd+ff7w;Se%-@vev0gSk{!; ztEw~=e%rWeOi^O!;WQgpMNPd#CyaQ4YK)E>rp0v2NT;-^glu13Zu{`PJ4UpC5UD8CaE>iJ5s5-H#B0a%zE0OD94W+ef`|vP;~g>rOUBQD;!7uW_~&UdH$P?_cpHOKihbJV}9eq{1^Ez z^Ivb|HWu<pcUvqp>>g71TB-sMTmu2f$9LMCh52RR<;)WEz zlH#Tmzn0=tDSjixEh(0zxE=Cw+{JM>$2}Y$;P_>Z4|05n^u)TWZpX zvowT|U4d!T@H9z2L3@VIi8}uZQXBqU4=mzCo3`P{%6=e?JDY^j|5$oMh z`A>GVlR^AR1Iol8f_`|yFclH_X`+l7%(Rs8qDPqjjZ2i1NX9f$<4?&q`xQM!6tFWS z9y61$6qpv0SIQKLi-5NYAJY?w8O2JM2P-Yb?pNAHIwN$abY>}ULnfS1Ov=g<%G&P6xpTF-bFEp;)#L;9>w*2Nf&I%@)&fUYJV)6}V)U9V z%ZWc3;?>Y@d(j_(TtnAf*W8Q9DyIgk>@#ziVB*+;?iAZf@+0?SZP0NN*JGWJTvq9Q zfF`S8f{H@iId=}hby+pY-ut7{JdRi)g_y39Pa#;HL#rDbQL#J&JDQ!P^e*l_~3d z;WQn?G7@>MrgvJI&1KcP^F4P^ii_ z1nUwD_JU#T3yg3Nq<8!7V!{>JQ8BS_-w}xRS6{X5#X6xryZd`hH6Z$q13b#2dx83& zo&Lp@xb;-?!3Pd8X9~#Pr;9Z&AEUKc!$omM7eN(JIYT1fx7~;;L{%f zB{zp258dt-3z4~GKWqiHEUNi~i8G%cAX8F<8M+^=ar z$>@nn>DHGf%tuVQ;2U{vHL7uautw}cbyMyX str: - """Generate a license plate.""" - temp = re.sub( - r"\?", - lambda x: self.random_element(self.ascii_uppercase_azerbaijan), - self.random_element(self.license_formats), - ) - temp = temp.replace("##", self.random_element(self.license_plate_initial_numbers), 1) - # temp = temp.format(self.random_element(range(1, 999))) - return self.numerify(temp) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/az_AZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/az_AZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4d2b9385969cab8b37c760821d2d8878a5c40839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1754 zcmZ{k&rjQC7{^~bCJ87Es!nK3+L{u!)s={w#5QF@AhvD{y3uZ>8+F+n6Tb|ncAUL- zP>Dd|fHXL<%LKU4z2iU+bYqDN7IWga}3`L`*g8r)b$CiSWMe)$*^fw zYrN6?fY(_VP|riWRWxZjpP<7w-fFqJ64gFueOIRpY4=e<5szH=c^RF$NtxA zGwsi8X?rz=7k;t7`wSFKR=GBNi-;Zd{z+P)%kj95l zKXW@|iz}Z7DDoXCtiC2#FCEIwhhBbaM2SmSO9a znzKNe7bG#D%vxL#dG<}{N${ytjbd3$v$=4k`;3Qr-|PP=M7<&u{@`iPx$Whx<)hTO z$EoR~RPSNx!hY()1K}_&@2BO1l+s8DyfFJ=oxQvB2R+|z3Qu~@Z?A2w?am(b4D2Nbn1(}U#Lgh8>lMSHx*l}ty5pKPI~=EU z{fC-iw=4-=H{Fu1v+uBp-40a|3X$_!^l1M|B7f1JMh|eL!rJuShuR>22qRDW2G?&K zT^!vL-aX;3bMM9Xgo`H{-`SDb^_~%QO&8(wEeb5W%78>}g46`^q#ZA2!SdoXq)GFm k$CwR6c&%PP)JcrvxW}aPFY>{&_+5_6Y_9%8!amyiA6lu#(*OVf diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/bn_BD/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/bn_BD/__init__.py deleted file mode 100644 index 807b1b6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/bn_BD/__init__.py +++ /dev/null @@ -1,253 +0,0 @@ -from faker.providers.person.bn_BD import translate_to_bengali_digits - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``bn_BD`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Bangladesh - """ - - # noinspection DuplicatedCode - cities = ( - "বরগুনা", - "বরিশাল", - "বরিশাল মেট্রো", - "ভোলা", - "বান্দরবান", - "ব্রাহ্মণবাড়িয়া", - "বাগেরহাট", - "বগুড়া", - "চাঁদপুর", - "চট্টগ্রাম", - "চট্ট মেট্রো", - "কুমিল্লা", - "কক্সবাজার", - "চুয়াডাঙ্গা", - "ঢাকা", - "ঢাকা মেট্রো", - "দিনাজপুর", - "ফরিদপুর", - "ফেনী", - "গাজীপুর", - "গোপালগঞ্জ", - "গাইবান্ধা", - "হবিগঞ্জ", - "ঝালকাঠি", - "যশোর", - "ঝিনাইদহ", - "জামালপুর", - "জয়পুরহাট", - "খাগড়াছড়ি", - "কিশোরগঞ্জ", - "খুলনা", - "খুলনা মেট্রো", - "কুষ্টিয়া", - "কুড়িগ্রাম", - "লক্ষ্মীপুর", - "লালমনিরহাট", - "মাদারীপুর", - "মানিকগঞ্জ", - "মুন্সীগঞ্জ", - "মাগুরা", - "মেহেরপুর", - "ময়মনসিংহ", - "মৌলভীবাজার", - "নোয়াখালী", - "নারায়ণগঞ্জ", - "নরসিংদী", - "নড়াইল", - "নেত্রকোণা", - "নওগাঁ", - "নাটোর", - "চাঁপাইনবাবগঞ্জ", - "নীলফামারী", - "পটুয়াখালী", - "পিরোজপুর", - "পাবনা", - "পঞ্চগড়", - "রাঙ্গামাটি", - "রাজবাড়ী", - "রাজশাহী", - "রাজ মেট্রো", - "রংপুর", - "শরীয়তপুর", - "সাতক্ষীরা", - "শেরপুর", - "সিরাজগঞ্জ", - "সুনামগঞ্জ", - "সিলেট", - "সিলেট মেট্রো", - "টাঙ্গাইল", - "ঠাকুরগাঁও", - ) - - vehicle_category_letters = ( - "অ", - "ই", - "উ", - "এ", - "ক", - "খ", - "গ", - "ঘ", - "ঙ", - "চ", - "ছ", - "জ", - "ঝ", - "ত", - "থ", - "ঢ", - "ড", - "ট", - "ঠ", - "দ", - "ধ", - "ন", - "প", - "ফ", - "ব", - "ভ", - "ম", - "য", - "র", - "ল", - "শ", - "স", - "হ", - ) - - vehicle_category_numbers = ( - "১১", - "১২", - "১৩", - "১৪", - "১৫", - "১৬", - "১৭", - "১৮", - "১৯", - "২০", - "২১", - "২২", - "২৩", - "২৪", - "২৫", - "২৬", - "২৭", - "২৮", - "২৯", - "৩০", - "৩১", - "৩২", - "৩৩", - "৩৪", - "৩৫", - "৩৬", - "৩৭", - "৩৮", - "৩৯", - "৪০", - "৪১", - "৪২", - "৪৩", - "৪৪", - "৪৫", - "৪৬", - "৪৭", - "৪৮", - "৪৯", - "৫০", - "৫১", - "৫২", - "৫৩", - "৫৪", - "৫৫", - "৫৬", - "৫৭", - "৫৮", - "৫৯", - "৬০", - "৬১", - "৬২", - "৬৩", - "৬৪", - "৬৫", - "৬৬", - "৬৭", - "৬৮", - "৬৯", - "৭০", - "৭১", - "৭২", - "৭৩", - "৭৪", - "৭৫", - "৭৬", - "৭৭", - "৭৮", - "৭৯", - "৮০", - "৮১", - "৮২", - "৮৩", - "৮৪", - "৮৫", - "৮৬", - "৮৭", - "৮৮", - "৮৯", - "৯০", - "৯১", - "৯২", - "৯৩", - "৯৪", - "৯৫", - "৯৬", - "৯৭", - "৯৮", - "৯৯", - ) - - vehicle_serial_number_formats = ("%###",) - - license_plate_formats = ( - "{{city_name}}-{{vehicle_category_letter}} {{vehicle_category_number}}-{{vehicle_serial_number}}", - ) - - def city_name(self) -> str: - """ - :example: 'ঢাকা মেট্রো' - """ - return self.random_element(self.cities) - - def vehicle_category_letter(self) -> str: - """ - :example: 'ব' - """ - return self.random_element(self.vehicle_category_letters) - - def vehicle_category_number(self) -> str: - """ - :example: '১১' - """ - return self.random_element(self.vehicle_category_numbers) - - def vehicle_serial_number(self) -> str: - """ - Generate a 4 digits vehicle serial number. - :example: '৫৪৩২' - """ - return translate_to_bengali_digits(self.numerify(self.random_element(self.vehicle_serial_number_formats))) - - def license_plate(self) -> str: - """ - Generate a license plate. - :example: 'বরিশাল-ভ ৬৭-৪৫৯৩' - """ - pattern: str = self.random_element(self.license_plate_formats) - return self.generator.parse(pattern) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index c9eb809f4f6c381930f9f1c3bf029ef33722b66f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6010 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 str: - """Generate a license plate.""" - prefix: str = self.random_element(self.license_plate_prefix) - - if len(prefix) == 1: - suffix = self.bothify( - self.random_element(self.license_plate_suffix_for_one_starting_letter), - letters=string.ascii_uppercase, - ) - else: - suffix = self.bothify( - self.random_element(self.license_plate_suffix_for_two_starting_letters), - letters=string.ascii_uppercase, - ) - - return prefix + suffix diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_AT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_AT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7515cf2d8e12db0b654039c87bb71b6852c2b82a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2177 zcmbtV&u`mg82;=ePH5Mznnu(Ov}LrF=843N0TKgIb?cILPTHzYV_{8lz4*)OHnGEJ zr(2^=>@cAr7!ndvD-JMmKuqJvf5D|?hfW_mAOVNnf;uic@i;%|M#lkR>HYlvc%J9| zJ|}+tTB|=B+w5W#ta0vxdd++C7P7gHU1!HZeq7Fe0{SMD2(X zv!jLt@pwhFrJGSBu@;vTEDCt@_H?aYr8VjXDXS59H7{^hX{z4sld5)mFf5e3eE>0Anv2tLrvbl+(#2UA;1{6^6%`B>swx;Nx~PDwVIC9}P!%0ibWj(# zfK(n$@}T5F$wMs zd%f`+~th#Jxw`e}e_P|!ftuuTm#4bMx{Vd#Uf2$doz zMZk+_zkpK!QG!wl=@P_CD3zd8LK6^mlysDIG|^GgQPQzv9gTD->QK?&hvAS0Fa~ml zE=y11>9LX2`1p7;0jKS?Q=!*Mgyw_et!>_7sE8*a2Yqz<$*C;=S%3uZ!!#y4VCn3(xakx)1Kx{XgC1Nb^XJx|CS~ zOLzufm21Cc@#bX%(-}#1{e&!oZy4Za&50>($0|Lhr0~3%`oeXR-9`*Ql&1B zU-p6}r?SRheHP<4D!`Z+Wv1s+(+?~bIPMj*(}YWYz!36-mS1)pvr(^OzFI!z>3@|8 zu6qBJ@#P4Q`m|c%Qg=^Mr>`IWl`t-!+)$Rh8dU;plGdziO0nl)s4vrUpwyf)^Duea z0nVaiR;jzHRGrI8eJxn>+%uWeuPeS2&~)7@uUJ>8uT-oR%9P%?_LaREjya5>t(d0c zI)Q0s>T7)9nFBSGXx#pqWS+@?gZ=tnVYxwmNgmxv%G*i#yV0Ff=eJLtzn`4ECH>Yv zcx&~OcQ#M_)c?|h7msXQ`ux&^p~E{vBilnGcP4j67q&+i?hln74jkY?|x~kl04Je2Ile@Y}Pm;oT+dPM8hP-TpAP7YUIc zeztFtKg3up(HhK&FH2j|;nsYVys;*1MPF-0<8LB!x^?Ja?D(etnBdlt3O}!Mlx^b1 zJDU8^#NVIT-m_=lqQ2MrN#fnk5#D2WQ3&4$|0tGLL=c3Z$-wU<{a9KNh2vWXPy9(j Hr_KEf{FGp? diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_CH/__init__.py deleted file mode 100644 index d6cfcbd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_CH/__init__.py +++ /dev/null @@ -1,44 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``de_CH`` locale. - - Sources: - - - https://de.wikipedia.org/wiki/Kontrollschild_(Schweiz)#Kantone - """ - - __canton = ( - ("AG", "%## ###"), - ("AR", "%# ###"), - ("AI", "%# ###"), - ("BL", "%## ###"), - ("BS", "%## ###"), - ("BE", "%## ###"), - ("FR", "%## ###"), - ("GE", "%## ###"), - ("GL", "%# ###"), - ("GR", "%## ###"), - ("JU", "%# ###"), - ("LU", "%## ###"), - ("NE", "%## ###"), - ("NW", "%# ###"), - ("OW", "%# ###"), - ("SH", "%# ###"), - ("SZ", "%## ###"), - ("SO", "%## ###"), - ("SG", "%## ###"), - ("TI", "%## ###"), - ("TG", "%## ###"), - ("UR", "%# ###"), - ("VD", "%## ###"), - ("VS", "%## ###"), - ("ZG", "%## ###"), - ("ZH", "%## ###"), - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - plate: tuple = self.random_element(self.__canton) - return f"{plate[0]}-{self.numerify(plate[1])}".strip() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a3fb0ff7b9d42eb4334d5ecbf8dbfec846870f39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1367 zcmY*Z&1>976rYh+>t(64O(0$3w4k!2wL(`SiPI0`I3)d8yD?7j+6f54SkcU8WlNgv zXx8bPl=|R94>`0ayM)qfj1TRh|3xnjJ|qYVg`RwKaeCQPXSDio=kVU|z4^VTdD3t6 z$M|>^$n|@5?Yj~He`-aG(C!%dYAKFG;LX! zn2)`6uSc-wn3O%TWMti;A!pS0Be(1M7)`d_?qlL@8jU+n$Z1HDmd1pk#LBJKaO_f} zp*I?hBwQMnFBQ=|tB7;UjoS;XoWXVhKhNP8OF3*6+15hdp;ZvRT*rX)-S)PUw%II>y5n|hxJds*Iu2g z@4_D^f0)?4vb+4tgP$Hezy90Vy^jyynL2p;`a$i(m$jJ}wVA`(>_KJrM05d*##mfI zD0BjXP+UbQpt$c#{02f__Z>go8AAwD7a{h(D2i3_Dp^yYJ-|%i*ay-`Jtao`y+AY} z%r^K((X`6(nTv0hx8{zgRqf_(^cn~^Dw7q9h8mB`;&Zq1e@Zqzo03iQXACPdqXW*e gkHm(QL3Cc2V--U9CuqJdPr{oAwRiso!Y5__0ZQLeH2?qr diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_DE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_DE/__init__.py deleted file mode 100644 index 7bf5bb7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_DE/__init__.py +++ /dev/null @@ -1,430 +0,0 @@ -import string - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``de_DE`` locale. - - Sources: - - - http://berlin.de/daten/liste-der-kfz-kennzeichen/kfz-kennz-d.csv - """ - - license_plate_prefix = ( - "A", - "AA", - "AB", - "ABI", - "ABG", - "AC", - "AE", - "AIC", - "AK", - "AM", - "AN", - "AÖ", - "AP", - "AS", - "AUR", - "AW", - "AZ", - "B", - "BA", - "BAD", - "BAR", - "BB", - "BC", - "BD", - "BGL", - "BI", - "BIR", - "BIT", - "BK", - "BL", - "BLK", - "BM", - "BN", - "BO", - "BOR", - "BOT", - "BP", - "BRA", - "BRB", - "BS", - "BT", - "BTF", - "BÜS", - "BW", - "BWL", - "BYL", - "BZ", - "C", - "CB", - "CE", - "CHA", - "CO", - "COC", - "COE", - "CUX", - "CW", - "D", - "DA", - "DAH", - "DAN", - "DAU", - "DBR", - "DD", - "DE", - "DEG", - "DEL", - "DGF", - "DH", - "DL", - "DLG", - "DN", - "Do", - "DON", - "DU", - "DÜW", - "E", - "EA", - "EB", - "EBE", - "ED", - "EE", - "EF", - "EI", - "EIC", - "EL", - "EM", - "EMD", - "EMS", - "EN", - "ER", - "ERB", - "ERH", - "ERZ", - "ES", - "ESW", - "EU", - "F", - "FB", - "FD", - "FDS", - "FF", - "FFB", - "FG", - "FL", - "FN", - "FO", - "FR", - "FRG", - "FRI", - "FS", - "FT", - "FÜ", - "G", - "GAP", - "GE", - "GER", - "GF", - "GG", - "GI", - "GL", - "GM", - "GÖ", - "GP", - "GR", - "GRZ", - "GS", - "GT", - "GTH", - "GÜ", - "GZ", - "H", - "HA", - "HAL", - "HAM", - "HAS", - "HB", - "HBN", - "HD", - "HDH", - "HE", - "HEF", - "HEI", - "HEL", - "HER", - "HF", - "HG", - "HGW", - "HH", - "HI", - "HL", - "HM", - "HN", - "HO", - "HOL", - "HOM", - "HP", - "HR", - "HRO", - "HS", - "HSK", - "HST", - "HU", - "HVL", - "HWI", - "HX", - "HZ", - "IGB", - "IK", - "IN", - "IZ", - "J", - "JL", - "K", - "KA", - "KB", - "KC", - "KE", - "KEH", - "KF", - "KG", - "KH", - "KI", - "KIB", - "KL", - "KLE", - "KN", - "KO", - "KR", - "KS", - "KT", - "KU", - "KÜN", - "KUS", - "KYF", - "L", - "LA", - "LAU", - "LB", - "LD", - "LDK", - "LDS", - "LER", - "LEV", - "LG", - "LI", - "LIF", - "LIP", - "LL", - "LM", - "LÖ", - "LOS", - "LRO", - "LSA", - "LSN", - "LU", - "LWL", - "M", - "MA", - "MB", - "MD", - "ME", - "MEI", - "MG", - "MI", - "MIL", - "MK", - "MKK", - "MM", - "MN", - "MOL", - "MOS", - "MR", - "MS", - "MSH", - "MSP", - "MST", - "MTK", - "MÜ", - "MÜR", - "MVL", - "MYK", - "MZ", - "MZG", - "N", - "NB", - "ND", - "NDH", - "NE", - "NEA", - "NES", - "NEW", - "NF", - "NI", - "NK", - "NL", - "NM", - "NMS", - "NOH", - "NOM", - "NR", - "NU", - "NVP", - "NW", - "NWM", - "OA", - "OAL", - "OB", - "OD", - "OE", - "OF", - "OG", - "OH", - "OHA", - "OHV", - "OHZ", - "OL", - "OPR", - "OS", - "OSL", - "OVP", - "P", - "PA", - "PAF", - "PAN", - "PB", - "PCH", - "PE", - "PF", - "PI", - "PIR", - "PLÖ", - "PM", - "PR", - "PS", - "R", - "RA", - "RD", - "RE", - "REG", - "RO", - "ROS", - "ROW", - "RP", - "RPL", - "RS", - "RT", - "RÜD", - "RÜG", - "RV", - "RW", - "RZ", - "S", - "SAD", - "SAL", - "SAW", - "SB", - "SC", - "SDL", - "SE", - "SG", - "SH", - "SHA", - "SHG", - "SHK", - "SHL", - "SI", - "SIG", - "SIM", - "SK", - "SL", - "SLF", - "SLK", - "SLS", - "SM", - "SN", - "SO", - "SOK", - "SÖM", - "SON", - "SP", - "SPN", - "SR", - "ST", - "STA", - "STD", - "SU", - "SÜW", - "SW", - "SZ", - "TDO", - "TBB", - "TF", - "TG", - "THL", - "THW", - "TIR", - "TÖL", - "TR", - "TS", - "TÜ", - "TUT", - "UE", - "UL", - "UM", - "UN", - "V", - "VB", - "VEC", - "VER", - "VIE", - "VK", - "VR", - "VS", - "W", - "WAF", - "WAK", - "WB", - "WE", - "WEN", - "WES", - "WF", - "WHV", - "WI", - "WIL", - "WL", - "WM", - "WN", - "WND", - "WO", - "WOB", - "WST", - "WT", - "WTM", - "WÜ", - "WUG", - "WUN", - "WW", - "WZ", - "Y", - "Z", - "ZW", - ) - - license_plate_suffix = ( - "-??-%@@@", - "-?-%@@@", - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - prefix: str = self.random_element(self.license_plate_prefix) - suffix = self.bothify( - self.random_element(self.license_plate_suffix), - letters=string.ascii_uppercase, - ) - return prefix + suffix diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_DE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/de_DE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ecda815673e138daf2452022a55a622364acd9bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3075 zcmZ{m%WoUk6~^ZwQGy^Rso@HZVbm;;0F?oWXuFD0)F#E@3^OlcX2_|z8Pnt_qRodo zq=ZOt&@8-2(4s(Ez)k@zx@!w}S@a*!vKt#&D429npy(ny6;3x<^>;|hbqbWwoVoYh zGvE2n<6hmrUb?iV$nVc<_iw$aDF2vE7GinvezDEqiPBSg>Og5LJ*}q?)S=eaRYg-w zrML7*=`E-FQ+;mV){fN8!k04fzSNMLYQEaY#)ti0nsw(kb194Rd+`?HiIOU9wWqYT zp4!%XT6?Ldx0icMX<=9EEk9anuN)ONSF$BckAGDk?hn#oI+_+c2h;IzJnbK*#r=hk z;_f&r-o4vPld5s|ZgDW~b_VJ8+FFrcI6la_>Ez~owpHAlPWNw?O83%i&>wC0(o(N8 zO-H3ce=<$C;Jfu;_jv0;IvO3P{q7zsFXvmm?e64o2KxO^R7J_va;}x-spNXOQWs$| z+u<>o)Ma4vxIEs0B&&S-m~n$A#Gn~4hA!#21qWgFrw7!3udICQ(*m0qko*otcwCAqbPfdvB#UY1FymKZ|Cf{I0FSb{(mEnm!i(Ll?9m4PC+PhA!qOmEK&8kgVZ0Okr?rr$kWW<&+ zOzpZ@fNDFG(gwuFvkh~bIBope^B%BIPv|AP2`BqbEmsM_Au$fkr8!_YWWuRJ)}es9 zBNcay7J8gHICAPF$Eg#aBcIL-;ZO+O@#O;o)}2rgLr6FT>(KowIdO@@#RDCsxy0d; zVa)~B1=g*D=Hk}13E35MXu6V67hKIH61q@#LmJNw*?2C=)ZNIQ)!98gnRPgC2)mMA z_l^LOTDNWHDqK8#dqn3+ojnM6Yy$+SowG@ERnlQ4eO3HYDd-1NVZ|2y>MeXOR{_ARxMc!$Fg31mY&}i7+5- zK?9-z84aQtPH=isy%@*`lsXVoT9D5|IW0rkG@+cMApwS*R3XQV7Q!mz6RAij5r(os zLW?4XvNJ;1hILWZVM+gM5^CrWUdWk>fJG=v#2P|0^z9jw@bodM59Q#JLWd0*5S(;HUw{PFReY~bbzz3~;_|T2$m{9C z@&lFii`&a9>;D(4@QTr5c!4!ty;!?HzbRczXYW6$PZvBs&>pG}wPUoQLa=X|=_t*( zOB6fBLBE@hCfrX3%(uA>tqjuXG|eWPh5WUwGwO|pNjksI#}&(hug`}xYf z@pP}hd-T7{lY?DZE=;CbfAn7ddS}w@_mhMDeJ)y^NxG@$OOtf4n->;1h4}{)$uF0o zuRkp9jfZJz3VJ&1ykCkg23*(fr`>63*zaaz?p3o1Bud+d>FAK_(Y@0C(R6P-`qB0e zeps6Hxh(B>x(_<>8$w9^Wr<7t>66Hm8)l0Zalwo<9u1U{M{FdetGSq!uhK5#>S_GkAMDb6%{{k zb2VR0l2K=vCP}`QB*SsCAvXRugVNs`{Un%-^( diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/el_GR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/el_GR/__init__.py deleted file mode 100644 index 98067dd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/el_GR/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -import re - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``el_GR`` locale.""" - - uppercase_letters = "ABEZHIKMNOPTYX" - - license_formats = ( - "??? ####", - "?? ####", - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - temp = re.sub( - r"\?", - lambda x: self.random_element(self.uppercase_letters), - self.random_element(self.license_formats), - ) - return self.numerify(temp) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/el_GR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/el_GR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 6fb50a8913647ca1a1926a2dc672c17d7b650a81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1263 zcmZuw&2JM&6rb5$f8aVFZc_siYPN&}3&N{5a6us-NL3mk0)iacRi*L9GbU^H!<`*l z*dme-kswl~a6!qjM^LW(7hDqMkg!}TwH&xbGL@pZhG>SV+v)&sDIIKN-^=29OduwpzTn`YXi)HN~Jvg3qUpzLl&mUQYf}ms#qFTtqj#zwyx03nr7uXStG|a zfOaPryr#=M<_q0!iNFhl(`I@ziJ{j6u2-wfCG+>HRoxA0w#zEf@Z8Oxte+Qd-Cn$N zcj?z(45gc&nVHci;B<3|5M?6%>$q`L$Z;U}`-P%T1jUPn5)E_Pr-4VAp9uOLgv;(=}_-|?3pWp$4n8373SHG%%xO-?P#!?Fg>Tn0~lj`Sq_9*X*0iV zy3VrM?1+`XpRD}wqZvAaU1{32hxP*&nsxgj<7PVh&^%rUGu{A`5XW}}A(dw5V}8oD zy=7`ocP~QBcq1!G+sL48Q}Mcl)0GrC2Dyi4fc)1(&**;H*ex3`F6>{L-MuusSDx#k zzU-Zmi4@KvHEb<&`J$qc)GaKdXNxe(`z?=gr`|CXJ|q#EU|utBO;zW^^3PCe6Q|NG ze>ufbfQC~*AfbOoN*nF<_Cc}qwm5fC9NjOD?-s}Z)b{nOyZY6=; zY-4qOb!%yFeVTeh2Ma)i*JMhO23jJVt( zC{%D>2I(b=UBv~&k25B6!Nc!>tf4pBjla%Z+|j;0)YQ}2-krljE;F$een7wmrt(P} z8ZQBhP;4H3J$Ll1(1jS5P-dVzdDgb3Lx5zRv>M0Ye>2XSVbu!nt%kNxW?zKot%?hd$E0&+*Kgu z9qt(rZQg>0`XnkUx}ZRF6=UBXOfmC~Jv089`MR;uLr!jb=ko?aKfF_`R&DQ|0L&3X zEGSSJ48j0~=m@d!8nFfszd)XoK`?D5t)C%a5-hrJw3-OUb?!H771Z|b0l*w_NMdLZ zvS83);h;HfBu(wg&2CQOQ6Xt_3Xs;3g%t#vh&BpLMe=>&GCoPL{<{9A`@auyO3blWxNc zy_&V%MjWr44v>pndVpYG&8MuZL0KP^W!iOT);)T^I?t`U(=vzzf@Ixs0WF|7K2BPT zE+LYZoRCG2kW#U6;rJdQAI7w(cRGYHmBaFu{{h2E{k+fU4yvK$M?6v`$5z=9FX?;&j601Q+52S5rGuaxZ^w#-CKkI zHyry8V?u-!mXNfX`swhh3HLFZpsvxcu+{3`Ztgs4e|oLmk`Fje8jBSzwh#Wz5M0!c urQUFHK6ndg*?qqHlb3oMTsNoYA*kC%5Cq>*|93kH+TXTz{=jUvecE3t0@?Eb diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_GB/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_GB/__init__.py deleted file mode 100644 index ab96dd7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_GB/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``en_GB`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_United_Kingdom - """ - - license_formats = ( - "??## ???", - "??##???", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_GB/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_GB/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 68dd724557643f65edeb64fd272f88e9f521a70d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672 zcmYLHJ&)5s5Z$$tyD0Y&34v&hPC{}KuYm4^h`8p2kPak13OAEI?Zpaxlfrd+YJc?3?|%x7TI0ed(SZamIc$WaHYKxVlT= zf+?nW$}%2%oO$e+Des&qAHC21IxpsnR@naO5es?Md2Y>IE40a`N)xC>W2>7KE*P?y zD;9f-$G-C7*1`{4wl25)_#`V*%rJL>oH>&jr{@?Ho0`GM*kCxs9FC8M!yq+@Ofl+q z1F{!pW)mzA*Q_5*oGZ#hAux~L>ZvYJX&D(i7Bv&EaiWtH!Qxn#&Pu0E4n-;*mS9HU zCJ3)`?NGr}osX5tnjWFI>#dz)9GyIsm!M5TNP;WJb-XG*r6)Z)P&x zeAxz2CZXeAsuRph1iDQoUHOTvYH_aKi;2llI78ht`A)pN1|;bjCQf8Jv4*s0$fKvXQ66*R6z z^OXDK&e<=o-R@lO`?t3~JhMA=)FhmQeziu`jmQ5MMT0iGxAo&%C+`xv>O5R)^2qjx d){mjQMefq)oPTHi-&;F;>s#;6A4akH?JwB{yVC#w diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_NZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_NZ/__init__.py deleted file mode 100644 index 2802d62..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_NZ/__init__.py +++ /dev/null @@ -1,32 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``en_NZ`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_New_Zealand - """ - - license_formats = ( - # Old plates - "??%##", - "??%###", - "??%###", - # Three letters since 2002 - "A??%##", - "B??%##", - "C??%##", - "D??%##", - "E??%##", - "F??%##", - "G??%##", - "H??%##", - "J??%##", - "K??%##", - "L??%##", - "M??%##", - # After 2018 - "N??%##", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_NZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_NZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 68b0432203d379cdde5cbb120328ddfb25bad426..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 770 zcmYL{zi-n(6vxkY9HP*)6)Iw3Fp5C(5TAgpLR95f`5BNv3|=l*-%E0h?K9^~N-`Cx ze*^s+5G(%$3$rCACbpu$(uwos3OBsZ`<|blp5FJqb~<$Ph`GmzdEkEbR&}v6Z-o9&-35hC)p{kxj5Cml?PB0qvE0(h2?7*5 z48<;UVvo6TWA23wS+`q!e3BI@WRR$PHr2zEYK@S0Q<~Z@7YJb@(bpR(ParRW=zV2Wm7mbEHsI_C zk3|Mp2{nd{zQ=FQ6K&c7BnoFdkwS0Vh<%}OG=qGGQ@)Rjxf+Z7c69R=F1dnUL6Zp` zL5YWS0urBFRO0`>>D_CiFd;nWijb(78swcvA708eePs&z zp;xW4>eBANr=SNluS;I6>r8P+XJ@TDtDW4Hn_AY-t-P$mspmM(chvjcyy`T+ZCv|< IG|g{+0mbOgVgLXD diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_PH/__init__.py deleted file mode 100644 index 71f05d3..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_PH/__init__.py +++ /dev/null @@ -1,70 +0,0 @@ -from string import ascii_uppercase -from typing import List - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``en_PH`` locale. - - Vehicle registration in the Philippines has many controversies and is full - of quirks. On top of that, some terms are highly subject to interpretation - or to varying definitions when applied colloquially, e.g. "motor" usually - refers to either a machine's motor or a motorcycle, "vehicles" usually means - cars, SUVs, vans, and trucks but not motorcycles. Please read any additional - notes of individual methods for more details. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_Philippines - """ - - protocol_licenses = [str(x) for x in range(1, 18) if x != 15] - motorcycle_license_formats = [ - "??####", # 1981 series - "??#####", # 2014 series - ] - automobile_license_formats = [ - "???###", # 1981 series - "???####", # 2014 series - ] - license_formats = motorcycle_license_formats + automobile_license_formats - - def _license_plate(self, license_format: List[str]) -> str: - return self.bothify(self.random_element(license_format), ascii_uppercase) - - def protocol_license_plate(self) -> str: - """Generate a protocol license plate. - - .. note:: - High ranking government officials are entitled to use low numbered - protocol license plates. - """ - return self.random_element(self.protocol_licenses) - - def motorcycle_license_plate(self) -> str: - """Generate a motorcycle license plate. - - .. note:: - Motorcycles and any improvised vehicle with a motorcycle as its base - are issued motorcycle license plates. - """ - return self._license_plate(self.motorcycle_license_formats) - - def automobile_license_plate(self) -> str: - """Generate an automobile license plate. - - .. note:: - Cars, SUVs, vans, trucks, and other 4-wheeled civilian vehicles are - considered automobiles for this purpose. - """ - return self._license_plate(self.automobile_license_formats) - - def license_plate(self) -> str: - """Generate a license plate. - - .. note:: - This method will never generate protocol plates, because such plates - are only for specific use cases. - """ - return self._license_plate(self.license_formats) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7d16cfdd481ea1b3e8cfa0c126e724f1ca340e0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3551 zcmcInUuYc18K2$zE7{UXb}c!nnv73{pd#Hmb*L>hM94NIh1ii}H_$6(z1p3-8*Bf0 zW>?Ay8T{avK)@6V_CrJRXd?;^^uf@llDy?biUJM?fk5el-xTCNG*A7_?%wHSD-C(@ zAin)(=DTlZzTbSmZ}i2`&>&Im?}OJq8zAIgNhcG9?7RC0lsm*Bj^+|it81FlbyxRt z^&Iq^lXvr8p{yLTAth4(ilsklxy5^9&?r8O#PFUX2o!o|UfOekTCbzZQx}9$l zTmREhLT+g5nv-8XO^DP!9Ec93c7&{J8(OOWS^w}@p4j;t`VH*{sTZAsQ*7$>l2dZZ z_?B6TmDgZeA8-cPAS=88-NCn!cMjdk*AFGS?i_}GIMauq4`uo=^x;geK(Dk%Y+dWE zw@Ri)MG-EoKjI9(^Fo(-%#WxQM}Zeae1*|43kq!nf?mDKd~@-wt5>NT*p|y`gM$?9 zJ=Ws3%cx*Y#8X%i4}8jf8nqZ*Y;l)|A@`Z2ElX0*^4ru7{0M%TkQ~F7?@%sjBX-@y zUC^M{V=k6ujlKgXK}azYwXA5G%D`hZV#33(1fwn9Y`JYJ;`tI8hcgQ-qmSq*Xy@pX`^Hkf*z$o9H>gMrfu*JoxT&J`YL@nNE zcZLP7XyBPFO%I{`P3fJyWNt&Kq?T$|lzxBHXyJky5q`%!>wV)&R{^!C8)|sm76DQ! z>A<~FTVei+;qoOTYy%?yRPEJY8Io`Ojb8u3XwI zU)qHQvHPQ{&Yr~l43z&9^M0I^6SR%YkBaZwgEyJaKoyKyiesVx`A4(8(`4`2-Bbiq ztEnttb92dMQX^<@A^9ngSypM?RBYlWU7RH&~^9>@6|D zoPKWy?*R#tE=K8;F4WcSjCL)%0hRYPF@hPXjz`6)G8%i@D9w+xmlwNm9BlAQ<>%)R zH_6U08Tr|xN_DGJ{p7Vrle1fsv)h%q&GMW;VR=57{Id^}J^uP>s9fmrUP|nWpty(A zu5bwyGA5*}AWtCQw+dNC(9ZFZ@$OByLb z;;FF2Y)i44jO|u7*b8iyJb{lFlB)YMWHtviCN!uXzz5__rCUAHs{3rR40R3CaF6ve zWZ(F_O0fge;`G+!>Fvsy&GMNf{1>N2I%U)JEsvRIXV5ggz=>U@A2!YFc)4UVCDU{Q z8^Z+n zjeUi&{IPG#BVU(CcM7>`aWntY&L9~W?eCY#_^X?zE^LimxcSabUMsw--MjK&^8O!o zh|(XP+D*PY#Zuw7_j0=gpPeJ6!g=l9r0Sg4p6$)vl}|7=``;&*HS)q)O{#yU{xY~w zEq^=&k(}h>RH;)$pim!^CrhUoweb*dCPC_u#HMp(q4(DBVtGGJjU+DLmtRjIc|#aj jLD6Oc>`qS8v~NiD8#4ZHGV`Q3ugz{&PW*@9n*jSi>EXTG diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_US/__init__.py deleted file mode 100644 index 27b6f2f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_US/__init__.py +++ /dev/null @@ -1,170 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``en_US`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/United_States_license_plate_designs_and_serial_formats - """ - - license_formats = ( - # Alabama - "#??####", - "##??###", - # Alaska - "### ???", - # American Samoa - "####", - # Arizona - "???####", - # Arkansas - "### ???", - "###???", - # California - "#???###", - # Colarado - "###-???", - "???-###", - # Conneticut - "###-???", - # Delaware - "######", - # DC - "??-####", - # Florda - "??? ?##", - "### ???", - "?## #??", - "### #??", - # Georgia - "???####", - # Guam - "?? ####", - # Hawaii - "??? ###", - "H?? ###", - "Z?? ###", - "K?? ###", - "L?? ###", - "M?? ###", - # Idaho - "? ######", - "#? #####", - "#? ?####", - "#? ??###", - "#? #?#???", - "#? ####?", - "##? ####", - # Illinois - "?? #####", - "??# ####", - # Indiana - "###?", - "###??", - "###???", - # Iowa - "??? ###", - # Kansas - "### ???", - # Kentucky - "### ???", - # Louisiana - "### ???", - # Maine - "#### ??", - # Maryland - "#??####", - # Massachusetts - "#??? ##", - "#?? ###", - "### ??#", - "##? ?##", - # Michigan - "### ???", - "#?? ?##", - # Minnesota - "###-???", - # Mississippi - "??? ###", - # Missouri - "??# ?#?", - # Montana - "#-#####?", - "##-####?", - # Nebraska - "??? ###", - "#-?####", - "##-?###", - "##-??##", - # Nevada - "##?•###", - # New Hampshire - "### ####", - # New Jersey - "?##-???", - # New Mexico - "###-???", - "???-###", - # New York - "???-####", - # North Carolina - "###-????", - # North Dakota - "### ???", - # Nothern Mariana Islands - "??? ###", - # Ohio - "??? ####", - # Oklahoma - "???-###", - # Oregon - "### ???", - # Pennsylvania - "???-####", - # Peurto Rico - "???-###", - # Rhode Island - "###-###", - # South Carolina - "### #??", - # South Dakota - "#?? ###", - "#?? ?##", - "##? ###", - "##? ?##", - "##? ??#", - # Tennessee - "?##-##?", - # Texas - "???-####", - # Utah - "?## #??", - "?## #??", - # Vermont - "??? ###", - "##??#", - "#??##", - "###?#", - "#?###", - # US Virgin Islands - "??? ###", - # Virginia - "???-####", - # Washington - "???####", - "###-???", - # West Virginia - "#?? ###", - "??? ###", - # Wisconsin - "???-####", - "###-???", - # Wyoming - "#-#####", - "#-####?", - "##-#####", - "#?-????", - "##?-????", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 95297513038e3941f4c1c1e4dcd0bd2ced3daf14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1423 zcmYjRJ8#rL5MKKpc8-JqLJCL}MwXDSxLW~Tgs`Xp0Rbtbxq>~%-sGJ4#oBieS3$~u zNS_YT@-JwpPojZ}E+`G%o1Z{8q8#mS!f=yuqDk;Ep0b44%+?BPZOlRF}Gi-Y!-!51$7kq7`1SA9l$Y@ zY-EINWQNA56`G^=L95?Z7_K^bn&h!eWLi4@w9JyMjAqiw>zK|?rkwFurebSzJa*zN z@MAgb^&D86*;ECxSl80PnUrN-taC2Y;k#%*%4Hb&!%XdRl=xN}l`<5YrC-WI#8DvA zLW(>FQG~LHcGE)mX($S*B0m<8H}T7Y67}W6ay`$5Rave^pmANt^Sr8!`h^7$f$Bn2 zi!LBMLpM~D^#Cy04bW~0n@2lX6?mhPfaidR4r2jwAcRf^Kw0Po)(%=zFhrI0M5`)m z)PQFVc;0{)HL$fexY=$E2~qtTA*`10)T2HcLl2H?pUT$ZFbwoa1rZls)d6p))rMNt z3U0{B#Rjav0`3(4cbX$`hbEg!^)a#bKO1~IsVJH;?i==Z}D$cK&9O(5%dS2_>Angw)NUl5w%p{M)7_OO4=qe5eSa1{}X)GggO zygH^X<94Oilb2dOm!K?Y2@*hAiXvP>bJ{2qFpD-F-0=e0i6h@rUooe<#L*f&c~6KW3#T#SWg*^9{kT4{gb1?$)T_?<7k`b2jwJ7 z?+@?Z;|09pLGB0p{;n+ej=wJzZ-zy|FD3{~0T>xvhzQ=j5X1a{#tm(4sHZ^IkJvA> z)3Hx4zcJUkA6}{(pd*WoervAL{Mw`QsRWhMpi^sTN5(e+E$j!Hl!xjTh&cHQv^Z@U WhVhLJes_0Fqx*IB_8*3T9RC3j?n5*H diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_AR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_AR/__init__.py deleted file mode 100644 index 3177e64..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_AR/__init__.py +++ /dev/null @@ -1,87 +0,0 @@ -from collections import OrderedDict -from string import ascii_uppercase - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``es_AR`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Argentina - - """ - - license_plate_old_format_first_letter = ascii_uppercase.replace("YZ", "") - - license_plate_new_first_letter = OrderedDict( - [ - ("A", 0.99), - ("B", 0.001), - ("C", 0.0001), - ("D", 0.00001), - ("E", 0.0000000001), - ] - ) - - license_plate_new_second_letter = OrderedDict( - [ - ("A", 0.1), - ("B", 0.1), - ("C", 0.1), - ("D", 0.1), - ("E", 0.1), - ("F", 0.1), - ("G", 0.09), - ("H", 0.08), - ("I", 0.07), - ("J", 0.06), - ("K", 0.04), - ("L", 0.03), - ("M", 0.009), - ("N", 0.007), - ("O", 0.005), - ("P", 0.004), - ("Q", 0.001), - ("R", 0.0009), - ("S", 0.0008), - ("T", 0.0007), - ("U", 0.0006), - ("V", 0.0005), - ("W", 0.0003), - ("X", 0.0002), - ("Y", 0.0001), - ("Z", 0.00005), - ] - ) - - license_formats = OrderedDict( - [ - ("{{license_plate_old}}", 0.6), - ("{{license_plate_mercosur}}", 0.4), - ] - ) - - def license_plate_old(self) -> str: - """Generate an old format license plate. Since 1995 to 2016""" - format = "??###" - - first_letter: str = self.random_element(self.license_plate_old_format_first_letter) - - return self.bothify(first_letter + format).upper() - - def license_plate_mercosur(self) -> str: - """Generate an new plate with Mercosur format. Since 2016""" - - first_letter: str = self.random_element(self.license_plate_new_first_letter) - second_letter: str = self.random_element(self.license_plate_new_second_letter) - - format = "###??" - plate = first_letter + second_letter - - return self.bothify(plate + format).upper() - - def license_plate(self) -> str: - """Generate a license plate.""" - return self.numerify(self.generator.parse(self.random_element(self.license_formats))) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_AR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_AR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 284753568ca304cc3789f18d2f54a9c92867abb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2941 zcmb7GU2GKB6}~gOGhVOPtVt+osU0RbKU%PNcGm|uRnFs-;5kiSnJ5Hr4>O;@H zGaJ^%Jmfx{Ip4Ww&iy&xIWu3hwnh;hA4DhiHY0S4fj|hsb73ner;(0yE{F15mgA_- z=lFam8v;F~hjZb)kQF(^qa8>WP9a^y;)Rg^epZ-jN<{8Zkl?(QVWMM#_3ftS0*tGU zW}3=mp@4~|I`|InyG8a8`?v|7njgfM;Q%bW1VXs|U?n=a~22LF>^RFB}6Ff*oqD0=4h|IW{UIdpUnL;bhA``f?$ z=cY9bZ8zq}Z_Rx8-+yhTo&(0GpVhv)Uix}VVoic4^v-X;eU^@o!JD)ICM!XJ-rAtY z8}zojy2lL$-X6EZh}QmA*b@DSt@^BSauwa-2Mp~rzT12G;a9$WpP^j_)%RY$$k20v z=erC&AI$xkp&{ex>%*^|wq9mvw=s3+@pR<95<|nmdoDwJ4F3iS4DBT`b_S1o!Fc0~ zKRx^R@({C+82-)dVrZZ7k54YYCe95qG-{}s(bW3${S567;{BGP7lXMThF%JytY_!| zSrM$24eU{{7k_c`WX{yE`oF( z3kVM@Aw&y_mgmAW2qm#qaQgD8W5jrW2n3jg6^ixkgDY>?kNu@Uxg}%Pd z&dx;GTR~JyxAO}2tIm7up1V{0pvss@99PL<*TuwZI%>P)=Gc@cupX2Md0_|V#yrt? z_F|3R4!tud(I2PfaXXJ?7v9Br^$+sCx&m!$0&A|EH#K5IwKD)q$jRf_IxgqTqjF)& z9k;EXWI7`|ri;4^s&-5@up^JD$1suWEy9uS_6?ae3RzK1%XAebS(x%x-gCU-8d#k5 z%;Y_D&%nN&UJ%ph#>!vLh&S4$TDx3nmoJ5Dsca>ct+pSWiQR}l_Y0u7kPO6ML?W6v)`@07`FSK-w(~4c1vC+X z@JmLWPD`KAk+|Zo?vi0i7fJ|T#F~U#qg|sJKCiTK*#xqo5(oPvh}U!AcM&JSu~a&= zK!P;2)?HWsH<&M3U#q(MO8LUop3EuY! z)p<<>!=^M$)&n9mJ7gmjPg1c3gcpKe4MMj?Hd8@=5YHpFBI6+Y1!97x*ZCueQ)r$S zg~(hR>fX+s8?JTrSGxMIZ2x>+wQFcLoVfW|>U&;njxK~EkBhV6b@Qvx6PfS%UsFrR z6JY6_--;eucO$m`YD}IJLewriBu)>{tq_H$-|1OE@R)0B7B-#>Eg*Qzt>%Tp+!^Nw zM4$fF=#Sa%M3dK|*|{8aY4}xg*zr6O&SP2zJ3gU(f^FV=VB1f>ZuRt#0Xj=*%uf1a u str: - """Generate an old format license plate.""" - format = "-####" - - letters = "".join( - ( - self.random_element(self.license_plate_old_format_first_letters), - self.random_element(self.license_plate_old_format_second_letters), - ) - ) - - return self.numerify(letters + format) - - def license_plate_new(self) -> str: - format = "????-##" - - temp = re.sub(r"\?", lambda x: self.random_element(self.license_plate_new_format_letters), format) - return self.numerify(temp) - - def license_plate_police(self) -> str: - formats = ("RP-####", "Z-####") - return self.numerify(self.random_element(formats)) - - def license_plate_temporary(self) -> str: - format = "PR-###" - return self.numerify(format) - - def license_plate_diplomatic(self) -> str: - formats = ("CC-####", "CD-####") - return self.numerify(self.random_element(formats)) - - def license_plate(self) -> str: - """Generate a license plate.""" - return self.numerify(self.generator.parse(self.random_element(self.license_formats))) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d615096e22267b115232569ac209469ef8b59e81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3376 zcmcImO>7fK6rNpsZO8es^TTgz)sRr*Lc9=Ae-Z?u2~b)TQb0gm$Y$}5lQnCvJG%*F zNu(SiHC#%2r~qCy>H&k&&|zYMB5MH+;>5Qeq{rf2yVa93(P!HkiuywO?zJB@_d@-km6JPnlJB9 z3moFnDWnLqNC{x!q0d>H_D^!j;Bz_{OmcSPS)yQql>s$lKIcIQvd|FGCsYt;oFxwR zyMvXRz|13z(wu_Qyuzh@3ZM2XzOy!+BgVhLG6C0AAmHNk24Lg?X_T%sN51c&p-uoY%89I0V!o^FMKT6vj zuJCk?v~9g+Qb_XFmRq+pHG>NVcK#t1@Qvx|(JX7fAKOSn*A&qB>K<)BQH|~OHi|m6 zSyg&Km0qb=GI74B6PZkc-mQ-BPd&B1rFyT{>nUnc)AJC9OjU9Am>nS494Cd0n{Af! z08omzmB&B;r`$BB@VT`bObwwalyhv!M6%&ZDHy+H(pQFeDzwwpb7|&y(W+#(A+izekYX=;I zcF?tD(6|ERU(SeQdLE0WZjRx+d{eyOF>uOrIAe-=HA8ebI&5%FH^tNhE=-7;dQB`& znqzw5Q0ichXs9OcF3Oqf@+daMtb834(K~O3xOxahI2`?FL`hN$swqjS;-uZW&MRvt z{G64T)VjIXVBf}NAT#Jm>-M?8leUie#21Mt(T>GvXF1xrFtFHlw%m2L5*=DvD;p|z z4OOBaE(^ZqmKC4S9-a#>x1eapo$1@tcP}kWlw;kMNU9V{t$=M*16Nv77+i;e`P2oh zS%qtk*2TJ}@N+23DZbgz6z7%JY5q3Kc_n&{{!|rw04o2W6+8wFAY<`Yj@9gg?x7t% zR^Gql=Fx3#qeBDI4R*8!xZGfpCoN#e_K><-Qas?fFiG+@cayY%u0d_aXUG=lUWSfn za{ihkAGP*xk}0T8sUxho8b^U~v_)!XJCMI;(1N*`=q)FDA0J-q8!7jVR1)$GBHLgR zFv}Bc`;75xq?L`?1_*WC_S0&_z&jF;v(41w2mZV%eqe4tSTXhifjum>?wkw!7HPdR zaeLx(T#3o0j9Q80=KM>Mc7}@!mB{W=XgAwdO)9F8I0=@V3I=tf3JDOpZIfzLz5Ujt zg@?3Q!E-~bT3CTJ>mTqe1}t5`(@fYw=PVmeO57-P)SeWlvRkoD(&J3`fHh+m5C}zE zVlG&9dogyP96Ru6TP5~RCDL08^{$Tq1tU8Ydx81a2vmIqc=Ll+VCWq6EXg^^b$nvU zt?_4Dtv}UE$ck^`QdQ$k>eW`qtJWQJ0ne+8l}J}9)V1D~|1X*S{Z2B2{R504yJ1_T zlWve5CpUN7Ykgh4NUdF)IJ>GspL*3C?)`5$g!iM9!#QB)>213)f;T898x}H@qZaEL zSPj*QVCdn#z6XqO){fPC)vHkMU78daYV3wl=jPRkEfi&9V5go%yg<4q1VF}W7j?^x zb+f0!E@x}&#sNMG3ygz6;Fj@f!Pmq0h8JT8%dvxxx)ys*lzUG6s4SjLmrtfEJs($M zS1OUKrO;Idufb&04oOl$&SOck!;+NOm2r3~N_LYZeKIaW{Ve4%ZDnX}6sje@vvXazyHywfjqQXabHCSK@U$gCjf zmP5R-=YBio_fWp?erHua%-uC!z{D`eg248X43HS?!fwpyng-7acq1E*drcr_Dt6oP z>Kon5202V;>22U$I8FqQlD9xc(`it%%RY|denAb-Q0Ft${UY!-H_VkHyZ%CyVaxvk DjtxZQ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CO/__init__.py deleted file mode 100644 index 27ee8f8..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CO/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - license_formats = OrderedDict( - [ - ("???###", 0.6), - ("???##?", 0.3), - ("T####", 0.03), - ("??####", 0.01), - ("R#####", 0.03), - ("S#####", 0.03), - ] - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_CO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index fdb3c06e4b504c9ebbb4e1cd4e70449481ceae1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcmYLGzi-qq6n;)}xog^^qC&ugs4`{fS+px6LLhbH_|YkgmBwz)Z4zG{--#;=NXOsM zje!kSVq)n3z=FiYNerl}s)_}1uyn#s((;Dq@B92d`}z5Ex9fq4Pu^~d08T2>q*k-e z*EKi<3KV6KqX;3O7PT`gw<8CE1)D&fDbN;kj_leK*%LQtpBoaO*k{aR?6O4RoF`HY8?r4F?u}V7#u?wn!-*P*VxxC&9hY3OwPBp>#VITCPQ1q?)~0Hv zC5}f*lBa`j`-2a79ROIH{&qC0F-TUe{>~-)^q{w%QBc++MilzUj-ZR;wEG z=EX#0nQo1XqO2cR@6A>oUfpx~pK{4KEBiH#E;{$?Aw7^Qnwsw`Z|n5SMhJZe{}k5# PxE^x9EU*3ry;jbDeY~hl diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_ES/__init__.py deleted file mode 100644 index 3bb7969..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_ES/__init__.py +++ /dev/null @@ -1,124 +0,0 @@ -import re - -from typing import Optional - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``es_ES`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Spain - - .. |license_plate_unified| replace:: - :meth:`license_plate_unified() ` - - .. |license_plate_by_province| replace:: - :meth:`license_plate_by_province() ` - """ - - license_formats = ( - # New format - "#### ???", - ) - - # New format suffix letters (excluding vocals and Q from ascii uppercase) - license_plate_new_format_suffix_letters = "BCDFGHJKLMNPRSTVWXYZ" - - # Old format suffix letters (excluding Q and R from ascii uppercase) - license_plate_old_format_suffix_letters = "ABCDEFGHIJKLMNOPSTUVWXYZ" - - # Province prefixes (for old format) - province_prefix = ( - "A", # Alicante - "AB", # Albacete - "AL", # Almería - "AV", # Ávila - "B", # Barcelona - "BA", # Badajoz - "BI", # Bilbao - "BU", # Burgos - "C", # La Coruña - "CA", # Cádiz - "CC", # Cáceres - "CS", # Castellón de la Plana - "CE", # Ceuta - "CO", # Córdoba - "CR", # Ciudad Real - "CU", # Cuenca - "GC", # Las Palmas (Gran Canaria) - "GE", # Girona (until 1992) - "GI", # Girona (since 1992) - "GR", # Granada - "GU", # Guadalajara - "H", # Huelva - "HU", # Huesca - "PM", # Palma de Mallorca (until 1997) - "IB", # Islas Baleares (since 1997) - "J", # Jaén - "L", # Lleida - "LE", # León - "LO", # Logroño - "LU", # Lugo - "M", # Madrid - "MA", # Málaga - "ML", # Melilla - "MU", # Murcia - "O", # Oviedo - "OR", # Ourense (until 1998) - "OU", # Ourense (since 1998) - "P", # Palencia - "NA", # Navarra - "PO", # Pontevedra - "S", # Santander - "SA", # Salamanca - "SE", # Sevilla - "SG", # Segovia - "SO", # Soria - "SS", # Donostia/San Sebastián - "T", # Tarragona - "TE", # Teruel - "TF", # Santa Cruz de Tenerife - "TO", # Toledo - "V", # Valencia - "VA", # Valladolid - "VI", # Vitoria - "Z", # Zaragoza - "ZA", # Zamora - ) - - def license_plate_unified(self) -> str: - """Generate a unified license plate.""" - temp = re.sub( - r"\?", - lambda x: self.random_element(self.license_plate_new_format_suffix_letters), - self.license_formats[0], - ) - return self.numerify(temp) - - def license_plate_by_province(self, province_prefix: Optional[str] = None) -> str: - """Generate a provincial license plate. - - If a value for ``province_prefix`` is provided, the value will be used - as the prefix regardless of validity. If ``None``, then a valid prefix - will be selected at random. - """ - province_prefix = province_prefix if province_prefix is not None else self.random_element(self.province_prefix) - temp = re.sub( - r"\?", - lambda x: self.random_element(self.license_plate_old_format_suffix_letters), - "#### ??", - ) - return province_prefix + " " + self.numerify(temp) - - def license_plate(self) -> str: - """Generate a license plate. - - This method randomly chooses (50/50) between |license_plate_unified| - or |license_plate_by_province| to generate the result. - """ - if self.generator.random.randint(0, 1): - return self.license_plate_unified() - return self.license_plate_by_province() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b41a6f4048249c2baa6f39c7100ccc31d5a87197..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3537 zcmcInO>7&-6`om=B1KW593_sEBI(8s5HqcI)t|Hl>&lQEnU*b4s!7QS5n#FG45gKq zyX@?eG6@M#0RgoxbuWd}n+p`E4IkP=4(YAvsX#9zR6xe0w>Agg6etA>pZaEZNl^@) z7AU&F{JnW^-kX{Cy*K-p@$onk-^cOI8%c!z?hS$}612x@=-fvH5p1G@XeAR@rGkVJ z36ZcFs)h>@j3ksnB(jId2#q`r`Lcy@6Q`n2#UPu)JhohO4cpSqrxH*EVTIWZgHTrX z`Te@5cm>Ay5k&<|P(dQN5F%0`OhSbS2^U64q!0yVv5G{Zd*Q+;Nsv(*r?FQ-%A*Im16yGDb`wZJ5~Vl%l|q>eV9D;8zb zF6$;$;&BZJYAl)T}(H7BjA)Ka#L+eVENLsx9Ju8NVmMmLPINi{~-4aa4= zI0LO_>MpEpSF~JBH!Oc8MUl5nqf9M_`V3m#GAafo+cKjdQKsp%X8_ocu2Od+T^!1O zF(qHB=(j0Ty1Q|dlPxOVo|Nv{D?^urlbwOj9hP~higfjkfN1#e<`C6{0IW>Vkhc$Q1E zb5ItctZ@w8IUvm~Kw0JZ3YV_H@QP@2Q0Ad5L%9iMl}j0*XMmOg_6*Q6AaadM*I;U8 ziAxJ}9AD=cmRbjIUk0g%o@UTP8iX+s>yU%vj4ZBKJ*LF8(RllR=yB$E&CM~;a z)hII?@Zk+gwyP=)YBf~TD5yl~9#mBiR1gat^#rP_ z2US(m49jpeO{q1X#V(n8wM6up)->q!qUUe~E0?^O<;+0Gmnez@JqOjlcF`}$;n`H@ zZ0g}#hwrR)-dQ_1dutaR!yIB>a1L{cQ66&YC7$damw!kOk6HC9Wk#i$lGp-B@UTm( zHSdUuGP^D)FL!0U`|XCY)*D}K@`oVmd=Dxx@E^%D_Zs_+Cy6tkCT=}ROdKZUPC|Zg zrjxjE91Tyz?}m@!XyT=NJNr8y768mCx}xNuCv_lA|m*Ec=!!; z1Rl2WPo-^ay#}5<%)!uCIoJ+%yU7Y|3ZxBuCuky}9%eur3Aca~G>#4kz;IjYy072? z{6tzuefSCXX6WVsg#2(Vg5p92aMsYxIt_Bzz_!I!!+d*mFo^A zUVIhH>5j+YpC#m>b)6BDI*x2tgqT4Lx2XuF#bVaBXtC(6X!$l61Qdx&=q=aP0jL7J zP$KKD?Bi4E@vu4A`u`&yu=ikL@Y;E32E%}DlHp;1Wq>;f0G@ZV8$f7%_c^}Ym!-Z8 zK^r95qNs$gwxU7udWPjx#IuU!#bj1g%cA-*RH={$Gk@wP5FFvbMLEFQtEaKnr@wXn zKif#fdaF&b}a2}^VCg>q~Zba=g_P2>n?S019Kf4R zz*<9+(c^$UCv*(~+{t_@)cRc?)PiFTQq&2)@*4mj@%pk!;JIc~E^pYjLmm0zyVL5s z(y!Tws)!~sj@Z{^ezirvI<@Ijz6gXwnshe&eQpDz;iolhM@X>(PX7Cj7 zQXY?r*05Zb0~Ypy;KQCXIYK6Ipz%`<)H*xdX~YAaF@omv z7sn$%{N&spFZ|*4BLv;{&DCSk9=#EZOn>BjfuQj>C-kL8JP7jrfqqFvg#v(a+G=K0{MqjJOz2x07%F6W(;# GSN?AqWV>Jh diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/et_EE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/et_EE/__init__.py deleted file mode 100644 index dab5516..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/et_EE/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``et_EE`` locale. - - Source: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Estonia - """ - - license_formats = ("### ???",) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/et_EE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/et_EE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index deed68a02a5fd60c17d9de503d4b304984673c0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmYLHF>ezw6t?dY8ilrzP!a2)NJuy2EMTh;QHKbz6eJMCEidl*C2@0iK5QqDPDSb; zVCru`to#cW=98G1*op#6Cwxu{Z+P#0_VefG@A>QAUY9iXrF(in3Hjl{*0r~B{lF!c zL=Zu9QqVM@Bp}a-2rh^SG58#A>QcID#qFPgLouy8FSS}qfjZl=_~5Sawmxv-k|0T` zAZZ|I8j2uot-`pa8@jWP&xSC7>&l`C|4QJG3jP?=lqMk-UvM0U^(L$D9Q_-KYt&C!H{WPeyz8>-&XbKMPj%11X6)v!b5|jy^g9{+zSW`q MZ@v3}h>QN%U(S`Z#Q*>R diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fi_FI/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fi_FI/__init__.py deleted file mode 100644 index aa9420b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fi_FI/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``fi_FI`` locale. - - Source: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Finland - """ - - license_formats = ("???-###",) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fi_FI/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fi_FI/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b34424da386f696c9ee87a1c990a3dde8a1515b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmYLHF>ezw6t?dY8ilrzP!a2)laOx6S-@5yqAo>U3KEFnmKXQ@lDN4$Uwuw!I)T(b zz|`M>Sos$$%qKB1u@wcDPWXH&yy3m~+0UP!zvr(zJAKmFm;UJcU4RE&L*=A=8K&aF%4>FlzQ6bpA zb8f0nWZlSc^PbIAj?5@C!n_PJuiNci?~(`M zhnM=UU2+A-kzco2eedAkNNl5S%DVYRZSl6vZhFsJO`hw4h0WNj`_^6il+y2H`1?+e NhTjGc{}3D9vA?v{w6OpH diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fil_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fil_PH/__init__.py deleted file mode 100644 index 5858896..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fil_PH/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from ..en_PH import Provider as EnPhAutomotiveProvider - - -class Provider(EnPhAutomotiveProvider): - """Implement automotive provider for ``fil_PH`` locale. - - There is no difference from the ``en_PH`` implementation. - """ - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fil_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fil_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 93ffc00e99ad21391c38ad5e87fddd169210c8f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 601 zcmYLGF>ll`6t3bk!NXEQ*=)n~dNZ(9?9m=gDV86zycMKz(u@{ zve*u#-e0^?Z37ClBYf$MGET05v|~L|8A}$6N;Yi%da)plDR~2Vni79bYOp|LN3Rp@e|rf z2aj4_p7XcR(TbmgrMsy+`rit=ot-i!wRDW-?K&72!o+{5+xOuT{fgpbdYz(VW``w* z>*Fl$li)$1{ry*ZUcdb3vj1>cnw<@Tpt|kR&Gh-!iWl~dr^6Pzdp=yp7~^l~+3&qQ OJo|e0!5`#vko^Vc?WJ4* diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_DZ/__init__.py deleted file mode 100644 index ef6fd63..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_DZ/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from ..ar_DZ import Provider as ArDzAutomotiveProvider - - -class Provider(ArDzAutomotiveProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/fr_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 92f405ad42f9b9a11e1912f2acf62e1778a1da6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458 zcmX|8u};G<6nsuvlvb^n;158`KrKLGLP(V=u^|SgES8(N)NK+6$BhURL;s=QP_gnC zEQ}};6B8R!Vd;eJruFddPWGLjpWnLOHkkF=o=h}+Sy7i}jjLl#77#&%Vn|TnAaLLs zB4-Yf%bXW?b1pz-!*6~&TKTB*Zlx%A#AH~fSU|N{bu?K3g8)SkI3@BOX<}}CxAF){ zX~GDp+Jqz`n#G292zi*%c(b#Fl?hruRzi(gLLc$nmgvhTEL1q*p%hsyhC<<9 z!O{Z9e2BABjYWFiJ3YfWSL`IC;gsI99FORfNvut_{T$Po5{Xc}V0a|SAi#w1lq*7d zS!tWLrJ?)D&BW&L(ePwTv)zlD)cCBd4*PQO)ZayJrzAaNurBirNc}^el^U-FuwWb#T=y` z$EnY~w6pf(j%wsKAD4Trv|76mi<6WTVWT)roBSpYH8%%NcK$m^@ZT6qGQA%)14v>rHeEDcFkP_9TWj!CsP zb6Gx2?mr+}7#LM7Td)~uGGz-;eS}g`3PWj9t)2BQb?kZczD;N7mlp)R zi~ZnE_rr5_!w$KIqu8(8s=oQ;-vil$x;IzNr)rz`Y<1at)Ozw*4J>Uwfxd0ig^w}* Tjz+(`ecb&vxcdiLbj$t%u4uQe diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/he_IL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/he_IL/__init__.py deleted file mode 100644 index 0609f62..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/he_IL/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``he_IL`` locale.""" - - """ Source : https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Israel """ - license_formats = ( - "###-##-###", - "##-###-##", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/he_IL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/he_IL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5456f3041a12b4aee724b1292022089011a9d303..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmYLGziZqu6qan?<#J6pC^TIi4hkObM4PoOWGaD@bjT7fI>mbFIk7BP)*Zc@TFC#9 zzoBH!e~~3?4TV6aY=LW+OnsJ}R*3g~PkQ?Feq3*E_DQ|2`lq{;kUQtJrqkl;6_N`g ziKH1(H1;U*$Oj_5b0U54F8wAhri&oz+XTD#8i^l zlQj0%Q7{e`eiWEmaJjRmiVPIwHWV|fmA2^|!lG3TPqYaqlPU1MkCRE5=|p5Oj=W`m zI2?}L9xm4#M0Y>xR6Wjfp@8$M&$-fameqWN^Di@zwKr>=OP%2HAWIX-OW^pA61Mz7 zR(0Z!-`G?uU{>2HDDjmYJ`pVU6cWo+ni!2)I_FqhHl9O1XIXm8iiMr(d}sXn4J%U% zqe3KS;xm-&M4W+PPo@P@Im{R}% diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/hu_HU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/hu_HU/__init__.py deleted file mode 100644 index a046723..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/hu_HU/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``hu_HU`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Hungary - """ - - license_formats = ("???-###",) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/hu_HU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/hu_HU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a59c13b391a90a1efbd5b9e804642cd4fd549289..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmYLHzi-qq6tP_PJmkb5}fX1gnl^CxqcVd_ib{C zIN~@*1x`GSJoFTC?*efjywCooF2So_)c@&O6yav@Ldm7zpwf=T1$%|F^_~rv2vCAK zN<5AepLNR#Z6@P@0g{Mi$bDC4^PS8P22%r_-#aN3W;TFqbLIAr6Aj z+Dloh6!gIcjl;~CN*@pcW&BnwLNf*QOI84-O+aZOd2Lx}vrXw)&GK$%i&8FAyFAQA3Z({W z8!wpApU}G1;rczvWC6rTlR?4Wkykf~Rqqs1Lkf{9X`k)Di8Lf$Lb)WlI3d-_WU_n| zKX^#AFfguIx?pqAWX2Yt$c)C$vu5}mam)GwPu6EJg z(TC^iwq0@s$C2M`vgXd=znR!Z-I!JTk2b~IHoG1?-e~ef4J~ZvuJ^6G@-fEW(fIeR P0UmuD-ur`WbjSVz8}zk+ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/id_ID/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/id_ID/__init__.py deleted file mode 100644 index 6f7d50f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/id_ID/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``id_ID`` locale.""" - - license_formats = ( - "? ### ??", - "? ### ???", - "?? ### ??", - "?? ### ???", - "? #### ??", - "? #### ???", - "?? #### ??", - "?? #### ???", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/id_ID/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/id_ID/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9bde5caf3a04ddb13e9b55fecb76f780a5705b4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 637 zcmYLHv2NQi5G5tqQ4|LTiWFT{7zm&tCfck`jRFCJENO>M0t%WDnV5+vsuXS1o)RGc zkZ&lu_Ak10t$*H-P%g`{p;i6fT3L_t!H~0_*UDk_%3m%Gxf@nP0fG-ZAbLFpxqD zQjfyar(PN?{UlJf-D>|>lsOZu&@q{7DWv8L7ME?$_)MyJI^`4}A5N!nE;Ev|aT2b= zNjw^j;>l#S*&z!%yow%S$8hAx5iFc^6qny>=&o>*^y(1ff(V9j9bqgao#z%0F#bFz zd0W}Qn99tghdIw!Q88?W6+~BG!P?&a{tC^cU`R_nV}g7^A3INTpkW_u;cF3CBo&>6X83U&Ha=t(r>R6-c@f@_S&<NcR#R&ayq)pwnZXa53 zg*f6kMH!Agj6C!baqkjwAH2_g(--5i6Lx=kmW8)s^u;|PO~C~4002&wUL=LVgo_ZY6f$ug4s+MIz67vf>b6fg=jDc zY`l?cm4H5M*f>}kQ|LoNAdk+(N)*5ai=0{b@%|q#@A;@(oGF2`Ngml=+kB z(PN^8fpNi-6 str: - """Generate a Japanese license plate.""" - pattern = self.random_element(self.license_plate_formats) - return self.generator.parse(pattern) - - def area_name(self) -> str: - return self.random_element(self.license_plate_area_names) - - def classification_number(self) -> str: - return self.numerify(self.random_element(self.classification_numbers)) - - def kana(self) -> str: - return self.random_element(self.license_plate_kana) - - def serial_number(self) -> str: - """ - Generate the vehicle’s serial number (the last four digits on a Japanese license plate). - - For 4 digits: insert a hyphen between the second and third digits (e.g., 12-34). - - For 1 to 3 digits: pad the left side with middle dots (・) so the total width is four - characters (e.g., ・123, ・・12, ・・・1). Do not use a hyphen in these cases. - """ - - raw_digits = self.numerify(self.random_element(self.serial_number_formats)) - n = len(raw_digits) - - if n == 4: - v = f"{raw_digits[:2]}{self.DELIMITER}{raw_digits[2:]}" - return v - else: - return raw_digits.rjust(4, self.MIDDLE_DOT) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ja_JP/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ja_JP/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1ad4f98bade761a548d64cc9ce4b42e3f09dfb2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3621 zcmcIn|5F>s6~EIL5HeU80!^rKHmLHT)RF+%fQg5(Fx0_g<0N?68BH_iL${y<=}y@@ z;ea8*#M5FsDY%&qWD>Wy6Bs{=!dvd$*E} zP5VPT-5I^l+uiqe_wBp=?CQ@I6>g4}o9^N8HjcY*R+w-yT;C1KJSTAypWu>w)W&l* z?l33W&T^6++m`H>U6dbl_??ezQ1kPK>ouZ|$`U3qHi`+fla}>3hXJ&MWs)oEmdfz9L7U`0>xh;!eH-W%OfLt0JJTyb_b`1s z=#^t0erJK-IEfV`XE`)Gq;YWKB+SGzCL>Wj3Q5m+mOg(<0osN-NPp{Aulf^l#-6-vrlER@{WBn*hk zkQ$8Z$%N_TFHe`i-sL_#le>M%RR8|RKRjHzV5$#q-+XlSGgE!=>5T`sKCx_XU&`J5 zS-On6&3%xYy^{OAWuCio?a{&w%kwwCd@yszQm@YDzPM}+^2z79KfRwWr=H7S<-WX? zTb_M*?wZ-~w=d7i-Jj?JW3}+Z#VE6&U zS%w!Ge#r0_3_oJ{F~ds?f5q@J!z&E0GW?X`4Teh$KV$eg!{0Le9m6je-eP!{;a3d5 zws3li;TeW3?r9eHG>dzh#XWtF*_~&|_F?*cR%iP$&GuvZ=YGcq?3dp zE~5m_QJN?*IFrRfGf98z3W#}bf*XFamzhCpfkjvgg(YS=$wR;6i4LX?mp$9K#Brb!7YwV>=NQNlgmaq7kEpSqP?u01T28ba&4JG7(P-;w%t4cW7+!E4c9S2fkY(yNwT4+!l!6a1RH7)d*?0}Yl z-9myOE3z&K!PJ;hu_=V{TA0{m?%<~OAHj090Ej7Wt*Uml%9pM3ElR7q4`z2CT&ar8 zl-~1H&%Sf+omG!F>+vogUh(Y7xc02mZQnY{?a=ezCApuw&iDCk1THMjcz)9=h2n>) zUFV4h3^e*>AhLtnmKA%)tBO$;+kQ-~UjQ-1K`g7DhODPyaqp`4VAgwZ#S_W6BBUC6 zH$_8_i22F>5S0HA4YhfyZ2h4YKFI?1bEF0w{dU6z#|jS7;FuM6?Usj5Bi{k*Cu6SJ z(r$cLG5#(41v*Lt2y-uHC(lhToLH@I%GNh6KeyU^G~0Z1rT*B8r!V8`dv;T3u;!-x zFDbUdW=XEvoMg%>&jjkAt>YENxM+2NhOtFTJF?!670)Xf*DKGizL?T)!1@1?(n($~ zve9D>nzT*8J7}a4c(-nXmu!-~j{BH$pbM7qRDpJ0f)^9DxMZKSPuTmRWtg6ar;0@R zkY1=yl_knPP=NUy>7T+8annZ*EkzatK0>27F2@r1o2id9WHC6h$Q?D(ZlHY~9!+V2 zBzZ{IHTop_cjW007N-cHAHYLvFLUZZGB7NG7a59=rQ%pY16V(W0qGPPj;V@-fOMfM z6R9v$BMuG)_n_vMKzQ#nLpLK`Md9N3DUmwEa`B*!G2nJN{Bq2VkA{noaj-@tUzGuws;T_Z;m#)_bDo4Z}%> z)0%F$kM(wUAMFvkkDu^6OcpfUL_8%}Su%LV;72t&6HT~9jTM_Fc;XV+)Q-VN(?Lve z`AV*~ZvM@SZ&HeE&3apx_0_i5vu&@hc;8s5>7Q}`rQ9>;zHoeoU)xqb$DeP#S6#m_ zu<+JgXQm2h^;+lU&P+qga>pI<&cJeKrll)Wd1xkbull)}SJ$fRSF63*YVTrXQNQ-? z<#$)A+cM>C=27kQ?=W0~`ScJ3!z~C&RZ1r?=;ea&R$5HZM+wwQ1wm3{fXIhGExqLaJ!>c`9~N@gfy3gSgI_^P0P4{*N#PeIIFWgE-6m!&c&S zVRr@=v~><3 z@8+Fd{6cu0qnIz@oyYk_=%Pq#2j*h5av)#gakejL-*N!fqA1Ju!QH@_i!!Pr#XmI# v8YE3%@;HJG*8yw8I!PEh=-sH%8zXP$dH%0l;9IxC^X(bWOaJ7kVmkf{%0s)X diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ko_KR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ko_KR/__init__.py deleted file mode 100644 index 95ab163..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ko_KR/__init__.py +++ /dev/null @@ -1,52 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """ - Implement automotive provider for ``ko_KR`` locale. - """ - - license_formats = ( - "##?####", - "###?####", - ) - - letter_codes = ( - "가", - "나", - "다", - "라", - "마", - "거", - "너", - "더", - "러", - "머", - "버", - "서", - "어", - "저", - "고", - "노", - "도", - "로", - "모", - "보", - "소", - "오", - "조", - "구", - "누", - "두", - "루", - "무", - "부", - "수", - "우", - "주", - ) - - def license_plate(self) -> str: - pattern = self.random_element(self.license_formats) - letters = "".join(self.letter_codes) - return self.numerify(self.lexify(pattern, letters=letters)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ko_KR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ko_KR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 99b5261541c238bbbf90f90fb73f594f16fc9621..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1341 zcmZux%Wu<27@x5d$7EY70-^%6Qc$6l1;jjVJjFw>XjfeXoYKS8cqY`TA7SiNq@q%U zva6y6u}Fw!(XJ?BrR~xl%2OQp54ceEP-KY{Cz>3J3KveycM81tSeQ^VO2&#Oxh!vCY61{O!k{Q&Sd_6;Okug0#wntdB%E%fikX_CWhieydLWx; za?+{T#362wH>!c>c!4!S@|Ac{zU0yT;NY-_em*@on72LCut_1}Y0_w>r{_=)lTnqa z$kOsv-gr_0;*)spc+9`?r{LX-`7?sw zdMf6&$HnutZwr3=-t$nQB&br?gzO#?QJBH+W%(gf6W|gkf0>P|STuQ+afHKkTsa0Y zEGOIZMV_&E_ito{C9(XfZ<5Sq(I37Og_oomX*xbd(&G%!{)KuAsEQ?F!4jxtvZBSrCO-iSq&!eFtS?2D)RJ)ML9EIp@4UFN_d(M7OPT zdZiW&dG4OVuHCwC1!PCXFo%uv#Mev4Frj*~;J*HO>-A{Ob%ZR}3J@w(YGG&cSQXm{ z$mn`DIQjq!U&VLvL;u879lXk|U&w8p%Wa*+3%z^idiT!f_Kjy=<S=hL3 zZsWH3+;$f0T6=x$%2@O4oq@jwrn;Z?H3#N@JTl*P^rd=qne_twni{GIxrRd!3bP0~ z9ezw6t?dY8ilrzP=WPOB%~X17O+)_hzTK81&NB`mKXQ@l5=x+zWRKj=>$^$ z0YiTSV&z}3FrUQ4#8wnoI^lCtc*A?|v!6ddf6rfccKW2XFa48yl#m||Y+QE}R}XD+ zNdyrzBRP#dN<8v{2=9UjAHC21x-O>6PT2kFSrpQy_gbrk6sVI8iwpJ&XRAFME(wyD z3KDyQ#=h|4&e9J%x}`h+_%bgu%&{;5uZ_x;kqZpU4QDV_I+#o{0|!TwNsy_8XBhSS zfwecP)(P&f!6-nTO4ODInr(p7nrEAxEdZesyFAEbf<=X3 zJI}ePK9N-`#PxfYsvMb7CdHhev7?*B%6Ec^VYy7SvhQ}_SQ!>AuvoB69%#yXw diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_BE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_BE/__init__.py deleted file mode 100644 index 19f24ca..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_BE/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for `nl_BE` locale. - - https://nl.wikipedia.org/wiki/Belgisch_kenteken - """ - - license_formats = ( - "???-###", # 1973-2008 - "###-???", # 2008-2010 - # New formats after 2010 - "1-???-###", - "2-???-###", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_BE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_BE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 6075b81c5ba4a7d929fb44e49a9b377a8a0d35ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmYLHJ#W-N5Z$$XA2AnBia@kRCn32wuM#?hI3*H7G=YN3&BpO=&KvJ~jlFkpSAmrO zkl%o4`4=?QmZ+%cf)1KgjQ4yn#hW+d+41a~{kp&Jqt?Fomj)yB!v-DnI=^`YDxsjyDtMunNA@+mLlav%_$755>tOdoA&;a-vm>C|B~J}eBCRxB*9Pa>kZ8$^C6VHslq-|z;&F6%L~3F9v`o@Gne&=l zBss6hPNSOq7Y^hAsR*T_5QfsITv?SZcrZ_W7vKv0a@^kV#_vDqe|%Nlfs`#c4c%tT znuFtiyMRIMdaL&RY>P+0Zii2|nmnt<5VrfS?*rVp7~}6~`nx~E{cq!ke-L@PrP Bt^oi5 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_NL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_NL/__init__.py deleted file mode 100644 index 0dbab37..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_NL/__init__.py +++ /dev/null @@ -1,77 +0,0 @@ -import re -import string - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for `nl_NL` locale. - - Sources: - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_the_Netherlands - - https://www.cbs.nl/en-gb/figures/detail/82044eng - - .. |license_plate_car| replace:: - :meth:`license_plate_car() ` - - .. |license_plate_motorbike| replace:: - :meth:`license_plate_motorbike() ` - """ - - # License formats for cars / other vehicles than motorbikes - license_formats = ( - # Format 6 - "##-%?-??", - # Format 7 - "##-%??-#", - # Format 8 - "#-@??-##", - # Format 9 - "%?-###-?", - # Format 10 - "%-###-??", - ) - - # License formats for motorbikes. - # According to CBS, approximately 10% of road vehicles in the Netherlands are motorbikes - license_formats_motorbike = ( - "M?-??-##", - "##-M?-??", - ) - - # Base first letters of format - license_plate_prefix_letters = "BDFGHJKLNPRSTVXZ" - - # For Format 8 (9-XXX-99) "BDFGHJLNPR" are not used, - # as to not clash with former export license plates - license_plate_prefix_letters_format_8 = "KSTVXZ" - - def license_plate_motorbike(self) -> str: - """Generate a license plate for motorbikes.""" - return self.bothify( - self.random_element(self.license_formats_motorbike), - letters=string.ascii_uppercase, - ) - - def license_plate_car(self) -> str: - """Generate a license plate for cars.""" - # Replace % with license_plate_prefix_letters - temp = re.sub( - r"\%", - self.random_element(self.license_plate_prefix_letters), - self.random_element(self.license_formats), - ) - - # Replace @ with license_plate_prefix_letters_format_8 - temp = re.sub(r"\@", self.random_element(self.license_plate_prefix_letters_format_8), temp) - - return self.bothify(temp, letters=string.ascii_uppercase) - - def license_plate(self) -> str: - """Generate a license plate. - This method randomly chooses 10% between |license_plate_motorbike| - or 90% |license_plate_car| to generate the result. - """ - if self.generator.random.random() < 0.1: - return self.license_plate_motorbike() - return self.license_plate_car() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_NL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/nl_NL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index bdd8acd03ec13dd5b533045562047aafabcf4804..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2920 zcmbtW&2JM&6rZ)%AF-X-;It7mDNEBdaU}015D<-MoKOU9p($!2R2kIG+B>#4S$o~t zbwVOn%7Fu%;1=2wM^HHQ&`bY@UhMkdXz8I+#eqxZ%ISqu-|UBtL(*32Nc-NKH}l@S znfbjp`*VMP2+{UqX!S)OLcd!bhxi=cJ`chUl99})C~b2l&Bz|vt9pvwG|M0lx{74> zE|Pti-SygbY40YJ@V}&;#g`tS3C0ZGAlkYjW0JM!*pv>^*1im62Vn%xQQ9LjX|L=_ zv$8ksli9Ri_N4=|9|vT~1YF`blr^P{ zWkupOk{4)CxQPo&R>dO0c||vfWGGrmEUS`%by3TSMgfb97${MtlB^$axv{aqXEQoq zQo(yNpAm9OzCy4r$k>n+Rk(0wYGwwP@^)N2&s9|=i%UATR}ixjsd5Cva#=iU#|!b# z7Gc5Jl{cnNB)E$?X$=$JJp-NZ9t;ElN5Q+d#J^!aw{lb%aIzZ7C~Nq?2GcS4KOuFT zKw$LR627hA=xA~*l}x1^DU}=rDLJ140VEh2g&8n9W(%o=XDj$QHL%8E%<7o2OP8-) z{p7Q2*B5VmxwL%qtF-CA=5T_I3Mpj)U7bdgg#y354rB*a(dz4?&NR?E$>At023m^N z18vu_H~j9vYS5Ls{28OdRIE!ve6-0kF^ouwVgL5Jjb=7^29RH_ah;57t3+cd*4B0rSotr(p;B zIUw8Uw`lx9^?r3P5^F|I)gz}KvrTTU&doIEiVe4sHx_CkZ(pcQ zZ>a|(0Z>>NIS*&EgNzPBR^19nO`Ik(fD5+-yGr1o?I5D7cF}UA%^}!vZQO$WE%PrC zd5-jMKO)_5KytlTnXZ4Z@9&vpb*hXp;A&T6uGHnvysu%L-FojIF%H#G=eIn!$KabM zG_FLS=^@zk>Xi(ktDD2UfG883Q|^dPHkeU&)PcM?<|=Ib^iCJ;S>go}0oNo-3Ee`% zLypt6SOXW!I=x-(TO09P7d1LY-S^ zL@xE{X6oEbBXX`CU}K?s?EZjb`Vc=_ZjMaVN2Y!lY);>*Pv2^c+^&6{X+*R4SO?>e zEFqo1@aaI(1T>UAq&Y5L9nVF@Pq9zR3BFVb{#{RSp&Z$b~wu1 zSxYnnXeJ$K-EpXcPmaO}AEK`WZOa8k=jbD;$(&vF)J-m1&@>(E-1O8Km%+vc#-)SL zZKpa^JFeg#;zKYv>|HiAF7K9PsDSWJ>lM}LMv?#iJKBCqC0Mi1nW+)eZ%0H1VUuKp zl4C&Zl4`@KzXwKJZyye!E7a;EAls-FLXp^mx%+d?Fjo(A&G2|VJl+T=o_zdESlEjX zHRD1(E;QoPwaD~dG~SGk)uUsL=y)wSZr%T4B4P$bu_P6-D4HP=3aMOye;(0{h~hUD zNp(g7q9|)wQ6wj6*fg=p2}<4p0!e6)*EV$;bWf4x-rAM**JcrV!TNO|chR4ourJse z4iEXazi7SdJ?*ctBdrK}|9p+*T0xXNS7Q?`*5?a7iMJ83)VJWf`~E8oGf|74{tHpTGXERL;p7JZ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/no_NO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/no_NO/__init__.py deleted file mode 100644 index e268814..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/no_NO/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``hu_HU`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Norway - """ - - license_formats = ( - # Classic format - "?? #####", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/no_NO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/no_NO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e063c27746ddb0f557f47ce335c0f93cdefd3931..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 651 zcmYLHJ&zMH5Vd!cT$KBWgbvXzLPFXiYXRNq#EA-Ma!7m>+f01xN!FL$^iv2ToNQP z6(sfqjeX(8ouwakbVGOk@p)cmm}6lBURjkZD;F4)8_r;=bTFBu6+C-AnFN_ic!tqn z5IB3ODxIJ?Sff#pT3ea}#;}Oan93wW&^VLEYHp<}pv<^M18NFm zrO)`XV*Vs7h)_s72=Lk>_0CFWN#{%^Zz}t#vo1HBHp%S+|%w&RvL2!-d z+?r2h)#z~jo~0^BW|d7b=kM67o5ZPiiiu^pOtf;(Zo!GNELvc(V3|B&<Op@Yrb&28tdd`jteGWy-y OroC^&yMKs_?Xkb+#kBPR diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pl_PL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/pl_PL/__init__.py deleted file mode 100644 index 0ecd733..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pl_PL/__init__.py +++ /dev/null @@ -1,39 +0,0 @@ -from typing import List - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``pl_PL`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Poland - """ - - license_formats = ( - "?? #####", - "?? ####?", - "?? ###??", - "?? #?###", - "?? #??##", - "??? ?###", - "??? ##??", - "??? #?##", - "??? ##?#", - "??? #??#", - "??? ??##", - "??? #####", - "??? ####?", - "??? ###??", - ) - - def license_plate_regex_formats(self) -> List[str]: - """Return a regex for matching license plates. - - .. warning:: - This is technically not a method that generates fake data, and it - should not be part of the public API. User should refrain from using - this method. - """ - return [plate.replace("?", "[A-Z]").replace("#", "[0-9]") for plate in self.license_formats] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pl_PL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/pl_PL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a52d0751b18bde1e74913b61f38ce9748f2a16c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1503 zcmaJ>L2MgE6rEY`+QyLD;y?sFFeOzbi+UHD0}v3a2qaXgYAhO%Fp4IVow2>i?#?nh zPGYN-a_AAM{P}<0{6Bxc zUsz}$Bi}T(f3G0)YcZKAXEvT(0dRyk;y6Mv?qQ6$#Ve5&S9&%^7Wx2j`!?c^uRBB3D%|SXydoS? zeGzPZ3(m58wXxH#D#LJccr{KV5sO3&?A)uxXd?Ht&>m_#lfOSKI1)x6!(zWET+DPZ43hzg!ayV$ zl(oqBtbV43u1ofqN?^~*N|AiC2(ms5GXg&?f?*Ou(W5a*Bs>uk3q6#a=poZ&AQAzU z6dCEW9YHwL>@tBel2D%wmJQ`7;)VYfa9~Ok*@p;#M_WLRtah)ue^)&}*HyHriI+oL!y5Lxyx@c})q(LLk6q zXCmt7&NL|||Ad?#ctaTrPfMT|vwd&91kiWeBG6tO21-JE6q7BfJ$F|myIvG-dFdEZ zlPtThU-7a~i%!ad9X1e|XR@QbvZpfdX`^{XXL*!{NvJ7x({X;jWL)qv{UY{D_LGZ1 zqiBEke|EhLSIOQ4b%2grsEgO}qqX4STJUp|ec*C|a{EGW$zl*W>epowYz9HpO)STwWLDCIJs zR6Prh$~^JB0!^-3fbOCb&`33nGM}76RRLrK)NS;K=i{zL{8zW)GCYLHz3 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_BR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_BR/__init__.py deleted file mode 100644 index c844620..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_BR/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``pt_BR`` locale.""" - - license_formats = ("???-#?##",) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_BR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_BR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7b36d945ba67a6362a2c65f8f0bfafbbf994956c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 553 zcmYLGJx|*}7{0R|h*F|Rs4yF)s^lR#0V_0u1+h?6b@FmKd~b*opU<2x5n%#}|G;lR ztVsL_7S>v-RH;)pq|k+_=Zh&fywCI8`=R&avDs{(^4&K^4+ef)QJGqW^UsFdAdWar zkiemXk%JBpcdik4!MSr6aUq_0LG6!YRDg^6v69o6gNmvu7H}oz9}T%dfI`es=x`jm z+zGvz8+fWLcd>mavIGRA+Gi6jh1BsB{H&_!52W(@{Y=ySZ~eZX$cQD-4e&+1*XwoK zy>|O3s1j8qIuct>m?aV z0YpnZ1i{Y9_cvnZ8$qOrh$AIUV^*9yqLHDjJ#jPXy@d0BGtr>EA&Uu4jx{R63nmMs7P diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_PT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_PT/__init__.py deleted file mode 100644 index cd8fee4..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_PT/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``pt_PT`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Portugal - """ - - license_formats = ( - "##-##-??", - "##-??-##", - "??-##-##", - # New format since March 2020 - "??-##-??", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_PT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/pt_PT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9d0995dfb48431891967cce4dd43579924f183e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 683 zcmYjPF^|(Q6tuc#7Wlea_3X^Z9+*-|wR)KKIYwV}!mtu}j?@Ztq)i zfjHtgM+Htjj6C!daqk>)AG}X~TbJT>C+hz2tcq|QjFnso4l3JqabUM_vAu2K0s%@f zN2$kg>T@scto^8?ns%EH&x$IC0!kCIrICd+Vg+Hf>lsd^3MZ4w(DBJ+66P{vImG>b zXyb)kstojDt4876m`WcK0%iPKEJOuduvn@YX%u-0bCKmh70iS-iWwnGTII}urgBQh zQkmt9<*swo*#rj%Bl{$YV@YDgCUEc{OOoTLTL+YutN=>uKBa}^OS=oL_b7d}WclvR z4NAGp?D8-d8I&5R{jq`>{Sj>&pRV4Lxh#MfY35L{H{|4+Sa;7LGo%oilGYX{PNgC7 z3d$A9#VM)QW-iM|@q>p%3j?EyWeYX~O{Q!Cid=iC$v=aMbCggjN?|CCtF^lgmpb-5 zdSKHz`ssDM!R4TLxA*S3x@nhO!Exl*Evs)m`Fm&fpl%FQGiPn_o@H0TQR~TLHMFvs b3w_6?OCMwW4UK;F2DtZic<(o|=sx=c+QPg! diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ro_RO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ro_RO/__init__.py deleted file mode 100644 index f5e4c44..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ro_RO/__init__.py +++ /dev/null @@ -1,66 +0,0 @@ -import string - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ro_RO`` locale.""" - - license_plate_prefix = ( - "AB", - "AG", - "AR", - "B", - "BC", - "BH", - "BN", - "BR", - "BT", - "BV", - "BZ", - "CJ", - "CL", - "CS", - "CT", - "CV", - "DB", - "DJ", - "GJ", - "GL", - "GR", - "HD", - "HR", - "IF", - "IL", - "IS", - "MH", - "MM", - "MS", - "NT", - "OT", - "PH", - "SB", - "SJ", - "SM", - "SV", - "TL", - "TM", - "TR", - "VL", - "VN", - "VS", - ) - - license_plate_suffix = ( - "-###-???", - "-##-???", - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - prefix: str = self.random_element(self.license_plate_prefix) - suffix = self.bothify( - self.random_element(self.license_plate_suffix), - letters=string.ascii_uppercase, - ) - return prefix + suffix diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ro_RO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ro_RO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4ffe64d14f6ea192e71b4b7badb72de8aea47052..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1321 zcmZ`(&2Jk;6rcU@+Oiy4qF|LOA`9tdjp7v)feLA())sCMNvqh(VK0;I?zq`>Kg{ep zs;yM?kV83gN-szpLE(t_C%DAw!DZoqggEqODea{ve&b!!6p4|3@4b0n^Y+b~{dI1x zOvL)Ry!V|-$Y0YE^#HFSj3fG#g_uvQY0di7ID=>;ue^4tYrR{Jdh0S znb>STlR*tBE#2nPzUMOTWIh=cMzKyWfgBM=EXgI7>`Ip6%9iRXR>4)7)|K7Dp=uQe zno;B^k_<1e2R)w!EKGE}pF}~Fc>7H6a%`W~jan*SzX7y> ztyF?|qXFCmHi0dm18f6UDmT6Wz69C;^bP2nh-pIK5`e9Rn43)ieEo9(x^?((Am_#g z0C^L!w}9KwwGrP&Y#X*V@^#?ff!sm-Hso#8vE4T0VQFP~d3j}RZEaYDB!pDsEa~&m zkwnAtB`!!b{qz@*BXU6Y&RTOPXlH%SHG&=Io)0A0XBU0O{=d1jGfufU%axR7w!Lhq zX4@(MNjlE!cpx802l5cwHo?cf-C`l*cEWU9_dSP&F|N|bzK+2u`YcHpj}0w-gWI7S z1(anspDyIibm~ldoOQkXY4J{!?0Vh7f6Z~fE6iG)a4)=@p0i`e^Ju@iN|gEXBW+S5=c|vkZ@xY$L4~zxl+qHVp&c+v z(=w$&m^M9fzF9>^j2 zO}#o%-(S>D)C&_!QZk`jEG#{apA)bwTtpfw{{$?}Ql#_O|NSA%8pNBhzdG+_X*H|( k8gIcM9zuKpWTHrt^gEgRo2)$7R;8trbML+&;M2%|0H1GQDF6Tf diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ru_RU/__init__.py deleted file mode 100644 index cce4ba0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ru_RU/__init__.py +++ /dev/null @@ -1,321 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``ru_RU`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Russia - - https://ru.wikipedia.org/wiki/Категории_транспортных_средств - """ - - license_plate_letters = ("A", "B", "E", "K", "M", "Н", "О", "Р", "С", "Т", "У", "Х") - - vehicle_categories = ( - "M", - "A", - "A1", - "B", - "B1", - "BE", - "C", - "C1", - "C1E", - "CE", - "D", - "D1", - "DE", - "Tm", - "Tb", - ) - - license_plate_suffix = ( - # Republic of Adygea - "01", - # Republic of Bashkortostan - "02", - "102", - # Republic of Buryatia - "03", - # Altai Republic - "04", - # Republic of Dagestan - "05", - # Republic of Ingushetia - "06", - # Kabardino-Balkar Republic - "07", - # Republic of Kalmykia - "08", - # Karachay-Cherkess Republic - "09", - # Republic of Karelia - "10", - # Komi Republic - "11", - # Mari El Republic - "12", - # Republic of Mordovia - "13", - "113", - # Sakha Republic - "14", - # Republic of North Ossetia–Alania - "15", - # Republic of Tatarstan - "16", - "116", - "716", - # Tuva Republic - "17", - # Udmurt Republic - "18", - # Republic of Khakassia - "19", - # Chechen Republic - "20", - "95", - # Chuvash Republic - "21", - "121", - # Altai Krai - "22", - # Krasnodar Krai - "23", - "93", - "123", - # Krasnoyarsk Krai - "24", - "84", - "88", - "124", - # Primorsky Krai - "25", - "125", - # Stavropol Krai - "26", - "126", - # Khabarovsk Krai - "27", - # Amur Oblast - "28", - # Arkhangelsk Oblast - "29", - # Astrakhan Oblast - "30", - # Belgorod Oblast - "31", - # Bryansk Oblast - "32", - # Vladimir Oblast - "33", - # Volgograd Oblast - "34", - "134", - # Vologda Oblast - "35", - # Voronezh Oblast - "36", - "136", - # Ivanovo Oblast - "37", - # Irkutsk Oblast - "38", - "85", - "38", - # Kaliningrad Oblast - "39", - "91", - # Kaluga Oblast - "40", - # Kamchatka Krai - "41", - "82", - # Kemerovo Oblast - "42", - "142", - # Kirov Oblast - "43", - # Kostroma Oblast - "44", - # Kurgan Oblast - "45", - # Kursk Oblast - "46", - # Leningrad Oblast - "47", - # Lipetsk Oblast - "48", - # Magadan Oblast - "49", - # Moscow Oblast - "50", - "90", - "150", - "190", - "750", - # Murmansk Oblast - "51", - # Nizhny Novgorod Oblast - "52", - "152", - # Novgorod Oblast - "53", - # Novosibirsk Oblast - "54", - "154", - # Omsk Oblast - "55", - # Orenburg Oblast - "56", - # Oryol Oblast - "57", - # Penza Oblast - "58", - # Perm Krai - "59", - "81", - "159", - # Pskov Oblast - "60", - # Rostov Oblast - "61", - "161", - # Ryazan Oblast - "62", - # Samara Oblast - "63", - "163", - "763", - # Saratov Oblast - "64", - "164", - # Sakhalin Oblast - "65", - # Sverdlovsk Oblast - "66", - "96", - "196", - # Smolensk Oblast - "67", - # Tambov Oblast - "68", - # Tver Oblast - "69", - # Tomsk Oblast - "70", - # Tula Oblast - "71", - # Tyumen Oblast - "72", - # Ulyanovsk Oblast - "73", - "173", - # Chelyabinsk Oblast - "74", - "174", - # Zabaykalsky Krai - "75", - "80", - # Yaroslavl Oblast - "76", - # Moscow - "77", - "97", - "99", - "177", - "197", - "199", - "777", - "799", - # St. Petersburg - "78", - "98", - "178", - "198", - # Jewish Autonomous Oblast - "79", - # Agin-Buryat Okrug / "Former Buryat Autonomous District of Aginskoye" - "80", - # Komi-Permyak Okrug / "Former Komi-Permyak Autonomous District" - "81", - # Republic of Crimea / De jure part of Ukraine as Autonomous Republic. Annexed by Russia in 2014. - "82", - # Koryak Okrug / "Former Koryak Autonomous District" - "82", - # Nenets Autonomous Okrug (Nenetsia) - "83", - # Taymyr Autonomous Okrug / "Former Taymyr (Dolgan-Nenets) Autonomous District" - "84", - # Ust-Orda Buryat Okrug / "Former Buryat Autonomous District of Ust-Ordynskoy" - "85", - # Khanty-Mansi Autonomous Okrug - "86", - "186", - # Chukotka Autonomous Okrug - "87", - # Evenk Autonomous Okrug / "Former Evenk Autonomous District" - "88", - # Yamalo-Nenets Autonomous Okrug - "89", - # Sevastopol / De jure part of Ukraine as City with special status. Annexed by Russia in 2014. - "92", - # Territories outside of the Russian Federation, - # served by the bodies of internal affairs of the Russian Federation, such as Baikonur - "94", - ) - - license_plate_formats = ( - # Private vehicle plate - "{{plate_letter}}{{plate_number}}{{plate_letter}}{{plate_letter}} {{plate_suffix}}", - # Public transport plate - "{{plate_letter}}{{plate_letter}}{{plate_number}} {{plate_suffix}}", - # Trailer plate - "{{plate_letter}}{{plate_letter}}{{plate_number_extra}} {{plate_suffix}}", - # Police forces vehicle plate - "{{plate_letter}}{{plate_number_extra}} {{plate_suffix}}", - # Military vehicle plate - "{{plate_number_extra}}{{plate_letter}}{{plate_letter}} {{plate_suffix}}", - # Diplomatic vehicles - "{{plate_number_special}} {{plate_suffix}}", - ) - - plate_number_formats = ("###",) - - plate_extra_formats = ("####",) - - plate_special_formats = ( - "00#CD#", - "00#D###", - "00#T###", - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - pattern: str = self.random_element(self.license_plate_formats) - return self.generator.parse(pattern) - - def plate_letter(self) -> str: - """Generate a letter for license plates.""" - return self.random_element(self.license_plate_letters) - - def plate_number(self) -> str: - """Generate a number for license plates.""" - return self.numerify(self.random_element(self.plate_number_formats)) - - def plate_number_extra(self) -> str: - """Generate extra numerical code for license plates.""" - return self.numerify(self.random_element(self.plate_extra_formats)) - - def plate_number_special(self) -> str: - """Generate a special code for license plates.""" - return self.numerify(self.random_element(self.plate_special_formats)) - - def plate_suffix(self) -> str: - """Generate a suffix code for license plates.""" - return self.random_element(self.license_plate_suffix) - - def vehicle_category(self) -> str: - """Generate a vehicle category code for license plates.""" - return self.random_element(self.vehicle_categories) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index dae06d2ec8a9822c1b8023b211d46eae9fe07235..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4254 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sk_SK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/sk_SK/__init__.py deleted file mode 100644 index b92bb17..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sk_SK/__init__.py +++ /dev/null @@ -1,100 +0,0 @@ -import string - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``sk_SK`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Slovakia - """ - - license_plate_prefix = [ - "BA", - "BL", - "BT", # Bratislava - "BB", # Banska Bystrica - "BJ", # Bardejov - "BN", # Banovce nad Bebravou - "BR", # Brezno - "BS", # Banska Stiavnica - "BY", # Bytca - "CA", # Cadca - "DK", # Dolny Kubin - "DS", # Dunajska Streda - "DT", # Detva - "GA", # Galanta - "GL", # Gelnica - "HC", # Hlohovec - "HE", # Humenne - "IL", # Ilava - "KA", # Krupina - "KE", # Kosice - "KK", # Kezmarok - "KM", # Kysucke Nove Mesto - "KN", # Komarno - "KS", # Kosice-okolie - "LC", # Lucenec - "LE", # Levoca - "LM", # Liptovsky Mikulas - "LV", # Levice - "MA", # Malacky - "MI", # Michalovce - "ML", # Medzilaborce - "MT", # Martin - "MY", # Myjava - "NR", # Nitra - "NM", # Nove Mesto nad Vahom - "NO", # Namestovo - "NZ", # Nove Zamky - "PB", # Povazska Bystrica - "PD", # Prievidza - "PE", # Partizanske - "PK", # Pezinok - "PN", # Piestany - "PO", # Presov - "PP", # Poprad - "PT", # Poltar - "PU", # Puchov - "RA", # Revuca - "RK", # Ruzomberok - "RS", # Rimavska Sobota - "RV", # Roznava - "SA", # Sala - "SB", # Sabinov - "SC", # Senec - "SE", # Senica - "SI", # Skalica - "SK", # Svidnik - "SL", # Stara Lubovna - "SN", # Spisska Nova Ves - "SO", # Sobrance - "SP", # Stropkov - "SV", # Snina - "TT", # Trnava - "TN", # Trencin - "TO", # Topolcany - "TR", # Turcianske Teplice - "TS", # Tvrdosin - "TV", # Trebisov - "VK", # Velky Krtis - "VT", # Vranov nad Toplou - "ZA", # Zilina - "ZC", # Zarnovica - "ZH", # Ziar nad Hronom - "ZM", # Zlate Moravce - "ZV", # Zvolen - ] - - license_plate_suffix = ("###??",) - - def license_plate(self) -> str: - """Generate a license plate.""" - prefix: str = self.random_element(self.license_plate_prefix) - suffix = self.bothify( - self.random_element(self.license_plate_suffix), - letters=string.ascii_uppercase, - ) - return prefix + suffix diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sk_SK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/sk_SK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f8facf3f3c840be36c86687e0bfa46dd2fd2681a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1543 zcmZ`(&u`pB6drqby{lEymME+siilAF;Ye8vI5k34ZGzIU$+E=DA}r{{wP!a@ytWy8 zLldQs_ZWAxn2bxOJZGXi

OeG&AoP*)%~ zU~52bAg-|n0!9PztB6^JeHFIVj!@SSx3&U8&Kj`RfZs%|Cj8C!LAFp^=%cj+LS74a zEnv0aYqdbgX?-Zvb>OVSw~iX?z_p-T$g@z-LY{>h7W@|KSje}KZz118Y#SJD*xInQ zQM(O{HtZe5ci^*uWdp~)4nkjc$58f4v$L~Tt_Y2@bihMbk&}=gIeBuL&VB+rB>QCR zyf+Vmbu>V^MP5gF;Nl%u?l+v>iuukOKW z5kuX3ahZh-1H*Jj4}6z}3FcD{P8}Oj4p^Epo*0_Az@5;G`jlnkEGF~dY|3cNS=YZM z$~U8Q)9>#7*PRTy(yd`O{jeu4I*IH1bP&f_HYZ_5K@<}fbcL4VXjwuc|1Xx|$sKbu z>N7J1I_o>P%=SpY%5E_?HT%BHBka{sK@(SdyrkVIDn~xoL z+v%~y>^j?wo1Y_4p-8o)DQiX(t5lr#-I7#y&4J+--`M(_D|7o(gwRjeydHL z)Qsbr@!cyYbBo7wiw|l`ceRJlJ%2d;)%3%$ODAJ9$73_!6i@Wa$NJ?5V++4dPMu87 z9Z$}kmdM0QXQVJuy{ny8$fepn?aMFjS75?v8WmBYG<5omQcel~D| z+*791i(E>%?1p#1L;-)F%MQOM{D!oCBAI-rhD^>@@+#N?`BN>GDt}#QDAU^g;tQv? zN~T|vLa|($xtBa9xH1HpY!vxNxI~5`Ca(Vb(2f2P_uzk8@=4|Gtm$`n4-UBt$rRXW bK~a=n$oL;*{;_sLQD*L6eEDx8g<ezw6t?ej^c31gLakU2r9!$PX8~JZxEC2@0izS>S8oj~dz zVCru`to#cW=98G1*op#6Cw#sX-tgZ0?B~zV-}BeKy)J6(OZW5;BlN?8tqZnsbKfSH zh$D`3RN&OZ$U{#N_bw3k!TapDbtztV;^3!eQH<;GrIIVbL1kMO7wi?zHU~CbB0wqT zDD^l_eeR{5wI6p>LwEl1SyAOsKxrbjG_sIJtRSkkoY7ROXgtAX4u?^{-yaT7;-C&GEm;AS)?G>q$(NRf*1MFREm^+Z*`bun%r5tGkwK|} z+QtiJ^e41wbhv&`=CS}{q?tp(-jUZgiB<0uGD8ZHDQTbWz(g97te{+xTuex{Hgj1% zN*+8US{N8qEL*S{XfkCBP~=7{P5ui=oMMDhQ3^w8QmviZ&UI`*df&PW^ver^@M<63 zJ^JuM-L^}v;3W3zHmmQ9{>{WT>c*^^f7BN5+Uz=f+-mYf^(<`Wt`Dud@-fEW(ct&3 P5FdT(-TQ-VbjSVzSJbrn diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sv_SE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/sv_SE/__init__.py deleted file mode 100644 index f875d2b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sv_SE/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``sv_SE`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Sweden - - https://www.transportstyrelsen.se/en/road/Vehicles/license-plates/ - """ - - license_formats = ( - # Classic format - "??? ###", - # New format - "??? ##?", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/sv_SE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/sv_SE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 72375d54477dfb0f04837fee6cbfd893f9dd21b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 732 zcmYLHv5pfl5Vd!cTompu2!Uu9MMBylYXRK}5m6vSb07s#Y~%RWlf;+Z^`7k{7w^^-5G!bcX`XRd~G{Zi<xH z9C4hY496Zu9(swmcY(MM-e2pxe3_P$V?isf}m(PgQ--(WTIDe{9-Z*Qkk$6qFyhs zHkM13fIh0xFqj)t=p#ZPkJe%#3gCi8Qq4$($UB&eBn7HqCbUt^2$|C&Wd<~rQ#xJ) zhurbrFs;|?$d=~1kjiMYQIKlOuEG96lw^Fzs!1vm$TbXWM&gJie|}z%|MeWTYw_F z=4)~@5#mNbC>6Odlt#tIjnBE3)uRusyFkCaPP=<`yM4d&@wK{Tk6giV=$Ca?-g*9i x$X2M^8&xf4UA%9z>+aLKC(l&h!fKK9J?pM~jPVaN{L?wao$vhzf02#u**|w<(aHb- diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/th_TH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/th_TH/__init__.py deleted file mode 100644 index 078c210..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/th_TH/__init__.py +++ /dev/null @@ -1,39 +0,0 @@ -import re - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``th_TH`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Thailand - """ - - license_formats = ( - "# ?? ####", - "# ?? ###", - "# ?? ##", - "# ?? #", - "?? ####", - "?? ###", - "?? ##", - "?? #", - "??? ###", - "??? ##", - "??? #", - "##-####", - ) - - thai_consonants = "กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรลวศษสหฬอฮ" - - def license_plate(self) -> str: - """Generate a license plate.""" - - temp = re.sub( - r"\?", - lambda x: self.random_element(self.thai_consonants), - self.random_element(self.license_formats), - ) - return self.numerify(temp) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/th_TH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/th_TH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 82ce273888dffef60fd56cf398f77be91e2af321..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1566 zcmZux&2QX96d!xNA6adh5FiC1HEy>DTq$b-v4(8O8KW}WzB8PA5s zB2s{bCQwMBl!WgBs%Qyt>S6u|E{$?X-TtH2EYt%E0;Mp^Q%sC;W7IOk0w_J;n z5C;uB-LxFn^6ezDQHlo2`sAcu28s$PjPiXH<$55>r#87Bh_Z={G%2Ju2@!!-0;x^* z%jIzyx!r*a5d3Yy-x2&>!8?M#C;0n z!LJJbnc&w1|6K45!8Zl}LhvsI|4Q($1^-6yZw3EO@auwqFZd6F|0wtk!G99`rr@^( z|5@-Y!G96_SHXXabCj?)_3H}!P)d0KvJJYIfn9={vIFgWTJ6*pq^+!?hGMIo!Wx=S z+wF)Rc5_FTeYn++nKsvXE60i>KBbZ z{1?Z-G^_%HAKK5M;gR*lwZ*%oNA8s-@0NylOJm!mvFqBdes)_wyHk3;o7aYmtJ+=> z4L`QNytceKy)$&`PT>?Cf)G9G5VDqiwl;O&()AsAEh= zz=_JY6;frCJ`U&>N z(ef8G)RCyDD3A^O21zu0G8a1EQkS}aIoO5Q-8ro^A)8Y~dm5p9T& zRpps3fmGHg;%e|R&|8_@eZieHIuGijY|>8|(_8^#eae_JV%ZFMpRu<~-i$Xl7!#&s z>?7I?<6NK9+9;sT_%9THPmg!NTW|`cqe_<6`2GVqF^=Xd&@0-=6WXp_ZS<4;(PP?4 z2M=3bp7A%((TbmerMsa!`rio}MyHHPEgfTdyAHO6F!B9#`#xNtUs0S)uTqrE?6Bf+ zeU!z05-bR`zjvtT^^1QV`+md9>}(JO)lHACr_Z)dJh!(z9d_8=_2DYU7=J@gfA8(# N+1K0m{~(`(>@RS9q@w@; diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/tr_TR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/tr_TR/__init__.py deleted file mode 100644 index 7b977a2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/tr_TR/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -import re - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``tr_TR`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Turkey - """ - - license_formats = ( - "## ? ####", - "## ? #####", - "## ?? ###", - "## ?? ####", - "## ??? ##", - "## ??? ###", - ) - ascii_uppercase_turkish = "ABCDEFGHIJKLMNOPRSTUVYZ" - - def license_plate(self) -> str: - """Generate a license plate.""" - temp = re.sub( - r"\?", - lambda x: self.random_element(self.ascii_uppercase_turkish), - self.random_element(self.license_formats), - ) - temp = temp.replace("##", "{:02d}", 1) - temp = temp.format(self.random_element(range(1, 82))) - return self.numerify(temp) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/tr_TR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/tr_TR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 28d31412e16b3b02b9279801cbb37b2f6280f383..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1643 zcmZux%}*Ow5P!Q~uZ?RkX0Q(H<%|=9r2edg!75LoXm7K$~OR12-zCQk7HZt#^SajI=ZJ=FPl$`OhgMzX7dvWEyFf`v+mh$LYNwpdCCNJMjpNZW`cY2pClIhDkw zP?S%(I)5qxFA72W0dpHBq0HdsnD{2A?oD8Oh@z4}Ae;!L1QAOTNtBXAqHf9i0*!#Il9570MWVF z^FnS2vF9Qxrdn^#QHMgUsG=*DX;8<5*5EZ$TjDp0@zQ&9%>8Ka|kaI zfb|MEFC`V`i()XqbceV$roGM#hIP*{O!VyNGm=~cj0coaw;waOkpR@r*K zrBz&;YQF1NsI5QJmSP3Qrb-Q8vrU7!(BI)=#q~9{L7j$XnJZeY=~rCmUG<$inrHfS ztfm`l`YQFbvc5){77vA|T}+A=j)sP@>6kvoYOVP^J!$Fo3el%pw;*RYs%ivYui@3n zaE`nwP|Hejvv~#iOC(lbgr4XOC{rc82D*P?sav5~0K8^@+Fdkj+z$ z?dbxrVmc5R4H8~`h4BX{$i>NEc5U7Ff)t}rG=m0m&k`g7-c=f;ow`k#S#B0Z#=9nv zd}`N1AeR+3z%BjpSz*;%Ls$P0zqw}vgX{m5ySCeCH%_wGo@VDxvV+Ijk)!O$W9e8K zKT^g!+4s6BX)v=Ron_GAYr7lmjs3fiZ#|jmuCp)$2xdg1&zElP|JL4d*|f>&qGpVSyRb_4b=@ Tuple[str, str]: - try: - if region_name is None: - region_name, _ = random.choice(list(self.license_region_data.items())) - - prefix, region_number = self.license_region_data[region_name] - return random.choice(prefix), region_number - except KeyError: - region_names = ", ".join(self.license_region_data.keys()) - raise KeyError(f"Keys name must be only {region_names}") - - def license_plate(self, region_name: Optional[str] = None, temporary_plate: bool = False) -> str: - """Generate a license plate. - - - If ``region_name`` is ``None`` (default), its value will be set to a random. - - If ``region_name`` is ``Kyiv``, will use this region in build of license plates. - - If ``temporary_plate`` is ``False`` (default), generate license plate AA0000AA format - - If ``temporary_plate`` is ``True``, generate temporary plate format 01 AA0000 - - 01 - 27 it's region number - - :sample: - :sample: region_name=None, temporary_plate=False - :sample: region_name=None, temporary_plate=True - :sample: region_name="Kyiv", temporary_plate=False - :sample: region_name="Kyiv", temporary_plate=True - """ - region, region_number = self.__get_random_region_code(region_name) - if temporary_plate: - return f"{region_number} {region}{self.plate_number()}" - - number = self.plate_number() - series = self.plate_letter_suffix() - return f"{region}{number}{series}" - - def plate_region_code(self, region_name: Optional[str] = None) -> str: - """ - Generate plate region number - - :sample: - :sample: region_name="Kyiv" - """ - _, region_number = self.__get_random_region_code(region_name) - return region_number - - def plate_letter_prefix(self, region_name: Optional[str] = None) -> str: - """ - Generate a letter for license plates. - - :sample: - :sample: region_name="Kyiv" - """ - letters, _ = self.__get_random_region_code(region_name) - return letters - - def plate_letter_suffix(self) -> str: - """ - Generate a end letter for license plates. - - :sample: - """ - return self.random_element(self.license_plate_suffix) - - def plate_number(self) -> str: - """ - Generate a number for license plates. - - :sample: - """ - return self.numerify(self.random_element(self.plate_number_formats)) - - def diplomatic_license_plate(self) -> str: - """ - Example: 'CDP 000' or 'DP 000 000' or 'S 000 000' format - - :sample: - """ - level = random.choice(("CDP", "DP", "S")) - country_code = self.random_number(3, fix_len=True) - car_number = self.random_number(3, fix_len=True) - if level == "CDP": - return f"{level} {country_code}" - return f"{level} {country_code} {car_number}" - - def vehicle_category(self) -> str: - """ - Generate a vehicle category code for license plates. - - :sample: - """ - return self.random_element(self.vehicle_categories) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/uk_UA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/uk_UA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7e08e2dfd71e6899f4c799628e7c07f51f5b8ada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7247 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/vi_VN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/vi_VN/__init__.py deleted file mode 100644 index f877249..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/vi_VN/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -import re - -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """Implement automotive provider for ``vi_VN`` locale. - - Sources: - - - https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Vietnam - """ - - license_formats = ("##?-#####",) - ascii_uppercase_vietnamese = "ABCDĐEFGHKLMNPSTUVXYZ" - - def license_plate(self) -> str: - """Generate a license plate.""" - temp = re.sub( - r"\?", - lambda x: self.random_element(self.ascii_uppercase_vietnamese), - self.random_element(self.license_formats), - ) - return self.numerify(temp) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/vi_VN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/vi_VN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 02ffb9cc5541c7a450fb9faaebdaa142639f045e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1372 zcmZux&2Jk;6rWkIKVmt}2VlOWc3Za+TPeE&%7G|KRlY(Bm`Vu|tdPc=opHR*elasP zwM8ULM52+9S|OqI$Pv^le*!lyiE>D^JpzZ`f?TAkC*H2TNf3R~zL_`gH*e;>_uKh> za>&$Lh2}i$D^?C81uY?}ZX=p!xd*us-cov4 zFFZ<&`Xh*mbR3s%@v!Ss#+?ynq!VW%!^@y{5knTH$Wkb_a#XQYnzQm$Wre0f^V_Ob z>=pDPR{`4pVcCy7=CeR*c1MPODBUj8qVXA8Gvr#M(RImMz0uIT(6K#cl*<~(O4#8J z6Z0c$PHRaSiFwmxf$_Dw=|+sYwh{6TGqKDy)^Z(>5zaPTA-OHxFd&gSt@8e__Q1&SZxN4hBdj zMVKVj8-5S!J1B)b@wT%fWmp&~zJr>WD%+(U)Xute#t*B7Gv;{uU>q~+(-sEY#Q$;M z;0(Ef^j!btB^EG9ooTk_xef~iR5~ev(O15_{+~3G6rO``I1lPayo+{l`y`RmgJAU; zNu4Wx*7FkD-7N=UVpo=m1v5+!TEW%`j zd;#t*UIO)GfbP-5s=i;iJmVEY69}I#1dcPi0|&_r5Jf zTnaiq<8HI3E4-2*RLT4(Eloq?lgY|twkK_6zxwPe&Hz*_fPxGCIW=>)yVE_Y%si~z zJgQ6|Rxa#UF8rh(YS;F)YX_CLhDCL{d`CSlqv_}GZtZN{Up<(*v{$;sryxLGFU2K7 z;BR4s#AQPKkapnDB5{R~uR69j_7n-Bp+g9tg-twpn;=oic~Y8RP#P*tAbkf?l`vgs zptjN9NV!rr2*pE8z*l_RtEkm r_)kxRW{&Q=$j^f#;dI)k;~d8LA)5FL%{?y6;@aNS#eWct>CS%vy(wBR diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_CN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_CN/__init__.py deleted file mode 100644 index 1982959..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_CN/__init__.py +++ /dev/null @@ -1,47 +0,0 @@ -from .. import Provider as AutomotiveProvider - - -class Provider(AutomotiveProvider): - """ - Implement automotive provider for `zh_CN` locale. - electric vehicles or downtown-restricted plates are not included - """ - - province_code = ( - "京", - "津", - "冀", - "晋", - "蒙", - "辽", - "吉", - "黑", - "沪", - "苏", - "浙", - "皖", - "闽", - "赣", - "鲁", - "豫", - "鄂", - "湘", - "粤", - "桂", - "琼", - "渝", - "川", - "贵", - "云", - "藏", - "陕", - "甘", - "青", - "宁", - "新", - ) - - def license_plate(self) -> str: - """Generate a license plate.""" - pattern: str = str(self.random_element(self.province_code)) + self.random_uppercase_letter() + "-#####" - return self.numerify(self.generator.parse(pattern)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_CN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/automotive/zh_CN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index eb599650e846018caa03163b3c0f2fa06935fdd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1416 zcmZuxO>7%Q6rNrG*1`meibbP{MMxkE;#GhXjgUf7Dh>oBdh(&u&CWR9ba!W&9S3YR zl0gxo>Y=5AIzg%s0wf>^l_(KVXvL`)F0p(FT8R^Ber`c2m!5btV+W=1B)@OI_cL!i z{>Hx*iv=WYwJ>`-h0vdh^j)Tp`%l55g9svqj{>7=8puSa5HS}JNl|kd`lMBjX1bi& zHDOsclKdN-&3S}!S0(#SCZ+9L;5vvx6G2sz7}XRpt7+ISQ!`0=AzjTjGvzFoTesQ; z3+&Y(@@YUrVL1)K0w%mUYDN7aR*iA%Y^#n>PMx)U<~lyDs4nVLS8&g@=4jn>eHvR( zNZ8wZ^(me-uPDG*6NoE@4VmEeCeXX zohwTkZ{5`S%NG>x{`{fBt(9+d{^BLg*L3~%Cs%b{NB8ZleXjY+ySo1SWz84fQ@Hih zqQdQ!FEsy5$G0#4qWO>46yEtk3J2AyR6@v04A2tHYy;?IlGNWfPo@642 z$FyuF>6rSpBo{fdHjL#t`Q>Rne3#h-=a#;=2Gqs`Ls#TPb)E8XGBS7O7S=-Ly#;g@@*lfROU$?5Lo zbZ?S$OJse9bxZ7n-0wq=T$;Zyzj*r7GfQVSM#j1$W7nVVjl9?!IgW8n5uhGG1HM(<{yF~--2p7HY!+#L9oc!W@Z-iS1Bfxe3S3!5iNDKKuDS`}6y{zdt~YeHom7#0dRxq;=gkZtq!e zfjHtgM+Htij6C!daqk>)AH2{0E-%6BPSpMBSr*|sc%kGLx%nBeqN4v*;>#wA19V8d} str: - """Generate an ABA routing transit number.""" - fed_num = self.random_int(min=1, max=12) - rand = self.numerify("######") - aba = f"{fed_num:02}{rand}" - - # calculate check digit - d = [int(n) for n in aba] - chk_digit = 3 * (d[0] + d[3] + d[6]) + 7 * (d[1] + d[4] + d[7]) + d[2] + d[5] - chk_digit = ceil(chk_digit / 10) * 10 - chk_digit - - return f"{aba}{chk_digit}" - - def bank_country(self) -> str: - """Generate the bank provider's ISO 3166-1 alpha-2 country code.""" - return self.country_code - - def bank(self) -> str: - """Generate a bank name.""" - if not hasattr(self, "banks"): - raise AttributeError( - f"The {self.__class__.__name__} provider does not have a 'banks' " - "attribute. Consider contributing to the project and " - " adding a 'banks' tuple to enable bank name generation." - ) - return self.random_element(self.banks) - - def bban(self) -> str: - """Generate a Basic Bank Account Number (BBAN).""" - temp = re.sub(r"\?", lambda x: self.random_element(ascii_uppercase), self.bban_format) - return self.numerify(temp) - - def iban(self) -> str: - """Generate an International Bank Account Number (IBAN).""" - bban = self.bban() - - check = bban + self.country_code + "00" - check_ = int("".join(self.ALPHA.get(c, c) for c in check)) - check_ = 98 - (check_ % 97) - check = str(check_).zfill(2) - - return self.country_code + check + bban - - def swift8(self, use_dataset: bool = False) -> str: - """Generate an 8-digit SWIFT code. - - This method uses |swift| under the hood with the ``length`` argument set - to ``8`` and with the ``primary`` argument omitted. All 8-digit SWIFT - codes already refer to the primary branch/office. - - :sample: - :sample: use_dataset=True - """ - return self.swift(length=8, use_dataset=use_dataset) - - def swift11(self, primary: bool = False, use_dataset: bool = False) -> str: - """Generate an 11-digit SWIFT code. - - This method uses |swift| under the hood with the ``length`` argument set - to ``11``. If ``primary`` is set to ``True``, the SWIFT code will always - end with ``'XXX'``. All 11-digit SWIFT codes use this convention to - refer to the primary branch/office. - - :sample: - :sample: use_dataset=True - """ - return self.swift(length=11, primary=primary, use_dataset=use_dataset) - - def swift( - self, - length: Optional[int] = None, - primary: bool = False, - use_dataset: bool = False, - ) -> str: - """Generate a SWIFT code. - - SWIFT codes, reading from left to right, are composed of a 4 alphabet - character bank code, a 2 alphabet character country code, a 2 - alphanumeric location code, and an optional 3 alphanumeric branch code. - This means SWIFT codes can only have 8 or 11 characters, so the value of - ``length`` can only be ``None`` or the integers ``8`` or ``11``. If the - value is ``None``, then a value of ``8`` or ``11`` will randomly be - assigned. - - Because all 8-digit SWIFT codes already refer to the primary branch or - office, the ``primary`` argument only has an effect if the value of - ``length`` is ``11``. If ``primary`` is ``True`` and ``length`` is - ``11``, the 11-digit SWIFT codes generated will always end in ``'XXX'`` - to denote that they belong to primary branches/offices. - - For extra authenticity, localized providers may opt to include SWIFT - bank codes, location codes, and branch codes used in their respective - locales. If ``use_dataset`` is ``True``, this method will generate SWIFT - codes based on those locale-specific codes if included. If those codes - were not included, then it will behave as if ``use_dataset`` were - ``False``, and in that mode, all those codes will just be randomly - generated as per the specification. - - :sample: - :sample: length=8 - :sample: length=8, use_dataset=True - :sample: length=11 - :sample: length=11, primary=True - :sample: length=11, use_dataset=True - :sample: length=11, primary=True, use_dataset=True - """ - if length is None: - length = self.random_element((8, 11)) - if length not in (8, 11): - raise AssertionError("length can only be 8 or 11") - - if use_dataset and hasattr(self, "swift_bank_codes"): - bank_code: str = self.random_element(self.swift_bank_codes) # type: ignore[attr-defined] - else: - bank_code = self.lexify("????", letters=string.ascii_uppercase) - - if use_dataset and hasattr(self, "swift_location_codes"): - location_code: str = self.random_element(self.swift_location_codes) # type: ignore[attr-defined] - else: - location_code = self.lexify("??", letters=string.ascii_uppercase + string.digits) - - if length == 8: - return bank_code + self.country_code + location_code - - if primary: - branch_code = "XXX" - elif use_dataset and hasattr(self, "swift_branch_codes"): - branch_code = self.random_element(self.swift_branch_codes) # type: ignore[attr-defined] - else: - branch_code = self.lexify("???", letters=string.ascii_uppercase + string.digits) - - return bank_code + self.country_code + location_code + branch_code diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 98a40f2e1c26a8e959858ff7fe9d7625b82b6c32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8975 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/az_AZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/az_AZ/__init__.py deleted file mode 100644 index 6dfda54..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/az_AZ/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``az_AZ`` locale.""" - - bban_format = "????####################" - country_code = "AZ" - - banks = ( - "AccessBank", - "AFB Bank", - "Azərbaycan Sənaye Bankı", - "Azər Türk Bank", - "Bank Avrasiya", - "Bank BTB", - "Bank Melli Iran", - "Bank of Baku", - "Bank Respublika", - "Expressbank", - "Günay Bank", - "Kapital Bank", - "MuğanBank", - "Naxçıvan Bank", - "National Bank of Pakistan", - "PAŞA Bank", - "Premium Bank", - "Rabitəbank", - "TuranBank", - "Unibank", - "VTB Bank", - "Xalq Bank", - "Yapıkredi Bank Azərbaycan", - "Yelo Bank", - "Ziraat Bank Azərbaycan", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/az_AZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/az_AZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 620cfa9df32b9902a522c3eb37c83e5b98e610ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1000 zcmZuwO>5LZ7@lN5y4~)gwqkAd5D=6FyFop85hV+?l-gx!SFyRwPLipe=ChMzX@Z9e zJ@^kwFM1U5RPfka*F*6SXh0A=c`H;eJvlQ;LC`t8^SmF=`#wzGd~P=DfS-@`&D9bB zKZH}5N^zgwWMB_iz>*x`O1dlo87u%x-UU_(%O4nzA6-hyt;$cC!IqTOdek2h3sX}h z3nLZx>2(J70A?f$=&~j0B}>-JR!Of|WxbkIT2;#1rgMvK;9wVfkzydvR)V6dvhGu5 zFhD8P^ua)Jd=ojionC#!&W-<^OxE<)Ojg%S6Nh1kwMuK+G3`_P+}ra zSv}tOP=ZBrbP!)WPb>YSLu!j~+T=_{8&VXK1f@0McKV(4f}g zkKTnN*;)z5@FTT7#NJSKh@l2awBdXA z+IQ}%A&Kx@fJ_^`z@fU1Y)sYjT?|z|Q5CzWLP$IkLD&uwvBAQWnUe4dGrQnx`TqCG z+dE5NrlxnEoRnvq)mQU$lBGmpw^hn=l!>)rBE?TcFYyXdHpS3c?Lq!P4=L};|ElmZ YGbbfUlD>gkzp9E str: - return super(self.__class__, self).swift8(use_dataset=use_dataset) - - def swift11(self, primary: bool = False, use_dataset: bool = True) -> str: - return super(self.__class__, self).swift11(primary=primary, use_dataset=use_dataset) - - def swift(self, length: Optional[int] = None, primary: bool = False, use_dataset: bool = True) -> str: - return super(self.__class__, self).swift(length=length, primary=primary, use_dataset=use_dataset) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 53240bf4421252fc46185b527544ea5b44be5f05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2161 zcmb7F&2Jk;6rb^~Kl0(Yr4!gWt$f1Z_K;?j1ZoQ&{#DPQpgi2hDa;a8uLL7Qa6e_Bocr$B5T5;(}{_UIhG4K7} z&RhQykB=g@ejZ)B7)9t0z8OGx@I0Ob;Vv?efi2X*4UCZyG6XBs5gH;!AvB8&@isET zM0_9wF%4lWl8QcNn-unA<*sKswq`vJ4HOmXY?ub2df*=5$Y6842f~+-k)Q@PP$N`_ z%niW^HAE675kt5Jc0+7Ljc_AoL>eQ;gb^j9MvR18;vQ;YW8`+cF=ix;QP2)85pEd+ z%eZmM7$7h#pP0e0Ub_X<) zEr%voR+_dd=T=sdmZNJHN%IKB=~11ySNVn=aVgpMysmpyk~U43q;;nwtu`fh(`&IJ(M8>&dXVbN&zstz%74@Cef@)Y1AvleCw zAQyPlT((&E#kp(=e2TN|w4%&vDCW3a&Or^u8k0-hTH@A{T!ETPQ&UV|l_4)6M3qY{ zZ>7roE7cwt@AwM9xA-pdh8DDg)=qj3^gHOQF@$#T5BLENRB$On zr4*(zY*T_Cc6(hy{Sj5wEzNaR)sOJobOmgpORN@mq%+{{vdqck?z3&F?R1FbIbNG| zv|CbbD8OK@5#5tIrcNEW-h9(^JSn|F>n^JenYdiM)>CB|$njX2-)%10374B_I zTPIW+&V(zmTPpFHkW|&QO;1(R-7Pu`HEbs!5&r_DgIX6@b#DSZ-9^78&fclrz4^_} z`?X&anf>*CB6E&NDf!H)cBmzo`oZt0B7aET!Bwq6C{W!kzEg2oQo9yB&Y=i!V& zcj+{fS?~NPuQZcMi8RlY|9SY29~I*8jh~26#l)CFSs7{6RN7&w&Q8+PlwIJ zxbF09k8Y{#`|6+N#8mc?W)58G`mY4qCe>`cJb3jG1)}-^<@u zzAG}1HN5{p@a!)(213jHn_G@J@}BboOR2CQ@wU3Ay&A9#>h{NFnBn0o{T>AY?1Ddw nT?<~w$5ewYBki6CI216(zoYYiqKkh;iWslqy`3kB3q1HAWUM)L diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/cs_CZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/cs_CZ/__init__.py deleted file mode 100644 index 7ea79ab..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/cs_CZ/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``cs_CZ`` locale. - - https://www.mbank.cz/informace-k-produktum/info/ucty/cislo-uctu-iban.html - """ - - bban_format = "####################" - country_code = "CZ" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/cs_CZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/cs_CZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f5e47e3dcea6149cc7923cc058735b09e86d5e51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmZuuv5wR*5Ve!tyH(glLVJQMBO!rOBo@#iM8OpZfld@uX}nq6M{BX+NLIpxOqdAs5J-5Fn?~9yX_#pV%j!af0Glv_nJ6`~uxy)yyZ^Dy zIf{>iy>3EjnMgrt=TRzww&?Mc(sxZ#3@`hXa>by0V+qXE?qRwqQ%z}fOPS*0Gurl= zTy03Iq##C_RLJB#d27jY>@#XjVowHYZ z26fwY9Jt*Mb<=0S2pig4>uKL%+in87nmpOb@>Jh~v_F1*0PfPo82>=`|LpDK!%rXn IA_#WsA4`d|)&Kwi diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/da_DK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/da_DK/__init__.py deleted file mode 100644 index 977b916..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/da_DK/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``da_DK`` locale.""" - - bban_format = "################" - country_code = "DK" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/da_DK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/da_DK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7ea942a9cebe0e02a8d0276c89b76d2469fd2f6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmZ8ey>1gh5Z=8zCzi4E14yJiDG|s;yb3AOAc`mwLPilqs%ysU+YP?>_V(CYTd_rv zNGb9Lc?LvF%?t1Xa1s&{6O`?MNzq&Q9(DPJAX~%Ty8@jm^Z@?LB8j zV&!hm<1v3H3wFxK(y;pp3sw!x+=L7u$r20D%V%yc&IH&=v5w}7d=CzOKHRzJe|z-g z@{Q?W%w-&R{c?%Q_93cackVw-yUK8BYl!ZeFP1BLX*Q8oA5=U>bL&$|e~@Q?Rsy

1gh5Z=8z2g}$Hl1QXH2?TNxuR;nM6e(#U1d1qJT{B+aZt%sox5wVv!WKm$ zrN|rP8KSh*c>!JkPKp$XiVn%pq+)J;Y1m@s`(|gq`PpxsPK#9MYwP$L-A_kq)2RL8 z1%eAAh@dG^H1a6%$N>@F84S zA}UDa2^#srivr@7nGJ_L8;5zV7#?X84hBNPUVktMQyueE_U5b4 z{yU|&*FWs8ludw)D+y4x0F)M!w8CwGPZOTjHxB@Wjxqdjh_wJKC~nJktS6Z@Gl;d2 zmt;|Oe>Z0%tt7MBj-=wBS^pm3#K$tWOeL|=*sLQ%ZCP(BvnflHA1gh5Z=499m_uwaS{*`#YqT|i+BYTG>F0$5J-q3Oj2C4Uf+)6jqi4yy*-0Z z6hTVC8{`FOB3eqil)M0(goH#z7b(!BV()Tkvc=3dJ2T(R&g{2lvxc(srM4$+gns8n zAMkKY1M;uTZW zJNc^oF(`MP3M~Zg2va%5;pv0By_`0dFEw~g}s!zEBcT4fv$uXqW9celnLa^Ch zNUMYh8Ui6{jgU~XILL5=ko}kjg=c{fCVg{VADYJyGrW-MwBgHGXf-FkWRRAPXA&Kw zGgB9xCwMGFz*_1tg!CPLa|z5|_rTXUtRl{Lhza3>YeG8HdA|8vluRd4Hitv>qx9%k>(0UY_oW*L z8>f|Kv-07oS~RXaaI@{C7btC*X-!O%`R7yDvWPsaWzc!`@x_3isBF>MZ;Y0WICU(` T`ibuStt?xWkMI8>qw=i(k>l%_ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_DE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/de_DE/__init__.py deleted file mode 100644 index 2ca16fd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_DE/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``de_DE`` locale. - - Source for rules for swift location codes: - - - https://www.ebics.de/de/datenformate - """ - - bban_format = "##################" - country_code = "DE" - - first_place = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "23456789" - second_place = "ABCDEFGHIJKLMNPQRSTUVWXYZ" + "0123456789" - swift_location_codes = [] - for i in first_place: - for j in second_place: - swift_location_codes.append(str(i) + str(j)) - swift_location_codes = tuple(swift_location_codes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/de_DE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/de_DE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1428adbf1f789502fbe2e8ad8ff990891519a6f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmZWoTTc@~6rS1bWho1WOP~poEMO#!p(`L)F9}#g1Q7&po0ws{Go@R)7k8)BHa_sc z0}sUb#$S-|qS1fh3&a?kO-xLD@{NnW_~h)iO)yS2=X~GHw`b;@GxMpbDF*!UF_zOf z0Dc6dX2LapcA0@afB}YiU_ga~fCIAtbK3y(ggfA?It7+OiSSPr1tg#+EIHPuj)|ky zq6AK;k+U}p>;VE4h=IaksPLFmLYP;=IHW{ySc$F!MIezBc%A@2X&_OCdKrolA=i06 zWEFFOh@{~Fo@22(E3?TuhG6$n2<%=7u@p!X5$f}bP>Lj?j-N{T^_*eni9t*%rB!o7 zvTK=08OxE@)-XY-nYA@3Z)s|tBx5m&jTNilXe3ZLg*|l%e5kBco&E6JFoHnsbt?gLTnjqS+G=GF5{hHxMy5?A{ zM*&G&R8DRZb5qXiY1uB(tYr=-2Zv-=r)0oZwGDNhxN=6_AdXybtSkF{X2oZXl@ZcS zog$R9OTl#rOo*Mt)tT7_CtNrz95;iu{;l~+Tj$oo_txt^y1BJb>FPcV#VbwmQ^18M zc3`EY`xL;2iJhs6D18BG07K?c#&PINr zlS1fMEF>h8@SXDjRuM&1GLa>zvV>$biKyH~G{xk%;3tkMwbG@`Zy8`oigGia(=;ga z^jMh?Dd9V(0jwehP86v!mDCiK)ih118JbqJtxPHFiLmXFDa$pP#cW@xYIa?5lc>s^ z<0+L2Gs)y^rJ|UQu9>Xd9zM7KiR8)IQn5WW#^#x3E908!8#*w%-p-GiZcXds!5bc< zMqh|>6M^T5r0v1mu5Vb$b@tBm*v!mSl)Gm%HK7hpL81I9|HylMi+|$p75*w*;_t#m zzR5rE^~U0gJu<0Z+<$#{d8T diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_GB/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_GB/__init__.py deleted file mode 100644 index 15756eb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_GB/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``en_GB`` locale.""" - - bban_format = "????##############" - country_code = "GB" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_GB/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_GB/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b42739fdcd17308b41852653b835fc60badb7708..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmY*Wy>1gh5Z=8z2g}$Xl1QXH2`R`$yaEau1dt=y?G+2?>dc4$07@Vs?Elm}2Ie+1YRYzVvz>;^b53>@%954sWH^fb}7Q zD=*(c`gU5-DfEG z{*yWw4Nv+zbsM1IN&?g!0Hwt|ceo31KIeJ!asxo<6vHf+Jh!9!MM zRvwi+o$=SQVyAp24cpFGF*h>vGctgz$SlC1T>8y;6=5gUZB&=!TlDzH?%})VU-#}_ zyf8hC`HYi(SZ`3>9U>cc=PzQqF2kqYLUi4JvRTPfa|c~_qG})2?~qdZo!tMk6VZeB KZ~qcB{?|Wo&X*?u diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IE/__init__.py deleted file mode 100644 index 99793af..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IE/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``en_IE`` locale.""" - - bban_format = "#######################" - country_code = "IE" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index eacf82bbcff63960090711c51f557d5561f404eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmZuuziS&Y6qfGJiE-_Q{D5RUD72Uoi?l7tWOY&tZM zA^$=ChS0VDLZ|)%?Lnc?sawJAlBw_H%N7mqeV_F7z4u99JDnD(*5}sQ7fin#sY9dA zi>C-~h#-QdMA68j#3M&UcvnRD();8u>moV}x{co+vMw!~?~I-%LYlZ%af#Msv4h}- zND@&&B2UoB7hV(yKWbDWrjnfR_EnxrB{Lfic{UF7S}{D)CL9c82K~dqAWU`4Q`wtu zKY4hSUjOj8yHYj*GOi>**#b~nOwtOs0nR5ptxr|~gpP6h(GXh#Hd5S{?O0DTYi1B@ zA#cf|GI2L&BdsK}+K!~+7wr8#K;vgJwoE0l(KxdsLv2}aDzhm|lOfAzcBHeHy}cK# zNUYq=c|7K)vS25CEDgIiTCmDDb4D3Jk|h?Pm(SeuxDenZ#Ttey@;%u9x$*qtn{S)j zmv2o6_guws*Dsf-Y`;b|oX&lVX;&4l>@lLd=E3qwUYT{I)jt(m82 str: - """Generate a bank name.""" - return self.random_element(self.banks) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 19242c48f35e619949cd6255918956f3162da00c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1372 zcmZ8h&2Jk;6rWvxbmPP^kVGJHS#oG)q3#OW1Bwt5c1UZ|x)p9K;mc&aJFX|*oi#J# z5U+aZAqS4!a)lFuUimM$fH)wngoMP2TTsfSr@q;l1=O+p-n_5h%)XELsoicNy?$&R z|4>Kh&r-0YVfp1%*qoyn#ZH1!XY4x2MYmAwo}su#-Dfr9H+EL_ZsRW(q^?tV_eFNX zVk#nwQZjAS>(U2ujwl*CF&ewEGp@z%xDIfQsTf`3B(QOJ1oy$SGNN7sA@+XAP z{e?yLr&_X!69Lijx2 z>BE%;NlHlrnZWguapSXXg?lGdNJ^yD-e2-#GVzB*v5Z@UeA{XXkNpt?Ql7H)kb}=F zXLt|$_pEuOh@!8U*FHXF_NWa2iD$%K$Lo)JCa%+GYUTfjoqPLzYuelg|Ad^T%(!kG zP^fct%eCA42Yq8`4f^mi`?bM-&u%*d?Qy__RL0hZBrGKmBW{06(sb!x^$#JdDHBG! zc}N5&ip*_xUjun5{6{OfvYM^K49q^%1Cmn}p*c1z;Jpq#qGqNh_Uqqz zKvI@)68m?dZwXf{F`3J~&#B2*(G*lI1&jm1X`>jT^ zXV!BBGn4P!q8t(lJ3R4z|42Gu^CYcI@6UtA*giXT5O3gBUBY5xqP%=fYFGw^ekEsl& zWKKm`O`Ht%!7xoQaUq6@VG845u`23XpSR(pa^?dqUWZ%BH-S7we{{Bf>+Js0+5P6` zcYELN{n`nB_JT_=p<(w*;bE*l6yu_Wahk=;MDI5+{$fd>8l~k5#&H&5EIbG*YElWY z4!iG>*Z?N str: - """Generate a Basic Bank Account Number (BBAN). - - .. warning:: - Philippine bank accounts do not have BBANs or IBANs, so any number - generated by this method is a purely hypothetical number. Local bank - account numbers are typically 10 or 12 digits long, so the BBAN - format used in this implementation has been arbitrarily set to 16 - digits to simulate a hypothetical standardization of account numbers. - Using this method will log a warning regarding the hypotheticality of - the result. - """ - logger.warning("Numbers generated by this method are purely hypothetical.") - return super().bban() - - def iban(self) -> str: - """Generate an International Bank Account Number (IBAN). - - .. warning:: - Philippine bank accounts do not have BBANs or IBANs, so any number - generated by this method is a purely hypothetical number. This method - uses hypothetical PH BBANs and the PH country code as inputs to the - IBAN generation algorithm. Using this method will log a warning - regarding the hypotheticality of the result. - """ - logger.warning("Numbers generated by this method are purely hypothetical.") - return super().iban() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/en_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/en_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 474ecef4086b0e31262bebce6f0efc31bc585f59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2787 zcmdT`L2nyH6rQ!$j-4iHRU%qN5RC)}ET~O_D6~R|teeCpiL;IEHu$nxd&l-B>s>QD zPU@&a5voKYgy4e8U#NQJFL2^g1QM`tsDwCh3rZ`ho_KF|-8xk(I3cmpzIpTJ?Kf{` zzV~*%9UmVh_+)bK~4&Jwqk zP^%?lWRY0$8^lss{B}ID#`;Po@dtKF86`;R+}pM-#v9>qC?j8Tv<&@EAOc2eibZNM zOR2@JSWUI!wS=YCl2)QNVkK)SYlNknv3=51tkjLM+UQU}4gC}QdFZI$QAS|uUuLtUi zrp=?QfX_++k@YzZX3+~})C(0Uub?bxDj!ZSqSiWz)pn-bue(C zTqmE66LLE;08e7(#TX%r%w^mZjG9z4eY*h?$THVxcs*cFsn@A9PG8Zqxl$%OI!dD_ zo25G@cWt+I@!}&RjOlILvAbQ{Wg+Rz5XYyMM_o_QwzU-35`_z?l z4WqT9*eqJ_Q_;44+F_#YSrjyrc6*#TecJAKJ<(>u1|CNkS-Om@mLUw|MbSiFfWa9R z{Vsk9Kr^pnOf$38vRk(BAv4^T3=Ys`%)?NSL>*Jmp3fi}Hw?}mB%CR1&xN)6w9c3d z)6{LjO>V;^J`+@UbmsgpSTrHneY?|h!qYgmE?=0gWpc~j4Y9o@ePS`$VZf>nCv$Aa zc5KIi6}4dBqJyKHwGdG{vSZt5i$3+5!+^L2ocTRRJf7#_g^(RSedamg20!JPvcUc% z1k++X7>U9O5`M1>eYFnN>Q*dJedaWSv|%(H)AtR-2d)yj_i#7Y_Bt#l@XR~rwOnPO zK$YEO4Uy~E4emj)lbyOJa@lR>Zs#1kp6m93J?<^xq`d zFw{TgnvCtq1mlZ9nvBW|(C{J(`~w844ZP!cZHRJ$ui_ZqV}{6yPIdGdkaO~xjSgW8=29vT-WFHlZEUr;{1!EehgVGSBTTCp=0>`mJ z$RoT(LQp)dhpBhM4SrYN3UNXHs~`^JilY2NCVnRu?xv^q&-|F4`Yt{7)!W~vU*1dJ QOEN{7-oJjIU@O7?2GpJ;p8x;= diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_AR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/es_AR/__init__.py deleted file mode 100644 index 089026a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_AR/__init__.py +++ /dev/null @@ -1,32 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``es_AR`` locale. - source: https://www.bcra.gob.ar/SistemasFinancierosYdePagos/Activos.asp""" - - bban_format = "????####################" - country_code = "AR" - - banks = ( - "Banco de la Nación Argentina", - "Banco Santander", - "Banco de Galicia y Buenos Aires", - "Banco de la Provincia de Buenos Aires", - "BBVA Argentina", - "Banco Macro", - "HSBC Bank Argentina", - "Banco Ciudad de Buenos Aires", - "Banco Credicoop", - "Industrial And Commercial Bank Of China", - "Citibank", - "Banco Patagonia", - "Banco de la Provincia de Córdoba", - "Banco Supervielle", - "Nuevo Banco de Santa Fe", - "Banco Hipotecario S. A.", - "Banco Itaú Argentina", - "Banco de Inversión y Comercio Exterior (BICE)", - "Banco Comafi", - "BSE - Banco Santiago del Estero", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_AR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/es_AR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f88395b8cca9e143f5bce27f026e6d1e179e787a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1191 zcmZux&2JPp6!*-25QPL<1q2eQ>IwnfL&hrH5CZM47Fe}}h((pyi{lwPS+g_tV0$*~ zhyzF*`XBH&R6WvDuQ~P~s7C6kr*aAky>Q~q%#!l;4sV|QzJBj#d;VNqT}Gw+zWnf2 z1EGJa#X_|f-@}Vwyg(drFGh(s_C4gITZsG55pM|pH^?hx?9H2<*1tZO9j{p0GI}Pt zFj3`PC~xsSTnFO?5|G5v*yrB3!ToWQH^wdA9JlAKPTQ1a^Z77IW045uaLCjYr;Dn1 zM;pAoEiCQc+up{pj#w;$Wej3qNrrO{tiQ zq%hh(;9`sIYD>D2lQV4tX4Cxa4UqF+kizfY>zvBI0en5EpfMLXW_XiDa{r~mU9$^t zp?H3>c8{2HOaT@7w@2}}SS%yS@ErFtp|r(aX@t!$90fqZia|ig$_5{Wo#^#`?takd zc%62KMMmdqw@1A`hMnmL5$knCUuK-~&+09J_Kn~&(mKsA4HeI;#lD`1{_lKj`Eubr58xUZz1cZdEK#ahA}B4E zDNQub;?iEB^ijs*h36QhTt~2dJPetlaD5Zzij_!b%9%NhG#5n+JX8BCIt0+@ZB8Zt zkvQ!pa9tmh`|k}P@}YZP%{$Ckfd`r(dtU@!)0Qn6B{XurfgSO zvcsmr5J;-trX^)ZQoSNVsZ`QY8l>~;?NzD?NbEUK&(Uk&Yu)t@+GuU#>5qS{oq77x zLG$!#``N&p1b-F1*=ZEDRg^4Ft0RYtZ%&jERoGWxyy diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/es_ES/__init__.py deleted file mode 100644 index 16622ba..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_ES/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``es_ES`` locale.""" - - bban_format = "####################" - country_code = "ES" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 30b0347155a9d082e495e5652bfb145347015458..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 567 zcmZuuF>4z!6qfGJiE-_eCV^%=D75hqi?&0T(xDJSNeO{;y5(6uDe=Xp(^V&%+H^=D zL;gX2L+F}c(6xV{JqQFcbt|}CGWDH&*`ndS?~|Us_de-Ir_& zKSyvu1Q9ePibftK9@!znJ0rrE-Zy_y7tv|ZZT$9-b!pk$H+qr?Y2sSNC0djD27(JB zNkj#SJV7I0cu^qys8NZSN^-XKLFK7bGPB`;XQME$6~jYq!hT;Cuzk?)hpCQvDtoi_ zXAi8>+dkOqE|pDyj4KIHwg8kCBugwnFQ2-%aUsA-ipLnv$gkkd&FbdK?$5QS zryorR_guwZ*Dn{SY`;e}oX-7;X;&4lYz5I>^X=kE-kB#zt4}J{G5ql int: - """Generate the checksum digit for a CLABE. - - :param clabe: CLABE. - :return: The CLABE checksum digit. - """ - factors = [3, 7, 1] - products: List[int] = [] - - for i, digit in enumerate(clabe[:17]): - products.append((int(digit) * factors[i % 3]) % 10) - - return (10 - sum(products)) % 10 - - -def is_valid_clabe(clabe: str) -> bool: - """Check if a CLABE is valid using the checksum. - - :param clabe: CLABE. - :return: True if the CLABE is valid, False otherwise. - """ - if len(clabe) != 18 or not clabe.isdigit(): - return False - - return get_clabe_control_digit(clabe) == int(clabe[-1]) - - -class Provider(BankProvider): - """Bank provider for ``es_MX`` locale.""" - - banks: Tuple[str, ...] = ( - "ABC Capital, S.A. I.B.M.", - "Acciones y Valores Banamex, S.A. de C.V., Casa de Bolsa", - "Actinver Casa de Bolsa, S.A. de C.V.", - "Akala, S.A. de C.V., Sociedad Financiera Popular", - "American Express Bank (México), S.A.", - "AXA Seguros, S.A. De C.V.", - "B y B Casa de Cambio, S.A. de C.V.", - "Banca Afirme, S.A.", - "Banca Mifel, S.A.", - "Banco Actinver, S.A.", - "Banco Ahorro Famsa, S.A.", - "Banco Autofin México, S.A.", - "Banco Azteca, S.A.", - "Banco BASE, S.A. de I.B.M.", - "Banco Compartamos, S.A.", - "Banco Credit Suisse (México), S.A.", - "Banco del Ahorro Nacional y Servicios Financieros, S.N.C.", - "Banco del Bajío, S.A.", - "Banco Inbursa, S.A.", - "Banco Inmobiliario Mexicano, S.A., Institución de Banca Múltiple", - "Banco Interacciones, S.A.", - "Banco Invex, S.A.", - "Banco J.P. Morgan, S.A.", - "Banco Mercantil del Norte, S.A.", - "Banco Monex, S.A.", - "Banco Multiva, S.A.", - "Banco Nacional de Comercio Exterior", - "Banco Nacional de México, S.A.", - "Banco Nacional de Obras y Servicios Públicos", - "Banco Nacional del Ejército, Fuerza Aérea y Armada", - "Banco PagaTodo S.A., Institución de Banca Múltiple", - "Banco Regional de Monterrey, S.A.", - "Banco Sabadell, S.A. I.B.M.", - "Banco Santander, S.A.", - "Banco Ve por Mas, S.A.", - "Banco Wal Mart de México Adelante, S.A.", - "BanCoppel, S.A.", - "Bank of America México, S.A.", - "Bank of Tokyo-Mitsubishi UFJ (México), S.A.", - "Bankaool, S.A., Institución de Banca Múltiple", - "Bansi, S.A.", - "Barclays Bank México, S.A.", - "BBVA Bancomer, S.A.", - "Bulltick Casa de Bolsa, S.A. de C.V.", - "Caja Popular Mexicana, S.C. de A.P. de R.L. De C.V.", - "Casa de Bolsa Finamex, S.A. de C.V.", - "Casa de Cambio Tíber, S.A. de C.V.", - "CI Casa de Bolsa, S.A. de C.V.", - "CLS Bank International", - "Consubanco, S.A.", - "Consultoría Internacional Banco, S.A.", - "Consultoría Internacional Casa de Cambio, S.A. de C.V.", - "Deutsche Bank México, S.A.", - "Deutsche Securities, S.A. de C.V.", - "Estructuradores del Mercado de Valores Casa de Bolsa, S.A. de C.V.", - "Evercore Casa de Bolsa, S.A. de C.V.", - "Financiera Nacional De Desarrollo Agropecuario, Rural, F y P.", - "Fincomún, Servicios Financieros Comunitarios, S.A. de C.V.", - "GBM Grupo Bursátil Mexicano, S.A. de C.V.", - "GE Money Bank, S.A.", - "HDI Seguros, S.A. de C.V.", - "Hipotecaria su Casita, S.A. de C.V.", - "HSBC México, S.A.", - "Industrial and Commercial Bank of China, S.A., Institución de Banca Múltiple", - "ING Bank (México), S.A.", - "Inter Banco, S.A.", - "Intercam Casa de Bolsa, S.A. de C.V.", - "Intercam Casa de Cambio, S.A. de C.V.", - "Inversora Bursátil, S.A. de C.V.", - "IXE Banco, S.A.", - "J.P. Morgan Casa de Bolsa, S.A. de C.V.", - "J.P. SOFIEXPRESS, S.A. de C.V., S.F.P.", - "Kuspit Casa de Bolsa, S.A. de C.V.", - "Libertad Servicios Financieros, S.A. De C.V.", - "MAPFRE Tepeyac S.A.", - "Masari Casa de Bolsa, S.A.", - "Merrill Lynch México, S.A. de C.V., Casa de Bolsa", - "Monex Casa de Bolsa, S.A. de C.V.", - "Multivalores Casa de Bolsa, S.A. de C.V. Multiva Gpo. Fin.", - "Nacional Financiera, S.N.C.", - "Opciones Empresariales Del Noreste, S.A. DE C.V.", - "OPERADORA ACTINVER, S.A. DE C.V.", - "Operadora De Pagos Móviles De México, S.A. De C.V.", - "Operadora de Recursos Reforma, S.A. de C.V.", - "OrderExpress Casa de Cambio , S.A. de C.V. AAC", - "Profuturo G.N.P., S.A. de C.V.", - "Scotiabank Inverlat, S.A.", - "SD. INDEVAL, S.A. de C.V.", - "Seguros Monterrey New York Life, S.A de C.V.", - "Sistema de Transferencias y Pagos STP, S.A. de C.V., SOFOM E.N.R.", - "Skandia Operadora S.A. de C.V.", - "Skandia Vida S.A. de C.V.", - "Sociedad Hipotecaria Federal, S.N.C.", - "Solución Asea, S.A. de C.V., Sociedad Financiera Popular", - "Sterling Casa de Cambio, S.A. de C.V.", - "Telecomunicaciones de México", - "The Royal Bank of Scotland México, S.A.", - "UBS Banco, S.A.", - "UNAGRA, S.A. de C.V., S.F.P.", - "Única Casa de Cambio, S.A. de C.V.", - "Valores Mexicanos Casa de Bolsa, S.A. de C.V.", - "Valué, S.A. de C.V., Casa de Bolsa", - "Vector Casa de Bolsa, S.A. de C.V.", - "Volkswagen Bank S.A. Institución de Banca Múltiple", - "Zúrich Compañía de Seguros, S.A.", - "Zúrich Vida, Compañía de Seguros, S.A.", - ) - - bank_codes: Tuple[int, ...] = ( - 2, - 6, - 9, - 12, - 14, - 19, - 21, - 22, - 30, - 32, - 36, - 37, - 42, - 44, - 58, - 59, - 60, - 62, - 72, - 102, - 103, - 106, - 108, - 110, - 112, - 113, - 116, - 124, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 143, - 145, - 147, - 148, - 150, - 155, - 156, - 166, - 168, - 600, - 601, - 602, - 604, - 605, - 606, - 607, - 608, - 610, - 611, - 613, - 614, - 615, - 616, - 617, - 618, - 619, - 620, - 621, - 622, - 623, - 624, - 626, - 627, - 628, - 629, - 630, - 631, - 632, - 633, - 634, - 636, - 637, - 638, - 640, - 642, - 646, - 647, - 648, - 649, - 651, - 652, - 653, - 655, - 656, - 659, - 670, - 674, - 677, - 679, - 684, - 901, - 902, - ) - - def clabe(self, bank_code: Optional[int] = None) -> str: - """Generate a mexican bank account CLABE. - - Sources: - - - https://en.wikipedia.org/wiki/CLABE - - :return: A fake CLABE number. - - :sample: - :sample: bank_code=2 - """ - bank = bank_code or self.random_element(self.bank_codes) - city = self.random_int(0, 999) - branch = self.random_int(0, 9999) - account = self.random_int(0, 9999999) - - result = f"{bank:03d}{city:03d}{branch:04d}{account:07d}" - control_digit = get_clabe_control_digit(result) - - return result + str(control_digit) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/es_MX/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/es_MX/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e831678958bc653596701650e2dd20f498a21ae9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7205 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 L_%{iE#Tx$vJDmKx diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fa_IR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/fa_IR/__init__.py deleted file mode 100644 index dbefaba..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/fa_IR/__init__.py +++ /dev/null @@ -1,56 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``fa_IR`` locale.""" - - bban_format = "IR########################" - country_code = "IR" - swift_bank_codes = ( - "BEGN", - "KESH", - "BKMN", - "BKBP", - "CIYB", - "BTOS", - "IVBB", - "KBID", - "KIBO", - "KHMI", - ) - swift_location_codes = ("TH",) - swift_branch_codes = ("BSH", "BCQ", "tIR", "tTH", "ATM", "BIC", "TIR", "ASR", "FOR") - - banks = ( - "بانکهای قرض الحسنه", - "بانک ملّی ایران", - "بانک اقتصاد نوین", - "بانک قرض‌الحسنه مهر ایران", - "بانک سپه", - "بانک پارسیان", - "بانک قرض‌الحسنه رسالت", - "بانک صنعت و معدن", - "بانک کارآفرین", - "بانک کشاورزی", - "بانک سامان", - "بانک مسکن", - "بانک سینا", - "بانک توسعه صادرات ایران", - "بانک خاور میانه", - "بانک توسعه تعاون", - "بانک شهر", - "پست بانک ایران", - "بانک دی", - "بانک صادرات", - "بانک ملت", - "بانک تجارت", - "بانک رفاه", - "بانک حکمت ایرانیان", - "بانک گردشگری", - "بانک ایران زمین", - "بانک قوامین", - "بانک انصار", - "بانک سرمایه", - "بانک پاسارگاد", - "بانک مشترک ایران-ونزوئلا", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fa_IR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/fa_IR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index fcd602f0f7529b3622575970bd2d34df71f2e89c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1749 zcmZ`)&2QUe824Awv}*-yg>};ai}4jfW4PHT}aM~RqLIWepk|FJ~e}GGmuU$==;KZ#`;j$CI_l<|_O8D^ld7tE<#mDQ1nxR#2|Ju6+QQG`&`#%@Qa1IM zfL)dkGdEmkqior3DT=~ge6%@z9l~wS=5*fTbiv|v(GqmY67`fN>1ivak639vV~yye z%}jRGr71S2wQ9X$SM8c7ub8!UxgKSZR~=VgUS2f~t+2c-SDcbrv2&Z3wZhf^c|t)e zWXD2DoxQ#gO8MEPImr2W$ZB4_5lS=K7b@i9;!-GSpQ(`Zs`e39OpjMtHVL(6Sv&soacgof*dzBz zM-Ey50;!95m*N)TA(9 zLevS#yXhi*mkdI@0WZnZe_bq-yOb-CkiZ{ogZOrIlDt;59J`BN(gRHOfC_4k?edZ+2N09lLt2)5b_7!(=9sF_vUFv2mzs5+Kkq4Kz4 zeC3;!=w!q&ET;tZxfM(&12d^=df|A<@oS#jG)j(Thfg=YF0Xn9onB1Q2q%XcIFE-oT{yOj<;r4&2NC< z;&@7K!>(;8mGX*GZ+dG^?cLnl?@F84@7B) z{%57P-#_fGl}&(*D+y4x0F)Nfw8CwGlPOQ@lLr7o$CzFp;!A+~ircas>uF}q9AYix zC0SOz-!0f!E6J?3W2yKlJGuur@3D+6Q%P(zw(7`GTh^P&Y{t@L$nv=z>+DtU#Y)`dz$2*_j{dltV z<-O@(&Q%CYvyY(rhH{|)BwSaD) LfBH)>xLf}KXy2A8 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fil_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/fil_PH/__init__.py deleted file mode 100644 index 4acddd9..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/fil_PH/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from ..en_PH import Provider as EnPhBankProvider - - -class Provider(EnPhBankProvider): - """Implement bank provider for ``fil_PH`` locale. - - There is no difference from the ``en_PH`` implementation. - """ - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fil_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/fil_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1fefc52ea43efd798309abfc9c5237844aa308f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmXw0J#*AB5S8q6xHAc)p+*%mF0lA$846~YK$E#5l^dPTT4Uub$;ir0j3u;r){5+2F+*n=AcsK5dhk-$Z~iL%%Z zQlIR5)i$6&JF?_@McPq`RK}9UqLK}pzgsLwV@lpYo~Fc~vl=WA*%57skX7ZGE`e0m zDB^1HeV})3a<9&vG&&F6r`e>RGN!o##`=^oWyD1@;6uhfUhrnTxyP6=C1an_c5rfc zMQfvgI^&;E{F0vSfp>onrK3ug)_4PfERCc28uXera!K2btBrn{KYu|x>ELP0%N73s z9j*8ZEZw{A=uoeia-{=P?d(^otDuk8a*hn;nge7KD<#y`=szXu0+_Wj}Gf5_+1 F_8+RGof!ZC diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_CH/__init__.py deleted file mode 100644 index 602d75f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_CH/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from ..de_CH import Provider as DeChBankProvider - - -class Provider(DeChBankProvider): - """Implement bank provider for ``fr_CH`` locale. - - There is no difference from the ``de_CH`` implementation. - """ - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2280bc6f4f918384e426c97c68b3de5d4df0e02d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 581 zcmXw0J#*AB5S8q6a%U1qLyanCTww9hG873jfhI$d%8gEEt+8^J+n?}O#CF>fe$z6PZTH9yA&leJFGQapJj2M1oMIR zM{nVzKK7b^#;_ne8%jg{1CQ>fuea{s*oU4D8|xnXa2I2Yf1>Aq_xAAY`=clSkk6s* EKjvSX@c;k- diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_FR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_FR/__init__.py deleted file mode 100644 index d417ea0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_FR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``fr_FR`` locale.""" - - bban_format = "#######################" - country_code = "FR" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_FR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/fr_FR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a75763e0e59de4cd61d412b4e96e10f2f7a56d5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmZuuF>ezw6t?d!Z4?qJ3Q{|sgw!fRjny)+AO?maL{*`x(=9K~*&)}Q&sU!lk%$4L z4*Y}u2E@u=VCo-ePeQ8Hi47@b>BKwdy5Zry@3Wu3_dffg(`k`v{b-&1#B}3G9U66B zY#}%&f(V)tMI(**#b~nOwtOs0Zu18txr|~gpP6h!2nwVHd5S{?O0DTYi1B@ zA-|DDW#VqmMp{W`wH-;tKeFR{fW}W`Y?(@8qj6?O2HLXTRAy6_CIgnw>_}(Nd%JtA zNUYq+c|7JHWWk1fEDgIiTCmDDb4D3Jk|h?Pm(SeuxDenZ#Tte)auvL|UVrxa-R0wr zF9)WBd#>WJ>z7MZwqK(fPUpVGw5tkN_7Krs^X2kMUYSQotA8qt@EkaeQ&h;v`_o(@GvIB`5IsR!1T+LF+^kDJVkIz6j8JyhGqdJ z0XZcqxFITp;7hoz%jkNNM85-M3GJsJoLy-JE+18Vq9fTHA-E+#GO9=xD4K=qAPLreNEqcjB_swoZNbSu*LTLe$cL5Pd9!vFfTC@PQDQSF##!_JvS37veM73`Xv+ zd1(#s&f*hBe&XjlfaWhC@3_&qvpBye3)}H@1@($odcm7@SK9hj`r;*TbqCKHnJ?u> zXn7%*;P}pT%ZESU-ZU3N*N8;gto>K{Fu_UM0}MChPY_1ayO=~XH>}lPpCw@*dGnt3 zM{nVzJVs5N(J#o&hEiYu0MY&Q_166x_Ymo@vGy^ByO2`)lRW>sw?}8+A3ga;F#ERu D@jRRR diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/it_IT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/it_IT/__init__.py deleted file mode 100644 index 995e9fb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/it_IT/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``it_IT`` locale.""" - - bban_format = "?######################" - country_code = "IT" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/it_IT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/it_IT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index deee58cd0a6055746441435fd22c4d1362b77824..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 570 zcmZuuF;5#Y6t?d!5QT&as08Clm0CrJSZxOu1QJUXfl!A`w>Zw(G)K6bI|t3Vyh>@pq@XmfQ7RQ5#s#iZdOT!tc`{EaS0QXK^q?h$Mv|Gl9;#tt^q7W< zi)%D3OuSA=Ur9lXGJPT03F*88Fn%OLLu3?c1v6XHQ--ugA{mi5>XCG8`YQR}`udGz zkr5jy3kU3%$jBiZ2uBPHqQaIf0(z}(&7NdiF99w7DfB&m*D^a diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_BE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_BE/__init__.py deleted file mode 100644 index 636b2bf..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_BE/__init__.py +++ /dev/null @@ -1,92 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for `nl_BE` locale. - - Information about the Belgian banks can be found on the website - of the National Bank of Belgium: - https://www.nbb.be/nl/betalingen-en-effecten/betalingsstandaarden/bankidentificatiecodes - """ - - bban_format = "############" - country_code = "BE" - - banks = ( - "Argenta Spaarbank", - "AXA Bank", - "Belfius Bank", - "BNP Paribas Fortis", - "Bpost Bank", - "Crelan", - "Deutsche Bank AG", - "ING België", - "KBC Bank", - ) - swift_bank_codes = ( - "ARSP", - "AXAB", - "BBRU", - "BPOT", - "DEUT", - "GEBA", - "GKCC", - "KRED", - "NICA", - ) - swift_location_codes = ( - "BE", - "B2", - "99", - "21", - "91", - "23", - "3X", - "75", - "2X", - "22", - "88", - "B1", - "BX", - "BB", - ) - swift_branch_codes = [ - "203", - "BTB", - "CIC", - "HCC", - "IDJ", - "IPC", - "MDC", - "RET", - "VOD", - "XXX", - ] - - def bban(self) -> str: - """Generate a valid BBAN.""" - account_number = self._generate_account_number() - check_digits = self._calculate_mod97(account_number) - return f"{account_number}{check_digits}" - - def iban(self) -> str: - """Generate a valid IBAN.""" - bban = self.bban() - iban_check_digits = self._calculate_iban_check_digits(bban) - return f"{self.country_code}{iban_check_digits}{bban}" - - def _generate_account_number(self) -> str: - """Generate a random 10-digit account number.""" - return self.numerify("##########") - - def _calculate_mod97(self, account_number: str) -> str: - """Calculate the mod 97 check digits for a given account number.""" - remainder = int(account_number) % 97 - return str(remainder).zfill(2) if remainder != 0 else "97" - - def _calculate_iban_check_digits(self, bban: str) -> str: - """Calculate the IBAN check digits using mod 97 algorithm.""" - raw_iban = f"{bban}{self.country_code}00" - numeric_iban = "".join(str(ord(char) - 55) if char.isalpha() else char for char in raw_iban) - check_digits = 98 - (int(numeric_iban) % 97) - return str(check_digits).zfill(2) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_BE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_BE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0b0454dd7982e5de6956d2a2f2582729e55ee504..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3426 zcmb^zTTC0-_0Gd!jKREwLzZMGOExRBVDo4~hzKi>p)93k5oC9%`-Ie6Y$&O@B(HY$Uer2i>R=l~!v0`%|eucD)j4)Jm1wkMif1t=i_R=g!!?HmUm2 zEBid|x%bSy=XrnE&=5d$d=^-GP>0Z;U8Vwj6?}9Jh;4)sW^|Nck}QK*G=VUCA7M^q zpK{*1B(ugxe1|M>5ytV)knD!z2k&2QGMoAVkNe;6~9&4(k!mK&nN3EbO7jJg{}v>0SDE9%k#Ja_(t4#%!hyvtu;lO z2|cR)&&f zTY|Ny3ZkknXtLodF$INED(J`?Sb%kO#j2VzHA{7MWYg}{w5vtd1(ALlCS5K0%q@4( zqGjdGTd~;c>T1+TrJ^Y{X6Uh$YRS50ET~2={iV~YVyVXQv}szhfn}LsItgmQ?1rVK zH3hz?Vl18 zt}s&P@bTHX8G!R~(cwjL_FaH8@7!_tvGI2SPK=9jfK!Qt!%xkQk2(DGWFj7EBs4nV z4g(H5JnXOo{ea;=FzB#@^A0<79caJKkJKX2&(;2t_^mbd5qTC$LI+=2N`6yPpF1UWJ?ufVFmn;1yPJoM|wIOUh*N@KA(vcoUrHG@e@-1pg?@64n+p%QWf9AkLrL zvBhjgjagZU-i-V~>`s+{Y+iz>i)A#0WFcW(CY7~f(G}HLiRoG@mRqwHv&LYwe;`JK zzBeZ;%kqM1#?tb#N@CS4Gu;q{u!b~?Ns?x0mLx@UYYv}+=(8K(OK#nWQdWd>nSB5@ z(Vsdl?RVTLcHAg++}vtB2*0u)?kR?QcE4K+k8A}GT7*LLm7SiQ%Y{&1!QXd8?fhbQ zErR6#;x4pQEoby&mEpONy7CG45;sn|ZsbS|wm6-qJO+tnNT>bc1YPfvHHl_%gd=al z7H?nkmlju@NTO6PPvxhqN!hnSVBP`%)(o}&Xzjzb2jAP`4?2bY&fCS#+s|;RGg0t& z9JI9Ww{#U-x(dx#3$NcOTpfDG@2wO5KVGcH7?e0^dO`vvV zGeUn~uN#X(B~Aq|qN8@;q-N2!0@Etd(rXdMHHJyEM{uu9B0$<#j^pQLNiq$~%w_O<0fNf+Qr};_pV#cmP2vV5E?D7!!=%Ph; zxMQ8Irub5|qgF+LF;|t&A``HHY1f0eLJ84+(Bu2wuLrok|uKG)TVl20N5N z>mmIDp_hQNNQ(fc8J5GD7IA!bTGRDvEYZt4bp(=KGoV?Yi6PPrLc8O{pyz7KEQrm1 z0GsG9ZQ)0arM5SAUn{otY}Flf5ANOjH2RVGaQMOZ_d{L9P}fep6uMUMi_b6s&(Jjf z&lsAA3D?k{0s)~!>mgbK`uundPmw3w1{nKAH5GIBp^lEBYVEBWc!R^db?k!mW5Z(~ zb)F3mp$*=ut$u5rukKrdhtc_gYpPOkS*<;E)@3xq&pIq`LjM*ju9WqKEYYmROw?if z`kb@*1V=%G@INvDOd-b2sqgf{;h1&izqJ?=K8d+g*F4TV>|U{YYy-6YgxO{o^ihmQ zYs@dXRVKn7LhPbxh?iQ;l=a-AOm4%3!(|DEzQacQ9A1G*lSY={rQP$o5!#JD$dOU| z=8IzGONA;r;y$j-(dhBcB;KdB-lyB=0YH6ezxeRIM`Qb)y~WPn!Yk3; zRH3zh%YP8=*k1kdDqN!QE#>pexD>|F!NMIM&+T-UE=BiRikAk9;je53{}5_l4QskRg#>5MB9B{r*u$~?&W2@BB_-moK;}Dp7vA8 zd&hbP^1;Ni=`@+ETH2B*DDWDbDts1Vq zeu2C^r~Sx%dAopm&HMp?`{-}1&*v{UqSh;$QwOc#&99gFKts*uc)2}rp{BsMmD@v| zfG_-AsJ{rfy?l}P^*>aO5TJ69_r2xOZ;FI$yZinF^e%Uc diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_NL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_NL/__init__.py deleted file mode 100644 index be57840..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_NL/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``nl_NL`` locale.""" - - bban_format = "????##########" - country_code = "NL" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_NL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/nl_NL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7452bd8b55491ddf66b48b1617993815852ae683..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 561 zcmX|8v2GJV5Z%2y2g|X82uP$nB~p-!ctt4EL?F>1gk@2rx@Nq--QbIFZ!ddmE4C;= zO2HrG8xU>E`~g1zCm|tG(M2*esWP{|WQv*hW@q2d%zp25TBNee*2xuyKaSL{QOD&j zf(s&upea!_@+k4h8zQ`OB7Et6^H+5dod?~X@gpx7c`v zwsUW#H|P(#Yh@E4<4OXQEdZs(G_7zO;B?B<`s4wC&@rahNB9z;zT&oQ$9kGsGly6U z`IRiI-ftFctd(R|+p$#qj2+zpocBb=mZ>B*8e4T_q%G^sWHw`IGGh7Mj&=5;_k5of ziIsafk0<tD_AuybMrBPBugwnFQ2=uI2T|i#Y1%G~>z6B3wqK(fcISS>w5tkNwt?uTdAM51OY;b6^*zNCbk{zm^cQ*dZ!Mr( LUq1dP7~HK}KP{Hf diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/no_NO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/no_NO/__init__.py deleted file mode 100644 index 7e5ff16..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/no_NO/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``no_NO`` locale.""" - - bban_format = "###########" - country_code = "NO" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/no_NO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/no_NO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 80f19725c7057c6d4e9c0f83123436a67b0e564f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 558 zcmYLGv2GJV5Z%2y2g|X8NRUX!Nk~L4;uTP&i73)U5y(kFb8UR%}ra zDMkJu-+*Xo_y&FePC|-AMHk7TNyXgyqD(RK-t6q#nVlbNP78 zE4OnVkNJr#*fAeV!|sPGST!qi!!dv)ODsSypSdq_F2GKT$LKD|uVCkT{rTs2KR2G8 zzc(Gsxr%<*FPErn@1YuY=T>3bRfQ{CLv+{NU4F@1^8{(No8l?D8=q48n{3^#1a$NA K(?5d2-TDukZI%51 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/pl_PL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/pl_PL/__init__.py deleted file mode 100644 index 9cf6624..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/pl_PL/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``pl_PL`` locale.""" - - bban_format = "#" * 24 - country_code = "PL" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/pl_PL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/pl_PL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0e504fb07cf0084368fd07a0478f060a4685e907..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 571 zcmZ`$J#X7E5G5r!H5|J|KY$pW1QclDAtu@mU4jl>f}lp=A(NIfEi$!YQB)|}h>Z>{ zkRksdzai+Ff6+gX3Mf#ZQ?>$5mP|R(%2*C}?~%uM_sE}}PK#9QvUPNc>8~SoXw-T2 z8o@acM9`Ed8hMm>WS0oED?aqS`N(Xu%-dY%Yr;#$QeT9Z{5!8ws6 zqJl)8pph@UC=hb9@&v;s&JOU6p#_i29_5|#txGmeUo@Lf7Al5=& zkX7a4ZpkKENoKX3NX1Xs!2>|&M>4idC9%;sv?F6}S${6GIZKl<%NKT{v-kbC?^uyo zxt;TP%D>2h9rCF(?7?ZlD&x#KWdKQ*Sb%=MaPQ+nfRhwYFr1QK!G}N3UVi(0^?d95 zz;tlWRqXfta*fLNCsf1f+`pK1RpH7WBf4wute@ngd5X09sNw~Ne?F!3H+gfj5zy}0 K*IRezw6t?d!B?<|s(5f9zLIT~;SisN)F|Z&+Rb|L@%Zqb%$u;Nm)#pScVgRWF z|DeACb>$y0@(0?JDj_j-s}xu|@y@w!czEyo?C0;j&;Hr#bx6IwcaDEx`t3*)T1{R( zMQ}z05i}!;#vUaec}s+MN`x=HbAMeI(?t-qu03QCt=a>l=c$k;X;fUI4O#6XI3tq8 zRFK#cH1>rT2f~kAwTP)DmwWG2kx3CNVJgO z$f~w*yJQosB(vI1q~agh@D8BuW0_c{(!^+-*pacetUs6eoMq{l6$?Aj`OE(E7pzRJ z+$(r8c4xC>wQJ^VGJrHsEkM6mxW{oJz)8x77*5G$u>b2(^!fe8Zbfe^@c++fkz(KRiVmy2Uxs9XOCwp&QW z(4hnWLH`EC%74Mc1}7mQF|k!DES-3Fqzt^_^LOvv_r3GI`?R#QfJA&;*eh!Y{g8_p z)MwxG+dxiHgd!zDsp6{&Qc)L0>IsT!O#J{l5xz3TTK%V>n!@M%MSd7ZtO!NoGL#uP zzX{|NF%U(_S0lx*MXHaZnqQBw-pER-JT`u#{z0YZPSrt;x)_HO`CHa9HG& zc*9{U$-^LFZLSjUsQDD))_s9-WIxUL5JWdCK%EuXb4)ywL}j1g5{o!b(r$u*hL( zaxuy)y?w~CLp_N{`ea(|=GndWox6G&S8R0>g!{ouR_fzmpB4J$q)T12)#aphO5-f9 zC~Z%s@_k6aaFTKv-~@feYu~RgA8&lQwsQRZOx12QKI3Nb0BUlltJQc@+PDANw}ri| z@ str: - """Generate a bank identification code (BIC). - - BIC is a bank identification code that is used in Russia. - See https://ru.wikipedia.org/wiki/Банковский_идентификационный_код. - """ - region: str = self.random_element(self.region_codes) - department_code: str = self.numerify(self.random_element(self.department_code_formats)) - credit_organization_code: str = self.numerify(self.random_element(self.credit_organization_code_formats)) - return "04" + region + department_code + credit_organization_code - - def correspondent_account(self) -> str: - """Generate a correspondent account number. - - Correspondent account is established to handle various financial - operations between financial institutions. - See https://ru.wikipedia.org/wiki/Корреспондентский_счёт. - """ - credit_organization_code = self.numerify(self.random_element(self.credit_organization_code_formats)) - return "301" + self.numerify("#" * 14) + credit_organization_code - - def checking_account(self) -> str: - """Generate a checking account number. - - Checking account is used in banks to handle financial operations of - clients. - See https://ru.wikipedia.org/wiki/Расчётный_счёт. - """ - account: str = self.random_element(self.checking_account_codes) - organization: str = self.random_element(self.organization_codes) - currency: str = self.random_element(self.currency_codes) - return account + organization + currency + self.numerify("#" * 12) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index afb07be5110ef190ae6c004115e099d122d64a63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17543 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 I1XH%^AIJq5J^%m! diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/tl_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/tl_PH/__init__.py deleted file mode 100644 index 1f19b36..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/tl_PH/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from ..en_PH import Provider as EnPhBankProvider - - -class Provider(EnPhBankProvider): - """Implement bank provider for ``tl_PH`` locale. - - There is no difference from the ``en_PH`` implementation. - """ - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/tl_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/tl_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8e5f3e203e5e13c1ab58d405ab86f27e0d1a40dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 581 zcmXw0J#*AB5S8q6xHAc)p+*%mF0lA$846|?LX){7l^dPTlCg4@m91mn;5B zcC_Lv>FC~cM~6S4!8Bz|8RZ$v+fDeY5GF85cL?Dc{fXjadY7VP=7zO~>(eamlVCp3 z{`kF_*Y7|RW(*5*v!OK9KLm6?eY11_);$6`Y^-|%;V#A)|3okT9vtA=_s38FA;_Wa EKSC0mU;qFB diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/tr_TR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/tr_TR/__init__.py deleted file mode 100644 index e57bed6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/tr_TR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``tr_TR`` locale.""" - - bban_format = "######################" - country_code = "TR" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/tr_TR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/tr_TR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 760ec7808a38c4a5d14584fca065a54c2902cf35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcmZuuF>ezw6t?d!Z4?p^rGkzpRVqrQ#wrY55JQ)$0#&HWbjyo#cAIO?=fmejO~lYj z9r_RY8!A?Q0vmq-PC`OrVnYfnop|S5H$1%eefIPB-e-U5bXufZpIT?1G5vI;4vji5 zwh-J9K?F^SqLD|5M-GVau88oZ_t9V0MRXQ)8^1hcU0OEZ89hyeG;yus60ON%1HlcE zB%*>uo}iI0yeJTU)Tl&EB{|c0XLzd6%NM|p5yDwOg zSh$=&(~*h!bn diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/uk_UA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/uk_UA/__init__.py deleted file mode 100644 index d2ed35c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/uk_UA/__init__.py +++ /dev/null @@ -1,83 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``uk_UA`` locale. - Source for rules for bban format: - https://bank.gov.ua/en/iban - Banks list: - https://ubanks.com.ua/adr/ - """ - - bban_format = "#" * 27 - country_code = "UA" - banks = ( - "izibank", - "monobank", - "O.Bank", - "sportbank", - "А-Банк", - "Агропросперіс Банк", - "АкордБанк", - "Альтбанк", - "Асвіо Банк", - "Банк 3/4", - "Банк Авангард", - "Банк Альянс", - "Банк Власний Рахунок", - "Банк Восток", - "Банк інвестицій та заощаджень", - "Банк Кредит Дніпро", - "Банк Портал", - "Банк Український Капітал", - "Банк Фамільний", - "БТА Банк", - "Глобус", - "Грант", - "Дойче Банк ДБУ", - "Європейський Промисловий Банк", - "Ідея Банк", - "ІНГ Банк Україна", - "Індустріалбанк", - "Кліринговий Дім", - "Комінбанк", - "КомІнвестБанк", - "Кредит Європа Банк", - "Кредитвест Банк", - "Креді Агріколь", - "Кредобанк", - "Кристалбанк", - "Львів", - "МетаБанк", - "Міжнародний Інвестиційний Банк", - "Мотор-Банк", - "МТБ Банк", - "Національний банк України", - "Оксі Банк", - "ОТП Банк", - "Ощадбанк", - "Перший Інвестиційний Банк", - "Перший Український Міжнародний Банк", - "Південний", - "Піреус Банк", - "Полікомбанк", - "Полтава-Банк", - "Правекс Банк", - "ПриватБанк", - "ПроКредит Банк", - "Радабанк", - "Райффайзен Банк", - "РВС Банк", - "СЕБ Корпоративний Банк", - "Сенс Банк", - "Сітібанк", - "Скай Банк", - "ТАСкомбанк", - "Траст-капітал", - "Український банк реконструкції та розвитку", - "Укргазбанк", - "Укрексімбанк", - "УкрСиббанк", - "Універсал Банк", - "Юнекс Банк", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/uk_UA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/uk_UA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d53539e9a6da9e1f9152bb305aff72015a82c43a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2747 zcma)8+iM(E7@yf>lb9x68f(?43>K6K*-MBL}?4!mwlORcBaiXyF2UbOfbQR zY!YjQK$Es65Ywh<1Q9`U+nVd<5AfxjH(Bt>C*LB`mp=LXzM0wC4FsHrnRCAT<@cRA zzjb!DEA(u%Upsk1QU2sj@QMfD!&k7FQ%uEFvr0})##AMye59DMNyTikVm~+ea!GZh zxhMWt47(n++IGpYhcl+-qysDbQG?Cl3s}r4mXcIWB^fi-WRn?7Hk(b!xY?X+8Hx9_ zIAnJ8$B%P`td+C!t~QX$4{3$Ks&>V8wEli?$hds2zhBGR=~UKAv}<@ivppwmv4G=c zts<`mpiPTh%I#yRLDwx5`*fYGCa&7U2`{Bvc|C(Y^WO)(sAV(7Bk~?86ccGXM;a;9 z(OG=7`^@oAHFo)2&xh64%qW>3s0U7-R>Ypz z_RjELtjjS`5&QI(C9yBca!k(3l2(&D>C0_{KPEP6IFvhFE z!YzZlDaSQ&2LiKxC672?q}q{9vEwBg3@nRnm{^f>l%1Rs+kPhV5Zy-`e3kA7l^?*{ zg(DQjPuzRL=RXkBM=E|B^{I$eIf2U2IEvfk46eq#=V^Nf+%5TyDA)8Tiy5)(y+iCt zw2{Gq9JlJjTV(Ps(k`)wH9zVQSx=Gjb(EznZ`Le(FZtBF;&zRuiMss7ibul>#XYe> zA7j-N;RP1Z8tMiR`3&bpIWY|DQ|7*Xk6zPA zt$93l3#cqXBaEw$)EB^i2x~M#6%;=h3MyxqZUFC)6{_>pE&!t#4>=Z{5R9t@@j%Q( z3BFFQ?!pNTN`>4-K-9u~8vDBGF(B>%>Lsd4=$6gjgZagX#_8P)W-hD_`&{Ic>4uNA z|B=)O6ljA|9oFi>d`#WKC>cJeVVTnQ9f8e46zL9;5@^FgS*rKaCCO4f$M79E%8jr4|LFn21|)Qcltr zCmk}2{BdXQ<9J<)Xs=NWOX52M0|p7f?DLz#p|AqDg`TV zf#^0x68Yntaiqa#V-fk+@qh|Nv(gK0{aJa5!aSzafkO?tC@`UyEMPt-P;TH^&iMyF z_!X1{=L&M$mJ=Sw;v2;;3al{nXCrUiGGrBXyH0BfC0ea%ao3jNoj^tZ+Y*fKM5*&U z{({;x!r($rYqiZV@~NC<7}a*e$k`_DAy{`9#ur{H8*o|;!?e>NpPa z7>U9N-^TdWj7W-9nn~sFSUlc#@VL^|J@(1(U8l!BJ&2uGJ6lTU9l{DrU+8J7`m1UO z-E5?*ze?{pr?91KVvz>)ph;ELKa^MhX}PGXEjPaUSD`QK{ReP4 Bn34bh diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/zh_CN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/bank/zh_CN/__init__.py deleted file mode 100644 index 0372539..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/bank/zh_CN/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -from .. import Provider as BankProvider - - -class Provider(BankProvider): - """Implement bank provider for ``zh_CN`` locale. - Source: https://zh.wikipedia.org/wiki/中国大陆银行列表 - """ - - banks = ( - "中国人民银行", - "国家开发银行", - "中国进出口银行", - "中国农业发展银行", - "交通银行", - "中国银行", - "中国建设银行", - "中国农业银行", - "中国工商银行", - "中国邮政储蓄银行", - "中国光大银行", - "中国民生银行", - "招商银行", - "中信银行", - "华夏银行", - "上海浦东发展银行", - "平安银行", - "广发银行", - "兴业银行", - "浙商银行", - "渤海银行", - "恒丰银行", - "西安银行", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/bank/zh_CN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/bank/zh_CN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a5a5eb01ea62c24b7f85f8eb407ca62669941134..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1071 zcmZWo%}*0S6rbI;*i_KOXyjtDCruA_qTYz{pfSb^G0{_FGF^5Dx^%a@?rzZ%4?qCH zFQPyQABiCr#TXileAN2UKfwQ>i6=X2d&8g?PR>jhSkpPYdGGhWU*7xP(GdgeZN&QT zh5-1<1)oIxfA=h9=70)RK?jDA6a^rH8$cCDff~Z%d+NttQpktnk%mawxKNGWvdsZa z#kRtgJ`wzX_atTJ0H#hVNQ$bE45?x=oDaprHVc=_QF7C;bZp?PEA`0PjAZ!%rC!sP zQmMf-y4IaaNxG@XI!?qS`fi&!TftpY+I20b3&O#4;=Y#AEUapB!nFG!lVGj1Mi#%4 z!rR9Dcw>62zWkI-%+;4yd5HMw+zFbyX;Ukgz4aGO8xAwS;uiTbM5gxPQwP@d$|8AG zCR49{ht2~H8DFZE7N`&TFzYMZnX+7H3@ro!URfZYU+U*_z4)ya=22VW?G-ZXHN7UU=D~*%=$|(KYvz>?vx>bZi-)m!3#GMMWjSC$o;@dpDIaKN zf9!2;dz)`+rKOe$kWU{;aWd%ssd6}4mVk_H(9s1fyv_OlOYlksnjmN~{IXVB4*>O* z%0ZUyc%&LdC@UKnp=t~v!&GxRm0a|9vPR45!_%jdiUyR;avHwe?FfuU=< zX>7<3;GKPju6sXLTxe*DZPHccLXYXf!~o6?KwayBR^CmU*-MEF7onrM_`D@68MzNT zuvgAt8}9G716fA8yL7)HLRwaH5lUEjei)pDX(i4vN=CtNQH(@)qMaRW!`JPj6ygTm z@ldtNRok!9V6-@Xi#9v str: - if length not in (8, 13): - raise AssertionError("length can only be 8 or 13") - - code = [self.random_digit() for _ in range(length - 1)] - - if prefixes: - prefix: str = self.random_element(prefixes) # type: ignore[assignment] - code[: len(prefix)] = map(int, prefix) - - if length == 8: - weights = [3, 1, 3, 1, 3, 1, 3] - elif length == 13: - weights = [1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3] - - weighted_sum = sum(x * y for x, y in zip(code, weights)) - check_digit = (10 - weighted_sum % 10) % 10 - code.append(check_digit) - - return "".join(str(x) for x in code) - - def ean(self, length: int = 13, prefixes: PrefixType = ()) -> str: - """Generate an EAN barcode of the specified ``length``. - - The value of ``length`` can only be ``8`` or ``13`` (default) which will - create an EAN-8 or an EAN-13 barcode respectively. - - If a value for ``prefixes`` is specified, the result will begin with one - of the sequences in ``prefixes``. - - :sample: length=13 - :sample: length=8 - :sample: prefixes=('00',) - :sample: prefixes=('45', '49') - """ - return self._ean(length, prefixes=prefixes) - - def ean8(self, prefixes: PrefixType = ()) -> str: - """Generate an EAN-8 barcode. - - This method uses |ean| under the hood with the ``length`` argument - explicitly set to ``8``. - - If a value for ``prefixes`` is specified, the result will begin with one - of the sequences in ``prefixes``. - - :sample: - :sample: prefixes=('00',) - :sample: prefixes=('45', '49') - """ - return self._ean(8, prefixes=prefixes) - - def ean13(self, prefixes: PrefixType = ()) -> str: - """Generate an EAN-13 barcode. - - This method uses |ean| under the hood with the ``length`` argument - explicitly set to ``13``. - - If a value for ``prefixes`` is specified, the result will begin with one - of the sequences in ``prefixes``. - - .. note:: - Codes starting with a leading zero are treated specially in some - barcode readers. For more information on compatibility with UPC-A - codes, see |EnUsBarcodeProvider.ean13|. - - :sample: - :sample: prefixes=('00',) - :sample: prefixes=('45', '49') - """ - return self._ean(13, prefixes=prefixes) - - def localized_ean(self, length: int = 13) -> str: - """Generate a localized EAN barcode of the specified ``length``. - - The value of ``length`` can only be ``8`` or ``13`` (default) which will - create an EAN-8 or an EAN-13 barcode respectively. - - This method uses the standard barcode provider's |ean| under the hood - with the ``prefixes`` argument explicitly set to ``local_prefixes`` of - a localized barcode provider implementation. - - :sample: - :sample: length=13 - :sample: length=8 - """ - return self._ean(length, prefixes=self.local_prefixes) - - def localized_ean8(self) -> str: - """Generate a localized EAN-8 barcode. - - This method uses |localized_ean| under the hood with the ``length`` - argument explicitly set to ``8``. - """ - return self.localized_ean(8) - - def localized_ean13(self) -> str: - """Generate a localized EAN-13 barcode. - - This method uses |localized_ean| under the hood with the ``length`` - argument explicitly set to ``13``. - """ - return self.localized_ean(13) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/barcode/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2f2c629ee3201988c4f4fce42e4cf14f188959a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5895 zcmdT|U2NOd6~2@xS+-=$KdIfiKcV9!jyg+;p_uO;7^PPM3>-P3Gg3mA8W*TV89W zWNR@HY2Cn1#AEoT<_bA#_%0~2s%&_0kTXKZM2((f>bxvbHWf=-A6jKgy|eX0Xxt!_ zBsqyBJr_Xlq*wAJdFrEn$$J>yN@0noEs~G=BtH$z_@$PszGUlTqX8IglR6zaUTTGr zVADt&jD(~vb3UAlmx3_TZqDnGLRa}@N4?z+?QpRp(rpCn9h5G=o`+55siF%Koe}49 zx^PisX;q>^p}tFDMrFb&@e*aRwl)Et^XeQ+Q*F%ZMTM-c7qqc>Jfn@oRF;Wrx~NDZ zleD-jMK95!7Ei1Bf~XXu1x9D&%jP6EiP4c$(_$`V4N}eU=ctm=vqqpX!l*vSlyu!c zrhU=M*xy>=(8^^_;^sLP)S+iRlIK>v{SK!)UxJ*s1X#1*ogmk}X-|fvJ#Tdrvgj?7 zS)V;aqrO#de$VsX4xTLXAm?FGkhOi?5G7@2-9?|?YQNAed_%YFyM-Xa7B3OK-D;cT zb$y@3-SC(85yE^KK<)=U|{M@_1-Q>

;?qjEKTe2yqsn#M4H*TsOs_9 zJXPl7Ir(C|P}H-kl8B8Qh-r&6&(@w3*$ z8LH6B1vXw1U@eobVks&rvBPH6Y2z_RVi1(oo`&KtE6L@Aear(WH@|h8twoz9K(Sh7r91EmN^?ub@O%E=3_hHGay#4rn88L zA#(b@JxW0#{`nX8Y=s2orl<7e0 zCmBJ9KA2A48;Bviw1@tV=HK;=wU*Nl+Wpi&Aa3#PL)eaTu~Lqq|9 ztj9Eh!K3?1?M>dq-D@yB4#{r(s3^+#*{(bepF|I16KKH9bCr|H#~)^{CP zI6pTswWgy=R%d`=-%5wsiXAzJ5T-?el9p))v;I z6LkHQwz&R`W z-QMB#@NhLS{OR9zlFms^LoQzFJ09elxF4~Gp|u4RX$I)5JA`2j9}LvnoXvyhA(e~2 z0>VzdBx1*hyy3rnc8K}sVq1wPl4$rVNL_fmqE?4FsH!r()3YfZ!xHb%-MTPQ7<$`w1x+b~lWh7B{nbrolGl@L_H!HjbQSIMlL564F2IASvk3!uC z*d9rgI+~Sx%?0+|HrTsYvIzEgH4y&-u;ZN-55%97Z^^8iGeH)gM{@9An;20rPoZ)N z^6me5GJY&x&C^8v3T!jJbD196p5YygxR~BX2_$u!>xJz&zWEl7Cy*IuI*1&+W1Dui zqoH8m>t*}uZ^pqBA@^TN`X)f(NROGC;l%;kPP%Sl=5|L(^N8E)z_w}pO_)M^9*XAV zz5CvaM`|w~K@g8u1LGEm-N!;aFq((P-O%_v5KGPl1rLm+pERi2WkEpd6DIK{#h)ad zH#}BP>)X28Oy~9q(#(5s62jPo$~@cPzO6e`{ofVzJQ{Vh)VIA=M|1FrhSx4IYY153 zUU;Au9#|Pz5AUu9c7HYI{MqN4vvJsU;qS4KDt}G(w34A?P?J{2!4zx)jp8z9xJdz^ z)~C0(=14-{-kiJE!+WZMJ*GL~FA52&7Vqn5U_f(UwZ(RcS7V z?NBQ9_MDijziCOOBsHB%nPFwLoip>vRIxyfa4ID#kX6l))<9wqw}Vk*#oAN@Z(`**emH?rP;Cl+-<}ok7J+KB)9>56((?(l_gYG$s%Il@hF>oh;IzOn>KTv4 zvsl3YUc_j1Jn1scX?$(&w%G!o1rA#t7-wfd1OcI8W7ErV+#kr!Ka*!4ggURZK4|Y= zK2+(cq*o5DKDDZ?9bdhCbLWSH)yR?B;CS_!@mkNsot|pXiCX)~D{Y_n3mmt1sr+|> IwW;|(0iopS4gdfE diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_CA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_CA/__init__.py deleted file mode 100644 index aae2a58..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_CA/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -from itertools import product - -from ..en_US import Provider as EnUsBarcodeProvider - - -class Provider(EnUsBarcodeProvider): - """Implement barcode provider for ``en_CA`` locale. - - Canada uses UPC as well, so there are similarities between this and the - ``en_US`` implementation. - - Sources: - - - https://gs1.org/standards/id-keys/company-prefix - - https://www.nationwidebarcode.com/upc-country-codes/ - """ - - local_prefixes = ( - # Some sources do not specify prefixes 00~01, 06~09 for use in Canada, - # but it's referenced in other pages - *product((0,), range(2)), - *product((0,), range(6, 10)), - (7, 5), - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 64bb554de2798539ae53769bb384a2e6decf575d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1003 zcmYilO=}ZDbY_!mKD3s$QoRVPcnO#cZEr;cts-7Zr3NII$#iF$Y`eR&&P3`Lo>Erf)#A`HRXiwWO7d=KhLFMX zr41$bA}&-owjRUMgt>eT#4!@6i8*R|95-`qNFwsw16bg>Gd#9Dv*F;K;{UXHUYN?K z_!M*h5P$ZYe!o~PDccsi3o%|KSu7HfnqZ5mP;wDKovyB6TdJVd5-DAK+-e1}3|TDd zl}Z3_jirpUpsR%r8XIc?(?L(f@q<9iz;uKX0fSFRNfa{`nF!3bgy{*9f;!RxOS!dk zv0RGACZvd_wJ;OObdqXQc2y|!>Ns&N=opjfRYKZ&sV-HUXam8R;+jOfwk!IYgfhuk z+OK6wY)AVp$3M4TuUAi9{2mN{(sLbLNH+^>q3otc^#OCCiF2)DWk;;?0EWH=_E@Uk zuxM#J$MtG)P@*(tiJ){)p)`R-$CkcM>6LqT!xe?dmn>>Vrg3pZn(M9ajims zLYJUKSMNwiCW06VQ%cxAc{L^AYIa0uND_rg!m1pzB@LMnx+u{S|)nj^3V^?~lqL9#v3z_Tm~)@7L8l1ae{5tA#-sYEwqa zSWgB5Wi&ROda&>;ZRjWCgM^OVJ*qkD?LsU7bya#ep7SGh3t0O*=-U8BIgIglbmu2p R`Q^`J|J&@n-w3et`~xcB5)l9Z diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_US/__init__.py deleted file mode 100644 index e009dfc..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_US/__init__.py +++ /dev/null @@ -1,249 +0,0 @@ -import re - -from itertools import product -from typing import Dict, Optional, Pattern - -from .. import PrefixType -from .. import Provider as BarcodeProvider - - -class Provider(BarcodeProvider): - """Implement barcode provider for ``en_US`` locale. - - Sources: - - - https://gs1.org/standards/id-keys/company-prefix - """ - - local_prefixes = ( - *product((0,), range(10)), - *product((1,), range(4)), - ) - - upc_e_base_pattern: Pattern = re.compile(r"^\d{6}$") - upc_ae_pattern1: Pattern = re.compile( - r"^(?P[01])" # The first digit must be 0 or 1 - r"(?=\d{11}$)" # followed by 11 digits of which - r"(?P\d{2})" # the first 2 digits make up the manufacturer code, - r"(?:(?P[012])0{4})" # if immediately followed by 00000, 10000, or 20000, - r"(?P\d{3})" # a 3-digit product code, - r"(?P\d)$", # and finally a check digit. - ) - upc_ae_pattern2: Pattern = re.compile( - r"^(?P[01])" # The first digit must be 0 or 1 - r"(?=\d{11}$)" # followed by 11 digits of which - r"(?P\d{3,4}?)" # the first 3 or 4 digits make up the manufacturer code, - r"(?:0{5})" # if immediately followed by 00000, - r"(?P\d{1,2})" # a 2-digit or single digit product code, - r"(?P\d)$", # and finally a check digit. - ) - upc_ae_pattern3: Pattern = re.compile( - r"^(?P[01])" # The first digit must be 0 or 1 - r"(?=\d{11}$)" # followed by 11 digits of which - r"(?P\d{5})" # the first 5 digits make up the manufacturer code, - r"(?:0{4}(?P[5-9]))" # if immediately followed by 0000 and a 5, 6, 7, 8, or 9, - r"(?P\d)$", # and finally a check digit. - ) - - def ean13(self, prefixes: PrefixType = (), leading_zero: Optional[bool] = None) -> str: - """Generate an EAN-13 barcode. - - If ``leading_zero`` is ``True``, the leftmost digit of the barcode will - be set to ``0``. If ``False``, the leftmost digit cannot be ``0``. If - ``None`` (default), the leftmost digit can be any digit. - - If a value for ``prefixes`` is specified, the result will begin with one - of the sequences in ``prefixes`` and will ignore ``leading_zero``. - - This method uses the standard barcode provider's |ean13| under the - hood with the ``prefixes`` argument set to the correct value to attain - the behavior described above. - - .. note:: - EAN-13 barcode that starts with a zero can be converted to UPC-A - by dropping the leading zero. This may cause problems with readers - that treat all of these code as UPC-A codes and drop the first digit - when reading it. - - You can set the argument ``prefixes`` ( or ``leading_zero`` for - convenience) explicitly to avoid or to force the generated barcode to - start with a zero. You can also generate actual UPC-A barcode with - |EnUsBarcodeProvider.upc_a|. - - :sample: - :sample: leading_zero=False - :sample: leading_zero=True - :sample: prefixes=('00',) - :sample: prefixes=('45', '49') - """ - if not prefixes: - if leading_zero is True: - prefixes = ((0,),) - elif leading_zero is False: - prefixes = ((self.random_int(1, 9),),) - - return super().ean13(prefixes=prefixes) - - def _convert_upc_a2e(self, upc_a: str) -> str: - """Convert a 12-digit UPC-A barcode to its 8-digit UPC-E equivalent. - - .. warning:: - Not all UPC-A barcodes can be converted. - """ - if not isinstance(upc_a, str): - raise TypeError("`upc_a` is not a string") - m1 = self.upc_ae_pattern1.match(upc_a) - m2 = self.upc_ae_pattern2.match(upc_a) - m3 = self.upc_ae_pattern3.match(upc_a) - if not any([m1, m2, m3]): - raise ValueError("`upc_a` has an invalid value") - upc_e_template = "{number_system_digit}{mfr_code}{product_code}{extra}{check_digit}" - if m1: - upc_e = upc_e_template.format(**m1.groupdict()) - elif m2: - groupdict: Dict[str, str] = m2.groupdict() - mfr_code = groupdict.get("mfr_code") or "" - groupdict["extra"] = str(len(mfr_code)) - upc_e = upc_e_template.format(**groupdict) - elif m3: - groupdict = m3.groupdict() - groupdict["product_code"] = "" - upc_e = upc_e_template.format(**groupdict) - return upc_e - - def _upc_ae(self, base: Optional[str] = None, number_system_digit: Optional[int] = None) -> str: - """Create a 12-digit UPC-A barcode that can be converted to UPC-E. - - The expected value of ``base`` is a 6-digit string. If any other value - is provided, this method will use a random 6-digit string instead. - - The expected value of ``number_system_digit`` is the integer ``0`` or - ``1``. If any other value is provided, this method will randomly choose - from the two. - - Please also view notes on |EnUsBarcodeProvider.upc_a| and - |EnUsBarcodeProvider.upc_e| for more details. - """ - base_ = ( - [int(x) for x in base] - if isinstance(base, str) and self.upc_e_base_pattern.match(base) - else [self.random_int(0, 9) for _ in range(6)] - ) - if number_system_digit not in [0, 1]: - number_system_digit = self.random_int(0, 1) - - if base_[-1] <= 2: - code = base_[:2] + base_[-1:] + [0] * 4 + base_[2:-1] - elif base_[-1] <= 4: - code = base_[: base_[-1]] + [0] * 5 + base_[base_[-1] : -1] - else: - code = base_[:5] + [0] * 4 + base_[-1:] - - code.insert(0, number_system_digit) - weights = [3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3] - weighted_sum = sum(x * y for x, y in zip(code, weights)) - check_digit = (10 - weighted_sum % 10) % 10 - code.append(check_digit) - return "".join(str(x) for x in code) - - def upc_a( - self, - upc_ae_mode: bool = False, - base: Optional[str] = None, - number_system_digit: Optional[int] = None, - ) -> str: - """Generate a 12-digit UPC-A barcode. - - The value of ``upc_ae_mode`` controls how barcodes will be generated. If - ``False`` (default), barcodes are not guaranteed to have a UPC-E - equivalent. In this mode, the method uses |EnUsBarcodeProvider.ean13| - under the hood, and the values of ``base`` and ``number_system_digit`` - will be ignored. - - If ``upc_ae_mode`` is ``True``, the resulting barcodes are guaranteed to - have a UPC-E equivalent, and the values of ``base`` and - ``number_system_digit`` will be used to control what is generated. - - Under this mode, ``base`` is expected to have a 6-digit string value. If - any other value is supplied, a random 6-digit string will be used - instead. As for ``number_system_digit``, the expected value is a ``0`` - or a ``1``. If any other value is provided, this method will randomly - choose from the two. - - .. important:: - When ``upc_ae_mode`` is enabled, you might encounter instances where - different values of ``base`` (e.g. ``'120003'`` and ``'120004'``) - produce the same UPC-A barcode. This is normal, and the reason lies - within the whole conversion process. To learn more about this and - what ``base`` and ``number_system_digit`` actually represent, please - refer to |EnUsBarcodeProvider.upc_e|. - - :sample: - :sample: upc_ae_mode=True, number_system_digit=0 - :sample: upc_ae_mode=True, number_system_digit=1 - :sample: upc_ae_mode=True, base='123456', number_system_digit=0 - :sample: upc_ae_mode=True, base='120003', number_system_digit=0 - :sample: upc_ae_mode=True, base='120004', number_system_digit=0 - """ - if upc_ae_mode is True: - return self._upc_ae(base=base, number_system_digit=number_system_digit) - else: - ean13 = self.ean13(leading_zero=True) - return ean13[1:] - - def upc_e( - self, - base: Optional[str] = None, - number_system_digit: Optional[int] = None, - safe_mode: bool = True, - ) -> str: - """Generate an 8-digit UPC-E barcode. - - UPC-E barcodes can be expressed in 6, 7, or 8-digit formats, but this - method uses the 8 digit format, since it is trivial to convert to the - other two formats. The first digit (starting from the left) is - controlled by ``number_system_digit``, and it can only be a ``0`` or a - ``1``. The last digit is the check digit that is inherited from the - UPC-E barcode's UPC-A equivalent. The middle six digits are collectively - referred to as the ``base`` (for a lack of a better term). - - On that note, this method uses ``base`` and ``number_system_digit`` to - first generate a UPC-A barcode for the check digit, and what happens - next depends on the value of ``safe_mode``. The argument ``safe_mode`` - exists, because there are some UPC-E values that share the same UPC-A - equivalent. For example, any UPC-E barcode of the form ``abc0000d``, - ``abc0003d``, and ``abc0004d`` share the same UPC-A value - ``abc00000000d``, but that UPC-A value will only convert to ``abc0000d`` - because of (a) how UPC-E is just a zero-suppressed version of UPC-A and - (b) the rules around the conversion. - - If ``safe_mode`` is ``True`` (default), this method performs another set - of conversions to guarantee that the UPC-E barcodes generated can be - converted to UPC-A, and that UPC-A barcode can be converted back to the - original UPC-E barcode. Using the example above, even if the bases - ``120003`` or ``120004`` are used, the resulting UPC-E barcode will - always use the base ``120000``. - - If ``safe_mode`` is ``False``, then the ``number_system_digit``, - ``base``, and the computed check digit will just be concatenated - together to produce the UPC-E barcode, and attempting to convert the - barcode to UPC-A and back again to UPC-E will exhibit the behavior - described above. - - :sample: - :sample: base='123456' - :sample: base='123456', number_system_digit=0 - :sample: base='123456', number_system_digit=1 - :sample: base='120000', number_system_digit=0 - :sample: base='120003', number_system_digit=0 - :sample: base='120004', number_system_digit=0 - :sample: base='120000', number_system_digit=0, safe_mode=False - :sample: base='120003', number_system_digit=0, safe_mode=False - :sample: base='120004', number_system_digit=0, safe_mode=False - """ - if safe_mode is not False: - upc_ae = self._upc_ae(base=base, number_system_digit=number_system_digit) - return self._convert_upc_a2e(upc_ae) - else: - upc_ae = self._upc_ae(base=base, number_system_digit=number_system_digit) - return upc_ae[0] + "".join(str(x) for x in base or "") + upc_ae[-1] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/barcode/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 782459e175c9aca8e2a46847b7fa6d77d9238ba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12930 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 Jfjuxr{{sLj?ZW^7 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/barcode/es_ES/__init__.py deleted file mode 100644 index a6a28d3..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/barcode/es_ES/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from .. import Provider as BarcodeProvider - - -class Provider(BarcodeProvider): - """Implement barcode provider for ``es_ES`` locale. - - Sources: - - - https://gs1.org/standards/id-keys/company-prefix - """ - - local_prefixes = ((8, 4),) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/barcode/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d8215223d1f1a741676e8655775b2a15a959e21f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 623 zcmXw0L5tKd6i(Wyma;P6893|mD+*n|II ze}j1SU-%CSo;=NMW!B4{Ow(=-?|onL^6}pHevQWw>dw#T{Klp~jtn6f^5KaES4bd% z3smCF!^lH#knk>%@WK1x_jMU=MoF;uEK6`3zEg6S3s8JeaS0FP@W_HI1SrD-WuCy9 zFT8Bj_{m6havwjvE$aeGs7$!~aK%)tlWzDK)S}R!Q7fvL>iMJ1J7yFS7vm|Ik zN-I_ZrENrMDaE$v@DZgSwyYRl?o%oxx7QQb5$y#*e@6$af^I*PwJd=cY1UA(3-bOB zSfkE?8&c+6Njsz?3u#EYgK9^Ld_n5QtY!5)J$XiSZeUt7zF{lSWXU$5$elBq3|=bUp7rhxT)k90WA@`mRA7OMNZ=w~ zMOkcnsmt@vs;NPNc4Wr&f;58?sf;DlX=T~bhv}5mrsOr`X-fP#or47;TcQmSvZ_4O zC6LM*Mcf>G8|Y1&+=_E2jm|^&aW?A4jA^cbu`Xpy8F5kfc$cyB3tkU5&lnS?Wb8Xy z_eLJC=-eov&iE%3|4L7{z?(mV(orQ#YyA9y%#5S?67-VRaz>k#n;ZQ;fBTNM(!raC zmka&{T3Yc1Sh_Xc(iyj<5kP})%9zyBF_t&0@LM5_{4njV57+2l6er{R6eSbeZ#G;X zXK|MV|ABV--!O-*};>WZx6_) G(Dek@PMrh* diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/ja_JP/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/barcode/ja_JP/__init__.py deleted file mode 100644 index b4d571f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/barcode/ja_JP/__init__.py +++ /dev/null @@ -1,49 +0,0 @@ -from .. import Provider as BarcodeProvider - - -class Provider(BarcodeProvider): - """Implement barcode provider for ``ja_JP`` locale. - - Japanese local EAN barcodes are called JAN-codes. - - Sources: - - - https://gs1.org/standards/id-keys/company-prefix - - https://www.dsri.jp/jan/about_jan.html - - .. |JaJpProvider.localized_ean| replace:: - :meth:`JaJpProvider.localized_ean() ` - - .. |JaJpProvider.localized_ean8| replace:: - :meth:`JaJpProvider.localized_ean8() ` - - .. |JaJpProvider.localized_ean13| replace:: - :meth:`JaJpProvider.localized_ean13() ` - """ - - local_prefixes = (4, 5), (4, 9) - - def jan(self, length: int = 13) -> str: - """Generate a JAN barcode of the specified ``length``. - - This method is an alias for |JaJpProvider.localized_ean|. - - :sample: - :sample: length=8 - :sample: length=13 - """ - return self.localized_ean(length) - - def jan8(self) -> str: - """Generate a 8 digit JAN barcode. - - This method is an alias for |JaJpProvider.localized_ean8|. - """ - return self.localized_ean8() - - def jan13(self) -> str: - """Generate a 13 digit JAN barcode. - - This method is an alias for |JaJpProvider.localized_ean13|. - """ - return self.localized_ean13() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/barcode/ja_JP/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/barcode/ja_JP/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f51103963dfa1fff9e42ba391fd375eaeca99ce2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2205 zcmcIly>Ht_6hBg;Een>_rm2T6z4${YgNlTzMHNy5DNqE}U<61eE!3HJk|^`5ceEWD zE}FqZ$87FYWDUIbPbj){vEiWrfli&YDNwp(>N`@jX(TBE7d?RQ-re!u$M5|f`Fo{O zMsoa89{s8z^jET&3s@&(R)gsTQA8CNc}iDRkcu84svaX+VCrcheXXmEi@G*ZVWlf^ z=^+pH9m=?!o~H8BMMQi` zI2EQt>$_|$Ogr$v)3_dT)_0yHzOSww92^)_aK{*h=7{(v*$MU{3p8UGd2Z^&Fz``_ zbixc%Bgw-#WYl8BKf;`aF0om=o!Exd+8&FB?cTfZe5T`jeX`5Aks&3FId(<@mhpC9 zTfO&*sCAQ&S~rcU^?pG$nm386(Y$F`jV8n;d8VtnIw=BICzAfU%H=d!0ue8`%pXL< zc!9HMkNdW4o@_{V%V)L$;shO`k&+!<%}2`VeD@J_-QjN!n9n$g7$%ap8J}^`$I*~s z5i;B9J3#7QFZJB(%~>r2eLQpomdpt#295ZbxDF9X5B(eeawgh>$X>i8BF;8&>hG&o zM$tD;8qLci_HmmqZ^QNsB3_vSG0m>C6-nn#|Pk23|RJ7RWZdXCKl z;CHgv2_naVv3JRU2{UO5^Rg+-c~d}Z!WYD}EXQ{u z%QC`oT!0=uT)u1*SbZXc`xwMiG`)pBxcx`<&Uy9D^V&sKKP%}oI6!v3hBA+&!fT+s ztHP)98jPgAZmzy9Or3!f;;TU71K2^>SRYET4GHvf{F3c>&#XrM_%g-|Z21 zezIs;G_YYit&5fZP?(4djvvJZ5pli(*0{u;uY!1i5;sYylHX+_8 z(;8acc)I=k{wbVa`F~xym!`GFCEq1@;x>qBK~a=H(cM=Ib*1*>4}T+=l3V`(b;Dot diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/__init__.py deleted file mode 100644 index 155bf8a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/__init__.py +++ /dev/null @@ -1,330 +0,0 @@ -from collections import OrderedDict -from functools import cached_property -from typing import Dict, Optional, Tuple - -from ...typing import HueType -from .. import BaseProvider, ElementsType -from .color import RandomColor - -localized = True - - -class Provider(BaseProvider): - """Implement default color provider for Faker.""" - - all_colors: Dict[str, str] = OrderedDict( - ( - ("AliceBlue", "#F0F8FF"), - ("AntiqueWhite", "#FAEBD7"), - ("Aqua", "#00FFFF"), - ("Aquamarine", "#7FFFD4"), - ("Azure", "#F0FFFF"), - ("Beige", "#F5F5DC"), - ("Bisque", "#FFE4C4"), - ("Black", "#000000"), - ("BlanchedAlmond", "#FFEBCD"), - ("Blue", "#0000FF"), - ("BlueViolet", "#8A2BE2"), - ("Brown", "#A52A2A"), - ("BurlyWood", "#DEB887"), - ("CadetBlue", "#5F9EA0"), - ("Chartreuse", "#7FFF00"), - ("Chocolate", "#D2691E"), - ("Coral", "#FF7F50"), - ("CornflowerBlue", "#6495ED"), - ("Cornsilk", "#FFF8DC"), - ("Crimson", "#DC143C"), - ("Cyan", "#00FFFF"), - ("DarkBlue", "#00008B"), - ("DarkCyan", "#008B8B"), - ("DarkGoldenRod", "#B8860B"), - ("DarkGray", "#A9A9A9"), - ("DarkGreen", "#006400"), - ("DarkKhaki", "#BDB76B"), - ("DarkMagenta", "#8B008B"), - ("DarkOliveGreen", "#556B2F"), - ("DarkOrange", "#FF8C00"), - ("DarkOrchid", "#9932CC"), - ("DarkRed", "#8B0000"), - ("DarkSalmon", "#E9967A"), - ("DarkSeaGreen", "#8FBC8F"), - ("DarkSlateBlue", "#483D8B"), - ("DarkSlateGray", "#2F4F4F"), - ("DarkTurquoise", "#00CED1"), - ("DarkViolet", "#9400D3"), - ("DeepPink", "#FF1493"), - ("DeepSkyBlue", "#00BFFF"), - ("DimGray", "#696969"), - ("DodgerBlue", "#1E90FF"), - ("FireBrick", "#B22222"), - ("FloralWhite", "#FFFAF0"), - ("ForestGreen", "#228B22"), - ("Fuchsia", "#FF00FF"), - ("Gainsboro", "#DCDCDC"), - ("GhostWhite", "#F8F8FF"), - ("Gold", "#FFD700"), - ("GoldenRod", "#DAA520"), - ("Gray", "#808080"), - ("Green", "#008000"), - ("GreenYellow", "#ADFF2F"), - ("HoneyDew", "#F0FFF0"), - ("HotPink", "#FF69B4"), - ("IndianRed", "#CD5C5C"), - ("Indigo", "#4B0082"), - ("Ivory", "#FFFFF0"), - ("Khaki", "#F0E68C"), - ("Lavender", "#E6E6FA"), - ("LavenderBlush", "#FFF0F5"), - ("LawnGreen", "#7CFC00"), - ("LemonChiffon", "#FFFACD"), - ("LightBlue", "#ADD8E6"), - ("LightCoral", "#F08080"), - ("LightCyan", "#E0FFFF"), - ("LightGoldenRodYellow", "#FAFAD2"), - ("LightGray", "#D3D3D3"), - ("LightGreen", "#90EE90"), - ("LightPink", "#FFB6C1"), - ("LightSalmon", "#FFA07A"), - ("LightSeaGreen", "#20B2AA"), - ("LightSkyBlue", "#87CEFA"), - ("LightSlateGray", "#778899"), - ("LightSteelBlue", "#B0C4DE"), - ("LightYellow", "#FFFFE0"), - ("Lime", "#00FF00"), - ("LimeGreen", "#32CD32"), - ("Linen", "#FAF0E6"), - ("Magenta", "#FF00FF"), - ("Maroon", "#800000"), - ("MediumAquaMarine", "#66CDAA"), - ("MediumBlue", "#0000CD"), - ("MediumOrchid", "#BA55D3"), - ("MediumPurple", "#9370DB"), - ("MediumSeaGreen", "#3CB371"), - ("MediumSlateBlue", "#7B68EE"), - ("MediumSpringGreen", "#00FA9A"), - ("MediumTurquoise", "#48D1CC"), - ("MediumVioletRed", "#C71585"), - ("MidnightBlue", "#191970"), - ("MintCream", "#F5FFFA"), - ("MistyRose", "#FFE4E1"), - ("Moccasin", "#FFE4B5"), - ("NavajoWhite", "#FFDEAD"), - ("Navy", "#000080"), - ("OldLace", "#FDF5E6"), - ("Olive", "#808000"), - ("OliveDrab", "#6B8E23"), - ("Orange", "#FFA500"), - ("OrangeRed", "#FF4500"), - ("Orchid", "#DA70D6"), - ("PaleGoldenRod", "#EEE8AA"), - ("PaleGreen", "#98FB98"), - ("PaleTurquoise", "#AFEEEE"), - ("PaleVioletRed", "#DB7093"), - ("PapayaWhip", "#FFEFD5"), - ("PeachPuff", "#FFDAB9"), - ("Peru", "#CD853F"), - ("Pink", "#FFC0CB"), - ("Plum", "#DDA0DD"), - ("PowderBlue", "#B0E0E6"), - ("Purple", "#800080"), - ("Red", "#FF0000"), - ("RosyBrown", "#BC8F8F"), - ("RoyalBlue", "#4169E1"), - ("SaddleBrown", "#8B4513"), - ("Salmon", "#FA8072"), - ("SandyBrown", "#F4A460"), - ("SeaGreen", "#2E8B57"), - ("SeaShell", "#FFF5EE"), - ("Sienna", "#A0522D"), - ("Silver", "#C0C0C0"), - ("SkyBlue", "#87CEEB"), - ("SlateBlue", "#6A5ACD"), - ("SlateGray", "#708090"), - ("Snow", "#FFFAFA"), - ("SpringGreen", "#00FF7F"), - ("SteelBlue", "#4682B4"), - ("Tan", "#D2B48C"), - ("Teal", "#008080"), - ("Thistle", "#D8BFD8"), - ("Tomato", "#FF6347"), - ("Turquoise", "#40E0D0"), - ("Violet", "#EE82EE"), - ("Wheat", "#F5DEB3"), - ("White", "#FFFFFF"), - ("WhiteSmoke", "#F5F5F5"), - ("Yellow", "#FFFF00"), - ("YellowGreen", "#9ACD32"), - ) - ) - - safe_colors: ElementsType[str] = ( - "black", - "maroon", - "green", - "navy", - "olive", - "purple", - "teal", - "lime", - "blue", - "silver", - "gray", - "yellow", - "fuchsia", - "aqua", - "white", - ) - - def color_name(self) -> str: - """ - Generate a color name. - - :sample: - """ - return self.random_element(self.all_colors.keys()) - - def safe_color_name(self) -> str: - """ - Generate a web-safe color name. - - :sample: - """ - return self.random_element(self.safe_colors) - - def hex_color(self) -> str: - """ - Generate a color formatted as a hex triplet. - - :sample: - """ - return f"#{self.random_int(1, 16777215):06x}" - - def safe_hex_color(self) -> str: - """ - Generate a web-safe color formatted as a hex triplet. - - :sample: - """ - return f"#{self.random_int(0, 15) * 17:02x}{self.random_int(0, 15) * 17:02x}{self.random_int(0, 15) * 17:02x}" - - def rgb_color(self) -> str: - """ - Generate a color formatted as a comma-separated RGB value. - - :sample: - """ - return ",".join(map(str, (self.random_int(0, 255) for _ in range(3)))) - - def rgb_css_color(self) -> str: - """ - Generate a color formatted as a CSS rgb() function. - - :sample: - """ - return f"rgb({self.random_int(0, 255)},{self.random_int(0, 255)},{self.random_int(0, 255)})" - - @cached_property - def _random_color(self): - return RandomColor(self.generator) - - def color( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - color_format: str = "hex", - ) -> str: - """Generate a color in a human-friendly way. - - Under the hood, this method first creates a color represented in the HSV - color model and then converts it to the desired ``color_format``. The - argument ``hue`` controls the H value according to the following - rules: - - - If the value is a number from ``0`` to ``360``, it will serve as the H - value of the generated color. - - If the value is a tuple/list of 2 numbers from 0 to 360, the color's H - value will be randomly selected from that range. - - If the value is a valid string, the color's H value will be randomly - selected from the H range corresponding to the supplied string. Valid - values are ``'monochrome'``, ``'red'``, ``'orange'``, ``'yellow'``, - ``'green'``, ``'blue'``, ``'purple'``, and ``'pink'``. - - The argument ``luminosity`` influences both S and V values and is - partially affected by ``hue`` as well. The finer details of this - relationship are somewhat involved, so please refer to the source code - instead if you wish to dig deeper. To keep the interface simple, this - argument either can be omitted or can accept the following string - values:``'bright'``, ``'dark'``, ``'light'``, or ``'random'``. - - The argument ``color_format`` controls in which color model the color is - represented. Valid values are ``'hsv'``, ``'hsl'``, ``'rgb'``, or - ``'hex'`` (default). - - :sample: hue='red' - :sample: luminosity='light' - :sample: hue=(100, 200), color_format='rgb' - :sample: hue='orange', luminosity='bright' - :sample: hue=135, luminosity='dark', color_format='hsv' - :sample: hue=(300, 20), luminosity='random', color_format='hsl' - """ - return self._random_color.generate( - hue=hue, - luminosity=luminosity, - color_format=color_format, - ) - - def color_rgb( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[int, int, int]: - """ - Generate a RGB color tuple of integers. - - :sample: - :sample: hue='red', luminosity='dark' - :sample: hue=(100, 200), luminosity='random' - """ - return self._random_color.generate_rgb(hue=hue, luminosity=luminosity) - - def color_rgb_float( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[float, float, float]: - """ - Generate a RGB color tuple of floats. - - :sample: - :sample: hue='red', luminosity='dark' - :sample: hue=(100, 200), luminosity='random' - """ - return self._random_color.generate_rgb_float(hue=hue, luminosity=luminosity) - - def color_hsl( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[int, int, int]: - """ - Generate a HSL color tuple. - - :sample: - :sample: hue='red', luminosity='dark' - :sample: hue=(100, 200), luminosity='random' - """ - return self._random_color.generate_hsl(hue=hue, luminosity=luminosity) - - def color_hsv( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[int, int, int]: - """ - Generate a HSV color tuple. - - :sample: - :sample: hue='red', luminosity='dark' - :sample: hue=(100, 200), luminosity='random' - """ - return self._random_color.generate_hsv(hue=hue, luminosity=luminosity) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8dccfdaa5049ad652cf94c3d14b718b95deeb9ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11046 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/ar_PS/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/ar_PS/__init__.py deleted file mode 100644 index 573bd87..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/ar_PS/__init__.py +++ /dev/null @@ -1,170 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - - -class Provider(ColorProvider): - """Implement color provider for ``ar_PS`` locale.""" - - all_colors = OrderedDict( - ( - ("أزرق أليس", "#F0F8FF"), - ("أبيض عتيق", "#FAEBD7"), - ("مائي", "#00FFFF"), - ("زبرجدي", "#7FFFD4"), - ("لازوردي", "#F0FFFF"), - ("صوفي", "#F5F5DC"), - ("حسائي", "#FFE4C4"), - ("أسود", "#000000"), - ("لوزي", "#FFEBCD"), - ("أزرق", "#0000FF"), - ("بنفسجي مزرق", "#8A2BE2"), - ("بني", "#A52A2A"), - ("خشبية", "#DEB887"), - ("أزرق كاديتي", "#5F9EA0"), - ("كرتوزي", "#7FFF00"), - ("شوكولاتيّ", "#D2691E"), - ("مرجاني", "#FF7F50"), - ("قنطريوني", "#6495ED"), - ("حرير الذرة", "#FFF8DC"), - ("قرمزي", "#DC143C"), - ("سيان", "#00FFFF"), - ("أزرق داكن", "#00008B"), - ("سيان داكن", "#008B8B"), - ("عصا الدهب الغامق", "#B8860B"), - ("رمادي داكن", "#A9A9A9"), - ("أخضر داكن", "#006400"), - ("خاكي داكن", "#BDB76B"), - ("ماجنتا داكن", "#8B008B"), - ("أخضر زيتوني داكن", "#556B2F"), - ("برتقالي داكن", "#FF8C00"), - ("أوركيدي داكن", "#9932CC"), - ("أحمر داكن", "#8B0000"), - ("سلموني داكن", "#E9967A"), - ("أخضر بحري داكن", "#8FBC8F"), - ("أزرق أردوازي داكن", "#483D8B"), - ("رمادي لازوردي داكن", "#2F4F4F"), - ("تركوازي داكن", "#00CED1"), - ("بنفسج داكن", "#9400D3"), - ("زهري غامق", "#FF1493"), - ("أزرق سماوي غامق", "#00BFFF"), - ("رمادي خافت", "#696969"), - ("أزرق فريق دودجر", "#1E90FF"), - ("الطوب شمت", "#B22222"), - ("أبيض وردي", "#FFFAF0"), - ("أخضر الغابت", "#228B22"), - ("فوشي", "#FF00FF"), - ("رمادي باهت", "#DCDCDC"), - ("أبيض شبحي", "#F8F8FF"), - ("ذهبي", "#FFD700"), - ("ذهبي", "#DAA520"), - ("رمادي", "#808080"), - ("أخضر", "#008000"), - ("أصفر مخضر", "#ADFF2F"), - ("عسلي", "#F0FFF0"), - ("وردي فاقع", "#FF69B4"), - ("قسطلي", "#CD5C5C"), - ("نيلي", "#4B0082"), - ("سكري", "#FFFFF0"), - ("خاكي", "#F0E68C"), - ("لاڤندر", "#E6E6FA"), - ("أحمر اللافندر", "#FFF0F5"), - ("أخضر عشبي", "#7CFC00"), - ("ليمون شيفوني", "#FFFACD"), - ("أزرق فاتح", "#ADD8E6"), - ("مرجاني فاتح", "#F08080"), - ("أزرق طفولي", "#E0FFFF"), - ("أصفر ذهبي فاتح ", "#FAFAD2"), - ("رمادي فاتح", "#D3D3D3"), - ("أخضر فاتح", "#90EE90"), - ("وردي فاتح", "#FFB6C1"), - ("سلموني فاتح", "#FFA07A"), - ("أخضر بحري فاتح", "#20B2AA"), - ("سماوي فاتح", "#87CEFA"), - ("أزرق أردوازي فاتح", "#778899"), - ("أزرق معدني فاتح", "#B0C4DE"), - ("أصفر فاتح", "#FFFFE0"), - ("ليمي", "#00FF00"), - ("أخضر ليموني", "#32CD32"), - ("كتاني", "#FAF0E6"), - ("فوشيا", "#FF00FF"), - ("كستنائي", "#800000"), - ("زبرجدي متوسط", "#66CDAA"), - ("أزرق متوسط", "#0000CD"), - ("أوركيدي متوسط", "#BA55D3"), - ("فوشي متوسط", "#9370DB"), - ("أخضر بحري متوسط", "#3CB371"), - ("أزرق أردوازي متوسط", "#7B68EE"), - ("أخضر ربيعي متوسط", "#00FA9A"), - ("ترموازي متوسط", "#48D1CC"), - ("أحمر بنفسجي", "#C71585"), - ("الأزرق متوسط", "#191970"), - ("نعناعي كريمي", "#F5FFFA"), - ("الوردي الضبابي", "#FFE4E1"), - ("موكاسيني", "#FFE4B5"), - ("أبيض نافاجو", "#FFDEAD"), - ("كحلي", "#000080"), - ("رباطي قديم", "#FDF5E6"), - ("زيتوني", "#808000"), - ("زيتوني رمادي", "#6B8E23"), - ("برتقالي", "#FFA500"), - ("أحمر برتقالي", "#FF4500"), - ("أوركيدي", "#DA70D6"), - ("ذهبي باهت", "#EEE8AA"), - ("أخضر باهت", "#98FB98"), - ("تركوازي باهت", "#AFEEEE"), - ("أحمر بنفسجي باهت", "#DB7093"), - ("بابايا", "#FFEFD5"), - ("حنطي", "#FFDAB9"), - ("بيرو", "#CD853F"), - ("زهري", "#FFC0CB"), - ("برقوقي", "#DDA0DD"), - ("أزرق مسحوقي", "#B0E0E6"), - ("أرجواني", "#800080"), - ("أحمر", "#FF0000"), - ("بني وردي", "#BC8F8F"), - ("أزرق ملكي", "#4169E1"), - ("بني السرج", "#8B4513"), - ("سالموني", "#FA8072"), - ("بني رملي", "#F4A460"), - ("أخضر بحري", "#2E8B57"), - ("صدفي", "#FFF5EE"), - ("سيينا", "#A0522D"), - ("فضي", "#C0C0C0"), - ("أزرق سماي", "#87CEEB"), - ("أزرق أردوازي", "#6A5ACD"), - ("رمادي معدني", "#708090"), - ("ثلجي", "#FFFAFA"), - ("أخضر ربيعي", "#00FF7F"), - ("أزرق معدني", "#4682B4"), - ("نطي", "#D2B48C"), - ("حذفي", "#008080"), - ("أرجواني", "#D8BFD8"), - ("طماطمي", "#FF6347"), - ("تركواز", "#40E0D0"), - ("بنفسجي", "#EE82EE"), - ("قمحي", "#F5DEB3"), - ("أبيض", "#FFFFFF"), - ("دخاني قمحي", "#F5F5F5"), - ("أصفر", "#FFFF00"), - ("أصفر مخضر", "#9ACD32"), - ) - ) - - safe_colors = ( - "أبيض", - "أخضر", - "أرجواني", - "أزرق", - "أسود", - "أصفر", - "حذفي", - "رمادي", - "زيتوني", - "فضي", - "فوشي", - "كحلي", - "كستنائي", - "ليمي", - "مائي", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/ar_PS/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/ar_PS/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8baeeaad5aee0766734027b4df5198a0797d4a46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5246 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 S`6o0Z%c1w*xhK&l>;DT+zvcn} diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/bn_BD/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/bn_BD/__init__.py deleted file mode 100644 index dbbcc4a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/bn_BD/__init__.py +++ /dev/null @@ -1,172 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``bn_BD`` locale.""" - - all_colors = OrderedDict( - ( - ("এলিস নীল", "#F0F8FF"), - ("এন্টিক সাদা", "#FAEBD7"), - ("জল রং", "#00FFFF"), - ("হালকা নীল সবুজ", "#7FFFD4"), - ("উজ্জ্বল নীল", "#F0FFFF"), - ("ফ্যাকাশে বেলে হলুদ বাদামী", "#F5F5DC"), - ("বিস্কুট রং", "#FFE4C4"), - ("কালো", "#000000"), - ("বালু রং", "#FFEBCD"), - ("নীল", "#0000FF"), - ("নীলাভ রক্তবর্ণ", "#8A2BE2"), - ("বাদামী", "#A52A2A"), - ("কাঠ রং", "#DEB887"), - ("সামরিক নীল", "#5F9EA0"), - ("উজ্জ্বল হলুদাভ সবুজ", "#7FFF00"), - ("চকলেট রং", "#D2691E"), - ("প্রবাল রং", "#FF7F50"), - ("ঝুমকা ফুলের নীল", "#6495ED"), - ("সিল্ক রং", "#FFF8DC"), - ("অগ্নি রং", "#DC143C"), - ("সায়ান", "#00FFFF"), - ("কালচে নীল", "#00008B"), - ("কালচে সায়ান", "#008B8B"), - ("কালচে ধাতব সোনালি", "#B8860B"), - ("কালচে ধূসর", "#A9A9A9"), - ("কালচে সবুজ", "#006400"), - ("কালচে খাকী", "#BDB76B"), - ("কালচে হালকা বেগুনী লাল", "#8B008B"), - ("কালচে জলপাই সবুজ", "#556B2F"), - ("কালচে কমলা", "#FF8C00"), - ("কালচে অর্কিড রং", "#9932CC"), - ("কালচে লাল", "#8B0000"), - ("কালচে স্যামন রং", "#E9967A"), - ("কালচে সামুদ্রিক সবুজ", "#8FBC8F"), - ("কালচে পাথুরে নীল", "#483D8B"), - ("কালচে পাথুরে ধূসর", "#2F4F4F"), - ("কালচে ফিরোজা", "#00CED1"), - ("কালচে বেগুনী", "#9400D3"), - ("গাঢ় গোলাপি", "#FF1493"), - ("গাঢ় আকাশী নীল", "#00BFFF"), - ("আবছা ধূসর", "#696969"), - ("ডজার নীল", "#1E90FF"), - ("পোড়া ইট রং", "#B22222"), - ("ফুলেল সাদা", "#FFFAF0"), - ("বন্য সবুজ", "#228B22"), - ("উজ্জ্বল গোলাপি বেগুনী", "#FF00FF"), - ("মেটে রং", "#DCDCDC"), - ("টাইটান সাদা", "#F8F8FF"), - ("সোনালি", "#FFD700"), - ("ধাতব সোনালি", "#DAA520"), - ("ধূসর", "#808080"), - ("সবুজ", "#008000"), - ("সবুজাভ হলুদ", "#ADFF2F"), - ("মধু রং", "#F0FFF0"), - ("উষ্ণ গোলাপি", "#FF69B4"), - ("ভারতীয় লাল", "#CD5C5C"), - ("বেগুনী নীল", "#4B0082"), - ("আইভরি", "#FFFFF0"), - ("খাকী", "#F0E68C"), - ("ল্যাভেণ্ডার রং", "#E6E6FA"), - ("ল্যাভেন্ডার লাল", "#FFF0F5"), - ("তৃণ সবুজ", "#7CFC00"), - ("হালকা সিল্ক রং", "#FFFACD"), - ("হালকা নীল", "#ADD8E6"), - ("হালকা প্রবাল রং", "#F08080"), - ("হালকা সায়ান", "#E0FFFF"), - ("হালকা ধাতব সোনালি হলুদ", "#FAFAD2"), - ("হালকা ধূসর", "#D3D3D3"), - ("হালকা সবুজ", "#90EE90"), - ("হালকা গোলাপি", "#FFB6C1"), - ("হালকা স্যামন রং", "#FFA07A"), - ("হালকা সামুদ্রিক সবুজ", "#20B2AA"), - ("হালকা আকাশী নীল", "#87CEFA"), - ("হালকা পাথুরে ধূসর", "#778899"), - ("হালকা ধাতব নীল", "#B0C4DE"), - ("হালকা হলুদ", "#FFFFE0"), - ("লাইম রং", "#00FF00"), - ("লাইম সবুজ", "#32CD32"), - ("পাট রং", "#FAF0E6"), - ("হালকা বেগুনী লাল", "#FF00FF"), - ("মেরুন", "#800000"), - ("মাঝারী নীল সবুজ", "#66CDAA"), - ("মাঝারী নীল", "#0000CD"), - ("মাঝারী অর্কিড রং", "#BA55D3"), - ("মাঝারী বেগুনী", "#9370DB"), - ("মাঝারী সামুদ্রিক সবুজ", "#3CB371"), - ("মাঝারী পাথুরে নীল", "#7B68EE"), - ("মাঝারী বাসন্তী সবুজ", "#00FA9A"), - ("মাঝারী ফিরোজা", "#48D1CC"), - ("মাঝারী বেগুনী লাল", "#C71585"), - ("মিডনাইট নীল", "#191970"), - ("হালকা পীত পুদিনা রং", "#F5FFFA"), - ("ধোঁয়াটে গোলাপ রং", "#FFE4E1"), - ("মোকাসিন", "#FFE4B5"), - ("নাভাজো সাদা", "#FFDEAD"), - ("নেভি ব্লু", "#000080"), - ("ওল্ড লেইস রং", "#FDF5E6"), - ("জলপাই রং", "#808000"), - ("ম্যাটমাটে জলপাই রং", "#6B8E23"), - ("কমলা", "#FFA500"), - ("কমলা লাল", "#FF4500"), - ("অর্কিড রং", "#DA70D6"), - ("ফ্যাকাশে ধাতব সোনালি", "#EEE8AA"), - ("ফ্যাকাশে সবুজ", "#98FB98"), - ("ফ্যাকাশে ফিরোজা", "#AFEEEE"), - ("ফ্যাকাশে বেগুনী লাল", "#DB7093"), - ("পাপায়াহুপ", "#FFEFD5"), - ("পীচ রং", "#FFDAB9"), - ("পেরু রং", "#CD853F"), - ("গোলাপি", "#FFC0CB"), - ("জাম রং", "#DDA0DD"), - ("গুঁড়া নীল", "#B0E0E6"), - ("বেগুনী", "#800080"), - ("লাল", "#FF0000"), - ("গোলাপী লাল", "#BC8F8F"), - ("রয়্যাল ব্লু", "#4169E1"), - ("স্যাডল ব্রাউন", "#8B4513"), - ("স্যামন রং", "#FA8072"), - ("বেলে বাদামী", "#F4A460"), - ("সামুদ্রিক সবুজ", "#2E8B57"), - ("ঝিনুক রং", "#FFF5EE"), - ("মেটে রং", "#A0522D"), - ("রূপালী", "#C0C0C0"), - ("আকাশী নীল", "#87CEEB"), - ("পাথুরে নীল", "#6A5ACD"), - ("পাথুরে ধূসর", "#708090"), - ("তুষার শুভ্র রং", "#FFFAFA"), - ("বাসন্তী সবুজ", "#00FF7F"), - ("ধাতব নীল", "#4682B4"), - ("তামাটে রং", "#D2B48C"), - ("পেষ্ট রং", "#008080"), - ("থিসল রং", "#D8BFD8"), - ("টমেটো রং", "#FF6347"), - ("ফিরোজা", "#40E0D0"), - ("রক্তবেগুনী", "#EE82EE"), - ("গম রং", "#F5DEB3"), - ("সাদা", "#FFFFFF"), - ("ধোঁয়াটে সাদা", "#F5F5F5"), - ("হলুদ", "#FFFF00"), - ("হলুদাভ সবুজ", "#9ACD32"), - ) - ) - - safe_colors = ( - "কালো", - "মেরুন", - "সবুজ", - "নেভি", - "জলপাই রং", - "বেগুনী", - "পেষ্ট রং", - "লাইম রং", - "নীল", - "রূপালী", - "ধূসর", - "হলুদ", - "উজ্জ্বল গোলাপি বেগুনী", - "জল রং", - "সাদা", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1162a374a934e4a6b74ce6f27c8ea1dcc3f436d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7260 zcma)BTaO!O8MeKf-OY)nEe9bLSP_c40^;#u#$!<-%@F~j<)T-6<80Or+19%bvzv&d zLP|@apn$kQAyQ}+LRxP~nl!2qX(a?dfM38$NJfZ@-bD&~lPjL*eaD_d#@no;$=LIL z@9}vL-#7m_eE2|#e}6vk@~cNnrT@s6__8nl|AB>@%cX9qTke-uY}TOU{Sw}l@> zgR^V+`K47|qSttR>A_d<{c@>SS}u1>%av|3(m$x3RUjI_M9g#nUnW#gq7Q{P>BDj_V&kzStkEuJn7ymVUKVIrCX891VXn z8h$Vu{(Ut3aB(!eG1|U>@8{=_hDK5!N5JE5ECK0ME-y3beHX6PKmMyIDn-dLw ziC;wny}qXsG777ZK!n^9+V@2i<&1`Z8EwA_84&O$O_ncE1$PiQlqX|@M#DRB1kEx- z)AyjmGr|-?=_p}+N!DG(I$BBEFlc(vclVIcs!(vhh-ZfUfzQ)pK2V5~Gs|7i$MXF` zk{HIN;=Sk655%O~x*Vz?GVjnfD8u{fkZC)0H>gAAQz@AY*Tg!WDf~ip0x5ots9Aipxw4w%y+xc1&Se5KGwr=QpJg$afcnco=tZYyHcI_uJD1a z^k#zNrrq%OKxM(&4ASah6Ca2!PJ>(GR0su{5mCm&FucI8O-wsXF=&nkU>6H~UP)Y=fW4vrOus2BDBo^iH0M z0qo~Vj|8?HKMbYtXop5RLsEKZ;AEAsgVXOxbgqL@-q!+EtL-Ku)ol?9kG>;gADa@^ zC56WGP0vhEKa2y|CgnB3bCczjn0i9O4?Kew0>E99Bvw?1qfC_#jli-gMh6`2vs%Ay zOX#nQO+Yh3OW4O42&}*gSA4rABk)84W?l=q3BrZ0pL zijZVi-3w@^4}7j;nvxvPO8qKWn>QT-+l`jtb0pR_Td?S{(cAFcMvLjAAS_^2fWrh% zE!VOG!bx|01)}@AoDGyJS=?kz8OK`^$DeTA#KgFF2#|S7nV4(`5 zhhsVe?W9J>!%e2frIzDlAz+|B69a|Ib$Y{=?aY9H; zGIZ+FJ+lQ{a6`5?UzA8`Nzm&Az8{IUHx-4UPZW-8J(J@~3LT;Exa?foSCBG54{LTp z;`z4O;1*A3^-N9xpCZIFJk~%J!i`?0Gx@$__{6q0I-OYI&TEtXP?FuQ5lHjdRcU!w zKpKH639w%r5ceKYgVjGR25G5}Srjr@9IRkHCV%O9ZquwWDHPJ_MaYiSQ9$U}MvFaJYoMCVbQU$pk#&MOrRShcr)kkt z9nrOtJkEd=*sjSFL`_6=UsfwYOZFhmBu*n99>cMYVb<%2UmO#_14m5?IjG2kA;ce_ ziJf~7T0wG(wP!=K98(8(^+^G3W}DXnDr8>OAq?FO5W6Q{<0b{i&G?QD3__gRw6GCK zD^MUjUW>#z=ER4YB9q{_Y1wtz+G*rbgd}>r=622?<8CXi&zgbvM9tJpM#u~3HBaA_ zz#;6Z(^VYfggy(C##YKUvl-&pZN}{&v>Ht!K=Z4hN;Q#zK4Yl`2J2Gi*<`5sOH&bf zl+e1=G=0&4)0Wgoio^QA1^nY(d9LBX^>m}=)6^cEU4-+0?h|8%kBrEY{tB1mnYf-? zd9Xra0R>XWfh|nIPed#u(UZJzZjIX)tb?Vu;pT{ris<%;?LK0Si}?6;PutZz16Mi`r2wV zz`G{-a$>MmJ$AOYakkoDJ5fD-ZtK)wqj9WOuWqhw^}ca>W%ZSnANDq@Cs$tSMb+^O zs?Dm%ugV*$YNxZdv9{Ie96NnZUTn#QN93DC#~Y=8&f5Qe@|pXU?^pI8crf!~<*B&~ z-@Sig_Q=z7uYE6KAY{P{OLIF1!L|<-*9IG#YOFrnIqdNT84Qs3Z#(eu3IV3{o*IPcr{p_llA`x D^?C@q diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/color.py b/.venv/lib/python3.12/site-packages/faker/providers/color/color.py deleted file mode 100644 index 756942b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/color.py +++ /dev/null @@ -1,386 +0,0 @@ -"""Internal module for human-friendly color generation. - -.. important:: - End users of this library should not use anything in this module. - -Code adapted from: -- https://github.com/davidmerfield/randomColor (CC0) -- https://github.com/kevinwuhoo/randomcolor-py (MIT License) - -Additional reference from: -- https://en.wikipedia.org/wiki/HSL_and_HSV -""" - -import colorsys -import math -import random -import sys - -from typing import TYPE_CHECKING, Dict, Literal, Optional, Sequence, Tuple - -if TYPE_CHECKING: - from ...factory import Generator - -from ...typing import HueType, SeedType - -ColorFormat = Literal["hex", "hsl", "hsv", "rgb"] - - -COLOR_MAP: Dict[str, Dict[str, Sequence[Tuple[int, int]]]] = { - "monochrome": { - "hue_range": [(0, 0)], - "lower_bounds": [ - (0, 0), - (100, 0), - ], - }, - "red": { - "hue_range": [(-26, 18)], - "lower_bounds": [ - (20, 100), - (30, 92), - (40, 89), - (50, 85), - (60, 78), - (70, 70), - (80, 60), - (90, 55), - (100, 50), - ], - }, - "orange": { - "hue_range": [(19, 46)], - "lower_bounds": [ - (20, 100), - (30, 93), - (40, 88), - (50, 86), - (60, 85), - (70, 70), - (100, 70), - ], - }, - "yellow": { - "hue_range": [(47, 62)], - "lower_bounds": [ - (25, 100), - (40, 94), - (50, 89), - (60, 86), - (70, 84), - (80, 82), - (90, 80), - (100, 75), - ], - }, - "green": { - "hue_range": [(63, 178)], - "lower_bounds": [ - (30, 100), - (40, 90), - (50, 85), - (60, 81), - (70, 74), - (80, 64), - (90, 50), - (100, 40), - ], - }, - "blue": { - "hue_range": [(179, 257)], - "lower_bounds": [ - (20, 100), - (30, 86), - (40, 80), - (50, 74), - (60, 60), - (70, 52), - (80, 44), - (90, 39), - (100, 35), - ], - }, - "purple": { - "hue_range": [(258, 282)], - "lower_bounds": [ - (20, 100), - (30, 87), - (40, 79), - (50, 70), - (60, 65), - (70, 59), - (80, 52), - (90, 45), - (100, 42), - ], - }, - "pink": { - "hue_range": [(283, 334)], - "lower_bounds": [ - (20, 100), - (30, 90), - (40, 86), - (60, 84), - (80, 80), - (90, 75), - (100, 73), - ], - }, -} - - -class RandomColor: - """Implement random color generation in a human-friendly way. - - This helper class encapsulates the internal implementation and logic of the - :meth:`color() ` method. - """ - - def __init__(self, generator: Optional["Generator"] = None, seed: Optional[SeedType] = None) -> None: - self.colormap = COLOR_MAP - - # Option to specify a seed was not removed so this class - # can still be tested independently w/o generators - if generator: - self.random = generator.random - else: - self.seed = seed if seed else random.randint(0, sys.maxsize) - self.random = random.Random(int(self.seed)) - - def generate( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - color_format: ColorFormat = "hex", - ) -> str: - """Generate and format a color. - - Whenever :meth:`color() ` is - called, the arguments used are simply passed into this method, and this - method handles the rest. - """ - # Generate HSV color tuple from picked hue and luminosity - hsv = self.generate_hsv(hue=hue, luminosity=luminosity) - - # Return the HSB/V color in the desired string format - return self.set_format(hsv, color_format) - - def generate_hsv( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[int, int, int]: - """Generate a HSV color tuple.""" - # First we pick a hue (H) - h = self.pick_hue(hue) - - # Then use H to determine saturation (S) - s = self.pick_saturation(h, hue, luminosity) - - # Then use S and H to determine brightness/value (B/V). - v = self.pick_brightness(h, s, luminosity) - - return h, s, v - - def generate_rgb( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[int, int, int]: - """Generate a RGB color tuple of integers.""" - return self.hsv_to_rgb(self.generate_hsv(hue=hue, luminosity=luminosity)) - - def generate_rgb_float( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[float, float, float]: - """Generate a RGB color tuple of floats.""" - return self.hsv_to_rgb_float(self.generate_hsv(hue=hue, luminosity=luminosity)) - - def generate_hsl( - self, - hue: Optional[HueType] = None, - luminosity: Optional[str] = None, - ) -> Tuple[int, int, int]: - """Generate a HSL color tuple.""" - return self.hsv_to_hsl(self.generate_hsv(hue=hue, luminosity=luminosity)) - - def pick_hue(self, hue: Optional[HueType]) -> int: - """Return a numerical hue value.""" - hue_ = self.random_within(self.get_hue_range(hue)) - - # Instead of storing red as two separate ranges, - # we group them, using negative numbers - if hue_ < 0: - hue_ += 360 - - return hue_ - - def pick_saturation(self, hue: int, hue_name: Optional[HueType], luminosity: Optional[str]) -> int: - """Return a numerical saturation value.""" - if luminosity is None: - luminosity = "" - if luminosity == "random": - return self.random_within((0, 100)) - - if isinstance(hue_name, str) and hue_name == "monochrome": - return 0 - - s_min, s_max = self.get_saturation_range(hue) - - if luminosity == "bright": - s_min = 55 - elif luminosity == "dark": - s_min = s_max - 10 - elif luminosity == "light": - s_max = 55 - - return self.random_within((s_min, s_max)) - - def pick_brightness(self, h: int, s: int, luminosity: Optional[str]) -> int: - """Return a numerical brightness value.""" - if luminosity is None: - luminosity = "" - - b_min = self.get_minimum_brightness(h, s) - b_max = 100 - - if luminosity == "dark": - b_max = b_min + 20 - elif luminosity == "light": - b_min = (b_max + b_min) // 2 - elif luminosity == "random": - b_min = 0 - b_max = 100 - - return self.random_within((b_min, b_max)) - - def set_format(self, hsv: Tuple[int, int, int], color_format: ColorFormat) -> str: - """Handle conversion of HSV values into desired format.""" - if color_format == "hsv": - color = f"hsv({hsv[0]}, {hsv[1]}, {hsv[2]})" - - elif color_format == "hsl": - hsl = self.hsv_to_hsl(hsv) - color = f"hsl({hsl[0]}, {hsl[1]}, {hsl[2]})" - - elif color_format == "rgb": - rgb = self.hsv_to_rgb(hsv) - color = f"rgb({rgb[0]}, {rgb[1]}, {rgb[2]})" - - else: - rgb = self.hsv_to_rgb(hsv) - color = f"#{rgb[0]:02x}{rgb[1]:02x}{rgb[2]:02x}" - - return color - - def get_minimum_brightness(self, h: int, s: int) -> int: - """Return the minimum allowed brightness for ``h`` and ``s``.""" - lower_bounds: Sequence[Tuple[int, int]] = self.get_color_info(h)["lower_bounds"] - - for i in range(len(lower_bounds) - 1): - s1, v1 = lower_bounds[i] - s2, v2 = lower_bounds[i + 1] - - if s1 <= s <= s2: - m: float = (v2 - v1) / (s2 - s1) - b: float = v1 - m * s1 - - return int(m * s + b) - - return 0 - - def _validate_color_input(self, color_input: HueType) -> Tuple[int, int]: - if ( - not isinstance(color_input, (list, tuple)) - or len(color_input) != 2 - or any(not isinstance(c, (float, int)) for c in color_input) - ): - raise TypeError("Hue must be a valid string, numeric type, or a tuple/list of 2 numeric types.") - - return color_input[0], color_input[1] - - def get_hue_range(self, color_input: Optional[HueType]) -> Tuple[int, int]: - """Return the hue range for a given ``color_input``.""" - if color_input is None: - return 0, 360 - - if isinstance(color_input, (int, float)) and 0 <= color_input <= 360: - color_input = int(color_input) - return color_input, color_input - - if isinstance(color_input, str) and color_input in self.colormap: - return self.colormap[color_input]["hue_range"][0] - - color_input = self._validate_color_input(color_input) - - v1 = int(color_input[0]) - v2 = int(color_input[1]) - - if v2 < v1: - v1, v2 = v2, v1 - v1 = max(v1, 0) - v2 = min(v2, 360) - return v1, v2 - - def get_saturation_range(self, hue: int) -> Tuple[int, int]: - """Return the saturation range for a given numerical ``hue`` value.""" - saturation_bounds = [s for s, v in self.get_color_info(hue)["lower_bounds"]] - return min(saturation_bounds), max(saturation_bounds) - - def get_color_info(self, hue: int) -> Dict[str, Sequence[Tuple[int, int]]]: - """Return the color info for a given numerical ``hue`` value.""" - # Maps red colors to make picking hue easier - if 334 <= hue <= 360: - hue -= 360 - - for color_name, color in self.colormap.items(): - hue_range: Tuple[int, int] = color["hue_range"][0] - if hue_range[0] <= hue <= hue_range[1]: - return self.colormap[color_name] - else: - raise ValueError("Value of hue `%s` is invalid." % hue) - - def random_within(self, r: Sequence[int]) -> int: - """Return a random integer within the range ``r``.""" - return self.random.randint(int(r[0]), int(r[1])) - - @classmethod - def hsv_to_rgb_float(cls, hsv: Tuple[int, int, int]) -> Tuple[float, float, float]: - """Convert HSV to RGB. - - This method expects ``hsv`` to be a 3-tuple of H, S, and V values, and - it will return a 3-tuple of the equivalent R, G, and B float values. - """ - h, s, v = hsv - h = max(h, 1) - h = min(h, 359) - - return colorsys.hsv_to_rgb(h / 360, s / 100, v / 100) - - @classmethod - def hsv_to_rgb(cls, hsv: Tuple[int, int, int]) -> Tuple[int, int, int]: - """Convert HSV to RGB. - - This method expects ``hsv`` to be a 3-tuple of H, S, and V values, and - it will return a 3-tuple of the equivalent R, G, and B integer values. - """ - r, g, b = cls.hsv_to_rgb_float(hsv) - return int(r * 255), int(g * 255), int(b * 255) - - @classmethod - def hsv_to_hsl(cls, hsv: Tuple[int, int, int]) -> Tuple[int, int, int]: - """Convert HSV to HSL. - - This method expects ``hsv`` to be a 3-tuple of H, S, and V values, and - it will return a 3-tuple of the equivalent H, S, and L values. - """ - h, s, v = hsv - - s_: float = s / 100.0 - v_: float = v / 100.0 - l = 0.5 * v_ * (2 - s_) # noqa: E741 - - s_ = 0.0 if l in [0, 1] else v_ * s_ / (1 - math.fabs(2 * l - 1)) - return int(h), int(s_ * 100), int(l * 100) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/cs_CZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/cs_CZ/__init__.py deleted file mode 100644 index 507f145..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/cs_CZ/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -from .. import Provider as ColorProvider - - -class Provider(ColorProvider): - """Implement color provider for ``cs_CZ`` locale.""" - - safe_colors = ( - "černá", - "kaštanová", - "zelená", - "námořnická", - "olivová", - "fialová", - "zelenomodrá", - "limetková", - "modrá", - "stříbrná", - "šedá", - "žlutá", - "fuchsiová", - "aquamarinová", - "bílá", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/cs_CZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/cs_CZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b073a2da3cb042f93339168b7bd84f42b9582c2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 735 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/de/__init__.py deleted file mode 100644 index 0ee1cb0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/de/__init__.py +++ /dev/null @@ -1,158 +0,0 @@ -from collections import OrderedDict - -from faker.typing import OrderedDictType - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """ - Color provider for ``de`` locale. Source: https://www.sttmedia.com/colornames - """ - - all_colors: OrderedDictType[str, str] = OrderedDict( - ( - ("Eisfarben", "#F0F8FF"), - ("Antikweiß", "#FAEBD7"), - ("Wasser", "#00FFFF"), - ("Aquamarinblau", "#7FFFD4"), - ("Azur", "#F0FFFF"), - ("Beige", "#F5F5DC"), - ("Biskuit", "#FFE4C4"), - ("Schwarz", "#000000"), - ("Mandelweiß", "#FFEBCD"), - ("Blau", "#0000FF"), - ("Blauviolett", "#8A2BE2"), - ("Braun", "#A52A2A"), - ("Gelbbraun", "#DEB887"), - ("Kadettenblau", "#5F9EA0"), - ("Hellgrün", "#7FFF00"), - ("Schokolade", "#D2691E"), - ("Koralle", "#FF7F50"), - ("Kornblumenblau", "#6495ED"), - ("Mais", "#FFF8DC"), - ("Karminrot", "#DC143C"), - ("Cyan", "#00FFFF"), - ("Dunkelblau", "#00008B"), - ("Dunkelcyan", "#008B8B"), - ("Dunkle Goldrutenfarbe", "#B8860B"), - ("Dunkelgrau", "#A9A9A9"), - ("Dunkelgrün", "#006400"), - ("Dunkelkhaki", "#BDB76B"), - ("Dunkelmagenta", "#8B008B"), - ("Dunkles Olivgrün", "#556B2F"), - ("Dunkles Orange", "#FF8C00"), - ("Dunkle Orchidee", "#9932CC"), - ("Dunkelrot", "#8B0000"), - ("Dunkle Lachsfarbe", "#E9967A"), - ("Dunkles Seegrün", "#8FBC8F"), - ("Dunkles Schieferblau", "#483D8B"), - ("Dunkles Schiefergrau", "#2F4F4F"), - ("Dunkeltürkis", "#00CED1"), - ("Dunkelviolett", "#9400D3"), - ("Tiefrosa", "#FF1493"), - ("Tiefes Himmelblau", "#00BFFF"), - ("Trübes Grau", "#696969"), - ("Persenningblau", "#1E90FF"), - ("Backstein", "#B22222"), - ("Blütenweiß", "#FFFAF0"), - ("Waldgrün", "#228B22"), - ("Fuchsia", "#FF00FF"), - ("Gainsboro", "#DCDCDC"), - ("Geisterweiß", "#F8F8FF"), - ("Gold", "#FFD700"), - ("Goldrute", "#DAA520"), - ("Grau", "#808080"), - ("Grün", "#008000"), - ("Grüngelb", "#ADFF2F"), - ("Honigmelone", "#F0FFF0"), - ("Leuchtendes Rosa", "#FF69B4"), - ("Indischrot", "#CD5C5C"), - ("Indigo", "#4B0082"), - ("Elfenbein", "#FFFFF0"), - ("Khaki", "#F0E68C"), - ("Lavendel", "#E6E6FA"), - ("Lavendelrosa", "#FFF0F5"), - ("Rasengrün", "#7CFC00"), - ("Chiffongelb", "#FFFACD"), - ("Hellblau", "#ADD8E6"), - ("Helles Korallenrot", "#F08080"), - ("Helles Cyan", "#E0FFFF"), - ("Helles Goldrutengelb", "#FAFAD2"), - ("Hellgrau", "#D3D3D3"), - ("Hellgrün", "#90EE90"), - ("Hellrosa", "#FFB6C1"), - ("Helle Lachsfarbe", "#FFA07A"), - ("Helles Seegrün", "#20B2AA"), - ("Helles Himmelblau", "#87CEFA"), - ("Helles Schiefergrau", "#778899"), - ("Helles Stahlblau", "#B0C4DE"), - ("Hellgelb", "#FFFFE0"), - ("Limone", "#00FF00"), - ("Limonengrün", "#32CD32"), - ("Leinen", "#FAF0E6"), - ("Magenta", "#FF00FF"), - ("Kastanie", "#800000"), - ("Mittleres Aquamarin", "#66CDAA"), - ("Mittleres Blau", "#0000CD"), - ("Mittlere Orchidee", "#BA55D3"), - ("Mittleres Violett", "#9370DB"), - ("Mittleres Seegrün", "#3CB371"), - ("Mittleres Schieferblau", "#7B68EE"), - ("Mittleres Frühlingsgrün", "#00FA9A"), - ("Mittleres Türkis", "#48D1CC"), - ("Mittleres Violettrot", "#C71585"), - ("Mitternachtsblau", "#191970"), - ("Minzcreme", "#F5FFFA"), - ("Altrosa", "#FFE4E1"), - ("Mokassin", "#FFE4B5"), - ("Navajoweiß", "#FFDEAD"), - ("Marineblau", "#000080"), - ("Alte Spitze", "#FDF5E6"), - ("Olivgrün", "#808000"), - ("Olivgraubraun", "#6B8E23"), - ("Orange", "#FFA500"), - ("Orangerot", "#FF4500"), - ("Orchidee", "#DA70D6"), - ("Blasse Goldrutenfarbe", "#EEE8AA"), - ("Blassgrün", "#98FB98"), - ("Blasstürkis", "#AFEEEE"), - ("Blasses Violetrot", "#DB7093"), - ("Papayacreme", "#FFEFD5"), - ("Pfirsich", "#FFDAB9"), - ("Peru", "#CD853F"), - ("Rosa", "#FFC0CB"), - ("Pflaume", "#DDA0DD"), - ("Taubenblau", "#B0E0E6"), - ("Lila", "#800080"), - ("Rot", "#FF0000"), - ("Rosiges Braun", "#BC8F8F"), - ("Königsblau", "#4169E1"), - ("Sattelbraun", "#8B4513"), - ("Lachsfarben", "#FA8072"), - ("Sandbraun", "#F4A460"), - ("Seegrün", "#2E8B57"), - ("Muschelfarben", "#FFF5EE"), - ("Siennaerde", "#A0522D"), - ("Silber", "#C0C0C0"), - ("Himmelblau", "#87CEEB"), - ("Schieferblau", "#6A5ACD"), - ("Schiefergrau", "#708090"), - ("Schneeweiß", "#FFFAFA"), - ("Frühlingsgrün", "#00FF7F"), - ("Stahlblau", "#4682B4"), - ("Hautfarben", "#D2B48C"), - ("Petrol", "#008080"), - ("Distel", "#D8BFD8"), - ("Tomatenrot", "#FF6347"), - ("Türkis", "#40E0D0"), - ("Violett", "#EE82EE"), - ("Weizen", "#F5DEB3"), - ("Weiß", "#FFFFFF"), - ("Rauchfarben", "#F5F5F5"), - ("Gelb", "#FFFF00"), - ("Gelbgrün", "#9ACD32"), - ) - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/de/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2824bf96ea41062e7ff4a0f75c0e2a2b46f5194c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4187 zcmZu!J8T=-73Kdc+0w3^MLGs95+blT{LFB;SOl1_oJg_+ONjwB^b`3gjy0T7W`^>L zK!7b0AVrFFTgGj$ZIH^H%2a6y1PBnM*lrizZCvfSZ)Qk34k=JG_uY5j{hoW@Keo4P z8T$OK_VSZYGMWE~m*l6I{C}(C;mgc8GtRo1S@t}erRSWRo8`~*c+QUtZednDFX6d( zUe0CqGvm_lGvhKZeU*=8oEL8^&Fa_m(#$UF$HABfd~7louc6*~K9}Kzaqg>Z%z9qrC0^#`N$$rW@X9#< z8UEiEn#G`mhsE<+10Tb8{h)E39M+iN<;9CJfAON>`XlD@y~e3O4@Ugc#x#nq!%thS zSFc{}g;6x)V~6dH{8?*6B0M(Zp^(`8Q!}@$T244&!3Fmg*_KTMEM?sZujWofG~4PKw5@zPn!aMe0yIf{pivzf9Wigr-IYqVr5h%lqQ}P) zt5B#;gd4|qc|>wmt)p8VFc$TI&B;zp?r0qil5>NNkt|?sl0Yl=tj@`o-Cu}Dta5uVp6I_W1OOj!k?X{EE$vS{j z%`R3dXE-kKL-L$$w|fH+7rR8{VdIH2n{5PL7u7Z2!bxXH%?ohs#{pCZ^o6*4Cp-wb z=Q-YGVnN#)#N|@e+2|^axI?L;cjyDPNto{5y+M+!E6&zz1Yu5f@SM5h)LWg7ihVex zY|r6jhrJ`6lWMH)Gsg=r{J@8J)1Yr6exExyHdu*QWAs@TC_RPQW?!UOCCyioprLxH zkP3;3szhIiq)xD(R3>Xh?npewri$sQ;sd`Pkhh0gcp5J)F+`CCD_g(hYhfL z3@<)Q{jUskLZ;d;y|ELHrg4fHrfkTRcqJlVl6^hOaq>jfawn+p*r^aLgfEK+NtM`= zrKq&Ea>#DzEEk(C#Zqj7rLB~>ia(H9hKW@4&luvEdcJSiqAr$oW9m#MKB`5SiSsl8 zjupbIB;uNBs+Iy9KO!Q`OW-L17&~#~qMj@h&X8IO&@Ub&^fVf)!!%nn$!Kv{lK*Cx zzRg_l5IRH3K(df1WDBBeMm@--YC(Iq<1uUYq6WGy;l@! z->}G+i;vTtN&P13_4}$iKw%^&hmF&SO;bndlF>5>z+;0}F10N(pmgZW;-sMrrvw$n z5>r=^0VbJUa!TnCNf5VJR1f)oSw4zEG59Ggqhk(O7%|VGM5MeGxb^Xo6Gbj2kg&08 zuvk|V10?{(@2%JMHTqM~7rW`wCQRy@EK@+%t6}3et0p<<_9c_R`6H;5ZiiRakk~c! zZl7ZHqmAYFL9wqZss+EzX^>fS*(l1X3*-sYw1wl)SinfFV9j{80?3|fwh7Z057w)R zvPtdr+p>z1Snd!5$5?}+4O3_vvkf#U8NjUQDfQ^g>fZ7^%b`A}27Yec0(O z%Tg(S1eOSb$~I6>%)rbuAShMG<-seqP5Lxy3ha+e^vu!37dGH8S-pG=V1B6y~$Nv3f88GN;x zopi~HOR8|_xMIjiBC*Ur6H^lvs3@mx2*>OhHqs%G8a%al5#@uszoQ$Z`O|AF1CbT= zQ-Ji!tCCL%Uz;N%s=!w3sf|s89J54-%lQss;Y+c9u2F_d{{93ZFKs z%gS&_7p&oMSsM;#{&?=v^VV>PE0UY6l!wEyKN=1Lx+4Zd`YGUNnGd62d4D)$p65p_ za(piw4*!~Yi?z(V&s$S}##@meP5F#{-a1PkaQ%GAM^S6$i~=9mL-BIqN3A`~6*n!{ zxoBPAMpNJG?zKCu(24ltYs`CSKw)dbu6WQ&@04MDL2QkAYdCZ~CmIg-u5ZO1RQ%BJ z5&j%Mf5?2B%M~l%Rx*#(Z*oVuYVB?QIQO{p#jpN+|8@TL>Fdfrcbea2j&sFQa0z~~ z`)RYXtiw?*lqJ)I^~)`x!d`THjrI_`A!c80iwiHT6PN2{RorqB(s3{$kwWeiPwy(9 y#eV)p;Ng|-)ZtI?^G!aR&HgL%=)akt;qTvDJ6}}4E1l)Cr9b}e`waaTB7Oi}3)yJ^ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de_AT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/de_AT/__init__.py deleted file mode 100644 index 172beb7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/de_AT/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from ..de import Provider as BaseProvider - - -class Provider(BaseProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de_AT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/de_AT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0c78c1e048c94459d430d72839891fb265b4e798..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmX|7Jx;?g82#+DD2>{UGazN47O)~DSlAE}ow8VNY)IN94vt$9!PtQt^bCl#x8MRO z5)%^}Qeo+Y?WTD6-h1-*``!kF0PI@@lN$q{PPC!h;`+dlC2-&0S zG?#pqS>C7ge#Wxx&kL+=qs=2pWG;x7IuSX0Afp{I!zUuvBu`@{%T|n~Cd0WX<|IqU zq^xx!i<9BeF{x554oenK*`27!Et?8OOp#l^BC*V*B3#h(5ur3KQcdZwtlhpYbj&K1 zHERLy9bfef`#%O72kc=@|AJLw=ZW%dj!U%mZ~W8koo8xbq&2D9H{shu2z@~KvxiXc K`RNx7xT-&>nQW{8 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/de_CH/__init__.py deleted file mode 100644 index acbcdda..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/de_CH/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from collections import OrderedDict - -from faker.typing import OrderedDictType - -from ..de import Provider as BaseProvider - - -class Provider(BaseProvider): - all_colors: OrderedDictType[str, str] = OrderedDict( - (color_name.replace("ß", "ss"), color_hexcode) for color_name, color_hexcode in BaseProvider.all_colors.items() - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/de_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index bdd7927d2f8c0293412262997d3a6dc2254aa5e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1020 zcmY*YO=uHA6n-JW0Xc)V82K`DQmMbs%rPZ|1$3?|rlRoX_V#jQ6?9 zT>|huChd@J&%0v?*1!ORSYVSfAp%p2+EQ6UEEy>)Wv9zB0SY(3NUwk)b9r4#>dWbR zrl9NyQXo;+ZQtNNH^xmpMA~zNPSriWLz6V+j_+1Y%+!-Zl6a`dL%s$a%EW*&oyL2) zWRMl$sY=q%(JH9q|D!QkZ!e8Q2d!iOVwBT7!xgT~(o@KI)}W&}*QG+rml5dgG=u;` z&>;SHCotRsf}$Gmpby|a_OV2kXoFOa=3|x^!pe2gDUJr6r7y`En)r1;2T#;_*XC;I zhV$IkYU)%6ps^LMhpKJrzU#Hgj2o)ODtD@?WzMKxJ)C!)tHsM#)W8h+kf-Sj+8htm zS#5#)Di+006R7dks=?Xyn<`_bV}^_sz4}3RbdEc`=J{ifPjnu#c(|5DiNOU7Kj6qR{42x)PKr|T tVJ3$NWe3V=()gHv8mai+0&&Ani4gJ)2Djn-HWc<`iO8#seZVQM{Ra$7{Imc7 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de_DE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/de_DE/__init__.py deleted file mode 100644 index 172beb7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/de_DE/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from ..de import Provider as BaseProvider - - -class Provider(BaseProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/de_DE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/de_DE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 644f88efd113adad19676ebefdb0757ccf244178..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 439 zcmX|7Jx;?g82#*|D2>{UGazN47O)})1Y$!-FlDja*wC~|92~bIg0TZP=owH~Zovgm zBqk;{q{7k(+fDKCz4zqr_r3M|A=vjCj;{@TI?;wsi>p0D7Qlg{4004>1Q;%W<2i6o z;H9_8i&5=IoiA)ugqq+=$yv&UO4=?CP%BnFLlz()MjT>XqX;Y8<}&h{fYO5Hg3>0W zG?#puS>B`ce#)}V&kL+dYv zS+nNw?gy%C*#9xuIA9NJdZ(-sTTfJAb6ldee;pie?mSU_Bdtl*t_j~BLg)jcpB;p{ L&riQ#z*YSLqA+Zr diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/el_GR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/el_GR/__init__.py deleted file mode 100644 index 64f6cdb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/el_GR/__init__.py +++ /dev/null @@ -1,113 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """ - Implement color provider for ``el_GR`` locale. - Naming and hex codes are based on https://encycolorpedia.gr/named - """ - - all_colors = OrderedDict( - ( - ("άσιντ πράσινο", "#B0BF1A"), - ("άσπρο", "#FFFFFF"), - ("άστριοι", "#FDD5B1"), - ("αβοκάντο", "#568203"), - ("αγκινάρα", "#8F9779"), - ("αζούρ", "#8AB9F1"), - ("ακαζού", "#4C2F27"), - ("ασημένιο", "#C0C0C0"), - ("βαθύ κόκκινο", "#850101"), - ("βερικοκί", "#FBCEB1"), - ("βερμιγιόν", "#E34234"), - ("βιολετί", "#7F00FF"), - ("βρύο", "#8A9A5B"), - ("βυσσινί", "#DC143C"), - ("γαλάζιο", "#ADD8E6"), - ("γκρι", "#808080"), - ("γλαυκό", "#6082B6"), - ("εκρού", "#C2B280"), - ("ιβουάρ", "#FFFFF0"), - ("ινδικό", "#4B0082"), - ("κίτρινο", "#9B870C"), - ("καμηλό", "#C19A6B"), - ("κανέλα", "#D2691E"), - ("καστανέρυθρο", "#8B0000"), - ("καστανό", "#954535"), - ("καφέ", "#A52A2A"), - ("καφές", "#6F4E37"), - ("κυανό", "#800080"), - ("κεχριμπάρι", "#FFBF00"), - ("κόκκινο", "#FF0000"), - ("λάβα", "#CF1020"), - ("λαδί", "#3B3C36"), - ("λευκό", "#DBE9F4"), - ("μαρόν", "#800000"), - ("ματζέντα", "#CC00CC"), - ("μαόνι", "#CD4A4C"), - ("μαύρο", "#000000"), - ("μπέιμπι μπλου", "#89CFF0"), - ("μπεζ", "#F5F5DC"), - ("μπλε", "#0000FF"), - ("μπλε μαρέν", "#1974D2"), - ("μπορντό", "#7F1734"), - ("μπουργκουντί", "#900020"), - ("μυρτιά", "#317873"), - ("μωβ", "#B19CD9"), - ("ορείχαλκος", "#B5A642"), - ("πέρλα", "#EAE0C8"), - ("πεύκο", "#01796F"), - ("πλατίνα", "#E5E4E2"), - ("πορτοκαλί", "#FF7F00"), - ("πορτοκαλοκίτρινο", "#DAA520"), - ("πράσινο", "#000FF0"), - ("πράσινο chartreuse", "#7FFF00"), - ("πράσινο αγκινάρας", "#4B6F44"), - ("πράσινο ανοιχτό", "#90EE90"), - ("πράσινο ζούγκλας", "#29AB87"), - ("πράσινο λαουρέλ", "#A9BA9D"), - ("πράσινο σκούρο", "#013220"), - ("πράσινο της άνοιξης", "#00FF7F"), - ("πράσινο της μέντας", "#98FB98"), - ("πράσινο της φτέρης", "#4F7942"), - ("πράσινο του δάσους", "#228B22"), - ("πράσινο τσάι", "#D0F0C0"), - ("πράσινο χούκερ", "#49796B"), - ("ραφ", "#5D8AA8"), - ("ροζ", "#FFC0CB"), - ("ροζέ", "#FF007F"), - ("σέπια", "#704214"), - ("σαμπανιζέ", "#F7E7CE"), - ("σκάρλετ", "#FF2400"), - ("σκούρο βρύο", "#4A5D23"), - ("σπαραγγί", "#87A96B"), - ("ταν", "#D2B48C"), - ("φλαμίνγκο", "#FC8EAC"), - ("φούξια", "#F400A1"), - ("φτέρη", "#71BC78"), - ("χλωροφύλλη", "#4AFF00"), - ("χρυσαφένιο", "#FFD700"), - ("χρυσό", "#808000"), - ("ώχρα", "#E97451"), - ) - ) - - safe_colors = ( - "μαύρο", - "πράσινο", - "μπλε", - "κίτρινο", - "κόκκινο", - "μωβ", - "άσπρο", - "γκρι", - "ασημένιο", - "καφέ", - "λαδί", - "χρυσό", - "ροζ", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/el_GR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/el_GR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 651375ed31492cdc7fdbe6ab197a4c990f9eeee7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3372 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/es_ES/__init__.py deleted file mode 100644 index 3bcd5c1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/es_ES/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from ..es import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1416d9cc4fe81c4e568daf387fcc682766f608b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 461 zcmXw0u};G<5Is9>l~gTa72yTkYr^smg!Od;E?1|A@(yCPT5H0wr+uHA#wPa;V>u)%(F;~CPmv#wV`QpTr;6Wbwt~h zivqE0OG2SVcj>b5B9a`%f@B3jv+y72ADE%hO^YtFbKq*@Rlo1dgF`<^fRDNNo_ikO z`OdlbpJ&g`DSREzy}R=*Mfs2XNj_$h@5fdA_(16@-9lekE-V!aO1IdZ>KB)%mZl3z zQTeIToxY`XXZ-1prs6eAQ|q(yr#|PO`NHVTJ3-eE{I1jM3_mZ%&rbg`7+me)aVK68 ze|lsoi?(R~Ign`h!lp?=Q~HmGJuY;7ZW(*WQ#r3#H4$;p*C( z0vW^3iABwXwb z7yIkwnpU%{-fv}aetW)nn7c;0;R?*5HrjuQ{ndWJZ4N0?jHrj&o(+wd}w_<+DrCT z@xt?$4UJ5qxJkRzv3wG!@V9!Il^%hLxB>bcaXO9WoKH@y?p2TUDZ45?}*D52KB6KR?Cu z3|saU3owC*fKHpGFaZ~oXf|tAo7nymxB3TU>=2c36n-9H0(B87bZImRyXdbaBrBFY z+?L?E&8FTU26OIbys@oJ$-Ce1EZd*~0=yU&(w8hmJv8sGwM1uJMP5{zM(F6L8;l~v0WO_`dcyYAF zP|8TPYG6Gwn0$kUhXgBQ_=Ky-f>`w&5DOCTLbPM^o$Mao7hfJ^7>ViDh`CtgfC4tL z3;f5hVyS_$kTV zJAe+zEg^q5t-eGaX$|BC%n~o->H} z%vAtP(RCYqkjhScnO0q{9)oeBW~EasQ`3a6zf3>obsJNDv(``@mR4y!?oBp^HQTB+ zhz+Syu>x=QXb zDw@HZmQW>1u>*|ztV*-eY%uOZ`+}AD)HUSg^42; zccXuj^vH}td+eGZgn-K+hA|;O$Ig^SJeR_brx7V}^~tp=0)~Xbg~$>x(D1u#wFm{v zaH}k_EM3p0rzS`e0=dZy4v!X|nN*J_N$tzQ1;QN@7$Anl`VF*KX>Z}Wt|17_=`~SH znrKd%2A004w}8vyHrDhYjQ9||XEi+!A#{1F^bwpAWl_jaK{z~z;SgKLQzlp(VKFW8 zhit{7djQ1ZOf!bP?HF1u>o786gfl!;0GkOR@Jh)iGsAIA)nN_DrNoQ4&{AFDh7+Nt zaVN=G3rzStN&+TZ6F`tHlp%T}l;dLp+dydqh0>nW$RP;;_=EuK6}>5#rZlLCV-7s= z;h2D|x>g~i&SM>gX?2&@|KrX^?Qp2PkD6uWr_LTJUws%(Dr4 zG{8A+2&=APX*_C)XFfsu18c+s$Pt1>;56AnvqM314^2PCOjFgW)$~*pe#++}0l~u? zDR~YWU><9X%Ww)761KPji+D1N+d|#c;pLQblD#29{jQ#Fmrf#!a%0 zY9disU>a$EnRPQXiH;|kLfN`*RHfCDjc^u2662(frYA`v2gB@%P6V83(a6%3uo7T> zgYJI{Kv_7k5e^KV!?b0bQUsQ8_};>CH+M7Od3vqRIKA+gGUm5B(C#qyvGVDmd^`bM zQkCG6X0R7dP02+AE)84@P>d5L;cTc0lEw=nh07;TmV#Be{lJ|Ad%XCjfahQyIk@oY zf}S3ZFx*7MQP5wF0Z91bSRJ1jvXfmvL-M$h1Ohr3zJN6~pk4v*B4RmraDjo7V?d4- z{(uvh-l<0ereZ*!2SiHn5Oe@Bi%4#p%~xpS|((poD3%=z(?5=#_mkj<_{;0QHKxO(sY0RfFXjAyl^^|YwpT37ZvE**;kPXPKf_#; AjsO4v diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/fr_FR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/fr_FR/__init__.py deleted file mode 100644 index 3630f1f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/fr_FR/__init__.py +++ /dev/null @@ -1,167 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``fr_FR`` locale.""" - - all_colors = OrderedDict( - ( - ("Noir", "#000000"), - ("Gris mat", "#696969"), - ("Gris", "#808080"), - ("Gris foncé (Acier)", "#A9A9A9"), - ("Gris argent", "#C0C0C0"), - ("Gris clair", "#D3D3D3"), - ("Gris gainsboro (Etain)", "#DCDCDC"), - ("Blanc fumée", "#F5F5F5"), - ("Blanc spectral", "#F8F8FF"), - ("Blanc", "#FFFFFF"), - ("Ivoire", "#FFFFF0"), - ("Blanc floral", "#FFFAF0"), - ("Blanc coquillage", "#FFF5EE"), - ("Blanc lavande", "#FFF0F5"), - ("Blanc dentelle", "#FDF5E6"), - ("Blanc Lin", "#FAF0E6"), - ("Rose brumeux", "#FFE4E1"), - ("Rose", "#FFC0CB"), - ("Rose clair", "#FFB6C1"), - ("Rose Passion", "#FF69B4"), - ("Rose profond", "#FF1493"), - ("Violet pâle", "#DB7093"), - ("Fushia (Magenta)", "#FF00FF"), - ("Violet moyen", "#C71585"), - ("Violet chardon", "#D8BFD8"), - ("Prune", "#DDA0DD"), - ("Violet", "#EE82EE"), - ("Violet orchidée", "#DA70D6"), - ("Violet orchidée moyen", "#BA55D3"), - ("Violet orchidée foncé", "#9932CC"), - ("Violet foncé", "#9400D3"), - ("Bleu violet", "#8A2BE2"), - ("Indigo", "#4B0082"), - ("Bleu ardoise moyen", "#7B68EE"), - ("Bleu ardoise", "#6A5ACD"), - ("Bleu ardoise foncé", "#483D8B"), - ("Pourpre moyen", "#9370DB"), - ("Magenta foncé", "#8B008B"), - ("Pourpre", "#800080"), - ("Brun rosé", "#BC8F8F"), - ("Corail clair", "#F08080"), - ("Corail", "#FF7F50"), - ("Tomate", "#FF6347"), - ("Orangé", "#FF4500"), - ("Rouge", "#FF0000"), - ("Rouge cramoisi", "#DC143C"), - ("Saumon clair", "#FFA07A"), - ("Saumon Foncé", "#E9967A"), - ("Saumon", "#FA8072"), - ("Rouge Indien", "#CD5C5C"), - ("Rouge brique", "#B22222"), - ("Brun", "#A52A2A"), - ("Rouge foncé", "#8B0000"), - ("Bordeaux", "#800000"), - ("Beige", "#F5F5DC"), - ("Beige antique", "#FAEBD7"), - ("Beige papaye", "#FFEFD5"), - ("Amande", "#FFEBCD"), - ("Bisque", "#FFE4C4"), - ("Beige pêche", "#FFDAB9"), - ("Beige mocassin", "#FFE4B5"), - ("Jaune blanc navaro", "#FFDEAD"), - ("Jaune blé", "#F5DEB3"), - ("Brun bois rustique", "#DEB887"), - ("Brun roux", "#D2B48C"), - ("Brun sable", "#F4A460"), - ("Orange", "#FFA500"), - ("Orange foncé", "#FF8C00"), - ("Chocolat", "#D2691E"), - ("Brun pérou", "#CD853F"), - ("Terre de Sienne", "#A0522D"), - ("Brun cuir", "#8B4513"), - ("Jaune clair", "#FFFFE0"), - ("Jaune maïs doux", "#FFF8DC"), - ("Jaune doré clair", "#FAFAD2"), - ("Beige citron soie", "#FFFACD"), - ("Jaune doré pâle", "#EEE8AA"), - ("Brun kaki", "#F0E68C"), - ("Jaune", "#FFFF00"), - ("Or", "#FFD700"), - ("Jaune doré", "#DAA520"), - ("Jaune doré foncé", "#B8860B"), - ("Brun kaki foncé", "#BDB76B"), - ("Jaune vert", "#9ACD32"), - ("Kaki", "#6B8E23"), - ("Olive", "#808000"), - ("Vert olive foncé", "#556B2F"), - ("Vert jaune", "#ADFF2F"), - ("Chartreuse", "#7FFF00"), - ("Vert prairie", "#7CFC00"), - ("Citron vert", "#00FF00"), - ("Citron vert foncé", "#32CD32"), - ("Blanc menthe", "#F5FFFA"), - ("Miellat", "#F0FFF0"), - ("Vert pâle", "#98FB98"), - ("Vert clair", "#90EE90"), - ("Vert printemps", "#00FF7F"), - ("Vert printemps moyen", "#00FA9A"), - ("Vert forêt", "#228B22"), - ("Vert", "#008000"), - ("Vert foncé", "#006400"), - ("Vert océan foncé", "#8FBC8F"), - ("Vert océan moyen", "#3CB371"), - ("Vert océan", "#2E8B57"), - ("Gris ardoise clair", "#778899"), - ("Gris ardoise", "#708090"), - ("Gris ardoise foncé", "#2F4F4F"), - ("Bleu alice", "#F0F8FF"), - ("Bleu azur", "#F0FFFF"), - ("Cyan clair", "#E0FFFF"), - ("Azurin", "#AFEEEE"), - ("Aigue-marine", "#7FFFD4"), - ("Aigue-marine moyen", "#66CDAA"), - ("Cyan", "#00FFFF"), - ("Turquoise", "#40E0D0"), - ("Turquoise moyen", "#48D1CC"), - ("Turquoise foncé", "#00CED1"), - ("Vert marin clair", "#20B2AA"), - ("Cyan foncé", "#008B8B"), - ("Vert sarcelle", "#008080"), - ("Bleu pétrole", "#5F9EA0"), - ("Bleu poudre", "#B0E0E6"), - ("Bleu clair", "#ADD8E6"), - ("Bleu azur clair", "#87CEFA"), - ("Bleu azur", "#87CEEB"), - ("Bleu azur profond", "#00BFFF"), - ("Bleu toile", "#1E90FF"), - ("Bleu lavande", "#E6E6FA"), - ("Bleu acier clair", "#B0C4DE"), - ("Bleuet", "#6495ED"), - ("Bleu acier", "#4682B4"), - ("Bleu royal", "#4169E1"), - ("Bleu", "#0000FF"), - ("Bleu moyen", "#0000CD"), - ("Bleu foncé", "#00008B"), - ("Bleu marin", "#000080"), - ("Bleu de minuit", "#191970"), - ) - ) - - safe_colors = ( - "noir", - "bordeaux", - "vert", - "rouge", - "violet", - "sarcelle", - "bleu", - "argent", - "gris", - "jaune", - "fuchsia", - "cyan", - "blanc", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/fr_FR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/fr_FR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0fea309d64007647a160d61d8e94b9877f110dbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4202 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/hr_HR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/hr_HR/__init__.py deleted file mode 100644 index c71f499..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/hr_HR/__init__.py +++ /dev/null @@ -1,172 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``hr_HR`` locale.""" - - all_colors = OrderedDict( - ( - ("Akvamarin", "#7FFFD4"), - ("Antikna bijela", "#FAEBD7"), - ("Azurna", "#F0FFFF"), - ("Bež", "#F5F5DC"), - ("Bijela", "#FFFFFF"), - ("Bijelo bilje", "#FFFAF0"), - ("Bjelokost", "#FFFFF0"), - ("Blijeda kudelja", "#EEE8AA"), - ("Blijedi badem", "#FFEBCD"), - ("Blijedoljubičasta", "#DB7093"), - ("Blijedotirkizna", "#AFEEEE"), - ("Blijedozelena", "#98FB98"), - ("Breskva", "#FFDAB9"), - ("Brončana", "#D2B48C"), - ("Čeličnoplava", "#4682B4"), - ("Čičak", "#D8BFD8"), - ("Cijan", "#00FFFF"), - ("Čipka", "#FDF5E6"), - ("Čokoladna", "#D2691E"), - ("Crna", "#000000"), - ("Crvena", "#FF0000"), - ("Dim", "#F5F5F5"), - ("Dodger plava", "#1E90FF"), - ("Duboko ružičasta", "#FF1493"), - ("Fuksija", "#FF00FF"), - ("Gainsboro", "#DCDCDC"), - ("Grimizna", "#DC143C"), - ("Indigo", "#4B0082"), - ("Jelenska koža", "#FFE4B5"), - ("Kadetski plava", "#5F9EA0"), - ("Kestenjasta", "#800000"), - ("Koraljna", "#FF7F50"), - ("Kraljevski plava", "#4169E1"), - ("Kudelja", "#DAA520"), - ("Lan", "#FAF0E6"), - ("Lavanda", "#E6E6FA"), - ("Limun", "#FFFACD"), - ("Lipa", "#00FF00"), - ("Ljubičasta", "#EE82EE"), - ("Magenta", "#FF00FF"), - ("Maslinasta", "#808000"), - ("Medljika", "#F0FFF0"), - ("Menta", "#F5FFFA"), - ("Modro nebo", "#00BFFF"), - ("Modrozelena", "#008080"), - ("Mornarska", "#000080"), - ("Morskozelena", "#2E8B57"), - ("Mračno siva", "#696969"), - ("Narančasta", "#FFA500"), - ("Narančastocrvena", "#FF4500"), - ("Narančastoružičasta", "#FA8072"), - ("Noćno plava", "#191970"), - ("Orhideja", "#DA70D6"), - ("Papaja", "#FFEFD5"), - ("Peru", "#CD853F"), - ("Plava", "#0000FF"), - ("Plavi prah", "#B0E0E6"), - ("Plavi škriljevac", "#6A5ACD"), - ("Plavkasta", "#F0F8FF"), - ("Plavo cvijeće", "#6495ED"), - ("Plavo nebo", "#87CEEB"), - ("Plavoljubičasta", "#8A2BE2"), - ("Porculanska", "#FFE4C4"), - ("Prljavomaslinasta", "#6B8E23"), - ("Proljetnozelena", "#00FF7F"), - ("Prozirno bijela", "#F8F8FF"), - ("Pšenica", "#F5DEB3"), - ("Purpurna", "#800080"), - ("Rajčica", "#FF6347"), - ("Rumena lavanda", "#FFF0F5"), - ("Ružičasta", "#FFC0CB"), - ("Ružičastosmeđa", "#BC8F8F"), - ("Siva", "#808080"), - ("Sivi škriljevac", "#708090"), - ("Sivožuta", "#F0E68C"), - ("Smeđa", "#A52A2A"), - ("Smeđe sedlo", "#8B4513"), - ("Smeđi pijesak", "#F4A460"), - ("Smeđkasto bijela", "#FFDEAD"), - ("Snijeg", "#FFFAFA"), - ("Srebrna", "#C0C0C0"), - ("Srednja akvamarin", "#66CDAA"), - ("Srednja crvenoljubičasta", "#C71585"), - ("Srednja morskozelena", "#3CB371"), - ("Srednja orhideja", "#BA55D3"), - ("Srednja plava", "#0000CD"), - ("Srednja proljetnozelena", "#00FA9A"), - ("Srednja purpurna", "#9370DB"), - ("Srednja tirkizna", "#48D1CC"), - ("Srednje plavi škriljevac", "#7B68EE"), - ("Svijetla čeličnoplava", "#B0C4DE"), - ("Svijetla narančastoružičasta", "#FFA07A"), - ("Svijetli cijan", "#E0FFFF"), - ("Svijetlo drvo", "#DEB887"), - ("Svijetlokoraljna", "#F08080"), - ("Svijetlomorskozelena", "#20B2AA"), - ("Svijetloplava", "#ADD8E6"), - ("Svijetloružičasta", "#FFB6C1"), - ("Svijetlosiva", "#D3D3D3"), - ("Svijetlosivi škriljevac", "#778899"), - ("Svijetlozelena", "#90EE90"), - ("Svijetložuta kudelja", "#FAFAD2"), - ("Svijetložuta", "#FFFFE0"), - ("Šamotna opeka", "#B22222"), - ("Školjka", "#FFF5EE"), - ("Šljiva", "#DDA0DD"), - ("Tamna kudelja", "#B8860B"), - ("Tamna magenta", "#8B008B"), - ("Tamna narančastoružičasta", "#E9967A"), - ("Tamna orhideja", "#9932CC"), - ("Tamna sivožuta", "#BDB76B"), - ("Tamni cijan", "#008B8B"), - ("Tamno zelena", "#006400"), - ("Tamnocrvena", "#8B0000"), - ("Tamnoljubičasta", "#9400D3"), - ("Tamnomaslinasta", "#556B2F"), - ("Tamnonarančasta", "#FF8C00"), - ("Tamnoplava", "#00008B"), - ("Tamnoplavi škriljevac", "#483D8B"), - ("Tamnosiva", "#A9A9A9"), - ("Tamnosivi škriljevac", "#2F4F4F"), - ("Tamnotirkizna", "#00CED1"), - ("Tamnozelena", "#8FBC8F"), - ("Tirkizna", "#40E0D0"), - ("Topla ružičasta", "#FF69B4"), - ("Vedro nebo", "#87CEFA"), - ("Voda", "#00FFFF"), - ("Zelena lipa", "#32CD32"), - ("Zelena šuma", "#228B22"), - ("Zelena tratina", "#7CFC00"), - ("Zelena", "#008000"), - ("Zeleni liker", "#7FFF00"), - ("Zelenožuta", "#ADFF2F"), - ("Zlatna", "#FFD700"), - ("Žućkastocrvena zemlja", "#CD5C5C"), - ("Žućkastoružičasta", "#FFE4E1"), - ("Žućkastosmeđa glina", "#A0522D"), - ("Žuta svila", "#FFF8DC"), - ("Žuta", "#FFFF00"), - ("Žutozelena", "#9ACD32"), - ) - ) - - safe_colors = ( - "crna", - "kestenjasta", - "zelena", - "mornarska", - "maslinasta", - "purpurna", - "modrozelena", - "lipa", - "plava", - "srebrna", - "siva", - "žuta", - "fuksija", - "voda", - "bijela", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/hr_HR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/hr_HR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0fc7d0375ee92fa27400018426f11b20f505c7f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4474 zcmZ`-O>f)i5td|GlI4#$yJ@!t7A=AFP#+q7krW9O1^AinI!=rvO#z{RLW@jHi4s*( zG#V8Jw!i}EAvyH4*W_62vAs4Y`_x}h0tH$WJ?t$&+DlG-W=MV5X(hmx-kJBEd1sz^ zW~jgH?$!(R`cr-Q$L|yh|KuLAE9P zo9{2Y`vJaxRqzVEqFd;d++uH|RPf4f>FZ*q*xPhBdX;D8gUyJ1o!|OwJPo|DH<<~8 zFbE@Inx8K`!I#I6Pow@%?>~Ml1mVC5yjuq^4oc~kHac_0PUKJK)tg=0woUP%G~d%E zGk-L3gcE=01r9{EX6a@Z8!Fm7i6*?%gt~oDO3E;xfBw>mXSCPUyG^wNYx%k1%#TL?oNuDpIN5?MKR29vfyWY6v2|5} zq^d_=j8L&HQ`1%0+9F#~IDrjTHru+W;PS~H1m`cj0M;krG;nyEC@YXdT4gDDHX^?i z-8RX>rr{5r$@}Wf<|3|@OmRA5tEMekGPV<7&tD*1f#c?8Wwk}#myIkjO@3jaVnk=z zJrGj7u(VLO1Ex1{vO3@+mS!cV{IBOvBL=YY~uP)Nl(<9O{Ja3?Q;r!JVM&T zi#J)gEm0>|_YRTlSv>NW&PujwX>_aYLoc3rlVP4~Wf6edVHi2Vki%r#U0Whx?H|&b zceZ|#*pgMNg_Ej>OSGAqCbcUKCoVZ>$(C#bk?H0gf1I!uP)$fo z%Xj=KsZeAn^vO0Ndgl@*0p~X3u6pD=McF#h4d`HR{m6*}f3my|T?osyBhL+neuf7^ z2`z3O(N6MDqKd)=>qns*g~G%;q3AZ7I@e#i&C5$@Bj$MHfUTntxQP&R)~0o=?qD?@ zttz2yDY^s#NOs`jQREP`h1h3k%PPI|E8cY?he{$VJ9s4V?XP3oN)!%O$P_b$Z(mlp z0y<4;b_pV6{cd>v9LATBRa1)VZgm|C}KQnD(?&eY*0+qP^IKuXKUUXZf3fK@k11MPw-AYR`#6jSN#Ibi z;5gh)G(a!u_2UR^c@~b>AtdXH)n@iX&w<;s$ttsSNU&*gfBX2HV zdlP?F3I5K0L<2`S%qhUYJHWn1oufX;mHeuD1g2o&wCeh9ORO8yaXLk@yTvdTer znYf8@A1uyC^=oa^6Jw57Jt0N`Qc)?oD7A2Zrh1kEEJ$t4oNkMnD3c*_ouvec^|0Ee zr4dO~9!#+7Dd!LTLQGP95P2sVks|pD-)y+RyO8ytPG?hqc zc{I?n0F2r}ks`$_;aXD`6|-efH(g!Nasx{Y-e$LPR?eB-ncjB+eLUn$UX>T zS5Z`uc)GaoiXqgdg|Prfd~59pE}pgFjNoe$Mekl!%Fu0FbOKS~#VcnV&cFlV)MM__ z+w_8zh~wfFMw?;IX_$E^Wi&Efyh7_^+?l4Wbtpw@sol-gCJNsMtkGO|P-=64y(TthWJA?jS5)-8AbIiorJPEL>oW z404315iccIQ6efGOsp`x#VR?*P~v#QBmrb0xVp7%i+E!zCue>B28~!IVKf6$saLVV_D4}rF=&_JKi<0gyP!?pX+;u>#Y zC_*%^rR4z{TDm=2P3dW6&Vf(2K!U(0hM2Uzf^k|~w25?kOw(+xU8X#xn~d4C8fTp{ zEfWkgr>LW+)hF4LNm@Qbs?$m~&fGnyrnP>5;*7n1KdtxsI5-LD^G?72%ftzCNwwd1 z!$H3v(SvwecY>hLkJE9w9Xn6F{L3E-?;tL`|8?Uu9D9vfI6L*m&aWB|7auT84ZXpv zG4=;hh$nIWauUuOxA07M)(HHQ#`M|jG@Nv9wc3r?pLsu;I)f1yD{ee-fRzR|@y`Qs zgY7r?`MuHa`xAfG@86m}4}ZQa{I#t7OGl-x`n!#LrH?9KeE#;N zy#I0Kw};UqsPKln2bFXi#|CiG4<~VU*-V!18uar4F2Lr~E&jp4pQD<7M*I1YpX1Z} z+K;ms{v`SZzS7SU?8MuRVzKzQ!p(mbe)#vD{V%ruU2#jr%I|*jAN+7qtnmK-0(zNH AV*mgE diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/hu_HU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/hu_HU/__init__.py deleted file mode 100644 index 18e36c1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/hu_HU/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -from .. import Provider as ColorProvider - - -class Provider(ColorProvider): - """Implement color provider for ``hu_HU`` locale.""" - - safe_colors = ( - "fekete", - "bordó", - "zöld", - "királykék", - "oliva", - "bíbor", - "kékeszöld", - "citromzöld", - "kék", - "ezüst", - "szürke", - "sárga", - "mályva", - "akvamarin", - "fehér", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/hu_HU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/hu_HU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a7b4dfdc05a3929dd1de992299c55f4b331ee797..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697 zcmYLHF^|(Q6tErI6dLP?|bik@4e*n`#u=-QFFfbPu3WrU(VTHovq#6 z1#pfy;#eYuBM&1F9U|_XA?^$Bli%_pya>Y1Zx6f>*S%LpmkAdp-ga>YM!2)N1LhnF z6k(1ckK@SaUKA|+FfdKK<>-Z)OQA$&hq0F04CmW+!zno9@vNZF-;BpYsbeO^DBQ2R zQ;`ZQiY}B-wBgm4qWOVk^-c0(7f_m*>OwBkYL(U={=XtltkJ6V zgQf%IU5!{)>)aMQ5Ci(!r0v+ex-iGgg;g`EWc3Y}mP|2|WUg>3X4T3Zg`K)bX~vYG zwC+=?G%sX>_b7c^FuBd_P|9@-;oY1~1$9E?E3|>J=<1Zrv=YQ>I}?h%Bd@Ok2!A4C zOH>jY4YE0BqAeMfA}fhZCS<;_Go3veJ$Oj+#EScK7N_i3h(SpU0WBe1{`_nzZ-H-48A~3G%A66a7Z2$lO diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/hy_AM/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/hy_AM/__init__.py deleted file mode 100644 index 011aaf6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/hy_AM/__init__.py +++ /dev/null @@ -1,168 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - - -class Provider(ColorProvider): - """Implement color provider for ``hy_AM`` locale.""" - - all_colors = OrderedDict( - ( - ("Ալիսի կապույտ", "#F0F8FF"), - ("Անանուխի կրեմ", "#F5FFFA"), - ("Անտառային կանաչ", "#228B22"), - ("Արծաթագույն", "#C0C0C0"), - ("Արքայական կապույտ", "#4169E1"), - ("Բաց դեղին", "#FFFFE0"), - ("Բաց դեղնաոսկեգույն", "#FAFAD2"), - ("Բաց երկնագույն", "#87CEFA"), - ("Բաց ծովային կանաչ", "#20B2AA"), - ("Բաց կաթնագույն", "#FFFFF0"), - ("Բաց կանաչ", "#90EE90"), - ("Բաց կապույտ", "#ADD8E6"), - ("Բաց կապտականաչ", "#E0FFFF"), - ("Բաց կորալ", "#F08080"), - ("Բաց մանուշակագույն", "#EE82EE"), - ("Բաց մոխրագույն թերթաքար", "#778899"), - ("Բաց մոխրագույն", "#D3D3D3"), - ("Բաց նշագույն", "#FFEBCD"), - ("Բաց պողպատե կապույտ", "#B0C4DE"), - ("Բաց սաղմոնագույն", "#FFA07A"), - ("Բաց վարդագույն", "#FFB6C1"), - ("Բեժ", "#F5F5DC"), - ("Բոսորագույն", "#DC143C"), - ("Գարնանային կանաչ", "#00FF7F"), - ("Գեյնսբորրո", "#DCDCDC"), - ("Գունատ կանաչ", "#98FB98"), - ("Գունատ կարմիր մանուշակագույն", "#DB7093"), - ("Գունատ ոսկեգույն", "#EEE8AA"), - ("Գունատ փիրուզագույն", "#AFEEEE"), - ("Գրասենյակային կանաչ", "#008000"), - ("Դարչնագույն ավազ", "#F4A460"), - ("Դարչնագույն", "#964B00"), - ("Դեղին", "#FFFF00"), - ("Դեղձի կրեմ", "#FFDAB9"), - ("Դեղնականաչ", "#9ACD3"), - ("Դոդջերս կապույտ", "#1E90FF"), - ("Եգիպտացորենի մազիկներ", "#FFF8DC"), - ("Երկնագույն մառախուղ", "#F0FFFF"), - ("Երկնագույն", "#87CEEB"), - ("Զինվորական կանաչ", "#6B8E23"), - ("Թամբի դարչնագույն", "#8B4513"), - ("Թեժ վարդագույն", "#FF69B4"), - ("Թուխ", "#D2B48C"), - ("Ինդիգո", "#4B0082"), - ("Լայմի կանաչ", "#32CD32"), - ("Լավանդ", "#E6E6FA"), - ("Լոլիկ", "#FF6347"), - ("Խակի", "#F0E68C"), - ("Խոլորձագույն", "#DA70D6"), - ("Ծխագույն", "#F5F5F5"), - ("Ծովախեցի", "#FFF5EE"), - ("Ծովակնագույն", "#7FFFD4"), - ("Ծովային կանաչ", "#2E8B57"), - ("Կադետների կապույտ", "#5F9EA0"), - ("Կաթնագույն", "#FFFAF0"), - ("Կակաոյի դարչնագույն", "#D2691E"), - ("Կանաչ", "#00FF00"), - ("Կանաչադեղին", "#ADFF2F"), - ("Կապույտ թերթաքար", "#6A5ACD"), - ("Կապույտ մանուշակագույն", "#8A2BE2"), - ("Կապույտ փոշի", "#B0E0E6"), - ("Կապույտ", "#0000FF"), - ("Կապտականաչ", "#00FFFF"), - ("Կարմիր դարչնագույն", "#A52A2A"), - ("Կարմիր լավանդ", "#FFF0F5"), - ("Կարմիր մանուշակագույն", "#C71585"), - ("Կարմիր", "#FF0000"), - ("Կեսգիշերային կապույտ", "#191970"), - ("Կիտրոնի շիֆոն", "#FFFACD"), - ("Կորալ", "#FF7F50"), - ("Հարած պապայա", "#FFEFD5"), - ("Հին ժանյակ", "#FDF5E6"), - ("Հնաոճ սպիտակ", "#FAEBD7"), - ("Հնդկական կարմիր", "#CD5C5C"), - ("Հրակայուն աղյուս", "#B22222"), - ("Ձիթապտղի գույն", "#808000"), - ("Ձյունաճերմակ", "#FFFAFA"), - ("Մանուշակագույն", "#800080"), - ("Մեղրացող սեխ", "#F0FFF0"), - ("Միջին գարնանային կանաչ", "#00FA9A"), - ("Միջին խոլորձագույն", "#BA55D3"), - ("Միջին ծովակնագույն", "#66CDAA"), - ("Միջին ծովային կանաչ", "#3CB371"), - ("Միջին կապույտ թերթաքար", "#7B68EE"), - ("Միջին կապույտ", "#0000CD"), - ("Միջին կապտականաչ", "#9370DB"), - ("Միջին փիրուզագույն", "#48D1CC"), - ("Մոխրագույն թերթաքար", "#708090"), - ("Մոխրագույն", "#808080"), - ("Մոկասին", "#FFE4B5"), - ("Մուգ երկնագույն", "#00BFFF"), - ("Մուգ խակի", "#BDB76B"), - ("Մուգ խոլորձագույն", "#9932CC"), - ("Մուգ ծովային կանաչ", "#8FBC8F"), - ("Մուգ կանաչ", "#006400"), - ("Մուգ կապույտ թերթաքար", "#483D8B"), - ("Մուգ կապույտ", "#00008B"), - ("Մուգ կապտականաչ", "#008080"), - ("Մուգ կարմիր", "#8B0000"), - ("Մուգ ձիթապտղի կանաչ", "#556B2F"), - ("Մուգ մանուշակագույն", "#9400D3"), - ("Մուգ մոխրագույն թերթաքար", "#2F4F4F"), - ("Մուգ մոխրագույն", "#696969"), - ("Մուգ մոխրագույն", "#A9A9A9"), - ("Մուգ նարնջագույն", "#FF8C00"), - ("Մուգ ոսկեգույն", "#B8860B"), - ("Մուգ սաղմոնագույն", "#E9967A"), - ("Մուգ վառ մանուշակագույն", "#8B008B"), - ("Մուգ վարդագույն", "#FF1493"), - ("Մուգ փիրուզագույն", "#00CED1"), - ("Նավահո սպիտակ", "#FFDEAD"), - ("Նավատորմի կապույտ", "#000080"), - ("Նարնջագույն կարմիր", "#FF4500"), - ("Նարնջագույն", "#FFA500"), - ("Նշագույն", "#FFE4C4"), - ("Շագանակագույն", "#800000"), - ("Շարտրուզ", "#7FFF00"), - ("Ոսկեգույն ձող", "#DAA520"), - ("Ոսկեգույն", "#FFD700"), - ("Պերու", "#CD853F"), - ("Պողպատե կապույտ", "#4682B4"), - ("Սալոր", "#DDA0DD"), - ("Սաղմոնագույն", "#FA8072"), - ("Սիենա", "#A0522D"), - ("Սիզամարգի կանաչ", "#7CFC00"), - ("Սպիտակ ստվեր", "#F8F8FF"), - ("Սպիտակ", "#FFFFFF"), - ("Սև", "#000000"), - ("Վառ մանուշակագույն", "#FF00FF"), - ("Վարդագույն", "#FFC0CB"), - ("Վարդագույն", "#FFE4E1"), - ("Վարդադարչնագույն", "#BC8F8F"), - ("Վուշ", "#FAF0E6"), - ("Տատասկ", "#D8BFD8"), - ("Տերեփուկի կապույտ", "#6495ED"), - ("Ցորենագույն", "#F5DEB3"), - ("Փիրուզագույն", "#40E0D0"), - ("Փխրուն փայտ", "#DEB887"), - ) - ) - - safe_colors = ( - "սև", - "շագանակագույն", - "կանաչ", - "նավատորմի կապույտ", - "ձիթապտղի գույն", - "մանուշակագույն", - "մուգ կապտականաչ", - "լայմ", - "կապույտ", - "արծաթագույն", - "մոխրագույն", - "դեղին", - "վառ մանուշակագույն", - "կապտականաչ", - "սպիտակ", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/hy_AM/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/hy_AM/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2482f58f22d8808830bfb37dc777aa1e0fabfe88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6730 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 A`~Uy| diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/ka_GE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/ka_GE/__init__.py deleted file mode 100644 index c1ed223..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/ka_GE/__init__.py +++ /dev/null @@ -1,92 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``ka_GE`` locale.""" - - all_colors = OrderedDict( - ( - ("ანტიკური თეთრი", "#FAEBD7"), - ("აკვამარინი", "#7FFFD4"), - ("ლურჯი", "#F0FFFF"), - ("ბეჟი", "#F5F5DC"), - ("შავი", "#000000"), - ("ცისფერი", "#0000FF"), - ("საზღვაო ლურჯი", "#8A2BE2"), - ("ყავისფერი", "#A52A2A"), - ("შოკოლადისფერი", "#D2691E"), - ("კორალისფერი", "#FF7F50"), - ("ვერცხლისფერი", "#6495ED"), - ("ჟოლოსფერი", "#DC143C"), - ("მუქი ლურჯი", "#00008B"), - ("მუქი ცისფერი", "#008B8B"), - ("მუქი ნაცრისფერი", "#A9A9A9"), - ("მუქი მწვანე", "#006400"), - ("მუქი ხაკისფერი", "#BDB76B"), - ("მუქი ნარინჯისფერი", "#FF8C00"), - ("მუქი წითელი", "#8B0000"), - ("მუქი ზღვისფერი", "#00CED1"), - ("მუქი იასამნისფერი", "#9400D3"), - ("მუქი ვარდისფერი", "#FF1493"), - ("მკვდარი ნაცრისფერი", "#696969"), - ("ფუქსია", "#FF00FF"), - ("ოქროსფერი", "#FFD700"), - ("ნაცრისფერი", "#808080"), - ("მწვანე", "#008000"), - ("ყვითელ-მწვანე", "#ADFF2F"), - ("ინტენსიური ვარდისფერი", "#FF69B4"), - ("ინდიგო", "#4B0082"), - ("სპილოს ძვალი", "#FFFFF0"), - ("ხაკისფერი", "#F0E68C"), - ("ლავანდისფერი ვარდისფერი", "#FFF0F5"), - ("ღია ლურჯი", "#ADD8E6"), - ("ღია ცისფერი", "#E0FFFF"), - ("ღია ნაცრისფერი", "#D3D3D3"), - ("ღია მწვანე", "#90EE90"), - ("ღია ვარდისფერი", "#FFB6C1"), - ("ღია ცისფერი", "#87CEFA"), - ("ღია ყვითელი", "#FFFFE0"), - ("მეწამული", "#800000"), - ("ნარინჯისფერი", "#FFA500"), - ("ნარინჯისფერი წითელი", "#FF4500"), - ("ღია მწვანე", "#98FB98"), - ("ღია ზღვისფერი", "#AFEEEE"), - ("ვარდისფერი", "#FFC0CB"), - ("ქლიავისფერი", "#DDA0DD"), - ("იასამნისფერი", "#800080"), - ("წითელი", "#FF0000"), - ("ზღვისფერი", "#2E8B57"), - ("ვერცხლისფერი", "#C0C0C0"), - ("თურქული ლურჯი", "#40E0D0"), - ("იისფერი", "#EE82EE"), - ("თეთრი", "#FFFFFF"), - ("ყვითელი", "#FFFF00"), - ("ყვითელ-მწვანე", "#9ACD32"), - ("ბრინჯაოსფერი", "#CD7F32"), - ("მსხლისფერი", "#D1E231"), - ("თითბერისფერი", "#D5A642"), - ("მანდარინისფერი", "#FF8800"), - ("ფიჭვისფერი", "#01796F"), - ("ზეთისხილისფერი", "#808000"), - ) - ) - - safe_colors = ( - "შავი", - "მუქი წითელი", - "მწვანე", - "ხაკისფერი", - "იასამნისფერი", - "თურმანჯურა", - "ცაცხვისფერი", - "ცისფერი", - "ვერცხლისფერი", - "ნაცრისფერი", - "ყვითელი", - "ფუქსია", - "თეთრი", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/ka_GE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/ka_GE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 903875b6845270e44154111d81b9d02b7b21e05d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3680 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 Ag8%>k diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/ru_RU/__init__.py deleted file mode 100644 index aed6348..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/ru_RU/__init__.py +++ /dev/null @@ -1,86 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``ru_RU`` locale.""" - - all_colors = OrderedDict( - ( - ("Античный Белый", "#FAEBD7"), - ("Аквамарин", "#7FFFD4"), - ("Лазурный", "#F0FFFF"), - ("Бежевый", "#F5F5DC"), - ("Черный", "#000000"), - ("Синий", "#0000FF"), - ("Сине-фиолетовый", "#8A2BE2"), - ("Коричневый", "#A52A2A"), - ("Шоколадный", "#D2691E"), - ("Коралловый", "#FF7F50"), - ("Васильковый", "#6495ED"), - ("Малиновый", "#DC143C"), - ("Темно-синий", "#00008B"), - ("Темно-голубой", "#008B8B"), - ("Темно-серый", "#A9A9A9"), - ("Темно-зеленый", "#006400"), - ("Темный хаки", "#BDB76B"), - ("Темно-оранжевый", "#FF8C00"), - ("Темно-красный", "#8B0000"), - ("Темно-бирюзовый", "#00CED1"), - ("Темно-фиолетовый", "#9400D3"), - ("Темно-розовый", "#FF1493"), - ("Тусклый серый", "#696969"), - ("Фуксия", "#FF00FF"), - ("Золотой", "#FFD700"), - ("Серый", "#808080"), - ("Зеленый", "#008000"), - ("Желто-зеленый", "#ADFF2F"), - ("Ярко-розовый", "#FF69B4"), - ("Индиго", "#4B0082"), - ("Слоновая кость", "#FFFFF0"), - ("Хаки", "#F0E68C"), - ("Розовато-лавандовый", "#FFF0F5"), - ("Светло-синий", "#ADD8E6"), - ("Светло-голубой", "#E0FFFF"), - ("Светло-серый", "#D3D3D3"), - ("Светло-зеленый", "#90EE90"), - ("Светло-розовый", "#FFB6C1"), - ("Светло-голубой", "#87CEFA"), - ("Светло-желтый", "#FFFFE0"), - ("Каштановый", "#800000"), - ("Оранжевый", "#FFA500"), - ("Оранжево-красный", "#FF4500"), - ("Бледно-зеленый", "#98FB98"), - ("Бледно-Бирюзовый", "#AFEEEE"), - ("Розовый", "#FFC0CB"), - ("Сливовый", "#DDA0DD"), - ("Пурпурный", "#800080"), - ("Красный", "#FF0000"), - ("Цвет морской волны", "#2E8B57"), - ("Серебряный", "#C0C0C0"), - ("Бирюзовый", "#40E0D0"), - ("Фиолетовый", "#EE82EE"), - ("Белый", "#FFFFFF"), - ("Желтый", "#FFFF00"), - ("Желто-зеленый", "#9ACD32"), - ) - ) - - safe_colors = ( - "черный", - "бордовый", - "зеленый", - "оливковый", - "пурпурный", - "teal", - "lime", - "синий", - "серебряный", - "серый", - "желтый", - "фуксия", - "белый", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index c8427ec66fdcd1b751ddb6ec5a1f2356aac7da45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2907 zcmZ`*-*4Mg6t z;bp-XSQ3n=8Mz+z))m8ZgYlueG>D6>-LKh(X`6;pDL3whyl+FV+qE+ld_Gq8mUwr6 zy|DEx#+LjiE91_fk5xOpVg2e$NT#U{|;sZ9>IzRSGb;dHQ=5!-gu30rZ zHskA$oxosf%AVEVcynqhX4T3i%N&c#@zCrOSm=E0+;Pu3>+T15e(3xXb1pe+PLp2e z2M=pGHLpxU^nfS2;oNXmoZHTdyWp%lcOWsTX_}IP#6FVv9J9CFbC_jiq(Op!hWWiT zPr84`|3+JXT1zVh%H=QPwoW--f zg`7*~)g;tBM8a2`O){Ol?J^^mPUe!iw#@ffy}_DRoSPj-lw>A5uC`@7JuBF)*|nFZ zO=@WgGLO(+p8%#s*wl0{u)elMnN&8dDv)AOzW`)Sb}q14DU7Ek2$qLQ&o{92HtgLT zWp&*s$ax4o-Yew%M7F!D;u z`#xORaMlr_ypo^HkZl~HzyU^o1-|r7>FqFHcyBQImTW0Q&z z;*?b7e3}{~!@tapYt31O_{C1Sg3Y)f!|?a>Iwh%+(h1^Kc(t>Csj8f0WVjggG-ptN z+aRZ>pY9#R$S3e>(BoA$S5PLB@exjCbU*Ogv(tkVtpXo9dFDl-ht{4GWFA3J?UCD= z_u0d`3-MN@VV0~`#Hv(H?%!1TKosUwKf*Q+&S)}r@4y8iZT$?|6gb=|0yb={`3R%^IqSvsGX>aE@N z(h1Wa{2**$T6pko;$*FACK|QINwZpdCvmL(g7e!cv)o8jD`mTe!xj&Y*BXhjGv@S} zgjG47n3-#wtW8ghjVBZJO2ZtTDV0x`-ZJZn6Q$FpooJuX>IvRI!AG=&u2-fj4P76b znd6fk->5p&58<{X{2r12+JER?D7$NTEBwNN=)#eE^Wxrv(ZyG7;u(t{jYnI%q11wb zmD+UObJd$`jTGp72=n>)+1kY?!pgj9*!yWcD>;a_2SYD<2)<-Lh9R9h>rdf!FD#1U dAHv~(gy;XvICs9rjeQQbFKUVyDs||> z+&LpcY|JdB6Eg!RF)^`K3M`#?cCH@$-skWA()av*Fz6$HzVwfNV1#}L&|aO^uJ3_! zfeKV$i4@Kvj3V>`710?gVjg{pH*pzWCTZtS1SrK#@0HODQE-#DRf2&Q;jHh1xj-Cc zxIkG{;4ChpELp~BVtl!i(MvU#T=B{cb1k(Q&f9Xs62N$DXY}>{cs!IkXOfT7JM|W% zefuD|saU-Y{vo?sIacY#U?>TgG>^&Ims7byv05&I;e#2VH%Yu1zoNd}>8V9{|JN)=V)Y!kkTK zBDiD+X{YH?S~0~bZTgf#k6Lwp>ufNwyfkd=wv^lHIzj+@5oduPMmgA zuGleobL+rfj(F~f61mZ!Y5)`M$Y{Z<1(9Mx=1Vu#)#K5_N5l%pAIur(bjU3!*^C=< zy9!G}OA>ZLC>51(l#b@hu)=U9FpBjuo}r(~lj~%6uY0<0{6nA*(zw}p&EUCTGYl6# rjq!SJ;=D>Xy{8)uo|#>M{uf#QgRWzY@h^1$Z+8!O&)@$;U_#b^(cjc= diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/th_TH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/th_TH/__init__.py deleted file mode 100644 index 08d8797..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/th_TH/__init__.py +++ /dev/null @@ -1,52 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """Implement color provider for ``th_TH`` locale. - - Sources: - - https://th.wikipedia.org/wiki/รายชื่อสี - """ - - all_colors = OrderedDict( - ( - ("สีดำ", "#000000"), - ("สีน้ำเงินเขียว", "#0095B6"), - ("สีน้ำเงินม่วง", "#8A2BE2"), - ("สีทองแดง", "#CD7F32"), - ("สีน้ำตาล", "#964B00"), - ("สีกาแฟ", "#6F4E37"), - ("สีทอง", "#FFD700"), - ("สีเทา", "#808080"), - ("สีเขียว", "#00FF00"), - ("สีหยก", "#00A86B"), - ("สีส้ม", "#FFA500"), - ("สีส้มแดง", "#FF4500"), - ("สีออร์คิด", "#DA70D6"), - ("สีชมพู", "#FFC0CB"), - ("สีม่วง", "#800080"), - ("สีแดง", "#FF0000"), - ("สีเงิน", "#C0C0C0"), - ("สีขาว", "#FFFFFF"), - ("สีเหลือง", "#FFFF00"), - ) - ) - - safe_colors = ( - "สีดำ", - "สีน้ำตาล", - "สีทอง", - "สีเขียว", - "สีส้ม", - "สีชมพู", - "สีม่วง", - "สีเงิน", - "สีแดง", - "สีเงิน", - "สีขาว", - "สีเหลือง", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/th_TH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/th_TH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 953c7186b5a5285f0b68a952f9b3dc7e6effff1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1502 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/vi_VN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/color/vi_VN/__init__.py deleted file mode 100644 index 1d06fd0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/color/vi_VN/__init__.py +++ /dev/null @@ -1,90 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as ColorProvider - -localized = True - - -class Provider(ColorProvider): - """ - Implement color provider for ``vi_VN`` locale. - - #Sources: https://vi.wikipedia.org/wiki/Danh_s%C3%A1ch_m%C3%A0u - """ - - all_colors = OrderedDict( - ( - ("Trắng Antique", "#FAEBD7"), - ("Aquamarine", "#7FFFD4"), - ("Azure", "#F0FFFF"), - ("Beige", "#F5F5DC"), - ("Đen", "#000000"), - ("Xanh dương", "#0000FF"), - ("Xanh tím", "#8A2BE2"), - ("Nâu", "#A52A2A"), - ("Sô cô la", "#D2691E"), - ("San hô", "#FF7F50"), - ("Xanh hải quân", "#6495ED"), - ("Hồng đào", "#DC143C"), - ("Xanh đậm", "#00008B"), - ("Xanh biển đậm", "#008B8B"), - ("Xám đậm", "#A9A9A9"), - ("Xanh lá đậm", "#006400"), - ("Rêu đậm", "#BDB76B"), - ("Cam đậm", "#FF8C00"), - ("Đỏ đậm", "#8B0000"), - ("Xanh ngọc đậm", "#00CED1"), - ("Tím đậm", "#9400D3"), - ("Hồng đậm", "#FF1493"), - ("Xám xỉn", "#696969"), - ("Hồng fuchsia", "#FF00FF"), - ("Vàng", "#FFD700"), - ("Xám", "#808080"), - ("Xanh lá cây", "#008000"), - ("Xanh lá cây nhạt", "#ADFF2F"), - ("Hồng sáng", "#FF69B4"), - ("Indigo", "#4B0082"), - ("Ngà voi", "#FFFFF0"), - ("Rêu", "#F0E68C"), - ("Hồng lavender", "#FFF0F5"), - ("Xanh dương nhạt", "#ADD8E6"), - ("Xanh biển nhạt", "#E0FFFF"), - ("Xám sáng", "#D3D3D3"), - ("Xanh lá cây sáng", "#90EE90"), - ("Hồng sáng", "#FFB6C1"), - ("Xanh biển sáng", "#87CEFA"), - ("Vàng sáng", "#FFFFE0"), - ("Hạt Dẻ", "#800000"), - ("Cam", "#FFA500"), - ("Cam đỏ", "#FF4500"), - ("Xanh lá cây nhạt", "#98FB98"), - ("Xanh biển nhạt", "#AFEEEE"), - ("Hồng", "#FFC0CB"), - ("Tím", "#DDA0DD"), - ("Tím đậm", "#800080"), - ("Đỏ", "#FF0000"), - ("Xanh biển xanh", "#2E8B57"), - ("Bạc", "#C0C0C0"), - ("Xanh lục bảo", "#40E0D0"), - ("Tím violet", "#EE82EE"), - ("Trắng", "#FFFFFF"), - ("Vàng", "#FFFF00"), - ("Xanh lá cây vàng", "#9ACD32"), - ) - ) - - safe_colors = ( - "đen", - "đỏ rượu", - "xanh lá cây", - "rêu", - "tím", - "xanh biển", - "xanh chanh", - "xanh dương", - "bạc", - "xám", - "vàng", - "hồng fuchsia", - "trắng", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/color/vi_VN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/color/vi_VN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4eedef63b3a44518d031b7c1bde38fd2adb3b3e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2339 zcmZ8jy>HuA5GVCzTej0QDbRLkK_Cqf4K-<5lF76vK#63N7I2Hi2m&oMP0|u$e#jK5 z+Aad5XohwulAuG@I6;RtD4HRYHOk16|3E;23Pp!(3EV81dUvEGqa;kfclYkS-`)N0 zo}Mo*78!h=7H?dbXPCcfl78~(|Kl1A?lTr+u`c7WO_pV>jFojWUbdNoaju!qFrPD4 z{x)M3?A+sQV%N;>&6H+e;H1P3=f4UqJG3puF{2lmL^k_%81x(vubYWU@=fiTC|=bxO{su5FYm`8Efhecp`>m*Es|8Vs?va+bFlN#UE2pcfgX@8fb2Rz;;d&+ zo*nqDREImnb7NgJ_}v4AD3|MMIo)V&@Gu6MTrJCG8DvO;tAnSU34g8u8l_y5mQ~Qq zpvLgI_TVXqHEmU^3Lri`-n~6KeB^LD@!%mMt5u|`s(>DmT^jX&hArfNZ` zRRn~LmRAP9#Zy&Xsjt@XSaiQ(oY+&-#0D9mA4hjb{X0`Dv5s(0g7sUY{!iv~g&;Ik zWx14jjYqCS_@^ofuqZ2Fya=jEfKn$lZMh<$67gI|CwE8vA1SU<4PMZknwo9JX1nWP zvNTNq-oSZS1=j`-hzLNfRf37c!OdWyDBzo(J_(gMc(?~jNCElv`W-YtR$&}b$@!4w zg9z5hil&wEq!an=4ie^RT1~1Wn+unH%V}ZCD-bFXIX4SiuC)daxL)9Z97(Pr4#b8z zL7AY|M5G6%F^!CC^lTscLt-LmRZyQDqf0q|5}YEcH30X27ER!*X?aZpJO;0<;CpiW ziSy$nlAx**fDSQrgs5I?K$hdT$B0tWjt#`shN@w8Aq^-k+*pPFs~7;x^d$@~r;HB! zuq);O(>BZkA?XykN@>J;PC44YLy8J1LQDnBB~hzO(1JpYAIxPZHQoCju40?NGBpc878=5!bC;fPMTv{#MEY^;bH@?cyNJ!MhxfZQg`-kD|{F2X_NP1 x^k(+cB#NJfAHo!WKXh^MGRv~;pUk;`mpZ{Z5d7Jj(-n!*2M{~sM7vU30c diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/__init__.py deleted file mode 100644 index cadb4a2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/__init__.py +++ /dev/null @@ -1,531 +0,0 @@ -from typing import Tuple - -from .. import BaseProvider, ElementsType - -localized = True - - -class Provider(BaseProvider): - formats: ElementsType[str] = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}}-{{last_name}}", - "{{last_name}}, {{last_name}} and {{last_name}}", - ) - - company_suffixes: ElementsType[str] = ("Inc", "and Sons", "LLC", "Group", "PLC", "Ltd") - - catch_phrase_words: Tuple[ElementsType[str], ...] = ( - ( - "Adaptive", - "Advanced", - "Ameliorated", - "Assimilated", - "Automated", - "Balanced", - "Business-focused", - "Centralized", - "Cloned", - "Compatible", - "Configurable", - "Cross-group", - "Cross-platform", - "Customer-focused", - "Customizable", - "Decentralized", - "De-engineered", - "Devolved", - "Digitized", - "Distributed", - "Diverse", - "Down-sized", - "Enhanced", - "Enterprise-wide", - "Ergonomic", - "Exclusive", - "Expanded", - "Extended", - "Face-to-face", - "Focused", - "Front-line", - "Fully-configurable", - "Function-based", - "Fundamental", - "Future-proofed", - "Grass-roots", - "Horizontal", - "Implemented", - "Innovative", - "Integrated", - "Intuitive", - "Inverse", - "Managed", - "Mandatory", - "Monitored", - "Multi-channeled", - "Multi-lateral", - "Multi-layered", - "Multi-tiered", - "Networked", - "Object-based", - "Open-architected", - "Open-source", - "Operative", - "Optimized", - "Optional", - "Organic", - "Organized", - "Persevering", - "Persistent", - "Phased", - "Polarized", - "Pre-emptive", - "Proactive", - "Profit-focused", - "Profound", - "Programmable", - "Progressive", - "Public-key", - "Quality-focused", - "Reactive", - "Realigned", - "Re-contextualized", - "Re-engineered", - "Reduced", - "Reverse-engineered", - "Right-sized", - "Robust", - "Seamless", - "Secured", - "Self-enabling", - "Sharable", - "Stand-alone", - "Streamlined", - "Switchable", - "Synchronized", - "Synergistic", - "Synergized", - "Team-oriented", - "Total", - "Triple-buffered", - "Universal", - "Up-sized", - "Upgradable", - "User-centric", - "User-friendly", - "Versatile", - "Virtual", - "Visionary", - "Vision-oriented", - ), - ( - "24hour", - "24/7", - "3rdgeneration", - "4thgeneration", - "5thgeneration", - "6thgeneration", - "actuating", - "analyzing", - "asymmetric", - "asynchronous", - "attitude-oriented", - "background", - "bandwidth-monitored", - "bi-directional", - "bifurcated", - "bottom-line", - "clear-thinking", - "client-driven", - "client-server", - "coherent", - "cohesive", - "composite", - "context-sensitive", - "contextually-based", - "content-based", - "dedicated", - "demand-driven", - "didactic", - "directional", - "discrete", - "disintermediate", - "dynamic", - "eco-centric", - "empowering", - "encompassing", - "even-keeled", - "executive", - "explicit", - "exuding", - "fault-tolerant", - "foreground", - "fresh-thinking", - "full-range", - "global", - "grid-enabled", - "heuristic", - "high-level", - "holistic", - "homogeneous", - "human-resource", - "hybrid", - "impactful", - "incremental", - "intangible", - "interactive", - "intermediate", - "leadingedge", - "local", - "logistical", - "maximized", - "methodical", - "mission-critical", - "mobile", - "modular", - "motivating", - "multimedia", - "multi-state", - "multi-tasking", - "national", - "needs-based", - "neutral", - "next generation", - "non-volatile", - "object-oriented", - "optimal", - "optimizing", - "radical", - "real-time", - "reciprocal", - "regional", - "responsive", - "scalable", - "secondary", - "solution-oriented", - "stable", - "static", - "systematic", - "systemic", - "system-worthy", - "tangible", - "tertiary", - "transitional", - "uniform", - "upward-trending", - "user-facing", - "value-added", - "web-enabled", - "well-modulated", - "zero administration", - "zero-defect", - "zero tolerance", - ), - ( - "ability", - "access", - "adapter", - "algorithm", - "alliance", - "analyzer", - "application", - "approach", - "architecture", - "archive", - "artificial intelligence", - "array", - "attitude", - "benchmark", - "budgetary management", - "capability", - "capacity", - "challenge", - "circuit", - "collaboration", - "complexity", - "concept", - "conglomeration", - "contingency", - "core", - "customer loyalty", - "database", - "data-warehouse", - "definition", - "emulation", - "encoding", - "encryption", - "extranet", - "firmware", - "flexibility", - "focus group", - "forecast", - "frame", - "framework", - "function", - "functionalities", - "Graphic Interface", - "groupware", - "Graphical User Interface", - "hardware", - "help-desk", - "hierarchy", - "hub", - "implementation", - "info-mediaries", - "infrastructure", - "initiative", - "installation", - "instruction set", - "interface", - "Internet solution", - "intranet", - "knowledge user", - "knowledgebase", - "Local Area Network", - "leverage", - "matrices", - "matrix", - "methodology", - "middleware", - "migration", - "model", - "moderator", - "monitoring", - "moratorium", - "neural-net", - "open architecture", - "open system", - "orchestration", - "paradigm", - "parallelism", - "policy", - "portal", - "pricing structure", - "process improvement", - "product", - "productivity", - "project", - "projection", - "protocol", - "secured line", - "service-desk", - "software", - "solution", - "standardization", - "strategy", - "structure", - "success", - "superstructure", - "support", - "synergy", - "system engine", - "task-force", - "throughput", - "time-frame", - "toolset", - "utilization", - "website", - "workforce", - ), - ) - - bsWords: Tuple[ElementsType[str], ...] = ( - ( - "implement", - "utilize", - "integrate", - "streamline", - "optimize", - "evolve", - "transform", - "embrace", - "enable", - "orchestrate", - "leverage", - "reinvent", - "aggregate", - "architect", - "enhance", - "incentivize", - "morph", - "empower", - "envisioneer", - "monetize", - "harness", - "facilitate", - "seize", - "disintermediate", - "synergize", - "strategize", - "deploy", - "brand", - "grow", - "target", - "syndicate", - "synthesize", - "deliver", - "mesh", - "incubate", - "engage", - "maximize", - "benchmark", - "expedite", - "re-intermediate", - "whiteboard", - "visualize", - "repurpose", - "innovate", - "scale", - "unleash", - "drive", - "extend", - "engineer", - "revolutionize", - "generate", - "exploit", - "transition", - "e-enable", - "iterate", - "cultivate", - "matrix", - "productize", - "redefine", - "re-contextualize", - ), - ( - "clicks-and-mortar", - "value-added", - "vertical", - "proactive", - "robust", - "revolutionary", - "scalable", - "leading-edge", - "innovative", - "intuitive", - "strategic", - "e-business", - "mission-critical", - "sticky", - "one-to-one", - "24/7", - "end-to-end", - "global", - "B2B", - "B2C", - "granular", - "frictionless", - "virtual", - "viral", - "dynamic", - "24/365", - "best-of-breed", - "killer", - "magnetic", - "bleeding-edge", - "web-enabled", - "interactive", - "dot-com", - "back-end", - "real-time", - "efficient", - "front-end", - "distributed", - "seamless", - "extensible", - "turn-key", - "world-class", - "open-source", - "cross-platform", - "cross-media", - "synergistic", - "bricks-and-clicks", - "out-of-the-box", - "enterprise", - "integrated", - "impactful", - "wireless", - "transparent", - "next-generation", - "cutting-edge", - "user-centric", - "visionary", - "customized", - "ubiquitous", - "plug-and-play", - "collaborative", - "compelling", - "holistic", - "rich", - ), - ( - "synergies", - "web-readiness", - "paradigms", - "markets", - "partnerships", - "infrastructures", - "platforms", - "initiatives", - "channels", - "eyeballs", - "communities", - "ROI", - "solutions", - "e-tailers", - "e-services", - "action-items", - "portals", - "niches", - "technologies", - "content", - "vortals", - "supply-chains", - "convergence", - "relationships", - "architectures", - "interfaces", - "e-markets", - "e-commerce", - "systems", - "bandwidth", - "info-mediaries", - "models", - "mindshare", - "deliverables", - "users", - "schemas", - "networks", - "applications", - "metrics", - "e-business", - "functionalities", - "experiences", - "web services", - "methodologies", - ), - ) - - def company(self) -> str: - """ - :example: 'Acme Ltd' - """ - pattern: str = self.random_element(self.formats) - return self.generator.parse(pattern) - - def company_suffix(self) -> str: - """ - :example: 'Ltd' - """ - return self.random_element(self.company_suffixes) - - def catch_phrase(self) -> str: - """ - :example: 'Robust full-range hub' - """ - return " ".join([self.random_element(word_list) for word_list in self.catch_phrase_words]) - - def bs(self) -> str: - """ - :example: 'integrate extensible convergence' - """ - return " ".join([self.random_element(word_list) for word_list in self.bsWords]) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4dcc97e2481a5212c2c8cf991f8703cb5bda6d93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7956 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 bwSVodd}RN;^;=f;gX$;u{ str: - pattern: str = self.random_element(self.catch_phrase_formats) - return self.generator.parse(pattern) - - def catch_phrase_noun(self) -> str: - return self.random_element(self.nouns) - - def catch_phrase_verb(self) -> str: - return self.random_element(self.verbs) - - def catch_phrase_attribute(self) -> str: - return self.random_element(self.attributes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ar_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/ar_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 73b57734409562a793a1e63aaa38f969195195fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2673 zcmcgu&2QX96u0*~n{2kUX;adQTCId|+t`BSfGVJ>Xo-NTAe95!i{-4HWYb-H8QW2_ zZAw0N(-4GEPvzLCg54x7r6IHm{{ojpIb>{!6DMvfZMpQsdt-09+q4{zz{$?MdG9xG ze(%l9vwusak{mwk$?=a99QOws1Wh#P8?S?Ko6|Ur&vOMn6XLlLH^gb7GN*<0&}!Jn zW%$X682vK@Ba!zKpAvH-r|BdccwrqH@o9Vx&23KSGQ7rRLK>e5YoSa;3umHQBoou3 znYb3qB(!*@Lrdt%k&xC=j$}FmISF!CAa{bC3gj-3yC+j(H$h6Jci%S)Mb(%TiUAd2 z#3X`Bl=B%OZ)VlJF1&FrKdO_QdRjO~)ZtvVKd&02jykG~k{Bro*RJJN%T^4vpifP~ zDC;{^EN5gScXev2Bt4J#XS{O=c)1mN4}Kf%-b<-AS7O}h1T0;b=ueVcfqy6Fk72+} z&_8dYE0WU@%vzCXO=5EpxFI=RY-to}RRW~Qmp*`qR69GS6vv2a>55@Gh976Ec0wn^ zd$p=_=gpKg@P@qiKSTWt z{#KC)#P=#wgW|qB3yGT*fZ|OI)tzzYoFl&V`+(7!0JGL{9^`KW?8gG9kina<6ORPQ z9PUCD$gR*{0QtZ<==%s#A)phg+uU_-yww_@K-(;0fd;$P06E2jJ>oT{@UlJo;H&G4E zEGT+jFX)Et^|akiC|(8Cw!Dr}-O!0@o5YJ2RbuI4$ctEde#DCx;a2Lzu#ll3Je`uq z%z`f4rah(?)T{DmO#y22xSqA;LM}^8sE%wfY}&Fkp&Ju&J~u2EC+#uQ7?9q4OSW>h z-d|L+SD-Fh@`!pxCvvl-T5?bmWmZ>ZMadaCTT!Iqq}SC-zjP25WiJG&Reb@NTK&*W zbF}x!PVdRB-jlV#om1zxPMzQGy|56c=>y;1`0B<^`ovcH#GRq-^y$sS=>}%=#e4TQ zSpMDKUFHbxk{BX*&b=sBLu;8QSSu{tUxDCd_g-n`&uV6=?}f23+lMfvfkzwyOdr@u zAKywJzcW}pvvg)VEo~+wg4N=`4h2iNMGnA9FAoGUFAD^17hyKR3-y06PVT;5_R>Do zmj7K~>DY@mVHfZThQD_w&MuwZP7iD*23TB|#I%=C*c)F_yriNOOwGybAa^Os7mk|8 zZvhy^6-6_%C^WC-zV?p;-6HrZCRpYPu1c_0d11>YB#px!Yz||CMSa;%D?4HA>xDH~ zNvvUL%A6Y+swbl9*z{1nJ8?L+8R@C_a7Rb^&B)<;B$bLyU#P#<$-2JI{juqf>V2VT z|99C22VFhEN98*M4Gy|`tX&?gg`a?akVVfHy(ES`j!9lR_=0L?mYhJocw!mRr-^s` k^t?y#6A|x-g*t2 str: - """ - :example: 'SOCAR' - """ - return self.random_element(self.large_companies) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/az_AZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/az_AZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a2568378b5522c652ed78c95575fea0221bcfccf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1475 zcmahJO>Y}Tbk<%wR!HJfLW@8}qXtoo)NJ{XnpUXNCNx2Uv<2sY_Ocp#$H~OIv(9`( z*)0}1X{DYxakG?i>4`UMJ4%rdqun?2=6%fj{(X9S z5}Ebe6cqMQP^5*2#UYz#C3da!R{^k^ zl~wMEc$)=OG>6n7G(@vb-UG0YDDtcTd4<68ib27%gQ8aoY+7y=g3_MtO(f;ogfQxB z#T4Ja9}=m2P9oav0@jS94&jL}b*sg8y4`gC-yHwL|GME9>(n1<>UL|FGTZgsud<4p zQn4O~K~}2YU2?xkr|WT(2z)ONlZc9Rb|s7(B*eFOIX*t~p+g<3N7^4!LQ+CmJMa5{{35>i61!;-g1W(G5vLqVOUUAxoH^7&A+) z-+}YD{hkrUpZ9y5rFf;^i`d~WEa!b~%u6{Hn@nE>985YopdoE5!P>_U`n^W}n68d_ zNqG1;Vw~wHD=iAL9cz=D+`bNp8b=3P*xeG~dmUaR3B_N6XP{5Aw6e5Tzv`}wGa~Bn zF?{^LM6{{4TsP~09odwdwoL4lAOTG$-DUg*1fB8qbjD2?Z^x(j^a=|hRwJ@WP=_iJ zhk9nLQPCY9ha}Mf(9$o`S6btb(X+V6KHX&T? z_Y~m(u&dty{OFN5en0|zJETo`lC!3)6|C4!xAlP2$nINq2~e{!M%(ugfc^lv*L15rhYEJXtaD@rBAn?U;&i3_laSp!TK zb6~?kng-cJgMwWx@2(7{-o04fy*s#Nzg2!>&km;S(v2VG3k2Ixfswrf1v6BTRY#Ly t?60_Fbe}%;vhvx`@>>D}!K6wW69z@gvYw+4UzD#|H-7m3ZvGIb`)nP`6Z@Gx-Fj6_aI%Th2m4ihITNSaS3{y|yJd;co_ zqwikPo40aZbgGW46R!0wZuG64m!o+u=OLZddG(?C#L=K{<%aaVS5kejy=~>~+HqE$ z$?U<1T^A0HWJqb7z@}CA_$X9p)9Tkj!K!1f?KHvj>SW7o@itMvN(k=|62@L0P=Qwn zd7V3f9D-oiCNT@0Eaf+@4uhtj!BX4+T$FekhZJXVHl?9+fJc`=tYeS584i7y#YscP zafW*{8qILvk8x6D(>Qw4d-NEmenuZAj=S&d(iBgeeaf&%QVUIS(;Sa?$@3v5#E<-p zkX}-#-64m94q`2)nEvi<^V!rcD= diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/bn_BD/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/bn_BD/__init__.py deleted file mode 100644 index a4faa27..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/bn_BD/__init__.py +++ /dev/null @@ -1,640 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - """ - Implement company provider for ``bn_BD`` locale. - Sources of companies: - - https://en.wikipedia.org/wiki/List_of_companies_of_Bangladesh - """ - - companies = ( - "প্রাণ-আরএফএল গ্রুপ", - "আকিজ গ্রুপ", - "মেঘনা গ্রুপ অব ইন্ডাস্ট্রিজ", - "বসুন্ধরা গ্রুপ", - "ইস্পাহানি গ্রুপ", - "বাংলাদেশ মেশিন টুলস ফ্যাক্টরী", - "প্রগতি", - "ইউএস-বাংলা এয়ারলাইন্স", - "বিমান বাংলাদেশ এয়ারলাইনস", - "রিজেন্ট এয়ারওয়েজ", - "ইউনাইটেড এয়ারওয়েজ", - "নভোএয়ার", - "বেক্সিমকো গ্রুপ", - "নাভানা গ্ৰুপ", - "স্কয়ার গ্রুপ", - "ট্রান্সকম গ্রুপ", - "বেঙ্গল গ্রুপ", - "যমুনা গ্রুপ", - "নাসির গ্রুপ", - "ট্রান্সকম ডিজিটাল", - "স্কয়ার ইলেকট্রনিক্স", - "রহিম আফরোজ", - "ওয়ালটন", - "বাংলাদেশ ব্যাংক", - "অগ্রণী ব্যাংক", - "জনতা ব্যাংক", - "রূপালী ব্যাংক", - "সোনালী ব্যাংক", - "বাংলাদেশ ডেভেলপমেন্ট ব্যাংক লিমিটেড", - "বেসিক ব্যাংক লিমিটেড", - "আইএফআইসি ব্যাংক লিমিটেড", - "ইউনাইটেড কমার্শিয়াল ব্যাংক লিমিটেড", - "ইস্টার্ন ব্যাংক লিমিটেড", - "উত্তরা ব্যাংক", - "এনআরবি কমার্শিয়াল ব্যাংক লিমিটেড", - "এনআরবি গ্লোবাল ব্যাংক লিমিটেড", - "এনআরবি ব্যাংক লিমিটেড", - "এবি ব্যাংক লিমিটেড", - "এনসিসি ব্যাংক লিমিটেড", - "ওয়ান ব্যাংক লিমিটেড", - "ট্রাস্ট ব্যাংক লিমিটেড", - "ডাচ-বাংলা ব্যাংক লিমিটেড", - "দি ফারমার্স ব্যাংক লিমিটেড", - "ন্যাশনাল ব্যাংক লিমিটেড", - "ঢাকা ব্যাংক লিমিটেড", - "পূবালী ব্যাংক লিমিটেড", - "প্রাইম ব্যাংক লিমিটেড", - "প্রিমিয়ার ব্যাংক লিমিটেড", - "বাংলাদেশ কমার্স ব্যাংক লিমিটেড", - "ব্র্যাক ব্যাংক লিমিটেড", - "ব্যাংক এশিয়া লিমিটেড", - "মধুমতি ব্যাংক লিমিটেড", - "মার্কেন্টাইল ব্যাংক লিমিটেড", - "মিউচুয়াল ট্রাস্ট ব্যাংক", - "মিডল্যান্ড ব্যাংক লিমিটেড", - "মেঘনা ব্যাংক লিমিটেড", - "যমুনা ব্যাংক লিমিটেড", - "সাউথ ইস্ট ব্যাংক লিমিটেড", - "সাউথ বাংলা এগ্রিকালচার এন্ড কমার্স ব্যাংক লিমিটেড", - "সিটি ব্যাংক লিমিটেড", - "সীমান্ত ব্যাংক", - "স্ট্যান্ডার্ড ব্যাংক লিমিটেড", - "আইসিবি ইসলামিক ব্যাংক লিমিটেড", - "আল-আরাফাহ ইসলামী ব্যাংক লিমিটেড", - "ইউনিয়ন ব্যাংক লিমিটেড", - "ইসলামী ব্যাংক বাংলাদেশ লিমিটেড", - "এক্সিম ব্যাংক", - "ফার্স্ট সিকিউরিটিজ ইসলামী ব্যাংক লিমিটেড", - "শাহ্‌জালাল ইসলামী ব্যাংক লিমিটেড", - "সোশ্যাইল ইসলামী ব্যাংক লিমিটেড", - "এইচএসবিসি", - "ওরি ব্যাংক", - "কমার্শিয়াল ব্যাংক অব সিলন", - "ন্যাশনাল ব্যাংক অব পাকিস্তান", - "ব্যাংক আলফালাহ্", - "ভারতীয় স্টেট ব্যাংক", - "সিটিব্যাংক এনএ", - "স্ট্যান্ডার্ড চার্টার্ড ব্যাংক লিমিটেড", - "হাবিব ব্যাংক লিমিটেড", - "বাংলাদেশ কৃষি ব্যাংক", - "রাজশাহী কৃষি উন্নয়ন ব্যাংক", - "আনসার-ভিডিপি উন্নয়ন ব্যাংক", - "কর্মসংস্থান ব্যাংক", - "গ্রামীণ ব্যাংক", - "পল্লী সঞ্চয় ব্যাংক", - "জুবিলী ব্যাংক", - "প্রবাসী কল্যাণ ব্যাংক", - "রাইজ আপ ল্যাবস", - "এটিএন বাংলা", - "বাংলাভিশন", - "চ্যানেল আই (ইমপ্রেস টেলেফিল্ম লিমিটেড/চ্যানেল)", - "এনটিভি (বাংলাদেশ)", - "আরটিভি (বাংলাদেশ)", - "দেশ টিভি", - "ইন্ডিপেন্ডেন্ট টেলিভিশন", - "দৈনিক প্রথম আলো", - "দৈনিক ইত্তেফাক", - "দৈনিক ভোরের কাগজ", - "জাজ মাল্টিমিডিয়া", - "নয়ন-আপন প্রোডাকশন", - "প্যানারোমা মুভিজ", - "এসকে ফিল্মস", - "বেক্সিমকো ফার্মাসিউটিক্যালস", - "ইনসেপ্টা ফার্মাসিউটিক্যালস লিমিটেড", - "স্কয়ার ফার্মাসিটিক্যাল", - "অপসোনিন ফার্মা লিমিটেড", - "একমি ল্যাবরেটরিজ লিমিটেড", - "বাংলাদেশ শিপিং কর্পোরেশন", - "ডকইয়ার্ড অ্যান্ড ইঞ্জিনিয়ারিং ওয়ার্কস লিমিটেড", - "এফএমসি ডকইয়ার্ড", - "গ্রামীণফোন", - "টেলিটক", - "এয়ারটেল (বাংলাদেশ)", - "বাংলালিংক", - "রবি", - "বাংলাদেশ পাওয়ার গ্রিড কোম্পানি", - "ইউনাইটেড কমিউনিকেশন সার্ভিস", - ) - - company_suffixes = ( - "ইনকর্পোরেটেড", - "কর্পোরেশন", - "এন্ড সন্স", - "এন্ড ব্রাদার্স", - "এলএলসি", - "গ্রুপ", - "গ্রুপ অফ কোম্পানিজ", - "পিএলসি", - "লিমিটেড", - "প্রাইভেট লিমিটেড", - "এন্টারপ্রাইজ", - ) - - catch_phrase_words = ( - ( - "অভিযোজিত", - "উন্নত", - "উন্নীত", - "আত্তীকরণ", - "স্বয়ংক্রিয়", - "সুষম", - "ব্যবসা কেন্দ্রিক", - "কেন্দ্রীভূত", - "ক্লোন করা", - "উপযুক্ত", - "কনফিগারযোগ্য", - "ক্রস-গ্রুপ", - "ক্রস-প্ল্যাটফর্ম", - "গ্রাহকের দৃষ্টি নিবদ্ধ", - "কাস্টমাইজযোগ্য", - "বিকেন্দ্রীভূত", - "ডি-ইঞ্জিনিয়ারড", - "বিকশিত", - "ডিজিটাইজড", - "বিতরণ করা", - "বৈচিত্র্য", - "নিম্ন আকারের", - "উন্নত", - "এন্টারপ্রাইজ-ওয়াইড", - "অর্গোনমিক", - "এক্সক্লুসিভ", - "প্রসারিত", - "সম্প্রসারিত", - "মুখোমুখি", - "ফোকাসড", - "সামনের লাইন", - "সম্পূর্ণ কনফিগারযোগ্য", - "ফাংশন-ভিত্তিক", - "মৌলিক", - "ভবিষ্যত-প্রমাণ", - "তৃণমূল", - "অনুভূমিক", - "বাস্তবায়িত", - "উদ্ভাবনী", - "সমন্বিত", - "স্বজ্ঞাত", - "বিপরীত", - "পরিচালিত", - "বাধ্যতামূলক", - "পর্যবেক্ষণ করা", - "মাল্টি-চ্যানেলযুক্ত", - "মাল্টি-পার্শ্বিক", - "মাল্টি লেয়ারড", - "মাল্টি টায়ার্ড", - "নেটওয়ার্ক করা", - "বস্তু ভিত্তিক", - "ওপেন আর্কিটেক্টেড", - "মুক্ত উৎস", - "অপারেটিভ", - "অপ্টিমাইজ করা", - "ঐচ্ছিক", - "জৈব", - "সংগঠিত", - "অধ্যবসায়ী", - "অস্থির", - "পর্যায়ক্রমে", - "পোলারাইজড", - "প্রাক-অনুভব", - "প্রোঅ্যাকটিভ", - "লাভ কেন্দ্রিক", - "গভীর", - "প্রোগ্রামেবল", - "প্রগতিশীল", - "পাবলিক-কী", - "মান-কেন্দ্রিক", - "প্রতিক্রিয়াশীল", - "পুনরায় সংগঠিত", - "পুনরায় প্রাসঙ্গিক", - "পুনঃপ্রকৌশলী", - "কমানো", - "বিপরীত প্রকৌশলী", - "ডান মাপের", - "বলিষ্ঠ", - "বিরামহীন", - "সুরক্ষিত", - "স্ব-সক্ষম", - "ভাগযোগ্য", - "একা একা", - "প্রবাহিত", - "পরিবর্তনযোগ্য", - "সিঙ্ক্রোনাইজড", - "সিনারজিস্টিক", - "সমন্বিত", - "দল ভিত্তিক", - "মোট", - "ট্রিপল-বাফার", - "সর্বজনীন", - "উপরের আকার", - "আপগ্রেডযোগ্য", - "ব্যবহারকারীকেন্দ্রিক", - "ব্যবহারকারী বান্ধব", - "বহুমুখী", - "অপার্থিব", - "দূরদর্শী", - "দৃষ্টি-ভিত্তিক", - ), - ( - "২৪ ঘন্টা", - "২৪/৭", - "তৃতীয় প্রজন্ম", - "৪র্থ প্রজন্ম", - "৫ম প্রজন্ম", - "ষষ্ঠ প্রজন্ম", - "কার্যকর", - "বিশ্লেষণ", - "অসমমিত", - "অসিঙ্ক্রোনাস", - "মনোভাব-ভিত্তিক", - "পটভূমি", - "ব্যান্ডউইথ-নিরীক্ষণ করা", - "দ্বিমুখী", - "বিভক্ত", - "শেষের সারি", - "স্বচ্ছ চিন্তা", - "ক্লায়েন্ট-চালিত", - "ক্লায়েন্ট সার্ভার", - "সুসংগত", - "সমন্বিত", - "যৌগিক", - "প্রসঙ্গ-সংবেদনশীল", - "প্রসঙ্গ-ভিত্তিক", - "সামগ্রী ভিত্তিক", - "নিবেদিত", - "চাহিদা চালিত", - "শিক্ষামূলক", - "দিকনির্দেশক", - "বিচ্ছিন্ন", - "বিচ্ছিন্ন", - "গতিশীল", - "পরিবেশ কেন্দ্রিক", - "শক্তিকরণ", - "বেষ্টিত", - "সম-কিলড", - "কার্যনির্বাহী", - "স্পষ্ট", - "প্রবাহিত", - "ভ্রান্তি সহিষ্ণুতা", - "পুরোভূমি", - "নতুন চিন্তা", - "পূর্ণ পরিসরে", - "বিশ্বব্যাপী", - "গ্রিড-সক্রিয়", - "হিউরিস্টিক", - "উচ্চস্তর", - "সম্পূর্ণ", - "সমজাতীয়", - "মানব সম্পদ", - "হাইব্রিড", - "প্রভাবমূলক", - "ক্রমবর্ধমান", - "অভেদ্য", - "ইন্টারেক্টিভ", - "মধ্যবর্তী", - "নেতৃস্থানীয় প্রান্ত", - "স্থানীয়", - "লজিস্টিক", - "সর্বোচ্চ করা", - "পদ্ধতিগত", - "মিশন-সমালোচনা", - "মুঠোফোন", - "মডুলার", - "প্রেরণাদায়ক", - "মাল্টিমিডিয়া", - "মাল্টি-স্টেট", - "মাল্টি টাস্কিং", - "জাতীয়", - "প্রয়োজন ভিত্তিক", - "নিরপেক্ষ", - "পরবর্তী প্রজন্ম", - "অস্থির", - "অবজেক্ট ওরিয়েন্টেড", - "অনুকূল", - "অপ্টিমাইজ করা", - "আমূল", - "প্রকৃত সময়", - "পারস্পরিক", - "আঞ্চলিক", - "প্রতিক্রিয়াশীল", - "স্কেলযোগ্য", - "মাধ্যমিক", - "সমাধান ভিত্তিক", - "স্থিতিশীল", - "স্থির", - "পদ্ধতিগত", - "পদ্ধতিগত", - "সিস্টেম-যোগ্য", - "মূর্ত", - "তৃতীয়", - "ক্রান্তিকালীন", - "ইউনিফর্ম", - "উর্ধ্বমুখী প্রবণতা", - "ব্যবহারকারীর মুখোমুখি", - "মূল্য সংযোজন", - "ওয়েব-সক্ষম", - "ভালভাবে পরিমিত", - "শূন্য প্রশাসন", - "শূন্য ত্রুটি", - "শূন্য সহনশীলতা", - ), - ( - "ক্ষমতা", - "অ্যাক্সেস", - "অ্যাডাপ্টার", - "অ্যালগরিদম", - "জোট", - "বিশ্লেষক", - "আবেদন", - "পন্থা", - "স্থাপত্য", - "আর্কাইভ", - "কৃত্রিম বুদ্ধিমত্তা", - "অ্যারে", - "মনোভাব", - "মাপকাঠি", - "বাজেটারি ব্যবস্থাপনা", - "ক্ষমতা", - "ক্ষমতা", - "চ্যালেঞ্জ", - "সার্কিট", - "সহযোগিতা", - "জটিলতা", - "ধারণা", - "সমষ্টি", - "কমার্জেন্সি", - "মূল", - "ক্রেতা বিশ্বস্ততা", - "তথ্যশালা", - "তথ্য ভাণ্ডার", - "সংজ্ঞা", - "অনুকরণ", - "এনকোডিং", - "জোড়া লাগানো", - "এক্সট্রানেট", - "ফার্মওয়্যার", - "নমনীয়তা", - "ফোকাস গ্রুপ", - "পূর্বাভাস", - "ফ্রেম", - "ফ্রেমওয়ার্ক", - "ফাংশন", - "কার্যকারিতা", - "গ্রাফিক ইন্টারফেস", - "গ্রুপওয়্যার", - "গ্রাফিকাল ইউজার ইন্টারফেস", - "হার্ডওয়্যার", - "সাহায্য ডেস্ক", - "শ্রেণীবিন্যাস", - "হাব", - "বাস্তবায়ন", - "তথ্য মিডিয়ার", - "অবকাঠামো", - "উদ্যোগ", - "স্থাপন", - "নির্দেশনাবলী", - "ইন্টারফেস", - "ইন্টারনেট সমাধান", - "ইন্ট্রানেট", - "জ্ঞান ব্যবহারকারী", - "জ্ঞানভিত্তিক", - "স্থানীয় নেটওয়ার্ক", - "লিভারেজ", - "ম্যাট্রিস", - "ম্যাট্রিক্স", - "পদ্ধতি", - "মিডলওয়্যার", - "অভিবাসন", - "মডেল", - "মডারেটর", - "পর্যবেক্ষণ", - "স্থগিত", - "নিউরাল-নেট", - "উন্মুক্ত স্থাপত্য", - "মুক্ত ব্যবস্থা", - "অর্কেস্ট্রেশন", - "দৃষ্টান্ত", - "সমান্তরালতা", - "নীতি", - "পোর্টাল", - "মূল্যের কাঠামো", - "প্রক্রিয়ার উন্নতি", - "পণ্য", - "প্রমোদ", - "প্রকল্প", - "প্রক্ষেপণ", - "প্রটোকল", - "সুরক্ষিত লাইন", - "পরিষেবা ডেস্ক", - "সফটওয়্যার", - "সমাধান", - "প্রমিতকরণ", - "কৌশল", - "গঠন", - "সফলতা", - "উপরকাঠামো", - "সমর্থন", - "সিনার্জি", - "সিস্টেম ইঞ্জিন", - "বিশেষ কর্মীদল", - "থ্রুপুট", - "সময়সীমা", - "টুলসেট", - "ব্যবহার", - "ওয়েবসাইট", - "শ্রমিক", - ), - ) - - bsWords = ( - ( - "বাস্তবায়ন", - "ব্যবহার করুন", - "একীকরণ", - "স্ট্রিমলাইন", - "অপ্টিমাইজ করুন", - "বিকশিত", - "রূপান্তর", - "আলিঙ্গন", - "সক্ষম", - "অর্কেস্ট্রেট", - "লিভারেজ", - "পুনরাবিষ্কার", - "সমষ্টি", - "স্থপতি", - "বর্ধিত করা", - "উদ্দীপনা", - "রূপ", - "ক্ষমতায়ন", - "কল্পনাকারী", - "নগদীকরণ", - "কাজে লাগান", - "সহজতর করা", - "জব্দ", - "বিচ্ছিন্ন", - "সমন্বয় করা", - "কৌশল করা", - "মোতায়েন", - "ব্র্যান্ড", - "বড়", - "লক্ষ্য", - "সিন্ডিকেট", - "সংশ্লেষণ", - "বিলি করা", - "জাল", - "ইনকিউবেট", - "নিয়োগ", - "সর্বোচ্চ করুন", - "মাপকাঠি", - "ত্বরান্বিত করা", - "পুনরায় মধ্যবর্তী", - "হোয়াইটবোর্ড", - "ভিজ্যুয়ালাইজ", - "পুনঃউদ্দেশ্য", - "উদ্ভাবন", - "স্কেল", - "মুক্ত করা", - "ড্রাইভ", - "প্রসারিত করা", - "প্রকৌশলী", - "বিপ্লব", - "উত্পন্ন করুন", - "শোষণ", - "পরিবর্তন", - "ই-সক্ষম", - "পুনরাবৃত্তি", - "চাষ করা", - "ম্যাট্রিক্স", - "উৎপাদন করা", - "পুনরায় সংজ্ঞায়িত করুন", - "পুনরায় প্রাসঙ্গিককরণ", - ), - ( - "ক্লিক এবং মর্টার", - "মূল্য সংযোজন", - "উল্লম্ব", - "সক্রিয়", - "বলিষ্ঠ", - "বিপ্লবী", - "স্কেলযোগ্য", - "নেতৃস্থানীয় প্রান্ত", - "উদ্ভাবনী", - "স্বজ্ঞাত", - "কৌশলগত", - "ই-ব্যবসা", - "মিশন-সমালোচনা", - "আঠালো", - "একের পর এক", - "24/7", - "সর্বশেষ সীমা", - "বিশ্বব্যাপী", - "B2B", - "B2C", - "দানাদার", - "ঘর্ষণহীন", - "অপার্থিব", - "ভাইরাল", - "গতিশীল", - "24/365", - "সর্বোত্তম জাত", - "হত্যাকারী", - "চৌম্বকীয়", - "রক্তপাতের প্রান্ত", - "ওয়েব-সক্ষম", - "ইন্টারেক্টিভ", - "ডট-কম", - "ব্যাক-এন্ড", - "প্রকৃত সময়", - "দক্ষ", - "সামনের অংশ", - "বিতরণ করা", - "বিরামহীন", - "সম্প্রসারণযোগ্য", - "টার্ন-কি", - "বিশ্বমানের", - "মুক্ত উৎস", - "ক্রস-প্ল্যাটফর্ম", - "ক্রস-মিডিয়া", - "সিনারজিস্টিক", - "ইট-এন্ড-ক্লিক", - "বাক্সের বাইরে", - "এন্টারপ্রাইজ", - "সমন্বিত", - "প্রভাবমূলক", - "বেতার", - "স্বচ্ছ", - "পরবর্তী প্রজন্ম", - "অত্যাধুনিক", - "ব্যবহারকারীকেন্দ্রিক", - "দূরদর্শী", - "কাস্টমাইজড", - "সর্বব্যাপী", - "প্লাগ-এন্ড-প্লে", - "সহযোগী", - "আবশ্যক", - "সম্পূর্ণ", - "ধনী", - ), - ( - "ঐকতান", - "ওয়েব-প্রস্তুতি", - "দৃষ্টান্ত", - "বাজার", - "অংশীদারিত্ব", - "অবকাঠামো", - "প্ল্যাটফর্ম", - "উদ্যোগ", - "চ্যানেল", - "চোখের বল", - "সম্প্রদায়", - "ROI", - "সমাধান", - "ই-টেইলার", - "ই-পরিষেবা", - "অ্যাকশন-আইটেম", - "পোর্টাল", - "কুলুঙ্গি", - "প্রযুক্তি", - "সামগ্রী", - "ঘূর্ণি", - "সরবারহ শৃঙ্খল", - "সম্মিলন", - "সম্পর্ক", - "স্থাপত্য", - "ইন্টারফেস", - "ই-মার্কেট", - "ই-কমার্স", - "সিস্টেম", - "ব্যান্ডউইথ", - "তথ্য মিডিয়ার", - "মডেল", - "মনের ভাগ", - "প্রসবযোগ্য", - "ব্যবহারকারী", - "স্কিমাস", - "নেটওয়ার্ক", - "অ্যাপ্লিকেশন", - "মেট্রিক্স", - "ই-ব্যবসা", - "কার্যকারিতা", - "অভিজ্ঞতা", - "ওয়েব সার্ভিস", - "পদ্ধতি", - ), - ) - - def company(self) -> str: - """ - :example: 'ইস্পাহানি গ্রুপ' - """ - return self.random_element(self.companies) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 76b1787eb0305e486894edc98f14e76bbcbbdca3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22999 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 JKLo{{`VX$}v5Wu! diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/da_DK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/da_DK/__init__.py deleted file mode 100644 index 2e63949..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/da_DK/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} & {{last_name}} {{company_suffix}}", - "{{last_name}} & Søn {{company_suffix}}", - ) - - company_suffixes = ( - "A/S", - "ApS", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/da_DK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/da_DK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0e9faeaae4ab0d7b4773cbaf55b96b4b3b365019..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmah`zi$&U6n?fZAqt6Fqz)ZB6&(^WKURuVfz$!1LJHF@mV0){wRh*kcA{RY6AT^r z5BfJ$tR2`HnOIL^Vq%LFSUTZzu0s(L9^U&t>wC}7-}^co_Mtgf{o_3Z@WYcfblSYy zb>IR72$VvGB8&jT0SJ5!f=K*{taTA8gRt`xI~Jn4_gbrYBBYMnE!DJ7;GpH@49Ud_DZpPDQM#t_qFp%G51_Jhb0a+x*raf z1G3%y7HsK(yY-sGkko5bZ@gH0f3s74w-I^e(4p(zv$Z47^`@iEl1;PVB|!*%hX=p9 OeboK<{x`VftNsA|Z?zl% diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/de_AT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/de_AT/__init__.py deleted file mode 100644 index 076c6b2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/de_AT/__init__.py +++ /dev/null @@ -1,26 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - # Source: https://www.wko.at/wirtschaftsrecht/gesellschaftsformen-oesterreich - - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}} & {{last_name}} {{company_suffix}}", - ) - - company_suffixes = ( - "AG", - "AG", - "AG", - "GesbR", - "GmbH", - "GmbH", - "GmbH", - "KG", - "KG", - "KG", - "OG", - "e.V.", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/de_AT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/de_AT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 47fcb95b12a9becf7e47f08835a1dc9009012c96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 686 zcmah{J!{-B7=9)Doa4CTQV1nur+`aq^(OWc=DQjkKfwUMtmvTE#r2*h zm%xCb4004<1QQh?)rD{NFUb1<{ zH6K#?c^+q`G_AI#rO4x2s_nZaa`_F`IwRb)WLD;!)MY*6d3;KaZi#O4F;8ler->-5 zPE5+01Pfj)NS01W)zq`Hco{r@L1bFYtGhG@QfAbI0D-a5Wt5dOzG9v8_+7=g@c5hN&U@(ZisR+le8U zfC35&z+vh^;DH&S-UXmO^FH`HUkd9W9{lu-ieWcAmSUY#CbK?^3+4&8wg)C$0tQk@ zLF!SM`qWE<+K&Ti)5TshK0hyr(zqm?wXIQ^;1wxrtX7Lfe%7{4@~`9n{y6Hq=QC-4 z<)8~@e10fHt1UEx$#^P~=H_I4Or$QEY(le>vt%_i$CL4k&!3hhJBkP05WBK4?jnr2 zpsRuzzK8Ma6)9}NM%`El$%$6ooxclb>OI(+eBi1@OTih^LN6I7XXxcMF|9jcnMOR% zq^No^7aApNR<2Qz&rwzDr6`{yj~*kHYxb}r*(rI&6k3o|CXu=1ny*m*IHC+s4-v+B znQM%bs&;*L5SU`rT>}?j6Z-q%+u0_%bwB(X9LSN`b)KWx?{=))pY8^6Jz%+KP0o4S lu&d$IT}Pfto6}BQ*=cWl2;q0|;8%DLhVS0|1}3;$e*ko5vM~Sv diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/de_DE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/de_DE/__init__.py deleted file mode 100644 index 07eacc3..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/de_DE/__init__.py +++ /dev/null @@ -1,38 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - ) - - company_suffixes = ( - "AG", - "AG", - "AG", - "AG", - "AG & Co. KG", - "AG & Co. KGaA", - "AG & Co. OHG", - "GbR", - "GbR", - "GmbH", - "GmbH", - "GmbH", - "GmbH", - "GmbH & Co. KG", - "GmbH & Co. KG", - "GmbH & Co. KGaA", - "GmbH & Co. OHG", - "KG", - "KG", - "KG", - "KGaA", - "OHG mbH", - "Stiftung & Co. KG", - "Stiftung & Co. KGaA", - "e.G.", - "e.V.", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/de_DE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/de_DE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 205e7ff8dea4b1f828c5129808dea0797e75666d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 816 zcmah{zi-n(6uz^aAB2RorAP=Ci=mQ{@Tst(N>M>qDN;dz7`&Vu`_j1ek8r+3jjITT z4*UoG8xSl11rw_!CMLF^z>n@bJC&z5Cwh^Yi=MYBi90J~fViXb62PNC}lP z&UYZWKtA$uh$8H07-@(iUpq&>&b5#FQs>}_VO73^3$k!te=d@7;B(=XE=9m4nQudK zfjDxoj~va%j_zxYG0`nUC_78f%(Ju5O(l!nh)<`$yd)aB@r0$Lem^*!PBZ&&#eejz zHNABw*E&?FkNgAK^$s<6%>BeRyEJQEA#NvYuIRG^n(MUpLR6tUH)zy55H)4Af<;Re zS5~49r&)Wg297tb6qKjdrQ(|MQIH#53Yr=mnBbLdzLY^#P_dV|jzIDDg)jhrG$yn~@u;;R37m6A`&G%{SJE%+n8O4p%{oDH$XYCo+)( z9=WIF)nx*|`Ivi>M1d!gVM%(4B=(rcV-f~EGMvak5Pw z1%akwQBqRAocNqQc}f@y;y^NH4=2S=6kxz*(oKMKG}DZB^&Oox@7}I{F}8)O7Mep# z&zD)=-d`@w+aKS}B1jtelC@=z7*#%dn%6qleS*Xwq{g=X-fvWCLK69usy79`EbV{f}GXV+Vb z)fStXE!uwkPqKWCS8avd`sV}eGyBNS+Lwl&cX%8-FxjD*4+N}L-}cxU`@%ld&nNP^ z-zc98CiJ4Mb?A_tu$SzZz2N@MkR7tO?10nP938V$_G;bGt1gkPAf)OM5=3t9Q;z$D zJjrceG>NmNag+phmR6VB&7$ckEO<3IFYzP_D9)m6LIZmnKe_;XT$|L%aNs#f6gOle z%CI@5;S~Gc29Aqt5`}lnwc9xLGP)Yu&X)a{rg&^`(FF4#Iq(!W#WD5C=piP=3%!gG zGcM$8rP26j(ktBT!d%e@ooAzYAFdVXyS9>C;@48NZm3m_s=@tw`WIW3h_$ViqOa%O jyLC(MC1MI<&C;vf%vFTY54icevxEw?|MU+CFXR3KZBh5P diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/en_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/en_PH/__init__.py deleted file mode 100644 index c92ddd5..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/en_PH/__init__.py +++ /dev/null @@ -1,147 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - """ - Provider for company names for en_PH locale - - Company naming scheme and probabilities are inspired by and/or based on existing companies in the Philippines. - - Sources: - - https://en.wikipedia.org/wiki/List_of_companies_of_the_Philippines - - https://www.pse.com.ph/stockMarket/listedCompanyDirectory.html - """ - - formats = OrderedDict( - [ - ( - "{{random_company_adjective}} {{random_company_noun_chain}} {{company_type}} {{company_suffix}}", - 0.24, - ), - ( - "{{random_company_acronym}} {{random_company_noun_chain}} {{company_type}} {{company_suffix}}", - 0.24, - ), - ( - "{{last_name}} {{random_company_noun_chain}} {{company_type}} {{company_suffix}}", - 0.16, - ), - ("{{random_company_adjective}} {{company_type}} {{company_suffix}}", 0.12), - ("{{random_company_acronym}} {{company_type}} {{company_suffix}}", 0.12), - ("{{last_name}} {{company_type}} {{company_suffix}}", 0.09), - ( - "National {{random_company_product}} Corporation of the Philippines", - 0.03, - ), - ] - ) - company_suffixes = OrderedDict( - [ - ("Inc.", 0.45), - ("Corporation", 0.45), - ("Limited", 0.1), - ] - ) - company_types = ( - "Bank", - "Banking", - "Capital", - "Company", - "Construction", - "Development", - "Enterprise", - "Equities", - "Finance", - "Foods", - "Group", - "Holdings", - "Hotel", - "Manufacturing", - "Mining", - "Properties", - "Resorts", - "Resources", - "Services", - "Shipping", - "Solutions", - "Technologies", - "Trust", - "Ventures", - ) - company_products = ( - "Bottle", - "Coconut", - "Computer", - "Electricity", - "Flour", - "Furniture", - "Glass", - "Newspaper", - "Pillow", - "Water", - ) - company_nouns = ( - "Century", - "City", - "Crown", - "Dragon", - "Empire", - "Genesis", - "Gold", - "King", - "Liberty", - "Millennium", - "Morning", - "Silver", - "Star", - "State", - "Summit", - "Sun", - "Union", - "World", - ) - company_adjectives = ( - "Advanced", - "Rising", - "Double", - "Triple", - "Quad", - "Allied", - "Cyber", - "Sovereign", - "Great", - "Far", - "Northern", - "Southern", - "Eastern", - "Western", - "First", - "Filipino", - "Grand", - "Manila", - "Mega", - "Metro", - "Global", - "Pacific", - "Oriental", - "Philippine", - "Prime", - ) - - def company_type(self) -> str: - return self.random_element(self.company_types) - - def random_company_adjective(self) -> str: - return self.random_element(self.company_adjectives) - - def random_company_noun_chain(self) -> str: - return " ".join(self.random_elements(self.company_nouns, length=self.random_int(1, 2), unique=True)) - - def random_company_product(self) -> str: - return self.random_element(self.company_products) - - def random_company_acronym(self) -> str: - letters = self.random_letters(self.random_int(2, 4)) - return "".join(letters).upper() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/en_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/en_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a0ca72065df6f6509beedfbfdca0f42ae22ca535..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3920 zcmb_fO>7)V74Dwt?rD$h%*LCIoE+FDR@e+mX0$)q%{pPt#(zP?j(2Sc%x1S~ch}66 z-CfnG?zTO4ECTYPtdLkZW#NDpIN-<#aX=zmIB@{+H`W}yD!~CEw2HVm>*bOYuey6| z$BxM*B~A6Ks#ou?zW1u;Pu<;lNwi<*XUHK*`d2(iJ2m}oy#T~*$&nn{l{~p3%aW6E zvTnx9RuoyvNTZUYtVoWEl(lTKr;=@G#oRqHD9XI^3Ud%c&Jec4dzoZTpI~$j!?d03 zNO~n5Y^?xsTS8JrcBD$ikt^AZgp?X6{;9ksCtMXZoy+c;(;TIebJU9NXq65pSIIj% z>a1p*juoZSmC|{jyHmOo=tC*p1#}^$yMcbHai~~eA`I3r=*%0?+GZP7$_$%&zC{`a zu{;#SGl-ZImkgKMmW%T7hQS>kOln48*O7+|i#UeQ=(IJBT^wTAZ82nE68IPbWlT2& zM;TO1TLFwIG0*}ILLnhhDz;!^gmq+0)Io;tV}gQGqH~f)%tk?fY`__#9)^ChmJ{TU$Ev%h7)>{$4on#r+OE6sxxLkBi3dgs|843)>Zq$BJTl;_vf&{eA4tT7Kha z{ulDU5k_1bw?a&b;cTFL?PN++3LV!BOq9Ek@SHawfp`e)O+C>_ME)ovflti#7JdMB+-Z|_- z1~P2pumRS)ppkcsM2uju85{wGgDvA|KJYEDk!us!b?H1;uUfFb*aJdiMGdYD#xe#O zohMuyVpa`;rwx0ew(;C3f6xZU9SF%XIf!I8&vV-&QD=uBdF z4m2v0p~bigeTZN(^58&ub}}Md{R$BWq+X@Wb&AKh{<dJN4AE#BJlCce z_Tj6%5m~VMy6a-#QU@ELUxX6$AY21cqYPOfeFQY><8Tgj#0W&4MhTT0hJ+VWxvMB4 z)Dg@?xJN`a#)JwHP~_ljErMN(D`Ti;adixZjB;(%h2jrLo3LzL#WvTkFbv^?sr*je z<>~~(9vICK90IY^iw^)TN#dpzzpZo7-Ii`hGrLz|PBfSm_wAmxmU2!?cjR$MmqTeW zMlM`U0PXJG=^WgVxe_3^8i-xSgXMCadZ-*yh=XS>l&9JRKv&f8vWKChKqAM3X&RPG zbBN5r#V}p=8)2Q27fa8-P!1p$&-j)-Yt>Ltu3EE*m0?r-BnZl>0dQl%by_w}$d1r7 zOMZiQ?Y3?48BiK;5m%A8isMV+T`)8_2Hj2Rqr%f0g%j(A6Cb{`(RX&e?`*5^a#MeK zOGMzIW50(@*w z^md*Sizg0>@D9&+!Lr~L=md~@-d}ic;R9u(_w;)2>D8%?GXv{q2L7P@t?Fs89rrCSC)jQiNxJ}*Ne*jM;YafEyQ*D?*_K3T4Kgf>mi9yP^`0POeNEyB- zynh71&aL;IYZYE?>aXtiPlG)%z`hN{|EWrk0GJ~?nKo$JKv|ZZ>`eQA2uN(V8{2;Z z9tFR(lx7;e`(7lly114dwh&5Bhu^5I&8>@~$Gmofwb#)grk>)uGF zPsxKLnKJwUWCUlS103}n-RL>F-gELp=jZe%^jFs1!>!MqZ}nWbmHVi0`2G3!=D$DR zDm=SUIJsUp*(yBO)Sru^JYGD^bu)fpnkLVirU$3(BA~lW^Lk{t;_V5eoM}4LHcciX z%yaNB#k1fIv5k`Cjf?{JHmtMjqVq)O2=*+zb(kfFNOV+mOmq$C?ntpAaU|kDMR6w% zJopZDE7JXpuIl%XNQL8{WR7&?x3WhI+Rf4XC8@XXlZ+xJv|g>L9N9c{>>2Im*yc-} z$*}k7czEjgaacXNc}`Ye`M}V?%lL0=HGC$GLJ2A(WN{i|6q=-<>b>Z#T2 zrxJV;69r<%iz@H5DZD1)$6F8wghj9t+szAu$&JxY0`@JjBr0a?;RF3b65-d_3e1T@ g73accR+i;|NPYj7KL4pUmXS~0`sRNn@r}3s4;7uT!vFvP diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/en_US/__init__.py deleted file mode 100644 index 995221b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/en_US/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7c313780607cf66c592fb7fc209fd0f9fe43d933..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmX|8u};G<5Is9BN~=~Zd;?ODs0FNug@Fwr0Yb`Rxv`;X<2X2OMFzyufj{UsRIL03 zKY$`JF|i>PmQL77iidme$#>6p=eK^p3+}vj$2S%}E762@gR5Oj7Qlg{1SASE0t{!s z@f^4(@QYXHg{Wu+?JsOqfJ*;Dt69v2jvAK=P$O17OBNs?L>xj~pa5%Ua~^o5Pie}e zptS5#Dixn5j`t|NpR%OBS;ER0tsluqNkNP_*g`S$T-p}Ys63)GMI^U zMv{0)vcim1dNepVBzbJae#W8+yAwINWfP%^EvnkjNu*@P(t?PTUSASQ<1{vu4zi-^ zxC$-XOzze-hxeARJC^;AQ?qjWw6@u-Mf)zP%5*=l_K)jPPjuf(x2Jr^hHnoc^Z|Q6 OTL^WYpMJqYRrLp4*=|1o diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/es_CL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/es_CL/__init__.py deleted file mode 100644 index 2a10911..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/es_CL/__init__.py +++ /dev/null @@ -1,442 +0,0 @@ -from ... import ElementsType -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{company_prefix}} {{last_name}} y {{last_name}} {{company_suffix}}", - "{{company_prefix}} {{last_name}}, {{last_name}} y {{last_name}} {{company_suffix}}", - "{{company_prefix}} {{last_name}} y Asociados {{company_suffix}}", - "{{last_name}}, {{last_name}} y {{last_name}} {{company_suffix}}", - "{{last_name}} y {{last_name}} {{company_suffix}}", - "{{name}} E.I.R.L.", - "{{name}} EIRL", - ) - - catch_phrase_words = ( - ( - "habilidad", - "acceso", - "adaptador", - "algoritmo", - "alianza", - "analista", - "aplicación", - "enfoque", - "arquitectura", - "archivo", - "inteligencia artificial", - "array", - "actitud", - "medición", - "gestión presupuestaria", - "capacidad", - "desafío", - "circuito", - "colaboración", - "complejidad", - "concepto", - "conglomeración", - "contingencia", - "núcleo", - "fidelidad", - "base de datos", - "data-warehouse", - "definición", - "emulación", - "codificar", - "encriptar", - "extranet", - "firmware", - "flexibilidad", - "focus group", - "previsión", - "base de trabajo", - "función", - "funcionalidad", - "interfaz gráfica", - "groupware", - "interfaz gráfico de usuario", - "hardware", - "soporte", - "jerarquía", - "conjunto", - "implementación", - "infraestructura", - "iniciativa", - "instalación", - "conjunto de instrucciones", - "interfaz", - "intranet", - "base del conocimiento", - "red de area local", - "aprovechar", - "matrices", - "metodologías", - "middleware", - "migración", - "modelo", - "moderador", - "monitorizar", - "arquitectura abierta", - "sistema abierto", - "orquestar", - "paradigma", - "paralelismo", - "política", - "portal", - "estructura de precios", - "proceso de mejora", - "producto", - "productividad", - "proyecto", - "proyección", - "protocolo", - "línea segura", - "software", - "solución", - "estandarización", - "estrategia", - "estructura", - "éxito", - "superestructura", - "soporte", - "sinergia", - "mediante", - "marco de tiempo", - "caja de herramientas", - "utilización", - "website", - "fuerza de trabajo", - ), - ( - "24 horas", - "24/7", - "3ra generación", - "4ta generación", - "5ta generación", - "6ta generación", - "analizada", - "asimétrica", - "asíncrona", - "monitorizada por red", - "bidireccional", - "bifurcada", - "generada por el cliente", - "cliente-servidor", - "coherente", - "cohesiva", - "compuesto", - "sensible al contexto", - "basado en el contexto", - "basado en contenido", - "dedicada", - "generado por la demanda", - "didáctica", - "direccional", - "discreta", - "dinámica", - "potenciada", - "acompasada", - "ejecutiva", - "explícita", - "tolerante a fallos", - "innovadora", - "amplio abanico", - "global", - "heurística", - "alto nivel", - "holística", - "homogénea", - "híbrida", - "incremental", - "intangible", - "interactiva", - "intermedia", - "local", - "logística", - "maximizada", - "metódica", - "misión crítica", - "móvil", - "modular", - "motivadora", - "multimedia", - "multiestado", - "multitarea", - "nacional", - "basado en necesidades", - "neutral", - "nueva generación", - "no-volátil", - "orientado a objetos", - "óptima", - "optimizada", - "radical", - "tiempo real", - "recíproca", - "regional", - "escalable", - "secundaria", - "orientada a soluciones", - "estable", - "estática", - "sistemática", - "sistémica", - "tangible", - "terciaria", - "transicional", - "uniforme", - "valor añadido", - "vía web", - "defectos cero", - "tolerancia cero", - ), - ( - "adaptativo", - "avanzado", - "asimilado", - "automatizado", - "balanceado", - "enfocado al negocio", - "centralizado", - "clonado", - "compatible", - "configurable", - "multiplataforma", - "enfocado al cliente", - "personalizable", - "descentralizado", - "digitalizado", - "distribuido", - "diverso", - "mejorado", - "en toda la empresa", - "ergonómico", - "exclusivo", - "expandido", - "extendido", - "cara a cara", - "enfocado", - "de primera línea", - "totalmente configurable", - "basado en funcionalidad", - "fundamental", - "horizontal", - "implementado", - "innovador", - "integrado", - "intuitivo", - "inverso", - "administrado", - "mandatorio", - "monitoreado", - "multicanal", - "multilateral", - "multi-capas", - "en red", - "basado en objetos", - "de arquitectura abierta", - "open-source", - "operativo", - "optimizado", - "opcional", - "orgánico", - "organizado", - "perseverante", - "persistente", - "polarizado", - "preventivo", - "proactivo", - "enfocado a ganancias", - "programable", - "progresivo", - "llave pública", - "enfocado a la calidad", - "reactivo", - "realineado", - "recontextualizado", - "reducido", - "con ingeniería inversa", - "de tamaño adecuado", - "robusto", - "seguro", - "compartible", - "sincronizado", - "orientado a equipos", - "total", - "universal", - "actualizable", - "centrado en el usuario", - "versátil", - "virtual", - "visionario", - ), - ) - - bsWords = ( - ( - "implementa", - "utiliza", - "integra", - "optimiza", - "evoluciona", - "transforma", - "abraza", - "habilita", - "orquesta", - "reinventa", - "agrega", - "mejora", - "incentiva", - "modifica", - "empodera", - "monetiza", - "fortalece", - "facilita", - "sinergiza", - "crea marca", - "crece", - "sintetiza", - "entrega", - "mezcla", - "incuba", - "compromete", - "maximiza", - "visualiza", - "innova", - "escala", - "libera", - "maneja", - "extiende", - "revoluciona", - "genera", - "explota", - "transiciona", - "itera", - "cultiva", - "redefine", - "recontextualiza", - ), - ( - "sinergias", - "paradigmas", - "marcados", - "socios", - "infraestructuras", - "plataformas", - "iniciativas", - "canales", - "communidades", - "ROI", - "soluciones", - "portales", - "nichos", - "tecnologías", - "contenido", - "cadena de producción", - "convergencia", - "relaciones", - "arquitecturas", - "interfaces", - "comercio electrónico", - "sistemas", - "ancho de banda", - "modelos", - "entregables", - "usuarios", - "esquemas", - "redes", - "aplicaciones", - "métricas", - "funcionalidades", - "experiencias", - "servicios web", - "metodologías", - ), - ( - "valor agregado", - "verticales", - "proactivas", - "robustas", - "revolucionarias", - "escalables", - "de punta", - "innovadoras", - "intuitivas", - "estratégicas", - "e-business", - "de misión crítica", - "uno-a-uno", - "24/7", - "end-to-end", - "globales", - "B2B", - "B2C", - "granulares", - "sin fricciones", - "virtuales", - "virales", - "dinámicas", - "24/365", - "magnéticas", - "listo para la web", - "interactivas", - "punto-com", - "sexi", - "en tiempo real", - "eficientes", - "front-end", - "distribuidas", - "extensibles", - "llave en mano", - "de clase mundial", - "open-source", - "plataforma cruzada", - "de paquete", - "empresariales", - "integrado", - "impacto total", - "inalámbrica", - "transparentes", - "de siguiente generación", - "lo último", - "centrado al usuario", - "visionarias", - "personalizado", - "ubicuas", - "plug-and-play", - "colaborativas", - "holísticas", - "ricas", - ), - ) - - company_prefixes: ElementsType[str] = ( - "Corporación", - "Compañía", - "Comercial", - "Despacho", - "Grupo", - "Holding", - "Club", - "Industrias", - "Laboratorio", - "Proyectos", - ) - - company_suffixes: ElementsType[str] = ( - "Sociedad Anónima", - "Limitada", - "S.A.", - "S.p.A.", - "SPA", - "Ltda.", - ) - - def company_prefix(self) -> str: - """ - :example: 'Grupo' - """ - return self.random_element(self.company_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/es_CL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/es_CL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5d2e32adf630928e6757139e82d54c242dc94aec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6703 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 str: - return self.random_element(self.company_types) - - def company_suffix(self) -> str: - return self.random_element(self.company_suffixes) - - def random_name_complements(self) -> str: - return self.random_element(self.name_complements) - - def random_company_adjective(self) -> str: - return self.random_element(self.company_adjectives) - - def random_company_acronym(self) -> str: - letters = self.random_letters(self.random_int(2, 4)) - return "".join(letters).upper() - - def company_prefix(self) -> str: - return self.random_element(self.company_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 60caaa82e33d2d525f94eab88ce105721bf6723b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3981 zcmcf^U2GgjdH4Q(XZvioaYK>lwpLQE)Vpodq>1CU1jkN{>?7h_37wEubGvirb#`a2 zGrM-~+(3l#kV+JIp+P()sL(`KDx&fLNWg;;6!pcHky5QxUJ!`9Ik*TZLV|B*_Z-~Y__&D{GvJ$XeuKg-X((W5ATmP8EF@q6PrK&~pbVymv=sZ~`~?1Y_k z6JD~KQk8^qMzK?u6+4YnOUX#5nrvlC*}H-$sbS$O%*G7crya|`n}~S1bBxYAz_ucd z2&Q6U;}RfO6|7WMTd5{&wVJdO)l@>k>4st_f21y{kz_Svr>a>yUCr5fcM3CFW~*HVyTab5}1285n87INkVc{q-;3|LbMJ$q3Gj-uUOVGx+}XtD8cvG=4Ms#^f);@5G!j z{aoXnAC`Vx{_rQU+8Fip#(Qtg{Oi}r-wIZ?qK{G9)Ejp*_dd5V_B+9Y0H*Xt-!v(w zg5Sq_Q-W0<{{EW>-n|v;P3dKQys`G^pR$YOSDRw5=#8)a?cYzo_w_elE~Uck1oEI; zQJ6l%f+h`fXEE~-p*&2T1z6Gon4Zch*AYty8-Mv-((d^ZA{K(F;mji&GzCe+E{Gha zo`c-5ZxeOe$fgVhVi*IniI#6K-$K&n7$w|ifhBDQ-BN(?!1XBukuZN6x{)#Jx)2oL zO=Qi|u=g~yC39+lXhF=Sp$P;LTX^}GzGI; zJ&j0EN0u}r9Zx$1%RCA&Ts^ua+^>R11ny+sVOIsSc?Ul8Fkhi=oL5+=1fD}guJEC! z5;S2|ptw*>9_D6{>%y_aWzlA^MW`!6fdmRO&^^3KnU6W_lfq%`6bIiztzCfe+aXGQ zVb`g7Q6?L-@?$WjucC{%C0r@!ShX@2c4YM7@*z$FPX}epn z%9K&49&UHV6rfpwRst4g7>4o_D?UKMilT^9Tl_YT1GuWZrp#^q3Ow-uSDf8Do~2l_ zqTE!=r9{{p&m}k>L@R_nRy?8Q`EpYYQyjZ>F0{1!7mZnH2E(U59E|9KG1Ea{Gl=18 zcn-{UI4dPlqrRcfV=`~JPR(ex{8>tl=+8c9a45hqZ2a@60S8eXoyW`oC3(HzMjU`4 zk7vU)VZZpMsW)3;_tx0j2f(RR(YLY*1j;`H;F9t|@u54#CsvD3Tzme`(9zYQqie-u zE4gDEq9UJuIavwJmJ;kKc!hnPkfH&LIeQw|Q5BgkBzm_?v>(}(O{DrN2yg6>&+*lv z<7>qeE4dTw84&qj=d<(B+m+8F`&0CnhkAx55v*!i)KO{2HDLd-i26iva!8p)e zqV2~w7im9{1;}Hs?KiSIG_qDaxsp4%JIf5{$Zq}?ARp7sLT1Nft9D{3?($A&UsUbn zT<5>Q7WvmUFX409E$kRwir*EblqxfEufHom2;}CBaIp`Q3r1j^y#w%`D%b%*_39OHBFmZz|O+|91r=Ni5!{u z7s$p1_<{h(1ULa8Ov3TY3_%_d-~|Cj1Q-)w0>I6v7v;jq|5Or)eaf!@xUAeu!)UuWRY(-TU}~%%$n|2{jqf`Tj@Y`{4RvHT}X5 ztPKTT>lrmYaxE$F5sBY;XcHg3F(mNO^-LoD`5Pbuul1ai|47Ko#g(CzOX;v+!KF&v z@Zka$Rp3RDkLZN3I2N61oxR4U#V0XuWRCZ9qfu>NV&{M-4m;Vz>q%8rKU9YPqCE9c RrlqPQSHAfVMZBfze*mP5mLC8B diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/es_MX/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/es_MX/__init__.py deleted file mode 100644 index e93e734..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/es_MX/__init__.py +++ /dev/null @@ -1,439 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}}-{{last_name}}", - "{{company_prefix}} {{last_name}}-{{last_name}}", - "{{company_prefix}} {{last_name}} y {{last_name}}", - "{{company_prefix}} {{last_name}}, {{last_name}} y {{last_name}}", - "{{last_name}}-{{last_name}} {{company_suffix}}", - "{{last_name}}, {{last_name}} y {{last_name}}", - "{{last_name}} y {{last_name}} {{company_suffix}}", - ) - - catch_phrase_words = ( - ( - "habilidad", - "acceso", - "adaptador", - "algoritmo", - "alianza", - "analista", - "aplicación", - "enfoque", - "arquitectura", - "archivo", - "inteligencia artificial", - "array", - "actitud", - "medición", - "gestión presupuestaria", - "capacidad", - "desafío", - "circuito", - "colaboración", - "complejidad", - "concepto", - "conglomeración", - "contingencia", - "núcleo", - "fidelidad", - "base de datos", - "data-warehouse", - "definición", - "emulación", - "codificar", - "encriptar", - "extranet", - "firmware", - "flexibilidad", - "focus group", - "previsión", - "base de trabajo", - "función", - "funcionalidad", - "interfaz gráfica", - "groupware", - "interfaz gráfico de usuario", - "hardware", - "soporte", - "jerarquía", - "conjunto", - "implementación", - "infraestructura", - "iniciativa", - "instalación", - "conjunto de instrucciones", - "interfaz", - "intranet", - "base del conocimiento", - "red de area local", - "aprovechar", - "matrices", - "metodologías", - "middleware", - "migración", - "modelo", - "moderador", - "monitorizar", - "arquitectura abierta", - "sistema abierto", - "orquestar", - "paradigma", - "paralelismo", - "política", - "portal", - "estructura de precios", - "proceso de mejora", - "producto", - "productividad", - "proyecto", - "proyección", - "protocolo", - "línea segura", - "software", - "solución", - "estandarización", - "estrategia", - "estructura", - "éxito", - "superestructura", - "soporte", - "sinergia", - "mediante", - "marco de tiempo", - "caja de herramientas", - "utilización", - "website", - "fuerza de trabajo", - ), - ( - "24 horas", - "24/7", - "3ra generación", - "4ta generación", - "5ta generación", - "6ta generación", - "analizada", - "asimétrica", - "asíncrona", - "monitorizada por red", - "bidireccional", - "bifurcada", - "generada por el cliente", - "cliente-servidor", - "coherente", - "cohesiva", - "compuesto", - "sensible al contexto", - "basado en el contexto", - "basado en contenido", - "dedicada", - "generado por la demanda", - "didáctica", - "direccional", - "discreta", - "dinámica", - "potenciada", - "acompasada", - "ejecutiva", - "explícita", - "tolerante a fallos", - "innovadora", - "amplio abanico", - "global", - "heurística", - "alto nivel", - "holística", - "homogénea", - "híbrida", - "incremental", - "intangible", - "interactiva", - "intermedia", - "local", - "logística", - "maximizada", - "metódica", - "misión crítica", - "móvil", - "modular", - "motivadora", - "multimedia", - "multiestado", - "multitarea", - "nacional", - "basado en necesidades", - "neutral", - "nueva generación", - "no-volátil", - "orientado a objetos", - "óptima", - "optimizada", - "radical", - "tiempo real", - "recíproca", - "regional", - "escalable", - "secundaria", - "orientada a soluciones", - "estable", - "estática", - "sistemática", - "sistémica", - "tangible", - "terciaria", - "transicional", - "uniforme", - "valor añadido", - "vía web", - "defectos cero", - "tolerancia cero", - ), - ( - "adaptativo", - "avanzado", - "asimilado", - "automatizado", - "balanceado", - "enfocado al negocio", - "centralizado", - "clonado", - "compatible", - "configurable", - "multiplataforma", - "enfocado al cliente", - "personalizable", - "descentralizado", - "digitalizado", - "distribuido", - "diverso", - "mejorado", - "en toda la empresa", - "ergonómico", - "exclusivo", - "expandido", - "extendido", - "cara a cara", - "enfocado", - "de primera línea", - "totalmente configurable", - "basado en funcionalidad", - "fundamental", - "horizontal", - "implementado", - "innovador", - "integrado", - "intuitivo", - "inverso", - "administrado", - "mandatorio", - "monitoreado", - "multicanal", - "multilateral", - "multi-capas", - "en red", - "basado en objetos", - "de arquitectura abierta", - "open-source", - "operativo", - "optimizado", - "opcional", - "orgánico", - "organizado", - "perseverante", - "persistente", - "polarizado", - "preventivo", - "proactivo", - "enfocado a ganancias", - "programable", - "progresivo", - "llave pública", - "enfocado a la calidad", - "reactivo", - "realineado", - "recontextualizado", - "reducido", - "con ingeniería inversa", - "de tamaño adecuado", - "robusto", - "seguro", - "compartible", - "sincronizado", - "orientado a equipos", - "total", - "universal", - "actualizable", - "centrado en el usuario", - "versátil", - "virtual", - "visionario", - ), - ) - - bsWords = ( - ( - "implementa", - "utiliza", - "integra", - "optimiza", - "evoluciona", - "transforma", - "abraza", - "habilita", - "orquesta", - "reinventa", - "agrega", - "mejora", - "incentiva", - "modifica", - "empodera", - "monetiza", - "fortalece", - "facilita", - "sinergiza", - "crea marca", - "crece", - "sintetiza", - "entrega", - "mezcla", - "incuba", - "compromete", - "maximiza", - "visualiza", - "innova", - "escala", - "libera", - "maneja", - "extiende", - "revoluciona", - "genera", - "explota", - "transiciona", - "itera", - "cultiva", - "redefine", - "recontextualiza", - ), - ( - "sinergias", - "paradigmas", - "marcados", - "socios", - "infraestructuras", - "plataformas", - "iniciativas", - "canales", - "communidades", - "ROI", - "soluciones", - "portales", - "nichos", - "tecnologías", - "contenido", - "cadena de producción", - "convergencia", - "relaciones", - "arquitecturas", - "interfaces", - "comercio electrónico", - "sistemas", - "ancho de banda", - "modelos", - "entregables", - "usuarios", - "esquemas", - "redes", - "aplicaciones", - "métricas", - "funcionalidades", - "experiencias", - "servicios web", - "metodologías", - ), - ( - "valor agregado", - "verticales", - "proactivas", - "robustas", - "revolucionarias", - "escalables", - "de punta", - "innovadoras", - "intuitivas", - "estratégicas", - "e-business", - "de misión crítica", - "uno-a-uno", - "24/7", - "end-to-end", - "globales", - "B2B", - "B2C", - "granulares", - "sin fricciones", - "virtuales", - "virales", - "dinámicas", - "24/365", - "magnéticas", - "listo para la web", - "interactivas", - "punto-com", - "sexi", - "en tiempo real", - "eficientes", - "front-end", - "distribuidas", - "extensibles", - "llave en mano", - "de clase mundial", - "open-source", - "plataforma cruzada", - "de paquete", - "empresariales", - "integrado", - "impacto total", - "inalámbrica", - "transparentes", - "de siguiente generación", - "lo último", - "centrado al usuario", - "visionarias", - "personalizado", - "ubicuas", - "plug-and-play", - "colaborativas", - "holísticas", - "ricas", - ), - ) - - company_preffixes = ( - "Despacho", - "Grupo", - "Corporacin", - "Club", - "Industrias", - "Laboratorios", - "Proyectos", - ) - - company_suffixes = ( - "A.C.", - "S.A.", - "S.A. de C.V.", - "S.C.", - "S. R.L. de C.V.", - "e Hijos", - "y Asociados", - ) - - def company_prefix(self) -> str: - """ - :example: 'Grupo' - """ - return self.random_element(self.company_preffixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/es_MX/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/es_MX/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index fca8a3732805968afbf8ecee9bdc2039b86a2ff7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6516 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fa_IR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/fa_IR/__init__.py deleted file mode 100644 index ee5d337..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/fa_IR/__init__.py +++ /dev/null @@ -1,1113 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - company_names = [ - "گروه سیمان", - "گروه فلزات اساسي", - "ایران گچ", - "آلومتك", - "ساروج بوشهر", - "آلومينيوم ايران", - "سيمان  ساوه", - "ایران ذوب", - "سيمان اردبيل و آهك آذرشهر", - "پارس مولیبدن", - "سيمان اروميه", - "ذوب روی اصفهان", - "سيمان اصفهان", - "صنايع مس شهيد باهنر", - "سيمان ايلام", - "صنایع خالص سازان روی زنجان", - "سيمان بجنورد", - "صنعتی و سرمایه گذاری سپنتا", - "سيمان بهبهان", - "كالسيمين", - "سيمان تهران", - "گروه كارخانه هاي توليدي نورد آلومينيوم", - "سيمان خاش", - "ملي سرب و روي ايران", - "سيمان خزر", - "ملی صنایع مس ایران", - "سيمان داراب", - "آلومراد", - "سيمان دورود", - "آلومينيوم المهدي", - "سيمان سفيدني ريز", - "آلومينيوم پارس", - "سيمان شاهرود", - "کارخانجات تولیدی مواد الومینیوم", - "سيمان شرق", - "مجتمع ذوب و احیای روی قشم", - "سيمان شمال", - "مجتمع صنايع الومينيوم جنوب", - "سيمان صوفيان", - "مس تکنار", - "سيمان غرب", - "گروه کانی های فلزی", - "سيمان فارس", - "آلوميناي ايران", - "سيمان قاين", - "تهيه و توليد مواد اوليه فولاد خراسان", - "سيمان كارون", - "سنگ آهن مركزي ايران", - "سيمان كرمان", - "هرمز انرژی", - "سيمان مازندران", - "واحد طلای موته", - "سيمان هرمزگان", - "واحد پیربکران", - "سيمان هگمتان", - "واحد فسفات اسفردی", - "سیمان خوزستان", - "واحد نخلک", - "سیمان دشتستان", - "ويتانا", - "سیمان زابل", - "گروه صنایع غذایی", - "سیمان فارس نو", - "کشاورزی و تحقیقاتی نوین زعفران", - "سیمان لار سبزوار", - "گلستان", - "سیمان لارستان", - "آرد زر", - "سیمان لامرد", - "اروم آدا", - "سیمان مجد خواف", - "ایران گلاب مرغوب", - "سیمان ممتازان کرمان", - "بيسكوئيت گرجي", - "فراورده سیمان شرق", - "تحول چاشنی توس", - "گچ ماشيني فارس", - "تهیه و بسته بندی خشکبار آرات", - "سیمان آذر آبادگان خوی", - "توسعه کشت ذرت", - "سیمان بوهروک یزد", - "تولیدی آرد البرز", - "سیمان جوین", - "تولیدی زعفران سحرخیز", - "سیمان قشم", - "خوراك دام پارس", - "سیمان کردستان", - "دشت مرغاب", - "گچ تهران", - "روغن نباتي پارس", - "گروه فولاد", - "روغن نباتي جهان", - "پلی ران اتصال", - "روغن نباتی گلناز", - "توليدی لوله هاي پلي اتيلن دوجداره بوشهر", - "روغنکشی خرمشهر", - "تولید لوله و پوشش سلفچگان", - "زر ماکارون", - "سلفچگان", - "سالمين", - "ذوب آهن اصفهان", - "سپتیکو", - "ساخته های فلزی اصفهان", - "سحر همدان", - "صنايع فرو آلياژ ايران", - "سقزسازی کردستان", - "صنايع گالوانيزه فجر سپاهان", - "شاد گل نیشابور", - "صنایع فولاد آلياژي يزد", - "شهد ايران", - "فولاد اکسین خوزستان", - "صنایع غذایی مینو شرق", - "فولاد آلیاژی ایران", - "صنعتي  پارس مينو", - "فولاد خوزستان", - "صنعتي مينو خرم دره", - "فولاد صنعت مهدی", - "فراورده های سیب زمینی پریس اصفهان", - "فولاد مباركه اصفهان", - "فرآورده های گوشتی تهران", - "کارخانجات نورد لوله یاران", - "كشت و صنعت پياذر", - "کاوه کشاورز", - "كيوان", - "گروه صنعتي سپاهان", - "کشت و صنعت اشراق", - "لوله و پروفیل سپنتا تهران", - "کشت و صنعت قطران گل ایران", - "لوله و ماشين سازي ايران", - "کشت وصنعت روژین تاک", - "مجتمع فولاد خراسان", - "کشتارگاه صنعتی طیور سپیدان آمل", - "میراب پروفیل", - "گروه توليدي مهرام", - "نورد و توليد قطعات فولادي", - "گلوكوزان", - "نورد و لوله صفا", - "مارگارين", - "نوین آلیاژسمنان", - "مجتمع صنایع غذایی بهپودر اصفهان", - "فولاد آذربايجان", - "مجتمع كشت و صنعت چين چين", - "فولاد افزا سپاهان", - "مجتمع کارخانجات سوربن شمال", - "گروه ملي صنعتي فولاد ايران", - "مرغ اجداد زربال", - "پروفيل صنعت جنوب", - "شوكو پارس", - "صبا فولاد خلیج فارس", - "آرد تجارت", - "فولاد تربت حیدریه", - "بهپاك", - "لوله و تجهيزات سديد", - "پيچك", - "نورد لوله اهواز", - "توسعه کشت و صنعت ملی ( كشت و صنعت گرگان )", - "نورد و پروفيل پارس", - "فراورده هاي غذائي مشهد", - "گروه پیمانکاری صنعتی", - "گروه معادن", - "احداث صنعت", - "معدن کاران انگوران", - "گروه ساخت قطعات خودرو", - "باما", - "تولید موتور های دیزل ایران", - "تامين ماسه ريخته گري", - "اگزوز خودرو خراسان", - "تامین مواد اولیه فولاد صبا نور", - "الكتريك خودرو شرق", - "توسعه معادن روي ايران", - "آهنگري تراكتورسازي ايران", - "توليد فروموليبدن كرمان", - "اورند پلاستیک", - "تولیدی آذر سنگ سرخ", - "ايران دوچرخ", - "جهاد نصر سیرجان", - "پلاسكو كار سايپا", - "حفاری ایراندشت کاشان", - "توليد محورخودرو", - "ذوب وروی بافق", - "توليدي قطعات محوري خراسان", - "زرین معدن آسیا", - "تولیدی صنعتی لنت پارس", - "زغال سنگ نگين طبس", - "چرخشگر", - "زنجان برنز", - "رادياتور ايران", - "سرمایه گذاری توسعه معادن کوثر", - "ريخته گري تراكتورسازي ايران", - "سنگ آهن شرق", - "رينگ سازي مشهد", - "سنگ آهن گل گهر", - "ریخته گری آلومینیوم ایران خودرو", - "سنگاب آذرشهر", - "ساخت و نصب صنعتی البرز", - "سنگاب همدان", - "سازه پويش", - "سوژميران", - "سايپا آذين", - "سولفاتيک", - "سایپا پرس", - "شن سازان هراز", - "سیبا موتور", - "صنعت روی زنگان", - "شمیم پژوهش", - "صنعتي و معدني شمال شرق شاهرود", - "صنايع ريخته گري ايران", - "فراوري مواد معدني ايران", - "صنایع ریخته گری پرلیت آسیا", - "فرو سيليس ايران", - "صنایع نوید موتور", - "مجتمع معادن سنگ چینی نی ریز", - "صنعتي نيرو محركه", - "معادن بافق", - "صنعتی صبوران پلیمر", - "معادن سنگ اهن احیاء سپاهان", - "فنر سازی زر گلپايگان", - "معادن منگنز ايران", - "فنرسازي خاور", - "معدن کار باختر", - "فنرسازي زر", - "معدني دماوند", - "كاربراتور ايران", - "معدني و صنعتي چادرملو", - "كارخانجات كمك فنر ايندامين سايپا", - "معدنی و فرآوری سرمه فیروزآباد", - "کابل خودرو سبزوار", - "ندای رهاوی", - "کلاچ سازی شایان صنعت", - "زغال سنگ البرز شرقی", - "گیربکس سایپا", - "زغال سنگ البرز مرکزی", - "لنت ترمز ايران", - "زغال سنگ کرمان", - "ماشین سازی فراگیر سپنتا", - "فرآوري معدني اپال کاني پارس", - "مجتمع صنعتی سپاهان باطری", - "گروه توسعه معادن روی ایران", - "محورسازان ايران خودرو", - "گروه قند و شکر", - "مهركام پارس", - "سهامی عام شهد – قند خوی", - "مهندسي نصير ماشين", - "شکر شاهرود", - "موتورسازان تراكتورسازي ايران", - "صنعتی کشاورزی شیرین خراسان", - "نیروسازاراک‎", - "فرآورد ه هاي غذايي و قند پيرانشهر", - "یسکو", - "فراورده هاي غذايي و قند تربت جام", - "گروه انتشار، چاپ و تكثير", - "فرآورده هاي غذايي و قند چهارمحال", - "افست", - "قند اصفهان", - "گروه خدمات فنی و مهندسی", - "قند ثابت خراسان", - "ملی ساختمان", - "قند شيروان قوچان وبجنورد", - "مهندسی فرا نیرو", - "قند قهستان", - "آبادراهان پارس", - "قند لرستان", - "احداث تاسیسات انتقال نیرو – اتانیر", - "قند مرودشت", - "آذرپاسیلو", - "قند نقش جهان", - "ارسا ساختمان", - "قند نيشابور", - "آفرینه طوس", - "قند هكمتان", - "اهرام فناوری قدرت", - "کارخانجات قند قزوین", - "ایریتک", - "قند بيستون", - "بازرسي مهندسي و صنعتي ايران", - "قند پارس", - "تجهیزات و خدمات صنایع آب و برق ایران – صانیر", - "گروه رایانه و فعالیتهای وابسته به آن", - "تکنیک", - "ایران ارقام", - "توسعه ساخت و نصب صنايع بتني و فلزي گسترش مانا ساز آبيک", - "تجارت الكترونيك پارسيان", - "جنرال مکانیک", - "توسعه سازه پایه فن آوا", - "حفاری شمال", - "توسعه فناوری اطلاعات خوارزمی", - "خدمات مهندسی ساختمان تاسیسات راه آهن", - "تینا سامانه", - "خدماتي تجهيزات سنگين همگام", - "داده پردازي خوارزمي", - "راهبران فولاد اصفهان", - "داده پردازی ایران", - "راهسازی و ساختمانی 115", - "داده پردازی فن آوا", - "ره  گستر نفت", - "داده سامانه فن آوا", - "صنعتی دریایی ایران – صدرا", - "فن آوا کارت", - "فراب", - "کارت اعتباری ایران کیش", - "کیسون", - "گسترش الکترونیک مبین ایران", - "معماران پارس صنعت", - "خدمات انفورماتیک", - "مهام شرق", - "گروه وسايل اندازه گيري، پزشكي و اپتيكي", - "مهندسان مشاور سازه", - "مهندسی فرسار تجارت", - "مهندسي و نصب فيرمکو پارس", - "پویندگان راه سعادت", - "مهندسي وتحقيقاتي فلزات غيرآهنی", - "كنتور سازي ايران", - "مهندسی و پشتیبانی نیروگاهی البرز توربین", - "گروه ماشين آلات و تجهيزات", - "موننکو ایران", - "مارال صنعت جاوید", - "نصب نیرو", - "ماشین رول", - "خدمات ماشینی کشتیرانی", - "افرند کالا سازه", - "گسترش صنايع وخدمات", - "آلفا پاک ایران", - "گروه لوازم خانگي", - "بلبرينگ ايران", - "لعران", - "بهسازان غلطک فولاد اصفهان", - "ارج", - "پارس بوشونگ", - "آیسان خزر", - "پاریزان صنعت", - "پارس خزر", - "پمپ سمنان انرژی", - "تولیدی و صنعتی نیک کالا", - "تراكتور سازي ايران", - "صنايع سرماآفرين قشم", - "تراکتور سازی کردستان", - "صنعتي جنرال", - "تسهیل ماشین صنعت", - "كارخانجات آبسال", - "توليد تجهيزات سنگين هپكو", - "كارخانجات لوازم خانگي پارس", - "توليدي پمپ پارس", - "کارخانجات پارس ماشین", - "توليدي تجهيزات ايمني راهها", - "گروه صنعتي بوتان", - "تیراژه ماشین", - "لوازم خانگی نانیوا", - "دلتا راه ماشین", - "توليدي كولر گازي ايران", - "رهشاد سپاهان", - "جام جهان نما", - "ساخت تجهيزات سپاهان", - "كارخانجات صنعتي آزمايش", - "سوت ماشین", - "گروه پلاستيك", - "صنايع پمپ سازي ايران", - "یزد بسپار", - "صنايع سرما آفرين", - "آرتا پلاست", - "صنایع پمپ ابارا", - "پلاستيران", - "صنعتی هلی خودرو", - "پلاستيکهاي مهندسي درخشان ساز", - "طراحي مهندسي وساخت تجهيزات وابزارآلات سايپا", - "توليدي پلاستيك شاهين", - "فولادريزي قائم سپهر سپاهان", - "توليدي گاز لوله", - "کالای پمپ", - "توليدي و صنعتي درخشان تهران", - "ماشين سازي اراك", - "جوی گستر نفت", - "ماشين سازي نیرو محركه", - "صنايع لاستيك سهند", - "مهندسي تكنو تار", - "كارخانجات توليدي تهران", - "مهندسي و توليد ماشين آلات راهسازي و معدني کشاورزي هپکو اراک", - "توليدي وصنعتي ايران وغرب", - "مهندسي و ساختمان ماشين سازي اراک", - "لوله سازي اهواز", - "مهندسي و قطعات ماشين آلات راه سازي ايران", - "گروه مبلمان و مصنوعات ديگر", - "مهندسی فیروزا", - "عايق پلاستيك", - "مهندسی و ساخت بویلر مپنا", - "تجهيزات مدارس ايران", - "هوا ابزار تهران", - "صنعتی جهان چیدمان-جلیس", - "اشتهاد موتورز", - "گروه محصولات شيميايي", - "كارخانجات صنعتي  و توليدي اتمسفر", - "احسان شیمی استهبان", - "كمپر سور سازي ايران", - "آریا رزین", - "ليفتراك سازي سهند", - "الکترو زر سازه", - "فرتاک ماشین", - "ایمن تاش سپاهان", - "کمباین سازی ایران", - "بردار شیب", - "ماشين آلات صنعتي تراكتور سازي ايران", - "بين المللي محصولات پارس", - "صنايع توليدي اشتاد ايران", - "بين المللي سارنگ تدارك", - "پروفيل و يخچال ايران پويا", - "پارس زئولايت", - "توليدي بهمن", - "پارسیان پارت پاسارگاد", - "گروه محصولات كاغذي", - "پاكسان", - "بسته بندي پارس", - "پاکنام", - "صنايع كاغذ سازي كاوه", - "پالایش قطران ذغالسنگ اصفهان", - "صنایع چوب و کاغذ مازندران", - "توکا رنگ فولاد سپاهان", - "كارتن البرز", - "تولي پرس", - "كارتن ايران", - "توليد سموم علف كش", - "کارتن مشهد", - "تولید مواد اولیه الیاف مصنوعی", - "محصولات کاغذی لطیف", - "تولیدی و صنعتی  فراسان", - "كارتن پارس", - "تولیدی و صنعتی سامد", - "گروه منسوجات", - "تولیدی وصنعتی خودرنگ", - "ايران برك", - "حباب کف توس", - "توليدي بافت آزادي", - "داروئي ارايشي وبهداشتي مينو", - "وطن اصفهان", - "دنیای آرایش", - "ريسندگي و با فندگي كاشان", - "دوده صنعتي پارس", - "ريسندگي و بافندگي پاكريس", - "رزیتان", - "ريسندگي و بافندگي ري", - "ریف ایران", - "فرش پارس", - "سامان شیمی", - "گردباف يزد", - "سرمايه گذاري صنايع شيميايي ايران", - "گروه صنعتي نقش ايران", - "شيمي بافت", - "نساجي بابكان", - "شيميايي پارس پامچال", - "نساجي خوي", - "شيميايي فرآورد قشم", - "نساجي غرب", - "شیمیایی بهداد", - "نساجي قائم شهر", - "شیمیایی بهداش", - "نساجي مازندران", - "شیمیایی و تولیدی رزپلیمر", - "وطن اصفهان", - "صنايع شيميايي رنگين", - "يزد باف", - "صنايع شيميايي سينا", - "صنايع نساجي ايران", - "صنايع شيميايي فارس", - "گروه بانك ها، موسسات اعتباري و ساير نهادهاي مالي", - "صنایع بهداشتی ساینا", - "بانك اقتصاد نوين", - "صنایع رنگ و رزین طیف سایپا", - "بانك پارسيان", - "صنایع شیمی ساختمان آباد گران", - "بانك سامان", - "فراپاکس شیراز", - "بانك كارآفرين", - "كربن ايران", - "بانک انصار", - "كف", - "بانک ایران زمین", - "کلر پارس", - "بانک پاسارگاد", - "گلتاش", - "بانک تجارت ایران", - "لابراتوارهای داروهای گیاهی طبیعت زنده", - "بانک حکمت ایرانیان", - "لعاب مشهد", - "بانک دی", - "لعابيران", - "بانک سرمایه", - "مجتمع صنایع شیمیایی پلیمر ایران", - "بانک سینا", - "مديريت صنعت شوينده توسعه صنايع بهشهر", - "بانک شهر", - "مروارید هامون", - "بانک صادرات ایران", - "معدني املاح ايران", - "بانک گردشگری", - "ملي شيمي كشاورز", - "بانک ملت", - "من", - "پست بانک", - "نيرو كلر", - "بانک تات", - "الياف", - "بانک کشاورزی", - "پارسيلون", - "گروه واسطه گري هاي مالي", - "توليدي  الياف پلي  پروپيلين  بنياد", - "رايان سايپا", - "صنايع تبديلي گلستان", - "سپرده گذاری مرکزی اوراق بهادار و تسویه وجوه", - "كارخانجات توليدي سوپر رنگ", - "ليزينگ آريادانا", - "صنايع رنگ پارس الوان", - "ليزينگ ايران", - "گروه مواد و محصولات دارويي", - "ليزينگ خودرو غدير", - "آفا شیمی", - "ليزينگ صنعت و معدن", - "البرز دارو", - "ليزينگ ماشين الات سنگين ايرانيان", - "ايران دارو", - "لیزینگ اقتصاد نوین", - "پارس دارو", - "لیزینگ رازی", - "تحقیقاتی و تولیدی سیناژن", - "لیزینگ ماشین آلات و تجهیزات پاسارگاد", - "تهران دارو", - "لیزینگ ایرانیان", - "تهران شيمي", - "لیزینگ شهر – لیزینگ سامان آریا", - "توليد ژلاتين کپسول ايران", - "گروه توزیع برق", - "توليد مواد اوليه دارو پخش", - "توزیع برق بوشهر", - "تولید مواد دارویی درسا دارو", - "توسعه برق شمال افشان گستر", - "داروسازي اسوه", - "صنايع برق زنگان پارس", - "داروسازي اكسير", - "گهر انرژي سيرجان", - "داروسازي امين", - "برق و انرژی صبا", - "داروسازي جابرابن حيان", - "گروه شرکتهای بازرگانی", - "داروسازي حكيم", - "اتصال استیل هما", - "داروسازي دكتر عبيدي", - "اسپرلوس اهورا", - "داروسازي روزدارو", - "افزار پرداز رمیس", - "داروسازي زهراوي", - "الهام بیسان", - "داروسازي فارابي", - "ایمان تجارت روشن", - "داروسازي كوثر", - "بازرگاني پتروشيمي", - "داروسازی بهوزان", - "بازرگانی ارمغان مهر سیرت", - "داروسازی تولید دارو – سهامی خاص", - "بازرگانی ایران ترانسفو", - "داروسازی دانا", - "بازرگانی بین المللی استوان سپند", - "داروسازی شهید قاضی تبریز", - "بازرگانی پارس ماهان آسیا", - "داروسازی گیلارانکو", - "بازرگانی پتروشیمی زنجان", - "داروئي و بهداشتي لقمان", - "بازرگانی تبادل و تدارک کالا", - "داملران", - "بازرگانی صبا بیمه ایرانیان", - "سينا دارو", - "بازرگانی مبین تجارت غرب", - "شيمي دارويي داروپخش", - "بازرگانی نفت یاب", - "صنعتي كيميدارو", - "بازرگانی،صنعتی بهشت پارس", - "فارما شیمی", - "بهترین های پزشکی پارس", - "فراورده هاي تزريقي ايران", - "پارس بازرگان", - "كارخانجات دارو پخش", - "پارس گستر مینو", - "لابراتورهای دارویی رازک", - "پديده گستران غرب", - "مواد اولیه دارویی تهران شیمی", - "تجارت گستران خوارزمي", - "داروسازی سبحان انکولوژی", - "تجاری و بازرگانی مواد معدنی میناب", - "سرمايه گذاري البرز", - "تجهیز یاران", - "شيرين دارو", - "تهیه و تولید خاک نسوز استقلال آباده", - "گروه دارویی سبحان", - "توسعه صنايع غذايي بم", - "گروه خودروسازی", - "توسعه و تجارت بین المللی صبا", - "ايران خودرو", - "توسعه و تجارت ماتریس", - "ايران خودروديزل", - "جهان فعالیت", - "ایران خودرو تبریز", - "خشکبار دست چین", - "ایران خودرو خراسان", - "داده های رسا", - "ایران خودرو مازندران", - "دانیال کار", - "بهمن دیزل", - "درمان یار آنی", - "پارس خودرو", - "راسن درمان", - "تولیدی و صنعتی عقاب افشان", - "رویال پیشگام شرق", - "زامياد", - "سامان بارز", - "سايپا", - "سیاحان سپهر آسیا", - "سايپاديزل", - "صخره سنگی فرزین", - "سایپا کاشان", - "صنایع نئون پرس", - "گروه بهمن", - "فانوس دشت تجارت", - "بنيان ديزل", - "کیا مهستان", - "توليدي مرتب", - "کیمیا آرا هرم", - "گروه محصولات لبني", - "گسترش تجارت کالای ایرانیان", - "پاک پی", - "مديريت و ساخت طرحهاي نفت گستر", - "تولید فرآورده های لبنی کاله", - "مهر اسپند پویا", - "شير پاستوريزه پگاه اصفهان", - "مهندسی بازرگانی درداران سریر", - "شير پاستوريزه پگاه خراسان", - "نویان بسپار", - "شير پگاه آذربايجان غربي", - "نیکان شهد بارز", - "صنايع شير ايلام زاگرس", - "گروه هولدینگ", - "فراورده هاي لبني پاکسار ساري", - "توسعه صنايع بهشهر – هلدينگ", - "لبنيات پاستوريزه پاك", - "داروپخش – هلدينگ", - "لبنيات كالبر", - "راه آهن جمهوری اسلامی ایران", - "لبنیات پاستوریزه پاک آرا سنندج", - "سرمايه گذاري توسعه معادن و فلزات", - "گروه منسوجات و فرش بافی", - "سرمايه گذاري توكا فولاد – هلدينگ", - "ابهر ریس", - "سرمايه گذاري صنعت نفت – هلدينگ", - "ايران پوپلين", - "سرمایه گذاری گروه صنعتی ملی", - "ايران مرينوس", - "گروه صنعتي سديد – هلدينگ", - "بافتینه", - "گروه صنعتي قطعات اتومبيل ايران", - "پشمبافي توس", - "گروه صنعتي ناب", - "پلي اكريل ايران", - "گسترش نفت و گاز پارسیان", - "تمدن فرش کاشان", - "مدیریت پروژه های نیروگاهی ایران – مپنا", - "تولیدی پارس دکور", - "هلدینگ توسعه معادن و صنایع معدنی خاورمیانه", - "تولیدی پارس نخ", - "هلدینگ دامپروری شیروگوشت پارس", - "تولیدی پینک", - "سرمايه گذاري بانك ملي ايران – هلدينگ", - "تولیدی و صنعتی پارس تکمیل", - "صنعتي بهشهر", - "تولیدی و صنعتی رسول اصفهان", - "گروه بنادر ودریانوردی", - "شبنم باف", - "پایانه ها و مخازن پتروشیمی", - "صنایع موکت همدان", - "خدمات دریایی و بندری کاوه", - "صنایع نخ خمین", - "گروه گاز", - "صنایع نساجی همدانیان", - "گاز اصفهان", - "ظریف مصور", - "ملی گاز", - "فرش مشهد", - "گاز خراسان جنوبی", - "فرش نگین مشهد", - "گروه آشامیدنی ها", - "کارخانجات ریسندگی نطنز", - "آب معدنی دماوند", - "مخمل و ابريشم كاشان", - "آذر شهد ارومیه", - "موکت نگین مشهد", - "بهنوش ايران", - "نساجي بروجرد", - "پیمان فردان", - "نساجی کویر سمنان", - "تولیدی نوشابه ارم نوش", - "صنايع نساجي ايران", - "زمزم آذربایجان", - "گروه حمل و نقل دریایی و حمل و نقل آب های ساحلی", - "زمزم اصفهان", - "حمل و نقل ترکیبی کشتیرانی جمهوری اسلامی", - "زمزم تهران", - "حمل و نقل خدمات دریایی آبادان", - "زمزم رشت", - "خدمات دریایی و کشتیرانی خط دریا بندر", - "زمزم گرگان", - "دريابان جنوب ايران", - "شهداب", - "کشتیرانی آریا", - "فرآورده های نوشیدنی تسنیم نوش", - "کشتیرانی جمهوری اسلامی ایران", - "نوش مازندران", - "کشتیرانی والفجر", - "ساسان", - "گروه خدمات فنی-مهندسی خودرو", - "گروه تایر سازی", - "امداد خودرو ایران", - "ایران یاسا", - "امداد خودرو سایپا", - "بید وایر ایران", - "بازرسی فنی و کنترل خوردگی تکین کو", - "توليدي ايران تاير", - "گواه", - "توليدي لاستيکهاي صنعتي مبارکه", - "مزدا یدک", - "کویر تایر", - "مهندسی و مشاور سازه گستر سایپا", - "لاستيك دنا", - "خدمات کمات ماشین شرق", - "لاستیک بارز", - "گروه فرهنگی و گردشگری", - "8", - "لاستیک پارس", - "تجارت توسعه گردشگري آتيه انديشان", - "مجتمع صنايع لاستيك يزد", - "توسعه گردشگري کاروانسراي پارس", - "مجتمع صنعتي آرتاويل تاير", - "گروه سرمايه گذاري ميراث فرهنگي و گردشگري ايران", - "توليدي لاستيك البرز – كيان تاير", - "مجتمع توريستي، رفاهي آبادگران ايران", - "گروه شرکتهای مشاوره", - "گروه كاني های غير فلزي", - "irpmc", - "آجر نسوز امين آباد", - "بودجه irpmc", - "آذريت", - "همکاران سیستم اردبیل", - "ايتالران", - "همکاران سیستم البرز", - "ايرانيت", - "همکاران سیستم پناه شرق", - "پرمیت", - "همکاران سیستم خراسان جنوبی", - "پشم شیشه ایران", - "7", - "همکاران سیستم خراسان رضوی", - "تولیدی و صنعتی آبگینه", - "همکاران سیستم خوزستان", - "خاك چيني ايران", - "همکاران سیستم زنجان", - "زرین شیشه مرکزی", - "همکاران سیستم فارس", - "سایپا شیشه", - "همکاران سیستم قزوین", - "سراميك هاي صنعتي اردكان", - "همکاران سیستم گیلان", - "شيشه قزوين", - "همکاران سیستم مازندران", - "شيشه همدان", - "گروه ماشين آلات و دستگاههاي برقي", - "شيشه و گاز", - "ايران ترانسفو", - "شیشه داروئی رازی تاکستان", - "ایران ترانسفوی ری", - "فارسيت اهواز", - "پارس سوئيچ", - "فرآورده هاي نسوز پارس", - "تال ایران", - "فرآورده هاي نسوزآذر", - "تامین تابلو", - "فراورده های نسوز ایران", - "تجهیزات انتقال برق پارس", - "كارخانجات توليدي شيشه دارويي رازي", - "ترانسفور ماتور توزیع زنگان", - "كارخانه فارسيت درود", - "تهران پادنا", - "ورزيران", - "توربوژنراتور شاهرود", - "مقره سازی ایران", - "توس فیوز", - "چینی سازی البرز", - "جابون", - "گروه ارتباطات", - "خیام الکتریک", - "ارتباطات فن آوا", - "صنايع جوشكاب يزد", - "ارتباطات کوه نور", - "صنایع کابل سازی افق البرز", - "ارتباطات سیار ایران – همراه اول", - "صنعتی مهندسی پالایش نیرو", - "مخابرات ایران", - "فاراتل", - "گروه شرکت های پخش", - "كابل البرز", - "پخش سراسری کالای کالبر", - "كابل باختر", - "پخش هجرت", - "كابلهاي مخابراتي شهيد قندي", - "توزيع داروهاي دامي داروپخش", - "كارخانجات كابلسازي ايران", - "مهندسي و پشتيباني پخش فرآورده هاي نفتي امين", - "کابل تک", - "گروه بیمه", - "لامپ پارس شهاب", - "بيمه پاسارگاد", - "مازی نور", - "بیمه آسیا", - "مهندسی مپنا مکو", - "بیمه البرز", - "مهندسی و ساخت توربین مپنا توکا", - "بیمه پارسیان", - "مهندسی و ساخت ژنراتور مپنا – پارس", - "بیمه دانا", - "موتوژن", - "بیمه دی", - "نيرو ترانس", - "بیمه نوین", - "پارس نور الکتریک", - "صندوق بیمه سرمایه گذاری فعالیت های معدنی", - "توليدي قوه پارس", - "گروه سرمايه گذاري ها", - "مهندسی و ساخت پره توربين مپنا – پرتو", - "حفیظ سامانه", - "تامین قطعات و تجهیزات سرو نیرو شیراز", - "تکادو", - "صنایع مهتاب خراسان", - "سرمايه گذاري آتيه دماوند", - "صنعتي مهر آباد", - "سرمايه گذاري انديشه محوران", - "گروه كشاورزي ، دامپروري و خدمات وابسته به آن", - "سرمايه گذاري بهمن", - "تلیسه نمونه", - "سرمايه گذاري پارس توشه", - "دانه چین", - "سرمايه گذاري توسعه آذربايجان", - "دامپروری و مرغداری دشت خرمدره", - "سرمايه گذاري توسعه صنعتي ايران", - "دامداری شیر و دام بنیاد", - "سرمايه گذاري توسعه ملي", - "شیر و گوشت زاگرس", - "سرمايه گذاري چشم انداز توسعه شمال", - "کشاورزی ودامپروری بینالود", - "سرمايه گذاري ساختمان ايران – هلدينگ", - "کشاورزی ودامپروری دشت نوین ملایرا", - "سرمايه گذاري سايپا", - "کشاورزی ودامپروری یاسوج", - "سرمايه گذاري سپه", - "کشت و دام قیام اصفهان", - "سرمايه گذاري صندوق بازنشستگي كشوري", - "کشت وصنعت سبز پاسارگاد", - "سرمايه گذاري صنعت بيمه", - "گسترش صنايع و خدمات کشاورزي", - "سرمايه گذاري صنعت ومعدن", - "مجتمع دامداری بیجین", - "سرمايه گذاري گروه صنايع بهشهر ايران", - "مجتمع شیر و گوشت مهدشت", - "سرمايه گذاري گروه صنعتي رنا", - "مگسال", - "سرمايه گذاري معيار صنعت پارس", - "کشت وصنعت پیوند هراز", - "سرمايه گذاري ملت", - "گروه محصولات فلزي", - "سرمايه گذاري ملي ايران", - "صنعتی گام اراک", - "سرمايه گذاري نيرو", - "آریا بارون توس", - "سرمايه گذاري هامون کيش", - "پودر جوش ایران", - "سرمایه گذاری اعتماد جم", - "تولیدی و صنعتی الکترود یزد", - "سرمایه گذاری اقتصاد نوین", - "جوش و اکسیژن ایران", - "سرمایه گذاری ایساتیس پویا", - "دژپاد", - "سرمایه گذاری پارس آریان", - "سولیران", - "سرمایه گذاری توسعه و عمران استان اردبیل-سبلان سبز", - "صنايع مفتولي زنجان", - "سرمایه گذاری دارویی تامین", - "صنایع آذرآب", - "سرمایه گذاری دانایان پارس", - "صنایع استیل البرز", - "سرمایه گذاری سروش یاران", - "صنایع بسته بندی ایران", - "سرمایه گذاری صندوق بازنشستگی کارکنان بانک ها", - "صنایع بسته بندی مشهد", - "گسترش سرمايه گذاري ايران خودرو", - "صنایع فلزی کوشا", - "گسترش سرمایه گذاری ایرانیان", - "صنعتی آما", - "مديريت سرمايه گذاري اميد", - "صنعتی جام دارو", - "نیرو سرمایه", - "لامیران – تیغ ایران", - "هلدینگ توسعه معادن و صنایع معدنی خاور میانه -میدکو", - "آونگان", - "ملی نفت ایران", - "پارس متال", - "مديريت سرمايه برنا", - "پایساز", - "سرمايه گذاري بوعلي", - "توسعه و گسترش صنایع بسته بندی فلزی", - "سرمايه گذاري سمند", - "تولیدی ابزار مهدی", - "سرمايه گذاري صنايع پتروشيمي", - "گسترش صنایع انرژی آذرآب", - "سرمايه گذاري كار آفرين", - "صنایع فلزی ایران", - "سرمايه گذاري نفت قشم", - "صنعتی کاوه", - "سرمایه گذاری پویا همگام", - "صنعتی ملایر", - "سرمایه گذاری توسعه  الوند غدیر", - "بسته بندي البرز", - "گروه فعاليتهاي پشتيباني و حمل و نقل", - "گروه حمل و نقل، انبارداری و ارتباطات", - "خدمات دريايي تايدواترخاورميانه", - "بنیادبارانداز", - "گروه توليدات پتروشيمي", - "توکا ریل", - "پترو شیمی لاله", - "حمل و نقل آشنا راه سماء", - "پتروشيمي آبادان", - "حمل و نقل بین المللی خلیج فارس", - "پتروشيمي اراك-پتروشیمی شازند", - "حمل و نقل پتروشیمی", - "پتروشيمي اصفهان", - "حمل و نقل توکا", - "پتروشيمي شيراز", - "گروه فرآورده هاي نفتي كك و سوخت هسته اي", - "پتروشیمی  پردیس", - "پالايشگاه نفت تبريز", - "پتروشیمی  زاگرس", - "پالایش نفت آبادان", - "پتروشیمی امیرکبیر", - "پالایش نفت بندر عباس", - "پتروشیمی بندر امام", - "پالایش نفت تهران", - "پتروشیمی بیستون", - "پالایش نفت لاوان", - "پتروشیمی تند گویان", - "پالایشگاه نفت شیراز", - "پتروشیمی جم", - "تجهيز نيروي زنگان", - "پتروشیمی جهرم", - "خدمات حفاری صنایع نفت", - "پتروشیمی خارک", - "نفت ایرانول", - "پتروشیمی خراسان", - "نفت بهران", - "پتروشیمی رجال", - "نفت پارس", - "پتروشیمی فن آوران", - "نگین فخر آذربایجان", - "پتروشیمی مارون", - "توسعه نفت وگاز مپنا", - "پتروشیمی مبین", - "تولیدی مخازن گاز طبیعی آسیا ناما", - "صنایع پتروشیمی کرمانشاه", - "گروه كاشي و سراميك", - "پتروشيمي اروند", - "پارس سرام", - "پتروشيمي برزويه", - "تولید سرام دیر گداز", - "پتروشيمي فجر", - "تولیدی توس چینی", - "مديريت توسعه صنايع پتروشيمي", - "تولیدی گرانیت بهسرام", - "پتروشيمي بوعلي سينا", - "سرامیک طوس", - "پتروشيمي بين الملل", - "صنایع چینی زرین ایران", - "پتروشيمي خوزستان", - "صنایع کاشی اصفهان", - "پتروشيمي پارس", - "صنایع کاشی تیما", - "اوره و ؛آمونیک پتروشیمی زنجان", - "صنایع کاشی نائین", - "پتروشيمي فسا", - "صنایع کاشی و سرامیک الوند", - "پتروشیمی داراب", - "کارخانجات کاشی و سرامیک حافظ", - "پتروشیمی سرمایه گذاری ایرانیان", - "کارخانه چینی ایران", - "پتروشیمی لردگان", - "کاشی بیستون", - "پتروشیمی ممسنی", - "کاشی پارس", - "خاک طلایی توس", - "کاشی تکسرام", - "شهرک صنعتی پتروشیمی زنجان", - "کاشی فیروزه مشهد", - "صنايع پتروشيمي دهدشت", - "کاشی کرد", - "صنایع پتروشیمی تخت جمشید", - "کاشی نیلو", - "صنایع پتروشیمی زنجان", - "کاشی و سرامیک سعدی", - "گروه انبوه سازي، املاك و مستغلات", - "کاشی و سرامیک سینا", - "آ س پ", - "گلسار فارس", - "آذر توسعه مسکن", - "گروه شركتهاي چند رشته اي صنعتي", - "بين المللي توسعه ساختمان", - "سرمايه گذاري غدير", - "پارس مسکن خزر", - "سرمایه گذاری گروه توسعه ملی(سرمایه گذاری بانک ملی ایران", - "توسعه ساختمان خوارزمي", - "گروه ساير وسايل حمل و نقل", - "توسعه صنعت ساختمان غدیرخوزستان", - "سرمايه گذاري اعتباري ايران", - "زرین بنا پارسیان", - "گروه ساخت راديو، تلويزيون و دستگاهها و وسايل ارتباطي", - "ساختمان اصفهان", - "آريا الكترونيك ايران", - "ساختماني برج ناهيد", - "پارس الكتريك", - "سامان گستر اصفهان", - "شهاب", - "سرمايه گذاري توسعه شهري توس گستر", - "صنايع مخابراتي راه دور ايران", - "سرمايه گذاري توسعه وساختماني برج آوران", - "فن آوران انیاک", - "سرمايه گذاري ساختمان نوین", - "كارخانجات صنعتي پيام", - "سرمايه گذاري شاهد", - "كارخانجات مخابراتي ايران", - "سرمايه گذاري و توسعه خوزستان", - "مرکز ماشینهای اداری ایران", - "سرمایه گذاری مسکن تهران", - "گروه محصولات چوبي", - "سرمایه گذاری مسکن شمال شرق", - "ایزوفام", - "شهرسازی و خانه سازی باغ میشه", - "توليد فيبر ايران", - "صبا آرمه", - "صنايع چوب خزر کاسپين", - "طرح ساختمان پارسا", - "نئوپان 22 بهمن", - "عمران و توسعه شاهد", - "سخت آژند", - "گروه شرکت های مشاوره تبلیغاتی", - "موسسه پویندگان توسعه پارس", - # Source: https://en.wikipedia.org/wiki/List_of_companies_of_Iran - "شرکت ملی نفت ایران", - "معادن ایران", - "سازمان نوسازی", - "ایران خودرو", - "امیدان تجارت کیش ", - "سایپا", - "مجتمع فولاد مبارکه", - "بانک پارسیان", - "بانک سامان", - "بانک سپه", - "صنایع پتروشیمی ایران", - "بانک مسکن", - "لایف برد پارسه", - "صنایع پترو شیمی بو علی سینا", - "فولاد خورستان", - "ابر موتور", - "سرمایه‌گذاری بانک ملی", - "ایران خودرو دیزل", - "توسعه صنعتی بوشهر", - "بانک اقتصاد نوین", - "شرکت زامیاد", - "صنایع شیر ایران (پگاه)", - "سرمایه‌گذاری غدیر", - "ایمیدرو", - "کارخانجات داروپخش", - "سایپا دیزل", - "بانک کارآفرین", - "معدنی و صنعتی چادرملو", - "ساخت تأسیسات دریایی ایران", - "اتکا", - "گسترش و نوسازی صنایع ایران", - "تولی‌پرس", - "هواپیمایی آسمان", - "سازمان صنایع هوایی ایران", - "مادیران", - "پارس آنلاین", - "شاتل", - "شرکت مخابرات ایران", - "ایرانسل", - "راه‌آهن ایران", - "هواپیمایی پیام", - "متروی تهران", - "شرکت ملی نفت‌کش ایران", - "پالایش و پخش فراورده‌های نفتی ایران", - "سازمان انرژی اتمی ایران", - "صدا و سیما", - "رجحان", - "شرکت داده‌پردازی ایران", - "گروه هتل‌های هما", - "کیش اورینتال", - "الک تیک", - ] - - def company(self) -> str: - return self.random_element(self.company_names) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fa_IR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/fa_IR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 866f599e0e7a622ab3e5155df14400342a05fb0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42481 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 Dfj|43 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fi_FI/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/fi_FI/__init__.py deleted file mode 100644 index adfecfb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/fi_FI/__init__.py +++ /dev/null @@ -1,66 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - ) - - company_suffixes = ( - "As Oy", - "Tmi", - "Oy", - "Oyj", - "Ky", - "Osk", - "ry", - ) - - def company_business_id(self) -> str: - """ - Returns Finnish company Business Identity Code (y-tunnus). - Format is 8 digits - e.g. FI99999999,[8] last digit is a check - digit utilizing MOD 11-2. The first digit is zero for some old - organizations. This function provides current codes starting with - non-zero. - """ - - def calculate_checksum(number: str) -> str: - """Calculate the checksum using mod 11,2 method""" - factors = [7, 9, 10, 5, 8, 4, 2] - sum_ = 0 - for x, y in zip(number, factors): - sum_ = sum_ + int(x) * y - if sum_ % 11 == 1: - raise ValueError("Checksum 1 is invalid") - if sum_ % 11 == 0: - return "0" - else: - return str(11 - sum_ % 11) - - while True: - first_digit = str(self.random_digit_not_null()) - body = first_digit + self.bothify("######") - try: - cs = calculate_checksum(body) - except ValueError: - continue - return body + "-" + str(cs) - - def company_vat(self) -> str: - """ - Returns Finnish VAT identification number (Arvonlisaveronumero). - This can be calculated from company business identity code by - adding prefix "FI" and removing dash before checksum. - """ - - def convert_to_vat(business_id: str) -> str: - """ - Convert business id to VATIN - """ - return "FI" + business_id.replace("-", "") - - return convert_to_vat(self.company_business_id()) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fi_FI/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/fi_FI/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 548a1c3b9da5c83bf846df19c78bdc55375d33d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2922 zcma)8-%lLJ9iRPiKlo*k51Svc>G(%#*5>XCX)#a>iQrI~ms}zg&daZVp`#Q&~`KdUk z-*rkzOZkZzhVNAa<$lQyWHGo`T?yp3#DJ{^GOY$lYVitnO$p@VroupM^l%pl_)OyQ z3i#`IT!f=OQfpEh;w|Y7v=Vu;B?5z;XtERW)#MEsIOEuyU?pnId9G6%OGj32WY(B90 za!ZrzxmjW7_@qJ7t&|EDrJdm5Q#m7InSt-{k3gQHCCHlJNi~VcHTguOAeK8(`P@eD zo=52CFsmsLRhhT)<~Z6Lstm_u&J;SC0_LbGh&$q1hq0UYdB`bF}Q^}_&baZtCX=7+> zAaowI2_n$vKy2jz&<7oe@}c6C2k@bT4nf4`{ByG+-a_Z7h`;Tw8IDZ?>3fTm8|JF9WU+kF zShZ+AN*c=YQE}vpwmvtX*LB;qxvuBR)!?iddryx&=TCs?5I%D;ycMFN(ruEv<#-^& zrgPtv{0^Lom4Q4&e>*?2d1pVwtGLl@bQIb%k@h)_cAv(Z#QJ6 zYv8MM*Pf~MbJ@poBZ+$Zx2`;y`b61&^Y^K}%(dOlYyWwfK)pl4-2-3s^b5}p9I>-t z{5eX`44~%&Z8NVc&#y{APk}+}0=Wyk|N8<7A^!imIG|8f|IaOe`Z{*MJ#!z!bq#P` zw9OCzaTBlb@C;q^T*qd{8UPyn1bPC&Ly$BL7Z;%L<3uL7NWD_)LWpxWvH%x?z)oDK zwzgvsBA}v7Ex5z+<+=IG7}5q)s{~~L3&eo?rC6k{OI&C}OGNgy6WDQcA+ z!?ZMs=HMR_#&I)^&zMb>I`{N7gZm@j$YA(;qTo+)-xA710YOHmMH1flaxl9$n0;pc zVXQtlzLy!_?Hs39fkBhQYNWygFor7t(KmoF0k$~WOGjK%Vk5oZwvitQksCn3;2E{; z=I2TSLHC7nD7t@kqMjj9KjV8t<8>&Z?#bQsWN81cmJZT-_-NDhpk3GDQm8lQ0vE%*I@52T@L!sW#iQ&^QB%*ql2ILWH$cgUc!#j;L z>Hg%d+S};8m>Aw(I7HAjrn?eTTMI7{bWJVd0==s#bQJnfQP4fxd{)L@pi^Q=xH2?( ll)lwG!88>?5CLVqK%mei=`ZN|%jC2)wfW0`Bj`e@{{jwo{p str: - return self.random_element(self.noun_ish_good_traits) - - def random_good_service_adjective(self) -> str: - return self.random_element(self.good_service_adjectives) - - def random_good_service_adjective_chain(self) -> str: - adjectives: Sequence[str] = self.random_elements(self.good_service_adjectives, length=2, unique=True) - return " at ".join(adjectives) - - def random_object_of_concern(self) -> str: - return self.random_element(self.objects_of_concern) - - def english_catch_phrase(self) -> str: - return super().catch_phrase() - - def catch_phrase(self) -> str: - return self.random_element(self.catch_phrase_formats) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fil_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/fil_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3d9304648f037a65abf8836ea8fa4139d5e87251..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3522 zcmb_f&2JmW72oCOlKNnsDz1|#%_LNmGL^;V1A!CEvK`k=i=wVlIS4?Y-41t$+!1$Y zn3-KEq@=(H7nKi1Pla;~a!egb9v=Mkp8Y4X^~Isy+shN8?ND+z7d!W(^PWC&ji^< z7UZm(^K(JIQ80~+@tWc0uNrQF6mDgc`Hg(9ShGG+jhY#c{am<25ch}F3885%leZ$m z9P&vf8Ml@MU!|bpB(sw;mp1mcK=>_yAx6V=jYh^b8`+FOa%}+gzIn?`^cs0L+bFoX zMiKh+@0$$^0F_!9w|F(zD5tUo@>nXDKps!!GRPB&yk)dZckJqTV=^5Zhq20*@wVCc z*0NEX5C!mup9Sb;1m6%kYH@)a9&|D5A%+7Ybx(`>_R^1$&mHWOvYv54D^XCO422#+ zOCI%Uw@Vpx2`q@;Lmplw=truXGM<>5LzuZ}%_DkJ54n6!&%VgoK9!zULR6wiM%V`v zktCpwdnn+7XvZy~c@JT*+0%11EIE&U!jR+vK@OHgCT0&iM*vG3LO$&f1^hDBZs%a4 z4parwjYOA&1;krmo=WYto38B~;tV_w;U1=Hjru-n64WM)2pj@(MW?cnQa68)yPl?^ zDHI{0!l9T0OyK_>YjeosYh;xOAWngg950CgJO`X<;M&0uAkrX)2!M;w@sbEUp?Eps z0Tzq7Jb<9E&skeS1|M1x4zT96g<7tb>7Q6%C&^mb+P2-*b~iWM>r;Px?Qi{moCT!| z=UE%AuP2sm#v^9K;@WM_T{{$*hMSw{payTQ5GS;G%XT>ID8V*2pZwSD@BZfBuiySq z+55#Z5lt$4fbX7JZA}ufN*!WjS6QH|1T1&4z)0eInxo7M3pN0le(9&!qao^G>SLgD zAM|MJw&P){&?VDLajr>S92eV^d3X)S1rPhQP2+M0Ft9cTn{g3Vw%y^b64o%o?Ym_b z1w?QZG2SnBar-2eIL?QWk9)Oaq6EO=l1n;Z%EfMf(xc3!C<-tJ?qpo-U_jf%u?0O6 zd*A{j@C9z-$pCk8NJH@CW6VTF87shchQ*C7NV5p`b}!C_I8ZK?GE_X|TmfLX*RQCV zz;g%2SO^`H`yC3Q+n-3=Ar8T4Z7jBiyDTm(C7T^kTB!(jmtgnz;(QaJ>WZmoo45zS z^UX+gmI8niBt1a{=@=J76&Pp~1PLR-ob-Hza128o&+4~#3X1E-hOu&R6#CQ$z3O1T z@4J<1E*m$^OSMcqndT_*NkCW_PmM@cdDDz@lK3sDCZoIW)IB(6>cE;u0{nLU@=$;8BjE1&7-|fYZe)+!YR{?{*gyz3o>1Pnd-Xl<4F+Qq%`%dMl?aEW{y?Cd( zuw7l)shk;DXZ93p-#q1_24-s+@hnvFcSi3pDdu1_VOq>9#mCb~M(g)y?~i!2-jcF9 zBIvW*)w4U5a|7#~cn(w!1+AVDI?sL$!dJ^P*K{)0W#h`>Y?a~#m=NbyIAuWVN!2LtpM+AX{6{EZ zvHCz3lXI;<_y2L3XfK0x`2#2*jb^@gXXe!Q%&FT`cV2#D`{g$Vzp@9OKbSeSGZSo; zKdL_^D^oZ5sx3dY=>)IvTeu5 zQrdR1)K`+Fo*H#Q_aEPnY1D879Lr-+d~wD2Yh~)%+IFS7Q+aw|J^g?Ra>!#FtSmoOw$E^4&3W3gr1>iKHhaoM&5?nb_n$8Gy9cvq$) zMca0{W7|TdpSY-s@2f&>DscviI4eUT>Zf;YR0qw^= zn;m}?>f^i9W`6O;g*^kR-GZ4vZ{Coqao*f5Wb)7aX?f3pYS%LJ3pc82U_oikzUO=n z@~n~<-*x`0W@~;loJ+N0JmzrUSMMgyq-G&5ggtnyw}txK66XnnXTR2t$1k!aZ^-@4 ygl8S#U27rXcTv0!lhhR{r=i%*nx^@&QT^C>?4QQme+qA!=Hk}I=Z2~^ivI!afbLTO diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/fr_CH/__init__.py deleted file mode 100644 index 35d3a8f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_CH/__init__.py +++ /dev/null @@ -1,40 +0,0 @@ -from typing import List - -from ..fr_FR import Provider as CompanyProvider - - -class Provider(CompanyProvider): - company_suffixes = ("SA", "Sàrl.") - - def ide(self) -> str: - """ - Generates a IDE number (9 digits). - http://www.bfs.admin.ch/bfs/portal/fr/index/themen/00/05/blank/03/02.html - """ - - def _checksum(digits: List[int]) -> int: - factors = (5, 4, 3, 2, 7, 6, 5, 4) - sum_ = 0 - for i in range(len(digits)): - sum_ += digits[i] * factors[i] - return sum_ % 11 - - while True: - # create an array of first 8 elements initialized randomly - digits = self.generator.random.sample(range(10), 8) - # sum those 8 digits according to (part of) the "modulo 11" - sum_ = _checksum(digits) - # determine the last digit to make it qualify the test - control_number = 11 - sum_ - if control_number != 10: - digits.append(control_number) - break - - digits = "".join([str(digit) for digit in digits]) - # finally return our random but valid BSN - return "CHE-" + digits[0:3] + "." + digits[3:6] + "." + digits[6:9] - - uid = ide - # uid: german name for ide - idi = ide - # idi: italian name for ide diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/fr_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9bcfc3e60e6405311e12ffdccf7403ef29ecf38a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1904 zcmZ8iO>7fK6rTN!?bxvs$Am;63<;%+#BM@b(NIc769{b(Dh;YsOR(DPjN^6o$IPx1 zV%aK{P~`(s$tgyqQY!V3iXM>4fg^1%m3qOXD%Pr%QdK?pX5scwPMz@|EhG8O` z-uvGAr${6O=z0*!9uxrhqa}0*kz1>IoNSu_0?3%aVp0qPAPYH@wYU_|02a&x$lnA| zK>R(feI&)Li&9^m3KHY<7Yx^{vuz>pK6X|Oh_K#vZBuHbt2sf)CO{y?K#*b~lj0zY z_%z9PlTQgqNQvavx6VrfruUOrpItnY7YV!g!xlDWU&P4EV_Rp4s=ES&p*L%0h?cyB z@wyh^bu)ueqJ!)UInC3YB_;@pAj|g-^q4G7`qIh+k9yf3I^ZDBSDhEwL;p zGDWs)DREFNas|?r5?|yYzj6WqJXB<}k#3Y1d$AXf0XB2%GVIGnUs$_bk(~pd2|BwB zboL5~QWCtuo=xcH-C%D;dE!y(X-X^%6j>OAp)pV(2Vg&?L=%GHmo#A*X=@fq1f~^b z4M+opPeaMhnnyOmnupw^mV9^aY|_qKO9&@lok>Dt+3;LR?zv_>FLzQ=*4EbKrL-$+ z&@yaU&nQGtat`)1Q%PgRupzpxco}3NTbZ0xCSO;UOwC?VCa0Cj<8sEc%w9xaY$w4K z2mb>Gg;1RQnoERGV3ZihmRPR`9zO<%$4t9Os&0DI^7%q)O>;1f>WE=}Ao!ca#?0H31 z4cqWkRnD#ZK~>KneT7`BaG*QwG8uXKl7JH*4ivBMSwe1r+8(()UyBcy=YCC$ z-JPzie*Wf8;>a_=M3mc1EjC;cE7$G>x8}FceED8=uUw7E8+?N!*4_9><#~0pLGn|=Ufjc-Wl ziKErT(Wi;2YGUfa;fL(E(!)zTiMPw=evj{~e7F;zD9`QgKd?1%=cDq)T6F)`(39wR zEw*PfvJt7+KgW*MVu?naglp^pL&KXR8zc8$`DJuwJ8^fsg1$KVWOQa{@MKxsjV5UE zw+1Wy)#&(^UX4oI=k8D4zqGwjjh=WoUX8x>NPKkd$H7O$zVJA(@Xs>=jGc7pYri`+ z^o|lBu=fM1YHJo!RX?PvmIL!9<-@9aEw7m!ORNJb)y=2V#&zW4!z2cl2=TeR0cpXE zuK}jR)~aCZPoPC;GWQT6H$iRW$YXxE!H)?SnA?j@K=;NQpnu@T>~1LX$!z;L9m9)~ z;EUdR&aju;Fc1iu&wbDe=tpPU2=BHBPtvTt)XxK_+OIf`Un2(k$#7{?2__llH!$)i SQ2r7RG6Ut0{|01h9sC!l+ry;* diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/fr_DZ/__init__.py deleted file mode 100644 index 3f808a8..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_DZ/__init__.py +++ /dev/null @@ -1,87 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - """Company provider for fr_DZ locale (Algeria, French-language).""" - - # Sources: - # - https://www.commerce.gov.dz/fr/choix-de-la-forme-juridique-de-votre-entreprise-1 - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}} et Associés", - "{{last_name}} & {{last_name}}", - "{{last_name}}", - ) - - company_suffixes = ( - "SARL", - "S.A.R.L.", - "SPA", - "S.P.A.", - "EURL", - "E.U.R.L.", - "SNC", - "S.N.C.", - "SCS", - "S.C.S.", - "SEM", - "EP", - "EPIC", - ) - - catch_phrase_formats = ("{{catch_phrase_noun}} {{catch_phrase_verb}} {{catch_phrase_attribute}}",) - - nouns = ( - "la qualité", - "l'excellence", - "la confiance", - "le développement", - "la croissance", - "l'innovation", - "la performance", - "le progrès", - "la réussite", - "le service", - "la sécurité", - "le partenariat", - ) - - verbs = ( - "de réussir", - "d'avancer", - "d'évoluer", - "de se développer", - "d'innover", - "de progresser", - "d'investir", - "de construire", - "d'atteindre vos objectifs", - "de concrétiser vos projets", - ) - - attributes = ( - "ensemble", - "durablement", - "efficacement", - "avec confiance", - "en toute sécurité", - "pour demain", - "pour l'avenir", - "au service du pays", - "au cœur du développement", - "avec excellence", - ) - - def catch_phrase(self) -> str: - pattern: str = self.random_element(self.catch_phrase_formats) - return self.generator.parse(pattern) - - def catch_phrase_noun(self) -> str: - return self.random_element(self.nouns) - - def catch_phrase_verb(self) -> str: - return self.random_element(self.verbs) - - def catch_phrase_attribute(self) -> str: - return self.random_element(self.attributes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/fr_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index c50c0f09fdda89cff9f59ace96ffe05e88ddaeee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2552 zcmcguy>App6yLospYM~eU@!qzpg z@Pdg83R0y=K}x8?i8lX%l`4%b7bYvEN|o-UBMnvF% z* z{UZgEuEzNq4LU9+)Jb-cgHVcJ|0^Jm6rxxvR;(0Otu#(q8JxDVIAi5-)|$XMD~~6v zNt`EzW(rR}$XLaMF92Uk_#*J-gf9VKSug7qDj-E4F9fYN^4GO?0!3>ERBKZEnx%Px zgFK?WKkuy&>Y_{9bxM3^b;d*fN{Cj7Zs^%ayL;C|jN3kHk&O+IoWX`R3!6>%&c;S$ zyl(N&_Te<(8ec-VHqTh#xLaKoogCMl8wU`T$JBZ`&eZ2`-iY#bW8S!F+%V#Fy*3}^ z>P8JF;>_YLp4VB9aLb+@#2+M`K5EhKO5Eeg=Q;RiNQu}m4SEK6?D&o$n-Cm`L z5!(+!e~^ID*$$zN{j-R3>NY|S8PiK)5d!v*_H~Fnmv42Wl6Rimafs(Zwh2f`a{|BV zB9Ov^!j@=wtJ@)7&~B3!@p)7hHZ*V<6GmbK*Y|@C;%?wa6;QSbg}S!n7SbIN1z(|C zPgz(RxTjm)kTI8&r~nQap&b|el?O_;)pbHD(N#d(MwAmD!J*)KLE^_mOE#dk) z>tjl^PQbLFu|^#3Hd%OL;025wz{FkHNm{_hYlJhs5a)@{NUPzIxQIiFfDvhoO9YOr zgPcK9E2u-9k<=fCZHce(0P3cVB&665LaJfXLarZ`rQksVh!3C-p>UW=4Tq4obtca@ zOgle+FP4R`*Rm?z{(S)A93?!YzN3Qw;ZNLM@$dUU9x3;fwNY(i1+&9mlFW$VSz@`N zf<7~%NZ7TB{d4!!;i|gQRhRWlT%pLvLCYpd>W+-v1$ovuiziozPblI6jk9oO7|~O4 zh7qqBPqan#sLupKO?$avt_Ce)@_?^GBJY@A44IlJn#0YO3kO_Q5QIj+O#?FAF+I0o zw%7S;;LjSDKQP7looOTIHnb;ZHqmWDO;{wGEHjhVWXkqt+P3Sv+_sJOdR!WXAH4%k zZ{S?LUC{uzwA)a^c!Q7 zx*9C$i!C6)>fycWnVssH$8$ekd2(g9YHa5XDlXQ49g1j}jGh8dZx2M+ye$x+tHWxl z3GzQ6F1%{y`(Ym)%l|9G==7V5@XFvz5&r&4TzztNw>rC>pOtYf>(w}K%ZJytygl$3#5IAWhgd4jjP@ujPU9H<~bdL?r8^AZG-54@jJbR!hZWOiv4PRuJ)( z(;cK$o-p|lA&KZDtO4YK@@r%#og^yt|@qXO8tU<#KLwv3IH{ zhw0*>+~#M!=~Q;+2dA&V(95e?^YLt7fuWZh=jWcLU%>pFj9xlj*3+>fxwx8q$P6<} u4S`qGUjluZ|7eh&Pv~Ws6L*9i1=35as`{I9;YF^ls&fy&`BM?2T=y5Mj>)6| diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_FR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/fr_FR/__init__.py deleted file mode 100644 index 6365e40..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_FR/__init__.py +++ /dev/null @@ -1,439 +0,0 @@ -from typing import Optional, Tuple - -from faker.utils.checksums import calculate_luhn - -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - "{{last_name}}", - ) - - catch_phrase_formats = ("{{catch_phrase_noun}} {{catch_phrase_verb}} {{catch_phrase_attribute}}",) - - nouns = ( - "la sécurité", - "le plaisir", - "le confort", - "la simplicité", - "l'assurance", - "l'art", - "le pouvoir", - "le droit", - "la possibilité", - "l'avantage", - "la liberté", - ) - - verbs = ( - "de rouler", - "d'avancer", - "d'évoluer", - "de changer", - "d'innover", - "de louer", - "d'atteindre vos buts", - "de concrétiser vos projets", - ) - - attributes = ( - "de manière efficace", - "plus rapidement", - "plus facilement", - "plus simplement", - "en toute tranquilité", - "avant-tout", - "autrement", - "naturellement", - "à la pointe", - "sans soucis", - "à l'état pur", - "à sa source", - "de manière sûre", - "en toute sécurité", - ) - - company_suffixes: Tuple[str, ...] = ( - "SA", - "S.A.", - "SARL", - "S.A.R.L.", - "S.A.S.", - "et Fils", - ) - - siren_format = "### ### ###" - - # Data from: - # https://www.insee.fr/fr/information/2120875 - # fmt: off - ape_codes_naf_2003 = [ - "01.11Z", "01.12Z", "01.13Z", "01.14Z", "01.15Z", "01.16Z", "01.19Z", - "01.21Z", "01.22Z", "01.23Z", "01.24Z", "01.25Z", "01.26Z", "01.27Z", - "01.28Z", "01.29Z", "01.30Z", "01.41Z", "01.42Z", "01.43Z", "01.44Z", - "01.45Z", "01.46Z", "01.47Z", "01.49Z", "01.50Z", "01.61Z", "01.62Z", - "01.63Z", "01.64Z", "01.70Z", "02.10Z", "02.20Z", "02.30Z", "02.40Z", - "03.11Z", "03.12Z", "03.21Z", "03.22Z", "05.10Z", "05.20Z", "06.10Z", - "06.20Z", "07.10Z", "07.21Z", "07.29Z", "08.11Z", "08.12Z", "08.91Z", - "08.92Z", "08.93Z", "08.99Z", "09.10Z", "09.90Z", "10.11Z", "10.12Z", - "10.13A", "10.13B", "10.20Z", "10.31Z", "10.32Z", "10.39A", "10.39B", - "10.41A", "10.41B", "10.42Z", "10.51A", "10.51B", "10.51C", "10.51D", - "10.52Z", "10.61A", "10.61B", "10.62Z", "10.71A", "10.71B", "10.71C", - "10.71D", "10.72Z", "10.73Z", "10.81Z", "10.82Z", "10.83Z", "10.84Z", - "10.85Z", "10.86Z", "10.89Z", "10.91Z", "10.92Z", "11.01Z", "11.02A", - "11.02B", "11.03Z", "11.04Z", "11.05Z", "11.06Z", "11.07A", "11.07B", - "12.00Z", "13.10Z", "13.20Z", "13.30Z", "13.91Z", "13.92Z", "13.93Z", - "13.94Z", "13.95Z", "13.96Z", "13.99Z", "14.11Z", "14.12Z", "14.13Z", - "14.14Z", "14.19Z", "14.20Z", "14.31Z", "14.39Z", "15.11Z", "15.12Z", - "15.20Z", "16.10A", "16.10B", "16.21Z", "16.22Z", "16.23Z", "16.24Z", - "16.29Z", "17.11Z", "17.12Z", "17.21A", "17.21B", "17.21C", "17.22Z", - "17.23Z", "17.24Z", "17.29Z", "18.11Z", "18.12Z", "18.13Z", "18.14Z", - "18.20Z", "19.10Z", "19.20Z", "20.11Z", "20.12Z", "20.13A", "20.13B", - "20.14Z", "20.15Z", "20.16Z", "20.17Z", "20.20Z", "20.30Z", "20.41Z", - "20.42Z", "20.51Z", "20.52Z", "20.53Z", "20.59Z", "20.60Z", "21.10Z", - "21.20Z", "22.11Z", "22.19Z", "22.21Z", "22.22Z", "22.23Z", "22.29A", - "22.29B", "23.11Z", "23.12Z", "23.13Z", "23.14Z", "23.19Z", "23.20Z", - "23.31Z", "23.32Z", "23.41Z", "23.42Z", "23.43Z", "23.44Z", "23.49Z", - "23.51Z", "23.52Z", "23.61Z", "23.62Z", "23.63Z", "23.64Z", "23.65Z", - "23.69Z", "23.70Z", "23.91Z", "23.99Z", "24.10Z", "24.20Z", "24.31Z", - "24.32Z", "24.33Z", "24.34Z", "24.41Z", "24.42Z", "24.43Z", "24.44Z", - "24.45Z", "24.46Z", "24.51Z", "24.52Z", "24.53Z", "24.54Z", "25.11Z", - "25.12Z", "25.21Z", "25.29Z", "25.30Z", "25.40Z", "25.50A", "25.50B", - "25.61Z", "25.62A", "25.62B", "25.71Z", "25.72Z", "25.73A", "25.73B", - "25.91Z", "25.92Z", "25.93Z", "25.94Z", "25.99A", "25.99B", "26.11Z", - "26.12Z", "26.20Z", "26.30Z", "26.40Z", "26.51A", "26.51B", "26.52Z", - "26.60Z", "26.70Z", "26.80Z", "27.11Z", "27.12Z", "27.20Z", "27.31Z", - "27.32Z", "27.33Z", "27.40Z", "27.51Z", "27.52Z", "27.90Z", "28.11Z", - "28.12Z", "28.13Z", "28.14Z", "28.15Z", "28.21Z", "28.22Z", "28.23Z", - "28.24Z", "28.25Z", "28.29A", "28.29B", "28.30Z", "28.41Z", "28.49Z", - "28.91Z", "28.92Z", "28.93Z", "28.94Z", "28.95Z", "28.96Z", "28.99A", - "28.99B", "29.10Z", "29.20Z", "29.31Z", "29.32Z", "30.11Z", "30.12Z", - "30.20Z", "30.30Z", "30.40Z", "30.91Z", "30.92Z", "30.99Z", "31.01Z", - "31.02Z", "31.03Z", "31.09A", "31.09B", "32.11Z", "32.12Z", "32.13Z", - "32.20Z", "32.30Z", "32.40Z", "32.50A", "32.50B", "32.91Z", "32.99Z", - "33.11Z", "33.12Z", "33.13Z", "33.14Z", "33.15Z", "33.16Z", "33.17Z", - "33.19Z", "33.20A", "33.20B", "33.20C", "33.20D", "35.11Z", "35.12Z", - "35.13Z", "35.14Z", "35.21Z", "35.22Z", "35.23Z", "35.30Z", "36.00Z", - "37.00Z", "38.11Z", "38.12Z", "38.21Z", "38.22Z", "38.31Z", "38.32Z", - "39.00Z", "41.10A", "41.10B", "41.10C", "41.10D", "41.20A", "41.20B", - "42.11Z", "42.12Z", "42.13A", "42.13B", "42.21Z", "42.22Z", "42.91Z", - "42.99Z", "43.11Z", "43.12A", "43.12B", "43.13Z", "43.21A", "43.21B", - "43.22A", "43.22B", "43.29A", "43.29B", "43.31Z", "43.32A", "43.32B", - "43.32C", "43.33Z", "43.34Z", "43.39Z", "43.91A", "43.91B", "43.99A", - "43.99B", "43.99C", "43.99D", "43.99E", "45.11Z", "45.19Z", "45.20A", - "45.20B", "45.31Z", "45.32Z", "45.40Z", "46.11Z", "46.12A", "46.12B", - "46.13Z", "46.14Z", "46.15Z", "46.16Z", "46.17A", "46.17B", "46.18Z", - "46.19A", "46.19B", "46.21Z", "46.22Z", "46.23Z", "46.24Z", "46.31Z", - "46.32A", "46.32B", "46.32C", "46.33Z", "46.34Z", "46.35Z", "46.36Z", - "46.37Z", "46.38A", "46.38B", "46.39A", "46.39B", "46.41Z", "46.42Z", - "46.43Z", "46.44Z", "46.45Z", "46.46Z", "46.47Z", "46.48Z", "46.49Z", - "46.51Z", "46.52Z", "46.61Z", "46.62Z", "46.63Z", "46.64Z", "46.65Z", - "46.66Z", "46.69A", "46.69B", "46.69C", "46.71Z", "46.72Z", "46.73A", - "46.73B", "46.74A", "46.74B", "46.75Z", "46.76Z", "46.77Z", "46.90Z", - "47.11A", "47.11B", "47.11C", "47.11D", "47.11E", "47.11F", "47.19A", - "47.19B", "47.21Z", "47.22Z", "47.23Z", "47.24Z", "47.25Z", "47.26Z", - "47.29Z", "47.30Z", "47.41Z", "47.42Z", "47.43Z", "47.51Z", "47.52A", - "47.52B", "47.53Z", "47.54Z", "47.59A", "47.59B", "47.61Z", "47.62Z", - "47.63Z", "47.64Z", "47.65Z", "47.71Z", "47.72A", "47.72B", "47.73Z", - "47.74Z", "47.75Z", "47.76Z", "47.77Z", "47.78A", "47.78B", "47.78C", - "47.79Z", "47.81Z", "47.82Z", "47.89Z", "47.91A", "47.91B", "47.99A", - "47.99B", "49.10Z", "49.20Z", "49.31Z", "49.32Z", "49.39A", "49.39B", - "49.39C", "49.41A", "49.41B", "49.41C", "49.42Z", "49.50Z", "50.10Z", - "50.20Z", "50.30Z", "50.40Z", "51.10Z", "51.21Z", "51.22Z", "52.10A", - "52.10B", "52.21Z", "52.22Z", "52.23Z", "52.24A", "52.24B", "52.29A", - "52.29B", "53.10Z", "53.20Z", "55.10Z", "55.20Z", "55.30Z", "55.90Z", - "56.10A", "56.10B", "56.10C", "56.21Z", "56.29A", "56.29B", "56.30Z", - "58.11Z", "58.12Z", "58.13Z", "58.14Z", "58.19Z", "58.21Z", "58.29A", - "58.29B", "58.29C", "59.11A", "59.11B", "59.11C", "59.12Z", "59.13A", - "59.13B", "59.14Z", "59.20Z", "60.10Z", "60.20A", "60.20B", "61.10Z", - "61.20Z", "61.30Z", "61.90Z", "62.01Z", "62.02A", "62.02B", "62.03Z", - "62.09Z", "63.11Z", "63.12Z", "63.91Z", "63.99Z", "64.11Z", "64.19Z", - "64.20Z", "64.30Z", "64.91Z", "64.92Z", "64.99Z", "65.11Z", "65.12Z", - "65.20Z", "65.30Z", "66.11Z", "66.12Z", "66.19A", "66.19B", "66.21Z", - "66.22Z", "66.29Z", "66.30Z", "68.10Z", "68.20A", "68.20B", "68.31Z", - "68.32A", "68.32B", "69.10Z", "69.20Z", "70.10Z", "70.21Z", "70.22Z", - "71.11Z", "71.12A", "71.12B", "71.20A", "71.20B", "72.11Z", "72.19Z", - "72.20Z", "73.11Z", "73.12Z", "73.20Z", "74.10Z", "74.20Z", "74.30Z", - "74.90A", "74.90B", "75.00Z", "77.11A", "77.11B", "77.12Z", "77.21Z", - "77.22Z", "77.29Z", "77.31Z", "77.32Z", "77.33Z", "77.34Z", "77.35Z", - "77.39Z", "77.40Z", "78.10Z", "78.20Z", "78.30Z", "79.11Z", "79.12Z", - "79.90Z", "80.10Z", "80.20Z", "80.30Z", "81.10Z", "81.21Z", "81.22Z", - "81.29A", "81.29B", "81.30Z", "82.11Z", "82.19Z", "82.20Z", "82.30Z", - "82.91Z", "82.92Z", "82.99Z", "84.11Z", "84.12Z", "84.13Z", "84.21Z", - "84.22Z", "84.23Z", "84.24Z", "84.25Z", "84.30A", "84.30B", "84.30C", - "85.10Z", "85.20Z", "85.31Z", "85.32Z", "85.41Z", "85.42Z", "85.51Z", - "85.52Z", "85.53Z", "85.59A", "85.59B", "85.60Z", "86.10Z", "86.21Z", - "86.22A", "86.22B", "86.22C", "86.23Z", "86.90A", "86.90B", "86.90C", - "86.90D", "86.90E", "86.90F", "87.10A", "87.10B", "87.10C", "87.20A", - "87.20B", "87.30A", "87.30B", "87.90A", "87.90B", "88.10A", "88.10B", - "88.10C", "88.91A", "88.91B", "88.99A", "88.99B", "90.01Z", "90.02Z", - "90.03A", "90.03B", "90.04Z", "91.01Z", "91.02Z", "91.03Z", "91.04Z", - "92.00Z", "93.11Z", "93.12Z", "93.13Z", "93.19Z", "93.21Z", "93.29Z", - "94.11Z", "94.12Z", "94.20Z", "94.91Z", "94.92Z", "94.99Z", "95.11Z", - "95.12Z", "95.21Z", "95.22Z", "95.23Z", "95.24Z", "95.25Z", "95.29Z", - "96.01A", "96.01B", "96.02A", "96.02B", "96.03Z", "96.04Z", "96.09Z", - "97.00Z", "98.10Z", "98.20Z", "99.00Z", - ] - # fmt: on - - # Data from: - # https://www.insee.fr/fr/information/8181066 - # fmt: off - ape_codes_naf_2025 = [ - "01.11Y", "01.12Y", "01.13Y", "01.14Y", "01.15Y", "01.16Y", "01.19Y", - "01.21Y", "01.22Y", "01.23Y", "01.24Y", "01.25Y", "01.26Y", "01.27Y", - "01.28Y", "01.29Y", "01.30Y", "01.41Y", "01.42Y", "01.43Y", "01.44Y", - "01.45Y", "01.46Y", "01.47Y", "01.48G", "01.48H", "01.48J", "01.50Y", - "01.61Y", "01.62Y", "01.63Y", "01.70Y", "02.10Y", "02.20Y", "02.30Y", - "02.40Y", "03.11Y", "03.12Y", "03.21Y", "03.22Y", "03.30Y", "05.10Y", - "05.20Y", "06.10Y", "06.20Y", "07.10Y", "07.21Y", "07.29Y", "08.11Y", - "08.12Y", "08.91Y", "08.92Y", "08.93Y", "08.99Y", "09.10Y", "09.90Y", - "10.11Y", "10.12Y", "10.13G", "10.13H", "10.20Y", "10.31Y", "10.32Y", - "10.39G", "10.39H", "10.41Y", "10.42Y", "10.51G", "10.51H", "10.51J", - "10.52Y", "10.61G", "10.61H", "10.62Y", "10.71G", "10.71H", "10.71J", - "10.72Y", "10.73Y", "10.81Y", "10.82Y", "10.83Y", "10.84Y", "10.85Y", - "10.86Y", "10.89Y", "10.91Y", "10.92Y", "11.01Y", "11.02G", "11.02H", - "11.03Y", "11.04Y", "11.05Y", "11.06Y", "11.07G", "11.07H", "12.00Y", - "13.10Y", "13.20Y", "13.30Y", "13.91Y", "13.92Y", "13.93Y", "13.94Y", - "13.95Y", "13.96Y", "13.99Y", "14.10Y", "14.21Y", "14.22Y", "14.23Y", - "14.24Y", "14.29Y", "15.11Y", "15.12Y", "15.20Y", "16.11Y", "16.12Y", - "16.21Y", "16.22Y", "16.23Y", "16.24Y", "16.25Y", "16.26Y", "16.27Y", - "16.28Y", "17.11Y", "17.12Y", "17.21Y", "17.22Y", "17.23Y", "17.24Y", - "17.25Y", "18.11Y", "18.12Y", "18.13Y", "18.14Y", "18.20Y", "19.10Y", - "19.20Y", "20.11Y", "20.12Y", "20.13Y", "20.14Y", "20.15Y", "20.16Y", - "20.17Y", "20.20Y", "20.30Y", "20.41Y", "20.42Y", "20.51Y", "20.59Y", - "20.60Y", "21.10Y", "21.20Y", "22.11Y", "22.12Y", "22.21Y", "22.22Y", - "22.23Y", "22.24Y", "22.25Y", "22.26Y", "23.11Y", "23.12Y", "23.13Y", - "23.14Y", "23.15Y", "23.20Y", "23.31Y", "23.32Y", "23.41Y", "23.42Y", - "23.43Y", "23.44Y", "23.45Y", "23.51Y", "23.52Y", "23.61Y", "23.62Y", - "23.63Y", "23.64Y", "23.65Y", "23.66Y", "23.70Y", "23.91Y", "23.99Y", - "24.10Y", "24.20Y", "24.31Y", "24.32Y", "24.33Y", "24.34Y", "24.41Y", - "24.42Y", "24.43Y", "24.44Y", "24.45Y", "24.46Y", "24.51Y", "24.52Y", - "24.53Y", "24.54Y", "25.11Y", "25.12Y", "25.21Y", "25.22Y", "25.30Y", - "25.40Y", "25.51Y", "25.52Y", "25.53Y", "25.61Y", "25.62Y", "25.63Y", - "25.91Y", "25.92Y", "25.93Y", "25.94Y", "25.99Y", "26.11Y", "26.12Y", - "26.20Y", "26.30Y", "26.40Y", "26.51Y", "26.52Y", "26.60Y", "26.70Y", - "27.11Y", "27.12Y", "27.20Y", "27.31Y", "27.32Y", "27.33Y", "27.40Y", - "27.51Y", "27.52Y", "27.90Y", "28.11Y", "28.12Y", "28.13G", "28.13H", - "28.14Y", "28.15Y", "28.21Y", "28.22Y", "28.23Y", "28.24Y", "28.25Y", - "28.29Y", "28.30Y", "28.41Y", "28.42Y", "28.91Y", "28.92Y", "28.93Y", - "28.94Y", "28.95Y", "28.96Y", "28.97Y", "28.99Y", "29.10Y", "29.20Y", - "29.31Y", "29.32Y", "30.11Y", "30.12Y", "30.13Y", "30.20Y", "30.31Y", - "30.32Y", "30.40Y", "30.91Y", "30.92Y", "30.99Y", "31.00G", "31.00H", - "31.00J", "32.11Y", "32.12Y", "32.13Y", "32.20Y", "32.30Y", "32.40Y", - "32.50Y", "32.91Y", "32.99Y", "33.11Y", "33.12Y", "33.13Y", "33.14Y", - "33.15Y", "33.16Y", "33.17Y", "33.18G", "33.18H", "33.19Y", "33.20Y", - "35.11Y", "35.12Y", "35.13Y", "35.14Y", "35.15G", "35.15H", "35.16Y", - "35.21Y", "35.22Y", "35.23Y", "35.24Y", "35.30Y", "35.40Y", "36.00Y", - "37.00Y", "38.11Y", "38.12Y", "38.21Y", "38.22Y", "38.23Y", "38.31Y", - "38.32Y", "38.33Y", "39.00Y", "41.00G", "41.00H", "42.11Y", "42.12Y", - "42.13G", "42.13H", "42.21Y", "42.22Y", "42.91Y", "42.99Y", "43.11Y", - "43.12G", "43.12H", "43.13Y", "43.21G", "43.21H", "43.22G", "43.22H", - "43.23Y", "43.24Y", "43.31Y", "43.32G", "43.32H", "43.33Y", "43.34G", - "43.34H", "43.35Y", "43.41G", "43.41H", "43.41J", "43.42G", "43.42H", - "43.42J", "43.50Y", "43.60Y", "43.91Y", "43.99G", "43.99H", "46.11Y", - "46.12Y", "46.13Y", "46.14Y", "46.15Y", "46.16Y", "46.17G", "46.17H", - "46.18Y", "46.19G", "46.19H", "46.21Y", "46.22Y", "46.23Y", "46.24Y", - "46.31Y", "46.32G", "46.32H", "46.33Y", "46.34Y", "46.35Y", "46.36Y", - "46.37Y", "46.38Y", "46.39Y", "46.41Y", "46.42Y", "46.43G", "46.43H", - "46.44Y", "46.45Y", "46.46Y", "46.47Y", "46.48Y", "46.49Y", "46.50Y", - "46.61Y", "46.62Y", "46.63Y", "46.64G", "46.64H", "46.64J", "46.64K", - "46.71G", "46.71H", "46.72Y", "46.73Y", "46.81Y", "46.82Y", "46.83G", - "46.83H", "46.83J", "46.84G", "46.84H", "46.85Y", "46.86Y", "46.87Y", - "46.89Y", "46.90Y", "47.11G", "47.11H", "47.11J", "47.11K", "47.11L", - "47.12G", "47.12H", "47.21Y", "47.22Y", "47.23Y", "47.24Y", "47.25Y", - "47.26Y", "47.27G", "47.27H", "47.30Y", "47.40Y", "47.51Y", "47.52G", - "47.52H", "47.53Y", "47.54Y", "47.55G", "47.55H", "47.61Y", "47.62Y", - "47.63Y", "47.64Y", "47.69Y", "47.71Y", "47.72G", "47.72H", "47.73Y", - "47.74G", "47.74H", "47.75Y", "47.76Y", "47.77Y", "47.78G", "47.78H", - "47.79G", "47.79H", "47.81Y", "47.82Y", "47.83Y", "47.91Y", "47.92G", - "47.92H", "47.92J", "49.11Y", "49.12Y", "49.20Y", "49.31G", "49.31H", - "49.32Y", "49.33G", "49.33H", "49.34Y", "49.39Y", "49.41G", "49.41H", - "49.41J", "49.42Y", "49.50Y", "50.10Y", "50.20Y", "50.30Y", "50.40Y", - "51.10Y", "51.21Y", "51.22Y", "52.10G", "52.10H", "52.21Y", "52.22Y", - "52.23Y", "52.24G", "52.24H", "52.25Y", "52.26Y", "52.31Y", "52.32Y", - "53.10Y", "53.20G", "53.20H", "53.30Y", "55.10Y", "55.20Y", "55.30Y", - "55.40Y", "55.90Y", "56.11G", "56.11H", "56.11J", "56.12Y", "56.21Y", - "56.22Y", "56.30Y", "56.40Y", "58.11Y", "58.12Y", "58.13Y", "58.19Y", - "58.21Y", "58.29Y", "59.11G", "59.11H", "59.11J", "59.11K", "59.12Y", - "59.13Y", "59.14Y", "59.20Y", "60.10Y", "60.20G", "60.20H", "60.31Y", - "60.39Y", "61.10Y", "61.20Y", "61.90Y", "62.10Y", "62.20G", "62.20H", - "62.90Y", "63.10Y", "63.91Y", "63.92Y", "64.11Y", "64.19Y", "64.21Y", - "64.22Y", "64.31Y", "64.32Y", "64.91Y", "64.92Y", "64.99Y", "65.11Y", - "65.12Y", "65.20Y", "65.30Y", "66.11Y", "66.12Y", "66.19G", "66.19H", - "66.21Y", "66.22Y", "66.29Y", "66.30Y", "68.11Y", "68.12Y", "68.20G", - "68.20H", "68.31Y", "68.32G", "68.32H", "69.10Y", "69.20Y", "70.10Y", - "70.20Y", "71.11Y", "71.12Y", "71.20G", "71.20H", "72.10G", "72.10H", - "72.20Y", "73.11Y", "73.12Y", "73.20Y", "73.30Y", "74.11Y", "74.12Y", - "74.13Y", "74.14Y", "74.20Y", "74.30Y", "74.91Y", "74.99Y", "75.00Y", - "77.11Y", "77.12Y", "77.21Y", "77.22Y", "77.31Y", "77.32Y", "77.33Y", - "77.34Y", "77.35Y", "77.39Y", "77.40G", "77.40H", "77.51Y", "77.52Y", - "78.10Y", "78.20G", "78.20H", "79.11Y", "79.12Y", "79.90Y", "80.01Y", - "80.09Y", "81.10Y", "81.21Y", "81.22Y", "81.23G", "81.23H", "81.30Y", - "82.10Y", "82.20Y", "82.30Y", "82.40Y", "82.91Y", "82.92Y", "82.99Y", - "84.11Y", "84.12Y", "84.13Y", "84.21Y", "84.22Y", "84.23Y", "84.24Y", - "84.25Y", "84.30G", "84.30H", "84.30J", "85.10Y", "85.20Y", "85.31Y", - "85.32Y", "85.33Y", "85.40Y", "85.51Y", "85.52Y", "85.53Y", "85.59G", - "85.59H", "85.61Y", "85.69Y", "86.10Y", "86.21Y", "86.22Y", "86.23Y", - "86.91Y", "86.92Y", "86.93Y", "86.94G", "86.94H", "86.95Y", "86.96Y", - "86.97Y", "86.99Y", "87.10G", "87.10H", "87.10J", "87.20G", "87.20H", - "87.30G", "87.30H", "87.91Y", "87.99G", "87.99H", "88.10G", "88.10H", - "88.10J", "88.91G", "88.91H", "88.91J", "88.99G", "88.99H", "90.11Y", - "90.12Y", "90.13Y", "90.20Y", "90.31G", "90.31H", "90.39G", "90.39H", - "91.11Y", "91.12Y", "91.21Y", "91.22Y", "91.30Y", "91.41Y", "91.42Y", - "92.00Y", "93.11Y", "93.12Y", "93.13Y", "93.19Y", "93.21Y", "93.29Y", - "94.11Y", "94.12Y", "94.20Y", "94.91Y", "94.92Y", "94.99Y", "95.10Y", - "95.21Y", "95.22Y", "95.23Y", "95.24Y", "95.25Y", "95.29G", "95.29H", - "95.31G", "95.31H", "95.32Y", "95.40Y", "96.10G", "96.10H", "96.21G", - "96.21H", "96.22Y", "96.23Y", "96.30Y", "96.40Y", "96.91Y", "96.99G", - "96.99H", "97.00Y", "98.10Y", "98.20Y", "99.00Y", - ] - # fmt: on - - def catch_phrase_noun(self) -> str: - """ - Returns a random catch phrase noun. - """ - return self.random_element(self.nouns) - - def catch_phrase_attribute(self) -> str: - """ - Returns a random catch phrase attribute. - """ - return self.random_element(self.attributes) - - def catch_phrase_verb(self) -> str: - """ - Returns a random catch phrase verb. - """ - return self.random_element(self.verbs) - - def catch_phrase(self) -> str: - """ - :example: 'integrate extensible convergence' - """ - catch_phrase = "" - while True: - pattern: str = self.random_element(self.catch_phrase_formats) - catch_phrase = self.generator.parse(pattern) - catch_phrase = catch_phrase[0].upper() + catch_phrase[1:] - - if self._is_catch_phrase_valid(catch_phrase): - break - - return catch_phrase - - # An array containing string which should not appear twice in a catch phrase - words_which_should_not_appear_twice = ("sécurité", "simpl") - - def _is_catch_phrase_valid(self, catch_phrase: str) -> bool: - """ - Validates a french catch phrase. - - :param catch_phrase: The catch phrase to validate. - """ - for word in self.words_which_should_not_appear_twice: - # Fastest way to check if a piece of word does not appear twice. - begin_pos = catch_phrase.find(word) - end_pos = catch_phrase.find(word, begin_pos + 1) - - if begin_pos != -1 and begin_pos != end_pos: - return False - - return True - - def siren(self) -> str: - """ - Generates a siren number (9 digits). Formatted as '### ### ###'. - """ - code = self.numerify("########") - luhn_checksum = str(calculate_luhn(float(code))) - return f"{code[:3]} {code[3:6]} {code[6:]}{luhn_checksum}" - - def siret(self, max_sequential_digits: int = 2) -> str: - """ - Generates a siret number (14 digits). - It is in fact the result of the concatenation of a siren number (9 digits), - a sequential number (4 digits) and a control number (1 digit) concatenation. - If $max_sequential_digits is invalid, it is set to 2. - - The siret number is formatted as '### ### ### #####'. - :param max_sequential_digits The maximum number of digits for the sequential number (> 0 && <= 4). - """ - if max_sequential_digits > 4 or max_sequential_digits <= 0: - max_sequential_digits = 2 - - sequential_number = str(self.random_number(max_sequential_digits)).zfill(4) - - code = self.siren().replace(" ", "") + sequential_number - luhn_checksum = str(calculate_luhn(float(code))) - return f"{code[:3]} {code[3:6]} {code[6:9]} {code[9:]}{luhn_checksum}" - - def company_vat(self, siren: str = "") -> str: - """ - Generate a valid TVA (French VAT) number. - It is the concatenation of "FR", siren checksum and siren number - - :param siren: Force SIREN number - - :sample: - :sample: siren="123 456 789" - """ - siren = siren or self.siren() - siren_int = int("".join(c for c in siren if c.isdigit())) - checksum = (12 + 3 * (siren_int % 97)) % 97 - return f"FR {checksum:02} {siren}" - - def ape_code(self, version: Optional[str] = "naf-2003") -> str: - """ - Generate an APE code (also known as NAF code). - It identify french company main branch of activity. - - It provide numbers from nomenclature `version` `naf-2003` (default) - or `naf-2025`. - To have it generate a truly random (and possibly invalid number) set - `version` to `None` - - - :param version: Set to ``"naf-2003"`` to return a valid NAF 2003 APE code. - Set to ``"naf-2025"`` to return a valid NAF 2025 APE code. - Set to ``None`` to return a truly random and possibly invalid number - Defaults to ``"naf-2003"`` - - :sample: - :sample: version="naf-2003" - :sample: version="naf-2025" - :sample: version=None - """ - if version is None: - numbers = self.numerify("##.##") - letter = self.random_uppercase_letter() - return f"{numbers}{letter}" - if version == "naf-2003": - return self.random_element(self.ape_codes_naf_2003) - if version == "naf-2025": - return self.random_element(self.ape_codes_naf_2025) - raise ValueError("Unsupported NAF version. Set version=None to a truly random number.") - - def rcs_number(self, city: str = "", letter: str = "", siren: str = "") -> str: - """ - Generate a RCS number for french companies. - It is a concatenation of "RCS", a city name, a letter A (if sole proprietorships, or B other companies) - and the company SIREN - - :param city: Force city name - :param letter: Force letter - :param siren: Force SIREN - - :sample: - :sample: siren="123 456 789" - :sample: city="Lyon" letter="B" siren="123 456 789" - """ - city = city or self.generator.city() - letter = letter or self.random_element("AB") - siren = siren or self.siren() - return f"RCS {city} {letter} {siren}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/fr_FR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/fr_FR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e95b448b6d6229d938ae7f91a7edbff3a3bce40b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20554 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/hu_HU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/hu_HU/__init__.py deleted file mode 100644 index 7e776fe..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/hu_HU/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}} és {{last_name}} {{company_suffix}}", - "{{last_name}} és társa {{company_suffix}}", - ) - - company_suffixes = ("Kft.", "Kht.", "Zrt.", "Bt.", "Nyrt.", "Kkt.") - - def company_suffix(self) -> str: - return self.random_element(self.company_suffixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/hu_HU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/hu_HU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 52e18f58ee5b628bb9b3c138c68b209420e11984..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 964 zcmah|y=xRf6rb6T%W+BWL?db=Apv2P>|nG=f>>ygK;RJ6W}9JiJL_$-ALq<$$Xz^4 zk;4Dr+E|9P{s$>-5-cJMRyNulTx?SLW^XTe5_DjH@4b2N_vX#Kx1Xn{D@d(RmCYX* zq3^j-fLX}FJy3ecLmm!MgdGhd4Xq+i+ee*&g|}P=n6?=H)7o`SdAoV zxpA9{)c1p(ZntCq9r5q@bP*DdQ;rYCe~(EYTuGD1AGvU^D9b8!jCEhyfK7!C2h^Vd znDw^OjrA>QXC=;L%Hsw!;Bu*(t8cIb&_nOg=AYgo40cB^TI?usR7AdnKGZEOt8zE? zl8Ca9MJ$%tweinM91pL^fIE?vPg_1zNhv8j?gogD0)R*hnO? zw^_VR!eE26+OnC%kL-twLdmw}Y&LUKL{+9BdoAh`NX@^Q?;0888j*hhWM ztd;gw`&D#%4WAe@eFK{-2l_bzF{G+C)-637^0V6W;qZ>G#jmT>mxo-GpA0K}%5Q>0 awM5JS^mUB!H+28JG>KO}y#Iwj>9k%nDVd!*9DWxrxnzxMTSY;?|5E8JM6%`AlN|C^LVuz&7tJk?h!zjX; zNn3=(ibdCslW9}uJ$X+O{{d{enCnF(R;<`X8ocR>@B4n|TwgmGV5EufJ?D3R&+qp* z_TR5wy^`X;?JI9Bd?%Iqr(WEje)stp8>tUd#Z)mpmKskF_M}rishg={&wQ%bTk5Iz z8r@)erZ3z7uO7T*)2Ekz6-?e9EtY~I$3-7$_wx9wc=#|?N)4uqsllFNda$?HGuT(` z9qcdm4GzroX9ohZ&Gv>j@NwtP@Mut;&QBD^OS7|?<_DRsl{{-1!l5M22j+>>>tMMXHK-Rp zNn#ajcn+$NEXg$dn(2F}tqbLvt;^DIr{kISziALv^AMqkJc>^bnYDZ9w8L#ro$4b z%*;05EcIUj%|7@cXcqD zKkI_&5931VtzbfXLPc0U!ckf%?g7h<*<*me56hjeEWnN>7QutyGcI%<6~6~wPEr*P zs{*Ew6tH<1+YN}@BN9AYEi(h1;q)UCBvdIlX0W4GSWDa!y6tmHQK^896GaF$Dq2yU zj2?LXTEZHVO+g?%XtLMCFG8gouVQgAgWAUUGTG}||KStXUw^{-k1kjjnprj(f+f{Q zRt8s|I}8h7XNZ?!<5n9!dRq1vi$2ac8|l(x7>B}+3Lz&@`E}Zh^9(mU6@Hm4NvSHD z!8#w-bm%49v&y`QWtO)%&K4);;THZcg7*$SS4?w;e-W>Smvy71Q@5l$ya|E>!vr6p zDHyK6Yl!zglNmx@rfQ_BM4QbD)ut@In$)_r6{@}>^zn+BOGoonpuy*^!sfG+F#y4)#gc`Cwz-aEJw{Ljjg$ie zg(mnM^s-1mZ09yv$QS| zAdizw@tUBr7N20bIFiv7*_45MGY9+raD)YRgs!0Xyik2Ks~6x2bQkUUgt+o-jxk|0 znzEg@Oh-n272Hn3*JM3jS;t**0V~Wg%-^_ycKXAnOjE52LORUM#^_=rosC-5+IV!B z7O++uz7RefCOkLr$>v8lsaJ4(s=#Q3(P@;xsU)!bBX!xn!0sC~(xYz` zsxBBTyR7;O$r{*FeN+iWh|CjcRN*U6*tfPQ_gT;gy$vCg!xk`V`l@%IGetmWttU=2 z-6zkOAq{zvqgjHTQjtxT@kQ)xO9hv~8Mu9GEU%lELIJ#3=^(CCcimnP~gR2 z*-4ga@S+NfhZ{jgPi#VyBM^7M&5A%fWe`$JX!b($n#OoTpjW`>h%~)0-Iaj)>g?QMuAdPK0Q=uj|msS@U z!0@PHD+O=@#W({9i(9l1@=F;nL^B(^jRS{>+67OVeS%Foo2Js?rq>PtkMi-2t8JReP?)km3`3Bav~%OqP-sA|Z}wUun^M=XeuJ?c4wz zA;(2&Znvg*>}WH4(nU{_1i^TY@%On{lC>Yo(e=XsOV7yB2^sM{t@C0SGipO;O)ATq zs}YNl=^?{5asOkp;hl#^Z7hX!ehXuC8XQ<~EKdHL4BK=Cv3--WWwB95^bYnj#RGNp zga&s1!0dv8LJg#+rWzESSf%?a63Zn z9$p^e5V2&XLw;prY%l^m)yYU!b@)vDJHMf!-YPXd3ckE^BSWmR(OI9@byL_);L)@* z6EXFB6@o9}tnKjvs_N$VtckhwR^}nn@FD!+bVjy7e)eTkjcLKVlD`8%NWd9C_&jB} zk@x~71AgOS`-yL4)A518XCE1fY^rWVBNT;khrirLKOi+ z8AC|v$_Z~YDhc43*y!k6ZbQkHXtQov1(<`!Di-*~v)yi0+q{+LJ3r=Mq@lRbH(g!Y z2~p+KSVZOhuxOhB6Qt7~FhZR1b(u#C=L{88pC6wrhGQi>Kb6nF6Bfq!y9wSd4NnH+h3WF?Go8Pdl**^i z4i%<{M)Ff5L7`mA|6wvHmQOF;D!<8x<@8*8(AMjJp zTcx4t-1z8FFgfL3ZcR?-uHPC&rHg`u|#zb}<@ z!-cm?K@NxXV^KNhG|P?5kU!R)M??L**A5F^4j``GCPye-n%FVN< zQ!o5B{b}EGXMGbrFAaR!_x#!K`hSzYHZXTH;CQWLZ)AHGVHR-~0E#n| str: - return self.random_element(self.company_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/id_ID/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/id_ID/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 722c8007214768c38ebe3d8a3ff32a46183015cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1019 zcma)4y-!p@5Z|}&gUdxYRN_ZMA^|l#6K|tf05K*85@JJ0M2pvK9=Ch);C-CC?+ABz zk%GeifR@I>(E4B4KrAquSXtR!a@bHg`#u8L$R_)n*`4{#&d$uY;o&OM>uYu6vx(5J z>`;JR$iYKU_7OwO2vKBs*gzO9A%^!5GdVs4o?f2Ov0VE%2GuoGWkn=g0pp^P84J)x zy$1II_7MjXLmp;^XEN+r%=Bz#ai@uyy=Qqt9mgFKI=pLjCw6ukN!0S=4s8kE47Phc zxC(ul(%6r9uh*^r&*LBenJf60Ps(;Pd$RlT3Zx53UC6o&;o1tXtSY?lR^c~`pf4(W zg^PCN;_mP?Xp)P>omgGlRHg<;@U$)BhM@~rEL{`52eSbC=mXlgXf2%Jwybw?qs3w2 z`5L;k>|!+{{Fo&Xf19k93N(C! zH&PM>4Ux2p!&;J(`WBD3NEobotf&eKS8A*y9 zNWkc;MM7y12PviXR!5CoPOp2roU{66!#zk=-UZl2KWaBmYLmyc$%AJnQ?tiYv)^lT zN0qq&7}2s@Q5Bj^5T&Y0X_T;b$U(nG>HD@H>e+(RP%{ycpGq+Tr1Ki(J>^oFG8N)F z*uEff1B4jWpj(uI1&VwCu!s8Ct~t9){W0f`b7YP6Z<)EQ8ut8wd5S>f5j1((HB}x# w)fV#UFaIm_=g!|ct31zBe<8-fpnE090Q#n37(daYQ)k?m|Mc+>0+F%)0v<&sDF6Tf diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/it_IT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/it_IT/__init__.py deleted file mode 100644 index 8bdcd92..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/it_IT/__init__.py +++ /dev/null @@ -1,375 +0,0 @@ -from faker.utils.checksums import calculate_luhn - -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}}-{{last_name}} {{company_suffix}}", - "{{last_name}}, {{last_name}} e {{last_name}} {{company_suffix}}", - ) - - catch_phrase_words = ( - ( - "Abilità", - "Access", - "Adattatore", - "Algoritmo", - "Alleanza", - "Analizzatore", - "Applicazione", - "Approccio", - "Architettura", - "Archivio", - "Intelligenza artificiale", - "Array", - "Attitudine", - "Benchmark", - "Capacità", - "Sfida", - "Circuito", - "Collaborazione", - "Complessità", - "Concetto", - "Conglomerato", - "Contingenza", - "Core", - "Database", - "Data-warehouse", - "Definizione", - "Emulazione", - "Codifica", - "Criptazione", - "Firmware", - "Flessibilità", - "Previsione", - "Frame", - "framework", - "Funzione", - "Funzionalità", - "Interfaccia grafica", - "Hardware", - "Help-desk", - "Gerarchia", - "Hub", - "Implementazione", - "Infrastruttura", - "Iniziativa", - "Installazione", - "Set di istruzioni", - "Interfaccia", - "Soluzione internet", - "Intranet", - "Conoscenza base", - "Matrici", - "Matrice", - "Metodologia", - "Middleware", - "Migrazione", - "Modello", - "Moderazione", - "Monitoraggio", - "Moratoria", - "Rete", - "Architettura aperta", - "Sistema aperto", - "Orchestrazione", - "Paradigma", - "Parallelismo", - "Policy", - "Portale", - "Struttura di prezzo", - "Prodotto", - "Produttività", - "Progetto", - "Proiezione", - "Protocollo", - "Servizio clienti", - "Software", - "Soluzione", - "Standardizzazione", - "Strategia", - "Struttura", - "Successo", - "Sovrastruttura", - "Supporto", - "Sinergia", - "Task-force", - "Finestra temporale", - "Strumenti", - "Utilizzazione", - "Sito web", - "Forza lavoro", - ), - ( - "adattiva", - "avanzata", - "migliorata", - "assimilata", - "automatizzata", - "bilanciata", - "centralizzata", - "compatibile", - "configurabile", - "cross-platform", - "decentralizzata", - "digitalizzata", - "distribuita", - "piccola", - "ergonomica", - "esclusiva", - "espansa", - "estesa", - "configurabile", - "fondamentale", - "orizzontale", - "implementata", - "innovativa", - "integrata", - "intuitiva", - "inversa", - "gestita", - "obbligatoria", - "monitorata", - "multi-canale", - "multi-laterale", - "open-source", - "operativa", - "ottimizzata", - "organica", - "persistente", - "polarizzata", - "proattiva", - "programmabile", - "progressiva", - "reattiva", - "riallineata", - "ricontestualizzata", - "ridotta", - "robusta", - "sicura", - "condivisibile", - "stand-alone", - "switchabile", - "sincronizzata", - "sinergica", - "totale", - "universale", - "user-friendly", - "versatile", - "virtuale", - "visionaria", - ), - ( - "24 ore", - "24/7", - "terza generazione", - "quarta generazione", - "quinta generazione", - "sesta generazione", - "asimmetrica", - "asincrona", - "background", - "bi-direzionale", - "biforcata", - "bottom-line", - "coerente", - "coesiva", - "composita", - "sensibile al contesto", - "basta sul contesto", - "basata sul contenuto", - "dedicata", - "didattica", - "direzionale", - "discreta", - "dinamica", - "eco-centrica", - "esecutiva", - "esplicita", - "full-range", - "globale", - "euristica", - "alto livello", - "olistica", - "omogenea", - "ibrida", - "impattante", - "incrementale", - "intangibile", - "interattiva", - "intermediaria", - "locale", - "logistica", - "massimizzata", - "metodica", - "mission-critical", - "mobile", - "modulare", - "motivazionale", - "multimedia", - "multi-tasking", - "nazionale", - "neutrale", - "nextgeneration", - "non-volatile", - "object-oriented", - "ottima", - "ottimizzante", - "radicale", - "real-time", - "reciproca", - "regionale", - "responsiva", - "scalabile", - "secondaria", - "stabile", - "statica", - "sistematica", - "sistemica", - "tangibile", - "terziaria", - "uniforme", - "valore aggiunto", - ), - ) - - bsWords = ( - ( - "partnerships", - "comunità", - "ROI", - "soluzioni", - "e-services", - "nicchie", - "tecnologie", - "contenuti", - "supply-chains", - "convergenze", - "relazioni", - "architetture", - "interfacce", - "mercati", - "e-commerce", - "sistemi", - "modelli", - "schemi", - "reti", - "applicazioni", - "metriche", - "e-business", - "funzionalità", - "esperienze", - "webservices", - "metodologie", - ), - ( - "implementate", - "utilizzo", - "integrate", - "ottimali", - "evolutive", - "abilitate", - "reinventate", - "aggregate", - "migliorate", - "incentivate", - "monetizzate", - "sinergizzate", - "strategiche", - "deploy", - "marchi", - "accrescitive", - "target", - "sintetizzate", - "spedizioni", - "massimizzate", - "innovazione", - "guida", - "estensioni", - "generate", - "exploit", - "transizionali", - "matrici", - "ricontestualizzate", - ), - ( - "valore aggiunto", - "verticalizzate", - "proattive", - "forti", - "rivoluzionari", - "scalabili", - "innovativi", - "intuitivi", - "strategici", - "e-business", - "mission-critical", - "24/7", - "globali", - "B2B", - "B2C", - "granulari", - "virtuali", - "virali", - "dinamiche", - "magnetiche", - "web", - "interattive", - "sexy", - "back-end", - "real-time", - "efficienti", - "front-end", - "distributivi", - "estensibili", - "mondiali", - "open-source", - "cross-platform", - "sinergiche", - "out-of-the-box", - "enterprise", - "integrate", - "di impatto", - "wireless", - "trasparenti", - "next-generation", - "cutting-edge", - "visionari", - "plug-and-play", - "collaborative", - "olistiche", - "ricche", - ), - ) - - company_suffixes = ("SPA", "e figli", "Group", "s.r.l.") - - def _random_vat_office(self) -> int: - """ - Returns a random code identifying the VAT office needed to build a valid VAT with company_vat. - - See https://it.wikipedia.org/wiki/Partita_IVA#Tabella_degli_Uffici_IVA - """ - val = self.random_int(1, 104) - - # handle special cases - if val == 101: - return 120 - elif val == 102: - return 121 - elif val == 103: - return 888 - elif val == 104: - return 999 - # else: between 1 and 100 are all valid - return val - - def company_vat(self) -> str: - """ - Returns Italian VAT identification number (Partita IVA). - """ - code = self.bothify("#######") + str(self._random_vat_office()).zfill(3) - luhn_checksum = str(calculate_luhn(int(code))) - return f"IT{code}{luhn_checksum}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/it_IT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/it_IT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 80bdace8e11d4c7061d37c00cc054c2dff2f6836..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5727 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ja_JP/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/ja_JP/__init__.py deleted file mode 100644 index fa0e26a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/ja_JP/__init__.py +++ /dev/null @@ -1,31 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{company_prefix}}{{last_name}}{{company_category}}", - "{{last_name}}{{company_category}}{{company_prefix}}", - ) - - company_prefixes = ("株式会社", "有限会社", "合同会社") - company_categories = ( - "水産", - "農林", - "鉱業", - "建設", - "食品", - "印刷", - "電気", - "ガス", - "情報", - "通信", - "運輸", - "銀行", - "保険", - ) - - def company_prefix(self) -> str: - return self.random_element(self.company_prefixes) - - def company_category(self) -> str: - return self.random_element(self.company_categories) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ja_JP/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/ja_JP/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 903b3f9758dd0ba97ea0571f6f835da621e3b844..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1305 zcmb_c%}X0W6rb5mViYy@gIX1e7$|I^ZmT``MK3*AdJv&K<+7~Vi6&;V>Fh>~X{cHY z+FB~K5VT(rTd1`KEkaur{R4W5c(5$=q>1Jhh`o5~%zmKKLN6W2d%yQNZ{EI_?-dng zfS%>D&>;iBjv-jYY4PGk0#ZN%5)16ZK*?YTgDqc?Hr>Bl7vQy*PsYz48Rm5C0XmNS(`J4gw*FWc8rwo{%SjxTo zWWem|%Km#3=I7pIpN*K>CyUwfFQ)H{)!d>Pwln&1XY`w)%{_RSO)r@a!!x@ZvnCvQ zyubFzXD1D~yYVVNy`sA?(qcH`homg~&{oo4v4xNnxCcVVt(F(j+MmqQP_|%s z-Ujoqi(~XkEJh?n7El<;D5B|AcK6LTB6S|>4i$w1Dh;eZO!9q-jCf7a`j9LR@^@@N zW+sIE8ZQU^SczIfkD~F711K`Uhl4$QG_Lh2k>m9Vu3=A!Hc*@SNH9G;Der($}`V zEt}q!El+F4-C86@@c+AtOGsLd!EVCz({@qTC>>CT$H#B@B58g7sKP|Y82vP~Cg z>|b8hw&`u#^0a5%?YNS-baAD+TQK%X5cD!ZkQFHwMg*4&!rhn{rkh5jl7NC`QB!d# z3Bpyh8dlXXuAt&6Lgs;y&nVQ`UxPS^MQtKv3=|mF;~MTPl!5a%Va9Q`z*N?{GLCbF zdgyFRvqeBy!3CWiY3~8S9cDT@x?LQr10$X8xncev*w4n*#C~+~p}WJZ|2nQE20Di7 YSwaddgzzW0bl|Fk9pm?Z0m6)^-}e)Ch5!Hn diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ko_KR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/ko_KR/__init__.py deleted file mode 100644 index a1a816a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/ko_KR/__init__.py +++ /dev/null @@ -1,470 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - """ - Provider for company names for ko_KR locale - """ - - formats = ( - "{{company_suffix}} {{company_name_word}}{{brand_suffix}}", - "{{company_suffix}} {{company_name_word}}{{company_name_word}}{{brand_suffix}}", - "{{company_suffix}} {{company_name_word}}", - ) - - catch_phrase_words = ( - ( - "적응된", - "숙련된", - "자동화된", - "안정적인", - "비즈니스 중점적", - "중심이", - "복제된", - "효율적인", - "설정 가능한", - "크로스 그룹", - "크로스 플랫폼", - "사용자 중심의", - "조절 가능한", - "디지털화된", - "출판된", - "다양한", - "낮은", - "강화된", - "인체 공학적인", - "특별한", - "확장된", - "확대된", - "1:1", - "최전방", - "완벽히 설정된", - "함수 기반의", - "미래가 보장된", - "관리된", - "모니터링되는", - "멀티 채널", - "다중 주파수", - "멀티 레이어", - "조직화된", - "객체 기반의", - "공개 아키텍쳐", - "오픈소스", - "최적화된", - "선택적", - "유기농", - "수익에 중점을 둔", - "프로그래밍 가능한", - "진보적인", - "공개 키", - "품질 중심의", - "반동적인", - "재정렬", - "줄어든", - "리버스 엔지니어링된", - "올바른 사이즈의", - "강력한", - "원활한", - "안전한", - "자가 이용 가능한", - "공유 가능한", - "독보적인", - "무결점의", - "변경 가능한", - "동기화", - "융합력있는", - "융합된", - "단체 기반의", - "총", - "트리플 버퍼", - "다용도", - "더 커진", - "업그레이드 가능한", - "더 작아진", - "유저 친화적", - "가상", - "비전 있는", - ), - ( - "24시간", - "24/7", - "3세대", - "4세대", - "5세대", - "6세대", - "작동", - "분석중인", - "비대칭", - "비동기", - "고도 기반", - "백그라운드", - "주파수 탐지 가능", - "요약", - "클라이언트 단", - "클라이언트-서버", - "밀착", - "결합된", - "합성물", - "상황에 맞는", - "문맥 기반", - "컨텐츠 기반", - "헌신적", - "교훈적", - "방향", - "분리된", - "다이나믹", - "환경 친화적", - "실행", - "취약점", - "스며든", - "수요 중심", - "장거리", - "글로벌", - "그리드 가능", - "휴리스틱", - "고단계", - "분리형", - "인간자원", - "하이브리드", - "선구적", - "로컬", - "물류", - "최대화", - "결정", - "휴대형", - "모듈형", - "멀티미디어", - "다중 상태", - "멀티 태스킹", - "국가적", - "범국가적", - "중립형", - "다음 세대", - "객체 지향적", - "필수", - "최적화된", - "근본적", - "실시간", - "역수", - "지역적", - "확장", - "보조", - "해답 기반", - "안정적", - "정적", - "가치추가", - "웹 사용 가능", - "잘 모듈화된", - "무관리", - "무해한", - "무관용", - ), - ( - "능력", - "접근", - "어댑터", - "알고리즘", - "연합", - "분석", - "어플리케이션", - "접근", - "아키텍쳐", - "아카이브", - "인공지능", - "배열", - "태도", - "벤치마크", - "예산 관리", - "환경", - "생산 능력", - "도전", - "회로", - "융합", - "컨셉", - "축적", - "우연성", - "코어", - "고객 만족", - "데이터베이스", - "정의", - "에뮬레이션", - "인코딩", - "암호화", - "엑스트라넷", - "펌웨어", - "유연성", - "예보", - "프레임", - "프레임워크", - "함수", - "그래픽 인터페이스", - "그룹웨어", - "GUI", - "하드웨어", - "안내 창구", - "계층", - "허브", - "미디어 정보", - "환경", - "설치과정", - "인터페이스", - "인트라넷", - "지식 기반", - "LAN", - "미들웨어", - "마이그레이션", - "모델", - "관리자", - "모니터링", - "공개 시스템", - "패러다임", - "정책", - "포탈", - "제품", - "프로젝트", - "프로토콜", - "서비스 창구", - "소프트웨어", - "솔루션", - "보안구역", - "전략", - "구조체", - "성공", - "지원", - "시너지", - "엔진", - "표준", - "시간화", - "공구", - "웹 사이트", - ), - ) - - bsWords = ( - ( - "다용도의", - "통합된", - "간소화된", - "최적화된", - "진화된", - "변화된", - "포용적인", - "사용 가능한", - "웅장한", - "재평가된", - "재발명된", - "구조적인", - "강화된", - "장려하는", - "변화무쌍한", - "자율적인", - "선구적인", - "화폐화된", - "전략적인", - "발전하는", - "합성", - "배송", - "혼합된", - "최대화된", - "벤치마킹된", - "신속한", - "깨끗한", - "시각적인", - "창의적인", - "큰", - "폭발하는", - "확장된", - "엔지니어", - "혁명적인", - "제작된", - "취약점의", - "배열적인", - "문화적인", - ), - ( - "온라인 쇼핑", - "가치 상승", - "선구적", - "철벽", - "혁명적", - "가변", - "창조적", - "직감", - "전략적", - "전자 비즈니스", - "끈끈한", - "1:1", - "24/7", - "글로벌", - "B2B", - "B2C", - "고운", - "가상", - "바이러스성", - "다이나믹", - "24/365", - "고사양", - "킬러", - "자기장", - "최첨단", - "닷컴", - "섹시", - "백 엔드", - "실시간", - "효율적", - "프론트 엔드", - "무결점", - "확장", - "턴키", - "세계급", - "오픈 소스", - "크로스 플랫폼", - "크로스 미디어", - "엔터프라이즈", - "통합", - "강렬한", - "무선", - "투명", - "다음 세대", - "날카로운", - "창의적", - "반투명", - "유비쿼터스", - "플러그 앤 플레이", - "융합", - "강력한", - "강렬한", - "부자", - ), - ( - "시너지", - "패러다임", - "마케팅", - "파트너쉽", - "인프라", - "플랫폼", - "채널", - "커뮤니티", - "솔루션", - "전자 서비스", - "포탈", - "기술", - "컨텐츠", - "생산라인", - "관계", - "아키텍쳐", - "인터페이스", - "전자시장", - "전자화폐", - "시스템", - "주파수", - "모델", - "어플리케이션", - "사용자들", - "스키마", - "네트웍스", - "앱", - "매트릭스", - "전자 비즈니스", - "경험", - "웹서비스", - "방법론", - ), - ) - - company_suffixes = ("(주)", "주식회사", "(유)", "유한회사") - - company_name_words = ( - "가람", - "가야", - "가온", - "겨레", - "고구려", - "고려", - "국민", - "글로벌", - "글로벌", - "나루", - "네오", - "넥스트", - "다올", - "라온", - "마루", - "마음", - "모두", - "미래", - "발해", - "백제", - "보람", - "브레인", - "비전", - "스타", - "시너지", - "신라", - "씨앤씨", - "아름", - "에코", - "우리", - "원더", - "월드", - "윈드", - "유니온", - "이노", - "인포", - "제나", - "조선", - "종합", - "중앙", - "첨단", - "코리아", - "코어", - "푸른", - "하나", - "한가람", - "한강", - "한빛", - ) - - brand_suffixes = ( - "개발", - "개발공사", - "그룹", - "금고", - "기술", - "기획", - "네트워크", - "네트웍스", - "랩스", - "바이오", - "반도체", - "보안", - "뷰티", - "상사", - "센터", - "소프트", - "솔루션", - "시스템", - "시스템즈", - "신문", - "에너지", - "에이아이", - "엔지니어링", - "연구소", - "유통", - "은행", - "자동차", - "전자", - "정보통신", - "제조", - "출판", - "코스메틱", - "테크", - "플랫폼", - "항공", - ) - - def company_name_word(self) -> str: - return self.random_element(self.company_name_words) - - def brand_suffix(self) -> str: - return self.random_element(self.brand_suffixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ko_KR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/ko_KR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 51f5073c2e7fdd178c7a3c2a64c8da007cd5ae79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7459 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/nl_BE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/nl_BE/__init__.py deleted file mode 100644 index 30ac7f5..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/nl_BE/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}}-{{last_name}} {{company_suffix}}", - "{{last_name}}, {{last_name}} en {{last_name}} {{company_suffix}}", - ) - company_suffixes = ("NV", "BV", "CV", "VOF", "CommV") diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/nl_BE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/nl_BE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 30049eb6f474f9d9b4b44cda651bd929914dd363..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 665 zcmZuvF>ezw6t;brG>WKFqz)aKDjlM+fUQCZwSsPG2bAF!%RM{f+VlCaov7F91Vab@ zL4N~c7ToPSAy1FW;Hl(D2H;rSN6csINqGyvye$h0S!!^a;8vCFA)tchT zy#&0xxA1Sqq+`)&Y|(+6hhrO!kKfqNp%h{~a$7wT?n;R56Cxy=72M$mguI{8!oR|? zjfqr(8f~}MU&Hlhu=JI=ZSYhIj*T=^F6ae*dk0)S&v<6A$TKCYmYhn1hjU)eagm?m zsy0(uJ|8}PhIMZEUPZHW`i^Tnq32v-cPMm3<2E@i3v%!p6Oxy?A!Jz9q4>eX?lStJ zGuL2&;z9T0(V`D__P@v5YRjz#%_xcN3fX}xgYV8=*VVv_g3<@M?Y&r4 str: - """ - :example: 'Bol.com' - """ - return self.random_element(self.large_companies) - - def company_prefix(self) -> str: - """ - :example: 'Stichting' - """ - return self.random_element(self.company_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/nl_NL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/nl_NL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 655b6ef7cf4a481f3e6d5e3f68f6c04dbf30cbe6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7476 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 Opa1EcK|LB zM=lPKOJ-pG9=ira0?{lD+myAfZLRmt&LS_%S>naKs(|?-PQ9dLSuvf4r&T5EeQH=b zE$u;z{ikx-R^0n%DKTqLEN{0A+r@TQbw{#DQ=TX?oG4>B87lI4sEn6SpB42bgWcrI z=Op2B+1cOog)_E0s>k%f7*l=5Vi6P(hx{62uM01#j|{9k6*BhnOzpIf&a)3_1;%Jy z(Yc5@%|$-vv3E*eT_woG~XYb*D6#u$k;Sz&W}k-EHgb=yK4zWqmVu zWj(7kW7|-hOl?2ewDRhy$emiGl>^Auy@#6{c_eQD#qedj0KW{3@pp9hw>7}lyElIj H1YPwPU8>Y@ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/pl_PL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/pl_PL/__init__.py deleted file mode 100644 index df15282..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/pl_PL/__init__.py +++ /dev/null @@ -1,149 +0,0 @@ -from typing import List - -from .. import Provider as CompanyProvider - - -def regon_checksum(digits: List[int]) -> int: - """ - Calculates and returns a control digit for given list of digits basing on REGON standard. - """ - weights_for_check_digit = [8, 9, 2, 3, 4, 5, 6, 7] - check_digit = 0 - - for i in range(0, 8): - check_digit += weights_for_check_digit[i] * digits[i] - - check_digit %= 11 - - if check_digit == 10: - check_digit = 0 - - return check_digit - - -def local_regon_checksum(digits: List[int]) -> int: - """ - Calculates and returns a control digit for given list of digits basing on local REGON standard. - """ - weights_for_check_digit = [2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4, 8] - check_digit = 0 - - for i in range(0, 13): - check_digit += weights_for_check_digit[i] * digits[i] - - check_digit %= 11 - - if check_digit == 10: - check_digit = 0 - - return check_digit - - -def company_vat_checksum(digits: List[int]) -> int: - """ - Calculates and returns a control digit for given list of digits basing on NIP standard. - """ - weights_for_check_digit = [6, 5, 7, 2, 3, 4, 5, 6, 7] - check_digit = 0 - - for i in range(0, 9): - check_digit += weights_for_check_digit[i] * digits[i] - - check_digit %= 11 - - return check_digit - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}}-{{last_name}} {{company_suffix}}", - "{{company_prefix}} {{last_name}}", - "{{company_prefix}} {{last_name}} {{company_suffix}}", - "{{company_prefix}} {{last_name}}-{{last_name}} {{company_suffix}}", - ) - - company_prefixes = ( - "Grupa", - "Spółdzielnia", - "Stowarzyszenie", - "Fundacja", - "PPUH", - "FPUH", - "Gabinety", - ) - - company_suffixes = ( - "Sp. z o.o.", - "S.A.", - "Sp. z o.o. Sp.k.", - "Sp.j.", - "s.c.", - "Sp.k.", - "i syn s.c.", - ) - - def company_prefix(self) -> str: - """ - :example 'Grupa' - """ - return self.random_element(self.company_prefixes) - - def regon(self) -> str: - """ - Returns 9 character Polish National Business Registry Number, - Polish: Rejestr Gospodarki Narodowej - REGON. - - https://pl.wikipedia.org/wiki/REGON - """ - voivodeship_number = self.random_int(0, 49) * 2 + 1 - regon_digits = [int(voivodeship_number / 10), voivodeship_number % 10] - - for _ in range(6): - regon_digits.append(self.random_digit()) - - regon_digits.append(regon_checksum(regon_digits)) - - return "".join(str(digit) for digit in regon_digits) - - def local_regon(self) -> str: - """ - Returns 14 character Polish National Business Registry Number, - local entity number. - - https://pl.wikipedia.org/wiki/REGON - """ - regon_digits = [int(digit) for digit in list(self.regon())] - - for _ in range(4): - regon_digits.append(self.random_digit()) - - regon_digits.append(local_regon_checksum(regon_digits)) - - return "".join(str(digit) for digit in regon_digits) - - def company_vat(self) -> str: - """ - Returns 10 character tax identification number, - Polish: Numer identyfikacji podatkowej. - - https://pl.wikipedia.org/wiki/NIP - """ - vat_digits = [] - - for _ in range(3): - vat_digits.append(self.random_digit_not_null()) - - for _ in range(6): - vat_digits.append(self.random_digit()) - - check_digit = company_vat_checksum(vat_digits) - - # in this case we must generate a tax number again, because check_digit - # cannot be 10 - if check_digit == 10: - return self.company_vat() - - vat_digits.append(check_digit) - - return "".join(str(digit) for digit in vat_digits) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/pl_PL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/pl_PL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ce3c8438cf8062473a0b163ae19c40119cf1910e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5863 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 List[int]: - digits = list(digits) - weights = 6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2 - - dv = sum(w * d for w, d in zip(weights[1:], digits)) - dv = (11 - dv) % 11 - dv = 0 if dv >= 10 else dv - digits.append(dv) - - dv2 = sum(w * d for w, d in zip(weights, digits)) - dv2 = (11 - dv2) % 11 - dv2 = 0 if dv2 >= 10 else dv2 - digits.append(dv2) - - return digits[-2:] - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - "{{last_name}}", - ) - - catch_phrase_formats = ("{{catch_phrase_noun}} {{catch_phrase_verb}} {{catch_phrase_attribute}}",) - - nouns = ( - "a segurança", - "o prazer", - "o conforto", - "a simplicidade", - "a certeza", - "a arte", - "o poder", - "o direito", - "a possibilidade", - "a vantagem", - "a liberdade", - ) - - verbs = ( - "de conseguir", - "de avançar", - "de evoluir", - "de mudar", - "de inovar", - "de ganhar", - "de atingir seus objetivos", - "de concretizar seus projetos", - "de realizar seus sonhos", - ) - - attributes = ( - "de maneira eficaz", - "mais rapidamente", - "mais facilmente", - "simplesmente", - "com toda a tranquilidade", - "antes de tudo", - "naturalmente", - "sem preocupação", - "em estado puro", - "com força total", - "direto da fonte", - "com confiança", - ) - - company_suffixes = ("S/A", "S.A.", "Ltda.", "- ME", "- EI", "e Filhos") - - def catch_phrase_noun(self) -> str: - """ - Returns a random catch phrase noun. - """ - return self.random_element(self.nouns) - - def catch_phrase_attribute(self) -> str: - """ - Returns a random catch phrase attribute. - """ - return self.random_element(self.attributes) - - def catch_phrase_verb(self) -> str: - """ - Returns a random catch phrase verb. - """ - return self.random_element(self.verbs) - - def catch_phrase(self) -> str: - """ - :example: 'a segurança de evoluir sem preocupação' - """ - pattern: str = self.random_element(self.catch_phrase_formats) - catch_phrase = self.generator.parse(pattern) - catch_phrase = catch_phrase[0].upper() + catch_phrase[1:] - return catch_phrase - - def company_id(self) -> str: - digits: List[int] = list(self.random_sample(range(10), 8)) - digits += [0, 0, 0, 1] - digits += company_id_checksum(digits) - return "".join(str(d) for d in digits) - - def cnpj(self) -> str: - digits = self.company_id() - return f"{digits[:2]}.{digits[2:5]}.{digits[5:8]}/{digits[8:12]}-{digits[12:]}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/pt_BR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/pt_BR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d5bc49b8c9b3a8eaecfd3f6959ff56750d055e5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4835 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 VMIXs`e+_O$cYgczZ-S)p`Uk#Kg6{wT diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ro_RO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/ro_RO/__init__.py deleted file mode 100644 index e73022a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/ro_RO/__init__.py +++ /dev/null @@ -1,34 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - ) - company_prefixes = ("S.C.", "S.S.I.", "A.D.") - company_suffixes = ( - "SRL", - "SA", - "SCA", - "SNC", - "SCS", - "AFJ", - "ASF", - "CON", - "CRL", - "INC", - "LOC", - "OC1", - "OC2", - "OC3", - "PFA", - "RA", - "SCS", - "SPI", - "URL", - ) - - def company_suffix(self) -> str: - return self.random_element(self.company_suffixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ro_RO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/ro_RO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0aeebec06e28068371d36f5b549c8e9da08d8198..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 984 zcmah{%}*0S6rbJMZfhgd1QO9GK~Uow-3{OYh%squAQ;jTRxf**EZwOr>_?s15?XBJ zz`_53D_6t8i~ofehzHCho;-PLQoL~TO}h=&i<8Xn_ujmZc{A^Q9T~|ZxxVDLKdT7+ z>?tW^Qtmzk;Rt!iQvwt!j;bIPtsqZ5L>{K<3GVwjN>ej3zaR@T6p>qJ@viStR!y_? zNE+qp-Um2B6gi5A9Mw}C?5U3CVJG8hRIjOC=1_C8P2I>cncl#ysr~)HX;#9Vgn5D2my1H(D6(tt8i-$C75EJV=!_-} z7F88E9xVA_xw{JhN9aA;{@a>*!Rg>L(-TQ2sizGsC>yF6Wp3ofA)x^cX_SZ?!=FYu zbV}nisBsxMb=kJI;*eTNoNUq1-LqZ~1nA~AttM9JS6N(7mCZP@%v~DoT7kc5)tkvy z9L<}va~Ag#`n2v=cigv>TQzrwG7Exw^T4gN28+dHqhb-_M}9(xS#OHb;qqEH2Sa2I z8}31|{1(6g`d%12FHD~mrjMVU&n%qHEPN|0p5_+2U_@mjCvv1WF@%UbAz|z_0t)hV zLf$ppK+Y0q*;>p(H{n;`Q)d)rigI=v(g@5G#_odj39(5ac1MD2Q4cf__yd4L)KRs9 zez4NXqlvjwZM>t7Pw0}LD4C^We1U-a8DwzTz@nc)6iWSJ9=w;ybXRv>=AQRUf59Gs cLH3G|19Y&WC_m8S3w=^q`uO2D0_sKm0ln}K2><{9 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/ru_RU/__init__.py deleted file mode 100644 index ca2a574..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/ru_RU/__init__.py +++ /dev/null @@ -1,1182 +0,0 @@ -from datetime import datetime - -from .. import Provider as CompanyProvider - - -def calculate_checksum(value: str) -> str: - factors = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8][-len(value) :] - check_sum = 0 - for number, factor in zip(value, factors): - check_sum += int(number) * factor - - return str((check_sum % 11) % 10) - - -def calculate_snils_checksum(numbers: str) -> str: - checksum = sum(int(v) * (9 - i) for i, v in enumerate(numbers)) % 101 - return "%02d" % (checksum if checksum < 100 else 0) - - -class Provider(CompanyProvider): - formats = ( - "{{company_prefix}} «{{last_name}}»", - "{{company_prefix}} «{{last_name}} {{last_name}}»", - "{{company_prefix}} «{{last_name}}-{{last_name}}»", - "{{company_prefix}} «{{last_name}}, {{last_name}} и {{last_name}}»", - "{{last_name}} {{company_suffix}}", - "{{large_company}}", - ) - - company_prefixes = ( - "РАО", - "АО", - "ИП", - "НПО", - "ЗАО", - "ООО", - "ОАО", - ) - - company_suffixes = ( - "Инк", - "Инкорпорэйтед", - "и партнеры", - "Групп", - "Лтд", - "Лимитед", - ) - - # Source: https://www.rbc.ru/rbc500/ - large_companies = ( - "Газпром", - "ЛУКОЙЛ", - "Роснефть", - "Сбербанк России", - "Российские железные дороги", - "Ростех", - "Сургутнефтегаз", - "X5 Retail Group", - "ВТБ", - "Магнит", - "САФМАР", - "Росатом", - "Российские сети", - "Интер РАО", - "Транснефть", - "Татнефть", - "НОВАТЭК", - "Евраз", - "АФК Система", - "En +", - "НЛМК", - "Норникель", - "ГК Мегаполис", - "Газпромбанк", - "Русал", - "Аэрофлот — Российские авиалинии", - "Сибур Холдинг", - "Северсталь", - "СУЭК", - "ММК", - "Группа УГМК", - "Мобильные телесистемы", - "Металлоинвест", - "Лента", - "Объединенная авиастроительная корпорация", - "РусГидро", - "Сахалин Энерджи", - "Т Плюс", - "Группа М.Видео-Эльдорадо", - "Еврохим", - "ВымпелКом", - "Банковский холдинг Альфа-банка", - "Объединенная судостроительная корпорация", - "МегаФон", - "Ростелеком", - "ТМК", - "Славнефть", - "Тойота Мотор (Toyota)", - "Мечел", - "Автотор холдинг", - "Стройгазмонтаж", - "Дж.Т.И. Россия (JTI)", - "Торговая сеть Красное и Белое", - "АК Алроса", - "Дикси Групп", - "ВЭБ.РФ", - "ФМСМ (PMI)", - "Фольксваген Груп Рус", - "АвтоВАЗ", - "Леруа Мерлен Восток (Leroi Merlin)", - "Ашан (Auchan)", - "Россельхозбанк", - "ДНС Групп", - "ГК ТНС энерго", - "Протек", - "Группа компаний ПИК", - "Объединенная двигателестроительная корпорация", - "Независимая нефтегазовая компания", - "Merlion", - "ФосАгро", - "КМР и СНГ (KIA)", - "Катрен", - "Банк ФК Открытие", - "Корпорация Тактическое ракетное вооружение", - "Группа Рольф", - "ТАИФ-НК", - "Трансмашхолдинг", - "Метро Кэш энд Керри (Metro Cash & Carry)", - "Мостотрест", - "СОГАЗ", - "Эппл Рус (Apple)", - "Арктикгаз", - "Нижнекамскнефтехим", - "«Томскнефть» ВНК", - "Зарубежнефть", - "ЕвроСибЭнерго", - "Вертолеты России", - "Группа ГАЗ", - "Почта России", - "МУМТ (BAT)", - "Стройтранснефтегаз", - "КамАЗ", - "ФК Пульс", - "Полюс", - "Хендэ Мотор СНГ (Hyundai)", - "S7 Group", - "Ямал СПГ", - "Группа Содружество", - "ЧТПЗ", - "Иркутская нефтяная компания", - "Русснефть", - "Национальная компьютерная корпорация", - "Мерседес-Бенц Рус (Mercedes-Benz)", - "Русэнергосбыт", - "ОМК", - "Уралкалий", - "ГК Ташир", - "Компания Газ-Альянс", - "ФортеИнвест", - "Группа Мэйджор", - "Российская электроника", - "ГК СНС", - "Сибирский антрацит", - "Группа О'кей", - "Мосинжпроект", - "UCL Holding", - "Группа Илим", - "Московский кредитный банк", - "Группа Синара", - "Нефтиса", - "Объединенная компания Связной — Евросеть", - "Группа ЛСР", - "Т2 РТК Холдинг", - "НЗНП", - "АльфаСтрахование", - "Ланит", - "НПК Уралвагонзавод", - "Рено Россия (Renault)", - "Удмуртнефть", - "Нестле Россия (Nestle)", - "Райффайзенбанк (Raiffeisen)", - "Техкомпания Хуавэй (Huawei)", - "КДВ Групп", - "Яндекс", - "Мессояханефтегаз", - "БМВ Русланд Трейдинг (BMW)", - "Салым Петролеум", - "Данон (Danone)", - "ЮниКредит Банк (UniCredit)", - "ТД Риф", - "Мираторг", - "Группа Волга-Днепр", - "Вайлдберриз", - "Московский метрополитен", - "Полиметалл", - "Группа РЕСО", - "Пепсико холдингс", - "ГК Эфко", - "СДС-Уголь", - "ЛокоТех", - "ГК Автомир", - "Совкомбанк", - "ФСК Лидер", - "Марс (Mars)", - "Детский мир", - "Группа НПФ Благосостояние", - "Госкорпорация по ОрВД", - "Трансойл", - "ОХК Уралхим", - "Каспийский трубопроводный консорциум-Р", - "Тинькофф Банк", - "Fix Price", - "Промсвязьбанк", - "Акрон", - "Спортмастер", - "Проктер Энд Гэмбл. Дистрибьюторская компания (Procter & Gamble)", - "Eurasia Drilling Company", - "Группа Черкизово", - "ИКЕА Дом (INGKA)", - "Славянск Эко", - "Корпорация ВСМПО-АВИСМА", - "Росбанк (Societe General)", - "Монетка", - "Стройсервис", - "ГК Транстехсервис", - "Совкомфлот", - "ВСК", - "СБСВ-Ключавто", - "Ингосстрах", - "Сэтл групп", - "Гиперглобус (Bruch-Beteiligungs)", - "Технониколь", - "Металлсервис", - "Нефтехимсервис", - "Промышленно-металлургический холдинг", - "Урало-Сибирская металлургическая компания", - "Мария-Ра", - "Globaltrans", - "Кубанская нефтегазовая компания", - "Авиакомпания ЮТэйр", - "НПФ Газфонд пенсионные накопления", - "Русагро", - "Л'Этуаль", - "ЛГ Электроникс Рус (LG)", - "Каргилл (Cargill)", - "ВАД", - "Астон", - "Уральские авиалинии", - "Сталепромышленная компания", - "НИПИ НГ Петон", - "Бристоль", - "Уралвтормет", - "Нефтетранссервис", - "Казаньоргсинтез", - "Газпром бурение", - "ГК Агро-Белогорье", - "Фортум (Fortum)", - "ПК Балтика (Carlsbergfondet)", - "Авилон АГ", - "Шелл Нефть (Shell)", - "Юнипро (Uniper)", - "Технологии машиностроения (Техмаш)", - "НПК Объединенная вагонная компания", - "Велесстрой", - "ТД Интерторг", - "Юнилевер Русь (Unilever)", - "Солид-товарные рынки", - "Вольво Восток (AB Volvo)", - "Энел Россия", - "Марвел КТ", - "ГК Эталон", - "Металлокомплект-М", - "Группа Ренессанс Страхование", - "Военторг", - "Nordgold", - "Сибуглемет", - "Акционерный банк Россия", - "ДОМ.РФ", - "Форд Соллерс Холдинг", - "ИКЕА Торг (INGKA)", - "Макдоналдc (McDonald`s)", - "Кузбасская топливная компания", - "Хенкель Рус (Henkel)", - "Дон-Строй Инвест", - "Главное управление обустройства войск (ГУОВ)", - "СК Росгосстрах", - "Кока-Кола Эйчбиси Евразия (Coca-Cola)", - "Хоум Кредит энд Финанс Банк (PPF)", - "Гленкор Агро Мзк (Firada)", - "Mail.Ru Group", - "Монди СЛПК (Mondi)", - "НПО Алмаз", - "ММС Рус (Mitsubishi Motors)", - "Объединенные кондитеры", - "Комацу СНГ (Komatsu)", - "Национальная медиа группа", - "Агентство по страхованию вкладов (АСВ)", - "Татэнергосбыт", - "Куйбышевазот", - "Азбука вкуса", - "Трансбункер", - "Башкирская содовая компания", - "Инвестнефтетрейд", - "Inventive Retail Group", - "Самсунг Электроникс Рус Калуга (Samsung)", - "Крокус", - "Гугл (Google)", - "АСЦ-Холдинг", - "Новороссийский морской торговый порт", - "Швабе", - "Русская медная компания", - "Евроцемент груп", - "Мосводоканал", - "Международный аэропорт Шереметьево", - "Сегежа", - "Р-Фарм", - "Фармстандарт", - "Ростсельмаш", - "Транспортная группа FESCO", - "Компания Адамас", - "Метафракс", - "Джонсон & Джонсон (Johnson & Johnson)", - "Softline", - "Ягуар ленд ровер", - "Байер", - "Эркафарм", - "Фармперспектива", - "Банк Уралсиб", - "ВО Машиноимпорт", - "Кордиант", - "Новосталь", - "ВкусВилл", - "Л'Ореаль (L'Oreal)", - "DDS", - "ТОАЗ", - "Банк Санкт-Петербург", - "Группа агропредприятий Ресурс", - "Ярче!", - "Ренейссанс Констракшн (Ronesans Holding Anonim Sirketi)", - "Санофи Россия (Sanofi)", - "Группа ГМС", - "Северный ветер", - "БСС", - "Скания-Русь (Scania)", - "ГК Фаворит Моторс", - "Группа РТК", - "Фармкомплект", - "Нокиан Шина (Nokian)", - "ДСК Автобан", - "Омега Групп", - "Квадра", - "Roust", - "ГК Невада (Самбери)", - "Восточный экспресс банк", - "Верисел-трейдинг", - "Гознак", - "Фирма Агрокомплекс им. Ткачева", - "Банк Русский стандарт", - "Мазда Мотор Рус (Mazda)", - "Группа Газфонд", - "СТД Петрович", - "Беркс", - "Кари", - "Арконик СМЗ", - "Мон Дэлис (Mondelez)", - "Комус", - "Группа Агат", - "Великолукский мясокомбинат", - "Верный", - "СДС Азот", - "М Фэшн", - "Белгранкорм-холдинг", - "Группа Нэфис", - "ФГ Будущее", - "Глория Джинс", - "Билла (Rewe)", - "Государственная транспортная лизинговая компания", - "ФК Гранд Капитал", - "ЭС", - "Компания Металл Профиль", - "ГК Орими Трэйд", - "ГСЛ", - "Интернешнл Пейпер (International Paper)", - "Лаборатория Касперского", - "ПСМА Рус", - "Аптечная сеть 36,6", - "Тетра Пак (Tetra Pak)", - "Центральная пригородная пассажирская компания", - "Самараэнерго", - "Азур Эйр", - "Командор-Холдинг", - "Белуга Групп", - "ТД БелАЗ", - "Мосгортранс", - "Спар Миддл Волга", - "Холдинг Транспортные компоненты", - "Московский аэропорт Домодедово", - "Рулог (Havi)", - "Эйч Энд Эм (H&M)", - "Концерн Автоматика", - "Татэнерго", - "Трубная грузовая компания", - "Комос Групп", - "Первая тяжеловесная компания", - "ОМПК", - "НК Дулисьма", - "Ачимгаз", - "Новосибирскэнергосбыт", - "Компания СИМ-Авто", - "Ситибанк", - "Остин", - "Адидас (Adidas)", - "Ферреро Руссия (Ferrero)", - "Пермэнергосбыт", - "РКК Энергия", - "Свеза", - "Росжелдорпроект", - "Мазда Соллерс Мануфэкчуринг Рус", - "БСХ Бытовые приборы (BSH Hausgerate)", - "Московская биржа ММВБ-РТС", - "Русэнергоресурс", - "Компания Луис Дрейфус Восток (Louis Dreyfus)", - "ЭР-Телеком Холдинг", - "Соллерс", - "Объединенная энергетическая компания", - "Уральские локомотивы", - "ТМК Чермет", - "Загорский трубный завод", - "Элко Рус (Elko)", - "Архангельский ЦБК", - "Мособлгаз", - "ДК Рус", - "Энергосбытовая компания Восток", - "ГКНПЦ им. М.В.Хруничева", - "Металлоторг", - "Агросила Групп", - "Ман Трак Энд Бас Рус (Volkswagen)", - "Петербургский метрополитен", - "ТГК-2", - "Концерн Титан-2", - "Ренейссанс Хэви Индастрис Ronesans Endustri", - "Бургер Рус (Burger King)", - "Ozon", - "Сони Электроникс (Sony)", - "Продо", - "Продимекс-Холдинг", - "АвтоГермес", - "Railgo", - "Новотранс", - "Новикомбанк", - "Рив Гош", - "Сибирская горно-металлургическая компания", - "Сименс (Siemens)", - "Лига ставок", - "Банк Ак Барс", - "Группа Полипластик", - "Водоканал Санкт-Петербурга", - "РэйлАльянс", - "Российская телевизионная и радиовещательная сеть", - "Зерно-трейд", - "Ренессанс Кредит", - "Роберт Бош (Robert Bosch)", - "ВО Промсырьеимпорт", - "САП СНГ (SAP)", - "А Групп", - "Приосколье", - "Зара СНГ (Zara)", - "Модум-транс", - "Эбботт лэбораториз (Abbott Laboratories)", - "Группа Магнезит", - "Газпром автоматизация", - "Газэнергосервис", - "Независимая энергосбытовая компания Краснодарского края", - "Группа ЭПМ", - "Минудобрения", - "Либхерр-Русланд (Liebherr)", - "Восточная техника (Vost-Tech)", - "Первый канал", - "ГМК Сплав", - "ГК Автодилерство", - "НМЖК", - "ВГТРК", - "Неофарм", - "Роскосмос", - "Вита Лайн", - "Краснодарзернопродукт-Экспо", - "Алкоторг", - "Красцветмет", - "Касторама Рус (Castorama)", - "Деловые линии", - "ГВСУ по специальным объектам", - "ПКФ ДиПОС", - "Восток-Запад", - "Амурская нефтебаза", - "Юг Руси", - "Шнейдер Электрик (Schneider Electric)", - "Сингента (Chemchina)", - "Титан", - "Петропавловск", - "Фармимэкс", - "АБ Инбев Эфес (Anheuser-Busch Inbev)", - "ABI Product", - "Профитмед", - "ТД Агроторг", - "ТЭК СПБ", - "ТД Ункомтех", - "ОПХ (Heineken)", - "ТГК-16", - "Уральский банк реконструкции и развития", - "QIWI", - "СК Согласие", - "Группа Эссен", - "Втормет", - "Эссити (Essity)", - "Hoff (Домашний интерьер)", - "Сиско Солюшенз (Cisco)", - "ВО ЖДТ России", - "Купишуз (Lamoda)", - "Делл (Dell)", - "ПСК", - "Каменск-Уральский металлургический завод", - "Аргос", - "А.П.Р.", - "ГК 1520", - "Артис-Агро Экспорт", - "Луидор", - "Порше Руссланд (Porsche)", - "Денцу Эйджис Си Эс (Dentsu)", - "Эйвон Бьюти Продактс Компани (Avon)", - "РКЦ Прогресс", - "Силовые машины", - "АНГК", - "Корпорация Гринн", - "Фаберлик", - "Сибирская сервисная компания", - "Банк Возрождение", - "Отисифарм", - "Боэс Констракшн (Boes Construction)", - "Саткинский чугуноплавильный завод", - "Алтайвагон", - "ПТК", - "Щекиноазот", - "Волгоградэнергосбыт", - "Русский уголь", - "Трест КХМ", - "РМ Рейл", - "Восточная горнорудная компания", - "Группа Стройтрансгаз", - "БАСФ (BASF)", - "Мерида", - "Брок-Инвест-Сервис и К", - "Вирлпул Рус (Whirlpool)", - "Карелия Палп", - "Тева (Teva)", - "Media Direction Group", - "Якобс Дау Эгбертс Рус (Jacobs Douwe Egberts)", - "ГК Великан", - "Август", - "Транслом", - "ОТП Банк", - "РусВинил", - "Системный оператор Единой энергетической системы", - "АСР-Углесбыт", - "ЦЭНКИ", - "Транстрейдойл", - "Росморпорт", - "Газнефтетрэйдинг", - "Сладковско-Заречное", - "Кроношпан (Kronoplus)", - "ТЦ Кунцево Лимитед", - "СНПХ", - "Кимберли-Кларк (Kimberly-Clark)", - "Катерпиллар Евразия (Caterpillar)", - "Крок инкорпорейтед", - "Ашинский металлургический завод", - "Автодом", - "Международный центр", - "Мишлен (Michelin)", - "Картли", - "БелАЗ-24", - "Первый завод", - "ГК ЕКС", - "Петролеум Трейдинг", - "Нижфарм (Nidda Midco)", - "Импэкснефтехим", - "Вольво Карс (Zhejiang Geely)", - "Мосметрострой", - "ТЭК Мосэнерго", - "Борисхоф 1 (Inchcape)", - "ГК Титан", - "ПТК Уголь", - "Авторусь", - "Юг-Авто", - "Нова", - "Метрострой", - "Ресурс", - "Сетевая компания", - "РЕ Трэйдинг (LPP)", - "Углетранс", - "ЭйчПи Инк (HP Inc.)", - "ТК Шлюмберже (Schlumberger)", - "ГК Мега-Авто", - "Корпорация Электросевкавмонтаж", - "ГК Российские коммунальные системы", - "Запсибгазпром", - "Нефтепродукттрейд", - "Сатурн-Р", - "Завод имени Дегтярева", - "Такеда Фармасьютикалс (Takeda Pharmaceutical)", - "Слата супермаркет", - "Emex", - "САМ-МБ", - "171 Меридиан", - "Армтек", - "Центр финансовых технологий", - "Группа компаний Пионер", - "АХ Степь", - "Таграс (ТНГ-Групп)", - "Fonbet", - "Сандоз (Sandoz)", - "Берлин-Хеми А. Менарини (Berlin Chemie)", - "ГК Агропромкомплектация", - "МАКС", - "Компания Трасса", - "Башкирэнерго", - "Охрана Росгвардии", - "Гала-Форм", - "КРКА Фарма (KRKA)", - "Максидом", - "Нефтехимремстрой", - "Нефтьмагистраль", - "Авеста Фармацевтика (Baby Dream)", - "Старттех", - "Конар", - "Нортгаз", - "УГС", - "АББ (ABB)", - "Металлстандарт", - "Балтийская топливная компания", - "Мострансавто", - "Аксель-Моторс", - "Группа компаний МИЦ", - "ПК Борец", - "Европа", - "Сибирская аграрная группа", - "РТИ", - "Ферронордик машины (Ferronordic)", - "Южуралзолото ГК", - "Прогресс", - "Юг-Нефтепродукт", - "Камский кабель", - "Familia", - "Транскапиталбанк", - "А-Ойл", - "Сибтрейд", - "МТС-банк", - "Московская инженерно-строительная компания", - "Курганмашзавод", - "Вектрум-К", - "Морской терминал Тамань", - "Таркетт Рус (Tarkett)", - "Несте Санкт-Петербург (Neste)", - "Ново-Уренгойская газовая компания", - "Национальная нерудная компания", - "Октоблу (Decathlon)", - "Снежная Королева", - "Новартис Фарма (Novartis)", - "Магнолия", - "Техинком", - "Дочки-Сыночки", - "Астеллас Фарма", - "General Fueller", - "Автозаправочные комплексы Atan", - "Псковвтормет", - "Авиакомпания Икар", - ) - - catch_phrase_adj = ( - ( - "Автоматизированный", - "Автономный", - "Адаптивный", - "Амортизированный", - "Ассимилированный", - "Безопасный", - "Бизнес-ориентированный", - "Взаимовыгодный", - "Виртуальный", - "Глубокий", - "Горизонтальный", - "Делегируемый", - "Децентрализованный", - "Дублируемый", - "Инверсный", - "Инновационный", - "Интегрированный", - "Интуитивный", - "Качественный", - "Клиент-ориентированный", - "Контролируемый", - "Концептуальный", - "Корпоративный", - "Кросс-платформенный", - "Межгрупповой", - "Многогранный", - "Многоканальный", - "Многослойный", - "Многоуровневый", - "Модернизируемый", - "Настраиваемый", - "Новый", - "Общедоступный", - "Объектный", - "Обязательный", - "Оперативный", - "Оптимизированный", - "Опциональный", - "Организованный", - "Органичный", - "Ориентированный", - "Открытый", - "Оцифрованный", - "Переключаемый", - "Переосмысленный", - "Переработанный", - "Перспективный", - "Полный", - "Поэтапный", - "Превентивный", - "Программируемый", - "Прогрессивный", - "Продвинутый", - "Прочный", - "Разнообразный", - "Распределённый", - "Расширенный", - "Реализованный", - "Реконструируемый", - "Самодостаточный", - "Сбалансированный", - "Сетевой", - "Синхронизированный", - "Совместимый", - "Сокращенный", - "Сосредоточенный", - "Стабильный", - "Стратегический", - "Увеличенный", - "Удобный", - "Улучшенный", - "Улучшенный", - "Уменьшенный", - "Универсальный", - "Управляемый", - "Устойчивый", - "Фундаментальный", - "Функциональный", - "Цельный", - "Централизованный", - "Эксклюзивный", - "Элегантный", - "Эргономичный", - ), - ( - "аналитический", - "асимметричный", - "асинхронный", - "бездефектный", - "бескомпромиссный", - "веб-ориентированный", - "встречный", - "вторичный", - "высокоуровневый", - "гибкий", - "гибридный", - "глобальный", - "двунаправленный", - "действенный", - "динамичный", - "единообразный", - "заметный", - "инструктивный", - "интерактивный", - "исполнительный", - "итернациональный", - "клиент-серверный", - "контекстуальный", - "круглосуточный", - "логистический", - "локальный", - "максимальный", - "масштабируемый", - "методичный", - "многозадачный", - "мобильный", - "модульный", - "мультимедийный", - "наглядный", - "направленный", - "национальный", - "нейтральный", - "нестандартный", - "объектно-ориентированный", - "однородный", - "оптимальный", - "основной", - "отказостойкий", - "переходный", - "последовательный", - "потенциальный", - "пошаговый", - "прибыльный", - "приоритетный", - "промежуточный", - "радикальный", - "раздвоенный", - "региональный", - "связный", - "систематический", - "системный", - "составной", - "социальный", - "специализированный", - "статический", - "третичный", - "ультрасовременный", - "целостный", - "широкий", - "широкопрофильный", - "эвристический", - "экоцентричный", - "энергонезависимый", - "яркий", - ), - ) - - catch_phrase_nouns_masc = ( - "адаптер", - "алгоритм", - "альянс", - "анализатор", - "архив", - "веб-сайт", - "вызов", - "графический интерфейс", - "графический интерфейс пользователя", - "доступ", - "инструментарий", - "интерфейс", - "инфопосредник", - "искусственный интеллект", - "массив", - "модератор", - "мониторинг", - "набор инструкций", - "параллелизм", - "подход", - "портал", - "прогноз", - "продукт", - "проект", - "протокол", - "ресурс", - "системный движок", - "успех", - "фреймворк", - "хаб", - "эталон", - ) - - catch_phrase_nouns_fem = ( - "архитектура", - "база данных", - "база знаний", - "вероятность", - "возможность", - "гибкость", - "защищенная линия", - "иерархия", - "инициатива", - "инфраструктура", - "кодировка", - "конгломерация", - "концепция", - "координация", - "локальная сеть", - "матрица", - "методология", - "миграция", - "модель", - "нейронная сеть", - "парадигма", - "поддержка", - "политика", - "проекция", - "производительность", - "прошивка", - "рабочая группа", - "реализация", - "сеть Интранет", - "сеть Экстранет", - "служба поддержки", - "служба техподдержки", - "способность", - "стандартизация", - "стратегия", - "структура", - "суперструктура", - "установка", - "фокус-группа", - "функциональность", - "функция", - "ценовая структура", - "эмуляция", - ) - - catch_phrase_nouns_neu = ( - "взаимодействие", - "групповое программное обеспечение", - "интернет-решение", - "использование", - "межплатформенное программное обеспечение", - "оборудование", - "определение", - "отношение", - "приложение", - "программное обеспечение", - "решение", - "совершенствование процесса", - "сотрудничество", - "управление бюджетом", - "хранилище данных", - "шифрование", - "ядро", - ) - - bsWords = ( - ( - "Адаптация", - "Визуализация", - "Включение", - "Внедрение", - "Генерация", - "Инновация", - "Интеграция", - "Использование", - "Итерация", - "Конструирование", - "Координация", - "Культивация", - "Максимизация", - "Модернизация", - "Монетизация", - "Мотивация", - "Обеспечение", - "Объединение", - "Оптимизация", - "Освоение", - "Охват", - "Оцифровка", - "Перезагрузка", - "Переопределение", - "Переосмысление", - "Перепрофилирование", - "Переход", - "Преображение", - "Приспособление", - "Продление", - "Производство", - "Развитие", - "Разворачивание", - "Разработка", - "Распределение", - "Реализация", - "Революция", - "Синтез", - "Синхронизация", - "Сравнение", - "Трансформация", - "Увеличение", - "Управление", - "Ускорение", - "Формирование", - "Шкалирование", - "Эксплуатация", - ), - ( - "B2B", - "B2C", - "активных", - "безотказных", - "беспроводных", - "богатых", - "веб-ориентированных", - "вертикальных", - "виртуальных", - "глобальных", - "действенных", - "динамичных", - "заказных", - "индивидуальных", - "инновационных", - "интегрированных", - "интерактивных", - "интуитивных", - "концептуальных", - "корпоративных", - "критически важных", - "кроссплатформенных", - "круглогодичных", - "круглосуточных", - "лучших в своём роде", - "масштабируемых", - "мультимедийных", - "наглядных", - "надежных", - "онлайн и офлайн", - "ориентированных на пользователя", - "открытых", - "передовых", - "подробных", - "популярных", - "престижных", - "прибыльных", - "притягательных", - "прозрачных", - "распределённых", - "распространенных", - "расширяемых", - "революционных", - "сенсационных", - "серверных", - "сетевых", - "соблазнительных", - "совместных", - "современных", - "стандартных", - "стратегических", - "ультрасовременных", - "фронт-энд", - "целостных", - "цельных", - "эффективных", - ), - ( - "архитектур", - "аудиторий", - "веб-сервисов", - "взаимодействий", - "действий", - "диапазонов", - "знаний", - "инициатив", - "интернет-компаний", - "интернет-магазинов", - "интернет-продавцов", - "интернет-услуг", - "интерфейсов", - "инфопосредников", - "инфраструктур", - "каналов", - "методик", - "метрик", - "моделей", - "ниш", - "областей интереса", - "отношений", - "парадигм", - "партнерств", - "платформ", - "пользователей", - "порталов", - "приложений", - "результатов", - "решений", - "рынков", - "сетей", - "систем", - "систем снабжения", - "сообществ", - "схем", - "технологий", - "функций", - ), - ) - - def catch_phrase(self) -> str: - """ - :example: 'Адаптивный и масштабируемый графический интерфейс' - """ - noun: str = self.random_element( - self.catch_phrase_nouns_masc + self.catch_phrase_nouns_fem + self.catch_phrase_nouns_neu - ) - adj_first: str = self.random_element(self.catch_phrase_adj[0]) - adj_second: str = self.random_element(self.catch_phrase_adj[1]) - if noun in self.catch_phrase_nouns_fem: - adj_first = adj_first[:-2] + "ая" - adj_second = adj_second[:-2] + "ая" - elif noun in self.catch_phrase_nouns_neu: - adj_first = adj_first[:-2] + "ое" - adj_second = adj_second[:-2] + "ое" - return adj_first + " и " + adj_second + " " + noun - - def large_company(self) -> str: - """ - :example: 'АвтоВАЗ' - """ - return self.random_element(self.large_companies) - - def company_prefix(self) -> str: - """ - :example: 'ООО' - """ - return self.random_element(self.company_prefixes) - - def businesses_inn(self) -> str: - """ - Returns tax identification number for businesses (ru. идентификационный номер налогоплательщика, ИНН). - """ - region: str = "%02d" % self.random_int(min=1, max=92) - inspection: str = "%02d" % self.random_int(min=1, max=99) - tail: str = "%05d" % self.random_int(min=1, max=99999) - result: str = region + inspection + tail - - return result + calculate_checksum(result) - - def individuals_inn(self) -> str: - """ - Returns tax identification number for individuals (ru. идентификационный номер налогоплательщика, ИНН). - """ - region: str = "%02d" % self.random_int(min=1, max=92) - inspection: str = "%02d" % self.random_int(min=1, max=99) - tail: str = "%06d" % self.random_int(min=1, max=999999) - result: str = region + inspection + tail - result += calculate_checksum(result) - - return result + calculate_checksum(result) - - def businesses_ogrn(self) -> str: - """ - Returns primary state registration number for businesses - (ru. основной государственный регистрационный номер, ОГРН). - """ - sign: str = self.random_element(("1", "5")) - year: str = "%02d" % self.random_int(min=1, max=datetime.now().year - 2000) - region: str = "%02d" % self.random_int(min=1, max=92) - tail: str = "%07d" % self.random_int(min=1, max=9999999) - - result: str = sign + year + region + tail - - return result + str((int(result) % 11) % 10) - - def individuals_ogrn(self) -> str: - """ - Returns primary state registration number for individuals - (ru. основной государственный регистрационный номер, ОГРН). - """ - year: str = "%02d" % self.random_int(min=1, max=datetime.now().year - 2000) - region: str = "%02d" % self.random_int(min=1, max=92) - tail: str = "%09d" % self.random_int(min=1, max=999999999) - - result: str = "3" + year + region + tail - - return result + str((int(result) % 13) % 10) - - def kpp(self) -> str: - """ - Returns tax registration reason code (ru. код причины постановки на учет, КПП). - """ - region: str = "%02d" % self.random_int(min=1, max=92) - inspection: str = "%02d" % self.random_int(min=1, max=99) - reason: str = self.random_element(("01", "43", "44", "45")) - tail: str = "%03d" % self.random_int(min=1, max=999) - - return region + inspection + reason + tail - - def snils(self) -> str: - """ - Returns SNILS number (ru. СНИЛС). - """ - numbers: str = "%09d" % self.random_int(min=1, max=999999999) - return numbers + calculate_snils_checksum(numbers) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f7a19e1fb2513cda5586b0f04d8738b83c38e4f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39477 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
    mFPX!cS(0y9UrjXrw$ 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/sk_SK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/sk_SK/__init__.py deleted file mode 100644 index a14bed0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/sk_SK/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}}", - ) - - company_suffixes = ( - "s.r.o.", - "v.o.s.", - "a.s.", - "k.s.", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/sk_SK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/sk_SK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e87096fc1422cfcdd7e54369a2aec87f0b8fec73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618 zcmah{v2NQi5Ist=YB)CB0vR%PDxd-pk#sG(bns9hD3DHC2u7r9#geF!v=J!~k|9I> zAm31Q&0loNDj-v)ZU)>gnMzU0kS^u$?mgm>cf8}z$z%lWx*eU)5Ws^KJq-G|ePhTC zFkmQ!3`GtC2WG&WD_|~nez=`4LZufBemO=3s2P5iVx2H9JUGNE(R{z4 z@sfV!3eV}1OKc9=7AxE*$7)HAKVd?WJkf-NMQOWf!866ER|c+N<9Jj5a<&-{_WV0< zSMHcy>p2SCren?YW7qDdG0OIzbk4D1kHhy}M?T1@k?mYnJJXGe5W0uAzx^@tuP^?9 H3HH=qr^>He diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/sl_SI/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/sl_SI/__init__.py deleted file mode 100644 index 79d8c1f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/sl_SI/__init__.py +++ /dev/null @@ -1,13 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{first_name}} {{last_name}} s.p.", - ) - - company_suffixes = ( - "d.o.o.", - "d.d.", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/sl_SI/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/sl_SI/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e7e9dfd3cffdf19ea4ababf8eb673598d515102e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmY*WJ#X7E5G5&Db=?GRfeabjrGN@lMBBB<(!uBw6i6m51S3+lY)Mo}+K6lj?ckyR zAitsL+JBKLtAI?IvKer@WNA+y0a6mUdyjZ`$Gf}S-yfmo{2I;vg1c!+Zw9^Jy##Q9 z1QIw!84d|X1Wk}28zdY_emb2l#HH&GZV50S*TYX*EfXPi)MsfO?#b=|zy*>h!~%sx z;Ls5ybW6u~b(78~tLN)=%8g|?&tz2ri&R$dykuq($H{qBtzN9xaiSke9tN182q29o z0tI*Fia-R%{-7SRHYH>Ah_OtGMJfUBG4^G_)20}(N3qfwx2Asje^F_Epk33#T}7uV zlhi6Zl^H*$r}qHbp2^74EQz!#dUB>L4VE%r(lj}vMQNuhe;2%YOHE?s>w-sf{#hCt z^SRU%g4)3u+83uLWhWmgV@aM^#)6`3XVe-OK4YGN*`O_P#@@HdcH|s-SMGs+0tKwp(W~FyW9)tZ`Uin)qy7Pm CvY%@J diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/sv_SE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/sv_SE/__init__.py deleted file mode 100644 index 9ef04c8..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/sv_SE/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}} & {{last_name}} {{company_suffix}}", - ) - - company_suffixes = ( - "AB", - "HB", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/sv_SE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/sv_SE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 61fdafa9b74a303a00f477e8d9f08169ba914541..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmah`v2NQi5Is_|YZ!LZ0vt5X zjzW*)&@a5eS9Q6-JJ~!vO_(+`W2q=h%OaWPEGwvWboJ`#v_fCNs{Z+XNv1Lt z#7Hw0DO-^5kHGqMBqBr7I8rii$bmFuI2YNRB=G^s3p173hvB>TM8`(F%~^EJ4uvKY zb}SUJkDTM0G|h>g)BUf6(m0C^rNg{%=DOh9Vf1So&R~iCjrOncvgf^N-}nR7x3^BS z8+g?kRU2Q{?muo-^=gq*zO?AR^KtFSCso(1*R1OmFFl0NAK1QacTxNI&pWWmy?Oxa C?YJfY diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/th_TH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/th_TH/__init__.py deleted file mode 100644 index 90bc76a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/th_TH/__init__.py +++ /dev/null @@ -1,126 +0,0 @@ -from collections import OrderedDict - -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = OrderedDict( - ( - ("{{company_limited_prefix}}{{last_name}} {{company_limited_suffix}}", 0.2), - ( - "{{company_limited_prefix}}{{last_name}}{{company_suffix}} {{company_limited_suffix}}", - 0.2, - ), - ("{{company_limited_prefix}}{{last_name}} {{company_limited_suffix}}", 0.2), - ("{{company_prefix}}{{last_name}}", 0.2), - ("{{company_prefix}}{{last_name}}{{company_suffix}}", 0.2), - ("{{last_name}}{{company_suffix}}", 0.1), - ("{{nonprofit_prefix}}{{last_name}}", 0.1), - ("{{last_name}}-{{last_name}}", 0.05), - ("{{last_name}}และ{{last_name}}", 0.05), - ("{{company_limited_prefix}}{{last_name}}", 0.01), - ) - ) - - company_prefixes = OrderedDict( - ( - ("ห้างหุ้นส่วนจำกัด ", 0.3), - ("หจก.", 0.2), - ("บจก.", 0.1), - ("บมจ.", 0.1), - ("ห้างหุ้นส่วนสามัญ ", 0.1), - ("หสน.", 0.01), - ) - ) - - nonprofit_prefixes = OrderedDict( - ( - ("สมาคม", 0.4), - ("มูลนิธิ", 0.3), - ("ชมรม", 0.2), - ("สหภาพแรงงาน", 0.1), - ) - ) - - company_suffixes = ( - "และเพื่อน", - "และบุตร", - "แอนด์ซันส์", - "กรุ๊ป", - "การช่าง", - "ก่อสร้าง", - "บริการ", - "เซอร์วิส", - "กลการ", - "ซัพพลาย", - "คอมมิวนิเคชั่น", - "พืชผล", - "เอเยนซี", - "เอ็นจิเนียริ่ง", - "คอนสตรัคชั่น", - "วิศวกรรม", - "วิศวการ", - "คอมพิวเตอร์", - "พานิช", - "ขนส่ง", - "เฟอนิชชิ่ง", - "เฟอร์นิเจอร์", - "อุตสาหกรรม", - "เอนเตอรไพรส์", - "จิวเวลรี่", - "อะไหล่ยนต์", - "ภาพยนตร์", - "ยานยนต์", - "เทรดดิ้ง", - "การค้า", - "แลบ", - "เคมิคอล", - "อิมปอร์ตเอ็กซปอร์ต", - "อินเตอร์เนชั่นแนล", - "บรรจุภัณฑ์", - "แพคกิ้ง", - "มอเตอร์", - "โอสถ", - "การบัญชี", - "สโตร์", - ) - - company_limited_prefixes = OrderedDict( - ( - ("บริษัท ", 0.95), - ("ธนาคาร", 0.03), - ("บริษัทหลักทรัพย์ ", 0.005), - ("กองทุนรวม", 0.005), - ) - ) - - company_limited_suffixes = OrderedDict( - ( - ("จำกัด", 0.85), - ("จำกัด (มหาชน)", 0.15), - ) - ) - - def company_prefix(self) -> str: - """ - :example: 'ห้างหุ้นส่วนจำกัด' - """ - return self.random_element(self.company_prefixes) - - def company_limited_prefix(self) -> str: - """ - :example: 'บริษัท' - """ - return self.random_element(self.company_limited_prefixes) - - def company_limited_suffix(self) -> str: - """ - :example: 'จำกัด' - """ - return self.random_element(self.company_limited_suffixes) - - def nonprofit_prefix(self) -> str: - """ - :example: 'มูลนิธิ' - """ - return self.random_element(self.nonprofit_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/th_TH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/th_TH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 17f7a327d9e689af4abd2d94425ada8040cbf308..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4305 zcmcInTWl0n7(O$5>Gry{B63p}ih+gDl}ij1A{R~YMU+T<*q6!Dowf^msk1wTwl)H( z0TC08KrI+-A&ry<14`rUvropCHarkEF&SeFAta`x_`;Ll|DT!JZo5HzVA9T>bN<`+ zfB!#c&ivNcSSRSZU3d81W+DFMiE|4$zq6Y$7!pa5RMH}%y()ub=2W_)qKB2=+Y zB>jUT8PNR`K4}y8^#-Fg4`>oqO7-sKs64^+7pdf&($O<}o1TFAR&E@r>P zd`Rdbt|UcVRfXE#R$%cpmiTwaFU2u2W5h2L17R zXIzVMgEOwfxX~HcW8Bo+5N$Mwl4#wy+PAmAzay9FNo0GqbSjf7=t-@|&^uGd1_t{3 z(}{dR%O*1Vz(8c7Uf%3vz55r3>H2k7RP8&sP_3%FvYPAVDFKWS&>A%aS?ya{Hm&NJ zm7%xkKlI9C7lCVu2y+r&sORKcqvS9sl6F>^eQ!=u>> z^$MX~JYid7wso^&)u46uBj7Kw7_uVsiX?B_);G8t z4dg*J>BqLtu>Dos-P~5Wei3qnU0=4TIM4xu_(QN^32vRaoRrpYy9uez3`2iEQ4S=;)YbH^0LIqPI7L!)efddW!(Yd`@+XE+oU*IdH5 zPq?u`%vG=QW(x}u9yZ{?v6nW48i9cW1^|JUfXel9c(kQ!AX$|#ktzNlMEEP_dX9i9 zz|ScE!HMjy+e{2Z$lw;^8+M#CS+x8u964kG%?&oV!o(ofq;yU=AwdN|5ZY0?#ds3& zoy@4EPnm1xU|}+ua^|)Yh2%^oe2w8EQBZ`xQHSbzLZaQ2E#l>hEI3yJh}t?tmQ#cc zP(bC3vv!gf*t*$F`0tvxOAP36XoLBJ0G8vPt5LdBCxJ`irdT)aA}kSQjN!_|#{EjdRcy=Xl z0ior5nY0JFPvXULD*+g~5!}majhSz7 zZvZvcAi3mmN41l*P>aDoI{|yLUlk2wz;ou z>no27+9$vgkYeDb>+NImp_tQOynz)@asnvy1#bs%_67u`jg&D>I-Q5Y!hkj)MCEPt zMNZ1w8OGUYDALu**Wa|2%FP3NC$d4UfDiYpUDm6gK0IJuCXG#1oj5%~D3Fk>CC1zc z#j_FTWmO;tve%%6!hn6~f+BNpQhT0~~1&>m7wyCe>l&aJb>gpc2v(EjipnE zVm-Zu?p$_D+osL2JWh=pdlDT-5?y*e)|oh>8!;I1p*SCNFvJSo+QD~XnwHAqq@=a= z^p=_`;q|?Yux!*;Dd+~+Jhj1bF%uHai|&S3Pls2JY`xpMZMt>ao$&Ul(Dqq~#d9gv z>u~ImTv4p~PsZF@82APer6q16l}9r@Z_tAyt6(f5&BfI<`&KUCq|#Lu#otuj1>=}rWXYgksMruBV7^zSIG-Davo?G^`=~vHwbm7@@ zAqOqiT13q*iZ{V{2uZf(C4-Z2&0!DQ@@hD#xhzw0!uRHtc~T+&SI z7&mCzM`j{TUwoQo&{kKf>C73KL?LgyKwPe*C2w2tibgMUV+F~4`GR54i^*6@w^!&E z!EIdDft#H_KKT}eB!2<7L2<8X>5SS`TQ}=#4hN6#d$dL@X`NAPXrXpVaLT{v(PFXe zwHY-)D>ciovUsK?DkUE(BC^31MIc)7sD)R2q#WRtnI?areZ)5_@H5lk5A0R0@no;E zaJF-#^)d8zGFuFEe>704@5rUo*cDT`Y+iCBSXK(ZB|o6u${1^rk+h{}`$=f0B=}8Z j1E#d~=82pcpQ0$gi`Kuy`p3azin8->=_st z=n7F|hN#Jm7jqTo;lgqo--dE7F72Ka6Hb{7>MELWZ5F#q%n?H#rpPlW_RPX?O<9$C zIOz(9@-SqQB>{6nDPreB#HpVY&bq1-3h9JAg5I?giNKFo*R@I;An{`cP__VKLB~<0 zw*l_PepKIV0#FeEJflU`%yLQwB4#8P`GCd#J-Jy6_0*6BIf;27MOvG_$Vq3yk_m}; zpQJ@T5Xo`p@Q7qQX9uYtjQm@ckzd`pYFO>d_9c&cgY_1X|Bxb`^$!TiiB str: - """ - :example: 'Peak Games' - """ - return self.random_element(self.large_companies) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/tr_TR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/tr_TR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a93b101cd23c7a5b59590e4384a2c703a6105acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3022 zcmai0%WoUU8DBm`F|uq*jq9W>+D?)pDGNwMA3&U-D6o`hDv@Oo;@X9IA%@(cG~UOs zvonl$Q=vW>aQ_4M5JOtdvg|B+u+ z@_e84b4`bb^?|H{H7hOtj=*B(9ZL}*`fPMKrkZC5TJE%#yOQy%vK|44(#t{aM+NjCn6XH@QdcAu< zT=!i|@*xg#o$@xEZ*h_wyA*8_k8%{hP|^~Lru+pLE#eY~c~Q+`Arn|x_L!g(?VrU) z5Rh6!_wayI2d7oA;0(c3w7eT)2kj9bOIM_o9lFn1AioQm_cqX8{Dn^-ga9R{{`44Q zAy;5$lO@M8)0kO#6BbP$+su`yH6nqE6c3X#H#u{3`1d!^Z!vY?Zx(vK8`WAq;ZJCQ zQTC8lA2Az`m`|eBMG zT~up!w@_;W+O!RtRsggP_2eRm13DZQpF~w_>oHP@)~QNP+d7F5eC|pcM`#n!o1B45 zo>Z>iryfA)(#(x59AbgCsTX2dyWD?_;Q%y{r(wH;$8!n$AxN2_0BlFdbT9` z>7p4BS2fd*L9|2maUg@NF)fG@wB~SAj%m-Whh3=tTGk$_gLA;42|*7d9O@#s&CaFY zy2us_vQ9)mVI%4)=`M~>(&|H>x?}>CQ4v|h84>^Ls9K9Za~;9~`GFIkPpHmJ`~s^M z$iWw_egyb&RCl=hfcOx)U)8w{2n1R{EhiXrXr4K5v;H+7=`|Pf>}wKAZ){-B$%skb zHRT(iqsej#nc=;QeH_yCwJtzPhLE{v$>P`vG1`C*QDw_gqZUQ{1()huutP!!Dn4;& zTHVInR%D|IDmevG1Y||aJ;qg&>!#J--16DF-06y&y2t#!zR107R^sTtDX?E{r1VKY0 z706nAt*NlZXQbj%0mrj7EdizVfwgrSRQ0cQu-3ZG8Pp-qb94ik*`LpcMHPIZ$AL&u zJ2|tl)@uU(1{g959s-jqRBX}6%Q{i>?c?|y7#Tq&r81lWP^Y*F5En8zMmt1cR{~vX z!fOed8&F@=&H;r6LFz`wXoqp&39vQ5K3GOwx{o=IzW)FWvVC-)0p+U5=X_9AOHL#8 zeYy6PS%LM8uuS;2dDIVO*25MVldB$3klJEEZNX4o*aH(#073RSkv{@kT{2d@mtho) zX+pWgN_5MDe$u|1s*82|Y%?D^V|qkX3+ErnAUUfqNHqwV>(it4sC-}8a0N1lE40_T z-kTl?x}H`5;F9~p0!Yt(YIafoukOO-rSW^?$^33E1*@~UC|^;x&vVHxOjFTMmr(xu zkUYiS*d-sL_c{b9w+-V^@ZRNiy_nwO*teP2hjG9ozDR43+sh$`k^qLYG7#w~PzKPq zhm8Z~k%nO6fOz<6!7X$V#R2nwx&HHCGy*Ef z+87TVyibD02s)8B;E)~xgGN4KH3aWldyRgd`c(A$>*FxJIqzK<-2tom%=)$UPr%hc z@#Hh(qH3(%{<`+|SGBkQ{Hw3udH<_--v4{;?w8fOuVCAFP_L%dz8(_${dB3{_n0kR z0?*6+{_iAq)%XZ+izCK8ECQ|&pRQb=B}tH$0>QbOA^u`;#jRXTLwXd|momHsYAk+k zTolW-%Cq*x^04qm<=O7VR;lu4<;(Kzi8Au(OD{ u!tIr@Z>zt~eE$u93pP}-0_D&}sZc2V!}!@Zl}`$V5B~Uve;ewq&;18xT?Cu} diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/vi_VN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/vi_VN/__init__.py deleted file mode 100644 index 480b74d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/vi_VN/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - # Source: https://vi.wikipedia.org/wiki/Danh_s%C3%A1ch_c%C3%B4ng_ty_Vi%E1%BB%87t_Nam - formats = ( - "{{last_name}} {{company_suffix}}", - "{{last_name}} {{last_name}} {{company_suffix}}", - "{{last_name}} và {{last_name}} {{company_suffix}}", - "{{last_name}} và đối tác {{company_suffix}}", - ) - - company_suffixes = ( - "Công ty TNHH", - "Công ty Cổ phần", - "Doanh nghiệp tư nhân", - "Công ty TNHH MTV", - "Công ty Hợp danh", - "Công ty Trách nhiệm hữu hạn", - "Tập Đoàn", - ) - - def company_suffix(self) -> str: - return self.random_element(self.company_suffixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/vi_VN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/vi_VN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 00668f0b1a66c95170616d92582ab08ea428a60c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1107 zcmah|KWGzC7=L%Uq@lKr+DPjl94!bZnA7Ue7ICT2E(XESA;DYQ_{7mllW0fkSX|3#2Xu!S7uzl1R}9_x=C<-gkW8`#d~6i1^tb zT=^v;^gVPU5s!5HIv6`hN4ii#mXH?(B%*nwi(5#K5pgfpsmlu$Ns0de7NiJ4@)5Jk zrcPKPVhI&b^3#?<>>z^jf{yZ{F63jnn3sSqUKDj{OUfrIaV5bxwIZ#{8yh9f^)S^e zQmukluq{WU73})OqPbSBu4n$P_;ux_}88Wv4ftXmELSr1<~$=qX<`fQRQRUi>x9BBTS>ZZDCR(7NK5n zv45Jxh4qnKQYyL}D4$hT!?uX(*`7fxZB5N}4Op=iQt(vEEHK-NoF&^+Gi5@{YROzu zor-7J^iJmXlC*tzu XZN&sZ_=awrCep&}i)TL(s1WrVeI!al diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_CN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/zh_CN/__init__.py deleted file mode 100644 index af94655..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_CN/__init__.py +++ /dev/null @@ -1,95 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ["{{company_prefix}}{{company_suffix}}"] - - company_prefixes = [ - "超艺", - "和泰", - "九方", - "鑫博腾飞", - "戴硕电子", - "济南亿次元", - "海创", - "创联世纪", - "凌云", - "泰麒麟", - "彩虹", - "兰金电子", - "晖来计算机", - "天益", - "恒聪百汇", - "菊风公司", - "惠派国际公司", - "创汇", - "思优", - "时空盒数字", - "易动力", - "飞海科技", - "华泰通安", - "盟新", - "商软冠联", - "图龙信息", - "易动力", - "华远软件", - "创亿", - "时刻", - "开发区世创", - "明腾", - "良诺", - "天开", - "毕博诚", - "快讯", - "凌颖信息", - "黄石金承", - "恩悌", - "雨林木风计算机", - "双敏电子", - "维旺明", - "网新恒天", - "数字100", - "飞利信", - "立信电子", - "联通时科", - "中建创业", - "新格林耐特", - "新宇龙信息", - "浙大万朋", - "MBP软件", - "昂歌信息", - "万迅电脑", - "方正科技", - "联软", - "七喜", - "南康", - "银嘉", - "巨奥", - "佳禾", - "国讯", - "信诚致远", - "浦华众城", - "迪摩", - "太极", - "群英", - "合联电子", - "同兴万点", - "襄樊地球村", - "精芯", - "艾提科信", - "昊嘉", - "鸿睿思博", - "四通", - "富罳", - "商软冠联", - "诺依曼软件", - "东方峻景", - "华成育卓", - "趋势", - "维涛", - "通际名联", - ] - company_suffixes = [n + "有限公司" for n in ["科技", "网络", "信息", "传媒"]] - - def company_prefix(self) -> str: - return self.random_element(self.company_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_CN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/zh_CN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1163fa7aa99d129c038e52af0e0861d1dcdf3d86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2172 zcmZ8i-%nFl9KW|MKQs!Xn9xF$X4d(Qd(_ysw(${-z6Ks4(WO&p=3WF3!cba&F#k;yDv{l5?4QIG0&8&6}B? zoo}~TD|8dAtbDopl;pkC;u0mN;e}3>#$xLi5R#n8*?AXdH@Wz8yxn{bT;AgC7MJ-) zF2==pC+s*)ja3}i$zSDNmJYBYB6iWEs6bf}y2YB@%3TLQ3 z%v$hMGpnUpR1{j$dlNf@q(|`hjJ7zXE++Aq z0eCvAW+Dt!a7YWzsp%rV-%B^NSVX@)h(h;JEbo7pgzBEeD@Byq)YBnjo8%AZhzSvK zU|iWqv6PZ)YPO(ehVbwbT1dX6SX0+gWEMqOR=@`2sNPNBNPwj|Fi5fqjH1Op>Q2o} z;E|=5ghMoZP20?&Ym-0(Q_d9iVp=Ip;b2Z8Ew}ALD~*AsvcAR$31@&-1}?dV!s`?q z+6bUn0!0hJDIu9+PYptesHpYjwA^cgK$$U}8zyDUjWWljd2KPrg7!xBTO$k#-O$&2 z)QM$aANLudgIU}a^?v{`^~@~33H;9jw{L1eQ;bFNaLgzep-Wv~!N~$n4N|A-W&+5- z!67uAWq2sDhwJO<3fM&9EP!Cj^Zg(izKC<64T!~1l)DM4q2w3PdI6GG@}sO^;Cyle zuxWv~+V^OC4=wh-=9wDe)ij#EtK@s}SU-*Y(+{T%!bu>U>cR`r9b|x}Rtf%p;UN|E>uV^*S^_{m_I;aU5qhcJQm@$ACbzypGdG_ra|R$F;5pXy7{aqOJ9#2N?}yC>;TzY)qoLA;#iZpPr7hTVJk}M4w;sIC;?7 z{*lin`EMPCA<13k&hI=mv|yKf=l}PcH#ASf1JGbKm1`u2$K`bkVyoyDJ-+fgZ-0tK z8QuwtEVeeu#PE|>owjDLTeSJSzGl(wxNJMKEx=oHUUd3w?iQ!yZ8H{Uy*^vrCDC)q z*4lE`*4FN8_IkdmJN%_hZt;m(zM@TB&@vw)#YkI@HpI}Ae46tg4^rzw-R}eAYAl2T8)#cCa>gn_+*K^#BVrakCP~u&9YCD z_QDx3YO1R*^B$RSUtcegHl)uS9W1btzlWg*U>$i}^G)F7KbAB6{>sOe_n$+#jx_Sm z_BGC4O!29Pr~3~*-PcGCEPTcBN%IR1rhm68xc$HKGI5mH^LZup+F&)8S&(w=3HFk1 x(~{++8iIhpcvbx^OYb}BV_1@U${)h;+|2X*U)-S=l|S?R@$m02IWkkb{{YaOXC43m diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_TW/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/company/zh_TW/__init__.py deleted file mode 100644 index 4052536..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_TW/__init__.py +++ /dev/null @@ -1,113 +0,0 @@ -from .. import Provider as CompanyProvider - - -class Provider(CompanyProvider): - formats = ("{{company_prefix}}{{company_suffix}}",) - - company_prefixes = ( - "品王餐飲", - "一統企業", - "品誠", - "台灣電信", - "Goagle", - "一統星巴克", - "台日積體電路", - "榮長航空", - "台灣印無品良", - "華中航空", - "台灣人銀行", - "國中鋼鐵", - "海鴻精密", - "台灣鐵高", - "家宜家居(KIEA)", - "天上雜誌", - "台灣力電", - "碩華電腦", - "雄豹旅遊", - "光新三越百貨", - "台灣軟微", - "鐵台", - "一統超商", - "碁宏", - "創群光電(奇原美電子)", - "台灣酒菸", - "美奧廣告", - "AYHOO!摩奇", - "台灣台油", - "達宏國際電子", - "華晶國際酒店", - "秀威影城", - "王鼎餐飲集團", - "台灣五星電子", - "遊戲葡萄數位科技", - "橋子王生技", - "大八電視", - "台灣業糖", - "都亞緻麗", - "台灣來自水", - "麥當當", - "風微廣場", - "見遠雜誌", - "石金堂", - "邦城文化事業", - "華中郵政", - "達友光電", - "中台信託商業銀行", - "台北登來喜大飯店", - "全味食品工業", - "遠西百貨", - "旗花(台灣銀)行", - "冠智科技", - "丹味企業", - "發聯科技", - "台灣雅萊(Y'ORÉAL)", - "古太可口可樂", - "榮長海運", - "達廣電腦", - "華福大飯店", - "立三電視", - "星燦國際旅行社", - "衣優庫(Nuiqlo)", - "德汎", - "台北眾大捷運", - "共公電視", - "明陽海運", - "雄遠建設事業", - "台灣迪奧汽車", - "台灣地土銀行", - "天中電視", - "月日光半導體", - "塑台石化", - "樂可旅遊集團", - "信永藥品", - "輝燁企業", - "興復航空運輸", - "豐兆國際商業銀行", - "平太洋崇光百貨", - "神漢名店百貨", - "台灣士賓", - "賓國大飯店", - "業商週刊", - "台灣BIM", - "湖劍山世界", - "合作庫金商業銀行", - "台北邦富商業銀行", - "愛味之", - "邦富人壽保險", - "律理法律", - "心安食品服務(斯摩漢堡)", - "松黑", - "台灣生資堂", - "鮮爭", - "達台電子", - "聯燁鋼鐵", - "華聯電子", - "瑞輝大藥廠", - "隆豐大飯店(北台君悅)", - "資華粧業(生資堂)", - ) - - company_suffixes = ("", "有限公司", "股份有限公司", "資訊有限公司") - - def company_prefix(self) -> str: - return self.random_element(self.company_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/company/zh_TW/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/company/zh_TW/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ab4c5c49c33f564bd03b7a5fb9705902a132d7f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2883 zcmZuzU2I!b628}V($J;N3Kl5v!k>2Km9`e_N))tOsjN^z?52oC+9fZRiEn619EWSW zB86(>G>-q0*rrL`G;VFz`436#I6sc{SDR-Nl zrf!SV+}-B1DDAx_XWOWy`@~SY^@NJ%t@70uKKZ1_?HY6p4A}=&rMK_nYu6q~JicBo zu{wPZgF3n4*CwO-d|c0MaY3UrtnCyURX<%=_q7WRwwe*jvApKb>2sCFVYc3W!R`2< zU-5NFw5qL?n|ffBOysrE zEJVY?LXX8Z8>Mwa4}E|=&})>-dSsYo$3;M?C@AUCsvh4F)_3;w?TWTlBb#HbA;)+0 zwVS@j(agp!*+}8F5cs|tdh5;C&wpPH3*GsZMk%7trP!)rp1UNGIf$QYXm?j2E<8QC8Te$$;*Uh|>hZbSB>@h1qUIo2{{}<(4p5B~5A@JgX2e9Eh)pNQY6hDZqwd^$Z*fvPDB%ERkjLQ94~}9873S2^tyZV4^Eg z@D2vGsWi$sOy`$KU=1v=#hI4)0i#+`2=wa*jq)9BucAYUEqJMovEVArZ~GoXzvTsO zdKdn<4gKyilmoMr+2#Va7}fn50|2P6rHgtnK{6vEMI(!FTsjjZ<1>wN6bXW{38d=R zcj(liunVb-MMcqkcwE3JWEx1rmXlCq*l1uF7h#2rC$-s1qc%onQe=Kf&uwC!If(+x zBvI6JX)cm%Az_q&Vld=WnXHw2vE_B@$iC9zEs%fXc{kMM&FZd2f(KYEmj z3N{Sn3l;@(r7gxDoRK?U0}>;^v9^za5@1COE(**6wcr@qe2uTLY>teslJXkF)aC2@ zsNand@h(-{qXhv)BcZ7pxSBy1w`^b;trG% zl81GzWO%FBZ;fHen)F95k0%k!@i{sIpQ^C$X|!DoB8Rq?AlIOB6cnsmEp>_er>U?$ z3&sDOz~_J?WF*_D9Q;xYww5EU;(EKPczx`K4lQU<*BUmu@S6c3C;7LU^3>%ooB{B+HB$?Z~X zUbpv>;&Oa!d$;)jBhzK2$7^%-^{DPaRzx_hC`$vUb!v?DheN zOR?MQC+&8Z+v)4a=ZEd~k9>}PW93AzTXi|S9u)`92RRaxo8qaPJziBk1#2skdKzvj zf{qV={9=JO4-TTE(zmBy9=>qTqR403zq0)1UYA)q^Dh~nEOOhc8S@Vk+=K}%aF^Ar zBDT4edgouo4B0%hihbjOzn?n(EW-bb`UEUsy*xNy-80Lw{9oz!KeW4K`PI str: - """Generate a credit card provider name.""" - if card_type is None: - card_type = self.random_element(self.credit_card_types.keys()) # type: ignore[assignment] - return self._credit_card_type(card_type).name - - def credit_card_number(self, card_type: Optional[CardType] = None) -> str: - """Generate a valid credit card number.""" - card = self._credit_card_type(card_type) - prefix: str = self.random_element(card.prefixes) - number = self._generate_number(self.numerify(prefix), card.length) - return number - - def credit_card_expire( - self, - start: DateParseType = "now", - end: DateParseType = "+10y", - date_format: str = "%m/%y", - ) -> str: - """Generate a credit card expiry date. - - This method uses |date_time_between| under the hood to generate the - expiry date, so the ``start`` and ``end`` arguments work in the same way - here as it would in that method. For the actual formatting of the expiry - date, |strftime| is used and ``date_format`` is simply passed - to that method. - """ - expire_date = self.generator.date_time_between(start, end) - return expire_date.strftime(date_format) - - def credit_card_full(self, card_type: Optional[CardType] = None) -> str: - """Generate a set of credit card details.""" - card = self._credit_card_type(card_type) - - tpl = "{provider}\n{owner}\n{number} {expire_date}\n{security}: {security_nb}\n" - - tpl = tpl.format( - provider=card.name, - owner=self.generator.parse("{{first_name}} {{last_name}}"), - number=self.credit_card_number(card), - expire_date=self.credit_card_expire(), - security=card.security_code, - security_nb=self.credit_card_security_code(card), - ) - - return self.generator.parse(tpl) - - def credit_card_security_code(self, card_type: Optional[CardType] = None) -> str: - """Generate a credit card security code.""" - sec_len = self._credit_card_type(card_type).security_code_length - return self.numerify("#" * sec_len) - - def _credit_card_type(self, card_type: Optional[CardType] = None) -> CreditCard: - """Generate a random CreditCard instance of the specified card type.""" - if card_type is None: - card_type = self.random_element(self.credit_card_types.keys()) # type: ignore[assignment] - elif isinstance(card_type, CreditCard): - return card_type - return self.credit_card_types[card_type] # type: ignore[index] - - def _generate_number(self, prefix: str, length: int) -> str: - """Generate a credit card number. - - The ``prefix`` argument is the start of the CC number as a string which - may contain any number of digits. The ``length`` argument is the length - of the CC number to generate which is typically 13 or 16. - """ - number = prefix - # Generate random char digits - number += "#" * (length - len(prefix) - 1) - number = self.numerify(number) - reverse = number[::-1] - # Calculate sum - tot = 0 - pos = 0 - while pos < length - 1: - tot += Provider.luhn_lookup[reverse[pos]] - if pos != (length - 2): - tot += int(reverse[pos + 1]) - pos += 2 - # Calculate check digit - check_digit = (10 - (tot % 10)) % 10 - number += str(check_digit) - return number diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e085e6b535dfd35ccb2503936b2c5d919a4a62df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7883 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/en_US/__init__.py deleted file mode 100644 index 07d1f3a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/en_US/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .. import Provider as CreditCardProvider - - -class Provider(CreditCardProvider): - """Implement credit card provider for ``en_US`` locale.""" - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f3be5f497df08ae4ae244063a50655236cec7677..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/pt_PT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/pt_PT/__init__.py deleted file mode 100644 index 00ad9e6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/pt_PT/__init__.py +++ /dev/null @@ -1,299 +0,0 @@ -from collections import OrderedDict - -from faker.typing import CreditCard - -from .. import Provider as CreditCardProvider - - -class Provider(CreditCardProvider): - """Implementation of ``pt_PT`` locale credit card - - For all methods that take ``card_type`` as an argument a random card type - will be used if the supplied value is ``None``. The list of valid card types - includes ``'visa'``, ``'mastercard'`` and ``'maestro'``. - - Source: https://bincheck.org/portugal - """ - - prefix_visa = [ - "400131", - "400190", - "400817", - "402192", - "402947", - "402956", - "403005", - "403006", - "403007", - "403008", - "403271", - "404520", - "404530", - "405758", - "406170", - "406475", - "407548", - "407549", - "407575", - "408237", - "408239", - "409842", - "409843", - "410000", - "410344", - "410345", - "410553", - "410557", - "411635", - "411700", - "411701", - "411869", - "412487", - "412488", - "412489", - "412657", - "412782", - "412990", - "413014", - "413793", - "413871", - "415158", - "415159", - "415170", - "415171", - "415174", - "415175", - "415194", - "415195", - "415238", - "415272", - "415273", - "415403", - "415404", - "415405", - "415440", - "415441", - "415569", - "415920", - "415961", - "416952", - "416963", - "416970", - "417005", - "417091", - "417092", - "417337", - "418847", - "419022", - "419682", - "419683", - "419684", - "421149", - "421510", - "422080", - "422240", - "422241", - "422414", - "422417", - "422597", - "422869", - "423392", - "423393", - "424118", - "424184", - "424208", - "424661", - "425509", - "425510", - "425906", - "426150", - "426360", - "426370", - "427256", - "427304", - "427729", - "427770", - "427867", - "428139", - "428184", - "428185", - "428186", - "428187", - "429711", - "430240", - "430241", - "431926", - "433390", - "433391", - "433511", - "433512", - "433513", - "433599", - "433618", - "433622", - "433966", - "437886", - "438257", - "439070", - "440637", - "440644", - "440645", - "442664", - "443977", - "443978", - "444224", - "444227", - "445961", - "445962", - "446140", - "446144", - "449389", - "450915", - "451156", - "451166", - "454755", - "455250", - "455290", - "455292", - "455658", - "456811", - "456812", - "457031", - "458058", - "458059", - "459432", - "459433", - "459449", - "460340", - "460341", - "460342", - "461247", - "461248", - "461249", - "462731", - "462732", - "464406", - "465964", - "476066", - "476067", - "476068", - "476069", - "476070", - "476071", - "476329", - "477920", - "477921", - "477922", - "477947", - "477989", - "478062", - "478063", - "479702", - "479736", - "483088", - "485672", - "486449", - "486457", - "489434", - "489485", - "490772", - "490830", - "490831", - "490832", - "490841", - "490863", - "491213", - "491546", - "491547", - "491613", - "492194", - "493402", - "493480", - "493800", - "493801", - "493830", - "498800", - "499968", - "499969", - "499986", - "422239", - "422041", - "464409", - "464408", - ] - - prefix_mastercard = [ - "510122", - "510123", - "512556", - "518772", - "519744", - "519774", - "520342", - "524552", - "524878", - "525625", - "525808", - "526819", - "527014", - "528024", - "529119", - "530267", - "530770", - "532355", - "536468", - "541171", - "541557", - "542081", - "542098", - "542858", - "543099", - "543116", - "543123", - "544051", - "544052", - "544233", - "547260", - "547459", - "548168", - "548169", - "552727", - "552755", - "553057", - "554506", - "554517", - "554518", - "556660", - "557836", - "557882", - "557883", - "557888", - ] - - prefix_maestro = [ - "501654", - "501659", - "670530", - "670811", - "670812", - "676938", - "676938", - "677393", - "677707", - "670835", - "670817", - ] - - credit_card_types = OrderedDict( - ( - ( - "maestro", - CreditCard("Maestro", prefix_maestro, 16, security_code="CVV2"), - ), - ( - "mastercard", - CreditCard("Mastercard", prefix_mastercard, 16, security_code="CVV2"), - ), - ("visa", CreditCard("Visa", prefix_visa, 16, security_code="CVV2")), - ) - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/pt_PT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/pt_PT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b1387dd96036357564ab796aee112d8d45403f78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3361 zcmZXXPmJ7F9mhR8v$K=g-85-QrBn?vDpIu)*|DGfp6yWeKoAI_Y^oA+m;+w#*t_dy zW<1!QC3`DU#hp_*R-8cL&;tjK94o;gNVzZ)C&VGQZ335``2N0cl2kBS`QzXF^ZWOH z@A>Utc6W!4{QfxnNWJMe|D>>fY_9qIeY||?Bg)(?&7_h_olts z=D6Q+Hk=@Kl7o&T9K^ofmbHf4`ix5Qn$%UbeThI)A!h zM+`owtFsb=CU(AkZm)&szrxF>PT`C@xij9#JLB#NocV2M+ylGdCfEb}8&0v6Z{j%+ zck-=#@P|u}dREWzMm}WEcCq{EnS4O4n`J%x5tZ}oso7E>vG2muyoz3%VMoq4ap|)R?P<2$e%cjWP@)+6*w^=S0 z(-QJoHeD8O*+BC_HHXrD_a6GEWz&kU=q~eD`Wh-M=acC&FJ#WUXJwPUdwBRAd7ouX zi^YM1Xn|+BZ7iC$uF$e?gZoLftS7}S_q1&n&8^Ys2J{c{lx?P@RQ`*`4 z>#84mo*(#@iATnMBvgK)$RxCKqK(Lb=jkWOs7b}*6o5e5ol6;Ln8_9PDJ4;Y}|_wXZwFkDmS`JUFcUu&7~`zByJ%yK*^{`r1v zM6a*HnBze4LuA`-?0gl)V%Jv*^Wz7ePkTX>&`uCDUSIo+PssV&#tHdFf5dr^>5ul4 zwVYU41+=eKM0+6hYouK4gLZt#{6h{I56F15w(;nMd50HzyiH#+ugKPd6* zBn;RON?stdu8bGZFQMd7DB}z^s>C6b_=KXzV1YRf5?5qA`Y)9ELYXg= z`5^Nv6g`m%SSL|r_mz<%A@~zBY#XbQDVk!P!_&Vp8mh9Pe%8 z&GU_x3|ArAon1NnIkzjvOa!};o$qtj|ujM@r!wORIXbnnFrZonTElXf&KCv~-03rAHu+CMAiXQOF( zG+LbF(l`(HeKl&zwz#>-CJ(Zcq8T0I0$GnRiFfE`^fl`v-bhDjTF%QhP4^e)yuk7? zfJ4ngJU(&0+}PS2JbV34_l^F?KYsSJ{{Hp;RW%m z^44#X&*q;WebIk%HNca=U?)7^WXhR QuhW10+PD7W$P1_c7xPA#mjD0& diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/ru_RU/__init__.py deleted file mode 100644 index 1447dc1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/ru_RU/__init__.py +++ /dev/null @@ -1,115 +0,0 @@ -from collections import OrderedDict -from typing import Optional - -from faker.providers.person.ru_RU import translit -from faker.typing import CardType, CreditCard - -from .. import Provider as CreditCardProvider - - -class Provider(CreditCardProvider): - """Implement credit card provider for ``ru_RU`` locale. - - For all methods that take ``card_type`` as an argument, a random card type - will be used if the supplied value is ``None``. The list of valid card types - includes ``'amex'``, ``'maestro'``, ``'mastercard'``, ``'mir'``, - ``'unionpay'``, and ``'visa'``. - - Sources: - - - https://en.wikipedia.org/wiki/Payment_card_number#Issuer_identification_number_(IIN) - """ - - prefix_visa = ["4"] - prefix_mastercard = [ - "51", - "52", - "53", - "54", - "55", - "222%", - "223", - "224", - "225", - "226", - "227", - "228", - "229", - "23", - "24", - "25", - "26", - "270", - "271", - "2720", - ] - prefix_mir = ["2200", "2201", "2202", "2203", "2204"] - prefix_maestro = [ - "50", - "56", - "57", - "58", - "59", - "60", - "61", - "62", - "63", - "64", - "65", - "66", - "67", - "68", - "69", - ] - prefix_amex = ["34", "37"] - prefix_unionpay = ["62", "81"] - - credit_card_types = OrderedDict( - ( - ("visa", CreditCard("Visa", prefix_visa, security_code="CVV2")), - ( - "mastercard", - CreditCard("Mastercard", prefix_mastercard, security_code="CVC2"), - ), - ("mir", CreditCard("МИР", prefix_mir)), - ("maestro", CreditCard("Maestro", prefix_maestro, security_code="CVV2")), - ( - "amex", - CreditCard( - "American Express", - prefix_amex, - 15, - security_code="CID", - security_code_length=4, - ), - ), - ("unionpay", CreditCard("Union Pay", prefix_unionpay)), - ) - ) - - def credit_card_full(self, card_type: Optional[CardType] = None) -> str: - """Generate a set of credit card details.""" - card = self._credit_card_type(card_type) - - tpl = "{provider}\n{owner}\n{number} {expire_date}\n{security}: {security_nb}\n{issuer}" - - tpl = tpl.format( - provider=card.name, - owner=translit( - self.generator.parse( - self.random_element( - [ - "{{first_name_male}} {{last_name_male}}", - "{{first_name_female}} {{last_name_female}}", - ] - ) - ) - ), - number=self.credit_card_number(card), - expire_date=self.credit_card_expire(), - security=card.security_code, - security_nb=self.credit_card_security_code(card), - issuer=self.generator.parse("{{bank}}"), - ) - - return self.generator.parse(tpl) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5fb53491be620129145e9cbf6231550254f4b9a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3286 zcma(TO-~%jwWoW&2j+tr@PJ9&HVb%&Jp%(CY|FB=!SMz=i#IWAX-7$#W~v4n`eRbv zgZW$$$p`Og%?Vc81Ii&H!jXK~AFxMDdl`f!CZ()G6z##cS>s&xlvmx;fXN=VrF!+g z>ecI4@4c#TT3f>$`@Ra#DJ>lLADd_bUvoYx0KtT}JXx^d{lPT9ZfacmY_&_(of+=`=}z(5yptn5YN6JIgD^s~$*5(1|DchDWz zDk|2nZiyv3cwz~nCsvwK6Uzn>r>00%`rXGpFpLox*OtBce7=_o`TQ^gBMe+)puoT=1J@b2L3z;NL4gN3 zZ;M9;I4njW&F#1A7C95*}~AMOl-H8)147vOIB1fyZoCKw@I#r zSB%H724<&X*TfaPSWyU;5ZD2>n^S8y#baF3r$M6Fg}=7kx3W@Jh-pbWWUHh>mt6xZ zD=MV>Y1Z<ViE$j1ZYncEIy3SIc?JM;=uF}XUPifF~ltx?(+@yZT z%S?nOBqtV5^J2Z5`r(SuWQ%&4=Y-u(G&JLc&>+-Tk%@_E)M@z=cJ3P5cG^tSlXrNI zS58TGo>o5gi}i+#mwHXCmdRbVt(TP}6|9PCvSML()DM5o%^DicSq5Aun!K2sbP;$L z%;A!i)07f1AUHNLZCJVN0@fFDsxqCcEWyR54`+w+Ia9Il)rwr2muIk09;Wxy{=fw-1v2d&&Nt@P2Z*agmF49&w3S_^Ht7>{KX$nmynF=z0B^X7Oo9d_Cxay#mL$zURTWDTZIPruRb|yqcZmih2^l3|N1!*C zl|{+E77|V3^abFu6hfme-fZ;lTGsDrtSNLGH(_0su=YR`r=!kt*d#1p2)jk70B-~G z2f+Tukv}r-?-^jvB^$8ku}J|u;lAg?zF;HGrOrL;UBCZ^Z}0TiyzOtUaBVl&@4eyU z9sc!+#w7^%R_fW6_51a6=eH)Gsp}8^o$fhoO>Pvo{X3Db3$NPm)mrW!#=HL!@7lUm z%iMg~_bUEdIJ(woBgjRQ8~3&rce?gdBej-m_12Cr!rM1?^p|&Er61N>CJ*Bsu&kcy ztEVp1Qyuk7{q@Yi+lW8W*6@YEK#Gf|zv$Y&|Kh@a=livmUp9J^q41I5c=~;|)0f$~ z{NnoFz^w)c_)Fm}o1EWfe>{6vy6sUJe7=reZAXt!Mp+2dNsRxmLQ zJ!_YN(+yf2mF6lIWak*1fYP?H<43z&7G$0&9Y_C%;4LR@ZW96mc3ql102+eF str: - """Generate UA Credit Card: - Supported card types 'visa', 'mastercard', 'prostir', 'maestro' - - :sample: - :sample: card_type="prostir" - :sample: card_type="mastercard" - """ - card = self._credit_card_type(card_type) - tpl = "{provider}\n{owner}\n{number} {expire_date}\n{security}: {security_nb}\n{issuer}" - tpl = tpl.format( - provider=card.name, - owner=translit( - self.generator.parse( - self.random_element( - [ - "{{first_name_male}} {{last_name_male}}", - "{{first_name_female}} {{last_name_female}}", - ] - ) - ) - ), - number=self.credit_card_number(card), - expire_date=self.credit_card_expire(), - security=card.security_code, - security_nb=self.credit_card_security_code(card), - issuer=self.generator.parse("{{bank}}"), - ) - - return self.generator.parse(tpl) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/uk_UA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/uk_UA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3d6544efd534113d330bd7088c921546cdf7a590..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2756 zcma)8&2Jmm5#Qx5$>s7(5+#{T6o8K6&@?KpEh%avxJCoTaMLtOP{&5SX}el+ALS+Y zgMGVHO??C|U=+?NHV{C_rB!nXR5%Bt=pRt@WT2NNWI)72gQh5Q$c=&0OHQ4)9~5op zkOlU=nR)YOXXgE8-u^S26&d>cO>ABk80Nn|6AtlkK9+&lV>Cu%4aQ_;mZfyeh?$(s z`7~$nW?YW@G;bu#q?|MbSpYt+C5)6Q%4wE~F;^HZd56&ilzzYkwq>!Ks)}Dxrpl7^ z+gL*wX|L;b7g*u#wyWEgYEat6s^u8ETa6K6Ma9~?-8LfP3TW#t<-dvrHiUPuy{Utl zdhmr{Ooz%X294lsxat$52umAJuR057@vrS=6Sr0!pJy2?W|C$~Jgy z>P}qFbtkH)a0-N5dvBO+1DVKj%XL5Uavef1x5JRj4I7u&);cZa+G}fTWy7wk2C9i= zcy79G+gX;Rb;I7M>20-J>!?zvB{`^tk=vbHSFM)4>9q7)b1fCSFtp|%i z!P_TEQ$>!8ZIXN|BsloQDoIgWic4XVfDk*_s#AzW4@Cq8;qj-C|2<}hX@=(zDbRU` zjZSA5u(HeTaLo|7PiV!O{3svLZZeXAZ78j$pJs%~kpkmTFPOLfc>?-V;`VQ%+&F>kJHpKU5@dsf>AdlZaBU}{kRi>KQdUOR@ z2&*nCUwf?_6n~jk|FTFyPM@otcH71-(t^^U=kJs&6o8c;peTQZw z+!D68X;;|YttN>OIZNWcuOtz;O41{q5+QPwq$3L4B#FSwYMP8ILEBPBY7=^vsk(%x zo@09Dkkm$S$TlYNwu&7@a?t!W+f-1{{K&+pnb4CbWPw+hf|!&>m4|-Ot^+-bcaYJ* zFHk++Z$6ycHXK^c6ina#Ub+d*PI7JcCgkdt^ln7FgY71&yOOEbu?@-bnRVNhYMaQ~ zlni}cYIoh6wzW{ZFfTc}i{{#Dy`^p-M{1}ogrz8>jx^#Qv}EYrlA`FA?kY;H-6dlq z%SxkT7+WRyxPQgfo?fDHIRAj*HZvGw#wL&QXL|WF`}$%2{9V4ETf58kbK@U2KWO%+ zN_#i%-}u+WbN#W&z1;oW(b!A9v6uRj#iPkeZ?f{m%A7PrJ~e&JCC4X@ zxl|!Hm}EeyaIRN4cd&R^INvYM92KQrQ93MM0INq+mEKgv7cTXROAp<{;>CX9)ZV50 zmyQaRUZHXz9u^h`rJKDce%mK;OK|%fAIcMezupN-CsG(pY?>Z#}Ebl6RcMA zL{I_@D@0Tj)7Cl$QWTO=l;3t#!w0-Vl8U0)br7f97&Y`;iht#dhs;R@l3XZ)^wS$< z$cMKGru`k$Mn%R)v+MT}OmTq|bdiHA2QLEk7Y4sVr3-YRm$X07pDO1g8167%$6|3| zATX1s?wz^)CMllx_^JMM>E5;5tNrPjd%wKB`k&(L7umvnc|UQG{`=D7sh@e7H~ZPr z$IJVMw|LpR_TJ;?f8}L<-Oo;cEPAsG4}arbz45pxdztrq(f+Fk)}zahi@)$PR|lzh zN`%8ICEzPxPrMMX9-Mvnqu#lT0|w|v+&6Rz9HzdmRx>1Bw+#cJ41ZdVA3aGxu)4M3 zM@wdWwAO}bt+f$$Y^&x2HK^B2pc3w)=?M}Tq=HPW41dxh;NqW9rD5K_6)pzHdI?{F r1$q%Xr(qayEX#h*%zn;1|0Q$b-^|>X%-lDL^K8}2pZ*^Mvv1=6`I!O< diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/zh_CN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/zh_CN/__init__.py deleted file mode 100644 index 8bde079..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/zh_CN/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from collections import OrderedDict -from typing import Optional - -from faker.providers.credit_card import Provider as CreditCardProvider -from faker.typing import CardType, CreditCard - - -class Provider(CreditCardProvider): - """Custom credit card provider for the zh_CN locale.""" - - prefix_unionpay = ["62"] # UnionPay cards typically start with 62 - prefix_visa = ["4"] - prefix_mastercard = ["51", "52", "53", "54", "55"] - - credit_card_types = OrderedDict( - ( - ("unionpay", CreditCard("UnionPay", prefix_unionpay, security_code="CVN2")), - ("visa", CreditCard("Visa", prefix_visa, security_code="CVV2")), - ("mastercard", CreditCard("Mastercard", prefix_mastercard, security_code="CVC2")), - ) - ) - - def credit_card_full(self, card_type: Optional[CardType] = None) -> str: - """Generate a full Chinese credit card with details.""" - card = self._credit_card_type(card_type) - tpl = "{provider}\n{owner}\n{number} {expire_date}\n{security}: {security_nb}\n{issuer}" - tpl = tpl.format( - provider=card.name, - owner=self.generator.parse("{{first_name}}{{last_name}}"), - number=self.credit_card_number(card), - expire_date=self.credit_card_expire(), - security=card.security_code, - security_nb=self.credit_card_security_code(card), - issuer=self.generator.parse("{{bank}}"), - ) - return self.generator.parse(tpl) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/credit_card/zh_CN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/credit_card/zh_CN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f4044f49d4160658bc192c616d42d667b7131c5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2198 zcma)7&2JM&6rcUDz5a?5n-H6z%2foxNO(yIQ3VL8G875gfK*6@+iJVFLUpxr?=`cM4yz}fXz-I$#NaGAtvgbb z_=-|iD*Cg24)N#$(mZ#O=EdG^!8MolRDCJwZ^ooJ8oW$2Ot5xN&)L9Am&>+pmQ;h` zE5uyYL7U>Klu?OxwOYnBkb%{@&G?*a(4}r326DY64Kt zGSb8!xvZB**r$1bN)Vf<`5sIC`0~8wcjN)=(Sm#AAx9p@UTtJpo)@+`H;AlXi)o`c zfP)DTXk$2(7q#eJPc~eQr1lY3(b`O=V%cUfnRD_;<{*(|xtD1&Z<3_Ff|IosC9{w; z%$#cAH09@KDL0q$Q2yi$ytDA0fOihwlT@mdpkigUN~LQIT>&I!78horgkcNkDnz%d zO3u_U6<2jjrQ)JPGmDF}G*DD68xs};4SeG;jqiJbJuI%b zp0#0p_$?){+da`5Ul@5;3pU68M>=fted8ST%42cc=h}ptymy{!gZ-bQl&3ax0hcgQ zZJbn-`HEpAGb?%tTX;`*-PG-sq=s!(H>`B+(|W(#8iBfb6Sl**R4Fb2NY?SKvQDs~ zfk_be+oy3VIlxM32{gK8RbWGHvR=>Y#Ilu=TEvY;y>37g^_ZGeuP>>k8;wTFN2R`3 z>T#S>uj`Wrhg?#r?~w-k2>em6>n`P|V~Trkl%dXqOH)*BDzXr$f7z{wNvNl+5)0Gl z@Q$9-Ju)`{5`)vAiQ&bA5ZLWWiBz<(ktYY(I?=f@f?YN&*0)J`UVkUAm_;nxCfwkn zdP~0A2QbJAIA_a6Jx5HagTpMDwwzwYrB&I`m*jHQUNK82(lfKNrQ7&eSOS-Kn>2j5h4yhH^5VZt2ccy6iZPf(CZT$e`4tg1hbs~pa zkwcq$J97M<*d6)ip3of`dr-Jv=#D2guCHJ3M)z-|*VCQo;a2o;bNXC6dcGT*=){h; zVn?^;+Ogx^_`yzGZpGzxdl6qXva?M zL{KELi=;^4p0E=|qx&A*zJI$DnQBF*HZ$$Wk*0KH7b1i|#X@R?N{Z82ib4a5QZ%)S zfdPjU<=cvCu+s<5rzo140}v?_oY!wDgYg*b37jD~)??nxKfAW9!*X?^f{V`RC&oo1shHaN^OaO`|z?zIpA-=aXMG zLtpRsM1Npc@Fu)q)9Mp3qtHF(}xN l!TJEmj=*u;3pDitP5y;G`5hg5 Tuple[str, str]: - return self.random_element(self.currencies) - - def currency_code(self) -> str: - return self.currency()[0] - - def currency_name(self) -> str: - return self.currency()[1] - - def currency_symbol(self, code: Optional[str] = None) -> str: - """ - :example: $ - """ - if code is None: - code = self.random_element(self.currency_symbols.keys()) - elif code not in [currency[0] for currency in self.currencies]: - raise KeyError("The supplied code is not valid") - return self.currency_symbols.get(code, "\u00a4") - - def cryptocurrency(self) -> Tuple[str, str]: - return self.random_element(self.cryptocurrencies) - - def cryptocurrency_code(self) -> str: - return self.cryptocurrency()[0] - - def cryptocurrency_name(self) -> str: - return self.cryptocurrency()[1] - - def pricetag(self) -> str: - currency: Tuple[str, str] = self.random_element(self.currencies) - return currency[0] + "\N{NO-BREAK SPACE}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e530c8af100df6351a0dd81717b3b13e173f47cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12583 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 str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}دج" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ar_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/ar_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 34e8fc6456de7043c7e39a24a19387dbe3552cf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 827 zcmYjOzi-n(6u$G1$PEqQM-fv*B`XLE$ThGcmK4#22#HP>;^Nwu#HoLT^Eo0BMIEv* zF{UG8Lq&ptzkrn`QHMsBSYTqSl(KZ<&UUKa@O|HV_ui*__kNa2MIg@iV(%3M;7=Ol zpys@|&BX*bz=0m{p(#Nifv3Qc#=wz@bSP(aCLAh;`d8wS0Tb;x4F|46sGYl{Bre5S ztaF$E0!-)tQ|fT*PtcSdi70K!k;jUu3NtFK4RxgG_jG-vR#Pfe^^~>hx}K?(s-DZF zKnaU!VDnkdkC;OkEnae%fVZG`@is5x*?f*XkrK};7voGH=KV`{;D}$m0EX0z3tav9 zIR85TV#tXW#6F>Jdzf6NR^Ws_CLZxgz>-p*x;DY>kop#j_x}i@H z3t5-=)*H0F6#P$n#Ae8MZ5sCTU?*g#HXy+OdF~GC4_P-19@gp)P~_LyIFcw>gZgM!0A%wrc-P3{!EjTUT`Uiwa8~+3P CJH|f% diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/az_AZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/az_AZ/__init__.py deleted file mode 100644 index 4a4638c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/az_AZ/__init__.py +++ /dev/null @@ -1,178 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # Format: (code, name) - # Source: https://az.wikipedia.org/wiki/M%C3%B6vcud_valyutalar%C4%B1n_siyah%C4%B1s%C4%B1 - currencies = ( - ("USD", "ABŞ dolları"), - ("ALL", "Albaniya leki"), - ("AOA", "Anqola kvanzası"), - ("ARS", "Argentina pesosu"), - ("AWG", "Aruba florini"), - ("EUR", "Avro"), - ("AUD", "Avstraliya dolları"), - ("AZN", "Azərbaycan manatı"), - ("BSD", "Baham dolları"), - ("BDT", "Banqladeş takası"), - ("BBD", "Barbados dolları"), - ("BZD", "Beliz dolları"), - ("BMD", "Bermud dolları"), - ("MMK", "Birma kyatı"), - ("BOB", "Boliviya bolivianosu"), - ("BGN", "Bolqarıstan levi"), - ("BAM", "Bosniya və Herseqovina konvertasiya olunan markası"), - ("BWP", "Botsvana pulası"), - ("BRL", "Braziliya realı"), - ("GBP", "Britaniya funtu"), - ("GBP", "Britaniya funtu[C]"), - ("BND", "Bruney dolları"), - ("BIF", "Burundi frankı"), - ("BTN", "Butan nqultrumu"), - ("AED", "BƏƏ dirhəmi"), - ("BHD", "Bəhreyn dinarı"), - ("XPF", "CFP frankı"), - ("JEP", "Cersi funtu"), - ("DJF", "Cibuti frankı"), - ("GIP", "Cəbəllütariq funtu"), - ("ZAR", "Cənubi Afrika randı"), - ("KRW", "Cənubi Koreya vonası"), - ("SSP", "Cənubi Sudan funtu"), - ("DKK", "Danimarka kronu"), - ("PRB", "Dnestryanı rublu"), - ("DOP", "Dominikan pesosu"), - ("ETB", "Efiopiya birri"), - ("ERN", "Eritreya nakfası"), - ("AMD", "Ermənistan dramı"), - ("SZL", "Esvatini lilangenisi"), - ("FJD", "Fici dolları"), - ("PHP", "Filippin pesosu"), - ("FKP", "Folklend adaları funtu"), - ("(yoxdur)", "Gernsi funtu"), - ("GGP", "Gernsi funtu"), - ("GEL", "Gürcüstan larisi"), - ("HTG", "Haiti qurdu"), - ("INR", "Hindistan rupisi"), - ("HNL", "Honduras lempirası"), - ("HKD", "Honkonq dolları"), - ("CVE", "Kabo-Verde eskudosu"), - ("KHR", "Kamboca rieli"), - ("CAD", "Kanada dolları"), - ("KYD", "Kayman adaları dolları"), - ("KES", "Keniya şillinqi"), - ("COP", "Kolumbiya pesosu"), - ("KMF", "Komor frankı"), - ("CDF", "Konqo frankı"), - ("CRC", "Kosta-Rika kolonu"), - ("CUC", "Kuba konvertasiya olunan pesosu"), - ("CUP", "Kuba pesosu"), - ("BYN", "Köhnə Belarus rublu"), - ("KWD", "Küveyt dinarı"), - ("LAK", "Laos kipi"), - ("LSL", "Lesoto lotisi"), - ("LRD", "Liberiya dolları"), - ("LBP", "Livan funtu"), - ("LYD", "Liviya dinarı"), - ("HUF", "Macarıstan forinti"), - ("MOP", "Makao patakası"), - ("MKD", "Makedoniya denarı"), - ("MGA", "Malaqasi ariarisi"), - ("MWK", "Malavi kvaçası"), - ("MYR", "Malayziya ringgiti"), - ("MVR", "Maldiv rufiyası"), - ("MUR", "Mavriki rupisi"), - ("MRO", "Mavritaniya ugiya"), - ("MRO", "Mavritaniya ugiyası"), - ("MXN", "Meksika pesosu"), - ("IMP", "Men funtu"), - ("EGP", "Misir funtu"), - ("MDL", "Moldova leyi"), - ("MNT", "Monqolustan tuqriki"), - ("MZN", "Mozambik metikalı"), - ("SHP", "Müqəddəs Yelena funtu"), - ("MAD", "Mərakeş dirhəmi"), - ("XAF", "Mərkəzi Afrika AMİ frankı"), - ("NAD", "Namibiya dolları"), - ("NPR", "Nepal rupisi"), - ("ANG", "Niderland Antil adaları quldeni"), - ("NGN", "Nigeriya nayrası"), - ("NIO", "Nikaraqua kordobası"), - ("NOK", "Norveç kronu"), - ("OMR", "Oman rialı"), - ("PKR", "Pakistan rupisi"), - ("PAB", "Panama balboası"), - ("PGK", "Papua-Yeni Qvineya kinası"), - ("PYG", "Paraqvay quaranisi"), - ("PLN", "Polşa zlotısı"), - ("GMD", "Qambiya dalasisi"), - ("GHS", "Qana sedisi"), - ("GYD", "Qayana dolları"), - ("KZT", "Qazaxıstan tengəsi"), - ("GTQ", "Qvatemala ketsalı"), - ("GNF", "Qvineya frankı"), - ("KGS", "Qırğız somu"), - ("XOF", "Qərbi Afrika AMİ frankı"), - ("QAR", "Qətər rialı"), - ("RWF", "Ruanda frankı"), - ("RON", "Rumıniya leyi"), - ("RUB", "Rus rublu"), - ("RUB", "Rusiya rublu"), - ("WST", "Samoa talası"), - ("STD", "San-Tome və Prinsipi dobrası"), - ("RSD", "Serbiya dinarı"), - ("SCR", "Seyşel rupisi"), - ("SGD", "Sinqapur dolları"), - ("SBD", "Solomon adaları dolları"), - ("SOS", "Somali şillinqi"), - ("SDG", "Sudan funtu"), - ("SRD", "Surinam dolları"), - ("SYP", "Suriya funtu"), - ("SLL", "Syerra-Leone leonesi"), - ("SAR", "Səudiyyə Ərəbistanı rialı"), - ("TJS", "Tacikistan somonisi"), - ("THB", "Tailand bahtı"), - ("TZS", "Tanzaniya şillinqi"), - ("TOP", "Tonqa paanqası"), - ("TTD", "Trinidad və Tobaqo dolları"), - ("TND", "Tunis dinarı"), - ("TVD", "Tuvalu dolları"), - ("TRY", "Türk lirəsi"), - ("TMT", "Türkmənistan manatı"), - ("UAH", "Ukrayna qrivnası"), - ("UGX", "Uqanda şillinqi"), - ("UYU", "Uruqvay pesosu"), - ("VUV", "Vanuatu vatusu"), - ("VEF", "Venesuela bolivarı"), - ("VND", "Vyetnam donqu"), - ("HRK", "Xorvatiya kunası"), - ("JMD", "Yamayka dolları"), - ("JPY", "Yapon yeni"), - ("BYR", "Yeni Belarus rublu"), - ("PEN", "Yeni Peru solu"), - ("TWD", "Yeni Tayvan dolları"), - ("NZD", "Yeni Zelandiya dolları"), - ("ILS", "Yeni İsrail şekeli"), - ("YER", "Yəmən rialı"), - ("ZMW", "Zambiya kvaçası"), - ("CZK", "Çex kronu"), - ("CLP", "Çili pesosu"), - ("CNY", "Çin yuanı"), - ("UZS", "Özbək somu"), - ("IDR", "İndoneziya rupiası"), - ("JOD", "İordaniya dinarı"), - ("IRR", "İran rialı"), - ("IQD", "İraq dinarı"), - ("ISK", "İslandiya kronası"), - ("SEK", "İsveç kronu"), - ("CHF", "İsveçrə frankı"), - ("KPW", "Şimali Koreya vonası"), - ("LKR", "Şri-Lanka rupisi"), - ("XCD", "Şərqi Karib dolları"), - ("AFN", "Əfqanıstan əfqanisi"), - ("DZD", "Əlcəzair dinarı"), - ) - - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self): - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}AZN" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/az_AZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/az_AZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5704e79307ed7b40e8420311dfd8b4d3725cddb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5393 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/bn_BD/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/bn_BD/__init__.py deleted file mode 100644 index ae3953d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/bn_BD/__init__.py +++ /dev/null @@ -1,231 +0,0 @@ -from faker.providers.person.bn_BD import translate_to_bengali_digits - -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - """ - Implement currency provider for ``bn_BD`` locale. - """ - - currencies = ( - ("AED", "সংযুক্ত আরব আমিরাত দিরহাম"), - ("AFN", "আফগান আফগানি"), - ("সমস্ত", "আলবেনিয়ান লেক"), - ("AMD", "আর্মেনিয়ান ড্রাম"), - ("ANG", "নেদারল্যান্ডস অ্যান্টিলিয়ান গিল্ডার"), - ("AOA", "অ্যাঙ্গোলান কোয়ানজা"), - ("ARS", "আর্জেন্টিনা পেসো"), - ("AUD", "অস্ট্রেলিয়ান ডলার"), - ("AWG", "আরুবান ফ্লোরিন"), - ("AZN", "আজারবাইজানীয় মানাত"), - ("BAM", "বসনিয়া ও হার্জেগোভিনা পরিবর্তনযোগ্য চিহ্ন"), - ("BBD", "বার্বাডিয়ান ডলার"), - ("বিডিটি", "বাংলাদেশি টাকা"), - ("BGN", "বুলগেরিয়ান লেভ"), - ("BHD", "বাহরাইন দিনার"), - ("BIF", "বুরুন্ডিয়ান ফ্রাঙ্ক"), - ("BMD", "বারমুডিয়ান ডলার"), - ("BND", "ব্রুনাই ডলার"), - ("BOB", "বলিভিয়ান বলিভিয়ানো"), - ("BRL", "ব্রাজিলিয়ান রিয়াল"), - ("BSD", "বাহামিয়ান ডলার"), - ("BTN", "ভুটানি নগুলট্রাম"), - ("BWP", "বতসোয়ানা পুলা"), - ("BYR", "বেলারুশিয়ান রুবেল"), - ("BZD", "বেলিজ ডলার"), - ("CAD", "কানাডিয়ান ডলার"), - ("CDF", "কঙ্গোলিজ ফ্রাঙ্ক"), - ("CHF", "সুইস ফ্রাঙ্ক"), - ("CLP", "চিলিয়ান পেসো"), - ("CNY", "রেনমিনবি"), - ("COP", "কলম্বিয়ান পেসো"), - ("CRC", "কোস্টারিকান কোলন"), - ("CUC", "কিউবান কনভার্টেবল পেসো"), - ("CUP", "কিউবান পেসো"), - ("CVE", "কেপ ভার্ডিয়ান এসকুডো"), - ("CZK", "চেক কোরুনা"), - ("DJF", "জিবুতিয়ান ফ্রাঙ্ক"), - ("DKK", "ড্যানিশ ক্রোন"), - ("DOP", "ডোমিনিকান পেসো"), - ("DZD", "আলজেরিয়ান দিনার"), - ("EGP", "মিশরীয় পাউন্ড"), - ("ERN", "ইরিত্রিয়ান নাকফা"), - ("ETB", "ইথিওপিয়ান বির"), - ("EUR", "ইউরো"), - ("FJD", "ফিজিয়ান ডলার"), - ("FKP", "ফকল্যান্ড দ্বীপপুঞ্জ পাউন্ড"), - ("GBP", "পাউন্ড স্টার্লিং"), - ("GEL", "জর্জিয়ান লারি"), - ("GGP", "গার্নসি পাউন্ড"), - ("GHS", "ঘানার সিডি"), - ("GIP", "জিব্রাল্টার পাউন্ড"), - ("GMD", "গাম্বিয়ান ডালাসি"), - ("GNF", "গিনি ফ্রাঙ্ক"), - ("GTQ", "গুয়াতেমালান কুয়েটজাল"), - ("GYD", "গায়ানিজ ডলার"), - ("HKD", "হংকং ডলার"), - ("HNL", "হন্ডুরান লেম্পিরা"), - ("HRK", "ক্রোয়েশিয়ান কুনা"), - ("HTG", "হাইতিয়ান গার্ড"), - ("HUF", "হাঙ্গেরিয়ান ফরিন্ট"), - ("IDR", "ইন্দোনেশিয়ান রুপিয়া"), - ("ILS", "ইসরায়েলি নতুন শেকেল"), - ("NIS", "ইসরায়েলি নতুন শেকেল"), - ("IMP", "ম্যাঙ্কস পাউন্ড"), - ("INR", "ভারতীয় রুপি"), - ("IQD", "ইরাকি দিনার"), - ("IRR", "ইরানি রিয়াল"), - ("ISK", "আইসল্যান্ডিক ক্রোনা"), - ("JEP", "জার্সি পাউন্ড"), - ("JMD", "জ্যামাইকান ডলার"), - ("JOD", "জর্ডানিয়ান দিনার"), - ("JPY", "জাপানি ইয়েন"), - ("KES", "কেনিয়ান শিলিং"), - ("KGS", "কিরগিজস্তানি সোম"), - ("KHR", "কম্বোডিয়ান রিয়েল"), - ("KMF", "কমোরিয়ান ফ্রাঙ্ক"), - ("KPW", "উত্তর কোরিয়ান জয়ী"), - ("KRW", "দক্ষিণ কোরিয়ান জয়ী"), - ("KWD", "কুয়েতি দিনার"), - ("KYD", "কেম্যান দ্বীপপুঞ্জ ডলার"), - ("KZT", "কাজাখস্তানি টেঙ্গে"), - ("LAK", "লাও কিপ"), - ("LBP", "লেবানিজ পাউন্ড"), - ("LKR", "শ্রীলঙ্কা রুপি"), - ("LRD", "লাইবেরিয়ান ডলার"), - ("LSL", "লেসোথো লোটি"), - ("LTL", "লিথুয়ানিয়ান লিটাস"), - ("LYD", "লিবিয়ান দিনার"), - ("MAD", "মরক্কান দিরহাম"), - ("MDL", "Moldovan leu"), - ("MGA", "মালাগাসি আরিয়ার"), - ("MKD", "ম্যাসেডোনিয়ান ডেনার"), - ("MMK", "বর্মী কিয়াত"), - ("MNT", "মঙ্গোলিয়ান তুগ্রিক"), - ("MOP", "ম্যাকানিজ পটাকা"), - ("MRO", "মৌরিতানীয় ওগুইয়া"), - ("MUR", "মরিশিয়ান রুপি"), - ("MVR", "মালদ্বীপের রুফিয়া"), - ("MWK", "মালাউইয়ান কোয়াচা"), - ("MXN", "মেক্সিকান পেসো"), - ("MYR", "মালয়েশিয়ান রিঙ্গিত"), - ("MZN", "মোজাম্বিকন মেটিক্যাল"), - ("NAD", "নামিবিয়ান ডলার"), - ("NGN", "নাইজেরিয়ান নায়রা"), - ("NIO", "নিকারাগুয়ান কর্ডোবা"), - ("NOK", "নরওয়েজিয়ান ক্রোন"), - ("NPR", "নেপালি রুপি"), - ("NZD", "নিউজিল্যান্ড ডলার"), - ("OMR", "ওমানি রিয়াল"), - ("PAB", "পানামানিয়ান বালবোয়া"), - ("পেন", "পেরুভিয়ান সল"), - ("PGK", "পাপুয়া নিউ গিনি কিনা"), - ("PHP", "ফিলিপাইন পেসো"), - ("PKR", "পাকিস্তানি রুপি"), - ("PLN", "পোলিশ জ্লটি"), - ("PYG", "প্যারাগুয়ের গুয়ারানি"), - ("QAR", "কাতারি রিয়াল"), - ("RON", "রোমানিয়ান লিউ"), - ("RSD", "সার্বিয়ান দিনার"), - ("RUB", "রাশিয়ান রুবেল"), - ("RWF", "রুয়ান্ডার ফ্রাঙ্ক"), - ("SAR", "সৌদি রিয়াল"), - ("SBD", "সলোমন দ্বীপপুঞ্জ ডলার"), - ("SCR", "সেচেলো রুপি"), - ("SDG", "সুদানিজ পাউন্ড"), - ("SEK", "সুইডিশ ক্রোনা"), - ("SGD", "সিঙ্গাপুর ডলার"), - ("SHP", "সেন্ট হেলেনা পাউন্ড"), - ("SLL", "সিয়েরা লিওনিয়ান লিওন"), - ("SOS", "সোমালি শিলিং"), - ("SPL", "সেবোরগা লুইগিনো"), - ("SRD", "সুরিনামী ডলার"), - ("STD", "সাও টোমে এবং প্রিন্সিপে ডোবরা"), - ("SVC", "সালভাডোরান কোলন"), - ("SYP", "সিরিয়ান পাউন্ড"), - ("SZL", "সোয়াজি লিলাঞ্জেনি"), - ("THB", "থাই বাত"), - ("TJS", "তাজিকিস্তানি সোমনি"), - ("TMT", "তুর্কমেনিস্তান মানাত"), - ("TND", "তিউনিসিয়ান দিনার"), - ("TOP", "টোঙ্গান পা'আঙ্গা"), - ("TRY", "তুর্কি লিরা"), - ("TTD", "ত্রিনিদাদ ও টোবাগো ডলার"), - ("TVD", "টুভালুয়ান ডলার"), - ("TWD", "নতুন তাইওয়ান ডলার"), - ("TZS", "তানজানিয়ান শিলিং"), - ("UAH", "ইউক্রেনীয় রিভনিয়া"), - ("UGX", "উগান্ডার শিলিং"), - ("USD", "মার্কিন যুক্তরাষ্ট্র ডলার"), - ("UYU", "উরুগুয়ের পেসো"), - ("UZS", "উজবেকিস্তানি তাই'"), - ("VEF", "ভেনিজুয়েলা বলিভার"), - ("VND", "ভিয়েতনামী তামা"), - ("VUV", "ভানুয়াতু ভাতু"), - ("WST", "সামোয়ান তালা"), - ("XAF", "সেন্ট্রাল আফ্রিকান সিএফএ ফ্রাঙ্ক"), - ("XCD", "পূর্ব ক্যারিবিয়ান ডলার"), - ("XDR", "বিশেষ অঙ্কন অধিকার"), - ("XOF", "ওয়েস্ট আফ্রিকান সিএফএ ফ্রাঙ্ক"), - ("XPF", "সিএফপি ফ্রাঙ্ক"), - ("YER", "ইয়েমেনি রিয়াল"), - ("ZAR", "দক্ষিণ আফ্রিকান র্যান্ড"), - ("ZMW", "জাম্বিয়ান কোয়াচা"), - ("ZWD", "জিম্বাবুয়েন ডলার"), - ) - - cryptocurrencies = ( - ("AMP", "এএমপি"), - ("AUR", "অরোরাকয়েন"), - ("BC", "ব্ল্যাককয়েন"), - ("BTC", "বিটকয়েন"), - ("BURST", "ব্রাস্টকয়েন"), - ("DASH", "ড্যাশ"), - ("DOGE", "ডোজকয়েন"), - ("EMC", "ইমারকয়েন"), - ("ETH", "ইথেরিয়াম"), - ("ETC", "ইথেরিয়াম ক্ল্যাসিক"), - ("GRC", "গ্রিডকয়েন"), - ("KOI", "কয়েনইয়ে"), - ("LTC", "লাইট কয়েন"), - ("MSC", "ওমনি"), - ("MZC", "মাজাকয়েন"), - ("NMC", "নেমকয়েন"), - ("NXT", "এনএক্সটি"), - ("POT", "পট কয়েন"), - ("PPC", "পিয়ারকয়েন"), - ("TIT", "টিটকয়েন"), - ("VTC", "ভার্টকয়েন"), - ("XDN", "ডিজিটাল নোট"), - ("XMR", "মনেরো"), - ("XPM", "প্রাইম কয়েন"), - ("XRP", "রিপল"), - ("ZEC", "জেক্যাশ"), - ("STC", "সুইফট কয়েন"), - ("BCN", "বাইট কয়েন"), - ("FTH", "ফেদার কয়েন"), - ("NEO", "নিও"), - ("NEM", "জেম"), - ("USDT", "টেথার"), - ("IOTA", "আই ও টা"), - ("DRC", "ডিক্রিড"), - ("WAVES", "ওয়েভস প্লাটফর্ম"), - ("LSK", "লিস্ক"), - ("ZCL", "জেক্ল্যাসিক"), - ("BCH", "বিটকয়েন ক্যাশ"), - ("UBQ", "ইউবিক"), - ("EOS", "ই ও এস ডট আইও"), - ("SRN", "সিরিন ল্যাবস"), - ("TRX", "ট্রন"), - ("ADA", "কার্দানো"), - ) - - def pricetag(self) -> str: - """ - Return price in Bengali digit with Bangladeshi Currency symbol. - :example: '৳ ৫৫,৫৫০' - """ - currency_symbol = self.currency_symbol("BDT") - price = self.numerify(self.random_element(self.price_formats)) - return currency_symbol + " " + translate_to_bengali_digits(price) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index dfa2061715d1d2f72bf47079df41e812bfb5d3a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12468 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 S9tkgnUp;!$TOs|X(*FfXO|azv diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/cs_CZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/cs_CZ/__init__.py deleted file mode 100644 index 5af4f01..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/cs_CZ/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,#0", "%#,#0", "%##,#0", "%.###,#0", "%#.###,#0"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}Kč" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/cs_CZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/cs_CZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index abd236bb9372cc04e8b3f694653da65d9d6b4d63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 826 zcmYjOzi-n(6u$G1;D&}!C_)Som8>AFLN0+7u>?dVM1({q3+d|Gm&B=mq~~))B8oa> zVL*)Oh}cjU2L1xX#*(N*ktHT3wn`~WC+=*g>J8uby?5_@zUTL|R4M{-z7>17AOL^T zAO|()`5i7MzyS{QfDcUx0tq|=jx+|2Or%3Ot25zHG1R{jj|`Y-FKIY%9YXEgB_(kw z&U}r-1Q1|C2bfZaTYrY8>_|juOO8BNOjVdsVQr`*MZc%lM`|^tLRC*$tJd^PEmieg zCIw1ZOaq(Ga(=`d!f5`Q!vwqqy^FVb8PDc(F6C z#6s33zV!xeE(HIjJz_KDyEYB`d9WQaR2z_BfIN2_^@pq*1`lhE2PkqGx!pAs5c`O3a2SJRbz}d!$?;Zoz5!_CFv*+V~$F Ci^SIe diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/da_DK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/da_DK/__init__.py deleted file mode 100644 index ce26084..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/da_DK/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self): - return self.numerify(self.random_element(self.price_formats)) + " kr." diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/da_DK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/da_DK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a4ee535e16ed0dced5d070c1c54fca9c4251ce6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 794 zcmYjP&1(}u6o0cHagB{>X+aQzg(b?O?lko(UQ$sIQ^B4VVc70Yl1=s_&TfJmtn|=} zCy(*$O?vU*A0c>Y=%KRU$&)uBdg;lT-A(Bne((1_=Es}&=6kJH1#!Ms2M7WD%AFF_ z(k^auG6NS}F8v8vvXHctR5lbQL=APS==XGesy1^|Y3jMvnxf*h}dBk?joa9*uF=9#V$+rF;c3cE*g+&`Ggt zlbvUn5HIu+Ld;Q`X?b&r-J7m0S7t6lS9pi<9S(=^qrU#(;QhhJy|c#Fys`CV{Sg_KOVDcrCle;WMxm z!NpI^_nw2;LR{l;1lh*Z!{-YHsk^AC6npFNkr(CJYP)>i@&RmBNL`4YYY&Sa9i>7-nY(iB53bq%aKdpVX4ez1^jBVnYnIBWjMzU1oMi zGAB(CIDI-Nodc(c5f}*Iz)5kPkSa~m3UC#qaA&|yb5*{X{UOgz1dv+p?3?%Zz3;u* zzu&)qub}?^eDB%mYlXtU^pEswBmMvNd${cG{F%WiCdf)bK;j5PJZ2-Gmb!#%k17>-R3Q-b!l+cs)l_P(d{`mD*e4#vj)@sAnP}T9O%qbW z9}}L%=US_2)#P4`xX9+)X{mh0cifo7|N;QcQO;in(xzuM8*vdm$E!X4&1DW`a zd(~P)7LgU;gQk1sQK_~NFX#O7nqoIzQuikbsHz=H?p7}upq84J!lr7TiEUurroog2 zBUU;SH^0;PsP-UYgua-j$j^{gwX5O*M5Tx|f7oJX3bzsOnSCv!-DT9XrRr}SB8*-aTlzHLSgx!5iHW11o~2V%WxX_s$47|&;M8o>*| zQW;UVP5GeCShY!^}c<(UKd>Z*f<8@8oCabQQI&q zu@65Q#Gm-^C5?@hscu#*x$VT1`z#oj7PspixznT}A15k1C^=g7P4u^QFgI z4ju;qkmT_y^^(Wi$X1h$z$h`{OV6YDcAF%_MUD6P;AH3hb7DBO170d9HS&KS8= z&bB+wi()(C1huQcSwi8_NmA5i+u?2GO+VKKEwm$_9)=f(AlF44+omnIv3nwJiy71A zw4cE7HYZ7>&~Q>VY}@Mb+-aL7(Q7+~*n=*pSRf>a`*GcpTgQ~Yl<;FDaQ_(OwkUxG z^&Iy=J;x#Uvgqap99w5{`pD8k-W1FMNuuf&sgmsgU(@f!MsJX|mPel=taBiOe&*f9a zsp49JKyR8mW+(tw$$X0JECOK+T*bi=$!N!=!B}UgQ#R!N4hb`iv6=F;gJRt4FpygY zmb@T4hAnp-&Pp9HGAZS$?$}5KL_j#1FAM!0rz3YeU{R2VwzmU?S`p0MhSdCJFS_U% z`{>c(Bqz4Tu+pu861t)95s_|2h1#pzEGr?8j7ip-$}on{^&(1euS+CF0i+?LDHyw5 zL++wAPcvVQc``M0O;=M^SGTA{%Dwq~%<<8Cf`7NVC~thJVU zVl3D^S?wcwY88nS(IR@?6Iy9B1)IoVS%w;7o5@q?$h|CoMM$La?b)EgCaD@D#Ra!I(k+eW1K~KZmJV% z|E;DWA6aB3$YDTL?l6C8Q3L#?!fv(Dcr7pko6WLGFAKbd`Y2k8@$&rVHDYy4u?sJ( z&`+%#{Oy-vtO07BHN`7xEeYN{(THXPmc02?X?;?*<@cWeXuMD{{yF?(}A#f~Rc6A|>&hryS_raY#0v=DHos&P9j#pth`} za-cX>Tkbk^jy|H#1bGOYT2t;h0*svHIA<284q!NHD4dnFC2p&tn}d5v*itEA$k*lV9>Y7As9wa<#tUB& z1Z9ZZbuoboKFJSp`60>0X=B&LVIwWR95F6XDy0lAz zD693C^4Bl7WU)V4oWWXrejPm1=JuOU<$iyhWBg@76wH2k3U13ualtPAvpxnZ4mKcZ zX=VlAhc!EWIZDUDk`unAr-GAuLp%Z|PG~@-z=5}e#_KD|m#g(nF4{t2ToFqQhL z@SThsC;b!o;DiL2H`7LUf-9B8Q^y7F$u!LNbV2lL;c2-c-x%OXjX9TGEICqbln?WQ zep-drUKCF-OK0qm2lr{szAZYKNhz0%UW#BGahz5(vYz%D^7T^+X8ZqpTVN3jkiAGM zAXj=;w=s*UR~^~Rl1+VsvYi&sbMK{%ZRAOLHRzsdcT-yz?Qa02fET7CGP=%=oVWMR z1?Mz4XEZVo?%v)V4pnf6!`pkq;WYGwudcU-!=DM_CoB9$l^`GkyVbaX)`lpjGzzxj!dQWxe&9z7ZkQ9|)> z_;@zguX6O)9hefmiLYN3zS{Iw-`@Pi@vpaj)Bot5KdgQ9)87vNxqJ8x-cW69^1t92 zEnyyP-fqTo^s8~=W$LkdJ9N8SO=33BUOw^9m7Es-E3RJLeK!f+d;B?muHX~Bfv>OD iR#sNNC_MUi;Rjz7e)P@ecy(p-A3JaUr=Tvh_ str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{EURO SIGN}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_AT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/de_AT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a25f1581104be21484db8ac2570418e12a591696..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmYjPJ#W)M7{2pIa6?1*C}N7JWCana%{8zhBoq)`h>*x+A)Q>`C2{JHa6U&QqNqYy zm>AO$v7s_B@C#U35_KrD!~zprrIe);ceVq);eDR>>+!w!`dg_~1oC_-_Nx$pU#XKD zJ;%i@L8gEJ0zKeEOMyTEj{#98fT&bCRI@q@jXsJY@T1O%3M6+}$#-wyjA8Y1@X^!=33WchfqEW4z8C$8EIZXYnUwgOr zcJH8lT-lmewmz>NH=6TC^QiLhsQhTQ?as^Y%y1W?7PM-G#K1VPeTs2X#Mlo>>`A_g z@r&5@vJ6`hwTT*W##ROU2v|t~yC{uZPHN;nqU*v;K(e;I|Kvo2dLJH`r$A!XA&XmL z0gCwlBu_3k^Kq90v8y8dU;fOvmtE;TlhSez(G6ivR0!b@uz6b0U?0xPH~#=h(#F3o C%f=J{ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/de_CH/__init__.py deleted file mode 100644 index a453ec6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_CH/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from ..de import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # source: https://de.wikipedia.org/wiki/Schreibweise_von_Zahlen#Dezimaltrennzeichen_2 - price_formats = ["\N{FIGURE DASH}.##", "%.##", "%#.##", "%##.##", "% ###.##", "%# ###.##"] - - def pricetag(self): - return "Fr.\N{NO-BREAK SPACE}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/de_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/de_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index aa5f227d64a800c002a41e60422c2af2dc9129aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 811 zcmYjP&1(}u6rb6Tu*SwzEC@oeu%xnwW~d6eh?jy&i$T!SVmsaLPLfUcBhKyyH;Ckr zzrahc;>ps39{dYD30@j{s4RG?CvQUZ(vxp?H`+P;-tT?Pk9qIS*IKQL#Q9Y1PcTA1 za;F5fw6j$p2gpGV_K=TF2_p$TM2<8;j?APZxu`R7su=1|2|NR5+7liQU59bIRLPA< ziZisf&~vLbR`h~h zYUm}kp^<+_2nem&a{y=pze4?s`LYnAWgBH6HxN}W`UO8K@6YWB!cUPQwG%P12fX?D zts!Sxkob(doiw|`t-uL=$~@+?AkJz7?%IrYLhf5}1hY~i=5->Wx^n)S^g^GJIE;JD zw_cKGa{}}1Gdm`}Yx8hWI(uPEnnM;0iRbQ-K^phM;7)V>Hi_Jrtqm-D-|Di6bgX^G z30%rI5)nJ$oCS7D97Z=D5lY>_jVWyo(oD-A7hB!Y)%gaS^NDKmiYx|_Nb7IhGogQm+2BoNNsF_A-VEK&FtV*dLI*BLv0;Mk! z%PTTmi1W(;hlno-EHV%6uR8d&b$zTha^pe`p{l6nR z7XtGq02A~adFQib8AQv@%Rp`*s+{)=eq7#PSO}l0-?L1=cgNyC5(` zkJ$+cT$@LO(%Fj=(j2jHM0|IT4AP_@g?F2+J0x}!wlT2meXGY}(zW&(CvYiWLrm-; z=Pa~S;xM|kO(=CkH=(pSNHZ;OF0p#!D~q)?7oiK#VSF3l5Phw!zCL($@Mib4zB#LJ zeq1|kwP&sNNqy_2wmsc(XEk@KxpSyR9Yf7DN<%APlx7u5gUA{Bf-h70bZGfShHFsE zF9Ezqd|7bu9P{PpAXX7q0gh0%wsZJ!u3*)}MWt9?2WBq8BNIGZX_tSv_y@iM;s3H{ l+P$KS`+OA=V)XG str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{EURO SIGN}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/el_GR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/el_GR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5e8af1b998f890f89e9881ec8158443f0e3b372b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6710 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_AU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/en_AU/__init__.py deleted file mode 100644 index 6735f0a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_AU/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#.##", "%#.##", "%##.##", "%,###.##", "%#,###.##"] - - def pricetag(self) -> str: - return "$\N{NO-BREAK SPACE}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_AU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/en_AU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 33784e5ca22b1e8e3bb9b9aceb0e8ec60afd145e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 823 zcmYjOzi-n(6u$G1;D&|(D(XljH&hmo6QFDe2{DikL`amyZF+L;OXAc&!ucGLh@uYt zAIex*5bDCfU%-UK(x^kxNlZ*^l~R^Y+}Tdm8@}&*@80`#@7>Qzr3~cxR_-rC0RCh_ z0eZpHJ3{OO4|p&DA+!|;6!08)${z4kq8zGuoef8trTfB+kMz*f4#`V+KOPa#@I@zg!d)}bnGYVj4Ou5zEpN5_A&jxpe*>_2Q5q7PB4+ zowsOhCd5Mf#APV-T^bLHU@K;*J|xi)1^yNqj94#@9@QT_M2XMH{ek0dJ6)2Xj45cB*;xEC6PNqB*IT$BaHpXXBgK9BW`4mV@`K`WA=shS?Y>-VX`7%7yPO&AF$6m zA9ud4oiv)0M)SwQ$?E!Kb^W-palF!=RNF^Jdn!sn%PMgL1i91<1+=NHf+y8(RS>u2FM8r4% diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_CA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/en_CA/__init__.py deleted file mode 100644 index 3171b0a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_CA/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#.##", "%#.##", "%##.##", "%,###.##", "%#,###.##"] - - def pricetag(self): - return "$\N{NO-BREAK SPACE}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/en_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index b114625e61630f483d31c0993a6611db0a4226bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 796 zcmYjPy>HV%6ur^O z0@T9J?gKeO4sx)Ed~8Y>N$5Fpq(kJ$OgfSCIuj>~q5hV@GjOWC`^>lAkj*)P5e}Fg z6W_IYI4qpqFeZ&L3&zBAcgZk``(g07@o0@iZp4;FB`{r~^~ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/en_US/__init__.py deleted file mode 100644 index 2527f6d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_US/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#.##", "%#.##", "%##.##", "%,###.##", "%#,###.##"] - - def pricetag(self) -> str: - return "$" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7cac1f619d4becb8b784704d2257f598d225fb6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 818 zcmYjPJ#W)M7{2pIFj3R;RT!yc0EDTUmBBYkZqB^mQ1{7J5_IZp6C74z4zYFN~MhC`BCoZ7@nAOIXlMWV@Bw2hxs1Mno*yEOg$H?YV%r z>@Zi5(06&S)q&pDpIC@yS|9~XEVE4L?yXUl6LYmGV;{=MbZ6w6) zan2%lKv+ayZxKrU$QP8>x`WinE+?GU@bY|nwYlp8+%UNVu#bK%UHP~@-ubli<*PidcJkhYei9egCNOE2wlN<2E+M%AaH3+2f1}mYl7=_&;nK~2NQ$iRKjPlOl>h($ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/es/__init__.py deleted file mode 100644 index e7f9006..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/es/__init__.py +++ /dev/null @@ -1,171 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # Format: (code, name) - currencies = ( - ("AED", "Dírham de los Emiratos Árabes Unidos"), - ("AFN", "Afghaní"), - ("ALL", "Lek albanés"), - ("AMD", "Dram armenio"), - ("ANG", "Florín de las Antillas Holandesas"), - ("AOA", "Kwanza angoleño"), - ("ARS", "Peso argentino"), - ("AUD", "Dólar australiano"), - ("AWG", "Florín arubeño"), - ("AZN", "Manat azerbaiyano"), - ("BAM", "Marco bosnioherzegovino"), - ("BBD", "Dólar barbadense"), - ("BDT", "Taka bangladesí"), - ("BGN", "Lev búlgaro"), - ("BHD", "Dinar bahreiní"), - ("BIF", "Franco burundés"), - ("BMD", "Dólar de Bermudas"), - ("BND", "Dólar bruneano"), - ("BOB", "Boliviano"), - ("BRL", "Real brasileño"), - ("BSD", "Dólar bahameño"), - ("BTN", "Ngultrum butanés"), - ("BWP", "Pula de Botswana"), - ("BYR", "Rublio bielurruso"), - ("BZD", "Dólar beliceño"), - ("CAD", "Dólar canadiense"), - ("CDF", "Franco congolés"), - ("CHF", "Franco suizo"), - ("CLP", "Peso chileno"), - ("CNY", "Yuan"), - ("COP", "Peso colombiano"), - ("CRC", "Colón costarricense"), - ("CUC", "Peso cubano convertible"), - ("CUP", "Peso subano"), - ("CVE", "Escudo de Cabo Verde"), - ("CZK", "Corona checa"), - ("DJF", "Franco yibutiano"), - ("DKK", "Corona danesa"), - ("DOP", "Peso dominicano"), - ("DZD", "Dinar argelino"), - ("EGP", "Libra egipcia"), - ("ERN", "Nafka"), - ("ETB", "Bir de Etiopía"), - ("EUR", "Euro"), - ("FJD", "Dólar fiyiano"), - ("FKP", "Libra de las islas Falkland"), - ("GBP", "Libra esterlina"), - ("GEL", "Larí georgiano"), - ("GGP", "Libra de Guernsey"), - ("GHS", "Cedi"), - ("GIP", "Libra de Gibraltar"), - ("GMD", "Dalasi"), - ("GNF", "Franco guineano"), - ("GTQ", "Quetzal guatemalteco"), - ("GYD", "Dólar guyanés"), - ("HKD", "Dólar hongkonés"), - ("HNL", "Lempira hondureño"), - ("HRK", "Kuna croata"), - ("HTG", "Gourde haitiano"), - ("HUF", "Forinto húngaro"), - ("IDR", "Rupia indonesia"), - ("ILS", "Séquel israelí"), - ("NIS", "Nuevo Séquel israelí"), - ("IMP", "Libra manesa"), - ("INR", "Rupia india"), - ("IQD", "Dinar iraquí"), - ("IRR", "Rial iraní"), - ("ISK", "Corona islandesa"), - ("JEP", "Libra de Jersey"), - ("JMD", "Dólar jamaicano"), - ("JOD", "Dinar jordano"), - ("JPY", "Yen japonés"), - ("KES", "Chelín keniano"), - ("KGS", "Som kirguís"), - ("KHR", "Riel camboyano"), - ("KMF", "Franco comorense"), - ("KPW", "Won norcoreano"), - ("KRW", "Krahn Occidental"), - ("KWD", "Dinar kuwaití"), - ("KYD", "Dólar de las islas Cayman"), - ("KZT", "Tenge kazako"), - ("LAK", "Kip laosiano"), - ("LBP", "Libra libanesa"), - ("LKR", "Rupia esrilanquesa"), - ("LRD", "Dólar liberiano"), - ("LSL", "Loti lesothense"), - ("LTL", "Litas lituana"), - ("LYD", "Dinar libio"), - ("MAD", "Dirham marroquí"), - ("MDL", "Leu moldavo"), - ("MGA", "Ariary malgache"), - ("MKD", "Denar normacedonio"), - ("MMK", "Kyat birmano"), - ("MNT", "Tugrik mongol"), - ("MOP", "Pataca macaense"), - ("MRO", "Ouguiya mauritano"), - ("MUR", "Rupia mauritana"), - ("MVR", "Rupia de Maldivas"), - ("MWK", "Kwacha malauí"), - ("MXN", "Peso mexicano"), - ("MYR", "Ringgit"), - ("MZN", "Metical mozambiqueño"), - ("NAD", "Dólar namibio"), - ("NGN", "Naira nigeriano"), - ("NIO", "Córdoba nicaragüense"), - ("NOK", "Corona noruega"), - ("NPR", "Rupia nepalí"), - ("NZD", "Dólar neozelandés"), - ("OMR", "Rial omaní"), - ("PAB", "Balboa panameño"), - ("PEN", "Sol peruano"), - ("PGK", "Kina"), - ("PHP", "Peso filipino"), - ("PKR", "Rupia pakistaní"), - ("PLN", "Złoty polaco"), - ("PYG", "Guaraní paraguayo"), - ("QAR", "Riyal catarí"), - ("RON", "Leu rumano"), - ("RSD", "Dinar serbio"), - ("RUB", "Rublo ruso"), - ("RWF", "Franco ruandés"), - ("SAR", "Riyal saudí"), - ("SBD", "Dólar de las islas Solomon"), - ("SCR", "Rupia seychellense"), - ("SDG", "Libra sudanesa"), - ("SEK", "Corona sueca"), - ("SGD", "Dólar de Singapur"), - ("SHP", "Libra de Santa Elena"), - ("SLL", "Leona"), - ("SOS", "Chelín somalí"), - ("SPL", "Luigino"), - ("SRD", "Dólar surinamés"), - ("STD", "Dobra santotomense"), - ("SVC", "Colón salvadoreño"), - ("SYP", "Libra siria"), - ("SZL", "Lilangeni"), - ("THB", "Baht tailandés"), - ("TJS", "Somoni tayiko"), - ("TMT", "Manat turcomano"), - ("TND", "Dinar tunecino"), - ("TOP", "Pa'anga tongano"), - ("TRY", "Lira turca"), - ("TTD", "Dólar de Trinidad and Tobago"), - ("TVD", "Dólar tuvaluano"), - ("TWD", "Nuevo dólar taiwanés"), - ("TZS", "Chelín tanzano"), - ("UAH", "Grivna ucraniano"), - ("UGX", "Chelín ugandés"), - ("USD", "Dólar de Estados Unidos"), - ("UYU", "Peso uruguayo"), - ("UZS", "Soʻm Uzbekistani"), - ("VEF", "Bolívar venezolano"), - ("VND", "Đồng vietnamita"), - ("VUV", "Vanuatu vatu"), - ("WST", "Tālā samoano"), - ("XAF", "Franco centro africano"), - ("XCD", "Dólar del Caribe Oriental"), - ("XDR", "Derechos especiales de giro"), - ("XOF", "Franco de África occidental"), - ("XPF", "Franco CFP"), - ("YER", "Rial yemení"), - ("ZAR", "Rand sudafricano"), - ("ZMW", "Kwacha zambiano"), - ("ZWD", "Dólar zimbabuense"), - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/es/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a48dcb506b9f94144bea88bca4a68f9ce8a4e476..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4670 zcmZu#&5s*N75983o6USCgbgAfS{y(lL`J|BA=z%*Gt=$1)7_qleHoRzEA5KAyPWDS z@47ez?H_=|VgCUx5y}CD1MI>9dAY!avn39Q6StKDmp$?7qdoD8Ie5BVRqylne(#n4 zc5raFCjWkS_xYb6)@uJ!FXrQx`TzEN@bF13uEkqvE!!GxZ`HPIom#y8aV_4#+rQb- z`$k)f-IH7Y-iEi6t<{}AqjM5t78xn(-Mff~z4r1oo1n~!v6a%oYGs6>5+0T>85-ll8ssFVg*wsp_#HS=f0j&8zI?5| zb6vg<-??~dp>zyiztVfVw%E5B$VDu}IiYH^*WurV&Fz%3N1nLXML8-hBrqEzvM{F_^{#l>MJ%G$m=@s41T%pXh`pBDXxRMT zjm|NG!!gbaEIn@6p;8&5DY76sNeXL)4qc<;nb6Ix@$%C&K}jW z6BF&md0TtHP%iD^jOVe5c%!@FJEXILS;k`>%!X%#>d1`YAg&zjHCFF8XiDZ)pc=lb zEbuW(tuaFdSqHum*vbMEVXzKmRSX-Ury}7cJS`c|z`k+~h{jc49QS#OWY!zBEFh~$ zg=pxDdp;kh1RNqb<&5z{2V%6T3#TNibT#W6QI9}aOsc3i?Ts)+R6@susd?5G`)wV+ zf)k-MHQm10S8$3Z;Hyq-(;KdKhaBb7%4V-Gj`R+i(rjFXs_8fR14vdA6uil;h!!Pc z4D2)jXbzgxEiZx-MJdL92*(Ol7c|XiTk3%wm0D z=$18OaGmPldrA+2T;c zPL@?_5Z>za#equz2o_GrEFwxs%lB5dJoId;-@=B1OoK3KbE_nDwtTIZ2L5Wd#WlFw z7dAhu^o;XWM-j+odv7iCXR`EIq!@6H`}DMDP&SDb?wz{8-Xo)r`HxoCe{fj z>oV$uPsD>K9G3!$CgG^W8Hm7vqFp5eQinFjIjyjYBT&xKqYb2ZvOifTm@{(GU<)?YYIOn!6j(k2N z$Rc@60VX=d=Wd{iJy^ba!Ep)+VF;(1y}a{)e*lT}IG$7M|Lr*MLQ(0EW^3r3d%oCP zt1@by*!*Bkc;My>u63OIKHq}{pFl|Ad&7d~fg_F$s3k^J%aED6XszJ^-d|v5GJOHm zC_9NEt>-91Ys_EtY;mA5|C}JMRO~s&~sSD(vE*6 zjva<3xz&pz==*tzQt7mFWhzRwiz)vQlCHz&0O-DXt=)kiY?(Hh*{p}%_1CwY>PQrS52_}2ju zU0lMR6s#A3NdoyYbCm}neTSZNlvTm@I-WT4kR+j;BsXdF&U=ann#(sVrenDpA%>FW zAFBX(Jx3gxa)tPEoG357zOSlYBPYi*R51&*{jc4?Hpf(8S>%QQS>;ATCT^jn_T3utQ1Fatm-F!VdlYS%ISqkje+PDSq-Ny*Igy}sisk=nu; zni6R4l{(i`){p-33tBF$8BDI4>HEWuV(bowD8Od01fs#wLTPBq2bH(dPR- zPu!Jwg}KRC=m&CyR#jcVM5+Pl4;tdGoR%o;)MJu=)mEHjdXn_8id6vWWZwePZ$K0D-PL<8CyB{j z0L=5wR9-;Y0U!*7f>0Jbl>L~^OhNO%#5185OIFtD;9nr_2xD2}=SS=i2j^(zR3 z-g+P_VPKDpbD^f1?}J8UmB2s-F`+*M5XlmiQj~FFX!CDxWIBXMkQl{qp^B{#DmGEb z3@ zs=TUR%E65)Oar)Pd}G7x7StZxL*KcM4u%6$v~UetSJ(h7k%B=+USCnhWA&(eC5}w@QLV#xGXjLXbMY1=8>2CoMdh9B zuI^l4OE$i~UfsRE&S=b2`MiI9{eq*kT8ZG|hx3Tw;#KV}xKsP`=cf}W%u}e(3Cz+T zorcu|{POV}N9AcoVD6onmoY6*A45Lpr!XL#&K4!i%0GGhqaU9Zq{Kg*p=gQ{T%0~b zQ_N1`koxVUI5lb)r?7T?4W&_DUq7BL)DI=bR*LSX95uu;0sFYU`))^yQtOYS(|p{sgb`hnfO@5UPE#v$eJLkJ=CZb357I Qy8ZW~@BFtWAJoDB0nVlj5C8xG diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_AR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/es_AR/__init__.py deleted file mode 100644 index 8ca962b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_AR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from ..es import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["%##", "%.###", "%#.##0", "%##.##0", "%##.##0", "%.###.##0", "%#,##"] - - def pricetag(self) -> str: - return "$" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_AR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/es_AR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 64ec6560331688f1a51eaaf53dab74971c93fa65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 830 zcmYjO&1(}u6rb7MBx^K{N{e{1uto{kj9;`D5yXSk)F9f^Vi~r(lVsEVh%=L5f=Cbf z1N0P+;!S$-;D6zzp@+(XCr{oAsh6C5v)Po+;r)K^>&JWZewIo_q~4EW=Q>8{PwHeQ zm*MmlkTLR*hXWL1Tf<00&yc5$kf$^4K%dvycwkg>e>L!`I5A)HxbJ(6yO~M~DyiOd z70ehhWMdE6S_`DVVq5n#W;8WV9~pK|iE$-eEe!RFWeszcngx)rSb%qD1&Ara)tJKz zX;S%6XWg-^B+r@b@yLa(&R!mvlAOK)0~_J@sB=D_6+$%IDGQ_kQRBQn=LcE;0*4TO zjjCE>hHqB&#Eg0&<9>6HEO96D;*hd{g)EXusmpzr(Pqp;M+*2cL$IJJl-%m<18K)0 zBQln47CP_9_JY8#c9<(k=({}bX3lObNv+SKJ_-C?(jCZl96hMryHA8K*;?0e_na0J zr0MK2PM|5hiy&@~a~8P+!UTQticsoDzNEC)9VBKtoOD{lD~mhU7NG)6C~kwkAKJ9#YcxhF^r*L>H3tC1BqWF9YzBGU_C$QCAQvU`8lew)bD07&y0uKU=3r;k-i? zH{ky@Ceohd^3!bF#Xfvl>7B{X%t!N)9`kFEP-hT|oah+i-)QYLZ{RI_SibQODUvq+ E2j&XIk^lez diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_CL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/es_CL/__init__.py deleted file mode 100644 index 084b744..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_CL/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from ..es import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["%##", "%.###", "%#.##0", "%##.##0", "%##.##0", "%.###.##0"] - - def pricetag(self) -> str: - return "\N{DOLLAR SIGN}\N{NO-BREAK SPACE}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_CL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/es_CL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index fba9028f93441397713e1a62a00296d2afb0508b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 829 zcmYjPy>HV%6u+|_*F;TI#Melr5QK;3N`VcrWMF{^MAb-!>g3v&#ECz``5ci5p$_>U z%81xd7m$!x5i3ig4n>xjnAj?%ESY%cI8|@>z2E!#>E6BjSt=EgJYS35EsW5g%*mmU z+u3a(hsZ@P_ECT>1tSGLMy@hOuF8}nbx~*Gp=K8TD&UzoHJ=givg5RR<#e7}}(R`RZkQs<-7ySi4%KMjg1mPFRR2qqt zxb@?MsisDl1dMyFVYPC}2cH zqQe6F4cS=|c+)O(1PMHcNB!K{j|8a=SU4cQw@>;*(TT!)wY%FS_5|DP+fL7JvzWB( z9^(X>vaQ6#NjPVrGbAjg^(TZ~(fg8qm01nWv^7iMQ zZ+l<%zTZEo?@sHxljh5lrZ;VR$Mx>F6iz_|i*C8SI5Z?eeRWZiD(dL=1VINP*H~%3?vc~`Z CTgP?) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/es_ES/__init__.py deleted file mode 100644 index 5781a99..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_ES/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from ..es import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{EURO SIGN}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2fad036cf9c24daf8cf7ac4f8b47a41be569d08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmYjOzi-n(6u$G1;D(0qqlhV@k`;s{nrmQ1ETN(c5mGx@NGI36q)z=K+?^v5QB*iac5_zPHB5_KrD!~zprrIe);ceYdYhVT2{yZ1id^ZQY$lz}|o%Dp-S;7=A5 zpcg#9C&UDJz=Ht@p{+omfM>u{#=ujFa-`;UHXLe}{#Ox^1ykb%jR(F*s9U&XBroNe zuL_s|0&M63Tj>hxPtaC9g=ihcQ^%UEOEW61Eq$b!4@`5U*E1^B&5VtD!_3uE-7I8U zqJ$?ja>XncN6sOQ<}U?Iz#GuJd|Q->Y%xcX$Vg2Y;qy6MlV{?zd2q87BRQfgovIU&I~En^(UUJ^*X zjPa|)3Gy4dBx+NYaY~nk`V44A5WOlvE++%I4|ZF?7^Ewk2hUG6sQ2KZc?Kls9kRGB z7N8K8^`zHZ#kh-s=uPQ&VSjEs&Y$#zN^7|Xc1OUe3L*Rj*3L>A?7?aE?mr+!*7zSv C4aPM9 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fa_IR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/fa_IR/__init__.py deleted file mode 100644 index 95de6da..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/fa_IR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["###,###,000", "#,###,000,000", "%,###,###,###,###", "%,###,###,###,000,000"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\ufdfc" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fa_IR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/fa_IR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 7acbd4221b52b1f6d5696688148a618790c08b9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 851 zcmY*WyKmD#7{9ZfV$z0CXvGv!DLiBqatW-6B_PB=ltQNn>Ezg##Hkd`EoMYIR&#sIj?vGmc~#Ajj+f zyP!y9MoXLpA$JX!bMeHC;wST$08{h^_0LDsH1MV~rjA&ES2=Gd`axQsNfVDD@B(R4 zBNQZmzI@f>NOePpajP?mE^*y8J%=)zIm`{B!hl-_qaBYsdf>w%6`$E1U$AbRy(K-* zVI=T^9&_~9WIIz}*?ndN#IX$S4N{}+1*9@$?vU74n+!%l&vWlrYWIk51?=uXH+J+c z^GQeFVVpowd@i3DA?M6BMi8J+pA$+g*9s`D3`UU}Hy7yL@oIM7O6Ix%9s0Kc_Rx>w z)%UyacK5fBOVwGa`f2UBR-e`CN2Nzc#mC>&S+RMjHs_Fv8ro8%QtIjsqcqA>>Ud^o z3w?#sSD|hv5q=SJBiRo)UjgkS;sp?VS%6q-4B{C6I=}=)Ywf*fCkoDO;r;R{5;Ca} z$qm?lQW0IQr?Y0$@GF9CL4Kw_NE&*`1+h4Se+}S7#u)!Zo2N?(-ol5)>wl3@;=+IB C!^gn@ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_CA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_CA/__init__.py deleted file mode 100644 index d570e23..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_CA/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}$" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 42db718e667adcd6f5ec9dcd037ad4e091334f30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 824 zcmYjOzi-n(6u$G1;D(0qqo`9vB@=`N=wAhjLzL!l7cQeRX z8ixrWz=RGkr4G0L0!`VGh~i3)JXTCqm{DPEs3S$cuj?bVo>8f;XROs5dajo0dLh#i zB`l$#&1X43Vh&+6f5Tw{-hO| zy+fM|!9TP|Y=#2Qrcu8Lb|Quv0}>99@9m)ekaeT*QKR_~#U3LM`j)+Gbx4d{YnM>O zo3fR}$WACFp*=({#jU3ZV=wd=#*O|k)w0Jit24T`SYcz4y2M`?-{r6mepPRL+WWY7 zuz6ftpVijCtsFO7vu5k4_Ux$oe7dnUt8PuTtvRm+ZKITG7>8CsFiy)D2a%KbLN8 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_DZ/__init__.py deleted file mode 100644 index 8c3387d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_DZ/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # source: https://fr.wikipedia.org/wiki/Dinar_alg%C3%A9rien - price_formats = ["#,##", "%#,##", "%##,##", "% ###,##", "%# ###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}DA" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1c14dd1983f0469655e78259dda3e7031c0fa586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 825 zcmYjOzi-n(6u$G1$PEqQM-fv*Br6CD$ThGcB$Ob!5Fyb4Stuvhz9dflBb?6>i74uj zg^4j85gY2lz+b@1lBh$GB^H?2Dy1x)xU-$AH+IVcx%D2Tu6KOJGRtSd@SN z)Oupbi5A2@p>B7aT&7mwggz!7@kzjv(vZ3~!QGJh7K`|ADG~9yk+7|vy+{4fCy0ft zPkiew+Fl9%qXS|y|LuzBGk2Z z2}Qgq-ARP(m{JnhW7MU%Wg?8-z-1WMhvP&`AIGfTFdP#uTO$y?FqZ=Hi;P=MX{__(Bsu&*Vr$BJlA&T34 z0a-_KrI`=A8i!sJZs+D_+N112kEt*gTZnFQIFTWQzrfwof(kL5mv8+8LZprV0mk{m Ar~m)} diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_FR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_FR/__init__.py deleted file mode 100644 index 6197164..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_FR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self): - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{EURO SIGN}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_FR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/fr_FR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 338a78b4f880ebdeba8e3968a699a97ca1d37da0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmYjPy>HV%6o2QBVnRcTS_ugefn)_?6><%%h$VbTnVu6VbDX?_n&UUKa@O!`aaX-I%&)=%m3W)Qi;$21nzjCJp zwY2kVoJ_z02l)^nQ$irYLvW;haAYbS$VHurQpHezOWZS1raflS$aN^QOO@P+q&V|S z940`)L=Kozk4t|*rYs~)C6x_@2~k5GEBXyxAFGYrEH(7pYK^8|u(J)lq&DyVeGORNmd;&*QTT!vA{}VJ|HEgem54nSC3!eeiTrgL`k0p)(gC~Abf}( zwG$k;Hj4(OvmGV4IileR`|dU#q)9&tZ#P@FaO@`Z=D@OdtR9VV*V>^B^Go>}Vr&l? zqoJMRE+Y?~U_#u`O$ccY(oD;nORV1b!eVXBMd%FgFuu-V55Ct{-|oKIeYbT~-N;RK^~gcuKWW*@{9igqRPA@ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/it_IT/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/it_IT/__init__.py deleted file mode 100644 index 6197164..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/it_IT/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self): - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{EURO SIGN}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/it_IT/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/it_IT/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d1d11123a2bbb60fdd5337e3c22001e2540c8edd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 799 zcmYjPy>HV%6uTnVu6VbDX?_no$XY;;rD*;<9>ekp1)PA6(r7=igy_!^ecBt zP)obG24spHk30h_XrG?i2~6fQ&!b)x7ub$y~Xa%^pe`p{mBuX z3xUNmfGK*3ywlmT45DS{Wgs^YRZjZ_KPc}nt%E0!c!~_EGZG*B`u^wZPllXn;V59- z?WNgyZiP-1Q0B9Mg-KQ&a@S_G7xBPKVi=GTGrt!L-K)p1$RG+BNup%H0_z3oE(r|L zV|GFU*XGf%bhe{}G{-C)6W`q?!!#L0;hkpdHi_MY-5Of%e6I^p)=57d>vp9eXp&*-F>tBu6tD9oYyx$ zZydGS^H%$?e*ducV7BGXYwk>Q7f_2jhMH-VhE~8R%_@`zku&lIU#0Z<$nuK}*Pxc4 z1Neyes^H>x%$J{oSVdd~*hksM*52cVf>jR}m121vn0Zm2t+mVdEnmRbgw%=Xv39rU h;T~Uygcy8$5#W!EG5&#W{9RG7hiA1b|BxX0#s98bye$9# diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ng_NG/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/ng_NG/__init__.py deleted file mode 100644 index 38e839b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/ng_NG/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#.##", "%#.##", "%##.##", "%,###.##"] - - def pricetag(self) -> str: - return "\N{NAIRA SIGN}" + "\N{NO-BREAK SPACE}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ng_NG/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/ng_NG/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d07940952e0b0f930e2ac05588ecaae520239453..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 815 zcmYjOL5tHs6rM@aZme6Yvf{+Z{GWOGw(;eUIXfUstvC|0RH4b z36+u;*QD45KJZ}(D0DOkG|&dVHU+*;v^~A3bKuypD}OZ^*)TJoayANl!oAWZCv~aL zVnf0%Ai#k>aJ0U(eh(ep*ND;6e0^#-6=lYiwQWoct7Tb}N;9Ww)5_Uw-n4R+RXGtU zk39K+lT(#SbuV5>ki)}QV0ikzER@-D{4$Y~%o?ZTLhqIROP;ok9~lV=dx>)0IDU-=j1nZ67!c~d zM9-H({^O8%0@1+ZEG~mhCQxfcq7e#%O%#vCfJJv(x9^}N5ad?udRuOvB&g?Z5sqY2 zzKH~RDd!~e#whCJP8(qyM1jD#6^}DBA5OUa$%Wg{%b~yPBC8M=m88XElr|^V3l2RgAY&H!N=W z8Cjd@iQs%ys*ixzCGoQg)M|22+ej`+n1XEW!OoLI16E@A);a=;iw;%Xkqam~vh$D2 t$1b14FDkba^JDX2G0-EfjMWyB%MuQC2;nbq str: - return "\N{EURO SIGN}" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/nl_NL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/nl_NL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ecd91a50411db9e300610a1f35efaaf9badfc603..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 847 zcmYjO&1(}u6rb6TxQ&fbspzFzSz=kx9jqQjusP^KgP=8K5r*yVB-wO7(%IQyf=H44 z5A~>CRO-<`z`K`*9x4l7^yICOdg;lT{V1Ko@BQAJ_x*mZKw`zYG0`MnO3Q!9< zyTQp0aDfYb5I{?UKmreeD@}ka6KPk@{VX_A4E3*2447(9X*Bd)LY@3KN2yR|OPuTg z0xakPOX~8}AE70?5>YymD^Cdrij8ZLYj@jMuh4O@EX*$C@jF&lVgP--Q?-xETepvj> z4$$fpt$x3I&|I4~*Y?qi{p;;%y}hTkXWSLEj7q9u9NGcFIIUtFL~h~>K9BKMV*B|I zo#Vc#95YJiIr{==jSG5KfLLk<;uP^E4ik_rJlcM8s6cfczSEC@ka>h~Zt?wJ$%f{= z7ekxn&{?MRe6!d=IVHU)s+<%(*6!tv-lw9VI8J<-!=Vfz`~@ByRTQ`m_v+XF0YS3B E|2a&}PXGV_ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/pl_PL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/pl_PL/__init__.py deleted file mode 100644 index 82d4db2..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/pl_PL/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}zł" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/pl_PL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/pl_PL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 39fcf071fea57cab7a3731a286111ac88788e60f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 826 zcmYjOzi-n(6u$G1;D(0qqX;oXRI-AwfLsGBVhM;25LKd+g>-f8OXAeOIG-aDQB*iaV+{sJT>mP8$jEHN>$RZ3Ypac4VKZ}`6Ny?gKTJ-?roN*Rdrt=zu}0r-;z z1*iqjZ*wsL4sf6cd}vA#NZ=W8q%m-0A|1$ioe77Eq5hS4WWZG0py9xE2(=5BjKrll z^HmNLK!6DyU`kzX{TZ6FBN3$|Ir3OBRbfVjwV{p_{hqFm)Otpxx}LFCZ|J#Ns_TVJ zOO&vL1~#AN?1(vp(fk#M33v37=We5D$a-P$u+e;gVwaKok!9~#T@s^? zwL>W4P1#anWG9r8z#gK=!yC^L#%|y;j2qD~)w0Jit2?@~SYl(5y1-u;-{G(aepRo1 z-2Je-zj;(!o7L97t{gR6vu5kC_T;eobh?gbRXo-3oY#W3QA#z81Is5Er)7-&&`CU@ zmoa{wSYCcZmw0U|$BfctuD$?T;Y2SA5X;Fx>?6L;VGPoh^}QFz3RJh?zJ3A(=N+QB z%@>e&q?cR8u#0i%RpEAKeyTmnAM}_CW3h$!28UxALiiipJt--03r?%I{sAGf#{b4n B#J~Um diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/pt_BR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/pt_BR/__init__.py deleted file mode 100644 index 23637cd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/pt_BR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self) -> str: - return "R$" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/pt_BR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/pt_BR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 01849b3c00e7ee9e875cb3594ed55c391c90f72a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 819 zcmYjOzi-n(6u$E>+|UqyGg8S3$SULn4DEmz00~r*2o)v^>Ezm%#Hr6V=SxH)ggWF8 zfT@g#4RvMUe_(0Up~w;w6I-Q}r4x6yQ}u@L``)|vKHaQ#)%=~fO?M*H%*4JF5&WRVMw*~BgU$rYA{ayNretCLW zUz^p}erSj58?*I|gZhhu>#bR>wQsiOq7-y&BQr6MTuLy`Dj3t)ABIvdWBhjLhQ$qA z61AC{a>ka0`UY545IZkH?j#4fhV+_%Dafuq-)SFdP;bM})-jM=bjae4`2V6KyZEG> tbukUQEZt7cPt1qKgB~$yESHep5OAbI2!DgsV?%>&xL>>Z4@i+W{s)tu!9f53 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ro_RO/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/ro_RO/__init__.py deleted file mode 100644 index 8cbe045..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/ro_RO/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"] - - def pricetag(self) -> str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}Lei" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ro_RO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/ro_RO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 6d3d6f5a4e13807d646d8f44508d0c761f1c02dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 826 zcmYjOzi-n(6u$G1;D(0qqX;oXRI-Aw3b_VW#1ar4ARy>uAzfYjoH+H5a6U&QqNqa_ zCdPC`Y^VzZe*r5?q7Frtn3&iqr7WGevz@9peBbxpz4!T^-_J^=48-|f?%jj{{K z)Pm=?xtIV4IM4?HG$jZm@Dw=G7&tPK4&=PfghRzp|4KYEV5+^O(ZF*EwF{Sw#HBd% zRSpwCfC(L7N*!+f1)8!W5yh1pd90YKFr&iSP)CY>SJy{sJ)=@x&seKB^js~~^+Kj4 zN?1Zeo6mA~#2mtC{)WQ@ya&DWw?!Gx7IPGdjCfW#ALsg@=wGk{NBrV7Fr;=OKKA4D zGvXO?s)b2FsOJvTOVkRTD8R%g0SQ@J=~K@p*o|mlv6%lZB__Tb3*Xh#52zaj1hI&9 zNnpK0n+w5zX^+?p1)fc#ei3X(3^fKM93bD@M*Sh{M&W}-^FE3_M(*`3d&laK7`fIC zp@=tSONo)4P)b63h-idgy+9ayp~o<8^oOaIJ&swO(Urv#8;jHh{=)bUhduDCdhOHh z$KCzSquTncw*GD9sM(q|TZgsBht((34LqyjsfOpg7PO60s$m>j0l_#eV;n?I;tRcu z@!Q1m^BcOvYg0L9lrD4i70?PNdQpH_P6lEh@pTSkkgja(JwH~Ux&`<36CgP65XEi2 zfV?BU+$x4$j6<&qw=?ro?P30)M^qS#EyOoC9Lo^G-(c;eq`)mWt={?vgvc8I1DJHg ABLDyZ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ru_RU/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/ru_RU/__init__.py deleted file mode 100644 index 00dd5d0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/ru_RU/__init__.py +++ /dev/null @@ -1,179 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # Format: (code, name) - # See currency names in Russian: https://ru.wikipedia.org/wiki/Список_существующих_валют#Валюты - currencies = ( - ("AED", "Дирхам ОАЭ"), - ("AFN", "Афгани"), - ("ALL", "Лек"), - ("AMD", "Армянский драм"), - ("ANG", "Нидерландский антильский гульден"), - ("AOA", "Кванза"), - ("ARS", "Аргентинское песо"), - ("AUD", "Австралийский доллар"), - ("AWG", "Арубанский флорин"), - ("AZN", "Азербайджанский манат"), - ("BAM", "Конвертируемая марка Боснии и Герцеговины"), - ("BBD", "Барбадосский доллар"), - ("BDT", "Така"), - ("BGN", "Болгарский лев"), - ("BHD", "Бахрейнский динар"), - ("BIF", "Бурундийский франк"), - ("BMD", "Бермудский доллар"), - ("BND", "Брунейский доллар"), - ("BOB", "Боливиано"), - ("BRL", "Бразильский реал"), - ("BSD", "Багамский доллар"), - ("BTN", "Нгултрум"), - ("BWP", "Пула"), - ("BYR", "Белорусский рубль"), - ("BZD", "Белизский доллар"), - ("CAD", "Канадский доллар"), - ("CDF", "Конголезский франк"), - ("CHF", "Швейцарский франк"), - ("CLP", "Чилийское песо"), - ("CNY", "Юань"), - ("COP", "Колумбийское песо"), - ("CRC", "Коста-риканский колон"), - ("CUC", "Кубанское конвертируемое песо"), - ("CUP", "Кубанское песо"), - ("CVE", "Эскудо Кабо-Верде"), - ("CZK", "Чешская крона"), - ("DJF", "Франк Джибути"), - ("DKK", "Датская крона"), - ("DOP", "Доминиканское песо"), - ("DZD", "Алжирский динар"), - ("EGP", "Египетский фунт"), - ("ERN", "Накфа"), - ("ETB", "Эфиопский быр"), - ("EUR", "Евро"), - ("FJD", "Доллар Фиджи"), - ("FKP", "Фунт Фолклендских островов"), - ("GBP", "Фунт стерлингов"), - ("GEL", "Лари"), - ("GGP", "Гернсийский фунт"), - ("GHS", "Ганский седи"), - ("GIP", "Гибралтарский фунт"), - ("GMD", "Даласи"), - ("GNF", "Гвинейский франк"), - ("GTQ", "Кетсаль"), - ("GYD", "Гайанский доллар"), - ("HKD", "Гонконгский доллар"), - ("HNL", "Лемпира"), - ("HRK", "Хорватская куна"), - ("HTG", "Гурд"), - ("HUF", "Форинт"), - ("IDR", "Индонезийская рупия"), - ("ILS", "Новый израильский шекель"), - ("NIS", "Новый израильский шекель"), - ("IMP", "Фунт острова Мэн"), - ("INR", "Индийская рупия"), - ("IQD", "Иракский динар"), - ("IRR", "Иранский риал"), - ("ISK", "Исландская крона"), - ("JEP", "Джерсийский фунт"), - ("JMD", "Ямайский доллар"), - ("JOD", "Иорданский динар"), - ("JPY", "Иена"), - ("KES", "Кенийский шиллинг"), - ("KGS", "Сом"), - ("KHR", "Риель"), - ("KMF", "Франк Комор"), - ("KPW", "Северокорейская вона"), - ("KRW", "Южнокорейская вона"), - ("KWD", "Кувейтский динар"), - ("KYD", "Доллар Островов Кайман"), - ("KZT", "Тенге"), - ("LAK", "Кип"), - ("LBP", "Ливийский фунт"), - ("LKR", "Шри-ланкийская рупия"), - ("LRD", "Либерийский доллар"), - ("LSL", "Лоти"), - ("LTL", "Литовский лит"), - ("LYD", "Ливийский динар"), - ("MAD", "Марокканский дирхам"), - ("MDL", "Молдавский лей"), - ("MGA", "Малагасийский ариари"), - ("MKD", "Денар"), - ("MMK", "Кьят"), - ("MNT", "Тугрик"), - ("MOP", "Патака"), - ("MRO", "Угия"), - ("MUR", "Маврикийская рупия"), - ("MVR", "Рувия"), - ("MWK", "Квача"), - ("MXN", "Мексиканское песо"), - ("MYR", "Малайзийский ринггит"), - ("MZN", "Мозамбикский метикал"), - ("NAD", "Доллар Намибии"), - ("NGN", "Найра"), - ("NIO", "Кордоба"), - ("NOK", "Норвежская крона"), - ("NPR", "Непальская рупия"), - ("NZD", "Новозеландский доллар"), - ("OMR", "Оманский риал"), - ("PAB", "Бальбоа"), - ("PEN", "Соль"), - ("PGK", "Кина"), - ("PHP", "Филиппинское песо"), - ("PKR", "Пакистанская рупия"), - ("PLN", "Злотый"), - ("PYG", "Гуарани"), - ("QAR", "Катарский риал"), - ("RON", "Румынский лей"), - ("RSD", "Сербский динар"), - ("RUB", "Российский рубль"), - ("RWF", "Франк Руанды"), - ("SAR", "Саудовский риял"), - ("SBD", "Доллар Соломоновых Островов"), - ("SCR", "Сейшельская рупия"), - ("SDG", "Суданский фунт"), - ("SEK", "Шведская крона"), - ("SGD", "Сингапурский доллар"), - ("SHP", "Фунт Святой Елены"), - ("SLL", "Леоне"), - ("SOS", "Сомалийский шиллинг"), - ("SPL", "Луиджино"), - ("SRD", "Суринамский доллар"), - ("STD", "Добра"), - ("SVC", "Сальвадорский колон"), - ("SYP", "Сирийский фунт"), - ("SZL", "Лилангени"), - ("THB", "Бат"), - ("TJS", "Сомони"), - ("TMT", "Новый туркменский манат"), - ("TND", "Тунисский динар"), - ("TOP", "Паанга"), - ("TRY", "Турецкая лира"), - ("TTD", "Доллар Тринидада и Тобаго"), - ("TVD", "Доллар Тувалу"), - ("TWD", "Новый тайваньский доллар"), - ("TZS", "Танзанийский шиллинг"), - ("UAH", "Гривна"), - ("UGX", "Угандийский шиллинг"), - ("USD", "Доллар США"), - ("UYU", "Уругвайское песо"), - ("UZS", "Узбекский сум"), - ("VEF", "Суверенный боливар"), - ("VND", "Донг"), - ("VUV", "Вату"), - ("WST", "Тала"), - ("XAF", "Франк КФА ВЕАС"), - ("XCD", "Восточно-карибский доллар"), - ("XDR", "СДР"), - ("XOF", "Франк КФА ВСЕАО"), - ("XPF", "Франк КФП"), - ("YER", "Йеменский риал"), - ("ZAR", "Рэнд"), - ("ZMW", "Замбийская квача"), - ("ZWD", "Доллар Зимбабве"), - ) - - price_formats = ["#,##", "%#,##", "%##,##", "% ###,##", "%# ###,##"] - - def pricetag(self) -> str: - return ( - self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{CYRILLIC SMALL LETTER ER}." - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 281366dd71221780ea4773c7c2bb2c7ebe776f8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7067 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/sv_SE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/sv_SE/__init__.py deleted file mode 100644 index 6991968..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/sv_SE/__init__.py +++ /dev/null @@ -1,178 +0,0 @@ -from .. import Provider as CurrencyProvider - -# Names taken from https://www.iban.se/currency-codes - - -class Provider(CurrencyProvider): - # Format: (code, name) - currencies = ( - ("AED", "UAE Dirham"), - ("AFN", "Afghani"), - ("ALL", "Lek"), - ("AMD", "Armenisk Dram"), - ("ANG", "Gulden från Nederländska Antillerna"), - ("AOA", "Kwanza"), - ("ARS", "Argentinsk Peso"), - ("AUD", "Australisk Dollar"), - ("AWG", "Arubisk Florin"), - ("AZN", "Azerbajdzjansk Manat"), - ("BAM", "Konvertibel Mark"), - ("BBD", "Barbadosdollar"), - ("BDT", "Taka"), - ("BGN", "Bulgarisk Lev"), - ("BHD", "Bahraini Dinar"), - ("BIF", "Burundi-franc"), - ("BMD", "Bermuda-dollar"), - ("BND", "Brunei-dollar"), - ("BOB", "Boliviano"), - ("BOV", "Mvdol"), - ("BRL", "Brasilisk Real"), - ("BSD", "Bahamasdollar"), - ("BTN", "Ngultrum"), - ("BWP", "Pula"), - ("BYR", "Vitrysk Rubel"), - ("BZD", "Belize-dollar"), - ("CAD", "Kanadensisk Dollar"), - ("CDF", "Kongolesisk Franc"), - ("CHE", "WIR Euro"), - ("CHF", "Schweizerfranc"), - ("CHW", "WIR Franc"), - ("CLF", "Unidad de Fomento"), - ("CLP", "Chilensk Peso"), - ("CNY", "Yuan Renminbi"), - ("COP", "Colombiansk Peso"), - ("COU", "Unidad de Valor Real"), - ("CRC", "Costa Ricansk Colon"), - ("CUC", "Peso Convertible"), - ("CUP", "Kubansk Peso"), - ("CVE", "Kap Verde Escudo"), - ("CZK", "Tjeckisk Koruna"), - ("DJF", "Djibouti-franc"), - ("DKK", "Dansk Krone"), - ("DOP", "Dominicansk Peso"), - ("DZD", "Algerisk Dinar"), - ("EGP", "Egyptiskt pund"), - ("ERN", "Nakfa"), - ("ETB", "Etiopisk Birr"), - ("EUR", "Euro"), - ("FJD", "Fiji Dollar"), - ("FKP", "Pund från Falklandöarna"), - ("GBP", "Pund Sterling"), - ("GEL", "Lari"), - ("GHS", "Ghana Cedi"), - ("GIP", "Gibraltar-pund"), - ("GMD", "Dalasi"), - ("GNF", "Guinea-franc"), - ("GTQ", "Quetzal"), - ("GYD", "Guyana-dollar"), - ("HKD", "Hong Kong-dollar"), - ("HNL", "Lempira"), - ("HRK", "Kuna"), - ("HTG", "Gourde"), - ("HUF", "Forint"), - ("IDR", "Rupiah"), - ("ILS", "Ny Israelisk Shekel"), - ("INR", "Indisk Rupie"), - ("IQD", "Irakisk Dinar"), - ("IRR", "Iransk Rial"), - ("ISK", "Isländsk Krona"), - ("JMD", "Jamaica-dollar"), - ("JOD", "Jordanisk Dinar"), - ("JPY", "Yen"), - ("KES", "Kenyansk Shilling"), - ("KGS", "Som"), - ("KHR", "Riel"), - ("KMF", "Comoros-franc"), - ("KPW", "Nordkoreansk Won"), - ("KRW", "Won"), - ("KWD", "Kuwaiti Dinar"), - ("KYD", "Caymanöar-dollar"), - ("KZT", "Tenge"), - ("LAK", "Kip"), - ("LBP", "Libanesiskt pund"), - ("LKR", "Sri Lanka Rupie"), - ("LRD", "Liberiansk Dollar"), - ("LSL", "Loti"), - ("LYD", "Libysk Dinar"), - ("MAD", "Marockansk Dirham"), - ("MDL", "Moldavisk Leu"), - ("MGA", "Malagasy Ariary"), - ("MKD", "Denar"), - ("MMK", "Kyat"), - ("MNT", "Tugrik"), - ("MOP", "Pataca"), - ("MRO", "Ouguiya"), - ("MUR", "Mauritius Rupie"), - ("MVR", "Rufiyaa"), - ("MWK", "Kwacha"), - ("MXN", "Mexikansk Peso"), - ("MXV", "Mexikansk Unidad de Inversion (UDI)"), - ("MYR", "Malaysisk Ringgit"), - ("MZN", "Mozambique Metical"), - ("NAD", "Namibia Dollar"), - ("NGN", "Naira"), - ("NIO", "Cordoba Oro"), - ("NOK", "Norsk Krone"), - ("NOK", "Norwegian Krone"), - ("NPR", "Nepalesisk Rupie"), - ("NZD", "Nya Zealand-dollar"), - ("OMR", "Rial Omani"), - ("PAB", "Balboa"), - ("PEN", "Nuevo Sol"), - ("PGK", "Kina"), - ("PHP", "Filippinsk Peso"), - ("PKR", "Pakistansk Rupie"), - ("PLN", "Zloty"), - ("PYG", "Guarani"), - ("QAR", "Qatari Rial"), - ("RON", "Rumänsk Leu"), - ("RSD", "Serbisk Dinar"), - ("RUB", "Rysk Rubel"), - ("RWF", "Rwanda Franc"), - ("SAR", "Saudi Riyal"), - ("SBD", "Dollar från Salomonöarna"), - ("SCR", "Seychell-rupie"), - ("SDG", "Sudanesiskt pund"), - ("SEK", "Svensk Krona"), - ("SGD", "Singapore Dollar"), - ("SHP", "Saint Helena pund"), - ("SLL", "Leone"), - ("SOS", "Somalisk Shilling"), - ("SRD", "Surinam Dollar"), - ("SSP", "Sydsudanesiskt pund"), - ("STD", "Dobra"), - ("SVC", "El Salvador Colon"), - ("SYP", "Syriskt pund"), - ("SZL", "Lilangeni"), - ("THB", "Baht"), - ("TJS", "Somoni"), - ("TMT", "Turkmenistansk Ny Manat"), - ("TND", "Tunisisk Dinar"), - ("TOP", "Pa’anga"), - ("TRY", "Turkisk Lira"), - ("TTD", "Trinidad och Tobago Dollar"), - ("TWD", "Ny Taiwanesisk Dollar"), - ("TZS", "Tanzanisk Shilling"), - ("UAH", "Hryvnia"), - ("UGX", "Uganda Shilling"), - ("USD", "US Dollar"), - ("USN", "US Dollar (Nästa dag)"), - ("UYI", "Uruguay Peso en Unidades Indexadas (URUIURUI)"), - ("UYU", "Peso Uruguayo"), - ("UZS", "Uzbekistansk Sum"), - ("VEF", "Bolivar"), - ("VND", "Dong"), - ("VUV", "Vatu"), - ("WST", "Tala"), - ("XAF", "CFA Franc BEAC"), - ("XCD", "East Caribbean Dollar"), - ("XDR", "SDR (Särskild dragningsrätt)"), - ("XOF", "CFA Franc BCEAO"), - ("XPF", "CFP Franc"), - ("XSU", "Sucre"), - ("XUA", "ADB Beräkningsenhet"), - ("YER", "Yemeni Rial"), - ("ZAR", "Rand"), - ("ZMW", "Zambian Kwacha"), - ("ZWL", "Zimbabwe Dollar"), - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/sv_SE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/sv_SE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 32b688c423a69de88f52e3c7dd39b69d1797748a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4129 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/tr_TR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/tr_TR/__init__.py deleted file mode 100644 index 5535c75..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/tr_TR/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - price_formats = ["#.##", "%#.##", "%##.##", "%,###.##", "%#,###.##"] - - def pricetag(self) -> str: - return f"{self.numerify(self.random_element(self.price_formats))} ₺" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/tr_TR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/tr_TR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 146347798f93974656384a55c1b599a43f78f39c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 827 zcmYjO&ubGw6rR~1aT^;6B1Q5K zc#0r`c#~c{c=9h0yrlF{S@5DKZ-vxLPtNRaO6Tx>-+?_ zK>=#Pvs+wDfD2scg8*6*1QOT)t~3U&Or!%j&$HlAG1b2kk4%_qPiZvpTtc0~B_r`D z&P?Yp0R&jk1(wv|)}NpyyAn~_k}HoDOBH5RSexodF&c(3QfnENYDUId?XHolg_=>w zv_uI@Xz1`+&X1Tw7|mXAn1ENHck#7IO|zeL+}!GE+z9EJkVp;5mGb|Quv0}>99@9m)ekaeT5*|@igVvmt}-*$HG4vA6Q z-X#?AqHHHIauP~O=nN5~c>5W`*b6;|aic#>wX8X2cSg(e9X94ymw1QqZ4Ue3XZ8A| z{ str: - return self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}грн." diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/uk_UA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/uk_UA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9387b91744e36b319ddddbbfc49af549cfc269af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8282 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 L#Frkq5(WPQc3^$~ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/uz_UZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/uz_UZ/__init__.py deleted file mode 100644 index 79bae34..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/uz_UZ/__init__.py +++ /dev/null @@ -1,178 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # Format: (code, name) - currencies = ( - ("AED", "BAA Dirhami"), - ("AFN", "Afg‘oni"), - ("ALL", "Lek"), - ("AMD", "Arman dramasi"), - ("ANG", "Niderlandiya Antil guldeni"), - ("AOA", "Kvanza"), - ("ARS", "Argentina pesosi"), - ("AUD", "Avstraliya dollari"), - ("AWG", "Aruba florini"), - ("AZN", "Ozarbayjon manati"), - ("BAM", "Bosniya va Gertsegovina konvertatsiya qilinadigan markasi"), - ("BBD", "Barbados dollari"), - ("BDT", "Taka"), - ("BGN", "Bolgariya levi"), - ("BHD", "Bahrayn dinori"), - ("BIF", "Burundi franki"), - ("BMD", "Bermuda dollari"), - ("BND", "Bruney dollari"), - ("BOB", "Boliviano"), - ("BRL", "Braziliya reali"), - ("BSD", "Bagama dollari"), - ("BTN", "Ngultrum"), - ("BWP", "Pula"), - ("BYR", "Belarus rubli"), - ("BZD", "Beliz dollari"), - ("CAD", "Kanada dollari"), - ("CDF", "Kongo franki"), - ("CHF", "Shveytsariya franki"), - ("CLP", "Chili pesosi"), - ("CNY", "Yuan"), - ("COP", "Kolumbiya pesosi"), - ("CRC", "Kosta-Rika koloni"), - ("CUC", "Kuba konvertatsiya qilinadigan pesosi"), - ("CUP", "Kuba pesosi"), - ("CVE", "Kabo-Verde eskudosi"), - ("CZK", "Chex kronasi"), - ("DJF", "Jibuti franki"), - ("DKK", "Daniya kronasi"), - ("DOP", "Dominikan pesosi"), - ("DZD", "Jazoir dinori"), - ("EGP", "Misr funti"), - ("ERN", "Nakfa"), - ("ETB", "Efiopiya biri"), - ("EUR", "Yevro"), - ("FJD", "Fiji dollari"), - ("FKP", "Folklend orollari funti"), - ("GBP", "Funt sterling"), - ("GEL", "Lari"), - ("GGP", "Gernsi funti"), - ("GHS", "Gana sedi"), - ("GIP", "Gibraltar funti"), - ("GMD", "Dalasi"), - ("GNF", "Gvineya franki"), - ("GTQ", "Ketsal"), - ("GYD", "Gayana dollari"), - ("HKD", "Gonkong dollari"), - ("HNL", "Lempira"), - ("HRK", "Xorvatiya kunasi"), - ("HTG", "Gurda"), - ("HUF", "Forint"), - ("IDR", "Indoneziya rupiyasi"), - ("ILS", "Yangi Isroil shekeli"), - ("NIS", "Yangi Isroil shekeli"), - ("IMP", "Men oroli funti"), - ("INR", "Hind rupiyasi"), - ("IQD", "Iroq dinori"), - ("IRR", "Eron riali"), - ("ISK", "Islandiya kronasi"), - ("JEP", "Jersi funti"), - ("JMD", "Yamayka dollari"), - ("JOD", "Iordaniya dinori"), - ("JPY", "Yena"), - ("KES", "Keniya shillingi"), - ("KGS", "Som"), - ("KHR", "Riyel"), - ("KMF", "Komor franki"), - ("KPW", "Shimoliy Koreya voni"), - ("KRW", "Janubiy Koreya voni"), - ("KWD", "Kuvayt dinori"), - ("KYD", "Kayman orollari dollari"), - ("KZT", "Tenge"), - ("LAK", "Kip"), - ("LBP", "Livan funti"), - ("LKR", "Shri-Lanka rupiyasi"), - ("LRD", "Liberiya dollari"), - ("LSL", "Loti"), - ("LTL", "Litva liti"), - ("LYD", "Liviya dinori"), - ("MAD", "Marokash dirhami"), - ("MDL", "Moldaviya leyi"), - ("MGA", "Malagasi ariari"), - ("MKD", "Denar"), - ("MMK", "Kyat"), - ("MNT", "Tugrik"), - ("MOP", "Pataka"), - ("MRO", "Ugiyya"), - ("MUR", "Mavrikiy rupiyasi"), - ("MVR", "Rufiya"), - ("MWK", "Kvacha"), - ("MXN", "Meksika pesosi"), - ("MYR", "Malayziya ringgiti"), - ("MZN", "Mozambik metikali"), - ("NAD", "Namibiya dollari"), - ("NGN", "Nayra"), - ("NIO", "Kordoba"), - ("NOK", "Norvegiya kronasi"), - ("NPR", "Nepal rupiyasi"), - ("NZD", "Yangi Zelandiya dollari"), - ("OMR", "Ummon riali"), - ("PAB", "Balboa"), - ("PEN", "Sol"), - ("PGK", "Kina"), - ("PHP", "Filippin pesosi"), - ("PKR", "Pokiston rupiyasi"), - ("PLN", "Zlotiy"), - ("PYG", "Guarani"), - ("QAR", "Qatar riali"), - ("RON", "Ruminiya leyi"), - ("RSD", "Serbiya dinori"), - ("RUB", "Rossiya rubli"), - ("RWF", "Ruanda franki"), - ("SAR", "Saudiya riyoli"), - ("SBD", "Solomon orollari dollari"), - ("SCR", "Seyshel rupiyasi"), - ("SDG", "Sudan funti"), - ("SEK", "Shvetsiya kronasi"), - ("SGD", "Singapur dollari"), - ("SHP", "Muqaddas Yelena funti"), - ("SLL", "Leone"), - ("SOS", "Somali shillingi"), - ("SPL", "Luigino"), - ("SRD", "Surinam dollari"), - ("STD", "Dobra"), - ("SVC", "Salvador koloni"), - ("SYP", "Suriya funti"), - ("SZL", "Lilangeni"), - ("THB", "Bat"), - ("TJS", "Somoniy"), - ("TMT", "Yangi Turkman manati"), - ("TND", "Tunis dinori"), - ("TOP", "Paanga"), - ("TRY", "Turk lirasi"), - ("TTD", "Trinidad va Tobago dollari"), - ("TVD", "Tuvalu dollari"), - ("TWD", "Yangi Tayvan dollari"), - ("TZS", "Tanzaniya shillingi"), - ("UAH", "Grivna"), - ("UGX", "Uganda shillingi"), - ("USD", "AQSh dollari"), - ("UYU", "Urugvay pesosi"), - ("UZS", "Oʻzbek so‘mi"), - ("VEF", "Suveren bolivar"), - ("VND", "Dong"), - ("VUV", "Vatu"), - ("WST", "Tala"), - ("XAF", "KFA franki BEAS"), - ("XCD", "Sharqiy Karib dollari"), - ("XDR", "SDR"), - ("XOF", "KFA franki BCEAO"), - ("XPF", "KFP franki"), - ("YER", "Yaman riali"), - ("ZAR", "Rand"), - ("ZMW", "Zambiya kvachasi"), - ("ZWD", "Zimbabve dollari"), - ) - - price_formats = ["#,##", "%#,##", "%##,##", "% ###,##", "%# ###,##"] - - def pricetag(self) -> str: - return ( - self.numerify(self.random_element(self.price_formats)) + "\N{NO-BREAK SPACE}\N{CYRILLIC SMALL LETTER ER}." - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/uz_UZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/uz_UZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index da469fd46196e829bdeabb76705c68c10a851da7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4387 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/vi_VN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/currency/vi_VN/__init__.py deleted file mode 100644 index 4ad1581..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/currency/vi_VN/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from .. import Provider as CurrencyProvider - - -class Provider(CurrencyProvider): - # Source: https://vi.wikipedia.org/wiki/%C4%90%E1%BB%93ng_(%C4%91%C6%A1n_v%E1%BB%8B_ti%E1%BB%81n_t%E1%BB%87)#Ti%E1%BB%81n_gi%E1%BA%A5y_-_Ti%E1%BB%81n_polymer # NOQA - price_formats = ["#.##", "%#.##", "%##.##", "%,###.##", "%#,###.##"] - - def pricetag(self) -> str: - return "₫" + self.numerify(self.random_element(self.price_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/currency/vi_VN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/currency/vi_VN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8422c43754dd79a3e050aef6c6bfa015a47dea45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 823 zcmYjO&ubGw6rR~1VH+Ex66w*xvdW_Fpk7)KFCG+X7Qy0S5r*yVB-wO-#M#+kf|Vlq z1N0P+;!ScAJorC&Y3QM{;H93t6;dxfIkUSdox}Hi@6CH3^WOYyH0nT{@AdvS2*95r zs6efFag&QF@PQ9Q5J5+RKmt#IFHL|i6KN)wbq*XUrutXnkqL9{IZcLvPpDV96eKRi zS*&xI0so3reeTgU?$(JXJqY5)BtW9;S=$5XJRimJqp%<(fcl1)N7cJ_mdY`WNr3LY}QAsS*Y8ta33f^{nb&@|dSz08_FvVR8I^ zX3Du1XAz-6XOv&2ZtN!!CLxJP%<{&71|Gqkghnn)`LdLhgq>7)uAjX_y(A)tC9Fpx z_YK-!3ck=j@feB%k0ygE*hv_&h9n-MFxWwZ5$h%K1MA*>lm?949k|}E+a)RLxVwZR z-c)=^ioA?c5_=;w4Dd@EVI0H(!`K>(a;U*(_|ZDr+?sE09U9LL*V^-D`#@_icqy>WTCQOnyAi=SuVWk~eijP7it+2r z4a*z4!fSImWt6UR^%c+tCwfVMSZV>{E7I#6Cg8aBbiaL~K-Gqy^iv?X>=4B^-+$SW xUwK^3x}1hy6K?0`XWGN^L64{~7N3x=aX677gulV<)0zrxc+kA@4+v2-{s+~h!~g&Q diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/__init__.py deleted file mode 100644 index b7ee4e6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/__init__.py +++ /dev/null @@ -1,2616 +0,0 @@ -import platform -import re -import zoneinfo - -from calendar import timegm -from datetime import MAXYEAR -from datetime import date as dtdate -from datetime import datetime -from datetime import time as dttime -from datetime import timedelta -from datetime import timezone as dttimezone -from datetime import tzinfo as TzInfo -from typing import Any, Callable, Dict, Iterator, Optional, Tuple, Union - -from faker.typing import Country, DateParseType - -from .. import BaseProvider, ElementsType - -localized = True - - -def _get_local_timezone(): - return datetime.now().astimezone().tzinfo - - -def _get_next_month_start(dt: Union[dtdate, datetime]) -> Union[dtdate, datetime]: - if dt.month == 12: - return dt.replace(year=dt.year + 1, month=1) - return dt.replace(month=dt.month + 1) - - -def datetime_to_timestamp(dt: Union[dtdate, datetime]) -> int: - if isinstance(dt, datetime) and getattr(dt, "tzinfo", None) is not None: - dt = dt.astimezone(dttimezone.utc) - return timegm(dt.timetuple()) - - -def timestamp_to_datetime(timestamp: Union[int, float], tzinfo: Optional[TzInfo]) -> datetime: - if tzinfo is None: - pick = convert_timestamp_to_datetime(timestamp, _get_local_timezone()) - return pick.astimezone(dttimezone.utc).replace(tzinfo=None) - return convert_timestamp_to_datetime(timestamp, tzinfo) - - -def change_year(current_date: dtdate, year_diff: int) -> dtdate: - """ - Unless the current_date is February 29th, it is fine to just subtract years. - If it is a leap day, and we are rolling back to a non-leap year, it will - cause a ValueError. - Since this is relatively uncommon, just catch the error and roll forward to - March 1 - - current_date: date object - year_diff: int year delta value, positive or negative - """ - year = current_date.year + year_diff - try: - return current_date.replace(year=year) - except ValueError as e: - # ValueError thrown if trying to move date to a non-leap year if the current - # date is February 29th - if year != 0 and current_date.month == 2 and current_date.day == 29: - return current_date.replace(month=3, day=1, year=year) - else: - raise e - - -class ParseError(ValueError): - pass - - -timedelta_pattern: str = r"" -for name, sym in [ - ("years", "y"), - ("months", "M"), - ("weeks", "w"), - ("days", "d"), - ("hours", "h"), - ("minutes", "m"), - ("seconds", "s"), -]: - timedelta_pattern += rf"((?P<{name}>(?:\+|-)\d+?){sym})?" - - -class Provider(BaseProvider): - """ - - Most methods of the provider accept a 'start_datetime' and/or 'end_datetime' parameter. - - These parameters accept a variety of types, and are used to define the range of the random date/time. - - We call this type ``DateParseType``. - - A ``DateParseType`` can be: - - - a datetime or date object - - an integer or a float, representing UNIX a timestamp - - the special string 'now' - - the special string 'today' - - a timedelta object, representing a time delta from now - - a 'timedelta string', such as '+2d', '-3w', '+4y', etc. Representing a time delta from now. - - """ - - # NOTE: Windows only guarantee second precision, in order to emulate that - # we need to inspect the platform to determine which function is most - # appropriate to generate random seconds with. - if platform.system() == "Windows": - - def _rand_seconds(self, start_datetime: int, end_datetime: int) -> float: - return self.generator.random.randint(start_datetime, end_datetime) - - else: - - def _rand_seconds(self, start_datetime: int, end_datetime: int) -> float: - if start_datetime > end_datetime: - raise ValueError("empty range for _rand_seconds: start datetime must be before than end datetime") - return self.generator.random.uniform(start_datetime, end_datetime) - - centuries: ElementsType[str] = [ - "I", - "II", - "III", - "IV", - "V", - "VI", - "VII", - "VIII", - "IX", - "X", - "XI", - "XII", - "XIII", - "XIV", - "XV", - "XVI", - "XVII", - "XVIII", - "XIX", - "XX", - "XXI", - ] - - countries = [ - Country( - timezones=["Europe/Andorra"], - alpha_2_code="AD", - alpha_3_code="AND", - continent="Europe", - name="Andorra", - capital="Andorra la Vella", - ), - Country( - timezones=["Asia/Kabul"], - alpha_2_code="AF", - alpha_3_code="AFG", - continent="Asia", - name="Afghanistan", - capital="Kabul", - ), - Country( - timezones=["America/Antigua"], - alpha_2_code="AG", - alpha_3_code="ATG", - continent="North America", - name="Antigua and Barbuda", - capital="St. John's", - ), - Country( - timezones=["Europe/Tirane"], - alpha_2_code="AL", - alpha_3_code="ALB", - continent="Europe", - name="Albania", - capital="Tirana", - ), - Country( - timezones=["Asia/Yerevan"], - alpha_2_code="AM", - alpha_3_code="ARM", - continent="Asia", - name="Armenia", - capital="Yerevan", - ), - Country( - timezones=["Africa/Luanda"], - alpha_2_code="AO", - alpha_3_code="AGO", - continent="Africa", - name="Angola", - capital="Luanda", - ), - Country( - timezones=[ - "America/Argentina/Buenos_Aires", - "America/Argentina/Cordoba", - "America/Argentina/Jujuy", - "America/Argentina/Tucuman", - "America/Argentina/Catamarca", - "America/Argentina/La_Rioja", - "America/Argentina/San_Juan", - "America/Argentina/Mendoza", - "America/Argentina/Rio_Gallegos", - "America/Argentina/Ushuaia", - ], - alpha_2_code="AR", - alpha_3_code="ARG", - continent="South America", - name="Argentina", - capital="Buenos Aires", - ), - Country( - timezones=["Europe/Vienna"], - alpha_2_code="AT", - alpha_3_code="AUT", - continent="Europe", - name="Austria", - capital="Vienna", - ), - Country( - timezones=[ - "Australia/Lord_Howe", - "Australia/Hobart", - "Australia/Currie", - "Australia/Melbourne", - "Australia/Sydney", - "Australia/Broken_Hill", - "Australia/Brisbane", - "Australia/Lindeman", - "Australia/Adelaide", - "Australia/Darwin", - "Australia/Perth", - ], - alpha_2_code="AU", - alpha_3_code="AUS", - continent="Oceania", - name="Australia", - capital="Canberra", - ), - Country( - timezones=["Asia/Baku"], - alpha_2_code="AZ", - alpha_3_code="AZE", - continent="Asia", - name="Azerbaijan", - capital="Baku", - ), - Country( - timezones=["America/Barbados"], - alpha_2_code="BB", - alpha_3_code="BRB", - continent="North America", - name="Barbados", - capital="Bridgetown", - ), - Country( - timezones=["Asia/Dhaka"], - alpha_2_code="BD", - alpha_3_code="BGD", - continent="Asia", - name="Bangladesh", - capital="Dhaka", - ), - Country( - timezones=["Europe/Brussels"], - alpha_2_code="BE", - alpha_3_code="BEL", - continent="Europe", - name="Belgium", - capital="Brussels", - ), - Country( - timezones=["Africa/Ouagadougou"], - alpha_2_code="BF", - alpha_3_code="BFA", - continent="Africa", - name="Burkina Faso", - capital="Ouagadougou", - ), - Country( - timezones=["Europe/Sofia"], - alpha_2_code="BG", - alpha_3_code="BGR", - continent="Europe", - name="Bulgaria", - capital="Sofia", - ), - Country( - timezones=["Asia/Bahrain"], - alpha_2_code="BH", - alpha_3_code="BHR", - continent="Asia", - name="Bahrain", - capital="Manama", - ), - Country( - timezones=["Africa/Bujumbura"], - alpha_2_code="BI", - alpha_3_code="BDI", - continent="Africa", - name="Burundi", - capital="Bujumbura", - ), - Country( - timezones=["Africa/Porto-Novo"], - alpha_2_code="BJ", - alpha_3_code="BEN", - continent="Africa", - name="Benin", - capital="Porto-Novo", - ), - Country( - timezones=["Asia/Brunei"], - alpha_2_code="BN", - alpha_3_code="BRN", - continent="Asia", - name="Brunei Darussalam", - capital="Bandar Seri Begawan", - ), - Country( - timezones=["America/La_Paz"], - alpha_2_code="BO", - alpha_3_code="BOL", - continent="South America", - name="Bolivia", - capital="Sucre", - ), - Country( - timezones=[ - "America/Noronha", - "America/Belem", - "America/Fortaleza", - "America/Recife", - "America/Araguaina", - "America/Maceio", - "America/Bahia", - "America/Sao_Paulo", - "America/Campo_Grande", - "America/Cuiaba", - "America/Porto_Velho", - "America/Boa_Vista", - "America/Manaus", - "America/Eirunepe", - "America/Rio_Branco", - ], - alpha_2_code="BR", - alpha_3_code="BRA", - continent="South America", - name="Brazil", - capital="Bras\xc3\xadlia", - ), - Country( - timezones=["America/Nassau"], - alpha_2_code="BS", - alpha_3_code="BHS", - continent="North America", - name="Bahamas", - capital="Nassau", - ), - Country( - timezones=["Asia/Thimphu"], - alpha_2_code="BT", - alpha_3_code="BTN", - continent="Asia", - name="Bhutan", - capital="Thimphu", - ), - Country( - timezones=["Africa/Gaborone"], - alpha_2_code="BW", - alpha_3_code="BWA", - continent="Africa", - name="Botswana", - capital="Gaborone", - ), - Country( - timezones=["Europe/Minsk"], - alpha_2_code="BY", - alpha_3_code="BLR", - continent="Europe", - name="Belarus", - capital="Minsk", - ), - Country( - timezones=["America/Belize"], - alpha_2_code="BZ", - alpha_3_code="BLZ", - continent="North America", - name="Belize", - capital="Belmopan", - ), - Country( - timezones=[ - "America/St_Johns", - "America/Halifax", - "America/Glace_Bay", - "America/Moncton", - "America/Goose_Bay", - "America/Blanc-Sablon", - "America/Montreal", - "America/Toronto", - "America/Nipigon", - "America/Thunder_Bay", - "America/Pangnirtung", - "America/Iqaluit", - "America/Atikokan", - "America/Rankin_Inlet", - "America/Winnipeg", - "America/Rainy_River", - "America/Cambridge_Bay", - "America/Regina", - "America/Swift_Current", - "America/Edmonton", - "America/Yellowknife", - "America/Inuvik", - "America/Dawson_Creek", - "America/Vancouver", - "America/Whitehorse", - "America/Dawson", - ], - alpha_2_code="CA", - alpha_3_code="CAN", - continent="North America", - name="Canada", - capital="Ottawa", - ), - Country( - timezones=["Africa/Kinshasa", "Africa/Lubumbashi"], - alpha_2_code="CD", - alpha_3_code="COD", - continent="Africa", - name="Democratic Republic of the Congo", - capital="Kinshasa", - ), - Country( - timezones=["Africa/Brazzaville"], - alpha_2_code="CG", - alpha_3_code="COG", - continent="Africa", - name="Republic of the Congo", - capital="Brazzaville", - ), - Country( - timezones=["Africa/Abidjan"], - alpha_2_code="CI", - alpha_3_code="CIV", - continent="Africa", - name="C\xc3\xb4te d'Ivoire", - capital="Yamoussoukro", - ), - Country( - timezones=["America/Santiago", "Pacific/Easter"], - alpha_2_code="CL", - alpha_3_code="CHL", - continent="South America", - name="Chile", - capital="Santiago", - ), - Country( - timezones=["Africa/Douala"], - alpha_2_code="CM", - alpha_3_code="CMR", - continent="Africa", - name="Cameroon", - capital="Yaound\xc3\xa9", - ), - Country( - timezones=[ - "Asia/Shanghai", - "Asia/Harbin", - "Asia/Chongqing", - "Asia/Urumqi", - "Asia/Kashgar", - ], - alpha_2_code="CN", - alpha_3_code="CHN", - continent="Asia", - name="People's Republic of China", - capital="Beijing", - ), - Country( - timezones=["America/Bogota"], - alpha_2_code="CO", - alpha_3_code="COL", - continent="South America", - name="Colombia", - capital="Bogot\xc3\xa1", - ), - Country( - timezones=["America/Costa_Rica"], - alpha_2_code="CR", - alpha_3_code="CRI", - continent="North America", - name="Costa Rica", - capital="San Jos\xc3\xa9", - ), - Country( - timezones=["America/Havana"], - alpha_2_code="CU", - alpha_3_code="CUB", - continent="North America", - name="Cuba", - capital="Havana", - ), - Country( - timezones=["Atlantic/Cape_Verde"], - alpha_2_code="CV", - alpha_3_code="CPV", - continent="Africa", - name="Cape Verde", - capital="Praia", - ), - Country( - timezones=["Asia/Nicosia"], - alpha_2_code="CY", - alpha_3_code="CYP", - continent="Asia", - name="Cyprus", - capital="Nicosia", - ), - Country( - timezones=["Europe/Prague"], - alpha_2_code="CZ", - alpha_3_code="CZE", - continent="Europe", - name="Czech Republic", - capital="Prague", - ), - Country( - timezones=["Europe/Berlin"], - alpha_2_code="DE", - alpha_3_code="DEU", - continent="Europe", - name="Germany", - capital="Berlin", - ), - Country( - timezones=["Africa/Djibouti"], - alpha_2_code="DJ", - alpha_3_code="DJI", - continent="Africa", - name="Djibouti", - capital="Djibouti City", - ), - Country( - timezones=["Europe/Copenhagen"], - alpha_2_code="DK", - alpha_3_code="DNK", - continent="Europe", - name="Denmark", - capital="Copenhagen", - ), - Country( - timezones=["America/Dominica"], - alpha_2_code="DM", - alpha_3_code="DMA", - continent="North America", - name="Dominica", - capital="Roseau", - ), - Country( - timezones=["America/Santo_Domingo"], - alpha_2_code="DO", - alpha_3_code="DOM", - continent="North America", - name="Dominican Republic", - capital="Santo Domingo", - ), - Country( - timezones=["America/Guayaquil", "Pacific/Galapagos"], - alpha_2_code="EC", - alpha_3_code="ECU", - continent="South America", - name="Ecuador", - capital="Quito", - ), - Country( - timezones=["Europe/Tallinn"], - alpha_2_code="EE", - alpha_3_code="EST", - continent="Europe", - name="Estonia", - capital="Tallinn", - ), - Country( - timezones=["Africa/Cairo"], - alpha_2_code="EG", - alpha_3_code="EGY", - continent="Africa", - name="Egypt", - capital="Cairo", - ), - Country( - timezones=["Africa/Asmera"], - alpha_2_code="ER", - alpha_3_code="ERI", - continent="Africa", - name="Eritrea", - capital="Asmara", - ), - Country( - timezones=["Africa/Addis_Ababa"], - alpha_2_code="ET", - alpha_3_code="ETH", - continent="Africa", - name="Ethiopia", - capital="Addis Ababa", - ), - Country( - timezones=["Europe/Helsinki"], - alpha_2_code="FI", - alpha_3_code="FIN", - continent="Europe", - name="Finland", - capital="Helsinki", - ), - Country( - timezones=["Pacific/Fiji"], - alpha_2_code="FJ", - alpha_3_code="FJI", - continent="Oceania", - name="Fiji", - capital="Suva", - ), - Country( - timezones=["Europe/Paris"], - alpha_2_code="FR", - alpha_3_code="FRA", - continent="Europe", - name="France", - capital="Paris", - ), - Country( - timezones=["Africa/Libreville"], - alpha_2_code="GA", - alpha_3_code="GAB", - continent="Africa", - name="Gabon", - capital="Libreville", - ), - Country( - timezones=["Asia/Tbilisi"], - alpha_2_code="GE", - alpha_3_code="GEO", - continent="Asia", - name="Georgia", - capital="Tbilisi", - ), - Country( - timezones=["Africa/Accra"], - alpha_2_code="GH", - alpha_3_code="GHA", - continent="Africa", - name="Ghana", - capital="Accra", - ), - Country( - timezones=["Africa/Banjul"], - alpha_2_code="GM", - alpha_3_code="GMB", - continent="Africa", - name="The Gambia", - capital="Banjul", - ), - Country( - timezones=["Africa/Conakry"], - alpha_2_code="GN", - alpha_3_code="GIN", - continent="Africa", - name="Guinea", - capital="Conakry", - ), - Country( - timezones=["Europe/Athens"], - alpha_2_code="GR", - alpha_3_code="GRC", - continent="Europe", - name="Greece", - capital="Athens", - ), - Country( - timezones=["America/Guatemala"], - alpha_2_code="GT", - alpha_3_code="GTM", - continent="North America", - name="Guatemala", - capital="Guatemala City", - ), - Country( - timezones=["America/Guatemala"], - alpha_2_code="HT", - alpha_3_code="HTI", - continent="North America", - name="Haiti", - capital="Port-au-Prince", - ), - Country( - timezones=["Africa/Bissau"], - alpha_2_code="GW", - alpha_3_code="GNB", - continent="Africa", - name="Guinea-Bissau", - capital="Bissau", - ), - Country( - timezones=["America/Guyana"], - alpha_2_code="GY", - alpha_3_code="GUY", - continent="South America", - name="Guyana", - capital="Georgetown", - ), - Country( - timezones=["America/Tegucigalpa"], - alpha_2_code="HN", - alpha_3_code="HND", - continent="North America", - name="Honduras", - capital="Tegucigalpa", - ), - Country( - timezones=["Europe/Budapest"], - alpha_2_code="HU", - alpha_3_code="HUN", - continent="Europe", - name="Hungary", - capital="Budapest", - ), - Country( - timezones=[ - "Asia/Jakarta", - "Asia/Pontianak", - "Asia/Makassar", - "Asia/Jayapura", - ], - alpha_2_code="ID", - alpha_3_code="IDN", - continent="Asia", - name="Indonesia", - capital="Jakarta", - ), - Country( - timezones=["Europe/Dublin"], - alpha_2_code="IE", - alpha_3_code="IRL", - continent="Europe", - name="Republic of Ireland", - capital="Dublin", - ), - Country( - timezones=["Asia/Jerusalem"], - alpha_2_code="IL", - alpha_3_code="ISR", - continent="Asia", - name="Israel", - capital="Jerusalem", - ), - Country( - timezones=["Asia/Calcutta"], - alpha_2_code="IN", - alpha_3_code="IND", - continent="Asia", - name="India", - capital="New Delhi", - ), - Country( - timezones=["Asia/Baghdad"], - alpha_2_code="IQ", - alpha_3_code="IRQ", - continent="Asia", - name="Iraq", - capital="Baghdad", - ), - Country( - timezones=["Asia/Tehran"], - alpha_2_code="IR", - alpha_3_code="IRN", - continent="Asia", - name="Iran", - capital="Tehran", - ), - Country( - timezones=["Atlantic/Reykjavik"], - alpha_2_code="IS", - alpha_3_code="ISL", - continent="Europe", - name="Iceland", - capital="Reykjav\xc3\xadk", - ), - Country( - timezones=["Europe/Rome"], - alpha_2_code="IT", - alpha_3_code="ITA", - continent="Europe", - name="Italy", - capital="Rome", - ), - Country( - timezones=["America/Jamaica"], - alpha_2_code="JM", - alpha_3_code="JAM", - continent="North America", - name="Jamaica", - capital="Kingston", - ), - Country( - timezones=["Asia/Amman"], - alpha_2_code="JO", - alpha_3_code="JOR", - continent="Asia", - name="Jordan", - capital="Amman", - ), - Country( - timezones=["Asia/Tokyo"], - alpha_2_code="JP", - alpha_3_code="JPN", - continent="Asia", - name="Japan", - capital="Tokyo", - ), - Country( - timezones=["Africa/Nairobi"], - alpha_2_code="KE", - alpha_3_code="KEN", - continent="Africa", - name="Kenya", - capital="Nairobi", - ), - Country( - timezones=["Asia/Bishkek"], - alpha_2_code="KG", - alpha_3_code="KGZ", - continent="Asia", - name="Kyrgyzstan", - capital="Bishkek", - ), - Country( - timezones=["Pacific/Tarawa", "Pacific/Enderbury", "Pacific/Kiritimati"], - alpha_2_code="KI", - alpha_3_code="KIR", - continent="Oceania", - name="Kiribati", - capital="Tarawa", - ), - Country( - timezones=["Asia/Pyongyang"], - alpha_2_code="KP", - alpha_3_code="PRK", - continent="Asia", - name="North Korea", - capital="Pyongyang", - ), - Country( - timezones=["Asia/Seoul"], - alpha_2_code="KR", - alpha_3_code="KOR", - continent="Asia", - name="South Korea", - capital="Seoul", - ), - Country( - timezones=["Asia/Kuwait"], - alpha_2_code="KW", - alpha_3_code="KWT", - continent="Asia", - name="Kuwait", - capital="Kuwait City", - ), - Country( - timezones=["Asia/Beirut"], - alpha_2_code="LB", - alpha_3_code="LBN", - continent="Asia", - name="Lebanon", - capital="Beirut", - ), - Country( - timezones=["Europe/Vaduz"], - alpha_2_code="LI", - alpha_3_code="LIE", - continent="Europe", - name="Liechtenstein", - capital="Vaduz", - ), - Country( - timezones=["Africa/Monrovia"], - alpha_2_code="LR", - alpha_3_code="LBR", - continent="Africa", - name="Liberia", - capital="Monrovia", - ), - Country( - timezones=["Africa/Maseru"], - alpha_2_code="LS", - alpha_3_code="LSO", - continent="Africa", - name="Lesotho", - capital="Maseru", - ), - Country( - timezones=["Europe/Vilnius"], - alpha_2_code="LT", - alpha_3_code="LTU", - continent="Europe", - name="Lithuania", - capital="Vilnius", - ), - Country( - timezones=["Europe/Luxembourg"], - alpha_2_code="LU", - alpha_3_code="LUX", - continent="Europe", - name="Luxembourg", - capital="Luxembourg City", - ), - Country( - timezones=["Europe/Riga"], - alpha_2_code="LV", - alpha_3_code="LVA", - continent="Europe", - name="Latvia", - capital="Riga", - ), - Country( - timezones=["Africa/Tripoli"], - alpha_2_code="LY", - alpha_3_code="LBY", - continent="Africa", - name="Libya", - capital="Tripoli", - ), - Country( - timezones=["Indian/Antananarivo"], - alpha_2_code="MG", - alpha_3_code="MDG", - continent="Africa", - name="Madagascar", - capital="Antananarivo", - ), - Country( - timezones=["Pacific/Majuro", "Pacific/Kwajalein"], - alpha_2_code="MH", - alpha_3_code="MHL", - continent="Oceania", - name="Marshall Islands", - capital="Majuro", - ), - Country( - timezones=["Europe/Skopje"], - alpha_2_code="MK", - alpha_3_code="MKD", - continent="Europe", - name="North Macedonia", - capital="Skopje", - ), - Country( - timezones=["Africa/Bamako"], - alpha_2_code="ML", - alpha_3_code="MLI", - continent="Africa", - name="Mali", - capital="Bamako", - ), - Country( - timezones=["Asia/Rangoon"], - alpha_2_code="MM", - alpha_3_code="MMR", - continent="Asia", - name="Myanmar", - capital="Naypyidaw", - ), - Country( - timezones=["Asia/Ulaanbaatar", "Asia/Hovd", "Asia/Choibalsan"], - alpha_2_code="MN", - alpha_3_code="MNG", - continent="Asia", - name="Mongolia", - capital="Ulaanbaatar", - ), - Country( - timezones=["Africa/Nouakchott"], - alpha_2_code="MR", - alpha_3_code="MRT", - continent="Africa", - name="Mauritania", - capital="Nouakchott", - ), - Country( - timezones=["Europe/Malta"], - alpha_2_code="MT", - alpha_3_code="MLT", - continent="Europe", - name="Malta", - capital="Valletta", - ), - Country( - timezones=["Indian/Mauritius"], - alpha_2_code="MU", - alpha_3_code="MUS", - continent="Africa", - name="Mauritius", - capital="Port Louis", - ), - Country( - timezones=["Indian/Maldives"], - alpha_2_code="MV", - alpha_3_code="MDV", - continent="Asia", - name="Maldives", - capital="Mal\xc3\xa9", - ), - Country( - timezones=["Africa/Blantyre"], - alpha_2_code="MW", - alpha_3_code="MWI", - continent="Africa", - name="Malawi", - capital="Lilongwe", - ), - Country( - timezones=[ - "America/Mexico_City", - "America/Cancun", - "America/Merida", - "America/Monterrey", - "America/Mazatlan", - "America/Chihuahua", - "America/Hermosillo", - "America/Tijuana", - ], - alpha_2_code="MX", - alpha_3_code="MEX", - continent="North America", - name="Mexico", - capital="Mexico City", - ), - Country( - timezones=["Asia/Kuala_Lumpur", "Asia/Kuching"], - alpha_2_code="MY", - alpha_3_code="MYS", - continent="Asia", - name="Malaysia", - capital="Kuala Lumpur", - ), - Country( - timezones=["Africa/Maputo"], - alpha_2_code="MZ", - alpha_3_code="MOZ", - continent="Africa", - name="Mozambique", - capital="Maputo", - ), - Country( - timezones=["Africa/Windhoek"], - alpha_2_code="NA", - alpha_3_code="NAM", - continent="Africa", - name="Namibia", - capital="Windhoek", - ), - Country( - timezones=["Africa/Niamey"], - alpha_2_code="NE", - alpha_3_code="NER", - continent="Africa", - name="Niger", - capital="Niamey", - ), - Country( - timezones=["Africa/Lagos"], - alpha_2_code="NG", - alpha_3_code="NGA", - continent="Africa", - name="Nigeria", - capital="Abuja", - ), - Country( - timezones=["America/Managua"], - alpha_2_code="NI", - alpha_3_code="NIC", - continent="North America", - name="Nicaragua", - capital="Managua", - ), - Country( - timezones=["Europe/Amsterdam"], - alpha_2_code="NL", - alpha_3_code="NLD", - continent="Europe", - name="Kingdom of the Netherlands", - capital="Amsterdam", - ), - Country( - timezones=["Europe/Oslo"], - alpha_2_code="NO", - alpha_3_code="NOR", - continent="Europe", - name="Norway", - capital="Oslo", - ), - Country( - timezones=["Asia/Katmandu"], - alpha_2_code="NP", - alpha_3_code="NPL", - continent="Asia", - name="Nepal", - capital="Kathmandu", - ), - Country( - timezones=["Pacific/Nauru"], - alpha_2_code="NR", - alpha_3_code="NRU", - continent="Oceania", - name="Nauru", - capital="Yaren", - ), - Country( - timezones=["Pacific/Auckland", "Pacific/Chatham"], - alpha_2_code="NZ", - alpha_3_code="NZL", - continent="Oceania", - name="New Zealand", - capital="Wellington", - ), - Country( - timezones=["Asia/Muscat"], - alpha_2_code="OM", - alpha_3_code="OMN", - continent="Asia", - name="Oman", - capital="Muscat", - ), - Country( - timezones=["America/Panama"], - alpha_2_code="PA", - alpha_3_code="PAN", - continent="North America", - name="Panama", - capital="Panama City", - ), - Country( - timezones=["America/Lima"], - alpha_2_code="PE", - alpha_3_code="PER", - continent="South America", - name="Peru", - capital="Lima", - ), - Country( - timezones=["Pacific/Port_Moresby"], - alpha_2_code="PG", - alpha_3_code="PNG", - continent="Oceania", - name="Papua New Guinea", - capital="Port Moresby", - ), - Country( - timezones=["Asia/Manila"], - alpha_2_code="PH", - alpha_3_code="PHL", - continent="Asia", - name="Philippines", - capital="Manila", - ), - Country( - timezones=["Asia/Karachi"], - alpha_2_code="PK", - alpha_3_code="PAK", - continent="Asia", - name="Pakistan", - capital="Islamabad", - ), - Country( - timezones=["Europe/Warsaw"], - alpha_2_code="PL", - alpha_3_code="POL", - continent="Europe", - name="Poland", - capital="Warsaw", - ), - Country( - timezones=["Europe/Lisbon", "Atlantic/Madeira", "Atlantic/Azores"], - alpha_2_code="PT", - alpha_3_code="PRT", - continent="Europe", - name="Portugal", - capital="Lisbon", - ), - Country( - timezones=["Pacific/Palau"], - alpha_2_code="PW", - alpha_3_code="PLW", - continent="Oceania", - name="Palau", - capital="Ngerulmud", - ), - Country( - timezones=["America/Asuncion"], - alpha_2_code="PY", - alpha_3_code="PRY", - continent="South America", - name="Paraguay", - capital="Asunci\xc3\xb3n", - ), - Country( - timezones=["Asia/Qatar"], - alpha_2_code="QA", - alpha_3_code="QAT", - continent="Asia", - name="Qatar", - capital="Doha", - ), - Country( - timezones=["Europe/Bucharest"], - alpha_2_code="RO", - alpha_3_code="ROU", - continent="Europe", - name="Romania", - capital="Bucharest", - ), - Country( - timezones=[ - "Europe/Kaliningrad", - "Europe/Moscow", - "Europe/Volgograd", - "Europe/Samara", - "Asia/Yekaterinburg", - "Asia/Omsk", - "Asia/Novosibirsk", - "Asia/Krasnoyarsk", - "Asia/Irkutsk", - "Asia/Yakutsk", - "Asia/Vladivostok", - "Asia/Sakhalin", - "Asia/Magadan", - "Asia/Kamchatka", - "Asia/Anadyr", - ], - alpha_2_code="RU", - alpha_3_code="RUS", - continent="Europe", - name="Russia", - capital="Moscow", - ), - Country( - timezones=["Africa/Kigali"], - alpha_2_code="RW", - alpha_3_code="RWA", - continent="Africa", - name="Rwanda", - capital="Kigali", - ), - Country( - timezones=["Asia/Riyadh"], - alpha_2_code="SA", - alpha_3_code="SAU", - continent="Asia", - name="Saudi Arabia", - capital="Riyadh", - ), - Country( - timezones=["Pacific/Guadalcanal"], - alpha_2_code="SB", - alpha_3_code="SLB", - continent="Oceania", - name="Solomon Islands", - capital="Honiara", - ), - Country( - timezones=["Indian/Mahe"], - alpha_2_code="SC", - alpha_3_code="SYC", - continent="Africa", - name="Seychelles", - capital="Victoria", - ), - Country( - timezones=["Africa/Khartoum"], - alpha_2_code="SD", - alpha_3_code="SDN", - continent="Africa", - name="Sudan", - capital="Khartoum", - ), - Country( - timezones=["Europe/Stockholm"], - alpha_2_code="SE", - alpha_3_code="SWE", - continent="Europe", - name="Sweden", - capital="Stockholm", - ), - Country( - timezones=["Asia/Singapore"], - alpha_2_code="SG", - alpha_3_code="SGP", - continent="Asia", - name="Singapore", - capital="Singapore", - ), - Country( - timezones=["Europe/Ljubljana"], - alpha_2_code="SI", - alpha_3_code="SVN", - continent="Europe", - name="Slovenia", - capital="Ljubljana", - ), - Country( - timezones=["Europe/Bratislava"], - alpha_2_code="SK", - alpha_3_code="SVK", - continent="Europe", - name="Slovakia", - capital="Bratislava", - ), - Country( - timezones=["Africa/Freetown"], - alpha_2_code="SL", - alpha_3_code="SLE", - continent="Africa", - name="Sierra Leone", - capital="Freetown", - ), - Country( - timezones=["Europe/San_Marino"], - alpha_2_code="SM", - alpha_3_code="SMR", - continent="Europe", - name="San Marino", - capital="San Marino", - ), - Country( - timezones=["Africa/Dakar"], - alpha_2_code="SN", - alpha_3_code="SEN", - continent="Africa", - name="Senegal", - capital="Dakar", - ), - Country( - timezones=["Africa/Mogadishu"], - alpha_2_code="SO", - alpha_3_code="SOM", - continent="Africa", - name="Somalia", - capital="Mogadishu", - ), - Country( - timezones=["America/Paramaribo"], - alpha_2_code="SR", - alpha_3_code="SUR", - continent="South America", - name="Suriname", - capital="Paramaribo", - ), - Country( - timezones=["Africa/Sao_Tome"], - alpha_2_code="ST", - alpha_3_code="STP", - continent="Africa", - name="S\xc3\xa3o Tom\xc3\xa9 and Pr\xc3\xadncipe", - capital="S\xc3\xa3o Tom\xc3\xa9", - ), - Country( - timezones=["Asia/Damascus"], - alpha_2_code="SY", - alpha_3_code="SYR", - continent="Asia", - name="Syria", - capital="Damascus", - ), - Country( - timezones=["Africa/Lome"], - alpha_2_code="TG", - alpha_3_code="TGO", - continent="Africa", - name="Togo", - capital="Lom\xc3\xa9", - ), - Country( - timezones=["Asia/Bangkok"], - alpha_2_code="TH", - alpha_3_code="THA", - continent="Asia", - name="Thailand", - capital="Bangkok", - ), - Country( - timezones=["Asia/Dushanbe"], - alpha_2_code="TJ", - alpha_3_code="TJK", - continent="Asia", - name="Tajikistan", - capital="Dushanbe", - ), - Country( - timezones=["Asia/Ashgabat"], - alpha_2_code="TM", - alpha_3_code="TKM", - continent="Asia", - name="Turkmenistan", - capital="Ashgabat", - ), - Country( - timezones=["Africa/Tunis"], - alpha_2_code="TN", - alpha_3_code="TUN", - continent="Africa", - name="Tunisia", - capital="Tunis", - ), - Country( - timezones=["Pacific/Tongatapu"], - alpha_2_code="TO", - alpha_3_code="TON", - continent="Oceania", - name="Tonga", - capital="Nuku\xca\xbbalofa", - ), - Country( - timezones=["Europe/Istanbul"], - alpha_2_code="TR", - alpha_3_code="TUR", - continent="Asia", - name="Turkey", - capital="Ankara", - ), - Country( - timezones=["America/Port_of_Spain"], - alpha_2_code="TT", - alpha_3_code="TTO", - continent="North America", - name="Trinidad and Tobago", - capital="Port of Spain", - ), - Country( - timezones=["Pacific/Funafuti"], - alpha_2_code="TV", - alpha_3_code="TUV", - continent="Oceania", - name="Tuvalu", - capital="Funafuti", - ), - Country( - timezones=["Africa/Dar_es_Salaam"], - alpha_2_code="TZ", - alpha_3_code="TZA", - continent="Africa", - name="Tanzania", - capital="Dodoma", - ), - Country( - timezones=[ - "Europe/Kyiv", - "Europe/Uzhgorod", - "Europe/Zaporozhye", - "Europe/Simferopol", - ], - alpha_2_code="UA", - alpha_3_code="UKR", - continent="Europe", - name="Ukraine", - capital="Kyiv", - ), - Country( - timezones=["Africa/Kampala"], - alpha_2_code="UG", - alpha_3_code="UGA", - continent="Africa", - name="Uganda", - capital="Kampala", - ), - Country( - timezones=[ - "America/New_York", - "America/Detroit", - "America/Kentucky/Louisville", - "America/Kentucky/Monticello", - "America/Indiana/Indianapolis", - "America/Indiana/Marengo", - "America/Indiana/Knox", - "America/Indiana/Vevay", - "America/Chicago", - "America/Indiana/Vincennes", - "America/Indiana/Petersburg", - "America/Menominee", - "America/North_Dakota/Center", - "America/North_Dakota/New_Salem", - "America/Denver", - "America/Boise", - "America/Shiprock", - "America/Phoenix", - "America/Los_Angeles", - "America/Anchorage", - "America/Juneau", - "America/Yakutat", - "America/Nome", - "America/Adak", - "Pacific/Honolulu", - ], - alpha_2_code="US", - alpha_3_code="USA", - continent="North America", - name="United States", - capital="Washington, D.C.", - ), - Country( - timezones=["America/Montevideo"], - alpha_2_code="UY", - alpha_3_code="URY", - continent="South America", - name="Uruguay", - capital="Montevideo", - ), - Country( - timezones=["Asia/Samarkand", "Asia/Tashkent"], - alpha_2_code="UZ", - alpha_3_code="UZB", - continent="Asia", - name="Uzbekistan", - capital="Tashkent", - ), - Country( - timezones=["Europe/Vatican"], - alpha_2_code="VA", - alpha_3_code="VAT", - continent="Europe", - name="Vatican City", - capital="Vatican City", - ), - Country( - timezones=["America/Caracas"], - alpha_2_code="VE", - alpha_3_code="VEN", - continent="South America", - name="Venezuela", - capital="Caracas", - ), - Country( - timezones=["Asia/Saigon"], - alpha_2_code="VN", - alpha_3_code="VNM", - continent="Asia", - name="Vietnam", - capital="Hanoi", - ), - Country( - timezones=["Pacific/Efate"], - alpha_2_code="VU", - alpha_3_code="VUT", - continent="Oceania", - name="Vanuatu", - capital="Port Vila", - ), - Country( - timezones=["Asia/Aden"], - alpha_2_code="YE", - alpha_3_code="YEM", - continent="Asia", - name="Yemen", - capital="Sana'a", - ), - Country( - timezones=["Africa/Lusaka"], - alpha_2_code="ZM", - alpha_3_code="ZMB", - continent="Africa", - name="Zambia", - capital="Lusaka", - ), - Country( - timezones=["Africa/Harare"], - alpha_2_code="ZW", - alpha_3_code="ZWE", - continent="Africa", - name="Zimbabwe", - capital="Harare", - ), - Country( - timezones=["Africa/Algiers"], - alpha_2_code="DZ", - alpha_3_code="DZA", - continent="Africa", - name="Algeria", - capital="Algiers", - ), - Country( - timezones=["Europe/Sarajevo"], - alpha_2_code="BA", - alpha_3_code="BIH", - continent="Europe", - name="Bosnia and Herzegovina", - capital="Sarajevo", - ), - Country( - timezones=["Asia/Phnom_Penh"], - alpha_2_code="KH", - alpha_3_code="KHM", - continent="Asia", - name="Cambodia", - capital="Phnom Penh", - ), - Country( - timezones=["Africa/Bangui"], - alpha_2_code="CF", - alpha_3_code="CAF", - continent="Africa", - name="Central African Republic", - capital="Bangui", - ), - Country( - timezones=["Africa/Ndjamena"], - alpha_2_code="TD", - alpha_3_code="TCD", - continent="Africa", - name="Chad", - capital="N'Djamena", - ), - Country( - timezones=["Indian/Comoro"], - alpha_2_code="KM", - alpha_3_code="COM", - continent="Africa", - name="Comoros", - capital="Moroni", - ), - Country( - timezones=["Europe/Zagreb"], - alpha_2_code="HR", - alpha_3_code="HRV", - continent="Europe", - name="Croatia", - capital="Zagreb", - ), - Country( - timezones=["Asia/Dili"], - alpha_2_code="TL", - alpha_3_code="TLS", - continent="Asia", - name="East Timor", - capital="Dili", - ), - Country( - timezones=["America/El_Salvador"], - alpha_2_code="SV", - alpha_3_code="SLV", - continent="North America", - name="El Salvador", - capital="San Salvador", - ), - Country( - timezones=["Africa/Malabo"], - alpha_2_code="GQ", - alpha_3_code="GNQ", - continent="Africa", - name="Equatorial Guinea", - capital="Malabo", - ), - Country( - timezones=["America/Grenada"], - alpha_2_code="GD", - alpha_3_code="GRD", - continent="North America", - name="Grenada", - capital="St. George's", - ), - Country( - timezones=[ - "Asia/Almaty", - "Asia/Qyzylorda", - "Asia/Aqtobe", - "Asia/Aqtau", - "Asia/Oral", - ], - alpha_2_code="KZ", - alpha_3_code="KAZ", - continent="Asia", - name="Kazakhstan", - capital="Astana", - ), - Country( - timezones=["Asia/Vientiane"], - alpha_2_code="LA", - alpha_3_code="LAO", - continent="Asia", - name="Laos", - capital="Vientiane", - ), - Country( - timezones=["Pacific/Truk", "Pacific/Ponape", "Pacific/Kosrae"], - alpha_2_code="FM", - alpha_3_code="FSM", - continent="Oceania", - name="Federated States of Micronesia", - capital="Palikir", - ), - Country( - timezones=["Europe/Chisinau"], - alpha_2_code="MD", - alpha_3_code="MDA", - continent="Europe", - name="Moldova", - capital="Chi\xc5\x9fin\xc4\x83u", - ), - Country( - timezones=["Europe/Monaco"], - alpha_2_code="MC", - alpha_3_code="MCO", - continent="Europe", - name="Monaco", - capital="Monaco", - ), - Country( - timezones=["Europe/Podgorica"], - alpha_2_code="ME", - alpha_3_code="MNE", - continent="Europe", - name="Montenegro", - capital="Podgorica", - ), - Country( - timezones=["Africa/Casablanca"], - alpha_2_code="MA", - alpha_3_code="MAR", - continent="Africa", - name="Morocco", - capital="Rabat", - ), - Country( - timezones=["America/St_Kitts"], - alpha_2_code="KN", - alpha_3_code="KNA", - continent="North America", - name="Saint Kitts and Nevis", - capital="Basseterre", - ), - Country( - timezones=["America/St_Lucia"], - alpha_2_code="LC", - alpha_3_code="LCA", - continent="North America", - name="Saint Lucia", - capital="Castries", - ), - Country( - timezones=["America/St_Vincent"], - alpha_2_code="VC", - alpha_3_code="VCT", - continent="North America", - name="Saint Vincent and the Grenadines", - capital="Kingstown", - ), - Country( - timezones=["Pacific/Apia"], - alpha_2_code="WS", - alpha_3_code="WSM", - continent="Oceania", - name="Samoa", - capital="Apia", - ), - Country( - timezones=["Europe/Belgrade"], - alpha_2_code="RS", - alpha_3_code="SRB", - continent="Europe", - name="Serbia", - capital="Belgrade", - ), - Country( - timezones=["Africa/Johannesburg"], - alpha_2_code="ZA", - alpha_3_code="ZAF", - continent="Africa", - name="South Africa", - capital="Pretoria", - ), - Country( - timezones=["Europe/Madrid", "Africa/Ceuta", "Atlantic/Canary"], - alpha_2_code="ES", - alpha_3_code="ESP", - continent="Europe", - name="Spain", - capital="Madrid", - ), - Country( - timezones=["Asia/Colombo"], - alpha_2_code="LK", - alpha_3_code="LKA", - continent="Asia", - name="Sri Lanka", - capital="Sri Jayewardenepura Kotte", - ), - Country( - timezones=["Africa/Mbabane"], - alpha_2_code="SZ", - alpha_3_code="SWZ", - continent="Africa", - name="Swaziland", - capital="Mbabane", - ), - Country( - timezones=["Europe/Zurich"], - alpha_2_code="CH", - alpha_3_code="CHE", - continent="Europe", - name="Switzerland", - capital="Bern", - ), - Country( - timezones=["Asia/Dubai"], - alpha_2_code="AE", - alpha_3_code="ARE", - continent="Asia", - name="United Arab Emirates", - capital="Abu Dhabi", - ), - Country( - timezones=["Europe/London"], - alpha_2_code="GB", - alpha_3_code="GBR", - continent="Europe", - name="United Kingdom", - capital="London", - ), - Country( - timezones=["Asia/Taipei"], - alpha_2_code="TW", - alpha_3_code="TWN", - continent="Asia", - name="Taiwan", - capital="Taipei", - ), - Country( - timezones=["Asia/Gaza", "Asia/Hebron"], - alpha_2_code="PS", - alpha_3_code="PSE", - continent="Asia", - name="Palestine", - capital="Ramallah", - ), - ] - - regex = re.compile(timedelta_pattern) - - def unix_time( - self, - end_datetime: Optional[DateParseType] = None, - start_datetime: Optional[DateParseType] = None, - ) -> float: - """ - Get a timestamp between January 1, 1970 and now, unless passed - explicit ``start_datetime`` or `end_datetime` values. - - On Windows, the decimal part is always 0. - - :param end_datetime: A ``DateParseType``. Defaults to the UNIX epoch - :param start_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - """ - start_datetime = self._parse_start_datetime(start_datetime) - end_datetime = self._parse_end_datetime(end_datetime) - return float(self._rand_seconds(start_datetime, end_datetime)) - - def time_delta(self, end_datetime: Optional[DateParseType] = None) -> timedelta: - """ - Get a random timedelta object of duration between the current date and time and `end_datetime` - - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - :sample: end_datetime='+30h' - """ - start_datetime = self._parse_start_datetime("now") - end_datetime = self._parse_end_datetime(end_datetime) - seconds = end_datetime - start_datetime - - ts = self._rand_seconds(*sorted([0, seconds])) - return timedelta(seconds=ts) - - def date_time( - self, - tzinfo: Optional[TzInfo] = None, - end_datetime: Optional[DateParseType] = None, - ) -> datetime: - """ - Get a datetime object for a date between January 1, 1970 and a specified end_datetime - - :param tzinfo: timezone, instance of datetime.tzinfo subclass - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - """ - # NOTE: On windows, the lowest value you can get from windows is 86400 - # on the first day. Known python issue: - # https://bugs.python.org/issue30684 - return datetime(1970, 1, 1, tzinfo=tzinfo) + timedelta(seconds=self.unix_time(end_datetime=end_datetime)) - - def date_time_ad( - self, - tzinfo: Optional[TzInfo] = None, - end_datetime: Optional[DateParseType] = None, - start_datetime: Optional[DateParseType] = None, - ) -> datetime: - """ - Get a datetime object for a date between January 1, 0001 and now - - :param tzinfo: timezone, instance of datetime.tzinfo subclass - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - :param start_datetime: A ``DateParseType``. Defaults to UNIX timestamp ``-62135596800``, - equivalent to 0001-01-01 00:00:00 UTC - - :sample: - """ - - # 1970-01-01 00:00:00 UTC minus 62135596800 seconds is - # 0001-01-01 00:00:00 UTC. Since _parse_end_datetime() is used - # elsewhere where a default value of 0 is expected, we can't - # simply change that class method to use this magic number as a - # default value when None is provided. - - start_time = -62135596800 if start_datetime is None else self._parse_start_datetime(start_datetime) - end_datetime = self._parse_end_datetime(end_datetime) - - ts = self._rand_seconds(start_time, end_datetime) - # NOTE: using datetime.fromtimestamp(ts) directly will raise - # a "ValueError: timestamp out of range for platform time_t" - # on some platforms due to system C functions; - # see http://stackoverflow.com/a/10588133/2315612 - # NOTE: On windows, the lowest value you can get from windows is 86400 - # on the first day. Known python issue: - # https://bugs.python.org/issue30684 - return datetime(1970, 1, 1, tzinfo=tzinfo) + timedelta(seconds=ts) - - def iso8601( - self, - tzinfo: Optional[TzInfo] = None, - end_datetime: Optional[DateParseType] = None, - sep: str = "T", - timespec: str = "auto", - ) -> str: - """ - Get an ISO 8601 string for a datetime between the UNIX epoch and now. - - :param tzinfo: timezone, instance of datetime.tzinfo subclass - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - :param sep: separator between date and time, defaults to 'T' - :param timespec: format specifier for the time part, defaults to 'auto' - see datetime.isoformat() documentation - - :sample: - """ - return self.date_time(tzinfo, end_datetime=end_datetime).isoformat(sep, timespec) - - def date(self, pattern: str = "%Y-%m-%d", end_datetime: Optional[DateParseType] = None) -> str: - """ - Get a date string between January 1, 1970 and now. - - :param pattern: Format of the date (year-month-day by default) - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - :sample: pattern='%m/%d/%Y' - :sample: end_datetime='+1w' - """ - return self.date_time(end_datetime=end_datetime).strftime(pattern) - - def date_object(self, end_datetime: Optional[datetime] = None) -> dtdate: - """ - Get a date object between January 1, 1970 and now - - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - :sample: end_datetime='+1w' - """ - return self.date_time(end_datetime=end_datetime).date() - - def time(self, pattern: str = "%H:%M:%S", end_datetime: Optional[DateParseType] = None) -> str: - """ - Get a time string (24h format by default) - - :param pattern: format - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - :sample: pattern='%I:%M %p' - """ - return self.date_time(end_datetime=end_datetime).time().strftime(pattern) - - def time_object(self, end_datetime: Optional[DateParseType] = None) -> dttime: - """ - Get a time object - - :param end_datetime: A ``DateParseType``. Defaults to the current date and time - - :sample: - :sample: end_datetime='+1h' - """ - return self.date_time(end_datetime=end_datetime).time() - - @classmethod - def _parse_start_datetime(cls, value: Optional[DateParseType]) -> int: - if value is None: - return 0 - - return cls._parse_date_time(value) - - @classmethod - def _parse_end_datetime(cls, value: Optional[DateParseType]) -> int: - if value is None: - return datetime_to_timestamp(datetime.now()) - - return cls._parse_date_time(value) - - @classmethod - def _parse_date_string(cls, value: str) -> Dict[str, float]: - parts = cls.regex.match(value) - if not parts: - raise ParseError(f"Can't parse date string `{value}`") - parts = parts.groupdict() - time_params: Dict[str, float] = {} - for name_, param_ in parts.items(): - if param_: - time_params[name_] = int(param_) - - if "years" in time_params: - if "days" not in time_params: - time_params["days"] = 0 - time_params["days"] += 365.24 * time_params.pop("years") - if "months" in time_params: - if "days" not in time_params: - time_params["days"] = 0 - time_params["days"] += 30.42 * time_params.pop("months") - - if not time_params: - raise ParseError(f"Can't parse date string `{value}`") - return time_params - - @classmethod - def _parse_timedelta(cls, value: Union[timedelta, str, float]) -> Union[float, int]: - if isinstance(value, timedelta): - return value.total_seconds() - if isinstance(value, str): - time_params = cls._parse_date_string(value) - return timedelta(**time_params).total_seconds() # type: ignore - if isinstance(value, (int, float)): - return value - raise ParseError(f"Invalid format for timedelta {value!r}") - - @classmethod - def _parse_date_time(cls, value: DateParseType, tzinfo: Optional[TzInfo] = None) -> int: - if isinstance(value, (datetime, dtdate)): - return datetime_to_timestamp(value) - now = datetime.now(tzinfo) - if isinstance(value, timedelta): - return datetime_to_timestamp(now + value) - if isinstance(value, str): - if value == "now": - return datetime_to_timestamp(datetime.now(tzinfo)) - time_params = cls._parse_date_string(value) - return datetime_to_timestamp(now + timedelta(**time_params)) # type: ignore - if isinstance(value, int): - return value - raise ParseError(f"Invalid format for date {value!r}") - - @classmethod - def _parse_date(cls, value: DateParseType) -> dtdate: - if isinstance(value, datetime): - return value.date() - elif isinstance(value, dtdate): - return value - today = dtdate.today() - if isinstance(value, timedelta): - return today + value - if isinstance(value, str): - if value in ("today", "now"): - return today - time_params = cls._parse_date_string(value) - return today + timedelta(**time_params) # type: ignore - if isinstance(value, int): - return today + timedelta(value) - raise ParseError(f"Invalid format for date {value!r}") - - def date_time_between( - self, - start_date: DateParseType = "-30y", - end_date: DateParseType = "now", - tzinfo: Optional[TzInfo] = None, - ) -> datetime: - """ - Get a datetime object based on a random date between two given dates. - Accepts date strings that can be recognized by strtotime(). - - :param start_date: A ``DateParseType``. Defaults to 30 years ago - :param end_date: A ``DateParseType``. Defaults to ``"now"`` - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - """ - start_date = self._parse_date_time(start_date, tzinfo=tzinfo) - end_date = self._parse_date_time(end_date, tzinfo=tzinfo) - if end_date - start_date <= 1: - ts = start_date + self.generator.random.random() - else: - ts = self._rand_seconds(start_date, end_date) - if tzinfo is None: - return datetime(1970, 1, 1, tzinfo=tzinfo) + timedelta(seconds=ts) - else: - return (datetime(1970, 1, 1, tzinfo=dttimezone.utc) + timedelta(seconds=ts)).astimezone(tzinfo) - - def date_between(self, start_date: DateParseType = "-30y", end_date: DateParseType = "today") -> dtdate: - """ - Get a Date object based on a random date between two given dates. - Accepts date strings that can be recognized by strtotime(). - - :param start_date: A ``DateParseType``. Defaults to 30 years ago - :param end_date: A ``DateParseType``. Defaults to ``"today"`` - - :sample: - :sample: start_date='-1w' - :sample: start_date="-1y", end_date="+1w" - """ - - start_date = self._parse_date(start_date) - end_date = self._parse_date(end_date) - return self.date_between_dates(date_start=start_date, date_end=end_date) - - def future_datetime(self, end_date: DateParseType = "+30d", tzinfo: Optional[TzInfo] = None) -> datetime: - """ - Get a datetime object based on a random date between 1 second form now - and a given date. - - :param end_date: A ``DateParseType``. Defaults to ``"+30d"`` - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: end_date='+1y' - """ - return self.date_time_between(start_date="+1s", end_date=end_date, tzinfo=tzinfo) - - def future_date(self, end_date: DateParseType = "+30d") -> dtdate: - """ - Get a Date object based on a random date between 1 day from now and a - given date. - - :param end_date: A ``DateParseType``. Defaults to ``"+30d"`` - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: end_date='+1y' - """ - return self.date_between(start_date="+1d", end_date=end_date) - - def past_datetime(self, start_date: DateParseType = "-30d", tzinfo: Optional[TzInfo] = None) -> datetime: - """ - Get a datetime object based on a random date between a given date and 1 - second ago. - - :param start_date: A ``DateParseType``. Defaults to ``"-30d"`` - :param tzinfo: timezone, instance of datetime.tzinfo subclass - :example: datetime('1999-02-02 11:42:52') - - :sample: - :sample: end_date='+1y' - """ - return self.date_time_between(start_date=start_date, end_date="-1s", tzinfo=tzinfo) - - def past_date(self, start_date: DateParseType = "-30d", tzinfo: Optional[TzInfo] = None) -> dtdate: - """ - Get a Date object based on a random date between a given date and 1 day - ago. - - :param start_date: A ``DateParseType``. Defaults to ``"-30d"`` - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: start_date='-1y' - """ - return self.date_between(start_date=start_date, end_date="-1d") - - def date_time_between_dates( - self, - datetime_start: Optional[DateParseType] = None, - datetime_end: Optional[DateParseType] = None, - tzinfo: Optional[TzInfo] = None, - ) -> datetime: - """ - Get a random datetime between the two given datetimes. - - :param datetime_start: A ``DateParseType``. Defaults to the UNIX epoch - :param datetime_end: A ``DateParseType``. Defaults to the current date and time - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: datetime_start='-30y', datetime_end='now' - :sample: datetime_start='now', datetime_end='+1y' - - """ - datetime_start_ = ( - datetime_to_timestamp(datetime.now(tzinfo)) - if datetime_start is None - else self._parse_date_time(datetime_start) - ) - datetime_end_ = ( - datetime_to_timestamp(datetime.now(tzinfo)) if datetime_end is None else self._parse_date_time(datetime_end) - ) - - timestamp = self._rand_seconds(datetime_start_, datetime_end_) - try: - if tzinfo is None: - pick = convert_timestamp_to_datetime(timestamp, _get_local_timezone()) - try: - pick = pick.astimezone(dttimezone.utc).replace(tzinfo=None) - except OSError: - pass - else: - pick = datetime.fromtimestamp(timestamp, tzinfo) - except OverflowError: - raise OverflowError( - "You specified an end date with a timestamp bigger than the maximum allowed on this" - " system. Please specify an earlier date.", - ) - return pick - - def date_between_dates( - self, - date_start: Optional[DateParseType] = None, - date_end: Optional[DateParseType] = None, - ) -> dtdate: - """ - Get a random date between the two given dates. - - :param date_start: A ``DateParseType``. Defaults to the UNIX epoch - :param date_end: A ``DateParseType``. Defaults to the current date and time - - :sample: - """ - return self.date_time_between_dates(date_start, date_end).date() - - def date_time_this_century( - self, - before_now: bool = True, - after_now: bool = False, - tzinfo: Optional[TzInfo] = None, - ) -> datetime: - """ - Gets a datetime object for the current century. - - :param before_now: include days in current century before today. Defaults to True - :param after_now: include days in current century after today. Defaults to False - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: before_now=False, after_now=True - """ - now = datetime.now(tzinfo) - this_century_start = datetime(now.year - (now.year % 100), 1, 1, tzinfo=tzinfo) - next_century_start = datetime(min(this_century_start.year + 100, MAXYEAR), 1, 1, tzinfo=tzinfo) - - if before_now and after_now: - return self.date_time_between_dates(this_century_start, next_century_start, tzinfo) - elif not before_now and after_now: - return self.date_time_between_dates(now, next_century_start, tzinfo) - elif not after_now and before_now: - return self.date_time_between_dates(this_century_start, now, tzinfo) - else: - return now - - def date_time_this_decade( - self, - before_now: bool = True, - after_now: bool = False, - tzinfo: Optional[TzInfo] = None, - ) -> datetime: - """ - Gets a datetime object for the decade year. - - :param before_now: include days in current decade before today. Defaults to True - :param after_now: include days in current decade after today. Defaults to False - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: before_now=False, after_now=True - """ - now = datetime.now(tzinfo) - this_decade_start = datetime(now.year - (now.year % 10), 1, 1, tzinfo=tzinfo) - next_decade_start = datetime(min(this_decade_start.year + 10, MAXYEAR), 1, 1, tzinfo=tzinfo) - - if before_now and after_now: - return self.date_time_between_dates(this_decade_start, next_decade_start, tzinfo) - elif not before_now and after_now: - return self.date_time_between_dates(now, next_decade_start, tzinfo) - elif not after_now and before_now: - return self.date_time_between_dates(this_decade_start, now, tzinfo) - else: - return now - - def date_time_this_year( - self, - before_now: bool = True, - after_now: bool = False, - tzinfo: Optional[TzInfo] = None, - ) -> datetime: - """ - Gets a datetime object for the current year. - - :param before_now: include days in current year before today. Defaults to True - :param after_now: include days in current year after today. Defaults to False - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: before_now=False, after_now=True - """ - now = datetime.now(tzinfo) - this_year_start = now.replace(month=1, day=1, hour=0, minute=0, second=0, microsecond=0) - next_year_start = datetime(now.year + 1, 1, 1, tzinfo=tzinfo) - - if before_now and after_now: - return self.date_time_between_dates(this_year_start, next_year_start, tzinfo) - elif not before_now and after_now: - return self.date_time_between_dates(now, next_year_start, tzinfo) - elif not after_now and before_now: - return self.date_time_between_dates(this_year_start, now, tzinfo) - else: - return now - - def date_time_this_month( - self, - before_now: bool = True, - after_now: bool = False, - tzinfo: Optional[TzInfo] = None, - ) -> datetime: - """ - Gets a datetime object for the current month. - - :param before_now: include days in current month before today. Defaults to True - :param after_now: include days in current month after today. Defaults to False - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - :sample: before_now=False, after_now=True - """ - now = datetime.now(tzinfo) - this_month_start = now.replace(day=1, hour=0, minute=0, second=0, microsecond=0) - next_month_start = _get_next_month_start(this_month_start) - - if before_now and after_now: - return self.date_time_between_dates(this_month_start, next_month_start, tzinfo) - elif not before_now and after_now: - return self.date_time_between_dates(now, next_month_start, tzinfo) - elif not after_now and before_now: - return self.date_time_between_dates(this_month_start, now, tzinfo) - else: - return now - - def date_this_century(self, before_today: bool = True, after_today: bool = False) -> dtdate: - """ - Gets a Date object for the current century. - - :param before_today: include days in current century before today. Defaults to True - :param after_today: include days in current century after today. Defaults to False - - :sample: - :sample: before_today=False, after_today=True - """ - today = dtdate.today() - this_century_start = dtdate(today.year - (today.year % 100), 1, 1) - next_century_start = dtdate(this_century_start.year + 100, 1, 1) - - if before_today and after_today: - return self.date_between_dates(this_century_start, next_century_start) - elif not before_today and after_today: - return self.date_between_dates(today, next_century_start) - elif not after_today and before_today: - return self.date_between_dates(this_century_start, today) - else: - return today - - def date_this_decade(self, before_today: bool = True, after_today: bool = False) -> dtdate: - """ - Gets a Date object for the decade year. - - :param before_today: include days in current decade before today. Defaults to True - :param after_today: include days in current decade after today. Defaults to False - - :sample: - :sample: before_today=False, after_today=True - """ - today = dtdate.today() - this_decade_start = dtdate(today.year - (today.year % 10), 1, 1) - next_decade_start = dtdate(this_decade_start.year + 10, 1, 1) - - if before_today and after_today: - return self.date_between_dates(this_decade_start, next_decade_start) - elif not before_today and after_today: - return self.date_between_dates(today, next_decade_start) - elif not after_today and before_today: - return self.date_between_dates(this_decade_start, today) - else: - return today - - def date_this_year(self, before_today: bool = True, after_today: bool = False) -> dtdate: - """ - Gets a Date object for the current year. - - :param before_today: include days in current year before today. Defaults to True - :param after_today: include days in current year after today. Defaults to False - - :sample: - :sample: before_today=False, after_today=True - """ - today = dtdate.today() - this_year_start = today.replace(month=1, day=1) - next_year_start = dtdate(today.year + 1, 1, 1) - - if before_today and after_today: - return self.date_between_dates(this_year_start, next_year_start) - elif not before_today and after_today: - return self.date_between_dates(today, next_year_start) - elif not after_today and before_today: - return self.date_between_dates(this_year_start, today) - else: - return today - - def date_this_month(self, before_today: bool = True, after_today: bool = False) -> dtdate: - """ - Gets a Date object for the current month. - - :param before_today: include days in current month before today. Defaults to True - :param after_today: include days in current month after today. Defaults to False - - :sample: - :sample: before_today=False, after_today=True - """ - today = dtdate.today() - this_month_start = today.replace(day=1) - next_month_start = _get_next_month_start(this_month_start) - - if before_today and after_today: - return self.date_between_dates(this_month_start, next_month_start) - elif not before_today and after_today: - return self.date_between_dates(today, next_month_start) - elif not after_today and before_today: - return self.date_between_dates(this_month_start, today) - else: - return today - - def time_series( - self, - start_date: DateParseType = "-30d", - end_date: DateParseType = "now", - precision: Optional[float] = None, - distrib: Optional[Callable[[datetime], float]] = None, - tzinfo: Optional[TzInfo] = None, - ) -> Iterator[Tuple[datetime, Any]]: - """ - Returns a generator yielding tuples of ``(, )``. - - The data points will start at ``start_date``, and be at every time interval specified by - ``precision``. - - :param start_date: A ``DateParseType``. Defaults to ``"-30d"`` - :param end_date: A ``DateParseType``. Defaults to ``"now"`` - :param precision: A float representing the time interval between data points. - Defaults to 1/30th of the time - :param distrib: A callable that accepts a datetime object and returns a value. - Defaults to a uniform distribution - :param tzinfo: timezone, instance of datetime.tzinfo subclass - - :sample: - """ - start_date_ = self._parse_date_time(start_date, tzinfo=tzinfo) - end_date_ = self._parse_date_time(end_date, tzinfo=tzinfo) - - if end_date_ < start_date_: - raise ValueError("`end_date` must be greater than `start_date`.") - - precision_ = self._parse_timedelta((end_date_ - start_date_) / 30 if precision is None else precision) - if distrib is None: - - def distrib(dt): - return self.generator.random.uniform(0, precision_) # noqa - - if not callable(distrib): - raise ValueError(f"`distrib` must be a callable. Got {distrib} instead.") - - datapoint: Union[float, int] = start_date_ - while datapoint < end_date_: - dt = timestamp_to_datetime(datapoint, tzinfo) - datapoint += precision_ - yield (dt, distrib(dt)) - - def am_pm(self) -> str: - """ - :sample: - """ - return self.date("%p") - - def day_of_month(self) -> str: - """ - :sample: - """ - return self.date("%d") - - def day_of_week(self) -> str: - """ - :sample: - """ - return self.date("%A") - - def month(self) -> str: - """ - :sample: - """ - return self.date("%m") - - def month_name(self) -> str: - """ - :sample: - """ - return self.date("%B") - - def year(self) -> str: - """ - :sample: - """ - return self.date("%Y") - - def century(self) -> str: - """ - :sample: - """ - return self.random_element(self.centuries) - - def timezone(self) -> str: - """ - :sample: - """ - return self.generator.random.choice(self.random_element(self.countries).timezones) # type: ignore - - def pytimezone(self, *args: Any, **kwargs: Any) -> Optional[TzInfo]: - """ - Generate a random timezone (see ``faker.timezone`` for any args) - and return a Python object usable as a ``tzinfo`` for ``datetime`` - or other fakers. - - :sample: - """ - try: - return zoneinfo.ZoneInfo(self.timezone(*args, **kwargs)) # type: ignore - except zoneinfo.ZoneInfoNotFoundError as exc: - msg = ( - f"Timezone data not found: {exc}. " - "The 'tzdata' package provides timezone database files needed by Python's zoneinfo module. " - "While most systems have these files built-in, some minimal environments may not. " - f"Install faker with tzdata support: pip install 'faker[tzdata]'" - ) - raise ImportError(msg) from exc - - def date_of_birth( - self, - tzinfo: Optional[TzInfo] = None, - minimum_age: int = 0, - maximum_age: int = 115, - ) -> dtdate: - """ - Generate a random date of birth represented as a Date object, - constrained by optional miminimum_age and maximum_age - parameters. - - :param tzinfo: Defaults to None. - :param minimum_age: Defaults to ``0``. - :param maximum_age: Defaults to ``115``. - - :sample: - :sample: minimum_age=30, maximum_age=50 - """ - - if not isinstance(minimum_age, int): - raise TypeError("minimum_age must be an integer.") - - if not isinstance(maximum_age, int): - raise TypeError("maximum_age must be an integer.") - - if maximum_age < 0: - raise ValueError("maximum_age must be greater than or equal to zero.") - - if minimum_age < 0: - raise ValueError("minimum_age must be greater than or equal to zero.") - - if minimum_age > maximum_age: - raise ValueError("minimum_age must be less than or equal to maximum_age.") - - # In order to return the full range of possible dates of birth, add one - # year to the potential age cap and subtract one day if we land on the - # boundary. - - now = datetime.now(tzinfo).date() - start_date = change_year(now, -(maximum_age + 1)) - end_date = change_year(now, -minimum_age) - - dob = self.date_time_ad(tzinfo=tzinfo, start_datetime=start_date, end_datetime=end_date).date() - - return dob if dob != start_date else dob + timedelta(days=1) - - -def convert_timestamp_to_datetime(timestamp: Union[int, float], tzinfo: TzInfo) -> datetime: - import datetime as dt - - if timestamp >= 0: - return dt.datetime.fromtimestamp(timestamp, tzinfo) - else: - return dt.datetime(1970, 1, 1, tzinfo=tzinfo) + dt.timedelta(seconds=int(timestamp)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 02136948b10e63c355861450ce43ff88cb555b50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65400 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
    4aTq!Vx&E%*m`k<$?)3oHN3 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 K8FfHq-d_RP`r(iO diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_AA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_AA/__init__.py deleted file mode 100644 index 2dbcc77..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_AA/__init__.py +++ /dev/null @@ -1,1765 +0,0 @@ -from faker.typing import Country - -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "السبت", - "1": "الأحد", - "2": "الإثنين", - "3": "الثلاثاء", - "4": "الأربعاء", - "5": "الخميس", - "6": "الجمعة", - } - - MONTH_NAMES = { - "01": "كانون الثّاني", - "02": "شباط", - "03": "آذار", - "04": "نيسان", - "05": "أيّار", - "06": "حزيران", - "07": "تمّوز", - "08": "آب", - "09": "أيلول", - "10": "تشرين الأول", - "11": "تشرين الثاني", - "12": "كانون الأول", - } - - centuries = [ - "الأول", - "الثاني", - "الثالث", - "الرابع", - "الخامس", - "السادس", - "السابع", - "الثامن", - "التاسع", - "العاشر", - "الحادي عشر", - "الثاني عشر", - "الثالث عشر", - "الرابع عشر", - "الخامس عشر", - "السادس عشر", - "الثامن عشر", - "التاسع عشر", - "العشرين", - "الحادي والعشرين", - "الثاني والعشرين", - ] - - countries = [ - Country( - timezones=["أوروب/أندورا"], - alpha_2_code="AD", - alpha_3_code="AND", - continent="أوروبا", - name="أندورا", - capital="أندورا لا فيلا", - ), - Country( - timezones=["آسيا/كابل"], - alpha_2_code="AF", - alpha_3_code="AFG", - continent="آسيا", - name="أفغانستان", - capital="كابل", - ), - Country( - timezones=["أمريكا/أنتيغوا"], - alpha_2_code="AG", - alpha_3_code="ATG", - continent="أمريكا الشمالية", - name="أنتيغوا وباربودا", - capital="سانت جونز", - ), - Country( - timezones=["أوروبا/تيرانا"], - alpha_2_code="AL", - alpha_3_code="ALB", - continent="أوروبا", - name="ألبانيا", - capital="تيرانا", - ), - Country( - timezones=["آسيا/يريفان"], - alpha_2_code="AM", - alpha_3_code="ARM", - continent="آسيا", - name="أرمينيا", - capital="يريفان", - ), - Country( - timezones=["إفريقيا/لواندا"], - alpha_2_code="AO", - alpha_3_code="AGO", - continent="إفريقيا", - name="أنغولا", - capital="لواندا", - ), - Country( - timezones=[ - "أمريكا/الأرجنتين/بوينس_آيرس", - "أمريكا/الأرجنتين/Cordoba", - "أمريكا/الأرجنتين/خوخوي", - "أمريكا/الأرجنتين/توكومان", - "أمريكا/الأرجنتين/كاتاماركا", - "أمريكا/الأرجنتين/لا_ريوخا", - "أمريكا/الأرجنتين/سان_خوان", - "أمريكا/الأرجنتين/مندوزا", - "أمريكا/الأرجنتين/ريو_غاليغوس", - "أمريكا/الأرجنتين/أوشوايا", - ], - alpha_2_code="AR", - alpha_3_code="ARG", - continent="أمريكا الجنوبية", - name="الأرجنتين", - capital="بوينس آيرس", - ), - Country( - timezones=["أوروبا/النمسا"], - alpha_2_code="AT", - alpha_3_code="AUT", - continent="أوروبا", - name="النمسا", - capital="فيينا", - ), - Country( - timezones=[ - "أستراليا/لورد_هاو", - "أستراليا/هوبارت", - "أستراليا/كري", - "أستراليا/ملبورن", - "أستراليا/سدني", - "أستراليا/بروكن_هل", - "أستراليا/بريزبن", - "أستراليا/ليندمان", - "أستراليا/أديلايد", - "أستراليا/داروين", - "أستراليا/برث", - ], - alpha_2_code="AU", - alpha_3_code="AUS", - continent="أوقيانوسيا", - name="أستراليا", - capital="كانبرا", - ), - Country( - timezones=["آسيا/باكو"], - alpha_2_code="AZ", - alpha_3_code="AZE", - continent="آسيا", - name="أذربيجان", - capital="باكو", - ), - Country( - timezones=["أمريكا/باربادوس"], - alpha_2_code="BB", - alpha_3_code="BRB", - continent="أمريكا الشمالية", - name="باربادوس", - capital="بريدج تاون", - ), - Country( - timezones=["آسيا/دكا"], - alpha_2_code="BD", - alpha_3_code="BGD", - continent="آسيا", - name="بنغلادش", - capital="دكا", - ), - Country( - timezones=["أوروبا/بروكسل"], - alpha_2_code="BE", - alpha_3_code="BEL", - continent="أوروبا", - name="بلجيكا", - capital="بروكسل", - ), - Country( - timezones=["إفريقيا/واغادوغو"], - alpha_2_code="BF", - alpha_3_code="BFA", - continent="إفريقيا", - name="بوركينا فاسو", - capital="واغادوغو", - ), - Country( - timezones=["أوروبا/صوفيا"], - alpha_2_code="BG", - alpha_3_code="BGR", - continent="أوروبا", - name="بلغاريا", - capital="صوفيا", - ), - Country( - timezones=["آسيا/البحرين"], - alpha_2_code="BH", - alpha_3_code="BHR", - continent="آسيا", - name="البحرين", - capital="المنامة", - ), - Country( - timezones=["إفريقيا/بوجمبورا"], - alpha_2_code="BI", - alpha_3_code="BDI", - continent="إفريقيا", - name="بوروندي", - capital="بوجمبورا", - ), - Country( - timezones=["إفريقيا/بورتو نوفو"], - alpha_2_code="BJ", - alpha_3_code="BEN", - continent="إفريقيا", - name="بنين", - capital="بورتو نوفو", - ), - Country( - timezones=["آسيا/بروناي"], - alpha_2_code="BN", - alpha_3_code="BRN", - continent="آسيا", - name="اتحاد بروناي (دار السلام)", - capital="بندر سري بكاوان", - ), - Country( - timezones=["أمريكا/لاباز"], - alpha_2_code="BO", - alpha_3_code="BOL", - continent="أمريكا الجنوبية", - name="بوليفيا", - capital="سوكري", - ), - Country( - timezones=[ - "أمريكا/نورونها", - "أمريكا/بليم", - "أمريكا/فورتاليزا", - "أمريكا/ريسيفي", - "أمريكا/أراغوينا", - "أمريكا/ماسايو", - "أمريكا/باهيا", - "أمريكا/ساو_باولو", - "أمريكا/كامبو_غراندي", - "أمريكا/كويابا", - "أمريكا/بورتو_فاليو", - "أمريكا/بوا_فيستا", - "أمريكا/ماناوس", - "أمريكا/إيرونيبي", - "أمريكا/ريو_برانكو", - ], - alpha_2_code="BR", - alpha_3_code="BRA", - continent="أمريكا الجنوبية", - name="البرازيل", - capital="برازيليا", - ), - Country( - timezones=["أمريكا/ناساو"], - alpha_2_code="BS", - alpha_3_code="BHS", - continent="أمريكا الشمالية", - name="باهاماس", - capital="ناساو", - ), - Country( - timezones=["آسيا/تيمفو"], - alpha_2_code="BT", - alpha_3_code="BTN", - continent="آسيا", - name="بوتان", - capital="تيمفو", - ), - Country( - timezones=["إفريقيا/غابورون"], - alpha_2_code="BW", - alpha_3_code="BWA", - continent="إفريقيا", - name="بوتسوانا", - capital="غابورون", - ), - Country( - timezones=["أوروبا/مينسك"], - alpha_2_code="BY", - alpha_3_code="BLR", - continent="أوروبا", - name="روسيا البيضاء", - capital="مينسك", - ), - Country( - timezones=["أمريكا/بليز"], - alpha_2_code="BZ", - alpha_3_code="BLZ", - continent="أمريكا الشمالية", - name="بليز", - capital="بلموبان", - ), - Country( - timezones=[ - "أمريكا/سينت_جونز", - "أمريكا/هاليفاكس", - "أمريكا/جليس_باي", - "أمريكا/مونكتون", - "أمريكا/جووس_باي", - "أمريكا/بلانك_سابلون", - "أمريكا/مونتريال", - "أمريكا/تورونتو", - "أمريكا/نيبيغون", - "أمريكا/ثاندر_باي", - "أمريكا/بانغيرتانغ", - "أمريكا/إيكواليوت", - "أمريكا/أتيكوكان", - "أمريكا/رانكن_إنلت", - "أمريكا/وينيبيغ", - "أمريكا/رايني_ريفر", - "أمريكا/كامبريدج_باي", - "أمريكا/ريجينا", - "أمريكا/سويفت_كارنت", - "أمريكا/إدمونتون", - "أمريكا/يلو_نايف", - "أمريكا/إنوفك", - "أمريكا/دوسن_كريك", - "أمريكا/فانكوفر", - "أمريكا/وايت_هورس", - "أمريكا/داوسون", - ], - alpha_2_code="CA", - alpha_3_code="CAN", - continent="أمريكا الشمالية", - name="كندا", - capital="أوتاوا", - ), - Country( - timezones=["إفريقيا/كينشاسا", "إفريقيا/لوبومباشي"], - alpha_2_code="CD", - alpha_3_code="COD", - continent="إفريقيا", - name="جمهورية الكونغو الديمقراطية", - capital="كينشاسا", - ), - Country( - timezones=["إفريقيا/برازافيل"], - alpha_2_code="CG", - alpha_3_code="COG", - continent="إفريقيا", - name="جمهورية الكونغو", - capital="برازافيل", - ), - Country( - timezones=["إفريقيا/أبيدجان"], - alpha_2_code="CI", - alpha_3_code="CIV", - continent="إفريقيا", - name="ساحل العاج", - capital="ياموسوكرو", - ), - Country( - timezones=["أمريكا/سانتياغو", "المحيط_الهاديء/جزيرة_القيامة"], - alpha_2_code="CL", - alpha_3_code="CHL", - continent="أمريكا الجنوبية", - name="تشيلي", - capital="سانتياغو", - ), - Country( - timezones=["إفريقيا/دوالا"], - alpha_2_code="CM", - alpha_3_code="CMR", - continent="إفريقيا", - name="الكاميرون", - capital="ياوندي", - ), - Country( - timezones=[ - "آسيا/شانغهاي", - "آسيا/هاربن", - "آسيا/تشونغتشينغ", - "آسيا/أورومتشي", - "آسيا/كاشغر", - ], - alpha_2_code="CN", - alpha_3_code="CHN", - continent="آسيا", - name="جمهورية الصين الشعبية", - capital="بكين", - ), - Country( - timezones=["أمريكا/بوغوتا"], - alpha_2_code="CO", - alpha_3_code="COL", - continent="أمريكا الجنوبية", - name="كولومبيا", - capital="بوغوتا", - ), - Country( - timezones=["أمريكا/كوستاريكا"], - alpha_2_code="CR", - alpha_3_code="CRI", - continent="أمريكا الشمالية", - name="كوستاريكا", - capital="سان خوسيه", - ), - Country( - timezones=["أمريكا/هافانا"], - alpha_2_code="CU", - alpha_3_code="CUB", - continent="أمريكا الشمالية", - name="كوبا", - capital="هافانا", - ), - Country( - timezones=["الأطلنطي/الرأس_الأخضر"], - alpha_2_code="CV", - alpha_3_code="CPV", - continent="إفريقيا", - name="جمهورية الرأس الأخضر", - capital="برايا", - ), - Country( - timezones=["آسيا/نيقوسيا"], - alpha_2_code="CY", - alpha_3_code="CYP", - continent="آسيا", - name="قبرص", - capital="نيقوسيا", - ), - Country( - timezones=["أوروبا/براغ"], - alpha_2_code="CZ", - alpha_3_code="CZE", - continent="أوروبا", - name="جمهورية التشيك", - capital="براغ", - ), - Country( - timezones=["أوروبا/برلين"], - alpha_2_code="DE", - alpha_3_code="DEU", - continent="أوروبا", - name="ألمانيا", - capital="برلين", - ), - Country( - timezones=["إفريقيا/جيبوتي"], - alpha_2_code="DJ", - alpha_3_code="DJI", - continent="إفريقيا", - name="جيبوتي", - capital="جيبوتي", - ), - Country( - timezones=["أوروبا/كوبنهاغن"], - alpha_2_code="DK", - alpha_3_code="DNK", - continent="أوروبا", - name="الدنمارك", - capital="كوبنهاغن", - ), - Country( - timezones=["أمريكا/دومينيكا"], - alpha_2_code="DM", - alpha_3_code="DMA", - continent="أمريكا الشمالية", - name="دومينيكا", - capital="روسياو", - ), - Country( - timezones=["أمريكا/سانتو_دومينغو"], - alpha_2_code="DO", - alpha_3_code="DOM", - continent="أمريكا الشمالية", - name="جمهورية الدومينيكان", - capital="سانتو دومينغو", - ), - Country( - timezones=["أمريكا/غواياكيل", "المحيط_الهاديء/أرخبيل_غالاباغوس"], - alpha_2_code="EC", - alpha_3_code="ECU", - continent="أمريكا الجنوبية", - name="الإكوادور", - capital="كيتو", - ), - Country( - timezones=["أوروبا/تالين"], - alpha_2_code="EE", - alpha_3_code="EST", - continent="أوروبا", - name="إستونيا", - capital="تالين", - ), - Country( - timezones=["إفريقيا/القاهرة"], - alpha_2_code="EG", - alpha_3_code="EGY", - continent="إفريقيا", - name="مصر", - capital="القاهرة", - ), - Country( - timezones=["إفريقيا/أسمرة"], - alpha_2_code="ER", - alpha_3_code="ERI", - continent="إفريقيا", - name="إرتيريا", - capital="أسمرة", - ), - Country( - timezones=["إفريقيا/أديس أبابا"], - alpha_2_code="ET", - alpha_3_code="ETH", - continent="إفريقيا", - name="إثيوبيا", - capital="أديس أبابا", - ), - Country( - timezones=["أوروبا/هلسنكي"], - alpha_2_code="FI", - alpha_3_code="FIN", - continent="أوروبا", - name="فنلندا", - capital="هلسنكي", - ), - Country( - timezones=["المحيط_الهاديء/فيجي"], - alpha_2_code="FJ", - alpha_3_code="FJI", - continent="أوقيانوسيا", - name="فيجي", - capital="سوفا", - ), - Country( - timezones=["أوروبا/باريس"], - alpha_2_code="FR", - alpha_3_code="FRA", - continent="أوروبا", - name="فرنسا", - capital="باريس", - ), - Country( - timezones=["إفريقيا/ليبرفيل"], - alpha_2_code="GA", - alpha_3_code="GAB", - continent="إفريقيا", - name="الغابون", - capital="ليبرفيل", - ), - Country( - timezones=["آسيا/تبليسي"], - alpha_2_code="GE", - alpha_3_code="GEO", - continent="آسيا", - name="جورجيا", - capital="تبليسي", - ), - Country( - timezones=["إفريقيا/أكرا"], - alpha_2_code="GH", - alpha_3_code="GHA", - continent="إفريقيا", - name="غانا", - capital="أكرا", - ), - Country( - timezones=["إفريقيا/بانجول"], - alpha_2_code="GM", - alpha_3_code="GMB", - continent="إفريقيا", - name="غامبيا", - capital="بانجول", - ), - Country( - timezones=["إفريقيا/كوناكري"], - alpha_2_code="GN", - alpha_3_code="GIN", - continent="إفريقيا", - name="غينيا", - capital="كوناكري", - ), - Country( - timezones=["أوروبا/أثينا"], - alpha_2_code="GR", - alpha_3_code="GRC", - continent="أوروبا", - name="اليونان", - capital="أثينا", - ), - Country( - timezones=["أمريكا/غواتيمالا"], - alpha_2_code="GT", - alpha_3_code="GTM", - continent="أمريكا الشمالية", - name="غواتيمالا", - capital="غواتيمالا سيتي", - ), - Country( - timezones=["أمريكا/غواتيمالا"], - alpha_2_code="HT", - alpha_3_code="HTI", - continent="أمريكا الشمالية", - name="هايتي", - capital="بورت أو برانس", - ), - Country( - timezones=["إفريقيا/بيساو"], - alpha_2_code="GW", - alpha_3_code="GNB", - continent="إفريقيا", - name="غينيا بيساو", - capital="بيساو", - ), - Country( - timezones=["أمريكا/غيانا"], - alpha_2_code="GY", - alpha_3_code="GUY", - continent="أمريكا الجنوبية", - name="غيانا", - capital="جورج تاون", - ), - Country( - timezones=["أمريكا/تيجوسيجالبا"], - alpha_2_code="HN", - alpha_3_code="HND", - continent="أمريكا الشمالية", - name="هندوراس", - capital="تيجوسيجالبا", - ), - Country( - timezones=["أوروبا/بودابست"], - alpha_2_code="HU", - alpha_3_code="HUN", - continent="أوروبا", - name="هنغاريا", - capital="بودابست", - ), - Country( - timezones=[ - "آسيا/جاكرتا", - "آسيا/بونتياناك", - "آسيا/ماكاسار", - "آسيا/جايابورا", - ], - alpha_2_code="ID", - alpha_3_code="IDN", - continent="آسيا", - name="إندونسيا", - capital="جاكرتا", - ), - Country( - timezones=["أوروبا/دبلن"], - alpha_2_code="IE", - alpha_3_code="IRL", - continent="أوروبا", - name="إيرلندا", - capital="دبلن", - ), - Country( - timezones=["آسيا/القدس"], - alpha_2_code="IL", - alpha_3_code="ISR", - continent="آسيا", - name="فلسطين", - capital="القدس", - ), - Country( - timezones=["آسيا/كالكتا"], - alpha_2_code="IN", - alpha_3_code="IND", - continent="آسيا", - name="الهند", - capital="نيو دلهي", - ), - Country( - timezones=["آسيا/بغداد"], - alpha_2_code="IQ", - alpha_3_code="IRQ", - continent="آسيا", - name="العراق", - capital="بغداد", - ), - Country( - timezones=["آسيا/طهران"], - alpha_2_code="IR", - alpha_3_code="IRN", - continent="آسيا", - name="إيران", - capital="طهران", - ), - Country( - timezones=["الأطلنطي/ريكيافيك"], - alpha_2_code="IS", - alpha_3_code="ISL", - continent="أوروبا", - name="آيسلندا", - capital="ريكيافيك", - ), - Country( - timezones=["أوروبا/روما"], - alpha_2_code="IT", - alpha_3_code="ITA", - continent="أوروبا", - name="إيطاليا", - capital="روما", - ), - Country( - timezones=["أمريكا/جامايكا"], - alpha_2_code="JM", - alpha_3_code="JAM", - continent="أمريكا الشمالية", - name="جامايكا", - capital="كينغستون", - ), - Country( - timezones=["آسيا/عمّان"], - alpha_2_code="JO", - alpha_3_code="JOR", - continent="آسيا", - name="الأردن", - capital="عمّان", - ), - Country( - timezones=["آسيا/طوكيو"], - alpha_2_code="JP", - alpha_3_code="JPN", - continent="آسيا", - name="اليابان", - capital="طوكيو", - ), - Country( - timezones=["إفريقيا/نيروبي"], - alpha_2_code="KE", - alpha_3_code="KEN", - continent="إفريقيا", - name="كينيا", - capital="نيروبي", - ), - Country( - timezones=["آسيا/بشكيك"], - alpha_2_code="KG", - alpha_3_code="KGZ", - continent="آسيا", - name="قيرغيزستان", - capital="بشكيك", - ), - Country( - timezones=[ - "المحيط_الهاديء/تاراوا", - "المحيط_الهاديء/إيديربيري", - "المحيط_الهاديء/كريتيماتي", - ], - alpha_2_code="KI", - alpha_3_code="KIR", - continent="أوقيانوسيا", - name="كيريباتي", - capital="جنوب تاراوا", - ), - Country( - timezones=["آسيا/بيونغ_يانغ"], - alpha_2_code="KP", - alpha_3_code="PRK", - continent="آسيا", - name="كوريا الشمالية", - capital="بيونغ يانغ", - ), - Country( - timezones=["آسيا/سيؤول"], - alpha_2_code="KR", - alpha_3_code="KOR", - continent="آسيا", - name="؛كوريا الجنوبية", - capital="سيؤول", - ), - Country( - timezones=["آسيا/الكويت"], - alpha_2_code="KW", - alpha_3_code="KWT", - continent="آسيا", - name="الكويت", - capital="الكويت", - ), - Country( - timezones=["آسيا/بيروت"], - alpha_2_code="LB", - alpha_3_code="LBN", - continent="آسيا", - name="لبنان", - capital="بيروت", - ), - Country( - timezones=["أوروبا/فادوز"], - alpha_2_code="LI", - alpha_3_code="LIE", - continent="أوروبا", - name="ليختنشتاين", - capital="فادوز", - ), - Country( - timezones=["إفريقيا/مونروفيا"], - alpha_2_code="LR", - alpha_3_code="LBR", - continent="إفريقيا", - name="ليبيريا", - capital="مونروفيا", - ), - Country( - timezones=["إفريقيا/ماسيرو"], - alpha_2_code="LS", - alpha_3_code="LSO", - continent="إفريقيا", - name="ليسوتو", - capital="ماسيرو", - ), - Country( - timezones=["أوروبا/فيلنيوس"], - alpha_2_code="LT", - alpha_3_code="LTU", - continent="أوروبا", - name="ليتوانيا", - capital="فيلنيوس", - ), - Country( - timezones=["أوروبا/لوكسمبرغ"], - alpha_2_code="LU", - alpha_3_code="LUX", - continent="أوروبا", - name="لوكسمبرغ", - capital="لوكسمبرغ سيتي", - ), - Country( - timezones=["أوروبا/ربيغ"], - alpha_2_code="LV", - alpha_3_code="LVA", - continent="أوروبا", - name="لاتفيا", - capital="ربيغ", - ), - Country( - timezones=["إفريقيا/طرابلس"], - alpha_2_code="LY", - alpha_3_code="LBY", - continent="إفريقيا", - name="ليبيا", - capital="طرابلس", - ), - Country( - timezones=["الهندي/أنتاناناريفو"], - alpha_2_code="MG", - alpha_3_code="MDG", - continent="إفريقيا", - name="مدغشقر", - capital="أنتاناناريفو", - ), - Country( - timezones=["المحيط_الهاديء/ماجورو", "المحيط_الهاديء/كواجلين_أتول"], - alpha_2_code="MH", - alpha_3_code="MHL", - continent="أوقيانوسيا", - name="جزر مارشال", - capital="ماجورو", - ), - Country( - timezones=["أوروبا/سكوبيه"], - alpha_2_code="MK", - alpha_3_code="MKD", - continent="أوروبا", - name="جمهورية مقدونيا", - capital="سكوبيه", - ), - Country( - timezones=["إفريقيا/باماكو"], - alpha_2_code="ML", - alpha_3_code="MLI", - continent="إفريقيا", - name="مالي", - capital="باماكو", - ), - Country( - timezones=["آسيا/رانغون"], - alpha_2_code="MM", - alpha_3_code="MMR", - continent="آسيا", - name="ميانمار", - capital="نايبيداو", - ), - Country( - timezones=["آسيا/أولان_باتور", "آسيا/Hovd", "آسيا/تشويبالسان"], - alpha_2_code="MN", - alpha_3_code="MNG", - continent="آسيا", - name="مانغوليا", - capital="أولان باتور", - ), - Country( - timezones=["إفريقيا/نواكشط"], - alpha_2_code="MR", - alpha_3_code="MRT", - continent="إفريقيا", - name="موريتانيا", - capital="نواكشط", - ), - Country( - timezones=["أوروبا/مالطا"], - alpha_2_code="MT", - alpha_3_code="MLT", - continent="أوروبا", - name="مالطا", - capital="فاليتا", - ), - Country( - timezones=["الهندي/موريشيوس"], - alpha_2_code="MU", - alpha_3_code="MUS", - continent="إفريقيا", - name="موريشيوس", - capital="بور لويس", - ), - Country( - timezones=["الهندي/جزر_المالديف"], - alpha_2_code="MV", - alpha_3_code="MDV", - continent="آسيا", - name="جمهورية المالديف", - capital="ماليه", - ), - Country( - timezones=["إفريقيا/بلانتاير"], - alpha_2_code="MW", - alpha_3_code="MWI", - continent="إفريقيا", - name="ملاوي", - capital="ليلونغوي", - ), - Country( - timezones=[ - "أمريكا/ميكسيكو_سيتي", - "أمريكا/كانكون", - "أمريكا/ميرديا", - "أمريكا/مونتيري", - "أمريكا/مازاتلان", - "أمريكا/شيواوا", - "أمريكا/ارموسييو_سونورا", - "أمريكا/تيخوانا", - ], - alpha_2_code="MX", - alpha_3_code="MEX", - continent="أمريكا الشمالية", - name="المكسيك", - capital="ميكسيكو سيتي§", - ), - Country( - timezones=["آسيا/كوالا_لامبور", "آسيا/Kuching"], - alpha_2_code="MY", - alpha_3_code="MYS", - continent="آسيا", - name="ماليزيا", - capital="كوالا لامبور", - ), - Country( - timezones=["إفريقيا/مابوتو"], - alpha_2_code="MZ", - alpha_3_code="MOZ", - continent="إفريقيا", - name="موزمبيق", - capital="مابوتو", - ), - Country( - timezones=["إفريقيا/ويندهوك"], - alpha_2_code="NA", - alpha_3_code="NAM", - continent="إفريقيا", - name="ناميبيا", - capital="ويندهوك", - ), - Country( - timezones=["إفريقيا/نيامي"], - alpha_2_code="NE", - alpha_3_code="NER", - continent="إفريقيا", - name="النيجر", - capital="نيامي", - ), - Country( - timezones=["إفريقيا/لاغوس"], - alpha_2_code="NG", - alpha_3_code="NGA", - continent="إفريقيا", - name="نيجيريا", - capital="أبوجا", - ), - Country( - timezones=["أمريكا/ماناغوا"], - alpha_2_code="NI", - alpha_3_code="NIC", - continent="أمريكا الشمالية", - name="نيكاراغوا", - capital="ماناغوا", - ), - Country( - timezones=["أوروبا/أمستردام"], - alpha_2_code="NL", - alpha_3_code="NLD", - continent="أوروبا", - name="هولندا", - capital="أمستردام", - ), - Country( - timezones=["أوروبا/أوسلو"], - alpha_2_code="NO", - alpha_3_code="NOR", - continent="أوروبا", - name="النرويج", - capital="أوسلو", - ), - Country( - timezones=["آسيا/كاتماندو"], - alpha_2_code="NP", - alpha_3_code="NPL", - continent="آسيا", - name="النيبال", - capital="كاتماندو", - ), - Country( - timezones=["المحيط_الهاديء/ناورو"], - alpha_2_code="NR", - alpha_3_code="NRU", - continent="أوقيانوسيا", - name="ناورو", - capital="يارين", - ), - Country( - timezones=["المحيط_الهاديء/أوكلاند", "المحيط_الهاديء/تشاتهام"], - alpha_2_code="NZ", - alpha_3_code="NZL", - continent="أوقيانوسيا", - name="نيوزيلاندا", - capital="ويلينغتون", - ), - Country( - timezones=["آسيا/مسقط"], - alpha_2_code="OM", - alpha_3_code="OMN", - continent="آسيا", - name="عمان", - capital="مسقط", - ), - Country( - timezones=["أمريكا/بنما"], - alpha_2_code="PA", - alpha_3_code="PAN", - continent="أمريكا الشمالية", - name="بنما", - capital="بنما", - ), - Country( - timezones=["أمريكا/ليما"], - alpha_2_code="PE", - alpha_3_code="PER", - continent="أمريكا الجنوبية", - name="البيرو", - capital="ليما", - ), - Country( - timezones=["المحيط_الهاديء/بورت_مورسبي"], - alpha_2_code="PG", - alpha_3_code="PNG", - continent="أوقيانوسيا", - name="بابوا غينيا الجديدة", - capital="بورت مورسبي", - ), - Country( - timezones=["آسيا/مانيلا"], - alpha_2_code="PH", - alpha_3_code="PHL", - continent="آسيا", - name="الفيليبين", - capital="مانيلا", - ), - Country( - timezones=["آسيا/كاراتشي"], - alpha_2_code="PK", - alpha_3_code="PAK", - continent="آسيا", - name="باكستان", - capital="إسلام أباد", - ), - Country( - timezones=["أوروبا/وارسو"], - alpha_2_code="PL", - alpha_3_code="POL", - continent="أوروبا", - name="بولندا", - capital="وارسو", - ), - Country( - timezones=["أوروبا/لشبونة", "الأطلنطي/ماديرا", "الأطلنطي/الأزور"], - alpha_2_code="PT", - alpha_3_code="PRT", - continent="أوروبا", - name="البرتغال", - capital="لشبونة", - ), - Country( - timezones=["المحيط_الهاديء/بالاو"], - alpha_2_code="PW", - alpha_3_code="PLW", - continent="أوقيانوسيا", - name="بالاو", - capital="نجيرولمد", - ), - Country( - timezones=["أمريكا/أسونسيون"], - alpha_2_code="PY", - alpha_3_code="PRY", - continent="أمريكا الجنوبية", - name="بابرغوي", - capital="أسونسيون", - ), - Country( - timezones=["آسيا/قطر"], - alpha_2_code="QA", - alpha_3_code="QAT", - continent="آسيا", - name="قطر", - capital="الدوحة", - ), - Country( - timezones=["أوروبا/بوخارست"], - alpha_2_code="RO", - alpha_3_code="ROU", - continent="أوروبا", - name="رومانيا", - capital="بوخارست", - ), - Country( - timezones=[ - "أوروبا/كالينينغراد", - "أوروبا/موسكو", - "أوروبا/Volgograd", - "أوروبا/سمارة", - "آسيا/يكاترينبورغ", - "آسيا/أومسك", - "آسيا/نوفوسيبيرسك", - "آسيا/كراسنوياسك", - "آسيا/إروتسك", - "آسيا/ياكوتسك", - "آسيا/فالديفوستوك", - "آسيا/ساخالن", - "آسيا/ماغادان", - "آسيا/كامشتكا", - "آسيا/أنادير", - ], - alpha_2_code="RU", - alpha_3_code="RUS", - continent="أوروبا", - name="روسيا", - capital="موسكو", - ), - Country( - timezones=["إفريقيا/كيغالي"], - alpha_2_code="RW", - alpha_3_code="RWA", - continent="إفريقيا", - name="رواندا", - capital="كيغالي", - ), - Country( - timezones=["آسيا/الرياض"], - alpha_2_code="SA", - alpha_3_code="SAU", - continent="آسيا", - name="المملكة العربية السعودية", - capital="الرياض", - ), - Country( - timezones=["المحيط_الهاديء/غوادالكانال"], - alpha_2_code="SB", - alpha_3_code="SLB", - continent="أوقيانوسيا", - name="جزر سولمون", - capital="هونيارا", - ), - Country( - timezones=["الهندي/ماهي"], - alpha_2_code="SC", - alpha_3_code="SYC", - continent="إفريقيا", - name="سيشل", - capital="فيكتوريا", - ), - Country( - timezones=["إفريقيا/الخرطوم"], - alpha_2_code="SD", - alpha_3_code="SDN", - continent="إفريقيا", - name="السودان", - capital="الخرطوم", - ), - Country( - timezones=["أوروبا/ستوكهولم"], - alpha_2_code="SE", - alpha_3_code="SWE", - continent="أوروبا", - name="السويد", - capital="ستوكهولم", - ), - Country( - timezones=["آسيا/سنغافورة"], - alpha_2_code="SG", - alpha_3_code="SGP", - continent="آسيا", - name="سنغافورة", - capital="سنغافورة", - ), - Country( - timezones=["أوروبا/ليوبليانا"], - alpha_2_code="SI", - alpha_3_code="SVN", - continent="أوروبا", - name="سلوفانيا", - capital="ليوبليانا", - ), - Country( - timezones=["أوروبا/براتيسلافا"], - alpha_2_code="SK", - alpha_3_code="SVK", - continent="أوروبا", - name="سلوفاكيا", - capital="براتيسلافا", - ), - Country( - timezones=["إفريقيا/فريتاون"], - alpha_2_code="SL", - alpha_3_code="SLE", - continent="إفريقيا", - name="سيراليون", - capital="فريتاون", - ), - Country( - timezones=["أوروبا/سان_مارينو"], - alpha_2_code="SM", - alpha_3_code="SMR", - continent="أوروبا", - name="جمهورية سان مارينو", - capital="سان مارينو", - ), - Country( - timezones=["إفريقيا/داكار"], - alpha_2_code="SN", - alpha_3_code="SEN", - continent="إفريقيا", - name="السنغال", - capital="داكار", - ), - Country( - timezones=["إفريقيا/مقديشو"], - alpha_2_code="SO", - alpha_3_code="SOM", - continent="إفريقيا", - name="الصومال", - capital="مقديشو", - ), - Country( - timezones=["أمريكا/باراماريبو"], - alpha_2_code="SR", - alpha_3_code="SUR", - continent="أمريكا الجنوبية", - name="Suriname", - capital="باراماريبو", - ), - Country( - timezones=["إفريقيا/ساو_تومي"], - alpha_2_code="ST", - alpha_3_code="STP", - continent="إفريقيا", - name=" ساو تومي وبرينسيب", - capital="ساو تومي", - ), - Country( - timezones=["آسيا/دممشق"], - alpha_2_code="SY", - alpha_3_code="SYR", - continent="آسيا", - name="سوريا", - capital="دمشق", - ), - Country( - timezones=["إفريقيا/لومي"], - alpha_2_code="TG", - alpha_3_code="TGO", - continent="إفريقيا", - name="توغو", - capital="لومي", - ), - Country( - timezones=["آسيا/بانغوك"], - alpha_2_code="TH", - alpha_3_code="THA", - continent="آسيا", - name="تايلند", - capital="بناغوك", - ), - Country( - timezones=["آسيا/دوشنبه"], - alpha_2_code="TJ", - alpha_3_code="TJK", - continent="آسيا", - name="طاجكيستان", - capital="دوشنبه", - ), - Country( - timezones=["آسيا/عشق_آباد"], - alpha_2_code="TM", - alpha_3_code="TKM", - continent="آسيا", - name="تركمانستان", - capital="عشق آباد", - ), - Country( - timezones=["إفريقيا/تونس"], - alpha_2_code="TN", - alpha_3_code="TUN", - continent="إفريقيا", - name="تونس", - capital="تونس", - ), - Country( - timezones=["المحيط_الهاديء/تونغاتابو"], - alpha_2_code="TO", - alpha_3_code="TON", - continent="أوقيانوسيا", - name="تونغا", - capital="نوكو ألوفا", - ), - Country( - timezones=["أوروبا/إسطنبول"], - alpha_2_code="TR", - alpha_3_code="TUR", - continent="آسيا", - name="تركيا", - capital="أنقرة", - ), - Country( - timezones=["أمريكا/بورت_أوف_سبين"], - alpha_2_code="TT", - alpha_3_code="TTO", - continent="أمريكا الشمالية", - name="ترينيداد وتوباغو", - capital="بورت أوف سبين", - ), - Country( - timezones=["المحيط_الهاديء/فونافوتي"], - alpha_2_code="TV", - alpha_3_code="TUV", - continent="أوقيانوسيا", - name="توفالو", - capital="فونافوتي", - ), - Country( - timezones=["إفريقيا/دار_السلام"], - alpha_2_code="TZ", - alpha_3_code="TZA", - continent="إفريقيا", - name="تانزانيا", - capital="دودوما", - ), - Country( - timezones=[ - "أوروبا/كييف", - "أوروبا/أوجهورود", - "أوروبا/زاباروجيا", - "أوروبا/سيمفروبول", - ], - alpha_2_code="UA", - alpha_3_code="UKR", - continent="أوروبا", - name="أوكرانيا", - capital="كييف", - ), - Country( - timezones=["إفريقيا/كامبالا"], - alpha_2_code="UG", - alpha_3_code="UGA", - continent="إفريقيا", - name="أوغندا", - capital="كامبالا", - ), - Country( - timezones=[ - "أمريكا/نيويورك", - "أمريكا/ديترويت", - "أمريكا/كنتاكي/لويسفيل", - "أمريكا/كنتاكي/مونتيسللو", - "أمريكا/إنديانا/إنديانابولس", - "أمريكا/إنديانا/مارنغو", - "أمريكا/إنديانا/نوكس", - "أمريكا/إنديانا/فيفاي", - "أمريكا/شيكاغو", - "أمريكا/إنديانا/فانسان", - "أمريكا/إنديانا/بيترزبيرغ", - "أمريكا/مينومني", - "أمريكا/نورث_داكوتا/سينتر", - "أمريكا/نورث_داكوتا/نيو_سالم", - "أمريكا/دنفر", - "أمريكا/بويسي", - "أمريكا/شيبروك", - "أمريكا/فينيكس", - "أمريكا/لوس_أنجيلوس", - "أمريكا/أنكوريج", - "أمريكا/جونو", - "أمريكا/ياكوتات", - "أمريكا/نوم", - "أمريكا/أداك", - "المحيط_الهاديء/هونولولو", - ], - alpha_2_code="US", - alpha_3_code="USA", - continent="أمريكا الشمالية", - name="الولايات المتحدة الأمريكية", - capital="واشنطن", - ), - Country( - timezones=["أمريكا/مونتفيدو"], - alpha_2_code="UY", - alpha_3_code="URY", - continent="أمريكا الجنوبية", - name="أوروغواي", - capital="مونتفيدو", - ), - Country( - timezones=["آسيا/سمرقند", "آسيا/طشقند"], - alpha_2_code="UZ", - alpha_3_code="UZB", - continent="آسيا", - name="أوزبكستان", - capital="طشقند", - ), - Country( - timezones=["أوروبا/الفاتيكان"], - alpha_2_code="VA", - alpha_3_code="VAT", - continent="أوروبا", - name="الفاتيكان", - capital="الفاتيكان", - ), - Country( - timezones=["أمريكا/كاركاس"], - alpha_2_code="VE", - alpha_3_code="VEN", - continent="أمريكا الجنوبية", - name="فنزويلا", - capital="كاركاس", - ), - Country( - timezones=["آسيا/سايغون"], - alpha_2_code="VN", - alpha_3_code="VNM", - continent="آسيا", - name="فيتنام", - capital="هانوي", - ), - Country( - timezones=["المحيط_الهاديء/أيفاتي"], - alpha_2_code="VU", - alpha_3_code="VUT", - continent="أوقيانوسيا", - name="فانواتو", - capital="بورت فيلا", - ), - Country( - timezones=["آسيا/عدن"], - alpha_2_code="YE", - alpha_3_code="YEM", - continent="آسيا", - name="اليمن", - capital="صنعاء", - ), - Country( - timezones=["إفريقيا/لوساكا"], - alpha_2_code="ZM", - alpha_3_code="ZMB", - continent="إفريقيا", - name="زامبيا", - capital="لوساكا", - ), - Country( - timezones=["إفريقيا/هراري"], - alpha_2_code="ZW", - alpha_3_code="ZWE", - continent="إفريقيا", - name="زيمبابوي", - capital="هراري", - ), - Country( - timezones=["إفريقيا/الجزائر"], - alpha_2_code="DZ", - alpha_3_code="DZA", - continent="إفريقيا", - name="الجزائر", - capital="الجزائر", - ), - Country( - timezones=["أوروبا/سراييفو"], - alpha_2_code="BA", - alpha_3_code="BIH", - continent="أوروبا", - name="البوسنة والهرسك", - capital="سراييفو", - ), - Country( - timezones=["آسيا/بنوم_بنه"], - alpha_2_code="KH", - alpha_3_code="KHM", - continent="آسيا", - name="كمبوديا", - capital="بنوم بنه", - ), - Country( - timezones=["إفريقيا/بانغي"], - alpha_2_code="CF", - alpha_3_code="CAF", - continent="إفريقيا", - name="جمهورية أفريقيا الوسطى", - capital="بانغي", - ), - Country( - timezones=["إفريقيا/نجامينا"], - alpha_2_code="TD", - alpha_3_code="TCD", - continent="إفريقيا", - name="تشاد", - capital="نجامينا", - ), - Country( - timezones=["الهندي/كومورو"], - alpha_2_code="KM", - alpha_3_code="COM", - continent="إفريقيا", - name="جزر القمر", - capital="موروني", - ), - Country( - timezones=["أوروبا/زغرب"], - alpha_2_code="HR", - alpha_3_code="HRV", - continent="أوروبا", - name="كرواتيا", - capital="زغرب", - ), - Country( - timezones=["آسيا/ديلي"], - alpha_2_code="TL", - alpha_3_code="TLS", - continent="آسيا", - name="تيمور الشرقية", - capital="ديلي", - ), - Country( - timezones=["أمريكا/السلفادور"], - alpha_2_code="SV", - alpha_3_code="SLV", - continent="أمريكا الشمالية", - name="السلفادور", - capital="سان سلفادور", - ), - Country( - timezones=["إفريقيا/مالابو"], - alpha_2_code="GQ", - alpha_3_code="GNQ", - continent="إفريقيا", - name="غينيا الاستوائية", - capital="مالابو", - ), - Country( - timezones=["أمريكا/غرينادا"], - alpha_2_code="GD", - alpha_3_code="GRD", - continent="أمريكا الشمالية", - name="غرينادا", - capital="سانت جورجز", - ), - Country( - timezones=[ - "آسيا/ألماتي", - "آسيا/كيزيلوردا", - "آسيا/أقتوبي", - "آسيا/أقتاو", - "آسيا/أورال", - ], - alpha_2_code="KZ", - alpha_3_code="KAZ", - continent="آسيا", - name="كازاخستان", - capital="أستانة", - ), - Country( - timezones=["آسيا/فيينتيان"], - alpha_2_code="LA", - alpha_3_code="LAO", - continent="آسيا", - name="لاوس", - capital="فيينتيان", - ), - Country( - timezones=[ - "المحيط_الهاديء/تشوك", - "المحيط_الهاديء/بونابي", - "المحيط_الهاديء/كورساي", - ], - alpha_2_code="FM", - alpha_3_code="FSM", - continent="أوقيانوسيا", - name="ولايات ميكرونيسيا المتحدة", - capital="باليكير", - ), - Country( - timezones=["أوروبا/كيشيناو"], - alpha_2_code="MD", - alpha_3_code="MDA", - continent="أوروبا", - name="مولدافيا", - capital="كيشيناو", - ), - Country( - timezones=["أوروبا/موناكو"], - alpha_2_code="MC", - alpha_3_code="MCO", - continent="أوروبا", - name="موناكو", - capital="موناكو", - ), - Country( - timezones=["أوروبا/بودغوريتسا"], - alpha_2_code="ME", - alpha_3_code="MNE", - continent="أوروبا", - name="الجبل الأسود", - capital="بودغوريتسا", - ), - Country( - timezones=["إفريقيا/الدار_البيضاء"], - alpha_2_code="MA", - alpha_3_code="MAR", - continent="إفريقيا", - name="المغرب", - capital="الرباط", - ), - Country( - timezones=["أمريكا/سانت_كيتس"], - alpha_2_code="KN", - alpha_3_code="KNA", - continent="أمريكا الشمالية", - name="سانت كيتس ونيفيس", - capital="باستير", - ), - Country( - timezones=["أمريكا/سانت_لوسيا"], - alpha_2_code="LC", - alpha_3_code="LCA", - continent="أمريكا الشمالية", - name="سانت لوسيا", - capital="كاستريس", - ), - Country( - timezones=["أمريكا/سينت_فينسينت"], - alpha_2_code="VC", - alpha_3_code="VCT", - continent="أمريكا الشمالية", - name="سانت فينسنت والغرينادين", - capital="كينغستاون", - ), - Country( - timezones=["المحيط_الهاديء/أبيا"], - alpha_2_code="WS", - alpha_3_code="WSM", - continent="أوقيانوسيا", - name="ساموا", - capital="أبيا", - ), - Country( - timezones=["أوروبا/بلغراد"], - alpha_2_code="RS", - alpha_3_code="SRB", - continent="أوروبا", - name="صربيا", - capital="بلغراد", - ), - Country( - timezones=["إفريقيا/جوهانسبرغ"], - alpha_2_code="ZA", - alpha_3_code="ZAF", - continent="إفريقيا", - name="جنوب إفريقيا", - capital="بريتوريا", - ), - Country( - timezones=["أوروبا/مدريد", "إفريقيا/سبتة", "الأطلنطي/الكناري"], - alpha_2_code="ES", - alpha_3_code="ESP", - continent="أوروبا", - name="إسبانيا", - capital="مدريد", - ), - Country( - timezones=["آسيا/كولمبو"], - alpha_2_code="LK", - alpha_3_code="LKA", - continent="آسيا", - name="سريلانكا", - capital="سري جاياواردنابورا كوتي", - ), - Country( - timezones=["إفريقيا/مبابان"], - alpha_2_code="SZ", - alpha_3_code="SWZ", - continent="إفريقيا", - name="سوازيلاند", - capital="مبابان", - ), - Country( - timezones=["أوروبا/زيورخ"], - alpha_2_code="CH", - alpha_3_code="CHE", - continent="أوروبا", - name="سويسرا", - capital="برن", - ), - Country( - timezones=["آسيا/دبي"], - alpha_2_code="AE", - alpha_3_code="ARE", - continent="آسيا", - name="الإمارات العربية المتحدة", - capital="أبو ظبي", - ), - Country( - timezones=["أوروبا/لندن"], - alpha_2_code="GB", - alpha_3_code="GBR", - continent="أوروبا", - name="المملكة المتحدة", - capital="لندن", - ), - ] - - AM_PM = { - "AM": "ص", - "PM": "م", - } - - def month_name(self) -> str: - month = self.date("%m") - return self.MONTH_NAMES[month] - - def am_pm(self) -> str: - date = self.date("%p") - return self.AM_PM[date] - - def day_of_week(self) -> str: - day = self.date("%w") - return self.DAY_NAMES[day] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_AA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ar_AA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 03a1b9e20ebb3860fc7ca9ea83882741862d8ded..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37819 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 d3N8lpjeayRP_kHue_lBMQoXcg1dOl>fzEVPd zgd`5hc%5FyWS;;5+9EcsX_RPWgMc<7pbPDt9@W+8AYmkbYRC*4q#wIZ-vZ$_;x6Hm zi^=o`Ci_H?8U<3*fPw}(Bp?YXI0tDs4;h$)EaYBiYx*E>%)4qxPo34@^LOQ;zbB7- zSw)BPNFK*RS_!Y@AqtbQSRSZdw2XSQJtX5kPc6(_SeQORQ^oVyR;`w#{dv%buFs!ewX* zZ?((7^aS@ToMXCteS>jswJneHLT3gxS{ zC3hh;eCRHqBlK4cJxF5zayg{ILfJLzR^vX-uHxv~KjvOkhR}5hvy=4Q=xg0`7m?zB bO}eV$mrg1DM%MnM@-+2j{@P!HYiRoi)4KfA diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/az_AZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/az_AZ/__init__.py deleted file mode 100644 index cb2ccc5..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/az_AZ/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "Bazar", - "1": "Bazar ertəsi", - "2": "Çərşənbə axşamı", - "3": "Çərşənbə", - "4": "Cümə axşamı", - "5": "Cümə", - "6": "Şənbə", - } - - MONTH_NAMES = { - "01": "Yanvar", - "02": "Fevral", - "03": "Mart", - "04": "Aprel", - "05": "May", - "06": "İyun", - "07": "İyul", - "08": "Avqust", - "09": "Sentyabr", - "10": "Oktyabr", - "11": "Noyabr", - "12": "Dekabr", - } - - def day_of_week(self): - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self): - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/az_AZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/az_AZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index adcfea7c89e26118b2a08d95a87314ba7dac7b19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1330 zcmah}O>7%Q6rNdoH(ST+O>4(#B$QaGl479V*l7w#2;ma`6&EStP+wLP&xCCJv+nHL zt*ugWh(s$672=Raswh{K3rHNfwK+swk`t?ukdQcWYcX7U;?3GlQzXPl@0)Mm`)20N z+qe6(VZ@LeKgKrCMG*Qud>DW_n0s?Tb`V7r*H9go6^s=09-_)Nq7kO-!8$q0xD(B) ze<(n+Sm+;fx9w2ID`9W|#$fJ!2xJE_SVU1-p_nQ(LZeir8Xckf{gHBno}w{2O5@a^ z32M?YdYYc0Nt&YL_v7U#O>d*JN+$rd&e`lFmq`fqGU*cDlBa|$!?=I2>p877cpiRn zu*>%!9PBpM4t6u-#{L6RfAm8relFB9LHzc^pXw)7+Oe;t1Kt0ozfE>T;CX@b0v7~c z5cs0NivnK~+EvnM6E3uOS(}rZh%OWE3$@tftR^DMq|=hcee`{&)i`D~p%vTLTAnZT z71r=OWQ~iFE7d;HN^a=TmRJ=6*|<>V^I!$A1+a@?i(r?)UIlv%>~*2!=fOaiFH|rb zI2^KA(t4KxcF;|hPciq0uShbrPHfrvKcM3A~By6D|aptab$GI2%(!CuC%;eo$cW&LQ9GNqR z`b-ZL=()-cRIZuN^fePm95s~(wihx#0U33MfBZru*| zvTYHw?Yc`_H3mFx+t*s8CQq?#J_}lYK|)qS4&XZ!?hxh_ewiUeA>w@ku#J8*Qi1V8 zV9bU%6&T}zG4aIIPitErJWeBXB1oizL@G#(2Z>~eK)`c0Nc2PLCzD1}+xqCwDMdZk z(-rl6|3q2)QZ^z`|A#QP1Z}ViT`;T#FM!}#a!>U)`nP(MFG4`}yEhK-ID#?$6}|kI Qmci!_&FQ}p%;B str: - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/bn_BD/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/bn_BD/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 090c8fdbdd13d3a46ee802ccd710229f8202ab3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47873 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 XbV}(jov3M z1Y4!#kV7jD72=Q{df?Ct%9a11M=r^U)ksK4oO)|9TzcZoWK9ba>S*3?-n@^QH@|)R zb2^0(o+@@Gw?1o@$^L zu`oa5-o8T_Z!2d6>1Z8qfO3o&BvI7TD5e_KX^a{)P7~C8lxXR6iYDnaP0=*X&@7#y z7wAQrqqB7GQK}WA`6JXa=saM2xKJ!`S%gS5y^3zA;F^@f%Mb%S4g5#kTms<^xGk z{mElK5=OPpovzU9wj*L2gPy{!BjVM;&cF}ERFm}s=5ERC+k1g06|>>(pPS4Y8!4@r z6547Rqyn-AvJP?`N1!+|4A2y}QXWea~Q+w#kBbJt4d}DPy zmsx=qbeL;@Wo=Fr=!9L?4lLJcbFUw5w!FY9?X%v#)pfS4{xIlxy|q%gV);(MuJ!Hq zp1s3-Yunyq+=3+4OTHxwA%O$;P)4eo79md02?#0mhhiFvA>KAQU~F$RJL$jDE7nU; zsW0IWg_(;Focqqh*tgz2J|u15!526~E+F9&v4-a-h!3bA}m zf+b-c;76oRP&KI^PC*Pj{^tNk=(lt}OwWbsc{K~6+~%KW%?t6vPoCvbb|K8nhnYDw zb75vy&3u?CC_8u;o)^-&_~EC2T+)m;#-?UmIlobI-ze$=o&V=EHE4rP=z<9s{3Zmv oEbfK*?)j_UQLqgkwYz#a-m#mWGjrK15VILR4qk3B*Zi;X$fm{GowZ z!NUBM2m3B%yseB0&}qQ*V5U;$G6|7s2EHFTJ0e{V)Na;X=7&;a*4-#N2-+Qy zt$`EcN}IXOnJdkirsGLXB_r^Xz*T{l1zr(&Rp2#&uZ#4C^HHO-o2Ng}Es1q?UR$Kp^G}i04no?nvj%yYi9H!lR3f?d{*Y|m};pqCuBg2-OnXa2t3b+_!^AnFAE%3^id4&8`d>pAT` zXNQIMwzJ2$4MA#-LR%(6A{XAFjMQ$~gt)#N5wh4Dh;c}U1l#0*vAyBs#q2G;Q7$793d--W$W&dY$Lu8GOx?6=wP za`z3W>Q`&_%$oh)II|W`%>`ZszXpuANz`40h%6yqK>J+=a*mKM`c7BALI{5weEF(` zB?)T)KO%L5%1Qlf3Q}MRKLa>IPx7TWKNaVv)hfsGSbAoem(qtHKP@3^IxfJPQmYsj zCe<$N)H_{pDFG~!~)iK7up|}1@&*7`5*6ecxy9#>=JKRf_ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/el_GR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/el_GR/__init__.py deleted file mode 100644 index 198b730..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/el_GR/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "Κυριακή", - "1": "Δευτέρα", - "2": "Τρίτη", - "3": "Τετάρτη", - "4": "Πέμπτη", - "5": "Παρασκευή", - "6": "Σάββατο", - } - - MONTH_NAMES = { - "01": "Ιανουάριος", - "02": "Φεβρουάριος", - "03": "Μάρτιος", - "04": "Απρίλιος", - "05": "Μάιος", - "06": "Ιούνιος", - "07": "Ιούλιος", - "08": "Αύγουστος", - "09": "Σεπτέμβριος", - "10": "Οκτώβριος", - "11": "Νοέμβριος", - "12": "Δεκέμβριος", - } - - def day_of_week(self): - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self): - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/el_GR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/el_GR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 70065e745fb789971f04ded37f28f6c3306a35ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1516 zcmah}-ESL35Z^t2#C80UCTSq8nxrXBWDvPHX$wdQQB+huRD)=Ez%MJ;dm&D2UpSvr z9F>w%Begm7&)idoIT=yg;Ph3*GD?@@9072hi7 z8roBRqkmmiGl`D)LfolUYoBa~uZXp6Y~3*Cj#+Io`O6L zc}5z^Q3!a+u`ET?t)*VGlEw>AOXM_}-t6^QoUVB2dlU?HBDby6v=_(;k}y*9#(`4_ zL;88fwd9VYN8VzoBgbDnp`enLpOikHsgzWTfq@6_n^ShdGF{u9vI?1Z&54$Q!#-_g zU9*tOI`*vhaME_okvXe4XXbM!&Dn}OWf#Xsl4E8m=UPwBX0kJxx2=*nnVGR16G8fO zDVeGe=H{@Em1oD^Fd54gb1q{evlZEnVwgS2PFdE>e0S>;8`*^Rq0*943#1!i(WgBj*F?>X&%` zM!f%OU?V=X9vX7`!As#Q3^ARHF&Sp8VDoa`f*oP(opL6xc45rf4X&dSJ1ViWAL=Wj zGw7Q1e~MOqcuH?VRmpGBy>)f(d>#_U2(XQaatAF+xf&Gn;5g2ansAiu^_$1Lg%8sKr1`{|1tywt3AUrJYLFn0L jSI;?*!=cW5X&2NzAEoqH^2A@k0Xn=M@Bf?NuEYKTYkcew diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_PH/__init__.py deleted file mode 100644 index f57570e..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_PH/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - """No difference from default DateTimeProvider""" - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 1c1d9ec08fb81a1e705e5afa72514a3d7a4d6d02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 507 zcmZ8eu};G<5VeyO(n6sNGo6s4idul!5EBwiRfkSlPHB9hX_L4(ZbeyG_y9J(0kQHI zEUZLALSkY=DlDCF(saSYyZ7X~(|h(yyMu4ma5DPwua=r<0HSwbI zW*vYFAK;P9a|?@GHV`o~CDZ_8@0#^iL@yqquUH)VQjAN{7mBr~m`qs|_Stx*1|m6X z9~`nYRJcF({E>HwDGR(2N~VX3;3?zUEGX@kVFKL?1`sBp0%(tCMbZK+Z6~!g+>tly z_`|Yg{v*Xz$1$@d%NqZK%WB?Lv~Fm&uuqoBPvw@D`8%gO8oo_R={srtteLd>y1n~L IbS=jI0Bp8}umAu6 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_US/__init__.py deleted file mode 100644 index 542b583..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_US/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f0df47754678688b9908cb878e4807a6c7ee6fd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 446 zcmX|8u};G<5IrX?N~>0|FtZ^=h+4pkn2^{I5@jHZ<;I4(P2%9V6`5H0hkgTMZovMUjWVgEL^> zBQT$P&wia3p|TaWzdWNtR0S7G&IRKtZd@FoMl5@VEPz9V7(`x)LQh$n^U$vXLNc0i zLaHtysbsUn@*W{~Gn&*lPq4H`s|P%mDaTssF;D3|9Pz zyU;S@6n0^c@ZJhk$FTng)vVe&HAX|@v)+sfY?e#4pRfv!>(`#BzL9oS#kL9GK0@dN R_I@@H>b!04{DMJO_6I`dZzuo& diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es/__init__.py deleted file mode 100644 index 7b742cb..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "domingo", - "1": "lunes", - "2": "martes", - "3": "miércoles", - "4": "jueves", - "5": "viernes", - "6": "sábado", - } - - MONTH_NAMES = { - "01": "enero", - "02": "febrero", - "03": "marzo", - "04": "abril", - "05": "mayo", - "06": "junio", - "07": "julio", - "08": "agosto", - "09": "septiembre", - "10": "octubre", - "11": "noviembre", - "12": "diciembre", - } - - def day_of_week(self): - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self): - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3e542c131934ebc605d86f5885a6648f664a9732..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1285 zcmah|&2Jl35Pxs&wH?RnO&iC>9GWPIR92}scG6M=LKGG8rJ70&hx+og_PiwP?1%ey z?cyj@IpolaLxnh`haTWq<;s81BbVfa^(3T9oVc}^UV38QdfgTz#K`lTdGqn!%y{+} z!^jgwKj*u%DMEga4+-dr9Iv2qNPqx!iAP%+B^vpZfObG2#kC{MQ`DlvbXEUDL$yj} z?z#vD4sg+loe3C;9DjkzA>o(=q@@7`4N{N>9Ws!G+{0`u1v8L`Stx)3MKECwPQhuI zhY~D2EVR;4J|Ha}&LC!nZ&WKn6(O?_c#gjnNZsxGJd_#F77-8osz=Xx{77^HSDCwg zK0uirI9y;{Ka2kG@lS0Vf@)UMRY~iTHY8n>bY0Sml3tQJ_qhmUc9XY-Qgpm}7lqvx zjw{oiJ;Xz|?>n(@QDp3`AdCW;4|y+gxQBT%8+4++Qf7Rd&crqYPG_Q43sPIHBR7!O zkk^qfB40v&7x^;sds3^fB4b>=(VIvvD!2$;-ia*F>4>109NIx-)dt)jSgzBydc$Zt@Yibfh7~#yztFQgJN6b2txbD} z3k#FtRSGRt2#Xwi2c3*Lz7sK4>kZ{BR>Fc!cAN8^-O_aTYOh((Vws_WeKIPZzVF;~ z9;Cku?xsfO{QW!k?mXz6n9IkxoSyClezYxT zuYJ|r_-r~;@ebyT20}7YQA1tk<5=d~9^ajR+1M-NvPww$nkyaVzt8_rxT|AVznY6D z=Hid~iMeu|TM?@m*Tn74vG^{=WS%iEfWFI7FEDniZ@cOh#>9Dy6>ADC1?vcpNPI(F zQ~a^TkVa4VHNpXTVw6WlX=E&nj7p4nEI%`Ir!xDWKP?lpJSv_U6&K=PX{w;{&DdTU z6)Vpw#(ZY~%RkR*`dj0irk|U0|FtZ_LXf0qxNJvO*2%%14u+rGjv`HLnw;~fu|DoSdvGNxz zj3^Ql6B|-t>4fd3c)0hTeE05re(iSKV9!f?d~4v-i8?fETpb#+00s=Dkf9JGz;Fo+ z&w+UyKYN?J5S5Lf`Gt)NP~~4sF-sViaqZ#&)ne5#WC0vP#2~~a3b3>`SAkdgl;%;! zDXrR+W`a#q%R7`lOrvyjvxJp3T0fDI$T-nLk9Zb6lEIdk=3^dfk|nVeMJE}C#jOpzO35f*7qbz=H(MbB>trAeM>O8Z6W zW_F=r#!+@*b9is~vSrx+gD_W)S9=%6YG9nUyOF-lbIJA_*8b_{y=Ss(q+OQUH{shu T2z@~BX9uCy+wQ?H7<6TSK*ewN diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_CL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_CL/__init__.py deleted file mode 100644 index 8aac302..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_CL/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from ..es import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_CL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_CL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e965aae94fc551a17b7c21335fbb6d9b51c49732..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmX|8u};G<5Is9BN~>0|FtZ_LXf0qxEFiHU#Ly`WRvH_cHi?7nR%Bx7KlB?aR{ny8 z5k+ERVnZq{ov_^$5BJ`a@7|ryuib7N?0IRAZw-7pQHN%Yt3yK;z<{9?G8AG27%qX~ zIWUjoXK#}iqOuV*zpzmOs{9)%W(ngmu3a3UTC6&TEPz9Z7=*Y)0hZS0I`Ar=(mcvI zrB$2KOt5Kcd56-6X_Rhmmawu$>nAc287Erk5znGWGT0K+e9U7_vLu$GsKrod(x35s zM$%+Ric*h6e$qcWCMwaqS48n7y61}AMH4QGDRSd0!XnM7PD~%J==l|)G|3Z9X}>7l z%q}#{ILa<;4(|>$*7+dcRNgRblkK96tm diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_ES/__init__.py deleted file mode 100644 index 8aac302..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_ES/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from ..es import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index cb029e76f647b4ed354b92e4bd46d7332fd5aa05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448 zcmX|8u};G<5Is9BN~>0|FtZ_LXf0qxOdvLdM5i!VX>4fPBo4M)k%^`M&~K<%`3n|C z6p4w64XLnn!gflV1BOz_P>2y=xCDmh zz&wthy-i+-%0|%q!bSzC@~@?sC5+3sc5#4evFaGI01hEy5aJRASX!H_z^i;p^C;t# zR&7c%!KSI@9ZDajQM$QV!pa)0pU6mLoM@p(Jc}O5U`tH%F^@ILl30qO7DJ&)f5!6} zNs}QdN<9+!N&o1Ws6_K#5yg|}o-1+}O}Hec$c?WEi!`S?F@3nA7dM2`Bu_M@{i1X; zyU;M>D7&yZyf=K=GVK3Bm@CJty>nwVFizXuNZ;nUWcv+k|8(=-GubuLE=%p3@a-Xl SKA`urgHY>j_uv-{y0Sk*k8k?` diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fil_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/fil_PH/__init__.py deleted file mode 100644 index b569092..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fil_PH/__init__.py +++ /dev/null @@ -1,37 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - """Provider for datetimes for fil_PH locale""" - - DAY_NAMES = { - "0": "Linggo", - "1": "Lunes", - "2": "Martes", - "3": "Miyerkules", - "4": "Huwebes", - "5": "Biyernes", - "6": "Sabado", - } - MONTH_NAMES = { - "01": "Enero", - "02": "Pebrero", - "03": "Marso", - "04": "Abril", - "05": "Mayo", - "06": "Hunyo", - "07": "Hulyo", - "08": "Agosto", - "09": "Setyembre", - "10": "Oktubre", - "11": "Nobyembre", - "12": "Disyembre", - } - - def day_of_week(self): - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self): - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fil_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/fil_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2e7d061b49536c5221d4e92341ba900cadb56686..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1342 zcmah|&u<$=6rNdo?X}~z)5b|KhsLxbtyR?$_-hYE2>4?S>2x$<9dNluuNIQ7IW#c=6~H|sSmNQlwC?|t*;y_q-f&HiMX zX{5%F>D^Cb2)zs^5$KT~&I36?6jAIV4>vT7H1s*5+A*Rrrkz5Z8V%f!m-OE>pd~Dg z4Z-&v%0w$%jKGZaunyz|F$kilp;6q3QH{oEoa!_|lhmN87s*DPrs)LDP?Kh9j!x1` z^fH~Ic{)vJUSt|Nojpd41bqiE*)Npd6)KU#8{>nEZ7zz`4p`uL%nxU6$0ZxcpfP4V*A;?Ekt1N(kU!~f@QQehN zRZ=p%18{;Kq20Gv!KMbqr;+t*3?8bf{~C{Q0W6!Sq}30#_YX>%jH_bH)Y|G-q`q3a zyQxe*bK5dT?Y^(JC>CEISv%ZgR=|TD=GhOetucYN?Xp&2c}`34y=cR$mkLWAt(XU*KnLGQ^7|fT*lu0k}+uzNBk= z>~QMui@h;kQvuPvCi5rhZ`0ppp6GC^pL28Pxw-H4^W6NIF)ym%S1%dTAmLtw$TT4y zr|?Sv&k*vUXS?bYm?a6JyhVt(1wmq2K}Ep|zz->~#3$#{`Up&<MaMbobh z4Nbp3I#zX}UW!Q+9xEr;;8kqFqZn64d<+h6GJI`(GP>h!aT^xY^Y^C#E@BwtU(wA! Q67S*bXSumQ5$G`NFQ4pTA^-pY diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_CA/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_CA/__init__.py deleted file mode 100644 index 3756d8a..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_CA/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -from typing import Any - -from ..fr_FR import Provider as FRFRProvider - - -class Provider(FRFRProvider): - def __init__(self, *args: Any, **kwargs: Any) -> None: - super().__init__(*args, **kwargs) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5bc073897acce1dc445ad7632c63f324e46bb796..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 783 zcmX|8J8#rL5T5lbCc5KM@aiHIAvp?X5n6X-to_SoaJ98axDM>;p5o@lLOEJiV}-nG@wWq|}#_;zX-$`;ka@ zLdHcyr9fPqX7(JjwDKYglR;IqG_l+6O1=12ccr^B?eZiMjf+s#3fo`Us1Vium6CJ8xJsHT4p1Z3JwukjAwmoyT%iyvTjnzKYM;_P&N!uY zm(onKS!#KY()(GQZapuswuLrNWGpjIwA5ps#Si3WM@;hxPc+FyqGZvCq10qB=lPtZ zVn~Wgk7a&5I6NYy(7a#7$uz#>B^kw2u82u; str: - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_FR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/fr_FR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0a7653fa7e65d0731f7b486e906fbf6bc0fef40f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1326 zcmah}O>7%Q6rS1j+8f9ArnN(AB$`r0qE*2gJ87X(g$RTKMR5^{knm-+*%{+ayt`(0 z*TqpOIpolaLxngbhaR{_xpL!}BbVeG3qhXT;V zLjRNpeU~!sB*v5#(|PncfIY+@h@zH4F;%EaGgPBlnxp!oTuY@BG*2gKffi|r8gz=D zqvvUvR_OGjLMuaGVp?0FGrO5qHpLeJ=LS{tWiAsEI(0qUcREaH-PotD&^(*Nq@j}H1A1d&;_ zc__4Hkh(%$wOx_96}vuo$8NXFqF9!3IXL<`5)*5z7cp;xGm*RPM1cf)Gw3I(cmn)Z zjt-neG7Cakr~@^C7J-(4t^!>HdJE`npzA`ZF93mGy&Fzhf#QL+yx(iIwFqNOO7hgEgrNS+^}z zY7auW#HCBmzO_1m$E+xbI?S`bw${f0dSjD0k>$A#4|=Jv5kyuE?xJsX-3_ZZh&qA4 zSgSXz(2dxeJ=@u`zht4+wzn9!ASmgs(2|Le$c25{oZS4(BE%)uASNLh612%3 z#x!FDK+OyMs3RsGGGZEV7utI;>@sENxm}xeENx@ zpUduid|E-qg<%Q4%CIy&ER_>5li=#G1OQCcC)Hv(yYtEEMMZmUe{FsLDf diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/gu_IN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/gu_IN/__init__.py deleted file mode 100644 index 61028b7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/gu_IN/__init__.py +++ /dev/null @@ -1,76 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - - DAY_NAMES = { - "0": "Ravivar", - "1": "Somvar", - "2": "Mangalvar", - "3": "Budhvar", - "4": "Guruvar", - "5": "Shukravar", - "6": "Shanivar", - } - - DAY_NAMES_IN_GUJARATI = { - "0": "રવિવાર", - "1": "સોમવાર", - "2": "મંગળવાર", - "3": "બુધવાર", - "4": "ગુરુવાર", - "5": "શુક્રવાર", - "6": "શનિવાર", - } - - MONTH_NAMES = { - "01": "Kartak", - "02": "Magshar", - "03": "Posh", - "04": "Maha", - "05": "Fagan", - "06": "Chaitra", - "07": "Vaishakh", - "08": "Jeth", - "09": "Ashadh", - "10": "Shravan", - "11": "Bhadarvo", - "12": "Aaso", - } - - MONTH_NAMES_IN_GUJARATI = { - "01": "કારતક", - "02": "માગશર", - "03": "પોષ", - "04": "મહા", - "05": "ફાગણ", - "06": "ચૈત્ર", - "07": "વૈશાખ", - "08": "જેઠ", - "09": "અષાઢ", - "10": "શ્રાવણ", - "11": "ભાદરવો", - "12": "આસો", - } - - def day_of_week(self) -> str: - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - return self.MONTH_NAMES[month] - - def day_of_week_in_guj(self) -> str: - """Returns day of the week in `Gujarati`""" - day = self.date("%w") - return self.DAY_NAMES_IN_GUJARATI[day] - - def month_name_in_guj(self) -> str: - """Returns month name in `Gujarati`""" - month = self.month() - return self.MONTH_NAMES_IN_GUJARATI[month] - - def month_in_guj(self) -> str: - """Returns month name in `Gujarati`""" - return self.month_name_in_guj() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/gu_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/gu_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a2ada972887eb5f41e4cad2216034ebeb3240c54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2640 zcmb_eTW=dh6rNq*HjbTb?n!Uirp?8KdUNR&6=-@Py(poo0}^@JZZn(MN$d^dbxNXA z0xHldLKQ+K5$Z!k5pC^)DnVO#fgiw2EF@};gtQV*ytztw=@VyW*SS^Dm#%isesj*5 zvva<4cI@B6;UHqykHN890fheI6Ib}$=W;86d4v%bCQwos5(OlpK7_@~2zv}M=W+ao zglTWY_qPbMh(M(?#GFcCgABV-_#^C2mhS?XM+O=aFd7oEfJN-VUhKnu9Kh0zz>o)* z;UF%@AsogPSmrt}-h?Z06|TlLxE9ypdfb2;@n*aQZ@m#3^5JcGJ8r@X-hrF(PP_}Z z;8xs*+qu<`BSv6E#4la;4oNQV09@wcmjMS|yc=-2i=%);(`uxXurz7ltUi^P(h2p) z%p`l3_3NooeS*QjkqnM=(3c?@Zj8k<<3wjripBL5TNw#Zp_2+-ROqHc4;A)MVJ{W- zWvU>&oxNvg@7vj5x%>sDuKFiCH)m(RUscy~Z%}+>XXowg533d@&RskAp`E?8s&*F4 zbM-wg;XV8f4LsBXuDfpMJ}Yfv&Fdf7+1qP(Mg6CBV(H^F(65iCBjG2y8Z@(Vb zsqYPaR8P^s(YT(lh)$)q^#nMLgZ-3Y#i_p+W;jj*u{h%WS+xyCnG!ijh(&j>VP6h1Socuh!FZqH_Qz?_o?|ue^%KL&kkqgMdn;Y657}5g0%9IrL}P2M zt``<^uJ(NaJlIFM;kqa^f+mI{;=og}`>vRB2;kgnF<( zon|2v<>?1%+)Ns(Wm<6~slTTVmH>S3W5%$hCKJQNoOCDWO-qeV8L26CB5_`woVMa- zswdjjt)>%}v3pV<9@j^Wv^t`X8$^Xg{KQDBY$KYLfcK1Mw37p>rX^AdOVgs0)3h8m zqnRVx1;ZGhsVSW@(KXrwu+#K*5VNRIQFSeGHL>8GGp~3Ga`m-KS1&CL=jG-lsd*VZ z&^l&Wik#WQ0RD^F9N5_PTwa9%;MA8iQ_%9|{cjEoo+!~ux?nxo55i@Y^Z=$o?yIHr zq%l*ylGv*95L@8pwW(%4_<8V)&=ntK^+;~Y%T0^Eyxh7ZwUWKyw=S<2-Z3*RXL(RsMhz^sot}_gC|KROUmgj zhlQ#&m4vcuqnWXpEh}t1Ydp*XC?IB$y`kEV66Oc;Pen)Yr+pJ3!_8c`tvVIKxzUp+Ytf_l;xA$!>L z6((L~g6)(X1#t)Q_W6e0n|U1rAq(o$zmO< zXfA|z6vDeovJC)OxA~X6jbN7R3$VVThTpXuH*j3Hf*&`AtNpX5iwcsJLPb-dqLJTQ zId-OioB7=c&P@<{OL4pC+qn>1M(`*~qOWb?D8p?<$>UQO0mGvh^!R!fdl>F121Q@{ z!tfLDX?Id)$G||uLy_}WX45e^We4GqE!Bsd0Ebm}o=S%t(qAK|!NBU9t_M-{2!ik@ T>UiQmAqeeDa??ME0lx5G%IOhX diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hi_IN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/hi_IN/__init__.py deleted file mode 100644 index 06ff2f1..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hi_IN/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - def day_of_week(self) -> str: - day = self.date("%w") - DAY_NAMES = { - "0": "सोमवार", - "1": "मंगलवार", - "2": "बुधवार", - "3": "गुरुवार", - "4": "जुम्मा", - "5": "शनिवार", - "6": "रविवार", - } - - return DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - MONTH_NAMES = { - "01": "जनवरी", - "02": "फ़रवरी", - "03": "मार्च", - "04": "अप्रैल", - "05": "मई", - "06": "जून", - "07": "जुलाई", - "08": "अगस्त", - "09": "सितंबर", - "10": "अक्टूबर", - "11": "नवंबर", - "12": "दिसंबर", - } - - return MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hi_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/hi_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 42493459c3e0fb77ec17f6327856efea21869ec4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1511 zcmZ`(-)kI29G}_UyIeMRO>#+*R9n+%ii?`fB~7a!Lbb&o(5sNVcrU~CX5wvfcN=&2 zQWH|GQsGJw5s^D2;LAo^Q%VpmeUSPG_!8fa0b#%=->zJJ>671?-ODwI1K;m_=kxtF zci+#>@0pB=eQeKnxq3XMF+PBu4-G_7M_6EMP!-z zO>O#0Jqsrh-WNMJMR-?)zliXG2>0qo6%4>`$|Zt%hL=iVpza~Cfx`tlE(oSc08iCuQ9%nsb3%&NtY?4_Oob6a7hz^*za z&s~cTm)*dgS!cC%yW(87*EWK(TbrNB&Dp*au$R}0rPbmG%(s_|tIV?@Nlo6j?x#6^on{GoF zqtort7utOd$LWW|siS6NurrQECR$@RKHg6q??Ng%#Fz{KiZSnk@qdijm1(emFaKc- zHR%vd)691I5Oa>?>%)*C!fiD?m@^FgT0GEQ5&kLx$s`3wp}-``D>eRa< zZUD#XNmUg>8}-4s!4B~6)IvcvGPG(8WvnrMC~$(~~W^se(zZSY?}I2Mp19csBv~=P`Yq5)9>pU}> zm}z`< T^x~uBB%azIe)b;(yGr{P2n+iP diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hr_HR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/hr_HR/__init__.py deleted file mode 100644 index 010ebb8..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hr_HR/__init__.py +++ /dev/null @@ -1,34 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - def day_of_week(self) -> str: - day = self.date("%w") - DAY_NAMES = { - "0": "Nedjelja", - "1": "Ponedjeljak", - "2": "Utorak", - "3": "Srijeda", - "4": "Četvrtak", - "5": "Petak", - "6": "Subota", - } - return DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - MONTH_NAMES = { - "01": "Siječanj", - "02": "Veljača", - "03": "Ožujak", - "04": "Travanj", - "05": "Svibanj", - "06": "Lipanj", - "07": "Srpanj", - "08": "Kolovoz", - "09": "Rujan", - "10": "Listopad", - "11": "Studeni", - "12": "Prosinac", - } - return MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hr_HR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/hr_HR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 79f9b9e3dd603dc5bf86b4b0e5cb5f63df7fa11a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1288 zcmZ`(&2JM&6rb7k+MBgaYy&DzLI|j>WL3?^2?45Bm1sdl6ikHEO3h`o@l5LV$F4g& zYnmvuJ#YwWs|xiHANU7QuAF;<6PIvXjZ_J#r{0VV7f!s{tbwTNXy5mHGjI3zW}oEq z7E)e3cl{)vr*8HpTy2+A&^h~f_F;x!E;4Sj{Eb_Y?NX?swo)*9YSRg8Z%P%BuP zE8Oq9l<`I!OqdF)HF_V|E@Dtb(V9jv(>FBOFtwISbRBdI?x!1s|I$0)2 z6&!s5Y!_{#*1ORpiQ>J)dmB@Y>NG_Snx+|Q(uw<-+uF9ajmwZ*M-{8KrG0Qqnl(mS ztkZI2cE$G+y)Dz<2%kG`nW=NP#i$cbK-Ht)nCNo>ZexWhk*&(r~z53a1`dwxVUo=_Q z`O#h-EAUlYtRd{K+u(jLG2lddzR$eA-Er6L-lk~!-qL(^(GFa}KJGbQ zxD7=yE`hB&A;N`onw(s@X%pglt{`N-w<)vG81XmAEymhg$HrLBzvETY5u6A13yO}E z{&4TQgVeA7j{dAT9TjJzVmT^KMa7w@cmnk2ljd=2XJS}Fh4SF&-JkZ&lOrfahw#jU zBgXS8DF27&o+^U{X#NLJYSAps(fs|~AzY8tVyx-_+oRtduNA7n`BoteW|#rv#^b-j zmcn+GJAKFiko)esQqtGlUM%Z8mYJ{pj^FpUq;V4}JZWBY1L5}^3MC?>%yZ+(4_wb_ zRB}>Vr~)klEdiYcS_V1?bROse&?i!>E&xGZbrI&n==z>$R&;(G`r=h!GJE|-ZS~6G z3E?MH#EO%N=XBZD(KjHyb(SD0xC{(1DjeIj?pc54c8q7GlTm3VDou}{si*`GnB}p5 z=6N~)p0$%5&Y;5dVEO6f>3#DwpMsrgm9#WTd?X>#BBblnu){#l5%NRmbW}57>4D%} zT`ax?>;a04 str: - day = self.date("%w") - DAY_NAMES = { - "0": "hétfő", - "1": "kedd", - "2": "szerda", - "3": "csütörtök", - "4": "péntek", - "5": "szombat", - "6": "vasárnap", - } - - return DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - MONTH_NAMES = { - "01": "január", - "02": "február", - "03": "március", - "04": "április", - "05": "május", - "06": "junius", - "07": "julius", - "08": "augusztus", - "09": "szeptember", - "10": "október", - "11": "november", - "12": "december", - } - - return MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/hu_HU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/hu_HU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 19a3c78c6ec6b323f80ee557e26702fd3f93ce1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1313 zcmZ`(J#5=X6uu)ViK3<0lARiM9LEXT0zweelH;TWiUMg9G$;_YfZd^92ugQ~D2b$c zcT{S@Njqe4(4h!ASVNYKhQ}72x(S`SxSMc5fB>DkDNwp(>N`qGViY~x`+x8Fc;6%c z$Yw31)-P7$fsW8$u`ywZi5$HT${`|%;1=@nu7;6@K0`!%h=@+LW2jSW7w;K`#NQgI z1uV@kS=jLiWz{%1VJfKB=v`okh(ZxTyBfh%uW4|gv1?3p9rT1ckg4Nkl2H+{po&%X zWSJmUaP$eVL$r??Z$~Fd1Rqbl_c76kP7IPDNs=NaNk2*5*Y>r2yac)1s9=@5+I#n+ z6j=5Ck*NLtSQ<@Ah)nV>WyFm#5UKM1Z=(Mz18T;p?fy|9Xj7(mH}os6h|-YNae4nK z3*2@gCGm#DMTtuiZ%TYs;w_1criX>6dilT zaAKYxK`A-~Y!)0bu%CnSf50BAGFSlXe}E+xnIRdHeUdo^@R@RqSi=n>Kqpf3Q==93 z+VH_!^&%ce`cK=;Yk53MLK;LG5tqqE6hK_bmXc{Vx*PGX0M&vSX$$IC==k8UDf&Ny zAHpc2p~&{d!Ig7XL;y{ zT?Qs+?tD?+xqW(K*jW{^;$$aqecGLW4cZ&$JS6d3zyPzkg+uGH^;6~`@jQQSkYAbZ zMxa;^!kC_1xz6|Uk8fuxuYHxdlKnz!MiA%jtUm_6W zGBqV-_=wQ>FEMu$CV2-2dHTw%1PO1R@XGvX+||cy3j*rLz}0;Xb&T;dbopg+4PQE$ Lz3>kL8JGPFklP2-Rs9JxIH05ACIgZibS6dbom;Dt!fXpmZeG=ZGSTAyB(ptXeCx+w4B87JCJ- z0mu7nvv!634DcPc28QmIVYOCig9V>01Gmif8U&w}S(QCxciZ?PAzP|l0sb9`y;c;{ zWZ%m)aEx_uJjQXH<8h8BI6lGgNsdnyBh6@{q=)PmcDq(?Lf6?U+k#k4NE57zu(B-~ zc=rK&1cxfS*USSpwgJb-vT-P{8E_wPPcmf6pP=|n_Lyx6EoZ=ffRv8_SY_+b!YWka zwYmv2Ylpi;HQ#~b#y;-uIskjPu@G0r;vnN76Cfu*PJ)~Qc^l*%kaxKf9|Hkid_0XI zdTWWFQb^+iP%G#Xnr*jwEQ+fh`V9t#xOMy1CEN$dc@$F;i^}U4V+!}vlxy+>XC}WO ziOH!C&kLwvW@osMrb-17VqoCKw?@X!nTBh-88esq+L&%_;6l%uY1hbEX~&-T4i{|K z7+o;)3r5zuV9b}?jGdntjgK1z%QfGcPo?KlUz!DDCN*a|1~|!2qF{(Zh-*QfOo>cR z8H8AQ%OzxVzQjAB7-G+mi>5iZ*xUMyM%&PSsI(wd8Py}**Q{mhhX1O)grty{usO-T2i5_-}LB?9=)aR=)>FEuoDGd z0=_Mc$XJB%AR#%M7PBVoLxg-)Ol3tDLY$+(bwprC1a^i%tsxmf)+GNor1FEM@Hwao z`XhX-9v-TPkGC`&`=09B!9e-rCx?+9tw;Lnkt6lUQTe=DkH7=SpnL{EKkWsQpFhNh?^&5UC9iI|TgnUQy$fom`gx1co(X9Nf@i+iEH*X-)F^9C5ieJ>mW^~8rU U{vEyfJTQPqw)N=W2;S1|ALI1ftpET3 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/id_ID/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/id_ID/__init__.py deleted file mode 100644 index f59e3fd..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/id_ID/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - def day_of_week(self) -> str: - day = self.date("%w") - DAY_NAMES = { - "0": "Senin", - "1": "Selasa", - "2": "Rabu", - "3": "Kamis", - "4": "Jumat", - "5": "Sabtu", - "6": "Minggu", - } - - return DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - MONTH_NAMES = { - "01": "Januari", - "02": "Februari", - "03": "Maret", - "04": "April", - "05": "Mei", - "06": "Juni", - "07": "Juli", - "08": "Agustus", - "09": "September", - "10": "Oktober", - "11": "November", - "12": "Desember", - } - - return MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/id_ID/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/id_ID/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 04fd87ef0b201214e2de91678c67f11eeb6e3b0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1250 zcmZ`&&2Jk;6rb4-d$X~d#7Rj_(vntyWL3?^Nz;NL_DqsZyt`(0 zHYHIC9C}E_0U-|Yq5lBNmH&cExLG41RqClXS1y;Hc(dNnMu?|*@BQX|%)H(A=8t00 zMVfwhcfK(ZdYW!BVP|^qE`Vdi5W{U0;0*&K1AU5^@enbS8z+#bX#?+D75kY1u!5EI zrHJ-?#ziZ2W~F*-y$uY0o~hEFo<1I!F&GK<+P$MVc!BaibBj6>rPmm#)+DsKJ2c;~*d8$9$w zm22=ejj6J}qRm9vU(mphmA#e(R6+=C%0%UAez>)jRPqWhC|p%|QQ;+pZz{a3@GbZW z7Ne3^Ol8Hqy{Sw__tnVi%Gad6QoGxTb?tL=b1#4JwxfW1GLqXopx=4xX8?ZT4sS^> z@LMA4WSeFrz4<*J?s;v$>2>zyb`&nnR~Nn5m;6SDwsz?jkG)O0%Y_F?X%k{kS3;x@ z_xOx_zUmR;hrT3azO%1Jp)e9{lKY(R9!#AzZvHi^9)9m`ijK@D z6PJ1u<=(_}PlMqqKOb{0x<@1ZDKuX0PCokn)VVx>RCKO+MKGkzTLbWa%{$R)K+wAX zG>^G#loeR*R;tlvBu?#|u*6!8UKRZ7TLQkV|(_j+PfFDf$+mTnsNeGJXf`EpM zPaV6zxW5*T>?fs}UTL;hDyM6@SGtrgFkbFuuG#11;N&akQv#E0O} dFFU>nqHki1|3cSaA>v6rb6<-CLjU!-+qyi7g`>Rv})W9fu$xL{Ja}lmjWI;F{6iz43YN-JN50 z&*7{PT)0R?5g`hvNI{EC$$vmeV^^F;LPDaVOE_p!@n*f}BuI$SzTf<2-g`6ey?Og{ zxm+ZA{8-$c%@Oi@y2!xH=HU{OLjnY7KtkFyC^5+U1dIa$Ic^-GpB_!x&pYNH22zJA z`x7a4ec-a4Dl;f&^YB9?hlHaOkfs3?49GzqOt7E;_Txe`2V+o#aVS9lJVr^db&F{m`?Khn`H*g-$obs6=q4 z>-b{#Y_ZEDF40R_vDfkv;S>~IQM9h;s-kO(UQu*i(W|P^;ZfxILfMOZlsP43 ztkh9fQPxndpsb@@MR^0|8p@l>sIQ=)U46ApF~`x+b7vYfHCEG7*Gb^A++3uGV zE%X!qYuu$Z+__C0qp@eaddD$T9=wFBu^ZPvV~y*#-n*^0VjgU&9C-a$AF;6T>??N* zU&KvBvc*I13wL8gusgPSJ8?t5Ek!q5v_#@A;{)uvf!}hw{bWl-Ys>XjH}(^Lx$Cue zybh1uO>c)w7oF1nid`KDOMJY?PuR^3moYy=#+JK%HIBhBvB~amzOy$q>dEC7b}wM0 zv4(vzsGNW3Kky&rzZUm%gX-kNdk^kCYM)dWkL|@FT9B72t5ZxX`wo)-s_YT!^!VSp z(gqgL3`LY|sqtGMH#R;Pl~p?EFI|MJs`3(YRZMMJ46P#1Ge*nWaQ%3** diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ja_JP/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ja_JP/__init__.py deleted file mode 100644 index 6ea489d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ja_JP/__init__.py +++ /dev/null @@ -1,54 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - MONTH_NAMES = { - "01": "一月", - "02": "二月", - "03": "三月", - "04": "四月", - "05": "五月", - "06": "六月", - "07": "七月", - "08": "八月", - "09": "九月", - "10": "十月", - "11": "十一月", - "12": "十二月", - } - - TRADITIONAL_MONTH_NAMES = { - "01": "睦月", - "02": "如月", - "03": "弥生", - "04": "卯月", - "05": "皐月", - "06": "水無月", - "07": "文月", - "08": "葉月", - "09": "長月", - "10": "神無月", - "11": "霜月", - "12": "師走", - } - DAY_NAMES = { - "0": "日曜日", - "1": "月曜日", - "2": "火曜日", - "3": "水曜日", - "4": "木曜日", - "5": "金曜日", - "6": "土曜日", - } - - def day_of_week(self) -> str: - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - return self.MONTH_NAMES[month] - - def traditional_month_name(self) -> str: - month = self.month() - return self.TRADITIONAL_MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ja_JP/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ja_JP/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 79fbe4fcc947e5321c545f019973c93cb9ba396c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1887 zcmcIl-%lJ>6ux)%2g|}Tv{2|uWf2OvK^bPdL%-Y|QLt=8Ev{=Owr?Z^7L1vITeUUbkTG^7j_p+4$6gxyxA# z?)**I!sk?B2eUpZ(67*!}8?1@A4CRPWvR$)e|1zbT{d zWil2$w~@W~<84FN?&9k1at3`d%FLBT`AgZd2oEohGHYeg-j#*2D3`fejQkah_AnY? zG{|U((OyPRFnW?XHC3O`l2M9xlg6j?kyJ9&9SBP4n65rQu0+R__tmsC ztcwk}+MDyT_+k6(%F6hUN3BIyPNz-Nf#)(dRJJ zbThgcvR!ldT5LYHWdAHRXWJI*u3enJxD?$ITQ^;;1!Ry%D$6Arm3wC#$pd%s|$&l-o`?du;H8aNZ~dq*zQ zsI~K4i?2*kT!XGD5YuC+q!O18G)?0&0Mlk zKv`yP8P9= z7hQ*(GXwkef}?F|ut2cecL|QprPn#`Du>b%7 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ka_GE/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ka_GE/__init__.py deleted file mode 100644 index dff9764..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ka_GE/__init__.py +++ /dev/null @@ -1,37 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - # Sourse: https://www.ganmarteba.ge/ - DAY_NAMES = { - "0": "კვირა", - "1": "ორშაბათი", - "2": "სამშაბათი", - "3": "ოთხშაბათი", - "4": "ხუთშაბათი", - "5": "პარასკევი", - "6": "შაბათი", - } - - MONTH_NAMES = { - "01": "იანვარი", - "02": "თებერვალი", - "03": "მარტი", - "04": "აპრილი", - "05": "მაისი", - "06": "ივნისი", - "07": "ივლისი", - "08": "აგვისტო", - "09": "სექტემბერი", - "10": "ოქტომბერი", - "11": "ნოემბერი", - "12": "დეკემბერი", - } - - def day_of_week(self): - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self): - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ka_GE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ka_GE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 03ce0b8786ee2d9c6d6104547323f4964e1788a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1642 zcmah}&2Jk;6rWjt#C2?Mnxv%xQ8%fY;8u9!q%9yJL{Y2qp&Fz{LijS;dN#y~?G5X7 zilb5@IfqspN-4+z(yD-vK#@4{UvNoISR-**apIO@xb(ztW_R19s>NvE+c)p?_ukIz zZ|QWB$n|S-(To!Er`iN87QB0t5ITetPOGFwOBy8_xk$LSPI$!9wj#b?iMFD-*k2lU zIVuwGIrd70TTVI1qF(7>(|a32hghUUIVowJa*aoLl*f3S5Aek1Kqqu_Qksz8nnAiT=Yk%dnH@xa5{=hJE#Ujohu9oe^`8vO z4G20dXhF~!L1zU$E$A6R&o&P!Z#0HHn<@hYqz(H3NF+vk;80@-uzw@%{$S9dAMm}@ z`L&?{JelMvuFwH*=!zXuqVUtyvP|IZ!$jgQ{4SLmCGR$mhT{gnAH6no5P<3tQvpQ{ESxO9^ed0Ga{Kf=+|ZfX;$m0=*1+MQDX-5c~==WeUXM zl1EHZ?+vgHxkeWES_3amw*u`a6dv+6Jh86PF=#H6oK{@bPF&4tBFatI5(mzo`+ybC zUAk~tsv1^xUPQRrYRDAFjy?R;Sg>oB;o9zkRWm;}=0X7%ZP6;bMy*nI?B!r{#deMS zidA1Rs+B9oa?4$?>$Ca7jM1pL){Dz#dCC0HY8dn8lI0i(QdhNMNFdCupw5!XE?zJg ztJEtlWBKKl7z7w*&$FwRwX`}KUhn)KZ5Buy@*A&_Zf5vaKct?Idp}@1$_Fu&1 zO)!;P1? z5?XA^uPLWr%tZuIHO0_*9E3TXgK!$o6dWGIdzg6D@9Q<^Bn str: - day = self.date("%w") - DAY_NAMES = { - "0": "일요일", - "1": "월요일", - "2": "화요일", - "3": "수요일", - "4": "목요일", - "5": "금요일", - "6": "토요일", - } - return DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - MONTH_NAMES = { - "01": "1월", - "02": "2월", - "03": "3월", - "04": "4월", - "05": "5월", - "06": "6월", - "07": "7월", - "08": "8월", - "09": "9월", - "10": "10월", - "11": "11월", - "12": "12월", - } - return MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ko_KR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ko_KR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 28d4fd92f717a10798cda1897b37d50d92be4002..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1310 zcmZ`(%}*0S6rb5`q20Dp3q(OwAZoHvSz5jmV}fEd8mbX4a&S^RQ(0)cxVr@*pdN@R z@nDQ3)UU)Va`oWB|G*30$Rs8to>WL`suxba*>$@1yMwC8fEa9gpq`i5l z(lJ(;Fp5z+1#AT|2%>0AqL|4k2@-n7JQXYh_KJk2NY86bX6MXo5{u}{@WCpKrAxq8 z&^(%`wpN@dUaM#qFqNoGJ=9BUXf5?o|J&LHXGm-K??nUR+_ z54UXWo4@OPjY{5MjG%B+p?>Mny6<=iLeZXLhd|*J`#OMwioGVnU_hz&6`LwFK!Y^& zHn^wghvGR8L`1jVEIT0Pf-V4}RaOtUU#ttn=sH1tm`R)7IdGGDppY!=F zQR}B{vtSbPyM7phH9m(cNR9~*pe+*6x{xFc1sI+g1 zsOtk44Q(7letZr;L2^tu1_7xXK*0bLQeZ(EGGIT>)J>RxEKEWU@=yQ=rr-ixgd$AC z%;Q`=1+zz_ZowR4x;I~15Go0o?nfbbyD}4a-iUx7#!6!!M0~_10DZX7Ze8IwwYBdh zT2;zOx+-Z!(yF9ulCDd-A?c>fG`+Cn318Yfd|PN{;Tv z>+E*oq!Y`Dn70!iY;z$q(S8ysVuw+8q_TlGG%Mw#v06c?qO75;qimpTqFhC}hVrH~ zDyt~ySE)AWxSQ%w^(z^^k8n)xlIF`+)TssZWUT#~qKEoa|5J>{%&%SZ@qJXV zlrdhcBaFK$R*}oB_GO_L@P6^1!d@tsRlvBesp;eFciHcA_bsgI7iaOzS^U8|b5>66 z6;VaM8qT-P^t%|7S;m40IxUVo$Jm{Y*HX7ICa$2b*icYWu!-;^(QnW>>7PwQ3N7&$ z2uI|%{LCOftM}X>KR+T*9s5H1@Z%@5#F-xyaL?#n92BPYM$N*YFsDuPPZ#pV^x>y} zUNWrLhPGi{9^I&VUn`lCjQ;Vd8#o4AI0fgu5O1Nwi{zf!Z;z^aSG str: - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/no_NO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/no_NO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 562620fd30f2efa8010af4f97c36c9c130e3ccab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1319 zcmah|O>7)B6t?GYC!76AyPGsYqA5ir8bLGJ{FEO7qEG}C>J}*x5__>GYi}}}otees zP1&fF9CB#Ip+X#zLl0b0t{i&rkxO!7WeEwXCvK^>TzcZ!nb3fQu=Kw7`Tf|>&-O3H zVjijSbG|)hBJ@O0GO#l}oB^_jD5AK7BHS=AGSDZ88oP*^%s7BNH5#~YdG;R$P!CJ@ zbDnI4l<}r^W>C!Z@CzV&h(QuX4TEB8P?K8JrVh)y?UMl2B%DRF@YYZ}zO_3<##>v)+$)zmS%qvJ^z6P=YvIw#SvJ7$+ z@ZsM%DN~sno8GZ<`hwh;ESufbsp!guOeuE)G-Q2&% z9Xth=733N9ZR54uo*^w72qs6aU;C2OuigB3MVV68X-Sg?{ZuV+>C*FW{f#7IzDUFd zi-NEH)l&kGqRpDZkHRKTy4hqc5&qm3i?{qvxaN2JVk3zc=V}Xn8VYu$8#FhAb(Z?A zV3TnllJv7meN_k%A?y<;q<+gMB#c8r$XvHCN1+&!w8(A7Hn*#%PjT*y^<}6uy$G;_ z2Bq^4!u#RA^<8q$9F!{$?%uz<-#jW`K6Eb+Ap-rQv+9VtvmXHYug)HTPmTZWE3QKW z?I?-Gh8(?ltG@c_XoDL2LcZz+9kmM~d9*f#fh`{wCtX9c5WP34g1yol_3Ik>>Bp${zuP%&z|hBuA}am5}o|~vFq?M yR^efswuiq10WV5@?!J3+(D(U!;80&69S1lzF~+~4*Pl7lc=oV7{U-vg)BXb1`&R@2 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/pl_PL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/pl_PL/__init__.py deleted file mode 100644 index 7e4620c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/pl_PL/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "poniedziałek", - "1": "wtorek", - "2": "środa", - "3": "czwartek", - "4": "piątek", - "5": "sobota", - "6": "niedziela", - } - - MONTH_NAMES = { - "01": "styczeń", - "02": "luty", - "03": "marzec", - "04": "kwiecień", - "05": "maj", - "06": "czerwiec", - "07": "lipiec", - "08": "sierpień", - "09": "wrzesień", - "10": "październik", - "11": "listopad", - "12": "grudzień", - } - - def day_of_week(self): - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self): - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/pl_PL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/pl_PL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5f776af6e51fcf0c80fea4d7c93e04ee5d0f7e41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1330 zcmah|O>7%Q6rS1jZZ?kXP3t6$rK*Y2Ho+>*#z|U0LWrUweo9THh6BEgwmXw%<6Wphp5i9eaMrmhC7+E@rMR# z84K$gk9K^@xTk_CNALMEoI@3cngPs61JG12ymqoPX@y)2=Gurjt{#UFn%ytrSR&SXQ>3`27 z>I%#2wq2fpb4=3xU%m!im~nI?N?b91l+6OSJSOmpz!ia41zr<)UEm7>Uu;>B6(=39 z%lbW$30g@55sfDRk;~VtK^;{L?R;ttezp5+z$KbU$}CMhc9~HuDlE^gSLmQv<$= zv%JF^J5J!=aGITDD{8DQS5}?aPuTgU>($+xEOs{CI^zx`siBJi3splVY8Oa&Q;#Ge54(4+jx zL4I2OP7LxhN|}9PTgS}Z4<64TyEG_F4GJ@Z0w~2nVRod0c~Y6BC#8JR+`aPWDa|-N zv@~Ps=tkN5YFQUZ-6$q6!x(J96pVVoD?oTw+*9k#qgTDf*C8P1J)Q=5tYeISL+Ac7 P=kd~kJ@+?)U8Vg4POAqRPwf>UrB zreOwVA7raZDD07{4rdTk{kh`2uZoaq5U%5Gi-8&N?XCy*YJ)qz-OZviE3$sb+&HrX^jIv@Gemq#Kf6ko2OYn=;+9Jv>Foi3aa+ zUy0omrnxpAD5P%Je5WmwuI-@G>Uzy+Y2%Wzw?z;NX#_mvZVk6ci*DFeg5inYvB>~F zh@@gxYHMZWb>t1?3&7|F|NE`r&z|ARD%?cE+g!dTcmZ;8%F^> zh^^mHj8O0L6}m;|(Q=&>waP$y^F~pVNw7mMC$3!jid8OM{qVXn1-#vm39$Qt+G26> z*|%0xxZDaw*yOH#)7lyfI3_J#4=vZJ`=S#oH4$2+9`|}y+o@Tde%KV=Myb4R1y0CU zJ9d4?-sXYTuy?p`VNx_`fu#yzp@ZjiLU#EJi!sM@LdHs+zMRBjm}syYobL=~#=}`U zVLgkL1`2k`Fn9W%bJw|_{7&3S4D-|XZr{CqzkZZoIy9C>7(rg@th!><*$+_oug)Hz zPtpJOl~%BUx+}b}DJQRfUfKG1+*W@D^ZiwXxT}5nt z%zozk%n#W+I^OE{{K8Rw;Ya-_zkFyc`{yyPfe=GZD@`nK!3XyPrKhtLf)PhNiC^pQw6YDJCR2{s~N7!7uE^vESSVU2`@)DyQB(@Rf%vst$R3GuY=H}7-i&D*#8 zt7&G4qF*wt=PhB+r*_+jS`J~LO|Oikl@+@<|(SuezK_lsi9b; z(zxM^o&(&kN6r|`cpY6uVV`hJ0#en0f(8jlf(|K2gYhU`O~3?XU=p%mLJsmU1*hON zOv4P!KFU^;P}n0?9nK)8`g6s3Ulk$KAY8}W76UWj+g%Ur)dqKbyPHL4$o_E_nrF*A7lW6cIpOiQ{ZX<5>BNjD_DDCs3hH)XnIdw7bF6Aj+u zz7o4BOml5KP)Oab`A%CVUE4vW)%BXu(#9oaZ;K!l(g=9S-5PF@7TvI`1j7@(W0L`V z5J|&P3(7m+U^Zz8{g{4Vl)QY)_^V_bQ?PO*$JsRk(?eT1-2?vU0=ZyW{m zAhv!@F+#n|f6*N}kCvOHs8t5q`CCOzCczH5oVarNOIEpj{o|X;6!3OKCcy3oYKz6i z7vES-;c_b!VUxS|ZEI^R;Fz>{J+xe>?u$;W)I?~Ndfe+-ZKq~+`e9Re8>RBP6*wVZ z?b!7ldz%MV!`|V(g-Ow%1(qs=g$|z63E7P;i!sM@LdHs+zMRBjm}szDobL=~#=}`U zVLgkL1`2k`Fn9WabKiNG{8rpc4D-_u?%u!quzr+ZIy9C>7(xEgS#`yzvmc`HU!6Tb zpQ8WmE3IGybys*{Q%+w0yt4J_xUK#Q=KHG%aaa8!$}$thGS7DTVEWa?UK^KGLVT~O znf=UnneVgrbiCDX`GuqW!VmgUe)-T?_Ag*u1&7>V(O!(n3}dc#XCjX%cn9H%Jv21(U(G*JE2hd zJrQu&6e8+(XiRGbg;x}ADBM(dRpB*-*A?DSwxB_uO2O5cE#8qMF`pjERe|=T=z`7k zDO@DrI<6P3%G3UheiW->#CtLKJLwUj7l)Y`gkr2^+#89tk}_5rz)j#);5FcN;0@qQ zz;6M+t&GMBF!(i^9?qJn7hS&Q;fDZ6=r-DU*$O&M3?FCOZ!vi2m--Lg#`B=Lj%r40 z-+1#@%}_Z;V`#vY%U_e$<*OfE*Q$tjx0K1~Aks%HE3#$mk8efo{NITm0D zcDNV2zVKw&%Ql@bcI$gQ*mJw0BIIVDcJ(cU$cx}B*EKXWYykX>(i760(tj<5 z99W{S01nY3XD)H7i8GyOVJdNE5@+^F#Xg%q`1J8Cs>~;4_-2#xTvDzk<(c$@?dz#t zTc6B3)%?NdPtO_F8$;W$&W~=?y>Hb_g+{;l str: - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ru_RU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ru_RU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 03ffaff1a2252ece2654047907e4cffd63a26f83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33268 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 PJ3BdH#@}+Jq3`}5WFZ*g diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/sk_SK/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/sk_SK/__init__.py deleted file mode 100644 index f7f9755..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/sk_SK/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "nedeľa", - "1": "pondelok", - "2": "utorok", - "3": "streda", - "4": "štvrtok", - "5": "piatok", - "6": "sobota", - } - - MONTH_NAMES = { - "01": "január", - "02": "február", - "03": "marec", - "04": "apríl", - "05": "máj", - "06": "jún", - "07": "júl", - "08": "august", - "09": "september", - "10": "október", - "11": "november", - "12": "december", - } - - def day_of_week(self): - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self): - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/sk_SK/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/sk_SK/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index be1f5c4dd10db480ef78a4e41fe8a20b7a012329..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1308 zcmah|O>7%Q6rNdoosDCA)8?nmrHKMfuu8LWk`|B~1D3ld^9@0)Mly!YnK z+qVyk#XM2t+k7LRA>>!RNx@9l!2*(f0t9G___StFVvx587<&XV+&Dx(HEOh*Et|g? zNXt}O?~AbG0T*?Bm_jjK2k#=;CmfxC)C{0tKnAj4LJmg2dN5MUz$oNl3<^+$64)>f zr{FY9z$8pPDAckry+>*$oI%WW&z5I|N+KCS2srQ`zIUb74g=t=uqks%9168YvEbk) z7Fzvy5O+kZlx@$|YZPvVv0EOIbXn4hq$`rHO1dWLB}p&q$PG70dIv)LZ}Cl`Hq!K6 z!Rtv5W4dk8`?{56k@~%Zh9-^PcfpXfWX?@)BvC9!Bi@d=zsXO6h0VD44Q`|rgdMGx z7Vx@e<$^SpD<~@{t0-$ImryRFyoB;H$}7^SETf=ZWu;Crf#FbPQ8IV~VV~S0jb~3& zE1-v|_7jR0>I?pB+@dq6Stn(qx?`NbSvF)A+?dPJt5-f`)hpNETvw`yx3**k+-{^o z%*{Rd)Y%Sw?!;ld&3*S{XJbgPIU2kkJHA&JVLRPm{hg%_4?0fE+jQF9csmSMmnthx z)FP*;U-SzHgKMU_<`u4=V+jno@uOHj4!nQEyu3ESKWAfSXOZ!{lx`@w5nnexy)-@7Pvm&nfUu*PnGk^ zA$`~QF+YT)#gP{n`zUc+ z>K4Yt^JptxRPcg=iwIv49YN=$|3MAv7l=MU*dxCbr~Ab-{o<6KDS2#Lr*gaRJenr< z*?tM`Mzn?SA=LVKxE}q<|YF{m9B+)m@@vGPd8`uTI tT8Ii7JWcM2_3Fv1UK4A0p!z+ULU@#+l>SUE{E?fZi%0hCp9EL!_7|HCPT2qe diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/sl_SI/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/sl_SI/__init__.py deleted file mode 100644 index efc7b67..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/sl_SI/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "Nedelja", - "1": "Ponedeljek", - "2": "Torek", - "3": "Sreda", - "4": "Četrtek", - "5": "Petek", - "6": "Sobota", - } - - MONTH_NAMES = { - "01": "Januar", - "02": "Februar", - "03": "Marec", - "04": "April", - "05": "Maj", - "06": "Junij", - "07": "Julij", - "08": "Avgust", - "09": "September", - "10": "Oktober", - "11": "November", - "12": "December", - } - - def day_of_week(self) -> str: - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/sl_SI/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/sl_SI/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 741750518293934eea11667afff1db1d11f45207..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1319 zcmah|OK%%D5GHrEtF^3$6Uh(t5F0LHLkOa^Tmoa$ z;mj4rdWU;Wp>H~MVchPvJ!P6;%=O;gZV-yGD(i%-wZkC!P9yXsuquA3dkzR8psWhcR=11T4@Oc;!0&QgdU*!>$BjK zjpCEY`!$9Ld2|114{#nlRaDR_``Xoe1x>`L6EZQjvHm5gtZ#l?m9Bs_cZE)!ejt~a zn|t|9s1!OYdQDr?Gb=SQD<&ww>+2oooE1j+r=Jh_w1&(V|V)Dp5IMffPukD3|6gzz}4#g0Em)v8lv7Z|~ z#o}w;D^O`5)d3o$FF)}fd&jYF{YUyBlYR2=@xx>HEHi&<%?}|0{fk+7M8)g}0N%vx z3Czj%zr5lK5NNdgcDN_TH}6!oKO51?i;&M(Kt-(bCBPz~VoBR+vHk2n2Ycn5mkH6i zCUQrK?-M^H9~p3}-!ijjnb{wWv&_P&wZO{|S1DM+B5Ex{M1qi(PrFS9I7!G?U8gB` zA%tItSiUNE*MpGrk{qsq`U$CJRAK7VDHVg6zy)=P{zy#?Qu#qDr~0(glg~2NCG+6c z`4q}b57N*lRnLyV)F7Q#{+U5~=2NzoHp$A6JJ6%( str: - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/ta_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/ta_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d0d4141a8146441cff4d9686b1f3f0670b76fc8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1603 zcmah}&2Jk;6rWjt#BsddG)Y4ORg$Jn!V2)lNk2eBh(ZxmRSi<2O7&&rdM0EO+Z)#F z6i1~56d+YqMF>?1Rn&6eKpSb@LMw5ie*l-{#A+m@l{oe0%I&2m-i+5xs6edty?ygO ze)D^8clLKxjU#d0i_aYoBlMSC1S%3d8>3*XBZ??4pd!vH7%Av|M3ogpLrmEUHS@B# z8rCBZ60H{(_R*tQRoXR;cPUp`@n9i_UkX&f>32YDBu0jcOUrf z_kQiF?_TrWU%;sJ$;frT_OEu!jJ-3-Edy$KxEQIiBEnlH(&BALaO1KwwjB0PNg5 z0-?$Hwj==5U>k6^f=zf=!rzfWXzgmS>zeOAEBINsqmr8I*S@JFq`B$Wz6`qA>wx6d z00Vlv=DWX2=$is#AZSl?-9*3Xy8sEifTQ3LF#bwZ3OAHp*$p=5`IBtn-^u_DhIIWo zOg+Js@ifQ;$Rx-SkfR{SK#qgF4)O+9(&HeIm!9BJn>iJ`l*d50b%~EdNaGz)>*yky z+ZzqCDBcRZpJB)l-}H0WMcfabDWofzC1vD-uJAC;IgGcTJaLX>PMmpfO1R3bFvCMM zS1k*Op`oXr8?#oC8II-5vSRL2W4dL)ahYRz$0(Y4+gb<~=Pk!bEwa+0Q83RN3sq;< zDov)+6Gqu|*lP>9{Cw_XRyJmG^UOA&NFKPdA&3yi6#L}JsfbA+n>5ZpTLLA;`<qbNDzsbiix z;Hif_^`NKrfqtaL_C=RZ)q9aPQhJdPg3W82!`69i9L_BUW}9V-9; diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/th_TH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/th_TH/__init__.py deleted file mode 100644 index 8ece4b5..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/th_TH/__init__.py +++ /dev/null @@ -1,340 +0,0 @@ -import warnings - -from datetime import datetime -from typing import Optional - -from ....typing import DateParseType -from .. import Provider as DateParseTypeProvider - -# thai_strftime() code adapted from -# https://gist.github.com/bact/b8afe49cb1ae62913e6c1e899dcddbdb -# (Same code base with PyThaiNLP 2.x) -# Public Domain or CC0 1.0 Universal - -_TH_ABBR_WEEKDAYS = ["จ", "อ", "พ", "พฤ", "ศ", "ส", "อา"] -_TH_FULL_WEEKDAYS = [ - "วันจันทร์", - "วันอังคาร", - "วันพุธ", - "วันพฤหัสบดี", - "วันศุกร์", - "วันเสาร์", - "วันอาทิตย์", -] - -_TH_ABBR_MONTHS = [ - "ม.ค.", - "ก.พ.", - "มี.ค.", - "เม.ย.", - "พ.ค.", - "มิ.ย.", - "ก.ค.", - "ส.ค.", - "ก.ย.", - "ต.ค.", - "พ.ย.", - "ธ.ค.", -] -_TH_FULL_MONTHS = [ - "มกราคม", - "กุมภาพันธ์", - "มีนาคม", - "เมษายน", - "พฤษภาคม", - "มิถุนายน", - "กรกฎาคม", - "สิงหาคม", - "กันยายน", - "ตุลาคม", - "พฤศจิกายน", - "ธันวาคม", -] - -_HA_TH_DIGITS = str.maketrans("0123456789", "๐๑๒๓๔๕๖๗๘๙") -_BE_AD_DIFFERENCE = 543 - -_NEED_L10N = "AaBbCcDFGgvXxYy+" # flags that need localization -_EXTENSIONS = "EO-_0^#" # extension flags - - -# Standard conversion support for thai_strftime() -def _std_strftime(dt_obj: datetime, fmt_char: str) -> str: - """ - Standard datetime.strftime() with normalization and exception handling. - """ - str_ = "" - try: - str_ = dt_obj.strftime(f"%{fmt_char}") - if not str_ or str_ == f"%{fmt_char}": - # normalize outputs for unsupported directives - # in different platforms - # "%Q" may result "%Q", "Q", or "", make it "Q" - str_ = fmt_char - except ValueError as err: # pragma: no cover - # Unsupported directives may raise ValueError on Windows, - # in that case just use the fmt_char - warnings.warn( - (f"String format directive unknown/not support: %{fmt_char}" f"The system raises this ValueError: {err}"), - UserWarning, - ) - str_ = fmt_char - return str_ - - -# Thai conversion support for thai_strftime() -def _thai_strftime( - dt_obj: datetime, - fmt_char: str, - buddhist_era: bool = True, -) -> str: - """ - Conversion support for thai_strftime(). - - The fmt_char should be in _NEED_L10N when call this function. - """ - str_ = "" - year = dt_obj.year - if buddhist_era: - year = year + _BE_AD_DIFFERENCE - - if fmt_char == "A": - # National representation of the full weekday name - str_ = _TH_FULL_WEEKDAYS[dt_obj.weekday()] - elif fmt_char == "a": - # National representation of the abbreviated weekday - str_ = _TH_ABBR_WEEKDAYS[dt_obj.weekday()] - elif fmt_char == "B": - # National representation of the full month name - str_ = _TH_FULL_MONTHS[dt_obj.month - 1] - elif fmt_char == "b": - # National representation of the abbreviated month name - str_ = _TH_ABBR_MONTHS[dt_obj.month - 1] - elif fmt_char == "C": - # Thai Buddhist century (AD+543)/100 + 1 as decimal number; - str_ = str(int(year / 100) + 1).zfill(2) - elif fmt_char == "c": - # Locale’s appropriate date and time representation - # Wed 6 Oct 01:40:00 1976 - # พ 6 ต.ค. 01:40:00 2519 <-- left-aligned weekday, right-aligned day - str_ = ( - f"{_TH_ABBR_WEEKDAYS[dt_obj.weekday()]:<2} {dt_obj.day:>2} " - f"{_TH_ABBR_MONTHS[dt_obj.month - 1]} {dt_obj:%H:%M:%S} {year:04}" - ) - elif fmt_char == "D": - # Equivalent to ``%m/%d/%y'' - str_ = f"{dt_obj:%m/%d}/{year % 100:02}" - elif fmt_char == "F": - # Equivalent to ``%Y-%m-%d'' - str_ = f"{year:04}-{dt_obj:%m-%d}" - elif fmt_char == "G": - # ISO 8601 year with century representing the year that contains - # the greater part of the ISO week (%V). Monday as the first day - # of the week. - year_G = int(dt_obj.strftime("%G")) - if buddhist_era: - year_G = year_G + _BE_AD_DIFFERENCE - str_ = f"{year_G:04}" - elif fmt_char == "g": - # Same year as in ``%G'', - # but as a decimal number without century (00-99). - year_G = int(dt_obj.strftime("%G")) - if buddhist_era: - year_G = year_G + _BE_AD_DIFFERENCE - str_ = f"{year_G % 100:02}" - elif fmt_char == "v": - # BSD extension, ' 6-Oct-1976' - str_ = f"{dt_obj.day:>2}-{_TH_ABBR_MONTHS[dt_obj.month - 1]}-{year:04}" - elif fmt_char == "X": - # Locale’s appropriate time representation. - str_ = f"{dt_obj:%H:%M:%S}" - elif fmt_char == "x": - # Locale’s appropriate date representation. - str_ = f"{dt_obj:%d/%m}/{year:04}" - elif fmt_char == "Y": - # Year with century - str_ = f"{year:04}" - elif fmt_char == "y": - # Year without century - str_ = f"{year % 100:02}" - elif fmt_char == "+": - # National representation of the date and time - # (the format is similar to that produced by date(1)) - # Wed 6 Oct 1976 01:40:00 - str_ = ( - f"{_TH_ABBR_WEEKDAYS[dt_obj.weekday()]:<2} {dt_obj.day:>2} " - f"{_TH_ABBR_MONTHS[dt_obj.month - 1]} {year} {dt_obj:%H:%M:%S}" - ) - - return str_ - - -def thai_strftime( - dt_obj: datetime, - fmt: str = "%-d %b %Y", - thai_digit: bool = False, - buddhist_era: bool = True, -) -> str: - """ - Convert :class:`datetime.datetime` into Thai date and time format. - - The formatting directives are similar to :func:`datatime.strrftime`. - - This function uses Thai names and Thai Buddhist Era for these directives: - * **%a** - abbreviated weekday name - (i.e. "จ", "อ", "พ", "พฤ", "ศ", "ส", "อา") - * **%A** - full weekday name - (i.e. "วันจันทร์", "วันอังคาร", "วันเสาร์", "วันอาทิตย์") - * **%b** - abbreviated month name - (i.e. "ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ธ.ค.") - * **%B** - full month name - (i.e. "มกราคม", "กุมภาพันธ์", "พฤศจิกายน", "ธันวาคม",) - * **%y** - year without century (i.e. "56", "10") - * **%Y** - year with century (i.e. "2556", "2410") - * **%c** - date and time representation - (i.e. "พ 6 ต.ค. 01:40:00 2519") - * **%v** - short date representation - (i.e. " 6-ม.ค.-2562", "27-ก.พ.-2555") - """ - thaidate_parts = [] - - i = 0 - fmt_len = len(fmt) - while i < fmt_len: - str_ = "" - if fmt[i] == "%": - j = i + 1 - if j < fmt_len: - fmt_char = fmt[j] - if fmt_char in _NEED_L10N: # requires localization? - str_ = _thai_strftime(dt_obj, fmt_char, buddhist_era) - elif fmt_char in _EXTENSIONS: - fmt_char_ext = fmt_char - k = j + 1 - if k < fmt_len: - fmt_char = fmt[k] - if fmt_char in _NEED_L10N: - str_ = _thai_strftime( - dt_obj, - fmt_char, - buddhist_era, - ) - else: - str_ = _std_strftime(dt_obj, fmt_char) - - if fmt_char_ext == "-": - # GNU libc extension, - # no padding - if str_[0] and str_[0] in " 0": - str_ = str_[1:] - elif fmt_char_ext == "_": - # GNU libc extension, - # explicitly specify space (" ") for padding - if str_[0] and str_[0] == "0": - str_ = " " + str_[1:] - elif fmt_char_ext == "0": - # GNU libc extension, - # explicitly specify zero ("0") for padding - if str_[0] and str_[0] == " ": - str_ = "0" + str_[1:] - elif fmt_char_ext == "^": - # GNU libc extension, - # convert to upper case - str_ = str_.upper() - elif fmt_char_ext == "#": - # GNU libc extension, - # swap case - useful for %Z - str_ = str_.swapcase() - elif fmt_char_ext == "E": - # POSIX extension, - # uses the locale's alternative representation - # Not implemented yet - pass - elif fmt_char_ext == "O": - # POSIX extension, - # uses the locale's alternative numeric symbols - str_ = str_.translate(_HA_TH_DIGITS) - i = i + 1 # consume char after format char - else: - # format char at string's end has no meaning - str_ = fmt_char_ext - else: # not in _NEED_L10N nor _EXTENSIONS - # no known localization available, use Python's default - str_ = _std_strftime(dt_obj, fmt_char) - - i = i + 1 # consume char after "%" - else: - # % char at string's end has no meaning - str_ = "%" - else: - str_ = fmt[i] - - thaidate_parts.append(str_) - i = i + 1 - - thaidate_text = "".join(thaidate_parts) - - if thai_digit: - thaidate_text = thaidate_text.translate(_HA_TH_DIGITS) - - return thaidate_text - - -class Provider(DateParseTypeProvider): - def date( - self, - pattern: str = "%-d %b %Y", - end_datetime: Optional[DateParseType] = None, - thai_digit: bool = False, - buddhist_era: bool = True, - ) -> str: - """ - Get a date string between January 1, 1970 and now - :param pattern: format - :param end_datetime: datetime - :param thai_digit: use Thai digit or not (default: False) - :param buddhist_era: use Buddist era or not (default: True) - :example: '08 พ.ย. 2563' - :example: '๐๘ พ.ย. 2563' (thai_digit = True) - :example: '8 พฤศิจกายน 2020' (pattern: str = "%-d %B %Y", buddhist_era = False) - """ - return thai_strftime( - self.date_time(end_datetime=end_datetime), - pattern, - thai_digit, - buddhist_era, - ) - - def time( - self, - pattern: str = "%H:%M:%S", - end_datetime: Optional[DateParseType] = None, - thai_digit: bool = False, - ) -> str: - """ - Get a time string (24h format by default) - :param pattern: format - :param end_datetime: datetime - :param thai_digit: use Thai digit or not (default: False) - :example: '15:02:34' - :example: '๑๕:๐๒:๓๔' (thai_digit = True) - """ - return thai_strftime( - self.date_time(end_datetime=end_datetime), - pattern, - thai_digit, - ) - - def century(self, thai_digit: bool = False, buddhist_era: bool = True) -> str: - """ - :param thai_digi:t use Thai digit or not (default: False) - :param buddhist:_era use Buddist era or not (default: True) - :example: '20' - """ - end_century = 22 - if buddhist_era: - end_century = 26 - text = str(self.random_element(range(1, end_century))) - if thai_digit: - text = text.translate(_HA_TH_DIGITS) - return text diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/th_TH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/th_TH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 24502329db0777d37ddcd0c0a83f2a4ff1663ec4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9974 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 Vw@WE~C!L>pmoDDl{t^SW>L0N+ibenc diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/tr_TR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/tr_TR/__init__.py deleted file mode 100644 index 07e2720..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/tr_TR/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "Pazar", - "1": "Pazartesi", - "2": "Salı", - "3": "Çarşamba", - "4": "Perşembe", - "5": "Cuma", - "6": "Cumartesi", - } - - MONTH_NAMES = { - "01": "Ocak", - "02": "Şubat", - "03": "Mart", - "04": "Nisan", - "05": "Mayıs", - "06": "Haziran", - "07": "Temmuz", - "08": "Ağustos", - "09": "Eylül", - "10": "Ekim", - "11": "Kasım", - "12": "Aralık", - } - - def day_of_week(self): - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self): - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/tr_TR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/tr_TR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 815dbce5f25b5b4a133ed6565f3bff4a60520dd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmah|O>7%Q6rNe{+H1!@Y3=-7nkdkORcSU((gG4f1R7CV#f^wL;LB+2nUIaW-Y~nH zVyl!KBGHONg*c>#igHCcMdHY<>4{5n!Wsz)i4(UL!=)$QY}T|OAx3)Nym{|^Gw;29 z`(rMbL27-U*-9o5`ZYSlV8nZW29$lo5W_9x;+lq$hTcO=+e0kDwFBU(Rl^@rlT$3z7wh%)@keLFjRFu`htqb z52;(HVH%EW98TP=bE&@@x>TkW3dOTh63MKph zjSSbRe{|@EDHSMG%1tXPwfQp00>~oB638Wx%OJ0Tybkh))XMW95LaGkU|O6@V4Va-3#ow9p2utTTb2H z?gX1&dvUJ3VEazMFK*LDlYY#7dxJK)uz?hfmT#*>NZ_b<1gU;t6XLX;fRMTEjvRty zh_^v*a^CEg2IDyQg7q9^>MPhqz5LmG&Ryre{-t*((JK`1-M)MKe&eJteQZwmAp-rQ zv#P|Xvu}g)U!6SwpIZOhS6qPx8m`w4Hs#RjjY{?EpsnIO@WlmyxT|6obeV}_Nt?R7 zTl~AQ=f-J8i0c|I?PtEqe4V{xKvh2#CQk~J-x?={nPYQCSP)l%Q8!6+7a=l3i0iSi z#X-*!@<~Wr>J>u7%MdGGRq%>}ivZuD=!Ph#=>LmA2ao?Dz#jS~SL)@)dkQBar3m=6 zV4g|tzW-zt6-Ijb(O$mP%bzM^(Q$lW1lQQpiCi(cd;Rxwn(rk7$1Z DFP}?R diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/uz_UZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/uz_UZ/__init__.py deleted file mode 100644 index ad0fe0e..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/uz_UZ/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - DAY_NAMES = { - "0": "Dushanba", - "1": "Seshanba", - "2": "Chorshanba", - "3": "Payshanba", - "4": "Juma", - "5": "Shanba", - "6": "Yakshanba", - } - - MONTH_NAMES = { - "01": "Yanvar", - "02": "Fevral", - "03": "Mart", - "04": "Aprel", - "05": "May", - "06": "Iyun", - "07": "Iyul", - "08": "Avgust", - "09": "Sentabr", - "10": "Oktabr", - "11": "Noyabr", - "12": "Dekabr", - } - - def day_of_week(self) -> str: - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/uz_UZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/uz_UZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0bc462cc32cf119bbc131e19aa08bbb26e164504..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1313 zcmah|&2Jk;6rb5IZyc{Tsq@irXrdqztq|VWX;P3XAT)dw6t|KCQhXV0Jd@h7y=!LI zE{;mcA%|8RD#Rf<^uQJ6%74KnIk6fE35gT8R4$jEc(dNnf`l0Dd+#^zW9GfLZ+^C{ zERyS|?Ea*R(C^76WqK-yO8|}$MHIJD2iFvg6!bBo$`PU}Q%)gHt{NU_j{b)N(80pI z%Y%NCGG0%NDYH^J`~tu+Vh}`8O`(`7RHYi#sX;T;e444Lbc|-{IL%Ru=BZ65=p?;D z3v`N3Kh4!NI>Yomh0Y#nH6z7W0cQqt&TCvIB+SiT*zo*aPncDfqU^0kz*9VS*Bhiz z`?S~bgi#&2kL`G^k-^CbydrQ(;IhE00$&$+P2hE5?0A0PK3K zYYTPD8wl<8pywyNEsTx+y)xhOtOwO?cKkpJvo z>j9nvO%*vxeI`F*$D+;zKys1f+9#ZuV~n-P1f>(yJ{Jr=rq zUW;)Tf|7v>U6}}pns86=fP7wa32FMxh>&7;AjTmX66}%tjI|D?E{CxAiuM|08cKGE z;{25-&Bx6X?c3my8ry{@4g*}l)XbW`J{qeA)Bb@)kmP5q$Z&yj=|= z&dYLp1K5u!IVMRgd2R{Qz!KJh9iiW>*;syav2``J3b8c};F)bs8i%(pW{^D_=V#*l zRGgoV^MwQe2F*whVCLDJRWJ@eySS$4ub)(h2*ib{=*uU!o&#PU-7kMf#Zd(sz4?hv zn2c>0jLY`$o8a&=)feW?QK9eh_rM^ZKsXKTLd6*Wir#!~Ea2rcd;U)ZG70+&c(YV} diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/vi_VN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/vi_VN/__init__.py deleted file mode 100644 index c90fa16..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/vi_VN/__init__.py +++ /dev/null @@ -1,37 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - # Source: https://vi.wikipedia.org/wiki/%C4%90%E1%BB%8Bnh_d%E1%BA%A1ng_ng%C3%A0y_v%C3%A0_gi%E1%BB%9D_%E1%BB%9F_Vi%E1%BB%87t_Nam # NOQA - DAY_NAMES = { - "0": "Chủ Nhật", - "1": "Thứ Hai", - "2": "Thứ Ba", - "3": "Thứ Tư", - "4": "Thứ Năm", - "5": "Thứ Sáu", - "6": "Thứ Bảy", - } - - MONTH_NAMES = { - "01": "Tháng Một", - "02": "Tháng Hai", - "03": "Tháng Ba", - "04": "Tháng Tư", - "05": "Tháng Năm", - "06": "Tháng Sáu", - "07": "Tháng Bảy", - "08": "Tháng Tám", - "09": "Tháng Chín", - "10": "Tháng Mười", - "11": "Tháng Mười Một", - "12": "Tháng Mười Hai", - } - - def day_of_week(self): - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self): - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/vi_VN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/vi_VN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 9e9b153a52c8604216fbf416e148a52496937738..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1435 zcmah}O>EOv9DmP=Q#VcQ(w2`DXhYdrWr(_Ifo;+>jlwiGR1c}qrseWv@?7FJj*DX# zQZZI(J%DyV(+*`4lUD68p$dt^PW0G`%P#E+>q$FAoOUbAxNzG4y*O<)H0{a%pa0)q zdCqU?bQ1CNOLG2Y458;jh(M0s%~4?15JePMkb{d7MiTl6QE3&?m?dpM96v=|kLTn+ zBw%xxDOWsq$)=W962=J9(YyHxFl)$yAc~3-#Z;m(8mBT%&@QSx=qko&H%-zWnxbi{ zQjPY~1GJC!(*b($L8=(1hgMNhriTF&^&`2A$D0UJ02j)Q&7ZSIx$)$YA9RDF0E&m% zOQsztd(yPoVJbX*9Pll)9F1SUb~?n_t@R-2*|SbJp8QnLbum1_aGv2whNl=l!|+*# z&x!Jd^45CwT6U(f`Mn>d5ei5h!K<9wo26_kRT_)ux zfWR+5S;CO0efV#}sW}a>hHjzxPHW^v@kXTm5`zc7KL0wma0WE9C?^@q(wjGO5{pyQ zw^;YZ^Is6-{LF{5Tvf9wb1X*9dX1;ZW?y}!mtDuweb+Brj(Jlrv>CXW^H#~%9lPYY zi;-~E_4V;3tGc9D?5p}>-7mYFt1rPea>94JRO3>-LC1p5#rlW zXUQg?89E_$)%FP)U#znpXok3RWFmzfQ0$4$z+IP>sYu}H5V>?Pw$0%19GD&_6cIM--d=0GR*U>;~BQ`QN=_0~RPdZq+Zdo|#XL!lm|F zy`vECodAfo>KzB3C511knvS*Hzc<*v@+1$4=IR|-OMaXDE_FwSsh(-WJKFG%@{TsT zt&DnnegnQHg@{~)up}XlOM{99e2S3kfmz{I2=NBN*Bjx$6MMYGLnJbYp2Q!3fH+uc zp98F--2_sPh3O+<`mn%En1*NYg{B-xtbDwC2x-Sdbud&j0*{6&JjdEN6sm88>d1>s zx<9dU`OhIqKG{?xd8}2FZ{Ntp7!oyE??t!>1-J+8ZFpngu;1P*<-OKi?|W~7f#3Mr aL4e&D#`t%1>aWBJJhrV3zeMmBVSfXpJAX0& diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_CN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_CN/__init__.py deleted file mode 100644 index a69e6d0..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_CN/__init__.py +++ /dev/null @@ -1,35 +0,0 @@ -from .. import Provider as DateTimeProvider - - -class Provider(DateTimeProvider): - MONTH_NAMES = { - "01": "一月", - "02": "二月", - "03": "三月", - "04": "四月", - "05": "五月", - "06": "六月", - "07": "七月", - "08": "八月", - "09": "九月", - "10": "十月", - "11": "十一月", - "12": "十二月", - } - DAY_NAMES = { - "0": "星期日", - "1": "星期一", - "2": "星期二", - "3": "星期三", - "4": "星期四", - "5": "星期五", - "6": "星期六", - } - - def day_of_week(self) -> str: - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - return self.MONTH_NAMES[month] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_CN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_CN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e06bd630620311532b8e8abfcad92b31948cdd23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1394 zcmah|&2Jk;6rb7kIvd9yX_J6c3k>78AZ|1#u zAAb8wDwQB={gjw}K_}#oKncMJ_s$5CCIJGpN@}#IQKFHH1hf?bI@dPPPpu+t#4O`a z4XH(?`GIg39pIuIT!xSe_s)k%nuMbhkfH_@G|(Xi2E?HUOz4FK^g$9*>&c=HX~;l7 z9D$=S0E2LBy{8z1q(&!T8Ja;ZZ7YyuO8B^8xQH`T15A5 z-HPb$)^`!zyM8yKyPID|bnp5`M0bC_9nrn7zfiOnqah6gMp_WlN=j`!k1~NWiEc};5haTK)6PXw>+x9;q(-`Q{e(52z?-P+cTZf$d|OT)stG_0*l!}6>i zNyjD4OFALxq@<@MJtOH^85i7N5cM*}a-yZWsigB3LX%u2v)#9$70`|F^fQVUY6u=% zS7{bcrii5#mbB-uSelGM$>*~7!nu!F;oPOSr__~yv!t^^)TgB7pFNP7qt_qc{Oa!*9UaIk>fro`XI($|+gmv`~HWS|@ zzD=$gSk str: - day = self.date("%w") - return self.DAY_NAMES[day] - - def month_name(self) -> str: - month = self.month() - return self.MONTH_NAMES[month] - - def minguo_year(self) -> str: - year = self.year() - return str(int(year) - 1911) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_TW/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/date_time/zh_TW/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 56f7eefd3a151a210625f9fee121709698d28bf8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1661 zcmah}&u<$=6rNfC+Bmj1jnh(7XhISvTA^m+q%BlJh(ZxmsHRdPA$%D*o=Lrl?G5X7 zf=wtvq*AOD71T<$)Sz1Rd>r^Szlj zGw*xzcK(P)!$`E>!ZWKrg#NJ&M+Ka|Jp`bED5AK4iZ~--B%zNGm6j3pF=-vviI%}t zzZ!TX0aP)UubRfZPMMjrCmj`a`t}rn24b*?qKrf_m8g&UX@CZ4h|08shG{2_(CAtu z5e0(l$c0+&*wAmEo8vv=ET-rHNdx7YZ^W5M=bYxAbp+NgUh zAm*`vo5uorYKY@ej#C_uaXilPS&q+fe4YnQW>w5m4g(#xiEIjKzYnT`7SW7%*72fv z-5LEFgNG=H7uq6Dz{mtrrF2b7E~pas)2zjK$EAy(lk~+aA5Ms&GAm4TAI(!{ZgBB0o2+I%UN1c&zZ)YV@w&AHZspj^IAcl(&nmG-YAWaq{g(e zZm~0S+1zaQ8Y^ql*;!_4u*j~~vL*r{mJa9C@?`QejS#)0TZD|vRe2`_LyT#%z}Rf9 z$F1-Y&*=;DL^0R#3Dv`yPP* z%IrGKiT2XG;xr^MP&7(bo_AjPG(GvTn^yBRSa0@&aD^X(e-3ObLtFBY*#~|{c!@{E=5-ao%XwMC*KU^k{Gi3d zdZM@n&y`zUcKzrJA$V_m++Sr`ll#gRD7|E<(g9KNbR8kuS=39{Dh3hmo-6c>CdCrL z7p@R)ty-_HezoHNQ|Z1l{)2VelAp@xO(6>3l@71XcD-pjrV`^mDEA7;u1sAcqb>_qGTzCMsyXGiNh!>!I9MrxKWBeC-^GR?3C%2T|rwDp` F*}u2kwFv+K diff --git a/.venv/lib/python3.12/site-packages/faker/providers/doi/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/doi/__init__.py deleted file mode 100644 index 2ab98ce..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/doi/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -from faker.providers import BaseProvider - - -class Provider(BaseProvider): - """ - Provider for Digital Object Identifier (DOI) - Source of info: https://en.wikipedia.org/wiki/Digital_object_identifier (English) - """ - - def doi(self) -> str: - """ - Generate a valid Digital Object Identifier (DOI). - Format: 10.{4-9 digits}/{alphanumeric string} - Eg: 10.1000/xyz123 - - :sample: - """ - prefix = "10" - registrant = str(self.generator.random.randint(1000, 99999999)) - suffix = self.generator.bothify("?#?#?##").lower() - - return f"{prefix}.{registrant}/{suffix}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/doi/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/doi/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3362760fa8f1020d155d74626f720fdf320c8462..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1298 zcmah}&1)M+6rb7Eu4L6AksGHL6tNI!B4~Cbr-W3L7D^J6OHyzTMTZV!&8#%?esy-` zSh55?_~1hi>B%mkG^di{OAkHtZ)h(uKDaC`1bS(2E>14KG&8GR=~OyG?_=J3zuo!0 zdHd^y3uU0zPv!oO2Ed=GlL;f!XYWX3A5cJ{3q06{5NKcxP;D1boxwwWn%CBbg}U*# za_TTy{Fp@S6A^52%0y?HF_rQ$={kE`s(rvf8&c5LC~WIgV+BW}`fj0ZD6piIBaFT( zTXN;DD*h z5cBOve3OTaa$*Ofi#1uSibrU@vh%>dDNStCZ=HVK=>V)okb~A{uLExzepkJ zf)g0e;$zUy&n=_*>KAfruKUHgom*6La+uX0W|$N0KQI^as=20xysH1kd^fiaGh?EU z;S)fOu_mQC)}MfHjdf5jj=oQ+RQ#_op9vB(i&$I4<@Eo0V9zS=1;Qh7%W5|4o%e3M zZ&B5}Xo7Z#8}^7l@R;BoD~bj8yOUYf-ELaZY&05ZdpK&Y-Ym~zt%!J`%UZLIL~Azq zU$O=K-xsfpQSqaz>UZ@V+UF3}%|w^z$wGH}gh0q95}yWMQdFAzaZ=m};vRQ~iQxv1 zn5Y+$Ld0ArF+;%|zMYf>>v9P~WUd(v9Jv>%4k~8OBh(8#hGGf9JhF{G%?){H)%`>s z?}#AG9Qh<kf%Z<@uJ{7j~)Hp|~Sv{%TKC0Y4uC(^d7fUOTR}Lx%t%G-;l4s`A z?dKO8&r6Lnb!Q$(QcD>7#A6sIWsJRm4qRm~V*JH`xLKr#F%3Ex3w8O#6)AoI;w@z_ zE1|wKsZd--Z%VNX{?T-!bXs0Cnvd6C0;#6?D)m8KPcEj!*fU~;8oVix`l`&q&r2Un hU+P0qlL0k5(Pb%4bqL`f;QC8*2{!k}uYgo()obUGN)7-3 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/emoji/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/emoji/__init__.py deleted file mode 100644 index 6d29311..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/emoji/__init__.py +++ /dev/null @@ -1,3528 +0,0 @@ -from .. import BaseProvider - - -class Provider(BaseProvider): - emojis = [ - "😀", - "😃", - "😄", - "😁", - "😆", - "😅", - "🤣", - "😂", - "🙂", - "🙃", - "😉", - "😊", - "😇", - "🥰", - "😍", - "🤩", - "😘", - "😗", - "☺️", - "😚", - "😙", - "🥲", - "😋", - "😛", - "😜", - "🤪", - "😝", - "🤑", - "🤗", - "🤭", - "🤫", - "🤔", - "🤐", - "🤨", - "😐", - "😑", - "😶", - "😶‍🌫️", - "😏", - "😒", - "🙄", - "😬", - "😮‍💨", - "🤥", - "😌", - "😔", - "😪", - "🤤", - "😴", - "😷", - "🤒", - "🤕", - "🤢", - "🤮", - "🤧", - "🥵", - "🥶", - "🥴", - "😵", - "😵‍💫", - "🤯", - "🤠", - "🥳", - "🥸", - "😎", - "🤓", - "🧐", - "😕", - "😟", - "🙁", - "☹️", - "😮", - "😯", - "😲", - "😳", - "🥺", - "😦", - "😧", - "😨", - "😰", - "😥", - "😢", - "😭", - "😱", - "😖", - "😣", - "😞", - "😓", - "😩", - "😫", - "🥱", - "😤", - "😡", - "😠", - "🤬", - "😈", - "👿", - "💀", - "☠️", - "💩", - "🤡", - "👹", - "👺", - "👻", - "👽", - "👾", - "🤖", - "😺", - "😸", - "😹", - "😻", - "😼", - "😽", - "🙀", - "😿", - "😾", - "🙈", - "🙉", - "🙊", - "💋", - "💌", - "💘", - "💝", - "💖", - "💗", - "💓", - "💞", - "💕", - "💟", - "❣️", - "💔", - "❤️‍🔥", - "❤️‍🩹", - "❤️", - "🧡", - "💛", - "💚", - "💙", - "💜", - "🤎", - "🖤", - "🤍", - "💯", - "💢", - "💥", - "💫", - "💦", - "💨", - "🕳️", - "💣", - "💬", - "👁️‍🗨️", - "🗨️", - "🗯️", - "💭", - "💤", - "👋", - "👋🏻", - "👋🏼", - "👋🏽", - "👋🏾", - "👋🏿", - "🤚", - "🤚🏻", - "🤚🏼", - "🤚🏽", - "🤚🏾", - "🤚🏿", - "🖐️", - "🖐🏻", - "🖐🏼", - "🖐🏽", - "🖐🏾", - "🖐🏿", - "✋", - "✋🏻", - "✋🏼", - "✋🏽", - "✋🏾", - "✋🏿", - "🖖", - "🖖🏻", - "🖖🏼", - "🖖🏽", - "🖖🏾", - "🖖🏿", - "👌", - "👌🏻", - "👌🏼", - "👌🏽", - "👌🏾", - "👌🏿", - "🤌", - "🤌🏻", - "🤌🏼", - "🤌🏽", - "🤌🏾", - "🤌🏿", - "🤏", - "🤏🏻", - "🤏🏼", - "🤏🏽", - "🤏🏾", - "🤏🏿", - "✌️", - "✌🏻", - "✌🏼", - "✌🏽", - "✌🏾", - "✌🏿", - "🤞", - "🤞🏻", - "🤞🏼", - "🤞🏽", - "🤞🏾", - "🤞🏿", - "🤟", - "🤟🏻", - "🤟🏼", - "🤟🏽", - "🤟🏾", - "🤟🏿", - "🤘", - "🤘🏻", - "🤘🏼", - "🤘🏽", - "🤘🏾", - "🤘🏿", - "🤙", - "🤙🏻", - "🤙🏼", - "🤙🏽", - "🤙🏾", - "🤙🏿", - "👈", - "👈🏻", - "👈🏼", - "👈🏽", - "👈🏾", - "👈🏿", - "👉", - "👉🏻", - "👉🏼", - "👉🏽", - "👉🏾", - "👉🏿", - "👆", - "👆🏻", - "👆🏼", - "👆🏽", - "👆🏾", - "👆🏿", - "🖕", - "🖕🏻", - "🖕🏼", - "🖕🏽", - "🖕🏾", - "🖕🏿", - "👇", - "👇🏻", - "👇🏼", - "👇🏽", - "👇🏾", - "👇🏿", - "☝️", - "☝🏻", - "☝🏼", - "☝🏽", - "☝🏾", - "☝🏿", - "👍", - "👍🏻", - "👍🏼", - "👍🏽", - "👍🏾", - "👍🏿", - "👎", - "👎🏻", - "👎🏼", - "👎🏽", - "👎🏾", - "👎🏿", - "✊", - "✊🏻", - "✊🏼", - "✊🏽", - "✊🏾", - "✊🏿", - "👊", - "👊🏻", - "👊🏼", - "👊🏽", - "👊🏾", - "👊🏿", - "🤛", - "🤛🏻", - "🤛🏼", - "🤛🏽", - "🤛🏾", - "🤛🏿", - "🤜", - "🤜🏻", - "🤜🏼", - "🤜🏽", - "🤜🏾", - "🤜🏿", - "👏", - "👏🏻", - "👏🏼", - "👏🏽", - "👏🏾", - "👏🏿", - "🙌", - "🙌🏻", - "🙌🏼", - "🙌🏽", - "🙌🏾", - "🙌🏿", - "👐", - "👐🏻", - "👐🏼", - "👐🏽", - "👐🏾", - "👐🏿", - "🤲", - "🤲🏻", - "🤲🏼", - "🤲🏽", - "🤲🏾", - "🤲🏿", - "🤝", - "🤝🏻", - "🤝🏼", - "🤝🏽", - "🤝🏾", - "🤝🏿", - "🙏", - "🙏🏻", - "🙏🏼", - "🙏🏽", - "🙏🏾", - "🙏🏿", - "✍️", - "✍🏻", - "✍🏼", - "✍🏽", - "✍🏾", - "✍🏿", - "💅", - "💅🏻", - "💅🏼", - "💅🏽", - "💅🏾", - "💅🏿", - "🤳", - "🤳🏻", - "🤳🏼", - "🤳🏽", - "🤳🏾", - "🤳🏿", - "💪", - "💪🏻", - "💪🏼", - "💪🏽", - "💪🏾", - "💪🏿", - "🦾", - "🦿", - "🦵", - "🦵🏻", - "🦵🏼", - "🦵🏽", - "🦵🏾", - "🦵🏿", - "🦶", - "🦶🏻", - "🦶🏼", - "🦶🏽", - "🦶🏾", - "🦶🏿", - "👂", - "👂🏻", - "👂🏼", - "👂🏽", - "👂🏾", - "👂🏿", - "🦻", - "🦻🏻", - "🦻🏼", - "🦻🏽", - "🦻🏾", - "🦻🏿", - "👃", - "👃🏻", - "👃🏼", - "👃🏽", - "👃🏾", - "👃🏿", - "🧠", - "🫀", - "🫁", - "🦷", - "🦴", - "👀", - "👁️", - "👅", - "👄", - "👶", - "👶🏻", - "👶🏼", - "👶🏽", - "👶🏾", - "👶🏿", - "🧒", - "🧒🏻", - "🧒🏼", - "🧒🏽", - "🧒🏾", - "🧒🏿", - "👦", - "👦🏻", - "👦🏼", - "👦🏽", - "👦🏾", - "👦🏿", - "👧", - "👧🏻", - "👧🏼", - "👧🏽", - "👧🏾", - "👧🏿", - "🧑", - "🧑🏻", - "🧑🏼", - "🧑🏽", - "🧑🏾", - "🧑🏿", - "👱", - "👱🏻", - "👱🏼", - "👱🏽", - "👱🏾", - "👱🏿", - "👨", - "👨🏻", - "👨🏼", - "👨🏽", - "👨🏾", - "👨🏿", - "🧔", - "🧔🏻", - "🧔🏼", - "🧔🏽", - "🧔🏾", - "🧔🏿", - "🧔‍♂️", - "🧔🏻‍♂️", - "🧔🏼‍♂️", - "🧔🏽‍♂️", - "🧔🏾‍♂️", - "🧔🏿‍♂️", - "🧔‍♀️", - "🧔🏻‍♀️", - "🧔🏼‍♀️", - "🧔🏽‍♀️", - "🧔🏾‍♀️", - "🧔🏿‍♀️", - "👨‍🦰", - "👨🏻‍🦰", - "👨🏼‍🦰", - "👨🏽‍🦰", - "👨🏾‍🦰", - "👨🏿‍🦰", - "👨‍🦱", - "👨🏻‍🦱", - "👨🏼‍🦱", - "👨🏽‍🦱", - "👨🏾‍🦱", - "👨🏿‍🦱", - "👨‍🦳", - "👨🏻‍🦳", - "👨🏼‍🦳", - "👨🏽‍🦳", - "👨🏾‍🦳", - "👨🏿‍🦳", - "👨‍🦲", - "👨🏻‍🦲", - "👨🏼‍🦲", - "👨🏽‍🦲", - "👨🏾‍🦲", - "👨🏿‍🦲", - "👩", - "👩🏻", - "👩🏼", - "👩🏽", - "👩🏾", - "👩🏿", - "👩‍🦰", - "👩🏻‍🦰", - "👩🏼‍🦰", - "👩🏽‍🦰", - "👩🏾‍🦰", - "👩🏿‍🦰", - "🧑‍🦰", - "🧑🏻‍🦰", - "🧑🏼‍🦰", - "🧑🏽‍🦰", - "🧑🏾‍🦰", - "🧑🏿‍🦰", - "👩‍🦱", - "👩🏻‍🦱", - "👩🏼‍🦱", - "👩🏽‍🦱", - "👩🏾‍🦱", - "👩🏿‍🦱", - "🧑‍🦱", - "🧑🏻‍🦱", - "🧑🏼‍🦱", - "🧑🏽‍🦱", - "🧑🏾‍🦱", - "🧑🏿‍🦱", - "👩‍🦳", - "👩🏻‍🦳", - "👩🏼‍🦳", - "👩🏽‍🦳", - "👩🏾‍🦳", - "👩🏿‍🦳", - "🧑‍🦳", - "🧑🏻‍🦳", - "🧑🏼‍🦳", - "🧑🏽‍🦳", - "🧑🏾‍🦳", - "🧑🏿‍🦳", - "👩‍🦲", - "👩🏻‍🦲", - "👩🏼‍🦲", - "👩🏽‍🦲", - "👩🏾‍🦲", - "👩🏿‍🦲", - "🧑‍🦲", - "🧑🏻‍🦲", - "🧑🏼‍🦲", - "🧑🏽‍🦲", - "🧑🏾‍🦲", - "🧑🏿‍🦲", - "👱‍♀️", - "👱🏻‍♀️", - "👱🏼‍♀️", - "👱🏽‍♀️", - "👱🏾‍♀️", - "👱🏿‍♀️", - "👱‍♂️", - "👱🏻‍♂️", - "👱🏼‍♂️", - "👱🏽‍♂️", - "👱🏾‍♂️", - "👱🏿‍♂️", - "🧓", - "🧓🏻", - "🧓🏼", - "🧓🏽", - "🧓🏾", - "🧓🏿", - "👴", - "👴🏻", - "👴🏼", - "👴🏽", - "👴🏾", - "👴🏿", - "👵", - "👵🏻", - "👵🏼", - "👵🏽", - "👵🏾", - "👵🏿", - "🙍", - "🙍🏻", - "🙍🏼", - "🙍🏽", - "🙍🏾", - "🙍🏿", - "🙍‍♂️", - "🙍🏻‍♂️", - "🙍🏼‍♂️", - "🙍🏽‍♂️", - "🙍🏾‍♂️", - "🙍🏿‍♂️", - "🙍‍♀️", - "🙍🏻‍♀️", - "🙍🏼‍♀️", - "🙍🏽‍♀️", - "🙍🏾‍♀️", - "🙍🏿‍♀️", - "🙎", - "🙎🏻", - "🙎🏼", - "🙎🏽", - "🙎🏾", - "🙎🏿", - "🙎‍♂️", - "🙎🏻‍♂️", - "🙎🏼‍♂️", - "🙎🏽‍♂️", - "🙎🏾‍♂️", - "🙎🏿‍♂️", - "🙎‍♀️", - "🙎🏻‍♀️", - "🙎🏼‍♀️", - "🙎🏽‍♀️", - "🙎🏾‍♀️", - "🙎🏿‍♀️", - "🙅", - "🙅🏻", - "🙅🏼", - "🙅🏽", - "🙅🏾", - "🙅🏿", - "🙅‍♂️", - "🙅🏻‍♂️", - "🙅🏼‍♂️", - "🙅🏽‍♂️", - "🙅🏾‍♂️", - "🙅🏿‍♂️", - "🙅‍♀️", - "🙅🏻‍♀️", - "🙅🏼‍♀️", - "🙅🏽‍♀️", - "🙅🏾‍♀️", - "🙅🏿‍♀️", - "🙆", - "🙆🏻", - "🙆🏼", - "🙆🏽", - "🙆🏾", - "🙆🏿", - "🙆‍♂️", - "🙆🏻‍♂️", - "🙆🏼‍♂️", - "🙆🏽‍♂️", - "🙆🏾‍♂️", - "🙆🏿‍♂️", - "🙆‍♀️", - "🙆🏻‍♀️", - "🙆🏼‍♀️", - "🙆🏽‍♀️", - "🙆🏾‍♀️", - "🙆🏿‍♀️", - "💁", - "💁🏻", - "💁🏼", - "💁🏽", - "💁🏾", - "💁🏿", - "💁‍♂️", - "💁🏻‍♂️", - "💁🏼‍♂️", - "💁🏽‍♂️", - "💁🏾‍♂️", - "💁🏿‍♂️", - "💁‍♀️", - "💁🏻‍♀️", - "💁🏼‍♀️", - "💁🏽‍♀️", - "💁🏾‍♀️", - "💁🏿‍♀️", - "🙋", - "🙋🏻", - "🙋🏼", - "🙋🏽", - "🙋🏾", - "🙋🏿", - "🙋‍♂️", - "🙋🏻‍♂️", - "🙋🏼‍♂️", - "🙋🏽‍♂️", - "🙋🏾‍♂️", - "🙋🏿‍♂️", - "🙋‍♀️", - "🙋🏻‍♀️", - "🙋🏼‍♀️", - "🙋🏽‍♀️", - "🙋🏾‍♀️", - "🙋🏿‍♀️", - "🧏", - "🧏🏻", - "🧏🏼", - "🧏🏽", - "🧏🏾", - "🧏🏿", - "🧏‍♂️", - "🧏🏻‍♂️", - "🧏🏼‍♂️", - "🧏🏽‍♂️", - "🧏🏾‍♂️", - "🧏🏿‍♂️", - "🧏‍♀️", - "🧏🏻‍♀️", - "🧏🏼‍♀️", - "🧏🏽‍♀️", - "🧏🏾‍♀️", - "🧏🏿‍♀️", - "🙇", - "🙇🏻", - "🙇🏼", - "🙇🏽", - "🙇🏾", - "🙇🏿", - "🙇‍♂️", - "🙇🏻‍♂️", - "🙇🏼‍♂️", - "🙇🏽‍♂️", - "🙇🏾‍♂️", - "🙇🏿‍♂️", - "🙇‍♀️", - "🙇🏻‍♀️", - "🙇🏼‍♀️", - "🙇🏽‍♀️", - "🙇🏾‍♀️", - "🙇🏿‍♀️", - "🤦", - "🤦🏻", - "🤦🏼", - "🤦🏽", - "🤦🏾", - "🤦🏿", - "🤦‍♂️", - "🤦🏻‍♂️", - "🤦🏼‍♂️", - "🤦🏽‍♂️", - "🤦🏾‍♂️", - "🤦🏿‍♂️", - "🤦‍♀️", - "🤦🏻‍♀️", - "🤦🏼‍♀️", - "🤦🏽‍♀️", - "🤦🏾‍♀️", - "🤦🏿‍♀️", - "🤷", - "🤷🏻", - "🤷🏼", - "🤷🏽", - "🤷🏾", - "🤷🏿", - "🤷‍♂️", - "🤷🏻‍♂️", - "🤷🏼‍♂️", - "🤷🏽‍♂️", - "🤷🏾‍♂️", - "🤷🏿‍♂️", - "🤷‍♀️", - "🤷🏻‍♀️", - "🤷🏼‍♀️", - "🤷🏽‍♀️", - "🤷🏾‍♀️", - "🤷🏿‍♀️", - "🧑‍⚕️", - "🧑🏻‍⚕️", - "🧑🏼‍⚕️", - "🧑🏽‍⚕️", - "🧑🏾‍⚕️", - "🧑🏿‍⚕️", - "👨‍⚕️", - "👨🏻‍⚕️", - "👨🏼‍⚕️", - "👨🏽‍⚕️", - "👨🏾‍⚕️", - "👨🏿‍⚕️", - "👩‍⚕️", - "👩🏻‍⚕️", - "👩🏼‍⚕️", - "👩🏽‍⚕️", - "👩🏾‍⚕️", - "👩🏿‍⚕️", - "🧑‍🎓", - "🧑🏻‍🎓", - "🧑🏼‍🎓", - "🧑🏽‍🎓", - "🧑🏾‍🎓", - "🧑🏿‍🎓", - "👨‍🎓", - "👨🏻‍🎓", - "👨🏼‍🎓", - "👨🏽‍🎓", - "👨🏾‍🎓", - "👨🏿‍🎓", - "👩‍🎓", - "👩🏻‍🎓", - "👩🏼‍🎓", - "👩🏽‍🎓", - "👩🏾‍🎓", - "👩🏿‍🎓", - "🧑‍🏫", - "🧑🏻‍🏫", - "🧑🏼‍🏫", - "🧑🏽‍🏫", - "🧑🏾‍🏫", - "🧑🏿‍🏫", - "👨‍🏫", - "👨🏻‍🏫", - "👨🏼‍🏫", - "👨🏽‍🏫", - "👨🏾‍🏫", - "👨🏿‍🏫", - "👩‍🏫", - "👩🏻‍🏫", - "👩🏼‍🏫", - "👩🏽‍🏫", - "👩🏾‍🏫", - "👩🏿‍🏫", - "🧑‍⚖️", - "🧑🏻‍⚖️", - "🧑🏼‍⚖️", - "🧑🏽‍⚖️", - "🧑🏾‍⚖️", - "🧑🏿‍⚖️", - "👨‍⚖️", - "👨🏻‍⚖️", - "👨🏼‍⚖️", - "👨🏽‍⚖️", - "👨🏾‍⚖️", - "👨🏿‍⚖️", - "👩‍⚖️", - "👩🏻‍⚖️", - "👩🏼‍⚖️", - "👩🏽‍⚖️", - "👩🏾‍⚖️", - "👩🏿‍⚖️", - "🧑‍🌾", - "🧑🏻‍🌾", - "🧑🏼‍🌾", - "🧑🏽‍🌾", - "🧑🏾‍🌾", - "🧑🏿‍🌾", - "👨‍🌾", - "👨🏻‍🌾", - "👨🏼‍🌾", - "👨🏽‍🌾", - "👨🏾‍🌾", - "👨🏿‍🌾", - "👩‍🌾", - "👩🏻‍🌾", - "👩🏼‍🌾", - "👩🏽‍🌾", - "👩🏾‍🌾", - "👩🏿‍🌾", - "🧑‍🍳", - "🧑🏻‍🍳", - "🧑🏼‍🍳", - "🧑🏽‍🍳", - "🧑🏾‍🍳", - "🧑🏿‍🍳", - "👨‍🍳", - "👨🏻‍🍳", - "👨🏼‍🍳", - "👨🏽‍🍳", - "👨🏾‍🍳", - "👨🏿‍🍳", - "👩‍🍳", - "👩🏻‍🍳", - "👩🏼‍🍳", - "👩🏽‍🍳", - "👩🏾‍🍳", - "👩🏿‍🍳", - "🧑‍🔧", - "🧑🏻‍🔧", - "🧑🏼‍🔧", - "🧑🏽‍🔧", - "🧑🏾‍🔧", - "🧑🏿‍🔧", - "👨‍🔧", - "👨🏻‍🔧", - "👨🏼‍🔧", - "👨🏽‍🔧", - "👨🏾‍🔧", - "👨🏿‍🔧", - "👩‍🔧", - "👩🏻‍🔧", - "👩🏼‍🔧", - "👩🏽‍🔧", - "👩🏾‍🔧", - "👩🏿‍🔧", - "🧑‍🏭", - "🧑🏻‍🏭", - "🧑🏼‍🏭", - "🧑🏽‍🏭", - "🧑🏾‍🏭", - "🧑🏿‍🏭", - "👨‍🏭", - "👨🏻‍🏭", - "👨🏼‍🏭", - "👨🏽‍🏭", - "👨🏾‍🏭", - "👨🏿‍🏭", - "👩‍🏭", - "👩🏻‍🏭", - "👩🏼‍🏭", - "👩🏽‍🏭", - "👩🏾‍🏭", - "👩🏿‍🏭", - "🧑‍💼", - "🧑🏻‍💼", - "🧑🏼‍💼", - "🧑🏽‍💼", - "🧑🏾‍💼", - "🧑🏿‍💼", - "👨‍💼", - "👨🏻‍💼", - "👨🏼‍💼", - "👨🏽‍💼", - "👨🏾‍💼", - "👨🏿‍💼", - "👩‍💼", - "👩🏻‍💼", - "👩🏼‍💼", - "👩🏽‍💼", - "👩🏾‍💼", - "👩🏿‍💼", - "🧑‍🔬", - "🧑🏻‍🔬", - "🧑🏼‍🔬", - "🧑🏽‍🔬", - "🧑🏾‍🔬", - "🧑🏿‍🔬", - "👨‍🔬", - "👨🏻‍🔬", - "👨🏼‍🔬", - "👨🏽‍🔬", - "👨🏾‍🔬", - "👨🏿‍🔬", - "👩‍🔬", - "👩🏻‍🔬", - "👩🏼‍🔬", - "👩🏽‍🔬", - "👩🏾‍🔬", - "👩🏿‍🔬", - "🧑‍💻", - "🧑🏻‍💻", - "🧑🏼‍💻", - "🧑🏽‍💻", - "🧑🏾‍💻", - "🧑🏿‍💻", - "👨‍💻", - "👨🏻‍💻", - "👨🏼‍💻", - "👨🏽‍💻", - "👨🏾‍💻", - "👨🏿‍💻", - "👩‍💻", - "👩🏻‍💻", - "👩🏼‍💻", - "👩🏽‍💻", - "👩🏾‍💻", - "👩🏿‍💻", - "🧑‍🎤", - "🧑🏻‍🎤", - "🧑🏼‍🎤", - "🧑🏽‍🎤", - "🧑🏾‍🎤", - "🧑🏿‍🎤", - "👨‍🎤", - "👨🏻‍🎤", - "👨🏼‍🎤", - "👨🏽‍🎤", - "👨🏾‍🎤", - "👨🏿‍🎤", - "👩‍🎤", - "👩🏻‍🎤", - "👩🏼‍🎤", - "👩🏽‍🎤", - "👩🏾‍🎤", - "👩🏿‍🎤", - "🧑‍🎨", - "🧑🏻‍🎨", - "🧑🏼‍🎨", - "🧑🏽‍🎨", - "🧑🏾‍🎨", - "🧑🏿‍🎨", - "👨‍🎨", - "👨🏻‍🎨", - "👨🏼‍🎨", - "👨🏽‍🎨", - "👨🏾‍🎨", - "👨🏿‍🎨", - "👩‍🎨", - "👩🏻‍🎨", - "👩🏼‍🎨", - "👩🏽‍🎨", - "👩🏾‍🎨", - "👩🏿‍🎨", - "🧑‍✈️", - "🧑🏻‍✈️", - "🧑🏼‍✈️", - "🧑🏽‍✈️", - "🧑🏾‍✈️", - "🧑🏿‍✈️", - "👨‍✈️", - "👨🏻‍✈️", - "👨🏼‍✈️", - "👨🏽‍✈️", - "👨🏾‍✈️", - "👨🏿‍✈️", - "👩‍✈️", - "👩🏻‍✈️", - "👩🏼‍✈️", - "👩🏽‍✈️", - "👩🏾‍✈️", - "👩🏿‍✈️", - "🧑‍🚀", - "🧑🏻‍🚀", - "🧑🏼‍🚀", - "🧑🏽‍🚀", - "🧑🏾‍🚀", - "🧑🏿‍🚀", - "👨‍🚀", - "👨🏻‍🚀", - "👨🏼‍🚀", - "👨🏽‍🚀", - "👨🏾‍🚀", - "👨🏿‍🚀", - "👩‍🚀", - "👩🏻‍🚀", - "👩🏼‍🚀", - "👩🏽‍🚀", - "👩🏾‍🚀", - "👩🏿‍🚀", - "🧑‍🚒", - "🧑🏻‍🚒", - "🧑🏼‍🚒", - "🧑🏽‍🚒", - "🧑🏾‍🚒", - "🧑🏿‍🚒", - "👨‍🚒", - "👨🏻‍🚒", - "👨🏼‍🚒", - "👨🏽‍🚒", - "👨🏾‍🚒", - "👨🏿‍🚒", - "👩‍🚒", - "👩🏻‍🚒", - "👩🏼‍🚒", - "👩🏽‍🚒", - "👩🏾‍🚒", - "👩🏿‍🚒", - "👮", - "👮🏻", - "👮🏼", - "👮🏽", - "👮🏾", - "👮🏿", - "👮‍♂️", - "👮🏻‍♂️", - "👮🏼‍♂️", - "👮🏽‍♂️", - "👮🏾‍♂️", - "👮🏿‍♂️", - "👮‍♀️", - "👮🏻‍♀️", - "👮🏼‍♀️", - "👮🏽‍♀️", - "👮🏾‍♀️", - "👮🏿‍♀️", - "🕵️", - "🕵🏻", - "🕵🏼", - "🕵🏽", - "🕵🏾", - "🕵🏿", - "🕵️‍♂️", - "🕵🏻‍♂️", - "🕵🏼‍♂️", - "🕵🏽‍♂️", - "🕵🏾‍♂️", - "🕵🏿‍♂️", - "🕵️‍♀️", - "🕵🏻‍♀️", - "🕵🏼‍♀️", - "🕵🏽‍♀️", - "🕵🏾‍♀️", - "🕵🏿‍♀️", - "💂", - "💂🏻", - "💂🏼", - "💂🏽", - "💂🏾", - "💂🏿", - "💂‍♂️", - "💂🏻‍♂️", - "💂🏼‍♂️", - "💂🏽‍♂️", - "💂🏾‍♂️", - "💂🏿‍♂️", - "💂‍♀️", - "💂🏻‍♀️", - "💂🏼‍♀️", - "💂🏽‍♀️", - "💂🏾‍♀️", - "💂🏿‍♀️", - "🥷", - "🥷🏻", - "🥷🏼", - "🥷🏽", - "🥷🏾", - "🥷🏿", - "👷", - "👷🏻", - "👷🏼", - "👷🏽", - "👷🏾", - "👷🏿", - "👷‍♂️", - "👷🏻‍♂️", - "👷🏼‍♂️", - "👷🏽‍♂️", - "👷🏾‍♂️", - "👷🏿‍♂️", - "👷‍♀️", - "👷🏻‍♀️", - "👷🏼‍♀️", - "👷🏽‍♀️", - "👷🏾‍♀️", - "👷🏿‍♀️", - "🤴", - "🤴🏻", - "🤴🏼", - "🤴🏽", - "🤴🏾", - "🤴🏿", - "👸", - "👸🏻", - "👸🏼", - "👸🏽", - "👸🏾", - "👸🏿", - "👳", - "👳🏻", - "👳🏼", - "👳🏽", - "👳🏾", - "👳🏿", - "👳‍♂️", - "👳🏻‍♂️", - "👳🏼‍♂️", - "👳🏽‍♂️", - "👳🏾‍♂️", - "👳🏿‍♂️", - "👳‍♀️", - "👳🏻‍♀️", - "👳🏼‍♀️", - "👳🏽‍♀️", - "👳🏾‍♀️", - "👳🏿‍♀️", - "👲", - "👲🏻", - "👲🏼", - "👲🏽", - "👲🏾", - "👲🏿", - "🧕", - "🧕🏻", - "🧕🏼", - "🧕🏽", - "🧕🏾", - "🧕🏿", - "🤵", - "🤵🏻", - "🤵🏼", - "🤵🏽", - "🤵🏾", - "🤵🏿", - "🤵‍♂️", - "🤵🏻‍♂️", - "🤵🏼‍♂️", - "🤵🏽‍♂️", - "🤵🏾‍♂️", - "🤵🏿‍♂️", - "🤵‍♀️", - "🤵🏻‍♀️", - "🤵🏼‍♀️", - "🤵🏽‍♀️", - "🤵🏾‍♀️", - "🤵🏿‍♀️", - "👰", - "👰🏻", - "👰🏼", - "👰🏽", - "👰🏾", - "👰🏿", - "👰‍♂️", - "👰🏻‍♂️", - "👰🏼‍♂️", - "👰🏽‍♂️", - "👰🏾‍♂️", - "👰🏿‍♂️", - "👰‍♀️", - "👰🏻‍♀️", - "👰🏼‍♀️", - "👰🏽‍♀️", - "👰🏾‍♀️", - "👰🏿‍♀️", - "🤰", - "🤰🏻", - "🤰🏼", - "🤰🏽", - "🤰🏾", - "🤰🏿", - "🤱", - "🤱🏻", - "🤱🏼", - "🤱🏽", - "🤱🏾", - "🤱🏿", - "👩‍🍼", - "👩🏻‍🍼", - "👩🏼‍🍼", - "👩🏽‍🍼", - "👩🏾‍🍼", - "👩🏿‍🍼", - "👨‍🍼", - "👨🏻‍🍼", - "👨🏼‍🍼", - "👨🏽‍🍼", - "👨🏾‍🍼", - "👨🏿‍🍼", - "🧑‍🍼", - "🧑🏻‍🍼", - "🧑🏼‍🍼", - "🧑🏽‍🍼", - "🧑🏾‍🍼", - "🧑🏿‍🍼", - "👼", - "👼🏻", - "👼🏼", - "👼🏽", - "👼🏾", - "👼🏿", - "🎅", - "🎅🏻", - "🎅🏼", - "🎅🏽", - "🎅🏾", - "🎅🏿", - "🤶", - "🤶🏻", - "🤶🏼", - "🤶🏽", - "🤶🏾", - "🤶🏿", - "🧑‍🎄", - "🧑🏻‍🎄", - "🧑🏼‍🎄", - "🧑🏽‍🎄", - "🧑🏾‍🎄", - "🧑🏿‍🎄", - "🦸", - "🦸🏻", - "🦸🏼", - "🦸🏽", - "🦸🏾", - "🦸🏿", - "🦸‍♂️", - "🦸🏻‍♂️", - "🦸🏼‍♂️", - "🦸🏽‍♂️", - "🦸🏾‍♂️", - "🦸🏿‍♂️", - "🦸‍♀️", - "🦸🏻‍♀️", - "🦸🏼‍♀️", - "🦸🏽‍♀️", - "🦸🏾‍♀️", - "🦸🏿‍♀️", - "🦹", - "🦹🏻", - "🦹🏼", - "🦹🏽", - "🦹🏾", - "🦹🏿", - "🦹‍♂️", - "🦹🏻‍♂️", - "🦹🏼‍♂️", - "🦹🏽‍♂️", - "🦹🏾‍♂️", - "🦹🏿‍♂️", - "🦹‍♀️", - "🦹🏻‍♀️", - "🦹🏼‍♀️", - "🦹🏽‍♀️", - "🦹🏾‍♀️", - "🦹🏿‍♀️", - "🧙", - "🧙🏻", - "🧙🏼", - "🧙🏽", - "🧙🏾", - "🧙🏿", - "🧙‍♂️", - "🧙🏻‍♂️", - "🧙🏼‍♂️", - "🧙🏽‍♂️", - "🧙🏾‍♂️", - "🧙🏿‍♂️", - "🧙‍♀️", - "🧙🏻‍♀️", - "🧙🏼‍♀️", - "🧙🏽‍♀️", - "🧙🏾‍♀️", - "🧙🏿‍♀️", - "🧚", - "🧚🏻", - "🧚🏼", - "🧚🏽", - "🧚🏾", - "🧚🏿", - "🧚‍♂️", - "🧚🏻‍♂️", - "🧚🏼‍♂️", - "🧚🏽‍♂️", - "🧚🏾‍♂️", - "🧚🏿‍♂️", - "🧚‍♀️", - "🧚🏻‍♀️", - "🧚🏼‍♀️", - "🧚🏽‍♀️", - "🧚🏾‍♀️", - "🧚🏿‍♀️", - "🧛", - "🧛🏻", - "🧛🏼", - "🧛🏽", - "🧛🏾", - "🧛🏿", - "🧛‍♂️", - "🧛🏻‍♂️", - "🧛🏼‍♂️", - "🧛🏽‍♂️", - "🧛🏾‍♂️", - "🧛🏿‍♂️", - "🧛‍♀️", - "🧛🏻‍♀️", - "🧛🏼‍♀️", - "🧛🏽‍♀️", - "🧛🏾‍♀️", - "🧛🏿‍♀️", - "🧜", - "🧜🏻", - "🧜🏼", - "🧜🏽", - "🧜🏾", - "🧜🏿", - "🧜‍♂️", - "🧜🏻‍♂️", - "🧜🏼‍♂️", - "🧜🏽‍♂️", - "🧜🏾‍♂️", - "🧜🏿‍♂️", - "🧜‍♀️", - "🧜🏻‍♀️", - "🧜🏼‍♀️", - "🧜🏽‍♀️", - "🧜🏾‍♀️", - "🧜🏿‍♀️", - "🧝", - "🧝🏻", - "🧝🏼", - "🧝🏽", - "🧝🏾", - "🧝🏿", - "🧝‍♂️", - "🧝🏻‍♂️", - "🧝🏼‍♂️", - "🧝🏽‍♂️", - "🧝🏾‍♂️", - "🧝🏿‍♂️", - "🧝‍♀️", - "🧝🏻‍♀️", - "🧝🏼‍♀️", - "🧝🏽‍♀️", - "🧝🏾‍♀️", - "🧝🏿‍♀️", - "🧞", - "🧞‍♂️", - "🧞‍♀️", - "🧟", - "🧟‍♂️", - "🧟‍♀️", - "💆", - "💆🏻", - "💆🏼", - "💆🏽", - "💆🏾", - "💆🏿", - "💆‍♂️", - "💆🏻‍♂️", - "💆🏼‍♂️", - "💆🏽‍♂️", - "💆🏾‍♂️", - "💆🏿‍♂️", - "💆‍♀️", - "💆🏻‍♀️", - "💆🏼‍♀️", - "💆🏽‍♀️", - "💆🏾‍♀️", - "💆🏿‍♀️", - "💇", - "💇🏻", - "💇🏼", - "💇🏽", - "💇🏾", - "💇🏿", - "💇‍♂️", - "💇🏻‍♂️", - "💇🏼‍♂️", - "💇🏽‍♂️", - "💇🏾‍♂️", - "💇🏿‍♂️", - "💇‍♀️", - "💇🏻‍♀️", - "💇🏼‍♀️", - "💇🏽‍♀️", - "💇🏾‍♀️", - "💇🏿‍♀️", - "🚶", - "🚶🏻", - "🚶🏼", - "🚶🏽", - "🚶🏾", - "🚶🏿", - "🚶‍♂️", - "🚶🏻‍♂️", - "🚶🏼‍♂️", - "🚶🏽‍♂️", - "🚶🏾‍♂️", - "🚶🏿‍♂️", - "🚶‍♀️", - "🚶🏻‍♀️", - "🚶🏼‍♀️", - "🚶🏽‍♀️", - "🚶🏾‍♀️", - "🚶🏿‍♀️", - "🧍", - "🧍🏻", - "🧍🏼", - "🧍🏽", - "🧍🏾", - "🧍🏿", - "🧍‍♂️", - "🧍🏻‍♂️", - "🧍🏼‍♂️", - "🧍🏽‍♂️", - "🧍🏾‍♂️", - "🧍🏿‍♂️", - "🧍‍♀️", - "🧍🏻‍♀️", - "🧍🏼‍♀️", - "🧍🏽‍♀️", - "🧍🏾‍♀️", - "🧍🏿‍♀️", - "🧎", - "🧎🏻", - "🧎🏼", - "🧎🏽", - "🧎🏾", - "🧎🏿", - "🧎‍♂️", - "🧎🏻‍♂️", - "🧎🏼‍♂️", - "🧎🏽‍♂️", - "🧎🏾‍♂️", - "🧎🏿‍♂️", - "🧎‍♀️", - "🧎🏻‍♀️", - "🧎🏼‍♀️", - "🧎🏽‍♀️", - "🧎🏾‍♀️", - "🧎🏿‍♀️", - "🧑‍🦯", - "🧑🏻‍🦯", - "🧑🏼‍🦯", - "🧑🏽‍🦯", - "🧑🏾‍🦯", - "🧑🏿‍🦯", - "👨‍🦯", - "👨🏻‍🦯", - "👨🏼‍🦯", - "👨🏽‍🦯", - "👨🏾‍🦯", - "👨🏿‍🦯", - "👩‍🦯", - "👩🏻‍🦯", - "👩🏼‍🦯", - "👩🏽‍🦯", - "👩🏾‍🦯", - "👩🏿‍🦯", - "🧑‍🦼", - "🧑🏻‍🦼", - "🧑🏼‍🦼", - "🧑🏽‍🦼", - "🧑🏾‍🦼", - "🧑🏿‍🦼", - "👨‍🦼", - "👨🏻‍🦼", - "👨🏼‍🦼", - "👨🏽‍🦼", - "👨🏾‍🦼", - "👨🏿‍🦼", - "👩‍🦼", - "👩🏻‍🦼", - "👩🏼‍🦼", - "👩🏽‍🦼", - "👩🏾‍🦼", - "👩🏿‍🦼", - "🧑‍🦽", - "🧑🏻‍🦽", - "🧑🏼‍🦽", - "🧑🏽‍🦽", - "🧑🏾‍🦽", - "🧑🏿‍🦽", - "👨‍🦽", - "👨🏻‍🦽", - "👨🏼‍🦽", - "👨🏽‍🦽", - "👨🏾‍🦽", - "👨🏿‍🦽", - "👩‍🦽", - "👩🏻‍🦽", - "👩🏼‍🦽", - "👩🏽‍🦽", - "👩🏾‍🦽", - "👩🏿‍🦽", - "🏃", - "🏃🏻", - "🏃🏼", - "🏃🏽", - "🏃🏾", - "🏃🏿", - "🏃‍♂️", - "🏃🏻‍♂️", - "🏃🏼‍♂️", - "🏃🏽‍♂️", - "🏃🏾‍♂️", - "🏃🏿‍♂️", - "🏃‍♀️", - "🏃🏻‍♀️", - "🏃🏼‍♀️", - "🏃🏽‍♀️", - "🏃🏾‍♀️", - "🏃🏿‍♀️", - "💃", - "💃🏻", - "💃🏼", - "💃🏽", - "💃🏾", - "💃🏿", - "🕺", - "🕺🏻", - "🕺🏼", - "🕺🏽", - "🕺🏾", - "🕺🏿", - "🕴️", - "🕴🏻", - "🕴🏼", - "🕴🏽", - "🕴🏾", - "🕴🏿", - "👯", - "👯‍♂️", - "👯‍♀️", - "🧖", - "🧖🏻", - "🧖🏼", - "🧖🏽", - "🧖🏾", - "🧖🏿", - "🧖‍♂️", - "🧖🏻‍♂️", - "🧖🏼‍♂️", - "🧖🏽‍♂️", - "🧖🏾‍♂️", - "🧖🏿‍♂️", - "🧖‍♀️", - "🧖🏻‍♀️", - "🧖🏼‍♀️", - "🧖🏽‍♀️", - "🧖🏾‍♀️", - "🧖🏿‍♀️", - "🧗", - "🧗🏻", - "🧗🏼", - "🧗🏽", - "🧗🏾", - "🧗🏿", - "🧗‍♂️", - "🧗🏻‍♂️", - "🧗🏼‍♂️", - "🧗🏽‍♂️", - "🧗🏾‍♂️", - "🧗🏿‍♂️", - "🧗‍♀️", - "🧗🏻‍♀️", - "🧗🏼‍♀️", - "🧗🏽‍♀️", - "🧗🏾‍♀️", - "🧗🏿‍♀️", - "🤺", - "🏇", - "🏇🏻", - "🏇🏼", - "🏇🏽", - "🏇🏾", - "🏇🏿", - "⛷️", - "🏂", - "🏂🏻", - "🏂🏼", - "🏂🏽", - "🏂🏾", - "🏂🏿", - "🏌️", - "🏌🏻", - "🏌🏼", - "🏌🏽", - "🏌🏾", - "🏌🏿", - "🏌️‍♂️", - "🏌🏻‍♂️", - "🏌🏼‍♂️", - "🏌🏽‍♂️", - "🏌🏾‍♂️", - "🏌🏿‍♂️", - "🏌️‍♀️", - "🏌🏻‍♀️", - "🏌🏼‍♀️", - "🏌🏽‍♀️", - "🏌🏾‍♀️", - "🏌🏿‍♀️", - "🏄", - "🏄🏻", - "🏄🏼", - "🏄🏽", - "🏄🏾", - "🏄🏿", - "🏄‍♂️", - "🏄🏻‍♂️", - "🏄🏼‍♂️", - "🏄🏽‍♂️", - "🏄🏾‍♂️", - "🏄🏿‍♂️", - "🏄‍♀️", - "🏄🏻‍♀️", - "🏄🏼‍♀️", - "🏄🏽‍♀️", - "🏄🏾‍♀️", - "🏄🏿‍♀️", - "🚣", - "🚣🏻", - "🚣🏼", - "🚣🏽", - "🚣🏾", - "🚣🏿", - "🚣‍♂️", - "🚣🏻‍♂️", - "🚣🏼‍♂️", - "🚣🏽‍♂️", - "🚣🏾‍♂️", - "🚣🏿‍♂️", - "🚣‍♀️", - "🚣🏻‍♀️", - "🚣🏼‍♀️", - "🚣🏽‍♀️", - "🚣🏾‍♀️", - "🚣🏿‍♀️", - "🏊", - "🏊🏻", - "🏊🏼", - "🏊🏽", - "🏊🏾", - "🏊🏿", - "🏊‍♂️", - "🏊🏻‍♂️", - "🏊🏼‍♂️", - "🏊🏽‍♂️", - "🏊🏾‍♂️", - "🏊🏿‍♂️", - "🏊‍♀️", - "🏊🏻‍♀️", - "🏊🏼‍♀️", - "🏊🏽‍♀️", - "🏊🏾‍♀️", - "🏊🏿‍♀️", - "⛹️", - "⛹🏻", - "⛹🏼", - "⛹🏽", - "⛹🏾", - "⛹🏿", - "⛹️‍♂️", - "⛹🏻‍♂️", - "⛹🏼‍♂️", - "⛹🏽‍♂️", - "⛹🏾‍♂️", - "⛹🏿‍♂️", - "⛹️‍♀️", - "⛹🏻‍♀️", - "⛹🏼‍♀️", - "⛹🏽‍♀️", - "⛹🏾‍♀️", - "⛹🏿‍♀️", - "🏋️", - "🏋🏻", - "🏋🏼", - "🏋🏽", - "🏋🏾", - "🏋🏿", - "🏋️‍♂️", - "🏋🏻‍♂️", - "🏋🏼‍♂️", - "🏋🏽‍♂️", - "🏋🏾‍♂️", - "🏋🏿‍♂️", - "🏋️‍♀️", - "🏋🏻‍♀️", - "🏋🏼‍♀️", - "🏋🏽‍♀️", - "🏋🏾‍♀️", - "🏋🏿‍♀️", - "🚴", - "🚴🏻", - "🚴🏼", - "🚴🏽", - "🚴🏾", - "🚴🏿", - "🚴‍♂️", - "🚴🏻‍♂️", - "🚴🏼‍♂️", - "🚴🏽‍♂️", - "🚴🏾‍♂️", - "🚴🏿‍♂️", - "🚴‍♀️", - "🚴🏻‍♀️", - "🚴🏼‍♀️", - "🚴🏽‍♀️", - "🚴🏾‍♀️", - "🚴🏿‍♀️", - "🚵", - "🚵🏻", - "🚵🏼", - "🚵🏽", - "🚵🏾", - "🚵🏿", - "🚵‍♂️", - "🚵🏻‍♂️", - "🚵🏼‍♂️", - "🚵🏽‍♂️", - "🚵🏾‍♂️", - "🚵🏿‍♂️", - "🚵‍♀️", - "🚵🏻‍♀️", - "🚵🏼‍♀️", - "🚵🏽‍♀️", - "🚵🏾‍♀️", - "🚵🏿‍♀️", - "🤸", - "🤸🏻", - "🤸🏼", - "🤸🏽", - "🤸🏾", - "🤸🏿", - "🤸‍♂️", - "🤸🏻‍♂️", - "🤸🏼‍♂️", - "🤸🏽‍♂️", - "🤸🏾‍♂️", - "🤸🏿‍♂️", - "🤸‍♀️", - "🤸🏻‍♀️", - "🤸🏼‍♀️", - "🤸🏽‍♀️", - "🤸🏾‍♀️", - "🤸🏿‍♀️", - "🤼", - "🤼‍♂️", - "🤼‍♀️", - "🤽", - "🤽🏻", - "🤽🏼", - "🤽🏽", - "🤽🏾", - "🤽🏿", - "🤽‍♂️", - "🤽🏻‍♂️", - "🤽🏼‍♂️", - "🤽🏽‍♂️", - "🤽🏾‍♂️", - "🤽🏿‍♂️", - "🤽‍♀️", - "🤽🏻‍♀️", - "🤽🏼‍♀️", - "🤽🏽‍♀️", - "🤽🏾‍♀️", - "🤽🏿‍♀️", - "🤾", - "🤾🏻", - "🤾🏼", - "🤾🏽", - "🤾🏾", - "🤾🏿", - "🤾‍♂️", - "🤾🏻‍♂️", - "🤾🏼‍♂️", - "🤾🏽‍♂️", - "🤾🏾‍♂️", - "🤾🏿‍♂️", - "🤾‍♀️", - "🤾🏻‍♀️", - "🤾🏼‍♀️", - "🤾🏽‍♀️", - "🤾🏾‍♀️", - "🤾🏿‍♀️", - "🤹", - "🤹🏻", - "🤹🏼", - "🤹🏽", - "🤹🏾", - "🤹🏿", - "🤹‍♂️", - "🤹🏻‍♂️", - "🤹🏼‍♂️", - "🤹🏽‍♂️", - "🤹🏾‍♂️", - "🤹🏿‍♂️", - "🤹‍♀️", - "🤹🏻‍♀️", - "🤹🏼‍♀️", - "🤹🏽‍♀️", - "🤹🏾‍♀️", - "🤹🏿‍♀️", - "🧘", - "🧘🏻", - "🧘🏼", - "🧘🏽", - "🧘🏾", - "🧘🏿", - "🧘‍♂️", - "🧘🏻‍♂️", - "🧘🏼‍♂️", - "🧘🏽‍♂️", - "🧘🏾‍♂️", - "🧘🏿‍♂️", - "🧘‍♀️", - "🧘🏻‍♀️", - "🧘🏼‍♀️", - "🧘🏽‍♀️", - "🧘🏾‍♀️", - "🧘🏿‍♀️", - "🛀", - "🛀🏻", - "🛀🏼", - "🛀🏽", - "🛀🏾", - "🛀🏿", - "🛌", - "🛌🏻", - "🛌🏼", - "🛌🏽", - "🛌🏾", - "🛌🏿", - "🧑‍🤝‍🧑", - "🧑🏻‍🤝‍🧑🏻", - "🧑🏻‍🤝‍🧑🏼", - "🧑🏻‍🤝‍🧑🏽", - "🧑🏻‍🤝‍🧑🏾", - "🧑🏻‍🤝‍🧑🏿", - "🧑🏼‍🤝‍🧑🏻", - "🧑🏼‍🤝‍🧑🏼", - "🧑🏼‍🤝‍🧑🏽", - "🧑🏼‍🤝‍🧑🏾", - "🧑🏼‍🤝‍🧑🏿", - "🧑🏽‍🤝‍🧑🏻", - "🧑🏽‍🤝‍🧑🏼", - "🧑🏽‍🤝‍🧑🏽", - "🧑🏽‍🤝‍🧑🏾", - "🧑🏽‍🤝‍🧑🏿", - "🧑🏾‍🤝‍🧑🏻", - "🧑🏾‍🤝‍🧑🏼", - "🧑🏾‍🤝‍🧑🏽", - "🧑🏾‍🤝‍🧑🏾", - "🧑🏾‍🤝‍🧑🏿", - "🧑🏿‍🤝‍🧑🏻", - "🧑🏿‍🤝‍🧑🏼", - "🧑🏿‍🤝‍🧑🏽", - "🧑🏿‍🤝‍🧑🏾", - "🧑🏿‍🤝‍🧑🏿", - "👭", - "👭🏻", - "👩🏻‍🤝‍👩🏼", - "👩🏻‍🤝‍👩🏽", - "👩🏻‍🤝‍👩🏾", - "👩🏻‍🤝‍👩🏿", - "👩🏼‍🤝‍👩🏻", - "👭🏼", - "👩🏼‍🤝‍👩🏽", - "👩🏼‍🤝‍👩🏾", - "👩🏼‍🤝‍👩🏿", - "👩🏽‍🤝‍👩🏻", - "👩🏽‍🤝‍👩🏼", - "👭🏽", - "👩🏽‍🤝‍👩🏾", - "👩🏽‍🤝‍👩🏿", - "👩🏾‍🤝‍👩🏻", - "👩🏾‍🤝‍👩🏼", - "👩🏾‍🤝‍👩🏽", - "👭🏾", - "👩🏾‍🤝‍👩🏿", - "👩🏿‍🤝‍👩🏻", - "👩🏿‍🤝‍👩🏼", - "👩🏿‍🤝‍👩🏽", - "👩🏿‍🤝‍👩🏾", - "👭🏿", - "👫", - "👫🏻", - "👩🏻‍🤝‍👨🏼", - "👩🏻‍🤝‍👨🏽", - "👩🏻‍🤝‍👨🏾", - "👩🏻‍🤝‍👨🏿", - "👩🏼‍🤝‍👨🏻", - "👫🏼", - "👩🏼‍🤝‍👨🏽", - "👩🏼‍🤝‍👨🏾", - "👩🏼‍🤝‍👨🏿", - "👩🏽‍🤝‍👨🏻", - "👩🏽‍🤝‍👨🏼", - "👫🏽", - "👩🏽‍🤝‍👨🏾", - "👩🏽‍🤝‍👨🏿", - "👩🏾‍🤝‍👨🏻", - "👩🏾‍🤝‍👨🏼", - "👩🏾‍🤝‍👨🏽", - "👫🏾", - "👩🏾‍🤝‍👨🏿", - "👩🏿‍🤝‍👨🏻", - "👩🏿‍🤝‍👨🏼", - "👩🏿‍🤝‍👨🏽", - "👩🏿‍🤝‍👨🏾", - "👫🏿", - "👬", - "👬🏻", - "👨🏻‍🤝‍👨🏼", - "👨🏻‍🤝‍👨🏽", - "👨🏻‍🤝‍👨🏾", - "👨🏻‍🤝‍👨🏿", - "👨🏼‍🤝‍👨🏻", - "👬🏼", - "👨🏼‍🤝‍👨🏽", - "👨🏼‍🤝‍👨🏾", - "👨🏼‍🤝‍👨🏿", - "👨🏽‍🤝‍👨🏻", - "👨🏽‍🤝‍👨🏼", - "👬🏽", - "👨🏽‍🤝‍👨🏾", - "👨🏽‍🤝‍👨🏿", - "👨🏾‍🤝‍👨🏻", - "👨🏾‍🤝‍👨🏼", - "👨🏾‍🤝‍👨🏽", - "👬🏾", - "👨🏾‍🤝‍👨🏿", - "👨🏿‍🤝‍👨🏻", - "👨🏿‍🤝‍👨🏼", - "👨🏿‍🤝‍👨🏽", - "👨🏿‍🤝‍👨🏾", - "👬🏿", - "💏", - "💏🏻", - "💏🏼", - "💏🏽", - "💏🏾", - "💏🏿", - "🧑🏻‍❤️‍💋‍🧑🏼", - "🧑🏻‍❤️‍💋‍🧑🏽", - "🧑🏻‍❤️‍💋‍🧑🏾", - "🧑🏻‍❤️‍💋‍🧑🏿", - "🧑🏼‍❤️‍💋‍🧑🏻", - "🧑🏼‍❤️‍💋‍🧑🏽", - "🧑🏼‍❤️‍💋‍🧑🏾", - "🧑🏼‍❤️‍💋‍🧑🏿", - "🧑🏽‍❤️‍💋‍🧑🏻", - "🧑🏽‍❤️‍💋‍🧑🏼", - "🧑🏽‍❤️‍💋‍🧑🏾", - "🧑🏽‍❤️‍💋‍🧑🏿", - "🧑🏾‍❤️‍💋‍🧑🏻", - "🧑🏾‍❤️‍💋‍🧑🏼", - "🧑🏾‍❤️‍💋‍🧑🏽", - "🧑🏾‍❤️‍💋‍🧑🏿", - "🧑🏿‍❤️‍💋‍🧑🏻", - "🧑🏿‍❤️‍💋‍🧑🏼", - "🧑🏿‍❤️‍💋‍🧑🏽", - "🧑🏿‍❤️‍💋‍🧑🏾", - "👩‍❤️‍💋‍👨", - "👩🏻‍❤️‍💋‍👨🏻", - "👩🏻‍❤️‍💋‍👨🏼", - "👩🏻‍❤️‍💋‍👨🏽", - "👩🏻‍❤️‍💋‍👨🏾", - "👩🏻‍❤️‍💋‍👨🏿", - "👩🏼‍❤️‍💋‍👨🏻", - "👩🏼‍❤️‍💋‍👨🏼", - "👩🏼‍❤️‍💋‍👨🏽", - "👩🏼‍❤️‍💋‍👨🏾", - "👩🏼‍❤️‍💋‍👨🏿", - "👩🏽‍❤️‍💋‍👨🏻", - "👩🏽‍❤️‍💋‍👨🏼", - "👩🏽‍❤️‍💋‍👨🏽", - "👩🏽‍❤️‍💋‍👨🏾", - "👩🏽‍❤️‍💋‍👨🏿", - "👩🏾‍❤️‍💋‍👨🏻", - "👩🏾‍❤️‍💋‍👨🏼", - "👩🏾‍❤️‍💋‍👨🏽", - "👩🏾‍❤️‍💋‍👨🏾", - "👩🏾‍❤️‍💋‍👨🏿", - "👩🏿‍❤️‍💋‍👨🏻", - "👩🏿‍❤️‍💋‍👨🏼", - "👩🏿‍❤️‍💋‍👨🏽", - "👩🏿‍❤️‍💋‍👨🏾", - "👩🏿‍❤️‍💋‍👨🏿", - "👨‍❤️‍💋‍👨", - "👨🏻‍❤️‍💋‍👨🏻", - "👨🏻‍❤️‍💋‍👨🏼", - "👨🏻‍❤️‍💋‍👨🏽", - "👨🏻‍❤️‍💋‍👨🏾", - "👨🏻‍❤️‍💋‍👨🏿", - "👨🏼‍❤️‍💋‍👨🏻", - "👨🏼‍❤️‍💋‍👨🏼", - "👨🏼‍❤️‍💋‍👨🏽", - "👨🏼‍❤️‍💋‍👨🏾", - "👨🏼‍❤️‍💋‍👨🏿", - "👨🏽‍❤️‍💋‍👨🏻", - "👨🏽‍❤️‍💋‍👨🏼", - "👨🏽‍❤️‍💋‍👨🏽", - "👨🏽‍❤️‍💋‍👨🏾", - "👨🏽‍❤️‍💋‍👨🏿", - "👨🏾‍❤️‍💋‍👨🏻", - "👨🏾‍❤️‍💋‍👨🏼", - "👨🏾‍❤️‍💋‍👨🏽", - "👨🏾‍❤️‍💋‍👨🏾", - "👨🏾‍❤️‍💋‍👨🏿", - "👨🏿‍❤️‍💋‍👨🏻", - "👨🏿‍❤️‍💋‍👨🏼", - "👨🏿‍❤️‍💋‍👨🏽", - "👨🏿‍❤️‍💋‍👨🏾", - "👨🏿‍❤️‍💋‍👨🏿", - "👩‍❤️‍💋‍👩", - "👩🏻‍❤️‍💋‍👩🏻", - "👩🏻‍❤️‍💋‍👩🏼", - "👩🏻‍❤️‍💋‍👩🏽", - "👩🏻‍❤️‍💋‍👩🏾", - "👩🏻‍❤️‍💋‍👩🏿", - "👩🏼‍❤️‍💋‍👩🏻", - "👩🏼‍❤️‍💋‍👩🏼", - "👩🏼‍❤️‍💋‍👩🏽", - "👩🏼‍❤️‍💋‍👩🏾", - "👩🏼‍❤️‍💋‍👩🏿", - "👩🏽‍❤️‍💋‍👩🏻", - "👩🏽‍❤️‍💋‍👩🏼", - "👩🏽‍❤️‍💋‍👩🏽", - "👩🏽‍❤️‍💋‍👩🏾", - "👩🏽‍❤️‍💋‍👩🏿", - "👩🏾‍❤️‍💋‍👩🏻", - "👩🏾‍❤️‍💋‍👩🏼", - "👩🏾‍❤️‍💋‍👩🏽", - "👩🏾‍❤️‍💋‍👩🏾", - "👩🏾‍❤️‍💋‍👩🏿", - "👩🏿‍❤️‍💋‍👩🏻", - "👩🏿‍❤️‍💋‍👩🏼", - "👩🏿‍❤️‍💋‍👩🏽", - "👩🏿‍❤️‍💋‍👩🏾", - "👩🏿‍❤️‍💋‍👩🏿", - "💑", - "💑🏻", - "💑🏼", - "💑🏽", - "💑🏾", - "💑🏿", - "🧑🏻‍❤️‍🧑🏼", - "🧑🏻‍❤️‍🧑🏽", - "🧑🏻‍❤️‍🧑🏾", - "🧑🏻‍❤️‍🧑🏿", - "🧑🏼‍❤️‍🧑🏻", - "🧑🏼‍❤️‍🧑🏽", - "🧑🏼‍❤️‍🧑🏾", - "🧑🏼‍❤️‍🧑🏿", - "🧑🏽‍❤️‍🧑🏻", - "🧑🏽‍❤️‍🧑🏼", - "🧑🏽‍❤️‍🧑🏾", - "🧑🏽‍❤️‍🧑🏿", - "🧑🏾‍❤️‍🧑🏻", - "🧑🏾‍❤️‍🧑🏼", - "🧑🏾‍❤️‍🧑🏽", - "🧑🏾‍❤️‍🧑🏿", - "🧑🏿‍❤️‍🧑🏻", - "🧑🏿‍❤️‍🧑🏼", - "🧑🏿‍❤️‍🧑🏽", - "🧑🏿‍❤️‍🧑🏾", - "👩‍❤️‍👨", - "👩🏻‍❤️‍👨🏻", - "👩🏻‍❤️‍👨🏼", - "👩🏻‍❤️‍👨🏽", - "👩🏻‍❤️‍👨🏾", - "👩🏻‍❤️‍👨🏿", - "👩🏼‍❤️‍👨🏻", - "👩🏼‍❤️‍👨🏼", - "👩🏼‍❤️‍👨🏽", - "👩🏼‍❤️‍👨🏾", - "👩🏼‍❤️‍👨🏿", - "👩🏽‍❤️‍👨🏻", - "👩🏽‍❤️‍👨🏼", - "👩🏽‍❤️‍👨🏽", - "👩🏽‍❤️‍👨🏾", - "👩🏽‍❤️‍👨🏿", - "👩🏾‍❤️‍👨🏻", - "👩🏾‍❤️‍👨🏼", - "👩🏾‍❤️‍👨🏽", - "👩🏾‍❤️‍👨🏾", - "👩🏾‍❤️‍👨🏿", - "👩🏿‍❤️‍👨🏻", - "👩🏿‍❤️‍👨🏼", - "👩🏿‍❤️‍👨🏽", - "👩🏿‍❤️‍👨🏾", - "👩🏿‍❤️‍👨🏿", - "👨‍❤️‍👨", - "👨🏻‍❤️‍👨🏻", - "👨🏻‍❤️‍👨🏼", - "👨🏻‍❤️‍👨🏽", - "👨🏻‍❤️‍👨🏾", - "👨🏻‍❤️‍👨🏿", - "👨🏼‍❤️‍👨🏻", - "👨🏼‍❤️‍👨🏼", - "👨🏼‍❤️‍👨🏽", - "👨🏼‍❤️‍👨🏾", - "👨🏼‍❤️‍👨🏿", - "👨🏽‍❤️‍👨🏻", - "👨🏽‍❤️‍👨🏼", - "👨🏽‍❤️‍👨🏽", - "👨🏽‍❤️‍👨🏾", - "👨🏽‍❤️‍👨🏿", - "👨🏾‍❤️‍👨🏻", - "👨🏾‍❤️‍👨🏼", - "👨🏾‍❤️‍👨🏽", - "👨🏾‍❤️‍👨🏾", - "👨🏾‍❤️‍👨🏿", - "👨🏿‍❤️‍👨🏻", - "👨🏿‍❤️‍👨🏼", - "👨🏿‍❤️‍👨🏽", - "👨🏿‍❤️‍👨🏾", - "👨🏿‍❤️‍👨🏿", - "👩‍❤️‍👩", - "👩🏻‍❤️‍👩🏻", - "👩🏻‍❤️‍👩🏼", - "👩🏻‍❤️‍👩🏽", - "👩🏻‍❤️‍👩🏾", - "👩🏻‍❤️‍👩🏿", - "👩🏼‍❤️‍👩🏻", - "👩🏼‍❤️‍👩🏼", - "👩🏼‍❤️‍👩🏽", - "👩🏼‍❤️‍👩🏾", - "👩🏼‍❤️‍👩🏿", - "👩🏽‍❤️‍👩🏻", - "👩🏽‍❤️‍👩🏼", - "👩🏽‍❤️‍👩🏽", - "👩🏽‍❤️‍👩🏾", - "👩🏽‍❤️‍👩🏿", - "👩🏾‍❤️‍👩🏻", - "👩🏾‍❤️‍👩🏼", - "👩🏾‍❤️‍👩🏽", - "👩🏾‍❤️‍👩🏾", - "👩🏾‍❤️‍👩🏿", - "👩🏿‍❤️‍👩🏻", - "👩🏿‍❤️‍👩🏼", - "👩🏿‍❤️‍👩🏽", - "👩🏿‍❤️‍👩🏾", - "👩🏿‍❤️‍👩🏿", - "👪", - "👨‍👩‍👦", - "👨‍👩‍👧", - "👨‍👩‍👧‍👦", - "👨‍👩‍👦‍👦", - "👨‍👩‍👧‍👧", - "👨‍👨‍👦", - "👨‍👨‍👧", - "👨‍👨‍👧‍👦", - "👨‍👨‍👦‍👦", - "👨‍👨‍👧‍👧", - "👩‍👩‍👦", - "👩‍👩‍👧", - "👩‍👩‍👧‍👦", - "👩‍👩‍👦‍👦", - "👩‍👩‍👧‍👧", - "👨‍👦", - "👨‍👦‍👦", - "👨‍👧", - "👨‍👧‍👦", - "👨‍👧‍👧", - "👩‍👦", - "👩‍👦‍👦", - "👩‍👧", - "👩‍👧‍👦", - "👩‍👧‍👧", - "🗣️", - "👤", - "👥", - "🫂", - "👣", - "🐵", - "🐒", - "🦍", - "🦧", - "🐶", - "🐕", - "🦮", - "🐕‍🦺", - "🐩", - "🐺", - "🦊", - "🦝", - "🐱", - "🐈", - "🐈‍⬛", - "🦁", - "🐯", - "🐅", - "🐆", - "🐴", - "🐎", - "🦄", - "🦓", - "🦌", - "🦬", - "🐮", - "🐂", - "🐃", - "🐄", - "🐷", - "🐖", - "🐗", - "🐽", - "🐏", - "🐑", - "🐐", - "🐪", - "🐫", - "🦙", - "🦒", - "🐘", - "🦣", - "🦏", - "🦛", - "🐭", - "🐁", - "🐀", - "🐹", - "🐰", - "🐇", - "🐿️", - "🦫", - "🦔", - "🦇", - "🐻", - "🐻‍❄️", - "🐨", - "🐼", - "🦥", - "🦦", - "🦨", - "🦘", - "🦡", - "🐾", - "🦃", - "🐔", - "🐓", - "🐣", - "🐤", - "🐥", - "🐦", - "🐧", - "🕊️", - "🦅", - "🦆", - "🦢", - "🦉", - "🦤", - "🪶", - "🦩", - "🦚", - "🦜", - "🐸", - "🐊", - "🐢", - "🦎", - "🐍", - "🐲", - "🐉", - "🦕", - "🦖", - "🐳", - "🐋", - "🐬", - "🦭", - "🐟", - "🐠", - "🐡", - "🦈", - "🐙", - "🐚", - "🐌", - "🦋", - "🐛", - "🐜", - "🐝", - "🪲", - "🐞", - "🦗", - "🪳", - "🕷️", - "🕸️", - "🦂", - "🦟", - "🪰", - "🪱", - "🦠", - "💐", - "🌸", - "💮", - "🏵️", - "🌹", - "🥀", - "🌺", - "🌻", - "🌼", - "🌷", - "🌱", - "🪴", - "🌲", - "🌳", - "🌴", - "🌵", - "🌾", - "🌿", - "☘️", - "🍀", - "🍁", - "🍂", - "🍃", - "🍇", - "🍈", - "🍉", - "🍊", - "🍋", - "🍌", - "🍍", - "🥭", - "🍎", - "🍏", - "🍐", - "🍑", - "🍒", - "🍓", - "🫐", - "🥝", - "🍅", - "🫒", - "🥥", - "🥑", - "🍆", - "🥔", - "🥕", - "🌽", - "🌶️", - "🫑", - "🥒", - "🥬", - "🥦", - "🧄", - "🧅", - "🍄", - "🥜", - "🌰", - "🍞", - "🥐", - "🥖", - "🫓", - "🥨", - "🥯", - "🥞", - "🧇", - "🧀", - "🍖", - "🍗", - "🥩", - "🥓", - "🍔", - "🍟", - "🍕", - "🌭", - "🥪", - "🌮", - "🌯", - "🫔", - "🥙", - "🧆", - "🥚", - "🍳", - "🥘", - "🍲", - "🫕", - "🥣", - "🥗", - "🍿", - "🧈", - "🧂", - "🥫", - "🍱", - "🍘", - "🍙", - "🍚", - "🍛", - "🍜", - "🍝", - "🍠", - "🍢", - "🍣", - "🍤", - "🍥", - "🥮", - "🍡", - "🥟", - "🥠", - "🥡", - "🦀", - "🦞", - "🦐", - "🦑", - "🦪", - "🍦", - "🍧", - "🍨", - "🍩", - "🍪", - "🎂", - "🍰", - "🧁", - "🥧", - "🍫", - "🍬", - "🍭", - "🍮", - "🍯", - "🍼", - "🥛", - "☕", - "🫖", - "🍵", - "🍶", - "🍾", - "🍷", - "🍸", - "🍹", - "🍺", - "🍻", - "🥂", - "🥃", - "🥤", - "🧋", - "🧃", - "🧉", - "🧊", - "🥢", - "🍽️", - "🍴", - "🥄", - "🔪", - "🏺", - "🌍", - "🌎", - "🌏", - "🌐", - "🗺️", - "🗾", - "🧭", - "🏔️", - "⛰️", - "🌋", - "🗻", - "🏕️", - "🏖️", - "🏜️", - "🏝️", - "🏞️", - "🏟️", - "🏛️", - "🏗️", - "🧱", - "🪨", - "🪵", - "🛖", - "🏘️", - "🏚️", - "🏠", - "🏡", - "🏢", - "🏣", - "🏤", - "🏥", - "🏦", - "🏨", - "🏩", - "🏪", - "🏫", - "🏬", - "🏭", - "🏯", - "🏰", - "💒", - "🗼", - "🗽", - "⛪", - "🕌", - "🛕", - "🕍", - "⛩️", - "🕋", - "⛲", - "⛺", - "🌁", - "🌃", - "🏙️", - "🌄", - "🌅", - "🌆", - "🌇", - "🌉", - "♨️", - "🎠", - "🎡", - "🎢", - "💈", - "🎪", - "🚂", - "🚃", - "🚄", - "🚅", - "🚆", - "🚇", - "🚈", - "🚉", - "🚊", - "🚝", - "🚞", - "🚋", - "🚌", - "🚍", - "🚎", - "🚐", - "🚑", - "🚒", - "🚓", - "🚔", - "🚕", - "🚖", - "🚗", - "🚘", - "🚙", - "🛻", - "🚚", - "🚛", - "🚜", - "🏎️", - "🏍️", - "🛵", - "🦽", - "🦼", - "🛺", - "🚲", - "🛴", - "🛹", - "🛼", - "🚏", - "🛣️", - "🛤️", - "🛢️", - "⛽", - "🚨", - "🚥", - "🚦", - "🛑", - "🚧", - "⚓", - "⛵", - "🛶", - "🚤", - "🛳️", - "⛴️", - "🛥️", - "🚢", - "✈️", - "🛩️", - "🛫", - "🛬", - "🪂", - "💺", - "🚁", - "🚟", - "🚠", - "🚡", - "🛰️", - "🚀", - "🛸", - "🛎️", - "🧳", - "⌛", - "⏳", - "⌚", - "⏰", - "⏱️", - "⏲️", - "🕰️", - "🕛", - "🕧", - "🕐", - "🕜", - "🕑", - "🕝", - "🕒", - "🕞", - "🕓", - "🕟", - "🕔", - "🕠", - "🕕", - "🕡", - "🕖", - "🕢", - "🕗", - "🕣", - "🕘", - "🕤", - "🕙", - "🕥", - "🕚", - "🕦", - "🌑", - "🌒", - "🌓", - "🌔", - "🌕", - "🌖", - "🌗", - "🌘", - "🌙", - "🌚", - "🌛", - "🌜", - "🌡️", - "☀️", - "🌝", - "🌞", - "🪐", - "⭐", - "🌟", - "🌠", - "🌌", - "☁️", - "⛅", - "⛈️", - "🌤️", - "🌥️", - "🌦️", - "🌧️", - "🌨️", - "🌩️", - "🌪️", - "🌫️", - "🌬️", - "🌀", - "🌈", - "🌂", - "☂️", - "☔", - "⛱️", - "⚡", - "❄️", - "☃️", - "⛄", - "☄️", - "🔥", - "💧", - "🌊", - "🎃", - "🎄", - "🎆", - "🎇", - "🧨", - "✨", - "🎈", - "🎉", - "🎊", - "🎋", - "🎍", - "🎎", - "🎏", - "🎐", - "🎑", - "🧧", - "🎀", - "🎁", - "🎗️", - "🎟️", - "🎫", - "🎖️", - "🏆", - "🏅", - "🥇", - "🥈", - "🥉", - "⚽", - "⚾", - "🥎", - "🏀", - "🏐", - "🏈", - "🏉", - "🎾", - "🥏", - "🎳", - "🏏", - "🏑", - "🏒", - "🥍", - "🏓", - "🏸", - "🥊", - "🥋", - "🥅", - "⛳", - "⛸️", - "🎣", - "🤿", - "🎽", - "🎿", - "🛷", - "🥌", - "🎯", - "🪀", - "🪁", - "🎱", - "🔮", - "🪄", - "🧿", - "🎮", - "🕹️", - "🎰", - "🎲", - "🧩", - "🧸", - "🪅", - "🪆", - "♠️", - "♥️", - "♦️", - "♣️", - "♟️", - "🃏", - "🀄", - "🎴", - "🎭", - "🖼️", - "🎨", - "🧵", - "🪡", - "🧶", - "🪢", - "👓", - "🕶️", - "🥽", - "🥼", - "🦺", - "👔", - "👕", - "👖", - "🧣", - "🧤", - "🧥", - "🧦", - "👗", - "👘", - "🥻", - "🩱", - "🩲", - "🩳", - "👙", - "👚", - "👛", - "👜", - "👝", - "🛍️", - "🎒", - "🩴", - "👞", - "👟", - "🥾", - "🥿", - "👠", - "👡", - "🩰", - "👢", - "👑", - "👒", - "🎩", - "🎓", - "🧢", - "🪖", - "⛑️", - "📿", - "💄", - "💍", - "💎", - "🔇", - "🔈", - "🔉", - "🔊", - "📢", - "📣", - "📯", - "🔔", - "🔕", - "🎼", - "🎵", - "🎶", - "🎙️", - "🎚️", - "🎛️", - "🎤", - "🎧", - "📻", - "🎷", - "🪗", - "🎸", - "🎹", - "🎺", - "🎻", - "🪕", - "🥁", - "🪘", - "📱", - "📲", - "☎️", - "📞", - "📟", - "📠", - "🔋", - "🔌", - "💻", - "🖥️", - "🖨️", - "⌨️", - "🖱️", - "🖲️", - "💽", - "💾", - "💿", - "📀", - "🧮", - "🎥", - "🎞️", - "📽️", - "🎬", - "📺", - "📷", - "📸", - "📹", - "📼", - "🔍", - "🔎", - "🕯️", - "💡", - "🔦", - "🏮", - "🪔", - "📔", - "📕", - "📖", - "📗", - "📘", - "📙", - "📚", - "📓", - "📒", - "📃", - "📜", - "📄", - "📰", - "🗞️", - "📑", - "🔖", - "🏷️", - "💰", - "🪙", - "💴", - "💵", - "💶", - "💷", - "💸", - "💳", - "🧾", - "💹", - "✉️", - "📧", - "📨", - "📩", - "📤", - "📥", - "📦", - "📫", - "📪", - "📬", - "📭", - "📮", - "🗳️", - "✏️", - "✒️", - "🖋️", - "🖊️", - "🖌️", - "🖍️", - "📝", - "💼", - "📁", - "📂", - "🗂️", - "📅", - "📆", - "🗒️", - "🗓️", - "📇", - "📈", - "📉", - "📊", - "📋", - "📌", - "📍", - "📎", - "🖇️", - "📏", - "📐", - "✂️", - "🗃️", - "🗄️", - "🗑️", - "🔒", - "🔓", - "🔏", - "🔐", - "🔑", - "🗝️", - "🔨", - "🪓", - "⛏️", - "⚒️", - "🛠️", - "🗡️", - "⚔️", - "🔫", - "🪃", - "🏹", - "🛡️", - "🪚", - "🔧", - "🪛", - "🔩", - "⚙️", - "🗜️", - "⚖️", - "🦯", - "🔗", - "⛓️", - "🪝", - "🧰", - "🧲", - "🪜", - "⚗️", - "🧪", - "🧫", - "🧬", - "🔬", - "🔭", - "📡", - "💉", - "🩸", - "💊", - "🩹", - "🩺", - "🚪", - "🛗", - "🪞", - "🪟", - "🛏️", - "🛋️", - "🪑", - "🚽", - "🪠", - "🚿", - "🛁", - "🪤", - "🪒", - "🧴", - "🧷", - "🧹", - "🧺", - "🧻", - "🪣", - "🧼", - "🪥", - "🧽", - "🧯", - "🛒", - "🚬", - "⚰️", - "🪦", - "⚱️", - "🗿", - "🪧", - "🏧", - "🚮", - "🚰", - "♿", - "🚹", - "🚺", - "🚻", - "🚼", - "🚾", - "🛂", - "🛃", - "🛄", - "🛅", - "⚠️", - "🚸", - "⛔", - "🚫", - "🚳", - "🚭", - "🚯", - "🚱", - "🚷", - "📵", - "🔞", - "☢️", - "☣️", - "⬆️", - "↗️", - "➡️", - "↘️", - "⬇️", - "↙️", - "⬅️", - "↖️", - "↕️", - "↔️", - "↩️", - "↪️", - "⤴️", - "⤵️", - "🔃", - "🔄", - "🔙", - "🔚", - "🔛", - "🔜", - "🔝", - "🛐", - "⚛️", - "🕉️", - "✡️", - "☸️", - "☯️", - "✝️", - "☦️", - "☪️", - "☮️", - "🕎", - "🔯", - "♈", - "♉", - "♊", - "♋", - "♌", - "♍", - "♎", - "♏", - "♐", - "♑", - "♒", - "♓", - "⛎", - "🔀", - "🔁", - "🔂", - "▶️", - "⏩", - "⏭️", - "⏯️", - "◀️", - "⏪", - "⏮️", - "🔼", - "⏫", - "🔽", - "⏬", - "⏸️", - "⏹️", - "⏺️", - "⏏️", - "🎦", - "🔅", - "🔆", - "📶", - "📳", - "📴", - "♀️", - "♂️", - "⚧️", - "✖️", - "➕", - "➖", - "➗", - "♾️", - "‼️", - "⁉️", - "❓", - "❔", - "❕", - "❗", - "〰️", - "💱", - "💲", - "⚕️", - "♻️", - "⚜️", - "🔱", - "📛", - "🔰", - "⭕", - "✅", - "☑️", - "✔️", - "❌", - "❎", - "➰", - "➿", - "〽️", - "✳️", - "✴️", - "❇️", - "©️", - "®️", - "™️", - "#️⃣", - "*️⃣", - "0️⃣", - "1️⃣", - "2️⃣", - "3️⃣", - "4️⃣", - "5️⃣", - "6️⃣", - "7️⃣", - "8️⃣", - "9️⃣", - "🔟", - "🔠", - "🔡", - "🔢", - "🔣", - "🔤", - "🅰️", - "🆎", - "🅱️", - "🆑", - "🆒", - "🆓", - "ℹ️", - "🆔", - "Ⓜ️", - "🆕", - "🆖", - "🅾️", - "🆗", - "🅿️", - "🆘", - "🆙", - "🆚", - "🈁", - "🈂️", - "🈷️", - "🈶", - "🈯", - "🉐", - "🈹", - "🈚", - "🈲", - "🉑", - "🈸", - "🈴", - "🈳", - "㊗️", - "㊙️", - "🈺", - "🈵", - "🔴", - "🟠", - "🟡", - "🟢", - "🔵", - "🟣", - "🟤", - "⚫", - "⚪", - "🟥", - "🟧", - "🟨", - "🟩", - "🟦", - "🟪", - "🟫", - "⬛", - "⬜", - "◼️", - "◻️", - "◾", - "◽", - "▪️", - "▫️", - "🔶", - "🔷", - "🔸", - "🔹", - "🔺", - "🔻", - "💠", - "🔘", - "🔳", - "🔲", - "🏁", - "🚩", - "🎌", - "🏴", - "🏳️", - "🏳️‍🌈", - "🏳️‍⚧️", - "🏴‍☠️", - "🇦🇨", - "🇦🇩", - "🇦🇪", - "🇦🇫", - "🇦🇬", - "🇦🇮", - "🇦🇱", - "🇦🇲", - "🇦🇴", - "🇦🇶", - "🇦🇷", - "🇦🇸", - "🇦🇹", - "🇦🇺", - "🇦🇼", - "🇦🇽", - "🇦🇿", - "🇧🇦", - "🇧🇧", - "🇧🇩", - "🇧🇪", - "🇧🇫", - "🇧🇬", - "🇧🇭", - "🇧🇮", - "🇧🇯", - "🇧🇱", - "🇧🇲", - "🇧🇳", - "🇧🇴", - "🇧🇶", - "🇧🇷", - "🇧🇸", - "🇧🇹", - "🇧🇻", - "🇧🇼", - "🇧🇾", - "🇧🇿", - "🇨🇦", - "🇨🇨", - "🇨🇩", - "🇨🇫", - "🇨🇬", - "🇨🇭", - "🇨🇮", - "🇨🇰", - "🇨🇱", - "🇨🇲", - "🇨🇳", - "🇨🇴", - "🇨🇵", - "🇨🇷", - "🇨🇺", - "🇨🇻", - "🇨🇼", - "🇨🇽", - "🇨🇾", - "🇨🇿", - "🇩🇪", - "🇩🇬", - "🇩🇯", - "🇩🇰", - "🇩🇲", - "🇩🇴", - "🇩🇿", - "🇪🇦", - "🇪🇨", - "🇪🇪", - "🇪🇬", - "🇪🇭", - "🇪🇷", - "🇪🇸", - "🇪🇹", - "🇪🇺", - "🇫🇮", - "🇫🇯", - "🇫🇰", - "🇫🇲", - "🇫🇴", - "🇫🇷", - "🇬🇦", - "🇬🇧", - "🇬🇩", - "🇬🇪", - "🇬🇫", - "🇬🇬", - "🇬🇭", - "🇬🇮", - "🇬🇱", - "🇬🇲", - "🇬🇳", - "🇬🇵", - "🇬🇶", - "🇬🇷", - "🇬🇸", - "🇬🇹", - "🇬🇺", - "🇬🇼", - "🇬🇾", - "🇭🇰", - "🇭🇲", - "🇭🇳", - "🇭🇷", - "🇭🇹", - "🇭🇺", - "🇮🇨", - "🇮🇩", - "🇮🇪", - "🇮🇱", - "🇮🇲", - "🇮🇳", - "🇮🇴", - "🇮🇶", - "🇮🇷", - "🇮🇸", - "🇮🇹", - "🇯🇪", - "🇯🇲", - "🇯🇴", - "🇯🇵", - "🇰🇪", - "🇰🇬", - "🇰🇭", - "🇰🇮", - "🇰🇲", - "🇰🇳", - "🇰🇵", - "🇰🇷", - "🇰🇼", - "🇰🇾", - "🇰🇿", - "🇱🇦", - "🇱🇧", - "🇱🇨", - "🇱🇮", - "🇱🇰", - "🇱🇷", - "🇱🇸", - "🇱🇹", - "🇱🇺", - "🇱🇻", - "🇱🇾", - "🇲🇦", - "🇲🇨", - "🇲🇩", - "🇲🇪", - "🇲🇫", - "🇲🇬", - "🇲🇭", - "🇲🇰", - "🇲🇱", - "🇲🇲", - "🇲🇳", - "🇲🇴", - "🇲🇵", - "🇲🇶", - "🇲🇷", - "🇲🇸", - "🇲🇹", - "🇲🇺", - "🇲🇻", - "🇲🇼", - "🇲🇽", - "🇲🇾", - "🇲🇿", - "🇳🇦", - "🇳🇨", - "🇳🇪", - "🇳🇫", - "🇳🇬", - "🇳🇮", - "🇳🇱", - "🇳🇴", - "🇳🇵", - "🇳🇷", - "🇳🇺", - "🇳🇿", - "🇴🇲", - "🇵🇦", - "🇵🇪", - "🇵🇫", - "🇵🇬", - "🇵🇭", - "🇵🇰", - "🇵🇱", - "🇵🇲", - "🇵🇳", - "🇵🇷", - "🇵🇸", - "🇵🇹", - "🇵🇼", - "🇵🇾", - "🇶🇦", - "🇷🇪", - "🇷🇴", - "🇷🇸", - "🇷🇺", - "🇷🇼", - "🇸🇦", - "🇸🇧", - "🇸🇨", - "🇸🇩", - "🇸🇪", - "🇸🇬", - "🇸🇭", - "🇸🇮", - "🇸🇯", - "🇸🇰", - "🇸🇱", - "🇸🇲", - "🇸🇳", - "🇸🇴", - "🇸🇷", - "🇸🇸", - "🇸🇹", - "🇸🇻", - "🇸🇽", - "🇸🇾", - "🇸🇿", - "🇹🇦", - "🇹🇨", - "🇹🇩", - "🇹🇫", - "🇹🇬", - "🇹🇭", - "🇹🇯", - "🇹🇰", - "🇹🇱", - "🇹🇲", - "🇹🇳", - "🇹🇴", - "🇹🇷", - "🇹🇹", - "🇹🇻", - "🇹🇼", - "🇹🇿", - "🇺🇦", - "🇺🇬", - "🇺🇲", - "🇺🇳", - "🇺🇸", - "🇺🇾", - "🇺🇿", - "🇻🇦", - "🇻🇨", - "🇻🇪", - "🇻🇬", - "🇻🇮", - "🇻🇳", - "🇻🇺", - "🇼🇫", - "🇼🇸", - "🇽🇰", - "🇾🇪", - "🇾🇹", - "🇿🇦", - "🇿🇲", - "🇿🇼", - ] - - emoji_formats = "{{emoji}}" - - def emoji(self) -> str: - """ - :example: '😉' - """ - return self.random_element(self.emojis) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/emoji/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/emoji/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 017acecf9c754ce88eb738c6675c598bdf2a18e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55653 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/emoji/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/emoji/en_US/__init__.py deleted file mode 100644 index b9a9c7f..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/emoji/en_US/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from .. import Provider as EmojiProvider - - -class Provider(EmojiProvider): - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/emoji/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/emoji/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 37b848577db73ac1e01d61da33bea1effcb19a9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmX|7F;2rU6#aHulvd5g84ww$1+0h-u_2_wlEq46L)|8EaNLRrv31}EJp*Fp7F+;D zVq#)LDlDC_ofHrMy(jd7Z7xEu_9@Ndj8j_o zDa|CCrufBscMlD`JM+`X%9+oC?BodOaePid<+)hehS~b){og zDQ#Fwc<=bCXW0K|8de8q)?^!r@@)y*Z2$lO diff --git a/.venv/lib/python3.12/site-packages/faker/providers/file/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/file/__init__.py deleted file mode 100644 index 9634001..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/file/__init__.py +++ /dev/null @@ -1,354 +0,0 @@ -import string - -from collections import OrderedDict -from typing import Dict, Literal, Optional, Sequence, Union - -from .. import BaseProvider, ElementsType - - -class Provider(BaseProvider): - """Implement default file provider for Faker.""" - - application_mime_types: ElementsType[str] = ( - "application/atom+xml", # Atom feeds - "application/ecmascript", - # ECMAScript/JavaScript; Defined in RFC 4329 (equivalent to - # application/javascript but with stricter processing rules) - "application/EDI-X12", # EDI X12 data; Defined in RFC 1767 - "application/EDIFACT", # EDI EDIFACT data; Defined in RFC 1767 - "application/json", # JavaScript Object Notation JSON; Defined in RFC 4627 - # ECMAScript/JavaScript; Defined in RFC 4329 (equivalent to - # application/ecmascript - "application/javascript", - # but with looser processing rules) It is not accepted in IE 8 - # or earlier - text/javascript is accepted but it is defined as obsolete in RFC 4329. - # The "type" attribute of the

J(ycwrUtiYoq^l|Im@#0S*mj_wZEL&fB)q_KK+NM zS5q&oBwt!5-F*9s{X`v0$9O9y7j1H3*z-VcI!}>AQk#4`wYS#VWpim~eKk+jyEKYi zeOY<@WF2e$C(8XNR#UI6Bwyj3=<@Bagzo^`>RR|d2+**AZ5x6HMb_$OY^e30A^dmB z{oh$lomfepXcV4q=+eHgq3{j%O?@^!uzGD%708;^*YG65DJ?B7l86P2J2Q*XhV5x^ z?QAs;H7tF5L)X%Cbp$(7_usY&q^=V&)`8zW=g+UU0TJFvG9tfObE2x_Z$l^NBJ-AUe7Yu|vD zVjn2iYu}Y>gMn|yo>*KuUiy=|Y9?5La&c^c>zeNtk-{K-GxJF8%_E1;98Q~lE?4B7 zQRpxioN#XQPSrWd9h*f!tnERh=4hP*w3leW%>aCGQWf3M41Kd^^i+1d06AHmUvxGG zb-EP$%`;C$7E&E$CF=(OeyV(RGE=`6<${IZB`Z>!DPNNX@evkN2!u0RU%KdQd@agj5)2oNSw~Vxj z=8B6LE(YU>Vm~n$cH?-ZRxsOD1f7PP2cl>1j zgZU5HYVY?}&P}bRuHMxUt0O;OP3>Pv?r(JKy5ar*g*l`pFVwfP!Rc!nuJ=Gzn#Q`K zSooCNJ}U|)YdlKZ>pNGgdY@Eu2r61uDoN?02g|90_wBVquaytI_UORccPGlWF;U*i<{f!4uJig@J@WlzW^W-RR*(Uq9nZ3E5$|5Ik;8xkHIhaeJo3wZp)sPZRX=1bFF8n z+%xo0TRS#fJ~q7CbN=q=XWMq)J0I1Tw+%f$^n8PHue9uayzlthzSqn9UVq%)`MAC7 zqqg5|TWddBZa?}9du?#6JUI60QhD&VR@;C3ar^f5gtos8V{oW-?Oy9lmpjud&!1fF zJhjqt>YqEhS9&h2c3fO(xfq3$jprEoi1d>KC_FQ3QXgPx^gId7FQW!$bzO&1Xs&8+ zC#fg8q#zl8qQAbU^w-$o=cGY8C#p&7k#g$DFM6MquF^WB?E6u8mh6p3$^a&5$RwJd zNL=dNLdyFj8C|*Sso0NyxRTr}6&j_5rbuSx-87pO&Dm_;w~H=Axh0#$7bBN0i`gvi zqsjMy57z*2&V*c~vRTW6$x9yz(CKAr+O_HCS<5L!>Zyw?3#32rHexK@<0UFJ0f^2G z7uEXkoz=?frKw(@+El@Nh))OcN!A=7@|Hc+&`W?$=P39~rP5|_G7Nr#0EOO9qGMG$ zmHb^r0*YS2yJ&u2skC%<8!Otb%Ja$*OI;rQ@Z|k?x%0rP_JfMnb;PJwtSeo*Q5jJB zURlw)E828?m$7`MGLlfbkI`tYZM(7jM#XH~X)KRb_ABk3ciH1q$3`I9dPUpeO_f`b zUv{_kL!`cnsUJ3$FMl|2FDQ5PuPZtPXo*MCCgXe2n`nm$*$KUa=?t_*x-yltp`cYpYA3Sr6Me*lRZ Ba?Jn$ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_GB/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_GB/__init__.py deleted file mode 100644 index eeabd04..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_GB/__init__.py +++ /dev/null @@ -1,550 +0,0 @@ -from collections import OrderedDict - -from ..en import Provider as AddressProvider - - -class Provider(AddressProvider): - city_prefixes = ("North", "East", "West", "South", "New", "Lake", "Port") - city_suffixes = ( - "town", - "ton", - "land", - "ville", - "berg", - "burgh", - "borough", - "bury", - "view", - "port", - "mouth", - "stad", - "furt", - "chester", - "mouth", - "fort", - "haven", - "side", - "shire", - ) - counties = ( - "Bedfordshire", - "Buckinghamshire", - "Cambridgeshire", - "Cheshire", - "Cleveland", - "Cornwall", - "Cumbria", - "Derbyshire", - "Devon", - "Dorset", - "Durham", - "East Sussex", - "Essex", - "Gloucestershire", - "Greater London", - "Greater Manchester", - "Hampshire", - "Hertfordshire", - "Kent", - "Lancashire", - "Leicestershire", - "Lincolnshire", - "Merseyside", - "Norfolk", - "North Yorkshire", - "Northamptonshire", - "Northumberland", - "Nottinghamshire", - "Oxfordshire", - "Shropshire", - "Somerset", - "South Yorkshire", - "Staffordshire", - "Suffolk", - "Surrey", - "Tyne and Wear", - "Warwickshire", - "West Berkshire", - "West Midlands", - "West Sussex", - "West Yorkshire", - "Wiltshire", - "Worcestershire", - "Flintshire", - "Glamorgan", - "Merionethshire", - "Monmouthshire", - "Montgomeryshire", - "Pembrokeshire", - "Radnorshire", - "Anglesey", - "Breconshire", - "Caernarvonshire", - "Cardiganshire", - "Carmarthenshire", - "Denbighshire", - "Aberdeen City", - "Aberdeenshire", - "Angus", - "Argyll and Bute", - "City of Edinburgh", - "Clackmannanshire", - "Dumfries and Galloway", - "Dundee City", - "East Ayrshire", - "East Dunbartonshire", - "East Lothian", - "East Renfrewshire", - "Eilean Siar", - "Falkirk", - "Fife", - "Glasgow City", - "Highland", - "Inverclyde", - "Midlothian", - "Moray", - "North Ayrshire", - "North Lanarkshire", - "Orkney Islands", - "Perth and Kinross", - "Renfrewshire", - "Scottish Borders", - "Shetland Islands", - "South Ayrshire", - "South Lanarkshire", - "Stirling", - "West Dunbartonshire", - "West Lothian", - "Antrim", - "Armagh", - "Down", - "Fermanagh", - "Derry and Londonderry", - "Tyrone", - ) - building_number_formats = ("#", "##", "###") - street_suffixes = ( - "Alley", - "Avenue", - "Branch", - "Bridge", - "Brook", - "Brooks", - "Burg", - "Burgs", - "Bypass", - "Camp", - "Canyon", - "Cape", - "Causeway", - "Center", - "Centers", - "Circle", - "Circles", - "Cliff", - "Cliffs", - "Club", - "Common", - "Corner", - "Corners", - "Course", - "Court", - "Courts", - "Cove", - "Coves", - "Creek", - "Crescent", - "Crest", - "Crossing", - "Crossroad", - "Curve", - "Dale", - "Dam", - "Divide", - "Drive", - "Drive", - "Drives", - "Estate", - "Estates", - "Expressway", - "Extension", - "Extensions", - "Fall", - "Falls", - "Ferry", - "Field", - "Fields", - "Flat", - "Flats", - "Ford", - "Fords", - "Forest", - "Forge", - "Forges", - "Fork", - "Forks", - "Fort", - "Freeway", - "Garden", - "Gardens", - "Gateway", - "Glen", - "Glens", - "Green", - "Greens", - "Grove", - "Groves", - "Harbor", - "Harbors", - "Haven", - "Heights", - "Highway", - "Hill", - "Hills", - "Hollow", - "Inlet", - "Inlet", - "Island", - "Island", - "Islands", - "Islands", - "Isle", - "Isle", - "Junction", - "Junctions", - "Key", - "Keys", - "Knoll", - "Knolls", - "Lake", - "Lakes", - "Land", - "Landing", - "Lane", - "Light", - "Lights", - "Loaf", - "Lock", - "Locks", - "Locks", - "Lodge", - "Lodge", - "Loop", - "Mall", - "Manor", - "Manors", - "Meadow", - "Meadows", - "Mews", - "Mill", - "Mills", - "Mission", - "Mission", - "Motorway", - "Mount", - "Mountain", - "Mountain", - "Mountains", - "Mountains", - "Neck", - "Orchard", - "Oval", - "Overpass", - "Park", - "Parks", - "Parkway", - "Parkways", - "Pass", - "Passage", - "Path", - "Pike", - "Pine", - "Pines", - "Place", - "Plain", - "Plains", - "Plains", - "Plaza", - "Plaza", - "Point", - "Points", - "Port", - "Port", - "Ports", - "Ports", - "Prairie", - "Prairie", - "Radial", - "Ramp", - "Ranch", - "Rapid", - "Rapids", - "Rest", - "Ridge", - "Ridges", - "River", - "Road", - "Road", - "Roads", - "Roads", - "Route", - "Row", - "Rue", - "Run", - "Shoal", - "Shoals", - "Shore", - "Shores", - "Skyway", - "Spring", - "Springs", - "Springs", - "Spur", - "Spurs", - "Square", - "Square", - "Squares", - "Squares", - "Station", - "Station", - "Stravenue", - "Stravenue", - "Stream", - "Stream", - "Street", - "Street", - "Streets", - "Summit", - "Summit", - "Terrace", - "Throughway", - "Trace", - "Track", - "Trafficway", - "Trail", - "Trail", - "Tunnel", - "Tunnel", - "Turnpike", - "Turnpike", - "Underpass", - "Union", - "Unions", - "Valley", - "Valleys", - "Via", - "Viaduct", - "View", - "Views", - "Village", - "Village", - "Villages", - "Ville", - "Vista", - "Vista", - "Walk", - "Walks", - "Wall", - "Way", - "Ways", - "Well", - "Wells", - ) - - POSTAL_ZONES = ( - "AB", - "AL", - "B", - "BA", - "BB", - "BD", - "BH", - "BL", - "BN", - "BR", - "BS", - "BT", - "CA", - "CB", - "CF", - "CH", - "CM", - "CO", - "CR", - "CT", - "CV", - "CW", - "DA", - "DD", - "DE", - "DG", - "DH", - "DL", - "DN", - "DT", - "DY", - "E", - "EC", - "EH", - "EN", - "EX", - "FK", - "FY", - "G", - "GL", - "GY", - "GU", - "HA", - "HD", - "HG", - "HP", - "HR", - "HS", - "HU", - "HX", - "IG", - "IM", - "IP", - "IV", - "JE", - "KA", - "KT", - "KW", - "KY", - "L", - "LA", - "LD", - "LE", - "LL", - "LN", - "LS", - "LU", - "M", - "ME", - "MK", - "ML", - "N", - "NE", - "NG", - "NN", - "NP", - "NR", - "NW", - "OL", - "OX", - "PA", - "PE", - "PH", - "PL", - "PO", - "PR", - "RG", - "RH", - "RM", - "S", - "SA", - "SE", - "SG", - "SK", - "SL", - "SM", - "SN", - "SO", - "SP", - "SR", - "SS", - "ST", - "SW", - "SY", - "TA", - "TD", - "TF", - "TN", - "TQ", - "TR", - "TS", - "TW", - "UB", - "W", - "WA", - "WC", - "WD", - "WF", - "WN", - "WR", - "WS", - "WV", - "YO", - "ZE", - ) - - POSTAL_ZONES_ONE_CHAR = [zone for zone in POSTAL_ZONES if len(zone) == 1] - POSTAL_ZONES_TWO_CHARS = [zone for zone in POSTAL_ZONES if len(zone) == 2] - - postcode_formats = ( - "AN NEE", - "ANN NEE", - "PN NEE", - "PNN NEE", - "ANC NEE", - "PND NEE", - ) - - _postcode_sets = OrderedDict( - ( - (" ", " "), - ("N", [str(i) for i in range(0, 10)]), - ("A", POSTAL_ZONES_ONE_CHAR), - ("B", "ABCDEFGHKLMNOPQRSTUVWXY"), - ("C", "ABCDEFGHJKSTUW"), - ("D", "ABEHMNPRVWXY"), - ("E", "ABDEFGHJLNPQRSTUWXYZ"), - ("P", POSTAL_ZONES_TWO_CHARS), - ) - ) - - city_formats = ( - "{{city_prefix}} {{first_name}}{{city_suffix}}", - "{{city_prefix}} {{first_name}}", - "{{first_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - ) - street_name_formats = ( - "{{first_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - ) - street_address_formats = ( - "{{building_number}} {{street_name}}", - "{{secondary_address}}\n{{street_name}}", - ) - address_formats = ("{{street_address}}\n{{city}}\n{{postcode}}",) - secondary_address_formats = ( - "Flat #", - "Flat ##", - "Flat ##?", - "Studio #", - "Studio ##", - "Studio ##?", - ) - - def postcode(self) -> str: - """ - See - http://web.archive.org/web/20090930140939/http://www.govtalk.gov.uk/gdsc/html/noframes/PostCode-2-1-Release.htm - """ - postcode = "" - pattern: str = self.random_element(self.postcode_formats) - for placeholder in pattern: - postcode += self.random_element(self._postcode_sets[placeholder]) - return postcode - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def secondary_address(self) -> str: - return self.bothify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - return self.random_element(self.counties) - - county = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_GB/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_GB/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index dd8729c1911462f12a19ff47622fe9c25a2038d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6937 zcmb_gYiu0Xb)MOseQ>$tN~9#}X;Wf@dTohI$&bcuT$|kGL+0*s&85U>fpk0Exg^J& zonh|GlG+iOs(^nefCHsKTMGdKD9Df6b&@`iwm_7o?w=xk0Tg6_#6=%zi~R797HsAI zu+i6d?#xn@WE*JF#m+tVJnlK?o_p@Ocjhm9dQuAgzMp#ir&&e$Cy9hjEQI$jp!1eu zD28e&O|_<~iV-oQR-_rNX{r)YCKW?_Los4Zdp8=4sYToIY~lk#va0Bw;RfT(D3}fJ zgGfM2R=Bffg4_s31Z_G*?*FDrCYe%G4W$+_)LPVt)HEYniy2xiZp3N{BVJ3gWI?&9 z+*EHy8rqW5h#yDUcH2REw*1Z^6Om?Je2aH3tgT~=npK+wtZw%B98Aoe}jbki>F~{G~ zYDdEU3G@fT{z>$YhW%6MA7jUA$JO7=-kiIGi+SlQv;ve3qL z*Av=2LmR6)Es&yRwl1`yzQTl7fl#(zXr8lfi>T+=LbG(+5V1AWvcO+pd`ZL>T6}3) zBo-X*w9wIjw}rN5lAcv)5V5Aztht_U2yL+iQlha8n~d|L@CP(0wydu)m~fF=BIYie zoMnGWq{o;6wjptm8EZ9GOnYfrZw7?kyxv^krm@5VJeh}L8Y;T-7F%P|-(=q5_PTCa zB9U*AxGqu!#uwUwWURo}Ft>QY;V$z4TO9iRZVJv|wdK0(s)&tCkeRfcRztcj$NIgK zoavazV9~J+$M*X=cuBXzIf||+y}25g>X~BPdoUesn%SO66(Oq!0=-3M?$a;QMbmCL zmK|_YB?cGUGC~O~;i6-$_!+sDgI65B5=b481lYuig<2&AQ)gTT1VcP;e;B)Gu0HT8 zRbA#z=y0;?G|8stXJmftGt*P`^u-6G64e$kYemGXEzVin@0n}cY!LY}IL~x0((^iB zHyeSEelO+R;1~;i_Io5=G7a+2^}8h+#6FaLFu$&O)AGWJ%{zR5xKb0AX@|V7NlR}! zd`Y)OFXCo8HuIK)VLc_smPr|)8KB-0O*G7io(e;nI4fZ)b3m%9q-fC1X0)@|b^+ga@6)!EwX1gMD})Z|RMdrf%DzW&d!Y)m-EzbLF^6 zYy)RqZ~NVamJNf_p5G&LeY73S(eIZi1Qy_NI3YhRiABd-Hg(%SD6v^)FLJgny~Ktw zEvDOpRTImdn9!{ildlME!dzs28jImBIqSjnl2e$t%*511dkqJP)yAGr(eelCMXcm- zIN2NI_MT%00~{Mh?_^Hz3}3NXd+?$gq|U(#w%D?q>$GWe$8|;eAvX_H8u1HorlOx-f{C=6Nk48%p!)S^4sO@pH35X=1B3Yo4 z+BLy|+8|(&Pz>AB>!6arF_h8xT$>|rv(b;$AwM!SI zaVj?isT7LX7jiE$?h}H$My{aQ98Y<_ii05^?O@%$LuQHL$>n)cdJ3vQe zVpzriVp!h9GBFS&bVV$0nTv~{6Cia~YXO+kY*HGqwUJICC3R7>R(B2?VSnB8{3(J?`KfiRD`yL$!hqr=kTNu`QT%D-p2*H<43s z(8&^)eV8A|;p4&k0JTA`J5rxp<@naD23=6^2dQ*u0qQ-Dx{T1djA1UgE| zUlG5ngSz~$rSUR@Yl#`&SjO@RZDvikL~;fR80@kN3YCaa3rhq@bu#S0lM3xcFkDwh zo&cq5S;dssFO%X?L5na}P}T{v;E9M!;PSsC4~XXL{O^OlgYyr30xrjGRgn#ZaK&=@ zKaxOpK)77~C}6L~HHyqu+d7@L*FB`yJ6nx$<99=0R@ zXK9_fF8`OXj}uBnXA%AAENT=Q~ngfoV2Pk4GhS4jZ3BpPIw12p3$L8gr5qBd`Jv$3@6&bU3EPyQKEHmTfbO zrwB>TwYa^Cb>-cJc3r~Z8>C3=l1*IL<*2AKu=*D z&mw_qVo`)huA#C<`If3Fi{)-0EwY+4NW%g$4AS9rXpiVaOu{y}V2`zky8hT~^fIdnHbu=5{XDIImM#u7n@rlW)>0+roQ+aK+I(O;v z{1>leBSOuK-VXQGY0&41SP<#avGJ)=xiTBb@s~-@q0up^=G9_3Py!t_p;oe*f9~3~ z2JXRi9O#SY)y>VpYu6S{?s|1wZ?etJkn7_0gt-0_pDpg6`t0E+uU*4c_EVH+BmN`S zfx5D;)b|{C@*xe63qZ-xwQCD4)1q^+Zp-&JIjvArFfadeP)#o&hR)k{-7x4rv$>ht zGZ=_vRsX3y(tat5nG|1jT(9962oGE z9+5tG;oSLivkY%bE*pl(o?W42qoNm=dBbVe!Ee$v_&{fY>WdEE7jQ!L*7rzwHFvWb zzM3#=Q6xKLkyzC|+}~}{y-F8{Wyhj79SRT4_T$amGG2Fc9^STCQ@@&<>vZsG?{(Jj za!s>=ZvY{(;CQ)VoS|zu%UsBUubZ~%)$7BnZT>y1zkjgv8F9GdbsrMIy#ybxE4wM>(2*O-oq-eE15e)_ zc>3+`5-|N16 zws`Mo>2A98)v4Vm$^9fVa3gb{662xVq`Z{5`FV8SQvNS_SykRq%cym~O*N`#Um0TV zJ1YM!s4nIDApboQ=-wybAKIJ$KI$n70VV8pWhc|WojG$ibLRGQ+e6Ra9eVy==7p`~ z3;g$?>7i-RH$6Fx%bz_Bl6mBZDSyJ2>1>t`tSbEbFpAW~S3bP{FSdjE9(%0(bTX9x zA>{YZ{NQ7v{_(x}KgJuRD4c<>G72|0zPfR%uzfOj_hjyOwe6Ae-I4OWlQZ`+l`VXV zek>gSFRL0%I9%6cgWd%21?916_3K6xX^py!E9V-kw~*rg$-Rkv0(Xd}Hqe<`XMum~ zrEk4-FLQn?d0x(^oIN3ub$Nc(>mpUJHyxv8G4#{*IxfBzmG*j_{{backafZ70vG?7 zXakR&9-Va&nTHM|+_}@0nd;nVv0j@gk5@&MUNjHyC)Gi(=ch(z#gT`|bMrHjT;-G{ zoPsW5C|r1niNXf|4!Mz*ncb;c{riruJ%^5j#IRWG(KC+__z%bo6%PJK)ZC%wM`%P` zu1-4}6OrK&q51e;!vBmIs>%NX(53w`LO;0)r=b0M3pDcZ)qoXBMZ@i`1P6Hsl=vwD1N=T`<1AY`-Sb3rLB{t+r|$Y@BPdj z^T+4!*x#6YA2jXQ4w$FPTc^smy&t;oJ$I-5i zpQMlM^c?us^KTz~d+gg^*zOzI>KnPG|N66E|MG9V@IJ8gd9b(oes(MU)K2>BPI_o3 zeR?OImBgpE(%IdEU0tdB(e5Mh>*d|!G3i`7dII_fc9YR30FUn`m4OKr-bWIrfuGv# z>xvz{HFRGA*gc}ge(qNFz5=itS7WcKx1S~CHI=Xnwor597a_R8Qad Lm48 str: - postcode = "" - for placeholder in self.postcode_pattern: - postcode += self.random_element(self._postcode_sets[placeholder]) - return postcode - - def administrative_unit(self) -> str: - return self.random_element(self.counties) - - county = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_IE/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_IE/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d8af8b71ab21fdd5b25d673c79b37b13bb52ccbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1794 zcmZt`O>YxNbY{J~UdK)x5(+_3)q#Flq**87t1XnKF##0EAV{0m5?U?0V`s_kj+tF2 zI7(V7Q7M&>NTpWEr4p!zQgN&L1A6Zz5tR~+R0*l-fty>?Lpk-$+C~)hY4^?hnD;gB z&HU2c-Gv1F)OGEIg3#{~(?-BY&>V$j9ofjnF7j{*V`NKq%$2-YNybP*XOS)6LbgKW z2eFn(DOOjr@yCM6VxGLfY{H10cdYQS)RJiz8C`HdY_%*}IMrsFKLW9i2r6M4m81_L zbSWkwB12#ZU6IO?Ed#IEimg5nE&=lB4!VQyNS0hdmUN{Xp%okgZox8sfLqj8((Sa2 zEO|v*!7B(n#ci!DceJIrohWHUB?-IhBpBF9qQaikExFXyrn`Yol4L1W@3AEO%+n&u zrkOajY=+Adl+APXtm!VAbuLevb;{#;>XVA;a%GAzR_BQsr&=Y<1X7uBO-8snQ)jS; ztK)vi9FJ=S$0N+K=6T{04J_(;)aP=ZF8W-VCT2LtlLhMA@I?;ev*bpZGMj5tjyq3$ zzs}VQ<+ACD0Oo?}^Y|<{bLk>a%$gx#(Prhc>r^OL3MO>|P>>+>BHwZFVvDrm1>!{c zsN>8tD|0+CNr3PLsZCR{f^RinyXrcSS%KCdGYvAUL;=(ZlR?aeTn>m^ z=2}P0lU3KW$Q*T{#ev8vlgT_?(dVc~^pJ*g#4~T`GaUjh)iq*;y60GoR@=-~8tTIf z#9z=|=c-<+C3`v9zmmfrmS}9szMM0q7>$>3?Ze+u8rh_Ws<~{@h;(CyID=YA3aOL*5=Z zyftw6etvuC^w!YnpOafdg@*&vTdCO@F^e)6?lSDS(Dj?P2jvDKGec*A7&Rz; z>A4@ z*IYrT4C8vubXyuGoH0==S72T$gvTHgHYTLe6r~Nr^nDsaa?}qDBWehHR~V>KRdpC7 zX*kER!`=sJG&i|iE-Eg1p&}&iMer%0FHl1o>{V}``*RYbJ%f+Bd)LM`q_ym3>cCES z@4chUz diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_IN/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_IN/__init__.py deleted file mode 100644 index c517e6c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_IN/__init__.py +++ /dev/null @@ -1,572 +0,0 @@ -from typing import Dict, List, Optional, Tuple - -from faker.providers.address import Provider as AddressProvider - -Range = Tuple[int, int] - - -class Provider(AddressProvider): - # City and States names taken from wikipedia - # Street format taken from some common famous places in India - # Link for cities: https://en.wikipedia.org/wiki/List_of_cities_in_India_by_population - # Link for States: https://en.wikipedia.org/wiki/States_and_union_territories_of_India - # Links for street name formats: https://www.mumbai77.com/city/3313/travel/old-new-street-names/ - - city_formats = ("{{city_name}}",) - - street_name_formats = ( - "{{last_name}} Nagar", - "{{last_name}} Zila", - "{{last_name}} Street", - "{{last_name}} Ganj", - "{{last_name}} Road", - "{{last_name}} Path", - "{{last_name}} Marg", - "{{last_name}} Chowk", - "{{last_name}} Circle", - "{{last_name}}", - ) - - street_address_formats = ( - "{{building_number}}, {{street_name}}", - "{{building_number}}\n{{street_name}}", - ) - - address_formats = ( - "{{street_address}}\n{{city}} {{postcode}}", - "{{street_address}}\n{{city}}-{{postcode}}", - "{{street_address}}, {{city}} {{postcode}}", - "{{street_address}}, {{city}}-{{postcode}}", - ) - - building_number_formats = ("H.No. ###", "###", "H.No. ##", "##", "##/##", "##/###") - - postcode_formats = ("######",) - - cities = ( - "Mumbai", - "Delhi", - "Kolkata", - "Chennai", - "Bangalore", - "Hyderabad", - "Ahmedabad", - "Kanpur", - "Pune", - "Surat", - "Jaipur", - "Lucknow", - "Nagpur", - "Indore", - "Bhopal", - "Ludhiana", - "Patna", - "Visakhapatnam", - "Vadodara", - "Agra", - "Thane", - "Kalyan-Dombivli", - "Varanasi", - "Ranchi", - "Nashik", - "Dhanbad", - "Faridabad", - "Meerut", - "Pimpri-Chinchwad", - "Howrah", - "Allahabad", - "Ghaziabad", - "Rajkot", - "Amritsar", - "Jabalpur", - "Coimbatore", - "Madurai", - "Srinagar", - "Aurangabad", - "Solapur", - "Vijayawada", - "Jodhpur", - "Gwalior", - "Guwahati", - "Chandigarh", - "Hubli–Dharwad", - "Mysore", - "Tiruchirappalli", - "Bareilly", - "Jalandhar", - "Navi Mumbai", - "Salem", - "Kota", - "Vasai-Virar", - "Aligarh", - "Moradabad", - "Bhubaneswar", - "Gorakhpur", - "Raipur", - "Bhiwandi", - "Kochi", - "Jamshedpur", - "Bhilai", - "Amravati", - "Cuttack", - "Warangal", - "Bikaner", - "Mira-Bhayandar", - "Guntur", - "Bhavnagar", - "Durgapur", - "Kolhapur", - "Ajmer", - "Asansol", - "Ulhasnagar", - "Siliguri", - "Jalgaon", - "Saharanpur", - "Jamnagar", - "Bhatpara", - "Sangli-Miraj & Kupwad", - "Kozhikode", - "Nanded", - "Ujjain", - "Dehradun", - "Rourkela", - "Gulbarga", - "Tirunelveli", - "Malegaon", - "Akola", - "Belgaum", - "Mangalore", - "Bokaro", - "South Dumdum", - "Udaipur", - "Gaya", - "Maheshtala", - "Jhansi", - "Nellore", - "Jammu", - "Thiruvananthapuram", - "Davanagere", - "Kollam", - "Panihati", - "Kurnool", - "Tiruppur", - "Dhule", - "Bhagalpur", - "Rajpur Sonarpur", - "Kakinada", - "Thrissur", - "Bellary", - "Muzaffarnagar", - "Korba", - "Rajahmundry", - "Kamarhati", - "Ambattur", - "Berhampur", - "Ahmednagar", - "Muzaffarpur", - "Noida", - "Patiala", - "Mathura", - "New Delhi", - "Latur", - "Sambalpur", - "Shahjahanpur", - "Kulti", - "Chandrapur", - "Nizamabad", - "Rohtak", - "Bardhaman", - "Rampur", - "Bhilwara", - "Firozabad", - "Bilaspur", - "Shimoga", - "Agartala", - "Gopalpur", - "Darbhanga", - "Panipat", - "Bally", - "Alwar", - "Parbhani", - "Ichalkaranji", - "Anantapuram", - "Baranagar", - "Tumkur", - "Ramagundam", - "Jalna", - "Durg", - "Sagar", - "Bihar Sharif", - "Dewas", - "Barasat", - "Avadi", - "Farrukhabad", - "Aizawl", - "Tirupati", - "Bijapur", - "Satara", - "Satna", - "Ratlam", - "Imphal", - "Pondicherry", - "North Dumdum", - "Anantapur", - "Khammam", - "Ozhukarai", - "Bathinda", - "Thoothukudi", - "Thanjavur", - "Naihati", - "Sonipat", - "Mau", - "Tiruvottiyur", - "Hapur", - "Sri Ganganagar", - "Karnal", - "Etawah", - "Nagercoil", - "Raichur", - "Raurkela Industrial Township", - "Secunderabad", - "Karimnagar", - "Mirzapur", - "Bharatpur", - "Ambarnath", - "Arrah", - "Uluberia", - "Serampore", - "Dindigul", - "Gandhinagar", - "Burhanpur", - "Nadiad", - "Eluru", - "Yamunanagar", - "Kharagpur", - "Munger", - "Pali", - "Katni", - "Singrauli", - "Tenali", - "Sikar", - "Silchar", - "Rewa", - "Sambhal", - "Machilipatnam", - "Vellore", - "Alappuzha", - "Bulandshahr", - "Haridwar", - "Vijayanagaram", - "Erode", - "Gurgaon", - "Bidar", - "Bhusawal", - "Khandwa", - "Purnia", - "Haldia", - "Chinsurah", - "Bhiwani", - "Raebareli", - "Junagadh", - "Bahraich", - "Gandhidham", - "Mango", - "Raiganj", - "Amroha", - "Sultan Pur Majra", - "Hospet", - "Bidhannagar", - "Malda", - "Sirsa", - "Berhampore", - "Jaunpur", - "Surendranagar Dudhrej", - "Madhyamgram", - "Kirari Suleman Nagar", - "Bhind", - "Nandyal", - "Chittoor", - "Bhalswa Jahangir Pur", - "Fatehpur", - "Morena", - "Nangloi Jat", - "Ongole", - "Karawal Nagar", - "Shivpuri", - "Morbi", - "Unnao", - "Pallavaram", - "Kumbakonam", - "Shimla", - "Mehsana", - "Panchkula", - "Orai", - "Ambala", - "Dibrugarh", - "Guna", - "Danapur", - "Sasaram", - "Anand", - "Kottayam", - "Hazaribagh", - "Kadapa", - "Saharsa", - "Nagaon", - "Loni", - "Hajipur", - "Dehri", - "Bettiah", - "Katihar", - "Deoghar", - "Jorhat", - "Siwan", - "Panvel", - "Hosur", - "Tinsukia", - "Bongaigaon", - "Motihari", - "Jamalpur", - "Suryapet", - "Begusarai", - "Miryalaguda", - "Proddatur", - "Karaikudi", - "Kishanganj", - "Phusro", - "Buxar", - "Tezpur", - "Jehanabad", - "Aurangabad", - "Chapra", - "Ramgarh", - "Gangtok", - "Adoni", - "Amaravati", - "Ballia", - "Bhimavaram", - "Dharmavaram", - "Giridih", - "Gudivada", - "Guntakal", - "Hindupur", - "Kavali", - "Khora ", - "Ghaziabad", - "Madanapalle", - "Mahbubnagar", - "Medininagar", - "Narasaraopet", - "Phagwara", - "Pudukkottai", - "Srikakulam", - "Tadepalligudem", - "Tadipatri", - "Udupi", - ) - - states = ( - "Andhra Pradesh", - "Arunachal Pradesh", - "Assam", - "Bihar", - "Chhattisgarh", - "Goa", - "Gujarat", - "Haryana", - "Himachal Pradesh", - "Jharkhand", - "Karnataka", - "Kerala", - "Madhya Pradesh", - "Maharashtra", - "Manipur", - "Meghalaya", - "Mizoram", - "Nagaland", - "Odisha", - "Punjab", - "Rajasthan", - "Sikkim", - "Tamil Nadu", - "Telangana", - "Tripura", - "Uttar Pradesh", - "Uttarakhand", - "West Bengal", - ) - - states_abbr: Tuple[str, ...] = ( - "AP", - "AR", - "AS", - "BR", - "CG", - "GA", - "GJ", - "HR", - "HP", - "JH", - "KA", - "KL", - "MP", - "MH", - "MN", - "ML", - "MZ", - "NL", - "OD", - "PB", - "RJ", - "SK", - "TN", - "TG", - "TR", - "UK", - "UP", - "WB", - ) - - union_territories = ( - ("Andaman and Nicobar Islands",), - ("Chandigarh",), - ("Dadra and Nagar Haveli, Dadra & Nagar Haveli",), - ("Daman and Diu",), - ("Delhi, National Capital Territory of Delhi",), - ("Jammu and Kashmir",), - ("Ladakh",), - ("Lakshadweep",), - ("Pondicherry",), - ("Puducherry",), - ) - - union_territories_abbr = ( - "AN", - "CH", - "DN", - "DD", - "DL", - "JK", - "LA", - "LD", - "PY", - ) - - # https://en.wikipedia.org/wiki/Postal_Index_Number - - # FIXME: Some states such as `BR/JH` / `UK/UP` have similar PIN code ranges - # FIXME: as mentioned in above link. - - state_pincode: Dict[str, List[Range]] = { - "AP": [(510_000, 539_999)], - "AR": [(790_000, 792_999)], - "AS": [(780_000, 789_999)], - "BR": [(800_000, 859_999)], - "CG": [(490_000, 499_999)], - "GA": [(403_000, 403_999)], - "GJ": [(360_000, 399_999)], - "HR": [(120_000, 139_999)], - "HP": [(170_000, 179_999)], - "JH": [(800_000, 859_999)], - "KA": [(560_000, 599_999)], - "KL": [(670_000, 681_999), (683_000, 699_999)], - "MP": [(450_000, 489_999)], - "MH": [(400_000, 402_999), (404_000, 449_999)], - "MN": [(795_000, 795_999)], - "ML": [(793_000, 794_999)], - "MZ": [(796_000, 796_999)], - "NL": [(797_000, 798_999)], - "OD": [(750_000, 779_999)], - "PB": [(140_000, 159_999)], - "RJ": [(300_000, 349_999)], - "SK": [(737_000, 737_999)], - "TN": [(600_000, 669_999)], - "TG": [(500_000, 509_999)], - "TR": [(799_000, 799_999)], - "UK": [(200_000, 289_999)], - "UP": [(200_000, 289_999)], - "WB": [(700_000, 736_999), (738_000, 743_999), (745_000, 749_999)], - } - - union_territories_pincode: Dict[str, List[Range]] = { - "AN": [(744_000, 744_999)], - "CH": [(160_000, 169_999)], - "DN": [(396_000, 396_999)], - "DD": [(396_000, 396_999)], - "DL": [(110_000, 119_999)], - "JK": [(180_000, 199_999)], - "LA": [(180_000, 199_999)], - "LD": [(682_000, 682_999)], - "PY": [(605_000, 605_999)], - } - - army_pincode: Dict[str, Range] = {"APS": (900_000, 999_999)} - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def union_territory(self) -> str: - """Returns random union territory name""" - - return self.random_element(self.union_territories)[0] - - def pincode_in_state(self, state_abbr: Optional[str] = None, include_union_territories: bool = False) -> int: - """Random PIN Code within provided state abbreviation - - :param state_abbr: State Abbr, defaults to None - :param include_union_territories: Include Union Territories ?, defaults to False - :raises ValueError: If incorrect state abbr - :return: PIN Code - """ - - known_abbrs = self.states_abbr - if include_union_territories: - known_abbrs += self.union_territories_abbr - - if state_abbr is None: - state_abbr = self.random_element(known_abbrs) - - if state_abbr in known_abbrs: - codes = self.state_pincode - if include_union_territories: - codes.update(self.union_territories_pincode) - - pincode_range = self.random_element(codes[state_abbr]) - - return self.generator.random.randint(*pincode_range) - - raise ValueError("State Abbreviation not found in list") - - def pincode_in_military(self) -> int: - """Random PIN Code within Army Postal Service range""" - - key: str = self.random_element(self.army_pincode.keys()) - - return self.generator.random.randint(*self.army_pincode[key]) - - # Aliases - - def zipcode_in_state(self, state_abbr: Optional[str] = None, include_union_territories: bool = False) -> int: - return self.pincode_in_state(state_abbr, include_union_territories) - - def postcode_in_state(self, state_abbr: Optional[str] = None, include_union_territories: bool = False) -> int: - return self.pincode_in_state(state_abbr, include_union_territories) - - def pincode_in_army(self) -> int: - return self.pincode_in_military() - - def zipcode_in_military(self) -> int: - return self.pincode_in_military() - - def zipcode_in_army(self) -> int: - return self.pincode_in_military() - - def postcode_in_military(self) -> int: - return self.pincode_in_military() - - def postcode_in_army(self) -> int: - return self.pincode_in_military() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e6a8302bd751b37f6dc4603ca7db99c81dcdf182..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10659 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_MS/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_MS/__init__.py deleted file mode 100644 index 0983ff6..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_MS/__init__.py +++ /dev/null @@ -1,486 +0,0 @@ -from collections import OrderedDict -from typing import Dict, List, Optional - -from ... import ElementsType -from ..en import Provider as AddressProvider - -# https://en.wikipedia.org/wiki/Addresses_in_Malaysia - - -class Provider(AddressProvider): - # 'Bandar' and 'Taman' are the most common township prefix - # https://en.wikipedia.org/wiki/Template:Greater_Kuala_Lumpur > Townships - # https://en.wikipedia.org/wiki/Template:Johor > Townships - # https://en.wikipedia.org/wiki/Template:Kedah > Townships - # https://en.wikipedia.org/wiki/Template:Kelantan > Townships - # https://en.wikipedia.org/wiki/Template:Melaka > Townships - # https://en.wikipedia.org/wiki/Template:Negeri_Sembilan > Townships - # https://en.wikipedia.org/wiki/Template:Perak > Townships - # https://en.wikipedia.org/wiki/Template:Penang > Townships - # https://en.wikipedia.org/wiki/Template:Selangor > Townships - # https://en.wikipedia.org/wiki/Template:Terengganu > Townships - - city_prefixes = ( - "Alam", - "Apartment", - "Ara", - "Bandar", - "Bandar", - "Bandar", - "Bandar", - "Bandar", - "Bandar", - "Bandar Bukit", - "Bandar Seri", - "Bandar Sri", - "Bandar Baru", - "Batu", - "Bukit", - "Desa", - "Damansara", - "Kampung", - "Kampung Baru", - "Kampung Baru", - "Kondominium", - "Kota", - "Laman", - "Lembah", - "Medan", - "Pandan", - "Pangsapuri", - "Petaling", - "Puncak", - "Seri", - "Sri", - "Taman", - "Taman", - "Taman", - "Taman", - "Taman", - "Taman", - "Taman Desa", - ) - - city_suffixes = ( - "Aman", - "Amanjaya", - "Anggerik", - "Angkasa", - "Antarabangsa", - "Awan", - "Bahagia", - "Bangsar", - "Baru", - "Belakong", - "Bendahara", - "Bestari", - "Bintang", - "Brickfields", - "Casa", - "Changkat", - "Country Heights", - "Damansara", - "Damai", - "Dato Harun", - "Delima", - "Duta", - "Flora", - "Gembira", - "Genting", - "Harmoni", - "Hartamas", - "Impian", - "Indah", - "Intan", - "Jasa", - "Jaya", - "Keramat", - "Kerinchi", - "Kiara", - "Kinrara", - "Kuchai", - "Laksamana", - "Mahkota", - "Maluri", - "Manggis", - "Maxwell", - "Medan", - "Melawati", - "Menjalara", - "Meru", - "Mulia", - "Mutiara", - "Pahlawan", - "Perdana", - "Pertama", - "Permai", - "Pelangi", - "Petaling", - "Pinang", - "Puchong", - "Puteri", - "Putra", - "Rahman", - "Rahmat", - "Raya", - "Razak", - "Ria", - "Saujana", - "Segambut", - "Selamat", - "Selatan", - "Semarak", - "Sentosa", - "Seputeh", - "Setapak", - "Setia Jaya", - "Sinar", - "Sungai Besi", - "Sungai Buaya", - "Sungai Long", - "Suria", - "Tasik Puteri", - "Tengah", - "Timur", - "Tinggi", - "Tropika", - "Tun Hussein Onn", - "Tun Perak", - "Tunku", - "Ulu", - "Utama", - "Utara", - "Wangi", - ) - - # https://en.wikipedia.org/wiki/States_and_federal_territories_of_Malaysia - states: Dict[str, List[str]] = { - "JHR": ["Johor Darul Ta'zim", "Johor"], - "KDH": ["Kedah Darul Aman", "Kedah"], - "KTN": ["Kelantan Darul Naim", "Kelantan"], - "KUL": ["KL", "Kuala Lumpur", "WP Kuala Lumpur"], - "LBN": ["Labuan"], - "MLK": ["Malacca", "Melaka"], - "NSN": ["Negeri Sembilan Darul Khusus", "Negeri Sembilan"], - "PHG": ["Pahang Darul Makmur", "Pahang"], - "PNG": ["Penang", "Pulau Pinang"], - "PRK": ["Perak Darul Ridzuan", "Perak"], - "PLS": ["Perlis Indera Kayangan", "Perlis"], - "PJY": ["Putrajaya"], - "SBH": ["Sabah"], - "SWK": ["Sarawak"], - "SGR": ["Selangor Darul Ehsan", "Selangor"], - "TRG": ["Terengganu Darul Iman", "Terengganu"], - } - - states_postcode = { - "PLS": [(1000, 2800)], - "KDH": [(5000, 9810)], - "PNG": [(10000, 14400)], - "KTN": [(15000, 18500)], - "TRG": [(20000, 24300)], - "PHG": [ - (25000, 28800), - (39000, 39200), - (49000, 69000), - ], - "PRK": [(30000, 36810)], - "SGR": [(40000, 48300), (63000, 68100)], - "KUL": [(50000, 60000)], - "PJY": [(62000, 62988)], - "NSN": [(70000, 73509)], - "MLK": [(75000, 78309)], - "JHR": [(79000, 86900)], - "LBN": [(87000, 87033)], - "SBH": [(88000, 91309)], - "SWK": [(93000, 98859)], - } - - city_prefix_abbrs: ElementsType[str] = ( - "SS", - "Seksyen ", - "PJS", - "PJU", - "USJ ", - ) - - def city_prefix_abbr(self) -> str: - return self.random_element(self.city_prefix_abbrs) - - city_formats: ElementsType[str] = ( - "{{city_prefix}} {{city_suffix}}", - "{{city_prefix}} {{city_suffix}}", - "{{city_prefix}} {{city_suffix}}", - "{{city_prefix}} {{city_suffix}}", - "{{city_prefix}} {{city_suffix}}", - "{{city_prefix}} {{city_suffix}}", - "{{city_prefix_abbr}}%", - "{{city_prefix_abbr}}%#", - "{{city_prefix_abbr}}%#?", - ) - - def city(self) -> str: - pattern: str = self.bothify(self.random_element(self.city_formats)) - return self.generator.parse(pattern) - - # https://en.wikipedia.org/wiki/List_of_roads_in_Kuala_Lumpur#Standard_translations - street_prefixes: ElementsType[str] = [ - "Jln", - "Jln", - "Jalan", - "Jalan", - "Jalan", - "Lorong", - ] - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes) - - # https://en.wikipedia.org/wiki/List_of_roads_in_Kuala_Lumpur - # https://en.wikipedia.org/wiki/List_of_roads_in_Ipoh - # https://en.wikipedia.org/wiki/Transportation_in_Seremban#Inner_city_roads - # https://en.wikipedia.org/wiki/List_of_streets_in_George_Town,_Penang - street_suffixes: ElementsType[str] = [ - "Air Itam", - "Alor", - "Ampang", - "Ampang Hilir", - "Anson", - "Ariffin", - "Bangsar", - "Baru", - "Bellamy", - "Birch", - "Bijih Timah", - "Bukit Aman", - "Bukit Bintang", - "Bukit Petaling", - "Bukit Tunku", - "Cantonment", - "Cenderawasih", - "Chan Sow Lin", - "Chow Kit", - "Cinta", - "Cochrane", - "Conlay", - "D. S. Ramanathan", - "Damansara", - "Dang Wangi", - "Davis", - "Dewan Bahasa", - "Dato Abdul Rahman", - "Dato'Keramat", - "Dato' Maharaja Lela", - "Doraisamy", - "Eaton", - "Faraday", - "Galloway", - "Genting Klang", - "Gereja", - "Hang Jebat", - "Hang Kasturi", - "Hang Lekir", - "Hang Lekiu", - "Hang Tuah", - "Hospital", - "Imbi", - "Istana", - "Jelutong", - "Kampung Attap", - "Kebun Bunga", - "Kedah", - "Keliling", - "Kia Peng", - "Kinabalu", - "Kuala Kangsar", - "Kuching", - "Ledang", - "Lembah Permai", - "Loke Yew", - "Lt. Adnan", - "Lumba Kuda", - "Madras", - "Magazine", - "Maharajalela", - "Masjid", - "Maxwell", - "Mohana Chandran", - "Muda", - "P. Ramlee", - "Padang Kota Lama", - "Pahang", - "Pantai Baharu", - "Parlimen", - "Pasar", - "Pasar Besar", - "Perak", - "Perdana", - "Petaling", - "Prangin", - "Pudu", - "Pudu Lama", - "Raja", - "Raja Abdullah", - "Raja Chulan", - "Raja Laut", - "Rakyat", - "Residensi", - "Robson", - "S.P. Seenivasagam", - "Samarahan 1", - "Selamat", - "Sempadan", - "Sentul", - "Serian 1", - "Sasaran", - "Sin Chee", - "Sultan Abdul Samad", - "Sultan Azlan Shah", - "Sultan Iskandar", - "Sultan Ismail", - "Sultan Sulaiman", - "Sungai Besi", - "Syed Putra", - "Tan Cheng Lock", - "Thambipillay", - "Tugu", - "Tuanku Abdul Halim", - "Tuanku Abdul Rahman", - "Tun Abdul Razak", - "Tun Dr Ismail", - "Tun H S Lee", - "Tun Ismail", - "Tun Perak", - "Tun Razak", - "Tun Sambanthan", - "U-Thant", - "Utama", - "Vermont", - "Vivekananda", - "Wan Kadir", - "Wesley", - "Wisma Putra", - "Yaacob Latif", - "Yap Ah Loy", - "Yap Ah Shak", - "Yap Kwan Seng", - "Yew", - "Zaaba", - "Zainal Abidin", - ] - - street_name_formats: ElementsType[str] = ( - "{{street_prefix}} %", - "{{street_prefix}} %/%", - "{{street_prefix}} %/%#", - "{{street_prefix}} %/%?", - "{{street_prefix}} %/%#?", - "{{street_prefix}} %?", - "{{street_prefix}} %#?", - "{{street_prefix}} {{street_suffix}}", - "{{street_prefix}} {{street_suffix}} %", - "{{street_prefix}} {{street_suffix}} %/%", - "{{street_prefix}} {{street_suffix}} %/%#", - "{{street_prefix}} {{street_suffix}} %/%?", - "{{street_prefix}} {{street_suffix}} %/%#?", - "{{street_prefix}} {{street_suffix}} %?", - "{{street_prefix}} {{street_suffix}} %#?", - ) - - def street_name(self) -> str: - """ - :example: 'Crist Parks' - """ - pattern: str = self.bothify(self.random_element(self.street_name_formats)) - return self.generator.parse(pattern) - - building_prefixes: ElementsType[str] = [ - "", - "", - "", - "", - "", - "", - "No. ", - "No. ", - "No. ", - "Lot ", - ] - - def building_prefix(self) -> str: - return self.random_element(self.building_prefixes) - - building_number_formats: ElementsType[str] = ( - "%", - "%", - "%", - "%#", - "%#", - "%#", - "%#", - "%##", - "%-%", - "?-##-##", - "%?-##", - ) - - def building_number(self) -> str: - return self.bothify(self.random_element(self.building_number_formats)) - - street_address_formats: ElementsType[str] = ("{{building_prefix}}{{building_number}}, {{street_name}}",) - - def city_state(self) -> str: - """Return the complete city address with matching postcode and state - - Example: 55100 Bukit Bintang, Kuala Lumpur - """ - state: str = self.random_element(self.states.keys()) - postcode = self.postcode_in_state(state) - city = self.city() - state_name: str = self.random_element(self.states[state]) - - return f"{postcode} {city}, {state_name}" - - # https://en.wikipedia.org/wiki/Addresses_in_Malaysia - # street number, street name, region, and town/city, state. - address_formats = OrderedDict((("{{street_address}}, {{city}}, {{city_state}}", 100.0),)) - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def administrative_unit(self) -> str: - return self.random_element(self.states[self.random_element(self.states.keys())]) - - state = administrative_unit - - def postcode_in_state(self, state_abbr: Optional[str] = None) -> str: - """ - :returns: A random postcode within the provided state - - :param state: A state - - Example: 55100 - https://en.wikipedia.org/wiki/Postal_codes_in_Malaysia#States - """ - - if state_abbr is None: - state_abbr = self.random_element(self.states.keys()) - - try: - # some states have multiple ranges so first pick one, then generate a random postcode - range = self.generator.random.choice(self.states_postcode[state_abbr]) - postcode = "%d" % (self.generator.random.randint(*range)) - - # zero left pad up until desired length (some have length 3 or 4) - target_postcode_len = 5 - current_postcode_len = len(postcode) - if current_postcode_len < target_postcode_len: - pad = target_postcode_len - current_postcode_len - postcode = f"{'0'*pad}{postcode}" - - return postcode - except KeyError as e: - raise KeyError("State Abbreviation not found in list") from e - - def postcode(self) -> str: - return self.postcode_in_state(None) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_MS/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_MS/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2311a545a6033a9a432a7868b9c29e6f60db30f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10584 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 ao$qn2-{-o1>U+&?>stBb&p66i8~+Uur_E^q diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_NZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_NZ/__init__.py deleted file mode 100644 index 4fb84ef..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_NZ/__init__.py +++ /dev/null @@ -1,340 +0,0 @@ -from ..en import Provider as AddressProvider - - -class Provider(AddressProvider): - city_prefixes = ( - "North", - "East", - "West", - "South", - "New", - "Lake", - "Port", - "Upper", - "Lower", - "High", - "Mount", - ) - - city_suffixes = ( - "town", - "ton", - "land", - "ville", - "berg", - "burgh", - "borough", - "bury", - "burn", - "ing", - "port", - "mouth", - "stone", - "ings", - "mouth", - "fort", - "haven", - "leigh", - "side", - "gate", - "neath", - "side", - " Flats", - " Hill", - ) - - building_number_formats = ("%##", "%#", "%") - - street_suffixes = ( - # Most common: - "Arcade", - "Arcade", - "Arcade", - "Avenue", - "Avenue", - "Avenue", - "Avenue", - "Avenue", - "Avenue", - "Avenue", - "Avenue", - "Beach Road", - "Beach Road", - "Beach Road", - "Beach Road", - "Crescent", - "Crescent", - "Crescent", - "Crescent", - "Crescent", - "Drive", - "Drive", - "Drive", - "Drive", - "Mews", - "Mews", - "Mews", - "Place", - "Place", - "Place", - "Place", - "Range Road", - "Range Road", - "Road", - "Road", - "Road", - "Road", - "Road", - "Road", - "Road", - "Road", - "Road", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Street", - "Terrace", - "Terrace", - "Terrace", - "Way", - "Way", - "Way", - # Other: - "Access", - "Alley", - "Alleyway", - "Amble", - "Anchorage", - "Approach", - "Broadway", - "Bypass", - "Causeway", - "Centre", - "Circle", - "Circuit", - "Close", - "Concourse", - "Copse", - "Corner", - "Court", - "Cove", - "Crest", - "Cross", - "Crossing", - "Cutting", - "Esplanade", - "Flats", - "Gardens", - "Grove", - "Heights", - "Highway", - "Lane", - "Line", - "Keys", - "Parade", - "Park", - "Pass", - "Plaza", - "Point", - "Quay", - "Reserve", - "Ridge", - "Rise", - "Square", - "Track", - "Trail", - "View", - ) - - # Māori nouns commonly present in placenames. - te_reo_parts = ( - "ara", - "awa", - "horo", - "kawa", - "koro", - "kowhai", - "manawa", - "mata", - "maunga", - "moko", - "motu", - "ngauru", - "pa" "papa", - "po", - "puke", - "rangi", - "rohe", - "rongo", - "roto", - "tahi", - "tai", - "tangi", - "tau", - "tere", - "tipu", - "wai", - "waka", - "whaka", - "whanga", - "whare", - "weka", - ) - - # Māori endings (usually adjectives) commonly present in placenames. - te_reo_endings = ( - "hanga", - "hope", - "iti", - "iti", - "kiwi", - "makau", - "nui", - "nui", - "nui", - "nuku", - "roa", - "rua", - "tanga", - "tapu", - "toa", - "whenua", - "whero", - "whitu", - ) - - postcode_formats = ( - # as per https://en.wikipedia.org/wiki/Postcodes_in_New_Zealand - # Northland - "0%##", - # Auckland - "1###", - "20##", - "21##", - "22##", - "23##", - "24##", - "25##", - "26##", - # Central North Island - "3###", - "4###", - # Lower North Island - "50##", - "51##", - "52##", - "53##", - "55##", - "57##", - "58##", - # Wellington - "60##", - "61##", - "62##", - "64##", - "69##", - # Upper South Island - "7###", - # Christchurch - "80##", - "81##", - "82##", - "84##", - "85##", - "86##", - "88##", - "89##", - # Southland - "90##", - "92##", - "93##", - "94##", - "95##", - "96##", - "97##", - "98##", - ) - - city_formats = ( - "{{first_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{city_prefix}} {{last_name}}{{city_suffix}}", - "{{te_reo_first}}{{te_reo_ending}}", - "{{te_reo_first}}{{te_reo_ending}}", - "{{te_reo_first}}{{te_reo_ending}}", - "{{te_reo_first}}{{te_reo_ending}}", - "{{te_reo_first}}{{te_reo_part}}{{te_reo_ending}}", - "{{te_reo_first}}{{te_reo_part}}{{te_reo_ending}}", - ) - - street_name_formats = ( - "{{first_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - "{{last_name}}-{{last_name}} {{street_suffix}}", - "{{te_reo_first}}{{te_reo_ending}} {{street_suffix}}", - "{{te_reo_first}}{{te_reo_ending}} {{street_suffix}}", - "{{te_reo_first}}{{te_reo_part}}{{te_reo_ending}} {{street_suffix}}", - ) - - street_address_formats = ( - "{{building_number}} {{street_name}}", - "{{building_number}} {{street_name}}", - "{{building_number}} {{street_name}}", - "{{building_number}} {{street_name}}\nRD {{rd_number}}", - "{{secondary_address}}\n{{building_number}} {{street_name}}", - "PO Box {{building_number}}", - ) - - address_formats = ("{{street_address}}\n{{city}} {{postcode}}",) - - secondary_address_formats = ( - "Apt. %##", - "Flat %#", - "Suite %##", - "Unit %#", - "Level %", - ) - - def te_reo_part(self) -> str: - return self.random_element(self.te_reo_parts) - - def te_reo_first(self) -> str: - return str(self.random_element(self.te_reo_parts)).capitalize() - - def te_reo_ending(self) -> str: - return self.random_element(self.te_reo_parts + self.te_reo_endings) - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def city_suffix(self) -> str: - return self.random_element(self.city_suffixes) - - def rd_number(self) -> str: - return self.random_element([str(i) for i in range(1, 11)]) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_NZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_NZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 091033f26cecadf69a7fac0e9f203319302e514d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4915 zcmcgwT}&I<6`rwYjQNWbASBsr8WNfxZxc+yPoSzQfkTKALI`AcB}%S& z!LeDlsg#FS-8NhGCv;U+sk*Bsid1deeb|Rq>U&?HNTs@JpW2taA+dcZPyNpI&jN<+ zR;$*)ch5QZoOACv_uL=z$JW*+g+3oP-TTLJMftmADxg=|&9fk$D5hen86~SG0;&>F z#uYR0NHK#f@FG~&OQ;1cs=o|?i>e|##hpdVWIR>zA{*+Y&*nRTCkj&%s;MLbrkV(v zfrMrT6S}D-LZ+T*Fhhy3*^p>7!-*!dG0|)`C0fkpM6217IAFH2$XviY@JLG>tk4nA zhbr_z&}|j^5a{*_-3Gd&LbroHT%kKacNPvuJ2{0CZ5H~Z!@ac7#thdJ+M5ih&p19r z!AX`E+Jv#dgf;~wp}(HXF)s88Cyz$EZq28Ke#`M~FM3pHo|Csl&~t2|WenRC`l6M| zz;u@Jd7;nx9NG=D4tIPI8u)@l*jV!3vJ%;n9yxzcxiqLy2Vh}wT$7pMZN1fW)KY)gJ-(Ci-9xUTk4tUeGwYrDFcgj z2D%a;fmfe#TKi9jt)@|Cq|#l}j$!h1q+SCNj&tUwnCY&A_A_B<;OdV$n5IsQe``p+OjGahHm<2|JRzXj27mvK%Z z#Aq-A5q#4q@LpmGknB{7xvtPhP#pykmQCI$K#-k9y)=&4skFn5d4|4RjyuS=2#=yQ zNh>s3$QdvX#|__QQWB?}GZBhgJOu|0)cO|6HJ))?IE*`X%JDf!J?`YtgyIgjsgUCk zqv+$#BK2YU$cQ`AJvCIA4RPP|h-e&hb0}<-j?iU+iH325o6JTm<2V2?@^z|9&jo>& z=7!xvbv$7a-ed(=gr*EmE;O_Ygp>-bdeK1RST?3}$A@LZG;v+BhLEv+=IfH&gAcvluk5fSBs6$I=+({GT*z@S&jtBINw1v%&0d!9)f%YM0 zn5^bmIbQ_x=+yGY0s_TM(1g&?;KY(zo-G*BHldfL2qDLCHh32QI@OJ~VCCUG3rje& zeT#pSYKlN;w!Z)&Y6RfJBh3L(c?J#aL5#7m#pPHG*}#yN=SR;MwO%?Kv`gKDmwP3G z0ex9wpTvHN0}=-bAqGMW9FSH6(rQ3j4M?j2sXuT<>I@MMO3gv3IVd#;rRTw6>V+b3 zNa_qpogt|+Bz1Rwu!^{otLG->-;+`*;N zCyM2z=kzdP^#E;eneqf5l;Bl%*WoGZZkWpR0JZu*{rGMqOK_SlY?5nCEzDmNg#4?p6uBC-1S87t2~H?%)cP z%&g?~@feKci`0!(G8kiaaxxK1 zCM_f+ne53GMDw<(6+1AdwCLF;9l<=^W0>nh)rjU-TiBkftB#U zCgos9F6kvLb2$g%iQ?5ViTsg#*9TH05YnHAoe%^A!z<1 zfM`k?ImHGMuJ+DL5q_#Usm2}L7V?1| zXQ^8kcI%G*V(0F-%ZJlA1^z`0wa2o5;H_V|v5MdB8*7o9E8&~d&*A%4-^s zv58iBN0l!aRv%UKw(f0(yiIxo5pC{K$OEh018b4NmGI#IFO2e4yKflf?%iROrMD0U ze;?_spKZ9B^c;x&O3kZnKvOjXFDl2`Rpqgo3d}31z}H$8rKEb*FT=`PYPHzDA9y>W zL8DZY%z#s+B(Fq+lP@tfL>x=kMohmNL>X}^EH$%xeT}{s8 z(zi>?ch^t!uAb=qpkw{g?bS=S*G^2WMeeMG@5ox2j2;o;qbY#dbe!R47v1LOt8*xVqd&T5+j0tv>Dh7~Hff*HeZw84Zd6vn4GeBjpEJwPyJ5DHn7l$s}xr ozfxZEukt@YM!VHL3fKs$s`@wO!pEU0U7c3H^^Jcjl8~1F2Ba@|n*aa+ diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_PH/__init__.py deleted file mode 100644 index 6048494..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_PH/__init__.py +++ /dev/null @@ -1,1799 +0,0 @@ -from collections import OrderedDict -from string import ascii_uppercase -from typing import Sequence, Union - -from ... import ElementsType -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - """ - Provider for addresses for en_PH locale - - Like many things in the Philippines, even addresses are more complicated than necessary. This provider is already - a gross oversimplification, and it is still a lot more complicated VS providers from other locales despite taking - shortcuts. Below are some tidbits of information that, as a whole, shaped the design decisions of this provider. - - - There are many levels of geopolitical division, thus many levels of local government: - * There are three major island groups - Luzon, Visayas, Mindanao - * Those major groups are divided into 17 different regions. - * Each region is divided into provinces with the exception of the National Capital Region aka Metro Manila. - * Each province is composed of multiple cities/municipalities. - * Metro Manila, like a province, is composed of multiple cities/municipalities, but it is a region. - * Each city/municipality is composed of multiple smaller local government units called barangays. - * In some places, some barangays are divided further, and as of 2019, there are 42,045 barangays on record. - - Metro Manila is part of Luzon geographically, but it is almost always treated as a separate entity politically, - economically, statistically, and so on, since it is home to around 13% of the population despite being only around - 0.2% of the country's total land area. - - Names of cities, municipalities, and barangays vary a lot. Furthermore, if a place has a non-English name, there - will almost always be no English translation and vice-versa. It is essentially impossible to generate fake city, - municipality, and barangay names in a similar manner used in the other "en" locales while being locale specific. - - Subdivisions and other higher density housing (like high-rise condominiums) are popular in real estate. - - The 13th floor is omitted in buildings like in many parts of the world. - - The floor number distribution is partly based on the tallest buildings in the Philippines and partly anecdotal, - but the general idea is that the higher the floor number is, the lower probability of it appearing. Furthermore, - as the floor number approaches the highest floors of the tallest buildings, the probability plummets further. - - The address distribution is based on the official 2015 population census. - - Addresses should include a barangay, but it has been dropped to keep things sane, all things considered. - - In addition to numbered floors, buildings have ground floors and may have lower ground, upper ground, mezzanine, - and basement floors. Buildings may also have units on any of those floors, but the naming scheme varies, so they - have been dropped, again to keep things sane. - - Sources: - - https://en.wikipedia.org/wiki/Provinces_of_the_Philippines - - https://en.wikipedia.org/wiki/List_of_cities_and_municipalities_in_the_Philippines - - https://en.wikipedia.org/wiki/Barangay - - https://en.wikipedia.org/wiki/Postal_addresses_in_the_Philippines - - https://en.wikipedia.org/wiki/List_of_ZIP_codes_in_the_Philippines - - https://www.phlpost.gov.ph/ - - http://en.wikipedia.org/wiki/List_of_tallest_buildings_in_the_Philippines - - https://psa.gov.ph/sites/default/files/attachments/hsd/pressrelease/2015%20population%20counts%20Summary_0.xlsx - """ - - metro_manila_postcodes = tuple(x for x in range(400, 1849)) - luzon_province_postcodes = tuple(x for x in range(1850, 5000)) + tuple(x for x in range(5100, 5600)) - visayas_province_postcodes = ( - tuple(x for x in range(5000, 5100)) + tuple(x for x in range(5600, 5800)) + tuple(x for x in range(6000, 6900)) - ) - mindanao_province_postcodes = ( - tuple(x for x in range(7000, 7600)) + tuple(x for x in range(8000, 8900)) + tuple(x for x in range(9000, 9900)) - ) - postcodes = ( - metro_manila_postcodes + luzon_province_postcodes + visayas_province_postcodes + mindanao_province_postcodes - ) - metro_manila_lgus = ( - "Caloocan", - "Las Piñas", - "Makati", - "Malabon", - "Mandaluyong", - "Manila", - "Marikina", - "Muntinlupa", - "Navotas", - "Parañaque", - "Pasay", - "Pasig", - "Pateros", - "Quezon City", - "San Juan", - "Taguig", - "Valenzuela", - ) - province_lgus = ( - "Aborlan", - "Abra de Ilog", - "Abucay", - "Abulug", - "Abuyog", - "Adams", - "Agdangan", - "Aglipay", - "Agno", - "Agoncillo", - "Agoo", - "Aguilar", - "Aguinaldo", - "Agutaya", - "Ajuy", - "Akbar", - "Al-Barka", - "Alabat", - "Alabel", - "Alamada", - "Alaminos", - "Alangalang", - "Albuera", - "Alburquerque", - "Alcala", - "Alcantara", - "Alcoy", - "Alegria", - "Aleosan", - "Alfonso Castañeda", - "Alfonso Lista", - "Alfonso", - "Aliaga", - "Alicia", - "Alilem", - "Alimodian", - "Alitagtag", - "Allacapan", - "Allen", - "Almagro", - "Almeria", - "Aloguinsan", - "Aloran", - "Altavas", - "Alubijid", - "Amadeo", - "Amai Manabilang", - "Ambaguio", - "Amlan", - "Ampatuan", - "Amulung", - "Anahawan", - "Anao", - "Anda", - "Angadanan", - "Angat", - "Angeles", - "Angono", - "Anilao", - "Anini-y", - "Antequera", - "Antipas", - "Antipolo", - "Apalit", - "Aparri", - "Araceli", - "Arakan", - "Arayat", - "Argao", - "Aringay", - "Aritao", - "Aroroy", - "Arteche", - "Asingan", - "Asipulo", - "Asturias", - "Asuncion", - "Atimonan", - "Atok", - "Aurora", - "Ayungon", - "Baao", - "Babatngon", - "Bacacay", - "Bacarra", - "Baclayon", - "Bacnotan", - "Baco", - "Bacolod-Kalawi", - "Bacolod", - "Bacolor", - "Bacong", - "Bacoor", - "Bacuag", - "Badian", - "Badiangan", - "Badoc", - "Bagabag", - "Bagac", - "Bagamanoc", - "Baganga", - "Baggao", - "Bago", - "Baguio", - "Bagulin", - "Bagumbayan", - "Bais", - "Bakun", - "Balabac", - "Balabagan", - "Balagtas", - "Balamban", - "Balanga", - "Balangiga", - "Balangkayan", - "Balaoan", - "Balasan", - "Balatan", - "Balayan", - "Balbalan", - "Baleno", - "Baler", - "Balete", - "Baliangao", - "Baliguian", - "Balilihan", - "Balindong", - "Balingasag", - "Balingoan", - "Baliuag", - "Ballesteros", - "Baloi", - "Balud", - "Balungao", - "Bamban", - "Bambang", - "Banate", - "Banaue", - "Banaybanay", - "Banayoyo", - "Banga", - "Bangar", - "Bangued", - "Bangui", - "Banguingui", - "Bani", - "Banisilan", - "Banna", - "Bansalan", - "Bansud", - "Bantay", - "Bantayan", - "Banton", - "Baras", - "Barbaza", - "Barcelona", - "Barili", - "Barira", - "Barlig", - "Barobo", - "Barotac Nuevo", - "Barotac Viejo", - "Baroy", - "Barugo", - "Basay", - "Basco", - "Basey", - "Basilisa", - "Basista", - "Basud", - "Batac", - "Batad", - "Batan", - "Batangas City", - "Bataraza", - "Bato", - "Batuan", - "Bauan", - "Bauang", - "Bauko", - "Baungon", - "Bautista", - "Bay", - "Bayabas", - "Bayambang", - "Bayang", - "Bayawan", - "Baybay", - "Bayog", - "Bayombong", - "Bayugan", - "Belison", - "Benito Soliven", - "Besao", - "Bien Unido", - "Bilar", - "Biliran", - "Binalbagan", - "Binalonan", - "Biñan", - "Binangonan", - "Bindoy", - "Bingawan", - "Binidayan", - "Binmaley", - "Binuangan", - "Biri", - "Bislig", - "Boac", - "Bobon", - "Bocaue", - "Bogo", - "Bokod", - "Bolinao", - "Boliney", - "Boljoon", - "Bombon", - "Bongabon", - "Bongabong", - "Bongao", - "Bonifacio", - "Bontoc", - "Borbon", - "Borongan", - "Boston", - "Botolan", - "Braulio E. Dujali", - "Brooke's Point", - "Buadiposo-Buntong", - "Bubong", - "Bucay", - "Bucloc", - "Buenavista", - "Bugallon", - "Bugasong", - "Buguey", - "Buguias", - "Buhi", - "Bula", - "Bulakan", - "Bulalacao", - "Bulan", - "Buldon", - "Buluan", - "Bulusan", - "Bunawan", - "Burauen", - "Burdeos", - "Burgos", - "Buruanga", - "Bustos", - "Busuanga", - "Butig", - "Butuan", - "Buug", - "Caba", - "Cabadbaran", - "Cabagan", - "Cabanatuan", - "Cabangan", - "Cabanglasan", - "Cabarroguis", - "Cabatuan", - "Cabiao", - "Cabucgayan", - "Cabugao", - "Cabusao", - "Cabuyao", - "Cadiz", - "Cagayan de Oro", - "Cagayancillo", - "Cagdianao", - "Cagwait", - "Caibiran", - "Cainta", - "Cajidiocan", - "Calabanga", - "Calaca", - "Calamba", - "Calanasan", - "Calanogas", - "Calapan", - "Calape", - "Calasiao", - "Calatagan", - "Calatrava", - "Calauag", - "Calauan", - "Calayan", - "Calbayog", - "Calbiga", - "Calinog", - "Calintaan", - "Calubian", - "Calumpit", - "Caluya", - "Camalaniugan", - "Camalig", - "Camaligan", - "Camiling", - "Can-avid", - "Canaman", - "Candaba", - "Candelaria", - "Candijay", - "Candon", - "Candoni", - "Canlaon", - "Cantilan", - "Caoayan", - "Capalonga", - "Capas", - "Capoocan", - "Capul", - "Caraga", - "Caramoan", - "Caramoran", - "Carasi", - "Carcar", - "Cardona", - "Carigara", - "Carles", - "Carmen", - "Carmona", - "Carranglan", - "Carrascal", - "Casiguran", - "Castilla", - "Castillejos", - "Cataingan", - "Catanauan", - "Catarman", - "Catbalogan", - "Cateel", - "Catigbian", - "Catmon", - "Catubig", - "Cauayan", - "Cavinti", - "Cavite City", - "Cawayan", - "Cebu City", - "Cervantes", - "Clarin", - "Claver", - "Claveria", - "Columbio", - "Compostela", - "Concepcion", - "Conner", - "Consolacion", - "Corcuera", - "Cordon", - "Cordova", - "Corella", - "Coron", - "Cortes", - "Cotabato City", - "Cuartero", - "Cuenca", - "Culaba", - "Culasi", - "Culion", - "Currimao", - "Cuyapo", - "Cuyo", - "Daanbantayan", - "Daet", - "Dagami", - "Dagohoy", - "Daguioman", - "Dagupan", - "Dalaguete", - "Damulog", - "Danao", - "Dangcagan", - "Danglas", - "Dao", - "Dapa", - "Dapitan", - "Daraga", - "Daram", - "Dasmariñas", - "Dasol", - "Datu Abdullah Sangki", - "Datu Anggal Midtimbang", - "Datu Blah T. Sinsuat", - "Datu Hoffer Ampatuan", - "Datu Montawal", - "Datu Odin Sinsuat", - "Datu Paglas", - "Datu Piang", - "Datu Salibo", - "Datu Saudi-Ampatuan", - "Datu Unsay", - "Dauin", - "Dauis", - "Davao City", - "Del Carmen", - "Del Gallego", - "Delfin Albano", - "Diadi", - "Diffun", - "Digos", - "Dilasag", - "Dimasalang", - "Dimataling", - "Dimiao", - "Dinagat", - "Dinalungan", - "Dinalupihan", - "Dinapigue", - "Dinas", - "Dingalan", - "Dingle", - "Dingras", - "Dipaculao", - "Diplahan", - "Dipolog", - "Ditsaan-Ramain", - "Divilacan", - "Dolores", - "Don Carlos", - "Don Marcelino", - "Don Victoriano Chiongbian", - "Doña Remedios Trinidad", - "Donsol", - "Dueñas", - "Duero", - "Dulag", - "Dumaguete", - "Dumalag", - "Dumalinao", - "Dumalneg", - "Dumangas", - "Dumanjug", - "Dumaran", - "Dumarao", - "Dumingag", - "Dupax del Norte", - "Dupax del Sur", - "Echague", - "El Nido", - "El Salvador", - "Enrile", - "Enrique B. Magalona", - "Enrique Villanueva", - "Escalante", - "Esperanza", - "Estancia", - "Famy", - "Ferrol", - "Flora", - "Floridablanca", - "Gabaldon", - "Gainza", - "Galimuyod", - "Gamay", - "Gamu", - "Ganassi", - "Gandara", - "Gapan", - "Garchitorena", - "Garcia Hernandez", - "Gasan", - "Gattaran", - "General Emilio Aguinaldo", - "General Luna", - "General MacArthur", - "General Mamerto Natividad", - "General Mariano Alvarez", - "General Nakar", - "General Salipada K. Pendatun", - "General Santos", - "General Tinio", - "General Trias", - "Gerona", - "Getafe", - "Gigaquit", - "Gigmoto", - "Ginatilan", - "Gingoog", - "Giporlos", - "Gitagum", - "Glan", - "Gloria", - "Goa", - "Godod", - "Gonzaga", - "Governor Generoso", - "Gregorio del Pilar", - "Guagua", - "Gubat", - "Guiguinto", - "Guihulngan", - "Guimba", - "Guimbal", - "Guinayangan", - "Guindulman", - "Guindulungan", - "Guinobatan", - "Guinsiliban", - "Guipos", - "Guiuan", - "Gumaca", - "Gutalac", - "Hadji Mohammad Ajul", - "Hadji Muhtamad", - "Hadji Panglima Tahil", - "Hagonoy", - "Hamtic", - "Hermosa", - "Hernani", - "Hilongos", - "Himamaylan", - "Hinabangan", - "Hinatuan", - "Hindang", - "Hingyon", - "Hinigaran", - "Hinoba-an", - "Hinunangan", - "Hinundayan", - "Hungduan", - "Iba", - "Ibaan", - "Ibajay", - "Igbaras", - "Iguig", - "Ilagan", - "Iligan", - "Ilog", - "Iloilo City", - "Imelda", - "Impasugong", - "Imus", - "Inabanga", - "Indanan", - "Indang", - "Infanta", - "Initao", - "Inopacan", - "Ipil", - "Iriga", - "Irosin", - "Isabel", - "Isabela City", - "Isabela", - "Isulan", - "Itbayat", - "Itogon", - "Ivana", - "Ivisan", - "Jabonga", - "Jaen", - "Jagna", - "Jalajala", - "Jamindan", - "Janiuay", - "Jaro", - "Jasaan", - "Javier", - "Jiabong", - "Jimalalud", - "Jimenez", - "Jipapad", - "Jolo", - "Jomalig", - "Jones", - "Jordan", - "Jose Abad Santos", - "Jose Dalman", - "Jose Panganiban", - "Josefina", - "Jovellar", - "Juban", - "Julita", - "Kabacan", - "Kabankalan", - "Kabasalan", - "Kabayan", - "Kabugao", - "Kabuntalan", - "Kadingilan", - "Kalamansig", - "Kalawit", - "Kalayaan", - "Kalibo", - "Kalilangan", - "Kalingalan Caluang", - "Kananga", - "Kapai", - "Kapalong", - "Kapangan", - "Kapatagan", - "Kasibu", - "Katipunan", - "Kauswagan", - "Kawayan", - "Kawit", - "Kayapa", - "Kiamba", - "Kiangan", - "Kibawe", - "Kiblawan", - "Kibungan", - "Kidapawan", - "Kinoguitan", - "Kitaotao", - "Kitcharao", - "Kolambugan", - "Koronadal", - "Kumalarang", - "La Carlota", - "La Castellana", - "La Libertad", - "La Paz", - "La Trinidad", - "Laak", - "Labangan", - "Labason", - "Labo", - "Labrador", - "Lacub", - "Lagangilang", - "Lagawe", - "Lagayan", - "Lagonglong", - "Lagonoy", - "Laguindingan", - "Lake Sebu", - "Lakewood", - "Lal-lo", - "Lala", - "Lambayong", - "Lambunao", - "Lamitan", - "Lamut", - "Langiden", - "Languyan", - "Lantapan", - "Lantawan", - "Lanuza", - "Laoac", - "Laoag", - "Laoang", - "Lapinig", - "Lapu-Lapu", - "Lapuyan", - "Larena", - "Las Navas", - "Las Nieves", - "Lasam", - "Laua-an", - "Laur", - "Laurel", - "Lavezares", - "Lawaan", - "Lazi", - "Lebak", - "Leganes", - "Legazpi", - "Lemery", - "Leon B. Postigo", - "Leon", - "Leyte", - "Lezo", - "Lian", - "Lianga", - "Libacao", - "Libagon", - "Libertad", - "Libjo", - "Libmanan", - "Libon", - "Libona", - "Libungan", - "Licab", - "Licuan-Baay", - "Lidlidda", - "Ligao", - "Lila", - "Liliw", - "Liloan", - "Liloy", - "Limasawa", - "Limay", - "Linamon", - "Linapacan", - "Lingayen", - "Lingig", - "Lipa", - "Llanera", - "Llorente", - "Loay", - "Lobo", - "Loboc", - "Looc", - "Loon", - "Lope de Vega", - "Lopez Jaena", - "Lopez", - "Loreto", - "Los Baños", - "Luba", - "Lubang", - "Lubao", - "Lubuagan", - "Lucban", - "Lucena", - "Lugait", - "Lugus", - "Luisiana", - "Lumba-Bayabao", - "Lumbaca-Unayan", - "Lumban", - "Lumbatan", - "Lumbayanague", - "Luna", - "Lupao", - "Lupi", - "Lupon", - "Lutayan", - "Luuk", - "M'lang", - "Maasim", - "Maasin", - "Maayon", - "Mabalacat", - "Mabinay", - "Mabini", - "Mabitac", - "Mabuhay", - "Macabebe", - "Macalelon", - "MacArthur", - "Maco", - "Maconacon", - "Macrohon", - "Madalag", - "Madalum", - "Madamba", - "Maddela", - "Madrid", - "Madridejos", - "Magalang", - "Magallanes", - "Magarao", - "Magdalena", - "Magdiwang", - "Magpet", - "Magsaysay", - "Magsingal", - "Maguing", - "Mahaplag", - "Mahatao", - "Mahayag", - "Mahinog", - "Maigo", - "Maimbung", - "Mainit", - "Maitum", - "Majayjay", - "Makato", - "Makilala", - "Malabang", - "Malabuyoc", - "Malalag", - "Malangas", - "Malapatan", - "Malasiqui", - "Malay", - "Malaybalay", - "Malibcong", - "Malilipot", - "Malimono", - "Malinao", - "Malita", - "Malitbog", - "Mallig", - "Malolos", - "Malungon", - "Maluso", - "Malvar", - "Mamasapano", - "Mambajao", - "Mamburao", - "Mambusao", - "Manabo", - "Manaoag", - "Manapla", - "Manay", - "Mandaon", - "Mandaue", - "Mangaldan", - "Mangatarem", - "Mangudadatu", - "Manito", - "Manjuyod", - "Mankayan", - "Manolo Fortich", - "Mansalay", - "Manticao", - "Manukan", - "Mapanas", - "Mapandan", - "Mapun", - "Marabut", - "Maragondon", - "Maragusan", - "Maramag", - "Marantao", - "Marawi", - "Marcos", - "Margosatubig", - "Maria Aurora", - "Maria", - "Maribojoc", - "Marihatag", - "Marilao", - "Maripipi", - "Mariveles", - "Marogong", - "Masantol", - "Masbate City", - "Masinloc", - "Masiu", - "Maslog", - "Mataasnakahoy", - "Matag-ob", - "Matalam", - "Matalom", - "Matanao", - "Matanog", - "Mati", - "Matnog", - "Matuguinao", - "Matungao", - "Mauban", - "Mawab", - "Mayantoc", - "Maydolong", - "Mayorga", - "Mayoyao", - "Medellin", - "Medina", - "Mendez", - "Mercedes", - "Merida", - "Mexico", - "Meycauayan", - "Miagao", - "Midsalip", - "Midsayap", - "Milagros", - "Milaor", - "Mina", - "Minalabac", - "Minalin", - "Minglanilla", - "Moalboal", - "Mobo", - "Mogpog", - "Moises Padilla", - "Molave", - "Moncada", - "Mondragon", - "Monkayo", - "Monreal", - "Montevista", - "Morong", - "Motiong", - "Mulanay", - "Mulondo", - "Munai", - "Muñoz", - "Murcia", - "Mutia", - "Naawan", - "Nabas", - "Nabua", - "Nabunturan", - "Naga", - "Nagbukel", - "Nagcarlan", - "Nagtipunan", - "Naguilian", - "Naic", - "Nampicuan", - "Narra", - "Narvacan", - "Nasipit", - "Nasugbu", - "Natividad", - "Natonin", - "Naujan", - "Naval", - "New Bataan", - "New Corella", - "New Lucena", - "New Washington", - "Norala", - "Northern Kabuntalan", - "Norzagaray", - "Noveleta", - "Nueva Era", - "Nueva Valencia", - "Numancia", - "Nunungan", - "Oas", - "Obando", - "Ocampo", - "Odiongan", - "Old Panamao", - "Olongapo", - "Olutanga", - "Omar", - "Opol", - "Orani", - "Oras", - "Orion", - "Ormoc", - "Oroquieta", - "Oslob", - "Oton", - "Ozamiz", - "Padada", - "Padre Burgos", - "Padre Garcia", - "Paete", - "Pagadian", - "Pagalungan", - "Pagayawan", - "Pagbilao", - "Paglat", - "Pagsanghan", - "Pagsanjan", - "Pagudpud", - "Pakil", - "Palanan", - "Palanas", - "Palapag", - "Palauig", - "Palayan", - "Palimbang", - "Palo", - "Palompon", - "Paluan", - "Pambujan", - "Pamplona", - "Panabo", - "Panaon", - "Panay", - "Pandag", - "Pandami", - "Pandan", - "Pandi", - "Panganiban", - "Pangantucan", - "Pangil", - "Panglao", - "Panglima Estino", - "Panglima Sugala", - "Pangutaran", - "Paniqui", - "Panitan", - "Pantabangan", - "Pantao Ragat", - "Pantar", - "Pantukan", - "Panukulan", - "Paoay", - "Paombong", - "Paracale", - "Paracelis", - "Paranas", - "Parang", - "Pasacao", - "Pasil", - "Passi", - "Pastrana", - "Pasuquin", - "Pata", - "Patikul", - "Patnanungan", - "Patnongon", - "Pavia", - "Payao", - "Peñablanca", - "Peñaranda", - "Peñarrubia", - "Perez", - "Piagapo", - "Piat", - "Picong", - "Piddig", - "Pidigan", - "Pigcawayan", - "Pikit", - "Pila", - "Pilar", - "Pili", - "Pililla", - "Pinabacdao", - "Pinamalayan", - "Pinamungajan", - "Piñan", - "Pinili", - "Pintuyan", - "Pinukpuk", - "Pio Duran", - "Pio V. Corpuz", - "Pitogo", - "Placer", - "Plaridel", - "Pola", - "Polanco", - "Polangui", - "Polillo", - "Polomolok", - "Pontevedra", - "Poona Bayabao", - "Poona Piagapo", - "Porac", - "Poro", - "Pototan", - "Pozorrubio", - "Presentacion", - "President Carlos P. Garcia", - "President Manuel A. Roxas", - "President Quirino", - "President Roxas", - "Prieto Diaz", - "Prosperidad", - "Pualas", - "Pudtol", - "Puerto Galera", - "Puerto Princesa", - "Pugo", - "Pulilan", - "Pulupandan", - "Pura", - "Quezon", - "Quinapondan", - "Quirino", - "Ragay", - "Rajah Buayan", - "Ramon Magsaysay", - "Ramon", - "Ramos", - "Rapu-Rapu", - "Real", - "Reina Mercedes", - "Remedios T. Romualdez", - "Rizal", - "Rodriguez", - "Romblon", - "Ronda", - "Rosales", - "Rosario", - "Roseller Lim", - "Roxas City", - "Roxas", - "Sabangan", - "Sablan", - "Sablayan", - "Sabtang", - "Sadanga", - "Sagada", - "Sagay", - "Sagbayan", - "Sagñay", - "Saguday", - "Saguiaran", - "Saint Bernard", - "Salay", - "Salcedo", - "Sallapadan", - "Salug", - "Salvador Benedicto", - "Salvador", - "Samal", - "Samboan", - "Sampaloc", - "San Agustin", - "San Andres", - "San Antonio", - "San Benito", - "San Carlos", - "San Clemente", - "San Dionisio", - "San Emilio", - "San Enrique", - "San Esteban", - "San Fabian", - "San Felipe", - "San Fernando", - "San Francisco", - "San Gabriel", - "San Guillermo", - "San Ildefonso", - "San Isidro", - "San Jacinto", - "San Joaquin", - "San Jorge", - "San Jose de Buan", - "San Jose de Buenavista", - "San Jose del Monte", - "San Jose", - "San Juan", - "San Julian", - "San Leonardo", - "San Lorenzo Ruiz", - "San Lorenzo", - "San Luis", - "San Manuel", - "San Marcelino", - "San Mariano", - "San Mateo", - "San Miguel", - "San Narciso", - "San Nicolas", - "San Pablo", - "San Pascual", - "San Pedro", - "San Policarpo", - "San Quintin", - "San Rafael", - "San Remigio", - "San Ricardo", - "San Roque", - "San Sebastian", - "San Simon", - "San Teodoro", - "San Vicente", - "Sanchez-Mira", - "Santa Ana", - "Santa Barbara", - "Santa Catalina", - "Santa Cruz", - "Santa Elena", - "Santa Fe", - "Santa Ignacia", - "Santa Josefa", - "Santa Lucia", - "Santa Magdalena", - "Santa Marcela", - "Santa Margarita", - "Santa Maria", - "Santa Monica", - "Santa Praxedes", - "Santa Rita", - "Santa Rosa", - "Santa Teresita", - "Santa", - "Santander", - "Santiago", - "Santo Domingo", - "Santo Niño", - "Santo Tomas", - "Santol", - "Sapa-Sapa", - "Sapad", - "Sapang Dalaga", - "Sapian", - "Sara", - "Sarangani", - "Sariaya", - "Sarrat", - "Sasmuan", - "Sebaste", - "Senator Ninoy Aquino", - "Sergio Osmeña Sr.", - "Sevilla", - "Shariff Aguak", - "Shariff Saydona Mustapha", - "Siasi", - "Siaton", - "Siay", - "Siayan", - "Sibagat", - "Sibalom", - "Sibonga", - "Sibuco", - "Sibulan", - "Sibunag", - "Sibutad", - "Sibutu", - "Sierra Bullones", - "Sigay", - "Sigma", - "Sikatuna", - "Silago", - "Silang", - "Silay", - "Silvino Lobos", - "Simunul", - "Sinacaban", - "Sinait", - "Sindangan", - "Siniloan", - "Siocon", - "Sipalay", - "Sipocot", - "Siquijor", - "Sirawai", - "Siruma", - "Sison", - "Sitangkai", - "Socorro", - "Sofronio Española", - "Sogod", - "Solana", - "Solano", - "Solsona", - "Sominot", - "Sorsogon City", - "South Ubian", - "South Upi", - "Sual", - "Subic", - "Sudipen", - "Sugbongcogon", - "Sugpon", - "Sulat", - "Sulop", - "Sultan Dumalondong", - "Sultan Kudarat", - "Sultan Mastura", - "Sultan Naga Dimaporo", - "Sultan sa Barongis", - "Sultan Sumagka", - "Sumilao", - "Sumisip", - "Surallah", - "Surigao City", - "Suyo", - "T'Boli", - "Taal", - "Tabaco", - "Tabango", - "Tabina", - "Tabogon", - "Tabontabon", - "Tabuan-Lasa", - "Tabuelan", - "Tabuk", - "Tacloban", - "Tacurong", - "Tadian", - "Taft", - "Tagana-an", - "Tagapul-an", - "Tagaytay", - "Tagbilaran", - "Tagbina", - "Tagkawayan", - "Tago", - "Tagoloan II", - "Tagoloan", - "Tagudin", - "Tagum", - "Talacogon", - "Talaingod", - "Talakag", - "Talalora", - "Talavera", - "Talayan", - "Talibon", - "Talipao", - "Talisay", - "Talisayan", - "Talugtug", - "Talusan", - "Tambulig", - "Tampakan", - "Tamparan", - "Tampilisan", - "Tanauan", - "Tanay", - "Tandag", - "Tandubas", - "Tangalan", - "Tangcal", - "Tangub", - "Tanjay", - "Tantangan", - "Tanudan", - "Tanza", - "Tapaz", - "Tapul", - "Taraka", - "Tarangnan", - "Tarlac City", - "Tarragona", - "Tayabas", - "Tayasan", - "Taysan", - "Taytay", - "Tayug", - "Tayum", - "Teresa", - "Ternate", - "Tiaong", - "Tibiao", - "Tigaon", - "Tigbao", - "Tigbauan", - "Tinambac", - "Tineg", - "Tinglayan", - "Tingloy", - "Tinoc", - "Tipo-Tipo", - "Titay", - "Tiwi", - "Tobias Fornier", - "Toboso", - "Toledo", - "Tolosa", - "Tomas Oppus", - "Torrijos", - "Trece Martires", - "Trento", - "Trinidad", - "Tuao", - "Tuba", - "Tubajon", - "Tubao", - "Tubaran", - "Tubay", - "Tubigon", - "Tublay", - "Tubo", - "Tubod", - "Tubungan", - "Tuburan", - "Tudela", - "Tugaya", - "Tuguegarao", - "Tukuran", - "Tulunan", - "Tumauini", - "Tunga", - "Tungawan", - "Tupi", - "Turtle Islands", - "Tuy", - "Ubay", - "Umingan", - "Ungkaya Pukan", - "Unisan", - "Upi", - "Urbiztondo", - "Urdaneta", - "Uson", - "Uyugan", - "Valderrama", - "Valencia", - "Valladolid", - "Vallehermoso", - "Veruela", - "Victoria", - "Victorias", - "Viga", - "Vigan", - "Villaba", - "Villanueva", - "Villareal", - "Villasis", - "Villaverde", - "Villaviciosa", - "Vincenzo A. Sagun", - "Vintar", - "Vinzons", - "Virac", - "Wao", - "Zamboanga City", - "Zamboanguita", - "Zaragoza", - "Zarraga", - "Zumarraga", - ) - luzon_provinces = ( - "Abra", - "Albay", - "Apayao", - "Aurora", - "Bataan", - "Batanes", - "Batangas", - "Benguet", - "Bulacan", - "Cagayan", - "Camarines Norte", - "Camarines Sur", - "Catanduanes", - "Cavite", - "Ifugao", - "Ilocos Norte", - "Ilocos Sur", - "Isabela", - "Kalinga", - "La Union", - "Laguna", - "Marinduque", - "Masbate", - "Mountain Province", - "Nueva Ecija", - "Nueva Vizcaya", - "Occidental Mindoro", - "Oriental Mindoro", - "Palawan", - "Pampanga", - "Pangasinan", - "Quezon", - "Quirino", - "Rizal", - "Romblon", - "Sorsogon", - "Tarlac", - "Zambales", - ) - visayas_provinces = ( - "Aklan", - "Antique", - "Biliran", - "Bohol", - "Capiz", - "Cebu", - "Eastern Samar", - "Guimaras", - "Iloilo", - "Leyte", - "Negros Occidental", - "Negros Oriental", - "Northern Samar", - "Samar", - "Siquijor", - "Southern Leyte", - ) - mindanao_provinces = ( - "Agusan del Norte", - "Agusan del Sur", - "Basilan", - "Bukidnon", - "Camiguin", - "Compostela Valley", - "Cotabato", - "Davao del Norte", - "Davao del Sur", - "Davao Occidental", - "Davao Oriental", - "Dinagat Islands", - "Lanao del Norte", - "Lanao del Sur", - "Maguindanao", - "Misamis Occidental", - "Misamis Oriental", - "Sarangani", - "South Cotabato", - "Sultan Kudarat", - "Sulu", - "Surigao del Norte", - "Surigao del Sur", - "Tawi-Tawi", - "Zamboanga del Norte", - "Zamboanga del Sur", - "Zamboanga Sibugay", - ) - provinces = luzon_provinces + visayas_provinces + mindanao_provinces - - partitioned_building_number_formats = ( - "{{standalone_building_number}}?", - "{{standalone_building_number}} ?", - "{{standalone_building_number}}-?", - "{{standalone_building_number}} Unit ?", - ) - building_unit_number_formats = ( - "Unit {{floor_unit_number}}", - "Room {{floor_unit_number}}", - "{{floor_number}}F", - "{{ordinal_floor_number}} Floor", - ) - building_name_formats = ( - "{{last_name}} {{building_name_suffix}}", - "{{random_object_name}} {{building_name_suffix}}", - ) - building_name_suffixes = ( - "Apartment", - "Apartments", - "Building", - "Building %", - "Building Tower %", - "Condominiums", - "Condominiums %", - "Condominiums Tower %", - "Place", - "Place %", - "Place Tower %", - "Residences", - "Residences %", - "Residences Tower %", - "Suites", - "Suites %", - "Suites Tower %", - "Tower", - "Towers", - "Towers %", - ) - subdivision_unit_number_formats = ( - "B{{subdivision_block_number}} L{{subdivision_lot_number}}", - "Block {{subdivision_block_number}} Lot {{subdivision_lot_number}}", - ) - subdivision_name_formats = ( - "{{last_name}} {{subdivision_name_suffix}}", - "{{random_object_name}} {{subdivision_name_suffix}}", - ) - subdivision_name_suffixes = ( - "Cove", - "Cove %", - "Cove Phase %", - "Estates", - "Estates %", - "Estates Phase %", - "Grove", - "Grove %", - "Grove Phase %", - "Homes", - "Homes %", - "Homes Phase %", - "Subdivision", - "Subdivision %", - "Subdivision Phase %", - "Village", - "Village %", - "Village Phase %", - ) - floor_numbers = OrderedDict( - [(str(x), 0.08) for x in range(2, 5)] # Floors 2 to 4, 24% of the time - + [(str(x), 0.32356832089420257 / x) for x in range(5, 13)] # Floors 5 to 12, 33% of the time - + [(str(x), 0.30341265418486174 / (x - 1)) for x in range(14, 30)] # Floors 14 to 29, 25% of the time - + [(str(x), 0.30096338222652870 / (x - 1)) for x in range(30, 50)] # Floors 30 to 49, 16% of the time - + [(str(x), 0.04570476167856688 / (x - 1)) for x in range(50, 75)] # Floors 50 to 74, 1.9% of the time - + [(str(x), 0.003415677066138734 / (x - 1)) for x in range(75, 100)] # Floors 75 to 99, 0.1% of the time - ) - - street_suffixes = OrderedDict( - [ - ("Avenue", 0.12), - ("Avenue Extension", 0.01), - ("Boulevard", 0.05), - ("Boulevard Extension", 0.008), - ("Circle", 0.002), - ("Drive", 0.15), - ("Drive Extension", 0.03), - ("Expressway", 0.01), - ("Extension", 0.05), - ("Highway", 0.02), - ("Road", 0.2), - ("Road Extension", 0.04), - ("Service Road", 0.01), - ("Street", 0.3), - ] - ) - street_name_formats = ( - "{{last_name}} {{street_suffix}}", - "{{ordinal_street_number}} {{street_suffix}}", - "{{gemstone_name}} {{street_suffix}}", - "{{mountain_name}} {{street_suffix}}", - "{{plant_name}} {{street_suffix}}", - "{{space_object_name}} {{street_suffix}}", - ) - street_address_formats = ( - "{{standalone_building_number}} {{street_name}}", - "{{partitioned_building_number}} {{street_name}}", - "{{subdivision_unit_number}} {{subdivision_name}}, {{street_name}}", - "{{subdivision_unit_number}} {{street_name}}, {{subdivision_name}}", - "{{standalone_building_number}} {{street_name}}, {{subdivision_name}}", - "{{building_unit_number}} {{building_name}}, {{standalone_building_number}} {{street_name}}", - ) - - metro_manila_address_formats = ("{{street_address}}, {{metro_manila_lgu}}, {{metro_manila_postcode}} Metro Manila",) - luzon_province_address_formats = ( - "{{street_address}}, {{province_lgu}}, {{luzon_province_postcode}} {{luzon_province}}", - ) - visayas_province_address_formats = ( - "{{street_address}}, {{province_lgu}}, {{visayas_province_postcode}} {{visayas_province}}", - ) - mindanao_province_address_formats = ( - "{{street_address}}, {{province_lgu}}, {{mindanao_province_postcode}} {{mindanao_province}}", - ) - address_formats = OrderedDict( - [ - *[(fmt, 0.127524) for fmt in metro_manila_address_formats], - *[(fmt, 0.485317) for fmt in luzon_province_address_formats], - *[(fmt, 0.148142) for fmt in visayas_province_address_formats], - *[(fmt, 0.239017) for fmt in mindanao_province_address_formats], - ] - ) - - def _ordinal_string(self, num: Union[int, str]) -> str: - if isinstance(num, str): - num = int(num) - suffix = ["th", "st", "nd", "rd", "th"][min(num % 10, 4)] - if 11 <= num % 100 <= 13: - suffix = "th" - return str(num) + suffix - - def _create_postcode(self, postcodes: Sequence[int]) -> str: - return f"{self.random_element(postcodes):04d}" - - def _create_address(self, address_formats: ElementsType[str]) -> str: - return self.generator.parse(self.random_element(address_formats)) - - def metro_manila_postcode(self) -> str: - return self._create_postcode(self.metro_manila_postcodes) - - def luzon_province_postcode(self) -> str: - return self._create_postcode(self.luzon_province_postcodes) - - def visayas_province_postcode(self) -> str: - return self._create_postcode(self.visayas_province_postcodes) - - def mindanao_province_postcode(self) -> str: - return self._create_postcode(self.mindanao_province_postcodes) - - def postcode(self) -> str: - return self._create_postcode(self.postcodes) - - def luzon_province(self) -> str: - return self.random_element(self.luzon_provinces) - - def visayas_province(self) -> str: - return self.random_element(self.visayas_provinces) - - def mindanao_province(self) -> str: - return self.random_element(self.mindanao_provinces) - - def administrative_unit(self) -> str: - return self.random_element(self.provinces) - - province = administrative_unit - - def standalone_building_number(self) -> str: - return str(self.random_int(min=1)) - - def partitioned_building_number(self) -> str: - pattern: str = self.lexify( - self.random_element(self.partitioned_building_number_formats), - letters=ascii_uppercase[:10], - ) - return self.generator.parse(pattern) - - def building_number(self) -> str: - if self.random_int() % 2 == 0: - return self.standalone_building_number() - else: - return self.partitioned_building_number() - - def ordinal_street_number(self) -> str: - return self._ordinal_string(self.random_int(1, 99)) - - def floor_number(self) -> str: - return self.random_element(self.floor_numbers) - - def ordinal_floor_number(self) -> str: - return self._ordinal_string(self.floor_number()) - - def floor_unit_number(self) -> str: - return f"{self.floor_number()}{self.random_int(1, 40):02d}" - - def building_unit_number(self) -> str: - return self.generator.parse(self.random_element(self.building_unit_number_formats)) - - def building_name(self) -> str: - return self.generator.parse(self.random_element(self.building_name_formats)) - - def building_name_suffix(self) -> str: - return self.numerify(self.random_element(self.building_name_suffixes)) - - def subdivision_block_number(self) -> str: - return f"{self.random_int(1, 25):02d}" - - def subdivision_lot_number(self) -> str: - return f"{self.random_int(1, 99):02d}" - - def subdivision_unit_number(self) -> str: - return self.generator.parse(self.random_element(self.subdivision_unit_number_formats)) - - def subdivision_name(self) -> str: - return self.generator.parse(self.random_element(self.subdivision_name_formats)) - - def subdivision_name_suffix(self) -> str: - return self.numerify(self.random_element(self.subdivision_name_suffixes)) - - def metro_manila_lgu(self) -> str: - return self.random_element(self.metro_manila_lgus) - - def province_lgu(self) -> str: - return self.random_element(self.province_lgus) - - def metro_manila_address(self) -> str: - return self._create_address(self.metro_manila_address_formats) - - def luzon_province_address(self) -> str: - return self._create_address(self.luzon_province_address_formats) - - def visayas_province_address(self) -> str: - return self._create_address(self.visayas_province_address_formats) - - def mindanao_province_address(self) -> str: - return self._create_address(self.mindanao_province_address_formats) - - def address(self) -> str: - return self._create_address(self.address_formats) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0205305e95fad3fed3223b6db7dcc21bc6ac2a5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34930 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_US/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/en_US/__init__.py deleted file mode 100644 index 85bbb94..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/en_US/__init__.py +++ /dev/null @@ -1,599 +0,0 @@ -from collections import OrderedDict -from typing import Optional, Tuple - -from ..en import Provider as AddressProvider - - -class Provider(AddressProvider): - city_prefixes = ("North", "East", "West", "South", "New", "Lake", "Port") - - city_suffixes = ( - "town", - "ton", - "land", - "ville", - "berg", - "burgh", - "borough", - "bury", - "view", - "port", - "mouth", - "stad", - "furt", - "chester", - "mouth", - "fort", - "haven", - "side", - "shire", - ) - - building_number_formats = ("#####", "####", "###") - - street_suffixes = ( - "Alley", - "Avenue", - "Branch", - "Bridge", - "Brook", - "Brooks", - "Burg", - "Burgs", - "Bypass", - "Camp", - "Canyon", - "Cape", - "Causeway", - "Center", - "Centers", - "Circle", - "Circles", - "Cliff", - "Cliffs", - "Club", - "Common", - "Corner", - "Corners", - "Course", - "Court", - "Courts", - "Cove", - "Coves", - "Creek", - "Crescent", - "Crest", - "Crossing", - "Crossroad", - "Curve", - "Dale", - "Dam", - "Divide", - "Drive", - "Drive", - "Drives", - "Estate", - "Estates", - "Expressway", - "Extension", - "Extensions", - "Fall", - "Falls", - "Ferry", - "Field", - "Fields", - "Flat", - "Flats", - "Ford", - "Fords", - "Forest", - "Forge", - "Forges", - "Fork", - "Forks", - "Fort", - "Freeway", - "Garden", - "Gardens", - "Gateway", - "Glen", - "Glens", - "Green", - "Greens", - "Grove", - "Groves", - "Harbor", - "Harbors", - "Haven", - "Heights", - "Highway", - "Hill", - "Hills", - "Hollow", - "Inlet", - "Inlet", - "Island", - "Island", - "Islands", - "Islands", - "Isle", - "Isle", - "Junction", - "Junctions", - "Key", - "Keys", - "Knoll", - "Knolls", - "Lake", - "Lakes", - "Land", - "Landing", - "Lane", - "Light", - "Lights", - "Loaf", - "Lock", - "Locks", - "Locks", - "Lodge", - "Lodge", - "Loop", - "Mall", - "Manor", - "Manors", - "Meadow", - "Meadows", - "Mews", - "Mill", - "Mills", - "Mission", - "Mission", - "Motorway", - "Mount", - "Mountain", - "Mountain", - "Mountains", - "Mountains", - "Neck", - "Orchard", - "Oval", - "Overpass", - "Park", - "Parks", - "Parkway", - "Parkways", - "Pass", - "Passage", - "Path", - "Pike", - "Pine", - "Pines", - "Place", - "Plain", - "Plains", - "Plains", - "Plaza", - "Plaza", - "Point", - "Points", - "Port", - "Port", - "Ports", - "Ports", - "Prairie", - "Prairie", - "Radial", - "Ramp", - "Ranch", - "Rapid", - "Rapids", - "Rest", - "Ridge", - "Ridges", - "River", - "Road", - "Road", - "Roads", - "Roads", - "Route", - "Row", - "Rue", - "Run", - "Shoal", - "Shoals", - "Shore", - "Shores", - "Skyway", - "Spring", - "Springs", - "Springs", - "Spur", - "Spurs", - "Square", - "Square", - "Squares", - "Squares", - "Station", - "Station", - "Stravenue", - "Stravenue", - "Stream", - "Stream", - "Street", - "Street", - "Streets", - "Summit", - "Summit", - "Terrace", - "Throughway", - "Trace", - "Track", - "Trafficway", - "Trail", - "Trail", - "Tunnel", - "Tunnel", - "Turnpike", - "Turnpike", - "Underpass", - "Union", - "Unions", - "Valley", - "Valleys", - "Via", - "Viaduct", - "View", - "Views", - "Village", - "Village", - "Villages", - "Ville", - "Vista", - "Vista", - "Walk", - "Walks", - "Wall", - "Way", - "Ways", - "Well", - "Wells", - ) - - postcode_formats = ("#####", "#####-####") - - states = ( - "Alabama", - "Alaska", - "Arizona", - "Arkansas", - "California", - "Colorado", - "Connecticut", - "Delaware", - "Florida", - "Georgia", - "Hawaii", - "Idaho", - "Illinois", - "Indiana", - "Iowa", - "Kansas", - "Kentucky", - "Louisiana", - "Maine", - "Maryland", - "Massachusetts", - "Michigan", - "Minnesota", - "Mississippi", - "Missouri", - "Montana", - "Nebraska", - "Nevada", - "New Hampshire", - "New Jersey", - "New Mexico", - "New York", - "North Carolina", - "North Dakota", - "Ohio", - "Oklahoma", - "Oregon", - "Pennsylvania", - "Rhode Island", - "South Carolina", - "South Dakota", - "Tennessee", - "Texas", - "Utah", - "Vermont", - "Virginia", - "Washington", - "West Virginia", - "Wisconsin", - "Wyoming", - ) - states_abbr = ( - "AL", - "AK", - "AZ", - "AR", - "CA", - "CO", - "CT", - "DE", - "DC", - "FL", - "GA", - "HI", - "ID", - "IL", - "IN", - "IA", - "KS", - "KY", - "LA", - "ME", - "MD", - "MA", - "MI", - "MN", - "MS", - "MO", - "MT", - "NE", - "NV", - "NH", - "NJ", - "NM", - "NY", - "NC", - "ND", - "OH", - "OK", - "OR", - "PA", - "RI", - "SC", - "SD", - "TN", - "TX", - "UT", - "VT", - "VA", - "WA", - "WV", - "WI", - "WY", - ) - - states_postcode = { - "AL": (35004, 36925), - "AK": (99501, 99950), - "AZ": (85001, 86556), - "AR": (71601, 72959), - "CA": (90001, 96162), - "CO": (80001, 81658), - "CT": (6001, 6389), - "DE": (19701, 19980), - "DC": (20001, 20039), - "FL": (32004, 34997), - "GA": (30001, 31999), - "HI": (96701, 96898), - "ID": (83201, 83876), - "IL": (60001, 62999), - "IN": (46001, 47997), - "IA": (50001, 52809), - "KS": (66002, 67954), - "KY": (40003, 42788), - "LA": (70001, 71232), - "ME": (3901, 4992), - "MD": (20812, 21930), - "MA": (1001, 2791), - "MI": (48001, 49971), - "MN": (55001, 56763), - "MS": (38601, 39776), - "MO": (63001, 65899), - "MT": (59001, 59937), - "NE": (68001, 68118), - "NV": (88901, 89883), - "NH": (3031, 3897), - "NJ": (7001, 8989), - "NM": (87001, 88441), - "NY": (10001, 14905), - "NC": (27006, 28909), - "ND": (58001, 58856), - "OH": (43001, 45999), - "OK": (73001, 73199), - "OR": (97001, 97920), - "PA": (15001, 19640), - "RI": (2801, 2940), - "SC": (29001, 29948), - "SD": (57001, 57799), - "TN": (37010, 38589), - "TX": (75503, 79999), - "UT": (84001, 84784), - "VT": (5001, 5495), - "VA": (22001, 24658), - "WA": (98001, 99403), - "WV": (24701, 26886), - "WI": (53001, 54990), - "WY": (82001, 83128), - # Territories & freely-associated states - # incomplete ranges with accurate subsets - https://www.geonames.org/postalcode-search.html - "AS": (96799, 96799), - "FM": (96941, 96944), - "GU": (96910, 96932), - "MH": (96960, 96970), - "MP": (96950, 96952), - "PW": (96940, 96940), - "PR": (600, 799), - "VI": (801, 805), - } - - territories_abbr = ( - "AS", - "GU", - "MP", - "PR", - "VI", - ) - - # Freely-associated states (sovereign states; members of COFA) - # https://en.wikipedia.org/wiki/Compact_of_Free_Association - freely_associated_states_abbr = ( - "FM", - "MH", - "PW", - ) - - known_usps_abbr = states_abbr + territories_abbr + freely_associated_states_abbr - - military_state_abbr = ("AE", "AA", "AP") - - military_ship_prefix = ("USS", "USNS", "USNV", "USCGC") - - military_apo_format = "PSC ####, Box ####" - - military_dpo_format = "Unit #### Box ####" - - city_formats = ( - "{{city_prefix}} {{first_name}}{{city_suffix}}", - "{{city_prefix}} {{first_name}}", - "{{first_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - ) - - street_name_formats = ( - "{{first_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - ) - - street_address_formats = ( - "{{building_number}} {{street_name}}", - "{{building_number}} {{street_name}} {{secondary_address}}", - ) - - address_formats = OrderedDict( - ( - ("{{street_address}}\n{{city}}, {{state_abbr}} {{postcode}}", 25.0), - # military address formatting. - ("{{military_apo}}\nAPO {{military_state}} {{postcode}}", 1.0), - ( - "{{military_ship}} {{last_name}}\nFPO {{military_state}} {{postcode}}", - 1.0, - ), - ("{{military_dpo}}\nDPO {{military_state}} {{postcode}}", 1.0), - ) - ) - - secondary_address_formats = ("Apt. ###", "Suite ###") - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def state_abbr( - self, - include_territories: bool = True, - include_freely_associated_states: bool = True, - ) -> str: - """ - :returns: A random two-letter USPS postal code - - By default, the resulting code may abbreviate any of the fifty states, - five US territories, or three freely-associating sovereign states. - - :param include_territories: If True, territories will be included. - If False, US territories will be excluded. - :param include_freely_associated_states: If True, freely-associated states will be included. - If False, sovereign states in free association with the US will be excluded. - """ - abbreviations: Tuple[str, ...] = self.states_abbr - if include_territories: - abbreviations += self.territories_abbr - if include_freely_associated_states: - abbreviations += self.freely_associated_states_abbr - return self.random_element(abbreviations) - - def postcode(self) -> str: - return "%05d" % self.generator.random.randint(501, 99950) - - def zipcode_plus4(self) -> str: - return "%s-%04d" % (self.zipcode(), self.generator.random.randint(1, 9999)) - - def postcode_in_state(self, state_abbr: Optional[str] = None) -> str: - """ - :returns: A random postcode within the provided state abbreviation - - :param state_abbr: A state abbreviation - """ - if state_abbr is None: - state_abbr = self.random_element(self.states_abbr) - - if state_abbr in self.known_usps_abbr: - postcode = "%d" % ( - self.generator.random.randint( - self.states_postcode[state_abbr][0], - self.states_postcode[state_abbr][1], - ) - ) - - # zero left pad up until desired length (some have length 3 or 4) - target_postcode_len = 5 - current_postcode_len = len(postcode) - if current_postcode_len < target_postcode_len: - pad = target_postcode_len - current_postcode_len - postcode = f"{'0'*pad}{postcode}" - - return postcode - - else: - raise Exception("State Abbreviation not found in list") - - def military_ship(self) -> str: - """ - :example: 'USS' - """ - return self.random_element(self.military_ship_prefix) - - def military_state(self) -> str: - """ - :example: 'APO' - """ - return self.random_element(self.military_state_abbr) - - def military_apo(self) -> str: - """ - :example: 'PSC 5394 Box 3492 - """ - return self.numerify(self.military_apo_format) - - def military_dpo(self) -> str: - """ - :example: 'Unit 3333 Box 9342' - """ - return self.numerify(self.military_dpo_format) - - # Aliases - def zipcode(self) -> str: - return self.postcode() - - def zipcode_in_state(self, state_abbr: Optional[str] = None) -> str: - return self.postcode_in_state(state_abbr) - - def postalcode(self) -> str: - return self.postcode() - - def postalcode_in_state(self, state_abbr: Optional[str] = None) -> str: - return self.postcode_in_state(state_abbr) - - def postalcode_plus4(self) -> str: - return self.zipcode_plus4() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/en_US/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/en_US/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index bbd9160a142a3408d4dcfaeefa3632b0f00fbe91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11926 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/es/__init__.py deleted file mode 100644 index 726975c..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/es/__init__.py +++ /dev/null @@ -1,200 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - # List of Countries https://www.un.org/es/members/ - countries = ( - "Afganistán", - "Albania", - "Alemania", - "Andorra", - "Angola", - "Antigua y Barbuda", - "Arabia Saudita", - "Argelia", - "Argentina", - "Armenia", - "Australia", - "Austria", - "Azerbaiyán", - "Bahamas", - "Bahrein", - "Bangladesh", - "Barbados", - "Belarús", - "Bélgica", - "Belice", - "Benin", - "Bhután", - "Bolivia", - "Bosnia y Herzegovina", - "Botswana", - "Brasil", - "Brunei Darussalam", - "Bulgaria", - "Burkina Faso", - "Burundi", - "Cabo Verde", - "Camboya", - "Camerún", - "Canadá", - "Chad", - "Chile", - "China", - "Chipre", - "Colombia", - "Comoras", - "Congo", - "Costa Rica", - "Côte d'Ivoire", - "Croacia", - "Cuba", - "Dinamarca", - "Djibouti", - "Dominicana", - "Ecuador", - "Egipto", - "El Salvador", - "Emiratos Árabes Unidos", - "Eritrea", - "Eslovaquia", - "Eslovenia", - "España", - "Estados Unidos de América", - "Estonia", - "Etiopía", - "Federación de Rusia", - "Fiji", - "Filipinas", - "Finlandia", - "Francia", - "Gabón", - "Gambia", - "Georgia", - "Ghana", - "Granada", - "Grecia", - "Guatemala", - "Guinea", - "Guinea Bissau", - "Guinea Ecuatorial", - "Guyana", - "Haití", - "Honduras", - "Hungría", - "India", - "Indonesia", - "Irán", - "Iraq", - "Irlanda", - "Islandia", - "Islas Marshall", - "Islas Salomón", - "Israel", - "Italia", - "Jamaica", - "Japón", - "Jordania", - "Kazajstán", - "Kenya", - "Kirguistán", - "Kiribati", - "Kuwait", - "Lesotho", - "Letonia", - "Líbano", - "Liberia", - "Libia", - "Liechtenstein", - "Lituania", - "Luxemburgo", - "Madagascar", - "Malasia", - "Malawi", - "Maldivas", - "Mali", - "Malta", - "Marruecos", - "Mauricio", - "Mauritania", - "México", - "Micronesia", - "Mónaco", - "Mongolia", - "Montenegro", - "Mozambique", - "Myanmar", - "Namibia", - "Nauru", - "Nicaragua", - "Niger", - "Nigeria", - "Noruega", - "Nueva Zelandia", - "Omán", - "Países Bajos", - "Pakistán", - "Palau", - "Panamá", - "Papua Nueva Guinea", - "Paraguay", - "Perú", - "Polonia", - "Portugal", - "Qatar", - "Reino Unido de Gran Bretaña e Irlanda del Norte", - "República Árabe Siria", - "República Centroafricana", - "República Checa", - "República de Corea", - "República de Macedonia del Norte", - "República de Moldova", - "República Democrática del Congo", - "República Democrática Popular Lao", - "República Dominicana", - "República Federal Democrática de Nepal", - "República Popular Democrática de Corea", - "República Unida de Tanzanía", - "Rumania", - "Rwanda", - "Saint Kitts y Nevis", - "Samoa", - "San Marino", - "Santa Lucía", - "Santo Tomé y Príncipe", - "San Vicente y las Granadinas", - "Senegal", - "Serbia", - "Seychelles", - "Sierra Leona", - "Singapur", - "Somalia", - "Sri Lanka", - "Sudáfrica", - "Sudán", - "Sudán del Sur", - "Suecia", - "Suiza", - "Suriname", - "Swazilandia", - "Tailandia", - "Tayikistán", - "Timor-Leste", - "Togo", - "Tonga", - "Trinidad y Tabago", - "Túnez", - "Turkmenistán", - "Turquía", - "Tuvalu", - "Ucrania", - "Uganda", - "Uruguay", - "Uzbekistán", - "Vanuatu", - "Venezuela", - "Vietman", - "Yemen", - "Zambia", - "Zimbabwe", - ) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/es/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 228f30246ef4cdf096def71e61992d42c0c5f01d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2938 zcmZWr&5t8T6}M+>x9#0o7?OZMAT>e?8KkU%NI6AFw&!ELGh@uyGg9Vay>{2OYo@!) zQ{ClR_XP!3g8v}r97kvmC^_YZeB?hUi4!MokrpmF@q5)?!fbqSy{dZe)%*Ot{`<~O zyTZRO+E*X$Rx1B=o6TQ+v%Y#4#HW?85?13%QoY=&R<?CcgF@DXFxh5IP{aa(47+P6=h!1EGaXZM#Ql6jLa& zxoz^h6spWLVSi7=q}N|=HtV}Mk~3I~V>uJH-ovA*@tARLN+)|NmP<*++dY-RA~^Cy z=t4w@BMfc!RG!@us76myCgWnar%fuPzfam^8O4-<$;1(9D0$d3`WkZnA!Q2o8t{g) zX!j{l{)Nz?uwI{%K&{A`3tGV3(xg6~3D=+5T7OQVt@r0LhRIm?bu0@lY_qRol_0#( zqY?#^z@d-}yrHt3{4@A#9>Kx>`iorn;m-$4B_ZhbwW1m1YJC$R?)%W1kVbHt`&Tkh zCYQFouM(L;0cYr7W)M|v8wZhG&Q@!7Kr)C$W&0VQ?7nbq6kc}yV-Koa)nZenR5j- z?!hM{^Yu&He4^6OAZgB_Cnk+F9J2L+GqHt5r2?K927!U*;;#)f-B@p+*$*UZkd+P< zkC@8*Q_|U-;@IW9JVKUK;`|$AnglEv@JpVi;oHtLoml%!OpkSql zG;^zhE9J(Zk4}+PG>-L#lsJ#-L%e2eYlz5d0v6i(P)33|c!4f&h?Wr%pmAu#lKe}6 z6ldI}`L_wuY<6JWh}JJN^ihwlfMzXsa=i(AeFW!?>zxsb3Npp_MzjF%mMY8g1OAsL zteol*V~h1hfD9xUmrCa*LTT22M>*i@mw4g~Sx{x~aU*f%`#mjkZcktMo4UhQ?8A#( zxYj=ti}jZQAeA=F?~hRxWPa!r{_n02vj%}W=2;w-JeieP|CRBotbhhH_kAkFnZq_ zlT35}Smt?#K{gaiiTN<5L{ZTmBeUocq}x1%YHTqsPRtCNTvGW!`4d3L9b`v9Cg9~l z6hCIc3ye?n11=bJN_=z>>y5cd81BZH*xWc{v6{_A9E+@YIFk&4z>O9VK*F5zcvF#lY+IEZrF)FE3*y3CECpfN_L9E^KY006O&vdLLgj6R1L{L-;zOfFk8=nP5tb z!u9C{GoHU*98NkU$H|T1j5H=@i9B2He1=AXfsJ!~PXV{Rb8P?(D`&`g5s24~?Ojlc zkpcX;Kp+bPXt3Ue6ge_$>mLg|WE+>|oN8XmB%t6{4EJibIi0e{)2VGwr-=$p%=E+Q z^u|!UxoORmK?_Qe-Bn&8=asLE&Riv;lLN3tLeD#s*91Nsuf#0xBn*s;%_dNJ=kZdc z%T6qV&SC|WPd|A4t6z6AnTz)qG`prqWSwVpEp!J$?$a~tP#9{FWgT2irwC>~ojzWy z+-IiytHF|t$IXk%SGC^uZsU`I{v)>Ta=5o`OUizyTPk|}QLF#JOpfyfsIQwJm45$5 k{|Q_E%FVuyzpu8d)#^Vgzxa1!f4kcF^Y8yt;nm6g7rfyW;s5{u diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_AR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/es_AR/__init__.py deleted file mode 100644 index 4ac425b..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/es_AR/__init__.py +++ /dev/null @@ -1,231 +0,0 @@ -from collections import OrderedDict -from typing import List, Tuple - -from ..es import Provider as AddressProvider - - -class Provider(AddressProvider): - provinces = { - "CABA": "Ciudad Autónoma de Buenos Aires", - "BA": "Buenos Aires", - "CA": "Catamarca", - "CH": "Chaco", - "CT": "Chubut", - "CB": "Córdoba", - "CR": "Corrientes", - "ER": "Entre Ríos", - "FO": "Formosa", - "JY": "Jujuy", - "LP": "La Pampa", - "LR": "La Rioja", - "MZ": "Mendoza", - "MI": "Misiones", - "NQN": "Neuquén", - "RN": "Río Negro", - "SA": "Salta", - "SJ": "San Juan", - "SL": "San Luis", - "SC": "Santa Cruz", - "SF": "Santa Fe", - "SE": "Santiago del Estero", - "TF": "Tierra del Fuego", - "TU": "Tucumán", - } - - municipalities: List[Tuple[str, str, str]] = [ - ("1004", "Constitución", "CABA"), - ("1900", "La Plata", "BA"), - ("7600", "Mar del Plata", "BA"), - ("8000", "Bahía Blanca", "BA"), - ("4700", "San Ferando del Valle de Catamarca", "CA"), - ("3500", "Resistencia", "CH"), - ("9103", "Rawson", "CT"), - ("9000", "Comodoro Rivadavia", "CT"), - ("5000", "Córdoba", "CB"), - ("3400", "Corrientes", "CR"), - ("3100", "Paraná", "ER"), - ("3600", "Formosa", "FO"), - ("4600", "San Salvador de Jujuy", "JY"), - ("6300", "Santa Rosa", "LP"), - ("5300", "La Rioja", "LR"), - ("5360", "Chilecito", "LR"), - ("5500", "Mendoza", "MZ"), - ("3300", "Posadas", "MI"), - ("8300", "Neuquén", "NQN"), - ("8500", "Viedma", "RN"), - ("4400", "Salta", "SA"), - ("5400", "San Juan", "SJ"), - ("5700", "San Luis", "SL"), - ("5881", "Merlo", "SL"), - ("9400", "Río Gallegos", "SC"), - ("3000", "Santa Fe", "SF"), - ("2000", "Rosario", "SF"), - ("4200", "Santiago del Estero", "SE"), - ("9410", "Ushuaia", "TF"), - ("4000", "San Miguel de Tucumán", "TU"), - ] - - street_prefixes = OrderedDict( - [ - ("Calle", 0.2), - ("Avenida", 0.2), - ("Av.", 0.2), - ("Diagonal", 0.2), - ("Diag.", 0.05), - ("Camino", 0.05), - ("Boulevard", 0.05), - ("Blv.", 0.05), - ] - ) - street_suffixes = ["A", "B", "Bis"] - - street_proceres = ( - "San Martin", - "Belgrano", - "Saavedra", - "Rivadavia", - "Güemes", - "G. Brown", - "J.B. Alberdi", - "J.M. de Rosas", - "J.J. Castelli", - "Mitre", - "Alem", - "Alvear", - "Malvinas Argentinas", - "Pte. Perón", - "Omar Nuñez", - ) - street_name_formats = OrderedDict( - [ - ("{{street_prefix}} %", 0.2), - ("{{street_prefix}} {{street_municipality}}", 0.2), - ("{{street_prefix}} {{street_province}}", 0.2), - ("{{street_prefix}} {{street_procer}}", 0.2), - ("{{street_prefix}} 1## {{street_suffix}}", 0.02), - ] - ) - building_number_formats = OrderedDict( - [ - ("%%", 0.2), - ("%%#", 0.2), - ("%#%", 0.2), - ("%#%#", 0.2), - ] - ) - secondary_address_formats = [ - "Piso % Dto. %", - "Dto. %", - "Torre % Dto. %", - "Local %!", - "Oficina %!", - ] - postcode_formats = ["{{municipality_code}}####"] - - def provinces_code(self) -> str: - """ - :example: "BA" - """ - return self.random_element(self.provinces.keys()) - - def province(self) -> str: - """ - :example: "Buenos Aires" - """ - return self.random_element(list(self.provinces.values())) - - administrative_unit = province - - def municipality_code(self) -> str: - """ - :example: "1900" - """ - return self.random_element(self.municipalities)[0] # type: ignore - - def municipality(self) -> str: - """ - :example: "La Plata" - """ - return self.random_element(self.municipalities)[1] # type: ignore - - city = municipality - - def street_prefix(self) -> str: - """ - :example: "Calle" - """ - return self.random_element(self.street_prefixes) - - def street_procer(self) -> str: - """ - :example: "Belgrano" - """ - return self.random_element(self.street_proceres) - - def street_municipality(self) -> str: - """ - :example: "La Plata" - """ - return self.random_element(self.municipalities)[1] - - def street_province(self) -> str: - """ - :example: "San Juan" - """ - return self.random_element(list(self.provinces.values())) - - def street_suffix(self) -> str: - """ - :example: "Sur" - """ - return self.generator.parse(self.random_element(self.street_suffixes)) - - def street_name(self) -> str: - """ - :example: "Calle 1" - """ - pattern: str = self.random_element(self.street_name_formats) - return self.numerify(self.generator.parse(pattern)) - - def building_number(self) -> str: - """ - :example: "23" - """ - return self.numerify(self.generator.parse(self.random_element(self.building_number_formats))) - - def secondary_address(self) -> str: - """ - :example: "Departamento 123" - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def street_address(self) -> str: - """ - :example: "Calle 1 N° 23" - """ - return self.street_name() + " N° " + self.building_number() - - def postcode(self) -> str: - """ - :example: "1900" - """ - return self.numerify(self.generator.parse(self.random_element(self.postcode_formats))) - - def address(self) -> str: - """ - :example: "Calle 1 N° 23, La Plata 1900, Buenos Aires" - """ - municipality: Tuple[str, str, str] = self.random_element(self.municipalities) - municipality_code = municipality[0] - municipality_prov = municipality[2] - - secondary_address: str = self.random_element( - [ - " " + self.secondary_address(), - "", - ] - ) - postcode = "\n" + municipality[1] + " " + municipality_code - province_name = ", " + self.provinces[municipality_prov] - - return self.street_address() + secondary_address + postcode + province_name diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_AR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/es_AR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ac58e237b759eaf850870ede2b574d99a82ab58b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8214 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 H814TH+nJtW diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_CL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/es_CL/__init__.py deleted file mode 100644 index c47dcb3..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/es_CL/__init__.py +++ /dev/null @@ -1,648 +0,0 @@ -from collections import OrderedDict -from typing import Dict, Tuple - -from ... import ElementsType -from ..es import Provider as AddressProvider - - -class Provider(AddressProvider): - # Source for regions, provinces and communes - # https://www.subdere.gov.cl/documentacion/c%C3%B3digos-%C3%BAnicos- - # territoriales-actualizados-al-06-de-septiembre-2018 - regions: Dict[str, str] = { - "TA": "Región de Tarapacá", - "AN": "Región de Antofagasta", - "AT": "Región de Atacama", - "CO": "Región de Coquimbo", - "VA": "Región de Valparaíso", - "LI": "Región del Libertador General Bernardo O'Higgins", - "ML": "Región del Maule", - "BI": "Región del Biobío", - "AR": "Región de La Araucanía", - "LL": "Región de Los Lagos", - "AI": "Región de Aysén del General Carlos Ibáñez del Campo", - "MA": "Región de Magallanes y de la Antártica Chilena", - "RM": "Región Metropolitana", - "LR": "Región de Los Ríos", - "AP": "Región de Arica y Parinacota", - "NB": "Región de Ñuble", - } - - provinces: Dict[str, str] = { - "011": "Iquique", - "014": "Tamarugal", - "021": "Antofagasta", - "022": "El Loa", - "023": "Tocopilla", - "031": "Copiapó", - "032": "Chañaral", - "033": "Huasco", - "041": "Elqui", - "042": "Choapa", - "043": "Limarí", - "051": "Valparaíso", - "052": "Isla de Pascua", - "053": "Los Andes", - "054": "Petorca", - "055": "Quillota", - "056": "San Antonio", - "057": "San Felipe de Aconcagua", - "058": "Marga Marga", - "061": "Cachapoal", - "062": "Cardenal Caro", - "063": "Colchagua", - "071": "Talca", - "072": "Cauquenes", - "073": "Curicó", - "074": "Linares", - "081": "Concepción", - "082": "Arauco", - "083": "Biobío", - "091": "Cautín", - "092": "Malleco", - "101": "Llanquihue", - "102": "Chiloé", - "103": "Osorno", - "104": "Palena", - "111": "Coyhaique", - "112": "Aysén", - "113": "Capitán Prat", - "114": "General Carrera", - "121": "Magallanes", - "122": "Antártica Chilena", - "123": "Tierra del Fuego", - "124": "Última Esperanza", - "131": "Santiago", - "132": "Cordillera", - "133": "Chacabuco", - "134": "Maipo", - "135": "Melipilla", - "136": "Talagante", - "141": "Valdivia", - "142": "Ranco", - "151": "Arica", - "152": "Parinacota", - "161": "Diguillín", - "162": "Itata", - "163": "Punilla", - } - - communes: Dict[str, str] = { - "15101": "Arica", - "15102": "Camarones", - "15201": "Putre", - "15202": "General Lagos", - "01101": "Iquique", - "01402": "Camiña", - "01403": "Colchane", - "01404": "Huara", - "01405": "Pica", - "01401": "Pozo Almonte", - "01107": "Alto Hospicio", - "02101": "Antofagasta", - "02102": "Mejillones", - "02103": "Sierra Gorda", - "02104": "Taltal", - "02201": "Calama", - "02202": "Ollagüe", - "02203": "San Pedro de Atacama", - "02301": "Tocopilla", - "02302": "María Elena", - "03101": "Copiapó", - "03102": "Caldera", - "03103": "Tierra Amarilla", - "03201": "Chañaral", - "03202": "Diego de Almagro", - "03301": "Vallenar", - "03302": "Alto del Carmen", - "03303": "Freirina", - "03304": "Huasco", - "04101": "La Serena", - "04102": "Coquimbo", - "04103": "Andacollo", - "04104": "La Higuera", - "04105": "Paiguano", - "04106": "Vicuña", - "04201": "Illapel", - "04202": "Canela", - "04203": "Los Vilos", - "04204": "Salamanca", - "04301": "Ovalle", - "04302": "Combarbalá", - "04303": "Monte Patria", - "04304": "Punitaqui", - "04305": "Río Hurtado", - "05101": "Valparaíso", - "05102": "Casablanca", - "05103": "Concón", - "05104": "Juan Fernández", - "05105": "Puchuncaví", - "05801": "Quilpué", - "05107": "Quintero", - "05804": "Villa Alemana", - "05109": "Viña del Mar", - "05201": "Isla de Pascua", - "05301": "Los Andes", - "05302": "Calle Larga", - "05303": "Rinconada", - "05304": "San Esteban", - "05401": "La Ligua", - "05402": "Cabildo", - "05403": "Papudo", - "05404": "Petorca", - "05405": "Zapallar", - "05501": "Quillota", - "05502": "Calera", - "05503": "Hijuelas", - "05504": "La Cruz", - "05802": "Limache", - "05506": "Nogales", - "05803": "Olmué", - "05601": "San Antonio", - "05602": "Algarrobo", - "05603": "Cartagena", - "05604": "El Quisco", - "05605": "El Tabo", - "05606": "Santo Domingo", - "05701": "San Felipe", - "05702": "Catemu", - "05703": "Llaillay", - "05704": "Panquehue", - "05705": "Putaendo", - "05706": "Santa María", - "06101": "Rancagua", - "06102": "Codegua", - "06103": "Coinco", - "06104": "Coltauco", - "06105": "Doñihue", - "06106": "Graneros", - "06107": "Las Cabras", - "06108": "Machalí", - "06109": "Malloa", - "06110": "Mostazal", - "06111": "Olivar", - "06112": "Peumo", - "06113": "Pichidegua", - "06114": "Quinta de Tilcoco", - "06115": "Rengo", - "06116": "Requínoa", - "06117": "San Vicente", - "06201": "Pichilemu", - "06202": "La Estrella", - "06203": "Litueche", - "06204": "Marchihue", - "06205": "Navidad", - "06206": "Paredones", - "06301": "San Fernando", - "06302": "Chépica", - "06303": "Chimbarongo", - "06304": "Lolol", - "06305": "Nancagua", - "06306": "Palmilla", - "06307": "Peralillo", - "06308": "Placilla", - "06309": "Pumanque", - "06310": "Santa Cruz", - "07101": "Talca", - "07102": "Constitución", - "07103": "Curepto", - "07104": "Empedrado", - "07105": "Maule", - "07106": "Pelarco", - "07107": "Pencahue", - "07108": "Río Claro", - "07109": "San Clemente", - "07110": "San Rafael", - "07201": "Cauquenes", - "07202": "Chanco", - "07203": "Pelluhue", - "07301": "Curicó", - "07302": "Hualañé", - "07303": "Licantén", - "07304": "Molina", - "07305": "Rauco", - "07306": "Romeral", - "07307": "Sagrada Familia", - "07308": "Teno", - "07309": "Vichuquén", - "07401": "Linares", - "07402": "Colbún", - "07403": "Longaví", - "07404": "Parral", - "07405": "Retiro", - "07406": "San Javier", - "07407": "Villa Alegre", - "07408": "Yerbas Buenas", - "08101": "Concepción", - "08102": "Coronel", - "08103": "Chiguayante", - "08104": "Florida", - "08105": "Hualqui", - "08106": "Lota", - "08107": "Penco", - "08108": "San Pedro de la Paz", - "08109": "Santa Juana", - "08110": "Talcahuano", - "08111": "Tomé", - "08112": "Hualpén", - "08201": "Lebu", - "08202": "Arauco", - "08203": "Cañete", - "08204": "Contulmo", - "08205": "Curanilahue", - "08206": "Los Álamos", - "08207": "Tirúa", - "08301": "Los Ángeles", - "08302": "Antuco", - "08303": "Cabrero", - "08304": "Laja", - "08305": "Mulchén", - "08306": "Nacimiento", - "08307": "Negrete", - "08308": "Quilaco", - "08309": "Quilleco", - "08310": "San Rosendo", - "08311": "Santa Bárbara", - "08312": "Tucapel", - "08313": "Yumbel", - "08314": "Alto Biobío", - "16101": "Chillán", - "16102": "Bulnes", - "16202": "Cobquecura", - "16203": "Coelemu", - "16302": "Coihueco", - "16103": "Chillán Viejo", - "16104": "El Carmen", - "16204": "Ninhue", - "16303": "Ñiquén", - "16105": "Pemuco", - "16106": "Pinto", - "16205": "Portezuelo", - "16107": "Quillón", - "16201": "Quirihue", - "16206": "Ránquil", - "16301": "San Carlos", - "16304": "San Fabián", - "16108": "San Ignacio", - "16305": "San Nicolás", - "16207": "Treguaco", - "16109": "Yungay", - "09101": "Temuco", - "09102": "Carahue", - "09103": "Cunco", - "09104": "Curarrehue", - "09105": "Freire", - "09106": "Galvarino", - "09107": "Gorbea", - "09108": "Lautaro", - "09109": "Loncoche", - "09110": "Melipeuco", - "09111": "Nueva Imperial", - "09112": "Padre Las Casas", - "09113": "Perquenco", - "09114": "Pitrufquén", - "09115": "Pucón", - "09116": "Saavedra", - "09117": "Teodoro Schmidt", - "09118": "Toltén", - "09119": "Vilcún", - "09120": "Villarrica", - "09121": "Cholchol", - "09201": "Angol", - "09202": "Collipulli", - "09203": "Curacautín", - "09204": "Ercilla", - "09205": "Lonquimay", - "09206": "Los Sauces", - "09207": "Lumaco", - "09208": "Purén", - "09209": "Renaico", - "09210": "Traiguén", - "09211": "Victoria", - "14101": "Valdivia", - "14102": "Corral", - "14202": "Futrono", - "14201": "La Unión", - "14203": "Lago Ranco", - "14103": "Lanco", - "14104": "Los Lagos", - "14105": "Máfil", - "14106": "Mariquina", - "14107": "Paillaco", - "14108": "Panguipulli", - "14204": "Río Bueno", - "10101": "Puerto Montt", - "10102": "Calbuco", - "10103": "Cochamó", - "10104": "Fresia", - "10105": "Frutillar", - "10106": "Los Muermos", - "10107": "Llanquihue", - "10108": "Maullín", - "10109": "Puerto Varas", - "10201": "Castro", - "10202": "Ancud", - "10203": "Chonchi", - "10204": "Curaco de Vélez", - "10205": "Dalcahue", - "10206": "Puqueldón", - "10207": "Queilén", - "10208": "Quellón", - "10209": "Quemchi", - "10210": "Quinchao", - "10301": "Osorno", - "10302": "Puerto Octay", - "10303": "Purranque", - "10304": "Puyehue", - "10305": "Río Negro", - "10306": "San Juan de la Costa", - "10307": "San Pablo", - "10401": "Chaitén", - "10402": "Futaleufú", - "10403": "Hualaihué", - "10404": "Palena", - "11101": "Coihaique", - "11102": "Lago Verde", - "11201": "Aisén", - "11202": "Cisnes", - "11203": "Guaitecas", - "11301": "Cochrane", - "11302": "O'Higgins", - "11303": "Tortel", - "11401": "Chile Chico", - "11402": "Río Ibáñez", - "12101": "Punta Arenas", - "12102": "Laguna Blanca", - "12103": "Río Verde", - "12104": "San Gregorio", - "12201": "Cabo de Hornos", - "12202": "Antártica", - "12301": "Porvenir", - "12302": "Primavera", - "12303": "Timaukel", - "12401": "Natales", - "12402": "Torres del Paine", - "13101": "Santiago", - "13102": "Cerrillos", - "13103": "Cerro Navia", - "13104": "Conchalí", - "13105": "El Bosque", - "13106": "Estación Central", - "13107": "Huechuraba", - "13108": "Independencia", - "13109": "La Cisterna", - "13110": "La Florida", - "13111": "La Granja", - "13112": "La Pintana", - "13113": "La Reina", - "13114": "Las Condes", - "13115": "Lo Barnechea", - "13116": "Lo Espejo", - "13117": "Lo Prado", - "13118": "Macul", - "13119": "Maipú", - "13120": "Ñuñoa", - "13121": "Pedro Aguirre Cerda", - "13122": "Peñalolén", - "13123": "Providencia", - "13124": "Pudahuel", - "13125": "Quilicura", - "13126": "Quinta Normal", - "13127": "Recoleta", - "13128": "Renca", - "13129": "San Joaquín", - "13130": "San Miguel", - "13131": "San Ramón", - "13132": "Vitacura", - "13201": "Puente Alto", - "13202": "Pirque", - "13203": "San José de Maipo", - "13301": "Colina", - "13302": "Lampa", - "13303": "Tiltil", - "13401": "San Bernardo", - "13402": "Buin", - "13403": "Calera de Tango", - "13404": "Paine", - "13501": "Melipilla", - "13502": "Alhué", - "13503": "Curacaví", - "13504": "María Pinto", - "13505": "San Pedro", - "13601": "Talagante", - "13602": "El Monte", - "13603": "Isla de Maipo", - "13604": "Padre Hurtado", - "13605": "Peñaflor", - } - - street_prefixes = OrderedDict( - [ - ("Calle", 0.6), - ("Avenida", 0.1), - ("Avda.", 0.1), - ("Av.", 0.1), - ("Pasaje", 0.04), - ("Psje.", 0.04), - ("Camino", 0.02), - ] - ) - - street_suffixes = ( - "Norte", - "Sur", - ) - - city_formats = ("{{city}}",) - - street_name_formats = ( - "{{street_prefix}} {{common_street_name}}", - "{{street_prefix}} {{historic_people_street_name}}", - "{{street_prefix}} {{first_name_male}} {{last_name}}", - "{{street_prefix}} {{first_name_female}} {{last_name}}", - "{{street_prefix}} {{plant_street_name}}", - "{{common_street_name}}", - "{{historic_people_street_name}}", - "{{plant_street_name}}", - "{{first_name_male}} {{last_name}}", - "{{first_name_female}} {{last_name}}", - ) - - building_number_formats = OrderedDict( - [ - ("%###", 0.35), - ("%##", 0.35), - ("%#", 0.25), - ("%", 0.05), - ] - ) - - street_address_formats = ( - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}} {{secondary_address}}", - ) - - address_formats = OrderedDict( - [ - ("{{street_address}}\n{{commune_and_region}}, {{postcode}}", 0.4), - ("{{street_address}}\n{{commune_and_region}}", 0.4), - ("{{highway_name}}, km {{random_int:big_kilometer}}", 0.1), - ("{{road_name}}, km {{random_int:kilometer}}, {{region}}", 0.1), - ] - ) - - secondary_address_formats = ("Dpto. @@##", "Piso @#", "Of. %##@") - - common_street_names = OrderedDict( - [ - ("Arturo Prat", 0.118812), - ("Esmeralda", 0.107261), - ("Manuel Rodríguez", 0.105611), - ("Gabriela Mistral", 0.104785), - ("Los Aromos", 0.104785), - ("Las Rosas", 0.098185), - ("Caupolicán", 0.094884), - ("Lautaro", 0.094059), - ("Los Alerces", 0.086634), - ("Los Copihues", 0.084983), - ] - ) - - # Some chilean historic people. Full names come first, then its variants - historic_people_street_names = ( - ("Alonso de Ercilla",), - ("Alonso de Ribera",), - ("Álvaro Casanova", "Casanova"), - ("Aníbal Pinto Garmendia", "Aníbal Pinto"), - ("Antonio Varas",), - ("Arturo Alessandri Palma", "Arturo Alessandri"), - ("Benjamín Vicuña Mackenna", "Vicuña Mackenna", "Mackenna"), - ("Bernardo O'Higgins", "O'Higgins"), - ("Camilo Henríquez",), - ("Caupolicán",), - ("Colo Colo",), - ("Diego Barros Arana", "Barros Arana"), - ("Diego Portales", "Portales"), - ("Domingo Santa María", "Santa María"), - ("Eliodoro Yáñez",), - ("Enrique Mac Iver", "Mac Iver"), - ("Eusebio Lillo",), - ("Francisco Bilbao", "Bilbao"), - ("José de San Martín", "San Martín"), - ("José Manuel Balmaceda", "Balmaceda"), - ("José Miguel Carrera",), - ("José Victorino Lastarria", "Lastarria"), - ("Juan Mackenna",), - ("Lord Thomas Cochrane", "Lord Cochrane", "Cochrane"), - ("Los Carrera",), - ("Manuel Antonio Matta", "Matta"), - ("Manuel Bulnes", "Bulnes"), - ("Manuel José Irarrázaval", "Irarrázabal"), - ("Manuel Montt",), - ("Manuel Rodríguez",), - ("Manuel Baquedano", "Baquedano"), - ("Michimalonco",), - ("Padre Alberto Hurtado", "Alberto Hurtado"), - ("Patricio Lynch", "Lynch"), - ("Paula Jaraquemada",), - ("Pedro Aguirre Cerda",), - ("Pedro de Valdivia",), - ("Pedro Montt",), - ("Ramón Barros Luco", "Barros Luco"), - ("Ramón Carnicer",), - ("Ramón Freire", "Freire"), - ("Ramón Picarte", "Picarte"), - ("Salvador Allende Gossens", "Salvador Allende"), - ("Santa Rosa",), - ) - - # Some streets are named by plants - plant_street_names: ElementsType[str] = ( - "Los Cactus", - "Los Laureles", - "Los Piñones", - "Los Helechos", - "Los Higos", - "Los Abedules", - "Los Encinos", - "Los Palmitos", - "Los Naranjos", - "Los Robles", - "Los Pinos", - "Los Coihues", - "Los Calafates", - "Los Digitales", - "Los Lirios", - "Los Tilos", - "Los Girasoles", - "Las Azucenas", - "Las Lilas", - "Las Hortensias", - "Las Margaritas", - "Las Maravillas", - "Las Manzanillas", - "Las Mandarinas", - "Las Araucarias", - "Las Mosquetas", - "Las Malvas", - "Las Mosquetas", - ) - - road_names = ("Ruta T-%#", "Ruta U-%##", "Ruta %##-CH") - highway_names = ("Ruta 5 Norte", "Ruta 5 Sur") - - def commune(self) -> str: - return self.random_element(self.communes.values()) - - def province(self) -> str: - return self.random_element(self.provinces.values()) - - def region(self) -> str: - return self.random_element(self.regions.values()) - - def commune_code(self) -> str: - return self.random_element(self.communes.keys()) - - def province_code(self) -> str: - return self.random_element(self.provinces.keys()) - - def region_code(self) -> str: - return self.random_element(self.regions.keys()) - - def common_street_name(self) -> str: - return self.random_element(self.common_street_names) - - def plant_street_name(self) -> str: - return self.random_element(self.plant_street_names) - - def historic_people_street_name(self) -> str: - person_names: Tuple[str, ...] = self.random_element(self.historic_people_street_names) - return self.random_element(person_names) - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def commune_and_region(self) -> str: - commune_code = self.commune_code() - commune_name = self.communes[commune_code] - region_index = int(commune_code[0:2]) - 1 - region_name = tuple(self.regions.values())[region_index] - - return f"{commune_name:s}, {region_name:s}" - - def road_name(self) -> str: - self.generator.set_arguments("kilometer", {"min": 1, "max": 35}) - return self.numerify(self.generator.parse(self.random_element(self.road_names))) - - def highway_name(self) -> str: - self.generator.set_arguments("big_kilometer", {"min": 1, "max": 1000}) - return self.numerify(self.generator.parse(self.random_element(self.highway_names))) - - def postcode(self) -> str: - return self.numerify("######0") - - administrative_unit = region - city = commune diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_CL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/es_CL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ec037748b42793fae717812182dff23e38f906e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26198 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 str: - """ - :example: "11" - """ - return self.random_element(self.departments.keys()) - - def department(self) -> str: - """ - :example: "Bogotá, D.C." - """ - return self.random_element(list(self.departments.values())) - - administrative_unit = department - - def municipality_code(self) -> str: - """ - :example: "11001" - """ - return self.random_element(self.municipalities)[0] # type: ignore - - def municipality(self) -> str: - """ - :example: "Bogotá, D.C." - """ - return self.random_element(self.municipalities)[1] # type: ignore - - city = municipality - - def street_prefix(self) -> str: - """ - :example: "Calle" - """ - return self.random_element(self.street_prefixes) - - def street_suffix(self) -> str: - """ - :example: "Sur" - """ - return self.generator.parse(self.random_element(self.street_suffixes)) - - def street_name(self) -> str: - """ - :example: "Calle 1" - """ - pattern: str = self.random_element(self.street_name_formats) - return self.numerify(self.generator.parse(pattern)) - - def building_number(self) -> str: - """ - :example: "2-3" - """ - return self.numerify(self.generator.parse(self.random_element(self.building_number_formats))) - - def secondary_address(self) -> str: - """ - :example: "Apartamento 123" - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def street_address(self) -> str: - """ - :example: "Calle 1 # 2-3" - """ - return self.street_name() + " # " + self.building_number() + self.random_element(("", " Sur", " Este")) - - def postcode(self) -> str: - """ - :example: "11001" - """ - return self.numerify(self.generator.parse(self.random_element(self.postcode_formats))) - - def address(self) -> str: - """ - :example: "Calle 1 # 2-3\n11001\nBogotá D.C." - """ - municipality: Tuple[str, str] = self.random_element(self.municipalities) - municipality_code = municipality[0] - department_code = municipality_code[0:2] - is_department_capital = municipality_code[-3:] == "001" - - secondary_address: str = self.random_element( - [ - "\n" + self.secondary_address(), - "", - ] - ) - postcode = "\n" + department_code + self.numerify("####") - municipality_name = "\n" + municipality[1] - department_name = ", " + self.departments[department_code] if not is_department_capital else "" - - return self.street_address() + secondary_address + postcode + municipality_name + department_name diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_CO/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/es_CO/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index d2e8ab7d677a8213bb4ede75bee0efad7f9ffc77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31662 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 O`_A9K(_;?I{r?BmUjT*x diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_ES/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/es_ES/__init__.py deleted file mode 100644 index 7ac8a01..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/es_ES/__init__.py +++ /dev/null @@ -1,140 +0,0 @@ -from ..es import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ("%", "%#", "%#", "%#", "%##") - street_prefixes = ( - "Plaza", - "Calle", - "Avenida", - "Via", - "Vial", - "Rambla", - "Glorieta", - "Urbanización", - "Callejón", - "Cañada", - "Alameda", - "Acceso", - "C.", - "Ronda", - "Pasaje", - "Cuesta", - "Pasadizo", - "Paseo", - "Camino", - ) - states = ( - "Álava", - "Albacete", - "Alicante", - "Almería", - "Asturias", - "Ávila", - "Badajoz", - "Baleares", - "Barcelona", - "Burgos", - "Cáceres", - "Cádiz", - "Cantabria", - "Castellón", - "Ceuta", - "Ciudad", - "Córdoba", - "Cuenca", - "Girona", - "Granada", - "Guadalajara", - "Guipúzcoa", - "Huelva", - "Huesca", - "Jaén", - "La Coruña", - "La Rioja", - "Las Palmas", - "León", - "Lleida", - "Lugo", - "Madrid", - "Málaga", - "Melilla", - "Murcia", - "Navarra", - "Ourense", - "Palencia", - "Pontevedra", - "Salamanca", - "Santa Cruz de Tenerife", - "Segovia", - "Sevilla", - "Soria", - "Tarragona", - "Teruel", - "Toledo", - "Valencia", - "Valladolid", - "Vizcaya", - "Zamora", - "Zaragoza", - ) - - # Source: - # https://administracionelectronica.gob.es/ctt/resources/Soluciones - # /238/Descargas/Catalogo-de-Comunidades-Autonomas.xlsx - regions = ( - "Andalucía", - "Aragón", - "Principado de Asturias", - "Illes Balears", - "Canarias", - "Cantabria", - "Castilla y León", - "Castilla-La Mancha", - "Cataluña", - "Comunitat Valenciana", - "Extremadura", - "Galicia", - "Comunidad de Madrid", - "Región de Murcia", - "Comunidad Foral de Navarra", - "País Vasco", - "La Rioja", - "Ciudad Autónoma de Ceuta", - "Ciudad Autónoma de Melilla", - ) - - city_formats = ("{{state_name}}",) - - street_name_formats = ( - "{{street_prefix}} {{first_name}} {{last_name}}", - "{{street_prefix}} de {{first_name}} {{last_name}}", - ) - street_address_formats = ( - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}} {{secondary_address}} ", - ) - address_formats = ("{{street_address}}\n{{city}}, {{postcode}}",) - secondary_address_formats = ("Apt. ##", "Piso #", "Puerta #") - - def state_name(self) -> str: - return self.random_element(self.states) - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit - - def region(self) -> str: - return self.random_element(self.regions) - - def postcode(self) -> str: - return str(self.generator.random.randint(1000, 52100)).zfill(5) - - autonomous_community = region diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_ES/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/es_ES/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 2de7b80f15e14c7f065d2bdced6059f8dc5954b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3612 zcmb^!OKcm*b(i0jWQmrjT8$kAj0m@3;fPY>B2MEPplF*)pbsr72FgPhqn!~w%JkPy(D z_nSBGH*Z#74i671`1|W%^Yvjx`Bz9pAQ`PEKLTV&p$b(^#Zv1rRf#DTg~lE!G|pmA z<6XVF+Da6XU&VkbsDW0MVv|!QjmS#4pb&p2+W>YHrqorc)MHew$7!sdpz(T=Ch94g ztfy(JuF-UTfNJ$YI#3^?gY3e3j1E0Y)Q2Pd0^lPNJ`8v!!bbqV$S&4LBRT{0ScG2$ zJj=%F}Y3yoVrhp28AHSN<7qUUJY7(CW$ucob7Nkp?%;uB?@%x+v z2>@o0S|Qe&Ndm263dxyEJjkN*fm|at_ld#xzp%Xl;Di>MNTow+|8oL{(j}8v43JdG zFqk9!Sa~`~t_T}hRpO8)3sPl|IWC-lH08bkuZY702#CdPQMm4*-}@h#WD~SX<{B}W z%MjxRv0dhAATF5}llz~dg5!FU6DQiW$-(>d9C*_dexS_}lM%_BU|^0&gPFnxPv$(? z5Kd^Py#K^tAP;u~0S*NNWjKbcfl&{esZ1P~nI^;viDMqPo+@*X5*iu!LQ=7YOpn29!RGt^`7e-@jCq96a9uGw4~bDg5F0pwpdP zw+);?gVGZ07C8y2^Dai^MVE7}T$oCK3=58&HzDVX5cdNTwY&=_LoxjEvamdxyTr}) zf`Eb#-FfIrW-7TiRa={DTjcDoSs zr;#HWbM+0$*7?JBJGZs9&ZXl&4MWQDWcXY9ePErYwQcKaG^+YpXx2#P_+{d8%= zozCU+eyYkHk<0s9)ngL+JRhVagXv-$D&(^F!x@WzCpQ4>D8EsfUzbK&!0o*a5eJv2 zk!DTVQ|}VbcOo>+UsF)wTHly z)MSQRw74O~MntR$w>S-heY0rtwcq`{oxI{A>vB5VpD zHK!QmsmL7tPOYfx9Qs?=r#D)`;PW2wv%Obv`Z@C4l`4auYdCH zlXs6Y#RIK)0wU%6&!8-U*+NW~VF@xXbS-n_9pHA;Co8Bh{DK0Gi*Dc$$Jg3@3wPnI zdLfkK{M(25w~sP64zwHceUQEo49?)N9qt424efwB=YG&6iE}I!K$wOvQwT&7;iBfi~0cG=3h18OA#8 zC~h=V6dXk_89FcPu_k`Co%>Oh#-2v|d%f4hZ@qIr8t+MKN+Get{|&zIM_($+S9lc) z$si832?iSYaX?%lVTguPE=c3bVaz4{b$DO@C3W^bwRgFw^6H%r%p zL0z{5^-Ko%1zrEOM@)Q&fSNe>44qx41vpsVM(_cE-~v7*JzwkP zaBlk!Zk*kXBWo7L^XhIMiFr^~UY$Bj{4lIg=idFV{ZqUQujUYb%Nx;?dsw{ oKh diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_MX/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/es_MX/__init__.py deleted file mode 100644 index c51b6a7..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/es_MX/__init__.py +++ /dev/null @@ -1,163 +0,0 @@ -from collections import OrderedDict - -from ..es import Provider as AddressProvider - - -class Provider(AddressProvider): - city_prefixes = ("Sur", "Norte") - city_adjectives = ("Nueva", "Vieja") - city_suffixes = ("de la Montaña", "los bajos", "los altos") - street_prefixes = ( - "Ampliación", - "Andador", - "Avenida", - "Boulevard", - "Calle", - "Callejón", - "Calzada", - "Cerrada", - "Circuito", - "Circunvalación", - "Continuación", - "Corredor", - "Diagonal", - "Eje vial", - "Pasaje", - "Peatonal", - "Periférico", - "Privada", - "Prolongación", - "Retorno", - "Viaducto", - ) - building_number_formats = ("#####", "####", "###") - postcode_formats = ("#####", "#####-####") - - # States and abbrs from Mexico from INEGI - # http://www.inegi.org.mx/geo/contenidos/geoestadistica/CatalogoClaves.aspx - states = ( - ("AGS", "Aguascalientes"), - ("BC", "Baja California"), - ("BCS", "Baja California Sur"), - ("CAMP", "Campeche"), - ("COAH", "Coahuila de Zaragoza"), - ("COL", "Colima"), - ("CHIS", "Chiapas"), - ("CHIH", "Chihuahua"), - ("DF", "Distrito Federal"), - ("DGO", "Durango"), - ("GTO", "Guanajuato"), - ("GRO", "Guerrero"), - ("HGO", "Hidalgo"), - ("JAL", "Jalisco"), - ("MEX", "México"), - ("MICH", "Michoacán de Ocampo"), - ("MOR", "Morelos"), - ("NAY", "Nayarit"), - ("NL", "Nuevo León"), - ("OAX", "Oaxaca"), - ("PUE", "Puebla"), - ("QRO", "Querétaro"), - ("Q. ROO", "Quintana Roo"), - ("SLP", "San Luis Potosí"), - ("SIN", "Sinaloa"), - ("SON", "Sonora"), - ("TAB", "Tabasco"), - ("TAMPS", "Tamaulipas"), - ("TLAX", "Tlaxcala"), - ("VER", "Veracruz de Ignacio de la Llave"), - ("YUC", "Yucatán"), - ("ZAC", "Zacatecas"), - ) - - zip_codes = OrderedDict( - ( - # The ZipCodes has a begin & final range - # Source: Norma Técnica de Domicilios INEGI - ("AGS", (20000, 20999)), - ("BC", (21000, 22999)), - ("BCS", (23000, 23999)), - ("CAMP", (24000, 24999)), - ("COAH", (25000, 27999)), - ("COL", (28000, 28999)), - ("CHIS", (29000, 30999)), - ("CHIH", (31000, 33999)), - ("DF", (1000, 19999)), - ("DGO", (36000, 35999)), - ("GTO", (36000, 38999)), - ("GRO", (39000, 41999)), - ("HGO", (42000, 43999)), - ("JAL", (44000, 49999)), - ("MEX", (50000, 57999)), - ("MICH", (58000, 61999)), - ("MOR", (62000, 62999)), - ("NAY", (63000, 63999)), - ("NL", (64000, 67999)), - ("OAX", (68000, 71999)), - ("PUE", (72000, 75999)), - ("QRO", (76000, 76999)), - ("Q. ROO", (77000, 75999)), - ("SLP", (78000, 79999)), - ("SIN", (80000, 82999)), - ("SON", (83000, 85999)), - ("TAB", (86000, 86999)), - ("TAMPS", (87000, 89999)), - ("TLAX", (90000, 90999)), - ("VER", (91000, 97999)), - ("YUC", (97000, 97999)), - ("ZAC", (98000, 99999)), - ) - ) - - city_formats = ( - "{{city_adjective}} {{country}}", - "San {{first_name}} {{city_suffix}}", - ) - street_name_formats = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{country}}", - "{{street_prefix}} {{state}}", - "{{street_prefix}} {{city_prefix}} {{last_name}}", - ) - street_address_formats = ("{{street_name}} {{secondary_address}}",) - address_formats = ("{{street_address}}\n{{city}}, {{state_abbr}} {{postcode}}",) - secondary_address_formats = ( - "### ###", - "### Interior ###", - "### Edif. ### , Depto. ###", - ) - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def city_suffix(self) -> str: - return self.random_element(self.city_suffixes) - - def city_adjective(self) -> str: - return self.random_element(self.city_adjectives) - - def street_prefix(self) -> str: - """ - :example 'Avenida' - """ - return self.random_element(self.street_prefixes) - - def secondary_address(self) -> str: - """ - :example '020 Interior 999' - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - """ - example: u'Guerrero' - """ - return self.random_element(self.states)[1] # type: ignore - - state = administrative_unit - - def state_abbr(self) -> str: - """ - example: u'GRO' - """ - return self.random_element(self.states)[0] # type: ignore diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/es_MX/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/es_MX/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index a3e4c1c1da1301faed75bcf80050093ec7bb2754..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4666 zcmcJTO-vlg6@a_vpD{3a!QemEZDYrt$YwC!wPBs?dKfU^00Rtm?1?tL#dHCMd%D@` zZURlnlE{fRN+fSi_RXvmX@jgtj*@$#a7d&a7UTn{rD#`)A}yy(!X{FDNnTa;3@2h&%uU@_S8U9pL6PMWYoA`8ly(ImWD}E97-`njVJdiX=lXa;m=Ve*a0$NZH z6odJYECr-qNekVRv@i}m4hoxma6XcZZZRb(dk3;q!xU@Xq+o9a1d9z*bCv)u2n$jA z=F;}hL4P1&DKBeMKA_3@pccr7v|v80h4K+CoR4aed`yexs{#^^Yq7_&=pcVUtIAhv z@qCSTAYZFh=M!2@zD}#f2PXnr;$A5KnlIOZT<^;VL2mHn*FZkx%k>~P`f>xvO}Ht4 z*w+t%eq_Ee*+f~Gk^wK6bEp>{GO3M03lBMX7J1=Y1W%)6(5Zz+8dh|q44Q_GR)2-u zD&4e{aWrjOLPWZ4TFFDs0ce^o&gcXc$m*{RFPb(qq?r_iS!@suc~xDeqeJ&p^THXV z>)5FR8!kzl*s@+0$#asMp`bgBB`(_r+af=ZF#j`Bt>42Hm?)?VWzvJg5ExXP!G$R{XQ50s-RCxB zOf=;Xm?@aAJfbjqm-m&)4tSA_sgoj8Lz%w*90YiZpc%wmV4%;d0x;!32dqt?`?_1# zO)Q&2cRXxf2@ax|LtV!aN`AEq4iF`GV^ zeqGqyNDp|?8!%d{!0QKlZaYy3+2HER983Z95gP2z^f?WTk;0UT3acL*Y*5((j9J)Z zN4@BvNin1%`{+>mju#z5^9URUJuo!DXO`u%sSIGqE!HZVzU@V_Xbu&4T!wG(d= z0M5q7bTkL)!p&~=jJhXo!AumWzCK1Ud{F`Scz~X9fBKc2sf#oCCkkakRDk zQ$UZP0Q6OkDAY^jn-4iUFAQ&kMiQ_ML#tMS>Odo(J?5xQpwB@g*;S6%DFKlf294bR z3rCj(`Uo_V`X@(k2-F4|Y5F%umjyZu8u{;kIO-5cdIsoGmCT&z6lfVV^3D;Ct_pMw zw5`w1arAY8J_n8b;XFrg3-m|OXqLi;D^%(=lv1zqsh0Vk>81VS-T0Rt;42>zRq=OiYlu#l>XE zJ+ZI=yAZ~3p%!x*>^DjFZBJT5b)Wfx2hyh;Y$C>$CJ{JC{Z=!c_% z5|eUrl#w2dOtdmpIj?l%8QbKF7opg8r~xyz^S~;S*xxow%m>nUrRnEu{dPdvNgUn))S|e z-`Hq*bG_xwr-{pJvCG>m9{>Mf(j0UP+rk*U{1}RS#}>T>OazeLX4PUCqI&Nz1pOg2 zqj^?*3yN3lZGy+IvY=n|w{~{}w`q6eE0!OEuhu@nzp~zPcw_3x)=D^=zBN$lEu_L-rYT@BpE%7AzApRn;BgJMZ4#iY81opgKIh}r#| zuU(cFFIl^+&7KEVbZ8F(wY;Ls?;QNbaW7N`y%UeN_O_jEr?a#3xxfUynBf%Jjd@K@$**xqgQXW+4Q8VWyX_ZNS>_;75axoy3p(1}oT3Hk3T-#Z-PTP*pFkszp(%JE=s`Mr^c#jou9hLZRa<6F|eg$d7m{cKC$1yGEqgPixWy^%>%!sWYugWDe zDm#HKubS^-eiD22{z~Q_EW<`0`X^AiKQFNd&`H*J5L(ka>{H)n1!9H9iYZpW4O#NS zJP>pSsrC2hSXgEcKU$wWTC z=;&tS7<3W{odnuks+Pl79_F?sc$Ff%<<8|GgCE8I_rK zX&J2H1^w43OFg9!$PY7LGQ=mC4{9hGhBMBDe+0k{(KIYE6#>|1+1}?R(&9o@&K9}| wR9Lg)@mcI^A}ije-v^Z~J$|T^g0d|CS!(&4bpFf8y8-#qhadb)VsCExKkypUg#Z8m diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fa_IR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/fa_IR/__init__.py deleted file mode 100644 index c21889d..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/fa_IR/__init__.py +++ /dev/null @@ -1,296 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_prefixes = ( - "شمال", - "غرب", - "شرق", - "جنوب", - "بندر", - "شهر", - "روستای", - "دهستان", - "شهرستان", - "باغات", - "استان", - ) - building_number_formats = ("#####", "####", "###") - street_suffixes = ( - "کوچه", - "خیابان", - "پل", - "دره", - "میدان", - "چهار راه", - "بن بست", - "بلوار", - "جنب", - "تقاطع", - "آزاد راه", - "بزرگ راه", - "جزیره", - "کوه", - "جاده", - "تونل", - ) - postcode_formats = ("###", "####", "#####", "######", "##########") - states = ( - "آذربایجان شرقی", - "آذربایجان غربی", - "اردبیل", - "خراسان", - "کردستان", - "گیلان", - "اصفهان", - "البرز", - "ایلام", - "بوشهر", - "تهران", - "چهارمحال و بختیاری", - "خراسان جنوبی", - "خراسان رضوی", - "خراسان شمالی", - "خوزستان", - "زنجان", - "سمنان", - "سیستان و بلوچستان", - "فارس", - "قزوین", - "قم", - "کرمان", - "کرمانشاه", - "کهگیلویه و بویراحمد", - "گلستان", - "لرستان", - "مازندران", - "مرکزی", - "هرمزگان", - "همدان", - "یزد", - ) - countries = ( - "جمهوری آذربایجان", - "آرژانتین", - "آفریقای جنوبی", - "جمهوری آفریقای مرکزی", - "آلبانی", - "آلمان", - "آنتیگوا و باربودا", - "آندورا", - "آنگولا", - "اتریش", - "اتیوپی", - "اردن", - "ارمنستان", - "اروگوئه", - "اریتره", - "ازبکستان", - "اسپانیا", - "استرالیا", - "استونی", - "اسرائیل", - "اسلواکی", - "اسلوونی", - "افغانستان", - "اکوادور", - "الجزایر", - "السالوادور", - "امارات متحده عربی", - "اندونزی", - "اوکراین", - "اوگاندا", - "ایالات متحده آمریکا", - "ایتالیا", - "ایران", - "جمهوری ایرلند", - "ایسلند", - "باربادوس", - "باهاما", - "بحرین", - "برزیل", - "برونئی", - "بریتانیا", - "بلاروس", - "بلژیک", - "بلغارستان", - "بلیز", - "بنگلادش", - "بنین", - "پادشاهی بوتان", - "بوتسوانا", - "بورکینافاسو", - "بوروندی", - "بوسنی و هرزگوین", - "بولیوی", - "پاپوآ گینه نو", - "پاراگوئه", - "پاناما", - "پاکستان", - "پرتغال", - "پرو", - "پورتوریکو", - "تاجیکستان", - "تانزانیا", - "تایلند", - "جمهوری چین", - "ترکمنستان", - "ترکیه", - "ترینیداد و توباگو", - "توگو", - "تونس", - "تونگا", - "تووالو", - "تیمور شرقی", - "جامائیکا", - "جزایر سلیمان", - "جزایر مارشال", - "جمهوری چک", - "جمهوری دومینیکن", - "جیبوتی", - "چاد", - "چین", - "دانمارک", - "دومینیکا", - "جمهوری دومینیکن", - "رواندا", - "روسیه", - "رومانی", - "زامبیا", - "نیوزیلند", - "زیمباوه", - "جمهوری دموکراتیک کنگو (زئیر)", - "ژاپن", - "سائوتومه و پرینسیپ", - "ساحل عاج", - "ساموآی غربی", - "سن مارینو", - "سری‌لانکا", - "سنت کیتس و نویس", - "سنت لوسیا", - "سنت وینسنت و گرنادین‌ها", - "سنگاپور", - "سنگال", - "سوئد", - "سوئیس", - "سوازیلند", - "سودان", - "سودان جنوبی", - "سورینام", - "سوریه", - "سومالی", - "سیرالئون", - "سیشل", - "شیلی", - "صربستان", - "عراق", - "عربستان سعودی", - "عمان", - "غنا", - "فرانسه", - "فلسطین", - "فنلاند", - "فیجی", - "فیلیپین", - "قبرس", - "قرقیزستان", - "قزاقستان", - "قطر", - "کامبوج", - "کامرون", - "کانادا", - "کره جنوبی", - "کره شمالی", - "کرواسی", - "کاستاریکا", - "کلمبیا", - "جمهوری کنگو", - "جمهوری دموکراتیک کنگو", - "کنیا", - "کوبا", - "کوزوو", - "مجمع‌الجزایر قمر", - "کویت", - "کیپ ورد", - "کیریباتی", - "گابن", - "گامبیا", - "گرجستان", - "گرنادا", - "گرینلند(از مستعمرات دانمارک)", - "گواتمالا", - "گویان", - "گینه", - "گینه استوایی", - "گینه بیسائو", - "لائوس", - "لبنان", - "لتونی", - "لسوتو", - "لهستان", - "لوکزامبورگ", - "لیبریا", - "لیبی", - "لیتوانی", - "لیختن‌اشتاین", - "ماداگاسکار", - "مالاوی", - "مالت", - "مالدیو", - "مالزی", - "مالی", - "مجارستان", - "مراکش", - "مصر", - "مغولستان", - "مقدونیه شمالی", - "مکزیک", - "موریتانی", - "موریس", - "موزامبیک", - "مولداوی", - "موناکو", - "مونته‌نگرو", - "میانمار", - "ایالات فدرال میکرونزی", - "نائورو", - "نامیبیا", - "نپال", - "نروژ", - "نیجریه", - "نیکاراگوئه", - "نیوزیلند", - "واتیکان", - "وانواتو", - "ونزوئلا", - "ویتنام", - "هائیتی", - "هلند", - "هندوراس", - "هند", - "یمن", - "یونان", - ) - - city_formats = ("{{city_prefix}} {{first_name}}",) - street_name_formats = ( - "{{first_name}} {{street_suffix}}", - "{{last_name}} {{street_suffix}}", - ) - street_address_formats = ( - "{{building_number}} {{street_name}}", - "{{building_number}} {{street_name}} {{secondary_address}}", - ) - address_formats = ("{{street_address}}\n{{city}}, {{state}} {{postcode}}",) - secondary_address_formats = ("سوئیت ###", "واحد ###") - - def city_prefix(self) -> str: - return self.random_element(self.city_prefixes) - - def secondary_address(self) -> str: - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fa_IR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fa_IR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 4ef73de370bf7a1c5e5d382aa4cdd6fbd79c72da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6948 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fi_FI/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/fi_FI/__init__.py deleted file mode 100644 index 4b05d39..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/fi_FI/__init__.py +++ /dev/null @@ -1,800 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - building_number_formats = ("###", "##", "#") - - postcode_formats = ("#####",) - - city_formats = ("{{city_name}}",) - - street_name_formats = ("{{street_prefix}}{{street_suffix}}",) - - street_address_formats = ("{{street_name}} {{building_number}}",) - - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - # Data from: - # https://www.avoindata.fi/data/en/dataset/kunnat/resource/b1cb9870-191f-4616-9c53-5388b7ca6beb - cities = ( - "Alajärvi", - "Alavieska", - "Alavus", - "Asikkala", - "Askola", - "Aura", - "Akaa", - "Brändö", - "Eckerö", - "Enonkoski", - "Enontekiö", - "Espoo", - "Eura", - "Eurajoki", - "Evijärvi", - "Finström", - "Forssa", - "Föglö", - "Geta", - "Haapajärvi", - "Haapavesi", - "Hailuoto", - "Halsua", - "Hamina", - "Hammarland", - "Hankasalmi", - "Hanko", - "Harjavalta", - "Hartola", - "Hattula", - "Hausjärvi", - "Heinävesi", - "Helsinki", - "Vantaa", - "Hirvensalmi", - "Hollola", - "Honkajoki", - "Huittinen", - "Humppila", - "Hyrynsalmi", - "Hyvinkää", - "Hämeenkyrö", - "Hämeenlinna", - "Heinola", - "Ii", - "Iisalmi", - "Iitti", - "Ikaalinen", - "Ilmajoki", - "Ilomantsi", - "Inari", - "Inkoo", - "Isojoki", - "Isokyrö", - "Imatra", - "Janakkala", - "Joensuu", - "Jokioinen", - "Jomala", - "Joroinen", - "Joutsa", - "Juuka", - "Juupajoki", - "Juva", - "Jyväskylä", - "Jämijärvi", - "Jämsä", - "Järvenpää", - "Kaarina", - "Kaavi", - "Kajaani", - "Kalajoki", - "Kangasala", - "Kangasniemi", - "Kankaanpää", - "Kannonkoski", - "Kannus", - "Karijoki", - "Karkkila", - "Karstula", - "Karvia", - "Kaskinen", - "Kauhajoki", - "Kauhava", - "Kauniainen", - "Kaustinen", - "Keitele", - "Kemi", - "Keminmaa", - "Kempele", - "Kerava", - "Keuruu", - "Kihniö", - "Kinnula", - "Kirkkonummi", - "Kitee", - "Kittilä", - "Kiuruvesi", - "Kivijärvi", - "Kokemäki", - "Kokkola", - "Kolari", - "Konnevesi", - "Kontiolahti", - "Korsnäs", - "Koski Tl", - "Kotka", - "Kouvola", - "Kristiinankaupunki", - "Kruunupyy", - "Kuhmo", - "Kuhmoinen", - "Kumlinge", - "Kuopio", - "Kuortane", - "Kurikka", - "Kustavi", - "Kuusamo", - "Outokumpu", - "Kyyjärvi", - "Kärkölä", - "Kärsämäki", - "Kökar", - "Kemijärvi", - "Kemiönsaari", - "Lahti", - "Laihia", - "Laitila", - "Lapinlahti", - "Lappajärvi", - "Lappeenranta", - "Lapinjärvi", - "Lapua", - "Laukaa", - "Lemi", - "Lemland", - "Lempäälä", - "Leppävirta", - "Lestijärvi", - "Lieksa", - "Lieto", - "Liminka", - "Liperi", - "Loimaa", - "Loppi", - "Loviisa", - "Luhanka", - "Lumijoki", - "Lumparland", - "Luoto", - "Luumäki", - "Lohja", - "Parainen", - "Maalahti", - "Maarianhamina", - "Marttila", - "Masku", - "Merijärvi", - "Merikarvia", - "Miehikkälä", - "Mikkeli", - "Muhos", - "Multia", - "Muonio", - "Mustasaari", - "Muurame", - "Mynämäki", - "Myrskylä", - "Mäntsälä", - "Mäntyharju", - "Mänttä-Vilppula", - "Naantali", - "Nakkila", - "Nivala", - "Nokia", - "Nousiainen", - "Nurmes", - "Nurmijärvi", - "Närpiö", - "Orimattila", - "Oripää", - "Orivesi", - "Oulainen", - "Oulu", - "Padasjoki", - "Paimio", - "Paltamo", - "Parikkala", - "Parkano", - "Pelkosenniemi", - "Perho", - "Pertunmaa", - "Petäjävesi", - "Pieksämäki", - "Pielavesi", - "Pietarsaari", - "Pedersören kunta", - "Pihtipudas", - "Pirkkala", - "Polvijärvi", - "Pomarkku", - "Pori", - "Pornainen", - "Posio", - "Pudasjärvi", - "Pukkila", - "Punkalaidun", - "Puolanka", - "Puumala", - "Pyhtää", - "Pyhäjoki", - "Pyhäjärvi", - "Pyhäntä", - "Pyhäranta", - "Pälkäne", - "Pöytyä", - "Porvoo", - "Raahe", - "Raisio", - "Rantasalmi", - "Ranua", - "Rauma", - "Rautalampi", - "Rautavaara", - "Rautjärvi", - "Reisjärvi", - "Riihimäki", - "Ristijärvi", - "Rovaniemi", - "Ruokolahti", - "Ruovesi", - "Rusko", - "Rääkkylä", - "Raasepori", - "Saarijärvi", - "Salla", - "Salo", - "Saltvik", - "Sauvo", - "Savitaipale", - "Savonlinna", - "Savukoski", - "Seinäjoki", - "Sievi", - "Siikainen", - "Siikajoki", - "Siilinjärvi", - "Simo", - "Sipoo", - "Siuntio", - "Sodankylä", - "Soini", - "Somero", - "Sonkajärvi", - "Sotkamo", - "Sottunga", - "Sulkava", - "Sund", - "Suomussalmi", - "Suonenjoki", - "Sysmä", - "Säkylä", - "Vaala", - "Sastamala", - "Siikalatva", - "Taipalsaari", - "Taivalkoski", - "Taivassalo", - "Tammela", - "Tampere", - "Tervo", - "Tervola", - "Teuva", - "Tohmajärvi", - "Toholampi", - "Toivakka", - "Tornio", - "Turku", - "Pello", - "Tuusniemi", - "Tuusula", - "Tyrnävä", - "Ulvila", - "Urjala", - "Utajärvi", - "Utsjoki", - "Uurainen", - "Uusikaarlepyy", - "Uusikaupunki", - "Vaasa", - "Valkeakoski", - "Valtimo", - "Varkaus", - "Vehmaa", - "Vesanto", - "Vesilahti", - "Veteli", - "Vieremä", - "Vihti", - "Viitasaari", - "Vimpeli", - "Virolahti", - "Virrat", - "Värdö", - "Vöyri", - "Ylitornio", - "Ylivieska", - "Ylöjärvi", - "Ypäjä", - "Ähtäri", - "Äänekoski", - ) - - countries = ( - "Afganistan", - "Alankomaat", - "Albania", - "Algeria", - "Andorra", - "Angola", - "Antigua ja Barbuda", - "Argentiina", - "Armenia", - "Australia", - "Azerbaidžan", - "Bahama", - "Bahrain", - "Bangladesh", - "Barbados", - "Belgia", - "Belize", - "Benin", - "Bhutan", - "Bolivia", - "Bosnia ja Hertsegovina", - "Botswana", - "Brasilia", - "Brunei", - "Bulgaria", - "Burkina", - "Faso", - "Burundi", - "Chile", - "Costa", - "Rica", - "Djibouti", - "Dominica", - "Dominikaaninen tasavalta", - "Ecuador", - "Egypti", - "El", - "Salvador", - "Eritrea", - "Espanja", - "Etelä-Afrikka", - "Korean tasavalta", - "Etelä-Sudan", - "Etiopia", - "Fidži", - "Filippiinit", - "Gabon", - "Gambia", - "Georgia", - "Ghana", - "Grenada", - "Guatemala", - "Guinea-Bissau", - "Guinea", - "Guyana", - "Haiti", - "Honduras", - "Indonesia", - "Intia", - "Irak", - "Iran", - "Irlanti", - "Islanti", - "Israel", - "Italia", - "Itä-Timor", - "Itävalta", - "Jamaika", - "Japani", - "Jemen", - "Jordania", - "Kambodža", - "Kamerun", - "Kanada", - "Kap", - "Verde", - "Kazakstan", - "Kenia", - "Keski-Afrikan tasavalta", - "Kiina", - "Kirgisia", - "Kiribati", - "Kolumbia", - "Komorit", - "Kongon demokraattinen tasavalta", - "Kongon tasavalta", - "Kosovo", - "Kreikka", - "Kroatia", - "Kuuba", - "Kuwait", - "Kypros", - "Laos", - "Latvia", - "Lesotho", - "Libanon", - "Liberia", - "Libya", - "Liechtenstein", - "Liettua", - "Luxemburg", - "Madagaskar", - "Malawi", - "Malediivit", - "Malesia", - "Mali", - "Malta", - "Marokko", - "Marshallinsaaret", - "Mauritania", - "Mauritius", - "Meksiko", - "Mikronesia", - "Moldova", - "Monaco", - "Mongolia", - "Montenegro", - "Mosambik", - "Myanmar", - "Namibia", - "Nauru", - "Nepal", - "Nicaragua", - "Nigeria", - "Niger", - "Norja", - "Norsunluurannikko", - "Oman", - "Pakistan", - "Palau", - "Panama", - "Papua-Uusi-Guinea", - "Paraguay", - "Peru", - "Pohjois-Makedonia", - "Korean demokraattinen kansantasavalta", - "Portugali", - "Puola", - "Päiväntasaajan Guinea", - "Qatar", - "Ranska", - "Romania", - "Ruanda", - "Ruotsi", - "Saint Kitts ja Nevis", - "Saint Lucia", - "Saint Vincent ja Grenadiinit", - "Saksa", - "Salomonsaaret", - "Sambia", - "Samoa", - "San Marino", - "São Tomé ja Príncipe", - "Saudi-Arabia", - "Senegal", - "Serbia", - "Seychellit", - "Sierra", - "Leone", - "Singapore", - "Slovakia", - "Slovenia", - "Somalia", - "Sri", - "Lanka", - "Sudan", - "Suomi", - "Suriname", - "Swazimaa", - "Sveitsi", - "Syyria", - "Tadžikistan", - "Tansania", - "Tanska", - "Thaimaa", - "Togo", - "Tonga", - "Trinidad ja Tobago", - "Tšad", - "Tšekki", - "Tunisia", - "Turkki", - "Turkmenistan", - "Tuvalu", - "Uganda", - "Ukraina", - "Unkari", - "Uruguay", - "Uusi-Seelanti", - "Uzbekistan", - "Valko-Venäjä", - "Vanuatu", - "Vatikaanivaltio", - "Venezuela", - "Venäjä", - "Vietnam", - "Viro", - "Yhdistyneet arabiemiirikunnat", - "Yhdistynyt kuningaskunta", - "Yhdysvallat", - "Zimbabwe", - ) - - # Data from Finnish legislation: - # https://www.finlex.fi/fi/laki/alkup/2019/20190978 - states = ( - "Ahvenanmaa", - "Etelä-Karjala", - "Etelä-Pohjanmaa", - "Etelä-Savo", - "Kainuu", - "Kanta-Häme", - "Keski-Pohjanmaa", - "Keski-Suomi", - "Kymenlaakso", - "Lappi", - "Pirkanmaa", - "Pohjanmaa", - "Pohjois-Karjala", - "Pohjois-Pohjanmaa", - "Pohjois-Savo", - "Päijät-Häme", - "Satakunta", - "Uusimaa", - "Varsinais-Suomi", - ) - - street_suffixes = ("tie", "katu", "polku", "kuja", "bulevardi") - - # Prefixes parsed from a street list of Helsinki: - # http://kartta.hel.fi/ws/geoserver/avoindata/wfs?outputFormat=application/json&REQUEST=GetFeature&typeNames=avoindata:Helsinki_osoiteluettelo - - street_prefixes = ( - "Adolf Lindforsin ", - "Agnes Sjöbergin ", - "Agnetan", - "Agricolan", - "Ahomäen", - "Ahvenkosken", - "Aidasmäen", - "Agroksen", - "Agronomin", - "Ahdekaunokin", - "Bertel Jungin ", - "Bertha Pauligin ", - "Betlehemin", - "Betoni", - "Biologin", - "Birger Kaipiaisen ", - "Bysantin", - "Böstaksen", - "Bengalin", - "Benktan", - "Bergan", - "Caloniuksen", - "Capellan puisto", - "Castrénin", - "Chydeniuksen", - "Cygnaeuksen", - "Dagmarin", - "Damaskuksen", - "Degermosan", - "Disan", - "Dosentin", - "Dunckerin", - "Döbelnin", - "Ehrensvärdin", - "Eino Leinon ", - "Elimäen", - "Elisabeth Kochin ", - "Eljaksen", - "Elon", - "Elon", - "Edelfeltin", - "Eduskunta", - "Eerik Pyhän ", - "Franzénin", - "Fredrikin", - "Freesen", - "Fabianin", - "Fagotti", - "Fahlanderin puisto", - "Fallin", - "Fallkullan", - "Fallpakan", - "Fastbölen", - "Gadolinin", - "Gneissi", - "Granfeltin", - "Gunillan", - "Gunnel Nymanin ", - "Graniitti", - "Gustav Pauligin ", - "Gyldénin", - "Gotlannin", - "Haapa", - "Haagan pappilan", - "Haahka", - "Haakoninlahden", - "Haaksi", - "Hankasuon", - "Hannukselan", - "Harakkamyllyn", - "Harava", - "Harbon", - "Ilmattaren", - "Ilomäen", - "Ilotulitus", - "Iltaruskon", - "Iltatähden", - "Ilves", - "Immolan", - "Ilkan", - "Ida Ekmanin ", - "Ies", - "Jälsi", - "Jämsän", - "Jänkä", - "Jänne", - "Järkäle", - "Jätkäsaaren", - "Jättiläisen", - "Jyvä", - "Jägerhornin", - "Jäkälä", - "Kukkaniityn", - "Kolsin", - "Kolu", - "Kolvi", - "Kuhankeittäjän", - "Katajaharjun", - "Kiitäjän", - "Kilpolan", - "Kimalais", - "Kimmon", - "Laajasalon", - "Laakavuoren", - "Lemun", - "Lentokapteenin ", - "Lepolan", - "Louhen", - "Louhikko", - "Lukkarimäen", - "Laurinniityn", - "Lautamiehen", - "Mamsellimyllyn", - "Mannerheimin", - "Maanmittarin", - "Maapadon", - "Maa", - "Maasalon", - "Maasälvän", - "Maatullin", - "Malminkartanon", - "Maneesi", - "Niittylän", - "Niemi", - "Niitynperän", - "Nikon", - "Nils Westermarckin ", - "Nordenskiöldin", - "Nelikko", - "Neon", - "Nervanderin", - "Neulapadon", - "Ostos", - "Orapihlaja", - "Oras", - "Orava", - "Osmon", - "Osuuskunnan", - "Orisaaren", - "Ormus", - "Orvokki", - "Oterman", - "Pore", - "Porin", - "Porkkalan", - "Pyörökiven", - "Puusepän", - "Puuska", - "Pohjolan", - "Poikasaarten", - "Purjetuulen", - "Puroniityn", - "Rukkilan", - "Ruko", - "Rukoushuoneen", - "Runebergin", - "Runoilijan", - "Runokylän", - "Runonlaulajan", - "Rantavaraston", - "Rapakiven", - "Rapolan", - "Santerlan", - "Saparon", - "Sapilas", - "Saramäen", - "Saanatunturin", - "Sade", - "Sahaajan", - "Salakka", - "Salama", - "Salava", - "Tuomarinkylän", - "Tuulilasin", - "Taavetti Laitisen ", - "Taavin", - "Tahti", - "Taimiston", - "Tukkisillan", - "Tuohikoivun", - "Tyynelän", - "Tyynylaavan", - "Uussillan", - "Urheilu", - "Urkurin", - "Urpu", - "Uskalikon", - "Usva", - "Uudenkaupungin", - "Uunilinnun", - "Uunisepän", - "Uurtajan", - "Vanha Raja", - "Veropellon", - "Veräjämäen", - "Vesakko", - "Vesalan", - "Vellikellon", - "Verkko", - "Verso", - "Vaakalinnun", - "Vaarna", - "Wavulinin", - "Walentin Chorellin ", - "Wallinin", - "Waseniuksen puisto", - "Wecksellin", - "Willebrandin", - "Winqvistin", - "Wäinö Aaltosen ", - "Werner Wirénin ", - "Yhteiskoulun", - "Ylipalon", - "Yllästunturin", - "Ylä-Fallin ", - "Yläkasken", - "Ylänkö", - "Ylätuvan", - "Yrjö-Koskisen ", - "Yrjön", - "Yrttimaan", - "Zaidan", - ) - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes) - - def city_name(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fi_FI/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fi_FI/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index e2f3437f99a10a400dc451e2a8097ce014045780..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10119 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fil_PH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/fil_PH/__init__.py deleted file mode 100644 index da54e58..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/fil_PH/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from ..en_PH import Provider as EnPhAddressProvider - - -class Provider(EnPhAddressProvider): - """No difference from Address Provider for en_PH locale""" - - pass diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fil_PH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fil_PH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f71e9a6986aa7df6003f70399ee0d30a046a14c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 523 zcmXw0Jxjzu5Zz638qZG<`(PoY@D@KxIj|6|jw`Iv3^6+~(Igu;@h}!v_aFQNHe&0) zu(35D2v&B&X=CMPFSo_ad(6)4o3}5^%U#l(=kCRWN}rmvq0{EcmIC*L6HXJ7QqQ2o zAjgCoW5P`|p3Lbzk5-o3`7#u9X>AXs7{wfA&`!~bwq&xVz&%0YQBFLAQ_rjn*Obku z+x>xXcpQc(F$>TMrAVDa&LtLwGn?v!LOPhi@We?(;3qh6t=b02{1gG|Ey0oQu_QiY zc~wRt+w1M@vLY^VJNJW2{~QYz`j;q~YSIoA%%7@fVVo$%3?R None: - super().__init__(*args, **kwargs) - - def street_prefix(self) -> str: - """ - :example: 'rue' - """ - return self.random_element(self.street_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CA/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CA/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index f66e91e707702e5170985f8035f4cc9e4ca5cb1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1916 zcmaJCOK%fLc-H&y+SmltKtiFdd8p}D-B_iSc&Mrh2vvo|p-NP#ds&Tl#$m~N*UapO zc#}vzL@FH0t%4(m9vX4!q5mMqUO*g>M(wHUft#fi73I`##!lo!s3Yw+^SvK4-?zV4 zt7RnDZ{<5TiU|FskRdRK`}TP_JVFE!EkbS0(=-7_>)Kwl$bY#?G%9%>axWyA0)_tA>xRp*gYWil0~B+T!^ zD5Ao+ibI-P^EixCH!rH4y16-<04@qMI5%c+;O2#ysSJvOW~R0tM$~n5p#@t!Tz_89T$|@i#tl&0nhq18mGL17TO3fsT=rU$Rm@LUs@Xm0&n8}E66m4xP z4{h+gwMm_-C|-%0l%+Tyzm`NvyBSjVDhpE_$KhQtXV2m|Op_+gk2aEQnc@uCSQ&DVW zF<#D6QJjlY%)%s_05MerlDW577za|ABpKwT68JXT+HBH5ROT^X!YLHt9*%|ieYTXu zP9d+YuJV*on))3^Tj9$3I#6062C+!hR_qY%AHT0u_(3%#awZhNZLulhJ zbZ5gU2$N?W%7pFvA-pc%cMM^08nxI-FvCs(5GCIaAUN*(9E_k^t=8LFuisAEw4Np@ zym`D*U)ViBkKds|T5pE|OFBcOnWXh;Xo}@}6gKOfZhAY3Kb!vae4U3Wbvrm%!i$vG zTX>1GIw+|r!Rwe1c(p)h{oQ@}s-+WO|o%1IYXsfHyt#hh2S8d~Q!Z zKKIOao_zSicD8|m_SH;|EctC;1n>y0p*wpu1Hy0tRSvKN>*-JuW{j4fE<;h&x=dGa zyA#pNwJDejQ+sr%^kHazlC*sq(Kd}!F}ANQD0eh=8k}%xxW>)`6xDqq`SHDk_t9si zmb|VW>f7kZ_{*^~&&SR@`TXVC3(wD9crkYInSGJTSK%C%_bj{4_eI(F+X;aI1?P(I z-_39|hMtoG>YKWY3vM8RqkJ@+|}GxK>i^30)RIgsBe{zS-si*q@lJ-dBW<=^(PM>wR+$5 zYx+s+nK98XSH`X0O#hT-e*8G-BiMeKSKF@(uO-&E4D-@s{x5<})kV2!IHs`DZYPWv zRlvfeF+4lP6P4@nHN0E>O*GJwSF~e)F{t8~>;j$# diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CH/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CH/__init__.py deleted file mode 100644 index 8899604..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CH/__init__.py +++ /dev/null @@ -1,367 +0,0 @@ -from typing import Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_suffixes = ( - "-des-Bois", - "-les-Bains", - "-la-Ville", - "-Dessus", - "-Dessous", - " am Rhein", - " am See", - " am Albis", - " an der Aare", - ) - city_prefixes = ("Saint ", "Sainte ", "San ", "Ober", "Unter") - street_prefixes = ("rue", "rue", "chemin", "avenue", "boulevard") - - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - building_number_formats = ("%", "%#", "%#", "%#", "%##") - - city_formats = ( - "{{last_name}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}-près-{{last_name}}", - "{{last_name}}-sur-{{last_name}}", - "{{city_prefix}}{{last_name}}", - "{{last_name}} ({{canton_code}})", - ) - - street_address_formats = ( - "{{street_name}}", - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}}", - "{{street_name}} {{building_number}}", - ) - street_name_formats = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{first_name}} {{last_name}}", - "{{street_prefix}} de {{last_name}}", - ) - - postcode_formats = ( - "1###", - "2###", - "3###", - "4###", - "5###", - "6###", - "7###", - "8###", - "9###", - ) - - cantons = ( - ("AG", "Argovie"), - ("AI", "Appenzell Rhodes-Intérieures"), - ("AR", "Appenzell Rhodes-Extérieures"), - ("BE", "Berne"), - ("BL", "Bâle-Campagne"), - ("BS", "Bâle-Ville"), - ("FR", "Fribourg"), - ("GE", "Genève"), - ("GL", "Glaris"), - ("GR", "Grisons"), - ("JU", "Jura"), - ("LU", "Lucerne"), - ("NE", "Neuchâtel"), - ("NW", "Nidwald"), - ("OW", "Obwald"), - ("SG", "Saint-Gall"), - ("SH", "Schaffhouse"), - ("SO", "Soleure"), - ("SZ", "Schwytz"), - ("TG", "Thurgovie"), - ("TI", "Tessin"), - ("UR", "Uri"), - ("VD", "Vaud"), - ("VS", "Valais"), - ("ZG", "Zoug"), - ("ZH", "Zurich"), - ) - - countries = ( - "Afghanistan", - "Afrique du sud", - "Albanie", - "Algérie", - "Allemagne", - "Andorre", - "Angola", - "Anguilla", - "Antarctique", - "Antigua et Barbuda", - "Antilles néerlandaises", - "Arabie saoudite", - "Argentine", - "Arménie", - "Aruba", - "Australie", - "Autriche", - "Azerbaïdjan", - "Bahamas", - "Bahrain", - "Bangladesh", - "Belgique", - "Belize", - "Benin", - "Bermudes (Les)", - "Bhoutan", - "Biélorussie", - "Bolivie", - "Bosnie-Herzégovine", - "Botswana", - "Bouvet (Îles)", - "Brunei", - "Brésil", - "Bulgarie", - "Burkina Faso", - "Burundi", - "Cambodge", - "Cameroun", - "Canada", - "Cap Vert", - "Cayman (Îles)", - "Chili", - "Chine (Rép. pop.)", - "Christmas (Île)", - "Chypre", - "Cocos (Îles)", - "Colombie", - "Comores", - "Cook (Îles)", - "Corée du Nord", - "Corée, Sud", - "Costa Rica", - "Croatie", - "Cuba", - "Côte d'Ivoire", - "Danemark", - "Djibouti", - "Dominique", - "Égypte", - "El Salvador", - "Émirats arabes unis", - "Équateur", - "Érythrée", - "Espagne", - "Estonie", - "États-Unis", - "Ethiopie", - "Falkland (Île)", - "Fidji (République des)", - "Finlande", - "France", - "Féroé (Îles)", - "Gabon", - "Gambie", - "Ghana", - "Gibraltar", - "Grenade", - "Groenland", - "Grèce", - "Guadeloupe", - "Guam", - "Guatemala", - "Guinée", - "Guinée Equatoriale", - "Guinée-Bissau", - "Guyane", - "Guyane française", - "Géorgie", - "Géorgie du Sud et Sandwich du Sud (Îles)", - "Haïti", - "Heard et McDonald (Îles)", - "Honduras", - "Hong Kong", - "Hongrie", - "Îles Mineures Éloignées des États-Unis", - "Inde", - "Indonésie", - "Irak", - "Iran", - "Irlande", - "Islande", - "Israël", - "Italie", - "Jamaïque", - "Japon", - "Jordanie", - "Kazakhstan", - "Kenya", - "Kirghizistan", - "Kiribati", - "Koweit", - "La Barbad", - "Laos", - "Lesotho", - "Lettonie", - "Liban", - "Libye", - "Libéria", - "Liechtenstein", - "Lithuanie", - "Luxembourg", - "Macau", - "Macédoine du Nord", - "Madagascar", - "Malaisie", - "Malawi", - "Maldives (Îles)", - "Mali", - "Malte", - "Mariannes du Nord (Îles)", - "Maroc", - "Marshall (Îles)", - "Martinique", - "Maurice", - "Mauritanie", - "Mayotte", - "Mexique", - "Micronésie (États fédérés de)", - "Moldavie", - "Monaco", - "Mongolie", - "Montserrat", - "Mozambique", - "Myanmar", - "Namibie", - "Nauru", - "Nepal", - "Nicaragua", - "Niger", - "Nigeria", - "Niue", - "Norfolk (Îles)", - "Norvège", - "Nouvelle Calédonie", - "Nouvelle-Zélande", - "Oman", - "Ouganda", - "Ouzbékistan", - "Pakistan", - "Palau", - "Panama", - "Papouasie-Nouvelle-Guinée", - "Paraguay", - "Pays-Bas", - "Philippines", - "Pitcairn (Îles)", - "Pologne", - "Polynésie française", - "Porto Rico", - "Portugal", - "Pérou", - "Qatar", - "Roumanie", - "Royaume-Uni", - "Russie", - "Rwanda", - "Rép. Dém. du Congo", - "République centrafricaine", - "République Dominicaine", - "République tchèque", - "Réunion (La)", - "Sahara Occidental", - "Saint Pierre et Miquelon", - "Saint Vincent et les Grenadines", - "Saint-Kitts et Nevis", - "Saint-Marin (Rép. de)", - "Sainte Hélène", - "Sainte Lucie", - "Samoa", - "Samoa", - "Seychelles", - "Sierra Leone", - "Singapour", - "Slovaquie", - "Slovénie", - "Somalie", - "Soudan", - "Sri Lanka", - "Suisse", - "Suriname", - "Suède", - "Svalbard et Jan Mayen (Îles)", - "Swaziland", - "Syrie", - "São Tomé et Príncipe (Rép.)", - "Sénégal", - "Tadjikistan", - "Taiwan", - "Tanzanie", - "Tchad", - "Territoire britannique de l'océan Indien", - "Territoires français du sud", - "Thailande", - "Timor", - "Togo", - "Tokelau", - "Tonga", - "Trinité et Tobago", - "Tunisie", - "Turkménistan", - "Turks et Caïques (Îles)", - "Turquie", - "Tuvalu", - "Ukraine", - "Uruguay", - "Vanuatu", - "Vatican (Etat du)", - "Venezuela", - "Vierges (Îles)", - "Vierges britanniques (Îles)", - "Vietnam", - "Wallis et Futuna (Îles)", - "Yemen", - "Yougoslavie", - "Zambie", - "Zaïre", - "Zimbabwe", - ) - - def street_prefix(self) -> str: - """ - :example: 'rue' - """ - return self.random_element(self.street_prefixes) - - def city_prefix(self) -> str: - """ - :example: 'rue' - """ - return self.random_element(self.city_prefixes) - - def canton(self) -> Tuple[str, str]: - """ - Randomly returns a swiss canton ('Abbreviated' , 'Name'). - :example: ('VD' . 'Vaud') - """ - return self.random_element(self.cantons) - - def administrative_unit(self) -> str: - """ - Randomly returns a Swiss canton name. - :example: 'Vaud' - """ - return self.canton()[1] - - canton_name = administrative_unit - - def canton_code(self) -> str: - """ - Randomly returns a Swiss canton code. - :example: 'VD' - """ - return self.canton()[0] diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CH/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_CH/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 8b3c3e6cae5e37df6badd7134113d670ef861e26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6579 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 L>~{(J+Nu8sXe4Z< diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_DZ/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_DZ/__init__.py deleted file mode 100644 index b93b028..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_DZ/__init__.py +++ /dev/null @@ -1,355 +0,0 @@ -from typing import Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - """Address provider for fr_DZ locale.""" - - # Source: https://fr.wikipedia.org/wiki/Wilayas_d%27Alg%C3%A9rie - wilayas: Tuple[str, ...] = ( - "Adrar", - "Chlef", - "Laghouat", - "Oum El Bouaghi", - "Batna", - "Béjaïa", - "Biskra", - "Béchar", - "Blida", - "Bouira", - "Tamanrasset", - "Tébessa", - "Tlemcen", - "Tiaret", - "Tizi Ouzou", - "Alger", - "Djelfa", - "Jijel", - "Sétif", - "Saïda", - "Skikda", - "Sidi Bel Abbès", - "Annaba", - "Guelma", - "Constantine", - "Médéa", - "Mostaganem", - "M'Sila", - "Mascara", - "Ouargla", - "Oran", - "El Bayadh", - "Illizi", - "Bordj Bou Arreridj", - "Boumerdès", - "El Tarf", - "Tindouf", - "Tissemsilt", - "El Oued", - "Khenchela", - "Souk Ahras", - "Tipaza", - "Mila", - "Aïn Defla", - "Naâma", - "Aïn Témouchent", - "Ghardaïa", - "Relizane", - "Timimoun", - "Bordj Badji Mokhtar", - "Ouled Djellal", - "Béni Abbès", - "In Salah", - "In Guezzam", - "Touggourt", - "Djanet", - "El Meghaier", - "El Menia", - ) - - # Source: https://github.com/othmanus/algeria-cities - cities: Tuple[str, ...] = ( - # Wilaya 01 - Adrar - "Adrar", - "Reggane", - "Aoulef", - "Timimoun", - # Wilaya 02 - Chlef - "Chlef", - "Ténès", - "Boukadir", - # Wilaya 03 - Laghouat - "Laghouat", - "Aflou", - "Aïn Madhi", - # Wilaya 04 - Oum El Bouaghi - "Oum El Bouaghi", - "Aïn Mlila", - "Aïn Beïda", - # Wilaya 05 - Batna - "Batna", - "Barika", - "Aïn Touta", - "Arris", - "N'Gaous", - # Wilaya 06 - Béjaïa - "Béjaïa", - "Akbou", - "Kherrata", - "Taklast", - "Amizour", - # Wilaya 07 - Biskra - "Biskra", - "Tolga", - "Sidi Okba", - "Zéribet El Oued", - # Wilaya 08 - Béchar - "Béchar", - "Taghit", - "Kenadsa", - # Wilaya 09 - Blida - "Blida", - "Boufarik", - "Larbaa", - "Bouinan", - # Wilaya 10 - Bouira - "Bouira", - "Sour El Ghozlane", - "Aïn Bessem", - # Wilaya 11 - Tamanrasset - "Tamanrasset", - "Ablessa", - # Wilaya 12 - Tébessa - "Tébessa", - "Bir El Ater", - "El Aouinet", - # Wilaya 13 - Tlemcen - "Tlemcen", - "Maghnia", - "Ghazaouet", - "Nedroma", - "Marsa Ben M'Hidi", - # Wilaya 14 - Tiaret - "Tiaret", - "Sougueur", - "Frenda", - "Takhmaret", - # Wilaya 15 - Tizi Ouzou - "Tizi Ouzou", - "Draa Ben Khedda", - "Azeffoun", - "Boughni", - "Tigzirt", - # Wilaya 16 - Alger - "Alger Centre", - "Bab El Oued", - "La Casbah", - "Sidi M'Hamed", - "Hussein Dey", - "El Harrach", - "Rouiba", - "Zéralda", - "Bir Mourad Raïs", - "Bouzaréah", - "Chéraga", - "Draria", - "Bab Ezzouar", - "Bordj El Kiffan", - "Dar El Beïda", - "Aïn Taya", - # Wilaya 17 - Djelfa - "Djelfa", - "Messaad", - "Aïn Oussera", - "Hassi Bahbah", - # Wilaya 18 - Jijel - "Jijel", - "El Milia", - "Taher", - "Ziama Mansouriah", - # Wilaya 19 - Sétif - "Sétif", - "El Eulma", - "Djemila", - "Aïn Arnat", - "Bougaa", - # Wilaya 20 - Saïda - "Saïda", - "Aïn El Hadjar", - # Wilaya 21 - Skikda - "Skikda", - "Azzaba", - "El Harrouch", - "Collo", - # Wilaya 22 - Sidi Bel Abbès - "Sidi Bel Abbès", - "Aïn El Berd", - "Marhoum", - "Tlemnia", - # Wilaya 23 - Annaba - "Annaba", - "El Bouni", - "Aïn Berda", - "Sidi Amar", - # Wilaya 24 - Guelma - "Guelma", - "Bouchegouf", - "Hammam Debagh", - # Wilaya 25 - Constantine - "Constantine", - "El Khroub", - "Didouche Mourad", - "Zighoud Youcef", - "Aïn Abid", - # Wilaya 26 - Médéa - "Médéa", - "Ksar El Boukhari", - "Berrouaghia", - "Boughzoul", - # Wilaya 27 - Mostaganem - "Mostaganem", - "Sidi Ali", - "Aïn Tédeles", - "Mazagran", - # Wilaya 28 - M'Sila - "M'Sila", - "Bou Saâda", - "Sidi Aïssa", - "Aïn El Melh", - # Wilaya 29 - Mascara - "Mascara", - "Tighennif", - "Bouhanifia", - "Sig", - # Wilaya 30 - Ouargla - "Ouargla", - "Hassi Messaoud", - "Aïn El Beïda", - # Wilaya 31 - Oran - "Oran", - "Arzew", - "Aïn El Turk", - "Bir El Djir", - "Mers El Hadjadj", - "Es Sénia", - # Wilaya 32 - El Bayadh - "El Bayadh", - "Brezina", - # Wilaya 33 - Illizi - "Illizi", - "In Amenas", - # Wilaya 34 - Bordj Bou Arreridj - "Bordj Bou Arreridj", - "Ras El Oued", - "Aïn Taghrout", - # Wilaya 35 - Boumerdès - "Boumerdès", - "Khemis El Khechna", - "Bordj Menaïel", - "Dellys", - # Wilaya 36 - El Tarf - "El Tarf", - "El Kala", - "Ben M'Hidi", - # Wilaya 37 - Tindouf - "Tindouf", - # Wilaya 38 - Tissemsilt - "Tissemsilt", - "Khemisti", - # Wilaya 39 - El Oued - "El Oued", - "Guemar", - "Hassi Khalifa", - "Reguiba", - # Wilaya 40 - Khenchela - "Khenchela", - "Babar", - # Wilaya 41 - Souk Ahras - "Souk Ahras", - "Mdaourouch", - "Sedrata", - # Wilaya 42 - Tipaza - "Tipaza", - "Cherchell", - "Bou Ismaïl", - "Koléa", - # Wilaya 43 - Mila - "Mila", - "Ferdjioua", - "Chelghoum Laïd", - # Wilaya 44 - Aïn Defla - "Aïn Defla", - "Khemis Miliana", - "El Attaf", - "Miliana", - # Wilaya 45 - Naâma - "Naâma", - "Mecheria", - "Aïn Sefra", - # Wilaya 46 - Aïn Témouchent - "Aïn Témouchent", - "Béni Saf", - "Hammam Bou Hadjar", - # Wilaya 47 - Ghardaïa - "Ghardaïa", - "Guerrara", - "Metlili", - "El Atteuf", - # Wilaya 48 - Relizane - "Relizane", - "Mazouna", - "Oued Rhiou", - # New wilayas - "Timimoun", - "Bordj Badji Mokhtar", - "Ouled Djellal", - "Béni Abbès", - "In Salah", - "In Guezzam", - "Touggourt", - "Djanet", - "El Meghaier", - "El Menia", - ) - - street_prefixes: Tuple[str, ...] = ( - "rue", - "avenue", - "boulevard", - "chemin", - ) - - building_number_formats: Tuple[str, ...] = ("%", "%#", "%#", "%##") - - postcode_formats: Tuple[str, ...] = tuple(f"{i:02d}###" for i in range(1, 49)) - - street_name_formats: Tuple[str, ...] = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{first_name}} {{last_name}}", - "{{street_prefix}} de {{last_name}}", - ) - - street_address_formats: Tuple[str, ...] = ( - "{{building_number}} {{street_name}}", - "{{building_number}}, {{street_name}}", - ) - - address_formats: Tuple[str, ...] = ( - "{{street_address}} {{city}}", - "{{street_address}} - {{city}}", - "{{street_address}} {{city}}, {{administrative_unit}}", - "{{street_address}}, {{city}}, {{administrative_unit}}", - "{{street_address}} {{city}} - {{administrative_unit}}", - ) - - def street_prefix(self) -> str: - return self.random_element(self.street_prefixes) - - def city(self) -> str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.wilayas) - - wilaya = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_DZ/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_DZ/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index cb5d33190e5ce1ce3a6893dabb0d5a5a30a3920d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5108 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 Yd-xyP)1RkbO~szP`Ga+hewD=k07>C0ssI20 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_FR/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_FR/__init__.py deleted file mode 100644 index 2ee2330..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_FR/__init__.py +++ /dev/null @@ -1,478 +0,0 @@ -from typing import Tuple - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_suffixes = ( - "Ville", - "Bourg", - "-les-Bains", - "-sur-Mer", - "-la-Forêt", - "boeuf", - "nec", - "dan", - ) - city_prefixes = ("Saint", "Sainte") - street_prefixes = ("rue", "rue", "chemin", "avenue", "boulevard") - city_formats = ( - "{{city_prefix}} {{first_name}}", - "{{city_prefix}} {{first_name}}{{city_suffix}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}{{city_suffix}}", - "{{last_name}}-sur-{{last_name}}", - ) - street_name_formats = ( - "{{street_prefix}} {{last_name}}", - "{{street_prefix}} {{first_name}} {{last_name}}", - "{{street_prefix}} de {{last_name}}", - ) - - street_address_formats = ( - "{{street_name}}", - "{{building_number}}, {{street_name}}", - "{{building_number}}, {{street_name}}", - "{{building_number}}, {{street_name}}", - "{{building_number}}, {{street_name}}", - "{{building_number}}, {{street_name}}", - ) - - address_formats = ("{{street_address}}\n{{postcode}} {{city}}",) - - building_number_formats = ("%", "%#", "%#", "%#", "%##") - countries = ( - "Afghanistan", - "Afrique du sud", - "Albanie", - "Algérie", - "Allemagne", - "Andorre", - "Angola", - "Anguilla", - "Antarctique", - "Antigua et Barbuda", - "Antilles néerlandaises", - "Arabie saoudite", - "Argentine", - "Arménie", - "Aruba", - "Australie", - "Autriche", - "Azerbaïdjan", - "Bahamas", - "Bahrain", - "Bangladesh", - "Belgique", - "Belize", - "Benin", - "Bermudes (Les)", - "Bhoutan", - "Biélorussie", - "Bolivie", - "Bosnie-Herzégovine", - "Botswana", - "Bouvet (Îles)", - "Brunei", - "Brésil", - "Bulgarie", - "Burkina Faso", - "Burundi", - "Cambodge", - "Cameroun", - "Canada", - "Cap Vert", - "Cayman (Îles)", - "Chili", - "Chine (Rép. pop.)", - "Christmas (Île)", - "Chypre", - "Cocos (Îles)", - "Colombie", - "Comores", - "Cook (Îles)", - "Corée du Nord", - "Corée, Sud", - "Costa Rica", - "Croatie", - "Cuba", - "Côte d'Ivoire", - "Danemark", - "Djibouti", - "Dominique", - "Égypte", - "El Salvador", - "Émirats arabes unis", - "Équateur", - "Érythrée", - "Espagne", - "Estonie", - "États-Unis", - "Ethiopie", - "Falkland (Île)", - "Fidji (République des)", - "Finlande", - "France", - "Féroé (Îles)", - "Gabon", - "Gambie", - "Ghana", - "Gibraltar", - "Grenade", - "Groenland", - "Grèce", - "Guadeloupe", - "Guam", - "Guatemala", - "Guinée", - "Guinée Equatoriale", - "Guinée-Bissau", - "Guyane", - "Guyane française", - "Géorgie", - "Géorgie du Sud et Sandwich du Sud (Îles)", - "Haïti", - "Heard et McDonald (Îles)", - "Honduras", - "Hong Kong", - "Hongrie", - "Îles Mineures Éloignées des États-Unis", - "Inde", - "Indonésie", - "Irak", - "Iran", - "Irlande", - "Islande", - "Israël", - "Italie", - "Jamaïque", - "Japon", - "Jordanie", - "Kazakhstan", - "Kenya", - "Kirghizistan", - "Kiribati", - "Koweit", - "La Barbad", - "Laos", - "Lesotho", - "Lettonie", - "Liban", - "Libye", - "Libéria", - "Liechtenstein", - "Lithuanie", - "Luxembourg", - "Macau", - "Macédoine du Nord", - "Madagascar", - "Malaisie", - "Malawi", - "Maldives (Îles)", - "Mali", - "Malte", - "Mariannes du Nord (Îles)", - "Maroc", - "Marshall (Îles)", - "Martinique", - "Maurice", - "Mauritanie", - "Mayotte", - "Mexique", - "Micronésie (États fédérés de)", - "Moldavie", - "Monaco", - "Mongolie", - "Montserrat", - "Mozambique", - "Myanmar", - "Namibie", - "Nauru", - "Nepal", - "Nicaragua", - "Niger", - "Nigeria", - "Niue", - "Norfolk (Îles)", - "Norvège", - "Nouvelle Calédonie", - "Nouvelle-Zélande", - "Oman", - "Ouganda", - "Ouzbékistan", - "Pakistan", - "Palau", - "Panama", - "Papouasie-Nouvelle-Guinée", - "Paraguay", - "Pays-Bas", - "Philippines", - "Pitcairn (Îles)", - "Pologne", - "Polynésie française", - "Porto Rico", - "Portugal", - "Pérou", - "Qatar", - "Roumanie", - "Royaume-Uni", - "Russie", - "Rwanda", - "Rép. Dém. du Congo", - "République centrafricaine", - "République Dominicaine", - "République tchèque", - "Réunion (La)", - "Sahara Occidental", - "Saint Pierre et Miquelon", - "Saint Vincent et les Grenadines", - "Saint-Kitts et Nevis", - "Saint-Marin (Rép. de)", - "Sainte Hélène", - "Sainte Lucie", - "Samoa", - "Samoa", - "Seychelles", - "Sierra Leone", - "Singapour", - "Slovaquie", - "Slovénie", - "Somalie", - "Soudan", - "Sri Lanka", - "Suisse", - "Suriname", - "Suède", - "Svalbard et Jan Mayen (Îles)", - "Swaziland", - "Syrie", - "São Tomé et Príncipe (Rép.)", - "Sénégal", - "Tadjikistan", - "Taiwan", - "Tanzanie", - "Tchad", - "Territoire britannique de l'océan Indien", - "Territoires français du sud", - "Thailande", - "Timor", - "Togo", - "Tokelau", - "Tonga", - "Trinité et Tobago", - "Tunisie", - "Turkménistan", - "Turks et Caïques (Îles)", - "Turquie", - "Tuvalu", - "Ukraine", - "Uruguay", - "Vanuatu", - "Vatican (Etat du)", - "Venezuela", - "Vierges (Îles)", - "Vierges britanniques (Îles)", - "Vietnam", - "Wallis et Futuna (Îles)", - "Yemen", - "Yougoslavie", - "Zambie", - "Zaïre", - "Zimbabwe", - ) - regions = ( - "Alsace", - "Aquitaine", - "Auvergne", - "Bourgogne", - "Bretagne", - "Centre", - "Champagne-Ardenne", - "Corse", - "Franche-Comté", - "Île-de-France", - "Languedoc-Roussillon", - "Limousin", - "Lorraine", - "Midi-Pyrénées", - "Nord-Pas-de-Calais", - "Basse-Normandie", - "Haute-Normandie", - "Pays-de-Loire", - "Picardie", - "Poitou-Charentes", - "Province-Alpes-Côte d'Azur", - "Rhone-Alpes", - "Guadeloupe", - "Martinique", - "Guyane", - "Réunion", - "Saint-Pierre-et-Miquelon", - "Mayotte", - "Saint-Barthélémy", - "Saint-Martin", - "Wallis-et-Futuna", - "Polynésie française", - "Nouvelle-Calédonie", - ) - - departments = ( - ("01", "Ain"), - ("02", "Aisne"), - ("03", "Allier"), - ("04", "Alpes-de-Haute-Provence"), - ("05", "Hautes-Alpes"), - ("06", "Alpes-Maritimes"), - ("07", "Ardèche"), - ("08", "Ardennes"), - ("09", "Ariège"), - ("10", "Aube"), - ("11", "Aude"), - ("12", "Aveyron"), - ("13", "Bouches-du-Rhône"), - ("14", "Calvados"), - ("15", "Cantal"), - ("16", "Charente"), - ("17", "Charente-Maritime"), - ("18", "Cher"), - ("19", "Corrèze"), - ("2A", "Corse-du-Sud"), - ("2B", "Haute-Corse"), - ("21", "Côte-d'Or"), - ("22", "Côtes-d'Armor"), - ("23", "Creuse"), - ("24", "Dordogne"), - ("25", "Doubs"), - ("26", "Drôme"), - ("27", "Eure"), - ("28", "Eure-et-Loir"), - ("29", "Finistère"), - ("30", "Gard"), - ("31", "Haute-Garonne"), - ("32", "Gers"), - ("33", "Gironde"), - ("34", "Hérault"), - ("35", "Ille-et-Vilaine"), - ("36", "Indre"), - ("37", "Indre-et-Loire"), - ("38", "Isère"), - ("39", "Jura"), - ("40", "Landes"), - ("41", "Loir-et-Cher"), - ("42", "Loire"), - ("43", "Haute-Loire"), - ("44", "Loire-Atlantique"), - ("45", "Loiret"), - ("46", "Lot"), - ("47", "Lot-et-Garonne"), - ("48", "Lozère"), - ("49", "Maine-et-Loire"), - ("50", "Manche"), - ("51", "Marne"), - ("52", "Haute-Marne"), - ("53", "Mayenne"), - ("54", "Meurthe-et-Moselle"), - ("55", "Meuse"), - ("56", "Morbihan"), - ("57", "Moselle"), - ("58", "Nièvre"), - ("59", "Nord"), - ("60", "Oise"), - ("61", "Orne"), - ("62", "Pas-de-Calais"), - ("63", "Puy-de-Dôme"), - ("64", "Pyrénées-Atlantiques"), - ("65", "Hautes-Pyrénées"), - ("66", "Pyrénées-Orientales"), - ("67", "Bas-Rhin"), - ("68", "Haut-Rhin"), - ("69", "Rhône"), - ("70", "Haute-Saône"), - ("71", "Saône-et-Loire"), - ("72", "Sarthe"), - ("73", "Savoie"), - ("74", "Haute-Savoie"), - ("75", "Paris"), - ("76", "Seine-Maritime"), - ("77", "Seine-et-Marne"), - ("78", "Yvelines"), - ("79", "Deux-Sèvres"), - ("80", "Somme"), - ("81", "Tarn"), - ("82", "Tarn-et-Garonne"), - ("83", "Var"), - ("84", "Vaucluse"), - ("85", "Vendée"), - ("86", "Vienne"), - ("87", "Haute-Vienne"), - ("88", "Vosges"), - ("89", "Yonne"), - ("90", "Territoire de Belfort"), - ("91", "Essonne"), - ("92", "Hauts-de-Seine"), - ("93", "Seine-Saint-Denis"), - ("94", "Val-de-Marne"), - ("95", "Val-d'Oise"), - ("971", "Guadeloupe"), - ("972", "Martinique"), - ("973", "Guyane"), - ("974", "La Réunion"), - ("976", "Mayotte"), - ) - - def street_prefix(self) -> str: - """ - :example: 'rue' - """ - return self.random_element(self.street_prefixes) - - def city_prefix(self) -> str: - """ - :example: 'rue' - """ - return self.random_element(self.city_prefixes) - - def administrative_unit(self) -> str: - """ - :example: 'Guadeloupe' - """ - return self.random_element(self.regions) - - region = administrative_unit - - def department(self) -> Tuple[str, str]: - """ - Randomly returns a french department ('departmentNumber' , 'departmentName'). - :example: ('2B' . 'Haute-Corse') - """ - return self.random_element(self.departments) - - def department_name(self) -> str: - """ - Randomly returns a french department name. - :example: 'Ardèche' - """ - return self.department()[1] - - def department_number(self) -> str: - """ - Randomly returns a french department number. - - :example: '59' - """ - return self.department()[0] - - def postcode(self) -> str: - """ - Randomly returns a postcode generated from existing french department number. - exemple: '33260' - """ - department = self.department_number() - if department in ["2A", "2B"]: - department = "20" - return f"{department}{self.random_number(digits=5 - len(department), fix_len=True)}" diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/fr_FR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/fr_FR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3959cdf4b1b102898f684709028479c7b976f8b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9118 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/he_IL/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/he_IL/__init__.py deleted file mode 100644 index 7d95940..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/he_IL/__init__.py +++ /dev/null @@ -1,871 +0,0 @@ -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{city_name}}",) - street_name_formats = ("{{street_title}}",) - street_address_formats = ("{{street_name}} {{building_number}}",) - address_formats = ("{{street_address}}, {{city}}, {{postcode}}",) - postcode_formats = ("#######",) - - # Data sourced from data.gov.il - # https://data.gov.il/dataset/321 - - street_titles = ( - "אביב", - "אביגיל", - "אבן מסעוד", - "אברבנאל", - "אברהם ברזילי", - "אגוז", - "אדמון", - "אהרון מאיר מזיא", - "אהרונוביץ", - "אולפן", - "אורנים", - "אזור בית הקברות", - "אזור תעשיה א'", - "אזור תעשיה הר יונה", - "אזור תעשייה", - "אזור תעשייה מזרח", - 'אח"י אילת', - "אייזיק ניוטון", - "איילת השחר )מ ק(", - "אייר", - "אילניה", - "אימבר", - "אירוס", - "אירוס", - "אל הודא סמ3", - "אלוורוד", - "אלול", - "אלומה", - "אלזאבוד", - "אל-זהרא'", - "אל זיתון סמ2", - "אלזיתונה סמ7", - "אל חגאג בן יוסף", - "אל-חראיק סמ3", - "אלחרש", - "אל-ט'הרה סמ7", - "אלישר", - "אלכנסת", - "אלכסנדר ינאי", - "אלכרום", - "אלכתאב", - "אל-לימון", - "אלמזדלפה", - "אל-מחאג'ר סמ3", - "אל-מחאג'ר סמ4", - "אלמנשיה-מושירפה", - "אל-מקפה סמ9", - "אל-סביל סמ6", - "אלסלילמה", - "אלסריס", - "אלעמשקה", - "אלעקבה", - "אל-פארוק סמ2", - "אלפג'ר", - "אלרשיד", - "אלתין", - "אלתרמן", - "אסא המלך", - "אפעל", - "ארבל", - "אשדוד", - "אשל", - "אתגר", - "אתר חפץ חיים", - "בועז", - "בורסת היהלומים", - "ביכורים", - 'ביל"ו', - "בילינסון", - "בית אבות", - "בית היוצר", - "בית יצחק-שער חפר", - "בית ראשון במולדת", - "בן יהודה", - "בן ישי", - "בן לברט", - "בן צבי יצחק", - "בן צבי יצחק", - "בן צבי שמעון", - "בקעת הירח", - "ברגמן אליעזר", - "ברוריה", - "ברזיל", - "ברקת", - "בשמת", - "בשמת", - "גבע", - "גבע", - "גבעת חיים )מאוחד(", - "גובר רבקה", - "גוטמכר", - "גולדה מאיר", - "ג'ו עמר", - "גיבתון חנוך", - "גינוסר", - "גפן", - "גפן", - "גרטרוד קראוס", - "גרינבוים", - "דבורה", - "דודו דותן", - "דולב", - "דולצ'ין אריה", - "דחי", - "דיה", - "דימיטר פשב", - "דרב אלברג'", - "דרומית-מג'ד אלכרום", - "דריפוס", - "דרך הארץ", - "דרך הגן", - "דרך חברון", - "דרך חלמית", - "דרך שועפאט סמ4", - "האדמו\"ר מויז'ניץ", - "האודם", - "האורן", - "האורנים", - "האחים בז'רנו", - "האילן", - "האילנות", - "האילתית", - "האלונים", - "האמוראים", - "האצטדיון", - 'האצ"ל', - "הברדלס", - "הברוש", - "הבריגדה", - "הגבורה", - "הגפן", - "הגפן", - "הדגניות", - "הדולב", - "הדייגים", - "הדרך האמריקאית סמ12", - "ההגנה", - "ההגנה", - "הולצברג שמחה", - "הופרט יעקב", - "הורדים", - "הורקנוס יוחנן", - "הזיתים", - "הזמיר", - "החבל", - "החותרים", - "החלוצים", - "החליל", - "החמנית", - "החסידה", - "החצב", - "החצב", - "החרוב", - "החרובים", - "החרמון", - "החשמל", - "היוזם", - "הינשוף", - "היקינטון", - 'הל"ה', - "המאה ואחד", - "המבריא", - "המברק", - "המגינים", - "המגינים", - "המורד", - "המייסדים", - "המלאכה", - "המלאכה", - "המלכים", - "הממונה", - "המנוע", - "המסגר", - "המעיין", - "המפרש", - "המצודה", - "המרגנית", - "המשור", - "הנוטר", - "הנורית", - "הנורית", - "הנקר", - "הנרד", - "הסיגלית", - "הסיפון", - "העבודה", - "העבודה", - "העצמון", - "הפעמון", - "הפרדס", - "הפרדס", - "הפרדס", - "הפרדס", - "הצאלון", - "הצבעוני", - "הקישון", - "הראשונים", - "הרב בידאני עובדיה", - "הרב וולף", - "הרב חכם שמעון", - "הרבי מליובאוויטש", - "הרב ניסים", - "הרב עוזיאל", - "הרב רפאל עבו", - "הרדוף", - "הרדוף", - "הרדוף", - "הרותם", - "הרי גולן", - "הר יהל", - "הרימון", - "הר כנען", - "הרליץ יוסף", - "הר סיני", - "הר עצמון", - "הר צרור", - "הרקפת", - "הרשקו אברהם", - "הרשת", - "השדות", - "השחר", - "השיזף", - "השיח", - "השיטה", - "השעורה", - "השר ברזילי", - "התאנה", - "התבור", - "התקוה", - "ויקטור ויוליוס", - "וערת סעד", - "ז'בוטינסקי", - "זגגי", - "זיגורד", - "זיו", - "ז'ילבר", - "זית", - "זכרון יעקב", - "חוחית", - "חוף הים", - "חושן", - "חזון איש", - "חזן יעקב", - "חיטה", - "חיים וייצמן", - "חלמיש", - "חצב", - "חרת א בוס", - "חתוכה יורם", - "טאבליא", - "טאחונת אלראהיב", - "טביב", - "טופז", - 'י"א באדר', - "יאפא", - "יד העפלה ממרוקו", - "ידידה", - "יהודה הלוי", - "יהודה המכבי", - "יהודה המכבי", - "יואב", - "יונה", - "יזרעאל", - "יחזקאל הנביא", - "יכין", - "ירושלים", - "ירקון", - "ישועת דוד", - "יששכר", - "כאבול", - "כהן אלי", - "כהנא", - "כוכב הצפון", - "כזיב", - "כיסופים", - "ככר ירדן", - "ככר נחשון", - "כנרת", - "כפר ילדים נרדים", - "כרם חמד", - "לב הקריה", - "לביא אריק", - "לבקוביץ", - "לוד הצעירה", - "לוטם", - "לוין מיכאל וחנה", - "לוין שמריהו", - "לוריא", - 'לח"י', - "לילינבלום", - "לכיש", - "לסקוב חיים", - "מבוא הדס", - "מבוא הזיתים", - "מבוא חיים מקובנה", - "מבוא חמה", - "מבצע הראל", - "מבצע חירם", - "מבצע עובדה", - "מגלן", - "מוסיוף שלמה", - "מופק דיאב", - "מוצא", - "מורדי הגטאות", - "מורן", - "מזל שור", - "מזרחי יוסף", - "מיכה", - "מירון", - "מישאל", - "מלון רויאל פארק", - "מנזר המארונים", - "מעבר לים", - "מעוז חיים", - "מעונות ים", - "מעלה כגן הלנה", - "מענית", - "מצדה", - "מצפה גילה", - "מרגיל מחוור", - "מרווה", - "מרחביה )מושב(", - "מרכז", - "משה דיין", - "משואות יצחק", - "משעול אבוקדו", - "משעול האלה", - "משעול המחתרות", - "משעול הסיפן", - "משעול הצופית", - "משעול התפוח", - "משעול מוריה", - "משעול נקר", - "משעול פארן", - "נאות אביבים", - "נאות אשכול", - "נאות הדקל", - "נדב יצחק", - "נהריה", - "נוה עוז", - "נוף כנרת", - "נורית", - "נחל נחשון", - "נחל סרפד", - 'נחל ערוגות מ"ר', - "נחל פארן", - "נחלת צדוק", - "ניר עם", - 'נעמ"ת', - "נצרת עילית", - "נשר", - "נתיב הפורצים", - "נתן", - "סביונים מכבים רעות", - "סומך עובדיה", - "סיתוונית", - "סלא איירין", - "סלעית", - "סמ 20 20", - "סמבורסקי דניאל", - "סמ בני ברית", - "סמ הבוסתן", - "סמ הרכבת", - "סמ השחף", - "סמטת השחר", - "סמ מאלה", - "סמ מסילה א", - "סמ עין גנים", - "סמ עינב", - "סמ שפיפון", - "סנט הלנה", - "עבד אל-גני", - "עגור", - "ע הלל", - "עובדי הנמל", - "עוגן", - "עולש מצוי", - "עומר", - "עידו הנביא", - "עין שביב", - "עירית", - "עמוס", - "עמוס הנביא", - "עמנואל )רינגלבלום(", - "ענזה", - "עפולה", - "עקבת א תות", - "פדויים", - "פטדה", - "פנינה", - "פקוד מרכז", - "פרומקין גד", - "פרופ' בירק יהודית", - "פרופס", - "פרי חדש", - "צדוק הכהן", - "צובה", - "צופית", - "צוקית", - "צור", - "צמחי היהודים", - "צפרירים", - "צפת", - "צפת", - "קבועה )שבט(", - "קדמת צבי", - "קישון אפרים", - "קנין הארץ", - "קרית עקרון", - "קרל נטר", - "קרן היסוד", - "רביבים", - "רבנו תם", - "רבקה אמנו", - "רח 101", - "רח 1043", - "רח 1060", - "רח 12", - "רח 1238", - "רח 124", - "רח 135", - "רח 14", - "רח 16", - "רח 16", - "רח 2001", - "רח 2306", - "רח 5041", - "רח 6020", - "רח 6073", - "רח 6087", - "רח 68", - "רח 7035", - "רח 7038", - "רח 7069", - "רח 71", - "רחבת פנינה", - "רח ה", - "רח מו כ שלם", - "רח רז", - "ריחאניה", - 'רלב"ג', - 'רמב"ם', - 'רמב"ן', - "רמת האירוסים", - "רמת כרמים", - "רקפת", - 'רש"י', - "ש אסבסטונים", - "ש אסבסט צפון", - "שאר ישוב", - "ש בבלי", - "שבזי", - "שבזי", - "שבטי ישראל", - "שבט ראובן", - "שביל הרקפות", - "שביל קליפות התפוזים", - "שד גאולים", - "שד גת", - "שד העצמאות", - 'שד ח"ן', - "שד יוספטל גיורא", - "ש הפועלים", - "שוהם", - "שומרון", - "שושנה דמארי", - "שושנת הכרמל", - 'שז"ר זלמן', - "שיזף", - "שכ 14", - "שכ החלוצים", - "שכ היובל", - "שכ הפועל המזרחי ג'", - "שכ הרכבת", - "שכ זאב", - "שכ חפצי בה", - "שכ מחניים", - "שכ נווה הדקל", - "שכ עראק אלשבאב", - "שכ קחאוש", - "שכ רסקו", - "שלדג", - "שמחוני", - "שמחוני אסף", - "שמעון המכבי", - "שני", - "ש סלע חדש", - "ש פועלים", - 'ש"ץ גרשון', - "ש ציונים כלליים", - "שקד", - "ש קואפרטיבים", - "שריג", - "ש רמת אביב", - "תאנה", - "תל חי", - "תפארת ישראל", - 'תרס"ח', - 'תרצ"ו', - ) - - city_names = ( - "אבו רובייעה )שבט(", - "אביבים", - "אביחיל", - "אודם", - "אור הנר", - "אורטל", - "אטרש )שבט(", - "אליקים", - "אל סייד", - "באר מילכה", - "בית ברל", - "בית הלוי", - "בית חנן", - "בית חנניה", - "בית חשמונאי", - "בני ציון", - "ברקאי", - "ברקת", - "גבעת השלושה", - 'גבעת ח"ן', - 'גבעת כ"ח', - "גדות", - "גונן", - "גינתון", - "גיתית", - "גן שורק", - "גנות הדר", - "גני מודיעין", - "גרופית", - 'דוב"ב', - "דולב", - "האון", - "הסוללים", - "העוגן", - "הר אדר", - "ורד יריחו", - "זוהר", - "חיננית", - "חצור-אשדוד", - "חצור הגלילית", - "חשמונאים", - "טל-אל", - 'יד רמב"ם', - "כסלון", - "כפר אחים", - "כפר הנוער הדתי", - "כפר יונה", - "כפר מסריק", - "כפר סירקין", - "לוזית", - "לקיה", - "מגאר", - "מגן", - "מזכרת בתיה", - "מירון", - "מכמורת", - "מלאה", - "מסד", - "מעונה", - "מרחביה )מושב(", - "משמר העמק", - "נווה חריף", - "נוקדים", - "נורדיה", - "נחלה", - "נטע", - "נירן", - "נתיב השיירה", - "סגולה", - "סער", - "עדי", - "עזר", - "עין אל-אסד", - "עין השופט", - "עין צורים", - "עלי זהב", - "עמוקה", - "עמיר", - "עמקה", - "עספיא", - "עצמון שגב", - "פוריה - נווה עובד", - "פוריידיס", - "פקיעין חדשה", - "צורית", - "צפרירים", - "רגבה", - "רחוב", - "ריינה", - "רימונים", - "רמות מנשה", - "שדה אליהו", - "שדות מיכה", - "שדי תרומות", - "שומרה", - "שיטים", - "שעב", - "שפר", - "שתולים", - "תלמי אליהו", - ) - - countries = ( - "אוגנדה", - "אוזבקיסטן", - "אוסטריה", - "אוסטרליה", - "אוקראינה", - "אורוגוואי", - "אזרבייג'ן", - "אי חג המולד", - "איחוד האמירויות הערביות", - "איטליה", - "איי הבתולה הבריטיים", - "איי הבתולה של ארצות הברית", - "איי הרד ומקדונלד", - "איי טורקס וקייקוס", - "איי מריאנה הצפוניים", - "איי מרשל", - "איי סוולברד ויאן מאיין", - "איי פארו", - "איי פוקלנד (מלווינאס)", - "איי פיטקרן", - "איי קוק", - "איי קוקוס (קילינג)", - "איי קיימן", - "איי שלמה", - "אינדונזיה", - "איסלנד", - "איראן", - "אירלנד", - "אל סלבדור", - "אלבניה", - "אלג'יריה", - "אנגווילה", - "אנגולה", - "אנדורה", - "אנטארקטיקה (השטח מדרום ל-60 מעלות S)", - "אנטיגואה וברבודה", - "אסטוניה", - "אפגניסטן", - "אקוודור", - "ארגנטינה", - "ארובה", - "אריתריאה", - "ארמניה", - "ארצות הברית של אמריקה", - "אתיופיה", - "בהאמה", - "בהוטן", - "בולגריה", - "בוליביה", - "בוסניה והרצגובינה", - "בוצואנה", - "בורונדי", - "בורקינה פאסו", - "בחריין", - "בלארוס", - "בלגיה", - "בליז", - "בנגלדש", - "בנין", - "ברבדוס", - "ברוני דרוסלם", - "ברזיל", - "בריטניה", - "ברמודה", - "ג'ורג'יה הדרומית ואיי סנדוויץ' הדרומיים", - "ג'יבוטי", - "ג'מהירייה ערבית לוב", - "ג'מייקה", - "ג'רזי", - "גאורגיה", - "גאנה", - "גבון", - "גואטמלה", - "גואם", - "גוואדלופ", - "גיאנה הצרפתית", - "גיאנה", - "גיברלטר", - "גינאה המשוונית", - "גינאה-ביסאו", - "גינאה", - "גמביה", - "גרינלנד", - "גרמניה", - "גרנדה", - "גרנזי", - "דומיניקה", - "דנמרק", - "דרום אפריקה", - "האי בובט (בובטואה)", - "האי מאן", - "האי נורפוק", - "האיטי", - "האיים הקטנים של ארצות הברית", - "האנטילים ההולנדיים", - "הודו", - "הולנד", - "הונג קונג", - "הונגריה", - "הונדורס", - "הטריטוריה הפלסטינית", - "הטריטוריות הדרומיות של צרפת", - "הכס הקדוש (קריית הוותיקן)", - "המלדיביים", - "הפדרציה הרוסית", - "הפיליפינים", - "הרפובליקה הדומיניקנית", - "הרפובליקה הדמוקרטית העממית של לאו", - "הרפובליקה המרכז אפריקאית", - "הרפובליקה הערבית הסורית", - "הרפובליקה הקירגיזית", - "ואליס ופוטונה", - "וייטנאם", - "ונואטו", - "ונצואלה", - "זימבבואה", - "זמביה", - "חוף השנהב", - "טג'יקיסטן", - "טובאלו", - "טוגו", - "טונגה", - "טוקלאו", - "טורקיה", - "טורקמניסטן", - "טייוואן", - "טימור-לסטה", - "טנזניה", - "טריטוריית האוקיינוס ​​ההודי הבריטי (ארכיפלג צ'אגוס)", - "טרינידד וטובגו", - "יוון", - "יפן", - "ירדן", - "ישראל", - "כווית", - "לבנון", - "לוקסמבורג", - "לטביה", - "ליבריה", - "ליטא", - "ליכטנשטיין", - "לסוטו", - "מאוריטניה", - "מאוריציוס", - "מדגסקר", - "מוזמביק", - "מולדובה", - "מונגוליה", - "מונטנגרו", - "מונסראט", - "מונקו", - "מיאנמר", - "מיוט", - "מיקרונזיה", - "מלאווי", - "מלזיה", - "מלטה", - "מלי", - "מצרים", - "מקאו", - "מקדוניה הצפונית", - "מקסיקו", - "מרוקו", - "מרטיניק", - "נאורו", - "נורבגיה", - "ניגר", - "ניגריה", - "ניו זילנד", - "ניואה", - "ניקרגואה", - "נמיביה", - "נפאל", - "סאו טומה ופרינסיפה", - "סהרה המערבית", - "סודן", - "סווזילנד", - "סומליה", - "סורינאם", - "סיירה לאון", - "סיישל", - "סין", - "סינגפור", - "סלובניה", - "סלובקיה (הרפובליקה הסלובקית)", - "סמואה אמריקאית", - "סמואה", - "סן מרינו", - "סנגל", - "סנט ברתלמי", - "סנט הלנה", - "סנט וינסנט והגרנדינים", - "סנט לוסיה", - "סנט מרטין", - "סנט פייר ומיקלון", - "סנט קיטס ונוויס", - "ספרד", - "סרביה", - "סרי לנקה", - "עומאן", - "עיראק", - "ערב הסעודית", - "פולין", - "פולינזיה הצרפתית", - "פורטו ריקו", - "פורטוגל", - "פיג'י", - "פינלנד", - "פלאו", - "פנמה", - "פפואה גינאה החדשה", - "פקיסטן", - "פרגוואי", - "פרו", - "צ'אד", - "צ'ילה", - "צ'כיה", - "צרפת", - "קובה", - "קולומביה", - "קומורו", - "קונגו", - "קונגו", - "קוסטה ריקה", - "קוריאה", - "קוריאה", - "קזחסטן", - "קטאר", - "קייפ ורדה", - "קיריבטי", - "קלדוניה החדשה", - "קמבודיה", - "קמרון", - "קנדה", - "קניה", - "קַפרִיסִין", - "קרואטיה", - "ראוניון", - "רואנדה", - "רומניה", - "שוודיה", - "שוויץ", - "תאילנד", - "תוניסיה", - "תימן", - ) - - def city_name(self) -> str: - return self.random_element(self.city_names) - - def street_title(self) -> str: - return self.random_element(self.street_titles) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/he_IL/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/he_IL/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index ad7431a81b63652a3294a8c0176256264c1e51dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17992 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 str: - return self.random_element(self.cities) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/hi_IN/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/hi_IN/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index df23ab0986943d55beb5d6ecf5c34218b6f8c2fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6740 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 str: - return self.random_element(self.cities) - - def street_name(self) -> str: - return self.random_element(self.streets) - - def administrative_unit(self) -> str: - return self.random_element(self.states) - - state = administrative_unit diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/hr_HR/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/hr_HR/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 218438bc98a18cc3276b4b1b0456b5115a8f5cf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8434 zcmcJUOKcoRddG+4%y5QJy)3_xhPhdUi6z?E90IHngcK!`8ooeMTwo4iYNm_Bp6ThD zRCfSDQ6|x>@&Y%^APmob_j#bN*~|-k)nO`15-4bkbk=q};qR zYA@2hI%;2`eNA6$UVnIX`I?pMEl*_gj~=yybzWQ3QO^ujJ6l`} zOvftUiZlbR84wJOS9@&Dta?9Y%gk4pvUAGap% z3pOm5V2bhfIbCPhH|ZF$qNVk#>3WXD?@ zFfpII54Wv`Cvnf@wT807%649D(65G$Q4MwRG|?g4X@n~3>ULgkL_y@P*D(Fy;%k-9 zG|a#T5D%Y)xea5_KTBCN)3A!W4uz~~+5;g>WZSST)Wdd=Pc>|h1Ji^d=A;SJOZrF?2%b@J-I>RCoA`znK3wSApf=!fn5p-wc4Inw+6kS(<1 z%f1xI6y7ba79|7>Ez{o5#`i@YUR}fxfVkQTsi9I(}${W zS_b1g)V!7trL%Gv#0p6rayeWOjS!k6%!kI%L@>=;v&Ls)n7a7}Ch;~1gCv_dOq30r z6j+%KG_TqG;gF}dt9>o3l*{ z4a6y+#B{?$WtTt6>#H_0q0drBha;I-i z=^kg1S@kCl;iq+{`9x{o5cx$7pxKV4yG@qF4tBYI-FUF|klhlx*LZs2^N8uk!o zb$v(()z0|V*;Q^5c#z{%xwe5`aX>q-Z8E!pVl}tMrr&#VhxbDbciObulgc^B^%H?o|!ab^s4_`UZQ5hgNNDr;}Rc z9q9q==2%%8>ZrILtyri+8foJA)G(RCU+bYKd}0G9iU$5*ME%H#YlypSdRtq!o$ZW! z;9}qze`vVi4-DW^A_m0EHf*Rbz78U%{E{>?zK-8gR&U7fD#r@VUEbUk>ZM+ zF!P!1AQp-ZzG`;cwEF6yhVz=2E&;N@32xDj>iCZ7IxiC+l>05b;0}7L#r*R59qkXb zFCI@0o8>Uq1Mv8a`-)QT=y+sPGemwD&(K`jco)-^Rc;n8w@{_}j(8-eIMdR^z;f3> zOhgNn_C*r3#Lj4D5n!O&`Hn$>M@Y(k zLvT&uOH?Z4@owUHq%6im{0SQhw8?9S!@#*9`y~@yFuZtzz9cHWM#seyu&f*%T-t|d z@vGhT%qceUCnOp|r?V{qZ5L0{zO%K$^ErtfL5j0W@!Ar%j=(JtUD(}Gic1wUCPEbE zn9mB@7-=Z+BZ$pN=Z+x&K#D^Xl1FdiKAl*OgG6Uz@9xMt4#i&=`g&||45FmY2aMkg zz&eI;+Nsj9iMS|ePo>x80IS&Ve=~3KX94oGXDW@IK=awA_^UJHoYyNagvTaMvWx!K zh}k+qd$JkV8tIK|i@MaBedXlq*wq9wD6ouJ!SZX4(jrDWYs;?TfPj@agj<;+#0o_c z(*=aE#N5KKpd)UwTRcL!vYp%imEf<^H(5Cbvu?EucL++RXE(>mhMd+y*u{C-wS61( z5DCjg<8_zIfiOZ`Ial4lUz3eK@ppz;O#Hnm61p|PeI+|Y5!&NJx6~J6sCAk7OucqWf_yxLZ zt}Pdp=)9U~+frShm!dxm22|l5-aQoqYssDPOgAl%h9z-<{;JUqBLl1^ebl4Q~xkn&y>Fh1<$&nJE8w(xD@dR|I4uWX6fSjtcY9^|RLy;CU$IaLRSlfDX@ z#K}_DkjTv$)ve4b9fGI<%UyP;+*e>19sm%m^uD%2Wc9wWK3mPhdB<<%t)5aBQt6Lh z_KdiNp^ZdBKI@Ce5%X#X*%MP0wNmi>WL#{ zq;NImhPa-3Bd{IkA;IQ>4O$2_TWA1&VnKj~hpRV8jtVuXQfk3e^NR4>Wbe4g`yQ#9 z>Di(R^wLxu$R@Mzs`m?Wh$EC_-20*A9+)Qgk)sSZk?N7~gTf9@Fq>;gsx!U=l^Jv- z$$qr0jEHTQEYioafAD0gGb$0kl~=cQY!bY~Hl#%;bd3i71`Bu>uJa-e2T2gT<%wk@ z#4|WCa=6>US)wEG8HFvW{SbP9{%J4P{Z?u_z;E=uqgY!M3wPA{=gvLl)g9F}z`BYQ zh>W}vO@r(TPamg>TFH~@AQhz08Kp}M;4SZ@Su7wyHZJR>dGSxje!f0 z*0qCf8t1dFjg*D-=^fpR1F5I&@EY||gV~*+XGi9c-Pj?0=SCu(OPO&hD2GLLo`f^m zNSX<#3O`rdAxA?Kz(%`79_JYqV6TfK`&t?IzH@@|mod}cSu zOy=Ug)81VYUZNGwOG;YGYrqX`mbIfa1U!a47IVQ11%i@Vz+MZMdWWHr+=8r((iFCl z%}ONl)=WxqCVShxY-(UXM&R$rvJ@Xo(ia?eDn8FI~ZunSt@k_*x7>!H?6^fL)|4!3BegSBT92& zHg^bcBeUPuC=+=L^?mqYr9VnI3EdROcUYK_ASle8A{SY`_QqgJd+Qc!8&W|YI|G*X z#Z(%6H7Z{#x85hTD`%CAw^D7>!& zdY9~`_U9&3?}J&Y4=$zf3Zxa?x$l_xP-><00&*ls%oPQ}O-Up~0k^WsUW{lM6-lnXAXkV8$*;gCH$b=%y zV*U;RUp$daS&G0#k>cVBb<1rPjljyq6Y2^t$E3t7an7;mNC~7EY5nw(>N>rw(g6SE z^&_mQa3%jL-c@r=b zVBM&DJPIsT`ke+J;oQSCuRZ{;`zrkdg!JI0#*Fj?MIgyM^Y&FcI2Fm!76VqBrV@hikFs2R&HZf!<8^-tqdL} zXD0f|?GOKOB_^A{HBjxI>gago6oa)ZEOOr}^&KnEe70o&g{nJsYws@K$ZIE#_>+@-=H#Sr z{4~_G=T1)kB2^(~;oh7u@nGcdaen<3?wpJ}Z;m=gT5{RH`2CL8zxUbra^{usSK`Z_ z8>2nr^z=0NxsFeO1D*V}@At-M1Xz1Vh-%2sE-lhcqVmC)KY3B&@w_@w`S8m_X@4l~51zO-{iS*DukJcQxqIy{Pr1+A?j>JbEk3Z1 zrEULAh!bUW str: - return self.random_element(self.counties) - - county = administrative_unit - - def street_address_with_county(self) -> str: - return f"{self.street_address()}\n{self.county()} megye\n{self.postcode()} {self.city().capitalize()}" - - def city_prefix(self) -> str: - return self.random_element(self.city_prefs) - - def city_part(self) -> str: - return self.random_element(self.city_parts) - - def real_city_name(self) -> str: - return self.random_element(self.real_city_names) - - def frequent_street_name(self) -> str: - return self.random_element(self.frequent_street_names) - - def postcode(self) -> str: - return ( - f"H-{super().random_digit_not_null()}{super().random_digit()}" - f"{super().random_digit()}{super().random_digit()}" - ) - - def street_name(self) -> str: - return super().street_name().capitalize() - - def building_number(self) -> str: - numeric_part = super().random_int(1, 250) - return str(numeric_part) + "." - - # method added to fix #1996: - # for hu_Hu locale city_part could be first or second component of city, - # so city_parts tuple should contain lower-cased strings. Thus city might be lower-cased and should be capitalized - def city(self) -> str: - """ - :example: 'Györgyháza' - """ - pattern: str = self.random_element(self.city_formats) - return self.generator.parse(pattern).capitalize() diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/hu_HU/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/hu_HU/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 02bbb5129ac95b573503b0004747768f600216be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9135 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 diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/hy_AM/__init__.py b/.venv/lib/python3.12/site-packages/faker/providers/address/hy_AM/__init__.py deleted file mode 100644 index 3f4c951..0000000 --- a/.venv/lib/python3.12/site-packages/faker/providers/address/hy_AM/__init__.py +++ /dev/null @@ -1,686 +0,0 @@ -from typing import Optional - -from .. import Provider as AddressProvider - - -class Provider(AddressProvider): - city_formats = ("{{first_name}}",) - city_prefixes = ("ք.",) - city_suffixes = ("",) - street_prefixes = ("փողոց", "պողոտա") - street_suffixes = ("",) - village_prefixes = ("գ.",) - - address_formats = ( - "{{city_prefix}} {{city}}, {{street_name}} {{building_number}}", - "{{city_prefix}} {{city}}, {{street_name}} {{building_number}}, {{secondary_address}}", - "{{city_prefix}} {{city}}, {{postcode}}, {{street_name}} {{building_number}}", - "{{city_prefix}} {{city}}, {{postcode}}, {{street_name}} {{building_number}}, {{secondary_address}}", - "{{village_prefix}} {{village}}, {{state}}ի մարզ, {{postcode}}, {{street_name}} {{building_number}}", - ) - building_number_formats = ("#", "##", "###") - postcode_formats = ("0###", "1###", "2###", "3###", "4###") - secondary_address_formats = ("բն. #", "բն. ##", "բն. ##") - street_address_formats = ("{{street_name}} {{building_number}}",) - street_name_formats = ("{{street}}",) - - # Source: List of cities and towns in Armenia (Wikipedia) - # https://en.wikipedia.org/wiki/List_of_cities_and_towns_in_Armenia - cities = ( - "Աբովյան", - "Ագարակ", - "Ալավերդի", - "Ախթալա", - "Այրում", - "Աշտարակ", - "Ապարան", - "Արարատ", - "Արթիկ", - "Արմավիր", - "Արտաշատ", - "Բերդ", - "Բյուրեղավան", - "Գավառ", - "Գյումրի", - "Գորիս", - "Դաստակերտ", - "Դիլիջան", - "Եղեգնաձոր", - "Եղվարդ", - "Երևան", - "Վաղարշապատ", - "Թալին", - "Թումանյան", - "Իջևան", - "Ծաղկաձոր", - "Կապան", - "Հրազդան", - "Ճամբարակ", - "Մասիս", - "Մարալիկ", - "Մարտունի", - "Մեծամոր", - "Մեղրի", - "Նոր Հաճն", - "Նոյեմբերյան", - "Շամլուղ", - "Չարենցավան", - "Ջերմուկ", - "Սիսիան", - "Սպիտակ", - "Ստեփանավան", - "Սևան", - "Վայք", - "Վանաձոր", - "Վարդենիս", - "Վեդի", - "Տաշիր", - "Քաջարան", - ) - - # Source: Wikipedia's list of sovereign states - # https://en.wikipedia.org/wiki/List_of_sovereign_states - countries = ( - "Աֆղանստան", - "Ալբանիա", - "Ալժիր", - "Ամերիկյան Սամոա", - "Անդորրա", - "Անգոլա", - "Անգիլիա", - "Անտարկտիկա", - "Անտիգուա և Բարբուդա", - "Արգենտինա", - "Հայաստան", - "Արուբա", - "Ավստրալիա", - "Ավստրիա", - "Ադրբեջան", - "Բահամներ", - "Բահրեյն", - "Բանգլադեշ", - "Բարբադոս", - "Բելառուս", - "Բելգիա", - "Բելիզ", - "Բենին", - "Բերմուդա", - "Բութան", - "Բոլիվիա", - "Բոսնիա և Հերցեգովինա", - "Բոտսվանա", - "Բրազիլիա", - "Բրունեյ Դարուսսալամ", - "Բուլղարիա", - "Բուրկինա Ֆասո", - "Բուրունդի", - "Կամբոջա", - "Կամերուն", - "Կանադա", - "Կաբո Վերդե", - "Կայման Կղզիներ", - "Կենտրոնական Աֆրիկյան Հանրապետություն", - "Չադ", - "Չիլի", - "Չինաստան", - "Սուրբ Ծննդյան Կղզի", - "Կոկոս Կղզիներ", - "Կոլումբիա", - "Կոմորյան Կղզիներ", - "Կոնգո", - "Կուկի Կղզիներ", - "Կոստա Ռիկա", - "Կոտ դ'Իվուար", - "Խորվաթիա", - "Կուբա", - "Կիպրոս", - "Չեխիայի Հանրապետություն", - "Դանիա", - "Ջիբութի", - "Դոմինիկա", - "Դոմինիկյան Հանրապետություն", - "Էկվադոր", - "Եգիպտոս", - "Սալվադոր", - "Հասարակածային Գվինեա", - "Էրիտրեա", - "Էստոնիա", - "Եթովպիա", - "Ֆարերյան Կղզիներ", - "Ֆոլկլենդյան Կղզիներ", - "Ֆիջի", - "Ֆինլանդիա", - "Ֆրանսիա", - "Ֆրանսիական Գվիանա", - "Ֆրանսիական Պոլինեզիա", - "Ֆրանսիական Հարավային Տարածքներ", - "Գաբոն", - "Գամբիա", - "Վրաստան", - "Գերմանիա", - "Գանա", - "Ջիբրալթար", - "Հունաստան", - "Գրենլանդիա", - "Գրենադա", - "Գվադելուպա", - "Գուամ", - "Գվատեմալա", - "Գերնսի", - "Գվինեա", - "Գվինեա Բիսաու", - "Գայանա", - "Հաիթի", - "Վատիկան", - "Հոնդուրաս", - "Հոնգ Կոնգ", - "Հունգարիա", - "Իսլանդիա", - "Հնդկաստան", - "Ինդոնեզիա", - "Իրան", - "Իրաք", - "Իռլանիա", - "Իսրայել", - "Իտալիա", - "Ջամայկա", - "Ճապոնիա", - "Հորդանան", - "Ղազախստան", - "Քենիա", - "Կիրիբատի", - "Հյուսիսային Կորեա", - "Հարավային Կորեա", - "Կոսովո", - "Քուվեյթ", - "Ղրղզստան", - "Լաոս", - "Լատվիա", - "Լիբանան", - "Լեսոտո", - "Լիբերիա", - "Լիբիական Արաբական Ջամահիրիա", - "Լիխտենշտեյն", - "Լիտվա", - "Լյուքսեմբուրգ", - "Մակաո", - "Հյուսիսային Մակեդոնիա", - "Մադագասկար", - "Մալավի", - "Մալազիա", - "Մալդիվներ", - "Մալի", - "Մալթա", - "Մարշալյան Կղզիներ", - "Մարտինիկ", - "Մավրիտանիա", - "Մավրիկիոս", - "Մայոտտե", - "Մեքսիկա", - "Միկրոնեզիա", - "Մոլդովա", - "Մոնակո", - "Մոնղոլիա", - "Չեռնոգորիա", - "Մոնսերատ", - "Մարոկկո", - "Մոզամբիկ", - "Մյանմա", - "Նամիբիա", - "Նաուրու", - "Նեպալ", - "Նիդեռլանդական Անտիլներ", - "Նիդերլանդներ", - "Նոր Կալեդոնիա", - "Նոր Զելանդիա", - "Նիկարագուա", - "Նիգեր", - "Նիգերիա", - "Նիուե", - "Նորֆոլկ Կղզի", - "Հյուսիսային Մարիանյան Կղզիներ", - "Նորվեգիա", - "Օման", - "Պակիստան", - "Պալաու", - "Պաղեստին", - "Պանամա", - "Պապուա Նոր Գվինեա", - "Պարագվայ", - "Պերու", - "Ֆիլիպիններ", - "Պիտկիրնյան Կղզիներ", - "Լեհաստան", - "Պորտուգալիա", - "Պուերտո Ռիկո", - "Կատար", - "Ռումինիա", - "Ռուսաստանի Դաշնություն", - "Ռուանդա", - "Սուրբ Բարդուղիմեոս", - "Սուրբ Հելենա", - "Սենտ Կիտս և Նևիս", - "Սուրբ Լուչիա", - "Սուրբ Մարտին", - "Սեն Պիեռ և Միկելոն", - "Սենթ Վինսենթ և Գրենադիններ", - "Սամոա", - "Սան Մարինո", - "Սաուդյան Արաբիա", - "Սենեգալ", - "Սերբիա", - "Սեյշելներ", - "Սիերա Լեոնե", - "Սինգապուր", - "Սլովակիա", - "Սլովենիա", - "Սողոմոնյան Կղզիներ", - "Սոմալի", - "Հարավային Աֆրիկա", - "Իսպանիա", - "Շրի Լանկա", - "Սուդան", - "Սուրինամ", - "Սվալբարդ և Յան Մայենյան Կղզիներ", - "Սվազիլենդ", - "Շվեդիա", - "Շվեյցարիա", - "Սիրիայի Արաբական Հանրապետություն", - "Թայվան", - "Տաջիկստան", - "Տանզանիա", - "Թաիլանդ", - "Տոգո", - "Տոկելաու", - "Տոնգա", - "Տրինիդադ և Տոբագո", - "Թունիս", - "Թուրքիա", - "Թուրքմենստան", - "Տուվալու", - "Ուգանդա", - "Ուկրաինա", - "Արաբական Միացյալ Էմիրություններ", - "Մեծ Բրիտանիա", - "Ամերիկայի Միացյալ Նահանգներ", - "Ուրուգվայ", - "Ուզբեկստան", - "Վենեսուելա", - "Վիետնամ", - "Ուոլիս և Ֆուտունա", - "Արևմտյան Սահարա", - "Եմեն", - "Զամբիա", - "Զիմբաբվե", - ) - - # Source: Administrative divisions of Armenia (Wikipedia) - # https://en.wikipedia.org/wiki/Administrative_divisions_of_Armenia - states = ( - "Արագածոտն", - "Արարատ", - "Արմավիր", - "Գեղարքունիք", - "Լոռի", - "Կոտայք", - "Շիրակ", - "Սյունիք", - "Տավուշ", - "Վայոց Ձոր", - ) - - states_abbr = ( - "ԱԳ", - "ԱՐ", - "ԱՄ", - "ԳՂ", - "ԼՌ", - "ԿՏ", - "ՇԿ", - "ՍՅ", - "ՎՁ", - "ՏՎ", - ) - - # Source: Postal codes in Armenia (Wikipedia) - # https://en.wikipedia.org/wiki/Postal_codes_in_Armenia - states_postcode = { - "ԱԳ": (200, 599), - "ԱՐ": (600, 899), - "ԱՄ": (900, 1199), - "ԳՂ": (1200, 1699), - "ԼՌ": (1700, 2199), - "ԿՏ": (2200, 2599), - "ՇԿ": (2600, 3199), - "ՍՅ": (3200, 3599), - "ՎՁ": (3600, 3899), - "ՏՎ": (3900, 4299), - } - - streets = ( - "Ազատության", - "Արշակունյաց", - "Արցախի", - "Գայի", - "Ծովակալ Իսակովի", - "Կոմիտասի", - "Հյուսիսային", - "Մաշտոցի", - "Մարշալ Բաղրամյան", - "Մյասնիկյան", - "Սայաթ-Նովայի", - "Տիգրան Մեծի", - "Աբելյան", - "Աբովյան", - "Ագաթանգեղոսի", - "Ազատամարտիկների", - "Աթենքի", - "Աթոյան", - "Ալեք Մանուկյան", - "Ալիխանյան", - "Աղայան", - "Աղյուսագործների", - "Ամիրյան", - "Այասի", - "Անտառային", - "Անրի Վեռնոյի", - "Ավագ Պետրոսյան", - "Արամ Խաչատրյան", - "Արամի", - "Արգիշտիի", - "Արմենակյան", - "Բայրոնի", - "Բարձրաբերդի", - "Բելինսկու", - "Բեյրութի", - "Բուդապեշտի", - "Բուռնազյան", - "Բրյուսովի", - "Գալոյան Եղբայրների", - "Գարեգին Նժդեհի", - "Գետառի", - "Գլինկայի", - "Գյուլբենկյան", - "Գրիգոր Լուսավորչի", - "Գրիգոր Հարությունյան", - "Գրիգոր Տեր-Գրիգորյան", - "Գևորգ Էմինի", - "Գևորգ Հովսեփյան", - "Գևորգ Քոչարի", - "Դեղատան", - "Դերենիկ Դեմիրճյան", - "Եզնիկ Կողբացու", - "Եկմալյան", - "Երվանդ Քոչարի", - "Զավարյան", - "Զարոբյան", - "Զաքյան", - "Էրեբունու", - "Թաիրովի", - "Թամանյան", - "Թորամանյան", - "Թումանյան", - "Իսահակյան", - "Իսրայելյան", - "Իտալիայի", - "Լամբրոնի", - "Լենինգրադյան", - "Լեոյի", - "Լեոնիդ Ազգալդյան", - "Լեռ Կամսարի", - "Լիսինյան", - "Լոմոնոսովի", - "Լոռիս-Մելիքովի", - "Լուսինյանց", - "Խանզադյան", - "Խանջյան", - "Ծատուրյան", - "Ծխախոտագործների", - "Կալենցի", - "Կասյան", - "Կարեն Դեմիրճյան", - "Կիևյան", - "Կոնդի", - "Կորի", - "Կորյունի", - "Կուստոյի", - "Կռիլովի", - "Հալաբյան", - "Հակոբ Հակոբյան", - "Հայրիկ Մուրադյան", - "Հանրապետության", - "Հերացու", - "Հին Երևանցու", - "Հնդկաստանի", - "Հովհաննես Կոզեռնի", - "Հրանտ Շահինյան", - "Հրաչյա Քոչարի", - "Ձորափի", - "Ղազար Փարպեցու", - "Մայիսյան", - "Մարկ Գրիգորյան", - "Մարտի 8-ի", - "Մելիք-Ադամյան", - "Միչուրինի", - "Մհեր Մկրտչյան", - "Մոնթե Մելքոնյան", - "Մոսկովյան", - "Մովսես Խորենացու", - "Մուրացանի", - "Նալբանդյան", - "Նար-Դոսի", - "Նորքի", - "Շարա Տալյան", - "Շարիմանյան", - "Շուկայի", - "Ոսկերիչների", - "Չայկովսկու", - "Չարենցի", - "Չեռնիշևսկու", - "Պարոնյան", - "Պետրոս Ադամյան", - "Պուշկինի", - "Պռոշյան", - "Պրահայի", - "Ռոստոմի", - "Ռոստովյան", - "Ռուսթավելու", - "Սասունցի Դավթի", - "Սարալանջի", - "Սարմենի", - "Սարյան", - "Սեբաստիայի", - "Սերգեյ Փարաջանովի", - "Սիլվա Կապուտիկյան", - "Սիմեոն Երևանցու", - "Սիսվանի", - "Սոսեի", - "Սուվորովի", - "Սուրբ Հովհաննեսի", - "Սպենդիարյան", - "Ստեփան Զորյան", - "Սևանի", - "Վազգեն Սարգսյան", - "Վահրամ Փափազյան", - "Վաղարշյան", - "Վարդան Աճեմյան", - "Վարդանանց", - "Վերֆելի", - "Վրացյան", - "Տարսոնի", - "Տերյան", - "Տոլստոյի", - "Տպագրիչների", - "Ցախի", - "Փավստոս Բուզանդի", - "Քաջազնունու", - "Քոչինյան", - "Քրիստափորի", - "Օստրովսկու", - "Օրբելի Եղբայրների", - "Ֆիզկուլտուրնիկների", - "Ֆիրդուսու", - "Ֆրիկի", - ) - - # Source: Villages in Armenia (Wikipedia) - # http://www.armeniapedia.org/wiki/Armenian_Towns_and_Villages - villages = ( - "Ագարակ", - "Անտառուտ", - "Բերքառատ", - "Գեղաձոր", - "Գետափ", - "Զովասար", - "Լեռնապար", - "Լուսագյուղ", - "Կաթնաղբյուր", - "Կաքավաձոր", - "Հացաշեն", - "Նորաշեն", - "Շենավան", - "Ոսկեվազ", - "Ցամաքասար", - "Այգեզարդ", - "Բարձրաշեն", - "Բերքանուշ", - "Լանջանիստ", - "Լուսաշող", - "Ջրաշեն", - "Քաղցրաշեն", - "Այգեկ", - "Առատաշեն", - "Բամբակաշատ", - "Գեղակերտ", - "Լեռնամերձ", - "Ծաղկալանջ", - "Հացիկ", - "Մերձավան", - "Քարակերտ", - "Անտառամեջ", - "Արծվաշեն", - "Գեղաքար", - "Զովաբեր", - "Լանջաղբյուր", - "Շատջրեք", - "Այգեհատ", - "Դարպաս", - "Լեռնահովիտ", - "Հարթագյուղ", - "Պաղաղբյուր", - "Սարամեջ", - "Քարաձոր", - "Զովք", - "Լեռնանիստ", - "Մեղրաձոր", - "Այգաբաց", - "Թավշուտ", - "Լանջիկ", - "Կարմրավան", - "Հայկասար", - "Նահապետավան", - "Վարդաղբյուր", - "Քարաբերդ", - "Արծվանիկ", - "Բարձրավան", - "Կաղնուտ", - "Հացավան", - "Նռնաձոր", - "Սառնակունք", - "Աղավնաձոր", - "Սևաժայռ", - "Վերնաշեն", - "Այգեհովիտ", - "Արծվաբերդ", - "Բերքաբեր", - "Գետահովիտ", - "Ծաղկավան", - "Հաղթանակ", - "Ոսկեպար", - "Սարիգյուղ", - ) - - def city(self) -> str: - """ - :example: 'Բյուրեղավան' - """ - return self.random_element(self.cities) - - def city_prefix(self) -> str: - """ - :example: 'ք.' - """ - return self.random_element(self.city_prefixes) - - def postcode(self) -> str: - """ - :example: '3159' - """ - return "%04d" % self.generator.random.randint(200, 4299) - - def postcode_in_state(self, state_abbr: Optional[str] = None) -> str: - """ - :example: '4703' - """ - if state_abbr is None: - state_abbr = self.random_element(self.states_abbr) - - if state_abbr in self.states_abbr: - postcode = "%d" % ( - self.generator.random.randint( - self.states_postcode[state_abbr][0], - self.states_postcode[state_abbr][1], - ) - ) - - if len(postcode) == 3: - postcode = "0%s" % postcode - - return postcode - - else: - raise Exception("State Abbreviation not found in list") - - def secondary_address(self) -> str: - """ - :example: 'բն. 49' - """ - return self.numerify(self.random_element(self.secondary_address_formats)) - - def administrative_unit(self) -> str: - """ - :example: 'Կոտայք' - """ - return self.random_element(self.states) - - state = administrative_unit - - def state_abbr(self) -> str: - """ - :example: 'ՎՁ' - """ - return self.random_element(self.states_abbr) - - def street(self) -> str: - """ - :example: 'Ոսկերիչների' - """ - return self.random_element(self.streets) - - def street_prefix(self) -> str: - """ - :example: 'փողոց' - """ - return self.random_element(self.street_prefixes) - - def village(self) -> str: - """ - :example: 'Ոսկեվազ' - """ - return self.random_element(self.villages) - - def village_prefix(self) -> str: - """ - :example: 'գ.' - """ - return self.random_element(self.village_prefixes) diff --git a/.venv/lib/python3.12/site-packages/faker/providers/address/hy_AM/__pycache__/__init__.cpython-312.pyc b/.venv/lib/python3.12/site-packages/faker/providers/address/hy_AM/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 3050835ebbc59e9aec471dce2abfa5ab5a5169c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17763 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