From d9a11cbfbc62881225b7148ea59b5532e073f5c5 Mon Sep 17 00:00:00 2001 From: Eric Date: Sun, 21 Apr 2024 22:01:54 -0700 Subject: [PATCH] python 3.12 upgrade --- .efrocachemap | 1453 +++--- .gitignore | 3 + CHANGELOG.md | 31 +- Makefile | 104 +- ballisticakit-cmake/CMakeLists.txt | 4 +- config/README.md | 2 +- config/requirements.txt | 25 + config/spinoffconfig.py | 1 - config/toolconfigsrc/pycheckers | 5 - config/toolconfigsrc/style.yapf | 8 - src/assets/.asset_manifest_private.json | 3872 +++++++------- src/assets/.asset_manifest_public.json | 614 +-- src/assets/Makefile | 4488 ++++++++--------- src/assets/ba_data/python/babase/_app.py | 15 +- src/assets/ba_data/python/babase/_apputils.py | 3 +- .../ba_data/python/babase/_devconsole.py | 4 +- .../ba_data/python/babase/_emptyappmode.py | 3 +- src/assets/ba_data/python/babase/_env.py | 3 +- src/assets/ba_data/python/babase/_general.py | 3 +- src/assets/ba_data/python/babase/_language.py | 4 +- src/assets/ba_data/python/babase/_login.py | 3 +- src/assets/ba_data/python/babase/_plugin.py | 4 +- src/assets/ba_data/python/babase/_ui.py | 4 +- .../ba_data/python/baclassic/_benchmark.py | 3 +- src/assets/ba_data/python/baclassic/_net.py | 3 +- .../ba_data/python/baclassic/_subsystem.py | 3 +- .../ba_data/python/baclassic/macmusicapp.py | 3 +- .../ba_data/python/baclassic/osmusic.py | 3 +- src/assets/ba_data/python/baenv.py | 2 +- .../ba_data/python/baplus/_subsystem.py | 3 +- .../python/bascenev1/_activitytypes.py | 3 +- .../ba_data/python/bascenev1/_appmode.py | 3 +- .../ba_data/python/bascenev1/_coopgame.py | 3 +- .../ba_data/python/bascenev1/_coopsession.py | 3 +- .../ba_data/python/bascenev1/_dependency.py | 3 +- .../python/bascenev1/_dualteamsession.py | 3 +- .../python/bascenev1/_freeforallsession.py | 3 +- .../ba_data/python/bascenev1/_gameactivity.py | 3 +- src/assets/ba_data/python/bascenev1/_level.py | 3 +- src/assets/ba_data/python/bascenev1/_map.py | 3 +- .../python/bascenev1/_multiteamsession.py | 3 +- .../ba_data/python/bascenev1/_nodeactor.py | 4 +- .../ba_data/python/bascenev1/_teamgame.py | 3 +- .../python/bascenev1lib/activity/coopjoin.py | 3 +- .../python/bascenev1lib/activity/coopscore.py | 3 +- .../python/bascenev1lib/activity/drawscore.py | 3 +- .../bascenev1lib/activity/dualteamscore.py | 3 +- .../activity/freeforallvictory.py | 3 +- .../bascenev1lib/activity/multiteamjoin.py | 3 +- .../bascenev1lib/activity/multiteamscore.py | 3 +- .../bascenev1lib/activity/multiteamvictory.py | 3 +- .../python/bascenev1lib/actor/background.py | 3 +- .../ba_data/python/bascenev1lib/actor/bomb.py | 3 +- .../bascenev1lib/actor/controlsguide.py | 3 +- .../ba_data/python/bascenev1lib/actor/flag.py | 3 +- .../python/bascenev1lib/actor/image.py | 3 +- .../bascenev1lib/actor/onscreencountdown.py | 3 +- .../bascenev1lib/actor/onscreentimer.py | 3 +- .../python/bascenev1lib/actor/playerspaz.py | 3 +- .../python/bascenev1lib/actor/popuptext.py | 3 +- .../python/bascenev1lib/actor/powerupbox.py | 3 +- .../ba_data/python/bascenev1lib/actor/spaz.py | 3 +- .../python/bascenev1lib/actor/spazbot.py | 3 +- .../ba_data/python/bascenev1lib/actor/text.py | 3 +- .../python/bascenev1lib/actor/tipstext.py | 3 +- .../python/bascenev1lib/actor/zoomtext.py | 3 +- .../python/bascenev1lib/game/assault.py | 3 +- .../bascenev1lib/game/capturetheflag.py | 3 +- .../python/bascenev1lib/game/chosenone.py | 3 +- .../python/bascenev1lib/game/conquest.py | 3 +- .../python/bascenev1lib/game/deathmatch.py | 3 +- .../python/bascenev1lib/game/easteregghunt.py | 3 +- .../python/bascenev1lib/game/elimination.py | 3 +- .../python/bascenev1lib/game/football.py | 3 +- .../python/bascenev1lib/game/hockey.py | 3 +- .../python/bascenev1lib/game/keepaway.py | 3 +- .../python/bascenev1lib/game/kingofthehill.py | 3 +- .../python/bascenev1lib/game/meteorshower.py | 3 +- .../python/bascenev1lib/game/ninjafight.py | 3 +- .../python/bascenev1lib/game/onslaught.py | 3 +- .../ba_data/python/bascenev1lib/game/race.py | 3 +- .../python/bascenev1lib/game/runaround.py | 3 +- .../bascenev1lib/game/targetpractice.py | 3 +- .../python/bascenev1lib/game/thelaststand.py | 3 +- .../ba_data/python/bascenev1lib/mainmenu.py | 3 +- .../ba_data/python/bascenev1lib/maps.py | 3 +- .../ba_data/python/bascenev1lib/tutorial.py | 3 +- .../ba_data/python/bauiv1/_subsystem.py | 3 +- src/assets/ba_data/python/bauiv1/_uitypes.py | 3 +- .../python/bauiv1lib/account/viewer.py | 3 +- .../ba_data/python/bauiv1lib/achievements.py | 2 +- .../python/bauiv1lib/characterpicker.py | 4 +- .../ba_data/python/bauiv1lib/colorpicker.py | 4 +- .../ba_data/python/bauiv1lib/fileselector.py | 4 +- .../python/bauiv1lib/gather/abouttab.py | 4 +- .../python/bauiv1lib/gather/manualtab.py | 3 +- .../python/bauiv1lib/gather/nearbytab.py | 3 +- .../python/bauiv1lib/gather/privatetab.py | 3 +- .../python/bauiv1lib/gather/publictab.py | 3 +- .../ba_data/python/bauiv1lib/getremote.py | 2 +- .../ba_data/python/bauiv1lib/iconpicker.py | 4 +- .../python/bauiv1lib/playlist/share.py | 4 +- .../ba_data/python/bauiv1lib/playoptions.py | 3 +- src/assets/ba_data/python/bauiv1lib/popup.py | 4 +- src/assets/ba_data/python/bauiv1lib/qrcode.py | 3 +- .../python/bauiv1lib/resourcetypeinfo.py | 2 +- .../python/bauiv1lib/teamnamescolors.py | 4 +- .../python/bauiv1lib/tournamententry.py | 4 +- .../python/bauiv1lib/tournamentscores.py | 4 +- .../ba_data/python/bauiv1lib/trophies.py | 4 +- .../server_package/ballisticakit_server.py | 8 +- .../platform/windows/core_platform_windows.cc | 4 +- src/ballistica/core/python/core_python.cc | 4 +- src/ballistica/shared/ballistica.cc | 2 +- src/external/windows/include/python/Python.h | 6 +- .../windows/include/python/abstract.h | 42 +- .../windows/include/python/boolobject.h | 15 +- .../windows/include/python/bytearrayobject.h | 4 +- .../windows/include/python/bytesobject.h | 2 +- src/external/windows/include/python/ceval.h | 2 +- src/external/windows/include/python/compile.h | 3 - .../windows/include/python/complexobject.h | 4 +- .../windows/include/python/cpython/abstract.h | 25 +- .../include/python/cpython/bytearrayobject.h | 8 +- .../include/python/cpython/bytesobject.h | 8 +- .../include/python/cpython/cellobject.h | 19 +- .../windows/include/python/cpython/ceval.h | 11 +- .../include/python/cpython/classobject.h | 38 +- .../windows/include/python/cpython/code.h | 213 +- .../windows/include/python/cpython/compile.h | 19 +- .../windows/include/python/cpython/context.h | 6 +- .../include/python/cpython/dictobject.h | 42 +- .../include/python/cpython/fileobject.h | 1 + .../include/python/cpython/floatobject.h | 10 +- .../include/python/cpython/funcobject.h | 111 +- .../include/python/cpython/genobject.h | 15 +- .../windows/include/python/cpython/import.h | 5 +- .../include/python/cpython/initconfig.h | 7 +- .../python/cpython/interpreteridobject.h | 11 + .../include/python/cpython/listobject.h | 10 +- .../include/python/cpython/longintrepr.h | 41 +- .../include/python/cpython/longobject.h | 5 + .../include/python/cpython/memoryobject.h | 52 + .../include/python/cpython/methodobject.h | 20 +- .../include/python/cpython/modsupport.h | 10 +- .../windows/include/python/cpython/object.h | 148 +- .../windows/include/python/cpython/objimpl.h | 16 +- .../include/python/cpython/odictobject.h | 12 +- .../include/python/cpython/picklebufobject.h | 2 +- .../windows/include/python/cpython/pydebug.h | 36 +- .../windows/include/python/cpython/pyerrors.h | 37 +- .../windows/include/python/cpython/pyframe.h | 18 + .../include/python/cpython/pylifecycle.h | 48 +- .../windows/include/python/cpython/pystate.h | 146 +- .../include/python/cpython/pythonrun.h | 28 +- .../windows/include/python/cpython/pytime.h | 8 + .../include/python/cpython/setobject.h | 9 +- .../include/python/cpython/tupleobject.h | 10 +- .../include/python/cpython/unicodeobject.h | 442 +- .../windows/include/python/cpython/warnings.h | 2 +- .../include/python/cpython/weakrefobject.h | 4 +- .../windows/include/python/datetime.h | 90 +- .../windows/include/python/descrobject.h | 56 + .../windows/include/python/dictobject.h | 8 +- src/external/windows/include/python/errcode.h | 38 +- src/external/windows/include/python/exports.h | 12 +- .../windows/include/python/fileobject.h | 8 +- .../windows/include/python/floatobject.h | 2 +- src/external/windows/include/python/import.h | 2 +- .../include/python/internal/pycore_accu.h | 39 - .../include/python/internal/pycore_asdl.h | 4 +- .../include/python/internal/pycore_ast.h | 82 +- .../python/internal/pycore_ast_state.h | 11 +- .../include/python/internal/pycore_atexit.h | 57 + .../python/internal/pycore_bytesobject.h | 5 - .../include/python/internal/pycore_call.h | 12 + .../include/python/internal/pycore_ceval.h | 62 +- .../python/internal/pycore_ceval_state.h | 103 + .../include/python/internal/pycore_code.h | 410 +- .../include/python/internal/pycore_compile.h | 84 +- .../include/python/internal/pycore_context.h | 4 + .../python/internal/pycore_descrobject.h | 26 + .../include/python/internal/pycore_dict.h | 79 +- .../python/internal/pycore_dict_state.h | 50 + .../include/python/internal/pycore_dtoa.h | 49 +- .../python/internal/pycore_faulthandler.h | 99 + .../python/internal/pycore_fileutils.h | 25 +- .../internal/pycore_fileutils_windows.h | 98 + .../python/internal/pycore_floatobject.h | 12 + .../python/internal/pycore_flowgraph.h | 120 + .../include/python/internal/pycore_format.h | 2 - .../include/python/internal/pycore_frame.h | 125 +- .../include/python/internal/pycore_function.h | 8 + .../include/python/internal/pycore_gc.h | 70 +- .../python/internal/pycore_genobject.h | 2 +- .../python/internal/pycore_global_objects.h | 55 +- .../pycore_global_objects_fini_generated.h | 1531 ++++++ .../python/internal/pycore_global_strings.h | 416 +- .../include/python/internal/pycore_hamt.h | 13 +- .../python/internal/pycore_hashtable.h | 5 +- .../include/python/internal/pycore_import.h | 162 +- .../python/internal/pycore_initconfig.h | 12 +- .../python/internal/pycore_instruments.h | 106 + .../include/python/internal/pycore_interp.h | 302 +- .../internal/pycore_interpreteridobject.h | 22 - .../python/internal/pycore_intrinsics.h | 32 + .../include/python/internal/pycore_list.h | 23 +- .../include/python/internal/pycore_long.h | 144 + .../python/internal/pycore_memoryobject.h | 18 + .../python/internal/pycore_moduleobject.h | 3 + .../include/python/internal/pycore_object.h | 211 +- .../python/internal/pycore_object_state.h | 36 + .../include/python/internal/pycore_obmalloc.h | 700 +++ .../python/internal/pycore_obmalloc_init.h | 73 + .../include/python/internal/pycore_opcode.h | 396 +- .../python/internal/pycore_opcode_utils.h | 92 + .../include/python/internal/pycore_parser.h | 35 + .../include/python/internal/pycore_pyerrors.h | 13 +- .../include/python/internal/pycore_pyhash.h | 32 +- .../python/internal/pycore_pylifecycle.h | 16 +- .../include/python/internal/pycore_pymath.h | 19 - .../include/python/internal/pycore_pymem.h | 62 +- .../python/internal/pycore_pymem_init.h | 85 + .../include/python/internal/pycore_pystate.h | 89 +- .../include/python/internal/pycore_pythread.h | 81 + .../include/python/internal/pycore_range.h | 21 + .../include/python/internal/pycore_runtime.h | 110 +- .../python/internal/pycore_runtime_init.h | 1285 +---- .../internal/pycore_runtime_init_generated.h | 1525 ++++++ .../include/python/internal/pycore_signal.h | 63 + .../python/internal/pycore_sliceobject.h | 2 + .../python/internal/pycore_structseq.h | 15 +- .../include/python/internal/pycore_symtable.h | 56 +- .../python/internal/pycore_sysmodule.h | 3 + .../include/python/internal/pycore_time.h | 25 + .../{token.h => internal/pycore_token.h} | 45 +- .../python/internal/pycore_tracemalloc.h | 123 + .../include/python/internal/pycore_tuple.h | 10 +- .../python/internal/pycore_typeobject.h | 127 +- .../python/internal/pycore_typevarobject.h | 24 + .../python/internal/pycore_unicodeobject.h | 10 +- .../internal/pycore_unicodeobject_generated.h | 2093 ++++++++ .../python/internal/pycore_unionobject.h | 4 +- .../include/python/interpreteridobject.h | 17 + .../windows/include/python/iterobject.h | 4 +- .../windows/include/python/listobject.h | 2 +- .../windows/include/python/longobject.h | 23 +- .../windows/include/python/memoryobject.h | 46 +- .../windows/include/python/methodobject.h | 4 +- .../windows/include/python/modsupport.h | 16 +- .../windows/include/python/moduleobject.h | 30 +- src/external/windows/include/python/object.h | 286 +- src/external/windows/include/python/objimpl.h | 23 +- src/external/windows/include/python/opcode.h | 229 +- .../windows/include/python/patchlevel.h | 4 +- .../windows/include/python/py_curses.h | 2 +- .../windows/include/python/pybuffer.h | 5 +- .../windows/include/python/pycapsule.h | 2 +- .../windows/include/python/pyconfig.h | 76 +- .../windows/include/python/pydtrace.h | 2 +- .../windows/include/python/pyerrors.h | 10 +- src/external/windows/include/python/pyexpat.h | 4 +- .../windows/include/python/pymacconfig.h | 23 +- src/external/windows/include/python/pymacro.h | 34 +- src/external/windows/include/python/pymath.h | 25 +- src/external/windows/include/python/pymem.h | 14 +- src/external/windows/include/python/pyport.h | 99 +- src/external/windows/include/python/pystats.h | 110 + .../windows/include/python/pythonrun.h | 4 + .../windows/include/python/pythread.h | 4 +- .../windows/include/python/rangeobject.h | 2 +- .../windows/include/python/setobject.h | 10 +- .../windows/include/python/sliceobject.h | 2 +- .../windows/include/python/structmember.h | 93 +- .../windows/include/python/structseq.h | 4 +- .../windows/include/python/sysmodule.h | 13 + .../windows/include/python/traceback.h | 2 +- .../windows/include/python/tracemalloc.h | 34 + .../windows/include/python/tupleobject.h | 2 +- .../windows/include/python/unicodeobject.h | 47 +- .../windows/include/python/weakrefobject.h | 8 +- src/external/windows/lib/Win32/python311.lib | Bin 368002 -> 0 bytes .../windows/lib/Win32/python311_d.lib | Bin 372392 -> 0 bytes src/external/windows/lib/Win32/python312.lib | Bin 0 -> 386024 bytes .../windows/lib/Win32/python312_d.lib | Bin 0 -> 391598 bytes src/external/windows/lib/x64/python311.lib | Bin 360148 -> 0 bytes src/external/windows/lib/x64/python311_d.lib | Bin 364518 -> 0 bytes src/external/windows/lib/x64/python312.lib | Bin 0 -> 377824 bytes src/external/windows/lib/x64/python312_d.lib | Bin 0 -> 383358 bytes tests/test_efro/test_dataclassio.py | 5 +- tests/test_efro/test_message.py | 3 +- tools/bacloud | 2 +- tools/bacommon/cloud.py | 3 +- tools/batools/assetsmakefile.py | 5 +- tools/batools/build.py | 215 +- tools/batools/dummymodule.py | 54 +- tools/{pcommand => batools/pcommandmain.py} | 7 +- tools/batools/pcommands.py | 30 - tools/batools/project/_checks.py | 87 +- tools/batools/project/_updater.py | 3 +- tools/batools/pythonenumsmodule.py | 4 +- tools/batools/spinoff/_context.py | 2 +- tools/batools/spinoff/_main.py | 4 +- tools/batools/spinoff/_test.py | 1 + tools/batools/staging.py | 9 +- tools/batools/xcodeproject.py | 42 +- tools/efro/dataclassio/extras.py | 4 +- tools/efro/error.py | 4 +- tools/efro/log.py | 3 +- tools/efro/message/_protocol.py | 1 - tools/efrotools/__init__.py | 30 +- tools/efrotools/code.py | 32 +- tools/efrotools/genwrapper.py | 79 + tools/efrotools/jsontools.py | 4 +- tools/efrotools/message.py | 7 +- tools/efrotools/pcommands.py | 6 +- tools/efrotools/project.py | 42 + tools/efrotools/pybuild.py | 190 +- tools/efrotools/pyver.py | 81 + tools/efrotools/toolconfig.py | 12 +- tools/spinoff | 37 +- 321 files changed, 17888 insertions(+), 9288 deletions(-) create mode 100644 config/requirements.txt delete mode 100644 config/toolconfigsrc/pycheckers delete mode 100644 config/toolconfigsrc/style.yapf create mode 100644 src/external/windows/include/python/cpython/interpreteridobject.h create mode 100644 src/external/windows/include/python/cpython/memoryobject.h delete mode 100755 src/external/windows/include/python/internal/pycore_accu.h create mode 100644 src/external/windows/include/python/internal/pycore_atexit.h create mode 100644 src/external/windows/include/python/internal/pycore_ceval_state.h create mode 100644 src/external/windows/include/python/internal/pycore_descrobject.h create mode 100644 src/external/windows/include/python/internal/pycore_dict_state.h create mode 100644 src/external/windows/include/python/internal/pycore_faulthandler.h create mode 100644 src/external/windows/include/python/internal/pycore_fileutils_windows.h create mode 100644 src/external/windows/include/python/internal/pycore_flowgraph.h create mode 100644 src/external/windows/include/python/internal/pycore_global_objects_fini_generated.h create mode 100644 src/external/windows/include/python/internal/pycore_instruments.h delete mode 100644 src/external/windows/include/python/internal/pycore_interpreteridobject.h create mode 100644 src/external/windows/include/python/internal/pycore_intrinsics.h create mode 100644 src/external/windows/include/python/internal/pycore_memoryobject.h create mode 100644 src/external/windows/include/python/internal/pycore_object_state.h create mode 100644 src/external/windows/include/python/internal/pycore_obmalloc.h create mode 100644 src/external/windows/include/python/internal/pycore_obmalloc_init.h create mode 100644 src/external/windows/include/python/internal/pycore_opcode_utils.h create mode 100644 src/external/windows/include/python/internal/pycore_pymem_init.h create mode 100644 src/external/windows/include/python/internal/pycore_pythread.h create mode 100644 src/external/windows/include/python/internal/pycore_range.h create mode 100644 src/external/windows/include/python/internal/pycore_runtime_init_generated.h create mode 100644 src/external/windows/include/python/internal/pycore_time.h rename src/external/windows/include/python/{token.h => internal/pycore_token.h} (68%) mode change 100755 => 100644 create mode 100644 src/external/windows/include/python/internal/pycore_tracemalloc.h create mode 100644 src/external/windows/include/python/internal/pycore_typevarobject.h create mode 100644 src/external/windows/include/python/internal/pycore_unicodeobject_generated.h create mode 100644 src/external/windows/include/python/interpreteridobject.h create mode 100644 src/external/windows/include/python/pystats.h delete mode 100644 src/external/windows/lib/Win32/python311.lib delete mode 100644 src/external/windows/lib/Win32/python311_d.lib create mode 100644 src/external/windows/lib/Win32/python312.lib create mode 100644 src/external/windows/lib/Win32/python312_d.lib delete mode 100644 src/external/windows/lib/x64/python311.lib delete mode 100644 src/external/windows/lib/x64/python311_d.lib create mode 100644 src/external/windows/lib/x64/python312.lib create mode 100644 src/external/windows/lib/x64/python312_d.lib rename tools/{pcommand => batools/pcommandmain.py} (97%) mode change 100755 => 100644 create mode 100644 tools/efrotools/genwrapper.py create mode 100644 tools/efrotools/project.py create mode 100644 tools/efrotools/pyver.py diff --git a/.efrocachemap b/.efrocachemap index d56cbe9c..6a6106a1 100644 --- a/.efrocachemap +++ b/.efrocachemap @@ -946,11 +946,11 @@ "build/assets/ba_data/meshes/zoeUpperArm.bob": "a8a881010ac1ee9ec5ca872d5c5e853a", "build/assets/ba_data/meshes/zoeUpperLeg.bob": "95b2502f74c70f934927f67cd505c3ad", "build/assets/ba_data/python-site-packages/_yaml/__init__.py": "b09d1968d73a04d6cf20e4e79657a6e7", - "build/assets/ba_data/python-site-packages/certifi/__init__.py": "b1fb6436db400125ecbb288262d00f0f", + "build/assets/ba_data/python-site-packages/certifi/__init__.py": "98360d9e66de68a618eed6098a65405b", "build/assets/ba_data/python-site-packages/certifi/__main__.py": "ef02e73f8581609df189a9f61aca365b", - "build/assets/ba_data/python-site-packages/certifi/cacert.pem": "4422aed09ab445f7290df7d72a301a47", - "build/assets/ba_data/python-site-packages/certifi/core.py": "1b505388f1475fabd1b60031f985271c", - "build/assets/ba_data/python-site-packages/typing_extensions.py": "188320d92e530be7ea345d3ce3be38de", + "build/assets/ba_data/python-site-packages/certifi/cacert.pem": "4e587dca9ab75057ffef6658ed385ff2", + "build/assets/ba_data/python-site-packages/certifi/core.py": "c1b8c102093ea26587619677c7ec6016", + "build/assets/ba_data/python-site-packages/typing_extensions.py": "f1af94a03caf6fc79be0aedc8ab03090", "build/assets/ba_data/python-site-packages/yaml/__init__.py": "2b747e5772c203377222afc888ac6b71", "build/assets/ba_data/python-site-packages/yaml/composer.py": "cef871e1f5f99ba2a7c44941b70afb06", "build/assets/ba_data/python-site-packages/yaml/constructor.py": "8a15e361e34b79491c81553bb3534062", @@ -2582,133 +2582,126 @@ "build/assets/ba_data/textures/zoeIcon_preview.png": "f641a31316b126aea94f9adb62f23524", "build/assets/pylib-android/__future__.py": "acc24f51e6ae9197e256968b30ebe487", "build/assets/pylib-android/__hello__.py": "db85012d4e4d5bee6d13b4561846166f", - "build/assets/pylib-android/_aix_support.py": "f00b4f005e2b9de6c018215d40a58647", - "build/assets/pylib-android/_bootsubprocess.py": "205760f427c8f812dfe65f1731cd78ad", - "build/assets/pylib-android/_collections_abc.py": "2001886c6dfa4074d25c606642148f34", + "build/assets/pylib-android/_aix_support.py": "2f8a7b9e16b4ee66a814c2d07f3280db", + "build/assets/pylib-android/_collections_abc.py": "e063cc62c682af32663ad249e13d50e4", "build/assets/pylib-android/_compat_pickle.py": "831c0e093cb3284ca7e4dc9156c3ac23", "build/assets/pylib-android/_compression.py": "abcf25071189f4a5c3a89f70a1071317", "build/assets/pylib-android/_markupbase.py": "525da8ac70a8e3b009bd74eabb7d724b", - "build/assets/pylib-android/_osx_support.py": "5eff9100bbe3e24cc4efd25f6b9894de", + "build/assets/pylib-android/_osx_support.py": "c0871f8d2b36955d67f0446bb9fa3827", "build/assets/pylib-android/_py_abc.py": "180d5cf138b011bd6a280c2f433bed47", - "build/assets/pylib-android/_pydecimal.py": "0949becccc98d6df6eab38a85db0069b", - "build/assets/pylib-android/_pyio.py": "a6e88d66fbca88b13213cdd2177390b8", + "build/assets/pylib-android/_pydatetime.py": "af813d3d6cb8ccf3e90b76b91f5fa7f2", + "build/assets/pylib-android/_pydecimal.py": "4572eb8c67bcfbbcda7ed47055c6e6b5", + "build/assets/pylib-android/_pyio.py": "618a6fa97c93e8c63c8e5cf3c283d5fe", + "build/assets/pylib-android/_pylong.py": "e057ab3c9eea264704dff2af204884f8", "build/assets/pylib-android/_sitebuiltins.py": "8b5e3f6e73917962fa014ad2c4a55e61", - "build/assets/pylib-android/_strptime.py": "ff699c3f7647db7621bb88c43cc282d3", - "build/assets/pylib-android/_sysconfigdata__linux_aarch64-linux-android.py": "b1a9ca985ff6a159aa5ef94abd287f46", - "build/assets/pylib-android/_sysconfigdata__linux_arm-linux-androideabi.py": "21a5842f39c86fccaaa0a30e0e4ab347", - "build/assets/pylib-android/_sysconfigdata__linux_i686-linux-android.py": "9349023049d7599da61456b3f9a9687b", - "build/assets/pylib-android/_sysconfigdata__linux_x86_64-linux-android.py": "4151fa62c11c32cddf538e5cc7647160", - "build/assets/pylib-android/_sysconfigdata_d_linux_aarch64-linux-android.py": "d9f7f1d3f5b89b08150dfa00cf243901", - "build/assets/pylib-android/_sysconfigdata_d_linux_arm-linux-androideabi.py": "f4b99d4501a1cf1eb20fbc8973fa0040", - "build/assets/pylib-android/_sysconfigdata_d_linux_i686-linux-android.py": "454094da5fe52a969b53bb46d360da84", - "build/assets/pylib-android/_sysconfigdata_d_linux_x86_64-linux-android.py": "1e23f45f4243c1aacc83f23ad5852390", + "build/assets/pylib-android/_strptime.py": "8c65b46a50f13ca2389b19b32b7f2996", + "build/assets/pylib-android/_sysconfigdata__linux_.py": "90ccf964f2bb27f565a4e9d1f2298701", + "build/assets/pylib-android/_sysconfigdata_d_linux_.py": "5b0f120dabd3236bbf39e7630d6f97c4", "build/assets/pylib-android/_threading_local.py": "4a9688e3987d7d692db46feb9214945e", "build/assets/pylib-android/_weakrefset.py": "e4fa8532ace46dfbc35149c41ea497f7", "build/assets/pylib-android/abc.py": "a0daa1ed187eee8690c1e8438b97da90", "build/assets/pylib-android/aifc.py": "1b9134c72b1e542417bee5bf345a1d0a", "build/assets/pylib-android/antigravity.py": "6d56bedf73be574cb6d7117caf5d334c", - "build/assets/pylib-android/argparse.py": "e22cac9b12c09592929d57eb982fc554", - "build/assets/pylib-android/ast.py": "f287ccaa1cd7cb0ea256e3984fd4ce4d", - "build/assets/pylib-android/asynchat.py": "2ef3a0ce322332fabbf8fad4e133c6a3", - "build/assets/pylib-android/asyncio/__init__.py": "edf0e79e2b8b85c08f09fd14668e4822", + "build/assets/pylib-android/argparse.py": "479fa19b01a256e9162cfed4b3866708", + "build/assets/pylib-android/ast.py": "e59b9f09a7d1f8979b94f900a72f74c6", + "build/assets/pylib-android/asyncio/__init__.py": "4a732a7b4c77634cab1909d8be43cb4c", "build/assets/pylib-android/asyncio/__main__.py": "8e391b47f448ad922dc2614dbd93011e", - "build/assets/pylib-android/asyncio/base_events.py": "8494c7bc5f5fe98fd64d882ed4cc4722", - "build/assets/pylib-android/asyncio/base_futures.py": "d2502e045d28ea562e1a82ddb162b4f0", + "build/assets/pylib-android/asyncio/base_events.py": "071d87caa982ce12333bf31b691dd0b0", + "build/assets/pylib-android/asyncio/base_futures.py": "5b4cefd0a571e9e8d913a052f2e0b15e", "build/assets/pylib-android/asyncio/base_subprocess.py": "8a805e04a2911b2d8e297f0029def4b1", - "build/assets/pylib-android/asyncio/base_tasks.py": "f4388c294f4cf805a6f1e4ed12a5a3aa", - "build/assets/pylib-android/asyncio/constants.py": "13f733940667d1f81cf83adc6e5b2a5b", - "build/assets/pylib-android/asyncio/coroutines.py": "fb3e431df7d09ed38d7fa76385e9bb52", - "build/assets/pylib-android/asyncio/events.py": "3063d6b0d1fcbb50f8142f8ce58531fb", + "build/assets/pylib-android/asyncio/base_tasks.py": "c1d9d15b0f3b61fe9dc6b4efe8b1db0a", + "build/assets/pylib-android/asyncio/constants.py": "677f562b903572e54e03db17e179e608", + "build/assets/pylib-android/asyncio/coroutines.py": "567093e752f19f7b6e31b5b29738d7d4", + "build/assets/pylib-android/asyncio/events.py": "b20e48929fc14229fedd5488a0da33a9", "build/assets/pylib-android/asyncio/exceptions.py": "db8d3794a37d50a433d13c1eacf0d333", "build/assets/pylib-android/asyncio/format_helpers.py": "b0447581eff1bc759da16d512155c72a", - "build/assets/pylib-android/asyncio/futures.py": "297232981f201edac774ec3a49a0845b", - "build/assets/pylib-android/asyncio/locks.py": "ed7c3ace82280988d7415672ed6a5314", + "build/assets/pylib-android/asyncio/futures.py": "e2acd3a2e8f8d69c7884d572737fc358", + "build/assets/pylib-android/asyncio/locks.py": "1630852effc563876002c88455a2f7f4", "build/assets/pylib-android/asyncio/log.py": "1e101049c5cd7ad159b63ef97fe8fb0b", "build/assets/pylib-android/asyncio/mixins.py": "9be94c61811a65522320e29e3dec16b0", - "build/assets/pylib-android/asyncio/proactor_events.py": "b5dfbd01cafd9dbef13107b60c7b2add", + "build/assets/pylib-android/asyncio/proactor_events.py": "ff72970f982322a1141d710557847d4d", "build/assets/pylib-android/asyncio/protocols.py": "b8aa105b79d24f88c7a2c2cdbc8e7814", "build/assets/pylib-android/asyncio/queues.py": "f63be54780730992e2377c51ac373126", - "build/assets/pylib-android/asyncio/runners.py": "f184754fba961e4ea6e77a9aec633afc", - "build/assets/pylib-android/asyncio/selector_events.py": "a108fbd3a49f967da245f39cebf7694e", - "build/assets/pylib-android/asyncio/sslproto.py": "2ec1b21e523055147d94c8c634154aab", + "build/assets/pylib-android/asyncio/runners.py": "e523f1abdd9ab2cf2bc355acea052bd8", + "build/assets/pylib-android/asyncio/selector_events.py": "05a228a5402442e1919a3403f98cdbd2", + "build/assets/pylib-android/asyncio/sslproto.py": "91feebe3be1decbd95035cc1d7b74026", "build/assets/pylib-android/asyncio/staggered.py": "f5056f0a56b73b477a9fa65e71145366", - "build/assets/pylib-android/asyncio/streams.py": "8cc026c067fc9245568199ea659167df", - "build/assets/pylib-android/asyncio/subprocess.py": "46e8b0ba32b4ac7bb5f840c49c89c85a", - "build/assets/pylib-android/asyncio/taskgroups.py": "5162e5b1806d9b647383d34ba1b21b56", - "build/assets/pylib-android/asyncio/tasks.py": "c1bc59c01792bac43b79b425bb61e10e", + "build/assets/pylib-android/asyncio/streams.py": "4027a33e900603b756cde921a8ac2429", + "build/assets/pylib-android/asyncio/subprocess.py": "cc2556ca117d7e864f6f4dfaad7dfe0d", + "build/assets/pylib-android/asyncio/taskgroups.py": "a1c508b8c56ded41ba811085344f0e93", + "build/assets/pylib-android/asyncio/tasks.py": "a5037982ca752ad42910f47b022f3d80", "build/assets/pylib-android/asyncio/threads.py": "7bbf81d424901524510e07b5d20e4a50", - "build/assets/pylib-android/asyncio/timeouts.py": "c7cb81c7ee938bc47ff75342befc872a", + "build/assets/pylib-android/asyncio/timeouts.py": "81be08d68db64e205918ef1d11181c16", "build/assets/pylib-android/asyncio/transports.py": "04598090d813bb363cea9bf714b97c3f", "build/assets/pylib-android/asyncio/trsock.py": "305d016a93b3e5224cb45af43fdc52b9", - "build/assets/pylib-android/asyncio/unix_events.py": "cbb968f7c1e4f87f23b187d7140839f1", - "build/assets/pylib-android/asyncio/windows_events.py": "954637d8416216d656011178dbcedbb4", + "build/assets/pylib-android/asyncio/unix_events.py": "e5490096c3c8ce4d2537317c608862d9", + "build/assets/pylib-android/asyncio/windows_events.py": "e70d58554906a59b6d823850aa6b8395", "build/assets/pylib-android/asyncio/windows_utils.py": "4efbef16e6692c9424804d9bdc496761", - "build/assets/pylib-android/asyncore.py": "af21d495fa6ccc47b51ca8a8a382ea1c", - "build/assets/pylib-android/base64.py": "5f8bbbfda4b9145b1968cb9badf8325b", + "build/assets/pylib-android/base64.py": "00f5d31b06dd0f489d8b14b7bcf43db7", "build/assets/pylib-android/bdb.py": "1e26c626405bfc06b1e7231183eb928a", - "build/assets/pylib-android/bisect.py": "9b70437e327d5176da41192567ad0064", + "build/assets/pylib-android/bisect.py": "69d3166bd72a28217f1bffa40dc9c33b", "build/assets/pylib-android/bz2.py": "cd6a5f2491bc52afd8fc180097371473", - "build/assets/pylib-android/cProfile.py": "9e9c07ac3b9e4195a62b74e4f2b9489f", - "build/assets/pylib-android/calendar.py": "18df862e8e3c3fcbe4ab8a0b0348e339", + "build/assets/pylib-android/cProfile.py": "bec17d6b102c0123c4b743ac685de752", + "build/assets/pylib-android/calendar.py": "cbba95e4f8fb043d8bfd2e2949ed9add", "build/assets/pylib-android/cgi.py": "090c5cfc8b4b92a730beec975159bd2a", - "build/assets/pylib-android/cgitb.py": "2bcff1cec7f3a3a9c96de7a55ebb4ea3", + "build/assets/pylib-android/cgitb.py": "61bb76d359241de24b296bbb337e4b0c", "build/assets/pylib-android/chunk.py": "13d7633b1ff28f5aed4eb043c65c99c5", "build/assets/pylib-android/cmd.py": "8befee2654b0954af7886e24e2e7871f", - "build/assets/pylib-android/code.py": "5d47099984013b933c96b02ef16981b8", - "build/assets/pylib-android/codecs.py": "e11eabe4824899dea4b26a89a568a361", - "build/assets/pylib-android/codeop.py": "d375467fb29fccd43ab94d15a2e63085", - "build/assets/pylib-android/collections/__init__.py": "dcffbb6ee2cadd0c05ad22f2ef41f89b", + "build/assets/pylib-android/code.py": "6d8d7fbb1dce3e6d69810c42b3fae033", + "build/assets/pylib-android/codecs.py": "ccec1dd1d4817516256b1e1bfacf44c5", + "build/assets/pylib-android/codeop.py": "8b1cc6dbee873d6fdc4beeee5ea55077", + "build/assets/pylib-android/collections/__init__.py": "042cc1db56604a76bc4ea5cb0a2435e9", "build/assets/pylib-android/collections/abc.py": "15f410d3821352033a90a04539c99060", "build/assets/pylib-android/colorsys.py": "ca8f117785bf7606c3919ef0f4b828ae", - "build/assets/pylib-android/compileall.py": "eb3f6d92f020ebec3f3f5bffc8a4dd4b", + "build/assets/pylib-android/compileall.py": "8ec3f6a137b3dc78fa583b0d95c54e24", "build/assets/pylib-android/concurrent/__init__.py": "aa990702e8f3a7af205efb5ae23a7c85", "build/assets/pylib-android/concurrent/futures/__init__.py": "3e46fadb9de9c995c37dca4311641d6a", "build/assets/pylib-android/concurrent/futures/_base.py": "a1cd37aea6fe0efff1bc00a39543609e", - "build/assets/pylib-android/concurrent/futures/process.py": "1d1bb7b14e3999b383ba8bd11aa8951c", - "build/assets/pylib-android/concurrent/futures/thread.py": "e63753b8201f1392dbebc84a15054a13", - "build/assets/pylib-android/configparser.py": "914afd2b2cec90bbca0b94fd176b5176", - "build/assets/pylib-android/contextlib.py": "6f52eac914e438ef54407760def8305f", + "build/assets/pylib-android/concurrent/futures/process.py": "2574acdffe6d78cc7b2e98fabd8cdbd3", + "build/assets/pylib-android/concurrent/futures/thread.py": "18557743160bce418a120fa3ca0659ee", + "build/assets/pylib-android/configparser.py": "ff0c0b64d30a191609b88a269e155f45", + "build/assets/pylib-android/contextlib.py": "c3e4c9a022ab8596b6b257957b79c0da", "build/assets/pylib-android/contextvars.py": "ddf2ae9be02601bd8fc9c2cb8a51c04e", - "build/assets/pylib-android/copy.py": "e7c43b1ec5f81ef36486ad8b49ed7f74", - "build/assets/pylib-android/copyreg.py": "91d8335b8ed50cb836e228e30950918f", + "build/assets/pylib-android/copy.py": "73f8cd7ccf79b68121f7c8a42dcde3d0", + "build/assets/pylib-android/copyreg.py": "de5fb1333a0e388e69749e78ed5e55ae", "build/assets/pylib-android/crypt.py": "e12ad225ff7be254f543a48ed68b9465", - "build/assets/pylib-android/csv.py": "0f136b65898fcb860cc8736cfcc96492", - "build/assets/pylib-android/ctypes/__init__.py": "9176a1b1d653a4601d374c44132e5e74", - "build/assets/pylib-android/ctypes/_aix.py": "157227ded02925d8e20ef02b8e2816c9", - "build/assets/pylib-android/ctypes/_endian.py": "2f2f874f4c10e08e2355f6cdcb11be76", + "build/assets/pylib-android/csv.py": "a896b3c30246ae11b1633b402675b6b9", + "build/assets/pylib-android/ctypes/__init__.py": "235310a16d0c17607d86807724dfc51f", + "build/assets/pylib-android/ctypes/_aix.py": "5fd9184c6794ee90ac1441f2c5fe7335", + "build/assets/pylib-android/ctypes/_endian.py": "75edb1136e6c70ff5797b639d74d3a76", "build/assets/pylib-android/ctypes/macholib/__init__.py": "b2ee4220c9357720236e4da2f849f7da", "build/assets/pylib-android/ctypes/macholib/dyld.py": "0788a3010fa031df2dc6bb11942db9de", "build/assets/pylib-android/ctypes/macholib/dylib.py": "6818bfa4d44fb1c1f3aa53f4451de3b6", "build/assets/pylib-android/ctypes/macholib/framework.py": "45eb920bb26cf00cafdb195ecbd2e444", - "build/assets/pylib-android/ctypes/util.py": "55b33ec8508355f99cb322f00026e9fc", - "build/assets/pylib-android/ctypes/wintypes.py": "40e1127cbddb32758cac468826aa9907", + "build/assets/pylib-android/ctypes/util.py": "7b6905d7bb1f55ff33003bd999692eca", + "build/assets/pylib-android/ctypes/wintypes.py": "ff2c24e390bac2cdd203142b422933f5", "build/assets/pylib-android/curses/__init__.py": "9c6a7f3da146df621b20032d11705db7", - "build/assets/pylib-android/curses/ascii.py": "991f235753006a5700fd768abaad844c", + "build/assets/pylib-android/curses/ascii.py": "8bf9cbf2174c327318e671f61882cf6e", "build/assets/pylib-android/curses/has_key.py": "c74b8d6db329fbbd872b7b91bfa94624", "build/assets/pylib-android/curses/panel.py": "8f36fdade9588f8a4362d2cc057a6eff", - "build/assets/pylib-android/curses/textpad.py": "94aa9ebc47a6068d4461652346646dbb", - "build/assets/pylib-android/dataclasses.py": "febeea138bff21dbed88762be772514e", - "build/assets/pylib-android/datetime.py": "521d6767afcfef887ac4c3719386b8fd", + "build/assets/pylib-android/curses/textpad.py": "c53f9edcb5abba15eb755fdebef0eb19", + "build/assets/pylib-android/dataclasses.py": "52ef11127750fed81643fe829bc4c737", + "build/assets/pylib-android/datetime.py": "b4a98cc076882de0f4c5787b888b2eb6", "build/assets/pylib-android/decimal.py": "f57d255d45b5d1d7d8e13c41a283c3e4", "build/assets/pylib-android/difflib.py": "6b3c8fd541b2b8d0320727025cd25275", - "build/assets/pylib-android/dis.py": "cecdc0c02aa3d70a7f550e60ebc9b3ba", - "build/assets/pylib-android/doctest.py": "8a18c35f3aa66130955a6a3bf1bfead4", + "build/assets/pylib-android/dis.py": "a13ae44a4be77ce18f74d1e56659ea03", + "build/assets/pylib-android/doctest.py": "25cfaf6115c8d69f5e84c66ce4d51dae", "build/assets/pylib-android/email/__init__.py": "4ff603eeeb4ce0302c8bd1b220fc5e13", "build/assets/pylib-android/email/_encoded_words.py": "d7b77501689dd1ce32da789b46264a6a", - "build/assets/pylib-android/email/_header_value_parser.py": "982718787815084548747d4b078902e6", + "build/assets/pylib-android/email/_header_value_parser.py": "f472e3136172faada943c60181e886eb", "build/assets/pylib-android/email/_parseaddr.py": "a6d2999aeed17f060be8797e761a01aa", "build/assets/pylib-android/email/_policybase.py": "09b0c21693ac080c52c52f5daab616aa", "build/assets/pylib-android/email/base64mime.py": "d3e4fc07d04833487677dd2a888c3826", - "build/assets/pylib-android/email/charset.py": "1d101758464f75bf2b93fb17fec9542f", + "build/assets/pylib-android/email/charset.py": "8bcb2315a8340755057e66398e975542", "build/assets/pylib-android/email/contentmanager.py": "e88780ef1d37a11ff216060f740f2572", "build/assets/pylib-android/email/encoders.py": "d401cf76e52f0205393dd8bb1ae28b46", "build/assets/pylib-android/email/errors.py": "afd6b5e8f8baa701baaae14e736ddca0", - "build/assets/pylib-android/email/feedparser.py": "623788306ab3b5d75df1145484045edc", - "build/assets/pylib-android/email/generator.py": "073bac3c4874c3ab74d4e6a9e9317fb2", + "build/assets/pylib-android/email/feedparser.py": "07a3e447714a368776df54182ff4859b", + "build/assets/pylib-android/email/generator.py": "28c473aa2f9c3d295f3d89f5c1bea1ad", "build/assets/pylib-android/email/header.py": "09923b7b77bf91bed41a71b6e3c6e4d9", "build/assets/pylib-android/email/headerregistry.py": "dfd48f9c41454d5bc2355cb1762fb869", "build/assets/pylib-android/email/iterators.py": "752ece28a18545e70fa67a7cf2fe3ef3", - "build/assets/pylib-android/email/message.py": "5b198b0cf1095ba5a3faccdd28310f28", + "build/assets/pylib-android/email/message.py": "d35660dfc0ff8e0ed0125f0e465771b6", "build/assets/pylib-android/email/mime/__init__.py": "340c83beff7dcff8f5c7b87cd43cedaf", "build/assets/pylib-android/email/mime/application.py": "4ce678512f30cac9fd95993186d2eef7", "build/assets/pylib-android/email/mime/audio.py": "4073e45bda9524e3cbe29374951fdc16", @@ -2717,11 +2710,11 @@ "build/assets/pylib-android/email/mime/message.py": "0bf18b4f07a68b646e45b10d7e31c6c7", "build/assets/pylib-android/email/mime/multipart.py": "69577df977b7b36f5e175661dd7095bc", "build/assets/pylib-android/email/mime/nonmultipart.py": "a96d8d31156781a7511cec04e46a95f6", - "build/assets/pylib-android/email/mime/text.py": "21928b3afec29cb55ae1ae7682b8fbe1", - "build/assets/pylib-android/email/parser.py": "f0cdd5c8491cbff0948672784fca1e8f", - "build/assets/pylib-android/email/policy.py": "69a5f116b77b6a70e7761309c5592557", + "build/assets/pylib-android/email/mime/text.py": "634e0b909f94788cf97fc8a0b914d12c", + "build/assets/pylib-android/email/parser.py": "d78f74ba45a3618608cdc9ece2aa411a", + "build/assets/pylib-android/email/policy.py": "34946fe746ce5d39634d54f18716c8f3", "build/assets/pylib-android/email/quoprimime.py": "c5e54c3f0e70d55145517382d4455765", - "build/assets/pylib-android/email/utils.py": "145a606aaa3cbad40c68054ebbf4efa6", + "build/assets/pylib-android/email/utils.py": "05398f8a134b22fac6ab3a1d4b84fcb1", "build/assets/pylib-android/encodings/__init__.py": "6a342ed3b218da63b7f7937beafcc20c", "build/assets/pylib-android/encodings/aliases.py": "29e508ce46c2815863ee7ae01044f594", "build/assets/pylib-android/encodings/ascii.py": "9d1732861e514a1942499024d1a1a799", @@ -2780,7 +2773,7 @@ "build/assets/pylib-android/encodings/hex_codec.py": "fa90b2e675c94926d65257422f416f4b", "build/assets/pylib-android/encodings/hp_roman8.py": "c31c41bd06e088266672f009818fd6e9", "build/assets/pylib-android/encodings/hz.py": "8fc8bc535c23ce519437a3e6eaf94084", - "build/assets/pylib-android/encodings/idna.py": "8c2dbf011854734e0bdea7ce33c488a1", + "build/assets/pylib-android/encodings/idna.py": "f38bbf7849895c2d02829644a62a420c", "build/assets/pylib-android/encodings/iso2022_jp.py": "46b50810137d72dfeda745baee89eabd", "build/assets/pylib-android/encodings/iso2022_jp_1.py": "1587a4e5ad77349035a293ea3950ce98", "build/assets/pylib-android/encodings/iso2022_jp_2.py": "f6eaef565e5c3744dded731a9116f2bc", @@ -2844,351 +2837,340 @@ "build/assets/pylib-android/encodings/utf_8_sig.py": "8f3542863ef311d8b970a37c0d66b0de", "build/assets/pylib-android/encodings/uu_codec.py": "4ef8a65413574c017a96b97fc1638ba6", "build/assets/pylib-android/encodings/zlib_codec.py": "1388fb103fdf395451bfc8a2d60933a9", - "build/assets/pylib-android/enum.py": "e2a5734675e418870d7b379b5dba1ed3", - "build/assets/pylib-android/filecmp.py": "7648fdc6d0fc8bae7429d5e4081cf353", + "build/assets/pylib-android/enum.py": "adc9910dd2b96f3028de962e1a91baa7", + "build/assets/pylib-android/filecmp.py": "4f85ce060c139af3d1866931ea0e97b9", "build/assets/pylib-android/fileinput.py": "c3def1041e6b12dd5f1906c9dbbd1101", "build/assets/pylib-android/fnmatch.py": "a1bc67633695d4defd4c0886428c5363", - "build/assets/pylib-android/fractions.py": "eb9712fffd4157211952a28fa9b813ee", - "build/assets/pylib-android/ftplib.py": "acc4bef6b6da342d9b1522db6d41a41d", - "build/assets/pylib-android/functools.py": "c67a3710100f6503daab26a919d7f7b0", - "build/assets/pylib-android/genericpath.py": "5e991b8dd73dd4a05571b73ac532988a", - "build/assets/pylib-android/getopt.py": "d630bf22334ba037143a3dca69088ee1", + "build/assets/pylib-android/fractions.py": "02689771b334f161f5bd4b052aaa3e33", + "build/assets/pylib-android/ftplib.py": "84c6c5d111b887aa3986a02d164e4cdd", + "build/assets/pylib-android/functools.py": "a60c3a01c02be0f20a3e91de2b9e188f", + "build/assets/pylib-android/genericpath.py": "700f98a87ac51709fc817a23e48b52f3", + "build/assets/pylib-android/getopt.py": "2c02d59b410128b2ebff26e3030568a6", "build/assets/pylib-android/getpass.py": "c19e383e949c147a30ecc554b8598e91", - "build/assets/pylib-android/gettext.py": "245a4d4c7ba79febb5423a49ebdc019a", - "build/assets/pylib-android/glob.py": "0607521b67b32c59f30a9e1b238d5c1a", + "build/assets/pylib-android/gettext.py": "41bcab6726c47e297aee10d0e297246b", + "build/assets/pylib-android/glob.py": "aaeb903638c52b8c0f16dea0d63f180d", "build/assets/pylib-android/graphlib.py": "156d50d67d92c1917cf910dfce9cecc9", - "build/assets/pylib-android/gzip.py": "296ba9c497e9c0cc4a97b82dcb02d780", - "build/assets/pylib-android/hashlib.py": "a7fed99623cb1a5373316ff7d4e679df", + "build/assets/pylib-android/gzip.py": "f37180ea6b3df1f9ebe24cf6fce3b418", + "build/assets/pylib-android/hashlib.py": "a99c24c45e421aa6dd563a8f9bfc8b09", "build/assets/pylib-android/heapq.py": "d21f25e54b85a1ec93279167013831ea", - "build/assets/pylib-android/hmac.py": "20f106e37b931a8379cf3cca6bedcd6b", + "build/assets/pylib-android/hmac.py": "95efa902861d54aa09bf43467858bb11", "build/assets/pylib-android/html/__init__.py": "c7f462c6ba167f7ed5e931a76e5482ff", - "build/assets/pylib-android/html/entities.py": "8561b405414160a08f613bdfd89e161b", - "build/assets/pylib-android/html/parser.py": "c2ff6801a3ef6a2863d37b899615efb8", - "build/assets/pylib-android/http/__init__.py": "1dab578aab89ead7171ef10638e88a5d", - "build/assets/pylib-android/http/client.py": "a3f2cd21f8ce7a4ee1b47f0b19fb57f7", - "build/assets/pylib-android/http/cookiejar.py": "f324a21e7c17f40e4d5c78139875811c", + "build/assets/pylib-android/html/entities.py": "7640f21c6ce25357af6d13de96b77a8b", + "build/assets/pylib-android/html/parser.py": "759c3f4323885077bd67e8f1b3c025dd", + "build/assets/pylib-android/http/__init__.py": "eaefcb8fa3addeae50fb6ef77078c928", + "build/assets/pylib-android/http/client.py": "01e7ad4dabecd76980eaca1f6c1e5657", + "build/assets/pylib-android/http/cookiejar.py": "4336d703f02278ece3479532ed43f431", "build/assets/pylib-android/http/cookies.py": "9319b95b505a644b9a112b4c7a7678c3", - "build/assets/pylib-android/http/server.py": "4b286e2b5e6112af17e097539eadd9d7", - "build/assets/pylib-android/imghdr.py": "011d27a98acf3774279a584525614ba3", - "build/assets/pylib-android/imp.py": "34bd1d1620eb0d42f9ef9bbbb11cafae", - "build/assets/pylib-android/importlib/__init__.py": "2f6c1fb453d61417245cd196311a9b52", - "build/assets/pylib-android/importlib/_abc.py": "720f8056e5cd852156378b532ddbbb7c", - "build/assets/pylib-android/importlib/_bootstrap.py": "6f4819e9443e3fda3c28c62f15a8238c", - "build/assets/pylib-android/importlib/_bootstrap_external.py": "aa2d5aab23ea30219b7a42d2b7d27201", - "build/assets/pylib-android/importlib/abc.py": "c9697e928ff17089dc6aea96f5b33003", + "build/assets/pylib-android/http/server.py": "c18bbb2be8ec4195dd065ec13d002016", + "build/assets/pylib-android/imghdr.py": "e1b164d686ccfe3bc2c41c17229cdf4e", + "build/assets/pylib-android/importlib/__init__.py": "37e549dc665547e6d4b766039fc984ee", + "build/assets/pylib-android/importlib/_abc.py": "bb82688b63958d77211ea1c4404a733f", + "build/assets/pylib-android/importlib/_bootstrap.py": "511e1b884a54f9c4c1557bd948927fcf", + "build/assets/pylib-android/importlib/_bootstrap_external.py": "0f864c9f2ad70303da51b4ca2b9b096f", + "build/assets/pylib-android/importlib/abc.py": "c4e08fea8f5896ef300c710bbbfaaa10", "build/assets/pylib-android/importlib/machinery.py": "6a056c561b4ea8eb5457761c8a9fd704", - "build/assets/pylib-android/importlib/metadata/__init__.py": "31c7436c1e3e0e3fcea8c8d506973e49", - "build/assets/pylib-android/importlib/metadata/_adapters.py": "04b4db5bd88699a585c47dca7f4fd528", + "build/assets/pylib-android/importlib/metadata/__init__.py": "aeb10ad9a6f9d3e20d9252dc9e0fc312", + "build/assets/pylib-android/importlib/metadata/_adapters.py": "36d9ec62de810ad11d1d94fef1c53902", "build/assets/pylib-android/importlib/metadata/_collections.py": "6c6720236c09edd9c5b848db865e9a67", "build/assets/pylib-android/importlib/metadata/_functools.py": "67b161a56c1fee136489e10667525dd9", "build/assets/pylib-android/importlib/metadata/_itertools.py": "90757497a57e424716941f43e687617b", - "build/assets/pylib-android/importlib/metadata/_meta.py": "00800b3accf1a58bf07c4e678d6a4107", + "build/assets/pylib-android/importlib/metadata/_meta.py": "552d5cef08a96d83986da8fdae64d692", "build/assets/pylib-android/importlib/metadata/_text.py": "9d94dbaa32344851c5918e5d32468f12", "build/assets/pylib-android/importlib/readers.py": "e88cbbe8636d1ecf9526a3dd9a17162d", "build/assets/pylib-android/importlib/resources/__init__.py": "8963f5e44f2c25e288eb229dd68385f3", - "build/assets/pylib-android/importlib/resources/_adapters.py": "36c384659b0dd599e9efaf57b3f6f642", - "build/assets/pylib-android/importlib/resources/_common.py": "f55698ce31c56eee7b6bc8a5ce72733d", - "build/assets/pylib-android/importlib/resources/_itertools.py": "cbbe35b4b7c101e818b7598fda7a42b3", - "build/assets/pylib-android/importlib/resources/_legacy.py": "77f9dd75b4f64cefe875df7550ca26c5", - "build/assets/pylib-android/importlib/resources/abc.py": "f402d06845215e1c8725c243a3681d73", - "build/assets/pylib-android/importlib/resources/readers.py": "b2bc76af81288e8f6b8e1a272490ba1f", - "build/assets/pylib-android/importlib/resources/simple.py": "ae95788edf31cbfffd53db748d76f0b9", + "build/assets/pylib-android/importlib/resources/_adapters.py": "0545a15d7cc6221744422b2539d24123", + "build/assets/pylib-android/importlib/resources/_common.py": "6ae7e9e7d25df6bd789a2d824bf07cad", + "build/assets/pylib-android/importlib/resources/_itertools.py": "4e890bac49bcb865d4bfa846309a5d6d", + "build/assets/pylib-android/importlib/resources/_legacy.py": "617c6c1e3f8beea72cb03d4fd14f221c", + "build/assets/pylib-android/importlib/resources/abc.py": "528643b7a9f0c3cfa1d86173b9a3f747", + "build/assets/pylib-android/importlib/resources/readers.py": "00ee1e5e1bccffa19cbe2a539b97e2cb", + "build/assets/pylib-android/importlib/resources/simple.py": "16b97df12d2762e00bbb7ee6189750a2", "build/assets/pylib-android/importlib/simple.py": "f34f28cd359ecaf9fd6cf18a4dca2c33", - "build/assets/pylib-android/importlib/util.py": "09c3a96d1265db211f32b73a5f76e1ac", - "build/assets/pylib-android/inspect.py": "365d413e26b3a77118e51987cfd2eb1f", - "build/assets/pylib-android/io.py": "4a3ab68b3f38d3dcf9282f4839fe5d84", - "build/assets/pylib-android/ipaddress.py": "b9831cf9058885b35a2411b4cbada972", + "build/assets/pylib-android/importlib/util.py": "8b414591277a59478a9acab9ef9c56e2", + "build/assets/pylib-android/inspect.py": "1f9f508f836c6f55658d722e9383ada9", + "build/assets/pylib-android/io.py": "4f501a9e8a4ff4c2ca8152b8f5634cb9", + "build/assets/pylib-android/ipaddress.py": "f8aab9a66231645bc9bd92301f1c6ac0", "build/assets/pylib-android/json/__init__.py": "e8b000d2bf8c53b55a72bc3053800596", "build/assets/pylib-android/json/decoder.py": "82a8faab8ae9599b2b5f58322b8055ee", - "build/assets/pylib-android/json/encoder.py": "053c0b87645fb3e5a4a485db7b83e3f7", + "build/assets/pylib-android/json/encoder.py": "c85377b74511c6f463715e02118ca566", "build/assets/pylib-android/json/scanner.py": "d62190fe7b7bbc5c774f7f70d73751a0", "build/assets/pylib-android/json/tool.py": "a83b2c5dafa3adfd772a058cddbc0afc", - "build/assets/pylib-android/keyword.py": "640f4740aa688ce2cca35f19325c1f78", - "build/assets/pylib-android/linecache.py": "2712c31a3a6d7625d437029a6b7470c9", - "build/assets/pylib-android/locale.py": "42f3f48fed6a16da350de46aa85b446a", - "build/assets/pylib-android/logging/__init__.py": "6e5d6f80af880857f5eb29b038512c6d", - "build/assets/pylib-android/logging/config.py": "f811372496ec5ae34e8047f0280686be", - "build/assets/pylib-android/logging/handlers.py": "55d604de088570f8bd5edb62f64682fb", + "build/assets/pylib-android/keyword.py": "4132d92e0b8a50d8f7119ed5fabf1674", + "build/assets/pylib-android/linecache.py": "965977aa395c6db802aa732f30660097", + "build/assets/pylib-android/locale.py": "7c90ef0f6f75d9a5ee9a709ca266a2e2", + "build/assets/pylib-android/logging/__init__.py": "88f53a4eec4313c2e2ab9130250d3ab5", + "build/assets/pylib-android/logging/config.py": "cc6d515fd6b7b16d8ab66fe934249f9b", + "build/assets/pylib-android/logging/handlers.py": "0d0ca5db1f8e3588301a4cfbc4d6d365", "build/assets/pylib-android/lzma.py": "d7388640aa6af4c64fdc821471930f57", - "build/assets/pylib-android/mailbox.py": "d9db3c7510e38484ade3d88446b8f231", - "build/assets/pylib-android/mailcap.py": "c61462a36d20d79a0f4e37717f957bf6", - "build/assets/pylib-android/mimetypes.py": "1e3ee9d7f80b7547d1d3186bf97db3ab", + "build/assets/pylib-android/mailbox.py": "7de36be1f3365d2202d1e6548c538360", + "build/assets/pylib-android/mailcap.py": "bd0d2f41202a3cc850dc25c6c323ecb9", + "build/assets/pylib-android/mimetypes.py": "9eb2bba41bda6bcf7571f7a4c2a2c4a4", "build/assets/pylib-android/modulefinder.py": "3fc074c018de1dd15ab2e309be199dea", - "build/assets/pylib-android/netrc.py": "9a869ca83b316ab5a19a0a2cf22efaf3", + "build/assets/pylib-android/netrc.py": "9dd6b80891863e23b5e0a57bb80c7346", "build/assets/pylib-android/nntplib.py": "4926aa991bd4b96b9318d6242135abf9", - "build/assets/pylib-android/ntpath.py": "d53ff21dc0ef0cd939cc865ae1fb011e", + "build/assets/pylib-android/ntpath.py": "1e3997be9aec964b4a3caa2ff7172c78", "build/assets/pylib-android/nturl2path.py": "937624c4b6f213b652addea66296ccc4", - "build/assets/pylib-android/numbers.py": "0cdcb42317422500d514ec67d496a06e", - "build/assets/pylib-android/opcode.py": "18cba8b1d09ec6fcccfe20e5b13db980", + "build/assets/pylib-android/numbers.py": "bb9d88751c4f892d66e43961c521de7f", + "build/assets/pylib-android/opcode.py": "27b5ed52b503d4cf1adb7d65116655c3", "build/assets/pylib-android/operator.py": "61e197bc43df97ec39ae3e5e59b11c19", "build/assets/pylib-android/optparse.py": "5f65f891612b68c71a2846da86254285", - "build/assets/pylib-android/os.py": "36f9692131ffb9ba4db510de31afc651", - "build/assets/pylib-android/pathlib.py": "095ec821fec243124d0a286b4de3848a", - "build/assets/pylib-android/pdb.py": "c44527d9e905ca3b1b45d3c158df730a", - "build/assets/pylib-android/pickle.py": "e6f9f53d29988454690ccde3279c7c38", - "build/assets/pylib-android/pickletools.py": "85b30fba86d32dfc4a588300dedf5f01", + "build/assets/pylib-android/os.py": "1d20abe92b62ba9fc876be6714e29337", + "build/assets/pylib-android/pathlib.py": "1bf23fd9f937bb58eec2a62a60d73280", + "build/assets/pylib-android/pdb.py": "c62b3dff47478089a415ed83671a636c", + "build/assets/pylib-android/pickle.py": "ec61f6c0d4bd9f21c664a3673d6ce158", + "build/assets/pylib-android/pickletools.py": "e2cb81715625efdc409f8d34e36a9569", "build/assets/pylib-android/pipes.py": "2dd796bdbb87982034234fec50d4526c", - "build/assets/pylib-android/pkgutil.py": "8e3fdfcb6c90dc50245aee89c49eb515", - "build/assets/pylib-android/platform.py": "072a4f8d700c73429d420ca8f5f3a90d", - "build/assets/pylib-android/plistlib.py": "8aa9836b7a69628873b25811c4d5fffa", - "build/assets/pylib-android/poplib.py": "829dc4df5d8e082ad414d499ec4678bd", - "build/assets/pylib-android/posixpath.py": "2a6b3f940f89b0819ee002b6b82b0318", - "build/assets/pylib-android/pprint.py": "b4e9efe35d05b6126d41da36eda47754", - "build/assets/pylib-android/profile.py": "a9f11f8aa6a2905706a5fc9273d6c981", - "build/assets/pylib-android/pstats.py": "c5884aaae199265ab0c3849d053bc996", - "build/assets/pylib-android/pty.py": "c97b51147360cf7fd92c364ab8068a2b", + "build/assets/pylib-android/pkgutil.py": "417ff74f276b7659b93ac5e8ee425f0f", + "build/assets/pylib-android/platform.py": "d15e44b3dcd3271c78bcd4b0cd37dbbb", + "build/assets/pylib-android/plistlib.py": "89a4be15fa63e930d5b5fc3f9c99c4f7", + "build/assets/pylib-android/poplib.py": "8150e0a07082ec4dbb017c4bc7163d7d", + "build/assets/pylib-android/posixpath.py": "f7403faf74c3968010c45e204aad6415", + "build/assets/pylib-android/pprint.py": "8a1792d9fe0cad9605a9deb9af479341", + "build/assets/pylib-android/profile.py": "8f26436d147cfd6d00d19592cf0d8c91", + "build/assets/pylib-android/pstats.py": "1eb59db1b83dd577c863d26ca04b3105", + "build/assets/pylib-android/pty.py": "d778afa8c34f4042a16671503088429b", "build/assets/pylib-android/py_compile.py": "772b429c589d2e005e8bd79b12f55a92", "build/assets/pylib-android/pyclbr.py": "bf1989a2c73108005e874a640760476a", - "build/assets/pylib-android/pydoc.py": "b17a6d227db749f91434253248fa6384", + "build/assets/pylib-android/pydoc.py": "5a84a7bc2c3aa1c4c06f00805eb3f2a4", "build/assets/pylib-android/queue.py": "1e90a0b87965a2642946621db162f441", - "build/assets/pylib-android/quopri.py": "5d58010dd1f96b37a167c6d305372881", - "build/assets/pylib-android/random.py": "9ec8461bc4d5b072e3fc1f65aafccf2f", - "build/assets/pylib-android/re/__init__.py": "a393e2d0c2a468c8d4a0ff76a8a317ea", + "build/assets/pylib-android/quopri.py": "65b24ff8c45eb0e1b29a862093c704db", + "build/assets/pylib-android/random.py": "9bf770576df6ba5ffc2b9e2cef10a47e", + "build/assets/pylib-android/re/__init__.py": "fff067dde47f9c1eca3d58ad1274db3a", "build/assets/pylib-android/re/_casefix.py": "106514c6c6bb479fa2691423a61c8938", - "build/assets/pylib-android/re/_compiler.py": "d38bbefe652b6bfff2bb30459436f112", - "build/assets/pylib-android/re/_constants.py": "99b8d7dba7fb50be8fb435dcefcd2989", - "build/assets/pylib-android/re/_parser.py": "1afe14ae4219eadb32ba0fd3ac1b921a", - "build/assets/pylib-android/reprlib.py": "a129eeeaf66fbd9591d2da242ce23a1a", + "build/assets/pylib-android/re/_compiler.py": "0925da97a1ca572354c08ea6c60c52f5", + "build/assets/pylib-android/re/_constants.py": "f33c8744623d7fb1655b72a49ed71be0", + "build/assets/pylib-android/re/_parser.py": "2232063aa737735fdd6f3bc63730e5bb", + "build/assets/pylib-android/reprlib.py": "d0d46647c19063b69893da3aa015a0aa", "build/assets/pylib-android/rlcompleter.py": "9e57bb7030b57c4ec82eba9e09852414", - "build/assets/pylib-android/runpy.py": "3a2dd98314791c7e36b6bd3585f6ad82", + "build/assets/pylib-android/runpy.py": "7cda83ec81f6ff5e6264d7f01bb5629a", "build/assets/pylib-android/sched.py": "f5579c8c711dd3e89da70ec9e1788c9c", - "build/assets/pylib-android/secrets.py": "bbf9ed672044ef3ab4b83ca2aea1644e", + "build/assets/pylib-android/secrets.py": "98212944edac844461bd146cd3680d5a", "build/assets/pylib-android/selectors.py": "3c94b3b678c473543cdc7f1d2b20a6f6", "build/assets/pylib-android/shelve.py": "3e569c07c863ecbd7f35a6c382d1785a", - "build/assets/pylib-android/shlex.py": "0873fac90a491702950816ead0e59dd0", - "build/assets/pylib-android/shutil.py": "aa636d67785c2e92d34c7c5c81f9e8c5", - "build/assets/pylib-android/signal.py": "114ef47b1798fca6f56ac8a250974b3e", - "build/assets/pylib-android/site.py": "2a99f7de2702aa8411d35acbb91fe926", - "build/assets/pylib-android/smtpd.py": "0602b6a39c4e37133303bee16c3e28a4", - "build/assets/pylib-android/smtplib.py": "439eab6ffc5425ddf57c0be283aa7325", + "build/assets/pylib-android/shlex.py": "adb6b917c5d3adadbdcb77a9257595fd", + "build/assets/pylib-android/shutil.py": "b24c18a65894e6860b16fb8462f9c1c5", + "build/assets/pylib-android/signal.py": "6c286caa92d351510f74cb4e1b3661da", + "build/assets/pylib-android/site.py": "ddbf5304e85bedcc06f9a49b2e544e74", + "build/assets/pylib-android/smtplib.py": "a8121c0c6888489f89cdb2d5b06638f7", "build/assets/pylib-android/sndhdr.py": "6b62a34738529e39528c0cb498a23eee", - "build/assets/pylib-android/socket.py": "c3612daf4d6de67347c7b0e09e44aeb5", - "build/assets/pylib-android/socketserver.py": "98e33643181a54765e6d0b9e01b03d53", - "build/assets/pylib-android/sqlite3/__init__.py": "8838d75ad0e465e25bb0c8dfeab7a9ab", - "build/assets/pylib-android/sqlite3/dbapi2.py": "c85f3ff9ddbd56683a8c801885dc5e53", + "build/assets/pylib-android/socket.py": "93b3814a3cd3753bfbb8caa1e37ea8dd", + "build/assets/pylib-android/socketserver.py": "08d185dbe1e568e299133cc8dcb35940", + "build/assets/pylib-android/sqlite3/__init__.py": "e64822b75a1c8f1be3e23ed6923e12eb", + "build/assets/pylib-android/sqlite3/__main__.py": "52b4c89dbcbaab2bcbd71da0317fdf46", + "build/assets/pylib-android/sqlite3/dbapi2.py": "b3b44b48fcb3999ca0269023c2fb7268", "build/assets/pylib-android/sqlite3/dump.py": "8d2085ec40031d544694759608e53178", "build/assets/pylib-android/sre_compile.py": "a1784e9ccbea7d9963cab75b536b40c8", "build/assets/pylib-android/sre_constants.py": "5c5be32a5334d9b0a848dad520746a63", "build/assets/pylib-android/sre_parse.py": "cca15b9ab31509e6642f9d2fd4fb9d91", - "build/assets/pylib-android/ssl.py": "ed512664b82e23aa157fc69f97df9d01", + "build/assets/pylib-android/ssl.py": "6dcc0bc1a7c25e06be75f50cebc415d2", "build/assets/pylib-android/stat.py": "185f17736cdb40bd3e7400ad8cedef84", - "build/assets/pylib-android/statistics.py": "9807c60eb942bf320ee85a2016ba4516", + "build/assets/pylib-android/statistics.py": "d58cadb4127511466905f2d97e927330", "build/assets/pylib-android/string.py": "c072d3a2d0337386d3235ba72f292752", "build/assets/pylib-android/stringprep.py": "6a5635711a838f76fee7b52537bf8b45", "build/assets/pylib-android/struct.py": "4fd288bd6537effd1d5edbba9d44dde2", - "build/assets/pylib-android/subprocess.py": "4932fae7e87da40d7661100b6871a005", - "build/assets/pylib-android/sunau.py": "a034779289fef0b2221345f40e042680", - "build/assets/pylib-android/symtable.py": "0cd4a624b2e3304664f43189ed9e3bf7", - "build/assets/pylib-android/sysconfig.py": "9ffad6cfff49bc09fe36a33a5446c59d", - "build/assets/pylib-android/tabnanny.py": "84614c63ead0ab71527cecdf3de68f1a", - "build/assets/pylib-android/tarfile.py": "e2fc4eca5c2d39b6f44b9e622a32f602", + "build/assets/pylib-android/subprocess.py": "e34c91ec81308cafc74a353395a10b45", + "build/assets/pylib-android/sunau.py": "146e2e69d9554c3ba397c651179fa9b5", + "build/assets/pylib-android/symtable.py": "7808839ac346e577ef1ab623c324d9e1", + "build/assets/pylib-android/sysconfig.py": "6c0114db24638ab125b9e933d44c79ef", + "build/assets/pylib-android/tabnanny.py": "017f45469d744cc511654fe887bda204", + "build/assets/pylib-android/tarfile.py": "43041075df31a5c8e7d8ea626391f185", "build/assets/pylib-android/telnetlib.py": "1a746e1fc988b9f5c12b9fd5a97c00ea", - "build/assets/pylib-android/tempfile.py": "436007fbe6821c864a53861bd73b4d43", + "build/assets/pylib-android/tempfile.py": "916365f4533239ffe6d66440b0ead6ae", "build/assets/pylib-android/textwrap.py": "3eb16a40553205dc96be5cb9039f3c8c", "build/assets/pylib-android/this.py": "8b0a9a1fa0a45a37e6c656eca1922277", - "build/assets/pylib-android/threading.py": "3354bf0cad72286a0532b0754de78704", - "build/assets/pylib-android/timeit.py": "c918c7dee7538ff6e5a92288f55b4327", - "build/assets/pylib-android/token.py": "d8ff4e6c8eb59896891d01148f481e27", - "build/assets/pylib-android/tokenize.py": "3056f048c07e6c5a6442a5ef4f38e54c", + "build/assets/pylib-android/threading.py": "50ef8436f61b2250a5e19f47818fb990", + "build/assets/pylib-android/timeit.py": "aeb3dde523e82b4e0f6d69a058d924cf", + "build/assets/pylib-android/token.py": "82c742822bb3e47388f579d5135ddf3e", + "build/assets/pylib-android/tokenize.py": "a6dbc95555395d59e97cc5fb232574c7", "build/assets/pylib-android/tomllib/__init__.py": "253ecf9dd67cb81a3e19911a4a39f930", "build/assets/pylib-android/tomllib/_parser.py": "f9a4dc92c44403f970e94c2e494a7358", "build/assets/pylib-android/tomllib/_re.py": "0e509117e16c41c491615e06bb98861d", "build/assets/pylib-android/tomllib/_types.py": "07be9616d6f5e401fd31fbeea619fc97", - "build/assets/pylib-android/trace.py": "3d8698a2c3ec03dc0f394a2f48c2ffbc", - "build/assets/pylib-android/traceback.py": "668bd36fc103a89554d2f9202a07f56d", + "build/assets/pylib-android/trace.py": "e0015a322cf5fbb35310705e81953ab1", + "build/assets/pylib-android/traceback.py": "84cbe40fcb14833ce4a1c0be22c4c9bc", "build/assets/pylib-android/tracemalloc.py": "e4d10d2bee7773566e46797a939e5cbf", - "build/assets/pylib-android/tty.py": "271c7d61005a0a3c2c0952efc60dcb6d", - "build/assets/pylib-android/types.py": "78f8942c08dbfc9c582f1bb8d5206639", - "build/assets/pylib-android/typing.py": "17aaeea16cbfdb93cb4c5b87f535e341", + "build/assets/pylib-android/tty.py": "06d3dd054c50fbff2712f3a38cca880f", + "build/assets/pylib-android/types.py": "134f86ee0d4879d294f95ea39c396027", + "build/assets/pylib-android/typing.py": "5780108232e902b6c03c9dede3203e15", "build/assets/pylib-android/urllib/__init__.py": "340c83beff7dcff8f5c7b87cd43cedaf", "build/assets/pylib-android/urllib/error.py": "b7dde0483ff647eb87162d6e19c04fa0", - "build/assets/pylib-android/urllib/parse.py": "28e09ecc3b696bae8ac5589b9cd64f63", - "build/assets/pylib-android/urllib/request.py": "09b8666fe8319542f7247bb9f8573806", + "build/assets/pylib-android/urllib/parse.py": "9533d0e59e5ec79810be417dfc8b351a", + "build/assets/pylib-android/urllib/request.py": "bf59985a796494de7374fb909f32f933", "build/assets/pylib-android/urllib/response.py": "c8537707a4b1e493c0ec4489ab523c93", "build/assets/pylib-android/urllib/robotparser.py": "5a7616bdf398c166f953ad48c25506eb", "build/assets/pylib-android/uu.py": "7cb795ca0c9e914550e6245dfe53c53e", - "build/assets/pylib-android/uuid.py": "755d75cad456d0c3ab0c67f0276cca32", - "build/assets/pylib-android/warnings.py": "e5f0b4cbc35aae8d4b89a856b189b626", - "build/assets/pylib-android/wave.py": "727a8dacad95625ea14554b7d655ce2e", + "build/assets/pylib-android/uuid.py": "fc298b89a3f1327be7808f0125c57866", + "build/assets/pylib-android/warnings.py": "0786f92f520b209fc88b9352fd7fc474", + "build/assets/pylib-android/wave.py": "91c8be6651123c0d264fada07b63fd8e", "build/assets/pylib-android/weakref.py": "dd14612f02ca8acd723f633b6fff0adf", - "build/assets/pylib-android/webbrowser.py": "8185b8d83c5311ddea5d88a1cfb89c3c", - "build/assets/pylib-android/xdrlib.py": "ee12e9067ab4904da935b8d2213426d8", + "build/assets/pylib-android/webbrowser.py": "45185d3143cc2513d3141e7cbfdafb1b", + "build/assets/pylib-android/xdrlib.py": "d980006108f3333914c49e4d283efbb8", "build/assets/pylib-android/xml/__init__.py": "8eacec822c39da8e54d90d7713f9d517", "build/assets/pylib-android/xml/dom/NodeFilter.py": "aa14742aa31e84424191d88c61db7c60", "build/assets/pylib-android/xml/dom/__init__.py": "6cef27de99de7cf3a6a3444a366f1a4a", "build/assets/pylib-android/xml/dom/domreg.py": "e1ae09aebe4f3ae8f0458a3cbb9d6203", - "build/assets/pylib-android/xml/dom/expatbuilder.py": "d0d92580d8c8c29df4d879b4baeec499", + "build/assets/pylib-android/xml/dom/expatbuilder.py": "ba707d7f72c2f1ded1a488ecbe2bf05b", "build/assets/pylib-android/xml/dom/minicompat.py": "48905f2202fef3b557a41ec0fc31fa9b", "build/assets/pylib-android/xml/dom/minidom.py": "3f4037810f081b078cc3fcab75bae3a0", "build/assets/pylib-android/xml/dom/pulldom.py": "e133090081e446d69e5d1884f64fe1b6", "build/assets/pylib-android/xml/dom/xmlbuilder.py": "610ebe0afcf5c7a72c6f708ae34e4f7e", "build/assets/pylib-android/xml/etree/ElementInclude.py": "164c77dfb9abdf9c70def8812a00843a", "build/assets/pylib-android/xml/etree/ElementPath.py": "fca9220534a8160762dee5e7da5f4144", - "build/assets/pylib-android/xml/etree/ElementTree.py": "e563b0ad7f1079f7298a2f9fd547cea4", + "build/assets/pylib-android/xml/etree/ElementTree.py": "dade97ab01bfa32bafca09daf7e7bbb2", "build/assets/pylib-android/xml/etree/__init__.py": "82a62c7b190620aa1d3a40cc9ba829a5", "build/assets/pylib-android/xml/etree/cElementTree.py": "4708b9e01f77cfda41ec333efec138b7", "build/assets/pylib-android/xml/parsers/__init__.py": "320734d4a3dd5364bd8d2d3d3ad75ff1", "build/assets/pylib-android/xml/parsers/expat.py": "18689bb5155b639098d83a55ad62d9de", - "build/assets/pylib-android/xml/sax/__init__.py": "edc76fc9c2c328868771f14cc2cfee27", - "build/assets/pylib-android/xml/sax/_exceptions.py": "3540d338888633751b11db0324f14020", - "build/assets/pylib-android/xml/sax/expatreader.py": "fdb16c570f98c5153cde642d5095e604", + "build/assets/pylib-android/xml/sax/__init__.py": "a0f081a762804146e043e41db3b5852b", + "build/assets/pylib-android/xml/sax/_exceptions.py": "47e2e96cd8e70ec83e0fc123dd8538f2", + "build/assets/pylib-android/xml/sax/expatreader.py": "194f24e8b6d51aff8b9e99f9c14e5bb2", "build/assets/pylib-android/xml/sax/handler.py": "f861c1516713c5e8d066f8bbe7bc4b54", "build/assets/pylib-android/xml/sax/saxutils.py": "895538d082305b1785e4d407a6f37f09", - "build/assets/pylib-android/xml/sax/xmlreader.py": "a9d0126a36fb7dfe1fbc1ef7de9c5897", + "build/assets/pylib-android/xml/sax/xmlreader.py": "c457eb153d2076241bb0c883d1a6236a", "build/assets/pylib-android/xmlrpc/__init__.py": "aa990702e8f3a7af205efb5ae23a7c85", - "build/assets/pylib-android/xmlrpc/client.py": "8f2cad71c1c87031be073184e71aa405", - "build/assets/pylib-android/xmlrpc/server.py": "3147663bd28b952eef0e1316b94bacc6", - "build/assets/pylib-android/zipapp.py": "d92ea793f092af6383a6383678cf7b73", - "build/assets/pylib-android/zipfile.py": "00671f5cdb9a5ad667efa1dccf0129d3", - "build/assets/pylib-android/zipimport.py": "6d3b32a7258f670eb71daf3a8492a4f1", + "build/assets/pylib-android/xmlrpc/client.py": "c1465858891b6ef5ff366d0bd4c2156b", + "build/assets/pylib-android/xmlrpc/server.py": "168f0d34990d6ed1299c4220176feae5", + "build/assets/pylib-android/zipapp.py": "b387a3b7e895e342c6927e6daa7ac09e", + "build/assets/pylib-android/zipfile/__init__.py": "9c18607a032c9218f310cb378c633c35", + "build/assets/pylib-android/zipfile/__main__.py": "b34ad7063ce4b3461fd9902eb81e0275", + "build/assets/pylib-android/zipfile/_path/__init__.py": "595fff17da7767c6fda1ce996594c9dc", + "build/assets/pylib-android/zipfile/_path/glob.py": "d5792635c566cdcae37a335f1835dc48", + "build/assets/pylib-android/zipimport.py": "2773fff8e214ecced3ebfe1296719893", "build/assets/pylib-android/zoneinfo/__init__.py": "0df5e8a66015e2fe2d77f2e4a5dea1ff", "build/assets/pylib-android/zoneinfo/_common.py": "5b52bdac4156dcbac96743fa99468bf2", - "build/assets/pylib-android/zoneinfo/_tzpath.py": "f021e91036bd38590f2ce643b59dc881", - "build/assets/pylib-android/zoneinfo/_zoneinfo.py": "d000d61aa8998d0076c37f96cf40ca69", + "build/assets/pylib-android/zoneinfo/_tzpath.py": "f8978da35d0aa9073b921133eb387c44", + "build/assets/pylib-android/zoneinfo/_zoneinfo.py": "0a0bb8001deb2238223d05218259af3c", "build/assets/pylib-apple/__future__.py": "acc24f51e6ae9197e256968b30ebe487", "build/assets/pylib-apple/__hello__.py": "db85012d4e4d5bee6d13b4561846166f", - "build/assets/pylib-apple/_aix_support.py": "f00b4f005e2b9de6c018215d40a58647", - "build/assets/pylib-apple/_bootsubprocess.py": "205760f427c8f812dfe65f1731cd78ad", - "build/assets/pylib-apple/_collections_abc.py": "2001886c6dfa4074d25c606642148f34", + "build/assets/pylib-apple/_aix_support.py": "2f8a7b9e16b4ee66a814c2d07f3280db", + "build/assets/pylib-apple/_collections_abc.py": "e063cc62c682af32663ad249e13d50e4", "build/assets/pylib-apple/_compat_pickle.py": "831c0e093cb3284ca7e4dc9156c3ac23", "build/assets/pylib-apple/_compression.py": "abcf25071189f4a5c3a89f70a1071317", "build/assets/pylib-apple/_ios_support.py": "b0b4f9ea562811579b6890415df3330f", "build/assets/pylib-apple/_markupbase.py": "525da8ac70a8e3b009bd74eabb7d724b", "build/assets/pylib-apple/_osx_support.py": "5eff9100bbe3e24cc4efd25f6b9894de", "build/assets/pylib-apple/_py_abc.py": "180d5cf138b011bd6a280c2f433bed47", - "build/assets/pylib-apple/_pydecimal.py": "0949becccc98d6df6eab38a85db0069b", - "build/assets/pylib-apple/_pyio.py": "a6e88d66fbca88b13213cdd2177390b8", + "build/assets/pylib-apple/_pydatetime.py": "0a34d0b9ad990d11918890643e06f691", + "build/assets/pylib-apple/_pydecimal.py": "4572eb8c67bcfbbcda7ed47055c6e6b5", + "build/assets/pylib-apple/_pyio.py": "f7d28af8e054fe3202a50d51314fa174", + "build/assets/pylib-apple/_pylong.py": "e057ab3c9eea264704dff2af204884f8", "build/assets/pylib-apple/_sitebuiltins.py": "8b5e3f6e73917962fa014ad2c4a55e61", - "build/assets/pylib-apple/_strptime.py": "ff699c3f7647db7621bb88c43cc282d3", - "build/assets/pylib-apple/_sysconfigdata__darwin_darwin.py": "851eda9bce1b25dcba0ed272da9a25c1", - "build/assets/pylib-apple/_sysconfigdata__ios_iphoneos.py": "5bfced73a12261ecc310bffce6786cd2", - "build/assets/pylib-apple/_sysconfigdata__ios_iphoneos_arm64.py": "b323d9e0ce8d23039fe55a55a85a7f03", - "build/assets/pylib-apple/_sysconfigdata__ios_iphonesimulator.py": "f9c955d9c5c9cf5a0a026d084a1f9519", - "build/assets/pylib-apple/_sysconfigdata__ios_iphonesimulator_arm64.py": "a546cdaf5cd7c96b7494ea604ba7ce43", - "build/assets/pylib-apple/_sysconfigdata__ios_iphonesimulator_x86_64.py": "56abcd261de3ab910cf340623328a7c0", - "build/assets/pylib-apple/_sysconfigdata__tvos_appletvos.py": "6882eb86d192411b9e85c8b59252c719", - "build/assets/pylib-apple/_sysconfigdata__tvos_appletvos_arm64.py": "aca63835009f6ddd207d25fac7af21f9", - "build/assets/pylib-apple/_sysconfigdata__tvos_appletvsimulator.py": "a3c88367fb568e377ef2a72f0e9c2394", - "build/assets/pylib-apple/_sysconfigdata__tvos_appletvsimulator_arm64.py": "f3fbbf1e8541363be49ddfe5b7f42a5c", - "build/assets/pylib-apple/_sysconfigdata__tvos_appletvsimulator_x86_64.py": "8af232f8b1f956a2ec0bad2dc44f1f59", - "build/assets/pylib-apple/_sysconfigdata_d_darwin_darwin.py": "7b82990a773d8bfdc56a4d0587e767dc", - "build/assets/pylib-apple/_sysconfigdata_d_ios_iphoneos.py": "5bfced73a12261ecc310bffce6786cd2", - "build/assets/pylib-apple/_sysconfigdata_d_ios_iphoneos_arm64.py": "8d5c7003e7ebc454dc0919524c643b81", - "build/assets/pylib-apple/_sysconfigdata_d_ios_iphonesimulator.py": "f9c955d9c5c9cf5a0a026d084a1f9519", - "build/assets/pylib-apple/_sysconfigdata_d_ios_iphonesimulator_arm64.py": "4fcbe87958cfa21d5bba4fc96dd8514e", - "build/assets/pylib-apple/_sysconfigdata_d_ios_iphonesimulator_x86_64.py": "038f6c0ae9ebd4585ba3d71ac9a6f46b", - "build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvos.py": "6882eb86d192411b9e85c8b59252c719", - "build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvos_arm64.py": "370c439fe07fbf0d11a00654eee2cab0", - "build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvsimulator.py": "a3c88367fb568e377ef2a72f0e9c2394", - "build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvsimulator_arm64.py": "35c66716d8e2d2c93a4fffd7fd6143e2", - "build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvsimulator_x86_64.py": "3b59c71925adf541ceaccb165cd57067", + "build/assets/pylib-apple/_strptime.py": "ed6521fd413f31f0de7be162af8db9f5", + "build/assets/pylib-apple/_sysconfigdata__darwin_darwin.py": "bc494dcb0239846f92c26622e84fb99d", + "build/assets/pylib-apple/_sysconfigdata__ios_iphoneos-arm64.py": "f073b8cdfe4179236abb923d538e7fbe", + "build/assets/pylib-apple/_sysconfigdata__ios_iphonesimulator-arm64.py": "2c3a1b46d9966d740b226d0d603a392a", + "build/assets/pylib-apple/_sysconfigdata__tvos_appletvos-arm64.py": "df1d00e8a7b529d64e600c8113d872d7", + "build/assets/pylib-apple/_sysconfigdata__tvos_appletvsimulator-arm64.py": "f9b8d515e7a6619fea32ab77c341b294", + "build/assets/pylib-apple/_sysconfigdata_d_darwin_darwin.py": "bd1f109ca34c52afd95632f7ae64171f", + "build/assets/pylib-apple/_sysconfigdata_d_ios_iphoneos-arm64.py": "178d3dc412e56aeaa211c8f5237f9462", + "build/assets/pylib-apple/_sysconfigdata_d_ios_iphonesimulator-arm64.py": "fc568dd0c36d2253993b9a48f53535d6", + "build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvos-arm64.py": "50e50f852dc4f6acd785fa83c2e6530b", + "build/assets/pylib-apple/_sysconfigdata_d_tvos_appletvsimulator-arm64.py": "5e2dd0675c1364fb20fb7777c4c0eeb0", "build/assets/pylib-apple/_threading_local.py": "4a9688e3987d7d692db46feb9214945e", "build/assets/pylib-apple/_weakrefset.py": "e4fa8532ace46dfbc35149c41ea497f7", "build/assets/pylib-apple/abc.py": "a0daa1ed187eee8690c1e8438b97da90", "build/assets/pylib-apple/aifc.py": "1b9134c72b1e542417bee5bf345a1d0a", "build/assets/pylib-apple/antigravity.py": "6d56bedf73be574cb6d7117caf5d334c", - "build/assets/pylib-apple/argparse.py": "e22cac9b12c09592929d57eb982fc554", - "build/assets/pylib-apple/ast.py": "3aaa1b0e56b21b28155707c54bc225a8", - "build/assets/pylib-apple/asynchat.py": "2ef3a0ce322332fabbf8fad4e133c6a3", - "build/assets/pylib-apple/asyncio/__init__.py": "edf0e79e2b8b85c08f09fd14668e4822", + "build/assets/pylib-apple/argparse.py": "69287b50d559bce5edf5fa4032452324", + "build/assets/pylib-apple/ast.py": "4da7fbee1724f41830970a6660f8949a", + "build/assets/pylib-apple/asyncio/__init__.py": "4a732a7b4c77634cab1909d8be43cb4c", "build/assets/pylib-apple/asyncio/__main__.py": "8e391b47f448ad922dc2614dbd93011e", - "build/assets/pylib-apple/asyncio/base_events.py": "8494c7bc5f5fe98fd64d882ed4cc4722", - "build/assets/pylib-apple/asyncio/base_futures.py": "d2502e045d28ea562e1a82ddb162b4f0", + "build/assets/pylib-apple/asyncio/base_events.py": "13afa4c764bb9aa885cbb6c9f2987ef7", + "build/assets/pylib-apple/asyncio/base_futures.py": "5b4cefd0a571e9e8d913a052f2e0b15e", "build/assets/pylib-apple/asyncio/base_subprocess.py": "8a805e04a2911b2d8e297f0029def4b1", - "build/assets/pylib-apple/asyncio/base_tasks.py": "f4388c294f4cf805a6f1e4ed12a5a3aa", - "build/assets/pylib-apple/asyncio/constants.py": "13f733940667d1f81cf83adc6e5b2a5b", - "build/assets/pylib-apple/asyncio/coroutines.py": "fb3e431df7d09ed38d7fa76385e9bb52", - "build/assets/pylib-apple/asyncio/events.py": "3063d6b0d1fcbb50f8142f8ce58531fb", + "build/assets/pylib-apple/asyncio/base_tasks.py": "c1d9d15b0f3b61fe9dc6b4efe8b1db0a", + "build/assets/pylib-apple/asyncio/constants.py": "61868609d970b5e11a5c49a92472ab87", + "build/assets/pylib-apple/asyncio/coroutines.py": "567093e752f19f7b6e31b5b29738d7d4", + "build/assets/pylib-apple/asyncio/events.py": "b5046a9f8e88fafa4f29919d87f5415b", "build/assets/pylib-apple/asyncio/exceptions.py": "db8d3794a37d50a433d13c1eacf0d333", "build/assets/pylib-apple/asyncio/format_helpers.py": "b0447581eff1bc759da16d512155c72a", - "build/assets/pylib-apple/asyncio/futures.py": "297232981f201edac774ec3a49a0845b", - "build/assets/pylib-apple/asyncio/locks.py": "ed7c3ace82280988d7415672ed6a5314", + "build/assets/pylib-apple/asyncio/futures.py": "e2acd3a2e8f8d69c7884d572737fc358", + "build/assets/pylib-apple/asyncio/locks.py": "1630852effc563876002c88455a2f7f4", "build/assets/pylib-apple/asyncio/log.py": "1e101049c5cd7ad159b63ef97fe8fb0b", "build/assets/pylib-apple/asyncio/mixins.py": "9be94c61811a65522320e29e3dec16b0", - "build/assets/pylib-apple/asyncio/proactor_events.py": "b5dfbd01cafd9dbef13107b60c7b2add", + "build/assets/pylib-apple/asyncio/proactor_events.py": "ff72970f982322a1141d710557847d4d", "build/assets/pylib-apple/asyncio/protocols.py": "b8aa105b79d24f88c7a2c2cdbc8e7814", "build/assets/pylib-apple/asyncio/queues.py": "f63be54780730992e2377c51ac373126", - "build/assets/pylib-apple/asyncio/runners.py": "f184754fba961e4ea6e77a9aec633afc", - "build/assets/pylib-apple/asyncio/selector_events.py": "a108fbd3a49f967da245f39cebf7694e", + "build/assets/pylib-apple/asyncio/runners.py": "e523f1abdd9ab2cf2bc355acea052bd8", + "build/assets/pylib-apple/asyncio/selector_events.py": "818f87c72cac00a40cb63a8eeddb5b55", "build/assets/pylib-apple/asyncio/sslproto.py": "2ec1b21e523055147d94c8c634154aab", "build/assets/pylib-apple/asyncio/staggered.py": "f5056f0a56b73b477a9fa65e71145366", - "build/assets/pylib-apple/asyncio/streams.py": "f00ddd2b2fd74554ae1d3088bd9d2bfd", - "build/assets/pylib-apple/asyncio/subprocess.py": "edb8d98278300b6c99f36cd08643c743", - "build/assets/pylib-apple/asyncio/taskgroups.py": "5162e5b1806d9b647383d34ba1b21b56", - "build/assets/pylib-apple/asyncio/tasks.py": "234550593cd4928e6ee2c9591b6928ca", + "build/assets/pylib-apple/asyncio/streams.py": "2e4964bd4169572f50397423934f1176", + "build/assets/pylib-apple/asyncio/subprocess.py": "80dc3637dda70589030e121ef0f65005", + "build/assets/pylib-apple/asyncio/taskgroups.py": "1d899de15be7bc25f44684d724b62413", + "build/assets/pylib-apple/asyncio/tasks.py": "07346b0046860fdd1b0b5536f2273ecd", "build/assets/pylib-apple/asyncio/threads.py": "7bbf81d424901524510e07b5d20e4a50", "build/assets/pylib-apple/asyncio/timeouts.py": "c7cb81c7ee938bc47ff75342befc872a", "build/assets/pylib-apple/asyncio/transports.py": "04598090d813bb363cea9bf714b97c3f", "build/assets/pylib-apple/asyncio/trsock.py": "305d016a93b3e5224cb45af43fdc52b9", - "build/assets/pylib-apple/asyncio/unix_events.py": "cbb968f7c1e4f87f23b187d7140839f1", - "build/assets/pylib-apple/asyncio/windows_events.py": "954637d8416216d656011178dbcedbb4", + "build/assets/pylib-apple/asyncio/unix_events.py": "87ef0782c45d962724d88b381ece3d6c", + "build/assets/pylib-apple/asyncio/windows_events.py": "0efce1ef1c2807eefb9a7a345d82e256", "build/assets/pylib-apple/asyncio/windows_utils.py": "4efbef16e6692c9424804d9bdc496761", - "build/assets/pylib-apple/asyncore.py": "af21d495fa6ccc47b51ca8a8a382ea1c", - "build/assets/pylib-apple/base64.py": "5f8bbbfda4b9145b1968cb9badf8325b", + "build/assets/pylib-apple/base64.py": "00f5d31b06dd0f489d8b14b7bcf43db7", "build/assets/pylib-apple/bdb.py": "1e26c626405bfc06b1e7231183eb928a", - "build/assets/pylib-apple/bisect.py": "9b70437e327d5176da41192567ad0064", + "build/assets/pylib-apple/bisect.py": "69d3166bd72a28217f1bffa40dc9c33b", "build/assets/pylib-apple/bz2.py": "cd6a5f2491bc52afd8fc180097371473", - "build/assets/pylib-apple/cProfile.py": "9e9c07ac3b9e4195a62b74e4f2b9489f", - "build/assets/pylib-apple/calendar.py": "4ef3d6d85d44e36212e5d784051c80b6", + "build/assets/pylib-apple/cProfile.py": "bec17d6b102c0123c4b743ac685de752", + "build/assets/pylib-apple/calendar.py": "aa432398ad952e31038a6f6a6967911f", "build/assets/pylib-apple/cgi.py": "090c5cfc8b4b92a730beec975159bd2a", - "build/assets/pylib-apple/cgitb.py": "2bcff1cec7f3a3a9c96de7a55ebb4ea3", + "build/assets/pylib-apple/cgitb.py": "61bb76d359241de24b296bbb337e4b0c", "build/assets/pylib-apple/chunk.py": "13d7633b1ff28f5aed4eb043c65c99c5", "build/assets/pylib-apple/cmd.py": "8befee2654b0954af7886e24e2e7871f", - "build/assets/pylib-apple/code.py": "5d47099984013b933c96b02ef16981b8", - "build/assets/pylib-apple/codecs.py": "6fac5e2969e98ceaba92d3b8e42cb2ec", + "build/assets/pylib-apple/code.py": "6d8d7fbb1dce3e6d69810c42b3fae033", + "build/assets/pylib-apple/codecs.py": "70c31aa45cdfcdc85e035f8a23791de1", "build/assets/pylib-apple/codeop.py": "d375467fb29fccd43ab94d15a2e63085", - "build/assets/pylib-apple/collections/__init__.py": "dcffbb6ee2cadd0c05ad22f2ef41f89b", + "build/assets/pylib-apple/collections/__init__.py": "3071fa1109a42b7d6353dcdb26c59092", "build/assets/pylib-apple/collections/abc.py": "15f410d3821352033a90a04539c99060", "build/assets/pylib-apple/colorsys.py": "ca8f117785bf7606c3919ef0f4b828ae", - "build/assets/pylib-apple/compileall.py": "eb3f6d92f020ebec3f3f5bffc8a4dd4b", + "build/assets/pylib-apple/compileall.py": "8ec3f6a137b3dc78fa583b0d95c54e24", "build/assets/pylib-apple/concurrent/__init__.py": "aa990702e8f3a7af205efb5ae23a7c85", "build/assets/pylib-apple/concurrent/futures/__init__.py": "3e46fadb9de9c995c37dca4311641d6a", "build/assets/pylib-apple/concurrent/futures/_base.py": "a1cd37aea6fe0efff1bc00a39543609e", - "build/assets/pylib-apple/concurrent/futures/process.py": "a44e8618e158f8f351dafcb566a02544", - "build/assets/pylib-apple/concurrent/futures/thread.py": "e63753b8201f1392dbebc84a15054a13", - "build/assets/pylib-apple/configparser.py": "914afd2b2cec90bbca0b94fd176b5176", - "build/assets/pylib-apple/contextlib.py": "6f52eac914e438ef54407760def8305f", + "build/assets/pylib-apple/concurrent/futures/process.py": "ba3ce5df1138ef92a3e5a027515d2d5b", + "build/assets/pylib-apple/concurrent/futures/thread.py": "18557743160bce418a120fa3ca0659ee", + "build/assets/pylib-apple/configparser.py": "58966aed381c8fffe328eaa8718fbc57", + "build/assets/pylib-apple/contextlib.py": "c92d27f5382d35c00a5e5caa44565ba0", "build/assets/pylib-apple/contextvars.py": "ddf2ae9be02601bd8fc9c2cb8a51c04e", - "build/assets/pylib-apple/copy.py": "e7c43b1ec5f81ef36486ad8b49ed7f74", - "build/assets/pylib-apple/copyreg.py": "91d8335b8ed50cb836e228e30950918f", + "build/assets/pylib-apple/copy.py": "73f8cd7ccf79b68121f7c8a42dcde3d0", + "build/assets/pylib-apple/copyreg.py": "de5fb1333a0e388e69749e78ed5e55ae", "build/assets/pylib-apple/crypt.py": "e12ad225ff7be254f543a48ed68b9465", - "build/assets/pylib-apple/csv.py": "0f136b65898fcb860cc8736cfcc96492", - "build/assets/pylib-apple/ctypes/__init__.py": "9176a1b1d653a4601d374c44132e5e74", - "build/assets/pylib-apple/ctypes/_aix.py": "157227ded02925d8e20ef02b8e2816c9", - "build/assets/pylib-apple/ctypes/_endian.py": "2f2f874f4c10e08e2355f6cdcb11be76", + "build/assets/pylib-apple/csv.py": "a896b3c30246ae11b1633b402675b6b9", + "build/assets/pylib-apple/ctypes/__init__.py": "235310a16d0c17607d86807724dfc51f", + "build/assets/pylib-apple/ctypes/_aix.py": "5fd9184c6794ee90ac1441f2c5fe7335", + "build/assets/pylib-apple/ctypes/_endian.py": "a8e306cd53fd8f29fa9341e9bfe87944", "build/assets/pylib-apple/ctypes/macholib/__init__.py": "b2ee4220c9357720236e4da2f849f7da", "build/assets/pylib-apple/ctypes/macholib/dyld.py": "0788a3010fa031df2dc6bb11942db9de", "build/assets/pylib-apple/ctypes/macholib/dylib.py": "6818bfa4d44fb1c1f3aa53f4451de3b6", "build/assets/pylib-apple/ctypes/macholib/framework.py": "45eb920bb26cf00cafdb195ecbd2e444", - "build/assets/pylib-apple/ctypes/util.py": "4c7b6b960ccd369efdcd7084b8cbd573", - "build/assets/pylib-apple/ctypes/wintypes.py": "40e1127cbddb32758cac468826aa9907", + "build/assets/pylib-apple/ctypes/util.py": "b571425fafa9471803e5fe114c4e8914", + "build/assets/pylib-apple/ctypes/wintypes.py": "ff2c24e390bac2cdd203142b422933f5", "build/assets/pylib-apple/curses/__init__.py": "9c6a7f3da146df621b20032d11705db7", - "build/assets/pylib-apple/curses/ascii.py": "991f235753006a5700fd768abaad844c", + "build/assets/pylib-apple/curses/ascii.py": "8bf9cbf2174c327318e671f61882cf6e", "build/assets/pylib-apple/curses/has_key.py": "c74b8d6db329fbbd872b7b91bfa94624", "build/assets/pylib-apple/curses/panel.py": "8f36fdade9588f8a4362d2cc057a6eff", - "build/assets/pylib-apple/curses/textpad.py": "94aa9ebc47a6068d4461652346646dbb", - "build/assets/pylib-apple/dataclasses.py": "febeea138bff21dbed88762be772514e", - "build/assets/pylib-apple/datetime.py": "5dcfd7f3b1a4db8214c1442164ac999c", + "build/assets/pylib-apple/curses/textpad.py": "c53f9edcb5abba15eb755fdebef0eb19", + "build/assets/pylib-apple/dataclasses.py": "4d4d34f9262dc9f7a1a19ab3b447b981", + "build/assets/pylib-apple/datetime.py": "b4a98cc076882de0f4c5787b888b2eb6", "build/assets/pylib-apple/decimal.py": "f57d255d45b5d1d7d8e13c41a283c3e4", "build/assets/pylib-apple/difflib.py": "6b3c8fd541b2b8d0320727025cd25275", - "build/assets/pylib-apple/dis.py": "cecdc0c02aa3d70a7f550e60ebc9b3ba", - "build/assets/pylib-apple/doctest.py": "8a18c35f3aa66130955a6a3bf1bfead4", + "build/assets/pylib-apple/dis.py": "68bf342ab66f67cb0c1d7d31a12d4148", + "build/assets/pylib-apple/doctest.py": "1c7cee2b3e619011dfcd3f735a4b12e1", "build/assets/pylib-apple/email/__init__.py": "4ff603eeeb4ce0302c8bd1b220fc5e13", "build/assets/pylib-apple/email/_encoded_words.py": "d7b77501689dd1ce32da789b46264a6a", - "build/assets/pylib-apple/email/_header_value_parser.py": "982718787815084548747d4b078902e6", + "build/assets/pylib-apple/email/_header_value_parser.py": "e77052d073674f25133102b06a57c0fe", "build/assets/pylib-apple/email/_parseaddr.py": "a6d2999aeed17f060be8797e761a01aa", "build/assets/pylib-apple/email/_policybase.py": "09b0c21693ac080c52c52f5daab616aa", "build/assets/pylib-apple/email/base64mime.py": "d3e4fc07d04833487677dd2a888c3826", - "build/assets/pylib-apple/email/charset.py": "1d101758464f75bf2b93fb17fec9542f", + "build/assets/pylib-apple/email/charset.py": "8bcb2315a8340755057e66398e975542", "build/assets/pylib-apple/email/contentmanager.py": "e88780ef1d37a11ff216060f740f2572", "build/assets/pylib-apple/email/encoders.py": "d401cf76e52f0205393dd8bb1ae28b46", "build/assets/pylib-apple/email/errors.py": "afd6b5e8f8baa701baaae14e736ddca0", - "build/assets/pylib-apple/email/feedparser.py": "623788306ab3b5d75df1145484045edc", - "build/assets/pylib-apple/email/generator.py": "073bac3c4874c3ab74d4e6a9e9317fb2", + "build/assets/pylib-apple/email/feedparser.py": "07a3e447714a368776df54182ff4859b", + "build/assets/pylib-apple/email/generator.py": "be5568964053b71900912bc25cf9cf21", "build/assets/pylib-apple/email/header.py": "09923b7b77bf91bed41a71b6e3c6e4d9", "build/assets/pylib-apple/email/headerregistry.py": "dfd48f9c41454d5bc2355cb1762fb869", "build/assets/pylib-apple/email/iterators.py": "752ece28a18545e70fa67a7cf2fe3ef3", - "build/assets/pylib-apple/email/message.py": "5b198b0cf1095ba5a3faccdd28310f28", + "build/assets/pylib-apple/email/message.py": "186f18babc1e5c26b6e2095dbb0d3318", "build/assets/pylib-apple/email/mime/__init__.py": "340c83beff7dcff8f5c7b87cd43cedaf", "build/assets/pylib-apple/email/mime/application.py": "4ce678512f30cac9fd95993186d2eef7", "build/assets/pylib-apple/email/mime/audio.py": "4073e45bda9524e3cbe29374951fdc16", @@ -3197,11 +3179,11 @@ "build/assets/pylib-apple/email/mime/message.py": "0bf18b4f07a68b646e45b10d7e31c6c7", "build/assets/pylib-apple/email/mime/multipart.py": "69577df977b7b36f5e175661dd7095bc", "build/assets/pylib-apple/email/mime/nonmultipart.py": "a96d8d31156781a7511cec04e46a95f6", - "build/assets/pylib-apple/email/mime/text.py": "21928b3afec29cb55ae1ae7682b8fbe1", - "build/assets/pylib-apple/email/parser.py": "f0cdd5c8491cbff0948672784fca1e8f", + "build/assets/pylib-apple/email/mime/text.py": "634e0b909f94788cf97fc8a0b914d12c", + "build/assets/pylib-apple/email/parser.py": "d78f74ba45a3618608cdc9ece2aa411a", "build/assets/pylib-apple/email/policy.py": "69a5f116b77b6a70e7761309c5592557", "build/assets/pylib-apple/email/quoprimime.py": "c5e54c3f0e70d55145517382d4455765", - "build/assets/pylib-apple/email/utils.py": "145a606aaa3cbad40c68054ebbf4efa6", + "build/assets/pylib-apple/email/utils.py": "9373081154eac1992d7c778dc7c6d714", "build/assets/pylib-apple/encodings/__init__.py": "6a342ed3b218da63b7f7937beafcc20c", "build/assets/pylib-apple/encodings/aliases.py": "29e508ce46c2815863ee7ae01044f594", "build/assets/pylib-apple/encodings/ascii.py": "9d1732861e514a1942499024d1a1a799", @@ -3260,7 +3242,7 @@ "build/assets/pylib-apple/encodings/hex_codec.py": "fa90b2e675c94926d65257422f416f4b", "build/assets/pylib-apple/encodings/hp_roman8.py": "c31c41bd06e088266672f009818fd6e9", "build/assets/pylib-apple/encodings/hz.py": "8fc8bc535c23ce519437a3e6eaf94084", - "build/assets/pylib-apple/encodings/idna.py": "8c2dbf011854734e0bdea7ce33c488a1", + "build/assets/pylib-apple/encodings/idna.py": "f38bbf7849895c2d02829644a62a420c", "build/assets/pylib-apple/encodings/iso2022_jp.py": "46b50810137d72dfeda745baee89eabd", "build/assets/pylib-apple/encodings/iso2022_jp_1.py": "1587a4e5ad77349035a293ea3950ce98", "build/assets/pylib-apple/encodings/iso2022_jp_2.py": "f6eaef565e5c3744dded731a9116f2bc", @@ -3324,409 +3306,416 @@ "build/assets/pylib-apple/encodings/utf_8_sig.py": "8f3542863ef311d8b970a37c0d66b0de", "build/assets/pylib-apple/encodings/uu_codec.py": "4ef8a65413574c017a96b97fc1638ba6", "build/assets/pylib-apple/encodings/zlib_codec.py": "1388fb103fdf395451bfc8a2d60933a9", - "build/assets/pylib-apple/enum.py": "73b214a43ceef88aff7098b83623ed09", - "build/assets/pylib-apple/filecmp.py": "7648fdc6d0fc8bae7429d5e4081cf353", + "build/assets/pylib-apple/enum.py": "04d9fd7117d789b2673e87929bef27a1", + "build/assets/pylib-apple/filecmp.py": "4f85ce060c139af3d1866931ea0e97b9", "build/assets/pylib-apple/fileinput.py": "c3def1041e6b12dd5f1906c9dbbd1101", "build/assets/pylib-apple/fnmatch.py": "a1bc67633695d4defd4c0886428c5363", - "build/assets/pylib-apple/fractions.py": "eb9712fffd4157211952a28fa9b813ee", - "build/assets/pylib-apple/ftplib.py": "acc4bef6b6da342d9b1522db6d41a41d", - "build/assets/pylib-apple/functools.py": "c67a3710100f6503daab26a919d7f7b0", - "build/assets/pylib-apple/genericpath.py": "5e991b8dd73dd4a05571b73ac532988a", - "build/assets/pylib-apple/getopt.py": "d630bf22334ba037143a3dca69088ee1", + "build/assets/pylib-apple/fractions.py": "d1c02a567c5d07e52065b27de0d05507", + "build/assets/pylib-apple/ftplib.py": "0e4bfebb83ce85fa43a9c009e432cb12", + "build/assets/pylib-apple/functools.py": "a60c3a01c02be0f20a3e91de2b9e188f", + "build/assets/pylib-apple/genericpath.py": "700f98a87ac51709fc817a23e48b52f3", + "build/assets/pylib-apple/getopt.py": "2c02d59b410128b2ebff26e3030568a6", "build/assets/pylib-apple/getpass.py": "c19e383e949c147a30ecc554b8598e91", "build/assets/pylib-apple/gettext.py": "245a4d4c7ba79febb5423a49ebdc019a", "build/assets/pylib-apple/glob.py": "0607521b67b32c59f30a9e1b238d5c1a", "build/assets/pylib-apple/graphlib.py": "156d50d67d92c1917cf910dfce9cecc9", - "build/assets/pylib-apple/gzip.py": "296ba9c497e9c0cc4a97b82dcb02d780", - "build/assets/pylib-apple/hashlib.py": "a7fed99623cb1a5373316ff7d4e679df", + "build/assets/pylib-apple/gzip.py": "f37180ea6b3df1f9ebe24cf6fce3b418", + "build/assets/pylib-apple/hashlib.py": "a99c24c45e421aa6dd563a8f9bfc8b09", "build/assets/pylib-apple/heapq.py": "d21f25e54b85a1ec93279167013831ea", "build/assets/pylib-apple/hmac.py": "20f106e37b931a8379cf3cca6bedcd6b", "build/assets/pylib-apple/html/__init__.py": "c7f462c6ba167f7ed5e931a76e5482ff", - "build/assets/pylib-apple/html/entities.py": "8561b405414160a08f613bdfd89e161b", - "build/assets/pylib-apple/html/parser.py": "c2ff6801a3ef6a2863d37b899615efb8", - "build/assets/pylib-apple/http/__init__.py": "1dab578aab89ead7171ef10638e88a5d", - "build/assets/pylib-apple/http/client.py": "a3f2cd21f8ce7a4ee1b47f0b19fb57f7", - "build/assets/pylib-apple/http/cookiejar.py": "f324a21e7c17f40e4d5c78139875811c", + "build/assets/pylib-apple/html/entities.py": "7640f21c6ce25357af6d13de96b77a8b", + "build/assets/pylib-apple/html/parser.py": "759c3f4323885077bd67e8f1b3c025dd", + "build/assets/pylib-apple/http/__init__.py": "eaefcb8fa3addeae50fb6ef77078c928", + "build/assets/pylib-apple/http/client.py": "d0a1ca5e0930f598e58d9bf377d3283b", + "build/assets/pylib-apple/http/cookiejar.py": "4336d703f02278ece3479532ed43f431", "build/assets/pylib-apple/http/cookies.py": "9319b95b505a644b9a112b4c7a7678c3", - "build/assets/pylib-apple/http/server.py": "4b286e2b5e6112af17e097539eadd9d7", - "build/assets/pylib-apple/imghdr.py": "011d27a98acf3774279a584525614ba3", - "build/assets/pylib-apple/imp.py": "34bd1d1620eb0d42f9ef9bbbb11cafae", - "build/assets/pylib-apple/importlib/__init__.py": "2f6c1fb453d61417245cd196311a9b52", - "build/assets/pylib-apple/importlib/_abc.py": "720f8056e5cd852156378b532ddbbb7c", - "build/assets/pylib-apple/importlib/_bootstrap.py": "6f4819e9443e3fda3c28c62f15a8238c", - "build/assets/pylib-apple/importlib/_bootstrap_external.py": "c22f4fa4086742713c2071db7de7726c", - "build/assets/pylib-apple/importlib/abc.py": "c9697e928ff17089dc6aea96f5b33003", + "build/assets/pylib-apple/http/server.py": "c18bbb2be8ec4195dd065ec13d002016", + "build/assets/pylib-apple/imghdr.py": "e1b164d686ccfe3bc2c41c17229cdf4e", + "build/assets/pylib-apple/importlib/__init__.py": "37e549dc665547e6d4b766039fc984ee", + "build/assets/pylib-apple/importlib/_abc.py": "bb82688b63958d77211ea1c4404a733f", + "build/assets/pylib-apple/importlib/_bootstrap.py": "c2c3e6d9f853d4a16e7d9fca103f61eb", + "build/assets/pylib-apple/importlib/_bootstrap_external.py": "cfbb73bb414f6e808927e8bec77e9222", + "build/assets/pylib-apple/importlib/abc.py": "c4e08fea8f5896ef300c710bbbfaaa10", "build/assets/pylib-apple/importlib/machinery.py": "6a056c561b4ea8eb5457761c8a9fd704", - "build/assets/pylib-apple/importlib/metadata/__init__.py": "31c7436c1e3e0e3fcea8c8d506973e49", - "build/assets/pylib-apple/importlib/metadata/_adapters.py": "04b4db5bd88699a585c47dca7f4fd528", + "build/assets/pylib-apple/importlib/metadata/__init__.py": "db15a7824c0e99feff755adfc7a1ff58", + "build/assets/pylib-apple/importlib/metadata/_adapters.py": "36d9ec62de810ad11d1d94fef1c53902", "build/assets/pylib-apple/importlib/metadata/_collections.py": "6c6720236c09edd9c5b848db865e9a67", "build/assets/pylib-apple/importlib/metadata/_functools.py": "67b161a56c1fee136489e10667525dd9", "build/assets/pylib-apple/importlib/metadata/_itertools.py": "90757497a57e424716941f43e687617b", - "build/assets/pylib-apple/importlib/metadata/_meta.py": "00800b3accf1a58bf07c4e678d6a4107", + "build/assets/pylib-apple/importlib/metadata/_meta.py": "552d5cef08a96d83986da8fdae64d692", "build/assets/pylib-apple/importlib/metadata/_text.py": "9d94dbaa32344851c5918e5d32468f12", "build/assets/pylib-apple/importlib/readers.py": "e88cbbe8636d1ecf9526a3dd9a17162d", "build/assets/pylib-apple/importlib/resources/__init__.py": "8963f5e44f2c25e288eb229dd68385f3", - "build/assets/pylib-apple/importlib/resources/_adapters.py": "36c384659b0dd599e9efaf57b3f6f642", - "build/assets/pylib-apple/importlib/resources/_common.py": "f55698ce31c56eee7b6bc8a5ce72733d", - "build/assets/pylib-apple/importlib/resources/_itertools.py": "cbbe35b4b7c101e818b7598fda7a42b3", - "build/assets/pylib-apple/importlib/resources/_legacy.py": "77f9dd75b4f64cefe875df7550ca26c5", - "build/assets/pylib-apple/importlib/resources/abc.py": "f402d06845215e1c8725c243a3681d73", - "build/assets/pylib-apple/importlib/resources/readers.py": "b2bc76af81288e8f6b8e1a272490ba1f", - "build/assets/pylib-apple/importlib/resources/simple.py": "ae95788edf31cbfffd53db748d76f0b9", + "build/assets/pylib-apple/importlib/resources/_adapters.py": "0545a15d7cc6221744422b2539d24123", + "build/assets/pylib-apple/importlib/resources/_common.py": "6ae7e9e7d25df6bd789a2d824bf07cad", + "build/assets/pylib-apple/importlib/resources/_itertools.py": "4e890bac49bcb865d4bfa846309a5d6d", + "build/assets/pylib-apple/importlib/resources/_legacy.py": "617c6c1e3f8beea72cb03d4fd14f221c", + "build/assets/pylib-apple/importlib/resources/abc.py": "528643b7a9f0c3cfa1d86173b9a3f747", + "build/assets/pylib-apple/importlib/resources/readers.py": "00ee1e5e1bccffa19cbe2a539b97e2cb", + "build/assets/pylib-apple/importlib/resources/simple.py": "20924858e2c0a285fae2523a206f721d", "build/assets/pylib-apple/importlib/simple.py": "f34f28cd359ecaf9fd6cf18a4dca2c33", - "build/assets/pylib-apple/importlib/util.py": "09c3a96d1265db211f32b73a5f76e1ac", - "build/assets/pylib-apple/inspect.py": "365d413e26b3a77118e51987cfd2eb1f", - "build/assets/pylib-apple/io.py": "4a3ab68b3f38d3dcf9282f4839fe5d84", - "build/assets/pylib-apple/ipaddress.py": "b9831cf9058885b35a2411b4cbada972", + "build/assets/pylib-apple/importlib/util.py": "926a4e6f3d90511d71995b525469e8a2", + "build/assets/pylib-apple/inspect.py": "f9f230f9a227e9ca1c02fe51cd1707eb", + "build/assets/pylib-apple/io.py": "d4dbfd4942c1d4966d2517761fcd1452", + "build/assets/pylib-apple/ipaddress.py": "fc79922a18e25f988e882f24ae8009fe", "build/assets/pylib-apple/json/__init__.py": "e8b000d2bf8c53b55a72bc3053800596", "build/assets/pylib-apple/json/decoder.py": "82a8faab8ae9599b2b5f58322b8055ee", "build/assets/pylib-apple/json/encoder.py": "053c0b87645fb3e5a4a485db7b83e3f7", "build/assets/pylib-apple/json/scanner.py": "d62190fe7b7bbc5c774f7f70d73751a0", "build/assets/pylib-apple/json/tool.py": "a83b2c5dafa3adfd772a058cddbc0afc", - "build/assets/pylib-apple/keyword.py": "640f4740aa688ce2cca35f19325c1f78", + "build/assets/pylib-apple/keyword.py": "4132d92e0b8a50d8f7119ed5fabf1674", "build/assets/pylib-apple/linecache.py": "2712c31a3a6d7625d437029a6b7470c9", - "build/assets/pylib-apple/locale.py": "42f3f48fed6a16da350de46aa85b446a", - "build/assets/pylib-apple/logging/__init__.py": "6e5d6f80af880857f5eb29b038512c6d", - "build/assets/pylib-apple/logging/config.py": "f811372496ec5ae34e8047f0280686be", - "build/assets/pylib-apple/logging/handlers.py": "55d604de088570f8bd5edb62f64682fb", + "build/assets/pylib-apple/locale.py": "05e55bc4a9bb9fafe1b20b3162c9c44a", + "build/assets/pylib-apple/logging/__init__.py": "b6fc750d765b66ba86eda659cbcdd996", + "build/assets/pylib-apple/logging/config.py": "b3ad6eb78d97a0bd54090828d3b9e0d0", + "build/assets/pylib-apple/logging/handlers.py": "e7c36b384f4509b6075cae394482d95c", "build/assets/pylib-apple/lzma.py": "d7388640aa6af4c64fdc821471930f57", - "build/assets/pylib-apple/mailbox.py": "d9db3c7510e38484ade3d88446b8f231", - "build/assets/pylib-apple/mailcap.py": "c61462a36d20d79a0f4e37717f957bf6", - "build/assets/pylib-apple/mimetypes.py": "1e3ee9d7f80b7547d1d3186bf97db3ab", + "build/assets/pylib-apple/mailbox.py": "b37497d6faf4987bc46e6651f711e8b2", + "build/assets/pylib-apple/mailcap.py": "bd0d2f41202a3cc850dc25c6c323ecb9", + "build/assets/pylib-apple/mimetypes.py": "0d227b9c6f23c1d1fa7cd9c6a5ca1534", "build/assets/pylib-apple/modulefinder.py": "3fc074c018de1dd15ab2e309be199dea", - "build/assets/pylib-apple/netrc.py": "9a869ca83b316ab5a19a0a2cf22efaf3", + "build/assets/pylib-apple/netrc.py": "9dd6b80891863e23b5e0a57bb80c7346", "build/assets/pylib-apple/nntplib.py": "4926aa991bd4b96b9318d6242135abf9", - "build/assets/pylib-apple/ntpath.py": "d53ff21dc0ef0cd939cc865ae1fb011e", + "build/assets/pylib-apple/ntpath.py": "1e3997be9aec964b4a3caa2ff7172c78", "build/assets/pylib-apple/nturl2path.py": "937624c4b6f213b652addea66296ccc4", - "build/assets/pylib-apple/numbers.py": "0cdcb42317422500d514ec67d496a06e", - "build/assets/pylib-apple/opcode.py": "18cba8b1d09ec6fcccfe20e5b13db980", + "build/assets/pylib-apple/numbers.py": "bb9d88751c4f892d66e43961c521de7f", + "build/assets/pylib-apple/opcode.py": "27b5ed52b503d4cf1adb7d65116655c3", "build/assets/pylib-apple/operator.py": "61e197bc43df97ec39ae3e5e59b11c19", "build/assets/pylib-apple/optparse.py": "5f65f891612b68c71a2846da86254285", - "build/assets/pylib-apple/os.py": "36f9692131ffb9ba4db510de31afc651", - "build/assets/pylib-apple/pathlib.py": "095ec821fec243124d0a286b4de3848a", - "build/assets/pylib-apple/pdb.py": "117b0d24ccb89edc5f183c94f6722f70", - "build/assets/pylib-apple/pickle.py": "e6f9f53d29988454690ccde3279c7c38", + "build/assets/pylib-apple/os.py": "0e6eb31fb137f184d07b61484f2ef58f", + "build/assets/pylib-apple/pathlib.py": "885c899840212b8c6c49298abd77f0a8", + "build/assets/pylib-apple/pdb.py": "8371a5fa163a48c57d29d5ec2e0740db", + "build/assets/pylib-apple/pickle.py": "847270da723f1dfaae7ff60e64da87d7", "build/assets/pylib-apple/pickletools.py": "85b30fba86d32dfc4a588300dedf5f01", "build/assets/pylib-apple/pipes.py": "2dd796bdbb87982034234fec50d4526c", - "build/assets/pylib-apple/pkgutil.py": "8e3fdfcb6c90dc50245aee89c49eb515", - "build/assets/pylib-apple/platform.py": "ee86bbf8ce5fbe11cd285600ecf4aecd", - "build/assets/pylib-apple/plistlib.py": "8aa9836b7a69628873b25811c4d5fffa", - "build/assets/pylib-apple/poplib.py": "829dc4df5d8e082ad414d499ec4678bd", - "build/assets/pylib-apple/posixpath.py": "2a6b3f940f89b0819ee002b6b82b0318", - "build/assets/pylib-apple/pprint.py": "b4e9efe35d05b6126d41da36eda47754", - "build/assets/pylib-apple/profile.py": "a9f11f8aa6a2905706a5fc9273d6c981", - "build/assets/pylib-apple/pstats.py": "c5884aaae199265ab0c3849d053bc996", - "build/assets/pylib-apple/pty.py": "c97b51147360cf7fd92c364ab8068a2b", + "build/assets/pylib-apple/pkgutil.py": "417ff74f276b7659b93ac5e8ee425f0f", + "build/assets/pylib-apple/platform.py": "9594001a28c91511e9ff0cb0709ff3e6", + "build/assets/pylib-apple/plistlib.py": "89a4be15fa63e930d5b5fc3f9c99c4f7", + "build/assets/pylib-apple/poplib.py": "8150e0a07082ec4dbb017c4bc7163d7d", + "build/assets/pylib-apple/posixpath.py": "f7403faf74c3968010c45e204aad6415", + "build/assets/pylib-apple/pprint.py": "596aa5457ecd1ddb92f2d7e17aeca2e2", + "build/assets/pylib-apple/profile.py": "8f26436d147cfd6d00d19592cf0d8c91", + "build/assets/pylib-apple/pstats.py": "1eb59db1b83dd577c863d26ca04b3105", + "build/assets/pylib-apple/pty.py": "d778afa8c34f4042a16671503088429b", "build/assets/pylib-apple/py_compile.py": "772b429c589d2e005e8bd79b12f55a92", "build/assets/pylib-apple/pyclbr.py": "bf1989a2c73108005e874a640760476a", - "build/assets/pylib-apple/pydoc.py": "b17a6d227db749f91434253248fa6384", + "build/assets/pylib-apple/pydoc.py": "15b3a89d009a50b869c053a3a3e9fdd7", "build/assets/pylib-apple/queue.py": "1e90a0b87965a2642946621db162f441", - "build/assets/pylib-apple/quopri.py": "5d58010dd1f96b37a167c6d305372881", - "build/assets/pylib-apple/random.py": "9ec8461bc4d5b072e3fc1f65aafccf2f", - "build/assets/pylib-apple/re/__init__.py": "a393e2d0c2a468c8d4a0ff76a8a317ea", + "build/assets/pylib-apple/quopri.py": "65b24ff8c45eb0e1b29a862093c704db", + "build/assets/pylib-apple/random.py": "3c462011763976896a6d893f779498fc", + "build/assets/pylib-apple/re/__init__.py": "fff067dde47f9c1eca3d58ad1274db3a", "build/assets/pylib-apple/re/_casefix.py": "106514c6c6bb479fa2691423a61c8938", "build/assets/pylib-apple/re/_compiler.py": "d38bbefe652b6bfff2bb30459436f112", - "build/assets/pylib-apple/re/_constants.py": "99b8d7dba7fb50be8fb435dcefcd2989", - "build/assets/pylib-apple/re/_parser.py": "1afe14ae4219eadb32ba0fd3ac1b921a", - "build/assets/pylib-apple/reprlib.py": "a129eeeaf66fbd9591d2da242ce23a1a", + "build/assets/pylib-apple/re/_constants.py": "f33c8744623d7fb1655b72a49ed71be0", + "build/assets/pylib-apple/re/_parser.py": "232ecf324c74e9a58ef746b851ec0657", + "build/assets/pylib-apple/reprlib.py": "5233c6d9e14272b88584bd00b7cad7f1", "build/assets/pylib-apple/rlcompleter.py": "9e57bb7030b57c4ec82eba9e09852414", - "build/assets/pylib-apple/runpy.py": "3a2dd98314791c7e36b6bd3585f6ad82", + "build/assets/pylib-apple/runpy.py": "7cda83ec81f6ff5e6264d7f01bb5629a", "build/assets/pylib-apple/sched.py": "f5579c8c711dd3e89da70ec9e1788c9c", - "build/assets/pylib-apple/secrets.py": "bbf9ed672044ef3ab4b83ca2aea1644e", + "build/assets/pylib-apple/secrets.py": "98212944edac844461bd146cd3680d5a", "build/assets/pylib-apple/selectors.py": "98e0d83849452cbc2cc1381555bd5024", "build/assets/pylib-apple/shelve.py": "3e569c07c863ecbd7f35a6c382d1785a", - "build/assets/pylib-apple/shlex.py": "0873fac90a491702950816ead0e59dd0", - "build/assets/pylib-apple/shutil.py": "a5d0ee9f28244b42a06e682312d0e3fa", + "build/assets/pylib-apple/shlex.py": "adb6b917c5d3adadbdcb77a9257595fd", + "build/assets/pylib-apple/shutil.py": "5ad069bb4ff643eb8275e739992b8055", "build/assets/pylib-apple/signal.py": "114ef47b1798fca6f56ac8a250974b3e", - "build/assets/pylib-apple/site.py": "c2bb58a3e8fe69733a28b56d04b47e50", - "build/assets/pylib-apple/smtpd.py": "0602b6a39c4e37133303bee16c3e28a4", - "build/assets/pylib-apple/smtplib.py": "439eab6ffc5425ddf57c0be283aa7325", + "build/assets/pylib-apple/site.py": "1765eb1e249594b0faddb9663509b03a", + "build/assets/pylib-apple/smtplib.py": "a8121c0c6888489f89cdb2d5b06638f7", "build/assets/pylib-apple/sndhdr.py": "6b62a34738529e39528c0cb498a23eee", - "build/assets/pylib-apple/socket.py": "c3612daf4d6de67347c7b0e09e44aeb5", - "build/assets/pylib-apple/socketserver.py": "98e33643181a54765e6d0b9e01b03d53", - "build/assets/pylib-apple/sqlite3/__init__.py": "8838d75ad0e465e25bb0c8dfeab7a9ab", - "build/assets/pylib-apple/sqlite3/dbapi2.py": "c85f3ff9ddbd56683a8c801885dc5e53", - "build/assets/pylib-apple/sqlite3/dump.py": "8364bd18be01acf7e56e168db98c0e6f", + "build/assets/pylib-apple/socket.py": "a315ae7d99fa18439a53213d7c689c61", + "build/assets/pylib-apple/socketserver.py": "08d185dbe1e568e299133cc8dcb35940", + "build/assets/pylib-apple/sqlite3/__init__.py": "e64822b75a1c8f1be3e23ed6923e12eb", + "build/assets/pylib-apple/sqlite3/__main__.py": "52b4c89dbcbaab2bcbd71da0317fdf46", + "build/assets/pylib-apple/sqlite3/dbapi2.py": "b3b44b48fcb3999ca0269023c2fb7268", + "build/assets/pylib-apple/sqlite3/dump.py": "8d2085ec40031d544694759608e53178", "build/assets/pylib-apple/sre_compile.py": "a1784e9ccbea7d9963cab75b536b40c8", "build/assets/pylib-apple/sre_constants.py": "5c5be32a5334d9b0a848dad520746a63", "build/assets/pylib-apple/sre_parse.py": "cca15b9ab31509e6642f9d2fd4fb9d91", - "build/assets/pylib-apple/ssl.py": "ed512664b82e23aa157fc69f97df9d01", + "build/assets/pylib-apple/ssl.py": "0e660771f6bf5876a966eee2b01a5cc0", "build/assets/pylib-apple/stat.py": "185f17736cdb40bd3e7400ad8cedef84", - "build/assets/pylib-apple/statistics.py": "9807c60eb942bf320ee85a2016ba4516", + "build/assets/pylib-apple/statistics.py": "d58cadb4127511466905f2d97e927330", "build/assets/pylib-apple/string.py": "c072d3a2d0337386d3235ba72f292752", "build/assets/pylib-apple/stringprep.py": "6a5635711a838f76fee7b52537bf8b45", "build/assets/pylib-apple/struct.py": "4fd288bd6537effd1d5edbba9d44dde2", - "build/assets/pylib-apple/subprocess.py": "71393ec8cfd7da74691d932dd1861992", - "build/assets/pylib-apple/sunau.py": "a034779289fef0b2221345f40e042680", - "build/assets/pylib-apple/symtable.py": "0cd4a624b2e3304664f43189ed9e3bf7", - "build/assets/pylib-apple/sysconfig.py": "e14e3272debfcb60192898d131712bad", - "build/assets/pylib-apple/tabnanny.py": "84614c63ead0ab71527cecdf3de68f1a", - "build/assets/pylib-apple/tarfile.py": "e2fc4eca5c2d39b6f44b9e622a32f602", + "build/assets/pylib-apple/subprocess.py": "361d39323a2c45017f99da02c9dae259", + "build/assets/pylib-apple/sunau.py": "146e2e69d9554c3ba397c651179fa9b5", + "build/assets/pylib-apple/symtable.py": "7808839ac346e577ef1ab623c324d9e1", + "build/assets/pylib-apple/sysconfig.py": "908424337cb4192539c34c9260623a24", + "build/assets/pylib-apple/tabnanny.py": "017f45469d744cc511654fe887bda204", + "build/assets/pylib-apple/tarfile.py": "b5de469a9bc9410c5e6cc6a5292f7a6b", "build/assets/pylib-apple/telnetlib.py": "1a746e1fc988b9f5c12b9fd5a97c00ea", - "build/assets/pylib-apple/tempfile.py": "436007fbe6821c864a53861bd73b4d43", + "build/assets/pylib-apple/tempfile.py": "152004e6cace5eba2b991825c156751d", "build/assets/pylib-apple/textwrap.py": "3eb16a40553205dc96be5cb9039f3c8c", "build/assets/pylib-apple/this.py": "8b0a9a1fa0a45a37e6c656eca1922277", - "build/assets/pylib-apple/threading.py": "dda98a9e1169adb496655300454ecc09", - "build/assets/pylib-apple/timeit.py": "8dc6f4245abf1d44814745e22a2f78b1", - "build/assets/pylib-apple/token.py": "d8ff4e6c8eb59896891d01148f481e27", - "build/assets/pylib-apple/tokenize.py": "3056f048c07e6c5a6442a5ef4f38e54c", + "build/assets/pylib-apple/threading.py": "a7f3c368a00d7a5b296941a9c24a4efd", + "build/assets/pylib-apple/timeit.py": "aeb3dde523e82b4e0f6d69a058d924cf", + "build/assets/pylib-apple/token.py": "82c742822bb3e47388f579d5135ddf3e", + "build/assets/pylib-apple/tokenize.py": "c6928003869c55e0f52cb88679d22c06", "build/assets/pylib-apple/tomllib/__init__.py": "253ecf9dd67cb81a3e19911a4a39f930", "build/assets/pylib-apple/tomllib/_parser.py": "f9a4dc92c44403f970e94c2e494a7358", "build/assets/pylib-apple/tomllib/_re.py": "0e509117e16c41c491615e06bb98861d", "build/assets/pylib-apple/tomllib/_types.py": "07be9616d6f5e401fd31fbeea619fc97", "build/assets/pylib-apple/trace.py": "3d8698a2c3ec03dc0f394a2f48c2ffbc", - "build/assets/pylib-apple/traceback.py": "91f67818e621e3b2f5bf583ed6863ef8", + "build/assets/pylib-apple/traceback.py": "ca41a2ffeb0b8e543531b85c7a2a1dc7", "build/assets/pylib-apple/tracemalloc.py": "e4d10d2bee7773566e46797a939e5cbf", - "build/assets/pylib-apple/tty.py": "271c7d61005a0a3c2c0952efc60dcb6d", - "build/assets/pylib-apple/types.py": "78f8942c08dbfc9c582f1bb8d5206639", - "build/assets/pylib-apple/typing.py": "17aaeea16cbfdb93cb4c5b87f535e341", + "build/assets/pylib-apple/tty.py": "09fa9b32d1b2a36d00e4c5f396ee74a0", + "build/assets/pylib-apple/types.py": "134f86ee0d4879d294f95ea39c396027", + "build/assets/pylib-apple/typing.py": "a5996aa02b21708d88c67946dabd529e", "build/assets/pylib-apple/urllib/__init__.py": "340c83beff7dcff8f5c7b87cd43cedaf", "build/assets/pylib-apple/urllib/error.py": "b7dde0483ff647eb87162d6e19c04fa0", - "build/assets/pylib-apple/urllib/parse.py": "28e09ecc3b696bae8ac5589b9cd64f63", - "build/assets/pylib-apple/urllib/request.py": "09b8666fe8319542f7247bb9f8573806", + "build/assets/pylib-apple/urllib/parse.py": "112c518e8857be22f75ef4cd668fe5b4", + "build/assets/pylib-apple/urllib/request.py": "2a9f2ec22765c9959240f559bcb2fca3", "build/assets/pylib-apple/urllib/response.py": "c8537707a4b1e493c0ec4489ab523c93", "build/assets/pylib-apple/urllib/robotparser.py": "5a7616bdf398c166f953ad48c25506eb", "build/assets/pylib-apple/uu.py": "7cb795ca0c9e914550e6245dfe53c53e", - "build/assets/pylib-apple/uuid.py": "755d75cad456d0c3ab0c67f0276cca32", - "build/assets/pylib-apple/warnings.py": "e5f0b4cbc35aae8d4b89a856b189b626", - "build/assets/pylib-apple/wave.py": "727a8dacad95625ea14554b7d655ce2e", + "build/assets/pylib-apple/uuid.py": "fc298b89a3f1327be7808f0125c57866", + "build/assets/pylib-apple/warnings.py": "80a01d1cc1488cde43dfd7c2d14a8a8d", + "build/assets/pylib-apple/wave.py": "91c8be6651123c0d264fada07b63fd8e", "build/assets/pylib-apple/weakref.py": "dd14612f02ca8acd723f633b6fff0adf", - "build/assets/pylib-apple/webbrowser.py": "7356fd255ec3bdfef98349a9c9d2b563", - "build/assets/pylib-apple/xdrlib.py": "ee12e9067ab4904da935b8d2213426d8", + "build/assets/pylib-apple/webbrowser.py": "afe253a15b5e3e847fce6918335fdf45", + "build/assets/pylib-apple/xdrlib.py": "d980006108f3333914c49e4d283efbb8", "build/assets/pylib-apple/xml/__init__.py": "8eacec822c39da8e54d90d7713f9d517", "build/assets/pylib-apple/xml/dom/NodeFilter.py": "aa14742aa31e84424191d88c61db7c60", "build/assets/pylib-apple/xml/dom/__init__.py": "6cef27de99de7cf3a6a3444a366f1a4a", "build/assets/pylib-apple/xml/dom/domreg.py": "e1ae09aebe4f3ae8f0458a3cbb9d6203", - "build/assets/pylib-apple/xml/dom/expatbuilder.py": "d0d92580d8c8c29df4d879b4baeec499", + "build/assets/pylib-apple/xml/dom/expatbuilder.py": "ba707d7f72c2f1ded1a488ecbe2bf05b", "build/assets/pylib-apple/xml/dom/minicompat.py": "48905f2202fef3b557a41ec0fc31fa9b", "build/assets/pylib-apple/xml/dom/minidom.py": "3f4037810f081b078cc3fcab75bae3a0", "build/assets/pylib-apple/xml/dom/pulldom.py": "e133090081e446d69e5d1884f64fe1b6", "build/assets/pylib-apple/xml/dom/xmlbuilder.py": "610ebe0afcf5c7a72c6f708ae34e4f7e", "build/assets/pylib-apple/xml/etree/ElementInclude.py": "164c77dfb9abdf9c70def8812a00843a", "build/assets/pylib-apple/xml/etree/ElementPath.py": "fca9220534a8160762dee5e7da5f4144", - "build/assets/pylib-apple/xml/etree/ElementTree.py": "e563b0ad7f1079f7298a2f9fd547cea4", + "build/assets/pylib-apple/xml/etree/ElementTree.py": "885a8459f3d4ea81dc3954a3301548a5", "build/assets/pylib-apple/xml/etree/__init__.py": "82a62c7b190620aa1d3a40cc9ba829a5", "build/assets/pylib-apple/xml/etree/cElementTree.py": "4708b9e01f77cfda41ec333efec138b7", "build/assets/pylib-apple/xml/parsers/__init__.py": "320734d4a3dd5364bd8d2d3d3ad75ff1", "build/assets/pylib-apple/xml/parsers/expat.py": "18689bb5155b639098d83a55ad62d9de", - "build/assets/pylib-apple/xml/sax/__init__.py": "edc76fc9c2c328868771f14cc2cfee27", - "build/assets/pylib-apple/xml/sax/_exceptions.py": "3540d338888633751b11db0324f14020", - "build/assets/pylib-apple/xml/sax/expatreader.py": "fdb16c570f98c5153cde642d5095e604", + "build/assets/pylib-apple/xml/sax/__init__.py": "a0f081a762804146e043e41db3b5852b", + "build/assets/pylib-apple/xml/sax/_exceptions.py": "47e2e96cd8e70ec83e0fc123dd8538f2", + "build/assets/pylib-apple/xml/sax/expatreader.py": "44b22072eda8062a46d81630dccd614e", "build/assets/pylib-apple/xml/sax/handler.py": "f861c1516713c5e8d066f8bbe7bc4b54", "build/assets/pylib-apple/xml/sax/saxutils.py": "895538d082305b1785e4d407a6f37f09", - "build/assets/pylib-apple/xml/sax/xmlreader.py": "a9d0126a36fb7dfe1fbc1ef7de9c5897", + "build/assets/pylib-apple/xml/sax/xmlreader.py": "c457eb153d2076241bb0c883d1a6236a", "build/assets/pylib-apple/xmlrpc/__init__.py": "aa990702e8f3a7af205efb5ae23a7c85", - "build/assets/pylib-apple/xmlrpc/client.py": "8f2cad71c1c87031be073184e71aa405", - "build/assets/pylib-apple/xmlrpc/server.py": "3147663bd28b952eef0e1316b94bacc6", - "build/assets/pylib-apple/zipapp.py": "d92ea793f092af6383a6383678cf7b73", - "build/assets/pylib-apple/zipfile.py": "00671f5cdb9a5ad667efa1dccf0129d3", - "build/assets/pylib-apple/zipimport.py": "6d3b32a7258f670eb71daf3a8492a4f1", + "build/assets/pylib-apple/xmlrpc/client.py": "c1465858891b6ef5ff366d0bd4c2156b", + "build/assets/pylib-apple/xmlrpc/server.py": "168f0d34990d6ed1299c4220176feae5", + "build/assets/pylib-apple/zipapp.py": "b387a3b7e895e342c6927e6daa7ac09e", + "build/assets/pylib-apple/zipfile/__init__.py": "b05c924fac906cf40977088744874cce", + "build/assets/pylib-apple/zipfile/__main__.py": "82cd8a6b351cfa10e323885508ddda56", + "build/assets/pylib-apple/zipfile/_path/__init__.py": "595fff17da7767c6fda1ce996594c9dc", + "build/assets/pylib-apple/zipfile/_path/glob.py": "d5792635c566cdcae37a335f1835dc48", + "build/assets/pylib-apple/zipimport.py": "2773fff8e214ecced3ebfe1296719893", "build/assets/pylib-apple/zoneinfo/__init__.py": "0df5e8a66015e2fe2d77f2e4a5dea1ff", "build/assets/pylib-apple/zoneinfo/_common.py": "5b52bdac4156dcbac96743fa99468bf2", "build/assets/pylib-apple/zoneinfo/_tzpath.py": "f021e91036bd38590f2ce643b59dc881", "build/assets/pylib-apple/zoneinfo/_zoneinfo.py": "d000d61aa8998d0076c37f96cf40ca69", "build/assets/sphinx/static/conf.py": "a7155ede351981500dd219f44ae67531", - "build/assets/windows/Win32/DLLs/_asyncio.pyd": "36024ca5f0f257dd4edfe1a3e92c1a07", - "build/assets/windows/Win32/DLLs/_asyncio_d.pyd": "a809fe3d7f3b6931e5f127821d0d30b6", - "build/assets/windows/Win32/DLLs/_bz2.pyd": "cf535d3d0a020f0ae5ff20336a56ba3b", - "build/assets/windows/Win32/DLLs/_bz2_d.pyd": "2742bb6d7742f34e2c91f24d514b3478", - "build/assets/windows/Win32/DLLs/_ctypes.pyd": "560113ca8dd3d2b53658d4e9898e8737", - "build/assets/windows/Win32/DLLs/_ctypes_d.pyd": "975b3bb720666468f6ed6f626b397b63", - "build/assets/windows/Win32/DLLs/_ctypes_test.pyd": "6a845aa71755d7ca50a8edfc2706d2a7", - "build/assets/windows/Win32/DLLs/_ctypes_test_d.pyd": "2f2ad166bf2119f371f12ce7a4bfeb77", - "build/assets/windows/Win32/DLLs/_decimal.pyd": "80194f122ff6bdf37219c1169a6f76bc", - "build/assets/windows/Win32/DLLs/_decimal_d.pyd": "798c778a1d3e6e11469aec63ae4e770f", - "build/assets/windows/Win32/DLLs/_elementtree.pyd": "7ad07b4ea7717eefe7dda199fe6d695a", - "build/assets/windows/Win32/DLLs/_elementtree_d.pyd": "c9a0ddd68f277c3022ca4db13d9bf3b7", - "build/assets/windows/Win32/DLLs/_hashlib.pyd": "b8d0a6a22d0cebd48b880b230348fbc2", - "build/assets/windows/Win32/DLLs/_hashlib_d.pyd": "6c54c22038014c358dd87b2ab9b497d6", - "build/assets/windows/Win32/DLLs/_lzma.pyd": "bc37f4dc7464ca5a49e59722098f7dc6", - "build/assets/windows/Win32/DLLs/_lzma_d.pyd": "c0a821cb9626eac13c5eb42756d67522", - "build/assets/windows/Win32/DLLs/_msi.pyd": "b39d525fd89e37059765f795799608f0", - "build/assets/windows/Win32/DLLs/_msi_d.pyd": "01797c8c8cf91729fa6ec82ac964f35f", - "build/assets/windows/Win32/DLLs/_multiprocessing.pyd": "22a0e43c5c3abe91bfe87ee6c3e5eead", - "build/assets/windows/Win32/DLLs/_multiprocessing_d.pyd": "3c3b5dc4d97782d185bfdcb346f0f0ea", - "build/assets/windows/Win32/DLLs/_overlapped.pyd": "c5787ba0e23a9bde5a5973ee95aeeb45", - "build/assets/windows/Win32/DLLs/_overlapped_d.pyd": "d0a61fc089be4693388cff6289c74b0a", - "build/assets/windows/Win32/DLLs/_queue.pyd": "4d8362526b7c0f59be1d0497b0c82738", - "build/assets/windows/Win32/DLLs/_queue_d.pyd": "a6606aab8c4d0ae6bc3b65d12836fd5a", - "build/assets/windows/Win32/DLLs/_socket.pyd": "b47b7a0200d9a70bfee20d20aac243c4", - "build/assets/windows/Win32/DLLs/_socket_d.pyd": "2619eefc1b90d206ca6465f9852f15c5", - "build/assets/windows/Win32/DLLs/_sqlite3.pyd": "560eb1d718fb598a84f4750135ad1544", - "build/assets/windows/Win32/DLLs/_sqlite3_d.pyd": "e962c6bdf6b33bad4f4b1a4ba378c666", - "build/assets/windows/Win32/DLLs/_ssl.pyd": "b8dd9a957203d3c587eeb7412f9fc9b4", - "build/assets/windows/Win32/DLLs/_ssl_d.pyd": "987d2a44d1d6b45d97c1459ee87775cb", - "build/assets/windows/Win32/DLLs/_testbuffer.pyd": "53348c590932b14110041295aedcbb42", - "build/assets/windows/Win32/DLLs/_testbuffer_d.pyd": "ce7bc854f481da8315f4642026c32eeb", - "build/assets/windows/Win32/DLLs/_testcapi.pyd": "eab4d97331cf25909affe69c3c1c5566", - "build/assets/windows/Win32/DLLs/_testcapi_d.pyd": "9b581f461b11f786f4cecf5966274974", - "build/assets/windows/Win32/DLLs/_testconsole.pyd": "dbfd00fc7db80486d0f3269660114901", - "build/assets/windows/Win32/DLLs/_testconsole_d.pyd": "6a7f933eef678738c8c719f6150fe04e", - "build/assets/windows/Win32/DLLs/_testimportmultiple.pyd": "4f97481647078ce59921e223b843cb9f", - "build/assets/windows/Win32/DLLs/_testimportmultiple_d.pyd": "f81d62193b35c42e2c00c37c5c5685b2", - "build/assets/windows/Win32/DLLs/_testinternalcapi.pyd": "ffeceb1d8a1f63491b32461d1797c014", - "build/assets/windows/Win32/DLLs/_testinternalcapi_d.pyd": "89712df22d527add5703e0dd381d94d2", - "build/assets/windows/Win32/DLLs/_testmultiphase.pyd": "5f046e9adc56eb8203baba879fbf6c2f", - "build/assets/windows/Win32/DLLs/_testmultiphase_d.pyd": "1a42ba49817be1e100a4116de5fa2429", - "build/assets/windows/Win32/DLLs/_tkinter.pyd": "986bc097824a212958b2bfee1b512ee0", - "build/assets/windows/Win32/DLLs/_tkinter_d.lib": "f59c7519459d21f1f6de055feea8adeb", - "build/assets/windows/Win32/DLLs/_tkinter_d.pyd": "9962b2a5867a20a7d3b14dddd33cb057", - "build/assets/windows/Win32/DLLs/_uuid.pyd": "fe046ab63f30494c4604565a756dcb53", - "build/assets/windows/Win32/DLLs/_uuid_d.pyd": "4752b694b697698918d2221659140294", - "build/assets/windows/Win32/DLLs/_zoneinfo.pyd": "dbb8af677a15a3744b206e09889388e2", - "build/assets/windows/Win32/DLLs/_zoneinfo_d.pyd": "89e97cb632acc54496af45c9eb76767c", - "build/assets/windows/Win32/DLLs/libcrypto-1_1.dll": "c588d94b02736a8b4cc82ef516167d93", + "build/assets/windows/Win32/DLLs/_asyncio.pyd": "d6200b9d2f1a6cf65f92c73cd4af9f34", + "build/assets/windows/Win32/DLLs/_asyncio_d.pyd": "c10a43c8765f9a060450adb77ce1b187", + "build/assets/windows/Win32/DLLs/_bz2.pyd": "facde30bd5093c615391f235f1ad5ba7", + "build/assets/windows/Win32/DLLs/_bz2_d.pyd": "623de8af4766e75cb828e158fe9c5f00", + "build/assets/windows/Win32/DLLs/_ctypes.pyd": "f5a2397204703da29a0713182492b760", + "build/assets/windows/Win32/DLLs/_ctypes_d.pyd": "6b438389a102548f0b664dd009a19fbf", + "build/assets/windows/Win32/DLLs/_ctypes_test.pyd": "51416f628d22861958721761cfd40591", + "build/assets/windows/Win32/DLLs/_ctypes_test_d.pyd": "19b282f18a8cfed112901ad27f80b6ac", + "build/assets/windows/Win32/DLLs/_decimal.pyd": "b670d6fa176b849f306a7a11dce494f9", + "build/assets/windows/Win32/DLLs/_decimal_d.pyd": "b0d185c274f05bf2f02276139073c52b", + "build/assets/windows/Win32/DLLs/_elementtree.pyd": "2cf58ae2834fbfdfd999de24a4dd62b4", + "build/assets/windows/Win32/DLLs/_elementtree_d.pyd": "b4cc21ac2a6408591d8f69bc3383135f", + "build/assets/windows/Win32/DLLs/_hashlib.pyd": "3d2bdc52152c93f711c00daa2a18b373", + "build/assets/windows/Win32/DLLs/_hashlib_d.pyd": "521c10f92ebc00871993fb289d611f87", + "build/assets/windows/Win32/DLLs/_lzma.pyd": "d68d59304f97826492c886878f0e0006", + "build/assets/windows/Win32/DLLs/_lzma_d.pyd": "9c34d9f1233db02922f907d15bcd6496", + "build/assets/windows/Win32/DLLs/_msi.pyd": "61d91a41a212edae7abb5292528eea72", + "build/assets/windows/Win32/DLLs/_msi_d.pyd": "6b8f4b97850403f97764dd9dafae4e4e", + "build/assets/windows/Win32/DLLs/_multiprocessing.pyd": "7b7da3895d47ab9b5c340604d4e912f5", + "build/assets/windows/Win32/DLLs/_multiprocessing_d.pyd": "20c5e4b9f6354ead73bfe1338f019c7b", + "build/assets/windows/Win32/DLLs/_overlapped.pyd": "8fd7b6efaffceb3f7e37a9a556fc813b", + "build/assets/windows/Win32/DLLs/_overlapped_d.pyd": "3f59f889a00a34c5597f33ddb49af5d7", + "build/assets/windows/Win32/DLLs/_queue.pyd": "1617fa61bad54b3d61d37b89232b751d", + "build/assets/windows/Win32/DLLs/_queue_d.pyd": "67c018c6cd6f0df8fa1bbe1c95909325", + "build/assets/windows/Win32/DLLs/_socket.pyd": "32e6fa024c973ed9c31e34329e1be873", + "build/assets/windows/Win32/DLLs/_socket_d.pyd": "2c075f6749e6791479aa1cc161d56d72", + "build/assets/windows/Win32/DLLs/_sqlite3.pyd": "497ab198a7ed5a650dfabcd02956c4e5", + "build/assets/windows/Win32/DLLs/_sqlite3_d.pyd": "6ea623939dab34896c2db59688a93ccd", + "build/assets/windows/Win32/DLLs/_ssl.pyd": "ec341f56cabc66b829e744690a7fe4bb", + "build/assets/windows/Win32/DLLs/_ssl_d.pyd": "4f0e26fa12ebdbe181980c19a38a676a", + "build/assets/windows/Win32/DLLs/_testbuffer.pyd": "393cc0990e3db66ccea3a8e1f44be8ea", + "build/assets/windows/Win32/DLLs/_testbuffer_d.pyd": "6220862ba41d423d16379adced2dde99", + "build/assets/windows/Win32/DLLs/_testcapi.pyd": "6a72448d8bab258afd560c68016527c3", + "build/assets/windows/Win32/DLLs/_testcapi_d.pyd": "6d6b2275db508a4bdc6b2017ab8e14f6", + "build/assets/windows/Win32/DLLs/_testclinic.pyd": "15ae08e197d157dd5fda76b90fe1314d", + "build/assets/windows/Win32/DLLs/_testclinic_d.pyd": "fa93c5a01becf49e75e4a6d325e5e0a8", + "build/assets/windows/Win32/DLLs/_testconsole.pyd": "c4db1f648d8e56ff47ccbaad8739921f", + "build/assets/windows/Win32/DLLs/_testconsole_d.pyd": "c42901b62c869207d853c163142ba6dc", + "build/assets/windows/Win32/DLLs/_testimportmultiple.pyd": "4c0f4b047c64b99659ff58af02fa8adc", + "build/assets/windows/Win32/DLLs/_testimportmultiple_d.pyd": "8e8cedea42356eec761f579a868dc95d", + "build/assets/windows/Win32/DLLs/_testinternalcapi.pyd": "9d4758b21bd71d3aa9408a65b78edb75", + "build/assets/windows/Win32/DLLs/_testinternalcapi_d.pyd": "57bde373451db366e07270d383554ddb", + "build/assets/windows/Win32/DLLs/_testmultiphase.pyd": "badda84bb3cfd098009e9e79f0fc2716", + "build/assets/windows/Win32/DLLs/_testmultiphase_d.pyd": "b678052d47705266d5cb6a7ad316c7bc", + "build/assets/windows/Win32/DLLs/_testsinglephase.pyd": "af177f3cd836c57668a8065f86f771ec", + "build/assets/windows/Win32/DLLs/_testsinglephase_d.pyd": "410aae28caab5d4863f9de37361f830f", + "build/assets/windows/Win32/DLLs/_tkinter.pyd": "704e09df34add2447f4b5e28df11fd9f", + "build/assets/windows/Win32/DLLs/_tkinter_d.lib": "457f33f88e45ae1e57ba2cbcc19d1db2", + "build/assets/windows/Win32/DLLs/_tkinter_d.pyd": "41a8539155704d5ff1016817109673e2", + "build/assets/windows/Win32/DLLs/_uuid.pyd": "d3d60397f83f9f5080f11e13cedb07a6", + "build/assets/windows/Win32/DLLs/_uuid_d.pyd": "70b3dfbfbe63b5060db468297aa61e56", + "build/assets/windows/Win32/DLLs/_wmi.pyd": "261657251728e20f8665dabd8637e0fd", + "build/assets/windows/Win32/DLLs/_wmi_d.pyd": "951fb7b550bbe940b04c0c41e6fd37f4", + "build/assets/windows/Win32/DLLs/_zoneinfo.pyd": "081fcc97976251ec421461ca21d5f63c", + "build/assets/windows/Win32/DLLs/_zoneinfo_d.pyd": "f1bdd6e538dc6ccea90ce39db4d5a7cd", + "build/assets/windows/Win32/DLLs/libcrypto-3.dll": "10205f683ed2716c2d34b18b0cabb952", "build/assets/windows/Win32/DLLs/libffi-8.dll": "add5e4fd0994adea27625d3cb292d517", - "build/assets/windows/Win32/DLLs/libssl-1_1.dll": "9c57632b130a24a07aae68944f16d7b4", - "build/assets/windows/Win32/DLLs/pyexpat.pyd": "b9332bb55fa1ff0fc7892a10e98349d0", - "build/assets/windows/Win32/DLLs/pyexpat_d.pyd": "f483934130b68e6cf2c2c6f19b13f321", - "build/assets/windows/Win32/DLLs/python_lib.cat": "770d26b5e320de7dccf9179f435808c1", - "build/assets/windows/Win32/DLLs/python_tools.cat": "dcfe43811c80ddb0e0c0ba26d7ad6683", - "build/assets/windows/Win32/DLLs/select.pyd": "2ccdd0cc82c9bb590feecea9010d1afb", - "build/assets/windows/Win32/DLLs/select_d.pyd": "0e94eb1e98794a52afc08f215befbedb", - "build/assets/windows/Win32/DLLs/sqlite3.dll": "720be2a8e9e99dc10da20a7332a1895d", - "build/assets/windows/Win32/DLLs/sqlite3_d.dll": "d601e241ec67e90928cbb514b486cf78", - "build/assets/windows/Win32/DLLs/tcl86t.dll": "2989edad0cefc560ce46d9c610fcf002", - "build/assets/windows/Win32/DLLs/tk86t.dll": "5400c27ddead370fed86588e28c1c710", - "build/assets/windows/Win32/DLLs/unicodedata.pyd": "3d3a82e03bfef5a20cc90f6ef9dfdd5d", - "build/assets/windows/Win32/DLLs/unicodedata_d.pyd": "f0a1342830b25380bc488dafbbec8c8a", - "build/assets/windows/Win32/DLLs/winsound.pyd": "ff30442580f8007d8e3cf249065be504", - "build/assets/windows/Win32/DLLs/winsound_d.pyd": "61bfae0b4550628962383115a678a3a7", + "build/assets/windows/Win32/DLLs/libssl-3.dll": "8d806beba7a2774910a04ec8b1920228", + "build/assets/windows/Win32/DLLs/pyexpat.pyd": "c6a4f03592e3faec39d3aeb3cadbcbb8", + "build/assets/windows/Win32/DLLs/pyexpat_d.pyd": "a9f7fcb5ca24b37361e7ffa2b0e05033", + "build/assets/windows/Win32/DLLs/python_lib.cat": "aebea0475d054851cee4695976eead03", + "build/assets/windows/Win32/DLLs/select.pyd": "df2d690ce071da84e3c432517403ef1c", + "build/assets/windows/Win32/DLLs/select_d.pyd": "033f90e4657da91b0f3cb7f2e88acc17", + "build/assets/windows/Win32/DLLs/sqlite3.dll": "960cfd5011c87271c3a6d925cb585292", + "build/assets/windows/Win32/DLLs/sqlite3_d.dll": "3e46cfd0288e45d3ecb2767c59c2b8f0", + "build/assets/windows/Win32/DLLs/tcl86t.dll": "631b48d5aaa9b3a63af5787eb7e7ecd1", + "build/assets/windows/Win32/DLLs/tk86t.dll": "abb8f82c017931e73698ad40a2b7472e", + "build/assets/windows/Win32/DLLs/unicodedata.pyd": "db52a6d12283916ea1ebfae7366a6e73", + "build/assets/windows/Win32/DLLs/unicodedata_d.pyd": "dc9c9ce32757c0b929f2096f631b433c", + "build/assets/windows/Win32/DLLs/winsound.pyd": "c800a16c594e2367f7330239542342c3", + "build/assets/windows/Win32/DLLs/winsound_d.pyd": "7d2bfbb555e11eaf21630e7705acc3f3", + "build/assets/windows/Win32/DLLs/zlib1.dll": "22edbf379459a26bd793f97a77818e1b", "build/assets/windows/Win32/Lib/__future__.py": "fa431443cdb2f89e145ca34ed374c8fb", "build/assets/windows/Win32/Lib/__hello__.py": "945039e2ba3b437621f13a4ae5974173", - "build/assets/windows/Win32/Lib/_aix_support.py": "f618be7a108eeb416af4c66c47776b3d", - "build/assets/windows/Win32/Lib/_bootsubprocess.py": "68a5e16ecae3b0b9fb479e351f6d24c0", - "build/assets/windows/Win32/Lib/_collections_abc.py": "258d56c370cb9967418ec759cfb005b7", + "build/assets/windows/Win32/Lib/_aix_support.py": "1b7a5fc71771254d200c503b23803b90", + "build/assets/windows/Win32/Lib/_collections_abc.py": "9c909b070062aab3119c3d7ca30fc146", "build/assets/windows/Win32/Lib/_compat_pickle.py": "7219c3b86988b7db7f087dbf04568979", "build/assets/windows/Win32/Lib/_compression.py": "2ef9a3240a15664c6c5497048870c3c6", "build/assets/windows/Win32/Lib/_markupbase.py": "3bcbdc5aa75d0b02cc0891bc3590de45", - "build/assets/windows/Win32/Lib/_osx_support.py": "f0a79c1aa27709024dc0cd72565a6c8b", + "build/assets/windows/Win32/Lib/_osx_support.py": "c2abd7910469b5b845967fcb9fe14c07", "build/assets/windows/Win32/Lib/_py_abc.py": "571f62cfdffd6279656fb4c0705cd84f", - "build/assets/windows/Win32/Lib/_pydecimal.py": "66f56c7b346bc35589c7c21b3ac5bbb8", - "build/assets/windows/Win32/Lib/_pyio.py": "7e4e18f3802a8404ed6e559efadaeac8", + "build/assets/windows/Win32/Lib/_pydatetime.py": "81301471249a54da7ee24bf36fd664f8", + "build/assets/windows/Win32/Lib/_pydecimal.py": "79b9ce1e0cd6b57a95f4ad4f1d91b3cd", + "build/assets/windows/Win32/Lib/_pyio.py": "31fff03b28770cde8e1c1f9ddd88b5c0", + "build/assets/windows/Win32/Lib/_pylong.py": "5948739fb11d787947aaec2040b578cd", "build/assets/windows/Win32/Lib/_sitebuiltins.py": "319ebfe45484d5f642ffe0d17c75cada", - "build/assets/windows/Win32/Lib/_strptime.py": "9ca78a77f23710f30d074a128f971b2a", + "build/assets/windows/Win32/Lib/_strptime.py": "c2e2226e2a4160b5e583241844a9c8b8", "build/assets/windows/Win32/Lib/_threading_local.py": "d728c39eeb1e1f847f63153f74227668", "build/assets/windows/Win32/Lib/_weakrefset.py": "bb8d0977e707d2d3335bab70248c105c", - "build/assets/windows/Win32/Lib/abc.py": "fe5bf21a189a6fdcf4730906625a23e6", + "build/assets/windows/Win32/Lib/abc.py": "80151ab0b06f1d0e58f5b82ee9301a1c", "build/assets/windows/Win32/Lib/aifc.py": "d03f1a814836871c815ca4ec555c0f4c", "build/assets/windows/Win32/Lib/antigravity.py": "1f197aa12683a28f3e1c374ef0861dc2", - "build/assets/windows/Win32/Lib/argparse.py": "e06afef9e361815d396f032dc4c8dd2b", - "build/assets/windows/Win32/Lib/ast.py": "b387eb3b7b41213f8579941a1b4efaeb", - "build/assets/windows/Win32/Lib/asynchat.py": "0f487b167f22293a3bd8d1ef1443263c", - "build/assets/windows/Win32/Lib/asyncio/__init__.py": "33b01ebf1c790e26092d9bcc317589e6", + "build/assets/windows/Win32/Lib/argparse.py": "90fd6752f1164c3783ea9b179df9c825", + "build/assets/windows/Win32/Lib/ast.py": "42971deb4069729a8923f417c115d168", + "build/assets/windows/Win32/Lib/asyncio/__init__.py": "dd116953fb385eb10890a309a3e82de6", "build/assets/windows/Win32/Lib/asyncio/__main__.py": "46081e642d868f97becc00cfbf2166f7", - "build/assets/windows/Win32/Lib/asyncio/base_events.py": "b9323e9af89aeedd3d109c7dbb7966ad", - "build/assets/windows/Win32/Lib/asyncio/base_futures.py": "00f2942d96bf11921f1a6c371377bec3", + "build/assets/windows/Win32/Lib/asyncio/base_events.py": "9e3d8bc0327569bdef4a2ba8d7d447c2", + "build/assets/windows/Win32/Lib/asyncio/base_futures.py": "8a4f670897a444853653a62930638190", "build/assets/windows/Win32/Lib/asyncio/base_subprocess.py": "06d35c71af4164a59770815a4af3aa30", - "build/assets/windows/Win32/Lib/asyncio/base_tasks.py": "281707ad99fa72b51f841cae69f61e0d", - "build/assets/windows/Win32/Lib/asyncio/constants.py": "46c41dd7b83345e84ba1515925a01546", - "build/assets/windows/Win32/Lib/asyncio/coroutines.py": "2ebb0c1f8196b7cf531795e217bd2a1b", - "build/assets/windows/Win32/Lib/asyncio/events.py": "65c0c7974aca2497c0a3409fbd572977", + "build/assets/windows/Win32/Lib/asyncio/base_tasks.py": "8b31e7def03a9b53e0d5a0c8bc0141f4", + "build/assets/windows/Win32/Lib/asyncio/constants.py": "6e2938028721a1e886dfb9325bfb9c0a", + "build/assets/windows/Win32/Lib/asyncio/coroutines.py": "38bae71c8ba55ec747255dcf5cee4e0f", + "build/assets/windows/Win32/Lib/asyncio/events.py": "9e0cd791e4cf634e4513c6f4682bee73", "build/assets/windows/Win32/Lib/asyncio/exceptions.py": "abbe69f9f1f76c5e14d8a6502f981f41", "build/assets/windows/Win32/Lib/asyncio/format_helpers.py": "94e6e139c5895dad46b62301cdb055dd", - "build/assets/windows/Win32/Lib/asyncio/futures.py": "d1f485f994ab76f4eda521bfa85a87ce", - "build/assets/windows/Win32/Lib/asyncio/locks.py": "20d30060338f823f644345fbbf3e6060", + "build/assets/windows/Win32/Lib/asyncio/futures.py": "bfafee417af4cb76c44b571b4c38523b", + "build/assets/windows/Win32/Lib/asyncio/locks.py": "3f11494a6853b417396f87aaa8d7034e", "build/assets/windows/Win32/Lib/asyncio/log.py": "4a2916885c157052d18b8ffaa46bba2c", "build/assets/windows/Win32/Lib/asyncio/mixins.py": "32d733fe6d90dba53409b26f9b3745da", - "build/assets/windows/Win32/Lib/asyncio/proactor_events.py": "5929f4a0db2201486cccf62975645584", + "build/assets/windows/Win32/Lib/asyncio/proactor_events.py": "a1962a126a59d48181443c5a26294c75", "build/assets/windows/Win32/Lib/asyncio/protocols.py": "fee90d0bdaf784a4005c391066279bca", "build/assets/windows/Win32/Lib/asyncio/queues.py": "3eab9ccabc902d551f3a7d47933b6c6d", - "build/assets/windows/Win32/Lib/asyncio/runners.py": "7fc486b2b89e2cfe0101aebcbae56af7", - "build/assets/windows/Win32/Lib/asyncio/selector_events.py": "67c76e6039ec42451dbf8a08f94cc20b", - "build/assets/windows/Win32/Lib/asyncio/sslproto.py": "2434f1328ca8e1e24eeecbe39f769b88", + "build/assets/windows/Win32/Lib/asyncio/runners.py": "4a9dfc6547e96f1125c1b25fda003bf6", + "build/assets/windows/Win32/Lib/asyncio/selector_events.py": "e42f1ac19191f9315b0d80ea94f3a14e", + "build/assets/windows/Win32/Lib/asyncio/sslproto.py": "26f5df2eaf3eaf5758eb425839591c46", "build/assets/windows/Win32/Lib/asyncio/staggered.py": "28b9ece61372b27a47996aac663f244b", - "build/assets/windows/Win32/Lib/asyncio/streams.py": "c4943c41fce3eb0831dc34704f779173", - "build/assets/windows/Win32/Lib/asyncio/subprocess.py": "c5b4683e796109f3b6e51c9489de7d25", - "build/assets/windows/Win32/Lib/asyncio/taskgroups.py": "7ded4b7542361a94d00c2c8e6c389d6d", - "build/assets/windows/Win32/Lib/asyncio/tasks.py": "756c3d7b06740ba536c24c79d35f5a7c", + "build/assets/windows/Win32/Lib/asyncio/streams.py": "a7563e85e7229307465c6f7c3c478b11", + "build/assets/windows/Win32/Lib/asyncio/subprocess.py": "667309315d74b3d93884b65df1806112", + "build/assets/windows/Win32/Lib/asyncio/taskgroups.py": "e2a99de6fe5b448c6ec290f525256863", + "build/assets/windows/Win32/Lib/asyncio/tasks.py": "9194674f4b7d193302e4298b25d5466c", "build/assets/windows/Win32/Lib/asyncio/threads.py": "19978e7e575a5736581a948f2aa43f06", - "build/assets/windows/Win32/Lib/asyncio/timeouts.py": "cc43cf1120eebd93c4c273271c9b4bc4", + "build/assets/windows/Win32/Lib/asyncio/timeouts.py": "c19c9d800f10619b9ec332af06df577a", "build/assets/windows/Win32/Lib/asyncio/transports.py": "8a95410f0a8af302302d9f6403b9a804", "build/assets/windows/Win32/Lib/asyncio/trsock.py": "04065813c0df37fa2e8c92861398e91b", - "build/assets/windows/Win32/Lib/asyncio/unix_events.py": "aa57a5055b164836a090f4245a226302", - "build/assets/windows/Win32/Lib/asyncio/windows_events.py": "168458ae0f968dcf0d37c1dd2e13bc0c", + "build/assets/windows/Win32/Lib/asyncio/unix_events.py": "1fff382ab51898592309444e9add3e83", + "build/assets/windows/Win32/Lib/asyncio/windows_events.py": "1ab1706e0b85623e4c31bdaa2a478fbd", "build/assets/windows/Win32/Lib/asyncio/windows_utils.py": "fbe727afd09a759384684cef34e3d280", - "build/assets/windows/Win32/Lib/asyncore.py": "d9a5d43b5567d0b7a86ab1dade90cfe3", - "build/assets/windows/Win32/Lib/base64.py": "dbcd846c72ddfd68de7da4bc6f547acf", - "build/assets/windows/Win32/Lib/bdb.py": "df3730b9f17ee5d6239e8f3cafbd1ee2", - "build/assets/windows/Win32/Lib/bisect.py": "1052ec3b15ca76f95adbb0efaa4936ce", + "build/assets/windows/Win32/Lib/base64.py": "1c135bb7429ec20d89a673949a66f3b0", + "build/assets/windows/Win32/Lib/bdb.py": "9d84866fefc59a2f626f71480300dd2f", + "build/assets/windows/Win32/Lib/bisect.py": "d5b425e28c1f8c278d83823d10823aa8", "build/assets/windows/Win32/Lib/bz2.py": "baf199333fac6274d5a35e08efb80e2d", - "build/assets/windows/Win32/Lib/cProfile.py": "8db3db63b21e7c88e1a56c0cd8a27f4a", - "build/assets/windows/Win32/Lib/calendar.py": "6fc1c91468dce664b9521757752cb429", + "build/assets/windows/Win32/Lib/cProfile.py": "d8d1a11c94fe294d959d59f3c9df74bd", + "build/assets/windows/Win32/Lib/calendar.py": "2c244158ee31601c4c9c3068c03f5992", "build/assets/windows/Win32/Lib/cgi.py": "e8f008c333fd45a3ae17be54dff3e988", - "build/assets/windows/Win32/Lib/cgitb.py": "616dbca7209faf0b13d9d6f849a7ed65", + "build/assets/windows/Win32/Lib/cgitb.py": "210e2dd85351c618207d7a339b2e4278", "build/assets/windows/Win32/Lib/chunk.py": "f23e91a3db4e72b78fa0bb27367e55b6", "build/assets/windows/Win32/Lib/cmd.py": "2d96978495135230bf3206f719aa17a1", - "build/assets/windows/Win32/Lib/code.py": "7fea25b8921ef753b2337aa40f7b24d0", - "build/assets/windows/Win32/Lib/codecs.py": "61be62a9e187fc1232c269f16a544601", - "build/assets/windows/Win32/Lib/codeop.py": "3a92a0b014bdbc98716fc116b5cceca2", - "build/assets/windows/Win32/Lib/collections/__init__.py": "3d6d4dfb4faba8ed821dc1a26831b4a4", + "build/assets/windows/Win32/Lib/code.py": "dd2e6de6365cc3c83a125cb1597d711c", + "build/assets/windows/Win32/Lib/codecs.py": "df296f6579696c337f7197825b02d688", + "build/assets/windows/Win32/Lib/codeop.py": "00fe8452dc883cc6a11bb1ec4bcd3d12", + "build/assets/windows/Win32/Lib/collections/__init__.py": "3706797bde0b38b4cea08eccd2a29012", "build/assets/windows/Win32/Lib/collections/abc.py": "fa570434263d345a8060251dcc1496d8", - "build/assets/windows/Win32/Lib/colorsys.py": "8d567ec87c27f3d415c809432bdcb4ef", - "build/assets/windows/Win32/Lib/compileall.py": "5e88d460781254362f046bfcaf31357d", + "build/assets/windows/Win32/Lib/colorsys.py": "5a90b1713728aad7432ffd75b4c99577", + "build/assets/windows/Win32/Lib/compileall.py": "5340d67297feb6d3ae731fe68890cf52", "build/assets/windows/Win32/Lib/concurrent/__init__.py": "a1763d550a676bb6d5ac49f848394a75", "build/assets/windows/Win32/Lib/concurrent/futures/__init__.py": "bff30824c77101bf134476c1b34720c9", "build/assets/windows/Win32/Lib/concurrent/futures/_base.py": "4c2b4954e9af3850bc2d8f2683e68dd9", - "build/assets/windows/Win32/Lib/concurrent/futures/process.py": "0cfe1a81e775b1faf429ee846811bcb1", - "build/assets/windows/Win32/Lib/concurrent/futures/thread.py": "d5f6c0311a02c6eac15c245ae0912b41", - "build/assets/windows/Win32/Lib/configparser.py": "13f29dedf00abfa1d94d460ab1be05b3", - "build/assets/windows/Win32/Lib/contextlib.py": "36570d35cef63201f841a87c917b9a64", + "build/assets/windows/Win32/Lib/concurrent/futures/process.py": "3c9a6d0b7847ea5e770f76ef7ac549c3", + "build/assets/windows/Win32/Lib/concurrent/futures/thread.py": "0fbaef5db0f7289ee36e9f9ca48249bc", + "build/assets/windows/Win32/Lib/configparser.py": "2d42c768057fe603da46d91c19083818", + "build/assets/windows/Win32/Lib/contextlib.py": "65177d8878e295f1fba8071b66ca2f7e", "build/assets/windows/Win32/Lib/contextvars.py": "2b57f9509deec34bdcc0d68b15f4c56d", - "build/assets/windows/Win32/Lib/copy.py": "878ee9ac0e196270537fc6f1372d7569", - "build/assets/windows/Win32/Lib/copyreg.py": "44eb4b335fbb03f965bcb37b3eb872d9", + "build/assets/windows/Win32/Lib/copy.py": "b36515078390399b0591e6652b7f6b29", + "build/assets/windows/Win32/Lib/copyreg.py": "198f19e7b39d76e841f7b7e55cad0eea", "build/assets/windows/Win32/Lib/crypt.py": "8b8dbcac724ca23660394ecf3e3fc880", - "build/assets/windows/Win32/Lib/csv.py": "e102feae436f17ab2beb5eaf636331e7", - "build/assets/windows/Win32/Lib/ctypes/__init__.py": "b1226c2b1f7fec64834f00134d10785a", - "build/assets/windows/Win32/Lib/ctypes/_aix.py": "21faca975417035fa5a4a002161db818", - "build/assets/windows/Win32/Lib/ctypes/_endian.py": "cb4baf786e4e062fb9f4d7ac74dc27e9", + "build/assets/windows/Win32/Lib/csv.py": "f0c07b7357871e850fa6529937e1b276", + "build/assets/windows/Win32/Lib/ctypes/__init__.py": "4b9a758982bdacb6c4a48947c8ae487e", + "build/assets/windows/Win32/Lib/ctypes/_aix.py": "d0692faac3ff345491130890cd0cb0b6", + "build/assets/windows/Win32/Lib/ctypes/_endian.py": "a18be1853b76bf255f0a4bad0fe20b0b", "build/assets/windows/Win32/Lib/ctypes/macholib/__init__.py": "50d810daab87b8becccfe6039c31f3cd", "build/assets/windows/Win32/Lib/ctypes/macholib/dyld.py": "42fc603db00a44571bc508104bedb873", "build/assets/windows/Win32/Lib/ctypes/macholib/dylib.py": "af1f2399fc8df5e350d7a65318977dcf", "build/assets/windows/Win32/Lib/ctypes/macholib/framework.py": "5f496e888d76fa24107079de85749689", - "build/assets/windows/Win32/Lib/ctypes/util.py": "93d9e5c1c46e6e84291ec10a15641538", - "build/assets/windows/Win32/Lib/ctypes/wintypes.py": "25a1f4314b059a24cb47659f6b7bf3ef", + "build/assets/windows/Win32/Lib/ctypes/util.py": "8675126192759af584da3446df959be5", + "build/assets/windows/Win32/Lib/ctypes/wintypes.py": "81e34d9725fc4b57ba3aec96ca96bd56", "build/assets/windows/Win32/Lib/curses/__init__.py": "3acc0fa316f37311bfa8d0cbb4aeac98", - "build/assets/windows/Win32/Lib/curses/ascii.py": "70d7fcaf61929b9ee9da399e40d87972", + "build/assets/windows/Win32/Lib/curses/ascii.py": "09af3344511269ece467e21e3bcfe983", "build/assets/windows/Win32/Lib/curses/has_key.py": "49cf9984c4dfb2af6f689a0f837a06e0", "build/assets/windows/Win32/Lib/curses/panel.py": "06f34add65abbaed2a6ac50fe10b14d8", - "build/assets/windows/Win32/Lib/curses/textpad.py": "23cc43602831c6a9e53699adac94cca1", - "build/assets/windows/Win32/Lib/dataclasses.py": "27161ff5bb5c59b6a12f0aead81c838b", - "build/assets/windows/Win32/Lib/datetime.py": "ca28963b420a4f1a7aa40e26d5cb0ab2", + "build/assets/windows/Win32/Lib/curses/textpad.py": "dbf68c87f03a63dc75f4324a4bf8a85a", + "build/assets/windows/Win32/Lib/dataclasses.py": "1e08778d005b1b96600e5870a58ebcce", + "build/assets/windows/Win32/Lib/datetime.py": "2863ea33ca73ed627be00967ed1b4c54", "build/assets/windows/Win32/Lib/decimal.py": "b411f825f78657b08740590fe1f57e09", "build/assets/windows/Win32/Lib/difflib.py": "27187330aa382868805ddc412f3105c0", - "build/assets/windows/Win32/Lib/dis.py": "8a7de27de5ab9f03857445c4380b3864", - "build/assets/windows/Win32/Lib/doctest.py": "e6e93d5c8f105103e919c1b355416af6", - "build/assets/windows/Win32/Lib/email/__init__.py": "bc395fc9067a88eff1e848c1f308fb28", + "build/assets/windows/Win32/Lib/dis.py": "ebda97c97a336b99c57679b275da2e92", + "build/assets/windows/Win32/Lib/doctest.py": "df2e40e4166e38029d88d11d7b4e7640", + "build/assets/windows/Win32/Lib/email/__init__.py": "e2e366d6032626f39ca83b7f56e8d5af", "build/assets/windows/Win32/Lib/email/_encoded_words.py": "34381d774fa1a7134ccf76d5ccceef1e", - "build/assets/windows/Win32/Lib/email/_header_value_parser.py": "bffdc9dd9025c16c5940508173b22248", + "build/assets/windows/Win32/Lib/email/_header_value_parser.py": "44cc5249b30a5488c804d614a4fab6b3", "build/assets/windows/Win32/Lib/email/_parseaddr.py": "797f8ae24b95c3fdd6a6a5d2d0a13506", "build/assets/windows/Win32/Lib/email/_policybase.py": "69b4885573ed1cdaef626292260f8c0d", "build/assets/windows/Win32/Lib/email/architecture.rst": "2e6e6ff48eb00d9472036bb58df2683d", - "build/assets/windows/Win32/Lib/email/base64mime.py": "0258067f067387e349729ead4ec45cf8", - "build/assets/windows/Win32/Lib/email/charset.py": "1d5fa1f4a67ee3cdad5d37b605d264ff", + "build/assets/windows/Win32/Lib/email/base64mime.py": "940d660bddcf920467b5ca2bff9abfd4", + "build/assets/windows/Win32/Lib/email/charset.py": "c93a88e7f15c583aa3affdf07791bce9", "build/assets/windows/Win32/Lib/email/contentmanager.py": "882adb28c9ef99cba9e18488aa4a7feb", - "build/assets/windows/Win32/Lib/email/encoders.py": "ac45b147a46fd6134829360fc04e7faf", + "build/assets/windows/Win32/Lib/email/encoders.py": "457e08ff022a9f050714dd2aaed225b8", "build/assets/windows/Win32/Lib/email/errors.py": "ddbb171b230bf413aae93f419693dbb9", - "build/assets/windows/Win32/Lib/email/feedparser.py": "13f6c2d2055cf5cce929da1cbde0d49d", - "build/assets/windows/Win32/Lib/email/generator.py": "ad35328f0abb99aa84e49db589df642e", - "build/assets/windows/Win32/Lib/email/header.py": "fc77bf472e4ec4de45001f42a13dca2d", + "build/assets/windows/Win32/Lib/email/feedparser.py": "bb22ff3470f0140cdcccb23fb494a68a", + "build/assets/windows/Win32/Lib/email/generator.py": "dfabc694df6311708fcba9c34c61c360", + "build/assets/windows/Win32/Lib/email/header.py": "01ce99d0ce458e10cf9b3c67c0f83359", "build/assets/windows/Win32/Lib/email/headerregistry.py": "4ee0b0e20e7ee48de360abdbadb1be2f", - "build/assets/windows/Win32/Lib/email/iterators.py": "173ee248fea705b3e4897b3a789dc420", - "build/assets/windows/Win32/Lib/email/message.py": "ebcee718c28aaa3ba7b64bd6820f5bed", + "build/assets/windows/Win32/Lib/email/iterators.py": "388462f1cf6b24d0629af434c89652e9", + "build/assets/windows/Win32/Lib/email/message.py": "446f90d33c8e2c195a1fd5eaa208443a", "build/assets/windows/Win32/Lib/email/mime/__init__.py": "340c83beff7dcff8f5c7b87cd43cedaf", "build/assets/windows/Win32/Lib/email/mime/application.py": "5c0e693ab28b46dffc7c3df34e037da6", "build/assets/windows/Win32/Lib/email/mime/audio.py": "ff5e73dfb6d60603e22c3f13f9807c5f", - "build/assets/windows/Win32/Lib/email/mime/base.py": "8009041a1112df8ef88e20a1a1fd35d6", + "build/assets/windows/Win32/Lib/email/mime/base.py": "dafe5fa1c16dd2b1f449ca1929cfdb78", "build/assets/windows/Win32/Lib/email/mime/image.py": "dc81b5479197771c2e821f87a73571d2", - "build/assets/windows/Win32/Lib/email/mime/message.py": "c65a2cc98551e26853217fdc80d91ce3", - "build/assets/windows/Win32/Lib/email/mime/multipart.py": "c7c07904eda6675bb6d1dca6d31fc216", - "build/assets/windows/Win32/Lib/email/mime/nonmultipart.py": "289e3b0165bc59a57dc09d42c7dab384", - "build/assets/windows/Win32/Lib/email/mime/text.py": "69b632216ec669b20f472b993fdfd18e", - "build/assets/windows/Win32/Lib/email/parser.py": "298134b8fd5f16742344cb5d7cea69b9", - "build/assets/windows/Win32/Lib/email/policy.py": "751b5fbe98e1e32b5d5abdf74c98cbc8", + "build/assets/windows/Win32/Lib/email/mime/message.py": "19ebc144d5aa2c82f3779bc93fe43d2d", + "build/assets/windows/Win32/Lib/email/mime/multipart.py": "ff1b3e481d98ac02b5d8a46d98c5942c", + "build/assets/windows/Win32/Lib/email/mime/nonmultipart.py": "1bf2b651760f1ddb48e21f7d100b2734", + "build/assets/windows/Win32/Lib/email/mime/text.py": "70436eda8bb24bfb9214d4cda6a9cbe5", + "build/assets/windows/Win32/Lib/email/parser.py": "38fb10678ae9de5247594afb06098545", + "build/assets/windows/Win32/Lib/email/policy.py": "cd02b8d233e18e55b0287288c8b4b871", "build/assets/windows/Win32/Lib/email/quoprimime.py": "66f0e9cfe5151d76e246c1de56899061", - "build/assets/windows/Win32/Lib/email/utils.py": "4dfc2f60dc556ca5b6d8caa356544343", + "build/assets/windows/Win32/Lib/email/utils.py": "2357e29ff0ab95613f5a41062fd4bcd6", "build/assets/windows/Win32/Lib/encodings/__init__.py": "76a8b4455123dfea7f30028dbdf9e14a", "build/assets/windows/Win32/Lib/encodings/aliases.py": "54dfc02248088a3371b57caf0498c24c", "build/assets/windows/Win32/Lib/encodings/ascii.py": "3428503ab8e57db1e654e6a7a6730671", @@ -3785,7 +3774,7 @@ "build/assets/windows/Win32/Lib/encodings/hex_codec.py": "0efa4764167845190a7595ce191d50f9", "build/assets/windows/Win32/Lib/encodings/hp_roman8.py": "d8ce099e7b8e804230a42872c232d305", "build/assets/windows/Win32/Lib/encodings/hz.py": "ad1c8efdae3c468ff14b41046cd198ea", - "build/assets/windows/Win32/Lib/encodings/idna.py": "4a330020df438769672add6b51973d63", + "build/assets/windows/Win32/Lib/encodings/idna.py": "984c57d253f77d4d8118fca868310ec4", "build/assets/windows/Win32/Lib/encodings/iso2022_jp.py": "653db9f44279ab6328b167a194193746", "build/assets/windows/Win32/Lib/encodings/iso2022_jp_1.py": "94e58a4ed862c7c9f0347b6303c1e58e", "build/assets/windows/Win32/Lib/encodings/iso2022_jp_2.py": "dba37d7836612e7cb15d41754ddf48ef", @@ -3849,266 +3838,268 @@ "build/assets/windows/Win32/Lib/encodings/utf_8_sig.py": "967f93eb4613619338c9186b4c5ea69b", "build/assets/windows/Win32/Lib/encodings/uu_codec.py": "254cd6bf834e57955dc074f931697b17", "build/assets/windows/Win32/Lib/encodings/zlib_codec.py": "39880fea3cdf2d6fba21e277358287aa", - "build/assets/windows/Win32/Lib/enum.py": "080ca500be8c8840dedfc3148ae66174", - "build/assets/windows/Win32/Lib/filecmp.py": "1cdaad1f90a8a05fc0348aada4eec295", + "build/assets/windows/Win32/Lib/enum.py": "733689f7c63f92aa0f05eb248e23bc38", + "build/assets/windows/Win32/Lib/filecmp.py": "3c926fdd7eb886f396e8513b17e937a2", "build/assets/windows/Win32/Lib/fileinput.py": "c945a0d3ce429a595165c9fa8f077674", "build/assets/windows/Win32/Lib/fnmatch.py": "709a22732944e9c1d01fe30e09ab4546", - "build/assets/windows/Win32/Lib/fractions.py": "246268a6bc93e0d21a70a0c8b371b43d", - "build/assets/windows/Win32/Lib/ftplib.py": "4ea11c7d66a3e502706732fc5e28a7b1", - "build/assets/windows/Win32/Lib/functools.py": "1bb730b0ca61e4f7540475acf0826047", - "build/assets/windows/Win32/Lib/genericpath.py": "02c815ee7e5753526d0685b9568137d7", - "build/assets/windows/Win32/Lib/getopt.py": "01a4860defe1d9e2d79d407cea1ef4d4", + "build/assets/windows/Win32/Lib/fractions.py": "785131cff33c87253bb21e18e52672c0", + "build/assets/windows/Win32/Lib/ftplib.py": "5cfe80a1dec9366b369d1b16e5d278a1", + "build/assets/windows/Win32/Lib/functools.py": "043d5f2de5f764d06f1609c20c24841a", + "build/assets/windows/Win32/Lib/genericpath.py": "79af76c0d44bd8fea7d789af98572678", + "build/assets/windows/Win32/Lib/getopt.py": "433199527d43fe6614176a0e13483519", "build/assets/windows/Win32/Lib/getpass.py": "a4ca93e18ef84af3ef4cd660fb792d19", - "build/assets/windows/Win32/Lib/gettext.py": "521b1bff04ea722edd8fd1480f9e16c3", - "build/assets/windows/Win32/Lib/glob.py": "83e3e9e88081ad328f6b588398804ca3", + "build/assets/windows/Win32/Lib/gettext.py": "ab30188eaa83966e7d77b7dd828d496e", + "build/assets/windows/Win32/Lib/glob.py": "03dee0d3aaca277c36375a6679439455", "build/assets/windows/Win32/Lib/graphlib.py": "7e334216161cace5c3845ecc2c1503ac", - "build/assets/windows/Win32/Lib/gzip.py": "84ddaec2967a488173621f2777d87587", - "build/assets/windows/Win32/Lib/hashlib.py": "538b3ccdfdeb0c9c3fb52b3567e2283d", + "build/assets/windows/Win32/Lib/gzip.py": "501ebde531690c6a136753d646414afe", + "build/assets/windows/Win32/Lib/hashlib.py": "419b9e23b117c011d34d1a8fe3084a90", "build/assets/windows/Win32/Lib/heapq.py": "27487a7721004cc13c71ed938ed0e514", - "build/assets/windows/Win32/Lib/hmac.py": "d17bf2dd46d0e2671ea6dfd47c9f4b61", + "build/assets/windows/Win32/Lib/hmac.py": "889b023d1a317d3e52c3d8b769c8ba37", "build/assets/windows/Win32/Lib/html/__init__.py": "b3161643488aa6412b72d97ede6f99f0", - "build/assets/windows/Win32/Lib/html/entities.py": "92f1a59d8dad648b82a675e26d270b6c", - "build/assets/windows/Win32/Lib/html/parser.py": "b364614e14ac702c6ac69c9991bd1b8f", - "build/assets/windows/Win32/Lib/http/__init__.py": "a141acc19735e614127761d6b7c21695", - "build/assets/windows/Win32/Lib/http/client.py": "2666c383d728abdb252c4dea20221f7f", - "build/assets/windows/Win32/Lib/http/cookiejar.py": "1506b3637aab8f0903964f7d1a08eca3", + "build/assets/windows/Win32/Lib/html/entities.py": "dff75be0d162f3ce0fb08d6cd7252710", + "build/assets/windows/Win32/Lib/html/parser.py": "84a8820be95eca20d3e06df54a490c7e", + "build/assets/windows/Win32/Lib/http/__init__.py": "35b771db39ef38790243d2472d559aec", + "build/assets/windows/Win32/Lib/http/client.py": "1ddcbaf29df2aecb70996db41c4b2899", + "build/assets/windows/Win32/Lib/http/cookiejar.py": "c840a39537dfc7adcea9d343f4a27338", "build/assets/windows/Win32/Lib/http/cookies.py": "35a5566e71bc4739320396ea61ad7579", - "build/assets/windows/Win32/Lib/http/server.py": "52c30a29d43f99088b1103973c7a088b", - "build/assets/windows/Win32/Lib/imghdr.py": "8887ce1ec208c02bdfc3901fa94dbb2b", - "build/assets/windows/Win32/Lib/imp.py": "9f0ce0074497c4cac0d255b83f1d8622", - "build/assets/windows/Win32/Lib/importlib/__init__.py": "86b9180c2211a1e9fe65fe69b0b15a2a", - "build/assets/windows/Win32/Lib/importlib/_abc.py": "f0edffce97b6a9e220909fb2000f3774", - "build/assets/windows/Win32/Lib/importlib/_bootstrap.py": "4584faa9930fb6144e8b919ce9df65bc", - "build/assets/windows/Win32/Lib/importlib/_bootstrap_external.py": "71e158c0f1d8b89c1cfd7d00e11760be", - "build/assets/windows/Win32/Lib/importlib/abc.py": "7faa9ba8972681fbc086d20a1cb531d4", + "build/assets/windows/Win32/Lib/http/server.py": "16126d95264104e48d320b7446b6e1e8", + "build/assets/windows/Win32/Lib/imghdr.py": "fa8198565241e7b211a856ab467b1e5f", + "build/assets/windows/Win32/Lib/importlib/__init__.py": "71b46e61f00a0ff6747fbc8a0fab049d", + "build/assets/windows/Win32/Lib/importlib/_abc.py": "9b8fde397e9fe6f11800eaec9a9868ff", + "build/assets/windows/Win32/Lib/importlib/_bootstrap.py": "c061ba07d397e3399c3124ba1f3be00c", + "build/assets/windows/Win32/Lib/importlib/_bootstrap_external.py": "3b2fc13250c5c7cc945f5c490c622759", + "build/assets/windows/Win32/Lib/importlib/abc.py": "034028fa598e2931f22216b0071a8221", "build/assets/windows/Win32/Lib/importlib/machinery.py": "6a340b452911166743067c0855d188c2", - "build/assets/windows/Win32/Lib/importlib/metadata/__init__.py": "7d7aab0c1af83eba4c8affd4b29d8b21", - "build/assets/windows/Win32/Lib/importlib/metadata/_adapters.py": "bba28f01066d681e44561752a39f4e07", + "build/assets/windows/Win32/Lib/importlib/metadata/__init__.py": "4fe51d5c228e8f32d99b36dcbc8fc828", + "build/assets/windows/Win32/Lib/importlib/metadata/_adapters.py": "291651434392c0f857ee134dcc79f008", "build/assets/windows/Win32/Lib/importlib/metadata/_collections.py": "219a427b3c861958657d67a194e476cb", "build/assets/windows/Win32/Lib/importlib/metadata/_functools.py": "fc3e69957851b67b4f36a9c2b31388d9", "build/assets/windows/Win32/Lib/importlib/metadata/_itertools.py": "53081eb413abd351a57e4df8c6d88d0e", - "build/assets/windows/Win32/Lib/importlib/metadata/_meta.py": "0c4e02862290fee810500b433271d157", + "build/assets/windows/Win32/Lib/importlib/metadata/_meta.py": "d79de5879c5ea82d869ecb696d45ce2d", "build/assets/windows/Win32/Lib/importlib/metadata/_text.py": "705c77dfe5baffe64e8a04bf7c4aa70b", "build/assets/windows/Win32/Lib/importlib/readers.py": "5e1ef1857ebfad4aa8fa9f6a2e1c3376", "build/assets/windows/Win32/Lib/importlib/resources/__init__.py": "bf69221304c7832cec4996301c500208", - "build/assets/windows/Win32/Lib/importlib/resources/_adapters.py": "6aae358829f4a9ade2765ee414cc7f82", - "build/assets/windows/Win32/Lib/importlib/resources/_common.py": "54995fd6ea66d689c86ed6fc9d80ae2d", - "build/assets/windows/Win32/Lib/importlib/resources/_itertools.py": "a90815e95002dc6b1a63320370f39d8c", - "build/assets/windows/Win32/Lib/importlib/resources/_legacy.py": "a95f90c8da16ffa8b4b1f8566bff6ea3", - "build/assets/windows/Win32/Lib/importlib/resources/abc.py": "3aa58669bebfbad799d8d9b6603fb740", - "build/assets/windows/Win32/Lib/importlib/resources/readers.py": "3e4b7dbe725edf04516ceac42d8e051a", - "build/assets/windows/Win32/Lib/importlib/resources/simple.py": "5344d72410814e6434453f4f5e4d347a", + "build/assets/windows/Win32/Lib/importlib/resources/_adapters.py": "2bf022b3b400b874e2e7b312d26a1c7b", + "build/assets/windows/Win32/Lib/importlib/resources/_common.py": "b5d1759962fc8e41d5930fb155d52ea9", + "build/assets/windows/Win32/Lib/importlib/resources/_itertools.py": "36d2c42cc788cfaed8de69c7719abfe1", + "build/assets/windows/Win32/Lib/importlib/resources/_legacy.py": "5e6dff48b05a4ec687a2d86f70c4ad15", + "build/assets/windows/Win32/Lib/importlib/resources/abc.py": "440a083cbb9d330ad86cb9cc40ab6943", + "build/assets/windows/Win32/Lib/importlib/resources/readers.py": "c5fc2fe06dfc29ebc355a8a729caf473", + "build/assets/windows/Win32/Lib/importlib/resources/simple.py": "21fd93b6fadd62c7bf198e8da925a594", "build/assets/windows/Win32/Lib/importlib/simple.py": "01ff1266bb13813a1f13f00273f0f60f", - "build/assets/windows/Win32/Lib/importlib/util.py": "3decfd68112ab45e528b248ebe7180fd", - "build/assets/windows/Win32/Lib/inspect.py": "2facd0131cbbf340cee6600ea7481397", - "build/assets/windows/Win32/Lib/io.py": "8226a515383231b4bc69415136745a23", - "build/assets/windows/Win32/Lib/ipaddress.py": "47585d25fb4abd07f2d29adad6cabf42", + "build/assets/windows/Win32/Lib/importlib/util.py": "a366ac49357410247f6fb3272ea28693", + "build/assets/windows/Win32/Lib/inspect.py": "744dd5999502047434ac0ab729f5fa41", + "build/assets/windows/Win32/Lib/io.py": "b284ff0a9afdaf2f29c51beef4908218", + "build/assets/windows/Win32/Lib/ipaddress.py": "27a0cd02e42fbf7f153f13a132e70e88", "build/assets/windows/Win32/Lib/json/__init__.py": "81b2759a093c54d04be129dff9bef0cf", "build/assets/windows/Win32/Lib/json/decoder.py": "c866993931ca540a5e48cb20ff0ba252", - "build/assets/windows/Win32/Lib/json/encoder.py": "94b5beea9075343ca31b35dee6a3ac9e", + "build/assets/windows/Win32/Lib/json/encoder.py": "253d6a479ebe99e6c117e84b8f113389", "build/assets/windows/Win32/Lib/json/scanner.py": "d2b9b752df0f00987c4355340ab8f30a", "build/assets/windows/Win32/Lib/json/tool.py": "3208ce981b4b9fa881113037dbaa71af", - "build/assets/windows/Win32/Lib/keyword.py": "3b29c9969e1355717a7f8a5d72a3e379", - "build/assets/windows/Win32/Lib/linecache.py": "93b2e2249313a0f4392816d39243b7c4", - "build/assets/windows/Win32/Lib/locale.py": "45ce4b0d5cbbccfebac5c0e25a723b32", - "build/assets/windows/Win32/Lib/logging/__init__.py": "585e273589291879d8f77991d9c1da76", - "build/assets/windows/Win32/Lib/logging/config.py": "036b2cf4d63f9b87e17bd4a96ba3ea7b", - "build/assets/windows/Win32/Lib/logging/handlers.py": "941b204505573ac6c29d5d8b36b70ad6", + "build/assets/windows/Win32/Lib/keyword.py": "59922b148cb459ac33840ed5f254b1af", + "build/assets/windows/Win32/Lib/linecache.py": "9417acd8e4bec3c0e6c85a26ccd95c9b", + "build/assets/windows/Win32/Lib/locale.py": "1e006cb7bd594b2912bff6e1cd1ee62e", + "build/assets/windows/Win32/Lib/logging/__init__.py": "f7f2cc25f42fe5f8ec3837f077363c28", + "build/assets/windows/Win32/Lib/logging/config.py": "32fb5186a1919ca49b1fcb71ae6c013f", + "build/assets/windows/Win32/Lib/logging/handlers.py": "50e50d8ad42cb57c0e5a41d4d1a28a38", "build/assets/windows/Win32/Lib/lzma.py": "ce68dc42f64460d19c21262d1df645ed", - "build/assets/windows/Win32/Lib/mailbox.py": "5af74c50d4877fa9e1540869ebe414e5", - "build/assets/windows/Win32/Lib/mailcap.py": "54857f8d384773dff7b7d49ea4b16ce6", - "build/assets/windows/Win32/Lib/mimetypes.py": "f912197e3738249509745d173e63ab99", + "build/assets/windows/Win32/Lib/mailbox.py": "6b89792c065185ee35fcdb62ed7dd1ed", + "build/assets/windows/Win32/Lib/mailcap.py": "3f7507ae772297af0d5f8d44dcb896a1", + "build/assets/windows/Win32/Lib/mimetypes.py": "cfaa95070d43187fa8187519d6c97ae3", "build/assets/windows/Win32/Lib/modulefinder.py": "de16704ba6de49a9b7099f7fb854ada0", - "build/assets/windows/Win32/Lib/netrc.py": "d4dae660d37c9beee661bf6b0e1e52e0", + "build/assets/windows/Win32/Lib/netrc.py": "ff99a8987ce37e5c4b516b75af3858cd", "build/assets/windows/Win32/Lib/nntplib.py": "143fe3bfef9c2c26f7f28f78ac5fa9f6", - "build/assets/windows/Win32/Lib/ntpath.py": "6d8b44d152bafbfacf7db168e498d410", + "build/assets/windows/Win32/Lib/ntpath.py": "60fb608bac74801f53dbfbdeac84f6c0", "build/assets/windows/Win32/Lib/nturl2path.py": "4905ce18bd83864de1bbe90dbcb90715", - "build/assets/windows/Win32/Lib/numbers.py": "6af2c7baeb3a429a64dffe0650de1725", - "build/assets/windows/Win32/Lib/opcode.py": "d28cf14ddf60f983f0545f3d54778794", + "build/assets/windows/Win32/Lib/numbers.py": "4730b1abbd091abd140190fc6b4e5fe9", + "build/assets/windows/Win32/Lib/opcode.py": "aab69327897112562323bde75a0237d7", "build/assets/windows/Win32/Lib/operator.py": "c0902db33cf1573bf9046237a9f9190c", "build/assets/windows/Win32/Lib/optparse.py": "07e222890fcca2fce34c566769bcbb0f", - "build/assets/windows/Win32/Lib/os.py": "5b4c775d8d302b83baa64cdb517bf464", - "build/assets/windows/Win32/Lib/pathlib.py": "764bbaccbd48f831269816c01e0bb251", - "build/assets/windows/Win32/Lib/pdb.py": "2eab6b55f9b11b9a1a12715b22fbc135", - "build/assets/windows/Win32/Lib/pickle.py": "e0b914ed532382244ed52fcf6a4a9ba2", - "build/assets/windows/Win32/Lib/pickletools.py": "e0f106c5ad23a876fea4e49bfa71340e", + "build/assets/windows/Win32/Lib/os.py": "abfba49c85336b4383a59541b46668cf", + "build/assets/windows/Win32/Lib/pathlib.py": "5546ab6f0dee9017570c05e648d455ba", + "build/assets/windows/Win32/Lib/pdb.py": "3c732ba33cb73503914fdc7cd3d3f114", + "build/assets/windows/Win32/Lib/pickle.py": "858dd82a51624e56bfb1a336492d7143", + "build/assets/windows/Win32/Lib/pickletools.py": "e79d19704f2c4ab688d471089e233548", "build/assets/windows/Win32/Lib/pipes.py": "21dc911007004a2b42136a9d28bd9c05", - "build/assets/windows/Win32/Lib/pkgutil.py": "3c88c0b0bf745f3ba1d53bf0e9919876", - "build/assets/windows/Win32/Lib/platform.py": "f03bb503753159990893cf13543ce8d1", - "build/assets/windows/Win32/Lib/plistlib.py": "d9a184fa02eb811c5dd175d9d2d10fd5", - "build/assets/windows/Win32/Lib/poplib.py": "7458fc0ceed8f0ed4932cd95ed973408", - "build/assets/windows/Win32/Lib/posixpath.py": "0b3a42dd44d8652f5995f76a33ed309a", - "build/assets/windows/Win32/Lib/pprint.py": "b75350e743e4406fd81e4ba44976963f", - "build/assets/windows/Win32/Lib/profile.py": "6f10a8ad820dbf4f89adc7442c51cfb1", - "build/assets/windows/Win32/Lib/pstats.py": "14409a445f9f81359c04fe5996f48c70", - "build/assets/windows/Win32/Lib/pty.py": "f40d0a39d2518696ce51d256a1286284", + "build/assets/windows/Win32/Lib/pkgutil.py": "937d42ababa8e3421227aa4f96e492d5", + "build/assets/windows/Win32/Lib/platform.py": "478f5069014e513b60802c17a6b8742a", + "build/assets/windows/Win32/Lib/plistlib.py": "84f5e4053828760026f7eaa187850276", + "build/assets/windows/Win32/Lib/poplib.py": "1d9e430892364acb671e56fc33a7c093", + "build/assets/windows/Win32/Lib/posixpath.py": "60c2e283082885effb1a4b028422dbcf", + "build/assets/windows/Win32/Lib/pprint.py": "44e89025ecaed2492d920ba18f1b752c", + "build/assets/windows/Win32/Lib/profile.py": "86a2fffd59157a78da0a722de977f737", + "build/assets/windows/Win32/Lib/pstats.py": "9db69bb5086c65ada6b5150b9226d4ef", + "build/assets/windows/Win32/Lib/pty.py": "cce080ac8906cfb2e743dc8ebdcc4c81", "build/assets/windows/Win32/Lib/py_compile.py": "c41dcf52b14c0bd495e3fd3d874125ac", "build/assets/windows/Win32/Lib/pyclbr.py": "5e5ce2370e71f5645a7b2e82f474d333", - "build/assets/windows/Win32/Lib/pydoc.py": "d12839705c01b8ecac8a98d9913769e4", + "build/assets/windows/Win32/Lib/pydoc.py": "8db8b5ffee063407a10884883f79c5c7", "build/assets/windows/Win32/Lib/queue.py": "a9525574ac1e42527ba85d22cc766d5f", - "build/assets/windows/Win32/Lib/quopri.py": "8cd207a73ad2540c1764b52f536b29c3", - "build/assets/windows/Win32/Lib/random.py": "05f312bf0c834ff15bebe4e4c493bfd7", - "build/assets/windows/Win32/Lib/re/__init__.py": "646f4f2ad51e1bd6a908837a7111bbb1", + "build/assets/windows/Win32/Lib/quopri.py": "3910827d10e99d377e6c3b21acff151c", + "build/assets/windows/Win32/Lib/random.py": "d55950708d161683c84142a02e1cc089", + "build/assets/windows/Win32/Lib/re/__init__.py": "d53096799033a724b6b3fb618dc7599b", "build/assets/windows/Win32/Lib/re/_casefix.py": "615f1b8ef1e3b20cd87c1f8472514e92", - "build/assets/windows/Win32/Lib/re/_compiler.py": "fff1cba197cd0462300401d99297318d", - "build/assets/windows/Win32/Lib/re/_constants.py": "db046e206e5d387f6264803930e1933e", - "build/assets/windows/Win32/Lib/re/_parser.py": "666488e587cf5c4ce02e1af79450cc95", - "build/assets/windows/Win32/Lib/reprlib.py": "23c1ece029ad6232df7d6d16c05375c9", + "build/assets/windows/Win32/Lib/re/_compiler.py": "d3beceef7579180cafe8b4daddda5700", + "build/assets/windows/Win32/Lib/re/_constants.py": "d794664fee02a077c063f69560703745", + "build/assets/windows/Win32/Lib/re/_parser.py": "7ab225762af120653fb98c055b31f8cc", + "build/assets/windows/Win32/Lib/reprlib.py": "3764096fa0242e15a8ffe548e172ef04", "build/assets/windows/Win32/Lib/rlcompleter.py": "275533528e69f51b2f46a82c475593c5", - "build/assets/windows/Win32/Lib/runpy.py": "ff43dc6df44dcf7c01343d8557721453", + "build/assets/windows/Win32/Lib/runpy.py": "3a7369f192908cd5223c6255f8240b28", "build/assets/windows/Win32/Lib/sched.py": "eca87af94b57c5a51bade38ceaacb07a", - "build/assets/windows/Win32/Lib/secrets.py": "f3fa4e7ff05b7fdfcfcdceb89fefef27", - "build/assets/windows/Win32/Lib/selectors.py": "4889777aec16be4edb8e19e6357b0c5e", + "build/assets/windows/Win32/Lib/secrets.py": "37f1f3ff394f84d167dbd22bbba3e9b4", + "build/assets/windows/Win32/Lib/selectors.py": "9c991648ceabaa08a610216f49e03991", "build/assets/windows/Win32/Lib/shelve.py": "08764a152ffcdee2502cf394d12d291f", - "build/assets/windows/Win32/Lib/shlex.py": "3d3cf54b025af275ff30a701f1a16f1c", - "build/assets/windows/Win32/Lib/shutil.py": "38757417d252c02889de397684482b03", - "build/assets/windows/Win32/Lib/signal.py": "ef0645c18798f09d52cde99538a34237", - "build/assets/windows/Win32/Lib/site.py": "b3ed98590c6ae80bda9fc87e11eebb7d", - "build/assets/windows/Win32/Lib/smtpd.py": "e5c6bd04d2a6e1c4b8604526eb3c9efa", - "build/assets/windows/Win32/Lib/smtplib.py": "0fd04dac82cba42dab2a85bd4a595986", + "build/assets/windows/Win32/Lib/shlex.py": "304d9f41262e1a9f9f119a462f30a7d8", + "build/assets/windows/Win32/Lib/shutil.py": "23fb1d8cb46163cafb0a62b321ac0569", + "build/assets/windows/Win32/Lib/signal.py": "c07b76f5d3c6065bb23b53deb86e232f", + "build/assets/windows/Win32/Lib/site.py": "4f3f6676f31ecbb805c65aea0425e181", + "build/assets/windows/Win32/Lib/smtplib.py": "d25692a9d50598cc856f8e66c8795f97", "build/assets/windows/Win32/Lib/sndhdr.py": "a725038a46236de316cba99690bddcca", - "build/assets/windows/Win32/Lib/socket.py": "c0e8c6d337a23174479420dda8e940ce", - "build/assets/windows/Win32/Lib/socketserver.py": "cb73ecc7690218ef93316e3c539ed883", - "build/assets/windows/Win32/Lib/sqlite3/__init__.py": "120bce41a68cb3c6546f43267afed2e9", - "build/assets/windows/Win32/Lib/sqlite3/dbapi2.py": "33e46a36b822b9255c339dbb6deb438e", - "build/assets/windows/Win32/Lib/sqlite3/dump.py": "67f64cb7f8ac22ea0c895323badf48b8", + "build/assets/windows/Win32/Lib/socket.py": "0e0bcd7b04530ecc68965cf0cceee961", + "build/assets/windows/Win32/Lib/socketserver.py": "2e17f331c5511116c5f380104cac888e", + "build/assets/windows/Win32/Lib/sqlite3/__init__.py": "bff4a15513901ff638bb5281813ca829", + "build/assets/windows/Win32/Lib/sqlite3/__main__.py": "b0cc91e2caf9e78b9346576db88859ac", + "build/assets/windows/Win32/Lib/sqlite3/dbapi2.py": "52a7bbdf6661bcb9f8fc1fde335cca9f", + "build/assets/windows/Win32/Lib/sqlite3/dump.py": "2e7c1d8b67511861fee327cbd5359f23", "build/assets/windows/Win32/Lib/sre_compile.py": "17b4ff96efa3d5d82d5b3d416172f537", "build/assets/windows/Win32/Lib/sre_constants.py": "a7f00ca571c46f12ccf21d7b7fbf307d", "build/assets/windows/Win32/Lib/sre_parse.py": "d3a9c6d9574c4b3d239f804ab47493b8", - "build/assets/windows/Win32/Lib/ssl.py": "375436306dab626ef0d45133ad9a5ab5", + "build/assets/windows/Win32/Lib/ssl.py": "ab8b962caeb066dbec83cfd8b65b211b", "build/assets/windows/Win32/Lib/stat.py": "40e9513548e520eaf34be5ee0e416f28", - "build/assets/windows/Win32/Lib/statistics.py": "b09f5be183aac08004050aa1552cbbe3", + "build/assets/windows/Win32/Lib/statistics.py": "63e586c932f574730c9d2de53a6d893e", "build/assets/windows/Win32/Lib/string.py": "bc9644a02cc456665bac69edadd4853d", "build/assets/windows/Win32/Lib/stringprep.py": "b084fab1517de6f5c9af6f409b1cb971", "build/assets/windows/Win32/Lib/struct.py": "31b6d488e334a14a5729c744a2e1e64b", - "build/assets/windows/Win32/Lib/subprocess.py": "366453eb7989587fb872fb0eb394ac56", - "build/assets/windows/Win32/Lib/sunau.py": "eae9e8f38a7c4ec04d99f47ca1f7ac54", - "build/assets/windows/Win32/Lib/symtable.py": "ceb4ef4ee36fd614a954d374a51c2928", - "build/assets/windows/Win32/Lib/sysconfig.py": "c898f90182b5b1c84e9de8a3b35af938", - "build/assets/windows/Win32/Lib/tabnanny.py": "5fb4e717b03485a23956c066285c2306", - "build/assets/windows/Win32/Lib/tarfile.py": "2ba81839246b2a6a7197fa0a7a292215", + "build/assets/windows/Win32/Lib/subprocess.py": "04366b7eef5af6aaef2c5c79312037d1", + "build/assets/windows/Win32/Lib/sunau.py": "0907155d83871d9a9ec62f3d7f95582d", + "build/assets/windows/Win32/Lib/symtable.py": "8ecb5f9d2958f25006ca8ec419de6c88", + "build/assets/windows/Win32/Lib/sysconfig.py": "be43153e8c9a6ade260f436da7b71812", + "build/assets/windows/Win32/Lib/tabnanny.py": "9c3de31e3b79302f4c4d67a37c12a8b9", + "build/assets/windows/Win32/Lib/tarfile.py": "a68bf0719acaf36656cedafa76574ab0", "build/assets/windows/Win32/Lib/telnetlib.py": "610e6f1b39c8dd6ce7634a2817eef563", - "build/assets/windows/Win32/Lib/tempfile.py": "c9b58c18d2e3ffcd04a3c1d2daa08985", + "build/assets/windows/Win32/Lib/tempfile.py": "d32143e7a19c8d476bb59368154d5b85", "build/assets/windows/Win32/Lib/textwrap.py": "1cdb5420274f49a92bdb069f84e98312", "build/assets/windows/Win32/Lib/this.py": "41e6b63325f6b9310091aed779717158", - "build/assets/windows/Win32/Lib/threading.py": "8698491362d09e3a3a431fbc924e6d9c", - "build/assets/windows/Win32/Lib/timeit.py": "1b4b1b51716d75a3de5ee5521c3dcf30", - "build/assets/windows/Win32/Lib/token.py": "5c1b1eda5f1ee11ae0d5f613d0ed5e46", - "build/assets/windows/Win32/Lib/tokenize.py": "f4e26db2f22e70e07ecb3f39b03743ae", + "build/assets/windows/Win32/Lib/threading.py": "a786844b7029254bb21e343f085e60d6", + "build/assets/windows/Win32/Lib/timeit.py": "d07f48f2190bb5ad6a09a8346eb9abc0", + "build/assets/windows/Win32/Lib/token.py": "34edfa17fd7f77208001f07f6cdc9431", + "build/assets/windows/Win32/Lib/tokenize.py": "48813abb89aa1b6ef0858d95cf8d1427", "build/assets/windows/Win32/Lib/tomllib/__init__.py": "6517071101223227e05c0355672b665b", "build/assets/windows/Win32/Lib/tomllib/_parser.py": "91aed453f9958c2463aa74c222032617", "build/assets/windows/Win32/Lib/tomllib/_re.py": "63c8aefcea29596a7c345ac30670b277", "build/assets/windows/Win32/Lib/tomllib/_types.py": "07da9d6afb4e790fbe2a2570db595a70", - "build/assets/windows/Win32/Lib/trace.py": "fa49e5a6444584347c403c8577efcc02", - "build/assets/windows/Win32/Lib/traceback.py": "7b102c0300f4339771b47199cf56b090", + "build/assets/windows/Win32/Lib/trace.py": "6400a74e7259f1e6392c6cd0d71657d0", + "build/assets/windows/Win32/Lib/traceback.py": "4b816b81d198369e3a3d639befc146dd", "build/assets/windows/Win32/Lib/tracemalloc.py": "38b34a01481aafbe3d8f3022d19002d3", - "build/assets/windows/Win32/Lib/tty.py": "66fd3e58cfff04d68f4101b211b3cef5", - "build/assets/windows/Win32/Lib/types.py": "d6fcc10139e7859822f865ee6f2d1e89", - "build/assets/windows/Win32/Lib/typing.py": "cc1bb3df2e18e9edbd1cba0b02349375", + "build/assets/windows/Win32/Lib/tty.py": "d4a2c51899d7b0e1a01066e94ac1d8ea", + "build/assets/windows/Win32/Lib/types.py": "bc54ebd6ad50ab04d21b7d4829ba76ec", + "build/assets/windows/Win32/Lib/typing.py": "c1f8f122a078d4f74c4562e8aa18fd30", "build/assets/windows/Win32/Lib/urllib/__init__.py": "340c83beff7dcff8f5c7b87cd43cedaf", "build/assets/windows/Win32/Lib/urllib/error.py": "5c7c7f7733ce20536c8c7829339edd53", - "build/assets/windows/Win32/Lib/urllib/parse.py": "fe9e27fd3712d25adc9b83d6e1a97595", - "build/assets/windows/Win32/Lib/urllib/request.py": "2fd20c8cdbfe1ba224fb819031d5ef7e", + "build/assets/windows/Win32/Lib/urllib/parse.py": "a52658c0c4df781ff9b62fb4513331ea", + "build/assets/windows/Win32/Lib/urllib/request.py": "bbd73f724c78a7c1585739932aaf9167", "build/assets/windows/Win32/Lib/urllib/response.py": "a8ab8bab3eaeab62a53cbf28ab133073", "build/assets/windows/Win32/Lib/urllib/robotparser.py": "569197286a1526e592e972ca3bd6a987", - "build/assets/windows/Win32/Lib/uu.py": "4d22b5eca6352a2a203deba4aa9976d3", - "build/assets/windows/Win32/Lib/uuid.py": "1f1369dbd6c82fb65b994d653856bfeb", - "build/assets/windows/Win32/Lib/warnings.py": "b5596bb4939cd5d9e079b6855817d39d", - "build/assets/windows/Win32/Lib/wave.py": "af3e6bdce6593d9f3a3f35f79eea63f3", + "build/assets/windows/Win32/Lib/uu.py": "4c494d33ff1ec1b2302671cf21a178b4", + "build/assets/windows/Win32/Lib/uuid.py": "08273164771b50ddbe7093f043683dae", + "build/assets/windows/Win32/Lib/warnings.py": "f47e2a79447a607c889c8e0871b1a63e", + "build/assets/windows/Win32/Lib/wave.py": "78b56874edbff1d218050828ec9e9a52", "build/assets/windows/Win32/Lib/weakref.py": "c0c4c3ceeb4439730b2cd1ef59facedc", - "build/assets/windows/Win32/Lib/webbrowser.py": "6b74d0231893b89944aaacccabe1fed2", - "build/assets/windows/Win32/Lib/xdrlib.py": "7fd8b3ad0b5717e774e4003c77a669cb", + "build/assets/windows/Win32/Lib/webbrowser.py": "0692ad07be523483a9af5ed3f481467b", + "build/assets/windows/Win32/Lib/xdrlib.py": "3b64519d8aee87e6d921f48a2dc58d8c", "build/assets/windows/Win32/Lib/xml/__init__.py": "7fd76b516d055ad7362a4e026605b565", "build/assets/windows/Win32/Lib/xml/dom/NodeFilter.py": "e4b7a3b5ff69a8601ebbe5b64d31a992", "build/assets/windows/Win32/Lib/xml/dom/__init__.py": "6ffe926d6bd77d247bfcee6e1060350a", "build/assets/windows/Win32/Lib/xml/dom/domreg.py": "5cac15fead4e8354d494dbbd7b149c7e", - "build/assets/windows/Win32/Lib/xml/dom/expatbuilder.py": "cf225b1f3af0055c58de4d27f46ba013", + "build/assets/windows/Win32/Lib/xml/dom/expatbuilder.py": "0b1091f044eda2ad29831483ceef78a7", "build/assets/windows/Win32/Lib/xml/dom/minicompat.py": "552827dcbf7760dabb8731acb66ea60d", "build/assets/windows/Win32/Lib/xml/dom/minidom.py": "c206d1775e6a4498bc11c13e17fecbbe", "build/assets/windows/Win32/Lib/xml/dom/pulldom.py": "578a6dcb3157f7f9213b64f652fcaa77", "build/assets/windows/Win32/Lib/xml/dom/xmlbuilder.py": "1aa015b0ddd5dad09976d1c1180fae05", "build/assets/windows/Win32/Lib/xml/etree/ElementInclude.py": "292d40950e5da9877a252a2cf516b83b", "build/assets/windows/Win32/Lib/xml/etree/ElementPath.py": "edad05c442542c22c7b5a655d99a5cd2", - "build/assets/windows/Win32/Lib/xml/etree/ElementTree.py": "d0903c68c22be260ae3e9b083133d6eb", + "build/assets/windows/Win32/Lib/xml/etree/ElementTree.py": "de5f3c82186ba13c5f929bdbe85c8ba0", "build/assets/windows/Win32/Lib/xml/etree/__init__.py": "6d6a236f07d23e97193493778b48a86c", "build/assets/windows/Win32/Lib/xml/etree/cElementTree.py": "166b03aa40e7c656a51d71f46862a6e8", "build/assets/windows/Win32/Lib/xml/parsers/__init__.py": "255ef6dc4559858cfb63d4802d5f3dba", "build/assets/windows/Win32/Lib/xml/parsers/expat.py": "29897e8c876c9d18493ec2cfe820d906", - "build/assets/windows/Win32/Lib/xml/sax/__init__.py": "bb0b2401f80468767ebaa8ebc56265ac", - "build/assets/windows/Win32/Lib/xml/sax/_exceptions.py": "a98c803daed04368ba792e739b1f8a24", - "build/assets/windows/Win32/Lib/xml/sax/expatreader.py": "6611727e336381d28d3f03dc36cad242", + "build/assets/windows/Win32/Lib/xml/sax/__init__.py": "0e39899f6b16cd295e6c13b9c23951bb", + "build/assets/windows/Win32/Lib/xml/sax/_exceptions.py": "1d22c3502fbe0c21a84686ac6aa0afbb", + "build/assets/windows/Win32/Lib/xml/sax/expatreader.py": "26857b3a0705c406a40e4263793b0bd5", "build/assets/windows/Win32/Lib/xml/sax/handler.py": "47b6aa2b604b42476f04438e8bf2dad7", "build/assets/windows/Win32/Lib/xml/sax/saxutils.py": "34b4279ec596bdd7943daf657e8609b5", - "build/assets/windows/Win32/Lib/xml/sax/xmlreader.py": "efaf077c4bc44cbf4feb22b4ae280119", + "build/assets/windows/Win32/Lib/xml/sax/xmlreader.py": "b8a6b2975e4afe5899af7a87a7e3e2ff", "build/assets/windows/Win32/Lib/xmlrpc/__init__.py": "a1763d550a676bb6d5ac49f848394a75", - "build/assets/windows/Win32/Lib/xmlrpc/client.py": "aa7e61194ad8817d79189793c8abd860", - "build/assets/windows/Win32/Lib/xmlrpc/server.py": "2573db7b3a81137c3f3435cea1052043", - "build/assets/windows/Win32/Lib/zipapp.py": "cadc79c44558cb1f3447e5e0b3671b33", - "build/assets/windows/Win32/Lib/zipfile.py": "cbc388fbfba5b89a3ecf4296b251c82d", - "build/assets/windows/Win32/Lib/zipimport.py": "48ded0a9c8ef7799a27e49f74196242b", + "build/assets/windows/Win32/Lib/xmlrpc/client.py": "1530f3afac30d53d8896b9c00dfaa617", + "build/assets/windows/Win32/Lib/xmlrpc/server.py": "18b3c825c31ba9312cb2d560316eb9e2", + "build/assets/windows/Win32/Lib/zipapp.py": "d5f8a39dacd26718e73e4f38a694dfbc", + "build/assets/windows/Win32/Lib/zipfile/__init__.py": "1dde9808d4dac2778290e564e4ebb5b0", + "build/assets/windows/Win32/Lib/zipfile/__main__.py": "ca6627e603d94686720a7cfaaabb9b71", + "build/assets/windows/Win32/Lib/zipfile/_path/__init__.py": "1b09ec092f86da3802a0cd6aed8765fc", + "build/assets/windows/Win32/Lib/zipfile/_path/glob.py": "dc5771ef42e77451f61ab6786ec8685c", + "build/assets/windows/Win32/Lib/zipimport.py": "7d5f70d7bcf25f82c504a8d2863a2ba2", "build/assets/windows/Win32/Lib/zoneinfo/__init__.py": "81f35302cb580395b0763d2721cf9561", "build/assets/windows/Win32/Lib/zoneinfo/_common.py": "ff9332cf9b99cd96dbb28497c1beba61", - "build/assets/windows/Win32/Lib/zoneinfo/_tzpath.py": "08a2e9502e68a3e35c45067f7439b108", - "build/assets/windows/Win32/Lib/zoneinfo/_zoneinfo.py": "88e71c4db229ce21321b991cd7162d23", + "build/assets/windows/Win32/Lib/zoneinfo/_tzpath.py": "dae0a83742900651fc1bac890eea1eca", + "build/assets/windows/Win32/Lib/zoneinfo/_zoneinfo.py": "ac3bfb57b66f7d328f83ef66a56be5d9", "build/assets/windows/Win32/OpenAL32.dll": "8bcdadebd8bc95a591e727a04faebda8", "build/assets/windows/Win32/SDL2.dll": "3937d3151ffb6544bf9657d0e45a8d0a", "build/assets/windows/Win32/libvorbis.dll": "dcfa5c5534900b7c109adc820ae57d74", "build/assets/windows/Win32/libvorbisfile.dll": "8abd2d7131857b9cc689b2857d04d018", "build/assets/windows/Win32/msvcp140d.dll": "d172cacd2087cf34db2fb8bb3c29c337", "build/assets/windows/Win32/ogg.dll": "38a386d3a0092e7a28fce9597a9d9e5d", - "build/assets/windows/Win32/python.exe": "5518554fb7e222f3a8ed6c40ff4b7c42", - "build/assets/windows/Win32/python311.dll": "efcc801d5dbed7173eb45e7529d1c8f7", - "build/assets/windows/Win32/python311_d.dll": "7396c8aab36799ea56c50af5698f93b6", - "build/assets/windows/Win32/python_d.exe": "0a7d4c1fde8e37d79a5477f43a910bee", - "build/assets/windows/Win32/pythonw.exe": "4a28efac0cf8443fec01c1c846da1da6", - "build/assets/windows/Win32/pythonw_d.exe": "6a40cc313514e3781312f54294558bcf", + "build/assets/windows/Win32/python.exe": "2265052ae8452d0260e39bef170db9f7", + "build/assets/windows/Win32/python312.dll": "7c7584de5a2c1ae64afcddeb4444929f", + "build/assets/windows/Win32/python312_d.dll": "c5cd78c04904b784299834c3b33a9cfc", + "build/assets/windows/Win32/python_d.exe": "4c141b8b6dc315e39a8168ef9fb9433f", + "build/assets/windows/Win32/pythonw.exe": "60f972a154dd6af1b4a67a23bcd89a92", + "build/assets/windows/Win32/pythonw_d.exe": "440ba78327698a2706fe7a0eb358dfe8", "build/assets/windows/Win32/ucrtbased.dll": "2def5335207d41b21b9823f6805997f1", "build/assets/windows/Win32/vc_redist.x86.exe": "b08a55e2e77623fe657bea24f223a3ae", "build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599", - "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "bd022f1b19b2fdbe7a48b9084dd8cb7a", - "build/prefab/full/linux_arm64_gui/release/ballisticakit": "1cfe22cea5f84b7bc5f8141d16d20575", - "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "f490b97609b282918b5233ad331efc62", - "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "8b864dcae5de4e4d8dd0ccbb8e57fa62", - "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "3b21dd0f65b32a20f5e255c4b2be7727", - "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "fe7a68d99dcd214fcc4048a9fc7cba15", - "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "05a85e2cf828727b74ddcea1f4e1222c", - "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "fd52509c4df00c5a9bb755cbf108e742", - "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "5143aa1718cd2f21cb5af06ca50a9f75", - "build/prefab/full/mac_arm64_gui/release/ballisticakit": "f73e3719c67bb542fb20b133f2e149c9", - "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "1a7c52d06793e3789c7edf399e130517", - "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "2f520f7c438b6ebbdeb2c9c978821a5a", - "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "aa47af4bd4da2f41810cf9c3f3cf77f5", - "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "d3b4ab3992fb65e8ba7f2f79c662cfd4", - "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "60b02233d658f7c9f6cdcbb46a1b17c8", - "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "f73ea5e1e7e7ae9c2a396928c4aaf200", - "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "e52c0dcfabc211c79eef65d986497b03", - "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "1ebbf093c255d64bcbcf6c6d03f58251", - "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "2134c1ffd3e850089359d80d3ebe7805", - "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "567b99fd31ec7a48ab640465ecd32940", - "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "d9865523059d8cf11b2bef4b9da9a8c9", - "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "56d6440f62c271c4ce9ef520400395a3", - "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "d9865523059d8cf11b2bef4b9da9a8c9", - "build/prefab/lib/linux_arm64_server/release/libballisticaplus.a": "56d6440f62c271c4ce9ef520400395a3", - "build/prefab/lib/linux_x86_64_gui/debug/libballisticaplus.a": "390a90cf4af1c55662c61ec19f9481bb", - "build/prefab/lib/linux_x86_64_gui/release/libballisticaplus.a": "e55895a55cc40f79be9e2e8095e8adf2", - "build/prefab/lib/linux_x86_64_server/debug/libballisticaplus.a": "390a90cf4af1c55662c61ec19f9481bb", - "build/prefab/lib/linux_x86_64_server/release/libballisticaplus.a": "e55895a55cc40f79be9e2e8095e8adf2", - "build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "9846a6a3dd3685417fe834b91be8ac74", - "build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "68087f1bac1513e92cabdb59c637e759", - "build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "9846a6a3dd3685417fe834b91be8ac74", - "build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "68087f1bac1513e92cabdb59c637e759", - "build/prefab/lib/mac_x86_64_gui/debug/libballisticaplus.a": "72a7370f23c76ed8018999b78d88a545", - "build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "c2cf0dc227e41a826c913d12e117c316", - "build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "fbdc80e41c5883b4a893d2f0786e377f", - "build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "c2cf0dc227e41a826c913d12e117c316", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "01fef29ef22e9054eda0d2c40d29d5bf", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "252dfe8aa1a7f3b1f6036b766d2990e6", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "3f26bc4ef5159ce7f488603e8e8526b3", - "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "606c6f95bf97b9c45af0dc1e403bd91e", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "c7521fdf876f28e0f8aeecfbcf5f78df", - "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "fbc7f8bfd808a83027974f2cf06a05b4", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "fc2e1fd7617c26fe37bd914236635316", - "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "e110986966081e3d23192c57ffaf7381", + "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "10ca339552ccefcc1cf0458d77ddfc60", + "build/prefab/full/linux_arm64_gui/release/ballisticakit": "220a8bae9a55c6625972254dd7265029", + "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "54bde68d1f6c948a0fe1a3844b49fbc9", + "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "d6908e5517980c48204c5d7d38b624b2", + "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "0552bfb41850409763c3eb0824629c4f", + "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "3b92b9b7b6f25ec0b00ebdac6af8f7f7", + "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "bf943bb02a696a97b8eb13173bd10381", + "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "733c06666e6ac2bd49a645814820ae70", + "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "274f31c8955c9af9799edc72eef37184", + "build/prefab/full/mac_arm64_gui/release/ballisticakit": "ced3d5b6e818c2c5901e6373d40583ba", + "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "c745ec776c3fa19166fab17b91541c02", + "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "cf3751677f46d248d251b566b737c3ca", + "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "ab74e096ad474d389c4e20cc78f22e43", + "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "e54648fc2a899449baa081b55cb52588", + "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "882935d0e1e2a9a36dfb7e0a3d4a5170", + "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "342b58d91ed50562f9f8d8163f5f4441", + "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "591cf3434d9ac490d416c9dcc60f051f", + "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "4ef7a5bbfef88bf2174a0001aaf9532d", + "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "16253a3ef3ccc96250eb5a311caf14fe", + "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "90ab514825fbb1e5c2a88297b19d95d2", + "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "11668f7191dc8d4e2b03db15ff2a4241", + "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "b190199ce8b8fe122993d14fb7e8e813", + "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "11668f7191dc8d4e2b03db15ff2a4241", + "build/prefab/lib/linux_arm64_server/release/libballisticaplus.a": "b190199ce8b8fe122993d14fb7e8e813", + "build/prefab/lib/linux_x86_64_gui/debug/libballisticaplus.a": "d33507e6163f7afb54334dc6141d074b", + "build/prefab/lib/linux_x86_64_gui/release/libballisticaplus.a": "15d57b7d0c2fae7695e008650a37b7f7", + "build/prefab/lib/linux_x86_64_server/debug/libballisticaplus.a": "d33507e6163f7afb54334dc6141d074b", + "build/prefab/lib/linux_x86_64_server/release/libballisticaplus.a": "15d57b7d0c2fae7695e008650a37b7f7", + "build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "6d5af317e8e9fc6d4eabeab31623e109", + "build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "19e9dab275cd13cc3030de1b0f1f08c9", + "build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "6d5af317e8e9fc6d4eabeab31623e109", + "build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "19e9dab275cd13cc3030de1b0f1f08c9", + "build/prefab/lib/mac_x86_64_gui/debug/libballisticaplus.a": "3769b38b590a8a5623749771900e60fe", + "build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "4fab22abc481a97e884cce9d67b35c6b", + "build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "7c536b056d78148a302c975bf9238118", + "build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "4fab22abc481a97e884cce9d67b35c6b", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "be00cf9781b1c86439452c4ba0999c8d", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "5803cfddbaf5e09f513aded1a8fc71f5", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "b682b559cef053626ee8ee9da79ad266", + "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "8d467c3b01c4b2fd4977afd0aabb2bd0", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "748545de892e5ed6556ba0b05f9a0e9d", + "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "2671eae8ad8f42eb272ffed0fc8e93df", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "23712747790fbd36e33b9e59364accb7", + "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "1832b257d7cd01ca68b7b99cbb62bfa6", "src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c", "src/assets/ba_data/python/babase/_mgen/enums.py": "b611c090513a21e2fe90e56582724e9d", "src/ballistica/base/mgen/pyembed/binding_base.inc": "72bfed2cce8ff19741989dec28302f3f", diff --git a/.gitignore b/.gitignore index 273c7b58..665272c6 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ local.properties .gdb_history .dmypy.json .cache +.venv .mypy_cache .pytest_cache .mypy.ini @@ -30,6 +31,8 @@ local.properties PUBSYNC_IN_PROGRESS _fulltest_buildfile_* ballistica_files/ +tools/pcommand +tools/cloudshell **/.#* # Environment files diff --git a/CHANGELOG.md b/CHANGELOG.md index 2bcf5e77..a0910474 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ -### 1.7.34 (build 21800, api 8, 2024-04-10) -- `_bascenev1.protocol_version()` now properly throw an exception if called +### 1.7.34 (build 21801, api 8, 2024-04-21) +- Bumped Python version from 3.11 to 3.12 for all builds and project tools. One + of the things this means is that we can use `typing.override` instead of the + `typing_extensions` version so the annoying workaround of installing + `typing_extensions` first thing when setting up the repo introduced a few + versions back is finally no longer needed. +- The project now maintains its own Python virtual environment in `.venv` where + it automatically installs whatever Python packages it needs instead of asking + the user to do so in their own environment. This should greatly simplify + working with the project and keep tool versions more consistent for people. + There will likely be some bugs related to this needing to be shaken out, so + please holler if you run into any. Namely, most all Makefile targets will now + need to depend on the `prereqs` target which ensures the virtual env is set + up. A target that does not do so may error if run on a freshly cloned/cleaned + repo, so holler if you run into such a thing. +- There is now a `config/requirements.txt` file which controls which pip + packages are made available in the project's internal virtual environment. + Note that this is only for tooling; the actual engine bundles a different + minimal set of pip packages. +- Since `config/requirements.txt` now exists and pip stuff is handled + automatically, stripped out the old manual pip requirement management stuff. + This includes the `list_pip_reqs` and `get_pip_reqs` pcommands and the + requirements list in `batools.build`. +- Some executable scripts such as `tools/pcommand` and `tools/bacloud` are now + generated dynamically so that they always use the shiny new internal Python + virtual-environment. This generation should happen automagically when you + build `make` targets, but please holler if you run into a situation where it + does not and you get errors. +- `_bascenev1.protocol_version()` now properly throws an exception if called while scene-v1 is not active. ### 1.7.33 (build 21795, api 8, 2024-03-24) diff --git a/Makefile b/Makefile index 75f3f9a9..2c4284fc 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ ################################################################################ # List targets in this Makefile and basic descriptions for them. -help: +help: prereqs @$(PCOMMAND) makefile_target_list Makefile # Set env-var BA_ENABLE_COMPILE_COMMANDS_DB=1 to enable creating/updating a @@ -49,8 +49,8 @@ endif # Prereq targets that should be safe to run anytime; even if project-files # are out of date. PREREQS_SAFE = .cache/checkenv $(PCOMMANDBATCHBIN) .dir-locals.el .mypy.ini \ - .pyrightconfig.json .pylintrc .style.yapf .clang-format \ - ballisticakit-cmake/.clang-format .editorconfig + .pyrightconfig.json .pylintrc .clang-format \ + ballisticakit-cmake/.clang-format .editorconfig tools/cloudshell # Prereq targets that may break if the project needs updating should go here. # An example is compile-command-databases; these might try to run cmake and @@ -59,8 +59,8 @@ PREREQS_SAFE = .cache/checkenv $(PCOMMANDBATCHBIN) .dir-locals.el .mypy.ini \ # which would leave us stuck in a broken state. PREREQS_POST_UPDATE_ONLY = $(PREREQ_COMPILE_COMMANDS_DB) -# Target that should be built before running most any other build. -# This installs tool config files, runs environment checks, etc. +# Target that should be built before building almost any other target. This +# installs tool config files, sets up the Python virtual environment, etc. prereqs: $(PREREQS_SAFE) $(PREREQS_POST_UPDATE_ONLY) # Set of prereqs safe to run if the project state is dirty. @@ -169,21 +169,32 @@ dummymodules: prereqs meta @$(PCOMMAND) lazybuild dummymodules_src $(LAZYBUILDDIR)/$@ \ rm -rf build/dummymodules \&\& $(PCOMMAND) gen_dummy_modules -dummymodules-clean: +dummymodules-clean: prereqs rm -f $(LAZYBUILDDIR)/dummymodules rm -rf build/dummymodules +# Build the project's Python virtual environment. This should happen +# automatically as a dependency of the prereqs target. +venv: .venv/efro_venv_complete + +# Update pip requirements to latest versions. +venv-upgrade: prereqs + $(PCOMMAND) pur -r config/requirements.txt + +venv-clean: + rm -rf .venv + # Generate all docs. # # IMPORTANT: Docs generation targets may themselves run builds, so they should # be run alone serially and never in parallel alongside other builds. -docs: +docs: prereqs $(MAKE) docs-pdoc -docs-pdoc: +docs-pdoc: prereqs @$(PCOMMAND) gen_docs_pdoc -docs-sphinx: +docs-sphinx: prereqs $(MAKE) dummymodules @$(PCOMMAND) gen_docs_sphinx @@ -199,7 +210,7 @@ pcommandbatch_speed_test: prereqs assets-cmake-scripts assets-windows assets-windows-Win32 \ assets-windows-x64 assets-mac assets-ios assets-android assets-clean \ resources resources-clean meta meta-clean clean clean-list \ - dummymodules docs docs-pdoc pcommandbatch_speed_test + dummymodules venv venv-clean docs docs-pdoc pcommandbatch_speed_test ################################################################################ @@ -224,11 +235,11 @@ prefab-gui-release: prefab-gui-release-build $($(shell $(WSLU) $(PCOMMAND) prefab_run_var gui-release)) # Assemble a debug build for this platform. -prefab-gui-debug-build: +prefab-gui-debug-build: prereqs $(WSLU) $(PCOMMAND) make_prefab gui-debug # Assemble a release build for this platform. -prefab-gui-release-build: +prefab-gui-release-build: prereqs $(WSLU) $(PCOMMAND) make_prefab gui-release # Assemble & run a server debug build for this platform. @@ -240,11 +251,11 @@ prefab-server-release: prefab-server-release-build $($(shell $(WSLU) $(PCOMMAND) prefab_run_var server-release)) # Assemble a server debug build for this platform. -prefab-server-debug-build: +prefab-server-debug-build: prereqs $(WSLU) $(PCOMMAND) make_prefab server-debug # Assemble a server release build for this platform. -prefab-server-release-build: +prefab-server-release-build: prereqs $(WSLU) $(PCOMMAND) make_prefab server-release # Clean all prefab builds. @@ -640,51 +651,51 @@ build/prefab/lib/windows/Release_%/BallisticaKitHeadlessPlus.pdb: .efrocachemap SPINOFF_TEST_TARGET ?= core # Run a given spinoff test. -spinoff-test: +spinoff-test: prereqs $(PCOMMAND) spinoff_test $(SPINOFF_TEST_TARGET) $(SPINOFF_TEST_EXTRA_ARGS) # Build and check core feature set alone. -spinoff-test-core: +spinoff-test-core: prereqs $(PCOMMAND) spinoff_test core $(SPINOFF_TEST_EXTRA_ARGS) # Build and check base feature set alone. -spinoff-test-base: +spinoff-test-base: prereqs $(PCOMMAND) spinoff_test base $(SPINOFF_TEST_EXTRA_ARGS) # Build and check plus feature set alone. -spinoff-test-plus: +spinoff-test-plus: prereqs $(PCOMMAND) spinoff_test plus $(SPINOFF_TEST_EXTRA_ARGS) # Build and check classic feature set alone. -spinoff-test-classic: +spinoff-test-classic: prereqs $(PCOMMAND) spinoff_test classic $(SPINOFF_TEST_EXTRA_ARGS) # Build and check template_fs feature set alone. -spinoff-test-template_fs: +spinoff-test-template_fs: prereqs $(PCOMMAND) spinoff_test template_fs $(SPINOFF_TEST_EXTRA_ARGS) # Build and check ui_v1 feature set alone. -spinoff-test-ui_v1: +spinoff-test-ui_v1: prereqs $(PCOMMAND) spinoff_test ui_v1 $(SPINOFF_TEST_EXTRA_ARGS) # Build and check ui_v1_lib feature set alone. -spinoff-test-ui_v1_lib: +spinoff-test-ui_v1_lib: prereqs $(PCOMMAND) spinoff_test ui_v1_lib $(SPINOFF_TEST_EXTRA_ARGS) # Build and check scene_v1 feature set alone. -spinoff-test-scene_v1: +spinoff-test-scene_v1: prereqs $(PCOMMAND) spinoff_test scene_v1 $(SPINOFF_TEST_EXTRA_ARGS) # Build and check scene_v1_lib feature set alone. -spinoff-test-scene_v1_lib: +spinoff-test-scene_v1_lib: prereqs $(PCOMMAND) spinoff_test scene_v1_lib $(SPINOFF_TEST_EXTRA_ARGS) # Blow away all spinoff-test builds. -spinoff-test-clean: +spinoff-test-clean: prereqs rm -rf build/spinofftest # Grab the current parent project and sync it into ourself. -spinoff-update: +spinoff-update: prereqs @$(PCOMMAND) spinoff_check_submodule_parent $(MAKE) update @$(PCOMMANDBATCH) echo BLU Pulling current parent project... @@ -695,7 +706,7 @@ spinoff-update: @$(PCOMMANDBATCH) echo GRN Spinoff update successful! # Upgrade to latest parent project and sync it into ourself. -spinoff-upgrade: +spinoff-upgrade: prereqs @$(PCOMMAND) spinoff_check_submodule_parent $(MAKE) update @$(PCOMMANDBATCH) echo BLU Pulling latest parent project... @@ -1200,17 +1211,28 @@ CHECK_CLEAN_SAFETY = $(PCOMMAND) check_clean_safety TOOL_CFG_INST = $(PCOMMAND) tool_config_install # Anything that affects tool-config generation. -TOOL_CFG_SRC = tools/efrotools/toolconfig.py config/projectconfig.json +TOOL_CFG_SRC = tools/efrotools/toolconfig.py config/projectconfig.json \ + .venv/efro_venv_complete tools/pcommand # Anything that should trigger an environment-check when changed. -ENV_SRC = $(PCOMMAND) tools/batools/build.py +ENV_SRC = tools/batools/build.py .venv/efro_venv_complete tools/pcommand + +# Generate a pcommand script hard-coded to use our virtual environment. +# This is a prereq dependency so should not itself depend on prereqs. +tools/pcommand: tools/efrotools/genwrapper.py tools/efrotools/pyver.py + @echo Generating tools/pcommand... + @PYTHONPATH=tools python3 -m efrotools.genwrapper pcommand tools/pcommand \ + batools.pcommandmain + +# Generate a cloudshell script hard-coded to use our virtual environment. +# This is a prereq dependency so should not itself depend on prereqs. +tools/cloudshell: tools/efrotools/genwrapper.py tools/efrotools/pyver.py + @echo Generating tools/cloudshell... + @PYTHONPATH=tools python3 -m efrotools.genwrapper cloudshell tools/cloudshell .clang-format: config/toolconfigsrc/clang-format $(TOOL_CFG_SRC) @$(TOOL_CFG_INST) $< $@ -.style.yapf: config/toolconfigsrc/style.yapf $(TOOL_CFG_SRC) - @$(TOOL_CFG_INST) $< $@ - .pylintrc: config/toolconfigsrc/pylintrc $(TOOL_CFG_SRC) @$(TOOL_CFG_INST) $< $@ @@ -1232,6 +1254,20 @@ ENV_SRC = $(PCOMMAND) tools/batools/build.py # Set this to 1 to skip environment checks. SKIP_ENV_CHECKS ?= 0 +# Rebuild our virtual environment whenever reqs or Python version changes. +# This is a prereq dependency so should not itself depend on prereqs. Note +# that we rely on pcommand but can't use it in here until the end when the +# venv is up. +.venv/efro_venv_complete: tools/pcommand config/requirements.txt \ +tools/efrotools/pyver.py + @echo Creating Project\'s Python Virtual Environment... + @rm -rf .venv + python3.12 -m venv .venv + .venv/bin/pip install --upgrade pip + .venv/bin/pip install -r config/requirements.txt + touch .venv/efro_venv_complete # Done last to avoid partly-built venvs. + @$(PCOMMAND) echo GRN Python Virtual Environment Created. + .cache/checkenv: $(ENV_SRC) @if [ $(SKIP_ENV_CHECKS) -ne 1 ]; then \ $(PCOMMAND) checkenv && mkdir -p .cache && touch .cache/checkenv; \ @@ -1286,7 +1322,7 @@ ballisticakit-cmake/.clang-format: .clang-format && mv compile_commands.json .cache/compile_commands_db @$(PCOMMANDBATCH) echo BLU Created compile commands db at $@ -_windows-wsl-build: +_windows-wsl-build: prereqs @$(PCOMMAND) wsl_build_check_win_drive $(WIN_MSBUILD_EXE_B) \ $(shell $(PCOMMAND) wsl_path_to_win --escape \ @@ -1297,7 +1333,7 @@ _windows-wsl-build: $(VISUAL_STUDIO_VERSION) @$(PCOMMAND) echo BLU BLD Built build/windows/BallisticaKit$(WINPRJ).exe. -_windows-wsl-rebuild: +_windows-wsl-rebuild: prereqs @$(PCOMMAND) wsl_build_check_win_drive $(WIN_MSBUILD_EXE_B) \ $(shell $(PCOMMAND) wsl_path_to_win --escape \ diff --git a/ballisticakit-cmake/CMakeLists.txt b/ballisticakit-cmake/CMakeLists.txt index ab6575ab..64df74e8 100644 --- a/ballisticakit-cmake/CMakeLists.txt +++ b/ballisticakit-cmake/CMakeLists.txt @@ -27,12 +27,12 @@ if (APPLE) # to load a 3.X library from within it which doesn't exist. So we need # to be a bit more explicit telling it where to look. Note: this was last # tested with 3.7; should revisit sometime to make sure still applies. - execute_process(COMMAND "python3.11-config" "--prefix" + execute_process(COMMAND "python3.12-config" "--prefix" OUTPUT_VARIABLE Python_ROOT_DIR OUTPUT_STRIP_TRAILING_WHITESPACE) endif () -find_package (Python 3.11 REQUIRED EXACT COMPONENTS Development) +find_package (Python 3.12 REQUIRED EXACT COMPONENTS Development) if (HEADLESS) diff --git a/config/README.md b/config/README.md index 589e8246..eda20710 100644 --- a/config/README.md +++ b/config/README.md @@ -5,7 +5,7 @@ This directory contains overall configuration files for the project. Noteworthy files: - [projectconfig.json](projectconfig.json): Top level settings for the project. Various tools look for values here. -- [spinoffconfig.json](spinoffconfig.json): Configures how this project can be +- [spinoffconfig.py](spinoffconfig.py): Configures how this project can be spun off into other projects and/or what it inherits from a parent project. - **localconfig.json**: Optional file influencing behavior only at this location. This file should not be stored in git/etc. diff --git a/config/requirements.txt b/config/requirements.txt new file mode 100644 index 00000000..7edcaf0d --- /dev/null +++ b/config/requirements.txt @@ -0,0 +1,25 @@ +typing_extensions==4.11.0 +filelock==3.13.4 +python-daemon==3.0.1 +python-lsp-server==1.11.0 +python-lsp-black==2.0.0 +mypy==1.9.0 +pylint==3.1.0 +cpplint==1.6.1 +pytest==8.1.1 +pytz==2024.1 +ansiwrap==0.8.4 +requests==2.31.0 +pdoc==14.4.0 +PyYAML==6.0.1 +types-filelock==3.2.7 +types-requests==2.31.0.20240406 +types-pytz==2024.1.0.20240417 +types-PyYAML==6.0.12.20240311 +types-certifi==2021.10.8.3 +pbxproj==4.1.0 +Sphinx==7.3.7 +furo==2024.1.29 +pylsp-mypy==0.6.8 +pur==7.3.1 + diff --git a/config/spinoffconfig.py b/config/spinoffconfig.py index f4da7124..87d57444 100644 --- a/config/spinoffconfig.py +++ b/config/spinoffconfig.py @@ -151,7 +151,6 @@ ctx.project_file_suffixes = { ctx.filter_dirs = { 'ballisticakit-cmake', 'ballisticakit-xcode/BallisticaKit.xcodeproj', - 'ballisticakit-ios.xcodeproj', 'config', 'src/assets/pdoc', } diff --git a/config/toolconfigsrc/pycheckers b/config/toolconfigsrc/pycheckers deleted file mode 100644 index 556740c8..00000000 --- a/config/toolconfigsrc/pycheckers +++ /dev/null @@ -1,5 +0,0 @@ -[DEFAULT] -checkers= pylint, mypy3 -mypy_config_file=.mypy.ini -mypy_use_daemon=true -mypy_daemon_files_command=tools/pcommand scriptfiles -lines diff --git a/config/toolconfigsrc/style.yapf b/config/toolconfigsrc/style.yapf deleted file mode 100644 index f1bfe843..00000000 --- a/config/toolconfigsrc/style.yapf +++ /dev/null @@ -1,8 +0,0 @@ -[style] -based_on_style = pep8 -allow_multiline_lambdas = true -allow_multiline_dictionary_keys = true -coalesce_brackets = true -join_multiple_lines = false -indent_dictionary_value = true -blank_line_before_nested_class_or_def = true diff --git a/src/assets/.asset_manifest_private.json b/src/assets/.asset_manifest_private.json index 92a5edc2..db37a0e3 100644 --- a/src/assets/.asset_manifest_private.json +++ b/src/assets/.asset_manifest_private.json @@ -944,35 +944,35 @@ "ba_data/meshes/zoeTorso.bob", "ba_data/meshes/zoeUpperArm.bob", "ba_data/meshes/zoeUpperLeg.bob", - "ba_data/python-site-packages/__pycache__/typing_extensions.cpython-311.opt-1.pyc", + "ba_data/python-site-packages/__pycache__/typing_extensions.cpython-312.opt-1.pyc", "ba_data/python-site-packages/_yaml/__init__.py", - "ba_data/python-site-packages/_yaml/__pycache__/__init__.cpython-311.opt-1.pyc", + "ba_data/python-site-packages/_yaml/__pycache__/__init__.cpython-312.opt-1.pyc", "ba_data/python-site-packages/certifi/__init__.py", "ba_data/python-site-packages/certifi/__main__.py", - "ba_data/python-site-packages/certifi/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/certifi/__pycache__/__main__.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/certifi/__pycache__/core.cpython-311.opt-1.pyc", + "ba_data/python-site-packages/certifi/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/certifi/__pycache__/__main__.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/certifi/__pycache__/core.cpython-312.opt-1.pyc", "ba_data/python-site-packages/certifi/cacert.pem", "ba_data/python-site-packages/certifi/core.py", "ba_data/python-site-packages/typing_extensions.py", "ba_data/python-site-packages/yaml/__init__.py", - "ba_data/python-site-packages/yaml/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/composer.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/constructor.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/cyaml.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/dumper.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/emitter.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/error.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/events.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/loader.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/nodes.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/parser.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/reader.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/representer.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/resolver.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/scanner.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/serializer.cpython-311.opt-1.pyc", - "ba_data/python-site-packages/yaml/__pycache__/tokens.cpython-311.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/composer.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/constructor.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/cyaml.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/dumper.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/emitter.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/error.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/events.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/loader.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/nodes.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/parser.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/reader.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/representer.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/resolver.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/scanner.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/serializer.cpython-312.opt-1.pyc", + "ba_data/python-site-packages/yaml/__pycache__/tokens.cpython-312.opt-1.pyc", "ba_data/python-site-packages/yaml/composer.py", "ba_data/python-site-packages/yaml/constructor.py", "ba_data/python-site-packages/yaml/cyaml.py", @@ -2603,199 +2603,184 @@ "ba_data/textures/zoeIcon_preview.png", "pylib-android/__future__.py", "pylib-android/__hello__.py", - "pylib-android/__pycache__/__future__.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/__hello__.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_aix_support.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_bootsubprocess.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_collections_abc.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_compat_pickle.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_compression.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_markupbase.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_osx_support.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_py_abc.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_pydecimal.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_pyio.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_sitebuiltins.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_strptime.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_sysconfigdata__linux_aarch64-linux-android.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_sysconfigdata__linux_arm-linux-androideabi.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_sysconfigdata__linux_i686-linux-android.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_sysconfigdata__linux_x86_64-linux-android.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_sysconfigdata_d_linux_aarch64-linux-android.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_sysconfigdata_d_linux_arm-linux-androideabi.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_sysconfigdata_d_linux_i686-linux-android.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_sysconfigdata_d_linux_x86_64-linux-android.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_threading_local.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/_weakrefset.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/abc.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/aifc.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/antigravity.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/argparse.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/ast.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/asynchat.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/asyncore.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/base64.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/bdb.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/bisect.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/bz2.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/cProfile.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/calendar.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/cgi.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/cgitb.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/chunk.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/cmd.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/code.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/codecs.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/codeop.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/colorsys.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/compileall.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/configparser.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/contextlib.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/contextvars.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/copy.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/copyreg.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/crypt.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/csv.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/dataclasses.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/datetime.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/decimal.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/difflib.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/dis.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/doctest.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/enum.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/filecmp.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/fileinput.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/fnmatch.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/fractions.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/ftplib.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/functools.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/genericpath.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/getopt.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/getpass.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/gettext.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/glob.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/graphlib.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/gzip.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/hashlib.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/heapq.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/hmac.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/imghdr.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/imp.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/inspect.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/io.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/ipaddress.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/keyword.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/linecache.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/locale.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/lzma.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/mailbox.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/mailcap.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/mimetypes.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/modulefinder.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/netrc.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/nntplib.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/ntpath.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/nturl2path.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/numbers.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/opcode.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/operator.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/optparse.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/os.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/pathlib.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/pdb.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/pickle.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/pickletools.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/pipes.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/pkgutil.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/platform.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/plistlib.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/poplib.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/posixpath.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/pprint.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/profile.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/pstats.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/pty.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/py_compile.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/pyclbr.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/pydoc.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/queue.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/quopri.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/random.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/reprlib.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/rlcompleter.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/runpy.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/sched.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/secrets.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/selectors.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/shelve.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/shlex.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/shutil.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/signal.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/site.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/smtpd.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/smtplib.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/sndhdr.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/socket.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/socketserver.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/sre_compile.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/sre_constants.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/sre_parse.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/ssl.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/stat.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/statistics.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/string.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/stringprep.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/struct.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/subprocess.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/sunau.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/symtable.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/sysconfig.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/tabnanny.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/tarfile.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/telnetlib.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/tempfile.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/textwrap.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/this.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/threading.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/timeit.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/token.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/tokenize.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/trace.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/traceback.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/tracemalloc.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/tty.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/types.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/typing.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/uu.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/uuid.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/warnings.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/wave.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/weakref.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/webbrowser.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/xdrlib.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/zipapp.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/zipfile.cpython-311.opt-1.pyc", - "pylib-android/__pycache__/zipimport.cpython-311.opt-1.pyc", + "pylib-android/__pycache__/__future__.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/__hello__.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_aix_support.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_collections_abc.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_compat_pickle.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_compression.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_markupbase.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_osx_support.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_py_abc.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_pydatetime.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_pydecimal.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_pyio.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_pylong.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_sitebuiltins.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_strptime.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_sysconfigdata__linux_.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_sysconfigdata_d_linux_.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_threading_local.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/_weakrefset.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/abc.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/aifc.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/antigravity.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/argparse.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/ast.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/base64.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/bdb.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/bisect.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/bz2.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/cProfile.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/calendar.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/cgi.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/cgitb.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/chunk.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/cmd.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/code.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/codecs.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/codeop.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/colorsys.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/compileall.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/configparser.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/contextlib.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/contextvars.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/copy.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/copyreg.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/crypt.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/csv.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/dataclasses.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/datetime.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/decimal.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/difflib.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/dis.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/doctest.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/enum.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/filecmp.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/fileinput.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/fnmatch.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/fractions.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/ftplib.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/functools.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/genericpath.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/getopt.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/getpass.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/gettext.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/glob.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/graphlib.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/gzip.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/hashlib.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/heapq.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/hmac.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/imghdr.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/inspect.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/io.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/ipaddress.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/keyword.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/linecache.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/locale.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/lzma.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/mailbox.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/mailcap.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/mimetypes.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/modulefinder.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/netrc.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/nntplib.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/ntpath.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/nturl2path.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/numbers.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/opcode.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/operator.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/optparse.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/os.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/pathlib.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/pdb.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/pickle.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/pickletools.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/pipes.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/pkgutil.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/platform.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/plistlib.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/poplib.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/posixpath.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/pprint.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/profile.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/pstats.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/pty.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/py_compile.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/pyclbr.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/pydoc.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/queue.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/quopri.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/random.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/reprlib.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/rlcompleter.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/runpy.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/sched.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/secrets.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/selectors.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/shelve.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/shlex.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/shutil.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/signal.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/site.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/smtplib.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/sndhdr.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/socket.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/socketserver.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/sre_compile.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/sre_constants.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/sre_parse.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/ssl.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/stat.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/statistics.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/string.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/stringprep.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/struct.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/subprocess.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/sunau.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/symtable.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/sysconfig.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/tabnanny.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/tarfile.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/telnetlib.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/tempfile.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/textwrap.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/this.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/threading.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/timeit.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/token.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/tokenize.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/trace.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/traceback.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/tracemalloc.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/tty.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/types.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/typing.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/uu.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/uuid.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/warnings.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/wave.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/weakref.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/webbrowser.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/xdrlib.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/zipapp.cpython-312.opt-1.pyc", + "pylib-android/__pycache__/zipimport.cpython-312.opt-1.pyc", "pylib-android/_aix_support.py", - "pylib-android/_bootsubprocess.py", "pylib-android/_collections_abc.py", "pylib-android/_compat_pickle.py", "pylib-android/_compression.py", "pylib-android/_markupbase.py", "pylib-android/_osx_support.py", "pylib-android/_py_abc.py", + "pylib-android/_pydatetime.py", "pylib-android/_pydecimal.py", "pylib-android/_pyio.py", + "pylib-android/_pylong.py", "pylib-android/_sitebuiltins.py", "pylib-android/_strptime.py", - "pylib-android/_sysconfigdata__linux_aarch64-linux-android.py", - "pylib-android/_sysconfigdata__linux_arm-linux-androideabi.py", - "pylib-android/_sysconfigdata__linux_i686-linux-android.py", - "pylib-android/_sysconfigdata__linux_x86_64-linux-android.py", - "pylib-android/_sysconfigdata_d_linux_aarch64-linux-android.py", - "pylib-android/_sysconfigdata_d_linux_arm-linux-androideabi.py", - "pylib-android/_sysconfigdata_d_linux_i686-linux-android.py", - "pylib-android/_sysconfigdata_d_linux_x86_64-linux-android.py", + "pylib-android/_sysconfigdata__linux_.py", + "pylib-android/_sysconfigdata_d_linux_.py", "pylib-android/_threading_local.py", "pylib-android/_weakrefset.py", "pylib-android/abc.py", @@ -2803,42 +2788,41 @@ "pylib-android/antigravity.py", "pylib-android/argparse.py", "pylib-android/ast.py", - "pylib-android/asynchat.py", "pylib-android/asyncio/__init__.py", "pylib-android/asyncio/__main__.py", - "pylib-android/asyncio/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/__main__.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/base_events.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/base_futures.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/base_subprocess.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/base_tasks.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/constants.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/coroutines.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/events.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/exceptions.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/format_helpers.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/futures.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/locks.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/log.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/mixins.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/proactor_events.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/protocols.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/queues.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/runners.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/selector_events.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/sslproto.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/staggered.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/streams.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/subprocess.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/taskgroups.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/tasks.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/threads.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/timeouts.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/transports.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/trsock.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/unix_events.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/windows_events.cpython-311.opt-1.pyc", - "pylib-android/asyncio/__pycache__/windows_utils.cpython-311.opt-1.pyc", + "pylib-android/asyncio/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/__main__.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/base_events.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/base_futures.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/base_subprocess.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/base_tasks.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/constants.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/coroutines.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/events.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/exceptions.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/format_helpers.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/futures.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/locks.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/log.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/mixins.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/proactor_events.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/protocols.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/queues.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/runners.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/selector_events.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/sslproto.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/staggered.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/streams.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/subprocess.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/taskgroups.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/tasks.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/threads.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/timeouts.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/transports.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/trsock.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/unix_events.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/windows_events.cpython-312.opt-1.pyc", + "pylib-android/asyncio/__pycache__/windows_utils.cpython-312.opt-1.pyc", "pylib-android/asyncio/base_events.py", "pylib-android/asyncio/base_futures.py", "pylib-android/asyncio/base_subprocess.py", @@ -2870,7 +2854,6 @@ "pylib-android/asyncio/unix_events.py", "pylib-android/asyncio/windows_events.py", "pylib-android/asyncio/windows_utils.py", - "pylib-android/asyncore.py", "pylib-android/base64.py", "pylib-android/bdb.py", "pylib-android/bisect.py", @@ -2885,18 +2868,18 @@ "pylib-android/codecs.py", "pylib-android/codeop.py", "pylib-android/collections/__init__.py", - "pylib-android/collections/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/collections/__pycache__/abc.cpython-311.opt-1.pyc", + "pylib-android/collections/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/collections/__pycache__/abc.cpython-312.opt-1.pyc", "pylib-android/collections/abc.py", "pylib-android/colorsys.py", "pylib-android/compileall.py", "pylib-android/concurrent/__init__.py", - "pylib-android/concurrent/__pycache__/__init__.cpython-311.opt-1.pyc", + "pylib-android/concurrent/__pycache__/__init__.cpython-312.opt-1.pyc", "pylib-android/concurrent/futures/__init__.py", - "pylib-android/concurrent/futures/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/concurrent/futures/__pycache__/_base.cpython-311.opt-1.pyc", - "pylib-android/concurrent/futures/__pycache__/process.cpython-311.opt-1.pyc", - "pylib-android/concurrent/futures/__pycache__/thread.cpython-311.opt-1.pyc", + "pylib-android/concurrent/futures/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/concurrent/futures/__pycache__/_base.cpython-312.opt-1.pyc", + "pylib-android/concurrent/futures/__pycache__/process.cpython-312.opt-1.pyc", + "pylib-android/concurrent/futures/__pycache__/thread.cpython-312.opt-1.pyc", "pylib-android/concurrent/futures/_base.py", "pylib-android/concurrent/futures/process.py", "pylib-android/concurrent/futures/thread.py", @@ -2908,29 +2891,29 @@ "pylib-android/crypt.py", "pylib-android/csv.py", "pylib-android/ctypes/__init__.py", - "pylib-android/ctypes/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/ctypes/__pycache__/_aix.cpython-311.opt-1.pyc", - "pylib-android/ctypes/__pycache__/_endian.cpython-311.opt-1.pyc", - "pylib-android/ctypes/__pycache__/util.cpython-311.opt-1.pyc", - "pylib-android/ctypes/__pycache__/wintypes.cpython-311.opt-1.pyc", + "pylib-android/ctypes/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/ctypes/__pycache__/_aix.cpython-312.opt-1.pyc", + "pylib-android/ctypes/__pycache__/_endian.cpython-312.opt-1.pyc", + "pylib-android/ctypes/__pycache__/util.cpython-312.opt-1.pyc", + "pylib-android/ctypes/__pycache__/wintypes.cpython-312.opt-1.pyc", "pylib-android/ctypes/_aix.py", "pylib-android/ctypes/_endian.py", "pylib-android/ctypes/macholib/__init__.py", - "pylib-android/ctypes/macholib/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/ctypes/macholib/__pycache__/dyld.cpython-311.opt-1.pyc", - "pylib-android/ctypes/macholib/__pycache__/dylib.cpython-311.opt-1.pyc", - "pylib-android/ctypes/macholib/__pycache__/framework.cpython-311.opt-1.pyc", + "pylib-android/ctypes/macholib/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/ctypes/macholib/__pycache__/dyld.cpython-312.opt-1.pyc", + "pylib-android/ctypes/macholib/__pycache__/dylib.cpython-312.opt-1.pyc", + "pylib-android/ctypes/macholib/__pycache__/framework.cpython-312.opt-1.pyc", "pylib-android/ctypes/macholib/dyld.py", "pylib-android/ctypes/macholib/dylib.py", "pylib-android/ctypes/macholib/framework.py", "pylib-android/ctypes/util.py", "pylib-android/ctypes/wintypes.py", "pylib-android/curses/__init__.py", - "pylib-android/curses/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/curses/__pycache__/ascii.cpython-311.opt-1.pyc", - "pylib-android/curses/__pycache__/has_key.cpython-311.opt-1.pyc", - "pylib-android/curses/__pycache__/panel.cpython-311.opt-1.pyc", - "pylib-android/curses/__pycache__/textpad.cpython-311.opt-1.pyc", + "pylib-android/curses/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/curses/__pycache__/ascii.cpython-312.opt-1.pyc", + "pylib-android/curses/__pycache__/has_key.cpython-312.opt-1.pyc", + "pylib-android/curses/__pycache__/panel.cpython-312.opt-1.pyc", + "pylib-android/curses/__pycache__/textpad.cpython-312.opt-1.pyc", "pylib-android/curses/ascii.py", "pylib-android/curses/has_key.py", "pylib-android/curses/panel.py", @@ -2942,26 +2925,26 @@ "pylib-android/dis.py", "pylib-android/doctest.py", "pylib-android/email/__init__.py", - "pylib-android/email/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/_encoded_words.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/_header_value_parser.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/_parseaddr.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/_policybase.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/base64mime.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/charset.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/contentmanager.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/encoders.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/errors.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/feedparser.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/generator.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/header.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/headerregistry.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/iterators.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/message.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/parser.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/policy.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/quoprimime.cpython-311.opt-1.pyc", - "pylib-android/email/__pycache__/utils.cpython-311.opt-1.pyc", + "pylib-android/email/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/_encoded_words.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/_header_value_parser.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/_parseaddr.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/_policybase.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/base64mime.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/charset.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/contentmanager.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/encoders.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/errors.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/feedparser.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/generator.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/header.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/headerregistry.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/iterators.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/message.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/parser.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/policy.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/quoprimime.cpython-312.opt-1.pyc", + "pylib-android/email/__pycache__/utils.cpython-312.opt-1.pyc", "pylib-android/email/_encoded_words.py", "pylib-android/email/_header_value_parser.py", "pylib-android/email/_parseaddr.py", @@ -2978,15 +2961,15 @@ "pylib-android/email/iterators.py", "pylib-android/email/message.py", "pylib-android/email/mime/__init__.py", - "pylib-android/email/mime/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/email/mime/__pycache__/application.cpython-311.opt-1.pyc", - "pylib-android/email/mime/__pycache__/audio.cpython-311.opt-1.pyc", - "pylib-android/email/mime/__pycache__/base.cpython-311.opt-1.pyc", - "pylib-android/email/mime/__pycache__/image.cpython-311.opt-1.pyc", - "pylib-android/email/mime/__pycache__/message.cpython-311.opt-1.pyc", - "pylib-android/email/mime/__pycache__/multipart.cpython-311.opt-1.pyc", - "pylib-android/email/mime/__pycache__/nonmultipart.cpython-311.opt-1.pyc", - "pylib-android/email/mime/__pycache__/text.cpython-311.opt-1.pyc", + "pylib-android/email/mime/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/email/mime/__pycache__/application.cpython-312.opt-1.pyc", + "pylib-android/email/mime/__pycache__/audio.cpython-312.opt-1.pyc", + "pylib-android/email/mime/__pycache__/base.cpython-312.opt-1.pyc", + "pylib-android/email/mime/__pycache__/image.cpython-312.opt-1.pyc", + "pylib-android/email/mime/__pycache__/message.cpython-312.opt-1.pyc", + "pylib-android/email/mime/__pycache__/multipart.cpython-312.opt-1.pyc", + "pylib-android/email/mime/__pycache__/nonmultipart.cpython-312.opt-1.pyc", + "pylib-android/email/mime/__pycache__/text.cpython-312.opt-1.pyc", "pylib-android/email/mime/application.py", "pylib-android/email/mime/audio.py", "pylib-android/email/mime/base.py", @@ -3000,128 +2983,128 @@ "pylib-android/email/quoprimime.py", "pylib-android/email/utils.py", "pylib-android/encodings/__init__.py", - "pylib-android/encodings/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/aliases.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/ascii.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/base64_codec.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/big5.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/big5hkscs.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/bz2_codec.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/charmap.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp037.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp1006.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp1026.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp1125.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp1140.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp1250.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp1251.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp1252.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp1253.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp1254.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp1255.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp1256.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp1257.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp1258.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp273.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp424.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp437.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp500.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp720.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp737.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp775.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp850.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp852.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp855.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp856.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp857.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp858.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp860.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp861.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp862.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp863.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp864.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp865.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp866.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp869.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp874.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp875.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp932.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp949.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/cp950.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/euc_jis_2004.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/euc_jisx0213.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/euc_jp.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/euc_kr.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/gb18030.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/gb2312.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/gbk.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/hex_codec.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/hp_roman8.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/hz.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/idna.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso2022_jp.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso2022_jp_1.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso2022_jp_2.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso2022_jp_2004.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso2022_jp_3.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso2022_jp_ext.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso2022_kr.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_1.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_10.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_11.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_13.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_14.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_15.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_16.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_2.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_3.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_4.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_5.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_6.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_7.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_8.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/iso8859_9.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/johab.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/koi8_r.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/koi8_t.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/koi8_u.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/kz1048.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/latin_1.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/mac_arabic.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/mac_croatian.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/mac_cyrillic.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/mac_farsi.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/mac_greek.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/mac_iceland.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/mac_latin2.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/mac_roman.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/mac_romanian.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/mac_turkish.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/mbcs.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/oem.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/palmos.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/ptcp154.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/punycode.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/quopri_codec.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/raw_unicode_escape.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/rot_13.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/shift_jis.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/shift_jis_2004.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/shift_jisx0213.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/tis_620.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/undefined.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/unicode_escape.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/utf_16.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/utf_16_be.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/utf_16_le.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/utf_32.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/utf_32_be.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/utf_32_le.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/utf_7.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/utf_8.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/utf_8_sig.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/uu_codec.cpython-311.opt-1.pyc", - "pylib-android/encodings/__pycache__/zlib_codec.cpython-311.opt-1.pyc", + "pylib-android/encodings/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/aliases.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/ascii.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/base64_codec.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/big5.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/big5hkscs.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/bz2_codec.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/charmap.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp037.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp1006.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp1026.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp1125.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp1140.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp1250.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp1251.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp1252.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp1253.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp1254.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp1255.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp1256.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp1257.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp1258.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp273.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp424.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp437.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp500.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp720.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp737.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp775.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp850.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp852.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp855.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp856.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp857.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp858.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp860.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp861.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp862.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp863.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp864.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp865.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp866.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp869.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp874.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp875.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp932.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp949.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/cp950.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/euc_jis_2004.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/euc_jisx0213.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/euc_jp.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/euc_kr.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/gb18030.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/gb2312.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/gbk.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/hex_codec.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/hp_roman8.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/hz.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/idna.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso2022_jp.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso2022_jp_1.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso2022_jp_2.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso2022_jp_2004.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso2022_jp_3.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso2022_jp_ext.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso2022_kr.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_1.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_10.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_11.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_13.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_14.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_15.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_16.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_2.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_3.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_4.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_5.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_6.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_7.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_8.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/iso8859_9.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/johab.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/koi8_r.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/koi8_t.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/koi8_u.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/kz1048.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/latin_1.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/mac_arabic.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/mac_croatian.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/mac_cyrillic.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/mac_farsi.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/mac_greek.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/mac_iceland.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/mac_latin2.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/mac_roman.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/mac_romanian.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/mac_turkish.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/mbcs.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/oem.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/palmos.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/ptcp154.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/punycode.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/quopri_codec.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/raw_unicode_escape.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/rot_13.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/shift_jis.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/shift_jis_2004.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/shift_jisx0213.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/tis_620.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/undefined.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/unicode_escape.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/utf_16.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/utf_16_be.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/utf_16_le.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/utf_32.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/utf_32_be.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/utf_32_le.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/utf_7.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/utf_8.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/utf_8_sig.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/uu_codec.cpython-312.opt-1.pyc", + "pylib-android/encodings/__pycache__/zlib_codec.cpython-312.opt-1.pyc", "pylib-android/encodings/aliases.py", "pylib-android/encodings/ascii.py", "pylib-android/encodings/base64_codec.py", @@ -3261,46 +3244,45 @@ "pylib-android/heapq.py", "pylib-android/hmac.py", "pylib-android/html/__init__.py", - "pylib-android/html/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/html/__pycache__/entities.cpython-311.opt-1.pyc", - "pylib-android/html/__pycache__/parser.cpython-311.opt-1.pyc", + "pylib-android/html/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/html/__pycache__/entities.cpython-312.opt-1.pyc", + "pylib-android/html/__pycache__/parser.cpython-312.opt-1.pyc", "pylib-android/html/entities.py", "pylib-android/html/parser.py", "pylib-android/http/__init__.py", - "pylib-android/http/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/http/__pycache__/client.cpython-311.opt-1.pyc", - "pylib-android/http/__pycache__/cookiejar.cpython-311.opt-1.pyc", - "pylib-android/http/__pycache__/cookies.cpython-311.opt-1.pyc", - "pylib-android/http/__pycache__/server.cpython-311.opt-1.pyc", + "pylib-android/http/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/http/__pycache__/client.cpython-312.opt-1.pyc", + "pylib-android/http/__pycache__/cookiejar.cpython-312.opt-1.pyc", + "pylib-android/http/__pycache__/cookies.cpython-312.opt-1.pyc", + "pylib-android/http/__pycache__/server.cpython-312.opt-1.pyc", "pylib-android/http/client.py", "pylib-android/http/cookiejar.py", "pylib-android/http/cookies.py", "pylib-android/http/server.py", "pylib-android/imghdr.py", - "pylib-android/imp.py", "pylib-android/importlib/__init__.py", - "pylib-android/importlib/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/importlib/__pycache__/_abc.cpython-311.opt-1.pyc", - "pylib-android/importlib/__pycache__/_bootstrap.cpython-311.opt-1.pyc", - "pylib-android/importlib/__pycache__/_bootstrap_external.cpython-311.opt-1.pyc", - "pylib-android/importlib/__pycache__/abc.cpython-311.opt-1.pyc", - "pylib-android/importlib/__pycache__/machinery.cpython-311.opt-1.pyc", - "pylib-android/importlib/__pycache__/readers.cpython-311.opt-1.pyc", - "pylib-android/importlib/__pycache__/simple.cpython-311.opt-1.pyc", - "pylib-android/importlib/__pycache__/util.cpython-311.opt-1.pyc", + "pylib-android/importlib/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/importlib/__pycache__/_abc.cpython-312.opt-1.pyc", + "pylib-android/importlib/__pycache__/_bootstrap.cpython-312.opt-1.pyc", + "pylib-android/importlib/__pycache__/_bootstrap_external.cpython-312.opt-1.pyc", + "pylib-android/importlib/__pycache__/abc.cpython-312.opt-1.pyc", + "pylib-android/importlib/__pycache__/machinery.cpython-312.opt-1.pyc", + "pylib-android/importlib/__pycache__/readers.cpython-312.opt-1.pyc", + "pylib-android/importlib/__pycache__/simple.cpython-312.opt-1.pyc", + "pylib-android/importlib/__pycache__/util.cpython-312.opt-1.pyc", "pylib-android/importlib/_abc.py", "pylib-android/importlib/_bootstrap.py", "pylib-android/importlib/_bootstrap_external.py", "pylib-android/importlib/abc.py", "pylib-android/importlib/machinery.py", "pylib-android/importlib/metadata/__init__.py", - "pylib-android/importlib/metadata/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/importlib/metadata/__pycache__/_adapters.cpython-311.opt-1.pyc", - "pylib-android/importlib/metadata/__pycache__/_collections.cpython-311.opt-1.pyc", - "pylib-android/importlib/metadata/__pycache__/_functools.cpython-311.opt-1.pyc", - "pylib-android/importlib/metadata/__pycache__/_itertools.cpython-311.opt-1.pyc", - "pylib-android/importlib/metadata/__pycache__/_meta.cpython-311.opt-1.pyc", - "pylib-android/importlib/metadata/__pycache__/_text.cpython-311.opt-1.pyc", + "pylib-android/importlib/metadata/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/importlib/metadata/__pycache__/_adapters.cpython-312.opt-1.pyc", + "pylib-android/importlib/metadata/__pycache__/_collections.cpython-312.opt-1.pyc", + "pylib-android/importlib/metadata/__pycache__/_functools.cpython-312.opt-1.pyc", + "pylib-android/importlib/metadata/__pycache__/_itertools.cpython-312.opt-1.pyc", + "pylib-android/importlib/metadata/__pycache__/_meta.cpython-312.opt-1.pyc", + "pylib-android/importlib/metadata/__pycache__/_text.cpython-312.opt-1.pyc", "pylib-android/importlib/metadata/_adapters.py", "pylib-android/importlib/metadata/_collections.py", "pylib-android/importlib/metadata/_functools.py", @@ -3309,14 +3291,14 @@ "pylib-android/importlib/metadata/_text.py", "pylib-android/importlib/readers.py", "pylib-android/importlib/resources/__init__.py", - "pylib-android/importlib/resources/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/importlib/resources/__pycache__/_adapters.cpython-311.opt-1.pyc", - "pylib-android/importlib/resources/__pycache__/_common.cpython-311.opt-1.pyc", - "pylib-android/importlib/resources/__pycache__/_itertools.cpython-311.opt-1.pyc", - "pylib-android/importlib/resources/__pycache__/_legacy.cpython-311.opt-1.pyc", - "pylib-android/importlib/resources/__pycache__/abc.cpython-311.opt-1.pyc", - "pylib-android/importlib/resources/__pycache__/readers.cpython-311.opt-1.pyc", - "pylib-android/importlib/resources/__pycache__/simple.cpython-311.opt-1.pyc", + "pylib-android/importlib/resources/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/importlib/resources/__pycache__/_adapters.cpython-312.opt-1.pyc", + "pylib-android/importlib/resources/__pycache__/_common.cpython-312.opt-1.pyc", + "pylib-android/importlib/resources/__pycache__/_itertools.cpython-312.opt-1.pyc", + "pylib-android/importlib/resources/__pycache__/_legacy.cpython-312.opt-1.pyc", + "pylib-android/importlib/resources/__pycache__/abc.cpython-312.opt-1.pyc", + "pylib-android/importlib/resources/__pycache__/readers.cpython-312.opt-1.pyc", + "pylib-android/importlib/resources/__pycache__/simple.cpython-312.opt-1.pyc", "pylib-android/importlib/resources/_adapters.py", "pylib-android/importlib/resources/_common.py", "pylib-android/importlib/resources/_itertools.py", @@ -3330,11 +3312,11 @@ "pylib-android/io.py", "pylib-android/ipaddress.py", "pylib-android/json/__init__.py", - "pylib-android/json/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/json/__pycache__/decoder.cpython-311.opt-1.pyc", - "pylib-android/json/__pycache__/encoder.cpython-311.opt-1.pyc", - "pylib-android/json/__pycache__/scanner.cpython-311.opt-1.pyc", - "pylib-android/json/__pycache__/tool.cpython-311.opt-1.pyc", + "pylib-android/json/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/json/__pycache__/decoder.cpython-312.opt-1.pyc", + "pylib-android/json/__pycache__/encoder.cpython-312.opt-1.pyc", + "pylib-android/json/__pycache__/scanner.cpython-312.opt-1.pyc", + "pylib-android/json/__pycache__/tool.cpython-312.opt-1.pyc", "pylib-android/json/decoder.py", "pylib-android/json/encoder.py", "pylib-android/json/scanner.py", @@ -3343,9 +3325,9 @@ "pylib-android/linecache.py", "pylib-android/locale.py", "pylib-android/logging/__init__.py", - "pylib-android/logging/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/logging/__pycache__/config.cpython-311.opt-1.pyc", - "pylib-android/logging/__pycache__/handlers.cpython-311.opt-1.pyc", + "pylib-android/logging/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/logging/__pycache__/config.cpython-312.opt-1.pyc", + "pylib-android/logging/__pycache__/handlers.cpython-312.opt-1.pyc", "pylib-android/logging/config.py", "pylib-android/logging/handlers.py", "pylib-android/lzma.py", @@ -3383,11 +3365,11 @@ "pylib-android/quopri.py", "pylib-android/random.py", "pylib-android/re/__init__.py", - "pylib-android/re/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/re/__pycache__/_casefix.cpython-311.opt-1.pyc", - "pylib-android/re/__pycache__/_compiler.cpython-311.opt-1.pyc", - "pylib-android/re/__pycache__/_constants.cpython-311.opt-1.pyc", - "pylib-android/re/__pycache__/_parser.cpython-311.opt-1.pyc", + "pylib-android/re/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/re/__pycache__/_casefix.cpython-312.opt-1.pyc", + "pylib-android/re/__pycache__/_compiler.cpython-312.opt-1.pyc", + "pylib-android/re/__pycache__/_constants.cpython-312.opt-1.pyc", + "pylib-android/re/__pycache__/_parser.cpython-312.opt-1.pyc", "pylib-android/re/_casefix.py", "pylib-android/re/_compiler.py", "pylib-android/re/_constants.py", @@ -3403,15 +3385,16 @@ "pylib-android/shutil.py", "pylib-android/signal.py", "pylib-android/site.py", - "pylib-android/smtpd.py", "pylib-android/smtplib.py", "pylib-android/sndhdr.py", "pylib-android/socket.py", "pylib-android/socketserver.py", "pylib-android/sqlite3/__init__.py", - "pylib-android/sqlite3/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/sqlite3/__pycache__/dbapi2.cpython-311.opt-1.pyc", - "pylib-android/sqlite3/__pycache__/dump.cpython-311.opt-1.pyc", + "pylib-android/sqlite3/__main__.py", + "pylib-android/sqlite3/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/sqlite3/__pycache__/__main__.cpython-312.opt-1.pyc", + "pylib-android/sqlite3/__pycache__/dbapi2.cpython-312.opt-1.pyc", + "pylib-android/sqlite3/__pycache__/dump.cpython-312.opt-1.pyc", "pylib-android/sqlite3/dbapi2.py", "pylib-android/sqlite3/dump.py", "pylib-android/sre_compile.py", @@ -3438,10 +3421,10 @@ "pylib-android/token.py", "pylib-android/tokenize.py", "pylib-android/tomllib/__init__.py", - "pylib-android/tomllib/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/tomllib/__pycache__/_parser.cpython-311.opt-1.pyc", - "pylib-android/tomllib/__pycache__/_re.cpython-311.opt-1.pyc", - "pylib-android/tomllib/__pycache__/_types.cpython-311.opt-1.pyc", + "pylib-android/tomllib/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/tomllib/__pycache__/_parser.cpython-312.opt-1.pyc", + "pylib-android/tomllib/__pycache__/_re.cpython-312.opt-1.pyc", + "pylib-android/tomllib/__pycache__/_types.cpython-312.opt-1.pyc", "pylib-android/tomllib/_parser.py", "pylib-android/tomllib/_re.py", "pylib-android/tomllib/_types.py", @@ -3452,12 +3435,12 @@ "pylib-android/types.py", "pylib-android/typing.py", "pylib-android/urllib/__init__.py", - "pylib-android/urllib/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/urllib/__pycache__/error.cpython-311.opt-1.pyc", - "pylib-android/urllib/__pycache__/parse.cpython-311.opt-1.pyc", - "pylib-android/urllib/__pycache__/request.cpython-311.opt-1.pyc", - "pylib-android/urllib/__pycache__/response.cpython-311.opt-1.pyc", - "pylib-android/urllib/__pycache__/robotparser.cpython-311.opt-1.pyc", + "pylib-android/urllib/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/urllib/__pycache__/error.cpython-312.opt-1.pyc", + "pylib-android/urllib/__pycache__/parse.cpython-312.opt-1.pyc", + "pylib-android/urllib/__pycache__/request.cpython-312.opt-1.pyc", + "pylib-android/urllib/__pycache__/response.cpython-312.opt-1.pyc", + "pylib-android/urllib/__pycache__/robotparser.cpython-312.opt-1.pyc", "pylib-android/urllib/error.py", "pylib-android/urllib/parse.py", "pylib-android/urllib/request.py", @@ -3471,17 +3454,17 @@ "pylib-android/webbrowser.py", "pylib-android/xdrlib.py", "pylib-android/xml/__init__.py", - "pylib-android/xml/__pycache__/__init__.cpython-311.opt-1.pyc", + "pylib-android/xml/__pycache__/__init__.cpython-312.opt-1.pyc", "pylib-android/xml/dom/NodeFilter.py", "pylib-android/xml/dom/__init__.py", - "pylib-android/xml/dom/__pycache__/NodeFilter.cpython-311.opt-1.pyc", - "pylib-android/xml/dom/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/xml/dom/__pycache__/domreg.cpython-311.opt-1.pyc", - "pylib-android/xml/dom/__pycache__/expatbuilder.cpython-311.opt-1.pyc", - "pylib-android/xml/dom/__pycache__/minicompat.cpython-311.opt-1.pyc", - "pylib-android/xml/dom/__pycache__/minidom.cpython-311.opt-1.pyc", - "pylib-android/xml/dom/__pycache__/pulldom.cpython-311.opt-1.pyc", - "pylib-android/xml/dom/__pycache__/xmlbuilder.cpython-311.opt-1.pyc", + "pylib-android/xml/dom/__pycache__/NodeFilter.cpython-312.opt-1.pyc", + "pylib-android/xml/dom/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/xml/dom/__pycache__/domreg.cpython-312.opt-1.pyc", + "pylib-android/xml/dom/__pycache__/expatbuilder.cpython-312.opt-1.pyc", + "pylib-android/xml/dom/__pycache__/minicompat.cpython-312.opt-1.pyc", + "pylib-android/xml/dom/__pycache__/minidom.cpython-312.opt-1.pyc", + "pylib-android/xml/dom/__pycache__/pulldom.cpython-312.opt-1.pyc", + "pylib-android/xml/dom/__pycache__/xmlbuilder.cpython-312.opt-1.pyc", "pylib-android/xml/dom/domreg.py", "pylib-android/xml/dom/expatbuilder.py", "pylib-android/xml/dom/minicompat.py", @@ -3492,237 +3475,227 @@ "pylib-android/xml/etree/ElementPath.py", "pylib-android/xml/etree/ElementTree.py", "pylib-android/xml/etree/__init__.py", - "pylib-android/xml/etree/__pycache__/ElementInclude.cpython-311.opt-1.pyc", - "pylib-android/xml/etree/__pycache__/ElementPath.cpython-311.opt-1.pyc", - "pylib-android/xml/etree/__pycache__/ElementTree.cpython-311.opt-1.pyc", - "pylib-android/xml/etree/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/xml/etree/__pycache__/cElementTree.cpython-311.opt-1.pyc", + "pylib-android/xml/etree/__pycache__/ElementInclude.cpython-312.opt-1.pyc", + "pylib-android/xml/etree/__pycache__/ElementPath.cpython-312.opt-1.pyc", + "pylib-android/xml/etree/__pycache__/ElementTree.cpython-312.opt-1.pyc", + "pylib-android/xml/etree/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/xml/etree/__pycache__/cElementTree.cpython-312.opt-1.pyc", "pylib-android/xml/etree/cElementTree.py", "pylib-android/xml/parsers/__init__.py", - "pylib-android/xml/parsers/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/xml/parsers/__pycache__/expat.cpython-311.opt-1.pyc", + "pylib-android/xml/parsers/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/xml/parsers/__pycache__/expat.cpython-312.opt-1.pyc", "pylib-android/xml/parsers/expat.py", "pylib-android/xml/sax/__init__.py", - "pylib-android/xml/sax/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/xml/sax/__pycache__/_exceptions.cpython-311.opt-1.pyc", - "pylib-android/xml/sax/__pycache__/expatreader.cpython-311.opt-1.pyc", - "pylib-android/xml/sax/__pycache__/handler.cpython-311.opt-1.pyc", - "pylib-android/xml/sax/__pycache__/saxutils.cpython-311.opt-1.pyc", - "pylib-android/xml/sax/__pycache__/xmlreader.cpython-311.opt-1.pyc", + "pylib-android/xml/sax/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/xml/sax/__pycache__/_exceptions.cpython-312.opt-1.pyc", + "pylib-android/xml/sax/__pycache__/expatreader.cpython-312.opt-1.pyc", + "pylib-android/xml/sax/__pycache__/handler.cpython-312.opt-1.pyc", + "pylib-android/xml/sax/__pycache__/saxutils.cpython-312.opt-1.pyc", + "pylib-android/xml/sax/__pycache__/xmlreader.cpython-312.opt-1.pyc", "pylib-android/xml/sax/_exceptions.py", "pylib-android/xml/sax/expatreader.py", "pylib-android/xml/sax/handler.py", "pylib-android/xml/sax/saxutils.py", "pylib-android/xml/sax/xmlreader.py", "pylib-android/xmlrpc/__init__.py", - "pylib-android/xmlrpc/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/xmlrpc/__pycache__/client.cpython-311.opt-1.pyc", - "pylib-android/xmlrpc/__pycache__/server.cpython-311.opt-1.pyc", + "pylib-android/xmlrpc/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/xmlrpc/__pycache__/client.cpython-312.opt-1.pyc", + "pylib-android/xmlrpc/__pycache__/server.cpython-312.opt-1.pyc", "pylib-android/xmlrpc/client.py", "pylib-android/xmlrpc/server.py", "pylib-android/zipapp.py", - "pylib-android/zipfile.py", + "pylib-android/zipfile/__init__.py", + "pylib-android/zipfile/__main__.py", + "pylib-android/zipfile/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/zipfile/__pycache__/__main__.cpython-312.opt-1.pyc", + "pylib-android/zipfile/_path/__init__.py", + "pylib-android/zipfile/_path/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/zipfile/_path/__pycache__/glob.cpython-312.opt-1.pyc", + "pylib-android/zipfile/_path/glob.py", "pylib-android/zipimport.py", "pylib-android/zoneinfo/__init__.py", - "pylib-android/zoneinfo/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-android/zoneinfo/__pycache__/_common.cpython-311.opt-1.pyc", - "pylib-android/zoneinfo/__pycache__/_tzpath.cpython-311.opt-1.pyc", - "pylib-android/zoneinfo/__pycache__/_zoneinfo.cpython-311.opt-1.pyc", + "pylib-android/zoneinfo/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-android/zoneinfo/__pycache__/_common.cpython-312.opt-1.pyc", + "pylib-android/zoneinfo/__pycache__/_tzpath.cpython-312.opt-1.pyc", + "pylib-android/zoneinfo/__pycache__/_zoneinfo.cpython-312.opt-1.pyc", "pylib-android/zoneinfo/_common.py", "pylib-android/zoneinfo/_tzpath.py", "pylib-android/zoneinfo/_zoneinfo.py", "pylib-apple/__future__.py", "pylib-apple/__hello__.py", - "pylib-apple/__pycache__/__future__.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/__hello__.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_aix_support.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_bootsubprocess.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_collections_abc.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_compat_pickle.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_compression.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_ios_support.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_markupbase.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_osx_support.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_py_abc.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_pydecimal.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_pyio.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sitebuiltins.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_strptime.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata__darwin_darwin.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata__ios_iphoneos.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata__ios_iphoneos_arm64.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata__ios_iphonesimulator.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata__ios_iphonesimulator_arm64.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata__ios_iphonesimulator_x86_64.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata__tvos_appletvos.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata__tvos_appletvos_arm64.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata__tvos_appletvsimulator.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata__tvos_appletvsimulator_arm64.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata__tvos_appletvsimulator_x86_64.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata_d_darwin_darwin.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata_d_ios_iphoneos.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata_d_ios_iphoneos_arm64.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata_d_ios_iphonesimulator.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata_d_ios_iphonesimulator_arm64.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata_d_ios_iphonesimulator_x86_64.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvos.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvos_arm64.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvsimulator.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvsimulator_arm64.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvsimulator_x86_64.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_threading_local.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/_weakrefset.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/abc.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/aifc.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/antigravity.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/argparse.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/ast.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/asynchat.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/asyncore.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/base64.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/bdb.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/bisect.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/bz2.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/cProfile.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/calendar.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/cgi.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/cgitb.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/chunk.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/cmd.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/code.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/codecs.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/codeop.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/colorsys.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/compileall.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/configparser.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/contextlib.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/contextvars.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/copy.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/copyreg.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/crypt.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/csv.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/dataclasses.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/datetime.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/decimal.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/difflib.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/dis.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/doctest.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/enum.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/filecmp.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/fileinput.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/fnmatch.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/fractions.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/ftplib.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/functools.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/genericpath.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/getopt.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/getpass.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/gettext.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/glob.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/graphlib.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/gzip.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/hashlib.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/heapq.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/hmac.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/imghdr.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/imp.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/inspect.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/io.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/ipaddress.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/keyword.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/linecache.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/locale.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/lzma.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/mailbox.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/mailcap.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/mimetypes.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/modulefinder.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/netrc.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/nntplib.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/ntpath.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/nturl2path.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/numbers.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/opcode.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/operator.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/optparse.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/os.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/pathlib.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/pdb.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/pickle.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/pickletools.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/pipes.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/pkgutil.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/platform.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/plistlib.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/poplib.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/posixpath.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/pprint.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/profile.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/pstats.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/pty.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/py_compile.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/pyclbr.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/pydoc.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/queue.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/quopri.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/random.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/reprlib.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/rlcompleter.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/runpy.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/sched.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/secrets.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/selectors.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/shelve.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/shlex.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/shutil.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/signal.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/site.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/smtpd.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/smtplib.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/sndhdr.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/socket.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/socketserver.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/sre_compile.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/sre_constants.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/sre_parse.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/ssl.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/stat.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/statistics.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/string.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/stringprep.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/struct.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/subprocess.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/sunau.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/symtable.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/sysconfig.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/tabnanny.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/tarfile.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/telnetlib.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/tempfile.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/textwrap.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/this.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/threading.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/timeit.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/token.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/tokenize.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/trace.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/traceback.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/tracemalloc.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/tty.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/types.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/typing.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/uu.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/uuid.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/warnings.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/wave.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/weakref.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/webbrowser.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/xdrlib.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/zipapp.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/zipfile.cpython-311.opt-1.pyc", - "pylib-apple/__pycache__/zipimport.cpython-311.opt-1.pyc", + "pylib-apple/__pycache__/__future__.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/__hello__.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_aix_support.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_collections_abc.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_compat_pickle.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_compression.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_ios_support.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_markupbase.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_osx_support.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_py_abc.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_pydatetime.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_pydecimal.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_pyio.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_pylong.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_sitebuiltins.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_strptime.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_sysconfigdata__darwin_darwin.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_sysconfigdata__ios_iphoneos-arm64.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_sysconfigdata__ios_iphonesimulator-arm64.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_sysconfigdata__tvos_appletvos-arm64.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_sysconfigdata__tvos_appletvsimulator-arm64.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_sysconfigdata_d_darwin_darwin.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_sysconfigdata_d_ios_iphoneos-arm64.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_sysconfigdata_d_ios_iphonesimulator-arm64.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvos-arm64.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvsimulator-arm64.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_threading_local.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/_weakrefset.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/abc.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/aifc.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/antigravity.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/argparse.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/ast.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/base64.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/bdb.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/bisect.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/bz2.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/cProfile.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/calendar.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/cgi.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/cgitb.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/chunk.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/cmd.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/code.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/codecs.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/codeop.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/colorsys.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/compileall.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/configparser.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/contextlib.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/contextvars.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/copy.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/copyreg.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/crypt.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/csv.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/dataclasses.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/datetime.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/decimal.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/difflib.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/dis.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/doctest.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/enum.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/filecmp.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/fileinput.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/fnmatch.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/fractions.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/ftplib.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/functools.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/genericpath.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/getopt.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/getpass.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/gettext.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/glob.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/graphlib.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/gzip.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/hashlib.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/heapq.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/hmac.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/imghdr.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/inspect.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/io.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/ipaddress.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/keyword.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/linecache.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/locale.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/lzma.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/mailbox.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/mailcap.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/mimetypes.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/modulefinder.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/netrc.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/nntplib.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/ntpath.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/nturl2path.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/numbers.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/opcode.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/operator.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/optparse.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/os.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/pathlib.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/pdb.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/pickle.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/pickletools.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/pipes.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/pkgutil.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/platform.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/plistlib.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/poplib.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/posixpath.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/pprint.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/profile.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/pstats.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/pty.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/py_compile.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/pyclbr.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/pydoc.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/queue.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/quopri.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/random.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/reprlib.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/rlcompleter.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/runpy.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/sched.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/secrets.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/selectors.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/shelve.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/shlex.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/shutil.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/signal.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/site.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/smtplib.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/sndhdr.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/socket.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/socketserver.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/sre_compile.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/sre_constants.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/sre_parse.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/ssl.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/stat.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/statistics.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/string.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/stringprep.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/struct.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/subprocess.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/sunau.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/symtable.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/sysconfig.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/tabnanny.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/tarfile.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/telnetlib.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/tempfile.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/textwrap.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/this.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/threading.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/timeit.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/token.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/tokenize.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/trace.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/traceback.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/tracemalloc.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/tty.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/types.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/typing.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/uu.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/uuid.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/warnings.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/wave.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/weakref.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/webbrowser.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/xdrlib.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/zipapp.cpython-312.opt-1.pyc", + "pylib-apple/__pycache__/zipimport.cpython-312.opt-1.pyc", "pylib-apple/_aix_support.py", - "pylib-apple/_bootsubprocess.py", "pylib-apple/_collections_abc.py", "pylib-apple/_compat_pickle.py", "pylib-apple/_compression.py", @@ -3730,32 +3703,22 @@ "pylib-apple/_markupbase.py", "pylib-apple/_osx_support.py", "pylib-apple/_py_abc.py", + "pylib-apple/_pydatetime.py", "pylib-apple/_pydecimal.py", "pylib-apple/_pyio.py", + "pylib-apple/_pylong.py", "pylib-apple/_sitebuiltins.py", "pylib-apple/_strptime.py", "pylib-apple/_sysconfigdata__darwin_darwin.py", - "pylib-apple/_sysconfigdata__ios_iphoneos.py", - "pylib-apple/_sysconfigdata__ios_iphoneos_arm64.py", - "pylib-apple/_sysconfigdata__ios_iphonesimulator.py", - "pylib-apple/_sysconfigdata__ios_iphonesimulator_arm64.py", - "pylib-apple/_sysconfigdata__ios_iphonesimulator_x86_64.py", - "pylib-apple/_sysconfigdata__tvos_appletvos.py", - "pylib-apple/_sysconfigdata__tvos_appletvos_arm64.py", - "pylib-apple/_sysconfigdata__tvos_appletvsimulator.py", - "pylib-apple/_sysconfigdata__tvos_appletvsimulator_arm64.py", - "pylib-apple/_sysconfigdata__tvos_appletvsimulator_x86_64.py", + "pylib-apple/_sysconfigdata__ios_iphoneos-arm64.py", + "pylib-apple/_sysconfigdata__ios_iphonesimulator-arm64.py", + "pylib-apple/_sysconfigdata__tvos_appletvos-arm64.py", + "pylib-apple/_sysconfigdata__tvos_appletvsimulator-arm64.py", "pylib-apple/_sysconfigdata_d_darwin_darwin.py", - "pylib-apple/_sysconfigdata_d_ios_iphoneos.py", - "pylib-apple/_sysconfigdata_d_ios_iphoneos_arm64.py", - "pylib-apple/_sysconfigdata_d_ios_iphonesimulator.py", - "pylib-apple/_sysconfigdata_d_ios_iphonesimulator_arm64.py", - "pylib-apple/_sysconfigdata_d_ios_iphonesimulator_x86_64.py", - "pylib-apple/_sysconfigdata_d_tvos_appletvos.py", - "pylib-apple/_sysconfigdata_d_tvos_appletvos_arm64.py", - "pylib-apple/_sysconfigdata_d_tvos_appletvsimulator.py", - "pylib-apple/_sysconfigdata_d_tvos_appletvsimulator_arm64.py", - "pylib-apple/_sysconfigdata_d_tvos_appletvsimulator_x86_64.py", + "pylib-apple/_sysconfigdata_d_ios_iphoneos-arm64.py", + "pylib-apple/_sysconfigdata_d_ios_iphonesimulator-arm64.py", + "pylib-apple/_sysconfigdata_d_tvos_appletvos-arm64.py", + "pylib-apple/_sysconfigdata_d_tvos_appletvsimulator-arm64.py", "pylib-apple/_threading_local.py", "pylib-apple/_weakrefset.py", "pylib-apple/abc.py", @@ -3763,42 +3726,41 @@ "pylib-apple/antigravity.py", "pylib-apple/argparse.py", "pylib-apple/ast.py", - "pylib-apple/asynchat.py", "pylib-apple/asyncio/__init__.py", "pylib-apple/asyncio/__main__.py", - "pylib-apple/asyncio/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/__main__.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/base_events.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/base_futures.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/base_subprocess.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/base_tasks.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/constants.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/coroutines.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/events.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/exceptions.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/format_helpers.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/futures.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/locks.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/log.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/mixins.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/proactor_events.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/protocols.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/queues.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/runners.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/selector_events.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/sslproto.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/staggered.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/streams.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/subprocess.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/taskgroups.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/tasks.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/threads.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/timeouts.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/transports.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/trsock.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/unix_events.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/windows_events.cpython-311.opt-1.pyc", - "pylib-apple/asyncio/__pycache__/windows_utils.cpython-311.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/__main__.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/base_events.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/base_futures.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/base_subprocess.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/base_tasks.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/constants.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/coroutines.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/events.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/exceptions.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/format_helpers.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/futures.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/locks.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/log.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/mixins.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/proactor_events.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/protocols.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/queues.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/runners.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/selector_events.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/sslproto.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/staggered.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/streams.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/subprocess.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/taskgroups.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/tasks.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/threads.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/timeouts.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/transports.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/trsock.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/unix_events.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/windows_events.cpython-312.opt-1.pyc", + "pylib-apple/asyncio/__pycache__/windows_utils.cpython-312.opt-1.pyc", "pylib-apple/asyncio/base_events.py", "pylib-apple/asyncio/base_futures.py", "pylib-apple/asyncio/base_subprocess.py", @@ -3830,7 +3792,6 @@ "pylib-apple/asyncio/unix_events.py", "pylib-apple/asyncio/windows_events.py", "pylib-apple/asyncio/windows_utils.py", - "pylib-apple/asyncore.py", "pylib-apple/base64.py", "pylib-apple/bdb.py", "pylib-apple/bisect.py", @@ -3845,18 +3806,18 @@ "pylib-apple/codecs.py", "pylib-apple/codeop.py", "pylib-apple/collections/__init__.py", - "pylib-apple/collections/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/collections/__pycache__/abc.cpython-311.opt-1.pyc", + "pylib-apple/collections/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/collections/__pycache__/abc.cpython-312.opt-1.pyc", "pylib-apple/collections/abc.py", "pylib-apple/colorsys.py", "pylib-apple/compileall.py", "pylib-apple/concurrent/__init__.py", - "pylib-apple/concurrent/__pycache__/__init__.cpython-311.opt-1.pyc", + "pylib-apple/concurrent/__pycache__/__init__.cpython-312.opt-1.pyc", "pylib-apple/concurrent/futures/__init__.py", - "pylib-apple/concurrent/futures/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/concurrent/futures/__pycache__/_base.cpython-311.opt-1.pyc", - "pylib-apple/concurrent/futures/__pycache__/process.cpython-311.opt-1.pyc", - "pylib-apple/concurrent/futures/__pycache__/thread.cpython-311.opt-1.pyc", + "pylib-apple/concurrent/futures/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/concurrent/futures/__pycache__/_base.cpython-312.opt-1.pyc", + "pylib-apple/concurrent/futures/__pycache__/process.cpython-312.opt-1.pyc", + "pylib-apple/concurrent/futures/__pycache__/thread.cpython-312.opt-1.pyc", "pylib-apple/concurrent/futures/_base.py", "pylib-apple/concurrent/futures/process.py", "pylib-apple/concurrent/futures/thread.py", @@ -3868,29 +3829,29 @@ "pylib-apple/crypt.py", "pylib-apple/csv.py", "pylib-apple/ctypes/__init__.py", - "pylib-apple/ctypes/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/ctypes/__pycache__/_aix.cpython-311.opt-1.pyc", - "pylib-apple/ctypes/__pycache__/_endian.cpython-311.opt-1.pyc", - "pylib-apple/ctypes/__pycache__/util.cpython-311.opt-1.pyc", - "pylib-apple/ctypes/__pycache__/wintypes.cpython-311.opt-1.pyc", + "pylib-apple/ctypes/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/ctypes/__pycache__/_aix.cpython-312.opt-1.pyc", + "pylib-apple/ctypes/__pycache__/_endian.cpython-312.opt-1.pyc", + "pylib-apple/ctypes/__pycache__/util.cpython-312.opt-1.pyc", + "pylib-apple/ctypes/__pycache__/wintypes.cpython-312.opt-1.pyc", "pylib-apple/ctypes/_aix.py", "pylib-apple/ctypes/_endian.py", "pylib-apple/ctypes/macholib/__init__.py", - "pylib-apple/ctypes/macholib/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/ctypes/macholib/__pycache__/dyld.cpython-311.opt-1.pyc", - "pylib-apple/ctypes/macholib/__pycache__/dylib.cpython-311.opt-1.pyc", - "pylib-apple/ctypes/macholib/__pycache__/framework.cpython-311.opt-1.pyc", + "pylib-apple/ctypes/macholib/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/ctypes/macholib/__pycache__/dyld.cpython-312.opt-1.pyc", + "pylib-apple/ctypes/macholib/__pycache__/dylib.cpython-312.opt-1.pyc", + "pylib-apple/ctypes/macholib/__pycache__/framework.cpython-312.opt-1.pyc", "pylib-apple/ctypes/macholib/dyld.py", "pylib-apple/ctypes/macholib/dylib.py", "pylib-apple/ctypes/macholib/framework.py", "pylib-apple/ctypes/util.py", "pylib-apple/ctypes/wintypes.py", "pylib-apple/curses/__init__.py", - "pylib-apple/curses/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/curses/__pycache__/ascii.cpython-311.opt-1.pyc", - "pylib-apple/curses/__pycache__/has_key.cpython-311.opt-1.pyc", - "pylib-apple/curses/__pycache__/panel.cpython-311.opt-1.pyc", - "pylib-apple/curses/__pycache__/textpad.cpython-311.opt-1.pyc", + "pylib-apple/curses/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/curses/__pycache__/ascii.cpython-312.opt-1.pyc", + "pylib-apple/curses/__pycache__/has_key.cpython-312.opt-1.pyc", + "pylib-apple/curses/__pycache__/panel.cpython-312.opt-1.pyc", + "pylib-apple/curses/__pycache__/textpad.cpython-312.opt-1.pyc", "pylib-apple/curses/ascii.py", "pylib-apple/curses/has_key.py", "pylib-apple/curses/panel.py", @@ -3902,26 +3863,26 @@ "pylib-apple/dis.py", "pylib-apple/doctest.py", "pylib-apple/email/__init__.py", - "pylib-apple/email/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/_encoded_words.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/_header_value_parser.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/_parseaddr.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/_policybase.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/base64mime.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/charset.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/contentmanager.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/encoders.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/errors.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/feedparser.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/generator.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/header.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/headerregistry.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/iterators.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/message.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/parser.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/policy.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/quoprimime.cpython-311.opt-1.pyc", - "pylib-apple/email/__pycache__/utils.cpython-311.opt-1.pyc", + "pylib-apple/email/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/_encoded_words.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/_header_value_parser.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/_parseaddr.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/_policybase.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/base64mime.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/charset.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/contentmanager.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/encoders.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/errors.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/feedparser.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/generator.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/header.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/headerregistry.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/iterators.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/message.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/parser.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/policy.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/quoprimime.cpython-312.opt-1.pyc", + "pylib-apple/email/__pycache__/utils.cpython-312.opt-1.pyc", "pylib-apple/email/_encoded_words.py", "pylib-apple/email/_header_value_parser.py", "pylib-apple/email/_parseaddr.py", @@ -3938,15 +3899,15 @@ "pylib-apple/email/iterators.py", "pylib-apple/email/message.py", "pylib-apple/email/mime/__init__.py", - "pylib-apple/email/mime/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/email/mime/__pycache__/application.cpython-311.opt-1.pyc", - "pylib-apple/email/mime/__pycache__/audio.cpython-311.opt-1.pyc", - "pylib-apple/email/mime/__pycache__/base.cpython-311.opt-1.pyc", - "pylib-apple/email/mime/__pycache__/image.cpython-311.opt-1.pyc", - "pylib-apple/email/mime/__pycache__/message.cpython-311.opt-1.pyc", - "pylib-apple/email/mime/__pycache__/multipart.cpython-311.opt-1.pyc", - "pylib-apple/email/mime/__pycache__/nonmultipart.cpython-311.opt-1.pyc", - "pylib-apple/email/mime/__pycache__/text.cpython-311.opt-1.pyc", + "pylib-apple/email/mime/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/email/mime/__pycache__/application.cpython-312.opt-1.pyc", + "pylib-apple/email/mime/__pycache__/audio.cpython-312.opt-1.pyc", + "pylib-apple/email/mime/__pycache__/base.cpython-312.opt-1.pyc", + "pylib-apple/email/mime/__pycache__/image.cpython-312.opt-1.pyc", + "pylib-apple/email/mime/__pycache__/message.cpython-312.opt-1.pyc", + "pylib-apple/email/mime/__pycache__/multipart.cpython-312.opt-1.pyc", + "pylib-apple/email/mime/__pycache__/nonmultipart.cpython-312.opt-1.pyc", + "pylib-apple/email/mime/__pycache__/text.cpython-312.opt-1.pyc", "pylib-apple/email/mime/application.py", "pylib-apple/email/mime/audio.py", "pylib-apple/email/mime/base.py", @@ -3960,128 +3921,128 @@ "pylib-apple/email/quoprimime.py", "pylib-apple/email/utils.py", "pylib-apple/encodings/__init__.py", - "pylib-apple/encodings/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/aliases.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/ascii.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/base64_codec.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/big5.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/big5hkscs.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/bz2_codec.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/charmap.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp037.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp1006.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp1026.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp1125.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp1140.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp1250.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp1251.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp1252.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp1253.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp1254.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp1255.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp1256.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp1257.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp1258.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp273.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp424.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp437.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp500.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp720.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp737.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp775.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp850.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp852.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp855.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp856.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp857.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp858.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp860.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp861.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp862.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp863.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp864.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp865.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp866.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp869.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp874.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp875.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp932.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp949.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/cp950.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/euc_jis_2004.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/euc_jisx0213.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/euc_jp.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/euc_kr.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/gb18030.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/gb2312.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/gbk.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/hex_codec.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/hp_roman8.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/hz.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/idna.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso2022_jp.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso2022_jp_1.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso2022_jp_2.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso2022_jp_2004.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso2022_jp_3.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso2022_jp_ext.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso2022_kr.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_1.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_10.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_11.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_13.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_14.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_15.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_16.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_2.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_3.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_4.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_5.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_6.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_7.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_8.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/iso8859_9.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/johab.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/koi8_r.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/koi8_t.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/koi8_u.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/kz1048.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/latin_1.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/mac_arabic.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/mac_croatian.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/mac_cyrillic.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/mac_farsi.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/mac_greek.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/mac_iceland.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/mac_latin2.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/mac_roman.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/mac_romanian.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/mac_turkish.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/mbcs.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/oem.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/palmos.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/ptcp154.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/punycode.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/quopri_codec.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/raw_unicode_escape.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/rot_13.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/shift_jis.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/shift_jis_2004.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/shift_jisx0213.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/tis_620.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/undefined.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/unicode_escape.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/utf_16.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/utf_16_be.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/utf_16_le.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/utf_32.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/utf_32_be.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/utf_32_le.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/utf_7.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/utf_8.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/utf_8_sig.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/uu_codec.cpython-311.opt-1.pyc", - "pylib-apple/encodings/__pycache__/zlib_codec.cpython-311.opt-1.pyc", + "pylib-apple/encodings/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/aliases.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/ascii.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/base64_codec.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/big5.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/big5hkscs.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/bz2_codec.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/charmap.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp037.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp1006.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp1026.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp1125.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp1140.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp1250.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp1251.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp1252.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp1253.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp1254.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp1255.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp1256.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp1257.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp1258.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp273.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp424.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp437.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp500.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp720.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp737.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp775.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp850.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp852.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp855.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp856.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp857.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp858.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp860.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp861.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp862.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp863.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp864.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp865.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp866.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp869.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp874.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp875.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp932.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp949.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/cp950.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/euc_jis_2004.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/euc_jisx0213.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/euc_jp.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/euc_kr.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/gb18030.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/gb2312.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/gbk.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/hex_codec.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/hp_roman8.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/hz.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/idna.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso2022_jp.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso2022_jp_1.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso2022_jp_2.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso2022_jp_2004.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso2022_jp_3.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso2022_jp_ext.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso2022_kr.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_1.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_10.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_11.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_13.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_14.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_15.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_16.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_2.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_3.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_4.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_5.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_6.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_7.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_8.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/iso8859_9.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/johab.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/koi8_r.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/koi8_t.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/koi8_u.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/kz1048.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/latin_1.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/mac_arabic.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/mac_croatian.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/mac_cyrillic.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/mac_farsi.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/mac_greek.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/mac_iceland.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/mac_latin2.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/mac_roman.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/mac_romanian.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/mac_turkish.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/mbcs.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/oem.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/palmos.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/ptcp154.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/punycode.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/quopri_codec.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/raw_unicode_escape.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/rot_13.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/shift_jis.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/shift_jis_2004.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/shift_jisx0213.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/tis_620.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/undefined.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/unicode_escape.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/utf_16.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/utf_16_be.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/utf_16_le.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/utf_32.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/utf_32_be.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/utf_32_le.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/utf_7.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/utf_8.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/utf_8_sig.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/uu_codec.cpython-312.opt-1.pyc", + "pylib-apple/encodings/__pycache__/zlib_codec.cpython-312.opt-1.pyc", "pylib-apple/encodings/aliases.py", "pylib-apple/encodings/ascii.py", "pylib-apple/encodings/base64_codec.py", @@ -4221,46 +4182,45 @@ "pylib-apple/heapq.py", "pylib-apple/hmac.py", "pylib-apple/html/__init__.py", - "pylib-apple/html/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/html/__pycache__/entities.cpython-311.opt-1.pyc", - "pylib-apple/html/__pycache__/parser.cpython-311.opt-1.pyc", + "pylib-apple/html/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/html/__pycache__/entities.cpython-312.opt-1.pyc", + "pylib-apple/html/__pycache__/parser.cpython-312.opt-1.pyc", "pylib-apple/html/entities.py", "pylib-apple/html/parser.py", "pylib-apple/http/__init__.py", - "pylib-apple/http/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/http/__pycache__/client.cpython-311.opt-1.pyc", - "pylib-apple/http/__pycache__/cookiejar.cpython-311.opt-1.pyc", - "pylib-apple/http/__pycache__/cookies.cpython-311.opt-1.pyc", - "pylib-apple/http/__pycache__/server.cpython-311.opt-1.pyc", + "pylib-apple/http/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/http/__pycache__/client.cpython-312.opt-1.pyc", + "pylib-apple/http/__pycache__/cookiejar.cpython-312.opt-1.pyc", + "pylib-apple/http/__pycache__/cookies.cpython-312.opt-1.pyc", + "pylib-apple/http/__pycache__/server.cpython-312.opt-1.pyc", "pylib-apple/http/client.py", "pylib-apple/http/cookiejar.py", "pylib-apple/http/cookies.py", "pylib-apple/http/server.py", "pylib-apple/imghdr.py", - "pylib-apple/imp.py", "pylib-apple/importlib/__init__.py", - "pylib-apple/importlib/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/importlib/__pycache__/_abc.cpython-311.opt-1.pyc", - "pylib-apple/importlib/__pycache__/_bootstrap.cpython-311.opt-1.pyc", - "pylib-apple/importlib/__pycache__/_bootstrap_external.cpython-311.opt-1.pyc", - "pylib-apple/importlib/__pycache__/abc.cpython-311.opt-1.pyc", - "pylib-apple/importlib/__pycache__/machinery.cpython-311.opt-1.pyc", - "pylib-apple/importlib/__pycache__/readers.cpython-311.opt-1.pyc", - "pylib-apple/importlib/__pycache__/simple.cpython-311.opt-1.pyc", - "pylib-apple/importlib/__pycache__/util.cpython-311.opt-1.pyc", + "pylib-apple/importlib/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/importlib/__pycache__/_abc.cpython-312.opt-1.pyc", + "pylib-apple/importlib/__pycache__/_bootstrap.cpython-312.opt-1.pyc", + "pylib-apple/importlib/__pycache__/_bootstrap_external.cpython-312.opt-1.pyc", + "pylib-apple/importlib/__pycache__/abc.cpython-312.opt-1.pyc", + "pylib-apple/importlib/__pycache__/machinery.cpython-312.opt-1.pyc", + "pylib-apple/importlib/__pycache__/readers.cpython-312.opt-1.pyc", + "pylib-apple/importlib/__pycache__/simple.cpython-312.opt-1.pyc", + "pylib-apple/importlib/__pycache__/util.cpython-312.opt-1.pyc", "pylib-apple/importlib/_abc.py", "pylib-apple/importlib/_bootstrap.py", "pylib-apple/importlib/_bootstrap_external.py", "pylib-apple/importlib/abc.py", "pylib-apple/importlib/machinery.py", "pylib-apple/importlib/metadata/__init__.py", - "pylib-apple/importlib/metadata/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/importlib/metadata/__pycache__/_adapters.cpython-311.opt-1.pyc", - "pylib-apple/importlib/metadata/__pycache__/_collections.cpython-311.opt-1.pyc", - "pylib-apple/importlib/metadata/__pycache__/_functools.cpython-311.opt-1.pyc", - "pylib-apple/importlib/metadata/__pycache__/_itertools.cpython-311.opt-1.pyc", - "pylib-apple/importlib/metadata/__pycache__/_meta.cpython-311.opt-1.pyc", - "pylib-apple/importlib/metadata/__pycache__/_text.cpython-311.opt-1.pyc", + "pylib-apple/importlib/metadata/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/importlib/metadata/__pycache__/_adapters.cpython-312.opt-1.pyc", + "pylib-apple/importlib/metadata/__pycache__/_collections.cpython-312.opt-1.pyc", + "pylib-apple/importlib/metadata/__pycache__/_functools.cpython-312.opt-1.pyc", + "pylib-apple/importlib/metadata/__pycache__/_itertools.cpython-312.opt-1.pyc", + "pylib-apple/importlib/metadata/__pycache__/_meta.cpython-312.opt-1.pyc", + "pylib-apple/importlib/metadata/__pycache__/_text.cpython-312.opt-1.pyc", "pylib-apple/importlib/metadata/_adapters.py", "pylib-apple/importlib/metadata/_collections.py", "pylib-apple/importlib/metadata/_functools.py", @@ -4269,14 +4229,14 @@ "pylib-apple/importlib/metadata/_text.py", "pylib-apple/importlib/readers.py", "pylib-apple/importlib/resources/__init__.py", - "pylib-apple/importlib/resources/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/importlib/resources/__pycache__/_adapters.cpython-311.opt-1.pyc", - "pylib-apple/importlib/resources/__pycache__/_common.cpython-311.opt-1.pyc", - "pylib-apple/importlib/resources/__pycache__/_itertools.cpython-311.opt-1.pyc", - "pylib-apple/importlib/resources/__pycache__/_legacy.cpython-311.opt-1.pyc", - "pylib-apple/importlib/resources/__pycache__/abc.cpython-311.opt-1.pyc", - "pylib-apple/importlib/resources/__pycache__/readers.cpython-311.opt-1.pyc", - "pylib-apple/importlib/resources/__pycache__/simple.cpython-311.opt-1.pyc", + "pylib-apple/importlib/resources/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/importlib/resources/__pycache__/_adapters.cpython-312.opt-1.pyc", + "pylib-apple/importlib/resources/__pycache__/_common.cpython-312.opt-1.pyc", + "pylib-apple/importlib/resources/__pycache__/_itertools.cpython-312.opt-1.pyc", + "pylib-apple/importlib/resources/__pycache__/_legacy.cpython-312.opt-1.pyc", + "pylib-apple/importlib/resources/__pycache__/abc.cpython-312.opt-1.pyc", + "pylib-apple/importlib/resources/__pycache__/readers.cpython-312.opt-1.pyc", + "pylib-apple/importlib/resources/__pycache__/simple.cpython-312.opt-1.pyc", "pylib-apple/importlib/resources/_adapters.py", "pylib-apple/importlib/resources/_common.py", "pylib-apple/importlib/resources/_itertools.py", @@ -4290,11 +4250,11 @@ "pylib-apple/io.py", "pylib-apple/ipaddress.py", "pylib-apple/json/__init__.py", - "pylib-apple/json/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/json/__pycache__/decoder.cpython-311.opt-1.pyc", - "pylib-apple/json/__pycache__/encoder.cpython-311.opt-1.pyc", - "pylib-apple/json/__pycache__/scanner.cpython-311.opt-1.pyc", - "pylib-apple/json/__pycache__/tool.cpython-311.opt-1.pyc", + "pylib-apple/json/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/json/__pycache__/decoder.cpython-312.opt-1.pyc", + "pylib-apple/json/__pycache__/encoder.cpython-312.opt-1.pyc", + "pylib-apple/json/__pycache__/scanner.cpython-312.opt-1.pyc", + "pylib-apple/json/__pycache__/tool.cpython-312.opt-1.pyc", "pylib-apple/json/decoder.py", "pylib-apple/json/encoder.py", "pylib-apple/json/scanner.py", @@ -4303,9 +4263,9 @@ "pylib-apple/linecache.py", "pylib-apple/locale.py", "pylib-apple/logging/__init__.py", - "pylib-apple/logging/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/logging/__pycache__/config.cpython-311.opt-1.pyc", - "pylib-apple/logging/__pycache__/handlers.cpython-311.opt-1.pyc", + "pylib-apple/logging/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/logging/__pycache__/config.cpython-312.opt-1.pyc", + "pylib-apple/logging/__pycache__/handlers.cpython-312.opt-1.pyc", "pylib-apple/logging/config.py", "pylib-apple/logging/handlers.py", "pylib-apple/lzma.py", @@ -4343,11 +4303,11 @@ "pylib-apple/quopri.py", "pylib-apple/random.py", "pylib-apple/re/__init__.py", - "pylib-apple/re/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/re/__pycache__/_casefix.cpython-311.opt-1.pyc", - "pylib-apple/re/__pycache__/_compiler.cpython-311.opt-1.pyc", - "pylib-apple/re/__pycache__/_constants.cpython-311.opt-1.pyc", - "pylib-apple/re/__pycache__/_parser.cpython-311.opt-1.pyc", + "pylib-apple/re/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/re/__pycache__/_casefix.cpython-312.opt-1.pyc", + "pylib-apple/re/__pycache__/_compiler.cpython-312.opt-1.pyc", + "pylib-apple/re/__pycache__/_constants.cpython-312.opt-1.pyc", + "pylib-apple/re/__pycache__/_parser.cpython-312.opt-1.pyc", "pylib-apple/re/_casefix.py", "pylib-apple/re/_compiler.py", "pylib-apple/re/_constants.py", @@ -4363,15 +4323,16 @@ "pylib-apple/shutil.py", "pylib-apple/signal.py", "pylib-apple/site.py", - "pylib-apple/smtpd.py", "pylib-apple/smtplib.py", "pylib-apple/sndhdr.py", "pylib-apple/socket.py", "pylib-apple/socketserver.py", "pylib-apple/sqlite3/__init__.py", - "pylib-apple/sqlite3/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/sqlite3/__pycache__/dbapi2.cpython-311.opt-1.pyc", - "pylib-apple/sqlite3/__pycache__/dump.cpython-311.opt-1.pyc", + "pylib-apple/sqlite3/__main__.py", + "pylib-apple/sqlite3/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/sqlite3/__pycache__/__main__.cpython-312.opt-1.pyc", + "pylib-apple/sqlite3/__pycache__/dbapi2.cpython-312.opt-1.pyc", + "pylib-apple/sqlite3/__pycache__/dump.cpython-312.opt-1.pyc", "pylib-apple/sqlite3/dbapi2.py", "pylib-apple/sqlite3/dump.py", "pylib-apple/sre_compile.py", @@ -4398,10 +4359,10 @@ "pylib-apple/token.py", "pylib-apple/tokenize.py", "pylib-apple/tomllib/__init__.py", - "pylib-apple/tomllib/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/tomllib/__pycache__/_parser.cpython-311.opt-1.pyc", - "pylib-apple/tomllib/__pycache__/_re.cpython-311.opt-1.pyc", - "pylib-apple/tomllib/__pycache__/_types.cpython-311.opt-1.pyc", + "pylib-apple/tomllib/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/tomllib/__pycache__/_parser.cpython-312.opt-1.pyc", + "pylib-apple/tomllib/__pycache__/_re.cpython-312.opt-1.pyc", + "pylib-apple/tomllib/__pycache__/_types.cpython-312.opt-1.pyc", "pylib-apple/tomllib/_parser.py", "pylib-apple/tomllib/_re.py", "pylib-apple/tomllib/_types.py", @@ -4412,12 +4373,12 @@ "pylib-apple/types.py", "pylib-apple/typing.py", "pylib-apple/urllib/__init__.py", - "pylib-apple/urllib/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/urllib/__pycache__/error.cpython-311.opt-1.pyc", - "pylib-apple/urllib/__pycache__/parse.cpython-311.opt-1.pyc", - "pylib-apple/urllib/__pycache__/request.cpython-311.opt-1.pyc", - "pylib-apple/urllib/__pycache__/response.cpython-311.opt-1.pyc", - "pylib-apple/urllib/__pycache__/robotparser.cpython-311.opt-1.pyc", + "pylib-apple/urllib/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/urllib/__pycache__/error.cpython-312.opt-1.pyc", + "pylib-apple/urllib/__pycache__/parse.cpython-312.opt-1.pyc", + "pylib-apple/urllib/__pycache__/request.cpython-312.opt-1.pyc", + "pylib-apple/urllib/__pycache__/response.cpython-312.opt-1.pyc", + "pylib-apple/urllib/__pycache__/robotparser.cpython-312.opt-1.pyc", "pylib-apple/urllib/error.py", "pylib-apple/urllib/parse.py", "pylib-apple/urllib/request.py", @@ -4431,17 +4392,17 @@ "pylib-apple/webbrowser.py", "pylib-apple/xdrlib.py", "pylib-apple/xml/__init__.py", - "pylib-apple/xml/__pycache__/__init__.cpython-311.opt-1.pyc", + "pylib-apple/xml/__pycache__/__init__.cpython-312.opt-1.pyc", "pylib-apple/xml/dom/NodeFilter.py", "pylib-apple/xml/dom/__init__.py", - "pylib-apple/xml/dom/__pycache__/NodeFilter.cpython-311.opt-1.pyc", - "pylib-apple/xml/dom/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/xml/dom/__pycache__/domreg.cpython-311.opt-1.pyc", - "pylib-apple/xml/dom/__pycache__/expatbuilder.cpython-311.opt-1.pyc", - "pylib-apple/xml/dom/__pycache__/minicompat.cpython-311.opt-1.pyc", - "pylib-apple/xml/dom/__pycache__/minidom.cpython-311.opt-1.pyc", - "pylib-apple/xml/dom/__pycache__/pulldom.cpython-311.opt-1.pyc", - "pylib-apple/xml/dom/__pycache__/xmlbuilder.cpython-311.opt-1.pyc", + "pylib-apple/xml/dom/__pycache__/NodeFilter.cpython-312.opt-1.pyc", + "pylib-apple/xml/dom/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/xml/dom/__pycache__/domreg.cpython-312.opt-1.pyc", + "pylib-apple/xml/dom/__pycache__/expatbuilder.cpython-312.opt-1.pyc", + "pylib-apple/xml/dom/__pycache__/minicompat.cpython-312.opt-1.pyc", + "pylib-apple/xml/dom/__pycache__/minidom.cpython-312.opt-1.pyc", + "pylib-apple/xml/dom/__pycache__/pulldom.cpython-312.opt-1.pyc", + "pylib-apple/xml/dom/__pycache__/xmlbuilder.cpython-312.opt-1.pyc", "pylib-apple/xml/dom/domreg.py", "pylib-apple/xml/dom/expatbuilder.py", "pylib-apple/xml/dom/minicompat.py", @@ -4452,46 +4413,53 @@ "pylib-apple/xml/etree/ElementPath.py", "pylib-apple/xml/etree/ElementTree.py", "pylib-apple/xml/etree/__init__.py", - "pylib-apple/xml/etree/__pycache__/ElementInclude.cpython-311.opt-1.pyc", - "pylib-apple/xml/etree/__pycache__/ElementPath.cpython-311.opt-1.pyc", - "pylib-apple/xml/etree/__pycache__/ElementTree.cpython-311.opt-1.pyc", - "pylib-apple/xml/etree/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/xml/etree/__pycache__/cElementTree.cpython-311.opt-1.pyc", + "pylib-apple/xml/etree/__pycache__/ElementInclude.cpython-312.opt-1.pyc", + "pylib-apple/xml/etree/__pycache__/ElementPath.cpython-312.opt-1.pyc", + "pylib-apple/xml/etree/__pycache__/ElementTree.cpython-312.opt-1.pyc", + "pylib-apple/xml/etree/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/xml/etree/__pycache__/cElementTree.cpython-312.opt-1.pyc", "pylib-apple/xml/etree/cElementTree.py", "pylib-apple/xml/parsers/__init__.py", - "pylib-apple/xml/parsers/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/xml/parsers/__pycache__/expat.cpython-311.opt-1.pyc", + "pylib-apple/xml/parsers/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/xml/parsers/__pycache__/expat.cpython-312.opt-1.pyc", "pylib-apple/xml/parsers/expat.py", "pylib-apple/xml/sax/__init__.py", - "pylib-apple/xml/sax/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/xml/sax/__pycache__/_exceptions.cpython-311.opt-1.pyc", - "pylib-apple/xml/sax/__pycache__/expatreader.cpython-311.opt-1.pyc", - "pylib-apple/xml/sax/__pycache__/handler.cpython-311.opt-1.pyc", - "pylib-apple/xml/sax/__pycache__/saxutils.cpython-311.opt-1.pyc", - "pylib-apple/xml/sax/__pycache__/xmlreader.cpython-311.opt-1.pyc", + "pylib-apple/xml/sax/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/xml/sax/__pycache__/_exceptions.cpython-312.opt-1.pyc", + "pylib-apple/xml/sax/__pycache__/expatreader.cpython-312.opt-1.pyc", + "pylib-apple/xml/sax/__pycache__/handler.cpython-312.opt-1.pyc", + "pylib-apple/xml/sax/__pycache__/saxutils.cpython-312.opt-1.pyc", + "pylib-apple/xml/sax/__pycache__/xmlreader.cpython-312.opt-1.pyc", "pylib-apple/xml/sax/_exceptions.py", "pylib-apple/xml/sax/expatreader.py", "pylib-apple/xml/sax/handler.py", "pylib-apple/xml/sax/saxutils.py", "pylib-apple/xml/sax/xmlreader.py", "pylib-apple/xmlrpc/__init__.py", - "pylib-apple/xmlrpc/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/xmlrpc/__pycache__/client.cpython-311.opt-1.pyc", - "pylib-apple/xmlrpc/__pycache__/server.cpython-311.opt-1.pyc", + "pylib-apple/xmlrpc/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/xmlrpc/__pycache__/client.cpython-312.opt-1.pyc", + "pylib-apple/xmlrpc/__pycache__/server.cpython-312.opt-1.pyc", "pylib-apple/xmlrpc/client.py", "pylib-apple/xmlrpc/server.py", "pylib-apple/zipapp.py", - "pylib-apple/zipfile.py", + "pylib-apple/zipfile/__init__.py", + "pylib-apple/zipfile/__main__.py", + "pylib-apple/zipfile/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/zipfile/__pycache__/__main__.cpython-312.opt-1.pyc", + "pylib-apple/zipfile/_path/__init__.py", + "pylib-apple/zipfile/_path/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/zipfile/_path/__pycache__/glob.cpython-312.opt-1.pyc", + "pylib-apple/zipfile/_path/glob.py", "pylib-apple/zipimport.py", "pylib-apple/zoneinfo/__init__.py", - "pylib-apple/zoneinfo/__pycache__/__init__.cpython-311.opt-1.pyc", - "pylib-apple/zoneinfo/__pycache__/_common.cpython-311.opt-1.pyc", - "pylib-apple/zoneinfo/__pycache__/_tzpath.cpython-311.opt-1.pyc", - "pylib-apple/zoneinfo/__pycache__/_zoneinfo.cpython-311.opt-1.pyc", + "pylib-apple/zoneinfo/__pycache__/__init__.cpython-312.opt-1.pyc", + "pylib-apple/zoneinfo/__pycache__/_common.cpython-312.opt-1.pyc", + "pylib-apple/zoneinfo/__pycache__/_tzpath.cpython-312.opt-1.pyc", + "pylib-apple/zoneinfo/__pycache__/_zoneinfo.cpython-312.opt-1.pyc", "pylib-apple/zoneinfo/_common.py", "pylib-apple/zoneinfo/_tzpath.py", "pylib-apple/zoneinfo/_zoneinfo.py", - "sphinx/static/__pycache__/conf.cpython-311.opt-1.pyc", + "sphinx/static/__pycache__/conf.cpython-312.opt-1.pyc", "sphinx/static/conf.py", "windows/Win32/DLLs/_asyncio.pyd", "windows/Win32/DLLs/_asyncio_d.pyd", @@ -4527,6 +4495,8 @@ "windows/Win32/DLLs/_testbuffer_d.pyd", "windows/Win32/DLLs/_testcapi.pyd", "windows/Win32/DLLs/_testcapi_d.pyd", + "windows/Win32/DLLs/_testclinic.pyd", + "windows/Win32/DLLs/_testclinic_d.pyd", "windows/Win32/DLLs/_testconsole.pyd", "windows/Win32/DLLs/_testconsole_d.pyd", "windows/Win32/DLLs/_testimportmultiple.pyd", @@ -4535,20 +4505,23 @@ "windows/Win32/DLLs/_testinternalcapi_d.pyd", "windows/Win32/DLLs/_testmultiphase.pyd", "windows/Win32/DLLs/_testmultiphase_d.pyd", + "windows/Win32/DLLs/_testsinglephase.pyd", + "windows/Win32/DLLs/_testsinglephase_d.pyd", "windows/Win32/DLLs/_tkinter.pyd", "windows/Win32/DLLs/_tkinter_d.lib", "windows/Win32/DLLs/_tkinter_d.pyd", "windows/Win32/DLLs/_uuid.pyd", "windows/Win32/DLLs/_uuid_d.pyd", + "windows/Win32/DLLs/_wmi.pyd", + "windows/Win32/DLLs/_wmi_d.pyd", "windows/Win32/DLLs/_zoneinfo.pyd", "windows/Win32/DLLs/_zoneinfo_d.pyd", - "windows/Win32/DLLs/libcrypto-1_1.dll", + "windows/Win32/DLLs/libcrypto-3.dll", "windows/Win32/DLLs/libffi-8.dll", - "windows/Win32/DLLs/libssl-1_1.dll", + "windows/Win32/DLLs/libssl-3.dll", "windows/Win32/DLLs/pyexpat.pyd", "windows/Win32/DLLs/pyexpat_d.pyd", "windows/Win32/DLLs/python_lib.cat", - "windows/Win32/DLLs/python_tools.cat", "windows/Win32/DLLs/select.pyd", "windows/Win32/DLLs/select_d.pyd", "windows/Win32/DLLs/sqlite3.dll", @@ -4559,183 +4532,181 @@ "windows/Win32/DLLs/unicodedata_d.pyd", "windows/Win32/DLLs/winsound.pyd", "windows/Win32/DLLs/winsound_d.pyd", + "windows/Win32/DLLs/zlib1.dll", "windows/Win32/Lib/__future__.py", "windows/Win32/Lib/__hello__.py", - "windows/Win32/Lib/__pycache__/__future__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/__hello__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_aix_support.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_bootsubprocess.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_collections_abc.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_compat_pickle.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_compression.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_markupbase.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_osx_support.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_py_abc.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_pydecimal.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_pyio.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_sitebuiltins.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_strptime.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_threading_local.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/_weakrefset.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/abc.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/aifc.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/antigravity.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/argparse.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/ast.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/asynchat.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/asyncore.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/base64.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/bdb.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/bisect.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/bz2.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/cProfile.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/calendar.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/cgi.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/cgitb.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/chunk.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/cmd.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/code.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/codecs.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/codeop.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/colorsys.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/compileall.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/configparser.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/contextlib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/contextvars.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/copy.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/copyreg.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/crypt.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/csv.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/dataclasses.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/datetime.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/decimal.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/difflib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/dis.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/doctest.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/enum.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/filecmp.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/fileinput.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/fnmatch.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/fractions.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/ftplib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/functools.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/genericpath.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/getopt.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/getpass.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/gettext.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/glob.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/graphlib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/gzip.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/hashlib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/heapq.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/hmac.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/imghdr.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/imp.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/inspect.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/io.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/ipaddress.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/keyword.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/linecache.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/locale.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/lzma.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/mailbox.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/mailcap.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/mimetypes.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/modulefinder.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/netrc.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/nntplib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/ntpath.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/nturl2path.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/numbers.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/opcode.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/operator.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/optparse.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/os.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/pathlib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/pdb.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/pickle.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/pickletools.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/pipes.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/pkgutil.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/platform.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/plistlib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/poplib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/posixpath.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/pprint.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/profile.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/pstats.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/pty.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/py_compile.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/pyclbr.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/pydoc.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/queue.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/quopri.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/random.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/reprlib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/rlcompleter.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/runpy.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/sched.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/secrets.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/selectors.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/shelve.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/shlex.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/shutil.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/signal.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/site.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/smtpd.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/smtplib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/sndhdr.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/socket.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/socketserver.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/sre_compile.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/sre_constants.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/sre_parse.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/ssl.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/stat.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/statistics.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/string.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/stringprep.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/struct.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/subprocess.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/sunau.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/symtable.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/sysconfig.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/tabnanny.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/tarfile.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/telnetlib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/tempfile.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/textwrap.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/this.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/threading.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/timeit.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/token.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/tokenize.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/trace.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/traceback.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/tracemalloc.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/tty.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/types.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/typing.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/uu.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/uuid.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/warnings.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/wave.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/weakref.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/webbrowser.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/xdrlib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/zipapp.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/zipfile.cpython-311.opt-1.pyc", - "windows/Win32/Lib/__pycache__/zipimport.cpython-311.opt-1.pyc", + "windows/Win32/Lib/__pycache__/__future__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/__hello__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_aix_support.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_collections_abc.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_compat_pickle.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_compression.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_markupbase.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_osx_support.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_py_abc.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_pydatetime.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_pydecimal.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_pyio.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_pylong.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_sitebuiltins.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_strptime.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_threading_local.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/_weakrefset.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/abc.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/aifc.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/antigravity.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/argparse.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/ast.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/base64.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/bdb.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/bisect.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/bz2.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/cProfile.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/calendar.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/cgi.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/cgitb.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/chunk.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/cmd.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/code.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/codecs.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/codeop.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/colorsys.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/compileall.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/configparser.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/contextlib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/contextvars.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/copy.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/copyreg.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/crypt.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/csv.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/dataclasses.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/datetime.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/decimal.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/difflib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/dis.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/doctest.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/enum.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/filecmp.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/fileinput.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/fnmatch.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/fractions.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/ftplib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/functools.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/genericpath.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/getopt.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/getpass.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/gettext.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/glob.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/graphlib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/gzip.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/hashlib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/heapq.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/hmac.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/imghdr.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/inspect.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/io.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/ipaddress.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/keyword.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/linecache.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/locale.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/lzma.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/mailbox.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/mailcap.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/mimetypes.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/modulefinder.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/netrc.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/nntplib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/ntpath.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/nturl2path.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/numbers.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/opcode.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/operator.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/optparse.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/os.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/pathlib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/pdb.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/pickle.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/pickletools.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/pipes.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/pkgutil.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/platform.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/plistlib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/poplib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/posixpath.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/pprint.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/profile.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/pstats.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/pty.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/py_compile.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/pyclbr.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/pydoc.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/queue.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/quopri.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/random.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/reprlib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/rlcompleter.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/runpy.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/sched.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/secrets.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/selectors.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/shelve.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/shlex.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/shutil.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/signal.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/site.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/smtplib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/sndhdr.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/socket.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/socketserver.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/sre_compile.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/sre_constants.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/sre_parse.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/ssl.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/stat.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/statistics.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/string.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/stringprep.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/struct.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/subprocess.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/sunau.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/symtable.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/sysconfig.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/tabnanny.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/tarfile.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/telnetlib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/tempfile.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/textwrap.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/this.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/threading.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/timeit.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/token.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/tokenize.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/trace.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/traceback.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/tracemalloc.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/tty.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/types.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/typing.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/uu.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/uuid.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/warnings.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/wave.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/weakref.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/webbrowser.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/xdrlib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/zipapp.cpython-312.opt-1.pyc", + "windows/Win32/Lib/__pycache__/zipimport.cpython-312.opt-1.pyc", "windows/Win32/Lib/_aix_support.py", - "windows/Win32/Lib/_bootsubprocess.py", "windows/Win32/Lib/_collections_abc.py", "windows/Win32/Lib/_compat_pickle.py", "windows/Win32/Lib/_compression.py", "windows/Win32/Lib/_markupbase.py", "windows/Win32/Lib/_osx_support.py", "windows/Win32/Lib/_py_abc.py", + "windows/Win32/Lib/_pydatetime.py", "windows/Win32/Lib/_pydecimal.py", "windows/Win32/Lib/_pyio.py", + "windows/Win32/Lib/_pylong.py", "windows/Win32/Lib/_sitebuiltins.py", "windows/Win32/Lib/_strptime.py", "windows/Win32/Lib/_threading_local.py", @@ -4745,42 +4716,41 @@ "windows/Win32/Lib/antigravity.py", "windows/Win32/Lib/argparse.py", "windows/Win32/Lib/ast.py", - "windows/Win32/Lib/asynchat.py", "windows/Win32/Lib/asyncio/__init__.py", "windows/Win32/Lib/asyncio/__main__.py", - "windows/Win32/Lib/asyncio/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/__main__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/base_events.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/base_futures.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/base_subprocess.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/base_tasks.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/constants.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/coroutines.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/events.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/exceptions.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/format_helpers.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/futures.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/locks.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/log.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/mixins.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/proactor_events.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/protocols.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/queues.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/runners.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/selector_events.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/sslproto.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/staggered.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/streams.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/subprocess.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/taskgroups.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/tasks.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/threads.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/timeouts.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/transports.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/trsock.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/unix_events.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/windows_events.cpython-311.opt-1.pyc", - "windows/Win32/Lib/asyncio/__pycache__/windows_utils.cpython-311.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/__main__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/base_events.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/base_futures.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/base_subprocess.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/base_tasks.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/constants.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/coroutines.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/events.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/exceptions.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/format_helpers.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/futures.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/locks.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/log.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/mixins.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/proactor_events.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/protocols.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/queues.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/runners.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/selector_events.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/sslproto.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/staggered.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/streams.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/subprocess.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/taskgroups.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/tasks.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/threads.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/timeouts.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/transports.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/trsock.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/unix_events.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/windows_events.cpython-312.opt-1.pyc", + "windows/Win32/Lib/asyncio/__pycache__/windows_utils.cpython-312.opt-1.pyc", "windows/Win32/Lib/asyncio/base_events.py", "windows/Win32/Lib/asyncio/base_futures.py", "windows/Win32/Lib/asyncio/base_subprocess.py", @@ -4812,7 +4782,6 @@ "windows/Win32/Lib/asyncio/unix_events.py", "windows/Win32/Lib/asyncio/windows_events.py", "windows/Win32/Lib/asyncio/windows_utils.py", - "windows/Win32/Lib/asyncore.py", "windows/Win32/Lib/base64.py", "windows/Win32/Lib/bdb.py", "windows/Win32/Lib/bisect.py", @@ -4827,18 +4796,18 @@ "windows/Win32/Lib/codecs.py", "windows/Win32/Lib/codeop.py", "windows/Win32/Lib/collections/__init__.py", - "windows/Win32/Lib/collections/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/collections/__pycache__/abc.cpython-311.opt-1.pyc", + "windows/Win32/Lib/collections/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/collections/__pycache__/abc.cpython-312.opt-1.pyc", "windows/Win32/Lib/collections/abc.py", "windows/Win32/Lib/colorsys.py", "windows/Win32/Lib/compileall.py", "windows/Win32/Lib/concurrent/__init__.py", - "windows/Win32/Lib/concurrent/__pycache__/__init__.cpython-311.opt-1.pyc", + "windows/Win32/Lib/concurrent/__pycache__/__init__.cpython-312.opt-1.pyc", "windows/Win32/Lib/concurrent/futures/__init__.py", - "windows/Win32/Lib/concurrent/futures/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/concurrent/futures/__pycache__/_base.cpython-311.opt-1.pyc", - "windows/Win32/Lib/concurrent/futures/__pycache__/process.cpython-311.opt-1.pyc", - "windows/Win32/Lib/concurrent/futures/__pycache__/thread.cpython-311.opt-1.pyc", + "windows/Win32/Lib/concurrent/futures/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/concurrent/futures/__pycache__/_base.cpython-312.opt-1.pyc", + "windows/Win32/Lib/concurrent/futures/__pycache__/process.cpython-312.opt-1.pyc", + "windows/Win32/Lib/concurrent/futures/__pycache__/thread.cpython-312.opt-1.pyc", "windows/Win32/Lib/concurrent/futures/_base.py", "windows/Win32/Lib/concurrent/futures/process.py", "windows/Win32/Lib/concurrent/futures/thread.py", @@ -4850,29 +4819,29 @@ "windows/Win32/Lib/crypt.py", "windows/Win32/Lib/csv.py", "windows/Win32/Lib/ctypes/__init__.py", - "windows/Win32/Lib/ctypes/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/ctypes/__pycache__/_aix.cpython-311.opt-1.pyc", - "windows/Win32/Lib/ctypes/__pycache__/_endian.cpython-311.opt-1.pyc", - "windows/Win32/Lib/ctypes/__pycache__/util.cpython-311.opt-1.pyc", - "windows/Win32/Lib/ctypes/__pycache__/wintypes.cpython-311.opt-1.pyc", + "windows/Win32/Lib/ctypes/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/ctypes/__pycache__/_aix.cpython-312.opt-1.pyc", + "windows/Win32/Lib/ctypes/__pycache__/_endian.cpython-312.opt-1.pyc", + "windows/Win32/Lib/ctypes/__pycache__/util.cpython-312.opt-1.pyc", + "windows/Win32/Lib/ctypes/__pycache__/wintypes.cpython-312.opt-1.pyc", "windows/Win32/Lib/ctypes/_aix.py", "windows/Win32/Lib/ctypes/_endian.py", "windows/Win32/Lib/ctypes/macholib/__init__.py", - "windows/Win32/Lib/ctypes/macholib/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/ctypes/macholib/__pycache__/dyld.cpython-311.opt-1.pyc", - "windows/Win32/Lib/ctypes/macholib/__pycache__/dylib.cpython-311.opt-1.pyc", - "windows/Win32/Lib/ctypes/macholib/__pycache__/framework.cpython-311.opt-1.pyc", + "windows/Win32/Lib/ctypes/macholib/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/ctypes/macholib/__pycache__/dyld.cpython-312.opt-1.pyc", + "windows/Win32/Lib/ctypes/macholib/__pycache__/dylib.cpython-312.opt-1.pyc", + "windows/Win32/Lib/ctypes/macholib/__pycache__/framework.cpython-312.opt-1.pyc", "windows/Win32/Lib/ctypes/macholib/dyld.py", "windows/Win32/Lib/ctypes/macholib/dylib.py", "windows/Win32/Lib/ctypes/macholib/framework.py", "windows/Win32/Lib/ctypes/util.py", "windows/Win32/Lib/ctypes/wintypes.py", "windows/Win32/Lib/curses/__init__.py", - "windows/Win32/Lib/curses/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/curses/__pycache__/ascii.cpython-311.opt-1.pyc", - "windows/Win32/Lib/curses/__pycache__/has_key.cpython-311.opt-1.pyc", - "windows/Win32/Lib/curses/__pycache__/panel.cpython-311.opt-1.pyc", - "windows/Win32/Lib/curses/__pycache__/textpad.cpython-311.opt-1.pyc", + "windows/Win32/Lib/curses/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/curses/__pycache__/ascii.cpython-312.opt-1.pyc", + "windows/Win32/Lib/curses/__pycache__/has_key.cpython-312.opt-1.pyc", + "windows/Win32/Lib/curses/__pycache__/panel.cpython-312.opt-1.pyc", + "windows/Win32/Lib/curses/__pycache__/textpad.cpython-312.opt-1.pyc", "windows/Win32/Lib/curses/ascii.py", "windows/Win32/Lib/curses/has_key.py", "windows/Win32/Lib/curses/panel.py", @@ -4884,26 +4853,26 @@ "windows/Win32/Lib/dis.py", "windows/Win32/Lib/doctest.py", "windows/Win32/Lib/email/__init__.py", - "windows/Win32/Lib/email/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/_encoded_words.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/_header_value_parser.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/_parseaddr.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/_policybase.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/base64mime.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/charset.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/contentmanager.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/encoders.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/errors.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/feedparser.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/generator.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/header.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/headerregistry.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/iterators.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/message.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/parser.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/policy.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/quoprimime.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/__pycache__/utils.cpython-311.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/_encoded_words.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/_header_value_parser.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/_parseaddr.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/_policybase.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/base64mime.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/charset.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/contentmanager.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/encoders.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/errors.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/feedparser.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/generator.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/header.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/headerregistry.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/iterators.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/message.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/parser.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/policy.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/quoprimime.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/__pycache__/utils.cpython-312.opt-1.pyc", "windows/Win32/Lib/email/_encoded_words.py", "windows/Win32/Lib/email/_header_value_parser.py", "windows/Win32/Lib/email/_parseaddr.py", @@ -4921,15 +4890,15 @@ "windows/Win32/Lib/email/iterators.py", "windows/Win32/Lib/email/message.py", "windows/Win32/Lib/email/mime/__init__.py", - "windows/Win32/Lib/email/mime/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/mime/__pycache__/application.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/mime/__pycache__/audio.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/mime/__pycache__/base.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/mime/__pycache__/image.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/mime/__pycache__/message.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/mime/__pycache__/multipart.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/mime/__pycache__/nonmultipart.cpython-311.opt-1.pyc", - "windows/Win32/Lib/email/mime/__pycache__/text.cpython-311.opt-1.pyc", + "windows/Win32/Lib/email/mime/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/mime/__pycache__/application.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/mime/__pycache__/audio.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/mime/__pycache__/base.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/mime/__pycache__/image.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/mime/__pycache__/message.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/mime/__pycache__/multipart.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/mime/__pycache__/nonmultipart.cpython-312.opt-1.pyc", + "windows/Win32/Lib/email/mime/__pycache__/text.cpython-312.opt-1.pyc", "windows/Win32/Lib/email/mime/application.py", "windows/Win32/Lib/email/mime/audio.py", "windows/Win32/Lib/email/mime/base.py", @@ -4943,128 +4912,128 @@ "windows/Win32/Lib/email/quoprimime.py", "windows/Win32/Lib/email/utils.py", "windows/Win32/Lib/encodings/__init__.py", - "windows/Win32/Lib/encodings/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/aliases.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/ascii.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/base64_codec.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/big5.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/big5hkscs.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/bz2_codec.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/charmap.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp037.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp1006.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp1026.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp1125.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp1140.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp1250.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp1251.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp1252.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp1253.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp1254.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp1255.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp1256.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp1257.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp1258.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp273.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp424.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp437.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp500.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp720.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp737.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp775.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp850.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp852.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp855.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp856.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp857.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp858.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp860.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp861.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp862.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp863.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp864.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp865.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp866.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp869.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp874.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp875.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp932.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp949.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/cp950.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/euc_jis_2004.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/euc_jisx0213.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/euc_jp.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/euc_kr.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/gb18030.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/gb2312.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/gbk.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/hex_codec.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/hp_roman8.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/hz.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/idna.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso2022_jp.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso2022_jp_1.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso2022_jp_2.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso2022_jp_2004.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso2022_jp_3.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso2022_jp_ext.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso2022_kr.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_1.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_10.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_11.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_13.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_14.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_15.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_16.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_2.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_3.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_4.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_5.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_6.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_7.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_8.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/iso8859_9.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/johab.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/koi8_r.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/koi8_t.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/koi8_u.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/kz1048.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/latin_1.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/mac_arabic.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/mac_croatian.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/mac_cyrillic.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/mac_farsi.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/mac_greek.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/mac_iceland.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/mac_latin2.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/mac_roman.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/mac_romanian.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/mac_turkish.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/mbcs.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/oem.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/palmos.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/ptcp154.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/punycode.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/quopri_codec.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/raw_unicode_escape.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/rot_13.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/shift_jis.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/shift_jis_2004.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/shift_jisx0213.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/tis_620.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/undefined.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/unicode_escape.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/utf_16.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/utf_16_be.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/utf_16_le.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/utf_32.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/utf_32_be.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/utf_32_le.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/utf_7.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/utf_8.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/utf_8_sig.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/uu_codec.cpython-311.opt-1.pyc", - "windows/Win32/Lib/encodings/__pycache__/zlib_codec.cpython-311.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/aliases.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/ascii.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/base64_codec.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/big5.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/big5hkscs.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/bz2_codec.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/charmap.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp037.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp1006.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp1026.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp1125.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp1140.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp1250.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp1251.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp1252.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp1253.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp1254.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp1255.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp1256.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp1257.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp1258.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp273.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp424.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp437.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp500.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp720.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp737.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp775.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp850.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp852.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp855.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp856.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp857.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp858.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp860.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp861.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp862.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp863.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp864.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp865.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp866.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp869.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp874.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp875.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp932.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp949.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/cp950.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/euc_jis_2004.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/euc_jisx0213.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/euc_jp.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/euc_kr.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/gb18030.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/gb2312.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/gbk.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/hex_codec.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/hp_roman8.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/hz.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/idna.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso2022_jp.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso2022_jp_1.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso2022_jp_2.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso2022_jp_2004.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso2022_jp_3.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso2022_jp_ext.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso2022_kr.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_1.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_10.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_11.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_13.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_14.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_15.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_16.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_2.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_3.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_4.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_5.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_6.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_7.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_8.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/iso8859_9.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/johab.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/koi8_r.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/koi8_t.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/koi8_u.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/kz1048.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/latin_1.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/mac_arabic.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/mac_croatian.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/mac_cyrillic.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/mac_farsi.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/mac_greek.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/mac_iceland.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/mac_latin2.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/mac_roman.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/mac_romanian.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/mac_turkish.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/mbcs.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/oem.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/palmos.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/ptcp154.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/punycode.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/quopri_codec.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/raw_unicode_escape.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/rot_13.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/shift_jis.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/shift_jis_2004.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/shift_jisx0213.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/tis_620.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/undefined.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/unicode_escape.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/utf_16.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/utf_16_be.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/utf_16_le.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/utf_32.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/utf_32_be.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/utf_32_le.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/utf_7.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/utf_8.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/utf_8_sig.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/uu_codec.cpython-312.opt-1.pyc", + "windows/Win32/Lib/encodings/__pycache__/zlib_codec.cpython-312.opt-1.pyc", "windows/Win32/Lib/encodings/aliases.py", "windows/Win32/Lib/encodings/ascii.py", "windows/Win32/Lib/encodings/base64_codec.py", @@ -5204,46 +5173,45 @@ "windows/Win32/Lib/heapq.py", "windows/Win32/Lib/hmac.py", "windows/Win32/Lib/html/__init__.py", - "windows/Win32/Lib/html/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/html/__pycache__/entities.cpython-311.opt-1.pyc", - "windows/Win32/Lib/html/__pycache__/parser.cpython-311.opt-1.pyc", + "windows/Win32/Lib/html/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/html/__pycache__/entities.cpython-312.opt-1.pyc", + "windows/Win32/Lib/html/__pycache__/parser.cpython-312.opt-1.pyc", "windows/Win32/Lib/html/entities.py", "windows/Win32/Lib/html/parser.py", "windows/Win32/Lib/http/__init__.py", - "windows/Win32/Lib/http/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/http/__pycache__/client.cpython-311.opt-1.pyc", - "windows/Win32/Lib/http/__pycache__/cookiejar.cpython-311.opt-1.pyc", - "windows/Win32/Lib/http/__pycache__/cookies.cpython-311.opt-1.pyc", - "windows/Win32/Lib/http/__pycache__/server.cpython-311.opt-1.pyc", + "windows/Win32/Lib/http/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/http/__pycache__/client.cpython-312.opt-1.pyc", + "windows/Win32/Lib/http/__pycache__/cookiejar.cpython-312.opt-1.pyc", + "windows/Win32/Lib/http/__pycache__/cookies.cpython-312.opt-1.pyc", + "windows/Win32/Lib/http/__pycache__/server.cpython-312.opt-1.pyc", "windows/Win32/Lib/http/client.py", "windows/Win32/Lib/http/cookiejar.py", "windows/Win32/Lib/http/cookies.py", "windows/Win32/Lib/http/server.py", "windows/Win32/Lib/imghdr.py", - "windows/Win32/Lib/imp.py", "windows/Win32/Lib/importlib/__init__.py", - "windows/Win32/Lib/importlib/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/__pycache__/_abc.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/__pycache__/_bootstrap.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/__pycache__/_bootstrap_external.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/__pycache__/abc.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/__pycache__/machinery.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/__pycache__/readers.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/__pycache__/simple.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/__pycache__/util.cpython-311.opt-1.pyc", + "windows/Win32/Lib/importlib/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/__pycache__/_abc.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/__pycache__/_bootstrap.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/__pycache__/_bootstrap_external.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/__pycache__/abc.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/__pycache__/machinery.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/__pycache__/readers.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/__pycache__/simple.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/__pycache__/util.cpython-312.opt-1.pyc", "windows/Win32/Lib/importlib/_abc.py", "windows/Win32/Lib/importlib/_bootstrap.py", "windows/Win32/Lib/importlib/_bootstrap_external.py", "windows/Win32/Lib/importlib/abc.py", "windows/Win32/Lib/importlib/machinery.py", "windows/Win32/Lib/importlib/metadata/__init__.py", - "windows/Win32/Lib/importlib/metadata/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/metadata/__pycache__/_adapters.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/metadata/__pycache__/_collections.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/metadata/__pycache__/_functools.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/metadata/__pycache__/_itertools.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/metadata/__pycache__/_meta.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/metadata/__pycache__/_text.cpython-311.opt-1.pyc", + "windows/Win32/Lib/importlib/metadata/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/metadata/__pycache__/_adapters.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/metadata/__pycache__/_collections.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/metadata/__pycache__/_functools.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/metadata/__pycache__/_itertools.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/metadata/__pycache__/_meta.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/metadata/__pycache__/_text.cpython-312.opt-1.pyc", "windows/Win32/Lib/importlib/metadata/_adapters.py", "windows/Win32/Lib/importlib/metadata/_collections.py", "windows/Win32/Lib/importlib/metadata/_functools.py", @@ -5252,14 +5220,14 @@ "windows/Win32/Lib/importlib/metadata/_text.py", "windows/Win32/Lib/importlib/readers.py", "windows/Win32/Lib/importlib/resources/__init__.py", - "windows/Win32/Lib/importlib/resources/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/resources/__pycache__/_adapters.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/resources/__pycache__/_common.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/resources/__pycache__/_itertools.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/resources/__pycache__/_legacy.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/resources/__pycache__/abc.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/resources/__pycache__/readers.cpython-311.opt-1.pyc", - "windows/Win32/Lib/importlib/resources/__pycache__/simple.cpython-311.opt-1.pyc", + "windows/Win32/Lib/importlib/resources/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/resources/__pycache__/_adapters.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/resources/__pycache__/_common.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/resources/__pycache__/_itertools.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/resources/__pycache__/_legacy.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/resources/__pycache__/abc.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/resources/__pycache__/readers.cpython-312.opt-1.pyc", + "windows/Win32/Lib/importlib/resources/__pycache__/simple.cpython-312.opt-1.pyc", "windows/Win32/Lib/importlib/resources/_adapters.py", "windows/Win32/Lib/importlib/resources/_common.py", "windows/Win32/Lib/importlib/resources/_itertools.py", @@ -5273,11 +5241,11 @@ "windows/Win32/Lib/io.py", "windows/Win32/Lib/ipaddress.py", "windows/Win32/Lib/json/__init__.py", - "windows/Win32/Lib/json/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/json/__pycache__/decoder.cpython-311.opt-1.pyc", - "windows/Win32/Lib/json/__pycache__/encoder.cpython-311.opt-1.pyc", - "windows/Win32/Lib/json/__pycache__/scanner.cpython-311.opt-1.pyc", - "windows/Win32/Lib/json/__pycache__/tool.cpython-311.opt-1.pyc", + "windows/Win32/Lib/json/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/json/__pycache__/decoder.cpython-312.opt-1.pyc", + "windows/Win32/Lib/json/__pycache__/encoder.cpython-312.opt-1.pyc", + "windows/Win32/Lib/json/__pycache__/scanner.cpython-312.opt-1.pyc", + "windows/Win32/Lib/json/__pycache__/tool.cpython-312.opt-1.pyc", "windows/Win32/Lib/json/decoder.py", "windows/Win32/Lib/json/encoder.py", "windows/Win32/Lib/json/scanner.py", @@ -5286,9 +5254,9 @@ "windows/Win32/Lib/linecache.py", "windows/Win32/Lib/locale.py", "windows/Win32/Lib/logging/__init__.py", - "windows/Win32/Lib/logging/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/logging/__pycache__/config.cpython-311.opt-1.pyc", - "windows/Win32/Lib/logging/__pycache__/handlers.cpython-311.opt-1.pyc", + "windows/Win32/Lib/logging/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/logging/__pycache__/config.cpython-312.opt-1.pyc", + "windows/Win32/Lib/logging/__pycache__/handlers.cpython-312.opt-1.pyc", "windows/Win32/Lib/logging/config.py", "windows/Win32/Lib/logging/handlers.py", "windows/Win32/Lib/lzma.py", @@ -5326,11 +5294,11 @@ "windows/Win32/Lib/quopri.py", "windows/Win32/Lib/random.py", "windows/Win32/Lib/re/__init__.py", - "windows/Win32/Lib/re/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/re/__pycache__/_casefix.cpython-311.opt-1.pyc", - "windows/Win32/Lib/re/__pycache__/_compiler.cpython-311.opt-1.pyc", - "windows/Win32/Lib/re/__pycache__/_constants.cpython-311.opt-1.pyc", - "windows/Win32/Lib/re/__pycache__/_parser.cpython-311.opt-1.pyc", + "windows/Win32/Lib/re/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/re/__pycache__/_casefix.cpython-312.opt-1.pyc", + "windows/Win32/Lib/re/__pycache__/_compiler.cpython-312.opt-1.pyc", + "windows/Win32/Lib/re/__pycache__/_constants.cpython-312.opt-1.pyc", + "windows/Win32/Lib/re/__pycache__/_parser.cpython-312.opt-1.pyc", "windows/Win32/Lib/re/_casefix.py", "windows/Win32/Lib/re/_compiler.py", "windows/Win32/Lib/re/_constants.py", @@ -5346,15 +5314,16 @@ "windows/Win32/Lib/shutil.py", "windows/Win32/Lib/signal.py", "windows/Win32/Lib/site.py", - "windows/Win32/Lib/smtpd.py", "windows/Win32/Lib/smtplib.py", "windows/Win32/Lib/sndhdr.py", "windows/Win32/Lib/socket.py", "windows/Win32/Lib/socketserver.py", "windows/Win32/Lib/sqlite3/__init__.py", - "windows/Win32/Lib/sqlite3/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/sqlite3/__pycache__/dbapi2.cpython-311.opt-1.pyc", - "windows/Win32/Lib/sqlite3/__pycache__/dump.cpython-311.opt-1.pyc", + "windows/Win32/Lib/sqlite3/__main__.py", + "windows/Win32/Lib/sqlite3/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/sqlite3/__pycache__/__main__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/sqlite3/__pycache__/dbapi2.cpython-312.opt-1.pyc", + "windows/Win32/Lib/sqlite3/__pycache__/dump.cpython-312.opt-1.pyc", "windows/Win32/Lib/sqlite3/dbapi2.py", "windows/Win32/Lib/sqlite3/dump.py", "windows/Win32/Lib/sre_compile.py", @@ -5381,10 +5350,10 @@ "windows/Win32/Lib/token.py", "windows/Win32/Lib/tokenize.py", "windows/Win32/Lib/tomllib/__init__.py", - "windows/Win32/Lib/tomllib/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/tomllib/__pycache__/_parser.cpython-311.opt-1.pyc", - "windows/Win32/Lib/tomllib/__pycache__/_re.cpython-311.opt-1.pyc", - "windows/Win32/Lib/tomllib/__pycache__/_types.cpython-311.opt-1.pyc", + "windows/Win32/Lib/tomllib/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/tomllib/__pycache__/_parser.cpython-312.opt-1.pyc", + "windows/Win32/Lib/tomllib/__pycache__/_re.cpython-312.opt-1.pyc", + "windows/Win32/Lib/tomllib/__pycache__/_types.cpython-312.opt-1.pyc", "windows/Win32/Lib/tomllib/_parser.py", "windows/Win32/Lib/tomllib/_re.py", "windows/Win32/Lib/tomllib/_types.py", @@ -5395,12 +5364,12 @@ "windows/Win32/Lib/types.py", "windows/Win32/Lib/typing.py", "windows/Win32/Lib/urllib/__init__.py", - "windows/Win32/Lib/urllib/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/urllib/__pycache__/error.cpython-311.opt-1.pyc", - "windows/Win32/Lib/urllib/__pycache__/parse.cpython-311.opt-1.pyc", - "windows/Win32/Lib/urllib/__pycache__/request.cpython-311.opt-1.pyc", - "windows/Win32/Lib/urllib/__pycache__/response.cpython-311.opt-1.pyc", - "windows/Win32/Lib/urllib/__pycache__/robotparser.cpython-311.opt-1.pyc", + "windows/Win32/Lib/urllib/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/urllib/__pycache__/error.cpython-312.opt-1.pyc", + "windows/Win32/Lib/urllib/__pycache__/parse.cpython-312.opt-1.pyc", + "windows/Win32/Lib/urllib/__pycache__/request.cpython-312.opt-1.pyc", + "windows/Win32/Lib/urllib/__pycache__/response.cpython-312.opt-1.pyc", + "windows/Win32/Lib/urllib/__pycache__/robotparser.cpython-312.opt-1.pyc", "windows/Win32/Lib/urllib/error.py", "windows/Win32/Lib/urllib/parse.py", "windows/Win32/Lib/urllib/request.py", @@ -5414,17 +5383,17 @@ "windows/Win32/Lib/webbrowser.py", "windows/Win32/Lib/xdrlib.py", "windows/Win32/Lib/xml/__init__.py", - "windows/Win32/Lib/xml/__pycache__/__init__.cpython-311.opt-1.pyc", + "windows/Win32/Lib/xml/__pycache__/__init__.cpython-312.opt-1.pyc", "windows/Win32/Lib/xml/dom/NodeFilter.py", "windows/Win32/Lib/xml/dom/__init__.py", - "windows/Win32/Lib/xml/dom/__pycache__/NodeFilter.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/dom/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/dom/__pycache__/domreg.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/dom/__pycache__/expatbuilder.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/dom/__pycache__/minicompat.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/dom/__pycache__/minidom.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/dom/__pycache__/pulldom.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/dom/__pycache__/xmlbuilder.cpython-311.opt-1.pyc", + "windows/Win32/Lib/xml/dom/__pycache__/NodeFilter.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/dom/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/dom/__pycache__/domreg.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/dom/__pycache__/expatbuilder.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/dom/__pycache__/minicompat.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/dom/__pycache__/minidom.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/dom/__pycache__/pulldom.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/dom/__pycache__/xmlbuilder.cpython-312.opt-1.pyc", "windows/Win32/Lib/xml/dom/domreg.py", "windows/Win32/Lib/xml/dom/expatbuilder.py", "windows/Win32/Lib/xml/dom/minicompat.py", @@ -5435,42 +5404,49 @@ "windows/Win32/Lib/xml/etree/ElementPath.py", "windows/Win32/Lib/xml/etree/ElementTree.py", "windows/Win32/Lib/xml/etree/__init__.py", - "windows/Win32/Lib/xml/etree/__pycache__/ElementInclude.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/etree/__pycache__/ElementPath.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/etree/__pycache__/ElementTree.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/etree/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/etree/__pycache__/cElementTree.cpython-311.opt-1.pyc", + "windows/Win32/Lib/xml/etree/__pycache__/ElementInclude.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/etree/__pycache__/ElementPath.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/etree/__pycache__/ElementTree.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/etree/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/etree/__pycache__/cElementTree.cpython-312.opt-1.pyc", "windows/Win32/Lib/xml/etree/cElementTree.py", "windows/Win32/Lib/xml/parsers/__init__.py", - "windows/Win32/Lib/xml/parsers/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/parsers/__pycache__/expat.cpython-311.opt-1.pyc", + "windows/Win32/Lib/xml/parsers/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/parsers/__pycache__/expat.cpython-312.opt-1.pyc", "windows/Win32/Lib/xml/parsers/expat.py", "windows/Win32/Lib/xml/sax/__init__.py", - "windows/Win32/Lib/xml/sax/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/sax/__pycache__/_exceptions.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/sax/__pycache__/expatreader.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/sax/__pycache__/handler.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/sax/__pycache__/saxutils.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xml/sax/__pycache__/xmlreader.cpython-311.opt-1.pyc", + "windows/Win32/Lib/xml/sax/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/sax/__pycache__/_exceptions.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/sax/__pycache__/expatreader.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/sax/__pycache__/handler.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/sax/__pycache__/saxutils.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xml/sax/__pycache__/xmlreader.cpython-312.opt-1.pyc", "windows/Win32/Lib/xml/sax/_exceptions.py", "windows/Win32/Lib/xml/sax/expatreader.py", "windows/Win32/Lib/xml/sax/handler.py", "windows/Win32/Lib/xml/sax/saxutils.py", "windows/Win32/Lib/xml/sax/xmlreader.py", "windows/Win32/Lib/xmlrpc/__init__.py", - "windows/Win32/Lib/xmlrpc/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xmlrpc/__pycache__/client.cpython-311.opt-1.pyc", - "windows/Win32/Lib/xmlrpc/__pycache__/server.cpython-311.opt-1.pyc", + "windows/Win32/Lib/xmlrpc/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xmlrpc/__pycache__/client.cpython-312.opt-1.pyc", + "windows/Win32/Lib/xmlrpc/__pycache__/server.cpython-312.opt-1.pyc", "windows/Win32/Lib/xmlrpc/client.py", "windows/Win32/Lib/xmlrpc/server.py", "windows/Win32/Lib/zipapp.py", - "windows/Win32/Lib/zipfile.py", + "windows/Win32/Lib/zipfile/__init__.py", + "windows/Win32/Lib/zipfile/__main__.py", + "windows/Win32/Lib/zipfile/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/zipfile/__pycache__/__main__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/zipfile/_path/__init__.py", + "windows/Win32/Lib/zipfile/_path/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/zipfile/_path/__pycache__/glob.cpython-312.opt-1.pyc", + "windows/Win32/Lib/zipfile/_path/glob.py", "windows/Win32/Lib/zipimport.py", "windows/Win32/Lib/zoneinfo/__init__.py", - "windows/Win32/Lib/zoneinfo/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/Win32/Lib/zoneinfo/__pycache__/_common.cpython-311.opt-1.pyc", - "windows/Win32/Lib/zoneinfo/__pycache__/_tzpath.cpython-311.opt-1.pyc", - "windows/Win32/Lib/zoneinfo/__pycache__/_zoneinfo.cpython-311.opt-1.pyc", + "windows/Win32/Lib/zoneinfo/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/Win32/Lib/zoneinfo/__pycache__/_common.cpython-312.opt-1.pyc", + "windows/Win32/Lib/zoneinfo/__pycache__/_tzpath.cpython-312.opt-1.pyc", + "windows/Win32/Lib/zoneinfo/__pycache__/_zoneinfo.cpython-312.opt-1.pyc", "windows/Win32/Lib/zoneinfo/_common.py", "windows/Win32/Lib/zoneinfo/_tzpath.py", "windows/Win32/Lib/zoneinfo/_zoneinfo.py", @@ -5481,8 +5457,8 @@ "windows/Win32/msvcp140d.dll", "windows/Win32/ogg.dll", "windows/Win32/python.exe", - "windows/Win32/python311.dll", - "windows/Win32/python311_d.dll", + "windows/Win32/python312.dll", + "windows/Win32/python312_d.dll", "windows/Win32/python_d.exe", "windows/Win32/pythonw.exe", "windows/Win32/pythonw_d.exe", @@ -5523,6 +5499,8 @@ "windows/x64/DLLs/_testbuffer_d.pyd", "windows/x64/DLLs/_testcapi.pyd", "windows/x64/DLLs/_testcapi_d.pyd", + "windows/x64/DLLs/_testclinic.pyd", + "windows/x64/DLLs/_testclinic_d.pyd", "windows/x64/DLLs/_testconsole.pyd", "windows/x64/DLLs/_testconsole_d.pyd", "windows/x64/DLLs/_testimportmultiple.pyd", @@ -5531,20 +5509,23 @@ "windows/x64/DLLs/_testinternalcapi_d.pyd", "windows/x64/DLLs/_testmultiphase.pyd", "windows/x64/DLLs/_testmultiphase_d.pyd", + "windows/x64/DLLs/_testsinglephase.pyd", + "windows/x64/DLLs/_testsinglephase_d.pyd", "windows/x64/DLLs/_tkinter.pyd", "windows/x64/DLLs/_tkinter_d.lib", "windows/x64/DLLs/_tkinter_d.pyd", "windows/x64/DLLs/_uuid.pyd", "windows/x64/DLLs/_uuid_d.pyd", + "windows/x64/DLLs/_wmi.pyd", + "windows/x64/DLLs/_wmi_d.pyd", "windows/x64/DLLs/_zoneinfo.pyd", "windows/x64/DLLs/_zoneinfo_d.pyd", - "windows/x64/DLLs/libcrypto-1_1.dll", + "windows/x64/DLLs/libcrypto-3.dll", "windows/x64/DLLs/libffi-8.dll", - "windows/x64/DLLs/libssl-1_1.dll", + "windows/x64/DLLs/libssl-3.dll", "windows/x64/DLLs/pyexpat.pyd", "windows/x64/DLLs/pyexpat_d.pyd", "windows/x64/DLLs/python_lib.cat", - "windows/x64/DLLs/python_tools.cat", "windows/x64/DLLs/select.pyd", "windows/x64/DLLs/select_d.pyd", "windows/x64/DLLs/sqlite3.dll", @@ -5555,183 +5536,181 @@ "windows/x64/DLLs/unicodedata_d.pyd", "windows/x64/DLLs/winsound.pyd", "windows/x64/DLLs/winsound_d.pyd", + "windows/x64/DLLs/zlib1.dll", "windows/x64/Lib/__future__.py", "windows/x64/Lib/__hello__.py", - "windows/x64/Lib/__pycache__/__future__.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/__hello__.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_aix_support.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_bootsubprocess.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_collections_abc.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_compat_pickle.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_compression.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_markupbase.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_osx_support.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_py_abc.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_pydecimal.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_pyio.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_sitebuiltins.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_strptime.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_threading_local.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/_weakrefset.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/abc.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/aifc.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/antigravity.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/argparse.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/ast.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/asynchat.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/asyncore.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/base64.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/bdb.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/bisect.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/bz2.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/cProfile.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/calendar.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/cgi.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/cgitb.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/chunk.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/cmd.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/code.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/codecs.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/codeop.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/colorsys.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/compileall.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/configparser.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/contextlib.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/contextvars.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/copy.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/copyreg.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/crypt.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/csv.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/dataclasses.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/datetime.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/decimal.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/difflib.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/dis.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/doctest.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/enum.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/filecmp.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/fileinput.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/fnmatch.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/fractions.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/ftplib.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/functools.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/genericpath.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/getopt.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/getpass.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/gettext.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/glob.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/graphlib.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/gzip.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/hashlib.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/heapq.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/hmac.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/imghdr.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/imp.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/inspect.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/io.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/ipaddress.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/keyword.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/linecache.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/locale.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/lzma.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/mailbox.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/mailcap.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/mimetypes.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/modulefinder.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/netrc.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/nntplib.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/ntpath.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/nturl2path.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/numbers.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/opcode.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/operator.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/optparse.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/os.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/pathlib.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/pdb.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/pickle.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/pickletools.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/pipes.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/pkgutil.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/platform.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/plistlib.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/poplib.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/posixpath.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/pprint.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/profile.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/pstats.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/pty.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/py_compile.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/pyclbr.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/pydoc.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/queue.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/quopri.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/random.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/reprlib.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/rlcompleter.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/runpy.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/sched.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/secrets.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/selectors.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/shelve.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/shlex.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/shutil.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/signal.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/site.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/smtpd.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/smtplib.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/sndhdr.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/socket.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/socketserver.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/sre_compile.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/sre_constants.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/sre_parse.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/ssl.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/stat.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/statistics.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/string.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/stringprep.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/struct.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/subprocess.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/sunau.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/symtable.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/sysconfig.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/tabnanny.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/tarfile.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/telnetlib.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/tempfile.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/textwrap.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/this.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/threading.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/timeit.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/token.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/tokenize.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/trace.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/traceback.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/tracemalloc.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/tty.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/types.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/typing.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/uu.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/uuid.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/warnings.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/wave.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/weakref.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/webbrowser.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/xdrlib.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/zipapp.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/zipfile.cpython-311.opt-1.pyc", - "windows/x64/Lib/__pycache__/zipimport.cpython-311.opt-1.pyc", + "windows/x64/Lib/__pycache__/__future__.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/__hello__.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_aix_support.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_collections_abc.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_compat_pickle.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_compression.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_markupbase.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_osx_support.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_py_abc.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_pydatetime.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_pydecimal.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_pyio.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_pylong.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_sitebuiltins.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_strptime.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_threading_local.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/_weakrefset.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/abc.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/aifc.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/antigravity.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/argparse.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/ast.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/base64.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/bdb.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/bisect.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/bz2.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/cProfile.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/calendar.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/cgi.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/cgitb.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/chunk.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/cmd.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/code.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/codecs.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/codeop.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/colorsys.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/compileall.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/configparser.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/contextlib.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/contextvars.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/copy.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/copyreg.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/crypt.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/csv.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/dataclasses.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/datetime.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/decimal.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/difflib.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/dis.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/doctest.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/enum.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/filecmp.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/fileinput.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/fnmatch.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/fractions.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/ftplib.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/functools.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/genericpath.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/getopt.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/getpass.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/gettext.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/glob.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/graphlib.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/gzip.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/hashlib.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/heapq.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/hmac.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/imghdr.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/inspect.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/io.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/ipaddress.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/keyword.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/linecache.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/locale.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/lzma.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/mailbox.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/mailcap.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/mimetypes.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/modulefinder.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/netrc.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/nntplib.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/ntpath.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/nturl2path.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/numbers.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/opcode.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/operator.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/optparse.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/os.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/pathlib.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/pdb.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/pickle.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/pickletools.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/pipes.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/pkgutil.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/platform.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/plistlib.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/poplib.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/posixpath.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/pprint.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/profile.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/pstats.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/pty.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/py_compile.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/pyclbr.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/pydoc.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/queue.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/quopri.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/random.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/reprlib.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/rlcompleter.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/runpy.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/sched.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/secrets.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/selectors.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/shelve.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/shlex.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/shutil.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/signal.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/site.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/smtplib.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/sndhdr.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/socket.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/socketserver.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/sre_compile.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/sre_constants.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/sre_parse.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/ssl.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/stat.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/statistics.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/string.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/stringprep.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/struct.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/subprocess.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/sunau.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/symtable.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/sysconfig.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/tabnanny.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/tarfile.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/telnetlib.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/tempfile.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/textwrap.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/this.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/threading.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/timeit.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/token.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/tokenize.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/trace.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/traceback.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/tracemalloc.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/tty.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/types.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/typing.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/uu.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/uuid.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/warnings.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/wave.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/weakref.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/webbrowser.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/xdrlib.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/zipapp.cpython-312.opt-1.pyc", + "windows/x64/Lib/__pycache__/zipimport.cpython-312.opt-1.pyc", "windows/x64/Lib/_aix_support.py", - "windows/x64/Lib/_bootsubprocess.py", "windows/x64/Lib/_collections_abc.py", "windows/x64/Lib/_compat_pickle.py", "windows/x64/Lib/_compression.py", "windows/x64/Lib/_markupbase.py", "windows/x64/Lib/_osx_support.py", "windows/x64/Lib/_py_abc.py", + "windows/x64/Lib/_pydatetime.py", "windows/x64/Lib/_pydecimal.py", "windows/x64/Lib/_pyio.py", + "windows/x64/Lib/_pylong.py", "windows/x64/Lib/_sitebuiltins.py", "windows/x64/Lib/_strptime.py", "windows/x64/Lib/_threading_local.py", @@ -5741,42 +5720,41 @@ "windows/x64/Lib/antigravity.py", "windows/x64/Lib/argparse.py", "windows/x64/Lib/ast.py", - "windows/x64/Lib/asynchat.py", "windows/x64/Lib/asyncio/__init__.py", "windows/x64/Lib/asyncio/__main__.py", - "windows/x64/Lib/asyncio/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/__main__.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/base_events.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/base_futures.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/base_subprocess.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/base_tasks.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/constants.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/coroutines.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/events.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/exceptions.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/format_helpers.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/futures.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/locks.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/log.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/mixins.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/proactor_events.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/protocols.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/queues.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/runners.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/selector_events.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/sslproto.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/staggered.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/streams.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/subprocess.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/taskgroups.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/tasks.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/threads.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/timeouts.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/transports.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/trsock.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/unix_events.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/windows_events.cpython-311.opt-1.pyc", - "windows/x64/Lib/asyncio/__pycache__/windows_utils.cpython-311.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/__main__.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/base_events.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/base_futures.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/base_subprocess.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/base_tasks.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/constants.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/coroutines.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/events.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/exceptions.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/format_helpers.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/futures.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/locks.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/log.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/mixins.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/proactor_events.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/protocols.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/queues.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/runners.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/selector_events.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/sslproto.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/staggered.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/streams.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/subprocess.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/taskgroups.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/tasks.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/threads.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/timeouts.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/transports.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/trsock.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/unix_events.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/windows_events.cpython-312.opt-1.pyc", + "windows/x64/Lib/asyncio/__pycache__/windows_utils.cpython-312.opt-1.pyc", "windows/x64/Lib/asyncio/base_events.py", "windows/x64/Lib/asyncio/base_futures.py", "windows/x64/Lib/asyncio/base_subprocess.py", @@ -5808,7 +5786,6 @@ "windows/x64/Lib/asyncio/unix_events.py", "windows/x64/Lib/asyncio/windows_events.py", "windows/x64/Lib/asyncio/windows_utils.py", - "windows/x64/Lib/asyncore.py", "windows/x64/Lib/base64.py", "windows/x64/Lib/bdb.py", "windows/x64/Lib/bisect.py", @@ -5823,18 +5800,18 @@ "windows/x64/Lib/codecs.py", "windows/x64/Lib/codeop.py", "windows/x64/Lib/collections/__init__.py", - "windows/x64/Lib/collections/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/collections/__pycache__/abc.cpython-311.opt-1.pyc", + "windows/x64/Lib/collections/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/collections/__pycache__/abc.cpython-312.opt-1.pyc", "windows/x64/Lib/collections/abc.py", "windows/x64/Lib/colorsys.py", "windows/x64/Lib/compileall.py", "windows/x64/Lib/concurrent/__init__.py", - "windows/x64/Lib/concurrent/__pycache__/__init__.cpython-311.opt-1.pyc", + "windows/x64/Lib/concurrent/__pycache__/__init__.cpython-312.opt-1.pyc", "windows/x64/Lib/concurrent/futures/__init__.py", - "windows/x64/Lib/concurrent/futures/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/concurrent/futures/__pycache__/_base.cpython-311.opt-1.pyc", - "windows/x64/Lib/concurrent/futures/__pycache__/process.cpython-311.opt-1.pyc", - "windows/x64/Lib/concurrent/futures/__pycache__/thread.cpython-311.opt-1.pyc", + "windows/x64/Lib/concurrent/futures/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/concurrent/futures/__pycache__/_base.cpython-312.opt-1.pyc", + "windows/x64/Lib/concurrent/futures/__pycache__/process.cpython-312.opt-1.pyc", + "windows/x64/Lib/concurrent/futures/__pycache__/thread.cpython-312.opt-1.pyc", "windows/x64/Lib/concurrent/futures/_base.py", "windows/x64/Lib/concurrent/futures/process.py", "windows/x64/Lib/concurrent/futures/thread.py", @@ -5846,29 +5823,29 @@ "windows/x64/Lib/crypt.py", "windows/x64/Lib/csv.py", "windows/x64/Lib/ctypes/__init__.py", - "windows/x64/Lib/ctypes/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/ctypes/__pycache__/_aix.cpython-311.opt-1.pyc", - "windows/x64/Lib/ctypes/__pycache__/_endian.cpython-311.opt-1.pyc", - "windows/x64/Lib/ctypes/__pycache__/util.cpython-311.opt-1.pyc", - "windows/x64/Lib/ctypes/__pycache__/wintypes.cpython-311.opt-1.pyc", + "windows/x64/Lib/ctypes/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/ctypes/__pycache__/_aix.cpython-312.opt-1.pyc", + "windows/x64/Lib/ctypes/__pycache__/_endian.cpython-312.opt-1.pyc", + "windows/x64/Lib/ctypes/__pycache__/util.cpython-312.opt-1.pyc", + "windows/x64/Lib/ctypes/__pycache__/wintypes.cpython-312.opt-1.pyc", "windows/x64/Lib/ctypes/_aix.py", "windows/x64/Lib/ctypes/_endian.py", "windows/x64/Lib/ctypes/macholib/__init__.py", - "windows/x64/Lib/ctypes/macholib/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/ctypes/macholib/__pycache__/dyld.cpython-311.opt-1.pyc", - "windows/x64/Lib/ctypes/macholib/__pycache__/dylib.cpython-311.opt-1.pyc", - "windows/x64/Lib/ctypes/macholib/__pycache__/framework.cpython-311.opt-1.pyc", + "windows/x64/Lib/ctypes/macholib/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/ctypes/macholib/__pycache__/dyld.cpython-312.opt-1.pyc", + "windows/x64/Lib/ctypes/macholib/__pycache__/dylib.cpython-312.opt-1.pyc", + "windows/x64/Lib/ctypes/macholib/__pycache__/framework.cpython-312.opt-1.pyc", "windows/x64/Lib/ctypes/macholib/dyld.py", "windows/x64/Lib/ctypes/macholib/dylib.py", "windows/x64/Lib/ctypes/macholib/framework.py", "windows/x64/Lib/ctypes/util.py", "windows/x64/Lib/ctypes/wintypes.py", "windows/x64/Lib/curses/__init__.py", - "windows/x64/Lib/curses/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/curses/__pycache__/ascii.cpython-311.opt-1.pyc", - "windows/x64/Lib/curses/__pycache__/has_key.cpython-311.opt-1.pyc", - "windows/x64/Lib/curses/__pycache__/panel.cpython-311.opt-1.pyc", - "windows/x64/Lib/curses/__pycache__/textpad.cpython-311.opt-1.pyc", + "windows/x64/Lib/curses/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/curses/__pycache__/ascii.cpython-312.opt-1.pyc", + "windows/x64/Lib/curses/__pycache__/has_key.cpython-312.opt-1.pyc", + "windows/x64/Lib/curses/__pycache__/panel.cpython-312.opt-1.pyc", + "windows/x64/Lib/curses/__pycache__/textpad.cpython-312.opt-1.pyc", "windows/x64/Lib/curses/ascii.py", "windows/x64/Lib/curses/has_key.py", "windows/x64/Lib/curses/panel.py", @@ -5880,26 +5857,26 @@ "windows/x64/Lib/dis.py", "windows/x64/Lib/doctest.py", "windows/x64/Lib/email/__init__.py", - "windows/x64/Lib/email/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/_encoded_words.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/_header_value_parser.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/_parseaddr.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/_policybase.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/base64mime.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/charset.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/contentmanager.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/encoders.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/errors.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/feedparser.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/generator.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/header.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/headerregistry.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/iterators.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/message.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/parser.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/policy.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/quoprimime.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/__pycache__/utils.cpython-311.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/_encoded_words.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/_header_value_parser.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/_parseaddr.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/_policybase.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/base64mime.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/charset.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/contentmanager.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/encoders.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/errors.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/feedparser.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/generator.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/header.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/headerregistry.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/iterators.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/message.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/parser.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/policy.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/quoprimime.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/__pycache__/utils.cpython-312.opt-1.pyc", "windows/x64/Lib/email/_encoded_words.py", "windows/x64/Lib/email/_header_value_parser.py", "windows/x64/Lib/email/_parseaddr.py", @@ -5917,15 +5894,15 @@ "windows/x64/Lib/email/iterators.py", "windows/x64/Lib/email/message.py", "windows/x64/Lib/email/mime/__init__.py", - "windows/x64/Lib/email/mime/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/mime/__pycache__/application.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/mime/__pycache__/audio.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/mime/__pycache__/base.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/mime/__pycache__/image.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/mime/__pycache__/message.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/mime/__pycache__/multipart.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/mime/__pycache__/nonmultipart.cpython-311.opt-1.pyc", - "windows/x64/Lib/email/mime/__pycache__/text.cpython-311.opt-1.pyc", + "windows/x64/Lib/email/mime/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/mime/__pycache__/application.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/mime/__pycache__/audio.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/mime/__pycache__/base.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/mime/__pycache__/image.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/mime/__pycache__/message.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/mime/__pycache__/multipart.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/mime/__pycache__/nonmultipart.cpython-312.opt-1.pyc", + "windows/x64/Lib/email/mime/__pycache__/text.cpython-312.opt-1.pyc", "windows/x64/Lib/email/mime/application.py", "windows/x64/Lib/email/mime/audio.py", "windows/x64/Lib/email/mime/base.py", @@ -5939,128 +5916,128 @@ "windows/x64/Lib/email/quoprimime.py", "windows/x64/Lib/email/utils.py", "windows/x64/Lib/encodings/__init__.py", - "windows/x64/Lib/encodings/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/aliases.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/ascii.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/base64_codec.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/big5.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/big5hkscs.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/bz2_codec.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/charmap.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp037.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp1006.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp1026.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp1125.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp1140.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp1250.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp1251.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp1252.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp1253.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp1254.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp1255.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp1256.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp1257.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp1258.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp273.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp424.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp437.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp500.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp720.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp737.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp775.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp850.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp852.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp855.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp856.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp857.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp858.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp860.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp861.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp862.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp863.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp864.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp865.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp866.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp869.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp874.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp875.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp932.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp949.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/cp950.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/euc_jis_2004.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/euc_jisx0213.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/euc_jp.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/euc_kr.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/gb18030.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/gb2312.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/gbk.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/hex_codec.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/hp_roman8.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/hz.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/idna.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso2022_jp.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso2022_jp_1.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso2022_jp_2.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso2022_jp_2004.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso2022_jp_3.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso2022_jp_ext.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso2022_kr.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_1.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_10.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_11.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_13.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_14.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_15.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_16.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_2.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_3.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_4.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_5.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_6.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_7.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_8.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/iso8859_9.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/johab.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/koi8_r.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/koi8_t.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/koi8_u.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/kz1048.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/latin_1.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/mac_arabic.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/mac_croatian.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/mac_cyrillic.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/mac_farsi.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/mac_greek.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/mac_iceland.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/mac_latin2.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/mac_roman.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/mac_romanian.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/mac_turkish.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/mbcs.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/oem.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/palmos.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/ptcp154.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/punycode.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/quopri_codec.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/raw_unicode_escape.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/rot_13.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/shift_jis.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/shift_jis_2004.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/shift_jisx0213.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/tis_620.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/undefined.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/unicode_escape.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/utf_16.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/utf_16_be.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/utf_16_le.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/utf_32.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/utf_32_be.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/utf_32_le.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/utf_7.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/utf_8.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/utf_8_sig.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/uu_codec.cpython-311.opt-1.pyc", - "windows/x64/Lib/encodings/__pycache__/zlib_codec.cpython-311.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/aliases.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/ascii.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/base64_codec.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/big5.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/big5hkscs.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/bz2_codec.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/charmap.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp037.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp1006.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp1026.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp1125.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp1140.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp1250.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp1251.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp1252.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp1253.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp1254.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp1255.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp1256.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp1257.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp1258.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp273.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp424.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp437.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp500.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp720.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp737.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp775.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp850.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp852.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp855.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp856.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp857.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp858.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp860.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp861.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp862.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp863.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp864.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp865.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp866.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp869.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp874.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp875.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp932.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp949.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/cp950.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/euc_jis_2004.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/euc_jisx0213.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/euc_jp.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/euc_kr.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/gb18030.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/gb2312.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/gbk.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/hex_codec.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/hp_roman8.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/hz.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/idna.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso2022_jp.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso2022_jp_1.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso2022_jp_2.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso2022_jp_2004.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso2022_jp_3.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso2022_jp_ext.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso2022_kr.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_1.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_10.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_11.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_13.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_14.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_15.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_16.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_2.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_3.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_4.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_5.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_6.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_7.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_8.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/iso8859_9.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/johab.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/koi8_r.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/koi8_t.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/koi8_u.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/kz1048.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/latin_1.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/mac_arabic.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/mac_croatian.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/mac_cyrillic.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/mac_farsi.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/mac_greek.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/mac_iceland.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/mac_latin2.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/mac_roman.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/mac_romanian.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/mac_turkish.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/mbcs.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/oem.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/palmos.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/ptcp154.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/punycode.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/quopri_codec.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/raw_unicode_escape.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/rot_13.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/shift_jis.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/shift_jis_2004.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/shift_jisx0213.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/tis_620.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/undefined.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/unicode_escape.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/utf_16.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/utf_16_be.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/utf_16_le.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/utf_32.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/utf_32_be.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/utf_32_le.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/utf_7.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/utf_8.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/utf_8_sig.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/uu_codec.cpython-312.opt-1.pyc", + "windows/x64/Lib/encodings/__pycache__/zlib_codec.cpython-312.opt-1.pyc", "windows/x64/Lib/encodings/aliases.py", "windows/x64/Lib/encodings/ascii.py", "windows/x64/Lib/encodings/base64_codec.py", @@ -6200,46 +6177,45 @@ "windows/x64/Lib/heapq.py", "windows/x64/Lib/hmac.py", "windows/x64/Lib/html/__init__.py", - "windows/x64/Lib/html/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/html/__pycache__/entities.cpython-311.opt-1.pyc", - "windows/x64/Lib/html/__pycache__/parser.cpython-311.opt-1.pyc", + "windows/x64/Lib/html/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/html/__pycache__/entities.cpython-312.opt-1.pyc", + "windows/x64/Lib/html/__pycache__/parser.cpython-312.opt-1.pyc", "windows/x64/Lib/html/entities.py", "windows/x64/Lib/html/parser.py", "windows/x64/Lib/http/__init__.py", - "windows/x64/Lib/http/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/http/__pycache__/client.cpython-311.opt-1.pyc", - "windows/x64/Lib/http/__pycache__/cookiejar.cpython-311.opt-1.pyc", - "windows/x64/Lib/http/__pycache__/cookies.cpython-311.opt-1.pyc", - "windows/x64/Lib/http/__pycache__/server.cpython-311.opt-1.pyc", + "windows/x64/Lib/http/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/http/__pycache__/client.cpython-312.opt-1.pyc", + "windows/x64/Lib/http/__pycache__/cookiejar.cpython-312.opt-1.pyc", + "windows/x64/Lib/http/__pycache__/cookies.cpython-312.opt-1.pyc", + "windows/x64/Lib/http/__pycache__/server.cpython-312.opt-1.pyc", "windows/x64/Lib/http/client.py", "windows/x64/Lib/http/cookiejar.py", "windows/x64/Lib/http/cookies.py", "windows/x64/Lib/http/server.py", "windows/x64/Lib/imghdr.py", - "windows/x64/Lib/imp.py", "windows/x64/Lib/importlib/__init__.py", - "windows/x64/Lib/importlib/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/__pycache__/_abc.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/__pycache__/_bootstrap.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/__pycache__/_bootstrap_external.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/__pycache__/abc.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/__pycache__/machinery.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/__pycache__/readers.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/__pycache__/simple.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/__pycache__/util.cpython-311.opt-1.pyc", + "windows/x64/Lib/importlib/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/__pycache__/_abc.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/__pycache__/_bootstrap.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/__pycache__/_bootstrap_external.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/__pycache__/abc.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/__pycache__/machinery.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/__pycache__/readers.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/__pycache__/simple.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/__pycache__/util.cpython-312.opt-1.pyc", "windows/x64/Lib/importlib/_abc.py", "windows/x64/Lib/importlib/_bootstrap.py", "windows/x64/Lib/importlib/_bootstrap_external.py", "windows/x64/Lib/importlib/abc.py", "windows/x64/Lib/importlib/machinery.py", "windows/x64/Lib/importlib/metadata/__init__.py", - "windows/x64/Lib/importlib/metadata/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/metadata/__pycache__/_adapters.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/metadata/__pycache__/_collections.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/metadata/__pycache__/_functools.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/metadata/__pycache__/_itertools.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/metadata/__pycache__/_meta.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/metadata/__pycache__/_text.cpython-311.opt-1.pyc", + "windows/x64/Lib/importlib/metadata/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/metadata/__pycache__/_adapters.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/metadata/__pycache__/_collections.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/metadata/__pycache__/_functools.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/metadata/__pycache__/_itertools.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/metadata/__pycache__/_meta.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/metadata/__pycache__/_text.cpython-312.opt-1.pyc", "windows/x64/Lib/importlib/metadata/_adapters.py", "windows/x64/Lib/importlib/metadata/_collections.py", "windows/x64/Lib/importlib/metadata/_functools.py", @@ -6248,14 +6224,14 @@ "windows/x64/Lib/importlib/metadata/_text.py", "windows/x64/Lib/importlib/readers.py", "windows/x64/Lib/importlib/resources/__init__.py", - "windows/x64/Lib/importlib/resources/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/resources/__pycache__/_adapters.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/resources/__pycache__/_common.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/resources/__pycache__/_itertools.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/resources/__pycache__/_legacy.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/resources/__pycache__/abc.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/resources/__pycache__/readers.cpython-311.opt-1.pyc", - "windows/x64/Lib/importlib/resources/__pycache__/simple.cpython-311.opt-1.pyc", + "windows/x64/Lib/importlib/resources/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/resources/__pycache__/_adapters.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/resources/__pycache__/_common.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/resources/__pycache__/_itertools.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/resources/__pycache__/_legacy.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/resources/__pycache__/abc.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/resources/__pycache__/readers.cpython-312.opt-1.pyc", + "windows/x64/Lib/importlib/resources/__pycache__/simple.cpython-312.opt-1.pyc", "windows/x64/Lib/importlib/resources/_adapters.py", "windows/x64/Lib/importlib/resources/_common.py", "windows/x64/Lib/importlib/resources/_itertools.py", @@ -6269,11 +6245,11 @@ "windows/x64/Lib/io.py", "windows/x64/Lib/ipaddress.py", "windows/x64/Lib/json/__init__.py", - "windows/x64/Lib/json/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/json/__pycache__/decoder.cpython-311.opt-1.pyc", - "windows/x64/Lib/json/__pycache__/encoder.cpython-311.opt-1.pyc", - "windows/x64/Lib/json/__pycache__/scanner.cpython-311.opt-1.pyc", - "windows/x64/Lib/json/__pycache__/tool.cpython-311.opt-1.pyc", + "windows/x64/Lib/json/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/json/__pycache__/decoder.cpython-312.opt-1.pyc", + "windows/x64/Lib/json/__pycache__/encoder.cpython-312.opt-1.pyc", + "windows/x64/Lib/json/__pycache__/scanner.cpython-312.opt-1.pyc", + "windows/x64/Lib/json/__pycache__/tool.cpython-312.opt-1.pyc", "windows/x64/Lib/json/decoder.py", "windows/x64/Lib/json/encoder.py", "windows/x64/Lib/json/scanner.py", @@ -6282,9 +6258,9 @@ "windows/x64/Lib/linecache.py", "windows/x64/Lib/locale.py", "windows/x64/Lib/logging/__init__.py", - "windows/x64/Lib/logging/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/logging/__pycache__/config.cpython-311.opt-1.pyc", - "windows/x64/Lib/logging/__pycache__/handlers.cpython-311.opt-1.pyc", + "windows/x64/Lib/logging/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/logging/__pycache__/config.cpython-312.opt-1.pyc", + "windows/x64/Lib/logging/__pycache__/handlers.cpython-312.opt-1.pyc", "windows/x64/Lib/logging/config.py", "windows/x64/Lib/logging/handlers.py", "windows/x64/Lib/lzma.py", @@ -6322,11 +6298,11 @@ "windows/x64/Lib/quopri.py", "windows/x64/Lib/random.py", "windows/x64/Lib/re/__init__.py", - "windows/x64/Lib/re/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/re/__pycache__/_casefix.cpython-311.opt-1.pyc", - "windows/x64/Lib/re/__pycache__/_compiler.cpython-311.opt-1.pyc", - "windows/x64/Lib/re/__pycache__/_constants.cpython-311.opt-1.pyc", - "windows/x64/Lib/re/__pycache__/_parser.cpython-311.opt-1.pyc", + "windows/x64/Lib/re/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/re/__pycache__/_casefix.cpython-312.opt-1.pyc", + "windows/x64/Lib/re/__pycache__/_compiler.cpython-312.opt-1.pyc", + "windows/x64/Lib/re/__pycache__/_constants.cpython-312.opt-1.pyc", + "windows/x64/Lib/re/__pycache__/_parser.cpython-312.opt-1.pyc", "windows/x64/Lib/re/_casefix.py", "windows/x64/Lib/re/_compiler.py", "windows/x64/Lib/re/_constants.py", @@ -6342,15 +6318,16 @@ "windows/x64/Lib/shutil.py", "windows/x64/Lib/signal.py", "windows/x64/Lib/site.py", - "windows/x64/Lib/smtpd.py", "windows/x64/Lib/smtplib.py", "windows/x64/Lib/sndhdr.py", "windows/x64/Lib/socket.py", "windows/x64/Lib/socketserver.py", "windows/x64/Lib/sqlite3/__init__.py", - "windows/x64/Lib/sqlite3/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/sqlite3/__pycache__/dbapi2.cpython-311.opt-1.pyc", - "windows/x64/Lib/sqlite3/__pycache__/dump.cpython-311.opt-1.pyc", + "windows/x64/Lib/sqlite3/__main__.py", + "windows/x64/Lib/sqlite3/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/sqlite3/__pycache__/__main__.cpython-312.opt-1.pyc", + "windows/x64/Lib/sqlite3/__pycache__/dbapi2.cpython-312.opt-1.pyc", + "windows/x64/Lib/sqlite3/__pycache__/dump.cpython-312.opt-1.pyc", "windows/x64/Lib/sqlite3/dbapi2.py", "windows/x64/Lib/sqlite3/dump.py", "windows/x64/Lib/sre_compile.py", @@ -6377,10 +6354,10 @@ "windows/x64/Lib/token.py", "windows/x64/Lib/tokenize.py", "windows/x64/Lib/tomllib/__init__.py", - "windows/x64/Lib/tomllib/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/tomllib/__pycache__/_parser.cpython-311.opt-1.pyc", - "windows/x64/Lib/tomllib/__pycache__/_re.cpython-311.opt-1.pyc", - "windows/x64/Lib/tomllib/__pycache__/_types.cpython-311.opt-1.pyc", + "windows/x64/Lib/tomllib/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/tomllib/__pycache__/_parser.cpython-312.opt-1.pyc", + "windows/x64/Lib/tomllib/__pycache__/_re.cpython-312.opt-1.pyc", + "windows/x64/Lib/tomllib/__pycache__/_types.cpython-312.opt-1.pyc", "windows/x64/Lib/tomllib/_parser.py", "windows/x64/Lib/tomllib/_re.py", "windows/x64/Lib/tomllib/_types.py", @@ -6391,12 +6368,12 @@ "windows/x64/Lib/types.py", "windows/x64/Lib/typing.py", "windows/x64/Lib/urllib/__init__.py", - "windows/x64/Lib/urllib/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/urllib/__pycache__/error.cpython-311.opt-1.pyc", - "windows/x64/Lib/urllib/__pycache__/parse.cpython-311.opt-1.pyc", - "windows/x64/Lib/urllib/__pycache__/request.cpython-311.opt-1.pyc", - "windows/x64/Lib/urllib/__pycache__/response.cpython-311.opt-1.pyc", - "windows/x64/Lib/urllib/__pycache__/robotparser.cpython-311.opt-1.pyc", + "windows/x64/Lib/urllib/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/urllib/__pycache__/error.cpython-312.opt-1.pyc", + "windows/x64/Lib/urllib/__pycache__/parse.cpython-312.opt-1.pyc", + "windows/x64/Lib/urllib/__pycache__/request.cpython-312.opt-1.pyc", + "windows/x64/Lib/urllib/__pycache__/response.cpython-312.opt-1.pyc", + "windows/x64/Lib/urllib/__pycache__/robotparser.cpython-312.opt-1.pyc", "windows/x64/Lib/urllib/error.py", "windows/x64/Lib/urllib/parse.py", "windows/x64/Lib/urllib/request.py", @@ -6410,17 +6387,17 @@ "windows/x64/Lib/webbrowser.py", "windows/x64/Lib/xdrlib.py", "windows/x64/Lib/xml/__init__.py", - "windows/x64/Lib/xml/__pycache__/__init__.cpython-311.opt-1.pyc", + "windows/x64/Lib/xml/__pycache__/__init__.cpython-312.opt-1.pyc", "windows/x64/Lib/xml/dom/NodeFilter.py", "windows/x64/Lib/xml/dom/__init__.py", - "windows/x64/Lib/xml/dom/__pycache__/NodeFilter.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/dom/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/dom/__pycache__/domreg.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/dom/__pycache__/expatbuilder.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/dom/__pycache__/minicompat.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/dom/__pycache__/minidom.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/dom/__pycache__/pulldom.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/dom/__pycache__/xmlbuilder.cpython-311.opt-1.pyc", + "windows/x64/Lib/xml/dom/__pycache__/NodeFilter.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/dom/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/dom/__pycache__/domreg.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/dom/__pycache__/expatbuilder.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/dom/__pycache__/minicompat.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/dom/__pycache__/minidom.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/dom/__pycache__/pulldom.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/dom/__pycache__/xmlbuilder.cpython-312.opt-1.pyc", "windows/x64/Lib/xml/dom/domreg.py", "windows/x64/Lib/xml/dom/expatbuilder.py", "windows/x64/Lib/xml/dom/minicompat.py", @@ -6431,42 +6408,49 @@ "windows/x64/Lib/xml/etree/ElementPath.py", "windows/x64/Lib/xml/etree/ElementTree.py", "windows/x64/Lib/xml/etree/__init__.py", - "windows/x64/Lib/xml/etree/__pycache__/ElementInclude.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/etree/__pycache__/ElementPath.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/etree/__pycache__/ElementTree.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/etree/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/etree/__pycache__/cElementTree.cpython-311.opt-1.pyc", + "windows/x64/Lib/xml/etree/__pycache__/ElementInclude.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/etree/__pycache__/ElementPath.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/etree/__pycache__/ElementTree.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/etree/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/etree/__pycache__/cElementTree.cpython-312.opt-1.pyc", "windows/x64/Lib/xml/etree/cElementTree.py", "windows/x64/Lib/xml/parsers/__init__.py", - "windows/x64/Lib/xml/parsers/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/parsers/__pycache__/expat.cpython-311.opt-1.pyc", + "windows/x64/Lib/xml/parsers/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/parsers/__pycache__/expat.cpython-312.opt-1.pyc", "windows/x64/Lib/xml/parsers/expat.py", "windows/x64/Lib/xml/sax/__init__.py", - "windows/x64/Lib/xml/sax/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/sax/__pycache__/_exceptions.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/sax/__pycache__/expatreader.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/sax/__pycache__/handler.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/sax/__pycache__/saxutils.cpython-311.opt-1.pyc", - "windows/x64/Lib/xml/sax/__pycache__/xmlreader.cpython-311.opt-1.pyc", + "windows/x64/Lib/xml/sax/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/sax/__pycache__/_exceptions.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/sax/__pycache__/expatreader.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/sax/__pycache__/handler.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/sax/__pycache__/saxutils.cpython-312.opt-1.pyc", + "windows/x64/Lib/xml/sax/__pycache__/xmlreader.cpython-312.opt-1.pyc", "windows/x64/Lib/xml/sax/_exceptions.py", "windows/x64/Lib/xml/sax/expatreader.py", "windows/x64/Lib/xml/sax/handler.py", "windows/x64/Lib/xml/sax/saxutils.py", "windows/x64/Lib/xml/sax/xmlreader.py", "windows/x64/Lib/xmlrpc/__init__.py", - "windows/x64/Lib/xmlrpc/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/xmlrpc/__pycache__/client.cpython-311.opt-1.pyc", - "windows/x64/Lib/xmlrpc/__pycache__/server.cpython-311.opt-1.pyc", + "windows/x64/Lib/xmlrpc/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/xmlrpc/__pycache__/client.cpython-312.opt-1.pyc", + "windows/x64/Lib/xmlrpc/__pycache__/server.cpython-312.opt-1.pyc", "windows/x64/Lib/xmlrpc/client.py", "windows/x64/Lib/xmlrpc/server.py", "windows/x64/Lib/zipapp.py", - "windows/x64/Lib/zipfile.py", + "windows/x64/Lib/zipfile/__init__.py", + "windows/x64/Lib/zipfile/__main__.py", + "windows/x64/Lib/zipfile/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/zipfile/__pycache__/__main__.cpython-312.opt-1.pyc", + "windows/x64/Lib/zipfile/_path/__init__.py", + "windows/x64/Lib/zipfile/_path/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/zipfile/_path/__pycache__/glob.cpython-312.opt-1.pyc", + "windows/x64/Lib/zipfile/_path/glob.py", "windows/x64/Lib/zipimport.py", "windows/x64/Lib/zoneinfo/__init__.py", - "windows/x64/Lib/zoneinfo/__pycache__/__init__.cpython-311.opt-1.pyc", - "windows/x64/Lib/zoneinfo/__pycache__/_common.cpython-311.opt-1.pyc", - "windows/x64/Lib/zoneinfo/__pycache__/_tzpath.cpython-311.opt-1.pyc", - "windows/x64/Lib/zoneinfo/__pycache__/_zoneinfo.cpython-311.opt-1.pyc", + "windows/x64/Lib/zoneinfo/__pycache__/__init__.cpython-312.opt-1.pyc", + "windows/x64/Lib/zoneinfo/__pycache__/_common.cpython-312.opt-1.pyc", + "windows/x64/Lib/zoneinfo/__pycache__/_tzpath.cpython-312.opt-1.pyc", + "windows/x64/Lib/zoneinfo/__pycache__/_zoneinfo.cpython-312.opt-1.pyc", "windows/x64/Lib/zoneinfo/_common.py", "windows/x64/Lib/zoneinfo/_tzpath.py", "windows/x64/Lib/zoneinfo/_zoneinfo.py", @@ -6477,8 +6461,8 @@ "windows/x64/msvcp140d.dll", "windows/x64/ogg.dll", "windows/x64/python.exe", - "windows/x64/python311.dll", - "windows/x64/python311_d.dll", + "windows/x64/python312.dll", + "windows/x64/python312_d.dll", "windows/x64/python_d.exe", "windows/x64/pythonw.exe", "windows/x64/pythonw_d.exe", diff --git a/src/assets/.asset_manifest_public.json b/src/assets/.asset_manifest_public.json index 575edf24..21c9dde4 100644 --- a/src/assets/.asset_manifest_public.json +++ b/src/assets/.asset_manifest_public.json @@ -1,35 +1,35 @@ [ - "ba_data/python/__pycache__/baenv.cpython-311.opt-1.pyc", + "ba_data/python/__pycache__/baenv.cpython-312.opt-1.pyc", "ba_data/python/babase/__init__.py", - "ba_data/python/babase/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_accountv2.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_app.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_appcomponent.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_appconfig.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_appintent.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_appmode.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_appmodeselector.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_appsubsystem.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_apputils.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_assetmanager.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_asyncio.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_devconsole.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_emptyappmode.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_env.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_error.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_general.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_hooks.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_language.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_login.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_math.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_meta.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_net.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_plugin.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_stringedit.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_text.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_ui.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/_workspace.cpython-311.opt-1.pyc", - "ba_data/python/babase/__pycache__/modutils.cpython-311.opt-1.pyc", + "ba_data/python/babase/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_accountv2.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_app.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_appcomponent.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_appconfig.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_appintent.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_appmode.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_appmodeselector.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_appsubsystem.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_apputils.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_assetmanager.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_asyncio.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_devconsole.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_emptyappmode.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_env.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_error.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_general.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_hooks.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_language.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_login.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_math.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_meta.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_net.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_plugin.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_stringedit.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_text.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_ui.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/_workspace.cpython-312.opt-1.pyc", + "ba_data/python/babase/__pycache__/modutils.cpython-312.opt-1.pyc", "ba_data/python/babase/_accountv2.py", "ba_data/python/babase/_app.py", "ba_data/python/babase/_appcomponent.py", @@ -52,8 +52,8 @@ "ba_data/python/babase/_math.py", "ba_data/python/babase/_meta.py", "ba_data/python/babase/_mgen/__init__.py", - "ba_data/python/babase/_mgen/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/babase/_mgen/__pycache__/enums.cpython-311.opt-1.pyc", + "ba_data/python/babase/_mgen/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/babase/_mgen/__pycache__/enums.cpython-312.opt-1.pyc", "ba_data/python/babase/_mgen/enums.py", "ba_data/python/babase/_net.py", "ba_data/python/babase/_plugin.py", @@ -63,23 +63,23 @@ "ba_data/python/babase/_workspace.py", "ba_data/python/babase/modutils.py", "ba_data/python/baclassic/__init__.py", - "ba_data/python/baclassic/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_accountv1.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_achievement.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_ads.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_analytics.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_appdelegate.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_benchmark.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_input.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_music.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_net.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_servermode.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_store.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_subsystem.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_tips.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/_tournament.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/macmusicapp.cpython-311.opt-1.pyc", - "ba_data/python/baclassic/__pycache__/osmusic.cpython-311.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_accountv1.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_achievement.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_ads.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_analytics.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_appdelegate.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_benchmark.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_input.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_music.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_net.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_servermode.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_store.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_subsystem.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_tips.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/_tournament.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/macmusicapp.cpython-312.opt-1.pyc", + "ba_data/python/baclassic/__pycache__/osmusic.cpython-312.opt-1.pyc", "ba_data/python/baclassic/_accountv1.py", "ba_data/python/baclassic/_achievement.py", "ba_data/python/baclassic/_ads.py", @@ -97,16 +97,16 @@ "ba_data/python/baclassic/macmusicapp.py", "ba_data/python/baclassic/osmusic.py", "ba_data/python/bacommon/__init__.py", - "ba_data/python/bacommon/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bacommon/__pycache__/app.cpython-311.opt-1.pyc", - "ba_data/python/bacommon/__pycache__/assets.cpython-311.opt-1.pyc", - "ba_data/python/bacommon/__pycache__/bacloud.cpython-311.opt-1.pyc", - "ba_data/python/bacommon/__pycache__/build.cpython-311.opt-1.pyc", - "ba_data/python/bacommon/__pycache__/cloud.cpython-311.opt-1.pyc", - "ba_data/python/bacommon/__pycache__/login.cpython-311.opt-1.pyc", - "ba_data/python/bacommon/__pycache__/net.cpython-311.opt-1.pyc", - "ba_data/python/bacommon/__pycache__/servermanager.cpython-311.opt-1.pyc", - "ba_data/python/bacommon/__pycache__/transfer.cpython-311.opt-1.pyc", + "ba_data/python/bacommon/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bacommon/__pycache__/app.cpython-312.opt-1.pyc", + "ba_data/python/bacommon/__pycache__/assets.cpython-312.opt-1.pyc", + "ba_data/python/bacommon/__pycache__/bacloud.cpython-312.opt-1.pyc", + "ba_data/python/bacommon/__pycache__/build.cpython-312.opt-1.pyc", + "ba_data/python/bacommon/__pycache__/cloud.cpython-312.opt-1.pyc", + "ba_data/python/bacommon/__pycache__/login.cpython-312.opt-1.pyc", + "ba_data/python/bacommon/__pycache__/net.cpython-312.opt-1.pyc", + "ba_data/python/bacommon/__pycache__/servermanager.cpython-312.opt-1.pyc", + "ba_data/python/bacommon/__pycache__/transfer.cpython-312.opt-1.pyc", "ba_data/python/bacommon/app.py", "ba_data/python/bacommon/assets.py", "ba_data/python/bacommon/bacloud.py", @@ -118,50 +118,50 @@ "ba_data/python/bacommon/transfer.py", "ba_data/python/baenv.py", "ba_data/python/baplus/__init__.py", - "ba_data/python/baplus/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/baplus/__pycache__/_cloud.cpython-311.opt-1.pyc", - "ba_data/python/baplus/__pycache__/_hooks.cpython-311.opt-1.pyc", - "ba_data/python/baplus/__pycache__/_subsystem.cpython-311.opt-1.pyc", + "ba_data/python/baplus/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/baplus/__pycache__/_cloud.cpython-312.opt-1.pyc", + "ba_data/python/baplus/__pycache__/_hooks.cpython-312.opt-1.pyc", + "ba_data/python/baplus/__pycache__/_subsystem.cpython-312.opt-1.pyc", "ba_data/python/baplus/_cloud.py", "ba_data/python/baplus/_hooks.py", "ba_data/python/baplus/_subsystem.py", "ba_data/python/bascenev1/__init__.py", - "ba_data/python/bascenev1/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_activity.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_activitytypes.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_actor.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_appmode.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_campaign.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_collision.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_coopgame.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_coopsession.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_debug.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_dependency.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_dualteamsession.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_featureset.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_freeforallsession.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_gameactivity.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_gameresults.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_gameutils.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_hooks.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_level.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_lobby.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_map.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_messages.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_multiteamsession.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_music.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_net.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_nodeactor.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_player.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_playlist.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_powerup.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_profile.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_score.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_session.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_settings.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_stats.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_team.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1/__pycache__/_teamgame.cpython-311.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_activity.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_activitytypes.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_actor.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_appmode.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_campaign.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_collision.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_coopgame.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_coopsession.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_debug.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_dependency.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_dualteamsession.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_featureset.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_freeforallsession.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_gameactivity.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_gameresults.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_gameutils.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_hooks.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_level.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_lobby.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_map.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_messages.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_multiteamsession.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_music.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_net.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_nodeactor.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_player.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_playlist.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_powerup.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_profile.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_score.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_session.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_settings.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_stats.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_team.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1/__pycache__/_teamgame.cpython-312.opt-1.pyc", "ba_data/python/bascenev1/_activity.py", "ba_data/python/bascenev1/_activitytypes.py", "ba_data/python/bascenev1/_actor.py", @@ -198,21 +198,21 @@ "ba_data/python/bascenev1/_team.py", "ba_data/python/bascenev1/_teamgame.py", "ba_data/python/bascenev1lib/__init__.py", - "ba_data/python/bascenev1lib/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/__pycache__/gameutils.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/__pycache__/mainmenu.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/__pycache__/maps.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/__pycache__/tutorial.cpython-311.opt-1.pyc", + "ba_data/python/bascenev1lib/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/__pycache__/gameutils.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/__pycache__/mainmenu.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/__pycache__/maps.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/__pycache__/tutorial.cpython-312.opt-1.pyc", "ba_data/python/bascenev1lib/activity/__init__.py", - "ba_data/python/bascenev1lib/activity/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/activity/__pycache__/coopjoin.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/activity/__pycache__/coopscore.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/activity/__pycache__/drawscore.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/activity/__pycache__/dualteamscore.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/activity/__pycache__/freeforallvictory.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/activity/__pycache__/multiteamjoin.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/activity/__pycache__/multiteamscore.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/activity/__pycache__/multiteamvictory.cpython-311.opt-1.pyc", + "ba_data/python/bascenev1lib/activity/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/activity/__pycache__/coopjoin.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/activity/__pycache__/coopscore.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/activity/__pycache__/drawscore.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/activity/__pycache__/dualteamscore.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/activity/__pycache__/freeforallvictory.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/activity/__pycache__/multiteamjoin.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/activity/__pycache__/multiteamscore.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/activity/__pycache__/multiteamvictory.cpython-312.opt-1.pyc", "ba_data/python/bascenev1lib/activity/coopjoin.py", "ba_data/python/bascenev1lib/activity/coopscore.py", "ba_data/python/bascenev1lib/activity/drawscore.py", @@ -222,27 +222,27 @@ "ba_data/python/bascenev1lib/activity/multiteamscore.py", "ba_data/python/bascenev1lib/activity/multiteamvictory.py", "ba_data/python/bascenev1lib/actor/__init__.py", - "ba_data/python/bascenev1lib/actor/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/background.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/bomb.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/controlsguide.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/flag.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/image.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/onscreencountdown.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/onscreentimer.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/playerspaz.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/popuptext.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/powerupbox.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/respawnicon.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/scoreboard.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/spawner.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/spaz.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/spazappearance.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/spazbot.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/spazfactory.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/text.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/tipstext.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/actor/__pycache__/zoomtext.cpython-311.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/background.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/bomb.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/controlsguide.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/flag.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/image.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/onscreencountdown.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/onscreentimer.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/playerspaz.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/popuptext.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/powerupbox.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/respawnicon.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/scoreboard.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/spawner.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/spaz.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/spazappearance.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/spazbot.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/spazfactory.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/text.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/tipstext.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/actor/__pycache__/zoomtext.cpython-312.opt-1.pyc", "ba_data/python/bascenev1lib/actor/background.py", "ba_data/python/bascenev1lib/actor/bomb.py", "ba_data/python/bascenev1lib/actor/controlsguide.py", @@ -264,25 +264,25 @@ "ba_data/python/bascenev1lib/actor/tipstext.py", "ba_data/python/bascenev1lib/actor/zoomtext.py", "ba_data/python/bascenev1lib/game/__init__.py", - "ba_data/python/bascenev1lib/game/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/assault.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/capturetheflag.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/chosenone.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/conquest.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/deathmatch.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/easteregghunt.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/elimination.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/football.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/hockey.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/keepaway.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/kingofthehill.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/meteorshower.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/ninjafight.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/onslaught.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/race.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/runaround.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/targetpractice.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/game/__pycache__/thelaststand.cpython-311.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/assault.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/capturetheflag.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/chosenone.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/conquest.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/deathmatch.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/easteregghunt.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/elimination.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/football.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/hockey.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/keepaway.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/kingofthehill.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/meteorshower.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/ninjafight.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/onslaught.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/race.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/runaround.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/targetpractice.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/game/__pycache__/thelaststand.cpython-312.opt-1.pyc", "ba_data/python/bascenev1lib/game/assault.py", "ba_data/python/bascenev1lib/game/capturetheflag.py", "ba_data/python/bascenev1lib/game/chosenone.py", @@ -304,24 +304,24 @@ "ba_data/python/bascenev1lib/gameutils.py", "ba_data/python/bascenev1lib/mainmenu.py", "ba_data/python/bascenev1lib/mapdata/__init__.py", - "ba_data/python/bascenev1lib/mapdata/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/big_g.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/bridgit.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/courtyard.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/crag_castle.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/doom_shroom.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/football_stadium.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/happy_thoughts.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/hockey_stadium.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/lake_frigid.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/monkey_face.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/rampage.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/roundabout.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/step_right_up.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/the_pad.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/tip_top.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/tower_d.cpython-311.opt-1.pyc", - "ba_data/python/bascenev1lib/mapdata/__pycache__/zig_zag.cpython-311.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/big_g.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/bridgit.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/courtyard.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/crag_castle.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/doom_shroom.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/football_stadium.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/happy_thoughts.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/hockey_stadium.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/lake_frigid.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/monkey_face.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/rampage.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/roundabout.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/step_right_up.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/the_pad.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/tip_top.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/tower_d.cpython-312.opt-1.pyc", + "ba_data/python/bascenev1lib/mapdata/__pycache__/zig_zag.cpython-312.opt-1.pyc", "ba_data/python/bascenev1lib/mapdata/big_g.py", "ba_data/python/bascenev1lib/mapdata/bridgit.py", "ba_data/python/bascenev1lib/mapdata/courtyard.py", @@ -341,74 +341,74 @@ "ba_data/python/bascenev1lib/mapdata/zig_zag.py", "ba_data/python/bascenev1lib/maps.py", "ba_data/python/bascenev1lib/session/__init__.py", - "ba_data/python/bascenev1lib/session/__pycache__/__init__.cpython-311.opt-1.pyc", + "ba_data/python/bascenev1lib/session/__pycache__/__init__.cpython-312.opt-1.pyc", "ba_data/python/bascenev1lib/tutorial.py", "ba_data/python/batemplatefs/__init__.py", - "ba_data/python/batemplatefs/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/batemplatefs/__pycache__/_hooks.cpython-311.opt-1.pyc", - "ba_data/python/batemplatefs/__pycache__/_subsystem.cpython-311.opt-1.pyc", + "ba_data/python/batemplatefs/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/batemplatefs/__pycache__/_hooks.cpython-312.opt-1.pyc", + "ba_data/python/batemplatefs/__pycache__/_subsystem.cpython-312.opt-1.pyc", "ba_data/python/batemplatefs/_hooks.py", "ba_data/python/batemplatefs/_subsystem.py", "ba_data/python/bauiv1/__init__.py", - "ba_data/python/bauiv1/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1/__pycache__/_hooks.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1/__pycache__/_keyboard.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1/__pycache__/_subsystem.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1/__pycache__/_uitypes.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1/__pycache__/onscreenkeyboard.cpython-311.opt-1.pyc", + "ba_data/python/bauiv1/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1/__pycache__/_hooks.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1/__pycache__/_keyboard.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1/__pycache__/_subsystem.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1/__pycache__/_uitypes.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1/__pycache__/onscreenkeyboard.cpython-312.opt-1.pyc", "ba_data/python/bauiv1/_hooks.py", "ba_data/python/bauiv1/_keyboard.py", "ba_data/python/bauiv1/_subsystem.py", "ba_data/python/bauiv1/_uitypes.py", "ba_data/python/bauiv1/onscreenkeyboard.py", "ba_data/python/bauiv1lib/__init__.py", - "ba_data/python/bauiv1lib/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/achievements.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/appinvite.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/characterpicker.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/colorpicker.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/config.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/confirm.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/continues.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/creditslist.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/debug.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/discord.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/feedback.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/fileselector.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/getcurrency.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/getremote.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/helpui.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/iconpicker.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/kiosk.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/mainmenu.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/party.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/partyqueue.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/play.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/playoptions.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/popup.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/promocode.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/purchase.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/qrcode.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/radiogroup.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/report.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/resourcetypeinfo.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/serverdialog.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/specialoffer.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/tabs.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/teamnamescolors.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/tournamententry.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/tournamentscores.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/trophies.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/url.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/v2upgrade.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/__pycache__/watch.cpython-311.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/achievements.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/appinvite.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/characterpicker.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/colorpicker.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/config.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/confirm.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/continues.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/creditslist.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/debug.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/discord.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/feedback.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/fileselector.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/getcurrency.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/getremote.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/helpui.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/iconpicker.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/kiosk.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/mainmenu.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/party.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/partyqueue.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/play.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/playoptions.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/popup.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/promocode.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/purchase.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/qrcode.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/radiogroup.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/report.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/resourcetypeinfo.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/serverdialog.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/specialoffer.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/tabs.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/teamnamescolors.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/tournamententry.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/tournamentscores.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/trophies.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/url.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/v2upgrade.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/__pycache__/watch.cpython-312.opt-1.pyc", "ba_data/python/bauiv1lib/account/__init__.py", - "ba_data/python/bauiv1lib/account/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/account/__pycache__/link.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/account/__pycache__/settings.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/account/__pycache__/unlink.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/account/__pycache__/v2proxy.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/account/__pycache__/viewer.cpython-311.opt-1.pyc", + "ba_data/python/bauiv1lib/account/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/account/__pycache__/link.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/account/__pycache__/settings.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/account/__pycache__/unlink.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/account/__pycache__/v2proxy.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/account/__pycache__/viewer.cpython-312.opt-1.pyc", "ba_data/python/bauiv1lib/account/link.py", "ba_data/python/bauiv1lib/account/settings.py", "ba_data/python/bauiv1lib/account/unlink.py", @@ -422,11 +422,11 @@ "ba_data/python/bauiv1lib/confirm.py", "ba_data/python/bauiv1lib/continues.py", "ba_data/python/bauiv1lib/coop/__init__.py", - "ba_data/python/bauiv1lib/coop/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/coop/__pycache__/browser.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/coop/__pycache__/gamebutton.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/coop/__pycache__/level.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/coop/__pycache__/tournamentbutton.cpython-311.opt-1.pyc", + "ba_data/python/bauiv1lib/coop/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/coop/__pycache__/browser.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/coop/__pycache__/gamebutton.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/coop/__pycache__/level.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/coop/__pycache__/tournamentbutton.cpython-312.opt-1.pyc", "ba_data/python/bauiv1lib/coop/browser.py", "ba_data/python/bauiv1lib/coop/gamebutton.py", "ba_data/python/bauiv1lib/coop/level.py", @@ -437,12 +437,12 @@ "ba_data/python/bauiv1lib/feedback.py", "ba_data/python/bauiv1lib/fileselector.py", "ba_data/python/bauiv1lib/gather/__init__.py", - "ba_data/python/bauiv1lib/gather/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/gather/__pycache__/abouttab.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/gather/__pycache__/manualtab.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/gather/__pycache__/nearbytab.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/gather/__pycache__/privatetab.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/gather/__pycache__/publictab.cpython-311.opt-1.pyc", + "ba_data/python/bauiv1lib/gather/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/gather/__pycache__/abouttab.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/gather/__pycache__/manualtab.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/gather/__pycache__/nearbytab.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/gather/__pycache__/privatetab.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/gather/__pycache__/publictab.cpython-312.opt-1.pyc", "ba_data/python/bauiv1lib/gather/abouttab.py", "ba_data/python/bauiv1lib/gather/manualtab.py", "ba_data/python/bauiv1lib/gather/nearbytab.py", @@ -453,14 +453,14 @@ "ba_data/python/bauiv1lib/helpui.py", "ba_data/python/bauiv1lib/iconpicker.py", "ba_data/python/bauiv1lib/keyboard/__init__.py", - "ba_data/python/bauiv1lib/keyboard/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/keyboard/__pycache__/englishkeyboard.cpython-311.opt-1.pyc", + "ba_data/python/bauiv1lib/keyboard/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/keyboard/__pycache__/englishkeyboard.cpython-312.opt-1.pyc", "ba_data/python/bauiv1lib/keyboard/englishkeyboard.py", "ba_data/python/bauiv1lib/kiosk.py", "ba_data/python/bauiv1lib/league/__init__.py", - "ba_data/python/bauiv1lib/league/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/league/__pycache__/rankbutton.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/league/__pycache__/rankwindow.cpython-311.opt-1.pyc", + "ba_data/python/bauiv1lib/league/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/league/__pycache__/rankbutton.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/league/__pycache__/rankwindow.cpython-312.opt-1.pyc", "ba_data/python/bauiv1lib/league/rankbutton.py", "ba_data/python/bauiv1lib/league/rankwindow.py", "ba_data/python/bauiv1lib/mainmenu.py", @@ -468,15 +468,15 @@ "ba_data/python/bauiv1lib/partyqueue.py", "ba_data/python/bauiv1lib/play.py", "ba_data/python/bauiv1lib/playlist/__init__.py", - "ba_data/python/bauiv1lib/playlist/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/playlist/__pycache__/addgame.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/playlist/__pycache__/browser.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/playlist/__pycache__/customizebrowser.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/playlist/__pycache__/edit.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/playlist/__pycache__/editcontroller.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/playlist/__pycache__/editgame.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/playlist/__pycache__/mapselect.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/playlist/__pycache__/share.cpython-311.opt-1.pyc", + "ba_data/python/bauiv1lib/playlist/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/playlist/__pycache__/addgame.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/playlist/__pycache__/browser.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/playlist/__pycache__/customizebrowser.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/playlist/__pycache__/edit.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/playlist/__pycache__/editcontroller.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/playlist/__pycache__/editgame.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/playlist/__pycache__/mapselect.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/playlist/__pycache__/share.cpython-312.opt-1.pyc", "ba_data/python/bauiv1lib/playlist/addgame.py", "ba_data/python/bauiv1lib/playlist/browser.py", "ba_data/python/bauiv1lib/playlist/customizebrowser.py", @@ -488,10 +488,10 @@ "ba_data/python/bauiv1lib/playoptions.py", "ba_data/python/bauiv1lib/popup.py", "ba_data/python/bauiv1lib/profile/__init__.py", - "ba_data/python/bauiv1lib/profile/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/profile/__pycache__/browser.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/profile/__pycache__/edit.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/profile/__pycache__/upgrade.cpython-311.opt-1.pyc", + "ba_data/python/bauiv1lib/profile/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/profile/__pycache__/browser.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/profile/__pycache__/edit.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/profile/__pycache__/upgrade.cpython-312.opt-1.pyc", "ba_data/python/bauiv1lib/profile/browser.py", "ba_data/python/bauiv1lib/profile/edit.py", "ba_data/python/bauiv1lib/profile/upgrade.py", @@ -503,24 +503,24 @@ "ba_data/python/bauiv1lib/resourcetypeinfo.py", "ba_data/python/bauiv1lib/serverdialog.py", "ba_data/python/bauiv1lib/settings/__init__.py", - "ba_data/python/bauiv1lib/settings/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/advanced.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/allsettings.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/audio.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/controls.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/gamepad.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/gamepadadvanced.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/gamepadselect.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/graphics.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/keyboard.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/moddingtools.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/nettesting.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/plugins.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/pluginsettings.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/remoteapp.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/testing.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/touchscreen.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/settings/__pycache__/vrtesting.cpython-311.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/advanced.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/allsettings.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/audio.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/controls.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/gamepad.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/gamepadadvanced.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/gamepadselect.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/graphics.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/keyboard.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/moddingtools.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/nettesting.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/plugins.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/pluginsettings.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/remoteapp.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/testing.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/touchscreen.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/settings/__pycache__/vrtesting.cpython-312.opt-1.pyc", "ba_data/python/bauiv1lib/settings/advanced.py", "ba_data/python/bauiv1lib/settings/allsettings.py", "ba_data/python/bauiv1lib/settings/audio.py", @@ -539,21 +539,21 @@ "ba_data/python/bauiv1lib/settings/touchscreen.py", "ba_data/python/bauiv1lib/settings/vrtesting.py", "ba_data/python/bauiv1lib/soundtrack/__init__.py", - "ba_data/python/bauiv1lib/soundtrack/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/soundtrack/__pycache__/browser.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/soundtrack/__pycache__/edit.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/soundtrack/__pycache__/entrytypeselect.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/soundtrack/__pycache__/macmusicapp.cpython-311.opt-1.pyc", + "ba_data/python/bauiv1lib/soundtrack/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/soundtrack/__pycache__/browser.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/soundtrack/__pycache__/edit.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/soundtrack/__pycache__/entrytypeselect.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/soundtrack/__pycache__/macmusicapp.cpython-312.opt-1.pyc", "ba_data/python/bauiv1lib/soundtrack/browser.py", "ba_data/python/bauiv1lib/soundtrack/edit.py", "ba_data/python/bauiv1lib/soundtrack/entrytypeselect.py", "ba_data/python/bauiv1lib/soundtrack/macmusicapp.py", "ba_data/python/bauiv1lib/specialoffer.py", "ba_data/python/bauiv1lib/store/__init__.py", - "ba_data/python/bauiv1lib/store/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/store/__pycache__/browser.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/store/__pycache__/button.cpython-311.opt-1.pyc", - "ba_data/python/bauiv1lib/store/__pycache__/item.cpython-311.opt-1.pyc", + "ba_data/python/bauiv1lib/store/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/store/__pycache__/browser.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/store/__pycache__/button.cpython-312.opt-1.pyc", + "ba_data/python/bauiv1lib/store/__pycache__/item.cpython-312.opt-1.pyc", "ba_data/python/bauiv1lib/store/browser.py", "ba_data/python/bauiv1lib/store/button.py", "ba_data/python/bauiv1lib/store/item.py", @@ -566,26 +566,26 @@ "ba_data/python/bauiv1lib/v2upgrade.py", "ba_data/python/bauiv1lib/watch.py", "ba_data/python/efro/__init__.py", - "ba_data/python/efro/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/efro/__pycache__/call.cpython-311.opt-1.pyc", - "ba_data/python/efro/__pycache__/cloudshell.cpython-311.opt-1.pyc", - "ba_data/python/efro/__pycache__/debug.cpython-311.opt-1.pyc", - "ba_data/python/efro/__pycache__/error.cpython-311.opt-1.pyc", - "ba_data/python/efro/__pycache__/log.cpython-311.opt-1.pyc", - "ba_data/python/efro/__pycache__/rpc.cpython-311.opt-1.pyc", - "ba_data/python/efro/__pycache__/terminal.cpython-311.opt-1.pyc", - "ba_data/python/efro/__pycache__/util.cpython-311.opt-1.pyc", + "ba_data/python/efro/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/efro/__pycache__/call.cpython-312.opt-1.pyc", + "ba_data/python/efro/__pycache__/cloudshell.cpython-312.opt-1.pyc", + "ba_data/python/efro/__pycache__/debug.cpython-312.opt-1.pyc", + "ba_data/python/efro/__pycache__/error.cpython-312.opt-1.pyc", + "ba_data/python/efro/__pycache__/log.cpython-312.opt-1.pyc", + "ba_data/python/efro/__pycache__/rpc.cpython-312.opt-1.pyc", + "ba_data/python/efro/__pycache__/terminal.cpython-312.opt-1.pyc", + "ba_data/python/efro/__pycache__/util.cpython-312.opt-1.pyc", "ba_data/python/efro/call.py", "ba_data/python/efro/cloudshell.py", "ba_data/python/efro/dataclassio/__init__.py", - "ba_data/python/efro/dataclassio/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/efro/dataclassio/__pycache__/_api.cpython-311.opt-1.pyc", - "ba_data/python/efro/dataclassio/__pycache__/_base.cpython-311.opt-1.pyc", - "ba_data/python/efro/dataclassio/__pycache__/_inputter.cpython-311.opt-1.pyc", - "ba_data/python/efro/dataclassio/__pycache__/_outputter.cpython-311.opt-1.pyc", - "ba_data/python/efro/dataclassio/__pycache__/_pathcapture.cpython-311.opt-1.pyc", - "ba_data/python/efro/dataclassio/__pycache__/_prep.cpython-311.opt-1.pyc", - "ba_data/python/efro/dataclassio/__pycache__/extras.cpython-311.opt-1.pyc", + "ba_data/python/efro/dataclassio/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/efro/dataclassio/__pycache__/_api.cpython-312.opt-1.pyc", + "ba_data/python/efro/dataclassio/__pycache__/_base.cpython-312.opt-1.pyc", + "ba_data/python/efro/dataclassio/__pycache__/_inputter.cpython-312.opt-1.pyc", + "ba_data/python/efro/dataclassio/__pycache__/_outputter.cpython-312.opt-1.pyc", + "ba_data/python/efro/dataclassio/__pycache__/_pathcapture.cpython-312.opt-1.pyc", + "ba_data/python/efro/dataclassio/__pycache__/_prep.cpython-312.opt-1.pyc", + "ba_data/python/efro/dataclassio/__pycache__/extras.cpython-312.opt-1.pyc", "ba_data/python/efro/dataclassio/_api.py", "ba_data/python/efro/dataclassio/_base.py", "ba_data/python/efro/dataclassio/_inputter.py", @@ -597,12 +597,12 @@ "ba_data/python/efro/error.py", "ba_data/python/efro/log.py", "ba_data/python/efro/message/__init__.py", - "ba_data/python/efro/message/__pycache__/__init__.cpython-311.opt-1.pyc", - "ba_data/python/efro/message/__pycache__/_message.cpython-311.opt-1.pyc", - "ba_data/python/efro/message/__pycache__/_module.cpython-311.opt-1.pyc", - "ba_data/python/efro/message/__pycache__/_protocol.cpython-311.opt-1.pyc", - "ba_data/python/efro/message/__pycache__/_receiver.cpython-311.opt-1.pyc", - "ba_data/python/efro/message/__pycache__/_sender.cpython-311.opt-1.pyc", + "ba_data/python/efro/message/__pycache__/__init__.cpython-312.opt-1.pyc", + "ba_data/python/efro/message/__pycache__/_message.cpython-312.opt-1.pyc", + "ba_data/python/efro/message/__pycache__/_module.cpython-312.opt-1.pyc", + "ba_data/python/efro/message/__pycache__/_protocol.cpython-312.opt-1.pyc", + "ba_data/python/efro/message/__pycache__/_receiver.cpython-312.opt-1.pyc", + "ba_data/python/efro/message/__pycache__/_sender.cpython-312.opt-1.pyc", "ba_data/python/efro/message/_message.py", "ba_data/python/efro/message/_module.py", "ba_data/python/efro/message/_protocol.py", @@ -611,6 +611,6 @@ "ba_data/python/efro/rpc.py", "ba_data/python/efro/terminal.py", "ba_data/python/efro/util.py", - "server_package/__pycache__/ballisticakit_server.cpython-311.opt-1.pyc", + "server_package/__pycache__/ballisticakit_server.cpython-312.opt-1.pyc", "server_package/ballisticakit_server.py" ] \ No newline at end of file diff --git a/src/assets/Makefile b/src/assets/Makefile index 16eef89b..6e5dfba5 100644 --- a/src/assets/Makefile +++ b/src/assets/Makefile @@ -151,7 +151,7 @@ ASSET_TARGETS_WIN_X64 += $(EXTRAS_TARGETS_WIN_X64) # Note: Code below needs updating when Python version changes (currently 3.11) define make-opt-pyc-target -$1: $$(subst /__pycache__,,$$(subst .cpython-311.opt-1.pyc,.py,$1)) +$1: $$(subst /__pycache__,,$$(subst .cpython-312.opt-1.pyc,.py,$1)) @$$(PCOMMANDBATCH) compile_python_file $$^ endef @@ -435,280 +435,280 @@ SCRIPT_TARGETS_PY_PUBLIC = \ $(BUILD_DIR)/server_package/ballisticakit_server.py SCRIPT_TARGETS_PYC_PUBLIC = \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_accountv2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_app.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_appcomponent.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_appconfig.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_appintent.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_appmode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_appmodeselector.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_appsubsystem.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_apputils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_assetmanager.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_asyncio.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_devconsole.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_emptyappmode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_env.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_error.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_general.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_hooks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_language.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_login.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_math.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_meta.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/_mgen/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/_mgen/__pycache__/enums.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_net.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_plugin.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_stringedit.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_text.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_ui.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/_workspace.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/babase/__pycache__/modutils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_accountv1.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_achievement.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_ads.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_analytics.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_appdelegate.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_benchmark.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_input.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_music.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_net.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_servermode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_store.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_subsystem.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_tips.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_tournament.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/macmusicapp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/osmusic.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/__pycache__/baenv.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baplus/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baplus/__pycache__/_cloud.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baplus/__pycache__/_hooks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/baplus/__pycache__/_subsystem.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_activity.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_activitytypes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_actor.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_appmode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_campaign.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_collision.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_coopgame.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_coopsession.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_debug.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_dependency.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_dualteamsession.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_featureset.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_freeforallsession.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_gameactivity.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_gameresults.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_gameutils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_hooks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_level.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_lobby.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_map.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_messages.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_multiteamsession.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_music.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_net.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_nodeactor.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_player.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_playlist.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_powerup.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_profile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_score.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_session.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_settings.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_stats.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_team.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_teamgame.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/coopjoin.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/coopscore.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/drawscore.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/dualteamscore.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/freeforallvictory.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/multiteamjoin.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/multiteamscore.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/multiteamvictory.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/background.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/bomb.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/controlsguide.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/flag.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/image.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/onscreencountdown.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/onscreentimer.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/playerspaz.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/popuptext.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/powerupbox.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/respawnicon.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/scoreboard.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/spawner.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/spaz.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/spazappearance.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/spazbot.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/spazfactory.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/text.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/tipstext.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/zoomtext.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/assault.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/capturetheflag.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/chosenone.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/conquest.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/deathmatch.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/easteregghunt.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/elimination.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/football.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/hockey.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/keepaway.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/kingofthehill.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/meteorshower.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/ninjafight.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/onslaught.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/race.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/runaround.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/targetpractice.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/thelaststand.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/__pycache__/gameutils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/__pycache__/mainmenu.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/big_g.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/bridgit.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/courtyard.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/crag_castle.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/doom_shroom.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/football_stadium.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/happy_thoughts.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/hockey_stadium.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/lake_frigid.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/monkey_face.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/rampage.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/roundabout.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/step_right_up.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/the_pad.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/tip_top.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/tower_d.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/zig_zag.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/__pycache__/maps.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/session/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bascenev1lib/__pycache__/tutorial.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/batemplatefs/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/batemplatefs/__pycache__/_hooks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/batemplatefs/__pycache__/_subsystem.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1/__pycache__/_hooks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1/__pycache__/_keyboard.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1/__pycache__/_subsystem.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1/__pycache__/_uitypes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1/__pycache__/onscreenkeyboard.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/account/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/account/__pycache__/link.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/account/__pycache__/settings.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/account/__pycache__/unlink.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/account/__pycache__/v2proxy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/account/__pycache__/viewer.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/achievements.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/appinvite.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/characterpicker.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/colorpicker.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/config.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/confirm.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/continues.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/coop/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/coop/__pycache__/browser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/coop/__pycache__/gamebutton.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/coop/__pycache__/level.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/coop/__pycache__/tournamentbutton.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/creditslist.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/debug.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/discord.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/feedback.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/fileselector.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/gather/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/gather/__pycache__/abouttab.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/gather/__pycache__/manualtab.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/gather/__pycache__/nearbytab.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/gather/__pycache__/privatetab.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/gather/__pycache__/publictab.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/getcurrency.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/getremote.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/helpui.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/iconpicker.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/keyboard/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/keyboard/__pycache__/englishkeyboard.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/kiosk.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/league/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/league/__pycache__/rankbutton.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/league/__pycache__/rankwindow.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/mainmenu.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/party.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/partyqueue.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/play.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/addgame.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/browser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/customizebrowser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/edit.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/editcontroller.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/editgame.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/mapselect.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/share.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/playoptions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/popup.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/profile/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/profile/__pycache__/browser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/profile/__pycache__/edit.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/profile/__pycache__/upgrade.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/promocode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/purchase.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/qrcode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/radiogroup.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/report.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/resourcetypeinfo.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/serverdialog.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/advanced.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/allsettings.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/audio.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/controls.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/gamepad.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/gamepadadvanced.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/gamepadselect.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/graphics.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/keyboard.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/moddingtools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/nettesting.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/plugins.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/pluginsettings.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/remoteapp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/testing.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/touchscreen.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/vrtesting.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/soundtrack/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/soundtrack/__pycache__/browser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/soundtrack/__pycache__/edit.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/soundtrack/__pycache__/entrytypeselect.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/soundtrack/__pycache__/macmusicapp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/specialoffer.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/store/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/store/__pycache__/browser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/store/__pycache__/button.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/store/__pycache__/item.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/tabs.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/teamnamescolors.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/tournamententry.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/tournamentscores.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/trophies.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/url.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/v2upgrade.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/watch.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/server_package/__pycache__/ballisticakit_server.cpython-311.opt-1.pyc + $(BUILD_DIR)/ba_data/python/babase/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_accountv2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_app.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_appcomponent.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_appconfig.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_appintent.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_appmode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_appmodeselector.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_appsubsystem.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_apputils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_assetmanager.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_asyncio.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_devconsole.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_emptyappmode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_env.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_error.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_general.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_hooks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_language.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_login.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_math.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_meta.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/_mgen/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/_mgen/__pycache__/enums.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_net.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_plugin.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_stringedit.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_text.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_ui.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/_workspace.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/babase/__pycache__/modutils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_accountv1.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_achievement.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_ads.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_analytics.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_appdelegate.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_benchmark.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_input.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_music.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_net.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_servermode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_store.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_subsystem.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_tips.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/_tournament.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/macmusicapp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baclassic/__pycache__/osmusic.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/__pycache__/baenv.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baplus/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baplus/__pycache__/_cloud.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baplus/__pycache__/_hooks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/baplus/__pycache__/_subsystem.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_activity.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_activitytypes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_actor.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_appmode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_campaign.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_collision.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_coopgame.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_coopsession.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_debug.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_dependency.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_dualteamsession.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_featureset.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_freeforallsession.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_gameactivity.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_gameresults.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_gameutils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_hooks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_level.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_lobby.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_map.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_messages.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_multiteamsession.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_music.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_net.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_nodeactor.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_player.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_playlist.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_powerup.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_profile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_score.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_session.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_settings.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_stats.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_team.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1/__pycache__/_teamgame.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/coopjoin.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/coopscore.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/drawscore.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/dualteamscore.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/freeforallvictory.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/multiteamjoin.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/multiteamscore.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/activity/__pycache__/multiteamvictory.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/background.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/bomb.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/controlsguide.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/flag.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/image.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/onscreencountdown.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/onscreentimer.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/playerspaz.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/popuptext.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/powerupbox.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/respawnicon.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/scoreboard.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/spawner.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/spaz.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/spazappearance.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/spazbot.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/spazfactory.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/text.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/tipstext.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/actor/__pycache__/zoomtext.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/assault.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/capturetheflag.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/chosenone.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/conquest.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/deathmatch.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/easteregghunt.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/elimination.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/football.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/hockey.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/keepaway.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/kingofthehill.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/meteorshower.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/ninjafight.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/onslaught.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/race.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/runaround.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/targetpractice.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/game/__pycache__/thelaststand.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/__pycache__/gameutils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/__pycache__/mainmenu.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/big_g.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/bridgit.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/courtyard.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/crag_castle.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/doom_shroom.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/football_stadium.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/happy_thoughts.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/hockey_stadium.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/lake_frigid.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/monkey_face.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/rampage.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/roundabout.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/step_right_up.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/the_pad.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/tip_top.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/tower_d.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/mapdata/__pycache__/zig_zag.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/__pycache__/maps.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/session/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bascenev1lib/__pycache__/tutorial.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/batemplatefs/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/batemplatefs/__pycache__/_hooks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/batemplatefs/__pycache__/_subsystem.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1/__pycache__/_hooks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1/__pycache__/_keyboard.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1/__pycache__/_subsystem.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1/__pycache__/_uitypes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1/__pycache__/onscreenkeyboard.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/account/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/account/__pycache__/link.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/account/__pycache__/settings.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/account/__pycache__/unlink.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/account/__pycache__/v2proxy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/account/__pycache__/viewer.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/achievements.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/appinvite.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/characterpicker.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/colorpicker.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/config.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/confirm.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/continues.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/coop/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/coop/__pycache__/browser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/coop/__pycache__/gamebutton.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/coop/__pycache__/level.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/coop/__pycache__/tournamentbutton.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/creditslist.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/debug.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/discord.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/feedback.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/fileselector.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/gather/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/gather/__pycache__/abouttab.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/gather/__pycache__/manualtab.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/gather/__pycache__/nearbytab.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/gather/__pycache__/privatetab.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/gather/__pycache__/publictab.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/getcurrency.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/getremote.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/helpui.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/iconpicker.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/keyboard/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/keyboard/__pycache__/englishkeyboard.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/kiosk.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/league/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/league/__pycache__/rankbutton.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/league/__pycache__/rankwindow.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/mainmenu.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/party.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/partyqueue.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/play.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/addgame.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/browser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/customizebrowser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/edit.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/editcontroller.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/editgame.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/mapselect.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/playlist/__pycache__/share.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/playoptions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/popup.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/profile/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/profile/__pycache__/browser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/profile/__pycache__/edit.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/profile/__pycache__/upgrade.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/promocode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/purchase.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/qrcode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/radiogroup.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/report.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/resourcetypeinfo.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/serverdialog.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/advanced.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/allsettings.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/audio.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/controls.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/gamepad.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/gamepadadvanced.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/gamepadselect.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/graphics.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/keyboard.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/moddingtools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/nettesting.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/plugins.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/pluginsettings.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/remoteapp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/testing.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/touchscreen.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/settings/__pycache__/vrtesting.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/soundtrack/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/soundtrack/__pycache__/browser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/soundtrack/__pycache__/edit.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/soundtrack/__pycache__/entrytypeselect.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/soundtrack/__pycache__/macmusicapp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/specialoffer.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/store/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/store/__pycache__/browser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/store/__pycache__/button.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/store/__pycache__/item.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/tabs.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/teamnamescolors.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/tournamententry.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/tournamentscores.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/trophies.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/url.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/v2upgrade.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bauiv1lib/__pycache__/watch.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/server_package/__pycache__/ballisticakit_server.cpython-312.opt-1.pyc # Rule to copy src asset scripts to dst. # (and make non-writable so I'm less likely to accidentally edit them there) @@ -756,39 +756,39 @@ SCRIPT_TARGETS_PY_PUBLIC_TOOLS = \ $(BUILD_DIR)/ba_data/python/efro/util.py SCRIPT_TARGETS_PYC_PUBLIC_TOOLS = \ - $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/app.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/assets.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/bacloud.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/build.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/cloud.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/login.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/net.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/servermanager.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/transfer.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/__pycache__/call.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/__pycache__/cloudshell.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/_api.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/_base.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/_inputter.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/_outputter.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/_pathcapture.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/_prep.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/extras.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/__pycache__/debug.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/__pycache__/error.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/__pycache__/log.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/message/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/message/__pycache__/_message.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/message/__pycache__/_module.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/message/__pycache__/_protocol.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/message/__pycache__/_receiver.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/message/__pycache__/_sender.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/__pycache__/rpc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/__pycache__/terminal.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python/efro/__pycache__/util.cpython-311.opt-1.pyc + $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/app.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/assets.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/bacloud.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/build.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/cloud.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/login.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/net.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/servermanager.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/bacommon/__pycache__/transfer.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/__pycache__/call.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/__pycache__/cloudshell.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/_api.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/_base.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/_inputter.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/_outputter.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/_pathcapture.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/_prep.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/dataclassio/__pycache__/extras.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/__pycache__/debug.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/__pycache__/error.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/__pycache__/log.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/message/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/message/__pycache__/_message.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/message/__pycache__/_module.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/message/__pycache__/_protocol.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/message/__pycache__/_receiver.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/message/__pycache__/_sender.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/__pycache__/rpc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/__pycache__/terminal.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python/efro/__pycache__/util.cpython-312.opt-1.pyc # Rule to copy src asset scripts to dst. # (and make non-writable so I'm less likely to accidentally edit them there) @@ -808,7 +808,6 @@ SCRIPT_TARGETS_PY_PRIVATE_APPLE = \ $(BUILD_DIR)/pylib-apple/__future__.py \ $(BUILD_DIR)/pylib-apple/__hello__.py \ $(BUILD_DIR)/pylib-apple/_aix_support.py \ - $(BUILD_DIR)/pylib-apple/_bootsubprocess.py \ $(BUILD_DIR)/pylib-apple/_collections_abc.py \ $(BUILD_DIR)/pylib-apple/_compat_pickle.py \ $(BUILD_DIR)/pylib-apple/_compression.py \ @@ -816,32 +815,22 @@ SCRIPT_TARGETS_PY_PRIVATE_APPLE = \ $(BUILD_DIR)/pylib-apple/_markupbase.py \ $(BUILD_DIR)/pylib-apple/_osx_support.py \ $(BUILD_DIR)/pylib-apple/_py_abc.py \ + $(BUILD_DIR)/pylib-apple/_pydatetime.py \ $(BUILD_DIR)/pylib-apple/_pydecimal.py \ $(BUILD_DIR)/pylib-apple/_pyio.py \ + $(BUILD_DIR)/pylib-apple/_pylong.py \ $(BUILD_DIR)/pylib-apple/_sitebuiltins.py \ $(BUILD_DIR)/pylib-apple/_strptime.py \ $(BUILD_DIR)/pylib-apple/_sysconfigdata__darwin_darwin.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata__ios_iphoneos.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata__ios_iphoneos_arm64.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata__ios_iphonesimulator.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata__ios_iphonesimulator_arm64.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata__ios_iphonesimulator_x86_64.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata__tvos_appletvos.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata__tvos_appletvos_arm64.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata__tvos_appletvsimulator.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata__tvos_appletvsimulator_arm64.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata__tvos_appletvsimulator_x86_64.py \ + $(BUILD_DIR)/pylib-apple/_sysconfigdata__ios_iphoneos-arm64.py \ + $(BUILD_DIR)/pylib-apple/_sysconfigdata__ios_iphonesimulator-arm64.py \ + $(BUILD_DIR)/pylib-apple/_sysconfigdata__tvos_appletvos-arm64.py \ + $(BUILD_DIR)/pylib-apple/_sysconfigdata__tvos_appletvsimulator-arm64.py \ $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_darwin_darwin.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_ios_iphoneos.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_ios_iphoneos_arm64.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_ios_iphonesimulator.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_ios_iphonesimulator_arm64.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_ios_iphonesimulator_x86_64.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_tvos_appletvos.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_tvos_appletvos_arm64.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_tvos_appletvsimulator.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_tvos_appletvsimulator_arm64.py \ - $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_tvos_appletvsimulator_x86_64.py \ + $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_ios_iphoneos-arm64.py \ + $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_ios_iphonesimulator-arm64.py \ + $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_tvos_appletvos-arm64.py \ + $(BUILD_DIR)/pylib-apple/_sysconfigdata_d_tvos_appletvsimulator-arm64.py \ $(BUILD_DIR)/pylib-apple/_threading_local.py \ $(BUILD_DIR)/pylib-apple/_weakrefset.py \ $(BUILD_DIR)/pylib-apple/abc.py \ @@ -849,7 +838,6 @@ SCRIPT_TARGETS_PY_PRIVATE_APPLE = \ $(BUILD_DIR)/pylib-apple/antigravity.py \ $(BUILD_DIR)/pylib-apple/argparse.py \ $(BUILD_DIR)/pylib-apple/ast.py \ - $(BUILD_DIR)/pylib-apple/asynchat.py \ $(BUILD_DIR)/pylib-apple/asyncio/__init__.py \ $(BUILD_DIR)/pylib-apple/asyncio/__main__.py \ $(BUILD_DIR)/pylib-apple/asyncio/base_events.py \ @@ -883,7 +871,6 @@ SCRIPT_TARGETS_PY_PRIVATE_APPLE = \ $(BUILD_DIR)/pylib-apple/asyncio/unix_events.py \ $(BUILD_DIR)/pylib-apple/asyncio/windows_events.py \ $(BUILD_DIR)/pylib-apple/asyncio/windows_utils.py \ - $(BUILD_DIR)/pylib-apple/asyncore.py \ $(BUILD_DIR)/pylib-apple/base64.py \ $(BUILD_DIR)/pylib-apple/bdb.py \ $(BUILD_DIR)/pylib-apple/bisect.py \ @@ -1110,7 +1097,6 @@ SCRIPT_TARGETS_PY_PRIVATE_APPLE = \ $(BUILD_DIR)/pylib-apple/http/cookies.py \ $(BUILD_DIR)/pylib-apple/http/server.py \ $(BUILD_DIR)/pylib-apple/imghdr.py \ - $(BUILD_DIR)/pylib-apple/imp.py \ $(BUILD_DIR)/pylib-apple/importlib/__init__.py \ $(BUILD_DIR)/pylib-apple/importlib/_abc.py \ $(BUILD_DIR)/pylib-apple/importlib/_bootstrap.py \ @@ -1199,12 +1185,12 @@ SCRIPT_TARGETS_PY_PRIVATE_APPLE = \ $(BUILD_DIR)/pylib-apple/shutil.py \ $(BUILD_DIR)/pylib-apple/signal.py \ $(BUILD_DIR)/pylib-apple/site.py \ - $(BUILD_DIR)/pylib-apple/smtpd.py \ $(BUILD_DIR)/pylib-apple/smtplib.py \ $(BUILD_DIR)/pylib-apple/sndhdr.py \ $(BUILD_DIR)/pylib-apple/socket.py \ $(BUILD_DIR)/pylib-apple/socketserver.py \ $(BUILD_DIR)/pylib-apple/sqlite3/__init__.py \ + $(BUILD_DIR)/pylib-apple/sqlite3/__main__.py \ $(BUILD_DIR)/pylib-apple/sqlite3/dbapi2.py \ $(BUILD_DIR)/pylib-apple/sqlite3/dump.py \ $(BUILD_DIR)/pylib-apple/sre_compile.py \ @@ -1279,7 +1265,10 @@ SCRIPT_TARGETS_PY_PRIVATE_APPLE = \ $(BUILD_DIR)/pylib-apple/xmlrpc/client.py \ $(BUILD_DIR)/pylib-apple/xmlrpc/server.py \ $(BUILD_DIR)/pylib-apple/zipapp.py \ - $(BUILD_DIR)/pylib-apple/zipfile.py \ + $(BUILD_DIR)/pylib-apple/zipfile/__init__.py \ + $(BUILD_DIR)/pylib-apple/zipfile/__main__.py \ + $(BUILD_DIR)/pylib-apple/zipfile/_path/__init__.py \ + $(BUILD_DIR)/pylib-apple/zipfile/_path/glob.py \ $(BUILD_DIR)/pylib-apple/zipimport.py \ $(BUILD_DIR)/pylib-apple/zoneinfo/__init__.py \ $(BUILD_DIR)/pylib-apple/zoneinfo/_common.py \ @@ -1287,486 +1276,475 @@ SCRIPT_TARGETS_PY_PRIVATE_APPLE = \ $(BUILD_DIR)/pylib-apple/zoneinfo/_zoneinfo.py SCRIPT_TARGETS_PYC_PRIVATE_APPLE = \ - $(BUILD_DIR)/pylib-apple/__pycache__/__future__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/__hello__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_aix_support.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_bootsubprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_collections_abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_compat_pickle.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_compression.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_ios_support.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_markupbase.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_osx_support.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_py_abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_pydecimal.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_pyio.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sitebuiltins.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_strptime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__darwin_darwin.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__ios_iphoneos.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__ios_iphoneos_arm64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__ios_iphonesimulator.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__ios_iphonesimulator_arm64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__ios_iphonesimulator_x86_64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__tvos_appletvos.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__tvos_appletvos_arm64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__tvos_appletvsimulator.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__tvos_appletvsimulator_arm64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__tvos_appletvsimulator_x86_64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_darwin_darwin.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_ios_iphoneos.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_ios_iphoneos_arm64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_ios_iphonesimulator.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_ios_iphonesimulator_arm64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_ios_iphonesimulator_x86_64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvos.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvos_arm64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvsimulator.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvsimulator_arm64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvsimulator_x86_64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_threading_local.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/_weakrefset.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/aifc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/antigravity.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/argparse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/ast.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/asynchat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/__main__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/base_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/base_futures.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/base_subprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/base_tasks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/constants.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/coroutines.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/exceptions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/format_helpers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/futures.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/locks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/log.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/mixins.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/proactor_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/protocols.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/queues.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/runners.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/selector_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/sslproto.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/staggered.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/streams.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/subprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/taskgroups.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/tasks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/threads.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/timeouts.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/transports.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/trsock.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/unix_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/windows_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/windows_utils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/asyncore.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/base64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/bdb.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/bisect.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/bz2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/cProfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/calendar.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/cgi.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/cgitb.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/chunk.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/cmd.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/code.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/codecs.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/codeop.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/collections/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/collections/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/colorsys.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/compileall.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/concurrent/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/concurrent/futures/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/concurrent/futures/__pycache__/_base.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/concurrent/futures/__pycache__/process.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/concurrent/futures/__pycache__/thread.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/configparser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/contextlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/contextvars.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/copy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/copyreg.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/crypt.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/csv.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/ctypes/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/ctypes/__pycache__/_aix.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/ctypes/__pycache__/_endian.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/ctypes/macholib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/ctypes/macholib/__pycache__/dyld.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/ctypes/macholib/__pycache__/dylib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/ctypes/macholib/__pycache__/framework.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/ctypes/__pycache__/util.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/ctypes/__pycache__/wintypes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/curses/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/curses/__pycache__/ascii.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/curses/__pycache__/has_key.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/curses/__pycache__/panel.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/curses/__pycache__/textpad.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/dataclasses.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/datetime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/decimal.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/difflib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/dis.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/doctest.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/_encoded_words.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/_header_value_parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/_parseaddr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/_policybase.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/base64mime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/charset.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/contentmanager.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/encoders.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/errors.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/feedparser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/generator.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/header.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/headerregistry.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/iterators.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/message.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/application.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/audio.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/base.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/image.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/message.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/multipart.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/nonmultipart.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/text.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/policy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/quoprimime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/email/__pycache__/utils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/aliases.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/ascii.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/base64_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/big5.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/big5hkscs.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/bz2_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/charmap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp037.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1006.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1026.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1125.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1140.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1250.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1251.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1252.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1253.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1254.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1255.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1256.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1257.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1258.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp273.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp424.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp437.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp500.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp720.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp737.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp775.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp850.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp852.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp855.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp856.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp857.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp858.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp860.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp861.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp862.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp863.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp864.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp865.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp866.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp869.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp874.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp875.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp932.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp949.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp950.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/euc_jis_2004.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/euc_jisx0213.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/euc_jp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/euc_kr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/gb18030.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/gb2312.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/gbk.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/hex_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/hp_roman8.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/hz.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/idna.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_jp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_jp_1.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_jp_2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_jp_2004.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_jp_3.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_jp_ext.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_kr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_1.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_10.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_11.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_13.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_14.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_15.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_16.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_3.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_4.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_5.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_6.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_7.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_8.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_9.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/johab.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/koi8_r.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/koi8_t.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/koi8_u.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/kz1048.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/latin_1.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_arabic.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_croatian.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_cyrillic.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_farsi.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_greek.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_iceland.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_latin2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_roman.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_romanian.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_turkish.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mbcs.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/oem.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/palmos.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/ptcp154.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/punycode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/quopri_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/raw_unicode_escape.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/rot_13.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/shift_jis.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/shift_jis_2004.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/shift_jisx0213.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/tis_620.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/undefined.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/unicode_escape.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_16.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_16_be.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_16_le.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_32.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_32_be.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_32_le.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_7.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_8.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_8_sig.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/uu_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/encodings/__pycache__/zlib_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/enum.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/filecmp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/fileinput.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/fnmatch.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/fractions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/ftplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/functools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/genericpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/getopt.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/getpass.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/gettext.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/glob.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/graphlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/gzip.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/hashlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/heapq.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/hmac.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/html/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/html/__pycache__/entities.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/html/__pycache__/parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/http/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/http/__pycache__/client.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/http/__pycache__/cookiejar.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/http/__pycache__/cookies.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/http/__pycache__/server.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/imghdr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/imp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/__pycache__/_abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/__pycache__/_bootstrap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/__pycache__/_bootstrap_external.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/__pycache__/machinery.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/_adapters.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/_collections.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/_functools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/_itertools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/_meta.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/_text.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/__pycache__/readers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/_adapters.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/_common.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/_itertools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/_legacy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/readers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/simple.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/__pycache__/simple.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/importlib/__pycache__/util.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/inspect.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/io.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/ipaddress.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/json/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/json/__pycache__/decoder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/json/__pycache__/encoder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/json/__pycache__/scanner.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/json/__pycache__/tool.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/keyword.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/linecache.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/locale.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/logging/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/logging/__pycache__/config.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/logging/__pycache__/handlers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/lzma.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/mailbox.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/mailcap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/mimetypes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/modulefinder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/netrc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/nntplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/ntpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/nturl2path.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/numbers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/opcode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/operator.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/optparse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/os.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/pathlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/pdb.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/pickle.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/pickletools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/pipes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/pkgutil.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/platform.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/plistlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/poplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/posixpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/pprint.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/profile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/pstats.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/pty.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/py_compile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/pyclbr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/pydoc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/queue.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/quopri.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/random.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/re/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/re/__pycache__/_casefix.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/re/__pycache__/_compiler.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/re/__pycache__/_constants.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/re/__pycache__/_parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/reprlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/rlcompleter.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/runpy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/sched.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/secrets.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/selectors.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/shelve.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/shlex.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/shutil.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/signal.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/site.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/smtpd.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/smtplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/sndhdr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/socket.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/socketserver.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/sqlite3/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/sqlite3/__pycache__/dbapi2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/sqlite3/__pycache__/dump.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/sre_compile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/sre_constants.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/sre_parse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/ssl.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/stat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/statistics.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/string.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/stringprep.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/struct.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/subprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/sunau.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/symtable.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/sysconfig.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/tabnanny.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/tarfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/telnetlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/tempfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/textwrap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/this.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/threading.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/timeit.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/token.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/tokenize.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/tomllib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/tomllib/__pycache__/_parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/tomllib/__pycache__/_re.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/tomllib/__pycache__/_types.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/trace.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/traceback.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/tracemalloc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/tty.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/types.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/typing.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/urllib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/urllib/__pycache__/error.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/urllib/__pycache__/parse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/urllib/__pycache__/request.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/urllib/__pycache__/response.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/urllib/__pycache__/robotparser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/uu.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/uuid.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/warnings.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/wave.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/weakref.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/webbrowser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/xdrlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/NodeFilter.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/domreg.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/expatbuilder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/minicompat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/minidom.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/pulldom.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/xmlbuilder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/etree/__pycache__/ElementInclude.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/etree/__pycache__/ElementPath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/etree/__pycache__/ElementTree.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/etree/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/etree/__pycache__/cElementTree.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/parsers/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/parsers/__pycache__/expat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/sax/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/sax/__pycache__/_exceptions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/sax/__pycache__/expatreader.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/sax/__pycache__/handler.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/sax/__pycache__/saxutils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xml/sax/__pycache__/xmlreader.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xmlrpc/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xmlrpc/__pycache__/client.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/xmlrpc/__pycache__/server.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/zipapp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/zipfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/__pycache__/zipimport.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/zoneinfo/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/zoneinfo/__pycache__/_common.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/zoneinfo/__pycache__/_tzpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-apple/zoneinfo/__pycache__/_zoneinfo.cpython-311.opt-1.pyc + $(BUILD_DIR)/pylib-apple/__pycache__/__future__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/__hello__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_aix_support.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_collections_abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_compat_pickle.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_compression.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_ios_support.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_markupbase.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_osx_support.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_py_abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_pydatetime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_pydecimal.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_pyio.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_pylong.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_sitebuiltins.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_strptime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__darwin_darwin.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__ios_iphoneos-arm64.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__ios_iphonesimulator-arm64.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__tvos_appletvos-arm64.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata__tvos_appletvsimulator-arm64.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_darwin_darwin.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_ios_iphoneos-arm64.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_ios_iphonesimulator-arm64.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvos-arm64.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_sysconfigdata_d_tvos_appletvsimulator-arm64.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_threading_local.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/_weakrefset.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/aifc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/antigravity.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/argparse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/ast.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/__main__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/base_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/base_futures.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/base_subprocess.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/base_tasks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/constants.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/coroutines.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/exceptions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/format_helpers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/futures.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/locks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/log.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/mixins.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/proactor_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/protocols.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/queues.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/runners.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/selector_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/sslproto.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/staggered.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/streams.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/subprocess.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/taskgroups.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/tasks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/threads.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/timeouts.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/transports.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/trsock.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/unix_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/windows_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/asyncio/__pycache__/windows_utils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/base64.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/bdb.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/bisect.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/bz2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/cProfile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/calendar.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/cgi.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/cgitb.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/chunk.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/cmd.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/code.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/codecs.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/codeop.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/collections/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/collections/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/colorsys.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/compileall.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/concurrent/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/concurrent/futures/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/concurrent/futures/__pycache__/_base.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/concurrent/futures/__pycache__/process.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/concurrent/futures/__pycache__/thread.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/configparser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/contextlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/contextvars.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/copy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/copyreg.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/crypt.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/csv.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/ctypes/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/ctypes/__pycache__/_aix.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/ctypes/__pycache__/_endian.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/ctypes/macholib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/ctypes/macholib/__pycache__/dyld.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/ctypes/macholib/__pycache__/dylib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/ctypes/macholib/__pycache__/framework.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/ctypes/__pycache__/util.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/ctypes/__pycache__/wintypes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/curses/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/curses/__pycache__/ascii.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/curses/__pycache__/has_key.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/curses/__pycache__/panel.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/curses/__pycache__/textpad.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/dataclasses.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/datetime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/decimal.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/difflib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/dis.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/doctest.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/_encoded_words.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/_header_value_parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/_parseaddr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/_policybase.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/base64mime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/charset.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/contentmanager.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/encoders.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/errors.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/feedparser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/generator.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/header.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/headerregistry.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/iterators.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/message.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/application.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/audio.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/base.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/image.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/message.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/multipart.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/nonmultipart.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/mime/__pycache__/text.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/policy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/quoprimime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/email/__pycache__/utils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/aliases.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/ascii.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/base64_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/big5.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/big5hkscs.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/bz2_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/charmap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp037.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1006.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1026.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1125.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1140.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1250.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1251.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1252.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1253.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1254.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1255.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1256.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1257.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp1258.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp273.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp424.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp437.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp500.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp720.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp737.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp775.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp850.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp852.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp855.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp856.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp857.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp858.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp860.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp861.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp862.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp863.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp864.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp865.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp866.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp869.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp874.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp875.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp932.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp949.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/cp950.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/euc_jis_2004.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/euc_jisx0213.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/euc_jp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/euc_kr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/gb18030.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/gb2312.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/gbk.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/hex_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/hp_roman8.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/hz.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/idna.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_jp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_jp_1.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_jp_2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_jp_2004.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_jp_3.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_jp_ext.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso2022_kr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_1.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_10.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_11.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_13.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_14.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_15.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_16.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_3.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_4.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_5.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_6.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_7.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_8.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/iso8859_9.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/johab.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/koi8_r.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/koi8_t.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/koi8_u.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/kz1048.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/latin_1.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_arabic.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_croatian.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_cyrillic.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_farsi.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_greek.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_iceland.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_latin2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_roman.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_romanian.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mac_turkish.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/mbcs.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/oem.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/palmos.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/ptcp154.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/punycode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/quopri_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/raw_unicode_escape.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/rot_13.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/shift_jis.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/shift_jis_2004.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/shift_jisx0213.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/tis_620.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/undefined.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/unicode_escape.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_16.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_16_be.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_16_le.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_32.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_32_be.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_32_le.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_7.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_8.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/utf_8_sig.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/uu_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/encodings/__pycache__/zlib_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/enum.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/filecmp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/fileinput.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/fnmatch.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/fractions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/ftplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/functools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/genericpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/getopt.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/getpass.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/gettext.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/glob.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/graphlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/gzip.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/hashlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/heapq.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/hmac.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/html/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/html/__pycache__/entities.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/html/__pycache__/parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/http/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/http/__pycache__/client.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/http/__pycache__/cookiejar.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/http/__pycache__/cookies.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/http/__pycache__/server.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/imghdr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/__pycache__/_abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/__pycache__/_bootstrap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/__pycache__/_bootstrap_external.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/__pycache__/machinery.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/_adapters.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/_collections.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/_functools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/_itertools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/_meta.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/metadata/__pycache__/_text.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/__pycache__/readers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/_adapters.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/_common.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/_itertools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/_legacy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/readers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/resources/__pycache__/simple.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/__pycache__/simple.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/importlib/__pycache__/util.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/inspect.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/io.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/ipaddress.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/json/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/json/__pycache__/decoder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/json/__pycache__/encoder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/json/__pycache__/scanner.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/json/__pycache__/tool.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/keyword.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/linecache.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/locale.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/logging/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/logging/__pycache__/config.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/logging/__pycache__/handlers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/lzma.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/mailbox.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/mailcap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/mimetypes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/modulefinder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/netrc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/nntplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/ntpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/nturl2path.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/numbers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/opcode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/operator.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/optparse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/os.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/pathlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/pdb.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/pickle.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/pickletools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/pipes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/pkgutil.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/platform.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/plistlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/poplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/posixpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/pprint.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/profile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/pstats.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/pty.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/py_compile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/pyclbr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/pydoc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/queue.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/quopri.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/random.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/re/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/re/__pycache__/_casefix.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/re/__pycache__/_compiler.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/re/__pycache__/_constants.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/re/__pycache__/_parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/reprlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/rlcompleter.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/runpy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/sched.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/secrets.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/selectors.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/shelve.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/shlex.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/shutil.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/signal.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/site.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/smtplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/sndhdr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/socket.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/socketserver.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/sqlite3/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/sqlite3/__pycache__/__main__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/sqlite3/__pycache__/dbapi2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/sqlite3/__pycache__/dump.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/sre_compile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/sre_constants.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/sre_parse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/ssl.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/stat.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/statistics.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/string.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/stringprep.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/struct.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/subprocess.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/sunau.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/symtable.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/sysconfig.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/tabnanny.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/tarfile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/telnetlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/tempfile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/textwrap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/this.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/threading.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/timeit.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/token.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/tokenize.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/tomllib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/tomllib/__pycache__/_parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/tomllib/__pycache__/_re.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/tomllib/__pycache__/_types.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/trace.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/traceback.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/tracemalloc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/tty.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/types.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/typing.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/urllib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/urllib/__pycache__/error.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/urllib/__pycache__/parse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/urllib/__pycache__/request.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/urllib/__pycache__/response.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/urllib/__pycache__/robotparser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/uu.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/uuid.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/warnings.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/wave.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/weakref.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/webbrowser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/xdrlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/NodeFilter.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/domreg.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/expatbuilder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/minicompat.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/minidom.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/pulldom.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/dom/__pycache__/xmlbuilder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/etree/__pycache__/ElementInclude.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/etree/__pycache__/ElementPath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/etree/__pycache__/ElementTree.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/etree/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/etree/__pycache__/cElementTree.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/parsers/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/parsers/__pycache__/expat.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/sax/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/sax/__pycache__/_exceptions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/sax/__pycache__/expatreader.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/sax/__pycache__/handler.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/sax/__pycache__/saxutils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xml/sax/__pycache__/xmlreader.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xmlrpc/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xmlrpc/__pycache__/client.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/xmlrpc/__pycache__/server.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/zipapp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/zipfile/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/zipfile/__pycache__/__main__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/zipfile/_path/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/zipfile/_path/__pycache__/glob.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/__pycache__/zipimport.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/zoneinfo/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/zoneinfo/__pycache__/_common.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/zoneinfo/__pycache__/_tzpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-apple/zoneinfo/__pycache__/_zoneinfo.cpython-312.opt-1.pyc # Rule to copy src asset scripts to dst. # (and make non-writable so I'm less likely to accidentally edit them there) @@ -1782,25 +1760,20 @@ SCRIPT_TARGETS_PY_PRIVATE_ANDROID = \ $(BUILD_DIR)/pylib-android/__future__.py \ $(BUILD_DIR)/pylib-android/__hello__.py \ $(BUILD_DIR)/pylib-android/_aix_support.py \ - $(BUILD_DIR)/pylib-android/_bootsubprocess.py \ $(BUILD_DIR)/pylib-android/_collections_abc.py \ $(BUILD_DIR)/pylib-android/_compat_pickle.py \ $(BUILD_DIR)/pylib-android/_compression.py \ $(BUILD_DIR)/pylib-android/_markupbase.py \ $(BUILD_DIR)/pylib-android/_osx_support.py \ $(BUILD_DIR)/pylib-android/_py_abc.py \ + $(BUILD_DIR)/pylib-android/_pydatetime.py \ $(BUILD_DIR)/pylib-android/_pydecimal.py \ $(BUILD_DIR)/pylib-android/_pyio.py \ + $(BUILD_DIR)/pylib-android/_pylong.py \ $(BUILD_DIR)/pylib-android/_sitebuiltins.py \ $(BUILD_DIR)/pylib-android/_strptime.py \ - $(BUILD_DIR)/pylib-android/_sysconfigdata__linux_aarch64-linux-android.py \ - $(BUILD_DIR)/pylib-android/_sysconfigdata__linux_arm-linux-androideabi.py \ - $(BUILD_DIR)/pylib-android/_sysconfigdata__linux_i686-linux-android.py \ - $(BUILD_DIR)/pylib-android/_sysconfigdata__linux_x86_64-linux-android.py \ - $(BUILD_DIR)/pylib-android/_sysconfigdata_d_linux_aarch64-linux-android.py \ - $(BUILD_DIR)/pylib-android/_sysconfigdata_d_linux_arm-linux-androideabi.py \ - $(BUILD_DIR)/pylib-android/_sysconfigdata_d_linux_i686-linux-android.py \ - $(BUILD_DIR)/pylib-android/_sysconfigdata_d_linux_x86_64-linux-android.py \ + $(BUILD_DIR)/pylib-android/_sysconfigdata__linux_.py \ + $(BUILD_DIR)/pylib-android/_sysconfigdata_d_linux_.py \ $(BUILD_DIR)/pylib-android/_threading_local.py \ $(BUILD_DIR)/pylib-android/_weakrefset.py \ $(BUILD_DIR)/pylib-android/abc.py \ @@ -1808,7 +1781,6 @@ SCRIPT_TARGETS_PY_PRIVATE_ANDROID = \ $(BUILD_DIR)/pylib-android/antigravity.py \ $(BUILD_DIR)/pylib-android/argparse.py \ $(BUILD_DIR)/pylib-android/ast.py \ - $(BUILD_DIR)/pylib-android/asynchat.py \ $(BUILD_DIR)/pylib-android/asyncio/__init__.py \ $(BUILD_DIR)/pylib-android/asyncio/__main__.py \ $(BUILD_DIR)/pylib-android/asyncio/base_events.py \ @@ -1842,7 +1814,6 @@ SCRIPT_TARGETS_PY_PRIVATE_ANDROID = \ $(BUILD_DIR)/pylib-android/asyncio/unix_events.py \ $(BUILD_DIR)/pylib-android/asyncio/windows_events.py \ $(BUILD_DIR)/pylib-android/asyncio/windows_utils.py \ - $(BUILD_DIR)/pylib-android/asyncore.py \ $(BUILD_DIR)/pylib-android/base64.py \ $(BUILD_DIR)/pylib-android/bdb.py \ $(BUILD_DIR)/pylib-android/bisect.py \ @@ -2069,7 +2040,6 @@ SCRIPT_TARGETS_PY_PRIVATE_ANDROID = \ $(BUILD_DIR)/pylib-android/http/cookies.py \ $(BUILD_DIR)/pylib-android/http/server.py \ $(BUILD_DIR)/pylib-android/imghdr.py \ - $(BUILD_DIR)/pylib-android/imp.py \ $(BUILD_DIR)/pylib-android/importlib/__init__.py \ $(BUILD_DIR)/pylib-android/importlib/_abc.py \ $(BUILD_DIR)/pylib-android/importlib/_bootstrap.py \ @@ -2158,12 +2128,12 @@ SCRIPT_TARGETS_PY_PRIVATE_ANDROID = \ $(BUILD_DIR)/pylib-android/shutil.py \ $(BUILD_DIR)/pylib-android/signal.py \ $(BUILD_DIR)/pylib-android/site.py \ - $(BUILD_DIR)/pylib-android/smtpd.py \ $(BUILD_DIR)/pylib-android/smtplib.py \ $(BUILD_DIR)/pylib-android/sndhdr.py \ $(BUILD_DIR)/pylib-android/socket.py \ $(BUILD_DIR)/pylib-android/socketserver.py \ $(BUILD_DIR)/pylib-android/sqlite3/__init__.py \ + $(BUILD_DIR)/pylib-android/sqlite3/__main__.py \ $(BUILD_DIR)/pylib-android/sqlite3/dbapi2.py \ $(BUILD_DIR)/pylib-android/sqlite3/dump.py \ $(BUILD_DIR)/pylib-android/sre_compile.py \ @@ -2238,7 +2208,10 @@ SCRIPT_TARGETS_PY_PRIVATE_ANDROID = \ $(BUILD_DIR)/pylib-android/xmlrpc/client.py \ $(BUILD_DIR)/pylib-android/xmlrpc/server.py \ $(BUILD_DIR)/pylib-android/zipapp.py \ - $(BUILD_DIR)/pylib-android/zipfile.py \ + $(BUILD_DIR)/pylib-android/zipfile/__init__.py \ + $(BUILD_DIR)/pylib-android/zipfile/__main__.py \ + $(BUILD_DIR)/pylib-android/zipfile/_path/__init__.py \ + $(BUILD_DIR)/pylib-android/zipfile/_path/glob.py \ $(BUILD_DIR)/pylib-android/zipimport.py \ $(BUILD_DIR)/pylib-android/zoneinfo/__init__.py \ $(BUILD_DIR)/pylib-android/zoneinfo/_common.py \ @@ -2246,471 +2219,466 @@ SCRIPT_TARGETS_PY_PRIVATE_ANDROID = \ $(BUILD_DIR)/pylib-android/zoneinfo/_zoneinfo.py SCRIPT_TARGETS_PYC_PRIVATE_ANDROID = \ - $(BUILD_DIR)/pylib-android/__pycache__/__future__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/__hello__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_aix_support.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_bootsubprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_collections_abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_compat_pickle.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_compression.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_markupbase.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_osx_support.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_py_abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_pydecimal.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_pyio.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_sitebuiltins.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_strptime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_sysconfigdata__linux_aarch64-linux-android.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_sysconfigdata__linux_arm-linux-androideabi.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_sysconfigdata__linux_i686-linux-android.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_sysconfigdata__linux_x86_64-linux-android.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_sysconfigdata_d_linux_aarch64-linux-android.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_sysconfigdata_d_linux_arm-linux-androideabi.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_sysconfigdata_d_linux_i686-linux-android.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_sysconfigdata_d_linux_x86_64-linux-android.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_threading_local.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/_weakrefset.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/aifc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/antigravity.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/argparse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/ast.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/asynchat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/__main__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/base_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/base_futures.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/base_subprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/base_tasks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/constants.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/coroutines.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/exceptions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/format_helpers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/futures.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/locks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/log.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/mixins.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/proactor_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/protocols.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/queues.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/runners.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/selector_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/sslproto.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/staggered.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/streams.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/subprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/taskgroups.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/tasks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/threads.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/timeouts.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/transports.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/trsock.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/unix_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/windows_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/asyncio/__pycache__/windows_utils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/asyncore.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/base64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/bdb.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/bisect.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/bz2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/cProfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/calendar.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/cgi.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/cgitb.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/chunk.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/cmd.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/code.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/codecs.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/codeop.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/collections/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/collections/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/colorsys.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/compileall.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/concurrent/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/concurrent/futures/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/concurrent/futures/__pycache__/_base.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/concurrent/futures/__pycache__/process.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/concurrent/futures/__pycache__/thread.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/configparser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/contextlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/contextvars.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/copy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/copyreg.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/crypt.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/csv.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/ctypes/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/ctypes/__pycache__/_aix.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/ctypes/__pycache__/_endian.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/ctypes/macholib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/ctypes/macholib/__pycache__/dyld.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/ctypes/macholib/__pycache__/dylib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/ctypes/macholib/__pycache__/framework.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/ctypes/__pycache__/util.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/ctypes/__pycache__/wintypes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/curses/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/curses/__pycache__/ascii.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/curses/__pycache__/has_key.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/curses/__pycache__/panel.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/curses/__pycache__/textpad.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/dataclasses.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/datetime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/decimal.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/difflib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/dis.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/doctest.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/_encoded_words.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/_header_value_parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/_parseaddr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/_policybase.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/base64mime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/charset.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/contentmanager.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/encoders.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/errors.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/feedparser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/generator.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/header.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/headerregistry.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/iterators.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/message.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/mime/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/mime/__pycache__/application.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/mime/__pycache__/audio.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/mime/__pycache__/base.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/mime/__pycache__/image.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/mime/__pycache__/message.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/mime/__pycache__/multipart.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/mime/__pycache__/nonmultipart.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/mime/__pycache__/text.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/policy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/quoprimime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/email/__pycache__/utils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/aliases.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/ascii.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/base64_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/big5.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/big5hkscs.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/bz2_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/charmap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp037.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1006.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1026.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1125.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1140.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1250.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1251.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1252.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1253.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1254.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1255.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1256.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1257.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1258.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp273.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp424.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp437.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp500.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp720.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp737.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp775.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp850.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp852.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp855.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp856.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp857.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp858.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp860.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp861.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp862.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp863.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp864.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp865.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp866.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp869.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp874.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp875.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp932.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp949.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp950.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/euc_jis_2004.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/euc_jisx0213.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/euc_jp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/euc_kr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/gb18030.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/gb2312.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/gbk.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/hex_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/hp_roman8.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/hz.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/idna.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_jp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_jp_1.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_jp_2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_jp_2004.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_jp_3.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_jp_ext.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_kr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_1.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_10.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_11.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_13.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_14.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_15.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_16.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_3.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_4.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_5.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_6.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_7.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_8.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_9.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/johab.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/koi8_r.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/koi8_t.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/koi8_u.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/kz1048.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/latin_1.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_arabic.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_croatian.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_cyrillic.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_farsi.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_greek.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_iceland.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_latin2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_roman.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_romanian.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_turkish.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/mbcs.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/oem.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/palmos.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/ptcp154.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/punycode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/quopri_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/raw_unicode_escape.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/rot_13.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/shift_jis.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/shift_jis_2004.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/shift_jisx0213.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/tis_620.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/undefined.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/unicode_escape.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_16.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_16_be.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_16_le.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_32.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_32_be.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_32_le.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_7.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_8.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_8_sig.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/uu_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/encodings/__pycache__/zlib_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/enum.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/filecmp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/fileinput.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/fnmatch.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/fractions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/ftplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/functools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/genericpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/getopt.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/getpass.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/gettext.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/glob.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/graphlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/gzip.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/hashlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/heapq.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/hmac.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/html/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/html/__pycache__/entities.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/html/__pycache__/parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/http/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/http/__pycache__/client.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/http/__pycache__/cookiejar.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/http/__pycache__/cookies.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/http/__pycache__/server.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/imghdr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/imp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/__pycache__/_abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/__pycache__/_bootstrap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/__pycache__/_bootstrap_external.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/__pycache__/machinery.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/_adapters.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/_collections.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/_functools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/_itertools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/_meta.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/_text.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/__pycache__/readers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/_adapters.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/_common.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/_itertools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/_legacy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/readers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/simple.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/__pycache__/simple.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/importlib/__pycache__/util.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/inspect.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/io.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/ipaddress.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/json/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/json/__pycache__/decoder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/json/__pycache__/encoder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/json/__pycache__/scanner.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/json/__pycache__/tool.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/keyword.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/linecache.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/locale.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/logging/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/logging/__pycache__/config.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/logging/__pycache__/handlers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/lzma.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/mailbox.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/mailcap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/mimetypes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/modulefinder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/netrc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/nntplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/ntpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/nturl2path.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/numbers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/opcode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/operator.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/optparse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/os.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/pathlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/pdb.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/pickle.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/pickletools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/pipes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/pkgutil.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/platform.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/plistlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/poplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/posixpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/pprint.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/profile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/pstats.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/pty.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/py_compile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/pyclbr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/pydoc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/queue.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/quopri.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/random.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/re/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/re/__pycache__/_casefix.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/re/__pycache__/_compiler.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/re/__pycache__/_constants.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/re/__pycache__/_parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/reprlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/rlcompleter.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/runpy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/sched.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/secrets.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/selectors.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/shelve.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/shlex.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/shutil.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/signal.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/site.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/smtpd.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/smtplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/sndhdr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/socket.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/socketserver.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/sqlite3/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/sqlite3/__pycache__/dbapi2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/sqlite3/__pycache__/dump.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/sre_compile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/sre_constants.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/sre_parse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/ssl.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/stat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/statistics.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/string.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/stringprep.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/struct.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/subprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/sunau.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/symtable.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/sysconfig.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/tabnanny.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/tarfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/telnetlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/tempfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/textwrap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/this.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/threading.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/timeit.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/token.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/tokenize.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/tomllib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/tomllib/__pycache__/_parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/tomllib/__pycache__/_re.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/tomllib/__pycache__/_types.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/trace.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/traceback.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/tracemalloc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/tty.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/types.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/typing.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/urllib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/urllib/__pycache__/error.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/urllib/__pycache__/parse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/urllib/__pycache__/request.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/urllib/__pycache__/response.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/urllib/__pycache__/robotparser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/uu.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/uuid.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/warnings.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/wave.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/weakref.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/webbrowser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/xdrlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/NodeFilter.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/domreg.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/expatbuilder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/minicompat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/minidom.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/pulldom.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/xmlbuilder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/etree/__pycache__/ElementInclude.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/etree/__pycache__/ElementPath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/etree/__pycache__/ElementTree.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/etree/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/etree/__pycache__/cElementTree.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/parsers/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/parsers/__pycache__/expat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/sax/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/sax/__pycache__/_exceptions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/sax/__pycache__/expatreader.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/sax/__pycache__/handler.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/sax/__pycache__/saxutils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xml/sax/__pycache__/xmlreader.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xmlrpc/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xmlrpc/__pycache__/client.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/xmlrpc/__pycache__/server.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/zipapp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/zipfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/__pycache__/zipimport.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/zoneinfo/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/zoneinfo/__pycache__/_common.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/zoneinfo/__pycache__/_tzpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/pylib-android/zoneinfo/__pycache__/_zoneinfo.cpython-311.opt-1.pyc + $(BUILD_DIR)/pylib-android/__pycache__/__future__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/__hello__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_aix_support.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_collections_abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_compat_pickle.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_compression.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_markupbase.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_osx_support.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_py_abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_pydatetime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_pydecimal.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_pyio.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_pylong.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_sitebuiltins.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_strptime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_sysconfigdata__linux_.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_sysconfigdata_d_linux_.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_threading_local.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/_weakrefset.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/aifc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/antigravity.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/argparse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/ast.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/__main__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/base_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/base_futures.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/base_subprocess.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/base_tasks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/constants.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/coroutines.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/exceptions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/format_helpers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/futures.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/locks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/log.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/mixins.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/proactor_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/protocols.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/queues.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/runners.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/selector_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/sslproto.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/staggered.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/streams.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/subprocess.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/taskgroups.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/tasks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/threads.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/timeouts.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/transports.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/trsock.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/unix_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/windows_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/asyncio/__pycache__/windows_utils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/base64.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/bdb.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/bisect.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/bz2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/cProfile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/calendar.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/cgi.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/cgitb.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/chunk.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/cmd.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/code.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/codecs.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/codeop.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/collections/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/collections/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/colorsys.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/compileall.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/concurrent/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/concurrent/futures/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/concurrent/futures/__pycache__/_base.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/concurrent/futures/__pycache__/process.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/concurrent/futures/__pycache__/thread.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/configparser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/contextlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/contextvars.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/copy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/copyreg.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/crypt.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/csv.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/ctypes/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/ctypes/__pycache__/_aix.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/ctypes/__pycache__/_endian.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/ctypes/macholib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/ctypes/macholib/__pycache__/dyld.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/ctypes/macholib/__pycache__/dylib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/ctypes/macholib/__pycache__/framework.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/ctypes/__pycache__/util.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/ctypes/__pycache__/wintypes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/curses/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/curses/__pycache__/ascii.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/curses/__pycache__/has_key.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/curses/__pycache__/panel.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/curses/__pycache__/textpad.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/dataclasses.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/datetime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/decimal.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/difflib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/dis.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/doctest.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/_encoded_words.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/_header_value_parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/_parseaddr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/_policybase.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/base64mime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/charset.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/contentmanager.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/encoders.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/errors.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/feedparser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/generator.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/header.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/headerregistry.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/iterators.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/message.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/mime/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/mime/__pycache__/application.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/mime/__pycache__/audio.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/mime/__pycache__/base.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/mime/__pycache__/image.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/mime/__pycache__/message.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/mime/__pycache__/multipart.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/mime/__pycache__/nonmultipart.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/mime/__pycache__/text.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/policy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/quoprimime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/email/__pycache__/utils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/aliases.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/ascii.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/base64_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/big5.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/big5hkscs.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/bz2_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/charmap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp037.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1006.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1026.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1125.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1140.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1250.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1251.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1252.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1253.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1254.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1255.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1256.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1257.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp1258.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp273.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp424.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp437.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp500.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp720.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp737.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp775.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp850.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp852.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp855.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp856.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp857.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp858.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp860.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp861.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp862.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp863.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp864.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp865.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp866.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp869.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp874.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp875.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp932.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp949.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/cp950.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/euc_jis_2004.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/euc_jisx0213.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/euc_jp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/euc_kr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/gb18030.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/gb2312.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/gbk.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/hex_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/hp_roman8.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/hz.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/idna.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_jp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_jp_1.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_jp_2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_jp_2004.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_jp_3.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_jp_ext.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso2022_kr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_1.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_10.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_11.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_13.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_14.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_15.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_16.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_3.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_4.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_5.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_6.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_7.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_8.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/iso8859_9.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/johab.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/koi8_r.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/koi8_t.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/koi8_u.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/kz1048.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/latin_1.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_arabic.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_croatian.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_cyrillic.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_farsi.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_greek.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_iceland.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_latin2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_roman.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_romanian.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/mac_turkish.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/mbcs.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/oem.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/palmos.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/ptcp154.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/punycode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/quopri_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/raw_unicode_escape.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/rot_13.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/shift_jis.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/shift_jis_2004.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/shift_jisx0213.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/tis_620.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/undefined.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/unicode_escape.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_16.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_16_be.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_16_le.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_32.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_32_be.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_32_le.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_7.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_8.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/utf_8_sig.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/uu_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/encodings/__pycache__/zlib_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/enum.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/filecmp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/fileinput.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/fnmatch.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/fractions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/ftplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/functools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/genericpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/getopt.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/getpass.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/gettext.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/glob.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/graphlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/gzip.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/hashlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/heapq.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/hmac.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/html/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/html/__pycache__/entities.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/html/__pycache__/parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/http/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/http/__pycache__/client.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/http/__pycache__/cookiejar.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/http/__pycache__/cookies.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/http/__pycache__/server.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/imghdr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/__pycache__/_abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/__pycache__/_bootstrap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/__pycache__/_bootstrap_external.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/__pycache__/machinery.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/_adapters.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/_collections.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/_functools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/_itertools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/_meta.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/metadata/__pycache__/_text.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/__pycache__/readers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/_adapters.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/_common.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/_itertools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/_legacy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/readers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/resources/__pycache__/simple.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/__pycache__/simple.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/importlib/__pycache__/util.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/inspect.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/io.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/ipaddress.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/json/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/json/__pycache__/decoder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/json/__pycache__/encoder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/json/__pycache__/scanner.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/json/__pycache__/tool.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/keyword.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/linecache.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/locale.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/logging/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/logging/__pycache__/config.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/logging/__pycache__/handlers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/lzma.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/mailbox.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/mailcap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/mimetypes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/modulefinder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/netrc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/nntplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/ntpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/nturl2path.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/numbers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/opcode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/operator.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/optparse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/os.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/pathlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/pdb.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/pickle.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/pickletools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/pipes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/pkgutil.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/platform.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/plistlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/poplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/posixpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/pprint.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/profile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/pstats.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/pty.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/py_compile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/pyclbr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/pydoc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/queue.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/quopri.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/random.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/re/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/re/__pycache__/_casefix.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/re/__pycache__/_compiler.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/re/__pycache__/_constants.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/re/__pycache__/_parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/reprlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/rlcompleter.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/runpy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/sched.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/secrets.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/selectors.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/shelve.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/shlex.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/shutil.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/signal.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/site.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/smtplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/sndhdr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/socket.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/socketserver.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/sqlite3/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/sqlite3/__pycache__/__main__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/sqlite3/__pycache__/dbapi2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/sqlite3/__pycache__/dump.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/sre_compile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/sre_constants.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/sre_parse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/ssl.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/stat.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/statistics.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/string.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/stringprep.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/struct.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/subprocess.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/sunau.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/symtable.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/sysconfig.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/tabnanny.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/tarfile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/telnetlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/tempfile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/textwrap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/this.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/threading.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/timeit.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/token.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/tokenize.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/tomllib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/tomllib/__pycache__/_parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/tomllib/__pycache__/_re.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/tomllib/__pycache__/_types.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/trace.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/traceback.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/tracemalloc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/tty.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/types.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/typing.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/urllib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/urllib/__pycache__/error.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/urllib/__pycache__/parse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/urllib/__pycache__/request.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/urllib/__pycache__/response.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/urllib/__pycache__/robotparser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/uu.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/uuid.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/warnings.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/wave.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/weakref.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/webbrowser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/xdrlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/NodeFilter.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/domreg.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/expatbuilder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/minicompat.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/minidom.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/pulldom.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/dom/__pycache__/xmlbuilder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/etree/__pycache__/ElementInclude.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/etree/__pycache__/ElementPath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/etree/__pycache__/ElementTree.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/etree/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/etree/__pycache__/cElementTree.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/parsers/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/parsers/__pycache__/expat.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/sax/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/sax/__pycache__/_exceptions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/sax/__pycache__/expatreader.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/sax/__pycache__/handler.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/sax/__pycache__/saxutils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xml/sax/__pycache__/xmlreader.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xmlrpc/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xmlrpc/__pycache__/client.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/xmlrpc/__pycache__/server.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/zipapp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/zipfile/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/zipfile/__pycache__/__main__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/zipfile/_path/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/zipfile/_path/__pycache__/glob.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/__pycache__/zipimport.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/zoneinfo/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/zoneinfo/__pycache__/_common.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/zoneinfo/__pycache__/_tzpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/pylib-android/zoneinfo/__pycache__/_zoneinfo.cpython-312.opt-1.pyc # Rule to copy src asset scripts to dst. # (and make non-writable so I'm less likely to accidentally edit them there) @@ -2748,29 +2716,29 @@ SCRIPT_TARGETS_PY_PRIVATE_COMMON = \ $(BUILD_DIR)/sphinx/static/conf.py SCRIPT_TARGETS_PYC_PRIVATE_COMMON = \ - $(BUILD_DIR)/ba_data/python-site-packages/_yaml/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/certifi/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/certifi/__pycache__/__main__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/certifi/__pycache__/core.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/__pycache__/typing_extensions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/composer.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/constructor.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/cyaml.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/dumper.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/emitter.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/error.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/loader.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/nodes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/reader.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/representer.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/resolver.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/scanner.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/serializer.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/tokens.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/sphinx/static/__pycache__/conf.cpython-311.opt-1.pyc + $(BUILD_DIR)/ba_data/python-site-packages/_yaml/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/certifi/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/certifi/__pycache__/__main__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/certifi/__pycache__/core.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/__pycache__/typing_extensions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/composer.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/constructor.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/cyaml.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/dumper.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/emitter.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/error.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/loader.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/nodes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/reader.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/representer.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/resolver.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/scanner.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/serializer.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/ba_data/python-site-packages/yaml/__pycache__/tokens.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/sphinx/static/__pycache__/conf.cpython-312.opt-1.pyc # Rule to copy src asset scripts to dst. # (and make non-writable so I'm less likely to accidentally edit them there) @@ -2786,15 +2754,16 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_WIN32 = \ $(BUILD_DIR)/windows/Win32/Lib/__future__.py \ $(BUILD_DIR)/windows/Win32/Lib/__hello__.py \ $(BUILD_DIR)/windows/Win32/Lib/_aix_support.py \ - $(BUILD_DIR)/windows/Win32/Lib/_bootsubprocess.py \ $(BUILD_DIR)/windows/Win32/Lib/_collections_abc.py \ $(BUILD_DIR)/windows/Win32/Lib/_compat_pickle.py \ $(BUILD_DIR)/windows/Win32/Lib/_compression.py \ $(BUILD_DIR)/windows/Win32/Lib/_markupbase.py \ $(BUILD_DIR)/windows/Win32/Lib/_osx_support.py \ $(BUILD_DIR)/windows/Win32/Lib/_py_abc.py \ + $(BUILD_DIR)/windows/Win32/Lib/_pydatetime.py \ $(BUILD_DIR)/windows/Win32/Lib/_pydecimal.py \ $(BUILD_DIR)/windows/Win32/Lib/_pyio.py \ + $(BUILD_DIR)/windows/Win32/Lib/_pylong.py \ $(BUILD_DIR)/windows/Win32/Lib/_sitebuiltins.py \ $(BUILD_DIR)/windows/Win32/Lib/_strptime.py \ $(BUILD_DIR)/windows/Win32/Lib/_threading_local.py \ @@ -2804,7 +2773,6 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_WIN32 = \ $(BUILD_DIR)/windows/Win32/Lib/antigravity.py \ $(BUILD_DIR)/windows/Win32/Lib/argparse.py \ $(BUILD_DIR)/windows/Win32/Lib/ast.py \ - $(BUILD_DIR)/windows/Win32/Lib/asynchat.py \ $(BUILD_DIR)/windows/Win32/Lib/asyncio/__init__.py \ $(BUILD_DIR)/windows/Win32/Lib/asyncio/__main__.py \ $(BUILD_DIR)/windows/Win32/Lib/asyncio/base_events.py \ @@ -2838,7 +2806,6 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_WIN32 = \ $(BUILD_DIR)/windows/Win32/Lib/asyncio/unix_events.py \ $(BUILD_DIR)/windows/Win32/Lib/asyncio/windows_events.py \ $(BUILD_DIR)/windows/Win32/Lib/asyncio/windows_utils.py \ - $(BUILD_DIR)/windows/Win32/Lib/asyncore.py \ $(BUILD_DIR)/windows/Win32/Lib/base64.py \ $(BUILD_DIR)/windows/Win32/Lib/bdb.py \ $(BUILD_DIR)/windows/Win32/Lib/bisect.py \ @@ -3065,7 +3032,6 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_WIN32 = \ $(BUILD_DIR)/windows/Win32/Lib/http/cookies.py \ $(BUILD_DIR)/windows/Win32/Lib/http/server.py \ $(BUILD_DIR)/windows/Win32/Lib/imghdr.py \ - $(BUILD_DIR)/windows/Win32/Lib/imp.py \ $(BUILD_DIR)/windows/Win32/Lib/importlib/__init__.py \ $(BUILD_DIR)/windows/Win32/Lib/importlib/_abc.py \ $(BUILD_DIR)/windows/Win32/Lib/importlib/_bootstrap.py \ @@ -3154,12 +3120,12 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_WIN32 = \ $(BUILD_DIR)/windows/Win32/Lib/shutil.py \ $(BUILD_DIR)/windows/Win32/Lib/signal.py \ $(BUILD_DIR)/windows/Win32/Lib/site.py \ - $(BUILD_DIR)/windows/Win32/Lib/smtpd.py \ $(BUILD_DIR)/windows/Win32/Lib/smtplib.py \ $(BUILD_DIR)/windows/Win32/Lib/sndhdr.py \ $(BUILD_DIR)/windows/Win32/Lib/socket.py \ $(BUILD_DIR)/windows/Win32/Lib/socketserver.py \ $(BUILD_DIR)/windows/Win32/Lib/sqlite3/__init__.py \ + $(BUILD_DIR)/windows/Win32/Lib/sqlite3/__main__.py \ $(BUILD_DIR)/windows/Win32/Lib/sqlite3/dbapi2.py \ $(BUILD_DIR)/windows/Win32/Lib/sqlite3/dump.py \ $(BUILD_DIR)/windows/Win32/Lib/sre_compile.py \ @@ -3234,7 +3200,10 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_WIN32 = \ $(BUILD_DIR)/windows/Win32/Lib/xmlrpc/client.py \ $(BUILD_DIR)/windows/Win32/Lib/xmlrpc/server.py \ $(BUILD_DIR)/windows/Win32/Lib/zipapp.py \ - $(BUILD_DIR)/windows/Win32/Lib/zipfile.py \ + $(BUILD_DIR)/windows/Win32/Lib/zipfile/__init__.py \ + $(BUILD_DIR)/windows/Win32/Lib/zipfile/__main__.py \ + $(BUILD_DIR)/windows/Win32/Lib/zipfile/_path/__init__.py \ + $(BUILD_DIR)/windows/Win32/Lib/zipfile/_path/glob.py \ $(BUILD_DIR)/windows/Win32/Lib/zipimport.py \ $(BUILD_DIR)/windows/Win32/Lib/zoneinfo/__init__.py \ $(BUILD_DIR)/windows/Win32/Lib/zoneinfo/_common.py \ @@ -3242,463 +3211,464 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_WIN32 = \ $(BUILD_DIR)/windows/Win32/Lib/zoneinfo/_zoneinfo.py SCRIPT_TARGETS_PYC_PRIVATE_WIN_WIN32 = \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/__future__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/__hello__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_aix_support.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_bootsubprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_collections_abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_compat_pickle.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_compression.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_markupbase.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_osx_support.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_py_abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_pydecimal.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_pyio.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_sitebuiltins.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_strptime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_threading_local.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_weakrefset.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/aifc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/antigravity.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/argparse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/ast.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/asynchat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/__main__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/base_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/base_futures.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/base_subprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/base_tasks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/constants.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/coroutines.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/exceptions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/format_helpers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/futures.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/locks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/log.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/mixins.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/proactor_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/protocols.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/queues.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/runners.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/selector_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/sslproto.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/staggered.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/streams.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/subprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/taskgroups.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/tasks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/threads.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/timeouts.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/transports.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/trsock.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/unix_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/windows_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/windows_utils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/asyncore.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/base64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/bdb.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/bisect.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/bz2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/cProfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/calendar.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/cgi.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/cgitb.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/chunk.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/cmd.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/code.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/codecs.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/codeop.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/collections/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/collections/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/colorsys.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/compileall.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/concurrent/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/concurrent/futures/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/concurrent/futures/__pycache__/_base.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/concurrent/futures/__pycache__/process.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/concurrent/futures/__pycache__/thread.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/configparser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/contextlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/contextvars.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/copy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/copyreg.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/crypt.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/csv.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/ctypes/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/ctypes/__pycache__/_aix.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/ctypes/__pycache__/_endian.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/ctypes/macholib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/ctypes/macholib/__pycache__/dyld.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/ctypes/macholib/__pycache__/dylib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/ctypes/macholib/__pycache__/framework.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/ctypes/__pycache__/util.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/ctypes/__pycache__/wintypes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/curses/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/curses/__pycache__/ascii.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/curses/__pycache__/has_key.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/curses/__pycache__/panel.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/curses/__pycache__/textpad.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/dataclasses.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/datetime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/decimal.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/difflib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/dis.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/doctest.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/_encoded_words.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/_header_value_parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/_parseaddr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/_policybase.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/base64mime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/charset.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/contentmanager.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/encoders.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/errors.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/feedparser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/generator.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/header.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/headerregistry.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/iterators.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/message.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/application.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/audio.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/base.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/image.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/message.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/multipart.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/nonmultipart.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/text.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/policy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/quoprimime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/utils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/aliases.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/ascii.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/base64_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/big5.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/big5hkscs.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/bz2_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/charmap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp037.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1006.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1026.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1125.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1140.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1250.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1251.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1252.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1253.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1254.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1255.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1256.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1257.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1258.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp273.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp424.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp437.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp500.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp720.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp737.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp775.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp850.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp852.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp855.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp856.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp857.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp858.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp860.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp861.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp862.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp863.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp864.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp865.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp866.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp869.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp874.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp875.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp932.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp949.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp950.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/euc_jis_2004.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/euc_jisx0213.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/euc_jp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/euc_kr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/gb18030.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/gb2312.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/gbk.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/hex_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/hp_roman8.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/hz.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/idna.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_jp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_jp_1.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_jp_2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_jp_2004.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_jp_3.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_jp_ext.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_kr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_1.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_10.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_11.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_13.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_14.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_15.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_16.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_3.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_4.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_5.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_6.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_7.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_8.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_9.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/johab.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/koi8_r.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/koi8_t.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/koi8_u.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/kz1048.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/latin_1.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_arabic.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_croatian.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_cyrillic.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_farsi.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_greek.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_iceland.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_latin2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_roman.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_romanian.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_turkish.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mbcs.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/oem.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/palmos.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/ptcp154.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/punycode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/quopri_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/raw_unicode_escape.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/rot_13.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/shift_jis.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/shift_jis_2004.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/shift_jisx0213.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/tis_620.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/undefined.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/unicode_escape.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_16.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_16_be.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_16_le.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_32.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_32_be.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_32_le.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_7.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_8.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_8_sig.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/uu_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/zlib_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/enum.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/filecmp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/fileinput.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/fnmatch.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/fractions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/ftplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/functools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/genericpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/getopt.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/getpass.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/gettext.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/glob.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/graphlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/gzip.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/hashlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/heapq.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/hmac.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/html/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/html/__pycache__/entities.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/html/__pycache__/parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/http/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/http/__pycache__/client.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/http/__pycache__/cookiejar.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/http/__pycache__/cookies.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/http/__pycache__/server.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/imghdr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/imp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/_abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/_bootstrap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/_bootstrap_external.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/machinery.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/_adapters.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/_collections.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/_functools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/_itertools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/_meta.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/_text.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/readers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/_adapters.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/_common.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/_itertools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/_legacy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/readers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/simple.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/simple.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/util.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/inspect.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/io.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/ipaddress.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/json/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/json/__pycache__/decoder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/json/__pycache__/encoder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/json/__pycache__/scanner.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/json/__pycache__/tool.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/keyword.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/linecache.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/locale.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/logging/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/logging/__pycache__/config.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/logging/__pycache__/handlers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/lzma.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/mailbox.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/mailcap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/mimetypes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/modulefinder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/netrc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/nntplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/ntpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/nturl2path.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/numbers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/opcode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/operator.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/optparse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/os.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pathlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pdb.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pickle.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pickletools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pipes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pkgutil.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/platform.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/plistlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/poplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/posixpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pprint.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/profile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pstats.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pty.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/py_compile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pyclbr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pydoc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/queue.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/quopri.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/random.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/re/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/re/__pycache__/_casefix.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/re/__pycache__/_compiler.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/re/__pycache__/_constants.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/re/__pycache__/_parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/reprlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/rlcompleter.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/runpy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sched.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/secrets.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/selectors.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/shelve.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/shlex.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/shutil.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/signal.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/site.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/smtpd.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/smtplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sndhdr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/socket.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/socketserver.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/sqlite3/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/sqlite3/__pycache__/dbapi2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/sqlite3/__pycache__/dump.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sre_compile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sre_constants.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sre_parse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/ssl.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/stat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/statistics.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/string.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/stringprep.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/struct.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/subprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sunau.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/symtable.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sysconfig.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/tabnanny.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/tarfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/telnetlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/tempfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/textwrap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/this.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/threading.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/timeit.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/token.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/tokenize.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/tomllib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/tomllib/__pycache__/_parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/tomllib/__pycache__/_re.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/tomllib/__pycache__/_types.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/trace.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/traceback.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/tracemalloc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/tty.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/types.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/typing.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/urllib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/urllib/__pycache__/error.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/urllib/__pycache__/parse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/urllib/__pycache__/request.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/urllib/__pycache__/response.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/urllib/__pycache__/robotparser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/uu.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/uuid.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/warnings.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/wave.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/weakref.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/webbrowser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/xdrlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/NodeFilter.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/domreg.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/expatbuilder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/minicompat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/minidom.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/pulldom.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/xmlbuilder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/etree/__pycache__/ElementInclude.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/etree/__pycache__/ElementPath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/etree/__pycache__/ElementTree.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/etree/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/etree/__pycache__/cElementTree.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/parsers/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/parsers/__pycache__/expat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/sax/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/sax/__pycache__/_exceptions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/sax/__pycache__/expatreader.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/sax/__pycache__/handler.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/sax/__pycache__/saxutils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xml/sax/__pycache__/xmlreader.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xmlrpc/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xmlrpc/__pycache__/client.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/xmlrpc/__pycache__/server.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/zipapp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/zipfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/__pycache__/zipimport.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/zoneinfo/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/zoneinfo/__pycache__/_common.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/zoneinfo/__pycache__/_tzpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/Win32/Lib/zoneinfo/__pycache__/_zoneinfo.cpython-311.opt-1.pyc + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/__future__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/__hello__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_aix_support.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_collections_abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_compat_pickle.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_compression.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_markupbase.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_osx_support.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_py_abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_pydatetime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_pydecimal.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_pyio.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_pylong.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_sitebuiltins.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_strptime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_threading_local.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/_weakrefset.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/aifc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/antigravity.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/argparse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/ast.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/__main__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/base_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/base_futures.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/base_subprocess.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/base_tasks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/constants.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/coroutines.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/exceptions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/format_helpers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/futures.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/locks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/log.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/mixins.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/proactor_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/protocols.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/queues.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/runners.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/selector_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/sslproto.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/staggered.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/streams.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/subprocess.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/taskgroups.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/tasks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/threads.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/timeouts.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/transports.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/trsock.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/unix_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/windows_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/asyncio/__pycache__/windows_utils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/base64.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/bdb.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/bisect.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/bz2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/cProfile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/calendar.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/cgi.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/cgitb.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/chunk.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/cmd.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/code.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/codecs.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/codeop.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/collections/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/collections/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/colorsys.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/compileall.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/concurrent/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/concurrent/futures/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/concurrent/futures/__pycache__/_base.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/concurrent/futures/__pycache__/process.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/concurrent/futures/__pycache__/thread.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/configparser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/contextlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/contextvars.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/copy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/copyreg.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/crypt.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/csv.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/ctypes/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/ctypes/__pycache__/_aix.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/ctypes/__pycache__/_endian.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/ctypes/macholib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/ctypes/macholib/__pycache__/dyld.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/ctypes/macholib/__pycache__/dylib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/ctypes/macholib/__pycache__/framework.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/ctypes/__pycache__/util.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/ctypes/__pycache__/wintypes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/curses/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/curses/__pycache__/ascii.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/curses/__pycache__/has_key.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/curses/__pycache__/panel.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/curses/__pycache__/textpad.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/dataclasses.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/datetime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/decimal.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/difflib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/dis.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/doctest.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/_encoded_words.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/_header_value_parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/_parseaddr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/_policybase.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/base64mime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/charset.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/contentmanager.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/encoders.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/errors.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/feedparser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/generator.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/header.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/headerregistry.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/iterators.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/message.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/application.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/audio.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/base.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/image.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/message.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/multipart.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/nonmultipart.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/mime/__pycache__/text.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/policy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/quoprimime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/email/__pycache__/utils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/aliases.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/ascii.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/base64_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/big5.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/big5hkscs.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/bz2_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/charmap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp037.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1006.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1026.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1125.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1140.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1250.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1251.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1252.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1253.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1254.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1255.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1256.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1257.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp1258.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp273.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp424.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp437.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp500.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp720.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp737.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp775.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp850.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp852.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp855.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp856.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp857.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp858.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp860.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp861.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp862.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp863.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp864.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp865.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp866.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp869.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp874.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp875.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp932.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp949.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/cp950.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/euc_jis_2004.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/euc_jisx0213.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/euc_jp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/euc_kr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/gb18030.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/gb2312.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/gbk.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/hex_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/hp_roman8.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/hz.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/idna.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_jp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_jp_1.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_jp_2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_jp_2004.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_jp_3.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_jp_ext.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso2022_kr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_1.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_10.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_11.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_13.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_14.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_15.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_16.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_3.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_4.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_5.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_6.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_7.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_8.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/iso8859_9.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/johab.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/koi8_r.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/koi8_t.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/koi8_u.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/kz1048.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/latin_1.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_arabic.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_croatian.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_cyrillic.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_farsi.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_greek.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_iceland.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_latin2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_roman.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_romanian.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mac_turkish.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/mbcs.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/oem.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/palmos.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/ptcp154.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/punycode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/quopri_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/raw_unicode_escape.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/rot_13.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/shift_jis.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/shift_jis_2004.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/shift_jisx0213.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/tis_620.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/undefined.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/unicode_escape.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_16.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_16_be.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_16_le.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_32.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_32_be.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_32_le.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_7.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_8.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/utf_8_sig.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/uu_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/encodings/__pycache__/zlib_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/enum.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/filecmp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/fileinput.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/fnmatch.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/fractions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/ftplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/functools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/genericpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/getopt.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/getpass.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/gettext.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/glob.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/graphlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/gzip.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/hashlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/heapq.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/hmac.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/html/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/html/__pycache__/entities.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/html/__pycache__/parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/http/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/http/__pycache__/client.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/http/__pycache__/cookiejar.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/http/__pycache__/cookies.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/http/__pycache__/server.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/imghdr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/_abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/_bootstrap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/_bootstrap_external.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/machinery.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/_adapters.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/_collections.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/_functools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/_itertools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/_meta.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/metadata/__pycache__/_text.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/readers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/_adapters.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/_common.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/_itertools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/_legacy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/readers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/resources/__pycache__/simple.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/simple.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/importlib/__pycache__/util.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/inspect.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/io.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/ipaddress.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/json/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/json/__pycache__/decoder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/json/__pycache__/encoder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/json/__pycache__/scanner.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/json/__pycache__/tool.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/keyword.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/linecache.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/locale.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/logging/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/logging/__pycache__/config.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/logging/__pycache__/handlers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/lzma.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/mailbox.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/mailcap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/mimetypes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/modulefinder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/netrc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/nntplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/ntpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/nturl2path.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/numbers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/opcode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/operator.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/optparse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/os.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pathlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pdb.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pickle.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pickletools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pipes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pkgutil.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/platform.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/plistlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/poplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/posixpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pprint.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/profile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pstats.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pty.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/py_compile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pyclbr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/pydoc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/queue.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/quopri.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/random.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/re/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/re/__pycache__/_casefix.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/re/__pycache__/_compiler.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/re/__pycache__/_constants.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/re/__pycache__/_parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/reprlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/rlcompleter.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/runpy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sched.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/secrets.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/selectors.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/shelve.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/shlex.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/shutil.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/signal.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/site.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/smtplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sndhdr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/socket.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/socketserver.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/sqlite3/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/sqlite3/__pycache__/__main__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/sqlite3/__pycache__/dbapi2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/sqlite3/__pycache__/dump.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sre_compile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sre_constants.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sre_parse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/ssl.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/stat.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/statistics.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/string.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/stringprep.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/struct.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/subprocess.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sunau.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/symtable.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/sysconfig.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/tabnanny.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/tarfile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/telnetlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/tempfile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/textwrap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/this.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/threading.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/timeit.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/token.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/tokenize.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/tomllib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/tomllib/__pycache__/_parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/tomllib/__pycache__/_re.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/tomllib/__pycache__/_types.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/trace.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/traceback.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/tracemalloc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/tty.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/types.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/typing.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/urllib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/urllib/__pycache__/error.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/urllib/__pycache__/parse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/urllib/__pycache__/request.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/urllib/__pycache__/response.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/urllib/__pycache__/robotparser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/uu.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/uuid.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/warnings.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/wave.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/weakref.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/webbrowser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/xdrlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/NodeFilter.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/domreg.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/expatbuilder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/minicompat.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/minidom.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/pulldom.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/dom/__pycache__/xmlbuilder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/etree/__pycache__/ElementInclude.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/etree/__pycache__/ElementPath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/etree/__pycache__/ElementTree.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/etree/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/etree/__pycache__/cElementTree.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/parsers/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/parsers/__pycache__/expat.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/sax/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/sax/__pycache__/_exceptions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/sax/__pycache__/expatreader.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/sax/__pycache__/handler.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/sax/__pycache__/saxutils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xml/sax/__pycache__/xmlreader.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xmlrpc/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xmlrpc/__pycache__/client.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/xmlrpc/__pycache__/server.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/zipapp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/zipfile/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/zipfile/__pycache__/__main__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/zipfile/_path/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/zipfile/_path/__pycache__/glob.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/__pycache__/zipimport.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/zoneinfo/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/zoneinfo/__pycache__/_common.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/zoneinfo/__pycache__/_tzpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/Win32/Lib/zoneinfo/__pycache__/_zoneinfo.cpython-312.opt-1.pyc # Rule to copy src asset scripts to dst. # (and make non-writable so I'm less likely to accidentally edit them there) @@ -3714,15 +3684,16 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_X64 = \ $(BUILD_DIR)/windows/x64/Lib/__future__.py \ $(BUILD_DIR)/windows/x64/Lib/__hello__.py \ $(BUILD_DIR)/windows/x64/Lib/_aix_support.py \ - $(BUILD_DIR)/windows/x64/Lib/_bootsubprocess.py \ $(BUILD_DIR)/windows/x64/Lib/_collections_abc.py \ $(BUILD_DIR)/windows/x64/Lib/_compat_pickle.py \ $(BUILD_DIR)/windows/x64/Lib/_compression.py \ $(BUILD_DIR)/windows/x64/Lib/_markupbase.py \ $(BUILD_DIR)/windows/x64/Lib/_osx_support.py \ $(BUILD_DIR)/windows/x64/Lib/_py_abc.py \ + $(BUILD_DIR)/windows/x64/Lib/_pydatetime.py \ $(BUILD_DIR)/windows/x64/Lib/_pydecimal.py \ $(BUILD_DIR)/windows/x64/Lib/_pyio.py \ + $(BUILD_DIR)/windows/x64/Lib/_pylong.py \ $(BUILD_DIR)/windows/x64/Lib/_sitebuiltins.py \ $(BUILD_DIR)/windows/x64/Lib/_strptime.py \ $(BUILD_DIR)/windows/x64/Lib/_threading_local.py \ @@ -3732,7 +3703,6 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_X64 = \ $(BUILD_DIR)/windows/x64/Lib/antigravity.py \ $(BUILD_DIR)/windows/x64/Lib/argparse.py \ $(BUILD_DIR)/windows/x64/Lib/ast.py \ - $(BUILD_DIR)/windows/x64/Lib/asynchat.py \ $(BUILD_DIR)/windows/x64/Lib/asyncio/__init__.py \ $(BUILD_DIR)/windows/x64/Lib/asyncio/__main__.py \ $(BUILD_DIR)/windows/x64/Lib/asyncio/base_events.py \ @@ -3766,7 +3736,6 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_X64 = \ $(BUILD_DIR)/windows/x64/Lib/asyncio/unix_events.py \ $(BUILD_DIR)/windows/x64/Lib/asyncio/windows_events.py \ $(BUILD_DIR)/windows/x64/Lib/asyncio/windows_utils.py \ - $(BUILD_DIR)/windows/x64/Lib/asyncore.py \ $(BUILD_DIR)/windows/x64/Lib/base64.py \ $(BUILD_DIR)/windows/x64/Lib/bdb.py \ $(BUILD_DIR)/windows/x64/Lib/bisect.py \ @@ -3993,7 +3962,6 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_X64 = \ $(BUILD_DIR)/windows/x64/Lib/http/cookies.py \ $(BUILD_DIR)/windows/x64/Lib/http/server.py \ $(BUILD_DIR)/windows/x64/Lib/imghdr.py \ - $(BUILD_DIR)/windows/x64/Lib/imp.py \ $(BUILD_DIR)/windows/x64/Lib/importlib/__init__.py \ $(BUILD_DIR)/windows/x64/Lib/importlib/_abc.py \ $(BUILD_DIR)/windows/x64/Lib/importlib/_bootstrap.py \ @@ -4082,12 +4050,12 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_X64 = \ $(BUILD_DIR)/windows/x64/Lib/shutil.py \ $(BUILD_DIR)/windows/x64/Lib/signal.py \ $(BUILD_DIR)/windows/x64/Lib/site.py \ - $(BUILD_DIR)/windows/x64/Lib/smtpd.py \ $(BUILD_DIR)/windows/x64/Lib/smtplib.py \ $(BUILD_DIR)/windows/x64/Lib/sndhdr.py \ $(BUILD_DIR)/windows/x64/Lib/socket.py \ $(BUILD_DIR)/windows/x64/Lib/socketserver.py \ $(BUILD_DIR)/windows/x64/Lib/sqlite3/__init__.py \ + $(BUILD_DIR)/windows/x64/Lib/sqlite3/__main__.py \ $(BUILD_DIR)/windows/x64/Lib/sqlite3/dbapi2.py \ $(BUILD_DIR)/windows/x64/Lib/sqlite3/dump.py \ $(BUILD_DIR)/windows/x64/Lib/sre_compile.py \ @@ -4162,7 +4130,10 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_X64 = \ $(BUILD_DIR)/windows/x64/Lib/xmlrpc/client.py \ $(BUILD_DIR)/windows/x64/Lib/xmlrpc/server.py \ $(BUILD_DIR)/windows/x64/Lib/zipapp.py \ - $(BUILD_DIR)/windows/x64/Lib/zipfile.py \ + $(BUILD_DIR)/windows/x64/Lib/zipfile/__init__.py \ + $(BUILD_DIR)/windows/x64/Lib/zipfile/__main__.py \ + $(BUILD_DIR)/windows/x64/Lib/zipfile/_path/__init__.py \ + $(BUILD_DIR)/windows/x64/Lib/zipfile/_path/glob.py \ $(BUILD_DIR)/windows/x64/Lib/zipimport.py \ $(BUILD_DIR)/windows/x64/Lib/zoneinfo/__init__.py \ $(BUILD_DIR)/windows/x64/Lib/zoneinfo/_common.py \ @@ -4170,463 +4141,464 @@ SCRIPT_TARGETS_PY_PRIVATE_WIN_X64 = \ $(BUILD_DIR)/windows/x64/Lib/zoneinfo/_zoneinfo.py SCRIPT_TARGETS_PYC_PRIVATE_WIN_X64 = \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/__future__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/__hello__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_aix_support.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_bootsubprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_collections_abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_compat_pickle.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_compression.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_markupbase.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_osx_support.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_py_abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_pydecimal.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_pyio.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_sitebuiltins.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_strptime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_threading_local.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/_weakrefset.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/aifc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/antigravity.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/argparse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/ast.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/asynchat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/__main__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/base_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/base_futures.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/base_subprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/base_tasks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/constants.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/coroutines.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/exceptions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/format_helpers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/futures.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/locks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/log.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/mixins.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/proactor_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/protocols.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/queues.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/runners.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/selector_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/sslproto.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/staggered.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/streams.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/subprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/taskgroups.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/tasks.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/threads.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/timeouts.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/transports.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/trsock.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/unix_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/windows_events.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/windows_utils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/asyncore.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/base64.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/bdb.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/bisect.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/bz2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/cProfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/calendar.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/cgi.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/cgitb.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/chunk.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/cmd.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/code.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/codecs.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/codeop.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/collections/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/collections/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/colorsys.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/compileall.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/concurrent/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/concurrent/futures/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/concurrent/futures/__pycache__/_base.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/concurrent/futures/__pycache__/process.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/concurrent/futures/__pycache__/thread.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/configparser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/contextlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/contextvars.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/copy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/copyreg.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/crypt.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/csv.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/ctypes/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/ctypes/__pycache__/_aix.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/ctypes/__pycache__/_endian.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/ctypes/macholib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/ctypes/macholib/__pycache__/dyld.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/ctypes/macholib/__pycache__/dylib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/ctypes/macholib/__pycache__/framework.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/ctypes/__pycache__/util.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/ctypes/__pycache__/wintypes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/curses/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/curses/__pycache__/ascii.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/curses/__pycache__/has_key.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/curses/__pycache__/panel.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/curses/__pycache__/textpad.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/dataclasses.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/datetime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/decimal.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/difflib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/dis.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/doctest.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/_encoded_words.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/_header_value_parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/_parseaddr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/_policybase.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/base64mime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/charset.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/contentmanager.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/encoders.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/errors.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/feedparser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/generator.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/header.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/headerregistry.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/iterators.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/message.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/application.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/audio.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/base.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/image.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/message.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/multipart.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/nonmultipart.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/text.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/policy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/quoprimime.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/utils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/aliases.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/ascii.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/base64_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/big5.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/big5hkscs.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/bz2_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/charmap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp037.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1006.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1026.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1125.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1140.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1250.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1251.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1252.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1253.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1254.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1255.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1256.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1257.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1258.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp273.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp424.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp437.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp500.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp720.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp737.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp775.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp850.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp852.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp855.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp856.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp857.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp858.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp860.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp861.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp862.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp863.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp864.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp865.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp866.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp869.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp874.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp875.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp932.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp949.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp950.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/euc_jis_2004.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/euc_jisx0213.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/euc_jp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/euc_kr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/gb18030.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/gb2312.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/gbk.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/hex_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/hp_roman8.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/hz.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/idna.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_jp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_jp_1.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_jp_2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_jp_2004.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_jp_3.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_jp_ext.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_kr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_1.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_10.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_11.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_13.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_14.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_15.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_16.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_3.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_4.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_5.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_6.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_7.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_8.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_9.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/johab.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/koi8_r.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/koi8_t.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/koi8_u.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/kz1048.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/latin_1.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_arabic.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_croatian.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_cyrillic.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_farsi.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_greek.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_iceland.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_latin2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_roman.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_romanian.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_turkish.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mbcs.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/oem.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/palmos.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/ptcp154.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/punycode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/quopri_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/raw_unicode_escape.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/rot_13.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/shift_jis.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/shift_jis_2004.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/shift_jisx0213.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/tis_620.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/undefined.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/unicode_escape.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_16.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_16_be.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_16_le.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_32.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_32_be.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_32_le.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_7.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_8.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_8_sig.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/uu_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/zlib_codec.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/enum.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/filecmp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/fileinput.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/fnmatch.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/fractions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/ftplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/functools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/genericpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/getopt.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/getpass.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/gettext.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/glob.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/graphlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/gzip.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/hashlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/heapq.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/hmac.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/html/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/html/__pycache__/entities.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/html/__pycache__/parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/http/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/http/__pycache__/client.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/http/__pycache__/cookiejar.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/http/__pycache__/cookies.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/http/__pycache__/server.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/imghdr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/imp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/_abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/_bootstrap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/_bootstrap_external.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/machinery.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/_adapters.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/_collections.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/_functools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/_itertools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/_meta.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/_text.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/readers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/_adapters.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/_common.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/_itertools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/_legacy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/abc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/readers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/simple.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/simple.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/util.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/inspect.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/io.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/ipaddress.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/json/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/json/__pycache__/decoder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/json/__pycache__/encoder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/json/__pycache__/scanner.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/json/__pycache__/tool.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/keyword.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/linecache.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/locale.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/logging/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/logging/__pycache__/config.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/logging/__pycache__/handlers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/lzma.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/mailbox.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/mailcap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/mimetypes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/modulefinder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/netrc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/nntplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/ntpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/nturl2path.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/numbers.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/opcode.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/operator.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/optparse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/os.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/pathlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/pdb.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/pickle.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/pickletools.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/pipes.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/pkgutil.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/platform.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/plistlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/poplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/posixpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/pprint.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/profile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/pstats.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/pty.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/py_compile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/pyclbr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/pydoc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/queue.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/quopri.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/random.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/re/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/re/__pycache__/_casefix.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/re/__pycache__/_compiler.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/re/__pycache__/_constants.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/re/__pycache__/_parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/reprlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/rlcompleter.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/runpy.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/sched.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/secrets.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/selectors.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/shelve.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/shlex.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/shutil.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/signal.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/site.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/smtpd.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/smtplib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/sndhdr.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/socket.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/socketserver.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/sqlite3/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/sqlite3/__pycache__/dbapi2.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/sqlite3/__pycache__/dump.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/sre_compile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/sre_constants.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/sre_parse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/ssl.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/stat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/statistics.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/string.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/stringprep.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/struct.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/subprocess.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/sunau.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/symtable.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/sysconfig.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/tabnanny.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/tarfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/telnetlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/tempfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/textwrap.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/this.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/threading.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/timeit.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/token.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/tokenize.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/tomllib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/tomllib/__pycache__/_parser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/tomllib/__pycache__/_re.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/tomllib/__pycache__/_types.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/trace.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/traceback.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/tracemalloc.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/tty.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/types.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/typing.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/urllib/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/urllib/__pycache__/error.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/urllib/__pycache__/parse.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/urllib/__pycache__/request.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/urllib/__pycache__/response.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/urllib/__pycache__/robotparser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/uu.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/uuid.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/warnings.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/wave.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/weakref.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/webbrowser.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/xdrlib.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/NodeFilter.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/domreg.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/expatbuilder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/minicompat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/minidom.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/pulldom.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/xmlbuilder.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/etree/__pycache__/ElementInclude.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/etree/__pycache__/ElementPath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/etree/__pycache__/ElementTree.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/etree/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/etree/__pycache__/cElementTree.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/parsers/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/parsers/__pycache__/expat.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/sax/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/sax/__pycache__/_exceptions.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/sax/__pycache__/expatreader.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/sax/__pycache__/handler.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/sax/__pycache__/saxutils.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xml/sax/__pycache__/xmlreader.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xmlrpc/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xmlrpc/__pycache__/client.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/xmlrpc/__pycache__/server.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/zipapp.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/zipfile.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/__pycache__/zipimport.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/zoneinfo/__pycache__/__init__.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/zoneinfo/__pycache__/_common.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/zoneinfo/__pycache__/_tzpath.cpython-311.opt-1.pyc \ - $(BUILD_DIR)/windows/x64/Lib/zoneinfo/__pycache__/_zoneinfo.cpython-311.opt-1.pyc + $(BUILD_DIR)/windows/x64/Lib/__pycache__/__future__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/__hello__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_aix_support.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_collections_abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_compat_pickle.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_compression.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_markupbase.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_osx_support.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_py_abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_pydatetime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_pydecimal.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_pyio.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_pylong.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_sitebuiltins.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_strptime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_threading_local.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/_weakrefset.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/aifc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/antigravity.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/argparse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/ast.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/__main__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/base_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/base_futures.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/base_subprocess.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/base_tasks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/constants.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/coroutines.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/exceptions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/format_helpers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/futures.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/locks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/log.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/mixins.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/proactor_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/protocols.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/queues.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/runners.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/selector_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/sslproto.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/staggered.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/streams.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/subprocess.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/taskgroups.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/tasks.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/threads.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/timeouts.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/transports.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/trsock.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/unix_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/windows_events.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/asyncio/__pycache__/windows_utils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/base64.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/bdb.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/bisect.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/bz2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/cProfile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/calendar.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/cgi.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/cgitb.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/chunk.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/cmd.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/code.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/codecs.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/codeop.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/collections/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/collections/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/colorsys.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/compileall.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/concurrent/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/concurrent/futures/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/concurrent/futures/__pycache__/_base.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/concurrent/futures/__pycache__/process.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/concurrent/futures/__pycache__/thread.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/configparser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/contextlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/contextvars.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/copy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/copyreg.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/crypt.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/csv.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/ctypes/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/ctypes/__pycache__/_aix.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/ctypes/__pycache__/_endian.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/ctypes/macholib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/ctypes/macholib/__pycache__/dyld.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/ctypes/macholib/__pycache__/dylib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/ctypes/macholib/__pycache__/framework.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/ctypes/__pycache__/util.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/ctypes/__pycache__/wintypes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/curses/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/curses/__pycache__/ascii.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/curses/__pycache__/has_key.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/curses/__pycache__/panel.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/curses/__pycache__/textpad.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/dataclasses.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/datetime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/decimal.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/difflib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/dis.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/doctest.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/_encoded_words.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/_header_value_parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/_parseaddr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/_policybase.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/base64mime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/charset.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/contentmanager.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/encoders.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/errors.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/feedparser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/generator.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/header.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/headerregistry.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/iterators.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/message.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/application.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/audio.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/base.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/image.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/message.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/multipart.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/nonmultipart.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/mime/__pycache__/text.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/policy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/quoprimime.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/email/__pycache__/utils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/aliases.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/ascii.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/base64_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/big5.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/big5hkscs.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/bz2_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/charmap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp037.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1006.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1026.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1125.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1140.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1250.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1251.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1252.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1253.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1254.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1255.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1256.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1257.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp1258.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp273.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp424.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp437.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp500.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp720.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp737.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp775.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp850.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp852.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp855.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp856.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp857.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp858.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp860.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp861.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp862.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp863.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp864.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp865.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp866.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp869.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp874.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp875.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp932.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp949.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/cp950.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/euc_jis_2004.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/euc_jisx0213.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/euc_jp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/euc_kr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/gb18030.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/gb2312.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/gbk.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/hex_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/hp_roman8.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/hz.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/idna.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_jp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_jp_1.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_jp_2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_jp_2004.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_jp_3.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_jp_ext.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso2022_kr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_1.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_10.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_11.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_13.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_14.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_15.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_16.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_3.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_4.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_5.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_6.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_7.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_8.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/iso8859_9.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/johab.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/koi8_r.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/koi8_t.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/koi8_u.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/kz1048.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/latin_1.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_arabic.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_croatian.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_cyrillic.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_farsi.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_greek.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_iceland.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_latin2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_roman.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_romanian.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mac_turkish.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/mbcs.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/oem.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/palmos.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/ptcp154.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/punycode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/quopri_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/raw_unicode_escape.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/rot_13.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/shift_jis.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/shift_jis_2004.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/shift_jisx0213.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/tis_620.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/undefined.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/unicode_escape.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_16.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_16_be.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_16_le.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_32.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_32_be.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_32_le.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_7.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_8.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/utf_8_sig.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/uu_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/encodings/__pycache__/zlib_codec.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/enum.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/filecmp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/fileinput.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/fnmatch.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/fractions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/ftplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/functools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/genericpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/getopt.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/getpass.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/gettext.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/glob.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/graphlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/gzip.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/hashlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/heapq.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/hmac.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/html/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/html/__pycache__/entities.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/html/__pycache__/parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/http/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/http/__pycache__/client.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/http/__pycache__/cookiejar.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/http/__pycache__/cookies.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/http/__pycache__/server.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/imghdr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/_abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/_bootstrap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/_bootstrap_external.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/machinery.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/_adapters.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/_collections.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/_functools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/_itertools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/_meta.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/metadata/__pycache__/_text.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/readers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/_adapters.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/_common.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/_itertools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/_legacy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/abc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/readers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/resources/__pycache__/simple.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/simple.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/importlib/__pycache__/util.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/inspect.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/io.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/ipaddress.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/json/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/json/__pycache__/decoder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/json/__pycache__/encoder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/json/__pycache__/scanner.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/json/__pycache__/tool.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/keyword.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/linecache.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/locale.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/logging/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/logging/__pycache__/config.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/logging/__pycache__/handlers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/lzma.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/mailbox.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/mailcap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/mimetypes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/modulefinder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/netrc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/nntplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/ntpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/nturl2path.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/numbers.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/opcode.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/operator.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/optparse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/os.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/pathlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/pdb.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/pickle.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/pickletools.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/pipes.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/pkgutil.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/platform.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/plistlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/poplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/posixpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/pprint.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/profile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/pstats.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/pty.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/py_compile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/pyclbr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/pydoc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/queue.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/quopri.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/random.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/re/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/re/__pycache__/_casefix.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/re/__pycache__/_compiler.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/re/__pycache__/_constants.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/re/__pycache__/_parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/reprlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/rlcompleter.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/runpy.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/sched.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/secrets.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/selectors.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/shelve.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/shlex.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/shutil.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/signal.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/site.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/smtplib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/sndhdr.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/socket.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/socketserver.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/sqlite3/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/sqlite3/__pycache__/__main__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/sqlite3/__pycache__/dbapi2.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/sqlite3/__pycache__/dump.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/sre_compile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/sre_constants.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/sre_parse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/ssl.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/stat.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/statistics.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/string.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/stringprep.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/struct.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/subprocess.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/sunau.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/symtable.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/sysconfig.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/tabnanny.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/tarfile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/telnetlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/tempfile.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/textwrap.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/this.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/threading.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/timeit.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/token.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/tokenize.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/tomllib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/tomllib/__pycache__/_parser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/tomllib/__pycache__/_re.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/tomllib/__pycache__/_types.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/trace.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/traceback.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/tracemalloc.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/tty.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/types.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/typing.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/urllib/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/urllib/__pycache__/error.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/urllib/__pycache__/parse.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/urllib/__pycache__/request.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/urllib/__pycache__/response.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/urllib/__pycache__/robotparser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/uu.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/uuid.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/warnings.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/wave.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/weakref.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/webbrowser.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/xdrlib.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/NodeFilter.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/domreg.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/expatbuilder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/minicompat.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/minidom.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/pulldom.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/dom/__pycache__/xmlbuilder.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/etree/__pycache__/ElementInclude.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/etree/__pycache__/ElementPath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/etree/__pycache__/ElementTree.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/etree/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/etree/__pycache__/cElementTree.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/parsers/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/parsers/__pycache__/expat.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/sax/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/sax/__pycache__/_exceptions.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/sax/__pycache__/expatreader.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/sax/__pycache__/handler.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/sax/__pycache__/saxutils.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xml/sax/__pycache__/xmlreader.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xmlrpc/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xmlrpc/__pycache__/client.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/xmlrpc/__pycache__/server.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/zipapp.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/zipfile/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/zipfile/__pycache__/__main__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/zipfile/_path/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/zipfile/_path/__pycache__/glob.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/__pycache__/zipimport.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/zoneinfo/__pycache__/__init__.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/zoneinfo/__pycache__/_common.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/zoneinfo/__pycache__/_tzpath.cpython-312.opt-1.pyc \ + $(BUILD_DIR)/windows/x64/Lib/zoneinfo/__pycache__/_zoneinfo.cpython-312.opt-1.pyc # Rule to copy src asset scripts to dst. # (and make non-writable so I'm less likely to accidentally edit them there) @@ -7251,6 +7223,8 @@ EXTRAS_TARGETS_WIN_WIN32 = \ $(BUILD_DIR)/windows/Win32/DLLs/_testbuffer_d.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/_testcapi.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/_testcapi_d.pyd \ + $(BUILD_DIR)/windows/Win32/DLLs/_testclinic.pyd \ + $(BUILD_DIR)/windows/Win32/DLLs/_testclinic_d.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/_testconsole.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/_testconsole_d.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/_testimportmultiple.pyd \ @@ -7259,20 +7233,23 @@ EXTRAS_TARGETS_WIN_WIN32 = \ $(BUILD_DIR)/windows/Win32/DLLs/_testinternalcapi_d.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/_testmultiphase.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/_testmultiphase_d.pyd \ + $(BUILD_DIR)/windows/Win32/DLLs/_testsinglephase.pyd \ + $(BUILD_DIR)/windows/Win32/DLLs/_testsinglephase_d.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/_tkinter.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/_tkinter_d.lib \ $(BUILD_DIR)/windows/Win32/DLLs/_tkinter_d.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/_uuid.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/_uuid_d.pyd \ + $(BUILD_DIR)/windows/Win32/DLLs/_wmi.pyd \ + $(BUILD_DIR)/windows/Win32/DLLs/_wmi_d.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/_zoneinfo.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/_zoneinfo_d.pyd \ - $(BUILD_DIR)/windows/Win32/DLLs/libcrypto-1_1.dll \ + $(BUILD_DIR)/windows/Win32/DLLs/libcrypto-3.dll \ $(BUILD_DIR)/windows/Win32/DLLs/libffi-8.dll \ - $(BUILD_DIR)/windows/Win32/DLLs/libssl-1_1.dll \ + $(BUILD_DIR)/windows/Win32/DLLs/libssl-3.dll \ $(BUILD_DIR)/windows/Win32/DLLs/pyexpat.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/pyexpat_d.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/python_lib.cat \ - $(BUILD_DIR)/windows/Win32/DLLs/python_tools.cat \ $(BUILD_DIR)/windows/Win32/DLLs/select.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/select_d.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/sqlite3.dll \ @@ -7283,6 +7260,7 @@ EXTRAS_TARGETS_WIN_WIN32 = \ $(BUILD_DIR)/windows/Win32/DLLs/unicodedata_d.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/winsound.pyd \ $(BUILD_DIR)/windows/Win32/DLLs/winsound_d.pyd \ + $(BUILD_DIR)/windows/Win32/DLLs/zlib1.dll \ $(BUILD_DIR)/windows/Win32/Lib/email/architecture.rst \ $(BUILD_DIR)/windows/Win32/OpenAL32.dll \ $(BUILD_DIR)/windows/Win32/SDL2.dll \ @@ -7291,8 +7269,8 @@ EXTRAS_TARGETS_WIN_WIN32 = \ $(BUILD_DIR)/windows/Win32/msvcp140d.dll \ $(BUILD_DIR)/windows/Win32/ogg.dll \ $(BUILD_DIR)/windows/Win32/python.exe \ - $(BUILD_DIR)/windows/Win32/python311.dll \ - $(BUILD_DIR)/windows/Win32/python311_d.dll \ + $(BUILD_DIR)/windows/Win32/python312.dll \ + $(BUILD_DIR)/windows/Win32/python312_d.dll \ $(BUILD_DIR)/windows/Win32/python_d.exe \ $(BUILD_DIR)/windows/Win32/pythonw.exe \ $(BUILD_DIR)/windows/Win32/pythonw_d.exe \ @@ -7340,6 +7318,8 @@ EXTRAS_TARGETS_WIN_X64 = \ $(BUILD_DIR)/windows/x64/DLLs/_testbuffer_d.pyd \ $(BUILD_DIR)/windows/x64/DLLs/_testcapi.pyd \ $(BUILD_DIR)/windows/x64/DLLs/_testcapi_d.pyd \ + $(BUILD_DIR)/windows/x64/DLLs/_testclinic.pyd \ + $(BUILD_DIR)/windows/x64/DLLs/_testclinic_d.pyd \ $(BUILD_DIR)/windows/x64/DLLs/_testconsole.pyd \ $(BUILD_DIR)/windows/x64/DLLs/_testconsole_d.pyd \ $(BUILD_DIR)/windows/x64/DLLs/_testimportmultiple.pyd \ @@ -7348,20 +7328,23 @@ EXTRAS_TARGETS_WIN_X64 = \ $(BUILD_DIR)/windows/x64/DLLs/_testinternalcapi_d.pyd \ $(BUILD_DIR)/windows/x64/DLLs/_testmultiphase.pyd \ $(BUILD_DIR)/windows/x64/DLLs/_testmultiphase_d.pyd \ + $(BUILD_DIR)/windows/x64/DLLs/_testsinglephase.pyd \ + $(BUILD_DIR)/windows/x64/DLLs/_testsinglephase_d.pyd \ $(BUILD_DIR)/windows/x64/DLLs/_tkinter.pyd \ $(BUILD_DIR)/windows/x64/DLLs/_tkinter_d.lib \ $(BUILD_DIR)/windows/x64/DLLs/_tkinter_d.pyd \ $(BUILD_DIR)/windows/x64/DLLs/_uuid.pyd \ $(BUILD_DIR)/windows/x64/DLLs/_uuid_d.pyd \ + $(BUILD_DIR)/windows/x64/DLLs/_wmi.pyd \ + $(BUILD_DIR)/windows/x64/DLLs/_wmi_d.pyd \ $(BUILD_DIR)/windows/x64/DLLs/_zoneinfo.pyd \ $(BUILD_DIR)/windows/x64/DLLs/_zoneinfo_d.pyd \ - $(BUILD_DIR)/windows/x64/DLLs/libcrypto-1_1.dll \ + $(BUILD_DIR)/windows/x64/DLLs/libcrypto-3.dll \ $(BUILD_DIR)/windows/x64/DLLs/libffi-8.dll \ - $(BUILD_DIR)/windows/x64/DLLs/libssl-1_1.dll \ + $(BUILD_DIR)/windows/x64/DLLs/libssl-3.dll \ $(BUILD_DIR)/windows/x64/DLLs/pyexpat.pyd \ $(BUILD_DIR)/windows/x64/DLLs/pyexpat_d.pyd \ $(BUILD_DIR)/windows/x64/DLLs/python_lib.cat \ - $(BUILD_DIR)/windows/x64/DLLs/python_tools.cat \ $(BUILD_DIR)/windows/x64/DLLs/select.pyd \ $(BUILD_DIR)/windows/x64/DLLs/select_d.pyd \ $(BUILD_DIR)/windows/x64/DLLs/sqlite3.dll \ @@ -7372,6 +7355,7 @@ EXTRAS_TARGETS_WIN_X64 = \ $(BUILD_DIR)/windows/x64/DLLs/unicodedata_d.pyd \ $(BUILD_DIR)/windows/x64/DLLs/winsound.pyd \ $(BUILD_DIR)/windows/x64/DLLs/winsound_d.pyd \ + $(BUILD_DIR)/windows/x64/DLLs/zlib1.dll \ $(BUILD_DIR)/windows/x64/Lib/email/architecture.rst \ $(BUILD_DIR)/windows/x64/OpenAL32.dll \ $(BUILD_DIR)/windows/x64/SDL2.dll \ @@ -7380,8 +7364,8 @@ EXTRAS_TARGETS_WIN_X64 = \ $(BUILD_DIR)/windows/x64/msvcp140d.dll \ $(BUILD_DIR)/windows/x64/ogg.dll \ $(BUILD_DIR)/windows/x64/python.exe \ - $(BUILD_DIR)/windows/x64/python311.dll \ - $(BUILD_DIR)/windows/x64/python311_d.dll \ + $(BUILD_DIR)/windows/x64/python312.dll \ + $(BUILD_DIR)/windows/x64/python312_d.dll \ $(BUILD_DIR)/windows/x64/python_d.exe \ $(BUILD_DIR)/windows/x64/pythonw.exe \ $(BUILD_DIR)/windows/x64/pythonw_d.exe \ diff --git a/src/assets/ba_data/python/babase/_app.py b/src/assets/ba_data/python/babase/_app.py index f7fb9071..8841076d 100644 --- a/src/assets/ba_data/python/babase/_app.py +++ b/src/assets/ba_data/python/babase/_app.py @@ -7,11 +7,10 @@ from __future__ import annotations import os import logging from enum import Enum -from typing import TYPE_CHECKING, TypeVar +from typing import TYPE_CHECKING, TypeVar, override from concurrent.futures import ThreadPoolExecutor from functools import cached_property -from typing_extensions import override from efro.call import tpartial import _babase @@ -227,7 +226,9 @@ class App: must go here instead of __init__. """ - # Hack for docs-generation: we can be imported with dummy modules + # Hack for docs-generation: + # + # We can be imported with dummy modules # instead of our actual binary ones, but we don't function. if os.environ.get('BA_RUNNING_WITH_DUMMY_MODULES') == '1': return @@ -272,10 +273,7 @@ class App: return self._asyncio_loop def create_async_task( - self, - coro: Generator[Any, Any, T] | Coroutine[Any, Any, T], - *, - name: str | None = None, + self, coro: Coroutine[Any, Any, T], *, name: str | None = None ) -> None: """Create a fully managed async task. @@ -285,6 +283,7 @@ class App: App.asyncio_loop. """ assert _babase.in_logic_thread() + # Hold a strong reference to the task until it is done. # Otherwise it is possible for it to be garbage collected and # disappear midway if the caller does not hold on to the @@ -293,7 +292,6 @@ class App: task = self.asyncio_loop.create_task(coro, name=name) self._asyncio_tasks.add(task) task.add_done_callback(self._on_task_done) - # return task def _on_task_done(self, task: asyncio.Task) -> None: # Report any errors that occurred. @@ -384,6 +382,7 @@ class App: # reached the 'running' state. This ensures that all subsystems # receive a consistent set of callbacks starting with # on_app_running(). + if self._subsystem_registration_ended: raise RuntimeError( 'Subsystems can no longer be registered at this point.' diff --git a/src/assets/ba_data/python/babase/_apputils.py b/src/assets/ba_data/python/babase/_apputils.py index ce911c90..84a27b70 100644 --- a/src/assets/ba_data/python/babase/_apputils.py +++ b/src/assets/ba_data/python/babase/_apputils.py @@ -8,9 +8,8 @@ import os import logging from threading import Thread from dataclasses import dataclass -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override from efro.call import tpartial from efro.log import LogLevel from efro.dataclassio import ioprepped, dataclass_to_json, dataclass_from_json diff --git a/src/assets/ba_data/python/babase/_devconsole.py b/src/assets/ba_data/python/babase/_devconsole.py index 47580b81..d4e70996 100644 --- a/src/assets/ba_data/python/babase/_devconsole.py +++ b/src/assets/ba_data/python/babase/_devconsole.py @@ -4,12 +4,10 @@ from __future__ import annotations import os -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override from dataclasses import dataclass import logging -from typing_extensions import override - import _babase if TYPE_CHECKING: diff --git a/src/assets/ba_data/python/babase/_emptyappmode.py b/src/assets/ba_data/python/babase/_emptyappmode.py index 3573769a..6745d21c 100644 --- a/src/assets/ba_data/python/babase/_emptyappmode.py +++ b/src/assets/ba_data/python/babase/_emptyappmode.py @@ -3,9 +3,8 @@ """Provides AppMode functionality.""" from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override from bacommon.app import AppExperience import _babase diff --git a/src/assets/ba_data/python/babase/_env.py b/src/assets/ba_data/python/babase/_env.py index 124caa27..5efc2530 100644 --- a/src/assets/ba_data/python/babase/_env.py +++ b/src/assets/ba_data/python/babase/_env.py @@ -7,9 +7,8 @@ import sys import signal import logging import warnings -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override from efro.log import LogLevel if TYPE_CHECKING: diff --git a/src/assets/ba_data/python/babase/_general.py b/src/assets/ba_data/python/babase/_general.py index 2d2738da..d1914d57 100644 --- a/src/assets/ba_data/python/babase/_general.py +++ b/src/assets/ba_data/python/babase/_general.py @@ -8,9 +8,8 @@ import weakref import random import logging import inspect -from typing import TYPE_CHECKING, TypeVar, Protocol, NewType +from typing import TYPE_CHECKING, TypeVar, Protocol, NewType, override -from typing_extensions import override from efro.terminal import Clr import _babase diff --git a/src/assets/ba_data/python/babase/_language.py b/src/assets/ba_data/python/babase/_language.py index 3983a7a7..f36e9ace 100644 --- a/src/assets/ba_data/python/babase/_language.py +++ b/src/assets/ba_data/python/babase/_language.py @@ -6,9 +6,7 @@ from __future__ import annotations import os import json import logging -from typing import TYPE_CHECKING, overload - -from typing_extensions import override +from typing import TYPE_CHECKING, overload, override import _babase from babase._appsubsystem import AppSubsystem diff --git a/src/assets/ba_data/python/babase/_login.py b/src/assets/ba_data/python/babase/_login.py index 67968440..81c07917 100644 --- a/src/assets/ba_data/python/babase/_login.py +++ b/src/assets/ba_data/python/babase/_login.py @@ -7,9 +7,8 @@ from __future__ import annotations import time import logging from dataclasses import dataclass -from typing import TYPE_CHECKING, final +from typing import TYPE_CHECKING, final, override -from typing_extensions import override from bacommon.login import LoginType import _babase diff --git a/src/assets/ba_data/python/babase/_plugin.py b/src/assets/ba_data/python/babase/_plugin.py index d83050b9..2ddab074 100644 --- a/src/assets/ba_data/python/babase/_plugin.py +++ b/src/assets/ba_data/python/babase/_plugin.py @@ -6,9 +6,7 @@ from __future__ import annotations import logging import importlib.util -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override import _babase from babase._appsubsystem import AppSubsystem diff --git a/src/assets/ba_data/python/babase/_ui.py b/src/assets/ba_data/python/babase/_ui.py index 6457eadf..55c895bd 100644 --- a/src/assets/ba_data/python/babase/_ui.py +++ b/src/assets/ba_data/python/babase/_ui.py @@ -3,9 +3,7 @@ """UI related bits of babase.""" from __future__ import annotations -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override from babase._stringedit import StringEditAdapter import _babase diff --git a/src/assets/ba_data/python/baclassic/_benchmark.py b/src/assets/ba_data/python/baclassic/_benchmark.py index 23033eef..0c25f593 100644 --- a/src/assets/ba_data/python/baclassic/_benchmark.py +++ b/src/assets/ba_data/python/baclassic/_benchmark.py @@ -5,9 +5,8 @@ from __future__ import annotations import random from dataclasses import dataclass -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import babase import bascenev1 import _baclassic diff --git a/src/assets/ba_data/python/baclassic/_net.py b/src/assets/ba_data/python/baclassic/_net.py index 04d3fb6c..98fbc9a8 100644 --- a/src/assets/ba_data/python/baclassic/_net.py +++ b/src/assets/ba_data/python/baclassic/_net.py @@ -7,9 +7,8 @@ import copy import weakref import threading from enum import Enum -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import babase import bascenev1 diff --git a/src/assets/ba_data/python/baclassic/_subsystem.py b/src/assets/ba_data/python/baclassic/_subsystem.py index 4bdf1406..16611ec9 100644 --- a/src/assets/ba_data/python/baclassic/_subsystem.py +++ b/src/assets/ba_data/python/baclassic/_subsystem.py @@ -3,12 +3,11 @@ """Provides classic app subsystem.""" from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override import random import logging import weakref -from typing_extensions import override from efro.dataclassio import dataclass_from_dict import babase import bauiv1 diff --git a/src/assets/ba_data/python/baclassic/macmusicapp.py b/src/assets/ba_data/python/baclassic/macmusicapp.py index 12fe6846..6b4b9b49 100644 --- a/src/assets/ba_data/python/baclassic/macmusicapp.py +++ b/src/assets/ba_data/python/baclassic/macmusicapp.py @@ -6,9 +6,8 @@ from __future__ import annotations import logging import threading from collections import deque -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import babase from baclassic._music import MusicPlayer diff --git a/src/assets/ba_data/python/baclassic/osmusic.py b/src/assets/ba_data/python/baclassic/osmusic.py index f2198ce5..919df491 100644 --- a/src/assets/ba_data/python/baclassic/osmusic.py +++ b/src/assets/ba_data/python/baclassic/osmusic.py @@ -7,9 +7,8 @@ import os import random import logging import threading -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import babase from baclassic._music import MusicPlayer diff --git a/src/assets/ba_data/python/baenv.py b/src/assets/ba_data/python/baenv.py index 9a92c0fd..455808d3 100644 --- a/src/assets/ba_data/python/baenv.py +++ b/src/assets/ba_data/python/baenv.py @@ -52,7 +52,7 @@ if TYPE_CHECKING: # Build number and version of the ballistica binary we expect to be # using. -TARGET_BALLISTICA_BUILD = 21800 +TARGET_BALLISTICA_BUILD = 21801 TARGET_BALLISTICA_VERSION = '1.7.34' diff --git a/src/assets/ba_data/python/baplus/_subsystem.py b/src/assets/ba_data/python/baplus/_subsystem.py index 567f3cd1..7268abc3 100644 --- a/src/assets/ba_data/python/baplus/_subsystem.py +++ b/src/assets/ba_data/python/baplus/_subsystem.py @@ -3,9 +3,8 @@ """Provides plus app subsystem.""" from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override from babase import AppSubsystem import _baplus diff --git a/src/assets/ba_data/python/bascenev1/_activitytypes.py b/src/assets/ba_data/python/bascenev1/_activitytypes.py index 0102305a..a11d8c0e 100644 --- a/src/assets/ba_data/python/bascenev1/_activitytypes.py +++ b/src/assets/ba_data/python/bascenev1/_activitytypes.py @@ -3,9 +3,8 @@ """Some handy base class and special purpose Activity types.""" from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import babase import _bascenev1 diff --git a/src/assets/ba_data/python/bascenev1/_appmode.py b/src/assets/ba_data/python/bascenev1/_appmode.py index 481fb4e6..72a77aee 100644 --- a/src/assets/ba_data/python/bascenev1/_appmode.py +++ b/src/assets/ba_data/python/bascenev1/_appmode.py @@ -3,9 +3,8 @@ """Provides AppMode functionality.""" from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override from bacommon.app import AppExperience from babase import ( app, diff --git a/src/assets/ba_data/python/bascenev1/_coopgame.py b/src/assets/ba_data/python/bascenev1/_coopgame.py index e0af5158..e4f20e3d 100644 --- a/src/assets/ba_data/python/bascenev1/_coopgame.py +++ b/src/assets/ba_data/python/bascenev1/_coopgame.py @@ -4,9 +4,8 @@ from __future__ import annotations import logging -from typing import TYPE_CHECKING, TypeVar +from typing import TYPE_CHECKING, TypeVar, override -from typing_extensions import override import babase import _bascenev1 diff --git a/src/assets/ba_data/python/bascenev1/_coopsession.py b/src/assets/ba_data/python/bascenev1/_coopsession.py index a68a72c4..d5040e04 100644 --- a/src/assets/ba_data/python/bascenev1/_coopsession.py +++ b/src/assets/ba_data/python/bascenev1/_coopsession.py @@ -3,9 +3,8 @@ """Functionality related to coop-mode sessions.""" from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import babase import _bascenev1 diff --git a/src/assets/ba_data/python/bascenev1/_dependency.py b/src/assets/ba_data/python/bascenev1/_dependency.py index 0a2f49f2..9741493b 100644 --- a/src/assets/ba_data/python/bascenev1/_dependency.py +++ b/src/assets/ba_data/python/bascenev1/_dependency.py @@ -5,9 +5,8 @@ from __future__ import annotations import weakref -from typing import Generic, TypeVar, TYPE_CHECKING +from typing import Generic, TypeVar, TYPE_CHECKING, override -from typing_extensions import override import babase import _bascenev1 diff --git a/src/assets/ba_data/python/bascenev1/_dualteamsession.py b/src/assets/ba_data/python/bascenev1/_dualteamsession.py index 82807684..4e0eb43a 100644 --- a/src/assets/ba_data/python/bascenev1/_dualteamsession.py +++ b/src/assets/ba_data/python/bascenev1/_dualteamsession.py @@ -3,9 +3,8 @@ """Functionality related to teams sessions.""" from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import babase import _bascenev1 diff --git a/src/assets/ba_data/python/bascenev1/_freeforallsession.py b/src/assets/ba_data/python/bascenev1/_freeforallsession.py index 2718377c..f32eb648 100644 --- a/src/assets/ba_data/python/bascenev1/_freeforallsession.py +++ b/src/assets/ba_data/python/bascenev1/_freeforallsession.py @@ -4,9 +4,8 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import babase import _bascenev1 diff --git a/src/assets/ba_data/python/bascenev1/_gameactivity.py b/src/assets/ba_data/python/bascenev1/_gameactivity.py index 1557ffc1..15177334 100644 --- a/src/assets/ba_data/python/bascenev1/_gameactivity.py +++ b/src/assets/ba_data/python/bascenev1/_gameactivity.py @@ -7,9 +7,8 @@ from __future__ import annotations import random import logging -from typing import TYPE_CHECKING, TypeVar +from typing import TYPE_CHECKING, TypeVar, override -from typing_extensions import override import babase import _bascenev1 diff --git a/src/assets/ba_data/python/bascenev1/_level.py b/src/assets/ba_data/python/bascenev1/_level.py index 74792e96..6da0a7ec 100644 --- a/src/assets/ba_data/python/bascenev1/_level.py +++ b/src/assets/ba_data/python/bascenev1/_level.py @@ -5,9 +5,8 @@ from __future__ import annotations import copy import weakref -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import babase if TYPE_CHECKING: diff --git a/src/assets/ba_data/python/bascenev1/_map.py b/src/assets/ba_data/python/bascenev1/_map.py index 02f64909..4b3b7a9f 100644 --- a/src/assets/ba_data/python/bascenev1/_map.py +++ b/src/assets/ba_data/python/bascenev1/_map.py @@ -4,9 +4,8 @@ from __future__ import annotations import random -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import babase import _bascenev1 diff --git a/src/assets/ba_data/python/bascenev1/_multiteamsession.py b/src/assets/ba_data/python/bascenev1/_multiteamsession.py index 77459baa..dc135859 100644 --- a/src/assets/ba_data/python/bascenev1/_multiteamsession.py +++ b/src/assets/ba_data/python/bascenev1/_multiteamsession.py @@ -6,9 +6,8 @@ from __future__ import annotations import copy import random import logging -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import babase import _bascenev1 diff --git a/src/assets/ba_data/python/bascenev1/_nodeactor.py b/src/assets/ba_data/python/bascenev1/_nodeactor.py index 7b3551e7..965b5964 100644 --- a/src/assets/ba_data/python/bascenev1/_nodeactor.py +++ b/src/assets/ba_data/python/bascenev1/_nodeactor.py @@ -4,9 +4,7 @@ from __future__ import annotations -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override from bascenev1._messages import DieMessage from bascenev1._actor import Actor diff --git a/src/assets/ba_data/python/bascenev1/_teamgame.py b/src/assets/ba_data/python/bascenev1/_teamgame.py index e835bd0e..29ecf7d4 100644 --- a/src/assets/ba_data/python/bascenev1/_teamgame.py +++ b/src/assets/ba_data/python/bascenev1/_teamgame.py @@ -5,9 +5,8 @@ from __future__ import annotations import logging -from typing import TYPE_CHECKING, TypeVar +from typing import TYPE_CHECKING, TypeVar, override -from typing_extensions import override import babase import _bascenev1 diff --git a/src/assets/ba_data/python/bascenev1lib/activity/coopjoin.py b/src/assets/ba_data/python/bascenev1lib/activity/coopjoin.py index 55f3fd8e..44dbd7ea 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/coopjoin.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/coopjoin.py @@ -4,7 +4,8 @@ from __future__ import annotations -from typing_extensions import override +from typing import override + import bascenev1 as bs diff --git a/src/assets/ba_data/python/bascenev1lib/activity/coopscore.py b/src/assets/ba_data/python/bascenev1lib/activity/coopscore.py index 86cabfc6..4b92b69c 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/coopscore.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/coopscore.py @@ -7,9 +7,8 @@ from __future__ import annotations import random import logging -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override from bacommon.login import LoginType import bascenev1 as bs import bauiv1 as bui diff --git a/src/assets/ba_data/python/bascenev1lib/activity/drawscore.py b/src/assets/ba_data/python/bascenev1lib/activity/drawscore.py index d6e1b289..78def50f 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/drawscore.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/drawscore.py @@ -4,7 +4,8 @@ from __future__ import annotations -from typing_extensions import override +from typing import override + import bascenev1 as bs from bascenev1lib.activity.multiteamscore import MultiTeamScoreScreenActivity diff --git a/src/assets/ba_data/python/bascenev1lib/activity/dualteamscore.py b/src/assets/ba_data/python/bascenev1lib/activity/dualteamscore.py index 2df370bd..dc01ac58 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/dualteamscore.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/dualteamscore.py @@ -4,7 +4,8 @@ from __future__ import annotations -from typing_extensions import override +from typing import override + import bascenev1 as bs from bascenev1lib.activity.multiteamscore import MultiTeamScoreScreenActivity diff --git a/src/assets/ba_data/python/bascenev1lib/activity/freeforallvictory.py b/src/assets/ba_data/python/bascenev1lib/activity/freeforallvictory.py index cf82d4ad..5f2189fa 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/freeforallvictory.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/freeforallvictory.py @@ -4,9 +4,8 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.activity.multiteamscore import MultiTeamScoreScreenActivity diff --git a/src/assets/ba_data/python/bascenev1lib/activity/multiteamjoin.py b/src/assets/ba_data/python/bascenev1lib/activity/multiteamjoin.py index ff8f74be..33398710 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/multiteamjoin.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/multiteamjoin.py @@ -4,7 +4,8 @@ from __future__ import annotations -from typing_extensions import override +from typing import override + import bascenev1 as bs from bascenev1lib.actor.text import Text diff --git a/src/assets/ba_data/python/bascenev1lib/activity/multiteamscore.py b/src/assets/ba_data/python/bascenev1lib/activity/multiteamscore.py index 3a0db16a..9feb385d 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/multiteamscore.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/multiteamscore.py @@ -3,7 +3,8 @@ """Functionality related to teams mode score screen.""" from __future__ import annotations -from typing_extensions import override +from typing import override + import bascenev1 as bs from bascenev1lib.actor.text import Text diff --git a/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py b/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py index e2a09252..a8ecc289 100644 --- a/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py +++ b/src/assets/ba_data/python/bascenev1lib/activity/multiteamvictory.py @@ -4,7 +4,8 @@ from __future__ import annotations -from typing_extensions import override +from typing import override + import bascenev1 as bs from bascenev1lib.activity.multiteamscore import MultiTeamScoreScreenActivity diff --git a/src/assets/ba_data/python/bascenev1lib/actor/background.py b/src/assets/ba_data/python/bascenev1lib/actor/background.py index d5625a27..ff5d508a 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/background.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/background.py @@ -7,9 +7,8 @@ from __future__ import annotations import random import weakref import logging -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs if TYPE_CHECKING: diff --git a/src/assets/ba_data/python/bascenev1lib/actor/bomb.py b/src/assets/ba_data/python/bascenev1lib/actor/bomb.py index 058057d0..c73eceba 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/bomb.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/bomb.py @@ -8,9 +8,8 @@ from __future__ import annotations import random -from typing import TYPE_CHECKING, TypeVar +from typing import TYPE_CHECKING, TypeVar, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.gameutils import SharedObjects diff --git a/src/assets/ba_data/python/bascenev1lib/actor/controlsguide.py b/src/assets/ba_data/python/bascenev1lib/actor/controlsguide.py index d73ea28b..a750dfdc 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/controlsguide.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/controlsguide.py @@ -4,9 +4,8 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs if TYPE_CHECKING: diff --git a/src/assets/ba_data/python/bascenev1lib/actor/flag.py b/src/assets/ba_data/python/bascenev1lib/actor/flag.py index cd24c9ef..03472039 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/flag.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/flag.py @@ -5,9 +5,8 @@ from __future__ import annotations from dataclasses import dataclass -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.gameutils import SharedObjects diff --git a/src/assets/ba_data/python/bascenev1lib/actor/image.py b/src/assets/ba_data/python/bascenev1lib/actor/image.py index 00e71d0c..daa648be 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/image.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/image.py @@ -5,9 +5,8 @@ from __future__ import annotations from enum import Enum -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs if TYPE_CHECKING: diff --git a/src/assets/ba_data/python/bascenev1lib/actor/onscreencountdown.py b/src/assets/ba_data/python/bascenev1lib/actor/onscreencountdown.py index 68c477b6..7c2364f0 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/onscreencountdown.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/onscreencountdown.py @@ -4,9 +4,8 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs if TYPE_CHECKING: diff --git a/src/assets/ba_data/python/bascenev1lib/actor/onscreentimer.py b/src/assets/ba_data/python/bascenev1lib/actor/onscreentimer.py index 192fecc2..11050ee7 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/onscreentimer.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/onscreentimer.py @@ -3,10 +3,9 @@ """Defines Actor(s).""" from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override import logging -from typing_extensions import override import bascenev1 as bs if TYPE_CHECKING: diff --git a/src/assets/ba_data/python/bascenev1lib/actor/playerspaz.py b/src/assets/ba_data/python/bascenev1lib/actor/playerspaz.py index 683469f9..07caae58 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/playerspaz.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/playerspaz.py @@ -4,9 +4,8 @@ from __future__ import annotations -from typing import TYPE_CHECKING, TypeVar, overload +from typing import TYPE_CHECKING, TypeVar, overload, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.spaz import Spaz diff --git a/src/assets/ba_data/python/bascenev1lib/actor/popuptext.py b/src/assets/ba_data/python/bascenev1lib/actor/popuptext.py index 6fdd41d6..ca375fce 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/popuptext.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/popuptext.py @@ -5,9 +5,8 @@ from __future__ import annotations import random -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs if TYPE_CHECKING: diff --git a/src/assets/ba_data/python/bascenev1lib/actor/powerupbox.py b/src/assets/ba_data/python/bascenev1lib/actor/powerupbox.py index 1b95e4df..c6ebd56c 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/powerupbox.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/powerupbox.py @@ -5,9 +5,8 @@ from __future__ import annotations import random -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.gameutils import SharedObjects diff --git a/src/assets/ba_data/python/bascenev1lib/actor/spaz.py b/src/assets/ba_data/python/bascenev1lib/actor/spaz.py index 9fc4c321..157840e7 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/spaz.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/spaz.py @@ -7,9 +7,8 @@ from __future__ import annotations import random import logging -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.bomb import Bomb, Blast diff --git a/src/assets/ba_data/python/bascenev1lib/actor/spazbot.py b/src/assets/ba_data/python/bascenev1lib/actor/spazbot.py index ed91bdbe..56118af8 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/spazbot.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/spazbot.py @@ -8,9 +8,8 @@ from __future__ import annotations import random import weakref import logging -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.spaz import Spaz diff --git a/src/assets/ba_data/python/bascenev1lib/actor/text.py b/src/assets/ba_data/python/bascenev1lib/actor/text.py index 15698510..cdea37d2 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/text.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/text.py @@ -5,9 +5,8 @@ from __future__ import annotations from enum import Enum -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs if TYPE_CHECKING: diff --git a/src/assets/ba_data/python/bascenev1lib/actor/tipstext.py b/src/assets/ba_data/python/bascenev1lib/actor/tipstext.py index 8e20951e..9c161684 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/tipstext.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/tipstext.py @@ -4,9 +4,8 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs if TYPE_CHECKING: diff --git a/src/assets/ba_data/python/bascenev1lib/actor/zoomtext.py b/src/assets/ba_data/python/bascenev1lib/actor/zoomtext.py index 12cdb757..46525aaf 100644 --- a/src/assets/ba_data/python/bascenev1lib/actor/zoomtext.py +++ b/src/assets/ba_data/python/bascenev1lib/actor/zoomtext.py @@ -6,9 +6,8 @@ from __future__ import annotations import random import logging -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs if TYPE_CHECKING: diff --git a/src/assets/ba_data/python/bascenev1lib/game/assault.py b/src/assets/ba_data/python/bascenev1lib/game/assault.py index 12eb1229..fa50f2ca 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/assault.py +++ b/src/assets/ba_data/python/bascenev1lib/game/assault.py @@ -8,9 +8,8 @@ from __future__ import annotations import random -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.playerspaz import PlayerSpaz diff --git a/src/assets/ba_data/python/bascenev1lib/game/capturetheflag.py b/src/assets/ba_data/python/bascenev1lib/game/capturetheflag.py index 0d6d1e4f..a5e65ed0 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/capturetheflag.py +++ b/src/assets/ba_data/python/bascenev1lib/game/capturetheflag.py @@ -8,9 +8,8 @@ from __future__ import annotations import logging -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.playerspaz import PlayerSpaz diff --git a/src/assets/ba_data/python/bascenev1lib/game/chosenone.py b/src/assets/ba_data/python/bascenev1lib/game/chosenone.py index aba373d7..17160109 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/chosenone.py +++ b/src/assets/ba_data/python/bascenev1lib/game/chosenone.py @@ -8,9 +8,8 @@ from __future__ import annotations import logging -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.flag import Flag diff --git a/src/assets/ba_data/python/bascenev1lib/game/conquest.py b/src/assets/ba_data/python/bascenev1lib/game/conquest.py index d50041f6..7c14011a 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/conquest.py +++ b/src/assets/ba_data/python/bascenev1lib/game/conquest.py @@ -8,9 +8,8 @@ from __future__ import annotations import random -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.flag import Flag diff --git a/src/assets/ba_data/python/bascenev1lib/game/deathmatch.py b/src/assets/ba_data/python/bascenev1lib/game/deathmatch.py index 7721b636..85ff1423 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/deathmatch.py +++ b/src/assets/ba_data/python/bascenev1lib/game/deathmatch.py @@ -7,9 +7,8 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.playerspaz import PlayerSpaz diff --git a/src/assets/ba_data/python/bascenev1lib/game/easteregghunt.py b/src/assets/ba_data/python/bascenev1lib/game/easteregghunt.py index e7159f8d..260628a0 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/easteregghunt.py +++ b/src/assets/ba_data/python/bascenev1lib/game/easteregghunt.py @@ -8,9 +8,8 @@ from __future__ import annotations import random -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.bomb import Bomb diff --git a/src/assets/ba_data/python/bascenev1lib/game/elimination.py b/src/assets/ba_data/python/bascenev1lib/game/elimination.py index d37c2ee3..37cec73f 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/elimination.py +++ b/src/assets/ba_data/python/bascenev1lib/game/elimination.py @@ -8,9 +8,8 @@ from __future__ import annotations import logging -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.spazfactory import SpazFactory diff --git a/src/assets/ba_data/python/bascenev1lib/game/football.py b/src/assets/ba_data/python/bascenev1lib/game/football.py index 1c99555b..3555794b 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/football.py +++ b/src/assets/ba_data/python/bascenev1lib/game/football.py @@ -11,9 +11,8 @@ from __future__ import annotations import math import random import logging -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.bomb import TNTSpawner diff --git a/src/assets/ba_data/python/bascenev1lib/game/hockey.py b/src/assets/ba_data/python/bascenev1lib/game/hockey.py index 64487e5a..c8b84494 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/hockey.py +++ b/src/assets/ba_data/python/bascenev1lib/game/hockey.py @@ -7,9 +7,8 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.playerspaz import PlayerSpaz diff --git a/src/assets/ba_data/python/bascenev1lib/game/keepaway.py b/src/assets/ba_data/python/bascenev1lib/game/keepaway.py index 416723e1..874b03e4 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/keepaway.py +++ b/src/assets/ba_data/python/bascenev1lib/game/keepaway.py @@ -9,9 +9,8 @@ from __future__ import annotations import logging from enum import Enum -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.playerspaz import PlayerSpaz diff --git a/src/assets/ba_data/python/bascenev1lib/game/kingofthehill.py b/src/assets/ba_data/python/bascenev1lib/game/kingofthehill.py index 907b4341..24244f22 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/kingofthehill.py +++ b/src/assets/ba_data/python/bascenev1lib/game/kingofthehill.py @@ -9,9 +9,8 @@ from __future__ import annotations import weakref from enum import Enum -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.flag import Flag diff --git a/src/assets/ba_data/python/bascenev1lib/game/meteorshower.py b/src/assets/ba_data/python/bascenev1lib/game/meteorshower.py index cff9cf8d..7596632c 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/meteorshower.py +++ b/src/assets/ba_data/python/bascenev1lib/game/meteorshower.py @@ -8,9 +8,8 @@ from __future__ import annotations import random -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.bomb import Bomb diff --git a/src/assets/ba_data/python/bascenev1lib/game/ninjafight.py b/src/assets/ba_data/python/bascenev1lib/game/ninjafight.py index 98ca8d0b..67658cfe 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/ninjafight.py +++ b/src/assets/ba_data/python/bascenev1lib/game/ninjafight.py @@ -8,9 +8,8 @@ from __future__ import annotations import random -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.spazbot import ( diff --git a/src/assets/ba_data/python/bascenev1lib/game/onslaught.py b/src/assets/ba_data/python/bascenev1lib/game/onslaught.py index b1c2e145..6933a0ce 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/onslaught.py +++ b/src/assets/ba_data/python/bascenev1lib/game/onslaught.py @@ -15,9 +15,8 @@ import random import logging from enum import Enum, unique from dataclasses import dataclass -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.popuptext import PopupText diff --git a/src/assets/ba_data/python/bascenev1lib/game/race.py b/src/assets/ba_data/python/bascenev1lib/game/race.py index 6898a2f3..c5556161 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/race.py +++ b/src/assets/ba_data/python/bascenev1lib/game/race.py @@ -9,10 +9,9 @@ from __future__ import annotations import random import logging -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override from dataclasses import dataclass -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.bomb import Bomb diff --git a/src/assets/ba_data/python/bascenev1lib/game/runaround.py b/src/assets/ba_data/python/bascenev1lib/game/runaround.py index b09d5ed2..8d0b993b 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/runaround.py +++ b/src/assets/ba_data/python/bascenev1lib/game/runaround.py @@ -14,9 +14,8 @@ import random import logging from enum import Enum from dataclasses import dataclass -from typing import TYPE_CHECKING, cast, Sequence +from typing import TYPE_CHECKING, cast, Sequence, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.popuptext import PopupText diff --git a/src/assets/ba_data/python/bascenev1lib/game/targetpractice.py b/src/assets/ba_data/python/bascenev1lib/game/targetpractice.py index 42993572..18d94109 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/targetpractice.py +++ b/src/assets/ba_data/python/bascenev1lib/game/targetpractice.py @@ -8,9 +8,8 @@ from __future__ import annotations import random -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.scoreboard import Scoreboard diff --git a/src/assets/ba_data/python/bascenev1lib/game/thelaststand.py b/src/assets/ba_data/python/bascenev1lib/game/thelaststand.py index 7752c3fa..15b7cb97 100644 --- a/src/assets/ba_data/python/bascenev1lib/game/thelaststand.py +++ b/src/assets/ba_data/python/bascenev1lib/game/thelaststand.py @@ -7,9 +7,8 @@ from __future__ import annotations import random import logging from dataclasses import dataclass -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.playerspaz import PlayerSpaz diff --git a/src/assets/ba_data/python/bascenev1lib/mainmenu.py b/src/assets/ba_data/python/bascenev1lib/mainmenu.py index 8041176e..07fbf3fb 100644 --- a/src/assets/ba_data/python/bascenev1lib/mainmenu.py +++ b/src/assets/ba_data/python/bascenev1lib/mainmenu.py @@ -8,9 +8,8 @@ from __future__ import annotations import time import random import weakref -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs import bauiv1 as bui diff --git a/src/assets/ba_data/python/bascenev1lib/maps.py b/src/assets/ba_data/python/bascenev1lib/maps.py index d4731145..04f5b361 100644 --- a/src/assets/ba_data/python/bascenev1lib/maps.py +++ b/src/assets/ba_data/python/bascenev1lib/maps.py @@ -5,9 +5,8 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.gameutils import SharedObjects diff --git a/src/assets/ba_data/python/bascenev1lib/tutorial.py b/src/assets/ba_data/python/bascenev1lib/tutorial.py index 86aa6411..119cf6e0 100644 --- a/src/assets/ba_data/python/bascenev1lib/tutorial.py +++ b/src/assets/ba_data/python/bascenev1lib/tutorial.py @@ -17,9 +17,8 @@ from __future__ import annotations import math import logging from collections import deque -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs from bascenev1lib.actor.spaz import Spaz diff --git a/src/assets/ba_data/python/bauiv1/_subsystem.py b/src/assets/ba_data/python/bauiv1/_subsystem.py index e5549609..c9bd7f50 100644 --- a/src/assets/ba_data/python/bauiv1/_subsystem.py +++ b/src/assets/ba_data/python/bauiv1/_subsystem.py @@ -6,9 +6,8 @@ from __future__ import annotations import logging import inspect -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import babase import _bauiv1 diff --git a/src/assets/ba_data/python/bauiv1/_uitypes.py b/src/assets/ba_data/python/bauiv1/_uitypes.py index 2c60ad4c..6431a554 100644 --- a/src/assets/ba_data/python/bauiv1/_uitypes.py +++ b/src/assets/ba_data/python/bauiv1/_uitypes.py @@ -7,9 +7,8 @@ from __future__ import annotations import os import weakref from dataclasses import dataclass -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import babase import _bauiv1 diff --git a/src/assets/ba_data/python/bauiv1lib/account/viewer.py b/src/assets/ba_data/python/bauiv1lib/account/viewer.py index cf3c90bf..dada8df1 100644 --- a/src/assets/ba_data/python/bauiv1lib/account/viewer.py +++ b/src/assets/ba_data/python/bauiv1lib/account/viewer.py @@ -4,10 +4,9 @@ from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override import logging -from typing_extensions import override import bauiv1 as bui from bauiv1lib.popup import PopupWindow, PopupMenuWindow diff --git a/src/assets/ba_data/python/bauiv1lib/achievements.py b/src/assets/ba_data/python/bauiv1lib/achievements.py index 6a065f1f..228e7731 100644 --- a/src/assets/ba_data/python/bauiv1lib/achievements.py +++ b/src/assets/ba_data/python/bauiv1lib/achievements.py @@ -4,7 +4,7 @@ from __future__ import annotations -from typing_extensions import override +from typing import override from bauiv1lib.popup import PopupWindow import bauiv1 as bui diff --git a/src/assets/ba_data/python/bauiv1lib/characterpicker.py b/src/assets/ba_data/python/bauiv1lib/characterpicker.py index a5881ae5..5e6ad306 100644 --- a/src/assets/ba_data/python/bauiv1lib/characterpicker.py +++ b/src/assets/ba_data/python/bauiv1lib/characterpicker.py @@ -5,9 +5,7 @@ from __future__ import annotations import math -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override from bauiv1lib.popup import PopupWindow import bauiv1 as bui diff --git a/src/assets/ba_data/python/bauiv1lib/colorpicker.py b/src/assets/ba_data/python/bauiv1lib/colorpicker.py index 8d6fcd71..2896427f 100644 --- a/src/assets/ba_data/python/bauiv1lib/colorpicker.py +++ b/src/assets/ba_data/python/bauiv1lib/colorpicker.py @@ -4,9 +4,7 @@ from __future__ import annotations -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override from bauiv1lib.popup import PopupWindow import bauiv1 as bui diff --git a/src/assets/ba_data/python/bauiv1lib/fileselector.py b/src/assets/ba_data/python/bauiv1lib/fileselector.py index 427df3fb..308b659c 100644 --- a/src/assets/ba_data/python/bauiv1lib/fileselector.py +++ b/src/assets/ba_data/python/bauiv1lib/fileselector.py @@ -8,9 +8,7 @@ import os import time import logging from threading import Thread -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override import bauiv1 as bui diff --git a/src/assets/ba_data/python/bauiv1lib/gather/abouttab.py b/src/assets/ba_data/python/bauiv1lib/gather/abouttab.py index 7e0a6caa..086471e0 100644 --- a/src/assets/ba_data/python/bauiv1lib/gather/abouttab.py +++ b/src/assets/ba_data/python/bauiv1lib/gather/abouttab.py @@ -4,9 +4,7 @@ from __future__ import annotations -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override from bauiv1lib.gather import GatherTab import bauiv1 as bui diff --git a/src/assets/ba_data/python/bauiv1lib/gather/manualtab.py b/src/assets/ba_data/python/bauiv1lib/gather/manualtab.py index 88232b73..897ae323 100644 --- a/src/assets/ba_data/python/bauiv1lib/gather/manualtab.py +++ b/src/assets/ba_data/python/bauiv1lib/gather/manualtab.py @@ -9,10 +9,9 @@ import logging from enum import Enum from threading import Thread from dataclasses import dataclass -from typing import TYPE_CHECKING, cast +from typing import TYPE_CHECKING, cast, override from bauiv1lib.gather import GatherTab -from typing_extensions import override import bauiv1 as bui import bascenev1 as bs diff --git a/src/assets/ba_data/python/bauiv1lib/gather/nearbytab.py b/src/assets/ba_data/python/bauiv1lib/gather/nearbytab.py index 7393f6bd..3301204a 100644 --- a/src/assets/ba_data/python/bauiv1lib/gather/nearbytab.py +++ b/src/assets/ba_data/python/bauiv1lib/gather/nearbytab.py @@ -5,9 +5,8 @@ from __future__ import annotations import weakref -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bauiv1 as bui import bascenev1 as bs diff --git a/src/assets/ba_data/python/bauiv1lib/gather/privatetab.py b/src/assets/ba_data/python/bauiv1lib/gather/privatetab.py index 2b73ec47..e50bdf54 100644 --- a/src/assets/ba_data/python/bauiv1lib/gather/privatetab.py +++ b/src/assets/ba_data/python/bauiv1lib/gather/privatetab.py @@ -11,9 +11,8 @@ import time import logging from enum import Enum from dataclasses import dataclass -from typing import TYPE_CHECKING, cast +from typing import TYPE_CHECKING, cast, override -from typing_extensions import override from efro.dataclassio import dataclass_from_dict, dataclass_to_dict from bacommon.net import ( PrivateHostingState, diff --git a/src/assets/ba_data/python/bauiv1lib/gather/publictab.py b/src/assets/ba_data/python/bauiv1lib/gather/publictab.py index a0e1b8ed..79f33763 100644 --- a/src/assets/ba_data/python/bauiv1lib/gather/publictab.py +++ b/src/assets/ba_data/python/bauiv1lib/gather/publictab.py @@ -11,9 +11,8 @@ import logging from threading import Thread from enum import Enum from dataclasses import dataclass -from typing import TYPE_CHECKING, cast +from typing import TYPE_CHECKING, cast, override -from typing_extensions import override from bauiv1lib.gather import GatherTab import bauiv1 as bui import bascenev1 as bs diff --git a/src/assets/ba_data/python/bauiv1lib/getremote.py b/src/assets/ba_data/python/bauiv1lib/getremote.py index 7f4e2be0..ef772a48 100644 --- a/src/assets/ba_data/python/bauiv1lib/getremote.py +++ b/src/assets/ba_data/python/bauiv1lib/getremote.py @@ -4,7 +4,7 @@ from __future__ import annotations -from typing_extensions import override +from typing import override from bauiv1lib.popup import PopupWindow import bauiv1 as bui diff --git a/src/assets/ba_data/python/bauiv1lib/iconpicker.py b/src/assets/ba_data/python/bauiv1lib/iconpicker.py index 3abd3f42..968b9c16 100644 --- a/src/assets/ba_data/python/bauiv1lib/iconpicker.py +++ b/src/assets/ba_data/python/bauiv1lib/iconpicker.py @@ -5,9 +5,7 @@ from __future__ import annotations import math -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override from bauiv1lib.popup import PopupWindow import bauiv1 as bui diff --git a/src/assets/ba_data/python/bauiv1lib/playlist/share.py b/src/assets/ba_data/python/bauiv1lib/playlist/share.py index cd9af1cb..2824d3b3 100644 --- a/src/assets/ba_data/python/bauiv1lib/playlist/share.py +++ b/src/assets/ba_data/python/bauiv1lib/playlist/share.py @@ -5,9 +5,7 @@ from __future__ import annotations import time -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override from bauiv1lib.promocode import PromoCodeWindow import bauiv1 as bui diff --git a/src/assets/ba_data/python/bauiv1lib/playoptions.py b/src/assets/ba_data/python/bauiv1lib/playoptions.py index 41b58f11..a49045c4 100644 --- a/src/assets/ba_data/python/bauiv1lib/playoptions.py +++ b/src/assets/ba_data/python/bauiv1lib/playoptions.py @@ -5,9 +5,8 @@ from __future__ import annotations import logging -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override -from typing_extensions import override import bascenev1 as bs import bauiv1 as bui diff --git a/src/assets/ba_data/python/bauiv1lib/popup.py b/src/assets/ba_data/python/bauiv1lib/popup.py index 7d53e789..ef830f85 100644 --- a/src/assets/ba_data/python/bauiv1lib/popup.py +++ b/src/assets/ba_data/python/bauiv1lib/popup.py @@ -5,9 +5,7 @@ from __future__ import annotations import weakref -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override import bauiv1 as bui diff --git a/src/assets/ba_data/python/bauiv1lib/qrcode.py b/src/assets/ba_data/python/bauiv1lib/qrcode.py index 3357de5c..d9827029 100644 --- a/src/assets/ba_data/python/bauiv1lib/qrcode.py +++ b/src/assets/ba_data/python/bauiv1lib/qrcode.py @@ -3,7 +3,8 @@ """Provides functionality for displaying QR codes.""" from __future__ import annotations -from typing_extensions import override +from typing import override + import bauiv1 as bui from bauiv1lib.popup import PopupWindow diff --git a/src/assets/ba_data/python/bauiv1lib/resourcetypeinfo.py b/src/assets/ba_data/python/bauiv1lib/resourcetypeinfo.py index 5bcc48cb..a3e39ebe 100644 --- a/src/assets/ba_data/python/bauiv1lib/resourcetypeinfo.py +++ b/src/assets/ba_data/python/bauiv1lib/resourcetypeinfo.py @@ -4,7 +4,7 @@ from __future__ import annotations -from typing_extensions import override +from typing import override from bauiv1lib.popup import PopupWindow import bauiv1 as bui diff --git a/src/assets/ba_data/python/bauiv1lib/teamnamescolors.py b/src/assets/ba_data/python/bauiv1lib/teamnamescolors.py index 23bbd0c0..dc030608 100644 --- a/src/assets/ba_data/python/bauiv1lib/teamnamescolors.py +++ b/src/assets/ba_data/python/bauiv1lib/teamnamescolors.py @@ -4,9 +4,7 @@ from __future__ import annotations -from typing import TYPE_CHECKING, cast - -from typing_extensions import override +from typing import TYPE_CHECKING, cast, override from bauiv1lib.popup import PopupWindow from bauiv1lib.colorpicker import ColorPicker diff --git a/src/assets/ba_data/python/bauiv1lib/tournamententry.py b/src/assets/ba_data/python/bauiv1lib/tournamententry.py index 2c81ca7c..4595d34c 100644 --- a/src/assets/ba_data/python/bauiv1lib/tournamententry.py +++ b/src/assets/ba_data/python/bauiv1lib/tournamententry.py @@ -5,9 +5,7 @@ from __future__ import annotations import logging -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override from bauiv1lib.popup import PopupWindow import bauiv1 as bui diff --git a/src/assets/ba_data/python/bauiv1lib/tournamentscores.py b/src/assets/ba_data/python/bauiv1lib/tournamentscores.py index b7499498..e4be2db0 100644 --- a/src/assets/ba_data/python/bauiv1lib/tournamentscores.py +++ b/src/assets/ba_data/python/bauiv1lib/tournamentscores.py @@ -4,9 +4,7 @@ from __future__ import annotations -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override from bauiv1lib.popup import PopupWindow import bauiv1 as bui diff --git a/src/assets/ba_data/python/bauiv1lib/trophies.py b/src/assets/ba_data/python/bauiv1lib/trophies.py index 1224ca2b..a7982f6c 100644 --- a/src/assets/ba_data/python/bauiv1lib/trophies.py +++ b/src/assets/ba_data/python/bauiv1lib/trophies.py @@ -4,9 +4,7 @@ from __future__ import annotations -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override from bauiv1lib import popup import bauiv1 as bui diff --git a/src/assets/server_package/ballisticakit_server.py b/src/assets/server_package/ballisticakit_server.py index 2ccd1152..d43784cb 100755 --- a/src/assets/server_package/ballisticakit_server.py +++ b/src/assets/server_package/ballisticakit_server.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3.11 +#!/usr/bin/env python3.12 # Released under the MIT License. See LICENSE for details. # """BallisticaKit server manager.""" @@ -31,10 +31,14 @@ if TYPE_CHECKING: from types import FrameType from bacommon.servermanager import ServerCommand -VERSION_STR = '1.3.1' +VERSION_STR = '1.3.2' # Version history: # +# 1.3.2 +# +# - Updated to use Python 3.12. +# # 1.3.1 # # - Windows binary is now named 'BallisticaKitHeadless.exe'. diff --git a/src/ballistica/core/platform/windows/core_platform_windows.cc b/src/ballistica/core/platform/windows/core_platform_windows.cc index b30eddd6..5951440b 100644 --- a/src/ballistica/core/platform/windows/core_platform_windows.cc +++ b/src/ballistica/core/platform/windows/core_platform_windows.cc @@ -23,9 +23,9 @@ #pragma comment(lib, "ws2_32.lib") #pragma comment(lib, "iphlpapi.lib") #if BA_DEBUG_BUILD -#pragma comment(lib, "python311_d.lib") +#pragma comment(lib, "python312_d.lib") #else -#pragma comment(lib, "python311.lib") +#pragma comment(lib, "python312.lib") #endif #pragma comment(lib, "DbgHelp.lib") diff --git a/src/ballistica/core/python/core_python.cc b/src/ballistica/core/python/core_python.cc index cc20c970..a5674712 100644 --- a/src/ballistica/core/python/core_python.cc +++ b/src/ballistica/core/python/core_python.cc @@ -224,8 +224,8 @@ void CorePython::SoftImportBase() { void CorePython::VerifyPythonEnvironment() { // Make sure we're running the Python version we require. const char* ver = Py_GetVersion(); - if (strncmp(ver, "3.11", 4) != 0) { - FatalError("We require Python 3.11.x; instead found " + std::string(ver)); + if (strncmp(ver, "3.12", 4) != 0) { + FatalError("We require Python 3.12.x; instead found " + std::string(ver)); } } diff --git a/src/ballistica/shared/ballistica.cc b/src/ballistica/shared/ballistica.cc index a9d63993..13076162 100644 --- a/src/ballistica/shared/ballistica.cc +++ b/src/ballistica/shared/ballistica.cc @@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int { namespace ballistica { // These are set automatically via script; don't modify them here. -const int kEngineBuildNumber = 21800; +const int kEngineBuildNumber = 21801; const char* kEngineVersion = "1.7.34"; const int kEngineApiVersion = 8; diff --git a/src/external/windows/include/python/Python.h b/src/external/windows/include/python/Python.h index fa1c4186..eb1e9ece 100755 --- a/src/external/windows/include/python/Python.h +++ b/src/external/windows/include/python/Python.h @@ -49,6 +49,9 @@ #include "bytearrayobject.h" #include "bytesobject.h" #include "unicodeobject.h" +#include "cpython/initconfig.h" +#include "pystate.h" +#include "pyerrors.h" #include "longobject.h" #include "cpython/longintrepr.h" #include "boolobject.h" @@ -74,8 +77,6 @@ #include "sliceobject.h" #include "cpython/cellobject.h" #include "iterobject.h" -#include "cpython/initconfig.h" -#include "pystate.h" #include "cpython/genobject.h" #include "descrobject.h" #include "genericaliasobject.h" @@ -85,7 +86,6 @@ #include "cpython/picklebufobject.h" #include "cpython/pytime.h" #include "codecs.h" -#include "pyerrors.h" #include "pythread.h" #include "cpython/context.h" #include "modsupport.h" diff --git a/src/external/windows/include/python/abstract.h b/src/external/windows/include/python/abstract.h index 1c6ef365..81e4a0cd 100755 --- a/src/external/windows/include/python/abstract.h +++ b/src/external/windows/include/python/abstract.h @@ -14,9 +14,9 @@ extern "C" { Print an object 'o' on file 'fp'. Returns -1 on error. The flags argument is used to enable certain printing options. The only option currently - supported is Py_Print_RAW. - - (What should be said about Py_Print_RAW?). */ + supported is Py_PRINT_RAW. By default (flags=0), PyObject_Print() formats + the object by calling PyObject_Repr(). If flags equals to Py_PRINT_RAW, it + formats the object by calling PyObject_Str(). */ /* Implemented elsewhere: @@ -88,7 +88,7 @@ extern "C" { -1 on failure. This is the equivalent of the Python statement: del o.attr_name. */ -#define PyObject_DelAttrString(O,A) PyObject_SetAttrString((O),(A), NULL) +#define PyObject_DelAttrString(O, A) PyObject_SetAttrString((O), (A), NULL) /* Implemented as a macro: @@ -98,7 +98,7 @@ extern "C" { Delete attribute named attr_name, for object o. Returns -1 on failure. This is the equivalent of the Python statement: del o.attr_name. */ -#define PyObject_DelAttr(O,A) PyObject_SetAttr((O),(A), NULL) +#define PyObject_DelAttr(O, A) PyObject_SetAttr((O), (A), NULL) /* Implemented elsewhere: @@ -228,6 +228,32 @@ PyAPI_FUNC(PyObject *) PyObject_CallMethodObjArgs( PyObject *name, ...); +/* Given a vectorcall nargsf argument, return the actual number of arguments. + * (For use outside the limited API, this is re-defined as a static inline + * function in cpython/abstract.h) + */ +PyAPI_FUNC(Py_ssize_t) PyVectorcall_NARGS(size_t nargsf); + +/* Call "callable" (which must support vectorcall) with positional arguments + "tuple" and keyword arguments "dict". "dict" may also be NULL */ +PyAPI_FUNC(PyObject *) PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *dict); + +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 +#define PY_VECTORCALL_ARGUMENTS_OFFSET \ + (_Py_STATIC_CAST(size_t, 1) << (8 * sizeof(size_t) - 1)) + +/* Perform a PEP 590-style vector call on 'callable' */ +PyAPI_FUNC(PyObject *) PyObject_Vectorcall( + PyObject *callable, + PyObject *const *args, + size_t nargsf, + PyObject *kwnames); + +/* Call the method 'name' on args[0] with arguments in args[1..nargsf-1]. */ +PyAPI_FUNC(PyObject *) PyObject_VectorcallMethod( + PyObject *name, PyObject *const *args, + size_t nargsf, PyObject *kwnames); +#endif /* Implemented elsewhere: @@ -722,7 +748,7 @@ PyAPI_FUNC(PyObject *) PySequence_Fast(PyObject *o, const char* m); /* Return the 'i'-th element of the sequence 'o', assuming that o was returned by PySequence_Fast, and that i is within bounds. */ #define PySequence_Fast_GET_ITEM(o, i)\ - (PyList_Check(o) ? PyList_GET_ITEM(o, i) : PyTuple_GET_ITEM(o, i)) + (PyList_Check(o) ? PyList_GET_ITEM((o), (i)) : PyTuple_GET_ITEM((o), (i))) /* Return a pointer to the underlying item array for an object returned by PySequence_Fast */ @@ -802,7 +828,7 @@ PyAPI_FUNC(Py_ssize_t) PyMapping_Length(PyObject *o); failure. This is equivalent to the Python statement: del o[key]. */ -#define PyMapping_DelItemString(O,K) PyObject_DelItemString((O),(K)) +#define PyMapping_DelItemString(O, K) PyObject_DelItemString((O), (K)) /* Implemented as a macro: @@ -812,7 +838,7 @@ PyAPI_FUNC(Py_ssize_t) PyMapping_Length(PyObject *o); Returns -1 on failure. This is equivalent to the Python statement: del o[key]. */ -#define PyMapping_DelItem(O,K) PyObject_DelItem((O),(K)) +#define PyMapping_DelItem(O, K) PyObject_DelItem((O), (K)) /* On success, return 1 if the mapping object 'o' has the key 'key', and 0 otherwise. diff --git a/src/external/windows/include/python/boolobject.h b/src/external/windows/include/python/boolobject.h index e42d60ff..3b6c2b76 100755 --- a/src/external/windows/include/python/boolobject.h +++ b/src/external/windows/include/python/boolobject.h @@ -7,20 +7,19 @@ extern "C" { #endif -PyAPI_DATA(PyTypeObject) PyBool_Type; +// PyBool_Type is declared by object.h -#define PyBool_Check(x) Py_IS_TYPE(x, &PyBool_Type) +#define PyBool_Check(x) Py_IS_TYPE((x), &PyBool_Type) -/* Py_False and Py_True are the only two bools in existence. -Don't forget to apply Py_INCREF() when returning either!!! */ +/* Py_False and Py_True are the only two bools in existence. */ /* Don't use these directly */ PyAPI_DATA(PyLongObject) _Py_FalseStruct; PyAPI_DATA(PyLongObject) _Py_TrueStruct; /* Use these macros */ -#define Py_False ((PyObject *) &_Py_FalseStruct) -#define Py_True ((PyObject *) &_Py_TrueStruct) +#define Py_False _PyObject_CAST(&_Py_FalseStruct) +#define Py_True _PyObject_CAST(&_Py_TrueStruct) // Test if an object is the True singleton, the same as "x is True" in Python. PyAPI_FUNC(int) Py_IsTrue(PyObject *x); @@ -31,8 +30,8 @@ PyAPI_FUNC(int) Py_IsFalse(PyObject *x); #define Py_IsFalse(x) Py_Is((x), Py_False) /* Macros for returning Py_True or Py_False, respectively */ -#define Py_RETURN_TRUE return Py_NewRef(Py_True) -#define Py_RETURN_FALSE return Py_NewRef(Py_False) +#define Py_RETURN_TRUE return Py_True +#define Py_RETURN_FALSE return Py_False /* Function to return a bool from a C long */ PyAPI_FUNC(PyObject *) PyBool_FromLong(long); diff --git a/src/external/windows/include/python/bytearrayobject.h b/src/external/windows/include/python/bytearrayobject.h index bc69fe21..b94c71b7 100755 --- a/src/external/windows/include/python/bytearrayobject.h +++ b/src/external/windows/include/python/bytearrayobject.h @@ -21,8 +21,8 @@ PyAPI_DATA(PyTypeObject) PyByteArray_Type; PyAPI_DATA(PyTypeObject) PyByteArrayIter_Type; /* Type check macros */ -#define PyByteArray_Check(self) PyObject_TypeCheck(self, &PyByteArray_Type) -#define PyByteArray_CheckExact(self) Py_IS_TYPE(self, &PyByteArray_Type) +#define PyByteArray_Check(self) PyObject_TypeCheck((self), &PyByteArray_Type) +#define PyByteArray_CheckExact(self) Py_IS_TYPE((self), &PyByteArray_Type) /* Direct API functions */ PyAPI_FUNC(PyObject *) PyByteArray_FromObject(PyObject *); diff --git a/src/external/windows/include/python/bytesobject.h b/src/external/windows/include/python/bytesobject.h index b2128ddb..31978600 100755 --- a/src/external/windows/include/python/bytesobject.h +++ b/src/external/windows/include/python/bytesobject.h @@ -29,7 +29,7 @@ PyAPI_DATA(PyTypeObject) PyBytesIter_Type; #define PyBytes_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_BYTES_SUBCLASS) -#define PyBytes_CheckExact(op) Py_IS_TYPE(op, &PyBytes_Type) +#define PyBytes_CheckExact(op) Py_IS_TYPE((op), &PyBytes_Type) PyAPI_FUNC(PyObject *) PyBytes_FromStringAndSize(const char *, Py_ssize_t); PyAPI_FUNC(PyObject *) PyBytes_FromString(const char *); diff --git a/src/external/windows/include/python/ceval.h b/src/external/windows/include/python/ceval.h index da1e4425..5fa2fd7f 100755 --- a/src/external/windows/include/python/ceval.h +++ b/src/external/windows/include/python/ceval.h @@ -31,7 +31,7 @@ Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords( /* Deprecated since PyEval_CallObjectWithKeywords is deprecated */ #define PyEval_CallObject(callable, arg) \ - PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL) + PyEval_CallObjectWithKeywords((callable), (arg), _PyObject_CAST(_Py_NULL)) Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallFunction( PyObject *callable, const char *format, ...); diff --git a/src/external/windows/include/python/compile.h b/src/external/windows/include/python/compile.h index f33fc539..f2e759a0 100755 --- a/src/external/windows/include/python/compile.h +++ b/src/external/windows/include/python/compile.h @@ -10,9 +10,6 @@ extern "C" { #define Py_eval_input 258 #define Py_func_type_input 345 -/* This doesn't need to match anything */ -#define Py_fstring_input 800 - #ifndef Py_LIMITED_API # define Py_CPYTHON_COMPILE_H # include "cpython/compile.h" diff --git a/src/external/windows/include/python/complexobject.h b/src/external/windows/include/python/complexobject.h index 8525f855..a08e1451 100755 --- a/src/external/windows/include/python/complexobject.h +++ b/src/external/windows/include/python/complexobject.h @@ -10,8 +10,8 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyComplex_Type; -#define PyComplex_Check(op) PyObject_TypeCheck(op, &PyComplex_Type) -#define PyComplex_CheckExact(op) Py_IS_TYPE(op, &PyComplex_Type) +#define PyComplex_Check(op) PyObject_TypeCheck((op), &PyComplex_Type) +#define PyComplex_CheckExact(op) Py_IS_TYPE((op), &PyComplex_Type) PyAPI_FUNC(PyObject *) PyComplex_FromDoubles(double real, double imag); diff --git a/src/external/windows/include/python/cpython/abstract.h b/src/external/windows/include/python/cpython/abstract.h index adbe2683..4be2d973 100755 --- a/src/external/windows/include/python/cpython/abstract.h +++ b/src/external/windows/include/python/cpython/abstract.h @@ -50,23 +50,18 @@ PyAPI_FUNC(PyObject *) _PyObject_MakeTpCall( PyObject *const *args, Py_ssize_t nargs, PyObject *keywords); -#define PY_VECTORCALL_ARGUMENTS_OFFSET \ - (_Py_STATIC_CAST(size_t, 1) << (8 * sizeof(size_t) - 1)) - +// PyVectorcall_NARGS() is exported as a function for the stable ABI. +// Here (when we are not using the stable ABI), the name is overridden to +// call a static inline function for best performance. +#define PyVectorcall_NARGS(n) _PyVectorcall_NARGS(n) static inline Py_ssize_t -PyVectorcall_NARGS(size_t n) +_PyVectorcall_NARGS(size_t n) { return n & ~PY_VECTORCALL_ARGUMENTS_OFFSET; } PyAPI_FUNC(vectorcallfunc) PyVectorcall_Function(PyObject *callable); -PyAPI_FUNC(PyObject *) PyObject_Vectorcall( - PyObject *callable, - PyObject *const *args, - size_t nargsf, - PyObject *kwnames); - // Backwards compatibility aliases for API that was provisional in Python 3.8 #define _PyObject_Vectorcall PyObject_Vectorcall #define _PyObject_VectorcallMethod PyObject_VectorcallMethod @@ -84,10 +79,6 @@ PyAPI_FUNC(PyObject *) PyObject_VectorcallDict( size_t nargsf, PyObject *kwargs); -/* Call "callable" (which must support vectorcall) with positional arguments - "tuple" and keyword arguments "dict". "dict" may also be NULL */ -PyAPI_FUNC(PyObject *) PyVectorcall_Call(PyObject *callable, PyObject *tuple, PyObject *dict); - // Same as PyObject_Vectorcall(), except without keyword arguments PyAPI_FUNC(PyObject *) _PyObject_FastCall( PyObject *func, @@ -96,10 +87,6 @@ PyAPI_FUNC(PyObject *) _PyObject_FastCall( PyAPI_FUNC(PyObject *) PyObject_CallOneArg(PyObject *func, PyObject *arg); -PyAPI_FUNC(PyObject *) PyObject_VectorcallMethod( - PyObject *name, PyObject *const *args, - size_t nargsf, PyObject *kwnames); - static inline PyObject * PyObject_CallMethodNoArgs(PyObject *self, PyObject *name) { @@ -176,7 +163,7 @@ PyAPI_FUNC(Py_ssize_t) PyObject_LengthHint(PyObject *o, Py_ssize_t); /* Assume tp_as_sequence and sq_item exist and that 'i' does not need to be corrected for a negative index. */ #define PySequence_ITEM(o, i)\ - ( Py_TYPE(o)->tp_as_sequence->sq_item(o, i) ) + ( Py_TYPE(o)->tp_as_sequence->sq_item((o), (i)) ) #define PY_ITERSEARCH_COUNT 1 #define PY_ITERSEARCH_INDEX 2 diff --git a/src/external/windows/include/python/cpython/bytearrayobject.h b/src/external/windows/include/python/cpython/bytearrayobject.h index 90c06c57..417e4ccb 100755 --- a/src/external/windows/include/python/cpython/bytearrayobject.h +++ b/src/external/windows/include/python/cpython/bytearrayobject.h @@ -25,14 +25,10 @@ static inline char* PyByteArray_AS_STRING(PyObject *op) } return _PyByteArray_empty_string; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyByteArray_AS_STRING(self) PyByteArray_AS_STRING(_PyObject_CAST(self)) -#endif +#define PyByteArray_AS_STRING(self) PyByteArray_AS_STRING(_PyObject_CAST(self)) static inline Py_ssize_t PyByteArray_GET_SIZE(PyObject *op) { PyByteArrayObject *self = _PyByteArray_CAST(op); return Py_SIZE(self); } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyByteArray_GET_SIZE(self) PyByteArray_GET_SIZE(_PyObject_CAST(self)) -#endif +#define PyByteArray_GET_SIZE(self) PyByteArray_GET_SIZE(_PyObject_CAST(self)) diff --git a/src/external/windows/include/python/cpython/bytesobject.h b/src/external/windows/include/python/cpython/bytesobject.h index 6f8e9ff5..377d67d6 100755 --- a/src/external/windows/include/python/cpython/bytesobject.h +++ b/src/external/windows/include/python/cpython/bytesobject.h @@ -36,17 +36,13 @@ static inline char* PyBytes_AS_STRING(PyObject *op) { return _PyBytes_CAST(op)->ob_sval; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyBytes_AS_STRING(op) PyBytes_AS_STRING(_PyObject_CAST(op)) -#endif +#define PyBytes_AS_STRING(op) PyBytes_AS_STRING(_PyObject_CAST(op)) static inline Py_ssize_t PyBytes_GET_SIZE(PyObject *op) { PyBytesObject *self = _PyBytes_CAST(op); return Py_SIZE(self); } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyBytes_GET_SIZE(self) PyBytes_GET_SIZE(_PyObject_CAST(self)) -#endif +#define PyBytes_GET_SIZE(self) PyBytes_GET_SIZE(_PyObject_CAST(self)) /* _PyBytes_Join(sep, x) is like sep.join(x). sep must be PyBytesObject*, x must be an iterable object. */ diff --git a/src/external/windows/include/python/cpython/cellobject.h b/src/external/windows/include/python/cpython/cellobject.h index e9405e1d..bb4495d8 100644 --- a/src/external/windows/include/python/cpython/cellobject.h +++ b/src/external/windows/include/python/cpython/cellobject.h @@ -15,14 +15,27 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyCell_Type; -#define PyCell_Check(op) Py_IS_TYPE(op, &PyCell_Type) +#define PyCell_Check(op) Py_IS_TYPE((op), &PyCell_Type) PyAPI_FUNC(PyObject *) PyCell_New(PyObject *); PyAPI_FUNC(PyObject *) PyCell_Get(PyObject *); PyAPI_FUNC(int) PyCell_Set(PyObject *, PyObject *); -#define PyCell_GET(op) (((PyCellObject *)(op))->ob_ref) -#define PyCell_SET(op, v) _Py_RVALUE(((PyCellObject *)(op))->ob_ref = (v)) +static inline PyObject* PyCell_GET(PyObject *op) { + PyCellObject *cell; + assert(PyCell_Check(op)); + cell = _Py_CAST(PyCellObject*, op); + return cell->ob_ref; +} +#define PyCell_GET(op) PyCell_GET(_PyObject_CAST(op)) + +static inline void PyCell_SET(PyObject *op, PyObject *value) { + PyCellObject *cell; + assert(PyCell_Check(op)); + cell = _Py_CAST(PyCellObject*, op); + cell->ob_ref = value; +} +#define PyCell_SET(op, value) PyCell_SET(_PyObject_CAST(op), (value)) #ifdef __cplusplus } diff --git a/src/external/windows/include/python/cpython/ceval.h b/src/external/windows/include/python/cpython/ceval.h index e63f0a90..7bd871ca 100755 --- a/src/external/windows/include/python/cpython/ceval.h +++ b/src/external/windows/include/python/cpython/ceval.h @@ -3,8 +3,10 @@ #endif PyAPI_FUNC(void) PyEval_SetProfile(Py_tracefunc, PyObject *); +PyAPI_FUNC(void) PyEval_SetProfileAllThreads(Py_tracefunc, PyObject *); PyAPI_DATA(int) _PyEval_SetProfile(PyThreadState *tstate, Py_tracefunc func, PyObject *arg); PyAPI_FUNC(void) PyEval_SetTrace(Py_tracefunc, PyObject *); +PyAPI_FUNC(void) PyEval_SetTraceAllThreads(Py_tracefunc, PyObject *); PyAPI_FUNC(int) _PyEval_SetTrace(PyThreadState *tstate, Py_tracefunc func, PyObject *arg); /* Helper to look up a builtin object */ @@ -20,7 +22,14 @@ PyAPI_FUNC(PyObject *) _PyEval_EvalFrameDefault(PyThreadState *tstate, struct _P PyAPI_FUNC(void) _PyEval_SetSwitchInterval(unsigned long microseconds); PyAPI_FUNC(unsigned long) _PyEval_GetSwitchInterval(void); -PyAPI_FUNC(Py_ssize_t) _PyEval_RequestCodeExtraIndex(freefunc); +PyAPI_FUNC(int) _PyEval_MakePendingCalls(PyThreadState *); + +PyAPI_FUNC(Py_ssize_t) PyUnstable_Eval_RequestCodeExtraIndex(freefunc); +// Old name -- remove when this API changes: +_Py_DEPRECATED_EXTERNALLY(3.12) static inline Py_ssize_t +_PyEval_RequestCodeExtraIndex(freefunc f) { + return PyUnstable_Eval_RequestCodeExtraIndex(f); +} PyAPI_FUNC(int) _PyEval_SliceIndex(PyObject *, Py_ssize_t *); PyAPI_FUNC(int) _PyEval_SliceIndexNotNone(PyObject *, Py_ssize_t *); diff --git a/src/external/windows/include/python/cpython/classobject.h b/src/external/windows/include/python/cpython/classobject.h index 9541f1d0..d49f73de 100644 --- a/src/external/windows/include/python/cpython/classobject.h +++ b/src/external/windows/include/python/cpython/classobject.h @@ -19,19 +19,27 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyMethod_Type; -#define PyMethod_Check(op) Py_IS_TYPE(op, &PyMethod_Type) +#define PyMethod_Check(op) Py_IS_TYPE((op), &PyMethod_Type) PyAPI_FUNC(PyObject *) PyMethod_New(PyObject *, PyObject *); PyAPI_FUNC(PyObject *) PyMethod_Function(PyObject *); PyAPI_FUNC(PyObject *) PyMethod_Self(PyObject *); -/* Macros for direct access to these values. Type checks are *not* - done, so use with care. */ -#define PyMethod_GET_FUNCTION(meth) \ - (((PyMethodObject *)meth) -> im_func) -#define PyMethod_GET_SELF(meth) \ - (((PyMethodObject *)meth) -> im_self) +#define _PyMethod_CAST(meth) \ + (assert(PyMethod_Check(meth)), _Py_CAST(PyMethodObject*, meth)) + +/* Static inline functions for direct access to these values. + Type checks are *not* done, so use with care. */ +static inline PyObject* PyMethod_GET_FUNCTION(PyObject *meth) { + return _PyMethod_CAST(meth)->im_func; +} +#define PyMethod_GET_FUNCTION(meth) PyMethod_GET_FUNCTION(_PyObject_CAST(meth)) + +static inline PyObject* PyMethod_GET_SELF(PyObject *meth) { + return _PyMethod_CAST(meth)->im_self; +} +#define PyMethod_GET_SELF(meth) PyMethod_GET_SELF(_PyObject_CAST(meth)) typedef struct { PyObject_HEAD @@ -40,15 +48,21 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyInstanceMethod_Type; -#define PyInstanceMethod_Check(op) Py_IS_TYPE(op, &PyInstanceMethod_Type) +#define PyInstanceMethod_Check(op) Py_IS_TYPE((op), &PyInstanceMethod_Type) PyAPI_FUNC(PyObject *) PyInstanceMethod_New(PyObject *); PyAPI_FUNC(PyObject *) PyInstanceMethod_Function(PyObject *); -/* Macros for direct access to these values. Type checks are *not* - done, so use with care. */ -#define PyInstanceMethod_GET_FUNCTION(meth) \ - (((PyInstanceMethodObject *)meth) -> func) +#define _PyInstanceMethod_CAST(meth) \ + (assert(PyInstanceMethod_Check(meth)), \ + _Py_CAST(PyInstanceMethodObject*, meth)) + +/* Static inline function for direct access to these values. + Type checks are *not* done, so use with care. */ +static inline PyObject* PyInstanceMethod_GET_FUNCTION(PyObject *meth) { + return _PyInstanceMethod_CAST(meth)->func; +} +#define PyInstanceMethod_GET_FUNCTION(meth) PyInstanceMethod_GET_FUNCTION(_PyObject_CAST(meth)) #ifdef __cplusplus } diff --git a/src/external/windows/include/python/cpython/code.h b/src/external/windows/include/python/cpython/code.h index 3cacfb6b..a6316057 100755 --- a/src/external/windows/include/python/cpython/code.h +++ b/src/external/windows/include/python/cpython/code.h @@ -3,10 +3,29 @@ #ifndef Py_LIMITED_API #ifndef Py_CODE_H #define Py_CODE_H + #ifdef __cplusplus extern "C" { #endif +/* Count of all local monitoring events */ +#define _PY_MONITORING_LOCAL_EVENTS 10 +/* Count of all "real" monitoring events (not derived from other events) */ +#define _PY_MONITORING_UNGROUPED_EVENTS 15 +/* Count of all monitoring events */ +#define _PY_MONITORING_EVENTS 17 + +/* Tables of which tools are active for each monitored event. */ +/* For 3.12 ABI compatibility this is over sized */ +typedef struct _Py_LocalMonitors { + /* Only _PY_MONITORING_LOCAL_EVENTS of these are used */ + uint8_t tools[_PY_MONITORING_UNGROUPED_EVENTS]; +} _Py_LocalMonitors; + +typedef struct _Py_GlobalMonitors { + uint8_t tools[_PY_MONITORING_UNGROUPED_EVENTS]; +} _Py_GlobalMonitors; + /* Each instruction in a code object is a fixed-width value, * currently 2 bytes: 1-byte opcode + 1-byte oparg. The EXTENDED_ARG * opcode allows for larger values but the current limit is 3 uses @@ -16,20 +35,74 @@ extern "C" { * 2**32 - 1, rather than INT_MAX. */ -typedef uint16_t _Py_CODEUNIT; +typedef union { + uint16_t cache; + struct { + uint8_t code; + uint8_t arg; + } op; +} _Py_CODEUNIT; -#ifdef WORDS_BIGENDIAN -# define _Py_OPCODE(word) ((word) >> 8) -# define _Py_OPARG(word) ((word) & 255) -# define _Py_MAKECODEUNIT(opcode, oparg) (((opcode)<<8)|(oparg)) -#else -# define _Py_OPCODE(word) ((word) & 255) -# define _Py_OPARG(word) ((word) >> 8) -# define _Py_MAKECODEUNIT(opcode, oparg) ((opcode)|((oparg)<<8)) -#endif -// Use "unsigned char" instead of "uint8_t" here to avoid illegal aliasing: -#define _Py_SET_OPCODE(word, opcode) (((unsigned char *)&(word))[0] = (opcode)) +/* These macros only remain defined for compatibility. */ +#define _Py_OPCODE(word) ((word).op.code) +#define _Py_OPARG(word) ((word).op.arg) + +static inline _Py_CODEUNIT +_py_make_codeunit(uint8_t opcode, uint8_t oparg) +{ + // No designated initialisers because of C++ compat + _Py_CODEUNIT word; + word.op.code = opcode; + word.op.arg = oparg; + return word; +} + +static inline void +_py_set_opcode(_Py_CODEUNIT *word, uint8_t opcode) +{ + word->op.code = opcode; +} + +#define _Py_MAKE_CODEUNIT(opcode, oparg) _py_make_codeunit((opcode), (oparg)) +#define _Py_SET_OPCODE(word, opcode) _py_set_opcode(&(word), (opcode)) + + +typedef struct { + PyObject *_co_code; + PyObject *_co_varnames; + PyObject *_co_cellvars; + PyObject *_co_freevars; +} _PyCoCached; + +/* Ancillary data structure used for instrumentation. + Line instrumentation creates an array of + these. One entry per code unit.*/ +typedef struct { + uint8_t original_opcode; + int8_t line_delta; +} _PyCoLineInstrumentationData; + +/* Main data structure used for instrumentation. + * This is allocated when needed for instrumentation + */ +typedef struct { + /* Monitoring specific to this code object */ + _Py_LocalMonitors local_monitors; + /* Monitoring that is active on this code object */ + _Py_LocalMonitors active_monitors; + /* The tools that are to be notified for events for the matching code unit */ + uint8_t *tools; + /* Information to support line events */ + _PyCoLineInstrumentationData *lines; + /* The tools that are to be notified for line events for the matching code unit */ + uint8_t *line_tools; + /* Information to support instruction events */ + /* The underlying instructions, which can themselves be instrumented */ + uint8_t *per_instruction_opcodes; + /* The tools that are to be notified for instruction events for the matching code unit */ + uint8_t *per_instruction_tools; +} _PyCoMonitoringData; // To avoid repeating ourselves in deepfreeze.py, all PyCodeObject members are // defined in this macro: @@ -62,8 +135,6 @@ typedef uint16_t _Py_CODEUNIT; PyObject *co_exceptiontable; /* Byte string encoding exception handling \ table */ \ int co_flags; /* CO_..., see below */ \ - short co_warmup; /* Warmup counter for quickening */ \ - short _co_linearray_entry_size; /* Size of each entry in _co_linearray */ \ \ /* The rest are not so impactful on performance. */ \ int co_argcount; /* #arguments, except *args */ \ @@ -74,12 +145,12 @@ typedef uint16_t _Py_CODEUNIT; \ /* redundant values (derived from co_localsplusnames and \ co_localspluskinds) */ \ - int co_nlocalsplus; /* number of local + cell + free variables \ - */ \ + int co_nlocalsplus; /* number of local + cell + free variables */ \ + int co_framesize; /* Size of frame in words */ \ int co_nlocals; /* number of local variables */ \ - int co_nplaincellvars; /* number of non-arg cell variables */ \ int co_ncellvars; /* total number of cell variables */ \ int co_nfreevars; /* number of free variables */ \ + uint32_t co_version; /* version number */ \ \ PyObject *co_localsplusnames; /* tuple mapping offsets to names */ \ PyObject *co_localspluskinds; /* Bytes mapping to local kinds (one byte \ @@ -89,8 +160,9 @@ typedef uint16_t _Py_CODEUNIT; PyObject *co_qualname; /* unicode (qualname, for reference) */ \ PyObject *co_linetable; /* bytes object that holds location info */ \ PyObject *co_weakreflist; /* to support weakrefs to code objects */ \ - PyObject *_co_code; /* cached co_code object/attribute */ \ - char *_co_linearray; /* array of line offsets */ \ + _PyCoCached *_co_cached; /* cached co_* attributes */ \ + uint64_t _co_instrumentation_version; /* current instrumentation version */ \ + _PyCoMonitoringData *_co_monitoring; /* Monitoring data */ \ int _co_firsttraceable; /* index of first traceable instruction */ \ /* Scratch space for extra data relating to the code object. \ Type is a void* to keep the format private in codeobject.c to force \ @@ -139,24 +211,55 @@ struct PyCodeObject _PyCode_DEF(1); PyAPI_DATA(PyTypeObject) PyCode_Type; -#define PyCode_Check(op) Py_IS_TYPE(op, &PyCode_Type) -#define PyCode_GetNumFree(op) ((op)->co_nfreevars) -#define _PyCode_CODE(CO) ((_Py_CODEUNIT *)(CO)->co_code_adaptive) +#define PyCode_Check(op) Py_IS_TYPE((op), &PyCode_Type) + +static inline Py_ssize_t PyCode_GetNumFree(PyCodeObject *op) { + assert(PyCode_Check(op)); + return op->co_nfreevars; +} + +static inline int PyCode_GetFirstFree(PyCodeObject *op) { + assert(PyCode_Check(op)); + return op->co_nlocalsplus - op->co_nfreevars; +} + +#define _PyCode_CODE(CO) _Py_RVALUE((_Py_CODEUNIT *)(CO)->co_code_adaptive) #define _PyCode_NBYTES(CO) (Py_SIZE(CO) * (Py_ssize_t)sizeof(_Py_CODEUNIT)) -/* Public interface */ -PyAPI_FUNC(PyCodeObject *) PyCode_New( +/* Unstable public interface */ +PyAPI_FUNC(PyCodeObject *) PyUnstable_Code_New( int, int, int, int, int, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int, PyObject *, PyObject *); -PyAPI_FUNC(PyCodeObject *) PyCode_NewWithPosOnlyArgs( +PyAPI_FUNC(PyCodeObject *) PyUnstable_Code_NewWithPosOnlyArgs( int, int, int, int, int, int, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, PyObject *, int, PyObject *, PyObject *); /* same as struct above */ +// Old names -- remove when this API changes: +_Py_DEPRECATED_EXTERNALLY(3.12) static inline PyCodeObject * +PyCode_New( + int a, int b, int c, int d, int e, PyObject *f, PyObject *g, + PyObject *h, PyObject *i, PyObject *j, PyObject *k, + PyObject *l, PyObject *m, PyObject *n, int o, PyObject *p, + PyObject *q) +{ + return PyUnstable_Code_New( + a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q); +} +_Py_DEPRECATED_EXTERNALLY(3.12) static inline PyCodeObject * +PyCode_NewWithPosOnlyArgs( + int a, int poac, int b, int c, int d, int e, PyObject *f, PyObject *g, + PyObject *h, PyObject *i, PyObject *j, PyObject *k, + PyObject *l, PyObject *m, PyObject *n, int o, PyObject *p, + PyObject *q) +{ + return PyUnstable_Code_NewWithPosOnlyArgs( + a, poac, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q); +} /* Creates a new empty code object with the specified source location. */ PyAPI_FUNC(PyCodeObject *) @@ -169,6 +272,46 @@ PyAPI_FUNC(int) PyCode_Addr2Line(PyCodeObject *, int); PyAPI_FUNC(int) PyCode_Addr2Location(PyCodeObject *, int, int *, int *, int *, int *); +#define PY_FOREACH_CODE_EVENT(V) \ + V(CREATE) \ + V(DESTROY) + +typedef enum { + #define PY_DEF_EVENT(op) PY_CODE_EVENT_##op, + PY_FOREACH_CODE_EVENT(PY_DEF_EVENT) + #undef PY_DEF_EVENT +} PyCodeEvent; + + +/* + * A callback that is invoked for different events in a code object's lifecycle. + * + * The callback is invoked with a borrowed reference to co, after it is + * created and before it is destroyed. + * + * If the callback sets an exception, it must return -1. Otherwise + * it should return 0. + */ +typedef int (*PyCode_WatchCallback)( + PyCodeEvent event, + PyCodeObject* co); + +/* + * Register a per-interpreter callback that will be invoked for code object + * lifecycle events. + * + * Returns a handle that may be passed to PyCode_ClearWatcher on success, + * or -1 and sets an error if no more handles are available. + */ +PyAPI_FUNC(int) PyCode_AddWatcher(PyCode_WatchCallback callback); + +/* + * Clear the watcher associated with the watcher_id handle. + * + * Returns 0 on success or -1 if no watcher exists for the provided id. + */ +PyAPI_FUNC(int) PyCode_ClearWatcher(int watcher_id); + /* for internal use only */ struct _opaque { int computed_line; @@ -200,11 +343,21 @@ PyAPI_FUNC(PyObject*) _PyCode_ConstantKey(PyObject *obj); PyAPI_FUNC(PyObject*) PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names, PyObject *lnotab); - -PyAPI_FUNC(int) _PyCode_GetExtra(PyObject *code, Py_ssize_t index, - void **extra); -PyAPI_FUNC(int) _PyCode_SetExtra(PyObject *code, Py_ssize_t index, - void *extra); +PyAPI_FUNC(int) PyUnstable_Code_GetExtra( + PyObject *code, Py_ssize_t index, void **extra); +PyAPI_FUNC(int) PyUnstable_Code_SetExtra( + PyObject *code, Py_ssize_t index, void *extra); +// Old names -- remove when this API changes: +_Py_DEPRECATED_EXTERNALLY(3.12) static inline int +_PyCode_GetExtra(PyObject *code, Py_ssize_t index, void **extra) +{ + return PyUnstable_Code_GetExtra(code, index, extra); +} +_Py_DEPRECATED_EXTERNALLY(3.12) static inline int +_PyCode_SetExtra(PyObject *code, Py_ssize_t index, void *extra) +{ + return PyUnstable_Code_SetExtra(code, index, extra); +} /* Equivalent to getattr(code, 'co_code') in Python. Returns a strong reference to a bytes object. */ diff --git a/src/external/windows/include/python/cpython/compile.h b/src/external/windows/include/python/cpython/compile.h index 7cfbe715..7d977100 100755 --- a/src/external/windows/include/python/cpython/compile.h +++ b/src/external/windows/include/python/cpython/compile.h @@ -31,11 +31,26 @@ typedef struct { #define _PyCompilerFlags_INIT \ (PyCompilerFlags){.cf_flags = 0, .cf_feature_version = PY_MINOR_VERSION} +/* source location information */ +typedef struct { + int lineno; + int end_lineno; + int col_offset; + int end_col_offset; +} _PyCompilerSrcLocation; + +#define SRC_LOCATION_FROM_AST(n) \ + (_PyCompilerSrcLocation){ \ + .lineno = (n)->lineno, \ + .end_lineno = (n)->end_lineno, \ + .col_offset = (n)->col_offset, \ + .end_col_offset = (n)->end_col_offset } + /* Future feature support */ typedef struct { - int ff_features; /* flags set by future statements */ - int ff_lineno; /* line number of last future statement */ + int ff_features; /* flags set by future statements */ + _PyCompilerSrcLocation ff_location; /* location of last future statement */ } PyFutureFeatures; #define FUTURE_NESTED_SCOPES "nested_scopes" diff --git a/src/external/windows/include/python/cpython/context.h b/src/external/windows/include/python/cpython/context.h index aebba956..286ceeda 100644 --- a/src/external/windows/include/python/cpython/context.h +++ b/src/external/windows/include/python/cpython/context.h @@ -15,9 +15,9 @@ PyAPI_DATA(PyTypeObject) PyContextToken_Type; typedef struct _pycontexttokenobject PyContextToken; -#define PyContext_CheckExact(o) Py_IS_TYPE(o, &PyContext_Type) -#define PyContextVar_CheckExact(o) Py_IS_TYPE(o, &PyContextVar_Type) -#define PyContextToken_CheckExact(o) Py_IS_TYPE(o, &PyContextToken_Type) +#define PyContext_CheckExact(o) Py_IS_TYPE((o), &PyContext_Type) +#define PyContextVar_CheckExact(o) Py_IS_TYPE((o), &PyContextVar_Type) +#define PyContextToken_CheckExact(o) Py_IS_TYPE((o), &PyContextToken_Type) PyAPI_FUNC(PyObject *) PyContext_New(void); diff --git a/src/external/windows/include/python/cpython/dictobject.h b/src/external/windows/include/python/cpython/dictobject.h index 9aebdbee..c4be831d 100755 --- a/src/external/windows/include/python/cpython/dictobject.h +++ b/src/external/windows/include/python/cpython/dictobject.h @@ -16,7 +16,11 @@ typedef struct { /* Dictionary version: globally unique, value change each time the dictionary is modified */ +#ifdef Py_BUILD_CORE uint64_t ma_version_tag; +#else + Py_DEPRECATED(3.12) uint64_t ma_version_tag; +#endif PyDictKeysObject *ma_keys; @@ -46,7 +50,14 @@ PyAPI_FUNC(int) _PyDict_Next( PyObject *mp, Py_ssize_t *pos, PyObject **key, PyObject **value, Py_hash_t *hash); /* Get the number of items of a dictionary. */ -#define PyDict_GET_SIZE(mp) (assert(PyDict_Check(mp)),((PyDictObject *)mp)->ma_used) +static inline Py_ssize_t PyDict_GET_SIZE(PyObject *op) { + PyDictObject *mp; + assert(PyDict_Check(op)); + mp = _Py_CAST(PyDictObject*, op); + return mp->ma_used; +} +#define PyDict_GET_SIZE(op) PyDict_GET_SIZE(_PyObject_CAST(op)) + PyAPI_FUNC(int) _PyDict_Contains_KnownHash(PyObject *, PyObject *, Py_hash_t); PyAPI_FUNC(int) _PyDict_ContainsId(PyObject *, _Py_Identifier *); PyAPI_FUNC(PyObject *) _PyDict_NewPresized(Py_ssize_t minused); @@ -76,3 +87,32 @@ typedef struct { PyAPI_FUNC(PyObject *) _PyDictView_New(PyObject *, PyTypeObject *); PyAPI_FUNC(PyObject *) _PyDictView_Intersect(PyObject* self, PyObject *other); + +/* Dictionary watchers */ + +#define PY_FOREACH_DICT_EVENT(V) \ + V(ADDED) \ + V(MODIFIED) \ + V(DELETED) \ + V(CLONED) \ + V(CLEARED) \ + V(DEALLOCATED) + +typedef enum { + #define PY_DEF_EVENT(EVENT) PyDict_EVENT_##EVENT, + PY_FOREACH_DICT_EVENT(PY_DEF_EVENT) + #undef PY_DEF_EVENT +} PyDict_WatchEvent; + +// Callback to be invoked when a watched dict is cleared, dealloced, or modified. +// In clear/dealloc case, key and new_value will be NULL. Otherwise, new_value will be the +// new value for key, NULL if key is being deleted. +typedef int(*PyDict_WatchCallback)(PyDict_WatchEvent event, PyObject* dict, PyObject* key, PyObject* new_value); + +// Register/unregister a dict-watcher callback +PyAPI_FUNC(int) PyDict_AddWatcher(PyDict_WatchCallback callback); +PyAPI_FUNC(int) PyDict_ClearWatcher(int watcher_id); + +// Mark given dictionary as "watched" (callback will be called if it is modified) +PyAPI_FUNC(int) PyDict_Watch(int watcher_id, PyObject* dict); +PyAPI_FUNC(int) PyDict_Unwatch(int watcher_id, PyObject* dict); diff --git a/src/external/windows/include/python/cpython/fileobject.h b/src/external/windows/include/python/cpython/fileobject.h index e077bb3f..c96076b7 100755 --- a/src/external/windows/include/python/cpython/fileobject.h +++ b/src/external/windows/include/python/cpython/fileobject.h @@ -3,6 +3,7 @@ #endif PyAPI_FUNC(char *) Py_UniversalNewlineFgets(char *, int, FILE*, PyObject *); +PyAPI_FUNC(char *) _Py_UniversalNewlineFgetsWithSize(char *, int, FILE*, PyObject *, size_t*); /* The std printer acts as a preliminary sys.stderr until the new io infrastructure is in place. */ diff --git a/src/external/windows/include/python/cpython/floatobject.h b/src/external/windows/include/python/cpython/floatobject.h index d9a34f7d..db8c2f3e 100644 --- a/src/external/windows/include/python/cpython/floatobject.h +++ b/src/external/windows/include/python/cpython/floatobject.h @@ -7,9 +7,15 @@ typedef struct { double ob_fval; } PyFloatObject; -// Macro version of PyFloat_AsDouble() trading safety for speed. +#define _PyFloat_CAST(op) \ + (assert(PyFloat_Check(op)), _Py_CAST(PyFloatObject*, op)) + +// Static inline version of PyFloat_AsDouble() trading safety for speed. // It doesn't check if op is a double object. -#define PyFloat_AS_DOUBLE(op) (((PyFloatObject *)(op))->ob_fval) +static inline double PyFloat_AS_DOUBLE(PyObject *op) { + return _PyFloat_CAST(op)->ob_fval; +} +#define PyFloat_AS_DOUBLE(op) PyFloat_AS_DOUBLE(_PyObject_CAST(op)) PyAPI_FUNC(int) PyFloat_Pack2(double x, char *p, int le); diff --git a/src/external/windows/include/python/cpython/funcobject.h b/src/external/windows/include/python/cpython/funcobject.h index 517d72a1..b44e00af 100644 --- a/src/external/windows/include/python/cpython/funcobject.h +++ b/src/external/windows/include/python/cpython/funcobject.h @@ -41,6 +41,7 @@ typedef struct { PyObject *func_weakreflist; /* List of weak references */ PyObject *func_module; /* The __module__ attribute, can be anything */ PyObject *func_annotations; /* Annotations, a dict or NULL */ + PyObject *func_typeparams; /* Tuple of active type variables or NULL */ vectorcallfunc vectorcall; /* Version number for use by specializer. * Can set to non-zero when we want to specialize. @@ -48,7 +49,8 @@ typedef struct { * defaults * kwdefaults (only if the object changes, not the contents of the dict) * code - * annotations */ + * annotations + * vectorcall function pointer */ uint32_t func_version; /* Invariant: @@ -60,7 +62,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyFunction_Type; -#define PyFunction_Check(op) Py_IS_TYPE(op, &PyFunction_Type) +#define PyFunction_Check(op) Py_IS_TYPE((op), &PyFunction_Type) PyAPI_FUNC(PyObject *) PyFunction_New(PyObject *, PyObject *); PyAPI_FUNC(PyObject *) PyFunction_NewWithQualName(PyObject *, PyObject *, PyObject *); @@ -69,6 +71,7 @@ PyAPI_FUNC(PyObject *) PyFunction_GetGlobals(PyObject *); PyAPI_FUNC(PyObject *) PyFunction_GetModule(PyObject *); PyAPI_FUNC(PyObject *) PyFunction_GetDefaults(PyObject *); PyAPI_FUNC(int) PyFunction_SetDefaults(PyObject *, PyObject *); +PyAPI_FUNC(void) PyFunction_SetVectorcall(PyFunctionObject *, vectorcallfunc); PyAPI_FUNC(PyObject *) PyFunction_GetKwDefaults(PyObject *); PyAPI_FUNC(int) PyFunction_SetKwDefaults(PyObject *, PyObject *); PyAPI_FUNC(PyObject *) PyFunction_GetClosure(PyObject *); @@ -82,22 +85,45 @@ PyAPI_FUNC(PyObject *) _PyFunction_Vectorcall( size_t nargsf, PyObject *kwnames); -/* Macros for direct access to these values. Type checks are *not* - done, so use with care. */ -#define PyFunction_GET_CODE(func) \ - (((PyFunctionObject *)func) -> func_code) -#define PyFunction_GET_GLOBALS(func) \ - (((PyFunctionObject *)func) -> func_globals) -#define PyFunction_GET_MODULE(func) \ - (((PyFunctionObject *)func) -> func_module) -#define PyFunction_GET_DEFAULTS(func) \ - (((PyFunctionObject *)func) -> func_defaults) -#define PyFunction_GET_KW_DEFAULTS(func) \ - (((PyFunctionObject *)func) -> func_kwdefaults) -#define PyFunction_GET_CLOSURE(func) \ - (((PyFunctionObject *)func) -> func_closure) -#define PyFunction_GET_ANNOTATIONS(func) \ - (((PyFunctionObject *)func) -> func_annotations) +#define _PyFunction_CAST(func) \ + (assert(PyFunction_Check(func)), _Py_CAST(PyFunctionObject*, func)) + +/* Static inline functions for direct access to these values. + Type checks are *not* done, so use with care. */ +static inline PyObject* PyFunction_GET_CODE(PyObject *func) { + return _PyFunction_CAST(func)->func_code; +} +#define PyFunction_GET_CODE(func) PyFunction_GET_CODE(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_GLOBALS(PyObject *func) { + return _PyFunction_CAST(func)->func_globals; +} +#define PyFunction_GET_GLOBALS(func) PyFunction_GET_GLOBALS(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_MODULE(PyObject *func) { + return _PyFunction_CAST(func)->func_module; +} +#define PyFunction_GET_MODULE(func) PyFunction_GET_MODULE(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_DEFAULTS(PyObject *func) { + return _PyFunction_CAST(func)->func_defaults; +} +#define PyFunction_GET_DEFAULTS(func) PyFunction_GET_DEFAULTS(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_KW_DEFAULTS(PyObject *func) { + return _PyFunction_CAST(func)->func_kwdefaults; +} +#define PyFunction_GET_KW_DEFAULTS(func) PyFunction_GET_KW_DEFAULTS(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_CLOSURE(PyObject *func) { + return _PyFunction_CAST(func)->func_closure; +} +#define PyFunction_GET_CLOSURE(func) PyFunction_GET_CLOSURE(_PyObject_CAST(func)) + +static inline PyObject* PyFunction_GET_ANNOTATIONS(PyObject *func) { + return _PyFunction_CAST(func)->func_annotations; +} +#define PyFunction_GET_ANNOTATIONS(func) PyFunction_GET_ANNOTATIONS(_PyObject_CAST(func)) /* The classmethod and staticmethod types lives here, too */ PyAPI_DATA(PyTypeObject) PyClassMethod_Type; @@ -106,6 +132,55 @@ PyAPI_DATA(PyTypeObject) PyStaticMethod_Type; PyAPI_FUNC(PyObject *) PyClassMethod_New(PyObject *); PyAPI_FUNC(PyObject *) PyStaticMethod_New(PyObject *); +#define PY_FOREACH_FUNC_EVENT(V) \ + V(CREATE) \ + V(DESTROY) \ + V(MODIFY_CODE) \ + V(MODIFY_DEFAULTS) \ + V(MODIFY_KWDEFAULTS) + +typedef enum { + #define PY_DEF_EVENT(EVENT) PyFunction_EVENT_##EVENT, + PY_FOREACH_FUNC_EVENT(PY_DEF_EVENT) + #undef PY_DEF_EVENT +} PyFunction_WatchEvent; + +/* + * A callback that is invoked for different events in a function's lifecycle. + * + * The callback is invoked with a borrowed reference to func, after it is + * created and before it is modified or destroyed. The callback should not + * modify func. + * + * When a function's code object, defaults, or kwdefaults are modified the + * callback will be invoked with the respective event and new_value will + * contain a borrowed reference to the new value that is about to be stored in + * the function. Otherwise the third argument is NULL. + * + * If the callback returns with an exception set, it must return -1. Otherwise + * it should return 0. + */ +typedef int (*PyFunction_WatchCallback)( + PyFunction_WatchEvent event, + PyFunctionObject *func, + PyObject *new_value); + +/* + * Register a per-interpreter callback that will be invoked for function lifecycle + * events. + * + * Returns a handle that may be passed to PyFunction_ClearWatcher on success, + * or -1 and sets an error if no more handles are available. + */ +PyAPI_FUNC(int) PyFunction_AddWatcher(PyFunction_WatchCallback callback); + +/* + * Clear the watcher associated with the watcher_id handle. + * + * Returns 0 on success or -1 if no watcher exists for the supplied id. + */ +PyAPI_FUNC(int) PyFunction_ClearWatcher(int watcher_id); + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/cpython/genobject.h b/src/external/windows/include/python/cpython/genobject.h index 8c52b90f..839c669d 100644 --- a/src/external/windows/include/python/cpython/genobject.h +++ b/src/external/windows/include/python/cpython/genobject.h @@ -13,8 +13,6 @@ extern "C" { and coroutine objects. */ #define _PyGenObject_HEAD(prefix) \ PyObject_HEAD \ - /* The code object backing the generator */ \ - PyCodeObject *prefix##_code; \ /* List of weak reference. */ \ PyObject *prefix##_weakreflist; \ /* Name of the generator. */ \ @@ -28,7 +26,7 @@ extern "C" { char prefix##_running_async; \ /* The frame */ \ int8_t prefix##_frame_state; \ - PyObject *prefix##_iframe[1]; + PyObject *prefix##_iframe[1]; \ typedef struct { /* The gi_ prefix is intended to remind of generator-iterator. */ @@ -37,8 +35,8 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyGen_Type; -#define PyGen_Check(op) PyObject_TypeCheck(op, &PyGen_Type) -#define PyGen_CheckExact(op) Py_IS_TYPE(op, &PyGen_Type) +#define PyGen_Check(op) PyObject_TypeCheck((op), &PyGen_Type) +#define PyGen_CheckExact(op) Py_IS_TYPE((op), &PyGen_Type) PyAPI_FUNC(PyObject *) PyGen_New(PyFrameObject *); PyAPI_FUNC(PyObject *) PyGen_NewWithQualName(PyFrameObject *, @@ -46,6 +44,7 @@ PyAPI_FUNC(PyObject *) PyGen_NewWithQualName(PyFrameObject *, PyAPI_FUNC(int) _PyGen_SetStopIterationValue(PyObject *); PyAPI_FUNC(int) _PyGen_FetchStopIterationValue(PyObject **); PyAPI_FUNC(void) _PyGen_Finalize(PyObject *self); +PyAPI_FUNC(PyCodeObject *) PyGen_GetCode(PyGenObject *gen); /* --- PyCoroObject ------------------------------------------------------- */ @@ -57,7 +56,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyCoro_Type; PyAPI_DATA(PyTypeObject) _PyCoroWrapper_Type; -#define PyCoro_CheckExact(op) Py_IS_TYPE(op, &PyCoro_Type) +#define PyCoro_CheckExact(op) Py_IS_TYPE((op), &PyCoro_Type) PyAPI_FUNC(PyObject *) PyCoro_New(PyFrameObject *, PyObject *name, PyObject *qualname); @@ -76,7 +75,9 @@ PyAPI_DATA(PyTypeObject) _PyAsyncGenAThrow_Type; PyAPI_FUNC(PyObject *) PyAsyncGen_New(PyFrameObject *, PyObject *name, PyObject *qualname); -#define PyAsyncGen_CheckExact(op) Py_IS_TYPE(op, &PyAsyncGen_Type) +#define PyAsyncGen_CheckExact(op) Py_IS_TYPE((op), &PyAsyncGen_Type) + +#define PyAsyncGenASend_CheckExact(op) Py_IS_TYPE((op), &_PyAsyncGenASend_Type) #undef _PyGenObject_HEAD diff --git a/src/external/windows/include/python/cpython/import.h b/src/external/windows/include/python/cpython/import.h index 31e1f17b..8104a88a 100755 --- a/src/external/windows/include/python/cpython/import.h +++ b/src/external/windows/include/python/cpython/import.h @@ -10,8 +10,8 @@ PyAPI_FUNC(PyObject *) _PyImport_GetModuleId(_Py_Identifier *name); PyAPI_FUNC(int) _PyImport_SetModule(PyObject *name, PyObject *module); PyAPI_FUNC(int) _PyImport_SetModuleString(const char *name, PyObject* module); -PyAPI_FUNC(void) _PyImport_AcquireLock(void); -PyAPI_FUNC(int) _PyImport_ReleaseLock(void); +PyAPI_FUNC(void) _PyImport_AcquireLock(PyInterpreterState *interp); +PyAPI_FUNC(int) _PyImport_ReleaseLock(PyInterpreterState *interp); PyAPI_FUNC(int) _PyImport_FixupBuiltin( PyObject *mod, @@ -25,6 +25,7 @@ struct _inittab { const char *name; /* ASCII encoded string */ PyObject* (*initfunc)(void); }; +// This is not used after Py_Initialize() is called. PyAPI_DATA(struct _inittab *) PyImport_Inittab; PyAPI_FUNC(int) PyImport_ExtendInittab(struct _inittab *newtab); diff --git a/src/external/windows/include/python/cpython/initconfig.h b/src/external/windows/include/python/cpython/initconfig.h index bec872bf..bff94b01 100755 --- a/src/external/windows/include/python/cpython/initconfig.h +++ b/src/external/windows/include/python/cpython/initconfig.h @@ -25,6 +25,7 @@ PyAPI_FUNC(PyStatus) PyStatus_Exit(int exitcode); PyAPI_FUNC(int) PyStatus_IsError(PyStatus err); PyAPI_FUNC(int) PyStatus_IsExit(PyStatus err); PyAPI_FUNC(int) PyStatus_Exception(PyStatus err); +PyAPI_FUNC(PyObject *) _PyErr_SetFromPyStatus(PyStatus status); /* --- PyWideStringList ------------------------------------------------ */ @@ -142,6 +143,7 @@ typedef struct PyConfig { unsigned long hash_seed; int faulthandler; int tracemalloc; + int perf_profiling; int import_time; int code_debug_ranges; int show_ref_count; @@ -177,6 +179,7 @@ typedef struct PyConfig { wchar_t *check_hash_pycs_mode; int use_frozen_modules; int safe_path; + int int_max_str_digits; /* --- Path configuration inputs ------------ */ int pathconfig_warnings; @@ -211,10 +214,6 @@ typedef struct PyConfig { // If equal to 0, stop Python initialization before the "main" phase. int _init_main; - // If non-zero, disallow threads, subprocesses, and fork. - // Default: 0. - int _isolated_interpreter; - // If non-zero, we believe we're running from a source tree. int _is_python_build; } PyConfig; diff --git a/src/external/windows/include/python/cpython/interpreteridobject.h b/src/external/windows/include/python/cpython/interpreteridobject.h new file mode 100644 index 00000000..8506ce01 --- /dev/null +++ b/src/external/windows/include/python/cpython/interpreteridobject.h @@ -0,0 +1,11 @@ +#ifndef Py_CPYTHON_INTERPRETERIDOBJECT_H +# error "this header file must not be included directly" +#endif + +/* Interpreter ID Object */ + +PyAPI_DATA(PyTypeObject) _PyInterpreterID_Type; + +PyAPI_FUNC(PyObject *) _PyInterpreterID_New(int64_t); +PyAPI_FUNC(PyObject *) _PyInterpreterState_GetIDObject(PyInterpreterState *); +PyAPI_FUNC(PyInterpreterState *) _PyInterpreterID_LookUp(PyObject *); diff --git a/src/external/windows/include/python/cpython/listobject.h b/src/external/windows/include/python/cpython/listobject.h index 14681c0e..1a3e862b 100755 --- a/src/external/windows/include/python/cpython/listobject.h +++ b/src/external/windows/include/python/cpython/listobject.h @@ -34,18 +34,14 @@ static inline Py_ssize_t PyList_GET_SIZE(PyObject *op) { PyListObject *list = _PyList_CAST(op); return Py_SIZE(list); } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyList_GET_SIZE(op) PyList_GET_SIZE(_PyObject_CAST(op)) -#endif +#define PyList_GET_SIZE(op) PyList_GET_SIZE(_PyObject_CAST(op)) -#define PyList_GET_ITEM(op, index) (_PyList_CAST(op)->ob_item[index]) +#define PyList_GET_ITEM(op, index) (_PyList_CAST(op)->ob_item[(index)]) static inline void PyList_SET_ITEM(PyObject *op, Py_ssize_t index, PyObject *value) { PyListObject *list = _PyList_CAST(op); list->ob_item[index] = value; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 #define PyList_SET_ITEM(op, index, value) \ - PyList_SET_ITEM(_PyObject_CAST(op), index, _PyObject_CAST(value)) -#endif + PyList_SET_ITEM(_PyObject_CAST(op), (index), _PyObject_CAST(value)) diff --git a/src/external/windows/include/python/cpython/longintrepr.h b/src/external/windows/include/python/cpython/longintrepr.h index e89fdfa3..271b612f 100644 --- a/src/external/windows/include/python/cpython/longintrepr.h +++ b/src/external/windows/include/python/cpython/longintrepr.h @@ -79,9 +79,14 @@ typedef long stwodigits; /* signed variant of twodigits */ aware that ints abuse ob_size's sign bit. */ -struct _longobject { - PyObject_VAR_HEAD +typedef struct _PyLongValue { + uintptr_t lv_tag; /* Number of digits, sign and flags */ digit ob_digit[1]; +} _PyLongValue; + +struct _longobject { + PyObject_HEAD + _PyLongValue long_value; }; PyAPI_FUNC(PyLongObject *) _PyLong_New(Py_ssize_t); @@ -89,6 +94,38 @@ PyAPI_FUNC(PyLongObject *) _PyLong_New(Py_ssize_t); /* Return a copy of src. */ PyAPI_FUNC(PyObject *) _PyLong_Copy(PyLongObject *src); +PyAPI_FUNC(PyLongObject *) +_PyLong_FromDigits(int negative, Py_ssize_t digit_count, digit *digits); + + +/* Inline some internals for speed. These should be in pycore_long.h + * if user code didn't need them inlined. */ + +#define _PyLong_SIGN_MASK 3 +#define _PyLong_NON_SIZE_BITS 3 + + +static inline int +_PyLong_IsCompact(const PyLongObject* op) { + assert(PyType_HasFeature((op)->ob_base.ob_type, Py_TPFLAGS_LONG_SUBCLASS)); + return op->long_value.lv_tag < (2 << _PyLong_NON_SIZE_BITS); +} + +#define PyUnstable_Long_IsCompact _PyLong_IsCompact + +static inline Py_ssize_t +_PyLong_CompactValue(const PyLongObject *op) +{ + Py_ssize_t sign; + assert(PyType_HasFeature((op)->ob_base.ob_type, Py_TPFLAGS_LONG_SUBCLASS)); + assert(PyUnstable_Long_IsCompact(op)); + sign = 1 - (op->long_value.lv_tag & _PyLong_SIGN_MASK); + return sign * (Py_ssize_t)op->long_value.ob_digit[0]; +} + +#define PyUnstable_Long_CompactValue _PyLong_CompactValue + + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/cpython/longobject.h b/src/external/windows/include/python/cpython/longobject.h index d5239a29..a39b5aae 100644 --- a/src/external/windows/include/python/cpython/longobject.h +++ b/src/external/windows/include/python/cpython/longobject.h @@ -93,3 +93,8 @@ PyAPI_FUNC(PyObject *) _PyLong_GCD(PyObject *, PyObject *); PyAPI_FUNC(PyObject *) _PyLong_Rshift(PyObject *, size_t); PyAPI_FUNC(PyObject *) _PyLong_Lshift(PyObject *, size_t); + + +PyAPI_FUNC(int) PyUnstable_Long_IsCompact(const PyLongObject* op); +PyAPI_FUNC(Py_ssize_t) PyUnstable_Long_CompactValue(const PyLongObject* op); + diff --git a/src/external/windows/include/python/cpython/memoryobject.h b/src/external/windows/include/python/cpython/memoryobject.h new file mode 100644 index 00000000..810916e2 --- /dev/null +++ b/src/external/windows/include/python/cpython/memoryobject.h @@ -0,0 +1,52 @@ +#ifndef Py_CPYTHON_MEMORYOBJECT_H +# error "this header file must not be included directly" +#endif + +PyAPI_DATA(PyTypeObject) _PyManagedBuffer_Type; + +/* The structs are declared here so that macros can work, but they shouldn't + be considered public. Don't access their fields directly, use the macros + and functions instead! */ +#define _Py_MANAGED_BUFFER_RELEASED 0x001 /* access to exporter blocked */ +#define _Py_MANAGED_BUFFER_FREE_FORMAT 0x002 /* free format */ + +typedef struct { + PyObject_HEAD + int flags; /* state flags */ + Py_ssize_t exports; /* number of direct memoryview exports */ + Py_buffer master; /* snapshot buffer obtained from the original exporter */ +} _PyManagedBufferObject; + + +/* memoryview state flags */ +#define _Py_MEMORYVIEW_RELEASED 0x001 /* access to master buffer blocked */ +#define _Py_MEMORYVIEW_C 0x002 /* C-contiguous layout */ +#define _Py_MEMORYVIEW_FORTRAN 0x004 /* Fortran contiguous layout */ +#define _Py_MEMORYVIEW_SCALAR 0x008 /* scalar: ndim = 0 */ +#define _Py_MEMORYVIEW_PIL 0x010 /* PIL-style layout */ +#define _Py_MEMORYVIEW_RESTRICTED 0x020 /* Disallow new references to the memoryview's buffer */ + +typedef struct { + PyObject_VAR_HEAD + _PyManagedBufferObject *mbuf; /* managed buffer */ + Py_hash_t hash; /* hash value for read-only views */ + int flags; /* state flags */ + Py_ssize_t exports; /* number of buffer re-exports */ + Py_buffer view; /* private copy of the exporter's view */ + PyObject *weakreflist; + Py_ssize_t ob_array[1]; /* shape, strides, suboffsets */ +} PyMemoryViewObject; + +#define _PyMemoryView_CAST(op) _Py_CAST(PyMemoryViewObject*, op) + +/* Get a pointer to the memoryview's private copy of the exporter's buffer. */ +static inline Py_buffer* PyMemoryView_GET_BUFFER(PyObject *op) { + return (&_PyMemoryView_CAST(op)->view); +} +#define PyMemoryView_GET_BUFFER(op) PyMemoryView_GET_BUFFER(_PyObject_CAST(op)) + +/* Get a pointer to the exporting object (this may be NULL!). */ +static inline PyObject* PyMemoryView_GET_BASE(PyObject *op) { + return _PyMemoryView_CAST(op)->view.obj; +} +#define PyMemoryView_GET_BASE(op) PyMemoryView_GET_BASE(_PyObject_CAST(op)) diff --git a/src/external/windows/include/python/cpython/methodobject.h b/src/external/windows/include/python/cpython/methodobject.h index da902542..3fd97f06 100755 --- a/src/external/windows/include/python/cpython/methodobject.h +++ b/src/external/windows/include/python/cpython/methodobject.h @@ -31,8 +31,8 @@ typedef struct { PyAPI_DATA(PyTypeObject) PyCMethod_Type; -#define PyCMethod_CheckExact(op) Py_IS_TYPE(op, &PyCMethod_Type) -#define PyCMethod_Check(op) PyObject_TypeCheck(op, &PyCMethod_Type) +#define PyCMethod_CheckExact(op) Py_IS_TYPE((op), &PyCMethod_Type) +#define PyCMethod_Check(op) PyObject_TypeCheck((op), &PyCMethod_Type) /* Static inline functions for direct access to these values. @@ -40,9 +40,7 @@ PyAPI_DATA(PyTypeObject) PyCMethod_Type; static inline PyCFunction PyCFunction_GET_FUNCTION(PyObject *func) { return _PyCFunctionObject_CAST(func)->m_ml->ml_meth; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(_PyObject_CAST(func)) -#endif +#define PyCFunction_GET_FUNCTION(func) PyCFunction_GET_FUNCTION(_PyObject_CAST(func)) static inline PyObject* PyCFunction_GET_SELF(PyObject *func_obj) { PyCFunctionObject *func = _PyCFunctionObject_CAST(func_obj); @@ -51,16 +49,12 @@ static inline PyObject* PyCFunction_GET_SELF(PyObject *func_obj) { } return func->m_self; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyCFunction_GET_SELF(func) PyCFunction_GET_SELF(_PyObject_CAST(func)) -#endif +#define PyCFunction_GET_SELF(func) PyCFunction_GET_SELF(_PyObject_CAST(func)) static inline int PyCFunction_GET_FLAGS(PyObject *func) { return _PyCFunctionObject_CAST(func)->m_ml->ml_flags; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyCFunction_GET_FLAGS(func) PyCFunction_GET_FLAGS(_PyObject_CAST(func)) -#endif +#define PyCFunction_GET_FLAGS(func) PyCFunction_GET_FLAGS(_PyObject_CAST(func)) static inline PyTypeObject* PyCFunction_GET_CLASS(PyObject *func_obj) { PyCFunctionObject *func = _PyCFunctionObject_CAST(func_obj); @@ -69,6 +63,4 @@ static inline PyTypeObject* PyCFunction_GET_CLASS(PyObject *func_obj) { } return _Py_NULL; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyCFunction_GET_CLASS(func) PyCFunction_GET_CLASS(_PyObject_CAST(func)) -#endif +#define PyCFunction_GET_CLASS(func) PyCFunction_GET_CLASS(_PyObject_CAST(func)) diff --git a/src/external/windows/include/python/cpython/modsupport.h b/src/external/windows/include/python/cpython/modsupport.h index 28ccc9a5..83121568 100644 --- a/src/external/windows/include/python/cpython/modsupport.h +++ b/src/external/windows/include/python/cpython/modsupport.h @@ -34,11 +34,13 @@ PyAPI_FUNC(int) _PyArg_NoPositional(const char *funcname, PyObject *args); #define _PyArg_NoPositional(funcname, args) \ ((args) == NULL || _PyArg_NoPositional((funcname), (args))) +#define _Py_ANY_VARARGS(n) ((n) == PY_SSIZE_T_MAX) + PyAPI_FUNC(void) _PyArg_BadArgument(const char *, const char *, const char *, PyObject *); PyAPI_FUNC(int) _PyArg_CheckPositional(const char *, Py_ssize_t, Py_ssize_t, Py_ssize_t); #define _PyArg_CheckPositional(funcname, nargs, min, max) \ - ((!ANY_VARARGS(max) && (min) <= (nargs) && (nargs) <= (max)) \ + ((!_Py_ANY_VARARGS(max) && (min) <= (nargs) && (nargs) <= (max)) \ || _PyArg_CheckPositional((funcname), (nargs), (min), (max))) PyAPI_FUNC(PyObject **) _Py_VaBuildStack( @@ -49,6 +51,7 @@ PyAPI_FUNC(PyObject **) _Py_VaBuildStack( Py_ssize_t *p_nargs); typedef struct _PyArg_Parser { + int initialized; const char *format; const char * const *keywords; const char *fname; @@ -98,10 +101,9 @@ PyAPI_FUNC(PyObject * const *) _PyArg_UnpackKeywordsWithVararg( #define _PyArg_UnpackKeywords(args, nargs, kwargs, kwnames, parser, minpos, maxpos, minkw, buf) \ (((minkw) == 0 && (kwargs) == NULL && (kwnames) == NULL && \ - (minpos) <= (nargs) && (nargs) <= (maxpos) && args != NULL) ? (args) : \ + (minpos) <= (nargs) && (nargs) <= (maxpos) && (args) != NULL) ? (args) : \ _PyArg_UnpackKeywords((args), (nargs), (kwargs), (kwnames), (parser), \ (minpos), (maxpos), (minkw), (buf))) PyAPI_FUNC(PyObject *) _PyModule_CreateInitialized(PyModuleDef*, int apiver); - -PyAPI_DATA(const char *) _Py_PackageContext; +PyAPI_FUNC(int) _PyModule_Add(PyObject *, const char *, PyObject *); diff --git a/src/external/windows/include/python/cpython/object.h b/src/external/windows/include/python/cpython/object.h index eb48ae62..10f5ce5c 100755 --- a/src/external/windows/include/python/cpython/object.h +++ b/src/external/windows/include/python/cpython/object.h @@ -3,6 +3,7 @@ #endif PyAPI_FUNC(void) _Py_NewReference(PyObject *op); +PyAPI_FUNC(void) _Py_NewReferenceNoTotal(PyObject *op); #ifdef Py_TRACE_REFS /* Py_TRACE_REFS is such major surgery that we call external routines. */ @@ -10,7 +11,11 @@ PyAPI_FUNC(void) _Py_ForgetReference(PyObject *); #endif #ifdef Py_REF_DEBUG -PyAPI_FUNC(Py_ssize_t) _Py_GetRefTotal(void); +/* These are useful as debugging aids when chasing down refleaks. */ +PyAPI_FUNC(Py_ssize_t) _Py_GetGlobalRefTotal(void); +# define _Py_GetRefTotal() _Py_GetGlobalRefTotal() +PyAPI_FUNC(Py_ssize_t) _Py_GetLegacyRefTotal(void); +PyAPI_FUNC(Py_ssize_t) _PyInterpreterState_GetRefTotal(PyInterpreterState *); #endif @@ -41,24 +46,15 @@ typedef struct _Py_Identifier { Py_ssize_t index; } _Py_Identifier; -#if defined(NEEDS_PY_IDENTIFIER) || !defined(Py_BUILD_CORE) +#ifndef Py_BUILD_CORE // For now we are keeping _Py_IDENTIFIER for continued use // in non-builtin extensions (and naughty PyPI modules). -// ericf tweak: (visual studio 2019 chokes on this) -#define _Py_static_string_init(value) {value, -1 } -// #define _Py_static_string_init(value) { .string = value, .index = -1 } +#define _Py_static_string_init(value) { .string = (value), .index = -1 } #define _Py_static_string(varname, value) static _Py_Identifier varname = _Py_static_string_init(value) #define _Py_IDENTIFIER(varname) _Py_static_string(PyId_##varname, #varname) -#endif /* NEEDS_PY_IDENTIFIER */ - -typedef int (*getbufferproc)(PyObject *, Py_buffer *, int); -typedef void (*releasebufferproc)(PyObject *, Py_buffer *); - -typedef PyObject *(*vectorcallfunc)(PyObject *callable, PyObject *const *args, - size_t nargsf, PyObject *kwnames); - +#endif /* !Py_BUILD_CORE */ typedef struct { /* Number implementations must check *both* @@ -219,9 +215,9 @@ struct _typeobject { inquiry tp_is_gc; /* For PyObject_IS_GC */ PyObject *tp_bases; PyObject *tp_mro; /* method resolution order */ - PyObject *tp_cache; - PyObject *tp_subclasses; - PyObject *tp_weaklist; + PyObject *tp_cache; /* no longer used */ + void *tp_subclasses; /* for static builtin types this is an index */ + PyObject *tp_weaklist; /* not used for static builtin types */ destructor tp_del; /* Type attribute cache version tag. Added in version 2.6 */ @@ -229,13 +225,27 @@ struct _typeobject { destructor tp_finalize; vectorcallfunc tp_vectorcall; + + /* bitset of which type-watchers care about this type */ + unsigned char tp_watched; }; /* This struct is used by the specializer * It should should be treated as an opaque blob * by code other than the specializer and interpreter. */ struct _specialization_cache { + // In order to avoid bloating the bytecode with lots of inline caches, the + // members of this structure have a somewhat unique contract. They are set + // by the specialization machinery, and are invalidated by PyType_Modified. + // The rules for using them are as follows: + // - If getitem is non-NULL, then it is the same Python function that + // PyType_Lookup(cls, "__getitem__") would return. + // - If getitem is NULL, then getitem_version is meaningless. + // - If getitem->func_version == getitem_version, then getitem can be called + // with two positional arguments and no keyword arguments, and has neither + // *args nor **kwargs (as required by BINARY_SUBSCR_GETITEM): PyObject *getitem; + uint32_t getitem_version; }; /* The *real* layout of a type object when allocated on the heap */ @@ -273,6 +283,7 @@ PyAPI_FUNC(PyTypeObject *) _PyType_CalculateMetaclass(PyTypeObject *, PyObject * PyAPI_FUNC(PyObject *) _PyType_GetDocFromInternalDoc(const char *, const char *); PyAPI_FUNC(PyObject *) _PyType_GetTextSignatureFromInternalDoc(const char *, const char *); PyAPI_FUNC(PyObject *) PyType_GetModuleByDef(PyTypeObject *, PyModuleDef *); +PyAPI_FUNC(PyObject *) PyType_GetDict(PyTypeObject *); PyAPI_FUNC(int) PyObject_Print(PyObject *, FILE *, int); PyAPI_FUNC(void) _Py_BreakPoint(void); @@ -311,38 +322,69 @@ _PyObject_GenericSetAttrWithDict(PyObject *, PyObject *, PyAPI_FUNC(PyObject *) _PyObject_FunctionStr(PyObject *); -/* Safely decref `op` and set `op` to `op2`. +/* Safely decref `dst` and set `dst` to `src`. * * As in case of Py_CLEAR "the obvious" code can be deadly: * - * Py_DECREF(op); - * op = op2; + * Py_DECREF(dst); + * dst = src; * * The safe way is: * - * Py_SETREF(op, op2); + * Py_SETREF(dst, src); * - * That arranges to set `op` to `op2` _before_ decref'ing, so that any code - * triggered as a side-effect of `op` getting torn down no longer believes - * `op` points to a valid object. + * That arranges to set `dst` to `src` _before_ decref'ing, so that any code + * triggered as a side-effect of `dst` getting torn down no longer believes + * `dst` points to a valid object. * - * Py_XSETREF is a variant of Py_SETREF that uses Py_XDECREF instead of - * Py_DECREF. + * Temporary variables are used to only evalutate macro arguments once and so + * avoid the duplication of side effects. _Py_TYPEOF() or memcpy() is used to + * avoid a miscompilation caused by type punning. See Py_CLEAR() comment for + * implementation details about type punning. + * + * The memcpy() implementation does not emit a compiler warning if 'src' has + * not the same type than 'src': any pointer type is accepted for 'src'. */ - -#define Py_SETREF(op, op2) \ - do { \ - PyObject *_py_tmp = _PyObject_CAST(op); \ - (op) = (op2); \ - Py_DECREF(_py_tmp); \ +#ifdef _Py_TYPEOF +#define Py_SETREF(dst, src) \ + do { \ + _Py_TYPEOF(dst)* _tmp_dst_ptr = &(dst); \ + _Py_TYPEOF(dst) _tmp_old_dst = (*_tmp_dst_ptr); \ + *_tmp_dst_ptr = (src); \ + Py_DECREF(_tmp_old_dst); \ } while (0) - -#define Py_XSETREF(op, op2) \ - do { \ - PyObject *_py_tmp = _PyObject_CAST(op); \ - (op) = (op2); \ - Py_XDECREF(_py_tmp); \ +#else +#define Py_SETREF(dst, src) \ + do { \ + PyObject **_tmp_dst_ptr = _Py_CAST(PyObject**, &(dst)); \ + PyObject *_tmp_old_dst = (*_tmp_dst_ptr); \ + PyObject *_tmp_src = _PyObject_CAST(src); \ + memcpy(_tmp_dst_ptr, &_tmp_src, sizeof(PyObject*)); \ + Py_DECREF(_tmp_old_dst); \ } while (0) +#endif + +/* Py_XSETREF() is a variant of Py_SETREF() that uses Py_XDECREF() instead of + * Py_DECREF(). + */ +#ifdef _Py_TYPEOF +#define Py_XSETREF(dst, src) \ + do { \ + _Py_TYPEOF(dst)* _tmp_dst_ptr = &(dst); \ + _Py_TYPEOF(dst) _tmp_old_dst = (*_tmp_dst_ptr); \ + *_tmp_dst_ptr = (src); \ + Py_XDECREF(_tmp_old_dst); \ + } while (0) +#else +#define Py_XSETREF(dst, src) \ + do { \ + PyObject **_tmp_dst_ptr = _Py_CAST(PyObject**, &(dst)); \ + PyObject *_tmp_old_dst = (*_tmp_dst_ptr); \ + PyObject *_tmp_src = _PyObject_CAST(src); \ + memcpy(_tmp_dst_ptr, &_tmp_src, sizeof(PyObject*)); \ + Py_XDECREF(_tmp_old_dst); \ + } while (0) +#endif PyAPI_DATA(PyTypeObject) _PyNone_Type; @@ -387,9 +429,9 @@ _PyObject_DebugTypeStats(FILE *out); #endif #define _PyObject_ASSERT_WITH_MSG(obj, expr, msg) \ - _PyObject_ASSERT_FROM(obj, expr, msg, __FILE__, __LINE__, __func__) + _PyObject_ASSERT_FROM((obj), expr, (msg), __FILE__, __LINE__, __func__) #define _PyObject_ASSERT(obj, expr) \ - _PyObject_ASSERT_WITH_MSG(obj, expr, NULL) + _PyObject_ASSERT_WITH_MSG((obj), expr, NULL) #define _PyObject_ASSERT_FAILED_MSG(obj, msg) \ _PyObject_AssertFailed((obj), NULL, (msg), __FILE__, __LINE__, __func__) @@ -482,7 +524,7 @@ PyAPI_FUNC(int) _PyTrash_cond(PyObject *op, destructor dealloc); /* If "cond" is false, then _tstate remains NULL and the deallocator \ * is run normally without involving the trashcan */ \ if (cond) { \ - _tstate = PyThreadState_Get(); \ + _tstate = _PyThreadState_UncheckedGet(); \ if (_PyTrash_begin(_tstate, _PyObject_CAST(op))) { \ break; \ } \ @@ -495,8 +537,8 @@ PyAPI_FUNC(int) _PyTrash_cond(PyObject *op, destructor dealloc); } while (0); #define Py_TRASHCAN_BEGIN(op, dealloc) \ - Py_TRASHCAN_BEGIN_CONDITION(op, \ - _PyTrash_cond(_PyObject_CAST(op), (destructor)dealloc)) + Py_TRASHCAN_BEGIN_CONDITION((op), \ + _PyTrash_cond(_PyObject_CAST(op), (destructor)(dealloc))) /* The following two macros, Py_TRASHCAN_SAFE_BEGIN and * Py_TRASHCAN_SAFE_END, are deprecated since version 3.11 and @@ -507,7 +549,27 @@ Py_DEPRECATED(3.11) typedef int UsingDeprecatedTrashcanMacro; #define Py_TRASHCAN_SAFE_BEGIN(op) \ do { \ UsingDeprecatedTrashcanMacro cond=1; \ - Py_TRASHCAN_BEGIN_CONDITION(op, cond); + Py_TRASHCAN_BEGIN_CONDITION((op), cond); #define Py_TRASHCAN_SAFE_END(op) \ Py_TRASHCAN_END; \ } while(0); + +PyAPI_FUNC(void *) PyObject_GetItemData(PyObject *obj); + +PyAPI_FUNC(int) _PyObject_VisitManagedDict(PyObject *obj, visitproc visit, void *arg); +PyAPI_FUNC(void) _PyObject_ClearManagedDict(PyObject *obj); + +#define TYPE_MAX_WATCHERS 8 + +typedef int(*PyType_WatchCallback)(PyTypeObject *); +PyAPI_FUNC(int) PyType_AddWatcher(PyType_WatchCallback callback); +PyAPI_FUNC(int) PyType_ClearWatcher(int watcher_id); +PyAPI_FUNC(int) PyType_Watch(int watcher_id, PyObject *type); +PyAPI_FUNC(int) PyType_Unwatch(int watcher_id, PyObject *type); + +/* Attempt to assign a version tag to the given type. + * + * Returns 1 if the type already had a valid version tag or a new one was + * assigned, or 0 if a new tag could not be assigned. + */ +PyAPI_FUNC(int) PyUnstable_Type_AssignVersionTag(PyTypeObject *type); diff --git a/src/external/windows/include/python/cpython/objimpl.h b/src/external/windows/include/python/cpython/objimpl.h index a2693329..33bfac3e 100755 --- a/src/external/windows/include/python/cpython/objimpl.h +++ b/src/external/windows/include/python/cpython/objimpl.h @@ -2,7 +2,9 @@ # error "this header file must not be included directly" #endif -#define _PyObject_SIZE(typeobj) ( (typeobj)->tp_basicsize ) +static inline size_t _PyObject_SIZE(PyTypeObject *type) { + return _Py_STATIC_CAST(size_t, type->tp_basicsize); +} /* _PyObject_VAR_SIZE returns the number of bytes (as size_t) allocated for a vrbl-size object with nitems items, exclusive of gc overhead (if any). The @@ -18,10 +20,11 @@ # error "_PyObject_VAR_SIZE requires SIZEOF_VOID_P be a power of 2" #endif -#define _PyObject_VAR_SIZE(typeobj, nitems) \ - _Py_SIZE_ROUND_UP((typeobj)->tp_basicsize + \ - (nitems)*(typeobj)->tp_itemsize, \ - SIZEOF_VOID_P) +static inline size_t _PyObject_VAR_SIZE(PyTypeObject *type, Py_ssize_t nitems) { + size_t size = _Py_STATIC_CAST(size_t, type->tp_basicsize); + size += _Py_STATIC_CAST(size_t, nitems) * _Py_STATIC_CAST(size_t, type->tp_itemsize); + return _Py_SIZE_ROUND_UP(size, SIZEOF_VOID_P); +} /* This example code implements an object constructor with a custom @@ -87,3 +90,6 @@ PyAPI_FUNC(int) PyObject_IS_GC(PyObject *obj); PyAPI_FUNC(int) PyType_SUPPORTS_WEAKREFS(PyTypeObject *type); PyAPI_FUNC(PyObject **) PyObject_GET_WEAKREFS_LISTPTR(PyObject *op); + +PyAPI_FUNC(PyObject *) PyUnstable_Object_GC_NewWithExtraData(PyTypeObject *, + size_t); diff --git a/src/external/windows/include/python/cpython/odictobject.h b/src/external/windows/include/python/cpython/odictobject.h index 881e7ebc..d9062183 100755 --- a/src/external/windows/include/python/cpython/odictobject.h +++ b/src/external/windows/include/python/cpython/odictobject.h @@ -18,8 +18,8 @@ PyAPI_DATA(PyTypeObject) PyODictKeys_Type; PyAPI_DATA(PyTypeObject) PyODictItems_Type; PyAPI_DATA(PyTypeObject) PyODictValues_Type; -#define PyODict_Check(op) PyObject_TypeCheck(op, &PyODict_Type) -#define PyODict_CheckExact(op) Py_IS_TYPE(op, &PyODict_Type) +#define PyODict_Check(op) PyObject_TypeCheck((op), &PyODict_Type) +#define PyODict_CheckExact(op) Py_IS_TYPE((op), &PyODict_Type) #define PyODict_SIZE(op) PyDict_GET_SIZE((op)) PyAPI_FUNC(PyObject *) PyODict_New(void); @@ -27,13 +27,13 @@ PyAPI_FUNC(int) PyODict_SetItem(PyObject *od, PyObject *key, PyObject *item); PyAPI_FUNC(int) PyODict_DelItem(PyObject *od, PyObject *key); /* wrappers around PyDict* functions */ -#define PyODict_GetItem(od, key) PyDict_GetItem(_PyObject_CAST(od), key) +#define PyODict_GetItem(od, key) PyDict_GetItem(_PyObject_CAST(od), (key)) #define PyODict_GetItemWithError(od, key) \ - PyDict_GetItemWithError(_PyObject_CAST(od), key) -#define PyODict_Contains(od, key) PyDict_Contains(_PyObject_CAST(od), key) + PyDict_GetItemWithError(_PyObject_CAST(od), (key)) +#define PyODict_Contains(od, key) PyDict_Contains(_PyObject_CAST(od), (key)) #define PyODict_Size(od) PyDict_Size(_PyObject_CAST(od)) #define PyODict_GetItemString(od, key) \ - PyDict_GetItemString(_PyObject_CAST(od), key) + PyDict_GetItemString(_PyObject_CAST(od), (key)) #endif diff --git a/src/external/windows/include/python/cpython/picklebufobject.h b/src/external/windows/include/python/cpython/picklebufobject.h index 5d0b0cfa..95898010 100755 --- a/src/external/windows/include/python/cpython/picklebufobject.h +++ b/src/external/windows/include/python/cpython/picklebufobject.h @@ -12,7 +12,7 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyPickleBuffer_Type; -#define PyPickleBuffer_Check(op) Py_IS_TYPE(op, &PyPickleBuffer_Type) +#define PyPickleBuffer_Check(op) Py_IS_TYPE((op), &PyPickleBuffer_Type) /* Create a PickleBuffer redirecting to the given buffer-enabled object */ PyAPI_FUNC(PyObject *) PyPickleBuffer_FromObject(PyObject *); diff --git a/src/external/windows/include/python/cpython/pydebug.h b/src/external/windows/include/python/cpython/pydebug.h index 5b26a6e2..a170d9ee 100755 --- a/src/external/windows/include/python/cpython/pydebug.h +++ b/src/external/windows/include/python/cpython/pydebug.h @@ -5,31 +5,31 @@ extern "C" { #endif -PyAPI_DATA(int) Py_DebugFlag; -PyAPI_DATA(int) Py_VerboseFlag; -PyAPI_DATA(int) Py_QuietFlag; -PyAPI_DATA(int) Py_InteractiveFlag; -PyAPI_DATA(int) Py_InspectFlag; -PyAPI_DATA(int) Py_OptimizeFlag; -PyAPI_DATA(int) Py_NoSiteFlag; -PyAPI_DATA(int) Py_BytesWarningFlag; -PyAPI_DATA(int) Py_FrozenFlag; -PyAPI_DATA(int) Py_IgnoreEnvironmentFlag; -PyAPI_DATA(int) Py_DontWriteBytecodeFlag; -PyAPI_DATA(int) Py_NoUserSiteDirectory; -PyAPI_DATA(int) Py_UnbufferedStdioFlag; -PyAPI_DATA(int) Py_HashRandomizationFlag; -PyAPI_DATA(int) Py_IsolatedFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_DebugFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_VerboseFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_QuietFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_InteractiveFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_InspectFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_OptimizeFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_NoSiteFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_BytesWarningFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_FrozenFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_IgnoreEnvironmentFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_DontWriteBytecodeFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_NoUserSiteDirectory; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_UnbufferedStdioFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_HashRandomizationFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_IsolatedFlag; #ifdef MS_WINDOWS -PyAPI_DATA(int) Py_LegacyWindowsFSEncodingFlag; -PyAPI_DATA(int) Py_LegacyWindowsStdioFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_LegacyWindowsFSEncodingFlag; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_LegacyWindowsStdioFlag; #endif /* this is a wrapper around getenv() that pays attention to Py_IgnoreEnvironmentFlag. It should be used for getting variables like PYTHONPATH and PYTHONHOME from the environment */ -PyAPI_DATA(char*) Py_GETENV(const char *name); +PyAPI_FUNC(char*) Py_GETENV(const char *name); #ifdef __cplusplus } diff --git a/src/external/windows/include/python/cpython/pyerrors.h b/src/external/windows/include/python/cpython/pyerrors.h index b9c6b328..a0724149 100755 --- a/src/external/windows/include/python/cpython/pyerrors.h +++ b/src/external/windows/include/python/cpython/pyerrors.h @@ -37,6 +37,7 @@ typedef struct { PyObject *msg; PyObject *name; PyObject *path; + PyObject *name_from; } PyImportErrorObject; typedef struct { @@ -97,7 +98,8 @@ PyAPI_FUNC(void) _PyErr_GetExcInfo(PyThreadState *, PyObject **, PyObject **, Py /* Context manipulation (PEP 3134) */ -PyAPI_FUNC(void) _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *); +Py_DEPRECATED(3.12) PyAPI_FUNC(void) _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *); +PyAPI_FUNC(void) _PyErr_ChainExceptions1(PyObject *); /* Like PyErr_Format(), but saves current exception as __context__ and __cause__. @@ -110,23 +112,13 @@ PyAPI_FUNC(PyObject *) _PyErr_FormatFromCause( /* In exceptions.c */ -/* Helper that attempts to replace the current exception with one of the - * same type but with a prefix added to the exception text. The resulting - * exception description looks like: - * - * prefix (exc_type: original_exc_str) - * - * Only some exceptions can be safely replaced. If the function determines - * it isn't safe to perform the replacement, it will leave the original - * unmodified exception in place. - * - * Returns a borrowed reference to the new exception (if any), NULL if the - * existing exception was left in place. - */ -PyAPI_FUNC(PyObject *) _PyErr_TrySetFromCause( - const char *prefix_format, /* ASCII-encoded string */ - ... - ); +PyAPI_FUNC(int) _PyException_AddNote( + PyObject *exc, + PyObject *note); + +PyAPI_FUNC(PyObject*) PyUnstable_Exc_PrepReraiseStar( + PyObject *orig, + PyObject *excs); /* In signalmodule.c */ @@ -176,4 +168,11 @@ PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalErrorFormat( const char *format, ...); -#define Py_FatalError(message) _Py_FatalErrorFunc(__func__, message) +extern PyObject *_PyErr_SetImportErrorWithNameFrom( + PyObject *, + PyObject *, + PyObject *, + PyObject *); + + +#define Py_FatalError(message) _Py_FatalErrorFunc(__func__, (message)) diff --git a/src/external/windows/include/python/cpython/pyframe.h b/src/external/windows/include/python/cpython/pyframe.h index 54100e0b..c124b059 100644 --- a/src/external/windows/include/python/cpython/pyframe.h +++ b/src/external/windows/include/python/cpython/pyframe.h @@ -14,4 +14,22 @@ PyAPI_FUNC(PyObject *) PyFrame_GetBuiltins(PyFrameObject *frame); PyAPI_FUNC(PyObject *) PyFrame_GetGenerator(PyFrameObject *frame); PyAPI_FUNC(int) PyFrame_GetLasti(PyFrameObject *frame); +PyAPI_FUNC(PyObject*) PyFrame_GetVar(PyFrameObject *frame, PyObject *name); +PyAPI_FUNC(PyObject*) PyFrame_GetVarString(PyFrameObject *frame, const char *name); +/* The following functions are for use by debuggers and other tools + * implementing custom frame evaluators with PEP 523. */ + +struct _PyInterpreterFrame; + +/* Returns the code object of the frame (strong reference). + * Does not raise an exception. */ +PyAPI_FUNC(PyObject *) PyUnstable_InterpreterFrame_GetCode(struct _PyInterpreterFrame *frame); + +/* Returns a byte ofsset into the last executed instruction. + * Does not raise an exception. */ +PyAPI_FUNC(int) PyUnstable_InterpreterFrame_GetLasti(struct _PyInterpreterFrame *frame); + +/* Returns the currently executing line number, or -1 if there is no line number. + * Does not raise an exception. */ +PyAPI_FUNC(int) PyUnstable_InterpreterFrame_GetLine(struct _PyInterpreterFrame *frame); diff --git a/src/external/windows/include/python/cpython/pylifecycle.h b/src/external/windows/include/python/cpython/pylifecycle.h index 139b955c..594f3c7e 100755 --- a/src/external/windows/include/python/cpython/pylifecycle.h +++ b/src/external/windows/include/python/cpython/pylifecycle.h @@ -52,6 +52,7 @@ PyAPI_FUNC(const char *) _Py_gitidentifier(void); PyAPI_FUNC(const char *) _Py_gitversion(void); PyAPI_FUNC(int) _Py_IsFinalizing(void); +PyAPI_FUNC(int) _Py_IsInterpreterFinalizing(PyInterpreterState *interp); /* Random */ PyAPI_FUNC(int) _PyOS_URandom(void *buffer, Py_ssize_t size); @@ -62,4 +63,49 @@ PyAPI_FUNC(int) _Py_CoerceLegacyLocale(int warn); PyAPI_FUNC(int) _Py_LegacyLocaleDetected(int warn); PyAPI_FUNC(char *) _Py_SetLocaleFromEnv(int category); -PyAPI_FUNC(PyThreadState *) _Py_NewInterpreter(int isolated_subinterpreter); +/* --- PyInterpreterConfig ------------------------------------ */ + +#define PyInterpreterConfig_DEFAULT_GIL (0) +#define PyInterpreterConfig_SHARED_GIL (1) +#define PyInterpreterConfig_OWN_GIL (2) + +typedef struct { + // XXX "allow_object_sharing"? "own_objects"? + int use_main_obmalloc; + int allow_fork; + int allow_exec; + int allow_threads; + int allow_daemon_threads; + int check_multi_interp_extensions; + int gil; +} PyInterpreterConfig; + +#define _PyInterpreterConfig_INIT \ + { \ + .use_main_obmalloc = 0, \ + .allow_fork = 0, \ + .allow_exec = 0, \ + .allow_threads = 1, \ + .allow_daemon_threads = 0, \ + .check_multi_interp_extensions = 1, \ + .gil = PyInterpreterConfig_OWN_GIL, \ + } + +#define _PyInterpreterConfig_LEGACY_INIT \ + { \ + .use_main_obmalloc = 1, \ + .allow_fork = 1, \ + .allow_exec = 1, \ + .allow_threads = 1, \ + .allow_daemon_threads = 1, \ + .check_multi_interp_extensions = 0, \ + .gil = PyInterpreterConfig_SHARED_GIL, \ + } + +PyAPI_FUNC(PyStatus) Py_NewInterpreterFromConfig( + PyThreadState **tstate_p, + const PyInterpreterConfig *config); + +typedef void (*atexit_datacallbackfunc)(void *); +PyAPI_FUNC(int) _Py_AtExit( + PyInterpreterState *, atexit_datacallbackfunc, void *); diff --git a/src/external/windows/include/python/cpython/pystate.h b/src/external/windows/include/python/cpython/pystate.h index bd8519b0..1b9ecca5 100755 --- a/src/external/windows/include/python/cpython/pystate.h +++ b/src/external/windows/include/python/cpython/pystate.h @@ -3,11 +3,46 @@ #endif +/* +Runtime Feature Flags + +Each flag indicate whether or not a specific runtime feature +is available in a given context. For example, forking the process +might not be allowed in the current interpreter (i.e. os.fork() would fail). +*/ + +/* Set if the interpreter share obmalloc runtime state + with the main interpreter. */ +#define Py_RTFLAGS_USE_MAIN_OBMALLOC (1UL << 5) + +/* Set if import should check a module for subinterpreter support. */ +#define Py_RTFLAGS_MULTI_INTERP_EXTENSIONS (1UL << 8) + +/* Set if threads are allowed. */ +#define Py_RTFLAGS_THREADS (1UL << 10) + +/* Set if daemon threads are allowed. */ +#define Py_RTFLAGS_DAEMON_THREADS (1UL << 11) + +/* Set if os.fork() is allowed. */ +#define Py_RTFLAGS_FORK (1UL << 15) + +/* Set if os.exec*() is allowed. */ +#define Py_RTFLAGS_EXEC (1UL << 16) + + +PyAPI_FUNC(int) _PyInterpreterState_HasFeature(PyInterpreterState *interp, + unsigned long feature); + + +/* private interpreter helpers */ + PyAPI_FUNC(int) _PyInterpreterState_RequiresIDRef(PyInterpreterState *); PyAPI_FUNC(void) _PyInterpreterState_RequireIDRef(PyInterpreterState *, int); PyAPI_FUNC(PyObject *) _PyInterpreterState_GetMainModule(PyInterpreterState *); + /* State unique per thread */ /* Py_tracefunc return -1 when raising an exception, or 0 for success. */ @@ -27,12 +62,6 @@ typedef int (*Py_tracefunc)(PyObject *, PyFrameObject *, int, PyObject *); #define PyTrace_C_RETURN 6 #define PyTrace_OPCODE 7 - -typedef struct { - PyCodeObject *code; // The code object for the bounds. May be NULL. - PyCodeAddressRange bounds; // Only valid if code != NULL. -} PyTraceInfo; - // Internal structure: you should not use it directly, but use public functions // like PyThreadState_EnterTracing() and PyThreadState_LeaveTracing(). typedef struct _PyCFrame { @@ -46,7 +75,6 @@ typedef struct _PyCFrame { * discipline and make sure that instances of this struct cannot * accessed outside of their lifetime. */ - uint8_t use_tracing; // 0 or 255 (or'ed into opcode, hence 8-bit type) /* Pointer to the currently executing frame (it can be NULL) */ struct _PyInterpreterFrame *current_frame; struct _PyCFrame *previous; @@ -79,6 +107,11 @@ typedef struct _stack_chunk { PyObject * data[1]; /* Variable sized */ } _PyStackChunk; +struct _py_trashcan { + int delete_nesting; + PyObject *delete_later; +}; + struct _ts { /* See Python/ceval.c for comments explaining most fields */ @@ -86,24 +119,42 @@ struct _ts { PyThreadState *next; PyInterpreterState *interp; - /* Has been initialized to a safe state. + struct { + /* Has been initialized to a safe state. - In order to be effective, this must be set to 0 during or right - after allocation. */ - int _initialized; + In order to be effective, this must be set to 0 during or right + after allocation. */ + unsigned int initialized:1; - /* Was this thread state statically allocated? */ - int _static; + /* Has been bound to an OS thread. */ + unsigned int bound:1; + /* Has been unbound from its OS thread. */ + unsigned int unbound:1; + /* Has been bound aa current for the GILState API. */ + unsigned int bound_gilstate:1; + /* Currently in use (maybe holds the GIL). */ + unsigned int active:1; - int recursion_remaining; - int recursion_limit; + /* various stages of finalization */ + unsigned int finalizing:1; + unsigned int cleared:1; + unsigned int finalized:1; + + /* padding to align to 4 bytes */ + unsigned int :24; + } _status; + + int py_recursion_remaining; + int py_recursion_limit; + + int c_recursion_remaining; int recursion_headroom; /* Allow 50 more calls to handle any errors. */ /* 'tracing' keeps track of the execution depth when tracing/profiling. This is to prevent the actual trace/profile code from being recorded in the trace/profile. */ int tracing; - int tracing_what; /* The event currently being traced, if any. */ + int what_event; /* The event currently being monitored, if any. */ /* Pointer to current _PyCFrame in the C stack frame of the currently, * or most recently, executing _PyEval_EvalFrameDefault. */ @@ -115,9 +166,7 @@ struct _ts { PyObject *c_traceobj; /* The exception currently being raised */ - PyObject *curexc_type; - PyObject *curexc_value; - PyObject *curexc_traceback; + PyObject *current_exception; /* Pointer to the top of the exception stack for the exceptions * we may be currently handling. (See _PyErr_StackItem above.) @@ -137,8 +186,7 @@ struct _ts { */ unsigned long native_thread_id; - int trash_delete_nesting; - PyObject *trash_delete_later; + struct _py_trashcan trash; /* Called when a thread state is deleted normally, but not when it * is destroyed after fork(). @@ -177,8 +225,6 @@ struct _ts { /* Unique thread state id. */ uint64_t id; - PyTraceInfo trace_info; - _PyStackChunk *datastack_chunk; PyObject **datastack_top; PyObject **datastack_limit; @@ -202,12 +248,37 @@ struct _ts { _PyCFrame root_cframe; }; +/* WASI has limited call stack. Python's recursion limit depends on code + layout, optimization, and WASI runtime. Wasmtime can handle about 700 + recursions, sometimes less. 500 is a more conservative limit. */ +#ifdef Py_DEBUG +# if defined(__wasi__) +# define C_RECURSION_LIMIT 150 +# else +# define C_RECURSION_LIMIT 500 +# endif +#else +# if defined(__wasi__) +# define C_RECURSION_LIMIT 500 +# elif defined(__s390x__) +# define C_RECURSION_LIMIT 800 +# elif defined(_WIN32) +# define C_RECURSION_LIMIT 3000 +# elif defined(_Py_ADDRESS_SANITIZER) +# define C_RECURSION_LIMIT 4000 +# else + // This value is duplicated in Lib/test/support/__init__.py +# define C_RECURSION_LIMIT 10000 +# endif +#endif /* other API */ // Alias for backward compatibility with Python 3.8 #define _PyInterpreterState_Get PyInterpreterState_Get +/* An alias for the internal _PyThreadState_New(), + kept for stable ABI compatibility. */ PyAPI_FUNC(PyThreadState *) _PyThreadState_Prealloc(PyInterpreterState *); /* Similar to PyThreadState_Get(), but don't issue a fatal error @@ -279,7 +350,10 @@ PyAPI_FUNC(const PyConfig*) _PyInterpreterState_GetConfig(PyInterpreterState *in for example. Python must be preinitialized to call this method. - The caller must hold the GIL. */ + The caller must hold the GIL. + + Once done with the configuration, PyConfig_Clear() must be called to clear + it. */ PyAPI_FUNC(int) _PyInterpreterState_GetConfigCopy( struct PyConfig *config); @@ -313,6 +387,9 @@ PyAPI_FUNC(const PyConfig*) _Py_GetConfig(void); // is necessary to pass safely between interpreters in the same process. typedef struct _xid _PyCrossInterpreterData; +typedef PyObject *(*xid_newobjectfunc)(_PyCrossInterpreterData *); +typedef void (*xid_freefunc)(void *); + struct _xid { // data is the cross-interpreter-safe derivation of a Python object // (see _PyObject_GetCrossInterpreterData). It will be NULL if the @@ -339,7 +416,7 @@ struct _xid { // interpreter given the data. The resulting object (a new // reference) will be equivalent to the original object. This field // is required. - PyObject *(*new_object)(_PyCrossInterpreterData *); + xid_newobjectfunc new_object; // free is called when the data is released. If it is NULL then // nothing will be done to free the data. For some types this is // okay (e.g. bytes) and for those types this field should be set @@ -349,18 +426,31 @@ struct _xid { // leak. In that case, at the very least this field should be set // to PyMem_RawFree (the default if not explicitly set to NULL). // The call will happen with the original interpreter activated. - void (*free)(void *); + xid_freefunc free; }; +PyAPI_FUNC(void) _PyCrossInterpreterData_Init( + _PyCrossInterpreterData *data, + PyInterpreterState *interp, void *shared, PyObject *obj, + xid_newobjectfunc new_object); +PyAPI_FUNC(int) _PyCrossInterpreterData_InitWithSize( + _PyCrossInterpreterData *, + PyInterpreterState *interp, const size_t, PyObject *, + xid_newobjectfunc); +PyAPI_FUNC(void) _PyCrossInterpreterData_Clear( + PyInterpreterState *, _PyCrossInterpreterData *); + PyAPI_FUNC(int) _PyObject_GetCrossInterpreterData(PyObject *, _PyCrossInterpreterData *); PyAPI_FUNC(PyObject *) _PyCrossInterpreterData_NewObject(_PyCrossInterpreterData *); -PyAPI_FUNC(void) _PyCrossInterpreterData_Release(_PyCrossInterpreterData *); +PyAPI_FUNC(int) _PyCrossInterpreterData_Release(_PyCrossInterpreterData *); PyAPI_FUNC(int) _PyObject_CheckCrossInterpreterData(PyObject *); /* cross-interpreter data registry */ -typedef int (*crossinterpdatafunc)(PyObject *, _PyCrossInterpreterData *); +typedef int (*crossinterpdatafunc)(PyThreadState *tstate, PyObject *, + _PyCrossInterpreterData *); PyAPI_FUNC(int) _PyCrossInterpreterData_RegisterClass(PyTypeObject *, crossinterpdatafunc); +PyAPI_FUNC(int) _PyCrossInterpreterData_UnregisterClass(PyTypeObject *); PyAPI_FUNC(crossinterpdatafunc) _PyCrossInterpreterData_Lookup(PyObject *); diff --git a/src/external/windows/include/python/cpython/pythonrun.h b/src/external/windows/include/python/cpython/pythonrun.h index cf0e6776..1c7b6a4a 100755 --- a/src/external/windows/include/python/cpython/pythonrun.h +++ b/src/external/windows/include/python/cpython/pythonrun.h @@ -66,8 +66,8 @@ PyAPI_FUNC(PyObject *) Py_CompileStringObject( PyCompilerFlags *flags, int optimize); -#define Py_CompileString(str, p, s) Py_CompileStringExFlags(str, p, s, NULL, -1) -#define Py_CompileStringFlags(str, p, s, f) Py_CompileStringExFlags(str, p, s, f, -1) +#define Py_CompileString(str, p, s) Py_CompileStringExFlags((str), (p), (s), NULL, -1) +#define Py_CompileStringFlags(str, p, s, f) Py_CompileStringExFlags((str), (p), (s), (f), -1) PyAPI_FUNC(const char *) _Py_SourceAsString( @@ -96,23 +96,23 @@ PyAPI_FUNC(PyObject *) PyRun_FileEx(FILE *fp, const char *p, int s, PyObject *g, PyAPI_FUNC(PyObject *) PyRun_FileFlags(FILE *fp, const char *p, int s, PyObject *g, PyObject *l, PyCompilerFlags *flags); /* Use macros for a bunch of old variants */ -#define PyRun_String(str, s, g, l) PyRun_StringFlags(str, s, g, l, NULL) -#define PyRun_AnyFile(fp, name) PyRun_AnyFileExFlags(fp, name, 0, NULL) +#define PyRun_String(str, s, g, l) PyRun_StringFlags((str), (s), (g), (l), NULL) +#define PyRun_AnyFile(fp, name) PyRun_AnyFileExFlags((fp), (name), 0, NULL) #define PyRun_AnyFileEx(fp, name, closeit) \ - PyRun_AnyFileExFlags(fp, name, closeit, NULL) + PyRun_AnyFileExFlags((fp), (name), (closeit), NULL) #define PyRun_AnyFileFlags(fp, name, flags) \ - PyRun_AnyFileExFlags(fp, name, 0, flags) -#define PyRun_SimpleString(s) PyRun_SimpleStringFlags(s, NULL) -#define PyRun_SimpleFile(f, p) PyRun_SimpleFileExFlags(f, p, 0, NULL) -#define PyRun_SimpleFileEx(f, p, c) PyRun_SimpleFileExFlags(f, p, c, NULL) -#define PyRun_InteractiveOne(f, p) PyRun_InteractiveOneFlags(f, p, NULL) -#define PyRun_InteractiveLoop(f, p) PyRun_InteractiveLoopFlags(f, p, NULL) + PyRun_AnyFileExFlags((fp), (name), 0, (flags)) +#define PyRun_SimpleString(s) PyRun_SimpleStringFlags((s), NULL) +#define PyRun_SimpleFile(f, p) PyRun_SimpleFileExFlags((f), (p), 0, NULL) +#define PyRun_SimpleFileEx(f, p, c) PyRun_SimpleFileExFlags((f), (p), (c), NULL) +#define PyRun_InteractiveOne(f, p) PyRun_InteractiveOneFlags((f), (p), NULL) +#define PyRun_InteractiveLoop(f, p) PyRun_InteractiveLoopFlags((f), (p), NULL) #define PyRun_File(fp, p, s, g, l) \ - PyRun_FileExFlags(fp, p, s, g, l, 0, NULL) + PyRun_FileExFlags((fp), (p), (s), (g), (l), 0, NULL) #define PyRun_FileEx(fp, p, s, g, l, c) \ - PyRun_FileExFlags(fp, p, s, g, l, c, NULL) + PyRun_FileExFlags((fp), (p), (s), (g), (l), (c), NULL) #define PyRun_FileFlags(fp, p, s, g, l, flags) \ - PyRun_FileExFlags(fp, p, s, g, l, 0, flags) + PyRun_FileExFlags((fp), (p), (s), (g), (l), 0, (flags)) /* Stuff with no proper home (yet) */ diff --git a/src/external/windows/include/python/cpython/pytime.h b/src/external/windows/include/python/cpython/pytime.h index 23e0536a..3b5791fd 100755 --- a/src/external/windows/include/python/cpython/pytime.h +++ b/src/external/windows/include/python/cpython/pytime.h @@ -53,6 +53,10 @@ functions and constants extern "C" { #endif +#ifdef __clang__ +struct timeval; +#endif + /* _PyTime_t: Python timestamp with subsecond precision. It can be used to store a duration, and so indirectly a date (related to another date, like UNIX epoch). */ @@ -130,6 +134,10 @@ PyAPI_FUNC(_PyTime_t) _PyTime_FromSeconds(int seconds); /* Create a timestamp from a number of nanoseconds. */ PyAPI_FUNC(_PyTime_t) _PyTime_FromNanoseconds(_PyTime_t ns); +/* Create a timestamp from a number of microseconds. + * Clamp to [_PyTime_MIN; _PyTime_MAX] on overflow. */ +PyAPI_FUNC(_PyTime_t) _PyTime_FromMicrosecondsClamp(_PyTime_t us); + /* Create a timestamp from nanoseconds (Python int). */ PyAPI_FUNC(int) _PyTime_FromNanosecondsObject(_PyTime_t *t, PyObject *obj); diff --git a/src/external/windows/include/python/cpython/setobject.h b/src/external/windows/include/python/cpython/setobject.h index 380500ab..c61a6e33 100644 --- a/src/external/windows/include/python/cpython/setobject.h +++ b/src/external/windows/include/python/cpython/setobject.h @@ -58,8 +58,13 @@ typedef struct { PyObject *weakreflist; /* List of weak references */ } PySetObject; -#define PySet_GET_SIZE(so) \ - (assert(PyAnySet_Check(so)), (((PySetObject *)(so))->used)) +#define _PySet_CAST(so) \ + (assert(PyAnySet_Check(so)), _Py_CAST(PySetObject*, so)) + +static inline Py_ssize_t PySet_GET_SIZE(PyObject *so) { + return _PySet_CAST(so)->used; +} +#define PySet_GET_SIZE(so) PySet_GET_SIZE(_PyObject_CAST(so)) PyAPI_DATA(PyObject *) _PySet_Dummy; diff --git a/src/external/windows/include/python/cpython/tupleobject.h b/src/external/windows/include/python/cpython/tupleobject.h index 6a6443bc..7c16a0d1 100755 --- a/src/external/windows/include/python/cpython/tupleobject.h +++ b/src/external/windows/include/python/cpython/tupleobject.h @@ -23,11 +23,9 @@ static inline Py_ssize_t PyTuple_GET_SIZE(PyObject *op) { PyTupleObject *tuple = _PyTuple_CAST(op); return Py_SIZE(tuple); } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyTuple_GET_SIZE(op) PyTuple_GET_SIZE(_PyObject_CAST(op)) -#endif +#define PyTuple_GET_SIZE(op) PyTuple_GET_SIZE(_PyObject_CAST(op)) -#define PyTuple_GET_ITEM(op, index) (_PyTuple_CAST(op)->ob_item[index]) +#define PyTuple_GET_ITEM(op, index) (_PyTuple_CAST(op)->ob_item[(index)]) /* Function *only* to be used to fill in brand new tuples */ static inline void @@ -35,9 +33,7 @@ PyTuple_SET_ITEM(PyObject *op, Py_ssize_t index, PyObject *value) { PyTupleObject *tuple = _PyTuple_CAST(op); tuple->ob_item[index] = value; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 #define PyTuple_SET_ITEM(op, index, value) \ - PyTuple_SET_ITEM(_PyObject_CAST(op), index, _PyObject_CAST(value)) -#endif + PyTuple_SET_ITEM(_PyObject_CAST(op), (index), _PyObject_CAST(value)) PyAPI_FUNC(void) _PyTuple_DebugMallocStats(FILE *out); diff --git a/src/external/windows/include/python/cpython/unicodeobject.h b/src/external/windows/include/python/cpython/unicodeobject.h index ff98851d..680f52ac 100755 --- a/src/external/windows/include/python/cpython/unicodeobject.h +++ b/src/external/windows/include/python/cpython/unicodeobject.h @@ -11,63 +11,43 @@ /* --- Internal Unicode Operations ---------------------------------------- */ -#ifndef USE_UNICODE_WCHAR_CACHE -# define USE_UNICODE_WCHAR_CACHE 1 -#endif /* USE_UNICODE_WCHAR_CACHE */ +// Static inline functions to work with surrogates +static inline int Py_UNICODE_IS_SURROGATE(Py_UCS4 ch) { + return (0xD800 <= ch && ch <= 0xDFFF); +} +static inline int Py_UNICODE_IS_HIGH_SURROGATE(Py_UCS4 ch) { + return (0xD800 <= ch && ch <= 0xDBFF); +} +static inline int Py_UNICODE_IS_LOW_SURROGATE(Py_UCS4 ch) { + return (0xDC00 <= ch && ch <= 0xDFFF); +} -/* Since splitting on whitespace is an important use case, and - whitespace in most situations is solely ASCII whitespace, we - optimize for the common case by using a quick look-up table - _Py_ascii_whitespace (see below) with an inlined check. +// Join two surrogate characters and return a single Py_UCS4 value. +static inline Py_UCS4 Py_UNICODE_JOIN_SURROGATES(Py_UCS4 high, Py_UCS4 low) { + assert(Py_UNICODE_IS_HIGH_SURROGATE(high)); + assert(Py_UNICODE_IS_LOW_SURROGATE(low)); + return 0x10000 + (((high & 0x03FF) << 10) | (low & 0x03FF)); +} - */ -#define Py_UNICODE_ISSPACE(ch) \ - ((Py_UCS4)(ch) < 128U ? _Py_ascii_whitespace[(ch)] : _PyUnicode_IsWhitespace(ch)) +// High surrogate = top 10 bits added to 0xD800. +// The character must be in the range [U+10000; U+10ffff]. +static inline Py_UCS4 Py_UNICODE_HIGH_SURROGATE(Py_UCS4 ch) { + assert(0x10000 <= ch && ch <= 0x10ffff); + return (0xD800 - (0x10000 >> 10) + (ch >> 10)); +} -#define Py_UNICODE_ISLOWER(ch) _PyUnicode_IsLowercase(ch) -#define Py_UNICODE_ISUPPER(ch) _PyUnicode_IsUppercase(ch) -#define Py_UNICODE_ISTITLE(ch) _PyUnicode_IsTitlecase(ch) -#define Py_UNICODE_ISLINEBREAK(ch) _PyUnicode_IsLinebreak(ch) - -#define Py_UNICODE_TOLOWER(ch) _PyUnicode_ToLowercase(ch) -#define Py_UNICODE_TOUPPER(ch) _PyUnicode_ToUppercase(ch) -#define Py_UNICODE_TOTITLE(ch) _PyUnicode_ToTitlecase(ch) - -#define Py_UNICODE_ISDECIMAL(ch) _PyUnicode_IsDecimalDigit(ch) -#define Py_UNICODE_ISDIGIT(ch) _PyUnicode_IsDigit(ch) -#define Py_UNICODE_ISNUMERIC(ch) _PyUnicode_IsNumeric(ch) -#define Py_UNICODE_ISPRINTABLE(ch) _PyUnicode_IsPrintable(ch) - -#define Py_UNICODE_TODECIMAL(ch) _PyUnicode_ToDecimalDigit(ch) -#define Py_UNICODE_TODIGIT(ch) _PyUnicode_ToDigit(ch) -#define Py_UNICODE_TONUMERIC(ch) _PyUnicode_ToNumeric(ch) - -#define Py_UNICODE_ISALPHA(ch) _PyUnicode_IsAlpha(ch) - -#define Py_UNICODE_ISALNUM(ch) \ - (Py_UNICODE_ISALPHA(ch) || \ - Py_UNICODE_ISDECIMAL(ch) || \ - Py_UNICODE_ISDIGIT(ch) || \ - Py_UNICODE_ISNUMERIC(ch)) - -/* macros to work with surrogates */ -#define Py_UNICODE_IS_SURROGATE(ch) (0xD800 <= (ch) && (ch) <= 0xDFFF) -#define Py_UNICODE_IS_HIGH_SURROGATE(ch) (0xD800 <= (ch) && (ch) <= 0xDBFF) -#define Py_UNICODE_IS_LOW_SURROGATE(ch) (0xDC00 <= (ch) && (ch) <= 0xDFFF) -/* Join two surrogate characters and return a single Py_UCS4 value. */ -#define Py_UNICODE_JOIN_SURROGATES(high, low) \ - (((((Py_UCS4)(high) & 0x03FF) << 10) | \ - ((Py_UCS4)(low) & 0x03FF)) + 0x10000) -/* high surrogate = top 10 bits added to D800 */ -#define Py_UNICODE_HIGH_SURROGATE(ch) (0xD800 - (0x10000 >> 10) + ((ch) >> 10)) -/* low surrogate = bottom 10 bits added to DC00 */ -#define Py_UNICODE_LOW_SURROGATE(ch) (0xDC00 + ((ch) & 0x3FF)) +// Low surrogate = bottom 10 bits added to 0xDC00. +// The character must be in the range [U+10000; U+10ffff]. +static inline Py_UCS4 Py_UNICODE_LOW_SURROGATE(Py_UCS4 ch) { + assert(0x10000 <= ch && ch <= 0x10ffff); + return (0xDC00 + (ch & 0x3FF)); +} /* --- Unicode Type ------------------------------------------------------- */ /* ASCII-only strings created through PyUnicode_New use the PyASCIIObject structure. state.ascii and state.compact are set, and the data - immediately follow the structure. utf8_length and wstr_length can be found + immediately follow the structure. utf8_length can be found in the length field; the utf8 pointer is equal to the data pointer. */ typedef struct { /* There are 4 forms of Unicode strings: @@ -79,8 +59,7 @@ typedef struct { * kind = PyUnicode_1BYTE_KIND * compact = 1 * ascii = 1 - * ready = 1 - * (length is the length of the utf8 and wstr strings) + * (length is the length of the utf8) * (data starts just after the structure) * (since ASCII is decoded from UTF-8, the utf8 string are the data) @@ -91,55 +70,27 @@ typedef struct { * kind = PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND or PyUnicode_4BYTE_KIND * compact = 1 - * ready = 1 * ascii = 0 * utf8 is not shared with data * utf8_length = 0 if utf8 is NULL - * wstr is shared with data and wstr_length=length - if kind=PyUnicode_2BYTE_KIND and sizeof(wchar_t)=2 - or if kind=PyUnicode_4BYTE_KIND and sizeof(wchar_t)=4 - * wstr_length = 0 if wstr is NULL * (data starts just after the structure) - - legacy string, not ready: - - * structure = PyUnicodeObject - * test: kind == PyUnicode_WCHAR_KIND - * length = 0 (use wstr_length) - * hash = -1 - * kind = PyUnicode_WCHAR_KIND - * compact = 0 - * ascii = 0 - * ready = 0 - * interned = SSTATE_NOT_INTERNED - * wstr is not NULL - * data.any is NULL - * utf8 is NULL - * utf8_length = 0 - - - legacy string, ready: + - legacy string: * structure = PyUnicodeObject structure - * test: !PyUnicode_IS_COMPACT(op) && kind != PyUnicode_WCHAR_KIND + * test: !PyUnicode_IS_COMPACT(op) * kind = PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND or PyUnicode_4BYTE_KIND * compact = 0 - * ready = 1 * data.any is not NULL * utf8 is shared and utf8_length = length with data.any if ascii = 1 * utf8_length = 0 if utf8 is NULL - * wstr is shared with data.any and wstr_length = length - if kind=PyUnicode_2BYTE_KIND and sizeof(wchar_t)=2 - or if kind=PyUnicode_4BYTE_KIND and sizeof(wchar_4)=4 - * wstr_length = 0 if wstr is NULL Compact strings use only one memory block (structure + characters), whereas legacy strings use one block for the structure and one block for characters. - Legacy strings are created by PyUnicode_FromUnicode() and - PyUnicode_FromStringAndSize(NULL, size) functions. They become ready - when PyUnicode_READY() is called. + Legacy strings are created by subclasses of Unicode. See also _PyUnicode_CheckConsistency(). */ @@ -147,22 +98,18 @@ typedef struct { Py_ssize_t length; /* Number of code points in the string */ Py_hash_t hash; /* Hash value; -1 if not set */ struct { - /* - SSTATE_NOT_INTERNED (0) - SSTATE_INTERNED_MORTAL (1) - SSTATE_INTERNED_IMMORTAL (2) - - If interned != SSTATE_NOT_INTERNED, the two references from the + /* If interned is non-zero, the two references from the dictionary to this object are *not* counted in ob_refcnt. - */ + The possible values here are: + 0: Not Interned + 1: Interned + 2: Interned and Immortal + 3: Interned, Immortal, and Static + This categorization allows the runtime to determine the right + cleanup mechanism at runtime shutdown. */ unsigned int interned:2; /* Character size: - - PyUnicode_WCHAR_KIND (0): - - * character type = wchar_t (16 or 32 bits, depending on the - platform) - - PyUnicode_1BYTE_KIND (1): * character type = Py_UCS1 (8 bits, unsigned) @@ -193,16 +140,12 @@ typedef struct { and the kind is PyUnicode_1BYTE_KIND. If ascii is set and compact is set, use the PyASCIIObject structure. */ unsigned int ascii:1; - /* The ready flag indicates whether the object layout is initialized - completely. This means that this is either a compact object, or - the data pointer is filled out. The bit is redundant, and helps - to minimize the test in PyUnicode_IS_READY(). */ - unsigned int ready:1; + /* The object is statically allocated. */ + unsigned int statically_allocated:1; /* Padding to ensure that PyUnicode_DATA() is always aligned to 4 bytes (see issue #19537 on m68k). */ unsigned int :24; } state; - wchar_t *wstr; /* wchar_t representation (null-terminated) */ } PyASCIIObject; /* Non-ASCII strings allocated through PyUnicode_New use the @@ -213,13 +156,9 @@ typedef struct { Py_ssize_t utf8_length; /* Number of bytes in utf8, excluding the * terminating \0. */ char *utf8; /* UTF-8 representation (null-terminated) */ - Py_ssize_t wstr_length; /* Number of code points in wstr, possible - * surrogates count as two code points. */ } PyCompactUnicodeObject; -/* Strings allocated through PyUnicode_FromUnicode(NULL, len) use the - PyUnicodeObject structure. The actual string data is initially in the wstr - block, and copied into the data block using _PyUnicode_Ready. */ +/* Object format for Unicode subclasses. */ typedef struct { PyCompactUnicodeObject _base; union { @@ -254,68 +193,56 @@ PyAPI_FUNC(int) _PyUnicode_CheckConsistency( #define SSTATE_NOT_INTERNED 0 #define SSTATE_INTERNED_MORTAL 1 #define SSTATE_INTERNED_IMMORTAL 2 +#define SSTATE_INTERNED_IMMORTAL_STATIC 3 /* Use only if you know it's a string */ static inline unsigned int PyUnicode_CHECK_INTERNED(PyObject *op) { return _PyASCIIObject_CAST(op)->state.interned; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_CHECK_INTERNED(op) PyUnicode_CHECK_INTERNED(_PyObject_CAST(op)) -#endif +#define PyUnicode_CHECK_INTERNED(op) PyUnicode_CHECK_INTERNED(_PyObject_CAST(op)) -/* Fast check to determine whether an object is ready. Equivalent to: - PyUnicode_IS_COMPACT(op) || _PyUnicodeObject_CAST(op)->data.any */ -static inline unsigned int PyUnicode_IS_READY(PyObject *op) { - return _PyASCIIObject_CAST(op)->state.ready; +/* For backward compatibility */ +static inline unsigned int PyUnicode_IS_READY(PyObject* Py_UNUSED(op)) { + return 1; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_IS_READY(op) PyUnicode_IS_READY(_PyObject_CAST(op)) -#endif +#define PyUnicode_IS_READY(op) PyUnicode_IS_READY(_PyObject_CAST(op)) /* Return true if the string contains only ASCII characters, or 0 if not. The string may be compact (PyUnicode_IS_COMPACT_ASCII) or not, but must be ready. */ static inline unsigned int PyUnicode_IS_ASCII(PyObject *op) { - assert(PyUnicode_IS_READY(op)); return _PyASCIIObject_CAST(op)->state.ascii; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_IS_ASCII(op) PyUnicode_IS_ASCII(_PyObject_CAST(op)) -#endif +#define PyUnicode_IS_ASCII(op) PyUnicode_IS_ASCII(_PyObject_CAST(op)) /* Return true if the string is compact or 0 if not. No type checks or Ready calls are performed. */ static inline unsigned int PyUnicode_IS_COMPACT(PyObject *op) { return _PyASCIIObject_CAST(op)->state.compact; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_IS_COMPACT(op) PyUnicode_IS_COMPACT(_PyObject_CAST(op)) -#endif +#define PyUnicode_IS_COMPACT(op) PyUnicode_IS_COMPACT(_PyObject_CAST(op)) /* Return true if the string is a compact ASCII string (use PyASCIIObject structure), or 0 if not. No type checks or Ready calls are performed. */ static inline int PyUnicode_IS_COMPACT_ASCII(PyObject *op) { return (_PyASCIIObject_CAST(op)->state.ascii && PyUnicode_IS_COMPACT(op)); } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_IS_COMPACT_ASCII(op) PyUnicode_IS_COMPACT_ASCII(_PyObject_CAST(op)) -#endif +#define PyUnicode_IS_COMPACT_ASCII(op) PyUnicode_IS_COMPACT_ASCII(_PyObject_CAST(op)) enum PyUnicode_Kind { -/* String contains only wstr byte characters. This is only possible - when the string was created with a legacy API and _PyUnicode_Ready() - has not been called yet. */ - PyUnicode_WCHAR_KIND = 0, /* Return values of the PyUnicode_KIND() function: */ PyUnicode_1BYTE_KIND = 1, PyUnicode_2BYTE_KIND = 2, PyUnicode_4BYTE_KIND = 4 }; -/* Return one of the PyUnicode_*_KIND values defined above. */ -#define PyUnicode_KIND(op) \ - (assert(PyUnicode_IS_READY(op)), \ - _PyASCIIObject_CAST(op)->state.kind) +// PyUnicode_KIND(): Return one of the PyUnicode_*_KIND values defined above. +// +// gh-89653: Converting this macro to a static inline function would introduce +// new compiler warnings on "kind < PyUnicode_KIND(str)" (compare signed and +// unsigned numbers) where kind type is an int or on +// "unsigned int kind = PyUnicode_KIND(str)" (cast signed to unsigned). +#define PyUnicode_KIND(op) _Py_RVALUE(_PyASCIIObject_CAST(op)->state.kind) /* Return a void pointer to the raw unicode buffer. */ static inline void* _PyUnicode_COMPACT_DATA(PyObject *op) { @@ -339,9 +266,7 @@ static inline void* PyUnicode_DATA(PyObject *op) { } return _PyUnicode_NONCOMPACT_DATA(op); } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_DATA(op) PyUnicode_DATA(_PyObject_CAST(op)) -#endif +#define PyUnicode_DATA(op) PyUnicode_DATA(_PyObject_CAST(op)) /* Return pointers to the canonical representation cast to unsigned char, Py_UCS2, or Py_UCS4 for direct character access. @@ -352,16 +277,11 @@ static inline void* PyUnicode_DATA(PyObject *op) { #define PyUnicode_2BYTE_DATA(op) _Py_STATIC_CAST(Py_UCS2*, PyUnicode_DATA(op)) #define PyUnicode_4BYTE_DATA(op) _Py_STATIC_CAST(Py_UCS4*, PyUnicode_DATA(op)) -/* Returns the length of the unicode string. The caller has to make sure that - the string has it's canonical representation set before calling - this function. Call PyUnicode_(FAST_)Ready to ensure that. */ +/* Returns the length of the unicode string. */ static inline Py_ssize_t PyUnicode_GET_LENGTH(PyObject *op) { - assert(PyUnicode_IS_READY(op)); return _PyASCIIObject_CAST(op)->length; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_GET_LENGTH(op) PyUnicode_GET_LENGTH(_PyObject_CAST(op)) -#endif +#define PyUnicode_GET_LENGTH(op) PyUnicode_GET_LENGTH(_PyObject_CAST(op)) /* Write into the canonical representation, this function does not do any sanity checks and is intended for usage in loops. The caller should cache the @@ -371,6 +291,7 @@ static inline Py_ssize_t PyUnicode_GET_LENGTH(PyObject *op) { static inline void PyUnicode_WRITE(int kind, void *data, Py_ssize_t index, Py_UCS4 value) { + assert(index >= 0); if (kind == PyUnicode_1BYTE_KIND) { assert(value <= 0xffU); _Py_STATIC_CAST(Py_UCS1*, data)[index] = _Py_STATIC_CAST(Py_UCS1, value); @@ -385,17 +306,16 @@ static inline void PyUnicode_WRITE(int kind, void *data, _Py_STATIC_CAST(Py_UCS4*, data)[index] = value; } } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 #define PyUnicode_WRITE(kind, data, index, value) \ PyUnicode_WRITE(_Py_STATIC_CAST(int, kind), _Py_CAST(void*, data), \ (index), _Py_STATIC_CAST(Py_UCS4, value)) -#endif /* Read a code point from the string's canonical representation. No checks or ready calls are performed. */ static inline Py_UCS4 PyUnicode_READ(int kind, const void *data, Py_ssize_t index) { + assert(index >= 0); if (kind == PyUnicode_1BYTE_KIND) { return _Py_STATIC_CAST(const Py_UCS1*, data)[index]; } @@ -405,12 +325,10 @@ static inline Py_UCS4 PyUnicode_READ(int kind, assert(kind == PyUnicode_4BYTE_KIND); return _Py_STATIC_CAST(const Py_UCS4*, data)[index]; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 #define PyUnicode_READ(kind, data, index) \ PyUnicode_READ(_Py_STATIC_CAST(int, kind), \ _Py_STATIC_CAST(const void*, data), \ (index)) -#endif /* PyUnicode_READ_CHAR() is less efficient than PyUnicode_READ() because it calls PyUnicode_KIND() and might call it twice. For single reads, use @@ -419,7 +337,11 @@ static inline Py_UCS4 PyUnicode_READ(int kind, static inline Py_UCS4 PyUnicode_READ_CHAR(PyObject *unicode, Py_ssize_t index) { int kind; - assert(PyUnicode_IS_READY(unicode)); + + assert(index >= 0); + // Tolerate reading the NUL character at str[len(str)] + assert(index <= PyUnicode_GET_LENGTH(unicode)); + kind = PyUnicode_KIND(unicode); if (kind == PyUnicode_1BYTE_KIND) { return PyUnicode_1BYTE_DATA(unicode)[index]; @@ -430,10 +352,8 @@ static inline Py_UCS4 PyUnicode_READ_CHAR(PyObject *unicode, Py_ssize_t index) assert(kind == PyUnicode_4BYTE_KIND); return PyUnicode_4BYTE_DATA(unicode)[index]; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_READ_CHAR(unicode, index) \ - PyUnicode_READ_CHAR(_PyObject_CAST(unicode), (index)) -#endif +#define PyUnicode_READ_CHAR(unicode, index) \ + PyUnicode_READ_CHAR(_PyObject_CAST(unicode), (index)) /* Return a maximum character value which is suitable for creating another string based on op. This is always an approximation but more efficient @@ -442,7 +362,6 @@ static inline Py_UCS4 PyUnicode_MAX_CHAR_VALUE(PyObject *op) { int kind; - assert(PyUnicode_IS_READY(op)); if (PyUnicode_IS_ASCII(op)) { return 0x7fU; } @@ -457,10 +376,8 @@ static inline Py_UCS4 PyUnicode_MAX_CHAR_VALUE(PyObject *op) assert(kind == PyUnicode_4BYTE_KIND); return 0x10ffffU; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_MAX_CHAR_VALUE(op) \ - PyUnicode_MAX_CHAR_VALUE(_PyObject_CAST(op)) -#endif +#define PyUnicode_MAX_CHAR_VALUE(op) \ + PyUnicode_MAX_CHAR_VALUE(_PyObject_CAST(op)) /* === Public API ========================================================= */ @@ -474,31 +391,12 @@ PyAPI_FUNC(PyObject*) PyUnicode_New( Py_UCS4 maxchar /* maximum code point value in the string */ ); -/* Initializes the canonical string representation from the deprecated - wstr/Py_UNICODE representation. This function is used to convert Unicode - objects which were created using the old API to the new flexible format - introduced with PEP 393. - - Don't call this function directly, use the public PyUnicode_READY() function - instead. */ -PyAPI_FUNC(int) _PyUnicode_Ready( - PyObject *unicode /* Unicode object */ - ); - -/* PyUnicode_READY() does less work than _PyUnicode_Ready() in the best - case. If the canonical representation is not yet set, it will still call - _PyUnicode_Ready(). - Returns 0 on success and -1 on errors. */ -static inline int PyUnicode_READY(PyObject *op) +/* For backward compatibility */ +static inline int PyUnicode_READY(PyObject* Py_UNUSED(op)) { - if (PyUnicode_IS_READY(op)) { - return 0; - } - return _PyUnicode_Ready(op); + return 0; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_READY(op) PyUnicode_READY(_PyObject_CAST(op)) -#endif +#define PyUnicode_READY(op) PyUnicode_READY(_PyObject_CAST(op)) /* Get a copy of a Unicode string. */ PyAPI_FUNC(PyObject*) _PyUnicode_Copy( @@ -586,139 +484,12 @@ PyAPI_FUNC(Py_UCS4) _PyUnicode_FindMaxChar ( Py_ssize_t start, Py_ssize_t end); -/* --- Legacy deprecated API ---------------------------------------------- */ - -/* Create a Unicode Object from the Py_UNICODE buffer u of the given - size. - - u may be NULL which causes the contents to be undefined. It is the - user's responsibility to fill in the needed data afterwards. Note - that modifying the Unicode object contents after construction is - only allowed if u was set to NULL. - - The buffer is copied into the new object. */ -Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_FromUnicode( - const Py_UNICODE *u, /* Unicode buffer */ - Py_ssize_t size /* size of buffer */ - ); - -/* Return a read-only pointer to the Unicode object's internal - Py_UNICODE buffer. - If the wchar_t/Py_UNICODE representation is not yet available, this - function will calculate it. */ -Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicode( - PyObject *unicode /* Unicode object */ - ); - -/* Similar to PyUnicode_AsUnicode(), but raises a ValueError if the string - contains null characters. */ -PyAPI_FUNC(const Py_UNICODE *) _PyUnicode_AsUnicode( - PyObject *unicode /* Unicode object */ - ); - -/* Return a read-only pointer to the Unicode object's internal - Py_UNICODE buffer and save the length at size. - If the wchar_t/Py_UNICODE representation is not yet available, this - function will calculate it. */ - -Py_DEPRECATED(3.3) PyAPI_FUNC(Py_UNICODE *) PyUnicode_AsUnicodeAndSize( - PyObject *unicode, /* Unicode object */ - Py_ssize_t *size /* location where to save the length */ - ); - - -/* Fast access macros */ - -Py_DEPRECATED(3.3) -static inline Py_ssize_t PyUnicode_WSTR_LENGTH(PyObject *op) -{ - if (PyUnicode_IS_COMPACT_ASCII(op)) { - return _PyASCIIObject_CAST(op)->length; - } - else { - return _PyCompactUnicodeObject_CAST(op)->wstr_length; - } -} -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_WSTR_LENGTH(op) PyUnicode_WSTR_LENGTH(_PyObject_CAST(op)) -#endif - -/* Returns the deprecated Py_UNICODE representation's size in code units - (this includes surrogate pairs as 2 units). - If the Py_UNICODE representation is not available, it will be computed - on request. Use PyUnicode_GET_LENGTH() for the length in code points. */ - -Py_DEPRECATED(3.3) -static inline Py_ssize_t PyUnicode_GET_SIZE(PyObject *op) -{ - _Py_COMP_DIAG_PUSH - _Py_COMP_DIAG_IGNORE_DEPR_DECLS - if (_PyASCIIObject_CAST(op)->wstr == _Py_NULL) { - (void)PyUnicode_AsUnicode(op); - assert(_PyASCIIObject_CAST(op)->wstr != _Py_NULL); - } - return PyUnicode_WSTR_LENGTH(op); - _Py_COMP_DIAG_POP -} -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_GET_SIZE(op) PyUnicode_GET_SIZE(_PyObject_CAST(op)) -#endif - -Py_DEPRECATED(3.3) -static inline Py_ssize_t PyUnicode_GET_DATA_SIZE(PyObject *op) -{ - _Py_COMP_DIAG_PUSH - _Py_COMP_DIAG_IGNORE_DEPR_DECLS - return PyUnicode_GET_SIZE(op) * Py_UNICODE_SIZE; - _Py_COMP_DIAG_POP -} -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_GET_DATA_SIZE(op) PyUnicode_GET_DATA_SIZE(_PyObject_CAST(op)) -#endif - -/* Alias for PyUnicode_AsUnicode(). This will create a wchar_t/Py_UNICODE - representation on demand. Using this macro is very inefficient now, - try to port your code to use the new PyUnicode_*BYTE_DATA() macros or - use PyUnicode_WRITE() and PyUnicode_READ(). */ - -Py_DEPRECATED(3.3) -static inline Py_UNICODE* PyUnicode_AS_UNICODE(PyObject *op) -{ - wchar_t *wstr = _PyASCIIObject_CAST(op)->wstr; - if (wstr != _Py_NULL) { - return wstr; - } - - _Py_COMP_DIAG_PUSH - _Py_COMP_DIAG_IGNORE_DEPR_DECLS - return PyUnicode_AsUnicode(op); - _Py_COMP_DIAG_POP -} -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_AS_UNICODE(op) PyUnicode_AS_UNICODE(_PyObject_CAST(op)) -#endif - -Py_DEPRECATED(3.3) -static inline const char* PyUnicode_AS_DATA(PyObject *op) -{ - _Py_COMP_DIAG_PUSH - _Py_COMP_DIAG_IGNORE_DEPR_DECLS - Py_UNICODE *data = PyUnicode_AS_UNICODE(op); - // In C++, casting directly PyUnicode* to const char* is not valid - return _Py_STATIC_CAST(const char*, _Py_STATIC_CAST(const void*, data)); - _Py_COMP_DIAG_POP -} -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyUnicode_AS_DATA(op) PyUnicode_AS_DATA(_PyObject_CAST(op)) -#endif - - /* --- _PyUnicodeWriter API ----------------------------------------------- */ typedef struct { PyObject *buffer; void *data; - enum PyUnicode_Kind kind; + int kind; Py_UCS4 maxchar; Py_ssize_t size; Py_ssize_t pos; @@ -769,8 +540,7 @@ _PyUnicodeWriter_PrepareInternal(_PyUnicodeWriter *writer, Return 0 on success, raise an exception and return -1 on error. */ #define _PyUnicodeWriter_PrepareKind(WRITER, KIND) \ - (assert((KIND) != PyUnicode_WCHAR_KIND), \ - (KIND) <= (WRITER)->kind \ + ((KIND) <= (WRITER)->kind \ ? 0 \ : _PyUnicodeWriter_PrepareKindInternal((WRITER), (KIND))) @@ -778,7 +548,7 @@ _PyUnicodeWriter_PrepareInternal(_PyUnicodeWriter *writer, macro instead. */ PyAPI_FUNC(int) _PyUnicodeWriter_PrepareKindInternal(_PyUnicodeWriter *writer, - enum PyUnicode_Kind kind); + int kind); /* Append a Unicode character. Return 0 on success, raise an exception and return -1 on error. */ @@ -1024,10 +794,6 @@ PyAPI_FUNC(Py_ssize_t) _PyUnicode_InsertThousandsGrouping( /* === Characters Type APIs =============================================== */ -/* Helper array used by Py_UNICODE_ISSPACE(). */ - -PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[]; - /* These should not be used directly. Use the Py_UNICODE_IS* and Py_UNICODE_TO* macros instead. @@ -1135,6 +901,50 @@ PyAPI_FUNC(int) _PyUnicode_IsAlpha( Py_UCS4 ch /* Unicode character */ ); +// Helper array used by Py_UNICODE_ISSPACE(). +PyAPI_DATA(const unsigned char) _Py_ascii_whitespace[]; + +// Since splitting on whitespace is an important use case, and +// whitespace in most situations is solely ASCII whitespace, we +// optimize for the common case by using a quick look-up table +// _Py_ascii_whitespace (see below) with an inlined check. +static inline int Py_UNICODE_ISSPACE(Py_UCS4 ch) { + if (ch < 128) { + return _Py_ascii_whitespace[ch]; + } + return _PyUnicode_IsWhitespace(ch); +} + +#define Py_UNICODE_ISLOWER(ch) _PyUnicode_IsLowercase(ch) +#define Py_UNICODE_ISUPPER(ch) _PyUnicode_IsUppercase(ch) +#define Py_UNICODE_ISTITLE(ch) _PyUnicode_IsTitlecase(ch) +#define Py_UNICODE_ISLINEBREAK(ch) _PyUnicode_IsLinebreak(ch) + +#define Py_UNICODE_TOLOWER(ch) _PyUnicode_ToLowercase(ch) +#define Py_UNICODE_TOUPPER(ch) _PyUnicode_ToUppercase(ch) +#define Py_UNICODE_TOTITLE(ch) _PyUnicode_ToTitlecase(ch) + +#define Py_UNICODE_ISDECIMAL(ch) _PyUnicode_IsDecimalDigit(ch) +#define Py_UNICODE_ISDIGIT(ch) _PyUnicode_IsDigit(ch) +#define Py_UNICODE_ISNUMERIC(ch) _PyUnicode_IsNumeric(ch) +#define Py_UNICODE_ISPRINTABLE(ch) _PyUnicode_IsPrintable(ch) + +#define Py_UNICODE_TODECIMAL(ch) _PyUnicode_ToDecimalDigit(ch) +#define Py_UNICODE_TODIGIT(ch) _PyUnicode_ToDigit(ch) +#define Py_UNICODE_TONUMERIC(ch) _PyUnicode_ToNumeric(ch) + +#define Py_UNICODE_ISALPHA(ch) _PyUnicode_IsAlpha(ch) + +static inline int Py_UNICODE_ISALNUM(Py_UCS4 ch) { + return (Py_UNICODE_ISALPHA(ch) + || Py_UNICODE_ISDECIMAL(ch) + || Py_UNICODE_ISDIGIT(ch) + || Py_UNICODE_ISNUMERIC(ch)); +} + + +/* === Misc functions ===================================================== */ + PyAPI_FUNC(PyObject*) _PyUnicode_FormatLong(PyObject *, int, int, int); /* Return an interned Unicode object for an Identifier; may fail if there is no memory.*/ @@ -1144,7 +954,7 @@ PyAPI_FUNC(PyObject*) _PyUnicode_FromId(_Py_Identifier*); and where the hash values are equal (i.e. a very probable match) */ PyAPI_FUNC(int) _PyUnicode_EQ(PyObject *, PyObject *); -/* Equality check. Returns -1 on failure. */ +/* Equality check. */ PyAPI_FUNC(int) _PyUnicode_Equal(PyObject *, PyObject *); PyAPI_FUNC(int) _PyUnicode_WideCharString_Converter(PyObject *, void *); diff --git a/src/external/windows/include/python/cpython/warnings.h b/src/external/windows/include/python/cpython/warnings.h index 0e9d4d81..2ba13213 100644 --- a/src/external/windows/include/python/cpython/warnings.h +++ b/src/external/windows/include/python/cpython/warnings.h @@ -17,4 +17,4 @@ PyAPI_FUNC(int) PyErr_WarnExplicitFormat( const char *format, ...); // DEPRECATED: Use PyErr_WarnEx() instead. -#define PyErr_Warn(category, msg) PyErr_WarnEx(category, msg, 1) +#define PyErr_Warn(category, msg) PyErr_WarnEx((category), (msg), 1) diff --git a/src/external/windows/include/python/cpython/weakrefobject.h b/src/external/windows/include/python/cpython/weakrefobject.h index 1b56d0ce..68475efc 100644 --- a/src/external/windows/include/python/cpython/weakrefobject.h +++ b/src/external/windows/include/python/cpython/weakrefobject.h @@ -53,6 +53,4 @@ static inline PyObject* PyWeakref_GET_OBJECT(PyObject *ref_obj) { } return Py_None; } -#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyWeakref_GET_OBJECT(ref) PyWeakref_GET_OBJECT(_PyObject_CAST(ref)) -#endif +#define PyWeakref_GET_OBJECT(ref) PyWeakref_GET_OBJECT(_PyObject_CAST(ref)) diff --git a/src/external/windows/include/python/datetime.h b/src/external/windows/include/python/datetime.h index d4e5c177..ed7e4fec 100755 --- a/src/external/windows/include/python/datetime.h +++ b/src/external/windows/include/python/datetime.h @@ -119,39 +119,39 @@ typedef struct // o is a pointer to a time or a datetime object. #define _PyDateTime_HAS_TZINFO(o) (((_PyDateTime_BaseTZInfo *)(o))->hastzinfo) -#define PyDateTime_GET_YEAR(o) ((((PyDateTime_Date*)o)->data[0] << 8) | \ - ((PyDateTime_Date*)o)->data[1]) -#define PyDateTime_GET_MONTH(o) (((PyDateTime_Date*)o)->data[2]) -#define PyDateTime_GET_DAY(o) (((PyDateTime_Date*)o)->data[3]) +#define PyDateTime_GET_YEAR(o) ((((PyDateTime_Date*)(o))->data[0] << 8) | \ + ((PyDateTime_Date*)(o))->data[1]) +#define PyDateTime_GET_MONTH(o) (((PyDateTime_Date*)(o))->data[2]) +#define PyDateTime_GET_DAY(o) (((PyDateTime_Date*)(o))->data[3]) -#define PyDateTime_DATE_GET_HOUR(o) (((PyDateTime_DateTime*)o)->data[4]) -#define PyDateTime_DATE_GET_MINUTE(o) (((PyDateTime_DateTime*)o)->data[5]) -#define PyDateTime_DATE_GET_SECOND(o) (((PyDateTime_DateTime*)o)->data[6]) +#define PyDateTime_DATE_GET_HOUR(o) (((PyDateTime_DateTime*)(o))->data[4]) +#define PyDateTime_DATE_GET_MINUTE(o) (((PyDateTime_DateTime*)(o))->data[5]) +#define PyDateTime_DATE_GET_SECOND(o) (((PyDateTime_DateTime*)(o))->data[6]) #define PyDateTime_DATE_GET_MICROSECOND(o) \ - ((((PyDateTime_DateTime*)o)->data[7] << 16) | \ - (((PyDateTime_DateTime*)o)->data[8] << 8) | \ - ((PyDateTime_DateTime*)o)->data[9]) -#define PyDateTime_DATE_GET_FOLD(o) (((PyDateTime_DateTime*)o)->fold) -#define PyDateTime_DATE_GET_TZINFO(o) (_PyDateTime_HAS_TZINFO(o) ? \ + ((((PyDateTime_DateTime*)(o))->data[7] << 16) | \ + (((PyDateTime_DateTime*)(o))->data[8] << 8) | \ + ((PyDateTime_DateTime*)(o))->data[9]) +#define PyDateTime_DATE_GET_FOLD(o) (((PyDateTime_DateTime*)(o))->fold) +#define PyDateTime_DATE_GET_TZINFO(o) (_PyDateTime_HAS_TZINFO((o)) ? \ ((PyDateTime_DateTime *)(o))->tzinfo : Py_None) /* Apply for time instances. */ -#define PyDateTime_TIME_GET_HOUR(o) (((PyDateTime_Time*)o)->data[0]) -#define PyDateTime_TIME_GET_MINUTE(o) (((PyDateTime_Time*)o)->data[1]) -#define PyDateTime_TIME_GET_SECOND(o) (((PyDateTime_Time*)o)->data[2]) +#define PyDateTime_TIME_GET_HOUR(o) (((PyDateTime_Time*)(o))->data[0]) +#define PyDateTime_TIME_GET_MINUTE(o) (((PyDateTime_Time*)(o))->data[1]) +#define PyDateTime_TIME_GET_SECOND(o) (((PyDateTime_Time*)(o))->data[2]) #define PyDateTime_TIME_GET_MICROSECOND(o) \ - ((((PyDateTime_Time*)o)->data[3] << 16) | \ - (((PyDateTime_Time*)o)->data[4] << 8) | \ - ((PyDateTime_Time*)o)->data[5]) -#define PyDateTime_TIME_GET_FOLD(o) (((PyDateTime_Time*)o)->fold) + ((((PyDateTime_Time*)(o))->data[3] << 16) | \ + (((PyDateTime_Time*)(o))->data[4] << 8) | \ + ((PyDateTime_Time*)(o))->data[5]) +#define PyDateTime_TIME_GET_FOLD(o) (((PyDateTime_Time*)(o))->fold) #define PyDateTime_TIME_GET_TZINFO(o) (_PyDateTime_HAS_TZINFO(o) ? \ ((PyDateTime_Time *)(o))->tzinfo : Py_None) /* Apply for time delta instances */ -#define PyDateTime_DELTA_GET_DAYS(o) (((PyDateTime_Delta*)o)->days) -#define PyDateTime_DELTA_GET_SECONDS(o) (((PyDateTime_Delta*)o)->seconds) +#define PyDateTime_DELTA_GET_DAYS(o) (((PyDateTime_Delta*)(o))->days) +#define PyDateTime_DELTA_GET_SECONDS(o) (((PyDateTime_Delta*)(o))->seconds) #define PyDateTime_DELTA_GET_MICROSECONDS(o) \ - (((PyDateTime_Delta*)o)->microseconds) + (((PyDateTime_Delta*)(o))->microseconds) /* Define structure for C API. */ @@ -203,60 +203,60 @@ static PyDateTime_CAPI *PyDateTimeAPI = NULL; #define PyDateTime_TimeZone_UTC PyDateTimeAPI->TimeZone_UTC /* Macros for type checking when not building the Python core. */ -#define PyDate_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DateType) -#define PyDate_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DateType) +#define PyDate_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->DateType) +#define PyDate_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->DateType) -#define PyDateTime_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DateTimeType) -#define PyDateTime_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DateTimeType) +#define PyDateTime_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->DateTimeType) +#define PyDateTime_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->DateTimeType) -#define PyTime_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->TimeType) -#define PyTime_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->TimeType) +#define PyTime_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->TimeType) +#define PyTime_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->TimeType) -#define PyDelta_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->DeltaType) -#define PyDelta_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->DeltaType) +#define PyDelta_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->DeltaType) +#define PyDelta_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->DeltaType) -#define PyTZInfo_Check(op) PyObject_TypeCheck(op, PyDateTimeAPI->TZInfoType) -#define PyTZInfo_CheckExact(op) Py_IS_TYPE(op, PyDateTimeAPI->TZInfoType) +#define PyTZInfo_Check(op) PyObject_TypeCheck((op), PyDateTimeAPI->TZInfoType) +#define PyTZInfo_CheckExact(op) Py_IS_TYPE((op), PyDateTimeAPI->TZInfoType) /* Macros for accessing constructors in a simplified fashion. */ #define PyDate_FromDate(year, month, day) \ - PyDateTimeAPI->Date_FromDate(year, month, day, PyDateTimeAPI->DateType) + PyDateTimeAPI->Date_FromDate((year), (month), (day), PyDateTimeAPI->DateType) #define PyDateTime_FromDateAndTime(year, month, day, hour, min, sec, usec) \ - PyDateTimeAPI->DateTime_FromDateAndTime(year, month, day, hour, \ - min, sec, usec, Py_None, PyDateTimeAPI->DateTimeType) + PyDateTimeAPI->DateTime_FromDateAndTime((year), (month), (day), (hour), \ + (min), (sec), (usec), Py_None, PyDateTimeAPI->DateTimeType) #define PyDateTime_FromDateAndTimeAndFold(year, month, day, hour, min, sec, usec, fold) \ - PyDateTimeAPI->DateTime_FromDateAndTimeAndFold(year, month, day, hour, \ - min, sec, usec, Py_None, fold, PyDateTimeAPI->DateTimeType) + PyDateTimeAPI->DateTime_FromDateAndTimeAndFold((year), (month), (day), (hour), \ + (min), (sec), (usec), Py_None, (fold), PyDateTimeAPI->DateTimeType) #define PyTime_FromTime(hour, minute, second, usecond) \ - PyDateTimeAPI->Time_FromTime(hour, minute, second, usecond, \ + PyDateTimeAPI->Time_FromTime((hour), (minute), (second), (usecond), \ Py_None, PyDateTimeAPI->TimeType) #define PyTime_FromTimeAndFold(hour, minute, second, usecond, fold) \ - PyDateTimeAPI->Time_FromTimeAndFold(hour, minute, second, usecond, \ - Py_None, fold, PyDateTimeAPI->TimeType) + PyDateTimeAPI->Time_FromTimeAndFold((hour), (minute), (second), (usecond), \ + Py_None, (fold), PyDateTimeAPI->TimeType) #define PyDelta_FromDSU(days, seconds, useconds) \ - PyDateTimeAPI->Delta_FromDelta(days, seconds, useconds, 1, \ + PyDateTimeAPI->Delta_FromDelta((days), (seconds), (useconds), 1, \ PyDateTimeAPI->DeltaType) #define PyTimeZone_FromOffset(offset) \ - PyDateTimeAPI->TimeZone_FromTimeZone(offset, NULL) + PyDateTimeAPI->TimeZone_FromTimeZone((offset), NULL) #define PyTimeZone_FromOffsetAndName(offset, name) \ - PyDateTimeAPI->TimeZone_FromTimeZone(offset, name) + PyDateTimeAPI->TimeZone_FromTimeZone((offset), (name)) /* Macros supporting the DB API. */ #define PyDateTime_FromTimestamp(args) \ PyDateTimeAPI->DateTime_FromTimestamp( \ - (PyObject*) (PyDateTimeAPI->DateTimeType), args, NULL) + (PyObject*) (PyDateTimeAPI->DateTimeType), (args), NULL) #define PyDate_FromTimestamp(args) \ PyDateTimeAPI->Date_FromTimestamp( \ - (PyObject*) (PyDateTimeAPI->DateType), args) + (PyObject*) (PyDateTimeAPI->DateType), (args)) #endif /* !defined(_PY_DATETIME_IMPL) */ diff --git a/src/external/windows/include/python/descrobject.h b/src/external/windows/include/python/descrobject.h index f4fc9ef2..f5bfa035 100755 --- a/src/external/windows/include/python/descrobject.h +++ b/src/external/windows/include/python/descrobject.h @@ -32,6 +32,62 @@ PyAPI_FUNC(PyObject *) PyDescr_NewGetSet(PyTypeObject *, PyGetSetDef *); PyAPI_FUNC(PyObject *) PyDictProxy_New(PyObject *); PyAPI_FUNC(PyObject *) PyWrapper_New(PyObject *, PyObject *); + +/* An array of PyMemberDef structures defines the name, type and offset + of selected members of a C structure. These can be read by + PyMember_GetOne() and set by PyMember_SetOne() (except if their READONLY + flag is set). The array must be terminated with an entry whose name + pointer is NULL. */ +struct PyMemberDef { + const char *name; + int type; + Py_ssize_t offset; + int flags; + const char *doc; +}; + +// These constants used to be in structmember.h, not prefixed by Py_. +// (structmember.h now has aliases to the new names.) + +/* Types */ +#define Py_T_SHORT 0 +#define Py_T_INT 1 +#define Py_T_LONG 2 +#define Py_T_FLOAT 3 +#define Py_T_DOUBLE 4 +#define Py_T_STRING 5 +#define _Py_T_OBJECT 6 // Deprecated, use Py_T_OBJECT_EX instead +/* the ordering here is weird for binary compatibility */ +#define Py_T_CHAR 7 /* 1-character string */ +#define Py_T_BYTE 8 /* 8-bit signed int */ +/* unsigned variants: */ +#define Py_T_UBYTE 9 +#define Py_T_USHORT 10 +#define Py_T_UINT 11 +#define Py_T_ULONG 12 + +/* Added by Jack: strings contained in the structure */ +#define Py_T_STRING_INPLACE 13 + +/* Added by Lillo: bools contained in the structure (assumed char) */ +#define Py_T_BOOL 14 + +#define Py_T_OBJECT_EX 16 +#define Py_T_LONGLONG 17 +#define Py_T_ULONGLONG 18 + +#define Py_T_PYSSIZET 19 /* Py_ssize_t */ +#define _Py_T_NONE 20 // Deprecated. Value is always None. + +/* Flags */ +#define Py_READONLY 1 +#define Py_AUDIT_READ 2 // Added in 3.10, harmless no-op before that +#define _Py_WRITE_RESTRICTED 4 // Deprecated, no-op. Do not reuse the value. +#define Py_RELATIVE_OFFSET 8 + +PyAPI_FUNC(PyObject *) PyMember_GetOne(const char *, PyMemberDef *); +PyAPI_FUNC(int) PyMember_SetOne(char *, PyMemberDef *, PyObject *); + #ifndef Py_LIMITED_API # define Py_CPYTHON_DESCROBJECT_H # include "cpython/descrobject.h" diff --git a/src/external/windows/include/python/dictobject.h b/src/external/windows/include/python/dictobject.h index d7555257..05d93651 100755 --- a/src/external/windows/include/python/dictobject.h +++ b/src/external/windows/include/python/dictobject.h @@ -16,7 +16,7 @@ PyAPI_DATA(PyTypeObject) PyDict_Type; #define PyDict_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_DICT_SUBCLASS) -#define PyDict_CheckExact(op) Py_IS_TYPE(op, &PyDict_Type) +#define PyDict_CheckExact(op) Py_IS_TYPE((op), &PyDict_Type) PyAPI_FUNC(PyObject *) PyDict_New(void); PyAPI_FUNC(PyObject *) PyDict_GetItem(PyObject *mp, PyObject *key); @@ -67,9 +67,9 @@ PyAPI_DATA(PyTypeObject) PyDictKeys_Type; PyAPI_DATA(PyTypeObject) PyDictValues_Type; PyAPI_DATA(PyTypeObject) PyDictItems_Type; -#define PyDictKeys_Check(op) PyObject_TypeCheck(op, &PyDictKeys_Type) -#define PyDictValues_Check(op) PyObject_TypeCheck(op, &PyDictValues_Type) -#define PyDictItems_Check(op) PyObject_TypeCheck(op, &PyDictItems_Type) +#define PyDictKeys_Check(op) PyObject_TypeCheck((op), &PyDictKeys_Type) +#define PyDictValues_Check(op) PyObject_TypeCheck((op), &PyDictValues_Type) +#define PyDictItems_Check(op) PyObject_TypeCheck((op), &PyDictItems_Type) /* This excludes Values, since they are not sets. */ # define PyDictViewSet_Check(op) \ (PyDictKeys_Check(op) || PyDictItems_Check(op)) diff --git a/src/external/windows/include/python/errcode.h b/src/external/windows/include/python/errcode.h index 66ef202b..ad22ec13 100755 --- a/src/external/windows/include/python/errcode.h +++ b/src/external/windows/include/python/errcode.h @@ -4,7 +4,6 @@ extern "C" { #endif - /* Error codes passed around between file input, tokenizer, parser and interpreter. This is necessary so we can turn them into Python exceptions at a higher level. Note that some errors have a @@ -13,24 +12,25 @@ extern "C" { the parser only returns E_EOF when it hits EOF immediately, and it never returns E_OK. */ -#define E_OK 10 /* No error */ -#define E_EOF 11 /* End Of File */ -#define E_INTR 12 /* Interrupted */ -#define E_TOKEN 13 /* Bad token */ -#define E_SYNTAX 14 /* Syntax error */ -#define E_NOMEM 15 /* Ran out of memory */ -#define E_DONE 16 /* Parsing complete */ -#define E_ERROR 17 /* Execution error */ -#define E_TABSPACE 18 /* Inconsistent mixing of tabs and spaces */ -#define E_OVERFLOW 19 /* Node had too many children */ -#define E_TOODEEP 20 /* Too many indentation levels */ -#define E_DEDENT 21 /* No matching outer block for dedent */ -#define E_DECODE 22 /* Error in decoding into Unicode */ -#define E_EOFS 23 /* EOF in triple-quoted string */ -#define E_EOLS 24 /* EOL in single-quoted string */ -#define E_LINECONT 25 /* Unexpected characters after a line continuation */ -#define E_BADSINGLE 27 /* Ill-formed single statement input */ -#define E_INTERACT_STOP 28 /* Interactive mode stopped tokenization */ +#define E_OK 10 /* No error */ +#define E_EOF 11 /* End Of File */ +#define E_INTR 12 /* Interrupted */ +#define E_TOKEN 13 /* Bad token */ +#define E_SYNTAX 14 /* Syntax error */ +#define E_NOMEM 15 /* Ran out of memory */ +#define E_DONE 16 /* Parsing complete */ +#define E_ERROR 17 /* Execution error */ +#define E_TABSPACE 18 /* Inconsistent mixing of tabs and spaces */ +#define E_OVERFLOW 19 /* Node had too many children */ +#define E_TOODEEP 20 /* Too many indentation levels */ +#define E_DEDENT 21 /* No matching outer block for dedent */ +#define E_DECODE 22 /* Error in decoding into Unicode */ +#define E_EOFS 23 /* EOF in triple-quoted string */ +#define E_EOLS 24 /* EOL in single-quoted string */ +#define E_LINECONT 25 /* Unexpected characters after a line continuation */ +#define E_BADSINGLE 27 /* Ill-formed single statement input */ +#define E_INTERACT_STOP 28 /* Interactive mode stopped tokenization */ +#define E_COLUMNOVERFLOW 29 /* Column offset overflow */ #ifdef __cplusplus } diff --git a/src/external/windows/include/python/exports.h b/src/external/windows/include/python/exports.h index 20a74bb9..8c78f6be 100755 --- a/src/external/windows/include/python/exports.h +++ b/src/external/windows/include/python/exports.h @@ -2,9 +2,15 @@ #define Py_EXPORTS_H #if defined(_WIN32) || defined(__CYGWIN__) - #define Py_IMPORTED_SYMBOL __declspec(dllimport) - #define Py_EXPORTED_SYMBOL __declspec(dllexport) - #define Py_LOCAL_SYMBOL + #if defined(Py_ENABLE_SHARED) + #define Py_IMPORTED_SYMBOL __declspec(dllimport) + #define Py_EXPORTED_SYMBOL __declspec(dllexport) + #define Py_LOCAL_SYMBOL + #else + #define Py_IMPORTED_SYMBOL + #define Py_EXPORTED_SYMBOL + #define Py_LOCAL_SYMBOL + #endif #else /* * If we only ever used gcc >= 5, we could use __has_attribute(visibility) diff --git a/src/external/windows/include/python/fileobject.h b/src/external/windows/include/python/fileobject.h index cc880d5b..20af2def 100755 --- a/src/external/windows/include/python/fileobject.h +++ b/src/external/windows/include/python/fileobject.h @@ -19,14 +19,14 @@ PyAPI_FUNC(int) PyObject_AsFileDescriptor(PyObject *); /* The default encoding used by the platform file system APIs If non-NULL, this is different than the default encoding for strings */ -PyAPI_DATA(const char *) Py_FileSystemDefaultEncoding; +Py_DEPRECATED(3.12) PyAPI_DATA(const char *) Py_FileSystemDefaultEncoding; #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03060000 -PyAPI_DATA(const char *) Py_FileSystemDefaultEncodeErrors; +Py_DEPRECATED(3.12) PyAPI_DATA(const char *) Py_FileSystemDefaultEncodeErrors; #endif -PyAPI_DATA(int) Py_HasFileSystemDefaultEncoding; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_HasFileSystemDefaultEncoding; #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000 -PyAPI_DATA(int) Py_UTF8Mode; +Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_UTF8Mode; #endif /* A routine to check if a file descriptor can be select()-ed. */ diff --git a/src/external/windows/include/python/floatobject.h b/src/external/windows/include/python/floatobject.h index 08ebb7b4..04ebe7b5 100755 --- a/src/external/windows/include/python/floatobject.h +++ b/src/external/windows/include/python/floatobject.h @@ -14,7 +14,7 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyFloat_Type; #define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type) -#define PyFloat_CheckExact(op) Py_IS_TYPE(op, &PyFloat_Type) +#define PyFloat_CheckExact(op) Py_IS_TYPE((op), &PyFloat_Type) #define Py_RETURN_NAN return PyFloat_FromDouble(Py_NAN) diff --git a/src/external/windows/include/python/import.h b/src/external/windows/include/python/import.h index 50142586..2bb676e3 100755 --- a/src/external/windows/include/python/import.h +++ b/src/external/windows/include/python/import.h @@ -67,7 +67,7 @@ PyAPI_FUNC(PyObject *) PyImport_ImportModuleLevelObject( #endif #define PyImport_ImportModuleEx(n, g, l, f) \ - PyImport_ImportModuleLevel(n, g, l, f, 0) + PyImport_ImportModuleLevel((n), (g), (l), (f), 0) PyAPI_FUNC(PyObject *) PyImport_GetImporter(PyObject *path); PyAPI_FUNC(PyObject *) PyImport_Import(PyObject *name); diff --git a/src/external/windows/include/python/internal/pycore_accu.h b/src/external/windows/include/python/internal/pycore_accu.h deleted file mode 100755 index 344a9c6c..00000000 --- a/src/external/windows/include/python/internal/pycore_accu.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef Py_LIMITED_API -#ifndef Py_INTERNAL_ACCU_H -#define Py_INTERNAL_ACCU_H -#ifdef __cplusplus -extern "C" { -#endif - -/*** This is a private API for use by the interpreter and the stdlib. - *** Its definition may be changed or removed at any moment. - ***/ - -#ifndef Py_BUILD_CORE -# error "this header requires Py_BUILD_CORE define" -#endif - -/* - * A two-level accumulator of unicode objects that avoids both the overhead - * of keeping a huge number of small separate objects, and the quadratic - * behaviour of using a naive repeated concatenation scheme. - */ - -#undef small /* defined by some Windows headers */ - -typedef struct { - PyObject *large; /* A list of previously accumulated large strings */ - PyObject *small; /* Pending small strings */ -} _PyAccu; - -PyAPI_FUNC(int) _PyAccu_Init(_PyAccu *acc); -PyAPI_FUNC(int) _PyAccu_Accumulate(_PyAccu *acc, PyObject *unicode); -PyAPI_FUNC(PyObject *) _PyAccu_FinishAsList(_PyAccu *acc); -PyAPI_FUNC(PyObject *) _PyAccu_Finish(_PyAccu *acc); -PyAPI_FUNC(void) _PyAccu_Destroy(_PyAccu *acc); - -#ifdef __cplusplus -} -#endif -#endif /* !Py_INTERNAL_ACCU_H */ -#endif /* !Py_LIMITED_API */ diff --git a/src/external/windows/include/python/internal/pycore_asdl.h b/src/external/windows/include/python/internal/pycore_asdl.h index 39420236..3a25b342 100755 --- a/src/external/windows/include/python/internal/pycore_asdl.h +++ b/src/external/windows/include/python/internal/pycore_asdl.h @@ -91,7 +91,7 @@ asdl_ ## NAME ## _seq *_Py_asdl_ ## NAME ## _seq_new(Py_ssize_t size, PyArena *a (S)->typed_elements[_asdl_i] = (V); \ } while (0) #else -# define asdl_seq_SET(S, I, V) _Py_RVALUE((S)->typed_elements[I] = (V)) +# define asdl_seq_SET(S, I, V) _Py_RVALUE((S)->typed_elements[(I)] = (V)) #endif #ifdef Py_DEBUG @@ -103,7 +103,7 @@ asdl_ ## NAME ## _seq *_Py_asdl_ ## NAME ## _seq_new(Py_ssize_t size, PyArena *a (S)->elements[_asdl_i] = (V); \ } while (0) #else -# define asdl_seq_SET_UNTYPED(S, I, V) _Py_RVALUE((S)->elements[I] = (V)) +# define asdl_seq_SET_UNTYPED(S, I, V) _Py_RVALUE((S)->elements[(I)] = (V)) #endif #ifdef __cplusplus diff --git a/src/external/windows/include/python/internal/pycore_ast.h b/src/external/windows/include/python/internal/pycore_ast.h index 1e03bf99..6726dc51 100755 --- a/src/external/windows/include/python/internal/pycore_ast.h +++ b/src/external/windows/include/python/internal/pycore_ast.h @@ -51,6 +51,8 @@ typedef struct _pattern *pattern_ty; typedef struct _type_ignore *type_ignore_ty; +typedef struct _type_param *type_param_ty; + typedef struct { _ASDL_SEQ_HEAD @@ -147,6 +149,14 @@ typedef struct { asdl_type_ignore_seq *_Py_asdl_type_ignore_seq_new(Py_ssize_t size, PyArena *arena); +typedef struct { + _ASDL_SEQ_HEAD + type_param_ty typed_elements[1]; +} asdl_type_param_seq; + +asdl_type_param_seq *_Py_asdl_type_param_seq_new(Py_ssize_t size, PyArena + *arena); + enum _mod_kind {Module_kind=1, Interactive_kind=2, Expression_kind=3, FunctionType_kind=4}; @@ -176,12 +186,13 @@ struct _mod { enum _stmt_kind {FunctionDef_kind=1, AsyncFunctionDef_kind=2, ClassDef_kind=3, Return_kind=4, Delete_kind=5, Assign_kind=6, - AugAssign_kind=7, AnnAssign_kind=8, For_kind=9, - AsyncFor_kind=10, While_kind=11, If_kind=12, With_kind=13, - AsyncWith_kind=14, Match_kind=15, Raise_kind=16, Try_kind=17, - TryStar_kind=18, Assert_kind=19, Import_kind=20, - ImportFrom_kind=21, Global_kind=22, Nonlocal_kind=23, - Expr_kind=24, Pass_kind=25, Break_kind=26, Continue_kind=27}; + TypeAlias_kind=7, AugAssign_kind=8, AnnAssign_kind=9, + For_kind=10, AsyncFor_kind=11, While_kind=12, If_kind=13, + With_kind=14, AsyncWith_kind=15, Match_kind=16, + Raise_kind=17, Try_kind=18, TryStar_kind=19, Assert_kind=20, + Import_kind=21, ImportFrom_kind=22, Global_kind=23, + Nonlocal_kind=24, Expr_kind=25, Pass_kind=26, Break_kind=27, + Continue_kind=28}; struct _stmt { enum _stmt_kind kind; union { @@ -192,6 +203,7 @@ struct _stmt { asdl_expr_seq *decorator_list; expr_ty returns; string type_comment; + asdl_type_param_seq *type_params; } FunctionDef; struct { @@ -201,6 +213,7 @@ struct _stmt { asdl_expr_seq *decorator_list; expr_ty returns; string type_comment; + asdl_type_param_seq *type_params; } AsyncFunctionDef; struct { @@ -209,6 +222,7 @@ struct _stmt { asdl_keyword_seq *keywords; asdl_stmt_seq *body; asdl_expr_seq *decorator_list; + asdl_type_param_seq *type_params; } ClassDef; struct { @@ -225,6 +239,12 @@ struct _stmt { string type_comment; } Assign; + struct { + expr_ty name; + asdl_type_param_seq *type_params; + expr_ty value; + } TypeAlias; + struct { expr_ty target; operator_ty op; @@ -630,6 +650,30 @@ struct _type_ignore { } v; }; +enum _type_param_kind {TypeVar_kind=1, ParamSpec_kind=2, TypeVarTuple_kind=3}; +struct _type_param { + enum _type_param_kind kind; + union { + struct { + identifier name; + expr_ty bound; + } TypeVar; + + struct { + identifier name; + } ParamSpec; + + struct { + identifier name; + } TypeVarTuple; + + } v; + int lineno; + int col_offset; + int end_lineno; + int end_col_offset; +}; + // Note: these macros affect function definitions, not only call sites. mod_ty _PyAST_Module(asdl_stmt_seq * body, asdl_type_ignore_seq * type_ignores, @@ -640,19 +684,20 @@ mod_ty _PyAST_FunctionType(asdl_expr_seq * argtypes, expr_ty returns, PyArena *arena); stmt_ty _PyAST_FunctionDef(identifier name, arguments_ty args, asdl_stmt_seq * body, asdl_expr_seq * decorator_list, expr_ty - returns, string type_comment, int lineno, int - col_offset, int end_lineno, int end_col_offset, - PyArena *arena); + returns, string type_comment, asdl_type_param_seq * + type_params, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); stmt_ty _PyAST_AsyncFunctionDef(identifier name, arguments_ty args, asdl_stmt_seq * body, asdl_expr_seq * decorator_list, expr_ty returns, string - type_comment, int lineno, int col_offset, int + type_comment, asdl_type_param_seq * + type_params, int lineno, int col_offset, int end_lineno, int end_col_offset, PyArena *arena); stmt_ty _PyAST_ClassDef(identifier name, asdl_expr_seq * bases, asdl_keyword_seq * keywords, asdl_stmt_seq * body, - asdl_expr_seq * decorator_list, int lineno, int - col_offset, int end_lineno, int end_col_offset, PyArena - *arena); + asdl_expr_seq * decorator_list, asdl_type_param_seq * + type_params, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); stmt_ty _PyAST_Return(expr_ty value, int lineno, int col_offset, int end_lineno, int end_col_offset, PyArena *arena); stmt_ty _PyAST_Delete(asdl_expr_seq * targets, int lineno, int col_offset, int @@ -660,6 +705,9 @@ stmt_ty _PyAST_Delete(asdl_expr_seq * targets, int lineno, int col_offset, int stmt_ty _PyAST_Assign(asdl_expr_seq * targets, expr_ty value, string type_comment, int lineno, int col_offset, int end_lineno, int end_col_offset, PyArena *arena); +stmt_ty _PyAST_TypeAlias(expr_ty name, asdl_type_param_seq * type_params, + expr_ty value, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); stmt_ty _PyAST_AugAssign(expr_ty target, operator_ty op, expr_ty value, int lineno, int col_offset, int end_lineno, int end_col_offset, PyArena *arena); @@ -844,6 +892,14 @@ pattern_ty _PyAST_MatchOr(asdl_pattern_seq * patterns, int lineno, int col_offset, int end_lineno, int end_col_offset, PyArena *arena); type_ignore_ty _PyAST_TypeIgnore(int lineno, string tag, PyArena *arena); +type_param_ty _PyAST_TypeVar(identifier name, expr_ty bound, int lineno, int + col_offset, int end_lineno, int end_col_offset, + PyArena *arena); +type_param_ty _PyAST_ParamSpec(identifier name, int lineno, int col_offset, int + end_lineno, int end_col_offset, PyArena *arena); +type_param_ty _PyAST_TypeVarTuple(identifier name, int lineno, int col_offset, + int end_lineno, int end_col_offset, PyArena + *arena); PyObject* PyAST_mod2obj(mod_ty t); diff --git a/src/external/windows/include/python/internal/pycore_ast_state.h b/src/external/windows/include/python/internal/pycore_ast_state.h index 7ec15d84..2c03e449 100755 --- a/src/external/windows/include/python/internal/pycore_ast_state.h +++ b/src/external/windows/include/python/internal/pycore_ast_state.h @@ -12,8 +12,8 @@ extern "C" { struct ast_state { int initialized; - int recursion_depth; - int recursion_limit; + int unused_recursion_depth; + int unused_recursion_limit; PyObject *AST_type; PyObject *Add_singleton; PyObject *Add_type; @@ -118,6 +118,7 @@ struct ast_state { PyObject *Not_type; PyObject *Or_singleton; PyObject *Or_type; + PyObject *ParamSpec_type; PyObject *Pass_type; PyObject *Pow_singleton; PyObject *Pow_type; @@ -137,7 +138,10 @@ struct ast_state { PyObject *TryStar_type; PyObject *Try_type; PyObject *Tuple_type; + PyObject *TypeAlias_type; PyObject *TypeIgnore_type; + PyObject *TypeVarTuple_type; + PyObject *TypeVar_type; PyObject *UAdd_singleton; PyObject *UAdd_type; PyObject *USub_singleton; @@ -166,6 +170,7 @@ struct ast_state { PyObject *bases; PyObject *body; PyObject *boolop_type; + PyObject *bound; PyObject *cases; PyObject *cause; PyObject *cls; @@ -243,6 +248,8 @@ struct ast_state { PyObject *type_comment; PyObject *type_ignore_type; PyObject *type_ignores; + PyObject *type_param_type; + PyObject *type_params; PyObject *unaryop_type; PyObject *upper; PyObject *value; diff --git a/src/external/windows/include/python/internal/pycore_atexit.h b/src/external/windows/include/python/internal/pycore_atexit.h new file mode 100644 index 00000000..eeef5eea --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_atexit.h @@ -0,0 +1,57 @@ +#ifndef Py_INTERNAL_ATEXIT_H +#define Py_INTERNAL_ATEXIT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +//############### +// runtime atexit + +typedef void (*atexit_callbackfunc)(void); + +struct _atexit_runtime_state { + PyThread_type_lock mutex; +#define NEXITFUNCS 32 + atexit_callbackfunc callbacks[NEXITFUNCS]; + int ncallbacks; +}; + + +//################### +// interpreter atexit + +struct atexit_callback; +typedef struct atexit_callback { + atexit_datacallbackfunc func; + void *data; + struct atexit_callback *next; +} atexit_callback; + +typedef struct { + PyObject *func; + PyObject *args; + PyObject *kwargs; +} atexit_py_callback; + +struct atexit_state { + atexit_callback *ll_callbacks; + atexit_callback *last_ll_callback; + + // XXX The rest of the state could be moved to the atexit module state + // and a low-level callback added for it during module exec. + // For the moment we leave it here. + atexit_py_callback **callbacks; + int ncallbacks; + int callback_len; +}; + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_ATEXIT_H */ diff --git a/src/external/windows/include/python/internal/pycore_bytesobject.h b/src/external/windows/include/python/internal/pycore_bytesobject.h index 905a541c..024079ef 100644 --- a/src/external/windows/include/python/internal/pycore_bytesobject.h +++ b/src/external/windows/include/python/internal/pycore_bytesobject.h @@ -9,11 +9,6 @@ extern "C" { #endif -/* runtime lifecycle */ - -extern PyStatus _PyBytes_InitTypes(PyInterpreterState *); - - /* Substring Search. Returns the index of the first occurrence of diff --git a/src/external/windows/include/python/internal/pycore_call.h b/src/external/windows/include/python/internal/pycore_call.h index 51c25628..7c92619c 100755 --- a/src/external/windows/include/python/internal/pycore_call.h +++ b/src/external/windows/include/python/internal/pycore_call.h @@ -103,6 +103,7 @@ _PyObject_CallNoArgsTstate(PyThreadState *tstate, PyObject *func) { // Private static inline function variant of public PyObject_CallNoArgs() static inline PyObject * _PyObject_CallNoArgs(PyObject *func) { + EVAL_CALL_STAT_INC_IF_FUNCTION(EVAL_CALL_API, func); PyThreadState *tstate = _PyThreadState_GET(); return _PyObject_VectorcallTstate(tstate, func, NULL, 0, NULL); } @@ -111,9 +112,20 @@ _PyObject_CallNoArgs(PyObject *func) { static inline PyObject * _PyObject_FastCallTstate(PyThreadState *tstate, PyObject *func, PyObject *const *args, Py_ssize_t nargs) { + EVAL_CALL_STAT_INC_IF_FUNCTION(EVAL_CALL_API, func); return _PyObject_VectorcallTstate(tstate, func, args, (size_t)nargs, NULL); } +PyObject *const * +_PyStack_UnpackDict(PyThreadState *tstate, + PyObject *const *args, Py_ssize_t nargs, + PyObject *kwargs, PyObject **p_kwnames); + +void +_PyStack_UnpackDict_Free(PyObject *const *stack, Py_ssize_t nargs, + PyObject *kwnames); + +void _PyStack_UnpackDict_FreeNoDecRef(PyObject *const *stack, PyObject *kwnames); #ifdef __cplusplus } diff --git a/src/external/windows/include/python/internal/pycore_ceval.h b/src/external/windows/include/python/internal/pycore_ceval.h index 6b1adb50..9512856c 100755 --- a/src/external/windows/include/python/internal/pycore_ceval.h +++ b/src/external/windows/include/python/internal/pycore_ceval.h @@ -12,15 +12,8 @@ extern "C" { struct pyruntimestate; struct _ceval_runtime_state; -/* WASI has limited call stack. Python's recursion limit depends on code - layout, optimization, and WASI runtime. Wasmtime can handle about 700-750 - recursions, sometimes less. 600 is a more conservative limit. */ #ifndef Py_DEFAULT_RECURSION_LIMIT -# ifdef __wasi__ -# define Py_DEFAULT_RECURSION_LIMIT 600 -# else -# define Py_DEFAULT_RECURSION_LIMIT 1000 -# endif +# define Py_DEFAULT_RECURSION_LIMIT 1000 #endif #include "pycore_interp.h" // PyInterpreterState.eval_frame @@ -28,14 +21,14 @@ struct _ceval_runtime_state; extern void _Py_FinishPendingCalls(PyThreadState *tstate); -extern void _PyEval_InitRuntimeState(struct _ceval_runtime_state *); -extern void _PyEval_InitState(struct _ceval_state *, PyThread_type_lock); +extern void _PyEval_InitState(PyInterpreterState *, PyThread_type_lock); extern void _PyEval_FiniState(struct _ceval_state *ceval); PyAPI_FUNC(void) _PyEval_SignalReceived(PyInterpreterState *interp); PyAPI_FUNC(int) _PyEval_AddPendingCall( PyInterpreterState *interp, int (*func)(void *), - void *arg); + void *arg, + int mainthreadonly); PyAPI_FUNC(void) _PyEval_SignalAsyncExc(PyInterpreterState *interp); #ifdef HAVE_FORK extern PyStatus _PyEval_ReInitThreads(PyThreadState *tstate); @@ -65,10 +58,33 @@ extern PyObject* _PyEval_BuiltinsFromGlobals( PyThreadState *tstate, PyObject *globals); +// Trampoline API + +typedef struct { + // Callback to initialize the trampoline state + void* (*init_state)(void); + // Callback to register every trampoline being created + void (*write_state)(void* state, const void *code_addr, + unsigned int code_size, PyCodeObject* code); + // Callback to free the trampoline state + int (*free_state)(void* state); +} _PyPerf_Callbacks; + +extern int _PyPerfTrampoline_SetCallbacks(_PyPerf_Callbacks *); +extern void _PyPerfTrampoline_GetCallbacks(_PyPerf_Callbacks *); +extern int _PyPerfTrampoline_Init(int activate); +extern int _PyPerfTrampoline_Fini(void); +extern void _PyPerfTrampoline_FreeArenas(void); +extern int _PyIsPerfTrampolineActive(void); +extern PyStatus _PyPerfTrampoline_AfterFork_Child(void); +#ifdef PY_HAVE_PERF_TRAMPOLINE +extern _PyPerf_Callbacks _Py_perfmap_callbacks; +#endif static inline PyObject* _PyEval_EvalFrame(PyThreadState *tstate, struct _PyInterpreterFrame *frame, int throwflag) { + EVAL_CALL_STAT_INC(EVAL_CALL_TOTAL); if (tstate->interp->eval_frame == NULL) { return _PyEval_EvalFrameDefault(tstate, frame, throwflag); } @@ -81,11 +97,13 @@ _PyEval_Vector(PyThreadState *tstate, PyObject* const* args, size_t argcount, PyObject *kwnames); -extern int _PyEval_ThreadsInitialized(struct pyruntimestate *runtime); -extern PyStatus _PyEval_InitGIL(PyThreadState *tstate); +extern int _PyEval_ThreadsInitialized(void); +extern PyStatus _PyEval_InitGIL(PyThreadState *tstate, int own_gil); extern void _PyEval_FiniGIL(PyInterpreterState *interp); -extern void _PyEval_ReleaseLock(PyThreadState *tstate); +extern void _PyEval_AcquireLock(PyThreadState *tstate); +extern void _PyEval_ReleaseLock(PyInterpreterState *, PyThreadState *); +extern PyThreadState * _PyThreadState_SwapNoGIL(PyThreadState *); extern void _PyEval_DeactivateOpCache(void); @@ -96,12 +114,12 @@ extern void _PyEval_DeactivateOpCache(void); /* With USE_STACKCHECK macro defined, trigger stack checks in _Py_CheckRecursiveCall() on every 64th call to _Py_EnterRecursiveCall. */ static inline int _Py_MakeRecCheck(PyThreadState *tstate) { - return (tstate->recursion_remaining-- <= 0 - || (tstate->recursion_remaining & 63) == 0); + return (tstate->c_recursion_remaining-- <= 0 + || (tstate->c_recursion_remaining & 63) == 0); } #else static inline int _Py_MakeRecCheck(PyThreadState *tstate) { - return tstate->recursion_remaining-- <= 0; + return tstate->c_recursion_remaining-- <= 0; } #endif @@ -109,6 +127,9 @@ PyAPI_FUNC(int) _Py_CheckRecursiveCall( PyThreadState *tstate, const char *where); +int _Py_CheckRecursiveCallPy( + PyThreadState *tstate); + static inline int _Py_EnterRecursiveCallTstate(PyThreadState *tstate, const char *where) { return (_Py_MakeRecCheck(tstate) && _Py_CheckRecursiveCall(tstate, where)); @@ -120,7 +141,7 @@ static inline int _Py_EnterRecursiveCall(const char *where) { } static inline void _Py_LeaveRecursiveCallTstate(PyThreadState *tstate) { - tstate->recursion_remaining++; + tstate->c_recursion_remaining++; } static inline void _Py_LeaveRecursiveCall(void) { @@ -132,6 +153,11 @@ extern struct _PyInterpreterFrame* _PyEval_GetFrame(void); extern PyObject* _Py_MakeCoro(PyFunctionObject *func); +extern int _Py_HandlePending(PyThreadState *tstate); + +extern PyObject * _PyEval_GetFrameLocals(void); + + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/internal/pycore_ceval_state.h b/src/external/windows/include/python/internal/pycore_ceval_state.h new file mode 100644 index 00000000..3d6c4fde --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_ceval_state.h @@ -0,0 +1,103 @@ +#ifndef Py_INTERNAL_CEVAL_STATE_H +#define Py_INTERNAL_CEVAL_STATE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +#include "pycore_atomic.h" /* _Py_atomic_address */ +#include "pycore_gil.h" // struct _gil_runtime_state + + +struct _pending_calls { + int busy; + PyThread_type_lock lock; + /* Request for running pending calls. */ + _Py_atomic_int calls_to_do; + /* Request for looking at the `async_exc` field of the current + thread state. + Guarded by the GIL. */ + int async_exc; +#define NPENDINGCALLS 32 + struct _pending_call { + int (*func)(void *); + void *arg; + } calls[NPENDINGCALLS]; + int first; + int last; +}; + +typedef enum { + PERF_STATUS_FAILED = -1, // Perf trampoline is in an invalid state + PERF_STATUS_NO_INIT = 0, // Perf trampoline is not initialized + PERF_STATUS_OK = 1, // Perf trampoline is ready to be executed +} perf_status_t; + + +#ifdef PY_HAVE_PERF_TRAMPOLINE +struct code_arena_st; + +struct trampoline_api_st { + void* (*init_state)(void); + void (*write_state)(void* state, const void *code_addr, + unsigned int code_size, PyCodeObject* code); + int (*free_state)(void* state); + void *state; +}; +#endif + +struct _ceval_runtime_state { + struct { +#ifdef PY_HAVE_PERF_TRAMPOLINE + perf_status_t status; + Py_ssize_t extra_code_index; + struct code_arena_st *code_arena; + struct trampoline_api_st trampoline_api; + FILE *map_file; +#else + int _not_used; +#endif + } perf; + /* Request for checking signals. It is shared by all interpreters (see + bpo-40513). Any thread of any interpreter can receive a signal, but only + the main thread of the main interpreter can handle signals: see + _Py_ThreadCanHandleSignals(). */ + _Py_atomic_int signals_pending; + /* Pending calls to be made only on the main thread. */ + struct _pending_calls pending_mainthread; +}; + +#ifdef PY_HAVE_PERF_TRAMPOLINE +# define _PyEval_RUNTIME_PERF_INIT \ + { \ + .status = PERF_STATUS_NO_INIT, \ + .extra_code_index = -1, \ + } +#else +# define _PyEval_RUNTIME_PERF_INIT {0} +#endif + + +struct _ceval_state { + /* This single variable consolidates all requests to break out of + the fast path in the eval loop. */ + _Py_atomic_int eval_breaker; + /* Request for dropping the GIL */ + _Py_atomic_int gil_drop_request; + int recursion_limit; + struct _gil_runtime_state *gil; + int own_gil; + /* The GC is ready to be executed */ + _Py_atomic_int gc_scheduled; + struct _pending_calls pending; +}; + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CEVAL_STATE_H */ diff --git a/src/external/windows/include/python/internal/pycore_code.h b/src/external/windows/include/python/internal/pycore_code.h index c35a4377..6835fc62 100755 --- a/src/external/windows/include/python/internal/pycore_code.h +++ b/src/external/windows/include/python/internal/pycore_code.h @@ -4,6 +4,8 @@ extern "C" { #endif +#define CODE_MAX_WATCHERS 8 + /* PEP 659 * Specialization and quickening structs and helper functions */ @@ -16,109 +18,95 @@ extern "C" { #define CACHE_ENTRIES(cache) (sizeof(cache)/sizeof(_Py_CODEUNIT)) typedef struct { - _Py_CODEUNIT counter; - _Py_CODEUNIT index; - _Py_CODEUNIT module_keys_version[2]; - _Py_CODEUNIT builtin_keys_version; + uint16_t counter; + uint16_t index; + uint16_t module_keys_version; + uint16_t builtin_keys_version; } _PyLoadGlobalCache; #define INLINE_CACHE_ENTRIES_LOAD_GLOBAL CACHE_ENTRIES(_PyLoadGlobalCache) typedef struct { - _Py_CODEUNIT counter; + uint16_t counter; } _PyBinaryOpCache; #define INLINE_CACHE_ENTRIES_BINARY_OP CACHE_ENTRIES(_PyBinaryOpCache) typedef struct { - _Py_CODEUNIT counter; + uint16_t counter; } _PyUnpackSequenceCache; #define INLINE_CACHE_ENTRIES_UNPACK_SEQUENCE \ CACHE_ENTRIES(_PyUnpackSequenceCache) typedef struct { - _Py_CODEUNIT counter; - _Py_CODEUNIT mask; + uint16_t counter; } _PyCompareOpCache; #define INLINE_CACHE_ENTRIES_COMPARE_OP CACHE_ENTRIES(_PyCompareOpCache) typedef struct { - _Py_CODEUNIT counter; - _Py_CODEUNIT type_version[2]; - _Py_CODEUNIT func_version; + uint16_t counter; } _PyBinarySubscrCache; #define INLINE_CACHE_ENTRIES_BINARY_SUBSCR CACHE_ENTRIES(_PyBinarySubscrCache) typedef struct { - _Py_CODEUNIT counter; - _Py_CODEUNIT version[2]; - _Py_CODEUNIT index; + uint16_t counter; +} _PySuperAttrCache; + +#define INLINE_CACHE_ENTRIES_LOAD_SUPER_ATTR CACHE_ENTRIES(_PySuperAttrCache) + +typedef struct { + uint16_t counter; + uint16_t version[2]; + uint16_t index; } _PyAttrCache; -#define INLINE_CACHE_ENTRIES_LOAD_ATTR CACHE_ENTRIES(_PyAttrCache) +typedef struct { + uint16_t counter; + uint16_t type_version[2]; + uint16_t keys_version[2]; + uint16_t descr[4]; +} _PyLoadMethodCache; + + +// MUST be the max(_PyAttrCache, _PyLoadMethodCache) +#define INLINE_CACHE_ENTRIES_LOAD_ATTR CACHE_ENTRIES(_PyLoadMethodCache) #define INLINE_CACHE_ENTRIES_STORE_ATTR CACHE_ENTRIES(_PyAttrCache) typedef struct { - _Py_CODEUNIT counter; - _Py_CODEUNIT type_version[2]; - _Py_CODEUNIT dict_offset; - _Py_CODEUNIT keys_version[2]; - _Py_CODEUNIT descr[4]; -} _PyLoadMethodCache; - -#define INLINE_CACHE_ENTRIES_LOAD_METHOD CACHE_ENTRIES(_PyLoadMethodCache) - -typedef struct { - _Py_CODEUNIT counter; - _Py_CODEUNIT func_version[2]; - _Py_CODEUNIT min_args; + uint16_t counter; + uint16_t func_version[2]; } _PyCallCache; #define INLINE_CACHE_ENTRIES_CALL CACHE_ENTRIES(_PyCallCache) typedef struct { - _Py_CODEUNIT counter; -} _PyPrecallCache; - -#define INLINE_CACHE_ENTRIES_PRECALL CACHE_ENTRIES(_PyPrecallCache) - -typedef struct { - _Py_CODEUNIT counter; + uint16_t counter; } _PyStoreSubscrCache; #define INLINE_CACHE_ENTRIES_STORE_SUBSCR CACHE_ENTRIES(_PyStoreSubscrCache) -#define QUICKENING_WARMUP_DELAY 8 +typedef struct { + uint16_t counter; +} _PyForIterCache; -/* We want to compare to zero for efficiency, so we offset values accordingly */ -#define QUICKENING_INITIAL_WARMUP_VALUE (-QUICKENING_WARMUP_DELAY) +#define INLINE_CACHE_ENTRIES_FOR_ITER CACHE_ENTRIES(_PyForIterCache) -void _PyCode_Quicken(PyCodeObject *code); +typedef struct { + uint16_t counter; +} _PySendCache; -static inline void -_PyCode_Warmup(PyCodeObject *code) -{ - if (code->co_warmup != 0) { - code->co_warmup++; - if (code->co_warmup == 0) { - _PyCode_Quicken(code); - } - } -} - -extern uint8_t _PyOpcode_Adaptive[256]; - -extern Py_ssize_t _Py_QuickenedCount; +#define INLINE_CACHE_ENTRIES_SEND CACHE_ENTRIES(_PySendCache) // Borrowed references to common callables: struct callable_cache { PyObject *isinstance; PyObject *len; PyObject *list_append; + PyObject *object__getattribute__; }; /* "Locals plus" for a code object is the set of locals + cell vars + @@ -140,6 +128,7 @@ struct callable_cache { // Note that these all fit within a byte, as do combinations. // Later, we will use the smaller numbers to differentiate the different // kinds of locals (e.g. pos-only arg, varkwargs, local-only). +#define CO_FAST_HIDDEN 0x10 #define CO_FAST_LOCAL 0x20 #define CO_FAST_CELL 0x40 #define CO_FAST_FREE 0x80 @@ -235,90 +224,47 @@ extern int _PyLineTable_PreviousAddressRange(PyCodeAddressRange *range); /* Specialization functions */ -extern int _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, - PyObject *name); -extern int _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, +extern void _Py_Specialize_LoadSuperAttr(PyObject *global_super, PyObject *cls, + _Py_CODEUNIT *instr, int load_method); +extern void _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name); -extern int _Py_Specialize_LoadGlobal(PyObject *globals, PyObject *builtins, _Py_CODEUNIT *instr, PyObject *name); -extern int _Py_Specialize_LoadMethod(PyObject *owner, _Py_CODEUNIT *instr, +extern void _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr, PyObject *name); -extern int _Py_Specialize_BinarySubscr(PyObject *sub, PyObject *container, _Py_CODEUNIT *instr); -extern int _Py_Specialize_StoreSubscr(PyObject *container, PyObject *sub, _Py_CODEUNIT *instr); -extern int _Py_Specialize_Call(PyObject *callable, _Py_CODEUNIT *instr, - int nargs, PyObject *kwnames); -extern int _Py_Specialize_Precall(PyObject *callable, _Py_CODEUNIT *instr, - int nargs, PyObject *kwnames, int oparg); +extern void _Py_Specialize_LoadGlobal(PyObject *globals, PyObject *builtins, + _Py_CODEUNIT *instr, PyObject *name); +extern void _Py_Specialize_BinarySubscr(PyObject *sub, PyObject *container, + _Py_CODEUNIT *instr); +extern void _Py_Specialize_StoreSubscr(PyObject *container, PyObject *sub, + _Py_CODEUNIT *instr); +extern void _Py_Specialize_Call(PyObject *callable, _Py_CODEUNIT *instr, + int nargs, PyObject *kwnames); extern void _Py_Specialize_BinaryOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, int oparg, PyObject **locals); extern void _Py_Specialize_CompareOp(PyObject *lhs, PyObject *rhs, _Py_CODEUNIT *instr, int oparg); extern void _Py_Specialize_UnpackSequence(PyObject *seq, _Py_CODEUNIT *instr, int oparg); +extern void _Py_Specialize_ForIter(PyObject *iter, _Py_CODEUNIT *instr, int oparg); +extern void _Py_Specialize_Send(PyObject *receiver, _Py_CODEUNIT *instr); -/* Deallocator function for static codeobjects used in deepfreeze.py */ -extern void _PyStaticCode_Dealloc(PyCodeObject *co); -/* Function to intern strings of codeobjects */ -extern int _PyStaticCode_InternStrings(PyCodeObject *co); +/* Finalizer function for static codeobjects used in deepfreeze.py */ +extern void _PyStaticCode_Fini(PyCodeObject *co); +/* Function to intern strings of codeobjects and quicken the bytecode */ +extern int _PyStaticCode_Init(PyCodeObject *co); #ifdef Py_STATS -#define SPECIALIZATION_FAILURE_KINDS 30 -typedef struct _specialization_stats { - uint64_t success; - uint64_t failure; - uint64_t hit; - uint64_t deferred; - uint64_t miss; - uint64_t deopt; - uint64_t failure_kinds[SPECIALIZATION_FAILURE_KINDS]; -} SpecializationStats; - -typedef struct _opcode_stats { - SpecializationStats specialization; - uint64_t execution_count; - uint64_t pair_count[256]; -} OpcodeStats; - -typedef struct _call_stats { - uint64_t inlined_py_calls; - uint64_t pyeval_calls; - uint64_t frames_pushed; - uint64_t frame_objects_created; -} CallStats; - -typedef struct _object_stats { - uint64_t allocations; - uint64_t allocations512; - uint64_t allocations4k; - uint64_t allocations_big; - uint64_t frees; - uint64_t to_freelist; - uint64_t from_freelist; - uint64_t new_values; - uint64_t dict_materialized_on_request; - uint64_t dict_materialized_new_key; - uint64_t dict_materialized_too_big; - uint64_t dict_materialized_str_subclass; -} ObjectStats; - -typedef struct _stats { - OpcodeStats opcode_stats[256]; - CallStats call_stats; - ObjectStats object_stats; -} PyStats; - -extern PyStats _py_stats; - -#define STAT_INC(opname, name) _py_stats.opcode_stats[opname].specialization.name++ -#define STAT_DEC(opname, name) _py_stats.opcode_stats[opname].specialization.name-- -#define OPCODE_EXE_INC(opname) _py_stats.opcode_stats[opname].execution_count++ -#define CALL_STAT_INC(name) _py_stats.call_stats.name++ -#define OBJECT_STAT_INC(name) _py_stats.object_stats.name++ +#define STAT_INC(opname, name) do { if (_py_stats) _py_stats->opcode_stats[opname].specialization.name++; } while (0) +#define STAT_DEC(opname, name) do { if (_py_stats) _py_stats->opcode_stats[opname].specialization.name--; } while (0) +#define OPCODE_EXE_INC(opname) do { if (_py_stats) _py_stats->opcode_stats[opname].execution_count++; } while (0) +#define CALL_STAT_INC(name) do { if (_py_stats) _py_stats->call_stats.name++; } while (0) +#define OBJECT_STAT_INC(name) do { if (_py_stats) _py_stats->object_stats.name++; } while (0) #define OBJECT_STAT_INC_COND(name, cond) \ - do { if (cond) _py_stats.object_stats.name++; } while (0) - -extern void _Py_PrintSpecializationStats(int to_file); + do { if (_py_stats && cond) _py_stats->object_stats.name++; } while (0) +#define EVAL_CALL_STAT_INC(name) do { if (_py_stats) _py_stats->call_stats.eval_calls[name]++; } while (0) +#define EVAL_CALL_STAT_INC_IF_FUNCTION(name, callable) \ + do { if (_py_stats && PyFunction_Check(callable)) _py_stats->call_stats.eval_calls[name]++; } while (0) // Used by the _opcode extension which is built as a shared library PyAPI_FUNC(PyObject*) _Py_GetSpecializationStats(void); @@ -330,112 +276,65 @@ PyAPI_FUNC(PyObject*) _Py_GetSpecializationStats(void); #define CALL_STAT_INC(name) ((void)0) #define OBJECT_STAT_INC(name) ((void)0) #define OBJECT_STAT_INC_COND(name, cond) ((void)0) +#define EVAL_CALL_STAT_INC(name) ((void)0) +#define EVAL_CALL_STAT_INC_IF_FUNCTION(name, callable) ((void)0) #endif // !Py_STATS -// Cache values are only valid in memory, so use native endianness. -#ifdef WORDS_BIGENDIAN +// Utility functions for reading/writing 32/64-bit values in the inline caches. +// Great care should be taken to ensure that these functions remain correct and +// performant! They should compile to just "move" instructions on all supported +// compilers and platforms. + +// We use memcpy to let the C compiler handle unaligned accesses and endianness +// issues for us. It also seems to produce better code than manual copying for +// most compilers (see https://blog.regehr.org/archives/959 for more info). static inline void write_u32(uint16_t *p, uint32_t val) { - p[0] = (uint16_t)(val >> 16); - p[1] = (uint16_t)(val >> 0); + memcpy(p, &val, sizeof(val)); } static inline void write_u64(uint16_t *p, uint64_t val) { - p[0] = (uint16_t)(val >> 48); - p[1] = (uint16_t)(val >> 32); - p[2] = (uint16_t)(val >> 16); - p[3] = (uint16_t)(val >> 0); + memcpy(p, &val, sizeof(val)); +} + +static inline void +write_obj(uint16_t *p, PyObject *val) +{ + memcpy(p, &val, sizeof(val)); +} + +static inline uint16_t +read_u16(uint16_t *p) +{ + return *p; } static inline uint32_t read_u32(uint16_t *p) { - uint32_t val = 0; - val |= (uint32_t)p[0] << 16; - val |= (uint32_t)p[1] << 0; + uint32_t val; + memcpy(&val, p, sizeof(val)); return val; } static inline uint64_t read_u64(uint16_t *p) { - uint64_t val = 0; - val |= (uint64_t)p[0] << 48; - val |= (uint64_t)p[1] << 32; - val |= (uint64_t)p[2] << 16; - val |= (uint64_t)p[3] << 0; + uint64_t val; + memcpy(&val, p, sizeof(val)); return val; } -#else - -static inline void -write_u32(uint16_t *p, uint32_t val) -{ - p[0] = (uint16_t)(val >> 0); - p[1] = (uint16_t)(val >> 16); -} - -static inline void -write_u64(uint16_t *p, uint64_t val) -{ - p[0] = (uint16_t)(val >> 0); - p[1] = (uint16_t)(val >> 16); - p[2] = (uint16_t)(val >> 32); - p[3] = (uint16_t)(val >> 48); -} - -static inline uint32_t -read_u32(uint16_t *p) -{ - uint32_t val = 0; - val |= (uint32_t)p[0] << 0; - val |= (uint32_t)p[1] << 16; - return val; -} - -static inline uint64_t -read_u64(uint16_t *p) -{ - uint64_t val = 0; - val |= (uint64_t)p[0] << 0; - val |= (uint64_t)p[1] << 16; - val |= (uint64_t)p[2] << 32; - val |= (uint64_t)p[3] << 48; - return val; -} - -#endif - -static inline void -write_obj(uint16_t *p, PyObject *obj) -{ - uintptr_t val = (uintptr_t)obj; -#if SIZEOF_VOID_P == 8 - write_u64(p, val); -#elif SIZEOF_VOID_P == 4 - write_u32(p, val); -#else - #error "SIZEOF_VOID_P must be 4 or 8" -#endif -} - static inline PyObject * read_obj(uint16_t *p) { - uintptr_t val; -#if SIZEOF_VOID_P == 8 - val = read_u64(p); -#elif SIZEOF_VOID_P == 4 - val = read_u32(p); -#else - #error "SIZEOF_VOID_P must be 4 or 8" -#endif - return (PyObject *)val; + PyObject *val; + memcpy(&val, p, sizeof(val)); + return val; } /* See Objects/exception_handling_notes.txt for details. @@ -460,27 +359,29 @@ write_varint(uint8_t *ptr, unsigned int val) val >>= 6; written++; } - *ptr = val; + *ptr = (uint8_t)val; return written; } static inline int write_signed_varint(uint8_t *ptr, int val) { + unsigned int uval; if (val < 0) { - val = ((-val)<<1) | 1; + // (unsigned int)(-val) has an undefined behavior for INT_MIN + uval = ((0 - (unsigned int)val) << 1) | 1; } else { - val = val << 1; + uval = (unsigned int)val << 1; } - return write_varint(ptr, val); + return write_varint(ptr, uval); } static inline int write_location_entry_start(uint8_t *ptr, int code, int length) { assert((code & 15) == code); - *ptr = 128 | (code << 3) | (length - 1); + *ptr = 128 | (uint8_t)(code << 3) | (uint8_t)(length - 1); return 1; } @@ -499,63 +400,94 @@ write_location_entry_start(uint8_t *ptr, int code, int length) /* With a 16-bit counter, we have 12 bits for the counter value, and 4 bits for the backoff */ #define ADAPTIVE_BACKOFF_BITS 4 -/* The initial counter value is 31 == 2**ADAPTIVE_BACKOFF_START - 1 */ -#define ADAPTIVE_BACKOFF_START 5 + +// A value of 1 means that we attempt to specialize the *second* time each +// instruction is executed. Executing twice is a much better indicator of +// "hotness" than executing once, but additional warmup delays only prevent +// specialization. Most types stabilize by the second execution, too: +#define ADAPTIVE_WARMUP_VALUE 1 +#define ADAPTIVE_WARMUP_BACKOFF 1 + +// A value of 52 means that we attempt to re-specialize after 53 misses (a prime +// number, useful for avoiding artifacts if every nth value is a different type +// or something). Setting the backoff to 0 means that the counter is reset to +// the same state as a warming-up instruction (value == 1, backoff == 1) after +// deoptimization. This isn't strictly necessary, but it is bit easier to reason +// about when thinking about the opcode transitions as a state machine: +#define ADAPTIVE_COOLDOWN_VALUE 52 +#define ADAPTIVE_COOLDOWN_BACKOFF 0 #define MAX_BACKOFF_VALUE (16 - ADAPTIVE_BACKOFF_BITS) static inline uint16_t -adaptive_counter_bits(int value, int backoff) { - return (value << ADAPTIVE_BACKOFF_BITS) | - (backoff & ((1< MAX_BACKOFF_VALUE) { backoff = MAX_BACKOFF_VALUE; } - unsigned int value = (1 << backoff) - 1; + uint16_t value = (uint16_t)(1 << backoff) - 1; return adaptive_counter_bits(value, backoff); } /* Line array cache for tracing */ -extern int _PyCode_CreateLineArray(PyCodeObject *co); +typedef struct _PyShimCodeDef { + const uint8_t *code; + int codelen; + int stacksize; + const char *cname; +} _PyShimCodeDef; -static inline int -_PyCode_InitLineArray(PyCodeObject *co) -{ - if (co->_co_linearray) { - return 0; - } - return _PyCode_CreateLineArray(co); -} +extern PyCodeObject * +_Py_MakeShimCode(const _PyShimCodeDef *code); -static inline int -_PyCode_LineNumberFromArray(PyCodeObject *co, int index) -{ - assert(co->_co_linearray != NULL); - assert(index >= 0); - assert(index < Py_SIZE(co)); - if (co->_co_linearray_entry_size == 2) { - return ((int16_t *)co->_co_linearray)[index]; - } - else { - assert(co->_co_linearray_entry_size == 4); - return ((int32_t *)co->_co_linearray)[index]; - } -} +extern uint32_t _Py_next_func_version; + + +/* Comparison bit masks. */ + +/* Note this evaluates its arguments twice each */ +#define COMPARISON_BIT(x, y) (1 << (2 * ((x) >= (y)) + ((x) <= (y)))) + +/* + * The following bits are chosen so that the value of + * COMPARSION_BIT(left, right) + * masked by the values below will be non-zero if the + * comparison is true, and zero if it is false */ + +/* This is for values that are unordered, ie. NaN, not types that are unordered, e.g. sets */ +#define COMPARISON_UNORDERED 1 + +#define COMPARISON_LESS_THAN 2 +#define COMPARISON_GREATER_THAN 4 +#define COMPARISON_EQUALS 8 + +#define COMPARISON_NOT_EQUALS (COMPARISON_UNORDERED | COMPARISON_LESS_THAN | COMPARISON_GREATER_THAN) + +extern int _Py_Instrument(PyCodeObject *co, PyInterpreterState *interp); + +extern int _Py_GetBaseOpcode(PyCodeObject *code, int offset); #ifdef __cplusplus diff --git a/src/external/windows/include/python/internal/pycore_compile.h b/src/external/windows/include/python/internal/pycore_compile.h index 986365eb..654d60e5 100755 --- a/src/external/windows/include/python/internal/pycore_compile.h +++ b/src/external/windows/include/python/internal/pycore_compile.h @@ -18,12 +18,8 @@ PyAPI_FUNC(PyCodeObject*) _PyAST_Compile( PyCompilerFlags *flags, int optimize, struct _arena *arena); -extern PyFutureFeatures* _PyFuture_FromAST( - struct _mod * mod, - PyObject *filename - ); -extern PyObject* _Py_Mangle(PyObject *p, PyObject *name); +static const _PyCompilerSrcLocation NO_LOCATION = {-1, -1, -1, -1}; typedef struct { int optimize; @@ -38,6 +34,84 @@ extern int _PyAST_Optimize( struct _arena *arena, _PyASTOptimizeState *state); +typedef struct { + int h_offset; + int h_startdepth; + int h_preserve_lasti; +} _PyCompile_ExceptHandlerInfo; + +typedef struct { + int i_opcode; + int i_oparg; + _PyCompilerSrcLocation i_loc; + _PyCompile_ExceptHandlerInfo i_except_handler_info; +} _PyCompile_Instruction; + +typedef struct { + _PyCompile_Instruction *s_instrs; + int s_allocated; + int s_used; + + int *s_labelmap; /* label id --> instr offset */ + int s_labelmap_size; + int s_next_free_label; /* next free label id */ +} _PyCompile_InstructionSequence; + +typedef struct { + PyObject *u_name; + PyObject *u_qualname; /* dot-separated qualified name (lazy) */ + + /* The following fields are dicts that map objects to + the index of them in co_XXX. The index is used as + the argument for opcodes that refer to those collections. + */ + PyObject *u_consts; /* all constants */ + PyObject *u_names; /* all names */ + PyObject *u_varnames; /* local variables */ + PyObject *u_cellvars; /* cell variables */ + PyObject *u_freevars; /* free variables */ + PyObject *u_fasthidden; /* dict; keys are names that are fast-locals only + temporarily within an inlined comprehension. When + value is True, treat as fast-local. */ + + Py_ssize_t u_argcount; /* number of arguments for block */ + Py_ssize_t u_posonlyargcount; /* number of positional only arguments for block */ + Py_ssize_t u_kwonlyargcount; /* number of keyword only arguments for block */ + + int u_firstlineno; /* the first lineno of the block */ +} _PyCompile_CodeUnitMetadata; + + +/* Utility for a number of growing arrays used in the compiler */ +int _PyCompile_EnsureArrayLargeEnough( + int idx, + void **array, + int *alloc, + int default_alloc, + size_t item_size); + +int _PyCompile_ConstCacheMergeOne(PyObject *const_cache, PyObject **obj); + +int _PyCompile_InstrSize(int opcode, int oparg); + +/* Access compiler internals for unit testing */ + +PyAPI_FUNC(PyObject*) _PyCompile_CodeGen( + PyObject *ast, + PyObject *filename, + PyCompilerFlags *flags, + int optimize, + int compile_mode); + +PyAPI_FUNC(PyObject*) _PyCompile_OptimizeCfg( + PyObject *instructions, + PyObject *consts, + int nlocals); + +PyAPI_FUNC(PyCodeObject*) +_PyCompile_Assemble(_PyCompile_CodeUnitMetadata *umd, PyObject *filename, + PyObject *instructions); + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/internal/pycore_context.h b/src/external/windows/include/python/internal/pycore_context.h index 4a87c5a7..7cca479f 100755 --- a/src/external/windows/include/python/internal/pycore_context.h +++ b/src/external/windows/include/python/internal/pycore_context.h @@ -18,6 +18,10 @@ void _PyContext_Fini(PyInterpreterState *); /* other API */ +typedef struct { + PyObject_HEAD +} _PyContextTokenMissing; + #ifndef WITH_FREELISTS // without freelists # define PyContext_MAXFREELIST 0 diff --git a/src/external/windows/include/python/internal/pycore_descrobject.h b/src/external/windows/include/python/internal/pycore_descrobject.h new file mode 100644 index 00000000..05799106 --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_descrobject.h @@ -0,0 +1,26 @@ +#ifndef Py_INTERNAL_DESCROBJECT_H +#define Py_INTERNAL_DESCROBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +typedef struct { + PyObject_HEAD + PyObject *prop_get; + PyObject *prop_set; + PyObject *prop_del; + PyObject *prop_doc; + PyObject *prop_name; + int getter_doc; +} propertyobject; + +typedef propertyobject _PyPropertyObject; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_DESCROBJECT_H */ diff --git a/src/external/windows/include/python/internal/pycore_dict.h b/src/external/windows/include/python/internal/pycore_dict.h index 93344874..4edadb7f 100644 --- a/src/external/windows/include/python/internal/pycore_dict.h +++ b/src/external/windows/include/python/internal/pycore_dict.h @@ -9,6 +9,9 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif +#include "pycore_dict_state.h" +#include "pycore_runtime.h" // _PyRuntime + /* runtime lifecycle */ @@ -17,25 +20,6 @@ extern void _PyDict_Fini(PyInterpreterState *interp); /* other API */ -#ifndef WITH_FREELISTS -// without freelists -# define PyDict_MAXFREELIST 0 -#endif - -#ifndef PyDict_MAXFREELIST -# define PyDict_MAXFREELIST 80 -#endif - -struct _Py_dict_state { -#if PyDict_MAXFREELIST > 0 - /* Dictionary reuse scheme to save calls to malloc and free */ - PyDictObject *free_list[PyDict_MAXFREELIST]; - int numfree; - PyDictKeysObject *keys_free_list[PyDict_MAXFREELIST]; - int keys_numfree; -#endif -}; - typedef struct { /* Cached hash code of me_key. */ Py_hash_t me_hash; @@ -53,16 +37,17 @@ extern PyObject *_PyDict_FromKeys(PyObject *, PyObject *, PyObject *); /* Gets a version number unique to the current state of the keys of dict, if possible. * Returns the version number, or zero if it was not possible to get a version number. */ -extern uint32_t _PyDictKeys_GetVersionForCurrentState(PyDictKeysObject *dictkeys); +extern uint32_t _PyDictKeys_GetVersionForCurrentState( + PyInterpreterState *interp, PyDictKeysObject *dictkeys); -extern Py_ssize_t _PyDict_KeysSize(PyDictKeysObject *keys); +extern size_t _PyDict_KeysSize(PyDictKeysObject *keys); /* _Py_dict_lookup() returns index of entry which can be used like DK_ENTRIES(dk)[index]. * -1 when no entry found, -3 when compare raises error. */ extern Py_ssize_t _Py_dict_lookup(PyDictObject *mp, PyObject *key, Py_hash_t hash, PyObject **value_addr); -extern Py_ssize_t _PyDict_GetItemHint(PyDictObject *, PyObject *, Py_ssize_t, PyObject **); +extern Py_ssize_t _PyDict_LookupIndex(PyDictObject *, PyObject *); extern Py_ssize_t _PyDictKeys_StringLookup(PyDictKeysObject* dictkeys, PyObject *key); extern PyObject *_PyDict_LoadGlobal(PyDictObject *, PyDictObject *, PyObject *); @@ -138,21 +123,57 @@ struct _dictvalues { PyObject *values[1]; }; -#define DK_LOG_SIZE(dk) ((dk)->dk_log2_size) +#define DK_LOG_SIZE(dk) _Py_RVALUE((dk)->dk_log2_size) #if SIZEOF_VOID_P > 4 #define DK_SIZE(dk) (((int64_t)1)<dk_kind == DICT_KEYS_GENERAL), (PyDictKeyEntry*)(&((int8_t*)((dk)->dk_indices))[(size_t)1 << (dk)->dk_log2_index_bytes])) -#define DK_UNICODE_ENTRIES(dk) \ - (assert(dk->dk_kind != DICT_KEYS_GENERAL), (PyDictUnicodeEntry*)(&((int8_t*)((dk)->dk_indices))[(size_t)1 << (dk)->dk_log2_index_bytes])) + +static inline void* _DK_ENTRIES(PyDictKeysObject *dk) { + int8_t *indices = (int8_t*)(dk->dk_indices); + size_t index = (size_t)1 << dk->dk_log2_index_bytes; + return (&indices[index]); +} +static inline PyDictKeyEntry* DK_ENTRIES(PyDictKeysObject *dk) { + assert(dk->dk_kind == DICT_KEYS_GENERAL); + return (PyDictKeyEntry*)_DK_ENTRIES(dk); +} +static inline PyDictUnicodeEntry* DK_UNICODE_ENTRIES(PyDictKeysObject *dk) { + assert(dk->dk_kind != DICT_KEYS_GENERAL); + return (PyDictUnicodeEntry*)_DK_ENTRIES(dk); +} + #define DK_IS_UNICODE(dk) ((dk)->dk_kind != DICT_KEYS_GENERAL) -extern uint64_t _pydict_global_version; +#define DICT_VERSION_INCREMENT (1 << DICT_MAX_WATCHERS) +#define DICT_VERSION_MASK (DICT_VERSION_INCREMENT - 1) -#define DICT_NEXT_VERSION() (++_pydict_global_version) +#define DICT_NEXT_VERSION(INTERP) \ + ((INTERP)->dict_state.global_version += DICT_VERSION_INCREMENT) + +void +_PyDict_SendEvent(int watcher_bits, + PyDict_WatchEvent event, + PyDictObject *mp, + PyObject *key, + PyObject *value); + +static inline uint64_t +_PyDict_NotifyEvent(PyInterpreterState *interp, + PyDict_WatchEvent event, + PyDictObject *mp, + PyObject *key, + PyObject *value) +{ + assert(Py_REFCNT((PyObject*)mp) > 0); + int watcher_bits = mp->ma_version_tag & DICT_VERSION_MASK; + if (watcher_bits) { + _PyDict_SendEvent(watcher_bits, event, mp, key, value); + return DICT_NEXT_VERSION(interp) | watcher_bits; + } + return DICT_NEXT_VERSION(interp); +} extern PyObject *_PyObject_MakeDictFromInstanceAttributes(PyObject *obj, PyDictValues *values); extern PyObject *_PyDict_FromItems( diff --git a/src/external/windows/include/python/internal/pycore_dict_state.h b/src/external/windows/include/python/internal/pycore_dict_state.h new file mode 100644 index 00000000..1c23c92e --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_dict_state.h @@ -0,0 +1,50 @@ +#ifndef Py_INTERNAL_DICT_STATE_H +#define Py_INTERNAL_DICT_STATE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +#ifndef WITH_FREELISTS +// without freelists +# define PyDict_MAXFREELIST 0 +#endif + +#ifndef PyDict_MAXFREELIST +# define PyDict_MAXFREELIST 80 +#endif + +#define DICT_MAX_WATCHERS 8 + +struct _Py_dict_state { + /*Global counter used to set ma_version_tag field of dictionary. + * It is incremented each time that a dictionary is created and each + * time that a dictionary is modified. */ + uint64_t global_version; + uint32_t next_keys_version; + +#if PyDict_MAXFREELIST > 0 + /* Dictionary reuse scheme to save calls to malloc and free */ + PyDictObject *free_list[PyDict_MAXFREELIST]; + PyDictKeysObject *keys_free_list[PyDict_MAXFREELIST]; + int numfree; + int keys_numfree; +#endif + + PyDict_WatchCallback watchers[DICT_MAX_WATCHERS]; +}; + +#define _dict_state_INIT \ + { \ + .next_keys_version = 2, \ + } + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_DICT_STATE_H */ diff --git a/src/external/windows/include/python/internal/pycore_dtoa.h b/src/external/windows/include/python/internal/pycore_dtoa.h index 06361655..a4e81e72 100755 --- a/src/external/windows/include/python/internal/pycore_dtoa.h +++ b/src/external/windows/include/python/internal/pycore_dtoa.h @@ -1,3 +1,5 @@ +#ifndef Py_INTERNAL_DTOA_H +#define Py_INTERNAL_DTOA_H #ifdef __cplusplus extern "C" { #endif @@ -11,6 +13,50 @@ extern "C" { #if _PY_SHORT_FLOAT_REPR == 1 +typedef uint32_t ULong; + +struct +Bigint { + struct Bigint *next; + int k, maxwds, sign, wds; + ULong x[1]; +}; + +#ifdef Py_USING_MEMORY_DEBUGGER + +struct _dtoa_state { + int _not_used; +}; +#define _dtoa_interp_state_INIT(INTERP) \ + {0} + +#else // !Py_USING_MEMORY_DEBUGGER + +/* The size of the Bigint freelist */ +#define Bigint_Kmax 7 + +#ifndef PRIVATE_MEM +#define PRIVATE_MEM 2304 +#endif +#define Bigint_PREALLOC_SIZE \ + ((PRIVATE_MEM+sizeof(double)-1)/sizeof(double)) + +struct _dtoa_state { + /* p5s is a linked list of powers of 5 of the form 5**(2**i), i >= 2 */ + // XXX This should be freed during runtime fini. + struct Bigint *p5s; + struct Bigint *freelist[Bigint_Kmax+1]; + double preallocated[Bigint_PREALLOC_SIZE]; + double *preallocated_next; +}; +#define _dtoa_state_INIT(INTERP) \ + { \ + .preallocated_next = (INTERP)->dtoa.preallocated, \ + } + +#endif // !Py_USING_MEMORY_DEBUGGER + + /* These functions are used by modules compiled as C extension like math: they must be exported. */ @@ -18,11 +64,10 @@ PyAPI_FUNC(double) _Py_dg_strtod(const char *str, char **ptr); PyAPI_FUNC(char *) _Py_dg_dtoa(double d, int mode, int ndigits, int *decpt, int *sign, char **rve); PyAPI_FUNC(void) _Py_dg_freedtoa(char *s); -PyAPI_FUNC(double) _Py_dg_stdnan(int sign); -PyAPI_FUNC(double) _Py_dg_infinity(int sign); #endif // _PY_SHORT_FLOAT_REPR == 1 #ifdef __cplusplus } #endif +#endif /* !Py_INTERNAL_DTOA_H */ diff --git a/src/external/windows/include/python/internal/pycore_faulthandler.h b/src/external/windows/include/python/internal/pycore_faulthandler.h new file mode 100644 index 00000000..b408e761 --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_faulthandler.h @@ -0,0 +1,99 @@ +#ifndef Py_INTERNAL_FAULTHANDLER_H +#define Py_INTERNAL_FAULTHANDLER_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef HAVE_SIGACTION +# include +#endif + + +#ifndef MS_WINDOWS + /* register() is useless on Windows, because only SIGSEGV, SIGABRT and + SIGILL can be handled by the process, and these signals can only be used + with enable(), not using register() */ +# define FAULTHANDLER_USER +#endif + + +#ifdef HAVE_SIGACTION +/* Using an alternative stack requires sigaltstack() + and sigaction() SA_ONSTACK */ +# ifdef HAVE_SIGALTSTACK +# define FAULTHANDLER_USE_ALT_STACK +# endif +typedef struct sigaction _Py_sighandler_t; +#else +typedef PyOS_sighandler_t _Py_sighandler_t; +#endif // HAVE_SIGACTION + + +#ifdef FAULTHANDLER_USER +struct faulthandler_user_signal { + int enabled; + PyObject *file; + int fd; + int all_threads; + int chain; + _Py_sighandler_t previous; + PyInterpreterState *interp; +}; +#endif /* FAULTHANDLER_USER */ + + +struct _faulthandler_runtime_state { + struct { + int enabled; + PyObject *file; + int fd; + int all_threads; + PyInterpreterState *interp; +#ifdef MS_WINDOWS + void *exc_handler; +#endif + } fatal_error; + + struct { + PyObject *file; + int fd; + PY_TIMEOUT_T timeout_us; /* timeout in microseconds */ + int repeat; + PyInterpreterState *interp; + int exit; + char *header; + size_t header_len; + /* The main thread always holds this lock. It is only released when + faulthandler_thread() is interrupted before this thread exits, or at + Python exit. */ + PyThread_type_lock cancel_event; + /* released by child thread when joined */ + PyThread_type_lock running; + } thread; + +#ifdef FAULTHANDLER_USER + struct faulthandler_user_signal *user_signals; +#endif + +#ifdef FAULTHANDLER_USE_ALT_STACK + stack_t stack; + stack_t old_stack; +#endif +}; + +#define _faulthandler_runtime_state_INIT \ + { \ + .fatal_error = { \ + .fd = -1, \ + }, \ + } + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_FAULTHANDLER_H */ diff --git a/src/external/windows/include/python/internal/pycore_fileutils.h b/src/external/windows/include/python/internal/pycore_fileutils.h index 8252b75e..1e3c9b27 100755 --- a/src/external/windows/include/python/internal/pycore_fileutils.h +++ b/src/external/windows/include/python/internal/pycore_fileutils.h @@ -10,6 +10,11 @@ extern "C" { #include /* struct lconv */ + +struct _fileutils_state { + int force_ascii; +}; + typedef enum { _Py_ERROR_UNKNOWN=0, _Py_ERROR_STRICT, @@ -61,7 +66,7 @@ PyAPI_FUNC(PyObject *) _Py_device_encoding(int); #ifdef MS_WINDOWS struct _Py_stat_struct { - unsigned long st_dev; + uint64_t st_dev; uint64_t st_ino; unsigned short st_mode; int st_nlink; @@ -75,8 +80,11 @@ struct _Py_stat_struct { int st_mtime_nsec; time_t st_ctime; int st_ctime_nsec; + time_t st_birthtime; + int st_birthtime_nsec; unsigned long st_file_attributes; unsigned long st_reparse_tag; + uint64_t st_ino_high; }; #else # define _Py_stat_struct stat @@ -155,11 +163,11 @@ PyAPI_FUNC(int) _Py_set_inheritable_async_safe(int fd, int inheritable, PyAPI_FUNC(int) _Py_dup(int fd); -#ifndef MS_WINDOWS PyAPI_FUNC(int) _Py_get_blocking(int fd); PyAPI_FUNC(int) _Py_set_blocking(int fd, int blocking); -#else /* MS_WINDOWS */ + +#ifdef MS_WINDOWS PyAPI_FUNC(void*) _Py_get_osfhandle_noraise(int fd); PyAPI_FUNC(void*) _Py_get_osfhandle(int fd); @@ -244,8 +252,17 @@ extern int _Py_add_relfile(wchar_t *dirname, const wchar_t *relfile, size_t bufsize); extern size_t _Py_find_basename(const wchar_t *filename); -PyAPI_FUNC(wchar_t *) _Py_normpath(wchar_t *path, Py_ssize_t size); +PyAPI_FUNC(wchar_t*) _Py_normpath(wchar_t *path, Py_ssize_t size); +extern wchar_t *_Py_normpath_and_size(wchar_t *path, Py_ssize_t size, Py_ssize_t *length); +// The Windows Games API family does not provide these functions +// so provide our own implementations. Remove them in case they get added +// to the Games API family +#if defined(MS_WINDOWS_GAMES) && !defined(MS_WINDOWS_DESKTOP) +#include + +extern HRESULT PathCchSkipRoot(const wchar_t *pszPath, const wchar_t **ppszRootEnd); +#endif /* defined(MS_WINDOWS_GAMES) && !defined(MS_WINDOWS_DESKTOP) */ // Macros to protect CRT calls against instant termination when passed an // invalid parameter (bpo-23524). IPH stands for Invalid Parameter Handler. diff --git a/src/external/windows/include/python/internal/pycore_fileutils_windows.h b/src/external/windows/include/python/internal/pycore_fileutils_windows.h new file mode 100644 index 00000000..8db99c09 --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_fileutils_windows.h @@ -0,0 +1,98 @@ +#ifndef Py_INTERNAL_FILEUTILS_WINDOWS_H +#define Py_INTERNAL_FILEUTILS_WINDOWS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "Py_BUILD_CORE must be defined to include this header" +#endif + +#ifdef MS_WINDOWS + +#if !defined(NTDDI_WIN10_NI) || !(NTDDI_VERSION >= NTDDI_WIN10_NI) +typedef struct _FILE_STAT_BASIC_INFORMATION { + LARGE_INTEGER FileId; + LARGE_INTEGER CreationTime; + LARGE_INTEGER LastAccessTime; + LARGE_INTEGER LastWriteTime; + LARGE_INTEGER ChangeTime; + LARGE_INTEGER AllocationSize; + LARGE_INTEGER EndOfFile; + ULONG FileAttributes; + ULONG ReparseTag; + ULONG NumberOfLinks; + ULONG DeviceType; + ULONG DeviceCharacteristics; + ULONG Reserved; + LARGE_INTEGER VolumeSerialNumber; + FILE_ID_128 FileId128; +} FILE_STAT_BASIC_INFORMATION; + +typedef enum _FILE_INFO_BY_NAME_CLASS { + FileStatByNameInfo, + FileStatLxByNameInfo, + FileCaseSensitiveByNameInfo, + FileStatBasicByNameInfo, + MaximumFileInfoByNameClass +} FILE_INFO_BY_NAME_CLASS; +#endif + +typedef BOOL (WINAPI *PGetFileInformationByName)( + PCWSTR FileName, + FILE_INFO_BY_NAME_CLASS FileInformationClass, + PVOID FileInfoBuffer, + ULONG FileInfoBufferSize +); + +static inline BOOL _Py_GetFileInformationByName( + PCWSTR FileName, + FILE_INFO_BY_NAME_CLASS FileInformationClass, + PVOID FileInfoBuffer, + ULONG FileInfoBufferSize +) { + static PGetFileInformationByName GetFileInformationByName = NULL; + static int GetFileInformationByName_init = -1; + + if (GetFileInformationByName_init < 0) { + HMODULE hMod = LoadLibraryW(L"api-ms-win-core-file-l2-1-4"); + GetFileInformationByName_init = 0; + if (hMod) { + GetFileInformationByName = (PGetFileInformationByName)GetProcAddress( + hMod, "GetFileInformationByName"); + if (GetFileInformationByName) { + GetFileInformationByName_init = 1; + } else { + FreeLibrary(hMod); + } + } + } + + if (GetFileInformationByName_init <= 0) { + SetLastError(ERROR_NOT_SUPPORTED); + return FALSE; + } + return GetFileInformationByName(FileName, FileInformationClass, FileInfoBuffer, FileInfoBufferSize); +} + +static inline BOOL _Py_GetFileInformationByName_ErrorIsTrustworthy(int error) +{ + switch(error) { + case ERROR_FILE_NOT_FOUND: + case ERROR_PATH_NOT_FOUND: + case ERROR_NOT_READY: + case ERROR_BAD_NET_NAME: + case ERROR_BAD_NETPATH: + case ERROR_BAD_PATHNAME: + case ERROR_INVALID_NAME: + case ERROR_FILENAME_EXCED_RANGE: + return TRUE; + case ERROR_NOT_SUPPORTED: + return FALSE; + } + return FALSE; +} + +#endif + +#endif diff --git a/src/external/windows/include/python/internal/pycore_floatobject.h b/src/external/windows/include/python/internal/pycore_floatobject.h index a4467b4c..054d879d 100644 --- a/src/external/windows/include/python/internal/pycore_floatobject.h +++ b/src/external/windows/include/python/internal/pycore_floatobject.h @@ -19,6 +19,18 @@ extern void _PyFloat_FiniType(PyInterpreterState *); /* other API */ +enum _py_float_format_type { + _py_float_format_unknown, + _py_float_format_ieee_big_endian, + _py_float_format_ieee_little_endian, +}; + +struct _Py_float_runtime_state { + enum _py_float_format_type float_format; + enum _py_float_format_type double_format; +}; + + #ifndef WITH_FREELISTS // without freelists # define PyFloat_MAXFREELIST 0 diff --git a/src/external/windows/include/python/internal/pycore_flowgraph.h b/src/external/windows/include/python/internal/pycore_flowgraph.h new file mode 100644 index 00000000..3eaac09b --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_flowgraph.h @@ -0,0 +1,120 @@ +#ifndef Py_INTERNAL_CFG_H +#define Py_INTERNAL_CFG_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_opcode_utils.h" +#include "pycore_compile.h" + + +typedef struct { + int i_opcode; + int i_oparg; + _PyCompilerSrcLocation i_loc; + struct _PyCfgBasicblock_ *i_target; /* target block (if jump instruction) */ + struct _PyCfgBasicblock_ *i_except; /* target block when exception is raised */ +} _PyCfgInstruction; + +typedef struct { + int id; +} _PyCfgJumpTargetLabel; + + +typedef struct { + struct _PyCfgBasicblock_ *handlers[CO_MAXBLOCKS+2]; + int depth; +} _PyCfgExceptStack; + +typedef struct _PyCfgBasicblock_ { + /* Each basicblock in a compilation unit is linked via b_list in the + reverse order that the block are allocated. b_list points to the next + block in this list, not to be confused with b_next, which is next by + control flow. */ + struct _PyCfgBasicblock_ *b_list; + /* The label of this block if it is a jump target, -1 otherwise */ + _PyCfgJumpTargetLabel b_label; + /* Exception stack at start of block, used by assembler to create the exception handling table */ + _PyCfgExceptStack *b_exceptstack; + /* pointer to an array of instructions, initially NULL */ + _PyCfgInstruction *b_instr; + /* If b_next is non-NULL, it is a pointer to the next + block reached by normal control flow. */ + struct _PyCfgBasicblock_ *b_next; + /* number of instructions used */ + int b_iused; + /* length of instruction array (b_instr) */ + int b_ialloc; + /* Used by add_checks_for_loads_of_unknown_variables */ + uint64_t b_unsafe_locals_mask; + /* Number of predecessors that a block has. */ + int b_predecessors; + /* depth of stack upon entry of block, computed by stackdepth() */ + int b_startdepth; + /* instruction offset for block, computed by assemble_jump_offsets() */ + int b_offset; + /* Basic block is an exception handler that preserves lasti */ + unsigned b_preserve_lasti : 1; + /* Used by compiler passes to mark whether they have visited a basic block. */ + unsigned b_visited : 1; + /* b_except_handler is used by the cold-detection algorithm to mark exception targets */ + unsigned b_except_handler : 1; + /* b_cold is true if this block is not perf critical (like an exception handler) */ + unsigned b_cold : 1; + /* b_warm is used by the cold-detection algorithm to mark blocks which are definitely not cold */ + unsigned b_warm : 1; +} _PyCfgBasicblock; + +int _PyBasicblock_InsertInstruction(_PyCfgBasicblock *block, int pos, _PyCfgInstruction *instr); + +typedef struct cfg_builder_ { + /* The entryblock, at which control flow begins. All blocks of the + CFG are reachable through the b_next links */ + _PyCfgBasicblock *g_entryblock; + /* Pointer to the most recently allocated block. By following + b_list links, you can reach all allocated blocks. */ + _PyCfgBasicblock *g_block_list; + /* pointer to the block currently being constructed */ + _PyCfgBasicblock *g_curblock; + /* label for the next instruction to be placed */ + _PyCfgJumpTargetLabel g_current_label; +} _PyCfgBuilder; + +int _PyCfgBuilder_UseLabel(_PyCfgBuilder *g, _PyCfgJumpTargetLabel lbl); +int _PyCfgBuilder_Addop(_PyCfgBuilder *g, int opcode, int oparg, _PyCompilerSrcLocation loc); + +int _PyCfgBuilder_Init(_PyCfgBuilder *g); +void _PyCfgBuilder_Fini(_PyCfgBuilder *g); + +_PyCfgInstruction* _PyCfg_BasicblockLastInstr(const _PyCfgBasicblock *b); +int _PyCfg_OptimizeCodeUnit(_PyCfgBuilder *g, PyObject *consts, PyObject *const_cache, + int code_flags, int nlocals, int nparams, int firstlineno); +int _PyCfg_Stackdepth(_PyCfgBasicblock *entryblock, int code_flags); +void _PyCfg_ConvertPseudoOps(_PyCfgBasicblock *entryblock); +int _PyCfg_ResolveJumps(_PyCfgBuilder *g); + + +static inline int +basicblock_nofallthrough(const _PyCfgBasicblock *b) { + _PyCfgInstruction *last = _PyCfg_BasicblockLastInstr(b); + return (last && + (IS_SCOPE_EXIT_OPCODE(last->i_opcode) || + IS_UNCONDITIONAL_JUMP_OPCODE(last->i_opcode))); +} + +#define BB_NO_FALLTHROUGH(B) (basicblock_nofallthrough(B)) +#define BB_HAS_FALLTHROUGH(B) (!basicblock_nofallthrough(B)) + +PyCodeObject * +_PyAssemble_MakeCodeObject(_PyCompile_CodeUnitMetadata *u, PyObject *const_cache, + PyObject *consts, int maxdepth, _PyCompile_InstructionSequence *instrs, + int nlocalsplus, int code_flags, PyObject *filename); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_CFG_H */ diff --git a/src/external/windows/include/python/internal/pycore_format.h b/src/external/windows/include/python/internal/pycore_format.h index 0cdf3ac0..49c937a0 100755 --- a/src/external/windows/include/python/internal/pycore_format.h +++ b/src/external/windows/include/python/internal/pycore_format.h @@ -14,14 +14,12 @@ extern "C" { * F_BLANK ' ' * F_ALT '#' * F_ZERO '0' - * F_NO_NEG_0 'z' */ #define F_LJUST (1<<0) #define F_SIGN (1<<1) #define F_BLANK (1<<2) #define F_ALT (1<<3) #define F_ZERO (1<<4) -#define F_NO_NEG_0 (1<<5) #ifdef __cplusplus } diff --git a/src/external/windows/include/python/internal/pycore_frame.h b/src/external/windows/include/python/internal/pycore_frame.h index b1fbd516..47bb28da 100644 --- a/src/external/windows/include/python/internal/pycore_frame.h +++ b/src/external/windows/include/python/internal/pycore_frame.h @@ -6,6 +6,7 @@ extern "C" { #include #include +#include "pycore_code.h" // STATS /* See Objects/frame_layout.md for an explanation of the frame stack * including explanation of the PyFrameObject and _PyInterpreterFrame @@ -38,29 +39,36 @@ typedef enum _framestate { FRAME_CLEARED = 4 } PyFrameState; +#define FRAME_STATE_FINISHED(S) ((S) >= FRAME_COMPLETED) + enum _frameowner { FRAME_OWNED_BY_THREAD = 0, FRAME_OWNED_BY_GENERATOR = 1, - FRAME_OWNED_BY_FRAME_OBJECT = 2 + FRAME_OWNED_BY_FRAME_OBJECT = 2, + FRAME_OWNED_BY_CSTACK = 3, }; typedef struct _PyInterpreterFrame { - /* "Specials" section */ - PyFunctionObject *f_func; /* Strong reference */ - PyObject *f_globals; /* Borrowed reference */ - PyObject *f_builtins; /* Borrowed reference */ - PyObject *f_locals; /* Strong reference, may be NULL */ PyCodeObject *f_code; /* Strong reference */ - PyFrameObject *frame_obj; /* Strong reference, may be NULL */ - /* Linkage section */ struct _PyInterpreterFrame *previous; + PyObject *f_funcobj; /* Strong reference. Only valid if not on C stack */ + PyObject *f_globals; /* Borrowed reference. Only valid if not on C stack */ + PyObject *f_builtins; /* Borrowed reference. Only valid if not on C stack */ + PyObject *f_locals; /* Strong reference, may be NULL. Only valid if not on C stack */ + PyFrameObject *frame_obj; /* Strong reference, may be NULL. Only valid if not on C stack */ // NOTE: This is not necessarily the last instruction started in the given // frame. Rather, it is the code unit *prior to* the *next* instruction. For // example, it may be an inline CACHE entry, an instruction we just jumped // over, or (in the case of a newly-created frame) a totally invalid value: _Py_CODEUNIT *prev_instr; - int stacktop; /* Offset of TOS from localsplus */ - bool is_entry; // Whether this is the "root" frame for the current _PyCFrame. + int stacktop; /* Offset of TOS from localsplus */ + /* The return_offset determines where a `RETURN` should go in the caller, + * relative to `prev_instr`. + * It is only meaningful to the callee, + * so it needs to be set in any CALL (to a Python function) + * or SEND (to a coroutine or generator). + * If there is no callee, then it is meaningless. */ + uint16_t return_offset; char owner; /* Locals and stack */ PyObject *localsplus[1]; @@ -90,7 +98,16 @@ static inline void _PyFrame_StackPush(_PyInterpreterFrame *f, PyObject *value) { f->stacktop++; } -#define FRAME_SPECIALS_SIZE ((sizeof(_PyInterpreterFrame)-1)/sizeof(PyObject *)) +#define FRAME_SPECIALS_SIZE ((int)((sizeof(_PyInterpreterFrame)-1)/sizeof(PyObject *))) + +static inline int +_PyFrame_NumSlotsForCodeObject(PyCodeObject *code) +{ + /* This function needs to remain in sync with the calculation of + * co_framesize in Tools/build/deepfreeze.py */ + assert(code->co_framesize >= FRAME_SPECIALS_SIZE); + return code->co_framesize - FRAME_SPECIALS_SIZE; +} void _PyFrame_Copy(_PyInterpreterFrame *src, _PyInterpreterFrame *dest); @@ -99,20 +116,24 @@ void _PyFrame_Copy(_PyInterpreterFrame *src, _PyInterpreterFrame *dest); when frame is linked into the frame stack. */ static inline void -_PyFrame_InitializeSpecials( +_PyFrame_Initialize( _PyInterpreterFrame *frame, PyFunctionObject *func, - PyObject *locals, int nlocalsplus) + PyObject *locals, PyCodeObject *code, int null_locals_from) { - frame->f_func = func; - frame->f_code = (PyCodeObject *)Py_NewRef(func->func_code); + frame->f_funcobj = (PyObject *)func; + frame->f_code = (PyCodeObject *)Py_NewRef(code); frame->f_builtins = func->func_builtins; frame->f_globals = func->func_globals; - frame->f_locals = Py_XNewRef(locals); - frame->stacktop = nlocalsplus; + frame->f_locals = locals; + frame->stacktop = code->co_nlocalsplus; frame->frame_obj = NULL; - frame->prev_instr = _PyCode_CODE(frame->f_code) - 1; - frame->is_entry = false; + frame->prev_instr = _PyCode_CODE(code) - 1; + frame->return_offset = 0; frame->owner = FRAME_OWNED_BY_THREAD; + + for (int i = null_locals_from; i < code->co_nlocalsplus; i++) { + frame->localsplus[i] = NULL; + } } /* Gets the pointer to the locals array @@ -124,10 +145,16 @@ _PyFrame_GetLocalsArray(_PyInterpreterFrame *frame) return frame->localsplus; } +/* Fetches the stack pointer, and sets stacktop to -1. + Having stacktop <= 0 ensures that invalid + values are not visible to the cycle GC. + We choose -1 rather than 0 to assist debugging. */ static inline PyObject** _PyFrame_GetStackPointer(_PyInterpreterFrame *frame) { - return frame->localsplus+frame->stacktop; + PyObject **sp = frame->localsplus + frame->stacktop; + frame->stacktop = -1; + return sp; } static inline void @@ -151,6 +178,21 @@ _PyFrame_IsIncomplete(_PyInterpreterFrame *frame) frame->prev_instr < _PyCode_CODE(frame->f_code) + frame->f_code->_co_firsttraceable; } +static inline _PyInterpreterFrame * +_PyFrame_GetFirstComplete(_PyInterpreterFrame *frame) +{ + while (frame && _PyFrame_IsIncomplete(frame)) { + frame = frame->previous; + } + return frame; +} + +static inline _PyInterpreterFrame * +_PyThreadState_GetFrame(PyThreadState *tstate) +{ + return _PyFrame_GetFirstComplete(tstate->cframe->current_frame); +} + /* For use by _PyFrame_GetFrameObject Do not call directly. */ PyFrameObject * @@ -181,22 +223,22 @@ _PyFrame_GetFrameObject(_PyInterpreterFrame *frame) * frames like the ones in generators and coroutines. */ void -_PyFrame_Clear(_PyInterpreterFrame * frame); +_PyFrame_ClearExceptCode(_PyInterpreterFrame * frame); int _PyFrame_Traverse(_PyInterpreterFrame *frame, visitproc visit, void *arg); +PyObject * +_PyFrame_GetLocals(_PyInterpreterFrame *frame, int include_hidden); + int _PyFrame_FastToLocalsWithError(_PyInterpreterFrame *frame); void _PyFrame_LocalsToFast(_PyInterpreterFrame *frame, int clear); -extern _PyInterpreterFrame * -_PyThreadState_BumpFramePointerSlow(PyThreadState *tstate, size_t size); - static inline bool -_PyThreadState_HasStackSpace(PyThreadState *tstate, size_t size) +_PyThreadState_HasStackSpace(PyThreadState *tstate, int size) { assert( (tstate->datastack_top == NULL && tstate->datastack_limit == NULL) @@ -204,27 +246,28 @@ _PyThreadState_HasStackSpace(PyThreadState *tstate, size_t size) (tstate->datastack_top != NULL && tstate->datastack_limit != NULL) ); return tstate->datastack_top != NULL && - size < (size_t)(tstate->datastack_limit - tstate->datastack_top); + size < tstate->datastack_limit - tstate->datastack_top; } -static inline _PyInterpreterFrame * -_PyThreadState_BumpFramePointer(PyThreadState *tstate, size_t size) -{ - if (_PyThreadState_HasStackSpace(tstate, size)) { - _PyInterpreterFrame *res = (_PyInterpreterFrame *)tstate->datastack_top; - tstate->datastack_top += size; - return res; - } - return _PyThreadState_BumpFramePointerSlow(tstate, size); -} +extern _PyInterpreterFrame * +_PyThreadState_PushFrame(PyThreadState *tstate, size_t size); void _PyThreadState_PopFrame(PyThreadState *tstate, _PyInterpreterFrame *frame); -/* Consume reference to func */ -_PyInterpreterFrame * -_PyFrame_Push(PyThreadState *tstate, PyFunctionObject *func); - -int _PyInterpreterFrame_GetLine(_PyInterpreterFrame *frame); +/* Pushes a frame without checking for space. + * Must be guarded by _PyThreadState_HasStackSpace() + * Consumes reference to func. */ +static inline _PyInterpreterFrame * +_PyFrame_PushUnchecked(PyThreadState *tstate, PyFunctionObject *func, int null_locals_from) +{ + CALL_STAT_INC(frames_pushed); + PyCodeObject *code = (PyCodeObject *)func->func_code; + _PyInterpreterFrame *new_frame = (_PyInterpreterFrame *)tstate->datastack_top; + tstate->datastack_top += code->co_framesize; + assert(tstate->datastack_top < tstate->datastack_limit); + _PyFrame_Initialize(new_frame, func, NULL, code, null_locals_from); + return new_frame; +} static inline PyGenObject *_PyFrame_GetGenerator(_PyInterpreterFrame *frame) diff --git a/src/external/windows/include/python/internal/pycore_function.h b/src/external/windows/include/python/internal/pycore_function.h index 85118bee..be638fbc 100644 --- a/src/external/windows/include/python/internal/pycore_function.h +++ b/src/external/windows/include/python/internal/pycore_function.h @@ -8,9 +8,17 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif +#define FUNC_MAX_WATCHERS 8 + +struct _py_func_state { + uint32_t next_version; +}; + extern PyFunctionObject* _PyFunction_FromConstructor(PyFrameConstructor *constr); extern uint32_t _PyFunction_GetVersionForCurrentState(PyFunctionObject *func); +extern PyObject *_Py_set_function_type_params( + PyThreadState* unused, PyObject *func, PyObject *type_params); #ifdef __cplusplus } diff --git a/src/external/windows/include/python/internal/pycore_gc.h b/src/external/windows/include/python/internal/pycore_gc.h index 7d15c05d..afd5630b 100755 --- a/src/external/windows/include/python/internal/pycore_gc.h +++ b/src/external/windows/include/python/internal/pycore_gc.h @@ -19,17 +19,29 @@ typedef struct { uintptr_t _gc_prev; } PyGC_Head; -#define _Py_AS_GC(o) ((PyGC_Head *)(o)-1) +static inline PyGC_Head* _Py_AS_GC(PyObject *op) { + return (_Py_CAST(PyGC_Head*, op) - 1); +} #define _PyGC_Head_UNUSED PyGC_Head /* True if the object is currently tracked by the GC. */ -#define _PyObject_GC_IS_TRACKED(o) (_Py_AS_GC(o)->_gc_next != 0) +static inline int _PyObject_GC_IS_TRACKED(PyObject *op) { + PyGC_Head *gc = _Py_AS_GC(op); + return (gc->_gc_next != 0); +} +#define _PyObject_GC_IS_TRACKED(op) _PyObject_GC_IS_TRACKED(_Py_CAST(PyObject*, op)) /* True if the object may be tracked by the GC in the future, or already is. This can be useful to implement some optimizations. */ -#define _PyObject_GC_MAY_BE_TRACKED(obj) \ - (PyObject_IS_GC(obj) && \ - (!PyTuple_CheckExact(obj) || _PyObject_GC_IS_TRACKED(obj))) +static inline int _PyObject_GC_MAY_BE_TRACKED(PyObject *obj) { + if (!PyObject_IS_GC(obj)) { + return 0; + } + if (PyTuple_CheckExact(obj)) { + return _PyObject_GC_IS_TRACKED(obj); + } + return 1; +} /* Bit flags for _gc_prev */ @@ -43,26 +55,40 @@ typedef struct { // Lowest bit of _gc_next is used for flags only in GC. // But it is always 0 for normal code. -#define _PyGCHead_NEXT(g) ((PyGC_Head*)(g)->_gc_next) -#define _PyGCHead_SET_NEXT(g, p) _Py_RVALUE((g)->_gc_next = (uintptr_t)(p)) +static inline PyGC_Head* _PyGCHead_NEXT(PyGC_Head *gc) { + uintptr_t next = gc->_gc_next; + return _Py_CAST(PyGC_Head*, next); +} +static inline void _PyGCHead_SET_NEXT(PyGC_Head *gc, PyGC_Head *next) { + gc->_gc_next = _Py_CAST(uintptr_t, next); +} // Lowest two bits of _gc_prev is used for _PyGC_PREV_MASK_* flags. -#define _PyGCHead_PREV(g) ((PyGC_Head*)((g)->_gc_prev & _PyGC_PREV_MASK)) -#define _PyGCHead_SET_PREV(g, p) do { \ - assert(((uintptr_t)p & ~_PyGC_PREV_MASK) == 0); \ - (g)->_gc_prev = ((g)->_gc_prev & ~_PyGC_PREV_MASK) \ - | ((uintptr_t)(p)); \ - } while (0) +static inline PyGC_Head* _PyGCHead_PREV(PyGC_Head *gc) { + uintptr_t prev = (gc->_gc_prev & _PyGC_PREV_MASK); + return _Py_CAST(PyGC_Head*, prev); +} +static inline void _PyGCHead_SET_PREV(PyGC_Head *gc, PyGC_Head *prev) { + uintptr_t uprev = _Py_CAST(uintptr_t, prev); + assert((uprev & ~_PyGC_PREV_MASK) == 0); + gc->_gc_prev = ((gc->_gc_prev & ~_PyGC_PREV_MASK) | uprev); +} -#define _PyGCHead_FINALIZED(g) \ - (((g)->_gc_prev & _PyGC_PREV_MASK_FINALIZED) != 0) -#define _PyGCHead_SET_FINALIZED(g) \ - _Py_RVALUE((g)->_gc_prev |= _PyGC_PREV_MASK_FINALIZED) +static inline int _PyGCHead_FINALIZED(PyGC_Head *gc) { + return ((gc->_gc_prev & _PyGC_PREV_MASK_FINALIZED) != 0); +} +static inline void _PyGCHead_SET_FINALIZED(PyGC_Head *gc) { + gc->_gc_prev |= _PyGC_PREV_MASK_FINALIZED; +} -#define _PyGC_FINALIZED(o) \ - _PyGCHead_FINALIZED(_Py_AS_GC(o)) -#define _PyGC_SET_FINALIZED(o) \ - _PyGCHead_SET_FINALIZED(_Py_AS_GC(o)) +static inline int _PyGC_FINALIZED(PyObject *op) { + PyGC_Head *gc = _Py_AS_GC(op); + return _PyGCHead_FINALIZED(gc); +} +static inline void _PyGC_SET_FINALIZED(PyObject *op) { + PyGC_Head *gc = _Py_AS_GC(op); + _PyGCHead_SET_FINALIZED(gc); +} /* GC runtime state */ @@ -176,6 +202,8 @@ extern void _PyList_ClearFreeList(PyInterpreterState *interp); extern void _PyDict_ClearFreeList(PyInterpreterState *interp); extern void _PyAsyncGen_ClearFreeLists(PyInterpreterState *interp); extern void _PyContext_ClearFreeList(PyInterpreterState *interp); +extern void _Py_ScheduleGC(PyInterpreterState *interp); +extern void _Py_RunGC(PyThreadState *tstate); #ifdef __cplusplus } diff --git a/src/external/windows/include/python/internal/pycore_genobject.h b/src/external/windows/include/python/internal/pycore_genobject.h index e8f56a6b..69cf4ade 100644 --- a/src/external/windows/include/python/internal/pycore_genobject.h +++ b/src/external/windows/include/python/internal/pycore_genobject.h @@ -10,7 +10,7 @@ extern "C" { extern PyObject *_PyGen_yf(PyGenObject *); extern PyObject *_PyCoro_GetAwaitableIter(PyObject *o); -extern PyObject *_PyAsyncGenValueWrapperNew(PyObject *); +extern PyObject *_PyAsyncGenValueWrapperNew(PyThreadState *state, PyObject *); /* runtime lifecycle */ diff --git a/src/external/windows/include/python/internal/pycore_global_objects.h b/src/external/windows/include/python/internal/pycore_global_objects.h index 4b6eff67..ce61b9c2 100644 --- a/src/external/windows/include/python/internal/pycore_global_objects.h +++ b/src/external/windows/include/python/internal/pycore_global_objects.h @@ -8,8 +8,12 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif +#include "pycore_hashtable.h" // _Py_hashtable_t #include "pycore_gc.h" // PyGC_Head #include "pycore_global_strings.h" // struct _Py_global_strings +#include "pycore_hamt.h" // PyHamtNode_Bitmap +#include "pycore_context.h" // _PyContextTokenMissing +#include "pycore_typeobject.h" // pytype_slotdef // These would be in pycore_long.h if it weren't for an include cycle. @@ -21,11 +25,16 @@ extern "C" { // All others must be per-interpreter. #define _Py_GLOBAL_OBJECT(NAME) \ - _PyRuntime.global_objects.NAME + _PyRuntime.static_objects.NAME #define _Py_SINGLETON(NAME) \ _Py_GLOBAL_OBJECT(singletons.NAME) -struct _Py_global_objects { +struct _Py_cached_objects { + // XXX We could statically allocate the hashtable. + _Py_hashtable_t *interned_strings; +}; + +struct _Py_static_objects { struct { /* Small integers are preallocated in this array so that they * can be shared. @@ -44,6 +53,48 @@ struct _Py_global_objects { _PyGC_Head_UNUSED _tuple_empty_gc_not_used; PyTupleObject tuple_empty; + + _PyGC_Head_UNUSED _hamt_bitmap_node_empty_gc_not_used; + PyHamtNode_Bitmap hamt_bitmap_node_empty; + _PyContextTokenMissing context_token_missing; + } singletons; +}; + +#define _Py_INTERP_CACHED_OBJECT(interp, NAME) \ + (interp)->cached_objects.NAME + +struct _Py_interp_cached_objects { + PyObject *interned_strings; + + /* AST */ + PyObject *str_replace_inf; + + /* object.__reduce__ */ + PyObject *objreduce; + PyObject *type_slots_pname; + pytype_slotdef *type_slots_ptrs[MAX_EQUIV]; + + /* TypeVar and related types */ + PyTypeObject *generic_type; + PyTypeObject *typevar_type; + PyTypeObject *typevartuple_type; + PyTypeObject *paramspec_type; + PyTypeObject *paramspecargs_type; + PyTypeObject *paramspeckwargs_type; +}; + +#define _Py_INTERP_STATIC_OBJECT(interp, NAME) \ + (interp)->static_objects.NAME +#define _Py_INTERP_SINGLETON(interp, NAME) \ + _Py_INTERP_STATIC_OBJECT(interp, singletons.NAME) + +struct _Py_interp_static_objects { + struct { + int _not_used; + // hamt_empty is here instead of global because of its weakreflist. + _PyGC_Head_UNUSED _hamt_empty_gc_not_used; + PyHamtObject hamt_empty; + PyBaseExceptionObject last_resort_memory_error; } singletons; }; diff --git a/src/external/windows/include/python/internal/pycore_global_objects_fini_generated.h b/src/external/windows/include/python/internal/pycore_global_objects_fini_generated.h new file mode 100644 index 00000000..477f595c --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_global_objects_fini_generated.h @@ -0,0 +1,1531 @@ +#ifndef Py_INTERNAL_GLOBAL_OBJECTS_FINI_GENERATED_INIT_H +#define Py_INTERNAL_GLOBAL_OBJECTS_FINI_GENERATED_INIT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#ifdef Py_DEBUG +static inline void +_PyStaticObject_CheckRefcnt(PyObject *obj) { + if (Py_REFCNT(obj) < _Py_IMMORTAL_REFCNT) { + fprintf(stderr, "Immortal Object has less refcnt than expected.\n"); + _PyObject_Dump(obj); + } +} +#endif + +/* The following is auto-generated by Tools/build/generate_global_objects.py. */ +#ifdef Py_DEBUG +static inline void +_PyStaticObjects_CheckRefcnt(PyInterpreterState *interp) { + /* generated runtime-global */ + // (see pycore_runtime_init_generated.h) + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -5]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -4]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -3]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -2]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + -1]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 0]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 1]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 2]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 3]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 4]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 5]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 6]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 7]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 8]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 9]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 10]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 11]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 12]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 13]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 14]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 15]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 16]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 17]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 18]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 19]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 20]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 21]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 22]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 23]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 24]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 25]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 26]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 27]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 28]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 29]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 30]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 31]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 32]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 33]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 34]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 35]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 36]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 37]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 38]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 39]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 40]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 41]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 42]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 43]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 44]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 45]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 46]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 47]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 48]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 49]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 50]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 51]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 52]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 53]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 54]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 55]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 56]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 57]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 58]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 59]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 60]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 61]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 62]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 63]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 64]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 65]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 66]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 67]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 68]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 69]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 70]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 71]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 72]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 73]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 74]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 75]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 76]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 77]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 78]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 79]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 80]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 81]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 82]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 83]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 84]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 85]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 86]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 87]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 88]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 89]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 90]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 91]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 92]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 93]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 94]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 95]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 96]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 97]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 98]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 99]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 100]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 101]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 102]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 103]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 104]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 105]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 106]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 107]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 108]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 109]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 110]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 111]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 112]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 113]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 114]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 115]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 116]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 117]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 118]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 119]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 120]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 121]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 122]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 123]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 124]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 125]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 126]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 127]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 129]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 130]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 131]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 132]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 133]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 134]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 135]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 136]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 137]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 138]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 139]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 140]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 141]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 142]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 143]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 144]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 145]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 146]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 147]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 148]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 149]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 150]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 151]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 152]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 153]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 154]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 155]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 156]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 157]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 158]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 159]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 160]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 161]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 162]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 163]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 164]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 165]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 166]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 167]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 168]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 169]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 170]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 171]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 172]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 173]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 174]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 175]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 176]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 177]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 178]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 179]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 180]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 181]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 182]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 183]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 184]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 185]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 186]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 187]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 188]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 189]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 190]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 191]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 192]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 193]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 194]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 195]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 196]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 197]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 198]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 199]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 200]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 201]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 202]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 203]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 204]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 205]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 206]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 207]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 208]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 209]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 210]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 211]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 212]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 213]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 214]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 215]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 216]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 217]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 218]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 219]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 220]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 221]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 222]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 223]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 224]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 225]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 226]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 227]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 228]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 229]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 230]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 231]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 232]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 233]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 234]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 235]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 236]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 237]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 238]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 239]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 240]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 241]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 242]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 243]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 244]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 245]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 246]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 247]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 248]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 249]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 250]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 251]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 252]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 253]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 254]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 255]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(small_ints)[_PY_NSMALLNEGINTS + 256]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[0]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[1]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[2]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[3]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[4]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[5]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[6]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[7]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[8]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[9]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[10]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[11]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[12]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[13]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[14]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[15]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[16]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[17]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[18]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[19]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[20]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[21]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[22]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[23]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[24]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[25]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[26]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[27]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[28]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[29]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[30]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[31]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[32]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[33]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[34]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[35]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[36]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[37]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[38]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[39]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[40]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[41]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[42]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[43]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[44]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[45]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[46]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[47]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[48]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[49]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[50]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[51]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[52]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[53]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[54]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[55]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[56]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[57]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[58]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[59]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[60]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[61]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[62]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[63]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[64]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[65]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[66]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[67]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[68]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[69]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[70]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[71]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[72]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[73]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[74]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[75]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[76]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[77]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[78]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[79]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[80]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[81]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[82]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[83]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[84]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[85]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[86]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[87]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[88]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[89]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[90]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[91]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[92]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[93]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[94]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[95]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[96]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[97]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[98]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[99]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[100]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[101]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[102]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[103]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[104]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[105]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[106]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[107]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[108]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[109]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[110]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[111]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[112]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[113]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[114]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[115]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[116]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[117]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[118]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[119]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[120]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[121]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[122]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[123]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[124]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[125]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[126]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[127]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[129]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[130]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[131]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[132]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[133]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[134]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[135]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[136]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[137]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[138]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[139]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[140]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[141]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[142]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[143]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[144]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[145]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[146]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[147]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[148]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[149]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[150]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[151]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[152]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[153]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[154]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[155]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[156]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[157]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[158]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[159]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[160]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[161]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[162]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[163]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[164]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[165]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[166]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[167]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[168]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[169]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[170]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[171]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[172]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[173]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[174]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[175]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[176]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[177]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[178]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[179]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[180]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[181]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[182]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[183]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[184]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[185]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[186]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[187]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[188]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[189]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[190]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[191]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[192]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[193]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[194]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[195]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[196]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[197]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[198]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[199]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[200]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[201]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[202]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[203]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[204]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[205]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[206]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[207]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[208]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[209]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[210]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[211]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[212]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[213]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[214]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[215]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[216]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[217]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[218]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[219]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[220]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[221]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[222]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[223]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[224]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[225]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[226]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[227]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[228]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[229]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[230]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[231]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[232]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[233]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[234]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[235]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[236]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[237]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[238]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[239]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[240]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[241]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[242]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[243]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[244]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[245]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[246]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[247]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[248]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[249]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[250]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[251]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[252]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[253]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[254]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_characters)[255]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_dictcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_genexpr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_lambda)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_listcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_setcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_string)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(anon_unknown)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(close_br)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(dbl_close_br)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(dbl_open_br)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(dbl_percent)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(defaults)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(dot)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(dot_locals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(generic_base)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(json_decoder)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(kwdefaults)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(list_err)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(newline)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(open_br)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(percent)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(shim_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(type_params)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_STR(utf_8)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(CANCELLED)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(FINISHED)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(False)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(JSONDecodeError)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(PENDING)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(Py_Repr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(TextIOWrapper)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(True)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(WarningMessage)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_WindowsConsoleIO)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__IOBase_closed)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__abc_tpflags__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__abs__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__abstractmethods__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__add__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__aenter__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__aexit__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__aiter__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__all__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__and__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__anext__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__annotations__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__args__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__asyncio_running_event_loop__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__await__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__bases__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__bool__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__buffer__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__build_class__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__builtins__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__bytes__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__call__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__cantrace__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__class__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__class_getitem__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__classcell__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__classdict__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__classdictcell__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__complex__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__contains__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__copy__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ctypes_from_outparam__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__del__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__delattr__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__delete__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__delitem__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__dict__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__dictoffset__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__dir__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__divmod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__doc__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__enter__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__eq__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__exit__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__file__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__float__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__floordiv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__format__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__fspath__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ge__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__get__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getattr__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getattribute__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getinitargs__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getitem__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getnewargs__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getnewargs_ex__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__getstate__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__gt__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__hash__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__iadd__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__iand__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ifloordiv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ilshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__imatmul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__imod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__import__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__imul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__index__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__init__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__init_subclass__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__instancecheck__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__int__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__invert__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ior__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ipow__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__irshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__isabstractmethod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__isub__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__iter__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__itruediv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ixor__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__le__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__len__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__length_hint__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__lltrace__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__loader__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__lshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__lt__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__main__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__matmul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__missing__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__mod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__module__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__mro_entries__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__mul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__name__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ne__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__neg__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__new__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__newobj__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__newobj_ex__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__next__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__notes__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__or__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__orig_class__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__origin__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__package__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__parameters__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__path__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__pos__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__pow__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__prepare__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__qualname__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__radd__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rand__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rdivmod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__reduce__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__reduce_ex__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__release_buffer__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__repr__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__reversed__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rfloordiv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rlshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rmatmul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rmod__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rmul__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__ror__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__round__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rpow__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rrshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rshift__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rsub__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rtruediv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__rxor__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__set__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__set_name__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__setattr__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__setitem__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__setstate__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__sizeof__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__slotnames__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__slots__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__spec__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__str__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__sub__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__subclasscheck__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__subclasshook__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__truediv__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__trunc__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__type_params__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__typing_is_unpacked_typevartuple__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__typing_prepare_subst__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__typing_subst__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__typing_unpacked_tuple_args__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__warningregistry__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__weaklistoffset__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__weakref__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(__xor__)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_abc_impl)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_abstract_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_active)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_annotation)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_anonymous_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_argtypes_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_as_parameter_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_asyncio_future_blocking)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_blksize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_bootstrap)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_check_retval_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_dealloc_warn)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_feature_version)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_fields_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_finalizing)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_find_and_load)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_fix_up_module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_flags_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_get_sourcefile)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_handle_fromlist)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_initializing)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_io)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_is_text_encoding)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_length_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_limbo)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_lock_unlock_module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_loop)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_needs_com_addref_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_pack_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_restype_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_showwarnmsg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_shutdown)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_slotnames)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_strptime_datetime)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_swappedbytes_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_type_)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_uninitialized_submodules)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_warn_unawaited_coroutine)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(_xoptions)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(a)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(abs_tol)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(access)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(add)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(add_done_callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(after_in_child)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(after_in_parent)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(aggregate_class)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(alias)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(append)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(arg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(argdefs)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(args)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(arguments)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(argv)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(as_integer_ratio)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ast)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(attribute)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(authorizer_callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(autocommit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(b)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(backtick)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(base)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(before)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(big)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(binary_form)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(block)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bound)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffer)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffer_callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffer_size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffering)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(buffers)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bufsize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(builtins)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(byteorder)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bytes)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(bytes_per_sep)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(c)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(c_call)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(c_exception)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(c_return)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cached_statements)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cadata)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cafile)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(call)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(call_exception_handler)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(call_soon)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cancel)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(capath)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(category)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cb_type)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(certfile)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(check_same_thread)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(clear)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(close)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(closed)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(closefd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(closure)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_argcount)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_cellvars)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_code)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_consts)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_exceptiontable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_filename)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_firstlineno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_flags)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_freevars)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_kwonlyargcount)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_linetable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_names)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_nlocals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_posonlyargcount)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_qualname)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_stacksize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(co_varnames)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(code)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(command)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(comment_factory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(compile_mode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(consts)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(context)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(contravariant)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cookie)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(copy)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(copyreg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(coro)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(count)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(covariant)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(cwd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(d)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(data)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(database)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(decode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(decoder)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(default)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(defaultaction)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(delete)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(depth)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(detect_types)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(deterministic)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(device)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dict)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dictcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(difference_update)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(digest)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(digest_size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(digestmod)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dir_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(discard)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dispatch_table)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(displayhook)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dklen)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(doc)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dont_inherit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dst)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(dst_dir_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(duration)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(e)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(eager_start)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(effective_ids)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(element_factory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(encode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(encoding)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(end)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(end_lineno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(end_offset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(endpos)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(entrypoint)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(env)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(errors)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(event)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(eventmask)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(exc_type)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(exc_value)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(excepthook)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(exception)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(existing_file_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(exp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(extend)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(extra_tokens)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(facility)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(factory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(false)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(family)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fanout)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fd2)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fdel)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fget)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(file)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(file_actions)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(filename)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fileno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(filepath)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fillvalue)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(filters)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(final)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(find_class)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fix_imports)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(flags)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(flush)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(follow_symlinks)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(format)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(frequency)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(from_param)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fromlist)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fromtimestamp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fromutc)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(fset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(func)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(future)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(generation)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(genexpr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get_debug)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get_event_loop)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get_loop)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(get_source)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(getattr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(getstate)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(gid)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(globals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(groupindex)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(groups)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(handle)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(hash_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(header)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(headers)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(hi)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(hook)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(id)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ident)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ignore)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(imag)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(importlib)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(in_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(incoming)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(indexgroup)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(inf)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(infer_variance)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(inheritable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initial)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initial_bytes)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initial_value)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(initval)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(inner_size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(input)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(insert_comments)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(insert_pis)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(instructions)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(intern)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(intersection)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(is_running)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isatty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isinstance)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isoformat)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(isolation_level)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(istext)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(item)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(items)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(iter)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(iterable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(iterations)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(join)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(jump)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(keepends)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(key)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(keyfile)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(keys)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kind)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kw)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kw1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(kw2)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(lambda)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_exc)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_node)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_traceback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_type)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(last_value)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(latin1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(leaf_size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(len)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(length)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(level)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(limit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(line)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(line_buffering)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(lineno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(listcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(little)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(lo)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(locale)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(locals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(logoption)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(loop)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mapping)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(match)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(max_length)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxdigits)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxevents)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxmem)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxsplit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(maxvalue)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(memLevel)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(memlimit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(message)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(metaclass)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(metadata)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(method)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mod)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(module)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(module_globals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(modules)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mro)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(msg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(mycmp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(n)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(n_arg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(n_fields)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(n_sequence_fields)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(n_unnamed_fields)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(name_from)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(namespace_separator)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(namespaces)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(narg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ndigits)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(new_file_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(new_limit)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(newline)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(newlines)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(next)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(nlocals)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(node_depth)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(node_offset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ns)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(nstype)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(nt)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(null)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(number)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(obj)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(object)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(offset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(offset_dst)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(offset_src)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(on_type_read)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(onceregistry)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(only_keys)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(oparg)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(opcode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(open)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(opener)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(operation)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(optimize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(options)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(order)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(origin)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(out_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(outgoing)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(overlapped)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(owner)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(p)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pages)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(parent)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(password)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(path)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pattern)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(peek)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(persistent_id)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(persistent_load)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(person)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pi_factory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pid)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(policy)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pos)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pos1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(pos2)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(posix)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(print_file_and_line)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(priority)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(progress)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(progress_handler)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(progress_routine)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(proto)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(protocol)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ps1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(ps2)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(query)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(quotetabs)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(r)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(raw)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(read)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(read1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readall)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readinto)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readinto1)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readline)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(readonly)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(real)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reducer_override)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(registry)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(rel_tol)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(release)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reload)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(repl)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(replace)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reserved)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reset)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(resetids)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(return)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reverse)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(reversed)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(s)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(salt)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sched_priority)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(scheduler)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(seek)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(seekable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(selectors)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(self)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(send)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sep)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sequence)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(server_hostname)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(server_side)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(session)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setcomp)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setpgroup)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setsid)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setsigdef)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setsigmask)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(setstate)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(shape)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(show_cmd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(signed)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(size)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sizehint)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(skip_file_prefixes)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sleep)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sock)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sort)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sound)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(source)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(source_traceback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(src)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(src_dir_fd)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(stacklevel)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(start)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(statement)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(status)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(stderr)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(stdin)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(stdout)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(step)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(steps)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(store_name)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(strategy)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(strftime)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(strict)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(strict_mode)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(string)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(sub_key)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(symmetric_difference_update)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tabsize)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tag)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(target)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(target_is_directory)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(task)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tb_frame)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tb_lasti)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tb_lineno)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tb_next)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tell)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(template)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(term)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(text)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(threading)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(throw)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(timeout)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(times)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(timetuple)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(top)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(trace_callback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(traceback)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(trailers)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(translate)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(true)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(truncate)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(twice)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(txt)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(type)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(type_params)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tz)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(tzname)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(uid)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(unlink)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(unraisablehook)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(uri)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(usedforsecurity)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(value)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(values)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(version)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(volume)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(warnings)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(warnoptions)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(wbits)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(week)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(weekday)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(which)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(who)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(withdata)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(writable)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(write)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(write_through)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(x)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(year)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_ID(zdict)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[0]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[1]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[2]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[3]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[4]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[5]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[6]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[7]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[8]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[9]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[10]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[11]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[12]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[13]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[14]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[15]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[16]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[17]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[18]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[19]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[20]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[21]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[22]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[23]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[24]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[25]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[26]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[27]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[28]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[29]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[30]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[31]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[32]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[33]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[34]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[35]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[36]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[37]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[38]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[39]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[40]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[41]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[42]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[43]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[44]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[45]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[46]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[47]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[48]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[49]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[50]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[51]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[52]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[53]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[54]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[55]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[56]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[57]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[58]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[59]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[60]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[61]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[62]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[63]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[64]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[65]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[66]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[67]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[68]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[69]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[70]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[71]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[72]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[73]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[74]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[75]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[76]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[77]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[78]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[79]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[80]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[81]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[82]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[83]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[84]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[85]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[86]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[87]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[88]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[89]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[90]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[91]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[92]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[93]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[94]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[95]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[96]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[97]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[98]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[99]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[100]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[101]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[102]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[103]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[104]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[105]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[106]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[107]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[108]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[109]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[110]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[111]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[112]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[113]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[114]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[115]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[116]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[117]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[118]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[119]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[120]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[121]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[122]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[123]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[124]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[125]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[126]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).ascii[127]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[128 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[129 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[130 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[131 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[132 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[133 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[134 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[135 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[136 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[137 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[138 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[139 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[140 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[141 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[142 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[143 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[144 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[145 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[146 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[147 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[148 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[149 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[150 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[151 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[152 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[153 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[154 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[155 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[156 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[157 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[158 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[159 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[160 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[161 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[162 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[163 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[164 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[165 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[166 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[167 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[168 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[169 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[170 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[171 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[172 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[173 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[174 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[175 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[176 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[177 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[178 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[179 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[180 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[181 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[182 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[183 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[184 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[185 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[186 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[187 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[188 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[189 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[190 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[191 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[192 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[193 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[194 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[195 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[196 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[197 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[198 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[199 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[200 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[201 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[202 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[203 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[204 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[205 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[206 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[207 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[208 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[209 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[210 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[211 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[212 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[213 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[214 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[215 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[216 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[217 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[218 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[219 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[220 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[221 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[222 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[223 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[224 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[225 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[226 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[227 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[228 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[229 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[230 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[231 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[232 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[233 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[234 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[235 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[236 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[237 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[238 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[239 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[240 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[241 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[242 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[243 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[244 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[245 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[246 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[247 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[248 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[249 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[250 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[251 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[252 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[253 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[254 - 128]); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(strings).latin1[255 - 128]); + /* non-generated */ + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(bytes_empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(tuple_empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(hamt_bitmap_node_empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_INTERP_SINGLETON(interp, hamt_empty)); + _PyStaticObject_CheckRefcnt((PyObject *)&_Py_SINGLETON(context_token_missing)); +} +#endif // Py_DEBUG +/* End auto-generated code */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_GLOBAL_OBJECTS_FINI_GENERATED_INIT_H */ diff --git a/src/external/windows/include/python/internal/pycore_global_strings.h b/src/external/windows/include/python/internal/pycore_global_strings.h index 1679d458..e435cbff 100644 --- a/src/external/windows/include/python/internal/pycore_global_strings.h +++ b/src/external/windows/include/python/internal/pycore_global_strings.h @@ -8,10 +8,10 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif -// The data structure & init here are inspired by Tools/scripts/deepfreeze.py. +// The data structure & init here are inspired by Tools/build/deepfreeze.py. // All field names generated by ASCII_STR() have a common prefix, -// to help avoid collisions with keywords, etc. +// to help avoid collisions with keywords, macros, etc. #define STRUCT_FOR_ASCII_STR(LITERAL) \ struct { \ @@ -19,13 +19,13 @@ extern "C" { uint8_t _data[sizeof(LITERAL)]; \ } #define STRUCT_FOR_STR(NAME, LITERAL) \ - STRUCT_FOR_ASCII_STR(LITERAL) _ ## NAME; + STRUCT_FOR_ASCII_STR(LITERAL) _py_ ## NAME; #define STRUCT_FOR_ID(NAME) \ - STRUCT_FOR_ASCII_STR(#NAME) _ ## NAME; + STRUCT_FOR_ASCII_STR(#NAME) _py_ ## NAME; // XXX Order by frequency of use? -/* The following is auto-generated by Tools/scripts/generate_global_objects.py. */ +/* The following is auto-generated by Tools/build/generate_global_objects.py. */ struct _Py_global_strings { struct { STRUCT_FOR_STR(anon_dictcomp, "") @@ -37,27 +37,37 @@ struct _Py_global_strings { STRUCT_FOR_STR(anon_string, "") STRUCT_FOR_STR(anon_unknown, "") STRUCT_FOR_STR(close_br, "}") - STRUCT_FOR_STR(comma_sep, ", ") STRUCT_FOR_STR(dbl_close_br, "}}") STRUCT_FOR_STR(dbl_open_br, "{{") STRUCT_FOR_STR(dbl_percent, "%%") + STRUCT_FOR_STR(defaults, ".defaults") STRUCT_FOR_STR(dot, ".") STRUCT_FOR_STR(dot_locals, ".") STRUCT_FOR_STR(empty, "") + STRUCT_FOR_STR(generic_base, ".generic_base") + STRUCT_FOR_STR(json_decoder, "json.decoder") + STRUCT_FOR_STR(kwdefaults, ".kwdefaults") STRUCT_FOR_STR(list_err, "list index out of range") STRUCT_FOR_STR(newline, "\n") STRUCT_FOR_STR(open_br, "{") STRUCT_FOR_STR(percent, "%") + STRUCT_FOR_STR(shim_name, "") + STRUCT_FOR_STR(type_params, ".type_params") STRUCT_FOR_STR(utf_8, "utf-8") } literals; struct { + STRUCT_FOR_ID(CANCELLED) + STRUCT_FOR_ID(FINISHED) STRUCT_FOR_ID(False) + STRUCT_FOR_ID(JSONDecodeError) + STRUCT_FOR_ID(PENDING) STRUCT_FOR_ID(Py_Repr) STRUCT_FOR_ID(TextIOWrapper) STRUCT_FOR_ID(True) STRUCT_FOR_ID(WarningMessage) STRUCT_FOR_ID(_) + STRUCT_FOR_ID(_WindowsConsoleIO) STRUCT_FOR_ID(__IOBase_closed) STRUCT_FOR_ID(__abc_tpflags__) STRUCT_FOR_ID(__abs__) @@ -71,9 +81,11 @@ struct _Py_global_strings { STRUCT_FOR_ID(__anext__) STRUCT_FOR_ID(__annotations__) STRUCT_FOR_ID(__args__) + STRUCT_FOR_ID(__asyncio_running_event_loop__) STRUCT_FOR_ID(__await__) STRUCT_FOR_ID(__bases__) STRUCT_FOR_ID(__bool__) + STRUCT_FOR_ID(__buffer__) STRUCT_FOR_ID(__build_class__) STRUCT_FOR_ID(__builtins__) STRUCT_FOR_ID(__bytes__) @@ -82,14 +94,18 @@ struct _Py_global_strings { STRUCT_FOR_ID(__class__) STRUCT_FOR_ID(__class_getitem__) STRUCT_FOR_ID(__classcell__) + STRUCT_FOR_ID(__classdict__) + STRUCT_FOR_ID(__classdictcell__) STRUCT_FOR_ID(__complex__) STRUCT_FOR_ID(__contains__) STRUCT_FOR_ID(__copy__) + STRUCT_FOR_ID(__ctypes_from_outparam__) STRUCT_FOR_ID(__del__) STRUCT_FOR_ID(__delattr__) STRUCT_FOR_ID(__delete__) STRUCT_FOR_ID(__delitem__) STRUCT_FOR_ID(__dict__) + STRUCT_FOR_ID(__dictoffset__) STRUCT_FOR_ID(__dir__) STRUCT_FOR_ID(__divmod__) STRUCT_FOR_ID(__doc__) @@ -171,6 +187,7 @@ struct _Py_global_strings { STRUCT_FOR_ID(__rdivmod__) STRUCT_FOR_ID(__reduce__) STRUCT_FOR_ID(__reduce_ex__) + STRUCT_FOR_ID(__release_buffer__) STRUCT_FOR_ID(__repr__) STRUCT_FOR_ID(__reversed__) STRUCT_FOR_ID(__rfloordiv__) @@ -201,122 +218,408 @@ struct _Py_global_strings { STRUCT_FOR_ID(__subclasshook__) STRUCT_FOR_ID(__truediv__) STRUCT_FOR_ID(__trunc__) + STRUCT_FOR_ID(__type_params__) STRUCT_FOR_ID(__typing_is_unpacked_typevartuple__) STRUCT_FOR_ID(__typing_prepare_subst__) STRUCT_FOR_ID(__typing_subst__) STRUCT_FOR_ID(__typing_unpacked_tuple_args__) STRUCT_FOR_ID(__warningregistry__) + STRUCT_FOR_ID(__weaklistoffset__) STRUCT_FOR_ID(__weakref__) STRUCT_FOR_ID(__xor__) STRUCT_FOR_ID(_abc_impl) + STRUCT_FOR_ID(_abstract_) + STRUCT_FOR_ID(_active) STRUCT_FOR_ID(_annotation) + STRUCT_FOR_ID(_anonymous_) + STRUCT_FOR_ID(_argtypes_) + STRUCT_FOR_ID(_as_parameter_) + STRUCT_FOR_ID(_asyncio_future_blocking) STRUCT_FOR_ID(_blksize) STRUCT_FOR_ID(_bootstrap) + STRUCT_FOR_ID(_check_retval_) STRUCT_FOR_ID(_dealloc_warn) + STRUCT_FOR_ID(_feature_version) + STRUCT_FOR_ID(_fields_) STRUCT_FOR_ID(_finalizing) STRUCT_FOR_ID(_find_and_load) STRUCT_FOR_ID(_fix_up_module) + STRUCT_FOR_ID(_flags_) STRUCT_FOR_ID(_get_sourcefile) STRUCT_FOR_ID(_handle_fromlist) STRUCT_FOR_ID(_initializing) + STRUCT_FOR_ID(_io) STRUCT_FOR_ID(_is_text_encoding) + STRUCT_FOR_ID(_length_) + STRUCT_FOR_ID(_limbo) STRUCT_FOR_ID(_lock_unlock_module) + STRUCT_FOR_ID(_loop) + STRUCT_FOR_ID(_needs_com_addref_) + STRUCT_FOR_ID(_pack_) + STRUCT_FOR_ID(_restype_) STRUCT_FOR_ID(_showwarnmsg) STRUCT_FOR_ID(_shutdown) STRUCT_FOR_ID(_slotnames) - STRUCT_FOR_ID(_strptime_time) + STRUCT_FOR_ID(_strptime_datetime) + STRUCT_FOR_ID(_swappedbytes_) + STRUCT_FOR_ID(_type_) STRUCT_FOR_ID(_uninitialized_submodules) STRUCT_FOR_ID(_warn_unawaited_coroutine) STRUCT_FOR_ID(_xoptions) + STRUCT_FOR_ID(a) + STRUCT_FOR_ID(abs_tol) + STRUCT_FOR_ID(access) STRUCT_FOR_ID(add) + STRUCT_FOR_ID(add_done_callback) + STRUCT_FOR_ID(after_in_child) + STRUCT_FOR_ID(after_in_parent) + STRUCT_FOR_ID(aggregate_class) + STRUCT_FOR_ID(alias) STRUCT_FOR_ID(append) + STRUCT_FOR_ID(arg) + STRUCT_FOR_ID(argdefs) + STRUCT_FOR_ID(args) + STRUCT_FOR_ID(arguments) + STRUCT_FOR_ID(argv) + STRUCT_FOR_ID(as_integer_ratio) + STRUCT_FOR_ID(ast) + STRUCT_FOR_ID(attribute) + STRUCT_FOR_ID(authorizer_callback) + STRUCT_FOR_ID(autocommit) + STRUCT_FOR_ID(b) + STRUCT_FOR_ID(backtick) + STRUCT_FOR_ID(base) + STRUCT_FOR_ID(before) STRUCT_FOR_ID(big) + STRUCT_FOR_ID(binary_form) + STRUCT_FOR_ID(block) + STRUCT_FOR_ID(bound) STRUCT_FOR_ID(buffer) + STRUCT_FOR_ID(buffer_callback) + STRUCT_FOR_ID(buffer_size) + STRUCT_FOR_ID(buffering) + STRUCT_FOR_ID(buffers) + STRUCT_FOR_ID(bufsize) STRUCT_FOR_ID(builtins) + STRUCT_FOR_ID(byteorder) + STRUCT_FOR_ID(bytes) + STRUCT_FOR_ID(bytes_per_sep) + STRUCT_FOR_ID(c) STRUCT_FOR_ID(c_call) STRUCT_FOR_ID(c_exception) STRUCT_FOR_ID(c_return) + STRUCT_FOR_ID(cached_statements) + STRUCT_FOR_ID(cadata) + STRUCT_FOR_ID(cafile) STRUCT_FOR_ID(call) + STRUCT_FOR_ID(call_exception_handler) + STRUCT_FOR_ID(call_soon) + STRUCT_FOR_ID(cancel) + STRUCT_FOR_ID(capath) + STRUCT_FOR_ID(category) + STRUCT_FOR_ID(cb_type) + STRUCT_FOR_ID(certfile) + STRUCT_FOR_ID(check_same_thread) STRUCT_FOR_ID(clear) STRUCT_FOR_ID(close) STRUCT_FOR_ID(closed) + STRUCT_FOR_ID(closefd) + STRUCT_FOR_ID(closure) + STRUCT_FOR_ID(co_argcount) + STRUCT_FOR_ID(co_cellvars) + STRUCT_FOR_ID(co_code) + STRUCT_FOR_ID(co_consts) + STRUCT_FOR_ID(co_exceptiontable) + STRUCT_FOR_ID(co_filename) + STRUCT_FOR_ID(co_firstlineno) + STRUCT_FOR_ID(co_flags) + STRUCT_FOR_ID(co_freevars) + STRUCT_FOR_ID(co_kwonlyargcount) + STRUCT_FOR_ID(co_linetable) + STRUCT_FOR_ID(co_name) + STRUCT_FOR_ID(co_names) + STRUCT_FOR_ID(co_nlocals) + STRUCT_FOR_ID(co_posonlyargcount) + STRUCT_FOR_ID(co_qualname) + STRUCT_FOR_ID(co_stacksize) + STRUCT_FOR_ID(co_varnames) STRUCT_FOR_ID(code) + STRUCT_FOR_ID(command) + STRUCT_FOR_ID(comment_factory) + STRUCT_FOR_ID(compile_mode) + STRUCT_FOR_ID(consts) + STRUCT_FOR_ID(context) + STRUCT_FOR_ID(contravariant) + STRUCT_FOR_ID(cookie) STRUCT_FOR_ID(copy) STRUCT_FOR_ID(copyreg) + STRUCT_FOR_ID(coro) + STRUCT_FOR_ID(count) + STRUCT_FOR_ID(covariant) + STRUCT_FOR_ID(cwd) + STRUCT_FOR_ID(d) + STRUCT_FOR_ID(data) + STRUCT_FOR_ID(database) STRUCT_FOR_ID(decode) + STRUCT_FOR_ID(decoder) STRUCT_FOR_ID(default) STRUCT_FOR_ID(defaultaction) + STRUCT_FOR_ID(delete) + STRUCT_FOR_ID(depth) + STRUCT_FOR_ID(detect_types) + STRUCT_FOR_ID(deterministic) + STRUCT_FOR_ID(device) + STRUCT_FOR_ID(dict) STRUCT_FOR_ID(dictcomp) STRUCT_FOR_ID(difference_update) + STRUCT_FOR_ID(digest) + STRUCT_FOR_ID(digest_size) + STRUCT_FOR_ID(digestmod) + STRUCT_FOR_ID(dir_fd) + STRUCT_FOR_ID(discard) STRUCT_FOR_ID(dispatch_table) STRUCT_FOR_ID(displayhook) - STRUCT_FOR_ID(enable) + STRUCT_FOR_ID(dklen) + STRUCT_FOR_ID(doc) + STRUCT_FOR_ID(dont_inherit) + STRUCT_FOR_ID(dst) + STRUCT_FOR_ID(dst_dir_fd) + STRUCT_FOR_ID(duration) + STRUCT_FOR_ID(e) + STRUCT_FOR_ID(eager_start) + STRUCT_FOR_ID(effective_ids) + STRUCT_FOR_ID(element_factory) STRUCT_FOR_ID(encode) STRUCT_FOR_ID(encoding) + STRUCT_FOR_ID(end) STRUCT_FOR_ID(end_lineno) STRUCT_FOR_ID(end_offset) + STRUCT_FOR_ID(endpos) + STRUCT_FOR_ID(entrypoint) + STRUCT_FOR_ID(env) STRUCT_FOR_ID(errors) + STRUCT_FOR_ID(event) + STRUCT_FOR_ID(eventmask) + STRUCT_FOR_ID(exc_type) + STRUCT_FOR_ID(exc_value) STRUCT_FOR_ID(excepthook) STRUCT_FOR_ID(exception) + STRUCT_FOR_ID(existing_file_name) + STRUCT_FOR_ID(exp) STRUCT_FOR_ID(extend) + STRUCT_FOR_ID(extra_tokens) + STRUCT_FOR_ID(facility) + STRUCT_FOR_ID(factory) + STRUCT_FOR_ID(false) + STRUCT_FOR_ID(family) + STRUCT_FOR_ID(fanout) + STRUCT_FOR_ID(fd) + STRUCT_FOR_ID(fd2) + STRUCT_FOR_ID(fdel) + STRUCT_FOR_ID(fget) + STRUCT_FOR_ID(file) + STRUCT_FOR_ID(file_actions) STRUCT_FOR_ID(filename) STRUCT_FOR_ID(fileno) + STRUCT_FOR_ID(filepath) STRUCT_FOR_ID(fillvalue) STRUCT_FOR_ID(filters) + STRUCT_FOR_ID(final) STRUCT_FOR_ID(find_class) + STRUCT_FOR_ID(fix_imports) + STRUCT_FOR_ID(flags) STRUCT_FOR_ID(flush) + STRUCT_FOR_ID(follow_symlinks) + STRUCT_FOR_ID(format) + STRUCT_FOR_ID(frequency) + STRUCT_FOR_ID(from_param) + STRUCT_FOR_ID(fromlist) + STRUCT_FOR_ID(fromtimestamp) + STRUCT_FOR_ID(fromutc) + STRUCT_FOR_ID(fset) + STRUCT_FOR_ID(func) + STRUCT_FOR_ID(future) + STRUCT_FOR_ID(generation) STRUCT_FOR_ID(genexpr) STRUCT_FOR_ID(get) + STRUCT_FOR_ID(get_debug) + STRUCT_FOR_ID(get_event_loop) + STRUCT_FOR_ID(get_loop) STRUCT_FOR_ID(get_source) STRUCT_FOR_ID(getattr) STRUCT_FOR_ID(getstate) + STRUCT_FOR_ID(gid) + STRUCT_FOR_ID(globals) + STRUCT_FOR_ID(groupindex) + STRUCT_FOR_ID(groups) + STRUCT_FOR_ID(handle) + STRUCT_FOR_ID(hash_name) + STRUCT_FOR_ID(header) + STRUCT_FOR_ID(headers) + STRUCT_FOR_ID(hi) + STRUCT_FOR_ID(hook) + STRUCT_FOR_ID(id) + STRUCT_FOR_ID(ident) STRUCT_FOR_ID(ignore) + STRUCT_FOR_ID(imag) STRUCT_FOR_ID(importlib) + STRUCT_FOR_ID(in_fd) + STRUCT_FOR_ID(incoming) + STRUCT_FOR_ID(indexgroup) STRUCT_FOR_ID(inf) + STRUCT_FOR_ID(infer_variance) + STRUCT_FOR_ID(inheritable) + STRUCT_FOR_ID(initial) + STRUCT_FOR_ID(initial_bytes) + STRUCT_FOR_ID(initial_value) + STRUCT_FOR_ID(initval) + STRUCT_FOR_ID(inner_size) + STRUCT_FOR_ID(input) + STRUCT_FOR_ID(insert_comments) + STRUCT_FOR_ID(insert_pis) + STRUCT_FOR_ID(instructions) + STRUCT_FOR_ID(intern) STRUCT_FOR_ID(intersection) + STRUCT_FOR_ID(is_running) STRUCT_FOR_ID(isatty) STRUCT_FOR_ID(isinstance) + STRUCT_FOR_ID(isoformat) + STRUCT_FOR_ID(isolation_level) + STRUCT_FOR_ID(istext) + STRUCT_FOR_ID(item) STRUCT_FOR_ID(items) STRUCT_FOR_ID(iter) + STRUCT_FOR_ID(iterable) + STRUCT_FOR_ID(iterations) STRUCT_FOR_ID(join) + STRUCT_FOR_ID(jump) + STRUCT_FOR_ID(keepends) + STRUCT_FOR_ID(key) + STRUCT_FOR_ID(keyfile) STRUCT_FOR_ID(keys) + STRUCT_FOR_ID(kind) + STRUCT_FOR_ID(kw) + STRUCT_FOR_ID(kw1) + STRUCT_FOR_ID(kw2) STRUCT_FOR_ID(lambda) + STRUCT_FOR_ID(last) + STRUCT_FOR_ID(last_exc) + STRUCT_FOR_ID(last_node) STRUCT_FOR_ID(last_traceback) STRUCT_FOR_ID(last_type) STRUCT_FOR_ID(last_value) STRUCT_FOR_ID(latin1) + STRUCT_FOR_ID(leaf_size) STRUCT_FOR_ID(len) + STRUCT_FOR_ID(length) + STRUCT_FOR_ID(level) + STRUCT_FOR_ID(limit) STRUCT_FOR_ID(line) + STRUCT_FOR_ID(line_buffering) STRUCT_FOR_ID(lineno) STRUCT_FOR_ID(listcomp) STRUCT_FOR_ID(little) + STRUCT_FOR_ID(lo) STRUCT_FOR_ID(locale) + STRUCT_FOR_ID(locals) + STRUCT_FOR_ID(logoption) + STRUCT_FOR_ID(loop) + STRUCT_FOR_ID(mapping) STRUCT_FOR_ID(match) + STRUCT_FOR_ID(max_length) + STRUCT_FOR_ID(maxdigits) + STRUCT_FOR_ID(maxevents) + STRUCT_FOR_ID(maxmem) + STRUCT_FOR_ID(maxsplit) + STRUCT_FOR_ID(maxvalue) + STRUCT_FOR_ID(memLevel) + STRUCT_FOR_ID(memlimit) + STRUCT_FOR_ID(message) STRUCT_FOR_ID(metaclass) + STRUCT_FOR_ID(metadata) + STRUCT_FOR_ID(method) + STRUCT_FOR_ID(mod) STRUCT_FOR_ID(mode) + STRUCT_FOR_ID(module) + STRUCT_FOR_ID(module_globals) STRUCT_FOR_ID(modules) STRUCT_FOR_ID(mro) STRUCT_FOR_ID(msg) + STRUCT_FOR_ID(mycmp) + STRUCT_FOR_ID(n) + STRUCT_FOR_ID(n_arg) STRUCT_FOR_ID(n_fields) STRUCT_FOR_ID(n_sequence_fields) STRUCT_FOR_ID(n_unnamed_fields) STRUCT_FOR_ID(name) + STRUCT_FOR_ID(name_from) + STRUCT_FOR_ID(namespace_separator) + STRUCT_FOR_ID(namespaces) + STRUCT_FOR_ID(narg) + STRUCT_FOR_ID(ndigits) + STRUCT_FOR_ID(new_file_name) + STRUCT_FOR_ID(new_limit) + STRUCT_FOR_ID(newline) STRUCT_FOR_ID(newlines) STRUCT_FOR_ID(next) + STRUCT_FOR_ID(nlocals) + STRUCT_FOR_ID(node_depth) + STRUCT_FOR_ID(node_offset) + STRUCT_FOR_ID(ns) + STRUCT_FOR_ID(nstype) + STRUCT_FOR_ID(nt) + STRUCT_FOR_ID(null) + STRUCT_FOR_ID(number) STRUCT_FOR_ID(obj) + STRUCT_FOR_ID(object) STRUCT_FOR_ID(offset) + STRUCT_FOR_ID(offset_dst) + STRUCT_FOR_ID(offset_src) + STRUCT_FOR_ID(on_type_read) STRUCT_FOR_ID(onceregistry) + STRUCT_FOR_ID(only_keys) + STRUCT_FOR_ID(oparg) STRUCT_FOR_ID(opcode) STRUCT_FOR_ID(open) + STRUCT_FOR_ID(opener) + STRUCT_FOR_ID(operation) + STRUCT_FOR_ID(optimize) + STRUCT_FOR_ID(options) + STRUCT_FOR_ID(order) + STRUCT_FOR_ID(origin) + STRUCT_FOR_ID(out_fd) + STRUCT_FOR_ID(outgoing) + STRUCT_FOR_ID(overlapped) + STRUCT_FOR_ID(owner) + STRUCT_FOR_ID(p) + STRUCT_FOR_ID(pages) STRUCT_FOR_ID(parent) - STRUCT_FOR_ID(partial) + STRUCT_FOR_ID(password) STRUCT_FOR_ID(path) + STRUCT_FOR_ID(pattern) STRUCT_FOR_ID(peek) STRUCT_FOR_ID(persistent_id) STRUCT_FOR_ID(persistent_load) + STRUCT_FOR_ID(person) + STRUCT_FOR_ID(pi_factory) + STRUCT_FOR_ID(pid) + STRUCT_FOR_ID(policy) + STRUCT_FOR_ID(pos) + STRUCT_FOR_ID(pos1) + STRUCT_FOR_ID(pos2) + STRUCT_FOR_ID(posix) STRUCT_FOR_ID(print_file_and_line) + STRUCT_FOR_ID(priority) + STRUCT_FOR_ID(progress) + STRUCT_FOR_ID(progress_handler) + STRUCT_FOR_ID(progress_routine) + STRUCT_FOR_ID(proto) + STRUCT_FOR_ID(protocol) STRUCT_FOR_ID(ps1) STRUCT_FOR_ID(ps2) + STRUCT_FOR_ID(query) + STRUCT_FOR_ID(quotetabs) + STRUCT_FOR_ID(r) STRUCT_FOR_ID(raw) STRUCT_FOR_ID(read) STRUCT_FOR_ID(read1) @@ -325,37 +628,126 @@ struct _Py_global_strings { STRUCT_FOR_ID(readinto) STRUCT_FOR_ID(readinto1) STRUCT_FOR_ID(readline) + STRUCT_FOR_ID(readonly) + STRUCT_FOR_ID(real) STRUCT_FOR_ID(reducer_override) + STRUCT_FOR_ID(registry) + STRUCT_FOR_ID(rel_tol) + STRUCT_FOR_ID(release) STRUCT_FOR_ID(reload) + STRUCT_FOR_ID(repl) STRUCT_FOR_ID(replace) + STRUCT_FOR_ID(reserved) STRUCT_FOR_ID(reset) + STRUCT_FOR_ID(resetids) STRUCT_FOR_ID(return) + STRUCT_FOR_ID(reverse) STRUCT_FOR_ID(reversed) + STRUCT_FOR_ID(s) + STRUCT_FOR_ID(salt) + STRUCT_FOR_ID(sched_priority) + STRUCT_FOR_ID(scheduler) STRUCT_FOR_ID(seek) STRUCT_FOR_ID(seekable) + STRUCT_FOR_ID(selectors) + STRUCT_FOR_ID(self) STRUCT_FOR_ID(send) + STRUCT_FOR_ID(sep) + STRUCT_FOR_ID(sequence) + STRUCT_FOR_ID(server_hostname) + STRUCT_FOR_ID(server_side) + STRUCT_FOR_ID(session) STRUCT_FOR_ID(setcomp) + STRUCT_FOR_ID(setpgroup) + STRUCT_FOR_ID(setsid) + STRUCT_FOR_ID(setsigdef) + STRUCT_FOR_ID(setsigmask) STRUCT_FOR_ID(setstate) + STRUCT_FOR_ID(shape) + STRUCT_FOR_ID(show_cmd) + STRUCT_FOR_ID(signed) + STRUCT_FOR_ID(size) + STRUCT_FOR_ID(sizehint) + STRUCT_FOR_ID(skip_file_prefixes) + STRUCT_FOR_ID(sleep) + STRUCT_FOR_ID(sock) STRUCT_FOR_ID(sort) + STRUCT_FOR_ID(sound) + STRUCT_FOR_ID(source) + STRUCT_FOR_ID(source_traceback) + STRUCT_FOR_ID(src) + STRUCT_FOR_ID(src_dir_fd) + STRUCT_FOR_ID(stacklevel) + STRUCT_FOR_ID(start) + STRUCT_FOR_ID(statement) + STRUCT_FOR_ID(status) STRUCT_FOR_ID(stderr) STRUCT_FOR_ID(stdin) STRUCT_FOR_ID(stdout) + STRUCT_FOR_ID(step) + STRUCT_FOR_ID(steps) + STRUCT_FOR_ID(store_name) + STRUCT_FOR_ID(strategy) + STRUCT_FOR_ID(strftime) STRUCT_FOR_ID(strict) + STRUCT_FOR_ID(strict_mode) + STRUCT_FOR_ID(string) + STRUCT_FOR_ID(sub_key) STRUCT_FOR_ID(symmetric_difference_update) + STRUCT_FOR_ID(tabsize) + STRUCT_FOR_ID(tag) + STRUCT_FOR_ID(target) + STRUCT_FOR_ID(target_is_directory) + STRUCT_FOR_ID(task) + STRUCT_FOR_ID(tb_frame) + STRUCT_FOR_ID(tb_lasti) + STRUCT_FOR_ID(tb_lineno) + STRUCT_FOR_ID(tb_next) STRUCT_FOR_ID(tell) + STRUCT_FOR_ID(template) + STRUCT_FOR_ID(term) STRUCT_FOR_ID(text) STRUCT_FOR_ID(threading) STRUCT_FOR_ID(throw) + STRUCT_FOR_ID(timeout) + STRUCT_FOR_ID(times) + STRUCT_FOR_ID(timetuple) STRUCT_FOR_ID(top) + STRUCT_FOR_ID(trace_callback) + STRUCT_FOR_ID(traceback) + STRUCT_FOR_ID(trailers) + STRUCT_FOR_ID(translate) + STRUCT_FOR_ID(true) STRUCT_FOR_ID(truncate) + STRUCT_FOR_ID(twice) + STRUCT_FOR_ID(txt) + STRUCT_FOR_ID(type) + STRUCT_FOR_ID(type_params) + STRUCT_FOR_ID(tz) + STRUCT_FOR_ID(tzname) + STRUCT_FOR_ID(uid) + STRUCT_FOR_ID(unlink) STRUCT_FOR_ID(unraisablehook) + STRUCT_FOR_ID(uri) + STRUCT_FOR_ID(usedforsecurity) + STRUCT_FOR_ID(value) STRUCT_FOR_ID(values) STRUCT_FOR_ID(version) + STRUCT_FOR_ID(volume) STRUCT_FOR_ID(warnings) STRUCT_FOR_ID(warnoptions) + STRUCT_FOR_ID(wbits) + STRUCT_FOR_ID(week) + STRUCT_FOR_ID(weekday) + STRUCT_FOR_ID(which) + STRUCT_FOR_ID(who) + STRUCT_FOR_ID(withdata) STRUCT_FOR_ID(writable) STRUCT_FOR_ID(write) - STRUCT_FOR_ID(zipimporter) + STRUCT_FOR_ID(write_through) + STRUCT_FOR_ID(x) + STRUCT_FOR_ID(year) + STRUCT_FOR_ID(zdict) } identifiers; struct { PyASCIIObject _ascii; @@ -373,9 +765,9 @@ struct _Py_global_strings { #define _Py_ID(NAME) \ - (_Py_SINGLETON(strings.identifiers._ ## NAME._ascii.ob_base)) + (_Py_SINGLETON(strings.identifiers._py_ ## NAME._ascii.ob_base)) #define _Py_STR(NAME) \ - (_Py_SINGLETON(strings.literals._ ## NAME._ascii.ob_base)) + (_Py_SINGLETON(strings.literals._py_ ## NAME._ascii.ob_base)) /* _Py_DECLARE_STR() should precede all uses of _Py_STR() in a function. diff --git a/src/external/windows/include/python/internal/pycore_hamt.h b/src/external/windows/include/python/internal/pycore_hamt.h index 0cb2b672..48d45554 100755 --- a/src/external/windows/include/python/internal/pycore_hamt.h +++ b/src/external/windows/include/python/internal/pycore_hamt.h @@ -28,14 +28,10 @@ extern PyTypeObject _PyHamtKeys_Type; extern PyTypeObject _PyHamtValues_Type; extern PyTypeObject _PyHamtItems_Type; -/* runtime lifecycle */ - -void _PyHamt_Fini(PyInterpreterState *); - /* other API */ -#define PyHamt_Check(o) Py_IS_TYPE(o, &_PyHamt_Type) +#define PyHamt_Check(o) Py_IS_TYPE((o), &_PyHamt_Type) /* Abstract tree node. */ @@ -53,6 +49,13 @@ typedef struct { } PyHamtObject; +typedef struct { + PyObject_VAR_HEAD + uint32_t b_bitmap; + PyObject *b_array[1]; +} PyHamtNode_Bitmap; + + /* A struct to hold the state of depth-first traverse of the tree. HAMT is an immutable collection. Iterators will hold a strong reference diff --git a/src/external/windows/include/python/internal/pycore_hashtable.h b/src/external/windows/include/python/internal/pycore_hashtable.h index 8fa411a1..0a4f8599 100755 --- a/src/external/windows/include/python/internal/pycore_hashtable.h +++ b/src/external/windows/include/python/internal/pycore_hashtable.h @@ -18,9 +18,9 @@ typedef struct { _Py_slist_item_t *head; } _Py_slist_t; -#define _Py_SLIST_ITEM_NEXT(ITEM) (((_Py_slist_item_t *)ITEM)->next) +#define _Py_SLIST_ITEM_NEXT(ITEM) _Py_RVALUE(((_Py_slist_item_t *)(ITEM))->next) -#define _Py_SLIST_HEAD(SLIST) (((_Py_slist_t *)SLIST)->head) +#define _Py_SLIST_HEAD(SLIST) _Py_RVALUE(((_Py_slist_t *)(SLIST))->head) /* _Py_hashtable: table entry */ @@ -106,6 +106,7 @@ PyAPI_FUNC(int) _Py_hashtable_foreach( void *user_data); PyAPI_FUNC(size_t) _Py_hashtable_size(const _Py_hashtable_t *ht); +PyAPI_FUNC(size_t) _Py_hashtable_len(const _Py_hashtable_t *ht); /* Add a new entry to the hash. The key must not be present in the hash table. Return 0 on success, -1 on memory error. */ diff --git a/src/external/windows/include/python/internal/pycore_import.h b/src/external/windows/include/python/internal/pycore_import.h index 8b9bd663..d74edcec 100755 --- a/src/external/windows/include/python/internal/pycore_import.h +++ b/src/external/windows/include/python/internal/pycore_import.h @@ -5,10 +5,159 @@ extern "C" { #endif -#ifdef HAVE_FORK -extern PyStatus _PyImport_ReInitLock(void); +#include "pycore_hashtable.h" // _Py_hashtable_t +#include "pycore_time.h" // _PyTime_t + + +struct _import_runtime_state { + /* The builtin modules (defined in config.c). */ + struct _inittab *inittab; + /* The most recent value assigned to a PyModuleDef.m_base.m_index. + This is incremented each time PyModuleDef_Init() is called, + which is just about every time an extension module is imported. + See PyInterpreterState.modules_by_index for more info. */ + Py_ssize_t last_module_index; + struct { + /* A lock to guard the cache. */ + PyThread_type_lock mutex; + /* The actual cache of (filename, name, PyModuleDef) for modules. + Only legacy (single-phase init) extension modules are added + and only if they support multiple initialization (m_size >- 0) + or are imported in the main interpreter. + This is initialized lazily in _PyImport_FixupExtensionObject(). + Modules are added there and looked up in _imp.find_extension(). */ + _Py_hashtable_t *hashtable; + } extensions; + /* Package context -- the full module name for package imports */ + const char * pkgcontext; +}; + +struct _import_state { + /* cached sys.modules dictionary */ + PyObject *modules; + /* This is the list of module objects for all legacy (single-phase init) + extension modules ever loaded in this process (i.e. imported + in this interpreter or in any other). Py_None stands in for + modules that haven't actually been imported in this interpreter. + + A module's index (PyModuleDef.m_base.m_index) is used to look up + the corresponding module object for this interpreter, if any. + (See PyState_FindModule().) When any extension module + is initialized during import, its moduledef gets initialized by + PyModuleDef_Init(), and the first time that happens for each + PyModuleDef, its index gets set to the current value of + a global counter (see _PyRuntimeState.imports.last_module_index). + The entry for that index in this interpreter remains unset until + the module is actually imported here. (Py_None is used as + a placeholder.) Note that multi-phase init modules always get + an index for which there will never be a module set. + + This is initialized lazily in PyState_AddModule(), which is also + where modules get added. */ + PyObject *modules_by_index; + /* importlib module._bootstrap */ + PyObject *importlib; + /* override for config->use_frozen_modules (for tests) + (-1: "off", 1: "on", 0: no override) */ + int override_frozen_modules; + int override_multi_interp_extensions_check; +#ifdef HAVE_DLOPEN + int dlopenflags; #endif -extern PyObject* _PyImport_BootstrapImp(PyThreadState *tstate); + PyObject *import_func; + /* The global import lock. */ + struct { + PyThread_type_lock mutex; + unsigned long thread; + int level; + } lock; + /* diagnostic info in PyImport_ImportModuleLevelObject() */ + struct { + int import_level; + _PyTime_t accumulated; + int header; + } find_and_load; +}; + +#ifdef HAVE_DLOPEN +# include +# if HAVE_DECL_RTLD_NOW +# define _Py_DLOPEN_FLAGS RTLD_NOW +# else +# define _Py_DLOPEN_FLAGS RTLD_LAZY +# endif +# define DLOPENFLAGS_INIT .dlopenflags = _Py_DLOPEN_FLAGS, +#else +# define _Py_DLOPEN_FLAGS 0 +# define DLOPENFLAGS_INIT +#endif + +#define IMPORTS_INIT \ + { \ + DLOPENFLAGS_INIT \ + .lock = { \ + .mutex = NULL, \ + .thread = PYTHREAD_INVALID_THREAD_ID, \ + .level = 0, \ + }, \ + .find_and_load = { \ + .header = 1, \ + }, \ + } + +extern void _PyImport_ClearCore(PyInterpreterState *interp); + +extern Py_ssize_t _PyImport_GetNextModuleIndex(void); +extern const char * _PyImport_ResolveNameWithPackageContext(const char *name); +extern const char * _PyImport_SwapPackageContext(const char *newcontext); + +extern int _PyImport_GetDLOpenFlags(PyInterpreterState *interp); +extern void _PyImport_SetDLOpenFlags(PyInterpreterState *interp, int new_val); + +extern PyObject * _PyImport_InitModules(PyInterpreterState *interp); +extern PyObject * _PyImport_GetModules(PyInterpreterState *interp); +extern void _PyImport_ClearModules(PyInterpreterState *interp); + +extern void _PyImport_ClearModulesByIndex(PyInterpreterState *interp); + +extern int _PyImport_InitDefaultImportFunc(PyInterpreterState *interp); +extern int _PyImport_IsDefaultImportFunc( + PyInterpreterState *interp, + PyObject *func); + +extern PyObject * _PyImport_GetImportlibLoader( + PyInterpreterState *interp, + const char *loader_name); +extern PyObject * _PyImport_GetImportlibExternalLoader( + PyInterpreterState *interp, + const char *loader_name); +extern PyObject * _PyImport_BlessMyLoader( + PyInterpreterState *interp, + PyObject *module_globals); +extern PyObject * _PyImport_ImportlibModuleRepr( + PyInterpreterState *interp, + PyObject *module); + + +extern PyStatus _PyImport_Init(void); +extern void _PyImport_Fini(void); +extern void _PyImport_Fini2(void); + +extern PyStatus _PyImport_InitCore( + PyThreadState *tstate, + PyObject *sysmod, + int importlib); +extern PyStatus _PyImport_InitExternal(PyThreadState *tstate); +extern void _PyImport_FiniCore(PyInterpreterState *interp); +extern void _PyImport_FiniExternal(PyInterpreterState *interp); + + +#ifdef HAVE_FORK +extern PyStatus _PyImport_ReInitLock(PyInterpreterState *interp); +#endif + + +extern PyObject* _PyImport_GetBuiltinModuleNames(void); struct _module_alias { const char *name; /* ASCII encoded string */ @@ -20,6 +169,13 @@ PyAPI_DATA(const struct _frozen *) _PyImport_FrozenStdlib; PyAPI_DATA(const struct _frozen *) _PyImport_FrozenTest; extern const struct _module_alias * _PyImport_FrozenAliases; +PyAPI_FUNC(int) _PyImport_CheckSubinterpIncompatibleExtensionAllowed( + const char *name); + + +// for testing +PyAPI_FUNC(int) _PyImport_ClearExtension(PyObject *name, PyObject *filename); + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/internal/pycore_initconfig.h b/src/external/windows/include/python/internal/pycore_initconfig.h index 5e0c2453..805a101f 100755 --- a/src/external/windows/include/python/internal/pycore_initconfig.h +++ b/src/external/windows/include/python/internal/pycore_initconfig.h @@ -36,15 +36,13 @@ struct pyruntimestate; ._type = _PyStatus_TYPE_EXIT, \ .exitcode = (EXITCODE)} #define _PyStatus_IS_ERROR(err) \ - (err._type == _PyStatus_TYPE_ERROR) + ((err)._type == _PyStatus_TYPE_ERROR) #define _PyStatus_IS_EXIT(err) \ - (err._type == _PyStatus_TYPE_EXIT) + ((err)._type == _PyStatus_TYPE_EXIT) #define _PyStatus_EXCEPTION(err) \ - (err._type != _PyStatus_TYPE_OK) + ((err)._type != _PyStatus_TYPE_OK) #define _PyStatus_UPDATE_FUNC(err) \ - do { err.func = _PyStatus_GET_FUNC(); } while (0) - -PyObject* _PyErr_SetFromPyStatus(PyStatus status); + do { (err).func = _PyStatus_GET_FUNC(); } while (0) /* --- PyWideStringList ------------------------------------------------ */ @@ -170,8 +168,6 @@ extern void _Py_DumpPathConfig(PyThreadState *tstate); PyAPI_FUNC(PyObject*) _Py_Get_Getpath_CodeObject(void); -extern int _Py_global_config_int_max_str_digits; - /* --- Function used for testing ---------------------------------- */ diff --git a/src/external/windows/include/python/internal/pycore_instruments.h b/src/external/windows/include/python/internal/pycore_instruments.h new file mode 100644 index 00000000..552cb0d0 --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_instruments.h @@ -0,0 +1,106 @@ + +#ifndef Py_INTERNAL_INSTRUMENT_H +#define Py_INTERNAL_INSTRUMENT_H + + +#include "pycore_bitutils.h" // _Py_popcount32 +#include "pycore_frame.h" + +#include "cpython/code.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define PY_MONITORING_TOOL_IDS 8 + +/* Local events. + * These require bytecode instrumentation */ + +#define PY_MONITORING_EVENT_PY_START 0 +#define PY_MONITORING_EVENT_PY_RESUME 1 +#define PY_MONITORING_EVENT_PY_RETURN 2 +#define PY_MONITORING_EVENT_PY_YIELD 3 +#define PY_MONITORING_EVENT_CALL 4 +#define PY_MONITORING_EVENT_LINE 5 +#define PY_MONITORING_EVENT_INSTRUCTION 6 +#define PY_MONITORING_EVENT_JUMP 7 +#define PY_MONITORING_EVENT_BRANCH 8 +#define PY_MONITORING_EVENT_STOP_ITERATION 9 + +#define PY_MONITORING_IS_INSTRUMENTED_EVENT(ev) \ + ((ev) < _PY_MONITORING_LOCAL_EVENTS) + +/* Other events, mainly exceptions */ + +#define PY_MONITORING_EVENT_RAISE 10 +#define PY_MONITORING_EVENT_EXCEPTION_HANDLED 11 +#define PY_MONITORING_EVENT_PY_UNWIND 12 +#define PY_MONITORING_EVENT_PY_THROW 13 +#define PY_MONITORING_EVENT_RERAISE 14 + + +/* Ancillary events */ + +#define PY_MONITORING_EVENT_C_RETURN 15 +#define PY_MONITORING_EVENT_C_RAISE 16 + + +typedef uint32_t _PyMonitoringEventSet; + +/* Tool IDs */ + +/* These are defined in PEP 669 for convenience to avoid clashes */ +#define PY_MONITORING_DEBUGGER_ID 0 +#define PY_MONITORING_COVERAGE_ID 1 +#define PY_MONITORING_PROFILER_ID 2 +#define PY_MONITORING_OPTIMIZER_ID 5 + +/* Internal IDs used to suuport sys.setprofile() and sys.settrace() */ +#define PY_MONITORING_SYS_PROFILE_ID 6 +#define PY_MONITORING_SYS_TRACE_ID 7 + + +PyObject *_PyMonitoring_RegisterCallback(int tool_id, int event_id, PyObject *obj); + +int _PyMonitoring_SetEvents(int tool_id, _PyMonitoringEventSet events); + +extern int +_Py_call_instrumentation(PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr); + +extern int +_Py_call_instrumentation_line(PyThreadState *tstate, _PyInterpreterFrame* frame, + _Py_CODEUNIT *instr, _Py_CODEUNIT *prev); + +extern int +_Py_call_instrumentation_instruction( + PyThreadState *tstate, _PyInterpreterFrame* frame, _Py_CODEUNIT *instr); + +_Py_CODEUNIT * +_Py_call_instrumentation_jump( + PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, _Py_CODEUNIT *target); + +extern int +_Py_call_instrumentation_arg(PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, PyObject *arg); + +extern int +_Py_call_instrumentation_2args(PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, PyObject *arg0, PyObject *arg1); + +extern void +_Py_call_instrumentation_exc2(PyThreadState *tstate, int event, + _PyInterpreterFrame *frame, _Py_CODEUNIT *instr, PyObject *arg0, PyObject *arg1); + +extern int +_Py_Instrumentation_GetLine(PyCodeObject *code, int index); + +extern PyObject _PyInstrumentation_MISSING; +extern PyObject _PyInstrumentation_DISABLE; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_INSTRUMENT_H */ diff --git a/src/external/windows/include/python/internal/pycore_interp.h b/src/external/windows/include/python/internal/pycore_interp.h index 6e072fee..04c35288 100755 --- a/src/external/windows/include/python/internal/pycore_interp.h +++ b/src/external/windows/include/python/internal/pycore_interp.h @@ -10,61 +10,58 @@ extern "C" { #include -#include "pycore_atomic.h" // _Py_atomic_address #include "pycore_ast_state.h" // struct ast_state +#include "pycore_atexit.h" // struct atexit_state +#include "pycore_atomic.h" // _Py_atomic_address +#include "pycore_ceval_state.h" // struct _ceval_state #include "pycore_code.h" // struct callable_cache #include "pycore_context.h" // struct _Py_context_state -#include "pycore_dict.h" // struct _Py_dict_state +#include "pycore_dict_state.h" // struct _Py_dict_state +#include "pycore_dtoa.h" // struct _dtoa_state #include "pycore_exceptions.h" // struct _Py_exc_state #include "pycore_floatobject.h" // struct _Py_float_state +#include "pycore_function.h" // FUNC_MAX_WATCHERS #include "pycore_genobject.h" // struct _Py_async_gen_state -#include "pycore_gil.h" // struct _gil_runtime_state #include "pycore_gc.h" // struct _gc_runtime_state +#include "pycore_global_objects.h" // struct _Py_interp_static_objects +#include "pycore_import.h" // struct _import_state +#include "pycore_instruments.h" // _PY_MONITORING_EVENTS #include "pycore_list.h" // struct _Py_list_state +#include "pycore_object_state.h" // struct _py_object_state +#include "pycore_obmalloc.h" // struct obmalloc_state #include "pycore_tuple.h" // struct _Py_tuple_state #include "pycore_typeobject.h" // struct type_cache #include "pycore_unicodeobject.h" // struct _Py_unicode_state #include "pycore_warnings.h" // struct _warnings_runtime_state -struct _pending_calls { - PyThread_type_lock lock; - /* Request for running pending calls. */ - _Py_atomic_int calls_to_do; - /* Request for looking at the `async_exc` field of the current - thread state. - Guarded by the GIL. */ - int async_exc; -#define NPENDINGCALLS 32 - struct { - int (*func)(void *); - void *arg; - } calls[NPENDINGCALLS]; - int first; - int last; -}; -struct _ceval_state { - int recursion_limit; - /* This single variable consolidates all requests to break out of - the fast path in the eval loop. */ - _Py_atomic_int eval_breaker; - /* Request for dropping the GIL */ - _Py_atomic_int gil_drop_request; - struct _pending_calls pending; +struct _Py_long_state { + int max_str_digits; }; -// atexit state -typedef struct { - PyObject *func; - PyObject *args; - PyObject *kwargs; -} atexit_callback; +/* cross-interpreter data registry */ -struct atexit_state { - atexit_callback **callbacks; - int ncallbacks; - int callback_len; +/* For now we use a global registry of shareable classes. An + alternative would be to add a tp_* slot for a class's + crossinterpdatafunc. It would be simpler and more efficient. */ + +struct _xidregitem; + +struct _xidregitem { + struct _xidregitem *prev; + struct _xidregitem *next; + /* This can be a dangling pointer, but only if weakref is set. */ + PyTypeObject *cls; + /* This is NULL for builtin types. */ + PyObject *weakref; + size_t refcount; + crossinterpdatafunc getdata; +}; + +struct _xidregistry { + PyThread_type_lock mutex; + struct _xidregitem *head; }; @@ -73,12 +70,26 @@ struct atexit_state { /* PyInterpreterState holds the global state for one of the runtime's interpreters. Typically the initial (main) interpreter is the only one. - The PyInterpreterState typedef is in Include/pystate.h. + The PyInterpreterState typedef is in Include/pytypedefs.h. */ struct _is { PyInterpreterState *next; + int64_t id; + int64_t id_refcount; + int requires_idref; + PyThread_type_lock id_mutex; + + /* Has been initialized to a safe state. + + In order to be effective, this must be set to 0 during or right + after allocation. */ + int _initialized; + int finalizing; + + uint64_t monitoring_version; + uint64_t last_restart_version; struct pythreads { uint64_t next_unique_id; /* The linked list of threads, newest first. */ @@ -97,87 +108,15 @@ struct _is { Get runtime from tstate: tstate->interp->runtime. */ struct pyruntimestate *runtime; - int64_t id; - int64_t id_refcount; - int requires_idref; - PyThread_type_lock id_mutex; + /* Set by Py_EndInterpreter(). - /* Has been initialized to a safe state. + Use _PyInterpreterState_GetFinalizing() + and _PyInterpreterState_SetFinalizing() + to access it, don't access it directly. */ + _Py_atomic_address _finalizing; - In order to be effective, this must be set to 0 during or right - after allocation. */ - int _initialized; - int finalizing; - - /* Was this interpreter statically allocated? */ - bool _static; - - struct _ceval_state ceval; struct _gc_runtime_state gc; - // sys.modules dictionary - PyObject *modules; - PyObject *modules_by_index; - // Dictionary of the sys module - PyObject *sysdict; - // Dictionary of the builtins module - PyObject *builtins; - // importlib module - PyObject *importlib; - // override for config->use_frozen_modules (for tests) - // (-1: "off", 1: "on", 0: no override) - int override_frozen_modules; - - PyObject *codec_search_path; - PyObject *codec_search_cache; - PyObject *codec_error_registry; - int codecs_initialized; - - PyConfig config; -#ifdef HAVE_DLOPEN - int dlopenflags; -#endif - - PyObject *dict; /* Stores per-interpreter state */ - - PyObject *builtins_copy; - PyObject *import_func; - // Initialized to _PyEval_EvalFrameDefault(). - _PyFrameEvalFunction eval_frame; - - Py_ssize_t co_extra_user_count; - freefunc co_extra_freefuncs[MAX_CO_EXTRA_USERS]; - -#ifdef HAVE_FORK - PyObject *before_forkers; - PyObject *after_forkers_parent; - PyObject *after_forkers_child; -#endif - - struct _warnings_runtime_state warnings; - struct atexit_state atexit; - - PyObject *audit_hooks; - - struct _Py_unicode_state unicode; - struct _Py_float_state float_state; - /* Using a cache is very effective since typically only a single slice is - created and then deleted again. */ - PySliceObject *slice_cache; - - struct _Py_tuple_state tuple; - struct _Py_list_state list; - struct _Py_dict_state dict_state; - struct _Py_async_gen_state async_gen; - struct _Py_context_state context; - struct _Py_exc_state exc_state; - - struct ast_state ast; - struct type_cache type_cache; - struct callable_cache callable_cache; - - int int_max_str_digits; - /* The following fields are here to avoid allocation during init. The data is exposed through PyInterpreterState pointer fields. These fields should not be accessed directly outside of init. @@ -190,30 +129,139 @@ struct _is { basis. Also see _PyRuntimeState regarding the various mutex fields. */ - /* the initial PyInterpreterState.threads.head */ + // Dictionary of the sys module + PyObject *sysdict; + + // Dictionary of the builtins module + PyObject *builtins; + + struct _ceval_state ceval; + + struct _import_state imports; + + /* The per-interpreter GIL, which might not be used. */ + struct _gil_runtime_state _gil; + + /* ---------- IMPORTANT --------------------------- + The fields above this line are declared as early as + possible to facilitate out-of-process observability + tools. */ + + PyObject *codec_search_path; + PyObject *codec_search_cache; + PyObject *codec_error_registry; + int codecs_initialized; + + PyConfig config; + unsigned long feature_flags; + + PyObject *dict; /* Stores per-interpreter state */ + + PyObject *sysdict_copy; + PyObject *builtins_copy; + // Initialized to _PyEval_EvalFrameDefault(). + _PyFrameEvalFunction eval_frame; + + PyFunction_WatchCallback func_watchers[FUNC_MAX_WATCHERS]; + // One bit is set for each non-NULL entry in func_watchers + uint8_t active_func_watchers; + + Py_ssize_t co_extra_user_count; + freefunc co_extra_freefuncs[MAX_CO_EXTRA_USERS]; + +#ifdef HAVE_FORK + PyObject *before_forkers; + PyObject *after_forkers_parent; + PyObject *after_forkers_child; +#endif + + struct _warnings_runtime_state warnings; + struct atexit_state atexit; + + struct _obmalloc_state obmalloc; + + PyObject *audit_hooks; + PyType_WatchCallback type_watchers[TYPE_MAX_WATCHERS]; + PyCode_WatchCallback code_watchers[CODE_MAX_WATCHERS]; + // One bit is set for each non-NULL entry in code_watchers + uint8_t active_code_watchers; + + struct _py_object_state object_state; + struct _Py_unicode_state unicode; + struct _Py_float_state float_state; + struct _Py_long_state long_state; + struct _dtoa_state dtoa; + struct _py_func_state func_state; + /* Using a cache is very effective since typically only a single slice is + created and then deleted again. */ + PySliceObject *slice_cache; + + struct _Py_tuple_state tuple; + struct _Py_list_state list; + struct _Py_dict_state dict_state; + struct _Py_async_gen_state async_gen; + struct _Py_context_state context; + struct _Py_exc_state exc_state; + + struct ast_state ast; + struct types_state types; + struct callable_cache callable_cache; + PyCodeObject *interpreter_trampoline; + + _Py_GlobalMonitors monitors; + bool f_opcode_trace_set; + bool sys_profile_initialized; + bool sys_trace_initialized; + Py_ssize_t sys_profiling_threads; /* Count of threads with c_profilefunc set */ + Py_ssize_t sys_tracing_threads; /* Count of threads with c_tracefunc set */ + PyObject *monitoring_callables[PY_MONITORING_TOOL_IDS][_PY_MONITORING_EVENTS]; + PyObject *monitoring_tool_names[PY_MONITORING_TOOL_IDS]; + + struct _Py_interp_cached_objects cached_objects; + struct _Py_interp_static_objects static_objects; + + // XXX Remove this field once we have a tp_* slot. + struct _xidregistry xidregistry; + /* The thread currently executing in the __main__ module, if any. */ + PyThreadState *threads_main; + /* The ID of the OS thread in which we are finalizing. + We use _Py_atomic_address instead of adding a new _Py_atomic_ulong. */ + _Py_atomic_address _finalizing_id; + + /* the initial PyInterpreterState.threads.head */ PyThreadState _initial_thread; }; /* other API */ -extern void _PyInterpreterState_ClearModules(PyInterpreterState *interp); extern void _PyInterpreterState_Clear(PyThreadState *tstate); -/* cross-interpreter data registry */ +static inline PyThreadState* +_PyInterpreterState_GetFinalizing(PyInterpreterState *interp) { + return (PyThreadState*)_Py_atomic_load_relaxed(&interp->_finalizing); +} -/* For now we use a global registry of shareable classes. An - alternative would be to add a tp_* slot for a class's - crossinterpdatafunc. It would be simpler and more efficient. */ +static inline unsigned long +_PyInterpreterState_GetFinalizingID(PyInterpreterState *interp) { + return (unsigned long)_Py_atomic_load_relaxed(&interp->_finalizing_id); +} -struct _xidregitem; +static inline void +_PyInterpreterState_SetFinalizing(PyInterpreterState *interp, PyThreadState *tstate) { + _Py_atomic_store_relaxed(&interp->_finalizing, (uintptr_t)tstate); + if (tstate == NULL) { + _Py_atomic_store_relaxed(&interp->_finalizing_id, 0); + } + else { + // XXX Re-enable this assert once gh-109860 is fixed. + //assert(tstate->thread_id == PyThread_get_thread_ident()); + _Py_atomic_store_relaxed(&interp->_finalizing_id, + (uintptr_t)tstate->thread_id); + } +} -struct _xidregitem { - PyTypeObject *cls; - crossinterpdatafunc getdata; - struct _xidregitem *next; -}; PyAPI_FUNC(PyInterpreterState*) _PyInterpreterState_LookUpID(int64_t); diff --git a/src/external/windows/include/python/internal/pycore_interpreteridobject.h b/src/external/windows/include/python/internal/pycore_interpreteridobject.h deleted file mode 100644 index 3c477a3d..00000000 --- a/src/external/windows/include/python/internal/pycore_interpreteridobject.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Interpreter ID Object */ - -#ifndef Py_INTERNAL_INTERPRETERIDOBJECT_H -#define Py_INTERNAL_INTERPRETERIDOBJECT_H -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef Py_BUILD_CORE -# error "this header requires Py_BUILD_CORE define" -#endif - -PyAPI_DATA(PyTypeObject) _PyInterpreterID_Type; - -PyAPI_FUNC(PyObject *) _PyInterpreterID_New(int64_t); -PyAPI_FUNC(PyObject *) _PyInterpreterState_GetIDObject(PyInterpreterState *); -PyAPI_FUNC(PyInterpreterState *) _PyInterpreterID_LookUp(PyObject *); - -#ifdef __cplusplus -} -#endif -#endif // !Py_INTERNAL_INTERPRETERIDOBJECT_H diff --git a/src/external/windows/include/python/internal/pycore_intrinsics.h b/src/external/windows/include/python/internal/pycore_intrinsics.h new file mode 100644 index 00000000..4d72e83c --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_intrinsics.h @@ -0,0 +1,32 @@ +// Auto-generated by Tools/build/generate_opcode_h.py from Lib/opcode.py + +/* Unary Functions: */ +#define INTRINSIC_1_INVALID 0 +#define INTRINSIC_PRINT 1 +#define INTRINSIC_IMPORT_STAR 2 +#define INTRINSIC_STOPITERATION_ERROR 3 +#define INTRINSIC_ASYNC_GEN_WRAP 4 +#define INTRINSIC_UNARY_POSITIVE 5 +#define INTRINSIC_LIST_TO_TUPLE 6 +#define INTRINSIC_TYPEVAR 7 +#define INTRINSIC_PARAMSPEC 8 +#define INTRINSIC_TYPEVARTUPLE 9 +#define INTRINSIC_SUBSCRIPT_GENERIC 10 +#define INTRINSIC_TYPEALIAS 11 + +#define MAX_INTRINSIC_1 11 + + +/* Binary Functions: */ +#define INTRINSIC_2_INVALID 0 +#define INTRINSIC_PREP_RERAISE_STAR 1 +#define INTRINSIC_TYPEVAR_WITH_BOUND 2 +#define INTRINSIC_TYPEVAR_WITH_CONSTRAINTS 3 +#define INTRINSIC_SET_FUNCTION_TYPE_PARAMS 4 + +#define MAX_INTRINSIC_2 4 + +typedef PyObject *(*instrinsic_func1)(PyThreadState* tstate, PyObject *value); +typedef PyObject *(*instrinsic_func2)(PyThreadState* tstate, PyObject *value1, PyObject *value2); +extern const instrinsic_func1 _PyIntrinsics_UnaryFunctions[]; +extern const instrinsic_func2 _PyIntrinsics_BinaryFunctions[]; diff --git a/src/external/windows/include/python/internal/pycore_list.h b/src/external/windows/include/python/internal/pycore_list.h index 8fd6ec71..712cc4a3 100755 --- a/src/external/windows/include/python/internal/pycore_list.h +++ b/src/external/windows/include/python/internal/pycore_list.h @@ -35,7 +35,7 @@ struct _Py_list_state { #endif }; -#define _PyList_ITEMS(op) (_PyList_CAST(op)->ob_item) +#define _PyList_ITEMS(op) _Py_RVALUE(_PyList_CAST(op)->ob_item) extern int _PyList_AppendTakeRefListResize(PyListObject *self, PyObject *newitem); @@ -56,6 +56,27 @@ _PyList_AppendTakeRef(PyListObject *self, PyObject *newitem) return _PyList_AppendTakeRefListResize(self, newitem); } +// Repeat the bytes of a buffer in place +static inline void +_Py_memory_repeat(char* dest, Py_ssize_t len_dest, Py_ssize_t len_src) +{ + assert(len_src > 0); + Py_ssize_t copied = len_src; + while (copied < len_dest) { + Py_ssize_t bytes_to_copy = Py_MIN(copied, len_dest - copied); + memcpy(dest + copied, dest, bytes_to_copy); + copied += bytes_to_copy; + } +} + +typedef struct { + PyObject_HEAD + Py_ssize_t it_index; + PyListObject *it_seq; /* Set to NULL when iterator is exhausted */ +} _PyListIterObject; + +extern PyObject *_PyList_FromArraySteal(PyObject *const *src, Py_ssize_t n); + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/internal/pycore_long.h b/src/external/windows/include/python/internal/pycore_long.h index 3a800011..72ebd625 100755 --- a/src/external/windows/include/python/internal/pycore_long.h +++ b/src/external/windows/include/python/internal/pycore_long.h @@ -108,6 +108,150 @@ PyAPI_FUNC(char*) _PyLong_FormatBytesWriter( int base, int alternate); +/* Long value tag bits: + * 0-1: Sign bits value = (1-sign), ie. negative=2, positive=0, zero=1. + * 2: Reserved for immortality bit + * 3+ Unsigned digit count + */ +#define SIGN_MASK 3 +#define SIGN_ZERO 1 +#define SIGN_NEGATIVE 2 +#define NON_SIZE_BITS 3 + +/* The functions _PyLong_IsCompact and _PyLong_CompactValue are defined + * in Include/cpython/longobject.h, since they need to be inline. + * + * "Compact" values have at least one bit to spare, + * so that addition and subtraction can be performed on the values + * without risk of overflow. + * + * The inline functions need tag bits. + * For readability, rather than do `#define SIGN_MASK _PyLong_SIGN_MASK` + * we define them to the numbers in both places and then assert that + * they're the same. + */ +static_assert(SIGN_MASK == _PyLong_SIGN_MASK, "SIGN_MASK does not match _PyLong_SIGN_MASK"); +static_assert(NON_SIZE_BITS == _PyLong_NON_SIZE_BITS, "NON_SIZE_BITS does not match _PyLong_NON_SIZE_BITS"); + +/* All *compact" values are guaranteed to fit into + * a Py_ssize_t with at least one bit to spare. + * In other words, for 64 bit machines, compact + * will be signed 63 (or fewer) bit values + */ + +/* Return 1 if the argument is compact int */ +static inline int +_PyLong_IsNonNegativeCompact(const PyLongObject* op) { + assert(PyLong_Check(op)); + return op->long_value.lv_tag <= (1 << NON_SIZE_BITS); +} + + +static inline int +_PyLong_BothAreCompact(const PyLongObject* a, const PyLongObject* b) { + assert(PyLong_Check(a)); + assert(PyLong_Check(b)); + return (a->long_value.lv_tag | b->long_value.lv_tag) < (2 << NON_SIZE_BITS); +} + +static inline bool +_PyLong_IsZero(const PyLongObject *op) +{ + return (op->long_value.lv_tag & SIGN_MASK) == SIGN_ZERO; +} + +static inline bool +_PyLong_IsNegative(const PyLongObject *op) +{ + return (op->long_value.lv_tag & SIGN_MASK) == SIGN_NEGATIVE; +} + +static inline bool +_PyLong_IsPositive(const PyLongObject *op) +{ + return (op->long_value.lv_tag & SIGN_MASK) == 0; +} + +static inline Py_ssize_t +_PyLong_DigitCount(const PyLongObject *op) +{ + assert(PyLong_Check(op)); + return op->long_value.lv_tag >> NON_SIZE_BITS; +} + +/* Equivalent to _PyLong_DigitCount(op) * _PyLong_NonCompactSign(op) */ +static inline Py_ssize_t +_PyLong_SignedDigitCount(const PyLongObject *op) +{ + assert(PyLong_Check(op)); + Py_ssize_t sign = 1 - (op->long_value.lv_tag & SIGN_MASK); + return sign * (Py_ssize_t)(op->long_value.lv_tag >> NON_SIZE_BITS); +} + +static inline int +_PyLong_CompactSign(const PyLongObject *op) +{ + assert(PyLong_Check(op)); + assert(_PyLong_IsCompact(op)); + return 1 - (op->long_value.lv_tag & SIGN_MASK); +} + +static inline int +_PyLong_NonCompactSign(const PyLongObject *op) +{ + assert(PyLong_Check(op)); + assert(!_PyLong_IsCompact(op)); + return 1 - (op->long_value.lv_tag & SIGN_MASK); +} + +/* Do a and b have the same sign? */ +static inline int +_PyLong_SameSign(const PyLongObject *a, const PyLongObject *b) +{ + return (a->long_value.lv_tag & SIGN_MASK) == (b->long_value.lv_tag & SIGN_MASK); +} + +#define TAG_FROM_SIGN_AND_SIZE(sign, size) ((1 - (sign)) | ((size) << NON_SIZE_BITS)) + +static inline void +_PyLong_SetSignAndDigitCount(PyLongObject *op, int sign, Py_ssize_t size) +{ + assert(size >= 0); + assert(-1 <= sign && sign <= 1); + assert(sign != 0 || size == 0); + op->long_value.lv_tag = TAG_FROM_SIGN_AND_SIZE(sign, (size_t)size); +} + +static inline void +_PyLong_SetDigitCount(PyLongObject *op, Py_ssize_t size) +{ + assert(size >= 0); + op->long_value.lv_tag = (((size_t)size) << NON_SIZE_BITS) | (op->long_value.lv_tag & SIGN_MASK); +} + +#define NON_SIZE_MASK ~((1 << NON_SIZE_BITS) - 1) + +static inline void +_PyLong_FlipSign(PyLongObject *op) { + unsigned int flipped_sign = 2 - (op->long_value.lv_tag & SIGN_MASK); + op->long_value.lv_tag &= NON_SIZE_MASK; + op->long_value.lv_tag |= flipped_sign; +} + +#define _PyLong_DIGIT_INIT(val) \ + { \ + .ob_base = _PyObject_HEAD_INIT(&PyLong_Type) \ + .long_value = { \ + .lv_tag = TAG_FROM_SIGN_AND_SIZE( \ + (val) == 0 ? 0 : ((val) < 0 ? -1 : 1), \ + (val) == 0 ? 0 : 1), \ + { ((val) >= 0 ? (val) : -(val)) }, \ + } \ + } + +#define _PyLong_FALSE_TAG TAG_FROM_SIGN_AND_SIZE(0, 0) +#define _PyLong_TRUE_TAG TAG_FROM_SIGN_AND_SIZE(1, 1) + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/internal/pycore_memoryobject.h b/src/external/windows/include/python/internal/pycore_memoryobject.h new file mode 100644 index 00000000..0e94cc7c --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_memoryobject.h @@ -0,0 +1,18 @@ +#ifndef Py_INTERNAL_MEMORYOBJECT_H +#define Py_INTERNAL_MEMORYOBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +PyObject * +_PyMemoryView_FromBufferProc(PyObject *v, int flags, + getbufferproc bufferproc); + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_MEMORYOBJECT_H */ diff --git a/src/external/windows/include/python/internal/pycore_moduleobject.h b/src/external/windows/include/python/internal/pycore_moduleobject.h index 85d466c5..3a8de335 100755 --- a/src/external/windows/include/python/internal/pycore_moduleobject.h +++ b/src/external/windows/include/python/internal/pycore_moduleobject.h @@ -36,6 +36,9 @@ static inline PyObject* _PyModule_GetDict(PyObject *mod) { return dict; } +PyObject* _Py_module_getattro_impl(PyModuleObject *m, PyObject *name, int suppress); +PyObject* _Py_module_getattro(PyModuleObject *m, PyObject *name); + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/internal/pycore_object.h b/src/external/windows/include/python/internal/pycore_object.h index 72182af6..0e549487 100755 --- a/src/external/windows/include/python/internal/pycore_object.h +++ b/src/external/windows/include/python/internal/pycore_object.h @@ -14,28 +14,92 @@ extern "C" { #include "pycore_pystate.h" // _PyInterpreterState_GET() #include "pycore_runtime.h" // _PyRuntime -#define _PyObject_IMMORTAL_INIT(type) \ - { \ - .ob_refcnt = 999999999, \ - .ob_type = type, \ - } -#define _PyVarObject_IMMORTAL_INIT(type, size) \ - { \ - .ob_base = _PyObject_IMMORTAL_INIT(type), \ - .ob_size = size, \ - } +/* We need to maintain an internal copy of Py{Var}Object_HEAD_INIT to avoid + designated initializer conflicts in C++20. If we use the deinition in + object.h, we will be mixing designated and non-designated initializers in + pycore objects which is forbiddent in C++20. However, if we then use + designated initializers in object.h then Extensions without designated break. + Furthermore, we can't use designated initializers in Extensions since these + are not supported pre-C++20. Thus, keeping an internal copy here is the most + backwards compatible solution */ +#define _PyObject_HEAD_INIT(type) \ + { \ + _PyObject_EXTRA_INIT \ + .ob_refcnt = _Py_IMMORTAL_REFCNT, \ + .ob_type = (type) \ + }, +#define _PyVarObject_HEAD_INIT(type, size) \ + { \ + .ob_base = _PyObject_HEAD_INIT(type) \ + .ob_size = size \ + }, PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalRefcountErrorFunc( const char *func, const char *message); -#define _Py_FatalRefcountError(message) _Py_FatalRefcountErrorFunc(__func__, message) +#define _Py_FatalRefcountError(message) \ + _Py_FatalRefcountErrorFunc(__func__, (message)) + + +#ifdef Py_REF_DEBUG +/* The symbol is only exposed in the API for the sake of extensions + built against the pre-3.12 stable ABI. */ +PyAPI_DATA(Py_ssize_t) _Py_RefTotal; + +extern void _Py_AddRefTotal(PyInterpreterState *, Py_ssize_t); +extern void _Py_IncRefTotal(PyInterpreterState *); +extern void _Py_DecRefTotal(PyInterpreterState *); + +# define _Py_DEC_REFTOTAL(interp) \ + interp->object_state.reftotal-- +#endif + +// Increment reference count by n +static inline void _Py_RefcntAdd(PyObject* op, Py_ssize_t n) +{ + if (_Py_IsImmortal(op)) { + return; + } +#ifdef Py_REF_DEBUG + _Py_AddRefTotal(_PyInterpreterState_GET(), n); +#endif + op->ob_refcnt += n; +} +#define _Py_RefcntAdd(op, n) _Py_RefcntAdd(_PyObject_CAST(op), n) + +static inline void _Py_SetImmortal(PyObject *op) +{ + if (op) { + op->ob_refcnt = _Py_IMMORTAL_REFCNT; + } +} +#define _Py_SetImmortal(op) _Py_SetImmortal(_PyObject_CAST(op)) + +/* _Py_ClearImmortal() should only be used during runtime finalization. */ +static inline void _Py_ClearImmortal(PyObject *op) +{ + if (op) { + assert(op->ob_refcnt == _Py_IMMORTAL_REFCNT); + op->ob_refcnt = 1; + Py_DECREF(op); + } +} +#define _Py_ClearImmortal(op) \ + do { \ + _Py_ClearImmortal(_PyObject_CAST(op)); \ + op = NULL; \ + } while (0) static inline void _Py_DECREF_SPECIALIZED(PyObject *op, const destructor destruct) { + if (_Py_IsImmortal(op)) { + return; + } + _Py_DECREF_STAT_INC(); #ifdef Py_REF_DEBUG - _Py_RefTotal--; + _Py_DEC_REFTOTAL(_PyInterpreterState_GET()); #endif if (--op->ob_refcnt != 0) { assert(op->ob_refcnt > 0); @@ -51,8 +115,12 @@ _Py_DECREF_SPECIALIZED(PyObject *op, const destructor destruct) static inline void _Py_DECREF_NO_DEALLOC(PyObject *op) { + if (_Py_IsImmortal(op)) { + return; + } + _Py_DECREF_STAT_INC(); #ifdef Py_REF_DEBUG - _Py_RefTotal--; + _Py_DEC_REFTOTAL(_PyInterpreterState_GET()); #endif op->ob_refcnt--; #ifdef Py_DEBUG @@ -62,6 +130,11 @@ _Py_DECREF_NO_DEALLOC(PyObject *op) #endif } +#ifdef Py_REF_DEBUG +# undef _Py_DEC_REFTOTAL +#endif + + PyAPI_FUNC(int) _PyType_CheckConsistency(PyTypeObject *type); PyAPI_FUNC(int) _PyDict_CheckConsistency(PyObject *mp, int check_content); @@ -79,6 +152,7 @@ _PyType_HasFeature(PyTypeObject *type, unsigned long feature) { extern void _PyType_InitCache(PyInterpreterState *interp); +extern void _PyObject_InitState(PyInterpreterState *interp); /* Inline functions trading binary compatibility for speed: _PyObject_Init() is the fast version of PyObject_Init(), and @@ -100,8 +174,9 @@ static inline void _PyObject_InitVar(PyVarObject *op, PyTypeObject *typeobj, Py_ssize_t size) { assert(op != NULL); - Py_SET_SIZE(op, size); + assert(typeobj != &PyLong_Type); _PyObject_Init((PyObject *)op, typeobj); + Py_SET_SIZE(op, size); } @@ -190,22 +265,64 @@ static inline void _PyObject_GC_UNTRACK( #endif #ifdef Py_REF_DEBUG +extern void _PyInterpreterState_FinalizeRefTotal(PyInterpreterState *); +extern void _Py_FinalizeRefTotal(_PyRuntimeState *); extern void _PyDebug_PrintTotalRefs(void); #endif #ifdef Py_TRACE_REFS extern void _Py_AddToAllObjects(PyObject *op, int force); -extern void _Py_PrintReferences(FILE *); -extern void _Py_PrintReferenceAddresses(FILE *); +extern void _Py_PrintReferences(PyInterpreterState *, FILE *); +extern void _Py_PrintReferenceAddresses(PyInterpreterState *, FILE *); #endif + +/* Return the *address* of the object's weaklist. The address may be + * dereferenced to get the current head of the weaklist. This is useful + * for iterating over the linked list of weakrefs, especially when the + * list is being modified externally (e.g. refs getting removed). + * + * The returned pointer should not be used to change the head of the list + * nor should it be used to add, remove, or swap any refs in the list. + * That is the sole responsibility of the code in weakrefobject.c. + */ static inline PyObject ** _PyObject_GET_WEAKREFS_LISTPTR(PyObject *op) { + if (PyType_Check(op) && + ((PyTypeObject *)op)->tp_flags & _Py_TPFLAGS_STATIC_BUILTIN) { + PyInterpreterState *interp = _PyInterpreterState_GET(); + static_builtin_state *state = _PyStaticType_GetState( + interp, (PyTypeObject *)op); + return _PyStaticType_GET_WEAKREFS_LISTPTR(state); + } + // Essentially _PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(): Py_ssize_t offset = Py_TYPE(op)->tp_weaklistoffset; return (PyObject **)((char *)op + offset); } +/* This is a special case of _PyObject_GET_WEAKREFS_LISTPTR(). + * Only the most fundamental lookup path is used. + * Consequently, static types should not be used. + * + * For static builtin types the returned pointer will always point + * to a NULL tp_weaklist. This is fine for any deallocation cases, + * since static types are never deallocated and static builtin types + * are only finalized at the end of runtime finalization. + * + * If the weaklist for static types is actually needed then use + * _PyObject_GET_WEAKREFS_LISTPTR(). + */ +static inline PyWeakReference ** +_PyObject_GET_WEAKREFS_LISTPTR_FROM_OFFSET(PyObject *op) +{ + assert(!PyType_Check(op) || + ((PyTypeObject *)op)->tp_flags & Py_TPFLAGS_HEAPTYPE); + Py_ssize_t offset = Py_TYPE(op)->tp_weaklistoffset; + return (PyWeakReference **)((char *)op + offset); +} + + // Fast inlined version of PyObject_IS_GC() static inline int _PyObject_IS_GC(PyObject *obj) @@ -222,7 +339,7 @@ static inline size_t _PyType_PreHeaderSize(PyTypeObject *tp) { return _PyType_IS_GC(tp) * sizeof(PyGC_Head) + - _PyType_HasFeature(tp, Py_TPFLAGS_MANAGED_DICT) * 2 * sizeof(PyObject *); + _PyType_HasFeature(tp, Py_TPFLAGS_PREHEADER) * 2 * sizeof(PyObject *); } void _PyObject_GC_Link(PyObject *op); @@ -233,13 +350,9 @@ extern int _Py_CheckSlotResult( const char *slot_name, int success); -// PyType_Ready() must be called if _PyType_IsReady() is false. -// See also the Py_TPFLAGS_READY flag. -#define _PyType_IsReady(type) ((type)->tp_dict != NULL) - // Test if a type supports weak references static inline int _PyType_SUPPORTS_WEAKREFS(PyTypeObject *type) { - return (type->tp_weaklistoffset > 0); + return (type->tp_weaklistoffset != 0); } extern PyObject* _PyType_AllocNoTrack(PyTypeObject *type, Py_ssize_t nitems); @@ -250,30 +363,50 @@ extern int _PyObject_StoreInstanceAttribute(PyObject *obj, PyDictValues *values, PyObject * _PyObject_GetInstanceAttribute(PyObject *obj, PyDictValues *values, PyObject *name); -static inline PyDictValues **_PyObject_ValuesPointer(PyObject *obj) +typedef union { + PyObject *dict; + /* Use a char* to generate a warning if directly assigning a PyDictValues */ + char *values; +} PyDictOrValues; + +static inline PyDictOrValues * +_PyObject_DictOrValuesPointer(PyObject *obj) { assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT); - return ((PyDictValues **)obj)-4; + return ((PyDictOrValues *)obj)-3; } -static inline PyObject **_PyObject_ManagedDictPointer(PyObject *obj) +static inline int +_PyDictOrValues_IsValues(PyDictOrValues dorv) { - assert(Py_TYPE(obj)->tp_flags & Py_TPFLAGS_MANAGED_DICT); - return ((PyObject **)obj)-3; + return ((uintptr_t)dorv.values) & 1; } -#define MANAGED_DICT_OFFSET (((int)sizeof(PyObject *))*-3) +static inline PyDictValues * +_PyDictOrValues_GetValues(PyDictOrValues dorv) +{ + assert(_PyDictOrValues_IsValues(dorv)); + return (PyDictValues *)(dorv.values + 1); +} -extern PyObject ** _PyObject_DictPointer(PyObject *); -extern int _PyObject_VisitInstanceAttributes(PyObject *self, visitproc visit, void *arg); -extern void _PyObject_ClearInstanceAttributes(PyObject *self); -extern void _PyObject_FreeInstanceAttributes(PyObject *self); +static inline PyObject * +_PyDictOrValues_GetDict(PyDictOrValues dorv) +{ + assert(!_PyDictOrValues_IsValues(dorv)); + return dorv.dict; +} + +static inline void +_PyDictOrValues_SetValues(PyDictOrValues *ptr, PyDictValues *values) +{ + ptr->values = ((char *)values) - 1; +} + +#define MANAGED_WEAKREF_OFFSET (((Py_ssize_t)sizeof(PyObject *))*-4) + +extern PyObject ** _PyObject_ComputedDictPointer(PyObject *); +extern void _PyObject_FreeInstanceAttributes(PyObject *obj); extern int _PyObject_IsInstanceDictEmpty(PyObject *); -extern PyObject* _PyType_GetSubclasses(PyTypeObject *); - -// Access macro to the members which are floating "behind" the object -#define _PyHeapType_GET_MEMBERS(etype) \ - ((PyMemberDef *)(((char *)etype) + Py_TYPE(etype)->tp_basicsize)) PyAPI_FUNC(PyObject *) _PyObject_LookupSpecial(PyObject *, PyObject *); @@ -289,12 +422,12 @@ PyAPI_FUNC(PyObject *) _PyObject_LookupSpecial(PyObject *, PyObject *); * match. * * Third party code unintentionally rely on problematic fpcasts. The call - * trampoline mitigates common occurences of bad fpcasts on Emscripten. + * trampoline mitigates common occurrences of bad fpcasts on Emscripten. */ #if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE) #define _PyCFunction_TrampolineCall(meth, self, args) \ _PyCFunctionWithKeywords_TrampolineCall( \ - (*(PyCFunctionWithKeywords)(void(*)(void))meth), self, args, NULL) + (*(PyCFunctionWithKeywords)(void(*)(void))(meth)), (self), (args), NULL) extern PyObject* _PyCFunctionWithKeywords_TrampolineCall( PyCFunctionWithKeywords meth, PyObject *, PyObject *, PyObject *); #else diff --git a/src/external/windows/include/python/internal/pycore_object_state.h b/src/external/windows/include/python/internal/pycore_object_state.h new file mode 100644 index 00000000..023f1ff3 --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_object_state.h @@ -0,0 +1,36 @@ +#ifndef Py_INTERNAL_OBJECT_STATE_H +#define Py_INTERNAL_OBJECT_STATE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +struct _py_object_runtime_state { +#ifdef Py_REF_DEBUG + Py_ssize_t interpreter_leaks; +#endif + int _not_used; +}; + +struct _py_object_state { +#ifdef Py_REF_DEBUG + Py_ssize_t reftotal; +#endif +#ifdef Py_TRACE_REFS + /* Head of circular doubly-linked list of all objects. These are linked + * together via the _ob_prev and _ob_next members of a PyObject, which + * exist only in a Py_TRACE_REFS build. + */ + PyObject refchain; +#endif + int _not_used; +}; + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_OBJECT_STATE_H */ diff --git a/src/external/windows/include/python/internal/pycore_obmalloc.h b/src/external/windows/include/python/internal/pycore_obmalloc.h new file mode 100644 index 00000000..570620db --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_obmalloc.h @@ -0,0 +1,700 @@ +#ifndef Py_INTERNAL_OBMALLOC_H +#define Py_INTERNAL_OBMALLOC_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +typedef unsigned int pymem_uint; /* assuming >= 16 bits */ + +#undef uint +#define uint pymem_uint + + +/* An object allocator for Python. + + Here is an introduction to the layers of the Python memory architecture, + showing where the object allocator is actually used (layer +2), It is + called for every object allocation and deallocation (PyObject_New/Del), + unless the object-specific allocators implement a proprietary allocation + scheme (ex.: ints use a simple free list). This is also the place where + the cyclic garbage collector operates selectively on container objects. + + + Object-specific allocators + _____ ______ ______ ________ + [ int ] [ dict ] [ list ] ... [ string ] Python core | ++3 | <----- Object-specific memory -----> | <-- Non-object memory --> | + _______________________________ | | + [ Python's object allocator ] | | ++2 | ####### Object memory ####### | <------ Internal buffers ------> | + ______________________________________________________________ | + [ Python's raw memory allocator (PyMem_ API) ] | ++1 | <----- Python memory (under PyMem manager's control) ------> | | + __________________________________________________________________ + [ Underlying general-purpose allocator (ex: C library malloc) ] + 0 | <------ Virtual memory allocated for the python process -------> | + + ========================================================================= + _______________________________________________________________________ + [ OS-specific Virtual Memory Manager (VMM) ] +-1 | <--- Kernel dynamic storage allocation & management (page-based) ---> | + __________________________________ __________________________________ + [ ] [ ] +-2 | <-- Physical memory: ROM/RAM --> | | <-- Secondary storage (swap) --> | + +*/ +/*==========================================================================*/ + +/* A fast, special-purpose memory allocator for small blocks, to be used + on top of a general-purpose malloc -- heavily based on previous art. */ + +/* Vladimir Marangozov -- August 2000 */ + +/* + * "Memory management is where the rubber meets the road -- if we do the wrong + * thing at any level, the results will not be good. And if we don't make the + * levels work well together, we are in serious trouble." (1) + * + * (1) Paul R. Wilson, Mark S. Johnstone, Michael Neely, and David Boles, + * "Dynamic Storage Allocation: A Survey and Critical Review", + * in Proc. 1995 Int'l. Workshop on Memory Management, September 1995. + */ + +/* #undef WITH_MEMORY_LIMITS */ /* disable mem limit checks */ + +/*==========================================================================*/ + +/* + * Allocation strategy abstract: + * + * For small requests, the allocator sub-allocates blocks of memory. + * Requests greater than SMALL_REQUEST_THRESHOLD bytes are routed to the + * system's allocator. + * + * Small requests are grouped in size classes spaced 8 bytes apart, due + * to the required valid alignment of the returned address. Requests of + * a particular size are serviced from memory pools of 4K (one VMM page). + * Pools are fragmented on demand and contain free lists of blocks of one + * particular size class. In other words, there is a fixed-size allocator + * for each size class. Free pools are shared by the different allocators + * thus minimizing the space reserved for a particular size class. + * + * This allocation strategy is a variant of what is known as "simple + * segregated storage based on array of free lists". The main drawback of + * simple segregated storage is that we might end up with lot of reserved + * memory for the different free lists, which degenerate in time. To avoid + * this, we partition each free list in pools and we share dynamically the + * reserved space between all free lists. This technique is quite efficient + * for memory intensive programs which allocate mainly small-sized blocks. + * + * For small requests we have the following table: + * + * Request in bytes Size of allocated block Size class idx + * ---------------------------------------------------------------- + * 1-8 8 0 + * 9-16 16 1 + * 17-24 24 2 + * 25-32 32 3 + * 33-40 40 4 + * 41-48 48 5 + * 49-56 56 6 + * 57-64 64 7 + * 65-72 72 8 + * ... ... ... + * 497-504 504 62 + * 505-512 512 63 + * + * 0, SMALL_REQUEST_THRESHOLD + 1 and up: routed to the underlying + * allocator. + */ + +/*==========================================================================*/ + +/* + * -- Main tunable settings section -- + */ + +/* + * Alignment of addresses returned to the user. 8-bytes alignment works + * on most current architectures (with 32-bit or 64-bit address buses). + * The alignment value is also used for grouping small requests in size + * classes spaced ALIGNMENT bytes apart. + * + * You shouldn't change this unless you know what you are doing. + */ + +#if SIZEOF_VOID_P > 4 +#define ALIGNMENT 16 /* must be 2^N */ +#define ALIGNMENT_SHIFT 4 +#else +#define ALIGNMENT 8 /* must be 2^N */ +#define ALIGNMENT_SHIFT 3 +#endif + +/* Return the number of bytes in size class I, as a uint. */ +#define INDEX2SIZE(I) (((pymem_uint)(I) + 1) << ALIGNMENT_SHIFT) + +/* + * Max size threshold below which malloc requests are considered to be + * small enough in order to use preallocated memory pools. You can tune + * this value according to your application behaviour and memory needs. + * + * Note: a size threshold of 512 guarantees that newly created dictionaries + * will be allocated from preallocated memory pools on 64-bit. + * + * The following invariants must hold: + * 1) ALIGNMENT <= SMALL_REQUEST_THRESHOLD <= 512 + * 2) SMALL_REQUEST_THRESHOLD is evenly divisible by ALIGNMENT + * + * Although not required, for better performance and space efficiency, + * it is recommended that SMALL_REQUEST_THRESHOLD is set to a power of 2. + */ +#define SMALL_REQUEST_THRESHOLD 512 +#define NB_SMALL_SIZE_CLASSES (SMALL_REQUEST_THRESHOLD / ALIGNMENT) + +/* + * The system's VMM page size can be obtained on most unices with a + * getpagesize() call or deduced from various header files. To make + * things simpler, we assume that it is 4K, which is OK for most systems. + * It is probably better if this is the native page size, but it doesn't + * have to be. In theory, if SYSTEM_PAGE_SIZE is larger than the native page + * size, then `POOL_ADDR(p)->arenaindex' could rarely cause a segmentation + * violation fault. 4K is apparently OK for all the platforms that python + * currently targets. + */ +#define SYSTEM_PAGE_SIZE (4 * 1024) + +/* + * Maximum amount of memory managed by the allocator for small requests. + */ +#ifdef WITH_MEMORY_LIMITS +#ifndef SMALL_MEMORY_LIMIT +#define SMALL_MEMORY_LIMIT (64 * 1024 * 1024) /* 64 MB -- more? */ +#endif +#endif + +#if !defined(WITH_PYMALLOC_RADIX_TREE) +/* Use radix-tree to track arena memory regions, for address_in_range(). + * Enable by default since it allows larger pool sizes. Can be disabled + * using -DWITH_PYMALLOC_RADIX_TREE=0 */ +#define WITH_PYMALLOC_RADIX_TREE 1 +#endif + +#if SIZEOF_VOID_P > 4 +/* on 64-bit platforms use larger pools and arenas if we can */ +#define USE_LARGE_ARENAS +#if WITH_PYMALLOC_RADIX_TREE +/* large pools only supported if radix-tree is enabled */ +#define USE_LARGE_POOLS +#endif +#endif + +/* + * The allocator sub-allocates blocks of memory (called arenas) aligned + * on a page boundary. This is a reserved virtual address space for the + * current process (obtained through a malloc()/mmap() call). In no way this + * means that the memory arenas will be used entirely. A malloc() is + * usually an address range reservation for bytes, unless all pages within + * this space are referenced subsequently. So malloc'ing big blocks and not + * using them does not mean "wasting memory". It's an addressable range + * wastage... + * + * Arenas are allocated with mmap() on systems supporting anonymous memory + * mappings to reduce heap fragmentation. + */ +#ifdef USE_LARGE_ARENAS +#define ARENA_BITS 20 /* 1 MiB */ +#else +#define ARENA_BITS 18 /* 256 KiB */ +#endif +#define ARENA_SIZE (1 << ARENA_BITS) +#define ARENA_SIZE_MASK (ARENA_SIZE - 1) + +#ifdef WITH_MEMORY_LIMITS +#define MAX_ARENAS (SMALL_MEMORY_LIMIT / ARENA_SIZE) +#endif + +/* + * Size of the pools used for small blocks. Must be a power of 2. + */ +#ifdef USE_LARGE_POOLS +#define POOL_BITS 14 /* 16 KiB */ +#else +#define POOL_BITS 12 /* 4 KiB */ +#endif +#define POOL_SIZE (1 << POOL_BITS) +#define POOL_SIZE_MASK (POOL_SIZE - 1) + +#if !WITH_PYMALLOC_RADIX_TREE +#if POOL_SIZE != SYSTEM_PAGE_SIZE +# error "pool size must be equal to system page size" +#endif +#endif + +#define MAX_POOLS_IN_ARENA (ARENA_SIZE / POOL_SIZE) +#if MAX_POOLS_IN_ARENA * POOL_SIZE != ARENA_SIZE +# error "arena size not an exact multiple of pool size" +#endif + +/* + * -- End of tunable settings section -- + */ + +/*==========================================================================*/ + +/* When you say memory, my mind reasons in terms of (pointers to) blocks */ +typedef uint8_t pymem_block; + +/* Pool for small blocks. */ +struct pool_header { + union { pymem_block *_padding; + uint count; } ref; /* number of allocated blocks */ + pymem_block *freeblock; /* pool's free list head */ + struct pool_header *nextpool; /* next pool of this size class */ + struct pool_header *prevpool; /* previous pool "" */ + uint arenaindex; /* index into arenas of base adr */ + uint szidx; /* block size class index */ + uint nextoffset; /* bytes to virgin block */ + uint maxnextoffset; /* largest valid nextoffset */ +}; + +typedef struct pool_header *poolp; + +/* Record keeping for arenas. */ +struct arena_object { + /* The address of the arena, as returned by malloc. Note that 0 + * will never be returned by a successful malloc, and is used + * here to mark an arena_object that doesn't correspond to an + * allocated arena. + */ + uintptr_t address; + + /* Pool-aligned pointer to the next pool to be carved off. */ + pymem_block* pool_address; + + /* The number of available pools in the arena: free pools + never- + * allocated pools. + */ + uint nfreepools; + + /* The total number of pools in the arena, whether or not available. */ + uint ntotalpools; + + /* Singly-linked list of available pools. */ + struct pool_header* freepools; + + /* Whenever this arena_object is not associated with an allocated + * arena, the nextarena member is used to link all unassociated + * arena_objects in the singly-linked `unused_arena_objects` list. + * The prevarena member is unused in this case. + * + * When this arena_object is associated with an allocated arena + * with at least one available pool, both members are used in the + * doubly-linked `usable_arenas` list, which is maintained in + * increasing order of `nfreepools` values. + * + * Else this arena_object is associated with an allocated arena + * all of whose pools are in use. `nextarena` and `prevarena` + * are both meaningless in this case. + */ + struct arena_object* nextarena; + struct arena_object* prevarena; +}; + +#define POOL_OVERHEAD _Py_SIZE_ROUND_UP(sizeof(struct pool_header), ALIGNMENT) + +#define DUMMY_SIZE_IDX 0xffff /* size class of newly cached pools */ + +/* Round pointer P down to the closest pool-aligned address <= P, as a poolp */ +#define POOL_ADDR(P) ((poolp)_Py_ALIGN_DOWN((P), POOL_SIZE)) + +/* Return total number of blocks in pool of size index I, as a uint. */ +#define NUMBLOCKS(I) ((pymem_uint)(POOL_SIZE - POOL_OVERHEAD) / INDEX2SIZE(I)) + +/*==========================================================================*/ + +/* + * Pool table -- headed, circular, doubly-linked lists of partially used pools. + +This is involved. For an index i, usedpools[i+i] is the header for a list of +all partially used pools holding small blocks with "size class idx" i. So +usedpools[0] corresponds to blocks of size 8, usedpools[2] to blocks of size +16, and so on: index 2*i <-> blocks of size (i+1)<freeblock points to +the start of a singly-linked list of free blocks within the pool. When a +block is freed, it's inserted at the front of its pool's freeblock list. Note +that the available blocks in a pool are *not* linked all together when a pool +is initialized. Instead only "the first two" (lowest addresses) blocks are +set up, returning the first such block, and setting pool->freeblock to a +one-block list holding the second such block. This is consistent with that +pymalloc strives at all levels (arena, pool, and block) never to touch a piece +of memory until it's actually needed. + +So long as a pool is in the used state, we're certain there *is* a block +available for allocating, and pool->freeblock is not NULL. If pool->freeblock +points to the end of the free list before we've carved the entire pool into +blocks, that means we simply haven't yet gotten to one of the higher-address +blocks. The offset from the pool_header to the start of "the next" virgin +block is stored in the pool_header nextoffset member, and the largest value +of nextoffset that makes sense is stored in the maxnextoffset member when a +pool is initialized. All the blocks in a pool have been passed out at least +once when and only when nextoffset > maxnextoffset. + + +Major obscurity: While the usedpools vector is declared to have poolp +entries, it doesn't really. It really contains two pointers per (conceptual) +poolp entry, the nextpool and prevpool members of a pool_header. The +excruciating initialization code below fools C so that + + usedpool[i+i] + +"acts like" a genuine poolp, but only so long as you only reference its +nextpool and prevpool members. The "- 2*sizeof(pymem_block *)" gibberish is +compensating for that a pool_header's nextpool and prevpool members +immediately follow a pool_header's first two members: + + union { pymem_block *_padding; + uint count; } ref; + pymem_block *freeblock; + +each of which consume sizeof(pymem_block *) bytes. So what usedpools[i+i] really +contains is a fudged-up pointer p such that *if* C believes it's a poolp +pointer, then p->nextpool and p->prevpool are both p (meaning that the headed +circular list is empty). + +It's unclear why the usedpools setup is so convoluted. It could be to +minimize the amount of cache required to hold this heavily-referenced table +(which only *needs* the two interpool pointer members of a pool_header). OTOH, +referencing code has to remember to "double the index" and doing so isn't +free, usedpools[0] isn't a strictly legal pointer, and we're crucially relying +on that C doesn't insert any padding anywhere in a pool_header at or before +the prevpool member. +**************************************************************************** */ + +#define OBMALLOC_USED_POOLS_SIZE (2 * ((NB_SMALL_SIZE_CLASSES + 7) / 8) * 8) + +struct _obmalloc_pools { + poolp used[OBMALLOC_USED_POOLS_SIZE]; +}; + + +/*========================================================================== +Arena management. + +`arenas` is a vector of arena_objects. It contains maxarenas entries, some of +which may not be currently used (== they're arena_objects that aren't +currently associated with an allocated arena). Note that arenas proper are +separately malloc'ed. + +Prior to Python 2.5, arenas were never free()'ed. Starting with Python 2.5, +we do try to free() arenas, and use some mild heuristic strategies to increase +the likelihood that arenas eventually can be freed. + +unused_arena_objects + + This is a singly-linked list of the arena_objects that are currently not + being used (no arena is associated with them). Objects are taken off the + head of the list in new_arena(), and are pushed on the head of the list in + PyObject_Free() when the arena is empty. Key invariant: an arena_object + is on this list if and only if its .address member is 0. + +usable_arenas + + This is a doubly-linked list of the arena_objects associated with arenas + that have pools available. These pools are either waiting to be reused, + or have not been used before. The list is sorted to have the most- + allocated arenas first (ascending order based on the nfreepools member). + This means that the next allocation will come from a heavily used arena, + which gives the nearly empty arenas a chance to be returned to the system. + In my unscientific tests this dramatically improved the number of arenas + that could be freed. + +Note that an arena_object associated with an arena all of whose pools are +currently in use isn't on either list. + +Changed in Python 3.8: keeping usable_arenas sorted by number of free pools +used to be done by one-at-a-time linear search when an arena's number of +free pools changed. That could, overall, consume time quadratic in the +number of arenas. That didn't really matter when there were only a few +hundred arenas (typical!), but could be a timing disaster when there were +hundreds of thousands. See bpo-37029. + +Now we have a vector of "search fingers" to eliminate the need to search: +nfp2lasta[nfp] returns the last ("rightmost") arena in usable_arenas +with nfp free pools. This is NULL if and only if there is no arena with +nfp free pools in usable_arenas. +*/ + +/* How many arena_objects do we initially allocate? + * 16 = can allocate 16 arenas = 16 * ARENA_SIZE = 4MB before growing the + * `arenas` vector. + */ +#define INITIAL_ARENA_OBJECTS 16 + +struct _obmalloc_mgmt { + /* Array of objects used to track chunks of memory (arenas). */ + struct arena_object* arenas; + /* Number of slots currently allocated in the `arenas` vector. */ + uint maxarenas; + + /* The head of the singly-linked, NULL-terminated list of available + * arena_objects. + */ + struct arena_object* unused_arena_objects; + + /* The head of the doubly-linked, NULL-terminated at each end, list of + * arena_objects associated with arenas that have pools available. + */ + struct arena_object* usable_arenas; + + /* nfp2lasta[nfp] is the last arena in usable_arenas with nfp free pools */ + struct arena_object* nfp2lasta[MAX_POOLS_IN_ARENA + 1]; + + /* Number of arenas allocated that haven't been free()'d. */ + size_t narenas_currently_allocated; + + /* Total number of times malloc() called to allocate an arena. */ + size_t ntimes_arena_allocated; + /* High water mark (max value ever seen) for narenas_currently_allocated. */ + size_t narenas_highwater; + + Py_ssize_t raw_allocated_blocks; +}; + + +#if WITH_PYMALLOC_RADIX_TREE +/*==========================================================================*/ +/* radix tree for tracking arena usage. If enabled, used to implement + address_in_range(). + + memory address bit allocation for keys + + 64-bit pointers, IGNORE_BITS=0 and 2^20 arena size: + 15 -> MAP_TOP_BITS + 15 -> MAP_MID_BITS + 14 -> MAP_BOT_BITS + 20 -> ideal aligned arena + ---- + 64 + + 64-bit pointers, IGNORE_BITS=16, and 2^20 arena size: + 16 -> IGNORE_BITS + 10 -> MAP_TOP_BITS + 10 -> MAP_MID_BITS + 8 -> MAP_BOT_BITS + 20 -> ideal aligned arena + ---- + 64 + + 32-bit pointers and 2^18 arena size: + 14 -> MAP_BOT_BITS + 18 -> ideal aligned arena + ---- + 32 + +*/ + +#if SIZEOF_VOID_P == 8 + +/* number of bits in a pointer */ +#define POINTER_BITS 64 + +/* High bits of memory addresses that will be ignored when indexing into the + * radix tree. Setting this to zero is the safe default. For most 64-bit + * machines, setting this to 16 would be safe. The kernel would not give + * user-space virtual memory addresses that have significant information in + * those high bits. The main advantage to setting IGNORE_BITS > 0 is that less + * virtual memory will be used for the top and middle radix tree arrays. Those + * arrays are allocated in the BSS segment and so will typically consume real + * memory only if actually accessed. + */ +#define IGNORE_BITS 0 + +/* use the top and mid layers of the radix tree */ +#define USE_INTERIOR_NODES + +#elif SIZEOF_VOID_P == 4 + +#define POINTER_BITS 32 +#define IGNORE_BITS 0 + +#else + + /* Currently this code works for 64-bit or 32-bit pointers only. */ +#error "obmalloc radix tree requires 64-bit or 32-bit pointers." + +#endif /* SIZEOF_VOID_P */ + +/* arena_coverage_t members require this to be true */ +#if ARENA_BITS >= 32 +# error "arena size must be < 2^32" +#endif + +/* the lower bits of the address that are not ignored */ +#define ADDRESS_BITS (POINTER_BITS - IGNORE_BITS) + +#ifdef USE_INTERIOR_NODES +/* number of bits used for MAP_TOP and MAP_MID nodes */ +#define INTERIOR_BITS ((ADDRESS_BITS - ARENA_BITS + 2) / 3) +#else +#define INTERIOR_BITS 0 +#endif + +#define MAP_TOP_BITS INTERIOR_BITS +#define MAP_TOP_LENGTH (1 << MAP_TOP_BITS) +#define MAP_TOP_MASK (MAP_TOP_LENGTH - 1) + +#define MAP_MID_BITS INTERIOR_BITS +#define MAP_MID_LENGTH (1 << MAP_MID_BITS) +#define MAP_MID_MASK (MAP_MID_LENGTH - 1) + +#define MAP_BOT_BITS (ADDRESS_BITS - ARENA_BITS - 2*INTERIOR_BITS) +#define MAP_BOT_LENGTH (1 << MAP_BOT_BITS) +#define MAP_BOT_MASK (MAP_BOT_LENGTH - 1) + +#define MAP_BOT_SHIFT ARENA_BITS +#define MAP_MID_SHIFT (MAP_BOT_BITS + MAP_BOT_SHIFT) +#define MAP_TOP_SHIFT (MAP_MID_BITS + MAP_MID_SHIFT) + +#define AS_UINT(p) ((uintptr_t)(p)) +#define MAP_BOT_INDEX(p) ((AS_UINT(p) >> MAP_BOT_SHIFT) & MAP_BOT_MASK) +#define MAP_MID_INDEX(p) ((AS_UINT(p) >> MAP_MID_SHIFT) & MAP_MID_MASK) +#define MAP_TOP_INDEX(p) ((AS_UINT(p) >> MAP_TOP_SHIFT) & MAP_TOP_MASK) + +#if IGNORE_BITS > 0 +/* Return the ignored part of the pointer address. Those bits should be same + * for all valid pointers if IGNORE_BITS is set correctly. + */ +#define HIGH_BITS(p) (AS_UINT(p) >> ADDRESS_BITS) +#else +#define HIGH_BITS(p) 0 +#endif + + +/* This is the leaf of the radix tree. See arena_map_mark_used() for the + * meaning of these members. */ +typedef struct { + int32_t tail_hi; + int32_t tail_lo; +} arena_coverage_t; + +typedef struct arena_map_bot { + /* The members tail_hi and tail_lo are accessed together. So, it + * better to have them as an array of structs, rather than two + * arrays. + */ + arena_coverage_t arenas[MAP_BOT_LENGTH]; +} arena_map_bot_t; + +#ifdef USE_INTERIOR_NODES +typedef struct arena_map_mid { + struct arena_map_bot *ptrs[MAP_MID_LENGTH]; +} arena_map_mid_t; + +typedef struct arena_map_top { + struct arena_map_mid *ptrs[MAP_TOP_LENGTH]; +} arena_map_top_t; +#endif + +struct _obmalloc_usage { + /* The root of radix tree. Note that by initializing like this, the memory + * should be in the BSS. The OS will only memory map pages as the MAP_MID + * nodes get used (OS pages are demand loaded as needed). + */ +#ifdef USE_INTERIOR_NODES + arena_map_top_t arena_map_root; + /* accounting for number of used interior nodes */ + int arena_map_mid_count; + int arena_map_bot_count; +#else + arena_map_bot_t arena_map_root; +#endif +}; + +#endif /* WITH_PYMALLOC_RADIX_TREE */ + + +struct _obmalloc_global_state { + int dump_debug_stats; + Py_ssize_t interpreter_leaks; +}; + +struct _obmalloc_state { + struct _obmalloc_pools pools; + struct _obmalloc_mgmt mgmt; +#if WITH_PYMALLOC_RADIX_TREE + struct _obmalloc_usage usage; +#endif +}; + + +#undef uint + + +/* Allocate memory directly from the O/S virtual memory system, + * where supported. Otherwise fallback on malloc */ +void *_PyObject_VirtualAlloc(size_t size); +void _PyObject_VirtualFree(void *, size_t size); + + +/* This function returns the number of allocated memory blocks, regardless of size */ +extern Py_ssize_t _Py_GetGlobalAllocatedBlocks(void); +#define _Py_GetAllocatedBlocks() \ + _Py_GetGlobalAllocatedBlocks() +extern Py_ssize_t _PyInterpreterState_GetAllocatedBlocks(PyInterpreterState *); +extern void _PyInterpreterState_FinalizeAllocatedBlocks(PyInterpreterState *); + + +#ifdef WITH_PYMALLOC +// Export the symbol for the 3rd party guppy3 project +PyAPI_FUNC(int) _PyObject_DebugMallocStats(FILE *out); +#endif + + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_OBMALLOC_H diff --git a/src/external/windows/include/python/internal/pycore_obmalloc_init.h b/src/external/windows/include/python/internal/pycore_obmalloc_init.h new file mode 100644 index 00000000..d9dfcbd8 --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_obmalloc_init.h @@ -0,0 +1,73 @@ +#ifndef Py_INTERNAL_OBMALLOC_INIT_H +#define Py_INTERNAL_OBMALLOC_INIT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +/****************************************************/ +/* the default object allocator's state initializer */ + +#define PTA(pools, x) \ + ((poolp )((uint8_t *)&(pools.used[2*(x)]) - 2*sizeof(pymem_block *))) +#define PT(p, x) PTA(p, x), PTA(p, x) + +#define PT_8(p, start) \ + PT(p, start), \ + PT(p, start+1), \ + PT(p, start+2), \ + PT(p, start+3), \ + PT(p, start+4), \ + PT(p, start+5), \ + PT(p, start+6), \ + PT(p, start+7) + +#if NB_SMALL_SIZE_CLASSES <= 8 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0) } +#elif NB_SMALL_SIZE_CLASSES <= 16 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8) } +#elif NB_SMALL_SIZE_CLASSES <= 24 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16) } +#elif NB_SMALL_SIZE_CLASSES <= 32 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24) } +#elif NB_SMALL_SIZE_CLASSES <= 40 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32) } +#elif NB_SMALL_SIZE_CLASSES <= 48 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32), PT_8(p, 40) } +#elif NB_SMALL_SIZE_CLASSES <= 56 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32), PT_8(p, 40), PT_8(p, 48) } +#elif NB_SMALL_SIZE_CLASSES <= 64 +# define _obmalloc_pools_INIT(p) \ + { PT_8(p, 0), PT_8(p, 8), PT_8(p, 16), PT_8(p, 24), PT_8(p, 32), PT_8(p, 40), PT_8(p, 48), PT_8(p, 56) } +#else +# error "NB_SMALL_SIZE_CLASSES should be less than 64" +#endif + +#define _obmalloc_global_state_INIT \ + { \ + .dump_debug_stats = -1, \ + } + +#define _obmalloc_state_INIT(obmalloc) \ + { \ + .pools = { \ + .used = _obmalloc_pools_INIT(obmalloc.pools), \ + }, \ + } + + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_OBMALLOC_INIT_H diff --git a/src/external/windows/include/python/internal/pycore_opcode.h b/src/external/windows/include/python/internal/pycore_opcode.h index 8073de44..562b166e 100644 --- a/src/external/windows/include/python/internal/pycore_opcode.h +++ b/src/external/windows/include/python/internal/pycore_opcode.h @@ -1,4 +1,4 @@ -// Auto-generated by Tools/scripts/generate_opcode_h.py from Lib/opcode.py +// Auto-generated by Tools/build/generate_opcode_h.py from Lib/opcode.py #ifndef Py_INTERNAL_OPCODE_H #define Py_INTERNAL_OPCODE_H @@ -12,52 +12,44 @@ extern "C" { #include "opcode.h" +extern const uint32_t _PyOpcode_Jump[9]; + extern const uint8_t _PyOpcode_Caches[256]; extern const uint8_t _PyOpcode_Deopt[256]; #ifdef NEED_OPCODE_TABLES -static const uint32_t _PyOpcode_RelativeJump[8] = { +const uint32_t _PyOpcode_Jump[9] = { 0U, 0U, 536870912U, - 135118848U, + 135020544U, 4163U, - 122880U, 0U, 0U, -}; -static const uint32_t _PyOpcode_Jump[8] = { - 0U, - 0U, - 536870912U, - 135118848U, - 4163U, - 122880U, - 0U, 0U, + 48U, }; const uint8_t _PyOpcode_Caches[256] = { - [BINARY_SUBSCR] = 4, + [BINARY_SUBSCR] = 1, [STORE_SUBSCR] = 1, [UNPACK_SEQUENCE] = 1, + [FOR_ITER] = 1, [STORE_ATTR] = 4, - [LOAD_ATTR] = 4, - [COMPARE_OP] = 2, - [LOAD_GLOBAL] = 5, + [LOAD_ATTR] = 9, + [COMPARE_OP] = 1, + [LOAD_GLOBAL] = 4, [BINARY_OP] = 1, - [LOAD_METHOD] = 10, - [PRECALL] = 1, - [CALL] = 4, + [SEND] = 1, + [LOAD_SUPER_ATTR] = 1, + [CALL] = 3, }; const uint8_t _PyOpcode_Deopt[256] = { - [ASYNC_GEN_WRAP] = ASYNC_GEN_WRAP, [BEFORE_ASYNC_WITH] = BEFORE_ASYNC_WITH, [BEFORE_WITH] = BEFORE_WITH, [BINARY_OP] = BINARY_OP, - [BINARY_OP_ADAPTIVE] = BINARY_OP, [BINARY_OP_ADD_FLOAT] = BINARY_OP, [BINARY_OP_ADD_INT] = BINARY_OP, [BINARY_OP_ADD_UNICODE] = BINARY_OP, @@ -66,8 +58,8 @@ const uint8_t _PyOpcode_Deopt[256] = { [BINARY_OP_MULTIPLY_INT] = BINARY_OP, [BINARY_OP_SUBTRACT_FLOAT] = BINARY_OP, [BINARY_OP_SUBTRACT_INT] = BINARY_OP, + [BINARY_SLICE] = BINARY_SLICE, [BINARY_SUBSCR] = BINARY_SUBSCR, - [BINARY_SUBSCR_ADAPTIVE] = BINARY_SUBSCR, [BINARY_SUBSCR_DICT] = BINARY_SUBSCR, [BINARY_SUBSCR_GETITEM] = BINARY_SUBSCR, [BINARY_SUBSCR_LIST_INT] = BINARY_SUBSCR, @@ -81,17 +73,33 @@ const uint8_t _PyOpcode_Deopt[256] = { [BUILD_TUPLE] = BUILD_TUPLE, [CACHE] = CACHE, [CALL] = CALL, - [CALL_ADAPTIVE] = CALL, + [CALL_BOUND_METHOD_EXACT_ARGS] = CALL, + [CALL_BUILTIN_CLASS] = CALL, + [CALL_BUILTIN_FAST_WITH_KEYWORDS] = CALL, [CALL_FUNCTION_EX] = CALL_FUNCTION_EX, + [CALL_INTRINSIC_1] = CALL_INTRINSIC_1, + [CALL_INTRINSIC_2] = CALL_INTRINSIC_2, + [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = CALL, + [CALL_NO_KW_BUILTIN_FAST] = CALL, + [CALL_NO_KW_BUILTIN_O] = CALL, + [CALL_NO_KW_ISINSTANCE] = CALL, + [CALL_NO_KW_LEN] = CALL, + [CALL_NO_KW_LIST_APPEND] = CALL, + [CALL_NO_KW_METHOD_DESCRIPTOR_FAST] = CALL, + [CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS] = CALL, + [CALL_NO_KW_METHOD_DESCRIPTOR_O] = CALL, + [CALL_NO_KW_STR_1] = CALL, + [CALL_NO_KW_TUPLE_1] = CALL, + [CALL_NO_KW_TYPE_1] = CALL, [CALL_PY_EXACT_ARGS] = CALL, [CALL_PY_WITH_DEFAULTS] = CALL, [CHECK_EG_MATCH] = CHECK_EG_MATCH, [CHECK_EXC_MATCH] = CHECK_EXC_MATCH, + [CLEANUP_THROW] = CLEANUP_THROW, [COMPARE_OP] = COMPARE_OP, - [COMPARE_OP_ADAPTIVE] = COMPARE_OP, - [COMPARE_OP_FLOAT_JUMP] = COMPARE_OP, - [COMPARE_OP_INT_JUMP] = COMPARE_OP, - [COMPARE_OP_STR_JUMP] = COMPARE_OP, + [COMPARE_OP_FLOAT] = COMPARE_OP, + [COMPARE_OP_INT] = COMPARE_OP, + [COMPARE_OP_STR] = COMPARE_OP, [CONTAINS_OP] = CONTAINS_OP, [COPY] = COPY, [COPY_FREE_VARS] = COPY_FREE_VARS, @@ -104,10 +112,15 @@ const uint8_t _PyOpcode_Deopt[256] = { [DICT_MERGE] = DICT_MERGE, [DICT_UPDATE] = DICT_UPDATE, [END_ASYNC_FOR] = END_ASYNC_FOR, + [END_FOR] = END_FOR, + [END_SEND] = END_SEND, [EXTENDED_ARG] = EXTENDED_ARG, - [EXTENDED_ARG_QUICK] = EXTENDED_ARG, [FORMAT_VALUE] = FORMAT_VALUE, [FOR_ITER] = FOR_ITER, + [FOR_ITER_GEN] = FOR_ITER, + [FOR_ITER_LIST] = FOR_ITER, + [FOR_ITER_RANGE] = FOR_ITER, + [FOR_ITER_TUPLE] = FOR_ITER, [GET_AITER] = GET_AITER, [GET_ANEXT] = GET_ANEXT, [GET_AWAITABLE] = GET_AWAITABLE, @@ -116,46 +129,64 @@ const uint8_t _PyOpcode_Deopt[256] = { [GET_YIELD_FROM_ITER] = GET_YIELD_FROM_ITER, [IMPORT_FROM] = IMPORT_FROM, [IMPORT_NAME] = IMPORT_NAME, - [IMPORT_STAR] = IMPORT_STAR, + [INSTRUMENTED_CALL] = INSTRUMENTED_CALL, + [INSTRUMENTED_CALL_FUNCTION_EX] = INSTRUMENTED_CALL_FUNCTION_EX, + [INSTRUMENTED_END_FOR] = INSTRUMENTED_END_FOR, + [INSTRUMENTED_END_SEND] = INSTRUMENTED_END_SEND, + [INSTRUMENTED_FOR_ITER] = INSTRUMENTED_FOR_ITER, + [INSTRUMENTED_INSTRUCTION] = INSTRUMENTED_INSTRUCTION, + [INSTRUMENTED_JUMP_BACKWARD] = INSTRUMENTED_JUMP_BACKWARD, + [INSTRUMENTED_JUMP_FORWARD] = INSTRUMENTED_JUMP_FORWARD, + [INSTRUMENTED_LINE] = INSTRUMENTED_LINE, + [INSTRUMENTED_LOAD_SUPER_ATTR] = INSTRUMENTED_LOAD_SUPER_ATTR, + [INSTRUMENTED_POP_JUMP_IF_FALSE] = INSTRUMENTED_POP_JUMP_IF_FALSE, + [INSTRUMENTED_POP_JUMP_IF_NONE] = INSTRUMENTED_POP_JUMP_IF_NONE, + [INSTRUMENTED_POP_JUMP_IF_NOT_NONE] = INSTRUMENTED_POP_JUMP_IF_NOT_NONE, + [INSTRUMENTED_POP_JUMP_IF_TRUE] = INSTRUMENTED_POP_JUMP_IF_TRUE, + [INSTRUMENTED_RESUME] = INSTRUMENTED_RESUME, + [INSTRUMENTED_RETURN_CONST] = INSTRUMENTED_RETURN_CONST, + [INSTRUMENTED_RETURN_VALUE] = INSTRUMENTED_RETURN_VALUE, + [INSTRUMENTED_YIELD_VALUE] = INSTRUMENTED_YIELD_VALUE, + [INTERPRETER_EXIT] = INTERPRETER_EXIT, [IS_OP] = IS_OP, [JUMP_BACKWARD] = JUMP_BACKWARD, [JUMP_BACKWARD_NO_INTERRUPT] = JUMP_BACKWARD_NO_INTERRUPT, - [JUMP_BACKWARD_QUICK] = JUMP_BACKWARD, [JUMP_FORWARD] = JUMP_FORWARD, - [JUMP_IF_FALSE_OR_POP] = JUMP_IF_FALSE_OR_POP, - [JUMP_IF_TRUE_OR_POP] = JUMP_IF_TRUE_OR_POP, [KW_NAMES] = KW_NAMES, [LIST_APPEND] = LIST_APPEND, [LIST_EXTEND] = LIST_EXTEND, - [LIST_TO_TUPLE] = LIST_TO_TUPLE, [LOAD_ASSERTION_ERROR] = LOAD_ASSERTION_ERROR, [LOAD_ATTR] = LOAD_ATTR, - [LOAD_ATTR_ADAPTIVE] = LOAD_ATTR, + [LOAD_ATTR_CLASS] = LOAD_ATTR, + [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = LOAD_ATTR, [LOAD_ATTR_INSTANCE_VALUE] = LOAD_ATTR, + [LOAD_ATTR_METHOD_LAZY_DICT] = LOAD_ATTR, + [LOAD_ATTR_METHOD_NO_DICT] = LOAD_ATTR, + [LOAD_ATTR_METHOD_WITH_VALUES] = LOAD_ATTR, [LOAD_ATTR_MODULE] = LOAD_ATTR, + [LOAD_ATTR_PROPERTY] = LOAD_ATTR, [LOAD_ATTR_SLOT] = LOAD_ATTR, [LOAD_ATTR_WITH_HINT] = LOAD_ATTR, [LOAD_BUILD_CLASS] = LOAD_BUILD_CLASS, - [LOAD_CLASSDEREF] = LOAD_CLASSDEREF, [LOAD_CLOSURE] = LOAD_CLOSURE, [LOAD_CONST] = LOAD_CONST, [LOAD_CONST__LOAD_FAST] = LOAD_CONST, [LOAD_DEREF] = LOAD_DEREF, [LOAD_FAST] = LOAD_FAST, + [LOAD_FAST_AND_CLEAR] = LOAD_FAST_AND_CLEAR, + [LOAD_FAST_CHECK] = LOAD_FAST_CHECK, [LOAD_FAST__LOAD_CONST] = LOAD_FAST, [LOAD_FAST__LOAD_FAST] = LOAD_FAST, + [LOAD_FROM_DICT_OR_DEREF] = LOAD_FROM_DICT_OR_DEREF, + [LOAD_FROM_DICT_OR_GLOBALS] = LOAD_FROM_DICT_OR_GLOBALS, [LOAD_GLOBAL] = LOAD_GLOBAL, - [LOAD_GLOBAL_ADAPTIVE] = LOAD_GLOBAL, [LOAD_GLOBAL_BUILTIN] = LOAD_GLOBAL, [LOAD_GLOBAL_MODULE] = LOAD_GLOBAL, - [LOAD_METHOD] = LOAD_METHOD, - [LOAD_METHOD_ADAPTIVE] = LOAD_METHOD, - [LOAD_METHOD_CLASS] = LOAD_METHOD, - [LOAD_METHOD_MODULE] = LOAD_METHOD, - [LOAD_METHOD_NO_DICT] = LOAD_METHOD, - [LOAD_METHOD_WITH_DICT] = LOAD_METHOD, - [LOAD_METHOD_WITH_VALUES] = LOAD_METHOD, + [LOAD_LOCALS] = LOAD_LOCALS, [LOAD_NAME] = LOAD_NAME, + [LOAD_SUPER_ATTR] = LOAD_SUPER_ATTR, + [LOAD_SUPER_ATTR_ATTR] = LOAD_SUPER_ATTR, + [LOAD_SUPER_ATTR_METHOD] = LOAD_SUPER_ATTR, [MAKE_CELL] = MAKE_CELL, [MAKE_FUNCTION] = MAKE_FUNCTION, [MAP_ADD] = MAP_ADD, @@ -165,49 +196,26 @@ const uint8_t _PyOpcode_Deopt[256] = { [MATCH_SEQUENCE] = MATCH_SEQUENCE, [NOP] = NOP, [POP_EXCEPT] = POP_EXCEPT, - [POP_JUMP_BACKWARD_IF_FALSE] = POP_JUMP_BACKWARD_IF_FALSE, - [POP_JUMP_BACKWARD_IF_NONE] = POP_JUMP_BACKWARD_IF_NONE, - [POP_JUMP_BACKWARD_IF_NOT_NONE] = POP_JUMP_BACKWARD_IF_NOT_NONE, - [POP_JUMP_BACKWARD_IF_TRUE] = POP_JUMP_BACKWARD_IF_TRUE, - [POP_JUMP_FORWARD_IF_FALSE] = POP_JUMP_FORWARD_IF_FALSE, - [POP_JUMP_FORWARD_IF_NONE] = POP_JUMP_FORWARD_IF_NONE, - [POP_JUMP_FORWARD_IF_NOT_NONE] = POP_JUMP_FORWARD_IF_NOT_NONE, - [POP_JUMP_FORWARD_IF_TRUE] = POP_JUMP_FORWARD_IF_TRUE, + [POP_JUMP_IF_FALSE] = POP_JUMP_IF_FALSE, + [POP_JUMP_IF_NONE] = POP_JUMP_IF_NONE, + [POP_JUMP_IF_NOT_NONE] = POP_JUMP_IF_NOT_NONE, + [POP_JUMP_IF_TRUE] = POP_JUMP_IF_TRUE, [POP_TOP] = POP_TOP, - [PRECALL] = PRECALL, - [PRECALL_ADAPTIVE] = PRECALL, - [PRECALL_BOUND_METHOD] = PRECALL, - [PRECALL_BUILTIN_CLASS] = PRECALL, - [PRECALL_BUILTIN_FAST_WITH_KEYWORDS] = PRECALL, - [PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = PRECALL, - [PRECALL_NO_KW_BUILTIN_FAST] = PRECALL, - [PRECALL_NO_KW_BUILTIN_O] = PRECALL, - [PRECALL_NO_KW_ISINSTANCE] = PRECALL, - [PRECALL_NO_KW_LEN] = PRECALL, - [PRECALL_NO_KW_LIST_APPEND] = PRECALL, - [PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST] = PRECALL, - [PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS] = PRECALL, - [PRECALL_NO_KW_METHOD_DESCRIPTOR_O] = PRECALL, - [PRECALL_NO_KW_STR_1] = PRECALL, - [PRECALL_NO_KW_TUPLE_1] = PRECALL, - [PRECALL_NO_KW_TYPE_1] = PRECALL, - [PRECALL_PYFUNC] = PRECALL, - [PREP_RERAISE_STAR] = PREP_RERAISE_STAR, - [PRINT_EXPR] = PRINT_EXPR, [PUSH_EXC_INFO] = PUSH_EXC_INFO, [PUSH_NULL] = PUSH_NULL, [RAISE_VARARGS] = RAISE_VARARGS, [RERAISE] = RERAISE, + [RESERVED] = RESERVED, [RESUME] = RESUME, - [RESUME_QUICK] = RESUME, + [RETURN_CONST] = RETURN_CONST, [RETURN_GENERATOR] = RETURN_GENERATOR, [RETURN_VALUE] = RETURN_VALUE, [SEND] = SEND, + [SEND_GEN] = SEND, [SETUP_ANNOTATIONS] = SETUP_ANNOTATIONS, [SET_ADD] = SET_ADD, [SET_UPDATE] = SET_UPDATE, [STORE_ATTR] = STORE_ATTR, - [STORE_ATTR_ADAPTIVE] = STORE_ATTR, [STORE_ATTR_INSTANCE_VALUE] = STORE_ATTR, [STORE_ATTR_SLOT] = STORE_ATTR, [STORE_ATTR_WITH_HINT] = STORE_ATTR, @@ -217,18 +225,16 @@ const uint8_t _PyOpcode_Deopt[256] = { [STORE_FAST__STORE_FAST] = STORE_FAST, [STORE_GLOBAL] = STORE_GLOBAL, [STORE_NAME] = STORE_NAME, + [STORE_SLICE] = STORE_SLICE, [STORE_SUBSCR] = STORE_SUBSCR, - [STORE_SUBSCR_ADAPTIVE] = STORE_SUBSCR, [STORE_SUBSCR_DICT] = STORE_SUBSCR, [STORE_SUBSCR_LIST_INT] = STORE_SUBSCR, [SWAP] = SWAP, [UNARY_INVERT] = UNARY_INVERT, [UNARY_NEGATIVE] = UNARY_NEGATIVE, [UNARY_NOT] = UNARY_NOT, - [UNARY_POSITIVE] = UNARY_POSITIVE, [UNPACK_EX] = UNPACK_EX, [UNPACK_SEQUENCE] = UNPACK_SEQUENCE, - [UNPACK_SEQUENCE_ADAPTIVE] = UNPACK_SEQUENCE, [UNPACK_SEQUENCE_LIST] = UNPACK_SEQUENCE, [UNPACK_SEQUENCE_TUPLE] = UNPACK_SEQUENCE, [UNPACK_SEQUENCE_TWO_TUPLE] = UNPACK_SEQUENCE, @@ -238,96 +244,96 @@ const uint8_t _PyOpcode_Deopt[256] = { #endif // NEED_OPCODE_TABLES #ifdef Py_DEBUG -static const char *const _PyOpcode_OpName[256] = { +static const char *const _PyOpcode_OpName[267] = { [CACHE] = "CACHE", [POP_TOP] = "POP_TOP", [PUSH_NULL] = "PUSH_NULL", - [BINARY_OP_ADAPTIVE] = "BINARY_OP_ADAPTIVE", + [INTERPRETER_EXIT] = "INTERPRETER_EXIT", + [END_FOR] = "END_FOR", + [END_SEND] = "END_SEND", [BINARY_OP_ADD_FLOAT] = "BINARY_OP_ADD_FLOAT", [BINARY_OP_ADD_INT] = "BINARY_OP_ADD_INT", [BINARY_OP_ADD_UNICODE] = "BINARY_OP_ADD_UNICODE", - [BINARY_OP_INPLACE_ADD_UNICODE] = "BINARY_OP_INPLACE_ADD_UNICODE", - [BINARY_OP_MULTIPLY_FLOAT] = "BINARY_OP_MULTIPLY_FLOAT", [NOP] = "NOP", - [UNARY_POSITIVE] = "UNARY_POSITIVE", + [BINARY_OP_INPLACE_ADD_UNICODE] = "BINARY_OP_INPLACE_ADD_UNICODE", [UNARY_NEGATIVE] = "UNARY_NEGATIVE", [UNARY_NOT] = "UNARY_NOT", + [BINARY_OP_MULTIPLY_FLOAT] = "BINARY_OP_MULTIPLY_FLOAT", [BINARY_OP_MULTIPLY_INT] = "BINARY_OP_MULTIPLY_INT", - [BINARY_OP_SUBTRACT_FLOAT] = "BINARY_OP_SUBTRACT_FLOAT", [UNARY_INVERT] = "UNARY_INVERT", + [BINARY_OP_SUBTRACT_FLOAT] = "BINARY_OP_SUBTRACT_FLOAT", + [RESERVED] = "RESERVED", [BINARY_OP_SUBTRACT_INT] = "BINARY_OP_SUBTRACT_INT", - [BINARY_SUBSCR_ADAPTIVE] = "BINARY_SUBSCR_ADAPTIVE", [BINARY_SUBSCR_DICT] = "BINARY_SUBSCR_DICT", [BINARY_SUBSCR_GETITEM] = "BINARY_SUBSCR_GETITEM", [BINARY_SUBSCR_LIST_INT] = "BINARY_SUBSCR_LIST_INT", [BINARY_SUBSCR_TUPLE_INT] = "BINARY_SUBSCR_TUPLE_INT", - [CALL_ADAPTIVE] = "CALL_ADAPTIVE", [CALL_PY_EXACT_ARGS] = "CALL_PY_EXACT_ARGS", [CALL_PY_WITH_DEFAULTS] = "CALL_PY_WITH_DEFAULTS", [BINARY_SUBSCR] = "BINARY_SUBSCR", - [COMPARE_OP_ADAPTIVE] = "COMPARE_OP_ADAPTIVE", - [COMPARE_OP_FLOAT_JUMP] = "COMPARE_OP_FLOAT_JUMP", - [COMPARE_OP_INT_JUMP] = "COMPARE_OP_INT_JUMP", - [COMPARE_OP_STR_JUMP] = "COMPARE_OP_STR_JUMP", + [BINARY_SLICE] = "BINARY_SLICE", + [STORE_SLICE] = "STORE_SLICE", + [CALL_BOUND_METHOD_EXACT_ARGS] = "CALL_BOUND_METHOD_EXACT_ARGS", + [CALL_BUILTIN_CLASS] = "CALL_BUILTIN_CLASS", [GET_LEN] = "GET_LEN", [MATCH_MAPPING] = "MATCH_MAPPING", [MATCH_SEQUENCE] = "MATCH_SEQUENCE", [MATCH_KEYS] = "MATCH_KEYS", - [EXTENDED_ARG_QUICK] = "EXTENDED_ARG_QUICK", + [CALL_BUILTIN_FAST_WITH_KEYWORDS] = "CALL_BUILTIN_FAST_WITH_KEYWORDS", [PUSH_EXC_INFO] = "PUSH_EXC_INFO", [CHECK_EXC_MATCH] = "CHECK_EXC_MATCH", [CHECK_EG_MATCH] = "CHECK_EG_MATCH", - [JUMP_BACKWARD_QUICK] = "JUMP_BACKWARD_QUICK", - [LOAD_ATTR_ADAPTIVE] = "LOAD_ATTR_ADAPTIVE", - [LOAD_ATTR_INSTANCE_VALUE] = "LOAD_ATTR_INSTANCE_VALUE", - [LOAD_ATTR_MODULE] = "LOAD_ATTR_MODULE", - [LOAD_ATTR_SLOT] = "LOAD_ATTR_SLOT", - [LOAD_ATTR_WITH_HINT] = "LOAD_ATTR_WITH_HINT", - [LOAD_CONST__LOAD_FAST] = "LOAD_CONST__LOAD_FAST", - [LOAD_FAST__LOAD_CONST] = "LOAD_FAST__LOAD_CONST", - [LOAD_FAST__LOAD_FAST] = "LOAD_FAST__LOAD_FAST", - [LOAD_GLOBAL_ADAPTIVE] = "LOAD_GLOBAL_ADAPTIVE", - [LOAD_GLOBAL_BUILTIN] = "LOAD_GLOBAL_BUILTIN", + [CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS", + [CALL_NO_KW_BUILTIN_FAST] = "CALL_NO_KW_BUILTIN_FAST", + [CALL_NO_KW_BUILTIN_O] = "CALL_NO_KW_BUILTIN_O", + [CALL_NO_KW_ISINSTANCE] = "CALL_NO_KW_ISINSTANCE", + [CALL_NO_KW_LEN] = "CALL_NO_KW_LEN", + [CALL_NO_KW_LIST_APPEND] = "CALL_NO_KW_LIST_APPEND", + [CALL_NO_KW_METHOD_DESCRIPTOR_FAST] = "CALL_NO_KW_METHOD_DESCRIPTOR_FAST", + [CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS] = "CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS", + [CALL_NO_KW_METHOD_DESCRIPTOR_O] = "CALL_NO_KW_METHOD_DESCRIPTOR_O", + [CALL_NO_KW_STR_1] = "CALL_NO_KW_STR_1", + [CALL_NO_KW_TUPLE_1] = "CALL_NO_KW_TUPLE_1", [WITH_EXCEPT_START] = "WITH_EXCEPT_START", [GET_AITER] = "GET_AITER", [GET_ANEXT] = "GET_ANEXT", [BEFORE_ASYNC_WITH] = "BEFORE_ASYNC_WITH", [BEFORE_WITH] = "BEFORE_WITH", [END_ASYNC_FOR] = "END_ASYNC_FOR", - [LOAD_GLOBAL_MODULE] = "LOAD_GLOBAL_MODULE", - [LOAD_METHOD_ADAPTIVE] = "LOAD_METHOD_ADAPTIVE", - [LOAD_METHOD_CLASS] = "LOAD_METHOD_CLASS", - [LOAD_METHOD_MODULE] = "LOAD_METHOD_MODULE", - [LOAD_METHOD_NO_DICT] = "LOAD_METHOD_NO_DICT", + [CLEANUP_THROW] = "CLEANUP_THROW", + [CALL_NO_KW_TYPE_1] = "CALL_NO_KW_TYPE_1", + [COMPARE_OP_FLOAT] = "COMPARE_OP_FLOAT", + [COMPARE_OP_INT] = "COMPARE_OP_INT", + [COMPARE_OP_STR] = "COMPARE_OP_STR", [STORE_SUBSCR] = "STORE_SUBSCR", [DELETE_SUBSCR] = "DELETE_SUBSCR", - [LOAD_METHOD_WITH_DICT] = "LOAD_METHOD_WITH_DICT", - [LOAD_METHOD_WITH_VALUES] = "LOAD_METHOD_WITH_VALUES", - [PRECALL_ADAPTIVE] = "PRECALL_ADAPTIVE", - [PRECALL_BOUND_METHOD] = "PRECALL_BOUND_METHOD", - [PRECALL_BUILTIN_CLASS] = "PRECALL_BUILTIN_CLASS", - [PRECALL_BUILTIN_FAST_WITH_KEYWORDS] = "PRECALL_BUILTIN_FAST_WITH_KEYWORDS", + [FOR_ITER_LIST] = "FOR_ITER_LIST", + [FOR_ITER_TUPLE] = "FOR_ITER_TUPLE", + [FOR_ITER_RANGE] = "FOR_ITER_RANGE", + [FOR_ITER_GEN] = "FOR_ITER_GEN", + [LOAD_SUPER_ATTR_ATTR] = "LOAD_SUPER_ATTR_ATTR", + [LOAD_SUPER_ATTR_METHOD] = "LOAD_SUPER_ATTR_METHOD", [GET_ITER] = "GET_ITER", [GET_YIELD_FROM_ITER] = "GET_YIELD_FROM_ITER", - [PRINT_EXPR] = "PRINT_EXPR", + [LOAD_ATTR_CLASS] = "LOAD_ATTR_CLASS", [LOAD_BUILD_CLASS] = "LOAD_BUILD_CLASS", - [PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS", - [PRECALL_NO_KW_BUILTIN_FAST] = "PRECALL_NO_KW_BUILTIN_FAST", + [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = "LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN", + [LOAD_ATTR_INSTANCE_VALUE] = "LOAD_ATTR_INSTANCE_VALUE", [LOAD_ASSERTION_ERROR] = "LOAD_ASSERTION_ERROR", [RETURN_GENERATOR] = "RETURN_GENERATOR", - [PRECALL_NO_KW_BUILTIN_O] = "PRECALL_NO_KW_BUILTIN_O", - [PRECALL_NO_KW_ISINSTANCE] = "PRECALL_NO_KW_ISINSTANCE", - [PRECALL_NO_KW_LEN] = "PRECALL_NO_KW_LEN", - [PRECALL_NO_KW_LIST_APPEND] = "PRECALL_NO_KW_LIST_APPEND", - [PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST] = "PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST", - [PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS] = "PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS", - [LIST_TO_TUPLE] = "LIST_TO_TUPLE", + [LOAD_ATTR_MODULE] = "LOAD_ATTR_MODULE", + [LOAD_ATTR_PROPERTY] = "LOAD_ATTR_PROPERTY", + [LOAD_ATTR_SLOT] = "LOAD_ATTR_SLOT", + [LOAD_ATTR_WITH_HINT] = "LOAD_ATTR_WITH_HINT", + [LOAD_ATTR_METHOD_LAZY_DICT] = "LOAD_ATTR_METHOD_LAZY_DICT", + [LOAD_ATTR_METHOD_NO_DICT] = "LOAD_ATTR_METHOD_NO_DICT", + [LOAD_ATTR_METHOD_WITH_VALUES] = "LOAD_ATTR_METHOD_WITH_VALUES", [RETURN_VALUE] = "RETURN_VALUE", - [IMPORT_STAR] = "IMPORT_STAR", + [LOAD_CONST__LOAD_FAST] = "LOAD_CONST__LOAD_FAST", [SETUP_ANNOTATIONS] = "SETUP_ANNOTATIONS", - [YIELD_VALUE] = "YIELD_VALUE", - [ASYNC_GEN_WRAP] = "ASYNC_GEN_WRAP", - [PREP_RERAISE_STAR] = "PREP_RERAISE_STAR", + [LOAD_FAST__LOAD_CONST] = "LOAD_FAST__LOAD_CONST", + [LOAD_LOCALS] = "LOAD_LOCALS", + [LOAD_FAST__LOAD_FAST] = "LOAD_FAST__LOAD_FAST", [POP_EXCEPT] = "POP_EXCEPT", [STORE_NAME] = "STORE_NAME", [DELETE_NAME] = "DELETE_NAME", @@ -350,25 +356,25 @@ static const char *const _PyOpcode_OpName[256] = { [IMPORT_NAME] = "IMPORT_NAME", [IMPORT_FROM] = "IMPORT_FROM", [JUMP_FORWARD] = "JUMP_FORWARD", - [JUMP_IF_FALSE_OR_POP] = "JUMP_IF_FALSE_OR_POP", - [JUMP_IF_TRUE_OR_POP] = "JUMP_IF_TRUE_OR_POP", - [PRECALL_NO_KW_METHOD_DESCRIPTOR_O] = "PRECALL_NO_KW_METHOD_DESCRIPTOR_O", - [POP_JUMP_FORWARD_IF_FALSE] = "POP_JUMP_FORWARD_IF_FALSE", - [POP_JUMP_FORWARD_IF_TRUE] = "POP_JUMP_FORWARD_IF_TRUE", + [LOAD_GLOBAL_BUILTIN] = "LOAD_GLOBAL_BUILTIN", + [LOAD_GLOBAL_MODULE] = "LOAD_GLOBAL_MODULE", + [STORE_ATTR_INSTANCE_VALUE] = "STORE_ATTR_INSTANCE_VALUE", + [POP_JUMP_IF_FALSE] = "POP_JUMP_IF_FALSE", + [POP_JUMP_IF_TRUE] = "POP_JUMP_IF_TRUE", [LOAD_GLOBAL] = "LOAD_GLOBAL", [IS_OP] = "IS_OP", [CONTAINS_OP] = "CONTAINS_OP", [RERAISE] = "RERAISE", [COPY] = "COPY", - [PRECALL_NO_KW_STR_1] = "PRECALL_NO_KW_STR_1", + [RETURN_CONST] = "RETURN_CONST", [BINARY_OP] = "BINARY_OP", [SEND] = "SEND", [LOAD_FAST] = "LOAD_FAST", [STORE_FAST] = "STORE_FAST", [DELETE_FAST] = "DELETE_FAST", - [PRECALL_NO_KW_TUPLE_1] = "PRECALL_NO_KW_TUPLE_1", - [POP_JUMP_FORWARD_IF_NOT_NONE] = "POP_JUMP_FORWARD_IF_NOT_NONE", - [POP_JUMP_FORWARD_IF_NONE] = "POP_JUMP_FORWARD_IF_NONE", + [LOAD_FAST_CHECK] = "LOAD_FAST_CHECK", + [POP_JUMP_IF_NOT_NONE] = "POP_JUMP_IF_NOT_NONE", + [POP_JUMP_IF_NONE] = "POP_JUMP_IF_NONE", [RAISE_VARARGS] = "RAISE_VARARGS", [GET_AWAITABLE] = "GET_AWAITABLE", [MAKE_FUNCTION] = "MAKE_FUNCTION", @@ -380,46 +386,46 @@ static const char *const _PyOpcode_OpName[256] = { [STORE_DEREF] = "STORE_DEREF", [DELETE_DEREF] = "DELETE_DEREF", [JUMP_BACKWARD] = "JUMP_BACKWARD", - [PRECALL_NO_KW_TYPE_1] = "PRECALL_NO_KW_TYPE_1", + [LOAD_SUPER_ATTR] = "LOAD_SUPER_ATTR", [CALL_FUNCTION_EX] = "CALL_FUNCTION_EX", - [PRECALL_PYFUNC] = "PRECALL_PYFUNC", + [LOAD_FAST_AND_CLEAR] = "LOAD_FAST_AND_CLEAR", [EXTENDED_ARG] = "EXTENDED_ARG", [LIST_APPEND] = "LIST_APPEND", [SET_ADD] = "SET_ADD", [MAP_ADD] = "MAP_ADD", - [LOAD_CLASSDEREF] = "LOAD_CLASSDEREF", + [STORE_ATTR_SLOT] = "STORE_ATTR_SLOT", [COPY_FREE_VARS] = "COPY_FREE_VARS", - [RESUME_QUICK] = "RESUME_QUICK", + [YIELD_VALUE] = "YIELD_VALUE", [RESUME] = "RESUME", [MATCH_CLASS] = "MATCH_CLASS", - [STORE_ATTR_ADAPTIVE] = "STORE_ATTR_ADAPTIVE", - [STORE_ATTR_INSTANCE_VALUE] = "STORE_ATTR_INSTANCE_VALUE", + [STORE_ATTR_WITH_HINT] = "STORE_ATTR_WITH_HINT", + [STORE_FAST__LOAD_FAST] = "STORE_FAST__LOAD_FAST", [FORMAT_VALUE] = "FORMAT_VALUE", [BUILD_CONST_KEY_MAP] = "BUILD_CONST_KEY_MAP", [BUILD_STRING] = "BUILD_STRING", - [STORE_ATTR_SLOT] = "STORE_ATTR_SLOT", - [STORE_ATTR_WITH_HINT] = "STORE_ATTR_WITH_HINT", - [LOAD_METHOD] = "LOAD_METHOD", - [STORE_FAST__LOAD_FAST] = "STORE_FAST__LOAD_FAST", + [STORE_FAST__STORE_FAST] = "STORE_FAST__STORE_FAST", + [STORE_SUBSCR_DICT] = "STORE_SUBSCR_DICT", + [STORE_SUBSCR_LIST_INT] = "STORE_SUBSCR_LIST_INT", + [UNPACK_SEQUENCE_LIST] = "UNPACK_SEQUENCE_LIST", [LIST_EXTEND] = "LIST_EXTEND", [SET_UPDATE] = "SET_UPDATE", [DICT_MERGE] = "DICT_MERGE", [DICT_UPDATE] = "DICT_UPDATE", - [PRECALL] = "PRECALL", - [STORE_FAST__STORE_FAST] = "STORE_FAST__STORE_FAST", - [STORE_SUBSCR_ADAPTIVE] = "STORE_SUBSCR_ADAPTIVE", - [STORE_SUBSCR_DICT] = "STORE_SUBSCR_DICT", - [STORE_SUBSCR_LIST_INT] = "STORE_SUBSCR_LIST_INT", - [CALL] = "CALL", - [KW_NAMES] = "KW_NAMES", - [POP_JUMP_BACKWARD_IF_NOT_NONE] = "POP_JUMP_BACKWARD_IF_NOT_NONE", - [POP_JUMP_BACKWARD_IF_NONE] = "POP_JUMP_BACKWARD_IF_NONE", - [POP_JUMP_BACKWARD_IF_FALSE] = "POP_JUMP_BACKWARD_IF_FALSE", - [POP_JUMP_BACKWARD_IF_TRUE] = "POP_JUMP_BACKWARD_IF_TRUE", - [UNPACK_SEQUENCE_ADAPTIVE] = "UNPACK_SEQUENCE_ADAPTIVE", - [UNPACK_SEQUENCE_LIST] = "UNPACK_SEQUENCE_LIST", [UNPACK_SEQUENCE_TUPLE] = "UNPACK_SEQUENCE_TUPLE", [UNPACK_SEQUENCE_TWO_TUPLE] = "UNPACK_SEQUENCE_TWO_TUPLE", + [SEND_GEN] = "SEND_GEN", + [169] = "<169>", + [170] = "<170>", + [CALL] = "CALL", + [KW_NAMES] = "KW_NAMES", + [CALL_INTRINSIC_1] = "CALL_INTRINSIC_1", + [CALL_INTRINSIC_2] = "CALL_INTRINSIC_2", + [LOAD_FROM_DICT_OR_GLOBALS] = "LOAD_FROM_DICT_OR_GLOBALS", + [LOAD_FROM_DICT_OR_DEREF] = "LOAD_FROM_DICT_OR_DEREF", + [177] = "<177>", + [178] = "<178>", + [179] = "<179>", + [180] = "<180>", [181] = "<181>", [182] = "<182>", [183] = "<183>", @@ -476,29 +482,46 @@ static const char *const _PyOpcode_OpName[256] = { [234] = "<234>", [235] = "<235>", [236] = "<236>", - [237] = "<237>", - [238] = "<238>", - [239] = "<239>", - [240] = "<240>", - [241] = "<241>", - [242] = "<242>", - [243] = "<243>", - [244] = "<244>", - [245] = "<245>", - [246] = "<246>", - [247] = "<247>", - [248] = "<248>", - [249] = "<249>", - [250] = "<250>", - [251] = "<251>", - [252] = "<252>", - [253] = "<253>", - [254] = "<254>", - [DO_TRACING] = "DO_TRACING", + [INSTRUMENTED_LOAD_SUPER_ATTR] = "INSTRUMENTED_LOAD_SUPER_ATTR", + [INSTRUMENTED_POP_JUMP_IF_NONE] = "INSTRUMENTED_POP_JUMP_IF_NONE", + [INSTRUMENTED_POP_JUMP_IF_NOT_NONE] = "INSTRUMENTED_POP_JUMP_IF_NOT_NONE", + [INSTRUMENTED_RESUME] = "INSTRUMENTED_RESUME", + [INSTRUMENTED_CALL] = "INSTRUMENTED_CALL", + [INSTRUMENTED_RETURN_VALUE] = "INSTRUMENTED_RETURN_VALUE", + [INSTRUMENTED_YIELD_VALUE] = "INSTRUMENTED_YIELD_VALUE", + [INSTRUMENTED_CALL_FUNCTION_EX] = "INSTRUMENTED_CALL_FUNCTION_EX", + [INSTRUMENTED_JUMP_FORWARD] = "INSTRUMENTED_JUMP_FORWARD", + [INSTRUMENTED_JUMP_BACKWARD] = "INSTRUMENTED_JUMP_BACKWARD", + [INSTRUMENTED_RETURN_CONST] = "INSTRUMENTED_RETURN_CONST", + [INSTRUMENTED_FOR_ITER] = "INSTRUMENTED_FOR_ITER", + [INSTRUMENTED_POP_JUMP_IF_FALSE] = "INSTRUMENTED_POP_JUMP_IF_FALSE", + [INSTRUMENTED_POP_JUMP_IF_TRUE] = "INSTRUMENTED_POP_JUMP_IF_TRUE", + [INSTRUMENTED_END_FOR] = "INSTRUMENTED_END_FOR", + [INSTRUMENTED_END_SEND] = "INSTRUMENTED_END_SEND", + [INSTRUMENTED_INSTRUCTION] = "INSTRUMENTED_INSTRUCTION", + [INSTRUMENTED_LINE] = "INSTRUMENTED_LINE", + [255] = "<255>", + [SETUP_FINALLY] = "SETUP_FINALLY", + [SETUP_CLEANUP] = "SETUP_CLEANUP", + [SETUP_WITH] = "SETUP_WITH", + [POP_BLOCK] = "POP_BLOCK", + [JUMP] = "JUMP", + [JUMP_NO_INTERRUPT] = "JUMP_NO_INTERRUPT", + [LOAD_METHOD] = "LOAD_METHOD", + [LOAD_SUPER_METHOD] = "LOAD_SUPER_METHOD", + [LOAD_ZERO_SUPER_METHOD] = "LOAD_ZERO_SUPER_METHOD", + [LOAD_ZERO_SUPER_ATTR] = "LOAD_ZERO_SUPER_ATTR", + [STORE_FAST_MAYBE_NULL] = "STORE_FAST_MAYBE_NULL", }; #endif #define EXTRA_CASES \ + case 169: \ + case 170: \ + case 177: \ + case 178: \ + case 179: \ + case 180: \ case 181: \ case 182: \ case 183: \ @@ -555,24 +578,7 @@ static const char *const _PyOpcode_OpName[256] = { case 234: \ case 235: \ case 236: \ - case 237: \ - case 238: \ - case 239: \ - case 240: \ - case 241: \ - case 242: \ - case 243: \ - case 244: \ - case 245: \ - case 246: \ - case 247: \ - case 248: \ - case 249: \ - case 250: \ - case 251: \ - case 252: \ - case 253: \ - case 254: \ + case 255: \ ; #ifdef __cplusplus diff --git a/src/external/windows/include/python/internal/pycore_opcode_utils.h b/src/external/windows/include/python/internal/pycore_opcode_utils.h new file mode 100644 index 00000000..1386724c --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_opcode_utils.h @@ -0,0 +1,92 @@ +#ifndef Py_INTERNAL_OPCODE_UTILS_H +#define Py_INTERNAL_OPCODE_UTILS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_opcode.h" // _PyOpcode_Jump + + +#define MAX_REAL_OPCODE 254 + +#define IS_WITHIN_OPCODE_RANGE(opcode) \ + (((opcode) >= 0 && (opcode) <= MAX_REAL_OPCODE) || \ + IS_PSEUDO_OPCODE(opcode)) + +#define IS_JUMP_OPCODE(opcode) \ + is_bit_set_in_table(_PyOpcode_Jump, opcode) + +#define IS_BLOCK_PUSH_OPCODE(opcode) \ + ((opcode) == SETUP_FINALLY || \ + (opcode) == SETUP_WITH || \ + (opcode) == SETUP_CLEANUP) + +#define HAS_TARGET(opcode) \ + (IS_JUMP_OPCODE(opcode) || IS_BLOCK_PUSH_OPCODE(opcode)) + +/* opcodes that must be last in the basicblock */ +#define IS_TERMINATOR_OPCODE(opcode) \ + (IS_JUMP_OPCODE(opcode) || IS_SCOPE_EXIT_OPCODE(opcode)) + +/* opcodes which are not emitted in codegen stage, only by the assembler */ +#define IS_ASSEMBLER_OPCODE(opcode) \ + ((opcode) == JUMP_FORWARD || \ + (opcode) == JUMP_BACKWARD || \ + (opcode) == JUMP_BACKWARD_NO_INTERRUPT) + +#define IS_BACKWARDS_JUMP_OPCODE(opcode) \ + ((opcode) == JUMP_BACKWARD || \ + (opcode) == JUMP_BACKWARD_NO_INTERRUPT) + +#define IS_UNCONDITIONAL_JUMP_OPCODE(opcode) \ + ((opcode) == JUMP || \ + (opcode) == JUMP_NO_INTERRUPT || \ + (opcode) == JUMP_FORWARD || \ + (opcode) == JUMP_BACKWARD || \ + (opcode) == JUMP_BACKWARD_NO_INTERRUPT) + +#define IS_SCOPE_EXIT_OPCODE(opcode) \ + ((opcode) == RETURN_VALUE || \ + (opcode) == RETURN_CONST || \ + (opcode) == RAISE_VARARGS || \ + (opcode) == RERAISE) + +#define IS_SUPERINSTRUCTION_OPCODE(opcode) \ + ((opcode) == LOAD_FAST__LOAD_FAST || \ + (opcode) == LOAD_FAST__LOAD_CONST || \ + (opcode) == LOAD_CONST__LOAD_FAST || \ + (opcode) == STORE_FAST__LOAD_FAST || \ + (opcode) == STORE_FAST__STORE_FAST) + + +#define LOG_BITS_PER_INT 5 +#define MASK_LOW_LOG_BITS 31 + +static inline int +is_bit_set_in_table(const uint32_t *table, int bitindex) { + /* Is the relevant bit set in the relevant word? */ + /* 512 bits fit into 9 32-bits words. + * Word is indexed by (bitindex>>ln(size of int in bits)). + * Bit within word is the low bits of bitindex. + */ + if (bitindex >= 0 && bitindex < 512) { + uint32_t word = table[bitindex >> LOG_BITS_PER_INT]; + return (word >> (bitindex & MASK_LOW_LOG_BITS)) & 1; + } + else { + return 0; + } +} + +#undef LOG_BITS_PER_INT +#undef MASK_LOW_LOG_BITS + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_OPCODE_UTILS_H */ diff --git a/src/external/windows/include/python/internal/pycore_parser.h b/src/external/windows/include/python/internal/pycore_parser.h index 20bffe99..684dca2c 100755 --- a/src/external/windows/include/python/internal/pycore_parser.h +++ b/src/external/windows/include/python/internal/pycore_parser.h @@ -8,12 +8,46 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif + +#include "pycore_ast.h" // struct _expr +#include "pycore_global_strings.h" // _Py_DECLARE_STR() +#include "pycore_pyarena.h" // PyArena + + +#ifdef Py_DEBUG +#define _PYPEGEN_NSTATISTICS 2000 +#endif + +struct _parser_runtime_state { +#ifdef Py_DEBUG + long memo_statistics[_PYPEGEN_NSTATISTICS]; +#else + int _not_used; +#endif + struct _expr dummy_name; +}; + +_Py_DECLARE_STR(empty, "") +#define _parser_runtime_state_INIT \ + { \ + .dummy_name = { \ + .kind = Name_kind, \ + .v.Name.id = &_Py_STR(empty), \ + .v.Name.ctx = Load, \ + .lineno = 1, \ + .col_offset = 0, \ + .end_lineno = 1, \ + .end_col_offset = 0, \ + }, \ + } + extern struct _mod* _PyParser_ASTFromString( const char *str, PyObject* filename, int mode, PyCompilerFlags *flags, PyArena *arena); + extern struct _mod* _PyParser_ASTFromFile( FILE *fp, PyObject *filename_ob, @@ -25,6 +59,7 @@ extern struct _mod* _PyParser_ASTFromFile( int *errcode, PyArena *arena); + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/internal/pycore_pyerrors.h b/src/external/windows/include/python/internal/pycore_pyerrors.h index 5bb24c5c..1fa0a1a8 100755 --- a/src/external/windows/include/python/internal/pycore_pyerrors.h +++ b/src/external/windows/include/python/internal/pycore_pyerrors.h @@ -20,7 +20,10 @@ extern void _PyErr_FiniTypes(PyInterpreterState *); static inline PyObject* _PyErr_Occurred(PyThreadState *tstate) { assert(tstate != NULL); - return tstate->curexc_type; + if (tstate->current_exception == NULL) { + return NULL; + } + return (PyObject *)Py_TYPE(tstate->current_exception); } static inline void _PyErr_ClearExcState(_PyErr_StackItem *exc_state) @@ -37,10 +40,16 @@ PyAPI_FUNC(void) _PyErr_Fetch( PyObject **value, PyObject **traceback); +extern PyObject * +_PyErr_GetRaisedException(PyThreadState *tstate); + PyAPI_FUNC(int) _PyErr_ExceptionMatches( PyThreadState *tstate, PyObject *exc); +void +_PyErr_SetRaisedException(PyThreadState *tstate, PyObject *exc); + PyAPI_FUNC(void) _PyErr_Restore( PyThreadState *tstate, PyObject *type, @@ -100,6 +109,8 @@ extern PyObject* _Py_Offer_Suggestions(PyObject* exception); PyAPI_FUNC(Py_ssize_t) _Py_UTF8_Edit_Cost(PyObject *str_a, PyObject *str_b, Py_ssize_t max_cost); +void _PyErr_FormatNote(const char *format, ...); + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/internal/pycore_pyhash.h b/src/external/windows/include/python/internal/pycore_pyhash.h index 53d44d90..60579580 100755 --- a/src/external/windows/include/python/internal/pycore_pyhash.h +++ b/src/external/windows/include/python/internal/pycore_pyhash.h @@ -5,6 +5,36 @@ # error "this header requires Py_BUILD_CORE define" #endif + +struct pyhash_runtime_state { + struct { +#ifndef MS_WINDOWS + int fd; + dev_t st_dev; + ino_t st_ino; +#else + // This is a placeholder so the struct isn't empty on Windows. + int _not_used; +#endif + } urandom_cache; +}; + +#ifndef MS_WINDOWS +# define _py_urandom_cache_INIT \ + { \ + .fd = -1, \ + } +#else +# define _py_urandom_cache_INIT {0} +#endif + +#define pyhash_state_INIT \ + { \ + .urandom_cache = _py_urandom_cache_INIT, \ + } + + uint64_t _Py_KeyedHash(uint64_t, const char *, Py_ssize_t); -#endif + +#endif // Py_INTERNAL_HASH_H diff --git a/src/external/windows/include/python/internal/pycore_pylifecycle.h b/src/external/windows/include/python/internal/pycore_pylifecycle.h index f08ae599..bbf08f3b 100755 --- a/src/external/windows/include/python/internal/pycore_pylifecycle.h +++ b/src/external/windows/include/python/internal/pycore_pylifecycle.h @@ -14,10 +14,6 @@ extern "C" { struct _PyArgv; struct pyruntimestate; -/* True if the main interpreter thread exited due to an unhandled - * KeyboardInterrupt exception, suggesting the user pressed ^C. */ -PyAPI_DATA(int) _Py_UnhandledKeyboardInterrupt; - extern int _Py_SetFileSystemEncoding( const char *encoding, const char *errors); @@ -33,8 +29,8 @@ PyAPI_FUNC(int) _Py_IsLocaleCoercionTarget(const char *ctype_loc); /* Various one-time initializers */ +extern void _Py_InitVersion(void); extern PyStatus _PyFaulthandler_Init(int enable); -extern int _PyTraceMalloc_Init(int enable); extern PyObject * _PyBuiltin_Init(PyInterpreterState *interp); extern PyStatus _PySys_Create( PyThreadState *tstate, @@ -42,11 +38,11 @@ extern PyStatus _PySys_Create( extern PyStatus _PySys_ReadPreinitWarnOptions(PyWideStringList *options); extern PyStatus _PySys_ReadPreinitXOptions(PyConfig *config); extern int _PySys_UpdateConfig(PyThreadState *tstate); -extern void _PySys_Fini(PyInterpreterState *interp); +extern void _PySys_FiniTypes(PyInterpreterState *interp); extern int _PyBuiltins_AddExceptions(PyObject * bltinmod); extern PyStatus _Py_HashRandomization_Init(const PyConfig *); -extern PyStatus _PyImportZip_Init(PyThreadState *tstate); +extern PyStatus _PyTime_Init(void); extern PyStatus _PyGC_Init(PyInterpreterState *interp); extern PyStatus _PyAtExit_Init(PyInterpreterState *interp); extern int _Py_Deepfreeze_Init(void); @@ -56,8 +52,6 @@ extern int _Py_Deepfreeze_Init(void); extern int _PySignal_Init(int install_signal_handlers); extern void _PySignal_Fini(void); -extern void _PyImport_Fini(void); -extern void _PyImport_Fini2(void); extern void _PyGC_Fini(PyInterpreterState *interp); extern void _Py_HashRandomization_Fini(void); extern void _PyFaulthandler_Fini(void); @@ -69,8 +63,9 @@ extern void _PyAtExit_Fini(PyInterpreterState *interp); extern void _PyThread_FiniType(PyInterpreterState *interp); extern void _Py_Deepfreeze_Fini(void); extern void _PyArg_Fini(void); +extern void _Py_FinalizeAllocatedBlocks(_PyRuntimeState *); -extern PyStatus _PyGILState_Init(_PyRuntimeState *runtime); +extern PyStatus _PyGILState_Init(PyInterpreterState *interp); extern PyStatus _PyGILState_SetTstate(PyThreadState *tstate); extern void _PyGILState_Fini(PyInterpreterState *interp); @@ -92,6 +87,7 @@ PyAPI_FUNC(PyObject*) _PyErr_WriteUnraisableDefaultHook(PyObject *unraisable); PyAPI_FUNC(void) _PyErr_Print(PyThreadState *tstate); PyAPI_FUNC(void) _PyErr_Display(PyObject *file, PyObject *exception, PyObject *value, PyObject *tb); +PyAPI_FUNC(void) _PyErr_DisplayException(PyObject *file, PyObject *exc); PyAPI_FUNC(void) _PyThreadState_DeleteCurrent(PyThreadState *tstate); diff --git a/src/external/windows/include/python/internal/pycore_pymath.h b/src/external/windows/include/python/internal/pycore_pymath.h index 0d2104f3..e37b5f6c 100644 --- a/src/external/windows/include/python/internal/pycore_pymath.h +++ b/src/external/windows/include/python/internal/pycore_pymath.h @@ -56,25 +56,6 @@ static inline void _Py_ADJUST_ERANGE2(double x, double y) } } -// Return whether integral type *type* is signed or not. -#define _Py_IntegralTypeSigned(type) \ - ((type)(-1) < 0) - -// Return the maximum value of integral type *type*. -#define _Py_IntegralTypeMax(type) \ - ((_Py_IntegralTypeSigned(type)) ? (((((type)1 << (sizeof(type)*CHAR_BIT - 2)) - 1) << 1) + 1) : ~(type)0) - -// Return the minimum value of integral type *type*. -#define _Py_IntegralTypeMin(type) \ - ((_Py_IntegralTypeSigned(type)) ? -_Py_IntegralTypeMax(type) - 1 : 0) - -// Check whether *v* is in the range of integral type *type*. This is most -// useful if *v* is floating-point, since demoting a floating-point *v* to an -// integral type that cannot represent *v*'s integral part is undefined -// behavior. -#define _Py_InIntegralTypeRange(type, v) \ - (_Py_IntegralTypeMin(type) <= v && v <= _Py_IntegralTypeMax(type)) - //--- HAVE_PY_SET_53BIT_PRECISION macro ------------------------------------ // diff --git a/src/external/windows/include/python/internal/pycore_pymem.h b/src/external/windows/include/python/internal/pycore_pymem.h index 73fbb4f7..a711213b 100755 --- a/src/external/windows/include/python/internal/pycore_pymem.h +++ b/src/external/windows/include/python/internal/pycore_pymem.h @@ -11,6 +11,28 @@ extern "C" { #include "pymem.h" // PyMemAllocatorName +typedef struct { + /* We tag each block with an API ID in order to tag API violations */ + char api_id; + PyMemAllocatorEx alloc; +} debug_alloc_api_t; + +struct _pymem_allocators { + PyThread_type_lock mutex; + struct { + PyMemAllocatorEx raw; + PyMemAllocatorEx mem; + PyMemAllocatorEx obj; + } standard; + struct { + debug_alloc_api_t raw; + debug_alloc_api_t mem; + debug_alloc_api_t obj; + } debug; + PyObjectArenaAllocator obj_arena; +}; + + /* Set the memory allocator of the specified domain to the default. Save the old allocator into *old_alloc if it's non-NULL. Return on success, or return -1 if the domain is unknown. */ @@ -69,46 +91,8 @@ PyAPI_FUNC(int) _PyMem_GetAllocatorName( PYMEM_ALLOCATOR_NOT_SET does nothing. */ PyAPI_FUNC(int) _PyMem_SetupAllocators(PyMemAllocatorName allocator); -struct _PyTraceMalloc_Config { - /* Module initialized? - Variable protected by the GIL */ - enum { - TRACEMALLOC_NOT_INITIALIZED, - TRACEMALLOC_INITIALIZED, - TRACEMALLOC_FINALIZED - } initialized; - - /* Is tracemalloc tracing memory allocations? - Variable protected by the GIL */ - int tracing; - - /* limit of the number of frames in a traceback, 1 by default. - Variable protected by the GIL. */ - int max_nframe; -}; - -#define _PyTraceMalloc_Config_INIT \ - {.initialized = TRACEMALLOC_NOT_INITIALIZED, \ - .tracing = 0, \ - .max_nframe = 1} - -PyAPI_DATA(struct _PyTraceMalloc_Config) _Py_tracemalloc_config; - -/* Allocate memory directly from the O/S virtual memory system, - * where supported. Otherwise fallback on malloc */ -void *_PyObject_VirtualAlloc(size_t size); -void _PyObject_VirtualFree(void *, size_t size); - -/* This function returns the number of allocated memory blocks, regardless of size */ -PyAPI_FUNC(Py_ssize_t) _Py_GetAllocatedBlocks(void); - -/* Macros */ -#ifdef WITH_PYMALLOC -// Export the symbol for the 3rd party guppy3 project -PyAPI_FUNC(int) _PyObject_DebugMallocStats(FILE *out); -#endif #ifdef __cplusplus } #endif -#endif // !Py_INTERNAL_PYMEM_H +#endif /* !Py_INTERNAL_PYMEM_H */ diff --git a/src/external/windows/include/python/internal/pycore_pymem_init.h b/src/external/windows/include/python/internal/pycore_pymem_init.h new file mode 100644 index 00000000..65bd6ede --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_pymem_init.h @@ -0,0 +1,85 @@ +#ifndef Py_INTERNAL_PYMEM_INIT_H +#define Py_INTERNAL_PYMEM_INIT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_pymem.h" + + +/********************************/ +/* the allocators' initializers */ + +extern void * _PyMem_RawMalloc(void *, size_t); +extern void * _PyMem_RawCalloc(void *, size_t, size_t); +extern void * _PyMem_RawRealloc(void *, void *, size_t); +extern void _PyMem_RawFree(void *, void *); +#define PYRAW_ALLOC {NULL, _PyMem_RawMalloc, _PyMem_RawCalloc, _PyMem_RawRealloc, _PyMem_RawFree} + +#ifdef WITH_PYMALLOC +extern void* _PyObject_Malloc(void *, size_t); +extern void* _PyObject_Calloc(void *, size_t, size_t); +extern void _PyObject_Free(void *, void *); +extern void* _PyObject_Realloc(void *, void *, size_t); +# define PYOBJ_ALLOC {NULL, _PyObject_Malloc, _PyObject_Calloc, _PyObject_Realloc, _PyObject_Free} +#else +# define PYOBJ_ALLOC PYRAW_ALLOC +#endif // WITH_PYMALLOC + +#define PYMEM_ALLOC PYOBJ_ALLOC + +extern void* _PyMem_DebugRawMalloc(void *, size_t); +extern void* _PyMem_DebugRawCalloc(void *, size_t, size_t); +extern void* _PyMem_DebugRawRealloc(void *, void *, size_t); +extern void _PyMem_DebugRawFree(void *, void *); + +extern void* _PyMem_DebugMalloc(void *, size_t); +extern void* _PyMem_DebugCalloc(void *, size_t, size_t); +extern void* _PyMem_DebugRealloc(void *, void *, size_t); +extern void _PyMem_DebugFree(void *, void *); + +#define PYDBGRAW_ALLOC(runtime) \ + {&(runtime).allocators.debug.raw, _PyMem_DebugRawMalloc, _PyMem_DebugRawCalloc, _PyMem_DebugRawRealloc, _PyMem_DebugRawFree} +#define PYDBGMEM_ALLOC(runtime) \ + {&(runtime).allocators.debug.mem, _PyMem_DebugMalloc, _PyMem_DebugCalloc, _PyMem_DebugRealloc, _PyMem_DebugFree} +#define PYDBGOBJ_ALLOC(runtime) \ + {&(runtime).allocators.debug.obj, _PyMem_DebugMalloc, _PyMem_DebugCalloc, _PyMem_DebugRealloc, _PyMem_DebugFree} + +extern void * _PyMem_ArenaAlloc(void *, size_t); +extern void _PyMem_ArenaFree(void *, void *, size_t); + +#ifdef Py_DEBUG +# define _pymem_allocators_standard_INIT(runtime) \ + { \ + PYDBGRAW_ALLOC(runtime), \ + PYDBGMEM_ALLOC(runtime), \ + PYDBGOBJ_ALLOC(runtime), \ + } +#else +# define _pymem_allocators_standard_INIT(runtime) \ + { \ + PYRAW_ALLOC, \ + PYMEM_ALLOC, \ + PYOBJ_ALLOC, \ + } +#endif + +#define _pymem_allocators_debug_INIT \ + { \ + {'r', PYRAW_ALLOC}, \ + {'m', PYMEM_ALLOC}, \ + {'o', PYOBJ_ALLOC}, \ + } + +# define _pymem_allocators_obj_arena_INIT \ + { NULL, _PyMem_ArenaAlloc, _PyMem_ArenaFree } + + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_PYMEM_INIT_H diff --git a/src/external/windows/include/python/internal/pycore_pystate.h b/src/external/windows/include/python/internal/pycore_pystate.h index 6f4361b5..4794c50d 100755 --- a/src/external/windows/include/python/internal/pycore_pystate.h +++ b/src/external/windows/include/python/internal/pycore_pystate.h @@ -33,6 +33,22 @@ _Py_IsMainInterpreter(PyInterpreterState *interp) return (interp == _PyInterpreterState_Main()); } +static inline int +_Py_IsMainInterpreterFinalizing(PyInterpreterState *interp) +{ + /* bpo-39877: Access _PyRuntime directly rather than using + tstate->interp->runtime to support calls from Python daemon threads. + After Py_Finalize() has been called, tstate can be a dangling pointer: + point to PyThreadState freed memory. */ + return (_PyRuntimeState_GetFinalizing(&_PyRuntime) != NULL && + interp == &_PyRuntime._main_interpreter); +} + +// Export for _xxsubinterpreters module. +PyAPI_FUNC(int) _PyInterpreterState_SetRunningMain(PyInterpreterState *); +PyAPI_FUNC(void) _PyInterpreterState_SetNotRunningMain(PyInterpreterState *); +PyAPI_FUNC(int) _PyInterpreterState_IsRunningMain(PyInterpreterState *); + static inline const PyConfig * _Py_GetMainConfig(void) @@ -53,28 +69,23 @@ _Py_ThreadCanHandleSignals(PyInterpreterState *interp) } -/* Only execute pending calls on the main thread. */ -static inline int -_Py_ThreadCanHandlePendingCalls(void) -{ - return _Py_IsMainThread(); -} - - -/* Variable and macro for in-line access to current thread +/* Variable and static inline functions for in-line access to current thread and interpreter state */ -static inline PyThreadState* -_PyRuntimeState_GetThreadState(_PyRuntimeState *runtime) -{ - return (PyThreadState*)_Py_atomic_load_relaxed(&runtime->gilstate.tstate_current); -} +#if defined(HAVE_THREAD_LOCAL) && !defined(Py_BUILD_CORE_MODULE) +extern _Py_thread_local PyThreadState *_Py_tss_tstate; +#endif +PyAPI_DATA(PyThreadState *) _PyThreadState_GetCurrent(void); + +#ifndef NDEBUG +extern int _PyThreadState_CheckConsistency(PyThreadState *tstate); +#endif + +extern int _PyThreadState_MustExit(PyThreadState *tstate); /* Get the current Python thread state. - Efficient macro reading directly the 'gilstate.tstate_current' atomic - variable. The macro is unsafe: it does not check for error and it can - return NULL. + This function is unsafe: it does not check for error and it can return NULL. The caller must hold the GIL. @@ -82,27 +93,33 @@ _PyRuntimeState_GetThreadState(_PyRuntimeState *runtime) static inline PyThreadState* _PyThreadState_GET(void) { - return _PyRuntimeState_GetThreadState(&_PyRuntime); +#if defined(HAVE_THREAD_LOCAL) && !defined(Py_BUILD_CORE_MODULE) + return _Py_tss_tstate; +#else + return _PyThreadState_GetCurrent(); +#endif } -PyAPI_FUNC(void) _Py_NO_RETURN _Py_FatalError_TstateNULL(const char *func); static inline void _Py_EnsureFuncTstateNotNULL(const char *func, PyThreadState *tstate) { if (tstate == NULL) { - _Py_FatalError_TstateNULL(func); + _Py_FatalErrorFunc(func, + "the function must be called with the GIL held, " + "after Python initialization and before Python finalization, " + "but the GIL is released (the current Python thread state is NULL)"); } } // Call Py_FatalError() if tstate is NULL #define _Py_EnsureTstateNotNULL(tstate) \ - _Py_EnsureFuncTstateNotNULL(__func__, tstate) + _Py_EnsureFuncTstateNotNULL(__func__, (tstate)) /* Get the current interpreter state. - The macro is unsafe: it does not check for error and it can return NULL. + The function is unsafe: it does not check for error and it can return NULL. The caller must hold the GIL. @@ -119,39 +136,29 @@ static inline PyInterpreterState* _PyInterpreterState_GET(void) { // PyThreadState functions -PyAPI_FUNC(void) _PyThreadState_SetCurrent(PyThreadState *tstate); +PyAPI_FUNC(PyThreadState *) _PyThreadState_New(PyInterpreterState *interp); +PyAPI_FUNC(void) _PyThreadState_Bind(PyThreadState *tstate); // We keep this around exclusively for stable ABI compatibility. PyAPI_FUNC(void) _PyThreadState_Init( PyThreadState *tstate); -PyAPI_FUNC(void) _PyThreadState_DeleteExcept( - _PyRuntimeState *runtime, - PyThreadState *tstate); - - -static inline void -_PyThreadState_UpdateTracingState(PyThreadState *tstate) -{ - bool use_tracing = - (tstate->tracing == 0) && - (tstate->c_tracefunc != NULL || tstate->c_profilefunc != NULL); - tstate->cframe->use_tracing = (use_tracing ? 255 : 0); -} +PyAPI_FUNC(void) _PyThreadState_DeleteExcept(PyThreadState *tstate); /* Other */ PyAPI_FUNC(PyThreadState *) _PyThreadState_Swap( - struct _gilstate_runtime_state *gilstate, + _PyRuntimeState *runtime, PyThreadState *newts); PyAPI_FUNC(PyStatus) _PyInterpreterState_Enable(_PyRuntimeState *runtime); #ifdef HAVE_FORK extern PyStatus _PyInterpreterState_DeleteExceptMain(_PyRuntimeState *runtime); -extern PyStatus _PyGILState_Reinit(_PyRuntimeState *runtime); extern void _PySignal_AfterFork(void); #endif +PyAPI_FUNC(int) _PyCrossInterpreterData_ReleaseAndRawFree(_PyCrossInterpreterData *); + PyAPI_FUNC(int) _PyState_AddModule( PyThreadState *tstate, @@ -161,6 +168,12 @@ PyAPI_FUNC(int) _PyState_AddModule( PyAPI_FUNC(int) _PyOS_InterruptOccurred(PyThreadState *tstate); +#define HEAD_LOCK(runtime) \ + PyThread_acquire_lock((runtime)->interpreters.mutex, WAIT_LOCK) +#define HEAD_UNLOCK(runtime) \ + PyThread_release_lock((runtime)->interpreters.mutex) + + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/internal/pycore_pythread.h b/src/external/windows/include/python/internal/pycore_pythread.h new file mode 100644 index 00000000..05f9c3a7 --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_pythread.h @@ -0,0 +1,81 @@ +#ifndef Py_INTERNAL_PYTHREAD_H +#define Py_INTERNAL_PYTHREAD_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +#ifndef _POSIX_THREADS +/* This means pthreads are not implemented in libc headers, hence the macro + not present in unistd.h. But they still can be implemented as an external + library (e.g. gnu pth in pthread emulation) */ +# ifdef HAVE_PTHREAD_H +# include /* _POSIX_THREADS */ +# endif +# ifndef _POSIX_THREADS +/* Check if we're running on HP-UX and _SC_THREADS is defined. If so, then + enough of the Posix threads package is implemented to support python + threads. + + This is valid for HP-UX 11.23 running on an ia64 system. If needed, add + a check of __ia64 to verify that we're running on an ia64 system instead + of a pa-risc system. +*/ +# ifdef __hpux +# ifdef _SC_THREADS +# define _POSIX_THREADS +# endif +# endif +# endif /* _POSIX_THREADS */ +#endif /* _POSIX_THREADS */ + +#if defined(_POSIX_THREADS) || defined(HAVE_PTHREAD_STUBS) +# define _USE_PTHREADS +#endif + +#if defined(_USE_PTHREADS) && defined(HAVE_PTHREAD_CONDATTR_SETCLOCK) && defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) +// monotonic is supported statically. It doesn't mean it works on runtime. +# define CONDATTR_MONOTONIC +#endif + + +#if defined(HAVE_PTHREAD_STUBS) +// pthread_key +struct py_stub_tls_entry { + bool in_use; + void *value; +}; +#endif + +struct _pythread_runtime_state { + int initialized; + +#ifdef _USE_PTHREADS + // This matches when thread_pthread.h is used. + struct { + /* NULL when pthread_condattr_setclock(CLOCK_MONOTONIC) is not supported. */ + pthread_condattr_t *ptr; +# ifdef CONDATTR_MONOTONIC + /* The value to which condattr_monotonic is set. */ + pthread_condattr_t val; +# endif + } _condattr_monotonic; + +#endif // USE_PTHREADS + +#if defined(HAVE_PTHREAD_STUBS) + struct { + struct py_stub_tls_entry tls_entries[PTHREAD_KEYS_MAX]; + } stubs; +#endif +}; + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_PYTHREAD_H */ diff --git a/src/external/windows/include/python/internal/pycore_range.h b/src/external/windows/include/python/internal/pycore_range.h new file mode 100644 index 00000000..15a7d117 --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_range.h @@ -0,0 +1,21 @@ +#ifndef Py_INTERNAL_RANGE_H +#define Py_INTERNAL_RANGE_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +typedef struct { + PyObject_HEAD + long start; + long step; + long len; +} _PyRangeIterObject; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_RANGE_H */ diff --git a/src/external/windows/include/python/internal/pycore_runtime.h b/src/external/windows/include/python/internal/pycore_runtime.h index 6cab63be..0dd7c621 100755 --- a/src/external/windows/include/python/internal/pycore_runtime.h +++ b/src/external/windows/include/python/internal/pycore_runtime.h @@ -8,22 +8,28 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif +#include "pycore_atexit.h" // struct atexit_runtime_state #include "pycore_atomic.h" /* _Py_atomic_address */ -#include "pycore_gil.h" // struct _gil_runtime_state +#include "pycore_ceval_state.h" // struct _ceval_runtime_state +#include "pycore_floatobject.h" // struct _Py_float_runtime_state +#include "pycore_faulthandler.h" // struct _faulthandler_runtime_state #include "pycore_global_objects.h" // struct _Py_global_objects +#include "pycore_import.h" // struct _import_runtime_state #include "pycore_interp.h" // PyInterpreterState +#include "pycore_object_state.h" // struct _py_object_runtime_state +#include "pycore_parser.h" // struct _parser_runtime_state +#include "pycore_pymem.h" // struct _pymem_allocators +#include "pycore_pyhash.h" // struct pyhash_runtime_state +#include "pycore_pythread.h" // struct _pythread_runtime_state +#include "pycore_signal.h" // struct _signals_runtime_state +#include "pycore_time.h" // struct _time_runtime_state +#include "pycore_tracemalloc.h" // struct _tracemalloc_runtime_state +#include "pycore_typeobject.h" // struct types_runtime_state #include "pycore_unicodeobject.h" // struct _Py_unicode_runtime_ids - -/* ceval state */ - -struct _ceval_runtime_state { - /* Request for checking signals. It is shared by all interpreters (see - bpo-40513). Any thread of any interpreter can receive a signal, but only - the main thread of the main interpreter can handle signals: see - _Py_ThreadCanHandleSignals(). */ - _Py_atomic_int signals_pending; - struct _gil_runtime_state gil; +struct _getargs_runtime_state { + PyThread_type_lock mutex; + struct _PyArg_Parser *static_parsers; }; /* GIL state */ @@ -32,15 +38,11 @@ struct _gilstate_runtime_state { /* bpo-26558: Flag to disable PyGILState_Check(). If set to non-zero, PyGILState_Check() always return 1. */ int check_enabled; - /* Assuming the current thread holds the GIL, this is the - PyThreadState for the current thread. */ - _Py_atomic_address tstate_current; /* The single PyInterpreterState used by this process' GILState implementation */ /* TODO: Given interp_main, it may be possible to kill this ref */ PyInterpreterState *autoInterpreterState; - Py_tss_t autoTSSkey; }; /* Runtime audit hook state */ @@ -90,8 +92,8 @@ typedef struct pyruntimestate { in the operation of the runtime. It is also often the only interpreter. */ PyInterpreterState *main; - /* _next_interp_id is an auto-numbered sequence of small - integers. It gets initialized in _PyInterpreterState_Init(), + /* next_id is an auto-numbered sequence of small + integers. It gets initialized in _PyInterpreterState_Enable(), which is called in Py_Initialize(), and used in PyInterpreterState_New(). A negative interpreter ID indicates an error occurred. The main interpreter will @@ -100,20 +102,43 @@ typedef struct pyruntimestate { using a Python int. */ int64_t next_id; } interpreters; - // XXX Remove this field once we have a tp_* slot. - struct _xidregistry { - PyThread_type_lock mutex; - struct _xidregitem *head; - } xidregistry; unsigned long main_thread; -#define NEXITFUNCS 32 - void (*exitfuncs[NEXITFUNCS])(void); - int nexitfuncs; + /* ---------- IMPORTANT --------------------------- + The fields above this line are declared as early as + possible to facilitate out-of-process observability + tools. */ + // XXX Remove this field once we have a tp_* slot. + struct _xidregistry xidregistry; + + struct _pymem_allocators allocators; + struct _obmalloc_global_state obmalloc; + struct pyhash_runtime_state pyhash_state; + struct _time_runtime_state time; + struct _pythread_runtime_state threads; + struct _signals_runtime_state signals; + + /* Used for the thread state bound to the current thread. */ + Py_tss_t autoTSSkey; + + /* Used instead of PyThreadState.trash when there is not current tstate. */ + Py_tss_t trashTSSkey; + + PyWideStringList orig_argv; + + struct _parser_runtime_state parser; + + struct _atexit_runtime_state atexit; + + struct _import_runtime_state imports; struct _ceval_runtime_state ceval; struct _gilstate_runtime_state gilstate; + struct _getargs_runtime_state getargs; + struct _fileutils_state fileutils; + struct _faulthandler_runtime_state faulthandler; + struct _tracemalloc_runtime_state tracemalloc; PyPreConfig preconfig; @@ -121,12 +146,27 @@ typedef struct pyruntimestate { // is called multiple times. Py_OpenCodeHookFunction open_code_hook; void *open_code_userdata; - _Py_AuditHookEntry *audit_hook_head; + struct { + PyThread_type_lock mutex; + _Py_AuditHookEntry *head; + } audit_hooks; - struct _Py_unicode_runtime_ids unicode_ids; + struct _py_object_runtime_state object_state; + struct _Py_float_runtime_state float_state; + struct _Py_unicode_runtime_state unicode_state; + struct _types_runtime_state types; /* All the objects that are shared by the runtime's interpreters. */ - struct _Py_global_objects global_objects; + struct _Py_static_objects static_objects; + struct _Py_cached_objects cached_objects; + + /* The ID of the OS thread in which we are finalizing. + We use _Py_atomic_address instead of adding a new _Py_atomic_ulong. */ + _Py_atomic_address _finalizing_id; + /* The value to use for sys.path[0] in new subinterpreters. + Normally this would be part of the PyConfig struct. However, + we cannot add it there in 3.12 since that's an ABI change. */ + wchar_t *sys_path_0; /* The following fields are here to avoid allocation during init. The data is exposed through _PyRuntimeState pointer fields. @@ -170,9 +210,23 @@ _PyRuntimeState_GetFinalizing(_PyRuntimeState *runtime) { return (PyThreadState*)_Py_atomic_load_relaxed(&runtime->_finalizing); } +static inline unsigned long +_PyRuntimeState_GetFinalizingID(_PyRuntimeState *runtime) { + return (unsigned long)_Py_atomic_load_relaxed(&runtime->_finalizing_id); +} + static inline void _PyRuntimeState_SetFinalizing(_PyRuntimeState *runtime, PyThreadState *tstate) { _Py_atomic_store_relaxed(&runtime->_finalizing, (uintptr_t)tstate); + if (tstate == NULL) { + _Py_atomic_store_relaxed(&runtime->_finalizing_id, 0); + } + else { + // XXX Re-enable this assert once gh-109860 is fixed. + //assert(tstate->thread_id == PyThread_get_thread_ident()); + _Py_atomic_store_relaxed(&runtime->_finalizing_id, + (uintptr_t)tstate->thread_id); + } } #ifdef __cplusplus diff --git a/src/external/windows/include/python/internal/pycore_runtime_init.h b/src/external/windows/include/python/internal/pycore_runtime_init.h index 276ed934..dd149798 100644 --- a/src/external/windows/include/python/internal/pycore_runtime_init.h +++ b/src/external/windows/include/python/internal/pycore_runtime_init.h @@ -8,48 +8,87 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif +#include "pycore_long.h" #include "pycore_object.h" +#include "pycore_parser.h" +#include "pycore_pymem_init.h" +#include "pycore_obmalloc_init.h" + + +extern PyTypeObject _PyExc_MemoryError; /* The static initializers defined here should only be used in the runtime init code (in pystate.c and pylifecycle.c). */ -#define _PyRuntimeState_INIT \ +#define _PyRuntimeState_INIT(runtime) \ { \ - .gilstate = { \ - .check_enabled = 1, \ - /* A TSS key must be initialized with Py_tss_NEEDS_INIT \ - in accordance with the specification. */ \ - .autoTSSkey = Py_tss_NEEDS_INIT, \ + .allocators = { \ + .standard = _pymem_allocators_standard_INIT(runtime), \ + .debug = _pymem_allocators_debug_INIT, \ + .obj_arena = _pymem_allocators_obj_arena_INIT, \ }, \ + .obmalloc = _obmalloc_global_state_INIT, \ + .pyhash_state = pyhash_state_INIT, \ + .signals = _signals_RUNTIME_INIT, \ .interpreters = { \ /* This prevents interpreters from getting created \ until _PyInterpreterState_Enable() is called. */ \ .next_id = -1, \ }, \ - .global_objects = _Py_global_objects_INIT, \ - ._main_interpreter = _PyInterpreterState_INIT, \ + /* A TSS key must be initialized with Py_tss_NEEDS_INIT \ + in accordance with the specification. */ \ + .autoTSSkey = Py_tss_NEEDS_INIT, \ + .parser = _parser_runtime_state_INIT, \ + .ceval = { \ + .perf = _PyEval_RUNTIME_PERF_INIT, \ + }, \ + .gilstate = { \ + .check_enabled = 1, \ + }, \ + .fileutils = { \ + .force_ascii = -1, \ + }, \ + .faulthandler = _faulthandler_runtime_state_INIT, \ + .tracemalloc = _tracemalloc_runtime_state_INIT, \ + .float_state = { \ + .float_format = _py_float_format_unknown, \ + .double_format = _py_float_format_unknown, \ + }, \ + .types = { \ + .next_version_tag = 1, \ + }, \ + .static_objects = { \ + .singletons = { \ + .small_ints = _Py_small_ints_INIT, \ + .bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \ + .bytes_characters = _Py_bytes_characters_INIT, \ + .strings = { \ + .literals = _Py_str_literals_INIT, \ + .identifiers = _Py_str_identifiers_INIT, \ + .ascii = _Py_str_ascii_INIT, \ + .latin1 = _Py_str_latin1_INIT, \ + }, \ + .tuple_empty = { \ + .ob_base = _PyVarObject_HEAD_INIT(&PyTuple_Type, 0) \ + }, \ + .hamt_bitmap_node_empty = { \ + .ob_base = _PyVarObject_HEAD_INIT(&_PyHamt_BitmapNode_Type, 0) \ + }, \ + .context_token_missing = { \ + .ob_base = _PyObject_HEAD_INIT(&_PyContextTokenMissing_Type) \ + }, \ + }, \ + }, \ + ._main_interpreter = _PyInterpreterState_INIT(runtime._main_interpreter), \ } -#ifdef HAVE_DLOPEN -# include -# if HAVE_DECL_RTLD_NOW -# define _Py_DLOPEN_FLAGS RTLD_NOW -# else -# define _Py_DLOPEN_FLAGS RTLD_LAZY -# endif -# define DLOPENFLAGS_INIT .dlopenflags = _Py_DLOPEN_FLAGS, -#else -# define _Py_DLOPEN_FLAGS 0 -# define DLOPENFLAGS_INIT -#endif - -#define _PyInterpreterState_INIT \ +#define _PyInterpreterState_INIT(INTERP) \ { \ - ._static = 1, \ .id_refcount = -1, \ - DLOPENFLAGS_INIT \ + .imports = IMPORTS_INIT, \ + .obmalloc = _obmalloc_state_INIT(INTERP.obmalloc), \ .ceval = { \ .recursion_limit = Py_DEFAULT_RECURSION_LIMIT, \ }, \ @@ -62,1193 +101,93 @@ extern "C" { { .threshold = 10, }, \ }, \ }, \ + .object_state = _py_object_state_INIT(INTERP), \ + .dtoa = _dtoa_state_INIT(&(INTERP)), \ + .dict_state = _dict_state_INIT, \ + .func_state = { \ + .next_version = 1, \ + }, \ + .types = { \ + .next_version_tag = _Py_TYPE_BASE_VERSION_TAG, \ + }, \ + .static_objects = { \ + .singletons = { \ + ._not_used = 1, \ + .hamt_empty = { \ + .ob_base = _PyObject_HEAD_INIT(&_PyHamt_Type) \ + .h_root = (PyHamtNode*)&_Py_SINGLETON(hamt_bitmap_node_empty), \ + }, \ + .last_resort_memory_error = { \ + _PyObject_HEAD_INIT(&_PyExc_MemoryError) \ + .args = (PyObject*)&_Py_SINGLETON(tuple_empty) \ + }, \ + }, \ + }, \ ._initial_thread = _PyThreadState_INIT, \ } #define _PyThreadState_INIT \ { \ - ._static = 1, \ - .recursion_limit = Py_DEFAULT_RECURSION_LIMIT, \ + .py_recursion_limit = Py_DEFAULT_RECURSION_LIMIT, \ .context_ver = 1, \ } +#ifdef Py_TRACE_REFS +# define _py_object_state_INIT(INTERP) \ + { \ + .refchain = {&INTERP.object_state.refchain, &INTERP.object_state.refchain}, \ + } +#else +# define _py_object_state_INIT(INTERP) \ + { 0 } +#endif + // global objects -#define _PyLong_DIGIT_INIT(val) \ - { \ - _PyVarObject_IMMORTAL_INIT(&PyLong_Type, \ - ((val) == 0 ? 0 : ((val) > 0 ? 1 : -1))), \ - .ob_digit = { ((val) >= 0 ? (val) : -(val)) }, \ - } - #define _PyBytes_SIMPLE_INIT(CH, LEN) \ { \ - _PyVarObject_IMMORTAL_INIT(&PyBytes_Type, LEN), \ + _PyVarObject_HEAD_INIT(&PyBytes_Type, (LEN)) \ .ob_shash = -1, \ - .ob_sval = { CH }, \ + .ob_sval = { (CH) }, \ } #define _PyBytes_CHAR_INIT(CH) \ { \ - _PyBytes_SIMPLE_INIT(CH, 1) \ + _PyBytes_SIMPLE_INIT((CH), 1) \ } #define _PyUnicode_ASCII_BASE_INIT(LITERAL, ASCII) \ { \ - .ob_base = _PyObject_IMMORTAL_INIT(&PyUnicode_Type), \ + .ob_base = _PyObject_HEAD_INIT(&PyUnicode_Type) \ .length = sizeof(LITERAL) - 1, \ .hash = -1, \ .state = { \ .kind = 1, \ .compact = 1, \ - .ascii = ASCII, \ - .ready = 1, \ + .ascii = (ASCII), \ + .statically_allocated = 1, \ }, \ } #define _PyASCIIObject_INIT(LITERAL) \ { \ - ._ascii = _PyUnicode_ASCII_BASE_INIT(LITERAL, 1), \ - ._data = LITERAL \ + ._ascii = _PyUnicode_ASCII_BASE_INIT((LITERAL), 1), \ + ._data = (LITERAL) \ } #define INIT_STR(NAME, LITERAL) \ - ._ ## NAME = _PyASCIIObject_INIT(LITERAL) + ._py_ ## NAME = _PyASCIIObject_INIT(LITERAL) #define INIT_ID(NAME) \ - ._ ## NAME = _PyASCIIObject_INIT(#NAME) -#define _PyUnicode_LATIN1_INIT(LITERAL) \ + ._py_ ## NAME = _PyASCIIObject_INIT(#NAME) +#define _PyUnicode_LATIN1_INIT(LITERAL, UTF8) \ { \ ._latin1 = { \ - ._base = _PyUnicode_ASCII_BASE_INIT(LITERAL, 0), \ + ._base = _PyUnicode_ASCII_BASE_INIT((LITERAL), 0), \ + .utf8 = (UTF8), \ + .utf8_length = sizeof(UTF8) - 1, \ }, \ - ._data = LITERAL, \ + ._data = (LITERAL), \ } -/* The following is auto-generated by Tools/scripts/generate_global_objects.py. */ -#define _Py_global_objects_INIT { \ - .singletons = { \ - .small_ints = { \ - _PyLong_DIGIT_INIT(-5), \ - _PyLong_DIGIT_INIT(-4), \ - _PyLong_DIGIT_INIT(-3), \ - _PyLong_DIGIT_INIT(-2), \ - _PyLong_DIGIT_INIT(-1), \ - _PyLong_DIGIT_INIT(0), \ - _PyLong_DIGIT_INIT(1), \ - _PyLong_DIGIT_INIT(2), \ - _PyLong_DIGIT_INIT(3), \ - _PyLong_DIGIT_INIT(4), \ - _PyLong_DIGIT_INIT(5), \ - _PyLong_DIGIT_INIT(6), \ - _PyLong_DIGIT_INIT(7), \ - _PyLong_DIGIT_INIT(8), \ - _PyLong_DIGIT_INIT(9), \ - _PyLong_DIGIT_INIT(10), \ - _PyLong_DIGIT_INIT(11), \ - _PyLong_DIGIT_INIT(12), \ - _PyLong_DIGIT_INIT(13), \ - _PyLong_DIGIT_INIT(14), \ - _PyLong_DIGIT_INIT(15), \ - _PyLong_DIGIT_INIT(16), \ - _PyLong_DIGIT_INIT(17), \ - _PyLong_DIGIT_INIT(18), \ - _PyLong_DIGIT_INIT(19), \ - _PyLong_DIGIT_INIT(20), \ - _PyLong_DIGIT_INIT(21), \ - _PyLong_DIGIT_INIT(22), \ - _PyLong_DIGIT_INIT(23), \ - _PyLong_DIGIT_INIT(24), \ - _PyLong_DIGIT_INIT(25), \ - _PyLong_DIGIT_INIT(26), \ - _PyLong_DIGIT_INIT(27), \ - _PyLong_DIGIT_INIT(28), \ - _PyLong_DIGIT_INIT(29), \ - _PyLong_DIGIT_INIT(30), \ - _PyLong_DIGIT_INIT(31), \ - _PyLong_DIGIT_INIT(32), \ - _PyLong_DIGIT_INIT(33), \ - _PyLong_DIGIT_INIT(34), \ - _PyLong_DIGIT_INIT(35), \ - _PyLong_DIGIT_INIT(36), \ - _PyLong_DIGIT_INIT(37), \ - _PyLong_DIGIT_INIT(38), \ - _PyLong_DIGIT_INIT(39), \ - _PyLong_DIGIT_INIT(40), \ - _PyLong_DIGIT_INIT(41), \ - _PyLong_DIGIT_INIT(42), \ - _PyLong_DIGIT_INIT(43), \ - _PyLong_DIGIT_INIT(44), \ - _PyLong_DIGIT_INIT(45), \ - _PyLong_DIGIT_INIT(46), \ - _PyLong_DIGIT_INIT(47), \ - _PyLong_DIGIT_INIT(48), \ - _PyLong_DIGIT_INIT(49), \ - _PyLong_DIGIT_INIT(50), \ - _PyLong_DIGIT_INIT(51), \ - _PyLong_DIGIT_INIT(52), \ - _PyLong_DIGIT_INIT(53), \ - _PyLong_DIGIT_INIT(54), \ - _PyLong_DIGIT_INIT(55), \ - _PyLong_DIGIT_INIT(56), \ - _PyLong_DIGIT_INIT(57), \ - _PyLong_DIGIT_INIT(58), \ - _PyLong_DIGIT_INIT(59), \ - _PyLong_DIGIT_INIT(60), \ - _PyLong_DIGIT_INIT(61), \ - _PyLong_DIGIT_INIT(62), \ - _PyLong_DIGIT_INIT(63), \ - _PyLong_DIGIT_INIT(64), \ - _PyLong_DIGIT_INIT(65), \ - _PyLong_DIGIT_INIT(66), \ - _PyLong_DIGIT_INIT(67), \ - _PyLong_DIGIT_INIT(68), \ - _PyLong_DIGIT_INIT(69), \ - _PyLong_DIGIT_INIT(70), \ - _PyLong_DIGIT_INIT(71), \ - _PyLong_DIGIT_INIT(72), \ - _PyLong_DIGIT_INIT(73), \ - _PyLong_DIGIT_INIT(74), \ - _PyLong_DIGIT_INIT(75), \ - _PyLong_DIGIT_INIT(76), \ - _PyLong_DIGIT_INIT(77), \ - _PyLong_DIGIT_INIT(78), \ - _PyLong_DIGIT_INIT(79), \ - _PyLong_DIGIT_INIT(80), \ - _PyLong_DIGIT_INIT(81), \ - _PyLong_DIGIT_INIT(82), \ - _PyLong_DIGIT_INIT(83), \ - _PyLong_DIGIT_INIT(84), \ - _PyLong_DIGIT_INIT(85), \ - _PyLong_DIGIT_INIT(86), \ - _PyLong_DIGIT_INIT(87), \ - _PyLong_DIGIT_INIT(88), \ - _PyLong_DIGIT_INIT(89), \ - _PyLong_DIGIT_INIT(90), \ - _PyLong_DIGIT_INIT(91), \ - _PyLong_DIGIT_INIT(92), \ - _PyLong_DIGIT_INIT(93), \ - _PyLong_DIGIT_INIT(94), \ - _PyLong_DIGIT_INIT(95), \ - _PyLong_DIGIT_INIT(96), \ - _PyLong_DIGIT_INIT(97), \ - _PyLong_DIGIT_INIT(98), \ - _PyLong_DIGIT_INIT(99), \ - _PyLong_DIGIT_INIT(100), \ - _PyLong_DIGIT_INIT(101), \ - _PyLong_DIGIT_INIT(102), \ - _PyLong_DIGIT_INIT(103), \ - _PyLong_DIGIT_INIT(104), \ - _PyLong_DIGIT_INIT(105), \ - _PyLong_DIGIT_INIT(106), \ - _PyLong_DIGIT_INIT(107), \ - _PyLong_DIGIT_INIT(108), \ - _PyLong_DIGIT_INIT(109), \ - _PyLong_DIGIT_INIT(110), \ - _PyLong_DIGIT_INIT(111), \ - _PyLong_DIGIT_INIT(112), \ - _PyLong_DIGIT_INIT(113), \ - _PyLong_DIGIT_INIT(114), \ - _PyLong_DIGIT_INIT(115), \ - _PyLong_DIGIT_INIT(116), \ - _PyLong_DIGIT_INIT(117), \ - _PyLong_DIGIT_INIT(118), \ - _PyLong_DIGIT_INIT(119), \ - _PyLong_DIGIT_INIT(120), \ - _PyLong_DIGIT_INIT(121), \ - _PyLong_DIGIT_INIT(122), \ - _PyLong_DIGIT_INIT(123), \ - _PyLong_DIGIT_INIT(124), \ - _PyLong_DIGIT_INIT(125), \ - _PyLong_DIGIT_INIT(126), \ - _PyLong_DIGIT_INIT(127), \ - _PyLong_DIGIT_INIT(128), \ - _PyLong_DIGIT_INIT(129), \ - _PyLong_DIGIT_INIT(130), \ - _PyLong_DIGIT_INIT(131), \ - _PyLong_DIGIT_INIT(132), \ - _PyLong_DIGIT_INIT(133), \ - _PyLong_DIGIT_INIT(134), \ - _PyLong_DIGIT_INIT(135), \ - _PyLong_DIGIT_INIT(136), \ - _PyLong_DIGIT_INIT(137), \ - _PyLong_DIGIT_INIT(138), \ - _PyLong_DIGIT_INIT(139), \ - _PyLong_DIGIT_INIT(140), \ - _PyLong_DIGIT_INIT(141), \ - _PyLong_DIGIT_INIT(142), \ - _PyLong_DIGIT_INIT(143), \ - _PyLong_DIGIT_INIT(144), \ - _PyLong_DIGIT_INIT(145), \ - _PyLong_DIGIT_INIT(146), \ - _PyLong_DIGIT_INIT(147), \ - _PyLong_DIGIT_INIT(148), \ - _PyLong_DIGIT_INIT(149), \ - _PyLong_DIGIT_INIT(150), \ - _PyLong_DIGIT_INIT(151), \ - _PyLong_DIGIT_INIT(152), \ - _PyLong_DIGIT_INIT(153), \ - _PyLong_DIGIT_INIT(154), \ - _PyLong_DIGIT_INIT(155), \ - _PyLong_DIGIT_INIT(156), \ - _PyLong_DIGIT_INIT(157), \ - _PyLong_DIGIT_INIT(158), \ - _PyLong_DIGIT_INIT(159), \ - _PyLong_DIGIT_INIT(160), \ - _PyLong_DIGIT_INIT(161), \ - _PyLong_DIGIT_INIT(162), \ - _PyLong_DIGIT_INIT(163), \ - _PyLong_DIGIT_INIT(164), \ - _PyLong_DIGIT_INIT(165), \ - _PyLong_DIGIT_INIT(166), \ - _PyLong_DIGIT_INIT(167), \ - _PyLong_DIGIT_INIT(168), \ - _PyLong_DIGIT_INIT(169), \ - _PyLong_DIGIT_INIT(170), \ - _PyLong_DIGIT_INIT(171), \ - _PyLong_DIGIT_INIT(172), \ - _PyLong_DIGIT_INIT(173), \ - _PyLong_DIGIT_INIT(174), \ - _PyLong_DIGIT_INIT(175), \ - _PyLong_DIGIT_INIT(176), \ - _PyLong_DIGIT_INIT(177), \ - _PyLong_DIGIT_INIT(178), \ - _PyLong_DIGIT_INIT(179), \ - _PyLong_DIGIT_INIT(180), \ - _PyLong_DIGIT_INIT(181), \ - _PyLong_DIGIT_INIT(182), \ - _PyLong_DIGIT_INIT(183), \ - _PyLong_DIGIT_INIT(184), \ - _PyLong_DIGIT_INIT(185), \ - _PyLong_DIGIT_INIT(186), \ - _PyLong_DIGIT_INIT(187), \ - _PyLong_DIGIT_INIT(188), \ - _PyLong_DIGIT_INIT(189), \ - _PyLong_DIGIT_INIT(190), \ - _PyLong_DIGIT_INIT(191), \ - _PyLong_DIGIT_INIT(192), \ - _PyLong_DIGIT_INIT(193), \ - _PyLong_DIGIT_INIT(194), \ - _PyLong_DIGIT_INIT(195), \ - _PyLong_DIGIT_INIT(196), \ - _PyLong_DIGIT_INIT(197), \ - _PyLong_DIGIT_INIT(198), \ - _PyLong_DIGIT_INIT(199), \ - _PyLong_DIGIT_INIT(200), \ - _PyLong_DIGIT_INIT(201), \ - _PyLong_DIGIT_INIT(202), \ - _PyLong_DIGIT_INIT(203), \ - _PyLong_DIGIT_INIT(204), \ - _PyLong_DIGIT_INIT(205), \ - _PyLong_DIGIT_INIT(206), \ - _PyLong_DIGIT_INIT(207), \ - _PyLong_DIGIT_INIT(208), \ - _PyLong_DIGIT_INIT(209), \ - _PyLong_DIGIT_INIT(210), \ - _PyLong_DIGIT_INIT(211), \ - _PyLong_DIGIT_INIT(212), \ - _PyLong_DIGIT_INIT(213), \ - _PyLong_DIGIT_INIT(214), \ - _PyLong_DIGIT_INIT(215), \ - _PyLong_DIGIT_INIT(216), \ - _PyLong_DIGIT_INIT(217), \ - _PyLong_DIGIT_INIT(218), \ - _PyLong_DIGIT_INIT(219), \ - _PyLong_DIGIT_INIT(220), \ - _PyLong_DIGIT_INIT(221), \ - _PyLong_DIGIT_INIT(222), \ - _PyLong_DIGIT_INIT(223), \ - _PyLong_DIGIT_INIT(224), \ - _PyLong_DIGIT_INIT(225), \ - _PyLong_DIGIT_INIT(226), \ - _PyLong_DIGIT_INIT(227), \ - _PyLong_DIGIT_INIT(228), \ - _PyLong_DIGIT_INIT(229), \ - _PyLong_DIGIT_INIT(230), \ - _PyLong_DIGIT_INIT(231), \ - _PyLong_DIGIT_INIT(232), \ - _PyLong_DIGIT_INIT(233), \ - _PyLong_DIGIT_INIT(234), \ - _PyLong_DIGIT_INIT(235), \ - _PyLong_DIGIT_INIT(236), \ - _PyLong_DIGIT_INIT(237), \ - _PyLong_DIGIT_INIT(238), \ - _PyLong_DIGIT_INIT(239), \ - _PyLong_DIGIT_INIT(240), \ - _PyLong_DIGIT_INIT(241), \ - _PyLong_DIGIT_INIT(242), \ - _PyLong_DIGIT_INIT(243), \ - _PyLong_DIGIT_INIT(244), \ - _PyLong_DIGIT_INIT(245), \ - _PyLong_DIGIT_INIT(246), \ - _PyLong_DIGIT_INIT(247), \ - _PyLong_DIGIT_INIT(248), \ - _PyLong_DIGIT_INIT(249), \ - _PyLong_DIGIT_INIT(250), \ - _PyLong_DIGIT_INIT(251), \ - _PyLong_DIGIT_INIT(252), \ - _PyLong_DIGIT_INIT(253), \ - _PyLong_DIGIT_INIT(254), \ - _PyLong_DIGIT_INIT(255), \ - _PyLong_DIGIT_INIT(256), \ - }, \ - \ - .bytes_empty = _PyBytes_SIMPLE_INIT(0, 0), \ - .bytes_characters = { \ - _PyBytes_CHAR_INIT(0), \ - _PyBytes_CHAR_INIT(1), \ - _PyBytes_CHAR_INIT(2), \ - _PyBytes_CHAR_INIT(3), \ - _PyBytes_CHAR_INIT(4), \ - _PyBytes_CHAR_INIT(5), \ - _PyBytes_CHAR_INIT(6), \ - _PyBytes_CHAR_INIT(7), \ - _PyBytes_CHAR_INIT(8), \ - _PyBytes_CHAR_INIT(9), \ - _PyBytes_CHAR_INIT(10), \ - _PyBytes_CHAR_INIT(11), \ - _PyBytes_CHAR_INIT(12), \ - _PyBytes_CHAR_INIT(13), \ - _PyBytes_CHAR_INIT(14), \ - _PyBytes_CHAR_INIT(15), \ - _PyBytes_CHAR_INIT(16), \ - _PyBytes_CHAR_INIT(17), \ - _PyBytes_CHAR_INIT(18), \ - _PyBytes_CHAR_INIT(19), \ - _PyBytes_CHAR_INIT(20), \ - _PyBytes_CHAR_INIT(21), \ - _PyBytes_CHAR_INIT(22), \ - _PyBytes_CHAR_INIT(23), \ - _PyBytes_CHAR_INIT(24), \ - _PyBytes_CHAR_INIT(25), \ - _PyBytes_CHAR_INIT(26), \ - _PyBytes_CHAR_INIT(27), \ - _PyBytes_CHAR_INIT(28), \ - _PyBytes_CHAR_INIT(29), \ - _PyBytes_CHAR_INIT(30), \ - _PyBytes_CHAR_INIT(31), \ - _PyBytes_CHAR_INIT(32), \ - _PyBytes_CHAR_INIT(33), \ - _PyBytes_CHAR_INIT(34), \ - _PyBytes_CHAR_INIT(35), \ - _PyBytes_CHAR_INIT(36), \ - _PyBytes_CHAR_INIT(37), \ - _PyBytes_CHAR_INIT(38), \ - _PyBytes_CHAR_INIT(39), \ - _PyBytes_CHAR_INIT(40), \ - _PyBytes_CHAR_INIT(41), \ - _PyBytes_CHAR_INIT(42), \ - _PyBytes_CHAR_INIT(43), \ - _PyBytes_CHAR_INIT(44), \ - _PyBytes_CHAR_INIT(45), \ - _PyBytes_CHAR_INIT(46), \ - _PyBytes_CHAR_INIT(47), \ - _PyBytes_CHAR_INIT(48), \ - _PyBytes_CHAR_INIT(49), \ - _PyBytes_CHAR_INIT(50), \ - _PyBytes_CHAR_INIT(51), \ - _PyBytes_CHAR_INIT(52), \ - _PyBytes_CHAR_INIT(53), \ - _PyBytes_CHAR_INIT(54), \ - _PyBytes_CHAR_INIT(55), \ - _PyBytes_CHAR_INIT(56), \ - _PyBytes_CHAR_INIT(57), \ - _PyBytes_CHAR_INIT(58), \ - _PyBytes_CHAR_INIT(59), \ - _PyBytes_CHAR_INIT(60), \ - _PyBytes_CHAR_INIT(61), \ - _PyBytes_CHAR_INIT(62), \ - _PyBytes_CHAR_INIT(63), \ - _PyBytes_CHAR_INIT(64), \ - _PyBytes_CHAR_INIT(65), \ - _PyBytes_CHAR_INIT(66), \ - _PyBytes_CHAR_INIT(67), \ - _PyBytes_CHAR_INIT(68), \ - _PyBytes_CHAR_INIT(69), \ - _PyBytes_CHAR_INIT(70), \ - _PyBytes_CHAR_INIT(71), \ - _PyBytes_CHAR_INIT(72), \ - _PyBytes_CHAR_INIT(73), \ - _PyBytes_CHAR_INIT(74), \ - _PyBytes_CHAR_INIT(75), \ - _PyBytes_CHAR_INIT(76), \ - _PyBytes_CHAR_INIT(77), \ - _PyBytes_CHAR_INIT(78), \ - _PyBytes_CHAR_INIT(79), \ - _PyBytes_CHAR_INIT(80), \ - _PyBytes_CHAR_INIT(81), \ - _PyBytes_CHAR_INIT(82), \ - _PyBytes_CHAR_INIT(83), \ - _PyBytes_CHAR_INIT(84), \ - _PyBytes_CHAR_INIT(85), \ - _PyBytes_CHAR_INIT(86), \ - _PyBytes_CHAR_INIT(87), \ - _PyBytes_CHAR_INIT(88), \ - _PyBytes_CHAR_INIT(89), \ - _PyBytes_CHAR_INIT(90), \ - _PyBytes_CHAR_INIT(91), \ - _PyBytes_CHAR_INIT(92), \ - _PyBytes_CHAR_INIT(93), \ - _PyBytes_CHAR_INIT(94), \ - _PyBytes_CHAR_INIT(95), \ - _PyBytes_CHAR_INIT(96), \ - _PyBytes_CHAR_INIT(97), \ - _PyBytes_CHAR_INIT(98), \ - _PyBytes_CHAR_INIT(99), \ - _PyBytes_CHAR_INIT(100), \ - _PyBytes_CHAR_INIT(101), \ - _PyBytes_CHAR_INIT(102), \ - _PyBytes_CHAR_INIT(103), \ - _PyBytes_CHAR_INIT(104), \ - _PyBytes_CHAR_INIT(105), \ - _PyBytes_CHAR_INIT(106), \ - _PyBytes_CHAR_INIT(107), \ - _PyBytes_CHAR_INIT(108), \ - _PyBytes_CHAR_INIT(109), \ - _PyBytes_CHAR_INIT(110), \ - _PyBytes_CHAR_INIT(111), \ - _PyBytes_CHAR_INIT(112), \ - _PyBytes_CHAR_INIT(113), \ - _PyBytes_CHAR_INIT(114), \ - _PyBytes_CHAR_INIT(115), \ - _PyBytes_CHAR_INIT(116), \ - _PyBytes_CHAR_INIT(117), \ - _PyBytes_CHAR_INIT(118), \ - _PyBytes_CHAR_INIT(119), \ - _PyBytes_CHAR_INIT(120), \ - _PyBytes_CHAR_INIT(121), \ - _PyBytes_CHAR_INIT(122), \ - _PyBytes_CHAR_INIT(123), \ - _PyBytes_CHAR_INIT(124), \ - _PyBytes_CHAR_INIT(125), \ - _PyBytes_CHAR_INIT(126), \ - _PyBytes_CHAR_INIT(127), \ - _PyBytes_CHAR_INIT(128), \ - _PyBytes_CHAR_INIT(129), \ - _PyBytes_CHAR_INIT(130), \ - _PyBytes_CHAR_INIT(131), \ - _PyBytes_CHAR_INIT(132), \ - _PyBytes_CHAR_INIT(133), \ - _PyBytes_CHAR_INIT(134), \ - _PyBytes_CHAR_INIT(135), \ - _PyBytes_CHAR_INIT(136), \ - _PyBytes_CHAR_INIT(137), \ - _PyBytes_CHAR_INIT(138), \ - _PyBytes_CHAR_INIT(139), \ - _PyBytes_CHAR_INIT(140), \ - _PyBytes_CHAR_INIT(141), \ - _PyBytes_CHAR_INIT(142), \ - _PyBytes_CHAR_INIT(143), \ - _PyBytes_CHAR_INIT(144), \ - _PyBytes_CHAR_INIT(145), \ - _PyBytes_CHAR_INIT(146), \ - _PyBytes_CHAR_INIT(147), \ - _PyBytes_CHAR_INIT(148), \ - _PyBytes_CHAR_INIT(149), \ - _PyBytes_CHAR_INIT(150), \ - _PyBytes_CHAR_INIT(151), \ - _PyBytes_CHAR_INIT(152), \ - _PyBytes_CHAR_INIT(153), \ - _PyBytes_CHAR_INIT(154), \ - _PyBytes_CHAR_INIT(155), \ - _PyBytes_CHAR_INIT(156), \ - _PyBytes_CHAR_INIT(157), \ - _PyBytes_CHAR_INIT(158), \ - _PyBytes_CHAR_INIT(159), \ - _PyBytes_CHAR_INIT(160), \ - _PyBytes_CHAR_INIT(161), \ - _PyBytes_CHAR_INIT(162), \ - _PyBytes_CHAR_INIT(163), \ - _PyBytes_CHAR_INIT(164), \ - _PyBytes_CHAR_INIT(165), \ - _PyBytes_CHAR_INIT(166), \ - _PyBytes_CHAR_INIT(167), \ - _PyBytes_CHAR_INIT(168), \ - _PyBytes_CHAR_INIT(169), \ - _PyBytes_CHAR_INIT(170), \ - _PyBytes_CHAR_INIT(171), \ - _PyBytes_CHAR_INIT(172), \ - _PyBytes_CHAR_INIT(173), \ - _PyBytes_CHAR_INIT(174), \ - _PyBytes_CHAR_INIT(175), \ - _PyBytes_CHAR_INIT(176), \ - _PyBytes_CHAR_INIT(177), \ - _PyBytes_CHAR_INIT(178), \ - _PyBytes_CHAR_INIT(179), \ - _PyBytes_CHAR_INIT(180), \ - _PyBytes_CHAR_INIT(181), \ - _PyBytes_CHAR_INIT(182), \ - _PyBytes_CHAR_INIT(183), \ - _PyBytes_CHAR_INIT(184), \ - _PyBytes_CHAR_INIT(185), \ - _PyBytes_CHAR_INIT(186), \ - _PyBytes_CHAR_INIT(187), \ - _PyBytes_CHAR_INIT(188), \ - _PyBytes_CHAR_INIT(189), \ - _PyBytes_CHAR_INIT(190), \ - _PyBytes_CHAR_INIT(191), \ - _PyBytes_CHAR_INIT(192), \ - _PyBytes_CHAR_INIT(193), \ - _PyBytes_CHAR_INIT(194), \ - _PyBytes_CHAR_INIT(195), \ - _PyBytes_CHAR_INIT(196), \ - _PyBytes_CHAR_INIT(197), \ - _PyBytes_CHAR_INIT(198), \ - _PyBytes_CHAR_INIT(199), \ - _PyBytes_CHAR_INIT(200), \ - _PyBytes_CHAR_INIT(201), \ - _PyBytes_CHAR_INIT(202), \ - _PyBytes_CHAR_INIT(203), \ - _PyBytes_CHAR_INIT(204), \ - _PyBytes_CHAR_INIT(205), \ - _PyBytes_CHAR_INIT(206), \ - _PyBytes_CHAR_INIT(207), \ - _PyBytes_CHAR_INIT(208), \ - _PyBytes_CHAR_INIT(209), \ - _PyBytes_CHAR_INIT(210), \ - _PyBytes_CHAR_INIT(211), \ - _PyBytes_CHAR_INIT(212), \ - _PyBytes_CHAR_INIT(213), \ - _PyBytes_CHAR_INIT(214), \ - _PyBytes_CHAR_INIT(215), \ - _PyBytes_CHAR_INIT(216), \ - _PyBytes_CHAR_INIT(217), \ - _PyBytes_CHAR_INIT(218), \ - _PyBytes_CHAR_INIT(219), \ - _PyBytes_CHAR_INIT(220), \ - _PyBytes_CHAR_INIT(221), \ - _PyBytes_CHAR_INIT(222), \ - _PyBytes_CHAR_INIT(223), \ - _PyBytes_CHAR_INIT(224), \ - _PyBytes_CHAR_INIT(225), \ - _PyBytes_CHAR_INIT(226), \ - _PyBytes_CHAR_INIT(227), \ - _PyBytes_CHAR_INIT(228), \ - _PyBytes_CHAR_INIT(229), \ - _PyBytes_CHAR_INIT(230), \ - _PyBytes_CHAR_INIT(231), \ - _PyBytes_CHAR_INIT(232), \ - _PyBytes_CHAR_INIT(233), \ - _PyBytes_CHAR_INIT(234), \ - _PyBytes_CHAR_INIT(235), \ - _PyBytes_CHAR_INIT(236), \ - _PyBytes_CHAR_INIT(237), \ - _PyBytes_CHAR_INIT(238), \ - _PyBytes_CHAR_INIT(239), \ - _PyBytes_CHAR_INIT(240), \ - _PyBytes_CHAR_INIT(241), \ - _PyBytes_CHAR_INIT(242), \ - _PyBytes_CHAR_INIT(243), \ - _PyBytes_CHAR_INIT(244), \ - _PyBytes_CHAR_INIT(245), \ - _PyBytes_CHAR_INIT(246), \ - _PyBytes_CHAR_INIT(247), \ - _PyBytes_CHAR_INIT(248), \ - _PyBytes_CHAR_INIT(249), \ - _PyBytes_CHAR_INIT(250), \ - _PyBytes_CHAR_INIT(251), \ - _PyBytes_CHAR_INIT(252), \ - _PyBytes_CHAR_INIT(253), \ - _PyBytes_CHAR_INIT(254), \ - _PyBytes_CHAR_INIT(255), \ - }, \ - \ - .strings = { \ - .literals = { \ - INIT_STR(anon_dictcomp, ""), \ - INIT_STR(anon_genexpr, ""), \ - INIT_STR(anon_lambda, ""), \ - INIT_STR(anon_listcomp, ""), \ - INIT_STR(anon_module, ""), \ - INIT_STR(anon_setcomp, ""), \ - INIT_STR(anon_string, ""), \ - INIT_STR(anon_unknown, ""), \ - INIT_STR(close_br, "}"), \ - INIT_STR(comma_sep, ", "), \ - INIT_STR(dbl_close_br, "}}"), \ - INIT_STR(dbl_open_br, "{{"), \ - INIT_STR(dbl_percent, "%%"), \ - INIT_STR(dot, "."), \ - INIT_STR(dot_locals, "."), \ - INIT_STR(empty, ""), \ - INIT_STR(list_err, "list index out of range"), \ - INIT_STR(newline, "\n"), \ - INIT_STR(open_br, "{"), \ - INIT_STR(percent, "%"), \ - INIT_STR(utf_8, "utf-8"), \ - }, \ - .identifiers = { \ - INIT_ID(False), \ - INIT_ID(Py_Repr), \ - INIT_ID(TextIOWrapper), \ - INIT_ID(True), \ - INIT_ID(WarningMessage), \ - INIT_ID(_), \ - INIT_ID(__IOBase_closed), \ - INIT_ID(__abc_tpflags__), \ - INIT_ID(__abs__), \ - INIT_ID(__abstractmethods__), \ - INIT_ID(__add__), \ - INIT_ID(__aenter__), \ - INIT_ID(__aexit__), \ - INIT_ID(__aiter__), \ - INIT_ID(__all__), \ - INIT_ID(__and__), \ - INIT_ID(__anext__), \ - INIT_ID(__annotations__), \ - INIT_ID(__args__), \ - INIT_ID(__await__), \ - INIT_ID(__bases__), \ - INIT_ID(__bool__), \ - INIT_ID(__build_class__), \ - INIT_ID(__builtins__), \ - INIT_ID(__bytes__), \ - INIT_ID(__call__), \ - INIT_ID(__cantrace__), \ - INIT_ID(__class__), \ - INIT_ID(__class_getitem__), \ - INIT_ID(__classcell__), \ - INIT_ID(__complex__), \ - INIT_ID(__contains__), \ - INIT_ID(__copy__), \ - INIT_ID(__del__), \ - INIT_ID(__delattr__), \ - INIT_ID(__delete__), \ - INIT_ID(__delitem__), \ - INIT_ID(__dict__), \ - INIT_ID(__dir__), \ - INIT_ID(__divmod__), \ - INIT_ID(__doc__), \ - INIT_ID(__enter__), \ - INIT_ID(__eq__), \ - INIT_ID(__exit__), \ - INIT_ID(__file__), \ - INIT_ID(__float__), \ - INIT_ID(__floordiv__), \ - INIT_ID(__format__), \ - INIT_ID(__fspath__), \ - INIT_ID(__ge__), \ - INIT_ID(__get__), \ - INIT_ID(__getattr__), \ - INIT_ID(__getattribute__), \ - INIT_ID(__getinitargs__), \ - INIT_ID(__getitem__), \ - INIT_ID(__getnewargs__), \ - INIT_ID(__getnewargs_ex__), \ - INIT_ID(__getstate__), \ - INIT_ID(__gt__), \ - INIT_ID(__hash__), \ - INIT_ID(__iadd__), \ - INIT_ID(__iand__), \ - INIT_ID(__ifloordiv__), \ - INIT_ID(__ilshift__), \ - INIT_ID(__imatmul__), \ - INIT_ID(__imod__), \ - INIT_ID(__import__), \ - INIT_ID(__imul__), \ - INIT_ID(__index__), \ - INIT_ID(__init__), \ - INIT_ID(__init_subclass__), \ - INIT_ID(__instancecheck__), \ - INIT_ID(__int__), \ - INIT_ID(__invert__), \ - INIT_ID(__ior__), \ - INIT_ID(__ipow__), \ - INIT_ID(__irshift__), \ - INIT_ID(__isabstractmethod__), \ - INIT_ID(__isub__), \ - INIT_ID(__iter__), \ - INIT_ID(__itruediv__), \ - INIT_ID(__ixor__), \ - INIT_ID(__le__), \ - INIT_ID(__len__), \ - INIT_ID(__length_hint__), \ - INIT_ID(__lltrace__), \ - INIT_ID(__loader__), \ - INIT_ID(__lshift__), \ - INIT_ID(__lt__), \ - INIT_ID(__main__), \ - INIT_ID(__matmul__), \ - INIT_ID(__missing__), \ - INIT_ID(__mod__), \ - INIT_ID(__module__), \ - INIT_ID(__mro_entries__), \ - INIT_ID(__mul__), \ - INIT_ID(__name__), \ - INIT_ID(__ne__), \ - INIT_ID(__neg__), \ - INIT_ID(__new__), \ - INIT_ID(__newobj__), \ - INIT_ID(__newobj_ex__), \ - INIT_ID(__next__), \ - INIT_ID(__notes__), \ - INIT_ID(__or__), \ - INIT_ID(__orig_class__), \ - INIT_ID(__origin__), \ - INIT_ID(__package__), \ - INIT_ID(__parameters__), \ - INIT_ID(__path__), \ - INIT_ID(__pos__), \ - INIT_ID(__pow__), \ - INIT_ID(__prepare__), \ - INIT_ID(__qualname__), \ - INIT_ID(__radd__), \ - INIT_ID(__rand__), \ - INIT_ID(__rdivmod__), \ - INIT_ID(__reduce__), \ - INIT_ID(__reduce_ex__), \ - INIT_ID(__repr__), \ - INIT_ID(__reversed__), \ - INIT_ID(__rfloordiv__), \ - INIT_ID(__rlshift__), \ - INIT_ID(__rmatmul__), \ - INIT_ID(__rmod__), \ - INIT_ID(__rmul__), \ - INIT_ID(__ror__), \ - INIT_ID(__round__), \ - INIT_ID(__rpow__), \ - INIT_ID(__rrshift__), \ - INIT_ID(__rshift__), \ - INIT_ID(__rsub__), \ - INIT_ID(__rtruediv__), \ - INIT_ID(__rxor__), \ - INIT_ID(__set__), \ - INIT_ID(__set_name__), \ - INIT_ID(__setattr__), \ - INIT_ID(__setitem__), \ - INIT_ID(__setstate__), \ - INIT_ID(__sizeof__), \ - INIT_ID(__slotnames__), \ - INIT_ID(__slots__), \ - INIT_ID(__spec__), \ - INIT_ID(__str__), \ - INIT_ID(__sub__), \ - INIT_ID(__subclasscheck__), \ - INIT_ID(__subclasshook__), \ - INIT_ID(__truediv__), \ - INIT_ID(__trunc__), \ - INIT_ID(__typing_is_unpacked_typevartuple__), \ - INIT_ID(__typing_prepare_subst__), \ - INIT_ID(__typing_subst__), \ - INIT_ID(__typing_unpacked_tuple_args__), \ - INIT_ID(__warningregistry__), \ - INIT_ID(__weakref__), \ - INIT_ID(__xor__), \ - INIT_ID(_abc_impl), \ - INIT_ID(_annotation), \ - INIT_ID(_blksize), \ - INIT_ID(_bootstrap), \ - INIT_ID(_dealloc_warn), \ - INIT_ID(_finalizing), \ - INIT_ID(_find_and_load), \ - INIT_ID(_fix_up_module), \ - INIT_ID(_get_sourcefile), \ - INIT_ID(_handle_fromlist), \ - INIT_ID(_initializing), \ - INIT_ID(_is_text_encoding), \ - INIT_ID(_lock_unlock_module), \ - INIT_ID(_showwarnmsg), \ - INIT_ID(_shutdown), \ - INIT_ID(_slotnames), \ - INIT_ID(_strptime_time), \ - INIT_ID(_uninitialized_submodules), \ - INIT_ID(_warn_unawaited_coroutine), \ - INIT_ID(_xoptions), \ - INIT_ID(add), \ - INIT_ID(append), \ - INIT_ID(big), \ - INIT_ID(buffer), \ - INIT_ID(builtins), \ - INIT_ID(c_call), \ - INIT_ID(c_exception), \ - INIT_ID(c_return), \ - INIT_ID(call), \ - INIT_ID(clear), \ - INIT_ID(close), \ - INIT_ID(closed), \ - INIT_ID(code), \ - INIT_ID(copy), \ - INIT_ID(copyreg), \ - INIT_ID(decode), \ - INIT_ID(default), \ - INIT_ID(defaultaction), \ - INIT_ID(dictcomp), \ - INIT_ID(difference_update), \ - INIT_ID(dispatch_table), \ - INIT_ID(displayhook), \ - INIT_ID(enable), \ - INIT_ID(encode), \ - INIT_ID(encoding), \ - INIT_ID(end_lineno), \ - INIT_ID(end_offset), \ - INIT_ID(errors), \ - INIT_ID(excepthook), \ - INIT_ID(exception), \ - INIT_ID(extend), \ - INIT_ID(filename), \ - INIT_ID(fileno), \ - INIT_ID(fillvalue), \ - INIT_ID(filters), \ - INIT_ID(find_class), \ - INIT_ID(flush), \ - INIT_ID(genexpr), \ - INIT_ID(get), \ - INIT_ID(get_source), \ - INIT_ID(getattr), \ - INIT_ID(getstate), \ - INIT_ID(ignore), \ - INIT_ID(importlib), \ - INIT_ID(inf), \ - INIT_ID(intersection), \ - INIT_ID(isatty), \ - INIT_ID(isinstance), \ - INIT_ID(items), \ - INIT_ID(iter), \ - INIT_ID(join), \ - INIT_ID(keys), \ - INIT_ID(lambda), \ - INIT_ID(last_traceback), \ - INIT_ID(last_type), \ - INIT_ID(last_value), \ - INIT_ID(latin1), \ - INIT_ID(len), \ - INIT_ID(line), \ - INIT_ID(lineno), \ - INIT_ID(listcomp), \ - INIT_ID(little), \ - INIT_ID(locale), \ - INIT_ID(match), \ - INIT_ID(metaclass), \ - INIT_ID(mode), \ - INIT_ID(modules), \ - INIT_ID(mro), \ - INIT_ID(msg), \ - INIT_ID(n_fields), \ - INIT_ID(n_sequence_fields), \ - INIT_ID(n_unnamed_fields), \ - INIT_ID(name), \ - INIT_ID(newlines), \ - INIT_ID(next), \ - INIT_ID(obj), \ - INIT_ID(offset), \ - INIT_ID(onceregistry), \ - INIT_ID(opcode), \ - INIT_ID(open), \ - INIT_ID(parent), \ - INIT_ID(partial), \ - INIT_ID(path), \ - INIT_ID(peek), \ - INIT_ID(persistent_id), \ - INIT_ID(persistent_load), \ - INIT_ID(print_file_and_line), \ - INIT_ID(ps1), \ - INIT_ID(ps2), \ - INIT_ID(raw), \ - INIT_ID(read), \ - INIT_ID(read1), \ - INIT_ID(readable), \ - INIT_ID(readall), \ - INIT_ID(readinto), \ - INIT_ID(readinto1), \ - INIT_ID(readline), \ - INIT_ID(reducer_override), \ - INIT_ID(reload), \ - INIT_ID(replace), \ - INIT_ID(reset), \ - INIT_ID(return), \ - INIT_ID(reversed), \ - INIT_ID(seek), \ - INIT_ID(seekable), \ - INIT_ID(send), \ - INIT_ID(setcomp), \ - INIT_ID(setstate), \ - INIT_ID(sort), \ - INIT_ID(stderr), \ - INIT_ID(stdin), \ - INIT_ID(stdout), \ - INIT_ID(strict), \ - INIT_ID(symmetric_difference_update), \ - INIT_ID(tell), \ - INIT_ID(text), \ - INIT_ID(threading), \ - INIT_ID(throw), \ - INIT_ID(top), \ - INIT_ID(truncate), \ - INIT_ID(unraisablehook), \ - INIT_ID(values), \ - INIT_ID(version), \ - INIT_ID(warnings), \ - INIT_ID(warnoptions), \ - INIT_ID(writable), \ - INIT_ID(write), \ - INIT_ID(zipimporter), \ - }, \ - .ascii = { \ - _PyASCIIObject_INIT("\x00"), \ - _PyASCIIObject_INIT("\x01"), \ - _PyASCIIObject_INIT("\x02"), \ - _PyASCIIObject_INIT("\x03"), \ - _PyASCIIObject_INIT("\x04"), \ - _PyASCIIObject_INIT("\x05"), \ - _PyASCIIObject_INIT("\x06"), \ - _PyASCIIObject_INIT("\x07"), \ - _PyASCIIObject_INIT("\x08"), \ - _PyASCIIObject_INIT("\x09"), \ - _PyASCIIObject_INIT("\x0a"), \ - _PyASCIIObject_INIT("\x0b"), \ - _PyASCIIObject_INIT("\x0c"), \ - _PyASCIIObject_INIT("\x0d"), \ - _PyASCIIObject_INIT("\x0e"), \ - _PyASCIIObject_INIT("\x0f"), \ - _PyASCIIObject_INIT("\x10"), \ - _PyASCIIObject_INIT("\x11"), \ - _PyASCIIObject_INIT("\x12"), \ - _PyASCIIObject_INIT("\x13"), \ - _PyASCIIObject_INIT("\x14"), \ - _PyASCIIObject_INIT("\x15"), \ - _PyASCIIObject_INIT("\x16"), \ - _PyASCIIObject_INIT("\x17"), \ - _PyASCIIObject_INIT("\x18"), \ - _PyASCIIObject_INIT("\x19"), \ - _PyASCIIObject_INIT("\x1a"), \ - _PyASCIIObject_INIT("\x1b"), \ - _PyASCIIObject_INIT("\x1c"), \ - _PyASCIIObject_INIT("\x1d"), \ - _PyASCIIObject_INIT("\x1e"), \ - _PyASCIIObject_INIT("\x1f"), \ - _PyASCIIObject_INIT("\x20"), \ - _PyASCIIObject_INIT("\x21"), \ - _PyASCIIObject_INIT("\x22"), \ - _PyASCIIObject_INIT("\x23"), \ - _PyASCIIObject_INIT("\x24"), \ - _PyASCIIObject_INIT("\x25"), \ - _PyASCIIObject_INIT("\x26"), \ - _PyASCIIObject_INIT("\x27"), \ - _PyASCIIObject_INIT("\x28"), \ - _PyASCIIObject_INIT("\x29"), \ - _PyASCIIObject_INIT("\x2a"), \ - _PyASCIIObject_INIT("\x2b"), \ - _PyASCIIObject_INIT("\x2c"), \ - _PyASCIIObject_INIT("\x2d"), \ - _PyASCIIObject_INIT("\x2e"), \ - _PyASCIIObject_INIT("\x2f"), \ - _PyASCIIObject_INIT("\x30"), \ - _PyASCIIObject_INIT("\x31"), \ - _PyASCIIObject_INIT("\x32"), \ - _PyASCIIObject_INIT("\x33"), \ - _PyASCIIObject_INIT("\x34"), \ - _PyASCIIObject_INIT("\x35"), \ - _PyASCIIObject_INIT("\x36"), \ - _PyASCIIObject_INIT("\x37"), \ - _PyASCIIObject_INIT("\x38"), \ - _PyASCIIObject_INIT("\x39"), \ - _PyASCIIObject_INIT("\x3a"), \ - _PyASCIIObject_INIT("\x3b"), \ - _PyASCIIObject_INIT("\x3c"), \ - _PyASCIIObject_INIT("\x3d"), \ - _PyASCIIObject_INIT("\x3e"), \ - _PyASCIIObject_INIT("\x3f"), \ - _PyASCIIObject_INIT("\x40"), \ - _PyASCIIObject_INIT("\x41"), \ - _PyASCIIObject_INIT("\x42"), \ - _PyASCIIObject_INIT("\x43"), \ - _PyASCIIObject_INIT("\x44"), \ - _PyASCIIObject_INIT("\x45"), \ - _PyASCIIObject_INIT("\x46"), \ - _PyASCIIObject_INIT("\x47"), \ - _PyASCIIObject_INIT("\x48"), \ - _PyASCIIObject_INIT("\x49"), \ - _PyASCIIObject_INIT("\x4a"), \ - _PyASCIIObject_INIT("\x4b"), \ - _PyASCIIObject_INIT("\x4c"), \ - _PyASCIIObject_INIT("\x4d"), \ - _PyASCIIObject_INIT("\x4e"), \ - _PyASCIIObject_INIT("\x4f"), \ - _PyASCIIObject_INIT("\x50"), \ - _PyASCIIObject_INIT("\x51"), \ - _PyASCIIObject_INIT("\x52"), \ - _PyASCIIObject_INIT("\x53"), \ - _PyASCIIObject_INIT("\x54"), \ - _PyASCIIObject_INIT("\x55"), \ - _PyASCIIObject_INIT("\x56"), \ - _PyASCIIObject_INIT("\x57"), \ - _PyASCIIObject_INIT("\x58"), \ - _PyASCIIObject_INIT("\x59"), \ - _PyASCIIObject_INIT("\x5a"), \ - _PyASCIIObject_INIT("\x5b"), \ - _PyASCIIObject_INIT("\x5c"), \ - _PyASCIIObject_INIT("\x5d"), \ - _PyASCIIObject_INIT("\x5e"), \ - _PyASCIIObject_INIT("\x5f"), \ - _PyASCIIObject_INIT("\x60"), \ - _PyASCIIObject_INIT("\x61"), \ - _PyASCIIObject_INIT("\x62"), \ - _PyASCIIObject_INIT("\x63"), \ - _PyASCIIObject_INIT("\x64"), \ - _PyASCIIObject_INIT("\x65"), \ - _PyASCIIObject_INIT("\x66"), \ - _PyASCIIObject_INIT("\x67"), \ - _PyASCIIObject_INIT("\x68"), \ - _PyASCIIObject_INIT("\x69"), \ - _PyASCIIObject_INIT("\x6a"), \ - _PyASCIIObject_INIT("\x6b"), \ - _PyASCIIObject_INIT("\x6c"), \ - _PyASCIIObject_INIT("\x6d"), \ - _PyASCIIObject_INIT("\x6e"), \ - _PyASCIIObject_INIT("\x6f"), \ - _PyASCIIObject_INIT("\x70"), \ - _PyASCIIObject_INIT("\x71"), \ - _PyASCIIObject_INIT("\x72"), \ - _PyASCIIObject_INIT("\x73"), \ - _PyASCIIObject_INIT("\x74"), \ - _PyASCIIObject_INIT("\x75"), \ - _PyASCIIObject_INIT("\x76"), \ - _PyASCIIObject_INIT("\x77"), \ - _PyASCIIObject_INIT("\x78"), \ - _PyASCIIObject_INIT("\x79"), \ - _PyASCIIObject_INIT("\x7a"), \ - _PyASCIIObject_INIT("\x7b"), \ - _PyASCIIObject_INIT("\x7c"), \ - _PyASCIIObject_INIT("\x7d"), \ - _PyASCIIObject_INIT("\x7e"), \ - _PyASCIIObject_INIT("\x7f"), \ - }, \ - .latin1 = { \ - _PyUnicode_LATIN1_INIT("\x80"), \ - _PyUnicode_LATIN1_INIT("\x81"), \ - _PyUnicode_LATIN1_INIT("\x82"), \ - _PyUnicode_LATIN1_INIT("\x83"), \ - _PyUnicode_LATIN1_INIT("\x84"), \ - _PyUnicode_LATIN1_INIT("\x85"), \ - _PyUnicode_LATIN1_INIT("\x86"), \ - _PyUnicode_LATIN1_INIT("\x87"), \ - _PyUnicode_LATIN1_INIT("\x88"), \ - _PyUnicode_LATIN1_INIT("\x89"), \ - _PyUnicode_LATIN1_INIT("\x8a"), \ - _PyUnicode_LATIN1_INIT("\x8b"), \ - _PyUnicode_LATIN1_INIT("\x8c"), \ - _PyUnicode_LATIN1_INIT("\x8d"), \ - _PyUnicode_LATIN1_INIT("\x8e"), \ - _PyUnicode_LATIN1_INIT("\x8f"), \ - _PyUnicode_LATIN1_INIT("\x90"), \ - _PyUnicode_LATIN1_INIT("\x91"), \ - _PyUnicode_LATIN1_INIT("\x92"), \ - _PyUnicode_LATIN1_INIT("\x93"), \ - _PyUnicode_LATIN1_INIT("\x94"), \ - _PyUnicode_LATIN1_INIT("\x95"), \ - _PyUnicode_LATIN1_INIT("\x96"), \ - _PyUnicode_LATIN1_INIT("\x97"), \ - _PyUnicode_LATIN1_INIT("\x98"), \ - _PyUnicode_LATIN1_INIT("\x99"), \ - _PyUnicode_LATIN1_INIT("\x9a"), \ - _PyUnicode_LATIN1_INIT("\x9b"), \ - _PyUnicode_LATIN1_INIT("\x9c"), \ - _PyUnicode_LATIN1_INIT("\x9d"), \ - _PyUnicode_LATIN1_INIT("\x9e"), \ - _PyUnicode_LATIN1_INIT("\x9f"), \ - _PyUnicode_LATIN1_INIT("\xa0"), \ - _PyUnicode_LATIN1_INIT("\xa1"), \ - _PyUnicode_LATIN1_INIT("\xa2"), \ - _PyUnicode_LATIN1_INIT("\xa3"), \ - _PyUnicode_LATIN1_INIT("\xa4"), \ - _PyUnicode_LATIN1_INIT("\xa5"), \ - _PyUnicode_LATIN1_INIT("\xa6"), \ - _PyUnicode_LATIN1_INIT("\xa7"), \ - _PyUnicode_LATIN1_INIT("\xa8"), \ - _PyUnicode_LATIN1_INIT("\xa9"), \ - _PyUnicode_LATIN1_INIT("\xaa"), \ - _PyUnicode_LATIN1_INIT("\xab"), \ - _PyUnicode_LATIN1_INIT("\xac"), \ - _PyUnicode_LATIN1_INIT("\xad"), \ - _PyUnicode_LATIN1_INIT("\xae"), \ - _PyUnicode_LATIN1_INIT("\xaf"), \ - _PyUnicode_LATIN1_INIT("\xb0"), \ - _PyUnicode_LATIN1_INIT("\xb1"), \ - _PyUnicode_LATIN1_INIT("\xb2"), \ - _PyUnicode_LATIN1_INIT("\xb3"), \ - _PyUnicode_LATIN1_INIT("\xb4"), \ - _PyUnicode_LATIN1_INIT("\xb5"), \ - _PyUnicode_LATIN1_INIT("\xb6"), \ - _PyUnicode_LATIN1_INIT("\xb7"), \ - _PyUnicode_LATIN1_INIT("\xb8"), \ - _PyUnicode_LATIN1_INIT("\xb9"), \ - _PyUnicode_LATIN1_INIT("\xba"), \ - _PyUnicode_LATIN1_INIT("\xbb"), \ - _PyUnicode_LATIN1_INIT("\xbc"), \ - _PyUnicode_LATIN1_INIT("\xbd"), \ - _PyUnicode_LATIN1_INIT("\xbe"), \ - _PyUnicode_LATIN1_INIT("\xbf"), \ - _PyUnicode_LATIN1_INIT("\xc0"), \ - _PyUnicode_LATIN1_INIT("\xc1"), \ - _PyUnicode_LATIN1_INIT("\xc2"), \ - _PyUnicode_LATIN1_INIT("\xc3"), \ - _PyUnicode_LATIN1_INIT("\xc4"), \ - _PyUnicode_LATIN1_INIT("\xc5"), \ - _PyUnicode_LATIN1_INIT("\xc6"), \ - _PyUnicode_LATIN1_INIT("\xc7"), \ - _PyUnicode_LATIN1_INIT("\xc8"), \ - _PyUnicode_LATIN1_INIT("\xc9"), \ - _PyUnicode_LATIN1_INIT("\xca"), \ - _PyUnicode_LATIN1_INIT("\xcb"), \ - _PyUnicode_LATIN1_INIT("\xcc"), \ - _PyUnicode_LATIN1_INIT("\xcd"), \ - _PyUnicode_LATIN1_INIT("\xce"), \ - _PyUnicode_LATIN1_INIT("\xcf"), \ - _PyUnicode_LATIN1_INIT("\xd0"), \ - _PyUnicode_LATIN1_INIT("\xd1"), \ - _PyUnicode_LATIN1_INIT("\xd2"), \ - _PyUnicode_LATIN1_INIT("\xd3"), \ - _PyUnicode_LATIN1_INIT("\xd4"), \ - _PyUnicode_LATIN1_INIT("\xd5"), \ - _PyUnicode_LATIN1_INIT("\xd6"), \ - _PyUnicode_LATIN1_INIT("\xd7"), \ - _PyUnicode_LATIN1_INIT("\xd8"), \ - _PyUnicode_LATIN1_INIT("\xd9"), \ - _PyUnicode_LATIN1_INIT("\xda"), \ - _PyUnicode_LATIN1_INIT("\xdb"), \ - _PyUnicode_LATIN1_INIT("\xdc"), \ - _PyUnicode_LATIN1_INIT("\xdd"), \ - _PyUnicode_LATIN1_INIT("\xde"), \ - _PyUnicode_LATIN1_INIT("\xdf"), \ - _PyUnicode_LATIN1_INIT("\xe0"), \ - _PyUnicode_LATIN1_INIT("\xe1"), \ - _PyUnicode_LATIN1_INIT("\xe2"), \ - _PyUnicode_LATIN1_INIT("\xe3"), \ - _PyUnicode_LATIN1_INIT("\xe4"), \ - _PyUnicode_LATIN1_INIT("\xe5"), \ - _PyUnicode_LATIN1_INIT("\xe6"), \ - _PyUnicode_LATIN1_INIT("\xe7"), \ - _PyUnicode_LATIN1_INIT("\xe8"), \ - _PyUnicode_LATIN1_INIT("\xe9"), \ - _PyUnicode_LATIN1_INIT("\xea"), \ - _PyUnicode_LATIN1_INIT("\xeb"), \ - _PyUnicode_LATIN1_INIT("\xec"), \ - _PyUnicode_LATIN1_INIT("\xed"), \ - _PyUnicode_LATIN1_INIT("\xee"), \ - _PyUnicode_LATIN1_INIT("\xef"), \ - _PyUnicode_LATIN1_INIT("\xf0"), \ - _PyUnicode_LATIN1_INIT("\xf1"), \ - _PyUnicode_LATIN1_INIT("\xf2"), \ - _PyUnicode_LATIN1_INIT("\xf3"), \ - _PyUnicode_LATIN1_INIT("\xf4"), \ - _PyUnicode_LATIN1_INIT("\xf5"), \ - _PyUnicode_LATIN1_INIT("\xf6"), \ - _PyUnicode_LATIN1_INIT("\xf7"), \ - _PyUnicode_LATIN1_INIT("\xf8"), \ - _PyUnicode_LATIN1_INIT("\xf9"), \ - _PyUnicode_LATIN1_INIT("\xfa"), \ - _PyUnicode_LATIN1_INIT("\xfb"), \ - _PyUnicode_LATIN1_INIT("\xfc"), \ - _PyUnicode_LATIN1_INIT("\xfd"), \ - _PyUnicode_LATIN1_INIT("\xfe"), \ - _PyUnicode_LATIN1_INIT("\xff"), \ - }, \ - }, \ - \ - .tuple_empty = { \ - .ob_base = _PyVarObject_IMMORTAL_INIT(&PyTuple_Type, 0) \ - }, \ - }, \ -} -/* End auto-generated code */ - +#include "pycore_runtime_init_generated.h" #ifdef __cplusplus } diff --git a/src/external/windows/include/python/internal/pycore_runtime_init_generated.h b/src/external/windows/include/python/internal/pycore_runtime_init_generated.h new file mode 100644 index 00000000..5ec19c08 --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_runtime_init_generated.h @@ -0,0 +1,1525 @@ +#ifndef Py_INTERNAL_RUNTIME_INIT_GENERATED_H +#define Py_INTERNAL_RUNTIME_INIT_GENERATED_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +/* The following is auto-generated by Tools/build/generate_global_objects.py. */ +#define _Py_small_ints_INIT { \ + _PyLong_DIGIT_INIT(-5), \ + _PyLong_DIGIT_INIT(-4), \ + _PyLong_DIGIT_INIT(-3), \ + _PyLong_DIGIT_INIT(-2), \ + _PyLong_DIGIT_INIT(-1), \ + _PyLong_DIGIT_INIT(0), \ + _PyLong_DIGIT_INIT(1), \ + _PyLong_DIGIT_INIT(2), \ + _PyLong_DIGIT_INIT(3), \ + _PyLong_DIGIT_INIT(4), \ + _PyLong_DIGIT_INIT(5), \ + _PyLong_DIGIT_INIT(6), \ + _PyLong_DIGIT_INIT(7), \ + _PyLong_DIGIT_INIT(8), \ + _PyLong_DIGIT_INIT(9), \ + _PyLong_DIGIT_INIT(10), \ + _PyLong_DIGIT_INIT(11), \ + _PyLong_DIGIT_INIT(12), \ + _PyLong_DIGIT_INIT(13), \ + _PyLong_DIGIT_INIT(14), \ + _PyLong_DIGIT_INIT(15), \ + _PyLong_DIGIT_INIT(16), \ + _PyLong_DIGIT_INIT(17), \ + _PyLong_DIGIT_INIT(18), \ + _PyLong_DIGIT_INIT(19), \ + _PyLong_DIGIT_INIT(20), \ + _PyLong_DIGIT_INIT(21), \ + _PyLong_DIGIT_INIT(22), \ + _PyLong_DIGIT_INIT(23), \ + _PyLong_DIGIT_INIT(24), \ + _PyLong_DIGIT_INIT(25), \ + _PyLong_DIGIT_INIT(26), \ + _PyLong_DIGIT_INIT(27), \ + _PyLong_DIGIT_INIT(28), \ + _PyLong_DIGIT_INIT(29), \ + _PyLong_DIGIT_INIT(30), \ + _PyLong_DIGIT_INIT(31), \ + _PyLong_DIGIT_INIT(32), \ + _PyLong_DIGIT_INIT(33), \ + _PyLong_DIGIT_INIT(34), \ + _PyLong_DIGIT_INIT(35), \ + _PyLong_DIGIT_INIT(36), \ + _PyLong_DIGIT_INIT(37), \ + _PyLong_DIGIT_INIT(38), \ + _PyLong_DIGIT_INIT(39), \ + _PyLong_DIGIT_INIT(40), \ + _PyLong_DIGIT_INIT(41), \ + _PyLong_DIGIT_INIT(42), \ + _PyLong_DIGIT_INIT(43), \ + _PyLong_DIGIT_INIT(44), \ + _PyLong_DIGIT_INIT(45), \ + _PyLong_DIGIT_INIT(46), \ + _PyLong_DIGIT_INIT(47), \ + _PyLong_DIGIT_INIT(48), \ + _PyLong_DIGIT_INIT(49), \ + _PyLong_DIGIT_INIT(50), \ + _PyLong_DIGIT_INIT(51), \ + _PyLong_DIGIT_INIT(52), \ + _PyLong_DIGIT_INIT(53), \ + _PyLong_DIGIT_INIT(54), \ + _PyLong_DIGIT_INIT(55), \ + _PyLong_DIGIT_INIT(56), \ + _PyLong_DIGIT_INIT(57), \ + _PyLong_DIGIT_INIT(58), \ + _PyLong_DIGIT_INIT(59), \ + _PyLong_DIGIT_INIT(60), \ + _PyLong_DIGIT_INIT(61), \ + _PyLong_DIGIT_INIT(62), \ + _PyLong_DIGIT_INIT(63), \ + _PyLong_DIGIT_INIT(64), \ + _PyLong_DIGIT_INIT(65), \ + _PyLong_DIGIT_INIT(66), \ + _PyLong_DIGIT_INIT(67), \ + _PyLong_DIGIT_INIT(68), \ + _PyLong_DIGIT_INIT(69), \ + _PyLong_DIGIT_INIT(70), \ + _PyLong_DIGIT_INIT(71), \ + _PyLong_DIGIT_INIT(72), \ + _PyLong_DIGIT_INIT(73), \ + _PyLong_DIGIT_INIT(74), \ + _PyLong_DIGIT_INIT(75), \ + _PyLong_DIGIT_INIT(76), \ + _PyLong_DIGIT_INIT(77), \ + _PyLong_DIGIT_INIT(78), \ + _PyLong_DIGIT_INIT(79), \ + _PyLong_DIGIT_INIT(80), \ + _PyLong_DIGIT_INIT(81), \ + _PyLong_DIGIT_INIT(82), \ + _PyLong_DIGIT_INIT(83), \ + _PyLong_DIGIT_INIT(84), \ + _PyLong_DIGIT_INIT(85), \ + _PyLong_DIGIT_INIT(86), \ + _PyLong_DIGIT_INIT(87), \ + _PyLong_DIGIT_INIT(88), \ + _PyLong_DIGIT_INIT(89), \ + _PyLong_DIGIT_INIT(90), \ + _PyLong_DIGIT_INIT(91), \ + _PyLong_DIGIT_INIT(92), \ + _PyLong_DIGIT_INIT(93), \ + _PyLong_DIGIT_INIT(94), \ + _PyLong_DIGIT_INIT(95), \ + _PyLong_DIGIT_INIT(96), \ + _PyLong_DIGIT_INIT(97), \ + _PyLong_DIGIT_INIT(98), \ + _PyLong_DIGIT_INIT(99), \ + _PyLong_DIGIT_INIT(100), \ + _PyLong_DIGIT_INIT(101), \ + _PyLong_DIGIT_INIT(102), \ + _PyLong_DIGIT_INIT(103), \ + _PyLong_DIGIT_INIT(104), \ + _PyLong_DIGIT_INIT(105), \ + _PyLong_DIGIT_INIT(106), \ + _PyLong_DIGIT_INIT(107), \ + _PyLong_DIGIT_INIT(108), \ + _PyLong_DIGIT_INIT(109), \ + _PyLong_DIGIT_INIT(110), \ + _PyLong_DIGIT_INIT(111), \ + _PyLong_DIGIT_INIT(112), \ + _PyLong_DIGIT_INIT(113), \ + _PyLong_DIGIT_INIT(114), \ + _PyLong_DIGIT_INIT(115), \ + _PyLong_DIGIT_INIT(116), \ + _PyLong_DIGIT_INIT(117), \ + _PyLong_DIGIT_INIT(118), \ + _PyLong_DIGIT_INIT(119), \ + _PyLong_DIGIT_INIT(120), \ + _PyLong_DIGIT_INIT(121), \ + _PyLong_DIGIT_INIT(122), \ + _PyLong_DIGIT_INIT(123), \ + _PyLong_DIGIT_INIT(124), \ + _PyLong_DIGIT_INIT(125), \ + _PyLong_DIGIT_INIT(126), \ + _PyLong_DIGIT_INIT(127), \ + _PyLong_DIGIT_INIT(128), \ + _PyLong_DIGIT_INIT(129), \ + _PyLong_DIGIT_INIT(130), \ + _PyLong_DIGIT_INIT(131), \ + _PyLong_DIGIT_INIT(132), \ + _PyLong_DIGIT_INIT(133), \ + _PyLong_DIGIT_INIT(134), \ + _PyLong_DIGIT_INIT(135), \ + _PyLong_DIGIT_INIT(136), \ + _PyLong_DIGIT_INIT(137), \ + _PyLong_DIGIT_INIT(138), \ + _PyLong_DIGIT_INIT(139), \ + _PyLong_DIGIT_INIT(140), \ + _PyLong_DIGIT_INIT(141), \ + _PyLong_DIGIT_INIT(142), \ + _PyLong_DIGIT_INIT(143), \ + _PyLong_DIGIT_INIT(144), \ + _PyLong_DIGIT_INIT(145), \ + _PyLong_DIGIT_INIT(146), \ + _PyLong_DIGIT_INIT(147), \ + _PyLong_DIGIT_INIT(148), \ + _PyLong_DIGIT_INIT(149), \ + _PyLong_DIGIT_INIT(150), \ + _PyLong_DIGIT_INIT(151), \ + _PyLong_DIGIT_INIT(152), \ + _PyLong_DIGIT_INIT(153), \ + _PyLong_DIGIT_INIT(154), \ + _PyLong_DIGIT_INIT(155), \ + _PyLong_DIGIT_INIT(156), \ + _PyLong_DIGIT_INIT(157), \ + _PyLong_DIGIT_INIT(158), \ + _PyLong_DIGIT_INIT(159), \ + _PyLong_DIGIT_INIT(160), \ + _PyLong_DIGIT_INIT(161), \ + _PyLong_DIGIT_INIT(162), \ + _PyLong_DIGIT_INIT(163), \ + _PyLong_DIGIT_INIT(164), \ + _PyLong_DIGIT_INIT(165), \ + _PyLong_DIGIT_INIT(166), \ + _PyLong_DIGIT_INIT(167), \ + _PyLong_DIGIT_INIT(168), \ + _PyLong_DIGIT_INIT(169), \ + _PyLong_DIGIT_INIT(170), \ + _PyLong_DIGIT_INIT(171), \ + _PyLong_DIGIT_INIT(172), \ + _PyLong_DIGIT_INIT(173), \ + _PyLong_DIGIT_INIT(174), \ + _PyLong_DIGIT_INIT(175), \ + _PyLong_DIGIT_INIT(176), \ + _PyLong_DIGIT_INIT(177), \ + _PyLong_DIGIT_INIT(178), \ + _PyLong_DIGIT_INIT(179), \ + _PyLong_DIGIT_INIT(180), \ + _PyLong_DIGIT_INIT(181), \ + _PyLong_DIGIT_INIT(182), \ + _PyLong_DIGIT_INIT(183), \ + _PyLong_DIGIT_INIT(184), \ + _PyLong_DIGIT_INIT(185), \ + _PyLong_DIGIT_INIT(186), \ + _PyLong_DIGIT_INIT(187), \ + _PyLong_DIGIT_INIT(188), \ + _PyLong_DIGIT_INIT(189), \ + _PyLong_DIGIT_INIT(190), \ + _PyLong_DIGIT_INIT(191), \ + _PyLong_DIGIT_INIT(192), \ + _PyLong_DIGIT_INIT(193), \ + _PyLong_DIGIT_INIT(194), \ + _PyLong_DIGIT_INIT(195), \ + _PyLong_DIGIT_INIT(196), \ + _PyLong_DIGIT_INIT(197), \ + _PyLong_DIGIT_INIT(198), \ + _PyLong_DIGIT_INIT(199), \ + _PyLong_DIGIT_INIT(200), \ + _PyLong_DIGIT_INIT(201), \ + _PyLong_DIGIT_INIT(202), \ + _PyLong_DIGIT_INIT(203), \ + _PyLong_DIGIT_INIT(204), \ + _PyLong_DIGIT_INIT(205), \ + _PyLong_DIGIT_INIT(206), \ + _PyLong_DIGIT_INIT(207), \ + _PyLong_DIGIT_INIT(208), \ + _PyLong_DIGIT_INIT(209), \ + _PyLong_DIGIT_INIT(210), \ + _PyLong_DIGIT_INIT(211), \ + _PyLong_DIGIT_INIT(212), \ + _PyLong_DIGIT_INIT(213), \ + _PyLong_DIGIT_INIT(214), \ + _PyLong_DIGIT_INIT(215), \ + _PyLong_DIGIT_INIT(216), \ + _PyLong_DIGIT_INIT(217), \ + _PyLong_DIGIT_INIT(218), \ + _PyLong_DIGIT_INIT(219), \ + _PyLong_DIGIT_INIT(220), \ + _PyLong_DIGIT_INIT(221), \ + _PyLong_DIGIT_INIT(222), \ + _PyLong_DIGIT_INIT(223), \ + _PyLong_DIGIT_INIT(224), \ + _PyLong_DIGIT_INIT(225), \ + _PyLong_DIGIT_INIT(226), \ + _PyLong_DIGIT_INIT(227), \ + _PyLong_DIGIT_INIT(228), \ + _PyLong_DIGIT_INIT(229), \ + _PyLong_DIGIT_INIT(230), \ + _PyLong_DIGIT_INIT(231), \ + _PyLong_DIGIT_INIT(232), \ + _PyLong_DIGIT_INIT(233), \ + _PyLong_DIGIT_INIT(234), \ + _PyLong_DIGIT_INIT(235), \ + _PyLong_DIGIT_INIT(236), \ + _PyLong_DIGIT_INIT(237), \ + _PyLong_DIGIT_INIT(238), \ + _PyLong_DIGIT_INIT(239), \ + _PyLong_DIGIT_INIT(240), \ + _PyLong_DIGIT_INIT(241), \ + _PyLong_DIGIT_INIT(242), \ + _PyLong_DIGIT_INIT(243), \ + _PyLong_DIGIT_INIT(244), \ + _PyLong_DIGIT_INIT(245), \ + _PyLong_DIGIT_INIT(246), \ + _PyLong_DIGIT_INIT(247), \ + _PyLong_DIGIT_INIT(248), \ + _PyLong_DIGIT_INIT(249), \ + _PyLong_DIGIT_INIT(250), \ + _PyLong_DIGIT_INIT(251), \ + _PyLong_DIGIT_INIT(252), \ + _PyLong_DIGIT_INIT(253), \ + _PyLong_DIGIT_INIT(254), \ + _PyLong_DIGIT_INIT(255), \ + _PyLong_DIGIT_INIT(256), \ +} + +#define _Py_bytes_characters_INIT { \ + _PyBytes_CHAR_INIT(0), \ + _PyBytes_CHAR_INIT(1), \ + _PyBytes_CHAR_INIT(2), \ + _PyBytes_CHAR_INIT(3), \ + _PyBytes_CHAR_INIT(4), \ + _PyBytes_CHAR_INIT(5), \ + _PyBytes_CHAR_INIT(6), \ + _PyBytes_CHAR_INIT(7), \ + _PyBytes_CHAR_INIT(8), \ + _PyBytes_CHAR_INIT(9), \ + _PyBytes_CHAR_INIT(10), \ + _PyBytes_CHAR_INIT(11), \ + _PyBytes_CHAR_INIT(12), \ + _PyBytes_CHAR_INIT(13), \ + _PyBytes_CHAR_INIT(14), \ + _PyBytes_CHAR_INIT(15), \ + _PyBytes_CHAR_INIT(16), \ + _PyBytes_CHAR_INIT(17), \ + _PyBytes_CHAR_INIT(18), \ + _PyBytes_CHAR_INIT(19), \ + _PyBytes_CHAR_INIT(20), \ + _PyBytes_CHAR_INIT(21), \ + _PyBytes_CHAR_INIT(22), \ + _PyBytes_CHAR_INIT(23), \ + _PyBytes_CHAR_INIT(24), \ + _PyBytes_CHAR_INIT(25), \ + _PyBytes_CHAR_INIT(26), \ + _PyBytes_CHAR_INIT(27), \ + _PyBytes_CHAR_INIT(28), \ + _PyBytes_CHAR_INIT(29), \ + _PyBytes_CHAR_INIT(30), \ + _PyBytes_CHAR_INIT(31), \ + _PyBytes_CHAR_INIT(32), \ + _PyBytes_CHAR_INIT(33), \ + _PyBytes_CHAR_INIT(34), \ + _PyBytes_CHAR_INIT(35), \ + _PyBytes_CHAR_INIT(36), \ + _PyBytes_CHAR_INIT(37), \ + _PyBytes_CHAR_INIT(38), \ + _PyBytes_CHAR_INIT(39), \ + _PyBytes_CHAR_INIT(40), \ + _PyBytes_CHAR_INIT(41), \ + _PyBytes_CHAR_INIT(42), \ + _PyBytes_CHAR_INIT(43), \ + _PyBytes_CHAR_INIT(44), \ + _PyBytes_CHAR_INIT(45), \ + _PyBytes_CHAR_INIT(46), \ + _PyBytes_CHAR_INIT(47), \ + _PyBytes_CHAR_INIT(48), \ + _PyBytes_CHAR_INIT(49), \ + _PyBytes_CHAR_INIT(50), \ + _PyBytes_CHAR_INIT(51), \ + _PyBytes_CHAR_INIT(52), \ + _PyBytes_CHAR_INIT(53), \ + _PyBytes_CHAR_INIT(54), \ + _PyBytes_CHAR_INIT(55), \ + _PyBytes_CHAR_INIT(56), \ + _PyBytes_CHAR_INIT(57), \ + _PyBytes_CHAR_INIT(58), \ + _PyBytes_CHAR_INIT(59), \ + _PyBytes_CHAR_INIT(60), \ + _PyBytes_CHAR_INIT(61), \ + _PyBytes_CHAR_INIT(62), \ + _PyBytes_CHAR_INIT(63), \ + _PyBytes_CHAR_INIT(64), \ + _PyBytes_CHAR_INIT(65), \ + _PyBytes_CHAR_INIT(66), \ + _PyBytes_CHAR_INIT(67), \ + _PyBytes_CHAR_INIT(68), \ + _PyBytes_CHAR_INIT(69), \ + _PyBytes_CHAR_INIT(70), \ + _PyBytes_CHAR_INIT(71), \ + _PyBytes_CHAR_INIT(72), \ + _PyBytes_CHAR_INIT(73), \ + _PyBytes_CHAR_INIT(74), \ + _PyBytes_CHAR_INIT(75), \ + _PyBytes_CHAR_INIT(76), \ + _PyBytes_CHAR_INIT(77), \ + _PyBytes_CHAR_INIT(78), \ + _PyBytes_CHAR_INIT(79), \ + _PyBytes_CHAR_INIT(80), \ + _PyBytes_CHAR_INIT(81), \ + _PyBytes_CHAR_INIT(82), \ + _PyBytes_CHAR_INIT(83), \ + _PyBytes_CHAR_INIT(84), \ + _PyBytes_CHAR_INIT(85), \ + _PyBytes_CHAR_INIT(86), \ + _PyBytes_CHAR_INIT(87), \ + _PyBytes_CHAR_INIT(88), \ + _PyBytes_CHAR_INIT(89), \ + _PyBytes_CHAR_INIT(90), \ + _PyBytes_CHAR_INIT(91), \ + _PyBytes_CHAR_INIT(92), \ + _PyBytes_CHAR_INIT(93), \ + _PyBytes_CHAR_INIT(94), \ + _PyBytes_CHAR_INIT(95), \ + _PyBytes_CHAR_INIT(96), \ + _PyBytes_CHAR_INIT(97), \ + _PyBytes_CHAR_INIT(98), \ + _PyBytes_CHAR_INIT(99), \ + _PyBytes_CHAR_INIT(100), \ + _PyBytes_CHAR_INIT(101), \ + _PyBytes_CHAR_INIT(102), \ + _PyBytes_CHAR_INIT(103), \ + _PyBytes_CHAR_INIT(104), \ + _PyBytes_CHAR_INIT(105), \ + _PyBytes_CHAR_INIT(106), \ + _PyBytes_CHAR_INIT(107), \ + _PyBytes_CHAR_INIT(108), \ + _PyBytes_CHAR_INIT(109), \ + _PyBytes_CHAR_INIT(110), \ + _PyBytes_CHAR_INIT(111), \ + _PyBytes_CHAR_INIT(112), \ + _PyBytes_CHAR_INIT(113), \ + _PyBytes_CHAR_INIT(114), \ + _PyBytes_CHAR_INIT(115), \ + _PyBytes_CHAR_INIT(116), \ + _PyBytes_CHAR_INIT(117), \ + _PyBytes_CHAR_INIT(118), \ + _PyBytes_CHAR_INIT(119), \ + _PyBytes_CHAR_INIT(120), \ + _PyBytes_CHAR_INIT(121), \ + _PyBytes_CHAR_INIT(122), \ + _PyBytes_CHAR_INIT(123), \ + _PyBytes_CHAR_INIT(124), \ + _PyBytes_CHAR_INIT(125), \ + _PyBytes_CHAR_INIT(126), \ + _PyBytes_CHAR_INIT(127), \ + _PyBytes_CHAR_INIT(128), \ + _PyBytes_CHAR_INIT(129), \ + _PyBytes_CHAR_INIT(130), \ + _PyBytes_CHAR_INIT(131), \ + _PyBytes_CHAR_INIT(132), \ + _PyBytes_CHAR_INIT(133), \ + _PyBytes_CHAR_INIT(134), \ + _PyBytes_CHAR_INIT(135), \ + _PyBytes_CHAR_INIT(136), \ + _PyBytes_CHAR_INIT(137), \ + _PyBytes_CHAR_INIT(138), \ + _PyBytes_CHAR_INIT(139), \ + _PyBytes_CHAR_INIT(140), \ + _PyBytes_CHAR_INIT(141), \ + _PyBytes_CHAR_INIT(142), \ + _PyBytes_CHAR_INIT(143), \ + _PyBytes_CHAR_INIT(144), \ + _PyBytes_CHAR_INIT(145), \ + _PyBytes_CHAR_INIT(146), \ + _PyBytes_CHAR_INIT(147), \ + _PyBytes_CHAR_INIT(148), \ + _PyBytes_CHAR_INIT(149), \ + _PyBytes_CHAR_INIT(150), \ + _PyBytes_CHAR_INIT(151), \ + _PyBytes_CHAR_INIT(152), \ + _PyBytes_CHAR_INIT(153), \ + _PyBytes_CHAR_INIT(154), \ + _PyBytes_CHAR_INIT(155), \ + _PyBytes_CHAR_INIT(156), \ + _PyBytes_CHAR_INIT(157), \ + _PyBytes_CHAR_INIT(158), \ + _PyBytes_CHAR_INIT(159), \ + _PyBytes_CHAR_INIT(160), \ + _PyBytes_CHAR_INIT(161), \ + _PyBytes_CHAR_INIT(162), \ + _PyBytes_CHAR_INIT(163), \ + _PyBytes_CHAR_INIT(164), \ + _PyBytes_CHAR_INIT(165), \ + _PyBytes_CHAR_INIT(166), \ + _PyBytes_CHAR_INIT(167), \ + _PyBytes_CHAR_INIT(168), \ + _PyBytes_CHAR_INIT(169), \ + _PyBytes_CHAR_INIT(170), \ + _PyBytes_CHAR_INIT(171), \ + _PyBytes_CHAR_INIT(172), \ + _PyBytes_CHAR_INIT(173), \ + _PyBytes_CHAR_INIT(174), \ + _PyBytes_CHAR_INIT(175), \ + _PyBytes_CHAR_INIT(176), \ + _PyBytes_CHAR_INIT(177), \ + _PyBytes_CHAR_INIT(178), \ + _PyBytes_CHAR_INIT(179), \ + _PyBytes_CHAR_INIT(180), \ + _PyBytes_CHAR_INIT(181), \ + _PyBytes_CHAR_INIT(182), \ + _PyBytes_CHAR_INIT(183), \ + _PyBytes_CHAR_INIT(184), \ + _PyBytes_CHAR_INIT(185), \ + _PyBytes_CHAR_INIT(186), \ + _PyBytes_CHAR_INIT(187), \ + _PyBytes_CHAR_INIT(188), \ + _PyBytes_CHAR_INIT(189), \ + _PyBytes_CHAR_INIT(190), \ + _PyBytes_CHAR_INIT(191), \ + _PyBytes_CHAR_INIT(192), \ + _PyBytes_CHAR_INIT(193), \ + _PyBytes_CHAR_INIT(194), \ + _PyBytes_CHAR_INIT(195), \ + _PyBytes_CHAR_INIT(196), \ + _PyBytes_CHAR_INIT(197), \ + _PyBytes_CHAR_INIT(198), \ + _PyBytes_CHAR_INIT(199), \ + _PyBytes_CHAR_INIT(200), \ + _PyBytes_CHAR_INIT(201), \ + _PyBytes_CHAR_INIT(202), \ + _PyBytes_CHAR_INIT(203), \ + _PyBytes_CHAR_INIT(204), \ + _PyBytes_CHAR_INIT(205), \ + _PyBytes_CHAR_INIT(206), \ + _PyBytes_CHAR_INIT(207), \ + _PyBytes_CHAR_INIT(208), \ + _PyBytes_CHAR_INIT(209), \ + _PyBytes_CHAR_INIT(210), \ + _PyBytes_CHAR_INIT(211), \ + _PyBytes_CHAR_INIT(212), \ + _PyBytes_CHAR_INIT(213), \ + _PyBytes_CHAR_INIT(214), \ + _PyBytes_CHAR_INIT(215), \ + _PyBytes_CHAR_INIT(216), \ + _PyBytes_CHAR_INIT(217), \ + _PyBytes_CHAR_INIT(218), \ + _PyBytes_CHAR_INIT(219), \ + _PyBytes_CHAR_INIT(220), \ + _PyBytes_CHAR_INIT(221), \ + _PyBytes_CHAR_INIT(222), \ + _PyBytes_CHAR_INIT(223), \ + _PyBytes_CHAR_INIT(224), \ + _PyBytes_CHAR_INIT(225), \ + _PyBytes_CHAR_INIT(226), \ + _PyBytes_CHAR_INIT(227), \ + _PyBytes_CHAR_INIT(228), \ + _PyBytes_CHAR_INIT(229), \ + _PyBytes_CHAR_INIT(230), \ + _PyBytes_CHAR_INIT(231), \ + _PyBytes_CHAR_INIT(232), \ + _PyBytes_CHAR_INIT(233), \ + _PyBytes_CHAR_INIT(234), \ + _PyBytes_CHAR_INIT(235), \ + _PyBytes_CHAR_INIT(236), \ + _PyBytes_CHAR_INIT(237), \ + _PyBytes_CHAR_INIT(238), \ + _PyBytes_CHAR_INIT(239), \ + _PyBytes_CHAR_INIT(240), \ + _PyBytes_CHAR_INIT(241), \ + _PyBytes_CHAR_INIT(242), \ + _PyBytes_CHAR_INIT(243), \ + _PyBytes_CHAR_INIT(244), \ + _PyBytes_CHAR_INIT(245), \ + _PyBytes_CHAR_INIT(246), \ + _PyBytes_CHAR_INIT(247), \ + _PyBytes_CHAR_INIT(248), \ + _PyBytes_CHAR_INIT(249), \ + _PyBytes_CHAR_INIT(250), \ + _PyBytes_CHAR_INIT(251), \ + _PyBytes_CHAR_INIT(252), \ + _PyBytes_CHAR_INIT(253), \ + _PyBytes_CHAR_INIT(254), \ + _PyBytes_CHAR_INIT(255), \ +} + +#define _Py_str_literals_INIT { \ + INIT_STR(anon_dictcomp, ""), \ + INIT_STR(anon_genexpr, ""), \ + INIT_STR(anon_lambda, ""), \ + INIT_STR(anon_listcomp, ""), \ + INIT_STR(anon_module, ""), \ + INIT_STR(anon_setcomp, ""), \ + INIT_STR(anon_string, ""), \ + INIT_STR(anon_unknown, ""), \ + INIT_STR(close_br, "}"), \ + INIT_STR(dbl_close_br, "}}"), \ + INIT_STR(dbl_open_br, "{{"), \ + INIT_STR(dbl_percent, "%%"), \ + INIT_STR(defaults, ".defaults"), \ + INIT_STR(dot, "."), \ + INIT_STR(dot_locals, "."), \ + INIT_STR(empty, ""), \ + INIT_STR(generic_base, ".generic_base"), \ + INIT_STR(json_decoder, "json.decoder"), \ + INIT_STR(kwdefaults, ".kwdefaults"), \ + INIT_STR(list_err, "list index out of range"), \ + INIT_STR(newline, "\n"), \ + INIT_STR(open_br, "{"), \ + INIT_STR(percent, "%"), \ + INIT_STR(shim_name, ""), \ + INIT_STR(type_params, ".type_params"), \ + INIT_STR(utf_8, "utf-8"), \ +} + +#define _Py_str_identifiers_INIT { \ + INIT_ID(CANCELLED), \ + INIT_ID(FINISHED), \ + INIT_ID(False), \ + INIT_ID(JSONDecodeError), \ + INIT_ID(PENDING), \ + INIT_ID(Py_Repr), \ + INIT_ID(TextIOWrapper), \ + INIT_ID(True), \ + INIT_ID(WarningMessage), \ + INIT_ID(_), \ + INIT_ID(_WindowsConsoleIO), \ + INIT_ID(__IOBase_closed), \ + INIT_ID(__abc_tpflags__), \ + INIT_ID(__abs__), \ + INIT_ID(__abstractmethods__), \ + INIT_ID(__add__), \ + INIT_ID(__aenter__), \ + INIT_ID(__aexit__), \ + INIT_ID(__aiter__), \ + INIT_ID(__all__), \ + INIT_ID(__and__), \ + INIT_ID(__anext__), \ + INIT_ID(__annotations__), \ + INIT_ID(__args__), \ + INIT_ID(__asyncio_running_event_loop__), \ + INIT_ID(__await__), \ + INIT_ID(__bases__), \ + INIT_ID(__bool__), \ + INIT_ID(__buffer__), \ + INIT_ID(__build_class__), \ + INIT_ID(__builtins__), \ + INIT_ID(__bytes__), \ + INIT_ID(__call__), \ + INIT_ID(__cantrace__), \ + INIT_ID(__class__), \ + INIT_ID(__class_getitem__), \ + INIT_ID(__classcell__), \ + INIT_ID(__classdict__), \ + INIT_ID(__classdictcell__), \ + INIT_ID(__complex__), \ + INIT_ID(__contains__), \ + INIT_ID(__copy__), \ + INIT_ID(__ctypes_from_outparam__), \ + INIT_ID(__del__), \ + INIT_ID(__delattr__), \ + INIT_ID(__delete__), \ + INIT_ID(__delitem__), \ + INIT_ID(__dict__), \ + INIT_ID(__dictoffset__), \ + INIT_ID(__dir__), \ + INIT_ID(__divmod__), \ + INIT_ID(__doc__), \ + INIT_ID(__enter__), \ + INIT_ID(__eq__), \ + INIT_ID(__exit__), \ + INIT_ID(__file__), \ + INIT_ID(__float__), \ + INIT_ID(__floordiv__), \ + INIT_ID(__format__), \ + INIT_ID(__fspath__), \ + INIT_ID(__ge__), \ + INIT_ID(__get__), \ + INIT_ID(__getattr__), \ + INIT_ID(__getattribute__), \ + INIT_ID(__getinitargs__), \ + INIT_ID(__getitem__), \ + INIT_ID(__getnewargs__), \ + INIT_ID(__getnewargs_ex__), \ + INIT_ID(__getstate__), \ + INIT_ID(__gt__), \ + INIT_ID(__hash__), \ + INIT_ID(__iadd__), \ + INIT_ID(__iand__), \ + INIT_ID(__ifloordiv__), \ + INIT_ID(__ilshift__), \ + INIT_ID(__imatmul__), \ + INIT_ID(__imod__), \ + INIT_ID(__import__), \ + INIT_ID(__imul__), \ + INIT_ID(__index__), \ + INIT_ID(__init__), \ + INIT_ID(__init_subclass__), \ + INIT_ID(__instancecheck__), \ + INIT_ID(__int__), \ + INIT_ID(__invert__), \ + INIT_ID(__ior__), \ + INIT_ID(__ipow__), \ + INIT_ID(__irshift__), \ + INIT_ID(__isabstractmethod__), \ + INIT_ID(__isub__), \ + INIT_ID(__iter__), \ + INIT_ID(__itruediv__), \ + INIT_ID(__ixor__), \ + INIT_ID(__le__), \ + INIT_ID(__len__), \ + INIT_ID(__length_hint__), \ + INIT_ID(__lltrace__), \ + INIT_ID(__loader__), \ + INIT_ID(__lshift__), \ + INIT_ID(__lt__), \ + INIT_ID(__main__), \ + INIT_ID(__matmul__), \ + INIT_ID(__missing__), \ + INIT_ID(__mod__), \ + INIT_ID(__module__), \ + INIT_ID(__mro_entries__), \ + INIT_ID(__mul__), \ + INIT_ID(__name__), \ + INIT_ID(__ne__), \ + INIT_ID(__neg__), \ + INIT_ID(__new__), \ + INIT_ID(__newobj__), \ + INIT_ID(__newobj_ex__), \ + INIT_ID(__next__), \ + INIT_ID(__notes__), \ + INIT_ID(__or__), \ + INIT_ID(__orig_class__), \ + INIT_ID(__origin__), \ + INIT_ID(__package__), \ + INIT_ID(__parameters__), \ + INIT_ID(__path__), \ + INIT_ID(__pos__), \ + INIT_ID(__pow__), \ + INIT_ID(__prepare__), \ + INIT_ID(__qualname__), \ + INIT_ID(__radd__), \ + INIT_ID(__rand__), \ + INIT_ID(__rdivmod__), \ + INIT_ID(__reduce__), \ + INIT_ID(__reduce_ex__), \ + INIT_ID(__release_buffer__), \ + INIT_ID(__repr__), \ + INIT_ID(__reversed__), \ + INIT_ID(__rfloordiv__), \ + INIT_ID(__rlshift__), \ + INIT_ID(__rmatmul__), \ + INIT_ID(__rmod__), \ + INIT_ID(__rmul__), \ + INIT_ID(__ror__), \ + INIT_ID(__round__), \ + INIT_ID(__rpow__), \ + INIT_ID(__rrshift__), \ + INIT_ID(__rshift__), \ + INIT_ID(__rsub__), \ + INIT_ID(__rtruediv__), \ + INIT_ID(__rxor__), \ + INIT_ID(__set__), \ + INIT_ID(__set_name__), \ + INIT_ID(__setattr__), \ + INIT_ID(__setitem__), \ + INIT_ID(__setstate__), \ + INIT_ID(__sizeof__), \ + INIT_ID(__slotnames__), \ + INIT_ID(__slots__), \ + INIT_ID(__spec__), \ + INIT_ID(__str__), \ + INIT_ID(__sub__), \ + INIT_ID(__subclasscheck__), \ + INIT_ID(__subclasshook__), \ + INIT_ID(__truediv__), \ + INIT_ID(__trunc__), \ + INIT_ID(__type_params__), \ + INIT_ID(__typing_is_unpacked_typevartuple__), \ + INIT_ID(__typing_prepare_subst__), \ + INIT_ID(__typing_subst__), \ + INIT_ID(__typing_unpacked_tuple_args__), \ + INIT_ID(__warningregistry__), \ + INIT_ID(__weaklistoffset__), \ + INIT_ID(__weakref__), \ + INIT_ID(__xor__), \ + INIT_ID(_abc_impl), \ + INIT_ID(_abstract_), \ + INIT_ID(_active), \ + INIT_ID(_annotation), \ + INIT_ID(_anonymous_), \ + INIT_ID(_argtypes_), \ + INIT_ID(_as_parameter_), \ + INIT_ID(_asyncio_future_blocking), \ + INIT_ID(_blksize), \ + INIT_ID(_bootstrap), \ + INIT_ID(_check_retval_), \ + INIT_ID(_dealloc_warn), \ + INIT_ID(_feature_version), \ + INIT_ID(_fields_), \ + INIT_ID(_finalizing), \ + INIT_ID(_find_and_load), \ + INIT_ID(_fix_up_module), \ + INIT_ID(_flags_), \ + INIT_ID(_get_sourcefile), \ + INIT_ID(_handle_fromlist), \ + INIT_ID(_initializing), \ + INIT_ID(_io), \ + INIT_ID(_is_text_encoding), \ + INIT_ID(_length_), \ + INIT_ID(_limbo), \ + INIT_ID(_lock_unlock_module), \ + INIT_ID(_loop), \ + INIT_ID(_needs_com_addref_), \ + INIT_ID(_pack_), \ + INIT_ID(_restype_), \ + INIT_ID(_showwarnmsg), \ + INIT_ID(_shutdown), \ + INIT_ID(_slotnames), \ + INIT_ID(_strptime_datetime), \ + INIT_ID(_swappedbytes_), \ + INIT_ID(_type_), \ + INIT_ID(_uninitialized_submodules), \ + INIT_ID(_warn_unawaited_coroutine), \ + INIT_ID(_xoptions), \ + INIT_ID(a), \ + INIT_ID(abs_tol), \ + INIT_ID(access), \ + INIT_ID(add), \ + INIT_ID(add_done_callback), \ + INIT_ID(after_in_child), \ + INIT_ID(after_in_parent), \ + INIT_ID(aggregate_class), \ + INIT_ID(alias), \ + INIT_ID(append), \ + INIT_ID(arg), \ + INIT_ID(argdefs), \ + INIT_ID(args), \ + INIT_ID(arguments), \ + INIT_ID(argv), \ + INIT_ID(as_integer_ratio), \ + INIT_ID(ast), \ + INIT_ID(attribute), \ + INIT_ID(authorizer_callback), \ + INIT_ID(autocommit), \ + INIT_ID(b), \ + INIT_ID(backtick), \ + INIT_ID(base), \ + INIT_ID(before), \ + INIT_ID(big), \ + INIT_ID(binary_form), \ + INIT_ID(block), \ + INIT_ID(bound), \ + INIT_ID(buffer), \ + INIT_ID(buffer_callback), \ + INIT_ID(buffer_size), \ + INIT_ID(buffering), \ + INIT_ID(buffers), \ + INIT_ID(bufsize), \ + INIT_ID(builtins), \ + INIT_ID(byteorder), \ + INIT_ID(bytes), \ + INIT_ID(bytes_per_sep), \ + INIT_ID(c), \ + INIT_ID(c_call), \ + INIT_ID(c_exception), \ + INIT_ID(c_return), \ + INIT_ID(cached_statements), \ + INIT_ID(cadata), \ + INIT_ID(cafile), \ + INIT_ID(call), \ + INIT_ID(call_exception_handler), \ + INIT_ID(call_soon), \ + INIT_ID(cancel), \ + INIT_ID(capath), \ + INIT_ID(category), \ + INIT_ID(cb_type), \ + INIT_ID(certfile), \ + INIT_ID(check_same_thread), \ + INIT_ID(clear), \ + INIT_ID(close), \ + INIT_ID(closed), \ + INIT_ID(closefd), \ + INIT_ID(closure), \ + INIT_ID(co_argcount), \ + INIT_ID(co_cellvars), \ + INIT_ID(co_code), \ + INIT_ID(co_consts), \ + INIT_ID(co_exceptiontable), \ + INIT_ID(co_filename), \ + INIT_ID(co_firstlineno), \ + INIT_ID(co_flags), \ + INIT_ID(co_freevars), \ + INIT_ID(co_kwonlyargcount), \ + INIT_ID(co_linetable), \ + INIT_ID(co_name), \ + INIT_ID(co_names), \ + INIT_ID(co_nlocals), \ + INIT_ID(co_posonlyargcount), \ + INIT_ID(co_qualname), \ + INIT_ID(co_stacksize), \ + INIT_ID(co_varnames), \ + INIT_ID(code), \ + INIT_ID(command), \ + INIT_ID(comment_factory), \ + INIT_ID(compile_mode), \ + INIT_ID(consts), \ + INIT_ID(context), \ + INIT_ID(contravariant), \ + INIT_ID(cookie), \ + INIT_ID(copy), \ + INIT_ID(copyreg), \ + INIT_ID(coro), \ + INIT_ID(count), \ + INIT_ID(covariant), \ + INIT_ID(cwd), \ + INIT_ID(d), \ + INIT_ID(data), \ + INIT_ID(database), \ + INIT_ID(decode), \ + INIT_ID(decoder), \ + INIT_ID(default), \ + INIT_ID(defaultaction), \ + INIT_ID(delete), \ + INIT_ID(depth), \ + INIT_ID(detect_types), \ + INIT_ID(deterministic), \ + INIT_ID(device), \ + INIT_ID(dict), \ + INIT_ID(dictcomp), \ + INIT_ID(difference_update), \ + INIT_ID(digest), \ + INIT_ID(digest_size), \ + INIT_ID(digestmod), \ + INIT_ID(dir_fd), \ + INIT_ID(discard), \ + INIT_ID(dispatch_table), \ + INIT_ID(displayhook), \ + INIT_ID(dklen), \ + INIT_ID(doc), \ + INIT_ID(dont_inherit), \ + INIT_ID(dst), \ + INIT_ID(dst_dir_fd), \ + INIT_ID(duration), \ + INIT_ID(e), \ + INIT_ID(eager_start), \ + INIT_ID(effective_ids), \ + INIT_ID(element_factory), \ + INIT_ID(encode), \ + INIT_ID(encoding), \ + INIT_ID(end), \ + INIT_ID(end_lineno), \ + INIT_ID(end_offset), \ + INIT_ID(endpos), \ + INIT_ID(entrypoint), \ + INIT_ID(env), \ + INIT_ID(errors), \ + INIT_ID(event), \ + INIT_ID(eventmask), \ + INIT_ID(exc_type), \ + INIT_ID(exc_value), \ + INIT_ID(excepthook), \ + INIT_ID(exception), \ + INIT_ID(existing_file_name), \ + INIT_ID(exp), \ + INIT_ID(extend), \ + INIT_ID(extra_tokens), \ + INIT_ID(facility), \ + INIT_ID(factory), \ + INIT_ID(false), \ + INIT_ID(family), \ + INIT_ID(fanout), \ + INIT_ID(fd), \ + INIT_ID(fd2), \ + INIT_ID(fdel), \ + INIT_ID(fget), \ + INIT_ID(file), \ + INIT_ID(file_actions), \ + INIT_ID(filename), \ + INIT_ID(fileno), \ + INIT_ID(filepath), \ + INIT_ID(fillvalue), \ + INIT_ID(filters), \ + INIT_ID(final), \ + INIT_ID(find_class), \ + INIT_ID(fix_imports), \ + INIT_ID(flags), \ + INIT_ID(flush), \ + INIT_ID(follow_symlinks), \ + INIT_ID(format), \ + INIT_ID(frequency), \ + INIT_ID(from_param), \ + INIT_ID(fromlist), \ + INIT_ID(fromtimestamp), \ + INIT_ID(fromutc), \ + INIT_ID(fset), \ + INIT_ID(func), \ + INIT_ID(future), \ + INIT_ID(generation), \ + INIT_ID(genexpr), \ + INIT_ID(get), \ + INIT_ID(get_debug), \ + INIT_ID(get_event_loop), \ + INIT_ID(get_loop), \ + INIT_ID(get_source), \ + INIT_ID(getattr), \ + INIT_ID(getstate), \ + INIT_ID(gid), \ + INIT_ID(globals), \ + INIT_ID(groupindex), \ + INIT_ID(groups), \ + INIT_ID(handle), \ + INIT_ID(hash_name), \ + INIT_ID(header), \ + INIT_ID(headers), \ + INIT_ID(hi), \ + INIT_ID(hook), \ + INIT_ID(id), \ + INIT_ID(ident), \ + INIT_ID(ignore), \ + INIT_ID(imag), \ + INIT_ID(importlib), \ + INIT_ID(in_fd), \ + INIT_ID(incoming), \ + INIT_ID(indexgroup), \ + INIT_ID(inf), \ + INIT_ID(infer_variance), \ + INIT_ID(inheritable), \ + INIT_ID(initial), \ + INIT_ID(initial_bytes), \ + INIT_ID(initial_value), \ + INIT_ID(initval), \ + INIT_ID(inner_size), \ + INIT_ID(input), \ + INIT_ID(insert_comments), \ + INIT_ID(insert_pis), \ + INIT_ID(instructions), \ + INIT_ID(intern), \ + INIT_ID(intersection), \ + INIT_ID(is_running), \ + INIT_ID(isatty), \ + INIT_ID(isinstance), \ + INIT_ID(isoformat), \ + INIT_ID(isolation_level), \ + INIT_ID(istext), \ + INIT_ID(item), \ + INIT_ID(items), \ + INIT_ID(iter), \ + INIT_ID(iterable), \ + INIT_ID(iterations), \ + INIT_ID(join), \ + INIT_ID(jump), \ + INIT_ID(keepends), \ + INIT_ID(key), \ + INIT_ID(keyfile), \ + INIT_ID(keys), \ + INIT_ID(kind), \ + INIT_ID(kw), \ + INIT_ID(kw1), \ + INIT_ID(kw2), \ + INIT_ID(lambda), \ + INIT_ID(last), \ + INIT_ID(last_exc), \ + INIT_ID(last_node), \ + INIT_ID(last_traceback), \ + INIT_ID(last_type), \ + INIT_ID(last_value), \ + INIT_ID(latin1), \ + INIT_ID(leaf_size), \ + INIT_ID(len), \ + INIT_ID(length), \ + INIT_ID(level), \ + INIT_ID(limit), \ + INIT_ID(line), \ + INIT_ID(line_buffering), \ + INIT_ID(lineno), \ + INIT_ID(listcomp), \ + INIT_ID(little), \ + INIT_ID(lo), \ + INIT_ID(locale), \ + INIT_ID(locals), \ + INIT_ID(logoption), \ + INIT_ID(loop), \ + INIT_ID(mapping), \ + INIT_ID(match), \ + INIT_ID(max_length), \ + INIT_ID(maxdigits), \ + INIT_ID(maxevents), \ + INIT_ID(maxmem), \ + INIT_ID(maxsplit), \ + INIT_ID(maxvalue), \ + INIT_ID(memLevel), \ + INIT_ID(memlimit), \ + INIT_ID(message), \ + INIT_ID(metaclass), \ + INIT_ID(metadata), \ + INIT_ID(method), \ + INIT_ID(mod), \ + INIT_ID(mode), \ + INIT_ID(module), \ + INIT_ID(module_globals), \ + INIT_ID(modules), \ + INIT_ID(mro), \ + INIT_ID(msg), \ + INIT_ID(mycmp), \ + INIT_ID(n), \ + INIT_ID(n_arg), \ + INIT_ID(n_fields), \ + INIT_ID(n_sequence_fields), \ + INIT_ID(n_unnamed_fields), \ + INIT_ID(name), \ + INIT_ID(name_from), \ + INIT_ID(namespace_separator), \ + INIT_ID(namespaces), \ + INIT_ID(narg), \ + INIT_ID(ndigits), \ + INIT_ID(new_file_name), \ + INIT_ID(new_limit), \ + INIT_ID(newline), \ + INIT_ID(newlines), \ + INIT_ID(next), \ + INIT_ID(nlocals), \ + INIT_ID(node_depth), \ + INIT_ID(node_offset), \ + INIT_ID(ns), \ + INIT_ID(nstype), \ + INIT_ID(nt), \ + INIT_ID(null), \ + INIT_ID(number), \ + INIT_ID(obj), \ + INIT_ID(object), \ + INIT_ID(offset), \ + INIT_ID(offset_dst), \ + INIT_ID(offset_src), \ + INIT_ID(on_type_read), \ + INIT_ID(onceregistry), \ + INIT_ID(only_keys), \ + INIT_ID(oparg), \ + INIT_ID(opcode), \ + INIT_ID(open), \ + INIT_ID(opener), \ + INIT_ID(operation), \ + INIT_ID(optimize), \ + INIT_ID(options), \ + INIT_ID(order), \ + INIT_ID(origin), \ + INIT_ID(out_fd), \ + INIT_ID(outgoing), \ + INIT_ID(overlapped), \ + INIT_ID(owner), \ + INIT_ID(p), \ + INIT_ID(pages), \ + INIT_ID(parent), \ + INIT_ID(password), \ + INIT_ID(path), \ + INIT_ID(pattern), \ + INIT_ID(peek), \ + INIT_ID(persistent_id), \ + INIT_ID(persistent_load), \ + INIT_ID(person), \ + INIT_ID(pi_factory), \ + INIT_ID(pid), \ + INIT_ID(policy), \ + INIT_ID(pos), \ + INIT_ID(pos1), \ + INIT_ID(pos2), \ + INIT_ID(posix), \ + INIT_ID(print_file_and_line), \ + INIT_ID(priority), \ + INIT_ID(progress), \ + INIT_ID(progress_handler), \ + INIT_ID(progress_routine), \ + INIT_ID(proto), \ + INIT_ID(protocol), \ + INIT_ID(ps1), \ + INIT_ID(ps2), \ + INIT_ID(query), \ + INIT_ID(quotetabs), \ + INIT_ID(r), \ + INIT_ID(raw), \ + INIT_ID(read), \ + INIT_ID(read1), \ + INIT_ID(readable), \ + INIT_ID(readall), \ + INIT_ID(readinto), \ + INIT_ID(readinto1), \ + INIT_ID(readline), \ + INIT_ID(readonly), \ + INIT_ID(real), \ + INIT_ID(reducer_override), \ + INIT_ID(registry), \ + INIT_ID(rel_tol), \ + INIT_ID(release), \ + INIT_ID(reload), \ + INIT_ID(repl), \ + INIT_ID(replace), \ + INIT_ID(reserved), \ + INIT_ID(reset), \ + INIT_ID(resetids), \ + INIT_ID(return), \ + INIT_ID(reverse), \ + INIT_ID(reversed), \ + INIT_ID(s), \ + INIT_ID(salt), \ + INIT_ID(sched_priority), \ + INIT_ID(scheduler), \ + INIT_ID(seek), \ + INIT_ID(seekable), \ + INIT_ID(selectors), \ + INIT_ID(self), \ + INIT_ID(send), \ + INIT_ID(sep), \ + INIT_ID(sequence), \ + INIT_ID(server_hostname), \ + INIT_ID(server_side), \ + INIT_ID(session), \ + INIT_ID(setcomp), \ + INIT_ID(setpgroup), \ + INIT_ID(setsid), \ + INIT_ID(setsigdef), \ + INIT_ID(setsigmask), \ + INIT_ID(setstate), \ + INIT_ID(shape), \ + INIT_ID(show_cmd), \ + INIT_ID(signed), \ + INIT_ID(size), \ + INIT_ID(sizehint), \ + INIT_ID(skip_file_prefixes), \ + INIT_ID(sleep), \ + INIT_ID(sock), \ + INIT_ID(sort), \ + INIT_ID(sound), \ + INIT_ID(source), \ + INIT_ID(source_traceback), \ + INIT_ID(src), \ + INIT_ID(src_dir_fd), \ + INIT_ID(stacklevel), \ + INIT_ID(start), \ + INIT_ID(statement), \ + INIT_ID(status), \ + INIT_ID(stderr), \ + INIT_ID(stdin), \ + INIT_ID(stdout), \ + INIT_ID(step), \ + INIT_ID(steps), \ + INIT_ID(store_name), \ + INIT_ID(strategy), \ + INIT_ID(strftime), \ + INIT_ID(strict), \ + INIT_ID(strict_mode), \ + INIT_ID(string), \ + INIT_ID(sub_key), \ + INIT_ID(symmetric_difference_update), \ + INIT_ID(tabsize), \ + INIT_ID(tag), \ + INIT_ID(target), \ + INIT_ID(target_is_directory), \ + INIT_ID(task), \ + INIT_ID(tb_frame), \ + INIT_ID(tb_lasti), \ + INIT_ID(tb_lineno), \ + INIT_ID(tb_next), \ + INIT_ID(tell), \ + INIT_ID(template), \ + INIT_ID(term), \ + INIT_ID(text), \ + INIT_ID(threading), \ + INIT_ID(throw), \ + INIT_ID(timeout), \ + INIT_ID(times), \ + INIT_ID(timetuple), \ + INIT_ID(top), \ + INIT_ID(trace_callback), \ + INIT_ID(traceback), \ + INIT_ID(trailers), \ + INIT_ID(translate), \ + INIT_ID(true), \ + INIT_ID(truncate), \ + INIT_ID(twice), \ + INIT_ID(txt), \ + INIT_ID(type), \ + INIT_ID(type_params), \ + INIT_ID(tz), \ + INIT_ID(tzname), \ + INIT_ID(uid), \ + INIT_ID(unlink), \ + INIT_ID(unraisablehook), \ + INIT_ID(uri), \ + INIT_ID(usedforsecurity), \ + INIT_ID(value), \ + INIT_ID(values), \ + INIT_ID(version), \ + INIT_ID(volume), \ + INIT_ID(warnings), \ + INIT_ID(warnoptions), \ + INIT_ID(wbits), \ + INIT_ID(week), \ + INIT_ID(weekday), \ + INIT_ID(which), \ + INIT_ID(who), \ + INIT_ID(withdata), \ + INIT_ID(writable), \ + INIT_ID(write), \ + INIT_ID(write_through), \ + INIT_ID(x), \ + INIT_ID(year), \ + INIT_ID(zdict), \ +} + +#define _Py_str_ascii_INIT { \ + _PyASCIIObject_INIT("\x00"), \ + _PyASCIIObject_INIT("\x01"), \ + _PyASCIIObject_INIT("\x02"), \ + _PyASCIIObject_INIT("\x03"), \ + _PyASCIIObject_INIT("\x04"), \ + _PyASCIIObject_INIT("\x05"), \ + _PyASCIIObject_INIT("\x06"), \ + _PyASCIIObject_INIT("\x07"), \ + _PyASCIIObject_INIT("\x08"), \ + _PyASCIIObject_INIT("\x09"), \ + _PyASCIIObject_INIT("\x0a"), \ + _PyASCIIObject_INIT("\x0b"), \ + _PyASCIIObject_INIT("\x0c"), \ + _PyASCIIObject_INIT("\x0d"), \ + _PyASCIIObject_INIT("\x0e"), \ + _PyASCIIObject_INIT("\x0f"), \ + _PyASCIIObject_INIT("\x10"), \ + _PyASCIIObject_INIT("\x11"), \ + _PyASCIIObject_INIT("\x12"), \ + _PyASCIIObject_INIT("\x13"), \ + _PyASCIIObject_INIT("\x14"), \ + _PyASCIIObject_INIT("\x15"), \ + _PyASCIIObject_INIT("\x16"), \ + _PyASCIIObject_INIT("\x17"), \ + _PyASCIIObject_INIT("\x18"), \ + _PyASCIIObject_INIT("\x19"), \ + _PyASCIIObject_INIT("\x1a"), \ + _PyASCIIObject_INIT("\x1b"), \ + _PyASCIIObject_INIT("\x1c"), \ + _PyASCIIObject_INIT("\x1d"), \ + _PyASCIIObject_INIT("\x1e"), \ + _PyASCIIObject_INIT("\x1f"), \ + _PyASCIIObject_INIT("\x20"), \ + _PyASCIIObject_INIT("\x21"), \ + _PyASCIIObject_INIT("\x22"), \ + _PyASCIIObject_INIT("\x23"), \ + _PyASCIIObject_INIT("\x24"), \ + _PyASCIIObject_INIT("\x25"), \ + _PyASCIIObject_INIT("\x26"), \ + _PyASCIIObject_INIT("\x27"), \ + _PyASCIIObject_INIT("\x28"), \ + _PyASCIIObject_INIT("\x29"), \ + _PyASCIIObject_INIT("\x2a"), \ + _PyASCIIObject_INIT("\x2b"), \ + _PyASCIIObject_INIT("\x2c"), \ + _PyASCIIObject_INIT("\x2d"), \ + _PyASCIIObject_INIT("\x2e"), \ + _PyASCIIObject_INIT("\x2f"), \ + _PyASCIIObject_INIT("\x30"), \ + _PyASCIIObject_INIT("\x31"), \ + _PyASCIIObject_INIT("\x32"), \ + _PyASCIIObject_INIT("\x33"), \ + _PyASCIIObject_INIT("\x34"), \ + _PyASCIIObject_INIT("\x35"), \ + _PyASCIIObject_INIT("\x36"), \ + _PyASCIIObject_INIT("\x37"), \ + _PyASCIIObject_INIT("\x38"), \ + _PyASCIIObject_INIT("\x39"), \ + _PyASCIIObject_INIT("\x3a"), \ + _PyASCIIObject_INIT("\x3b"), \ + _PyASCIIObject_INIT("\x3c"), \ + _PyASCIIObject_INIT("\x3d"), \ + _PyASCIIObject_INIT("\x3e"), \ + _PyASCIIObject_INIT("\x3f"), \ + _PyASCIIObject_INIT("\x40"), \ + _PyASCIIObject_INIT("\x41"), \ + _PyASCIIObject_INIT("\x42"), \ + _PyASCIIObject_INIT("\x43"), \ + _PyASCIIObject_INIT("\x44"), \ + _PyASCIIObject_INIT("\x45"), \ + _PyASCIIObject_INIT("\x46"), \ + _PyASCIIObject_INIT("\x47"), \ + _PyASCIIObject_INIT("\x48"), \ + _PyASCIIObject_INIT("\x49"), \ + _PyASCIIObject_INIT("\x4a"), \ + _PyASCIIObject_INIT("\x4b"), \ + _PyASCIIObject_INIT("\x4c"), \ + _PyASCIIObject_INIT("\x4d"), \ + _PyASCIIObject_INIT("\x4e"), \ + _PyASCIIObject_INIT("\x4f"), \ + _PyASCIIObject_INIT("\x50"), \ + _PyASCIIObject_INIT("\x51"), \ + _PyASCIIObject_INIT("\x52"), \ + _PyASCIIObject_INIT("\x53"), \ + _PyASCIIObject_INIT("\x54"), \ + _PyASCIIObject_INIT("\x55"), \ + _PyASCIIObject_INIT("\x56"), \ + _PyASCIIObject_INIT("\x57"), \ + _PyASCIIObject_INIT("\x58"), \ + _PyASCIIObject_INIT("\x59"), \ + _PyASCIIObject_INIT("\x5a"), \ + _PyASCIIObject_INIT("\x5b"), \ + _PyASCIIObject_INIT("\x5c"), \ + _PyASCIIObject_INIT("\x5d"), \ + _PyASCIIObject_INIT("\x5e"), \ + _PyASCIIObject_INIT("\x5f"), \ + _PyASCIIObject_INIT("\x60"), \ + _PyASCIIObject_INIT("\x61"), \ + _PyASCIIObject_INIT("\x62"), \ + _PyASCIIObject_INIT("\x63"), \ + _PyASCIIObject_INIT("\x64"), \ + _PyASCIIObject_INIT("\x65"), \ + _PyASCIIObject_INIT("\x66"), \ + _PyASCIIObject_INIT("\x67"), \ + _PyASCIIObject_INIT("\x68"), \ + _PyASCIIObject_INIT("\x69"), \ + _PyASCIIObject_INIT("\x6a"), \ + _PyASCIIObject_INIT("\x6b"), \ + _PyASCIIObject_INIT("\x6c"), \ + _PyASCIIObject_INIT("\x6d"), \ + _PyASCIIObject_INIT("\x6e"), \ + _PyASCIIObject_INIT("\x6f"), \ + _PyASCIIObject_INIT("\x70"), \ + _PyASCIIObject_INIT("\x71"), \ + _PyASCIIObject_INIT("\x72"), \ + _PyASCIIObject_INIT("\x73"), \ + _PyASCIIObject_INIT("\x74"), \ + _PyASCIIObject_INIT("\x75"), \ + _PyASCIIObject_INIT("\x76"), \ + _PyASCIIObject_INIT("\x77"), \ + _PyASCIIObject_INIT("\x78"), \ + _PyASCIIObject_INIT("\x79"), \ + _PyASCIIObject_INIT("\x7a"), \ + _PyASCIIObject_INIT("\x7b"), \ + _PyASCIIObject_INIT("\x7c"), \ + _PyASCIIObject_INIT("\x7d"), \ + _PyASCIIObject_INIT("\x7e"), \ + _PyASCIIObject_INIT("\x7f"), \ +} + +#define _Py_str_latin1_INIT { \ + _PyUnicode_LATIN1_INIT("\x80", "\xc2\x80"), \ + _PyUnicode_LATIN1_INIT("\x81", "\xc2\x81"), \ + _PyUnicode_LATIN1_INIT("\x82", "\xc2\x82"), \ + _PyUnicode_LATIN1_INIT("\x83", "\xc2\x83"), \ + _PyUnicode_LATIN1_INIT("\x84", "\xc2\x84"), \ + _PyUnicode_LATIN1_INIT("\x85", "\xc2\x85"), \ + _PyUnicode_LATIN1_INIT("\x86", "\xc2\x86"), \ + _PyUnicode_LATIN1_INIT("\x87", "\xc2\x87"), \ + _PyUnicode_LATIN1_INIT("\x88", "\xc2\x88"), \ + _PyUnicode_LATIN1_INIT("\x89", "\xc2\x89"), \ + _PyUnicode_LATIN1_INIT("\x8a", "\xc2\x8a"), \ + _PyUnicode_LATIN1_INIT("\x8b", "\xc2\x8b"), \ + _PyUnicode_LATIN1_INIT("\x8c", "\xc2\x8c"), \ + _PyUnicode_LATIN1_INIT("\x8d", "\xc2\x8d"), \ + _PyUnicode_LATIN1_INIT("\x8e", "\xc2\x8e"), \ + _PyUnicode_LATIN1_INIT("\x8f", "\xc2\x8f"), \ + _PyUnicode_LATIN1_INIT("\x90", "\xc2\x90"), \ + _PyUnicode_LATIN1_INIT("\x91", "\xc2\x91"), \ + _PyUnicode_LATIN1_INIT("\x92", "\xc2\x92"), \ + _PyUnicode_LATIN1_INIT("\x93", "\xc2\x93"), \ + _PyUnicode_LATIN1_INIT("\x94", "\xc2\x94"), \ + _PyUnicode_LATIN1_INIT("\x95", "\xc2\x95"), \ + _PyUnicode_LATIN1_INIT("\x96", "\xc2\x96"), \ + _PyUnicode_LATIN1_INIT("\x97", "\xc2\x97"), \ + _PyUnicode_LATIN1_INIT("\x98", "\xc2\x98"), \ + _PyUnicode_LATIN1_INIT("\x99", "\xc2\x99"), \ + _PyUnicode_LATIN1_INIT("\x9a", "\xc2\x9a"), \ + _PyUnicode_LATIN1_INIT("\x9b", "\xc2\x9b"), \ + _PyUnicode_LATIN1_INIT("\x9c", "\xc2\x9c"), \ + _PyUnicode_LATIN1_INIT("\x9d", "\xc2\x9d"), \ + _PyUnicode_LATIN1_INIT("\x9e", "\xc2\x9e"), \ + _PyUnicode_LATIN1_INIT("\x9f", "\xc2\x9f"), \ + _PyUnicode_LATIN1_INIT("\xa0", "\xc2\xa0"), \ + _PyUnicode_LATIN1_INIT("\xa1", "\xc2\xa1"), \ + _PyUnicode_LATIN1_INIT("\xa2", "\xc2\xa2"), \ + _PyUnicode_LATIN1_INIT("\xa3", "\xc2\xa3"), \ + _PyUnicode_LATIN1_INIT("\xa4", "\xc2\xa4"), \ + _PyUnicode_LATIN1_INIT("\xa5", "\xc2\xa5"), \ + _PyUnicode_LATIN1_INIT("\xa6", "\xc2\xa6"), \ + _PyUnicode_LATIN1_INIT("\xa7", "\xc2\xa7"), \ + _PyUnicode_LATIN1_INIT("\xa8", "\xc2\xa8"), \ + _PyUnicode_LATIN1_INIT("\xa9", "\xc2\xa9"), \ + _PyUnicode_LATIN1_INIT("\xaa", "\xc2\xaa"), \ + _PyUnicode_LATIN1_INIT("\xab", "\xc2\xab"), \ + _PyUnicode_LATIN1_INIT("\xac", "\xc2\xac"), \ + _PyUnicode_LATIN1_INIT("\xad", "\xc2\xad"), \ + _PyUnicode_LATIN1_INIT("\xae", "\xc2\xae"), \ + _PyUnicode_LATIN1_INIT("\xaf", "\xc2\xaf"), \ + _PyUnicode_LATIN1_INIT("\xb0", "\xc2\xb0"), \ + _PyUnicode_LATIN1_INIT("\xb1", "\xc2\xb1"), \ + _PyUnicode_LATIN1_INIT("\xb2", "\xc2\xb2"), \ + _PyUnicode_LATIN1_INIT("\xb3", "\xc2\xb3"), \ + _PyUnicode_LATIN1_INIT("\xb4", "\xc2\xb4"), \ + _PyUnicode_LATIN1_INIT("\xb5", "\xc2\xb5"), \ + _PyUnicode_LATIN1_INIT("\xb6", "\xc2\xb6"), \ + _PyUnicode_LATIN1_INIT("\xb7", "\xc2\xb7"), \ + _PyUnicode_LATIN1_INIT("\xb8", "\xc2\xb8"), \ + _PyUnicode_LATIN1_INIT("\xb9", "\xc2\xb9"), \ + _PyUnicode_LATIN1_INIT("\xba", "\xc2\xba"), \ + _PyUnicode_LATIN1_INIT("\xbb", "\xc2\xbb"), \ + _PyUnicode_LATIN1_INIT("\xbc", "\xc2\xbc"), \ + _PyUnicode_LATIN1_INIT("\xbd", "\xc2\xbd"), \ + _PyUnicode_LATIN1_INIT("\xbe", "\xc2\xbe"), \ + _PyUnicode_LATIN1_INIT("\xbf", "\xc2\xbf"), \ + _PyUnicode_LATIN1_INIT("\xc0", "\xc3\x80"), \ + _PyUnicode_LATIN1_INIT("\xc1", "\xc3\x81"), \ + _PyUnicode_LATIN1_INIT("\xc2", "\xc3\x82"), \ + _PyUnicode_LATIN1_INIT("\xc3", "\xc3\x83"), \ + _PyUnicode_LATIN1_INIT("\xc4", "\xc3\x84"), \ + _PyUnicode_LATIN1_INIT("\xc5", "\xc3\x85"), \ + _PyUnicode_LATIN1_INIT("\xc6", "\xc3\x86"), \ + _PyUnicode_LATIN1_INIT("\xc7", "\xc3\x87"), \ + _PyUnicode_LATIN1_INIT("\xc8", "\xc3\x88"), \ + _PyUnicode_LATIN1_INIT("\xc9", "\xc3\x89"), \ + _PyUnicode_LATIN1_INIT("\xca", "\xc3\x8a"), \ + _PyUnicode_LATIN1_INIT("\xcb", "\xc3\x8b"), \ + _PyUnicode_LATIN1_INIT("\xcc", "\xc3\x8c"), \ + _PyUnicode_LATIN1_INIT("\xcd", "\xc3\x8d"), \ + _PyUnicode_LATIN1_INIT("\xce", "\xc3\x8e"), \ + _PyUnicode_LATIN1_INIT("\xcf", "\xc3\x8f"), \ + _PyUnicode_LATIN1_INIT("\xd0", "\xc3\x90"), \ + _PyUnicode_LATIN1_INIT("\xd1", "\xc3\x91"), \ + _PyUnicode_LATIN1_INIT("\xd2", "\xc3\x92"), \ + _PyUnicode_LATIN1_INIT("\xd3", "\xc3\x93"), \ + _PyUnicode_LATIN1_INIT("\xd4", "\xc3\x94"), \ + _PyUnicode_LATIN1_INIT("\xd5", "\xc3\x95"), \ + _PyUnicode_LATIN1_INIT("\xd6", "\xc3\x96"), \ + _PyUnicode_LATIN1_INIT("\xd7", "\xc3\x97"), \ + _PyUnicode_LATIN1_INIT("\xd8", "\xc3\x98"), \ + _PyUnicode_LATIN1_INIT("\xd9", "\xc3\x99"), \ + _PyUnicode_LATIN1_INIT("\xda", "\xc3\x9a"), \ + _PyUnicode_LATIN1_INIT("\xdb", "\xc3\x9b"), \ + _PyUnicode_LATIN1_INIT("\xdc", "\xc3\x9c"), \ + _PyUnicode_LATIN1_INIT("\xdd", "\xc3\x9d"), \ + _PyUnicode_LATIN1_INIT("\xde", "\xc3\x9e"), \ + _PyUnicode_LATIN1_INIT("\xdf", "\xc3\x9f"), \ + _PyUnicode_LATIN1_INIT("\xe0", "\xc3\xa0"), \ + _PyUnicode_LATIN1_INIT("\xe1", "\xc3\xa1"), \ + _PyUnicode_LATIN1_INIT("\xe2", "\xc3\xa2"), \ + _PyUnicode_LATIN1_INIT("\xe3", "\xc3\xa3"), \ + _PyUnicode_LATIN1_INIT("\xe4", "\xc3\xa4"), \ + _PyUnicode_LATIN1_INIT("\xe5", "\xc3\xa5"), \ + _PyUnicode_LATIN1_INIT("\xe6", "\xc3\xa6"), \ + _PyUnicode_LATIN1_INIT("\xe7", "\xc3\xa7"), \ + _PyUnicode_LATIN1_INIT("\xe8", "\xc3\xa8"), \ + _PyUnicode_LATIN1_INIT("\xe9", "\xc3\xa9"), \ + _PyUnicode_LATIN1_INIT("\xea", "\xc3\xaa"), \ + _PyUnicode_LATIN1_INIT("\xeb", "\xc3\xab"), \ + _PyUnicode_LATIN1_INIT("\xec", "\xc3\xac"), \ + _PyUnicode_LATIN1_INIT("\xed", "\xc3\xad"), \ + _PyUnicode_LATIN1_INIT("\xee", "\xc3\xae"), \ + _PyUnicode_LATIN1_INIT("\xef", "\xc3\xaf"), \ + _PyUnicode_LATIN1_INIT("\xf0", "\xc3\xb0"), \ + _PyUnicode_LATIN1_INIT("\xf1", "\xc3\xb1"), \ + _PyUnicode_LATIN1_INIT("\xf2", "\xc3\xb2"), \ + _PyUnicode_LATIN1_INIT("\xf3", "\xc3\xb3"), \ + _PyUnicode_LATIN1_INIT("\xf4", "\xc3\xb4"), \ + _PyUnicode_LATIN1_INIT("\xf5", "\xc3\xb5"), \ + _PyUnicode_LATIN1_INIT("\xf6", "\xc3\xb6"), \ + _PyUnicode_LATIN1_INIT("\xf7", "\xc3\xb7"), \ + _PyUnicode_LATIN1_INIT("\xf8", "\xc3\xb8"), \ + _PyUnicode_LATIN1_INIT("\xf9", "\xc3\xb9"), \ + _PyUnicode_LATIN1_INIT("\xfa", "\xc3\xba"), \ + _PyUnicode_LATIN1_INIT("\xfb", "\xc3\xbb"), \ + _PyUnicode_LATIN1_INIT("\xfc", "\xc3\xbc"), \ + _PyUnicode_LATIN1_INIT("\xfd", "\xc3\xbd"), \ + _PyUnicode_LATIN1_INIT("\xfe", "\xc3\xbe"), \ + _PyUnicode_LATIN1_INIT("\xff", "\xc3\xbf"), \ +} +/* End auto-generated code */ + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_RUNTIME_INIT_GENERATED_H */ diff --git a/src/external/windows/include/python/internal/pycore_signal.h b/src/external/windows/include/python/internal/pycore_signal.h index 2f1f778f..76b3d980 100644 --- a/src/external/windows/include/python/internal/pycore_signal.h +++ b/src/external/windows/include/python/internal/pycore_signal.h @@ -10,8 +10,11 @@ extern "C" { # error "this header requires Py_BUILD_CORE define" #endif +#include "pycore_atomic.h" // _Py_atomic_address + #include // NSIG + #ifdef _SIG_MAXSIG // gh-91145: On FreeBSD, defines NSIG as 32: it doesn't include // realtime signals: [SIGRTMIN,SIGRTMAX]. Use _SIG_MAXSIG instead. For @@ -29,6 +32,66 @@ extern "C" { # define Py_NSIG 64 // Use a reasonable default value #endif +#define INVALID_FD (-1) + +struct _signals_runtime_state { + volatile struct { + _Py_atomic_int tripped; + /* func is atomic to ensure that PyErr_SetInterrupt is async-signal-safe + * (even though it would probably be otherwise, anyway). + */ + _Py_atomic_address func; + } handlers[Py_NSIG]; + + volatile struct { +#ifdef MS_WINDOWS + /* This would be "SOCKET fd" if were always included. + It isn't so we must cast to SOCKET where appropriate. */ + volatile int fd; +#elif defined(__VXWORKS__) + int fd; +#else + sig_atomic_t fd; +#endif + + int warn_on_full_buffer; +#ifdef MS_WINDOWS + int use_send; +#endif + } wakeup; + + /* Speed up sigcheck() when none tripped */ + _Py_atomic_int is_tripped; + + /* These objects necessarily belong to the main interpreter. */ + PyObject *default_handler; + PyObject *ignore_handler; + +#ifdef MS_WINDOWS + /* This would be "HANDLE sigint_event" if were always included. + It isn't so we must cast to HANDLE everywhere "sigint_event" is used. */ + void *sigint_event; +#endif + + /* True if the main interpreter thread exited due to an unhandled + * KeyboardInterrupt exception, suggesting the user pressed ^C. */ + int unhandled_keyboard_interrupt; +}; + +#ifdef MS_WINDOWS +# define _signals_WAKEUP_INIT \ + {.fd = INVALID_FD, .warn_on_full_buffer = 1, .use_send = 0} +#else +# define _signals_WAKEUP_INIT \ + {.fd = INVALID_FD, .warn_on_full_buffer = 1} +#endif + +#define _signals_RUNTIME_INIT \ + { \ + .wakeup = _signals_WAKEUP_INIT, \ + } + + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/internal/pycore_sliceobject.h b/src/external/windows/include/python/internal/pycore_sliceobject.h index b943594f..7d4dcff8 100644 --- a/src/external/windows/include/python/internal/pycore_sliceobject.h +++ b/src/external/windows/include/python/internal/pycore_sliceobject.h @@ -13,6 +13,8 @@ extern "C" { extern void _PySlice_Fini(PyInterpreterState *); +extern PyObject * +_PyBuildSlice_ConsumeRefs(PyObject *start, PyObject *stop); #ifdef __cplusplus } diff --git a/src/external/windows/include/python/internal/pycore_structseq.h b/src/external/windows/include/python/internal/pycore_structseq.h index 9c1f38e4..68e23e0e 100755 --- a/src/external/windows/include/python/internal/pycore_structseq.h +++ b/src/external/windows/include/python/internal/pycore_structseq.h @@ -15,12 +15,23 @@ PyAPI_FUNC(PyTypeObject *) _PyStructSequence_NewType( PyStructSequence_Desc *desc, unsigned long tp_flags); -PyAPI_FUNC(int) _PyStructSequence_InitType( +extern int _PyStructSequence_InitBuiltinWithFlags( + PyInterpreterState *interp, PyTypeObject *type, PyStructSequence_Desc *desc, unsigned long tp_flags); -extern void _PyStructSequence_FiniType(PyTypeObject *type); +static inline int +_PyStructSequence_InitBuiltin(PyInterpreterState *interp, + PyTypeObject *type, + PyStructSequence_Desc *desc) +{ + return _PyStructSequence_InitBuiltinWithFlags(interp, type, desc, 0); +} + +extern void _PyStructSequence_FiniBuiltin( + PyInterpreterState *interp, + PyTypeObject *type); #ifdef __cplusplus } diff --git a/src/external/windows/include/python/internal/pycore_symtable.h b/src/external/windows/include/python/internal/pycore_symtable.h index 0fd6ce1e..4e80bc9a 100755 --- a/src/external/windows/include/python/internal/pycore_symtable.h +++ b/src/external/windows/include/python/internal/pycore_symtable.h @@ -10,8 +10,17 @@ extern "C" { struct _mod; // Type defined in pycore_ast.h -typedef enum _block_type { FunctionBlock, ClassBlock, ModuleBlock, AnnotationBlock } - _Py_block_ty; +typedef enum _block_type { + FunctionBlock, ClassBlock, ModuleBlock, + // Used for annotations if 'from __future__ import annotations' is active. + // Annotation blocks cannot bind names and are not evaluated. + AnnotationBlock, + // Used for generics and type aliases. These work mostly like functions + // (see PEP 695 for details). The three different blocks function identically; + // they are different enum entries only so that error messages can be more + // precise. + TypeVarBoundBlock, TypeAliasBlock, TypeParamBlock +} _Py_block_ty; typedef enum _comprehension_type { NoComprehension = 0, @@ -49,7 +58,7 @@ typedef struct _symtable_entry { PyObject *ste_varnames; /* list of function parameters */ PyObject *ste_children; /* list of child blocks */ PyObject *ste_directives;/* locations of global and nonlocal statements */ - _Py_block_ty ste_type; /* module, class or function */ + _Py_block_ty ste_type; int ste_nested; /* true if block is nested */ unsigned ste_free : 1; /* true if block has free variables */ unsigned ste_child_free : 1; /* true if a child block has free vars, @@ -64,7 +73,12 @@ typedef struct _symtable_entry { unsigned ste_needs_class_closure : 1; /* for class scopes, true if a closure over __class__ should be created */ + unsigned ste_needs_classdict : 1; /* for class scopes, true if a closure + over the class dict should be created */ + unsigned ste_comp_inlined : 1; /* true if this comprehension is inlined */ unsigned ste_comp_iter_target : 1; /* true if visiting comprehension target */ + unsigned ste_can_see_class_scope : 1; /* true if this block can see names bound in an + enclosing class scope */ int ste_comp_iter_expr; /* non-zero if visiting a comprehension range expression */ int ste_lineno; /* first line of block */ int ste_col_offset; /* offset of first line of block */ @@ -77,10 +91,11 @@ typedef struct _symtable_entry { extern PyTypeObject PySTEntry_Type; -#define PySTEntry_Check(op) Py_IS_TYPE(op, &PySTEntry_Type) +#define PySTEntry_Check(op) Py_IS_TYPE((op), &PySTEntry_Type) extern long _PyST_GetSymbol(PySTEntryObject *, PyObject *); extern int _PyST_GetScope(PySTEntryObject *, PyObject *); +extern int _PyST_IsFunctionLike(PySTEntryObject *); extern struct symtable* _PySymtable_Build( struct _mod *mod, @@ -90,26 +105,30 @@ PyAPI_FUNC(PySTEntryObject *) PySymtable_Lookup(struct symtable *, void *); extern void _PySymtable_Free(struct symtable *); +extern PyObject* _Py_Mangle(PyObject *p, PyObject *name); + /* Flags for def-use information */ -#define DEF_GLOBAL 1 /* global stmt */ -#define DEF_LOCAL 2 /* assignment in code block */ -#define DEF_PARAM 2<<1 /* formal parameter */ -#define DEF_NONLOCAL 2<<2 /* nonlocal stmt */ -#define USE 2<<3 /* name is used */ -#define DEF_FREE 2<<4 /* name used but not defined in nested block */ -#define DEF_FREE_CLASS 2<<5 /* free variable from class's method */ -#define DEF_IMPORT 2<<6 /* assignment occurred via import */ -#define DEF_ANNOT 2<<7 /* this name is annotated */ -#define DEF_COMP_ITER 2<<8 /* this name is a comprehension iteration variable */ +#define DEF_GLOBAL 1 /* global stmt */ +#define DEF_LOCAL 2 /* assignment in code block */ +#define DEF_PARAM (2<<1) /* formal parameter */ +#define DEF_NONLOCAL (2<<2) /* nonlocal stmt */ +#define USE (2<<3) /* name is used */ +#define DEF_FREE (2<<4) /* name used but not defined in nested block */ +#define DEF_FREE_CLASS (2<<5) /* free variable from class's method */ +#define DEF_IMPORT (2<<6) /* assignment occurred via import */ +#define DEF_ANNOT (2<<7) /* this name is annotated */ +#define DEF_COMP_ITER (2<<8) /* this name is a comprehension iteration variable */ +#define DEF_TYPE_PARAM (2<<9) /* this name is a type parameter */ +#define DEF_COMP_CELL (2<<10) /* this name is a cell in an inlined comprehension */ #define DEF_BOUND (DEF_LOCAL | DEF_PARAM | DEF_IMPORT) /* GLOBAL_EXPLICIT and GLOBAL_IMPLICIT are used internally by the symbol table. GLOBAL is returned from PyST_GetScope() for either of them. - It is stored in ste_symbols at bits 12-15. + It is stored in ste_symbols at bits 13-16. */ -#define SCOPE_OFFSET 11 +#define SCOPE_OFFSET 12 #define SCOPE_MASK (DEF_GLOBAL | DEF_LOCAL | DEF_PARAM | DEF_NONLOCAL) #define LOCAL 1 @@ -128,6 +147,11 @@ extern struct symtable* _Py_SymtableStringObjectFlags( int start, PyCompilerFlags *flags); +int _PyFuture_FromAST( + struct _mod * mod, + PyObject *filename, + PyFutureFeatures* futures); + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/internal/pycore_sysmodule.h b/src/external/windows/include/python/internal/pycore_sysmodule.h index 282e863a..98e87d83 100755 --- a/src/external/windows/include/python/internal/pycore_sysmodule.h +++ b/src/external/windows/include/python/internal/pycore_sysmodule.h @@ -20,6 +20,9 @@ extern void _PySys_ClearAuditHooks(PyThreadState *tstate); PyAPI_FUNC(int) _PySys_SetAttr(PyObject *, PyObject *); +extern int _PySys_ClearAttrString(PyInterpreterState *interp, + const char *name, int verbose); + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/internal/pycore_time.h b/src/external/windows/include/python/internal/pycore_time.h new file mode 100644 index 00000000..15473d64 --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_time.h @@ -0,0 +1,25 @@ +#ifndef Py_INTERNAL_TIME_H +#define Py_INTERNAL_TIME_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + + +struct _time_runtime_state { +#ifdef HAVE_TIMES + int ticks_per_second_initialized; + long ticks_per_second; +#else + int _not_used; +#endif +}; + + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_TIME_H */ diff --git a/src/external/windows/include/python/token.h b/src/external/windows/include/python/internal/pycore_token.h old mode 100755 new mode 100644 similarity index 68% rename from src/external/windows/include/python/token.h rename to src/external/windows/include/python/internal/pycore_token.h index 6f7ad99c..54ef7150 --- a/src/external/windows/include/python/token.h +++ b/src/external/windows/include/python/internal/pycore_token.h @@ -1,13 +1,16 @@ -/* Auto-generated by Tools/scripts/generate_token.py */ +/* Auto-generated by Tools/build/generate_token.py */ /* Token types */ -#ifndef Py_LIMITED_API -#ifndef Py_TOKEN_H -#define Py_TOKEN_H +#ifndef Py_INTERNAL_TOKEN_H +#define Py_INTERNAL_TOKEN_H #ifdef __cplusplus extern "C" { #endif +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + #undef TILDE /* Prevent clash of our definition with system macro. Ex AIX, ioctl.h */ #define ENDMARKER 0 @@ -64,14 +67,20 @@ extern "C" { #define RARROW 51 #define ELLIPSIS 52 #define COLONEQUAL 53 -#define OP 54 -#define AWAIT 55 -#define ASYNC 56 -#define TYPE_IGNORE 57 -#define TYPE_COMMENT 58 -#define SOFT_KEYWORD 59 -#define ERRORTOKEN 60 -#define N_TOKENS 64 +#define EXCLAMATION 54 +#define OP 55 +#define AWAIT 56 +#define ASYNC 57 +#define TYPE_IGNORE 58 +#define TYPE_COMMENT 59 +#define SOFT_KEYWORD 60 +#define FSTRING_START 61 +#define FSTRING_MIDDLE 62 +#define FSTRING_END 63 +#define COMMENT 64 +#define NL 65 +#define ERRORTOKEN 66 +#define N_TOKENS 68 #define NT_OFFSET 256 /* Special definitions for cooperation with parser */ @@ -83,15 +92,17 @@ extern "C" { (x) == NEWLINE || \ (x) == INDENT || \ (x) == DEDENT) +#define ISSTRINGLIT(x) ((x) == STRING || \ + (x) == FSTRING_MIDDLE) +// Symbols exported for test_peg_generator PyAPI_DATA(const char * const) _PyParser_TokenNames[]; /* Token names */ -PyAPI_FUNC(int) PyToken_OneChar(int); -PyAPI_FUNC(int) PyToken_TwoChars(int, int); -PyAPI_FUNC(int) PyToken_ThreeChars(int, int, int); +PyAPI_FUNC(int) _PyToken_OneChar(int); +PyAPI_FUNC(int) _PyToken_TwoChars(int, int); +PyAPI_FUNC(int) _PyToken_ThreeChars(int, int, int); #ifdef __cplusplus } #endif -#endif /* !Py_TOKEN_H */ -#endif /* Py_LIMITED_API */ +#endif // !Py_INTERNAL_TOKEN_H diff --git a/src/external/windows/include/python/internal/pycore_tracemalloc.h b/src/external/windows/include/python/internal/pycore_tracemalloc.h new file mode 100644 index 00000000..57ae0929 --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_tracemalloc.h @@ -0,0 +1,123 @@ +#ifndef Py_INTERNAL_TRACEMALLOC_H +#define Py_INTERNAL_TRACEMALLOC_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +#include "pycore_hashtable.h" // _Py_hashtable_t + + +/* Trace memory blocks allocated by PyMem_RawMalloc() */ +#define TRACE_RAW_MALLOC + + +struct _PyTraceMalloc_Config { + /* Module initialized? + Variable protected by the GIL */ + enum { + TRACEMALLOC_NOT_INITIALIZED, + TRACEMALLOC_INITIALIZED, + TRACEMALLOC_FINALIZED + } initialized; + + /* Is tracemalloc tracing memory allocations? + Variable protected by the GIL */ + int tracing; + + /* limit of the number of frames in a traceback, 1 by default. + Variable protected by the GIL. */ + int max_nframe; +}; + + +/* Pack the frame_t structure to reduce the memory footprint on 64-bit + architectures: 12 bytes instead of 16. */ +#if defined(_MSC_VER) +#pragma pack(push, 4) +#endif + +struct +#ifdef __GNUC__ +__attribute__((packed)) +#endif +tracemalloc_frame { + /* filename cannot be NULL: "" is used if the Python frame + filename is NULL */ + PyObject *filename; + unsigned int lineno; +}; +#ifdef _MSC_VER +#pragma pack(pop) +#endif + +struct tracemalloc_traceback { + Py_uhash_t hash; + /* Number of frames stored */ + uint16_t nframe; + /* Total number of frames the traceback had */ + uint16_t total_nframe; + struct tracemalloc_frame frames[1]; +}; + + +struct _tracemalloc_runtime_state { + struct _PyTraceMalloc_Config config; + + /* Protected by the GIL */ + struct { + PyMemAllocatorEx mem; + PyMemAllocatorEx raw; + PyMemAllocatorEx obj; + } allocators; + +#if defined(TRACE_RAW_MALLOC) + PyThread_type_lock tables_lock; +#endif + /* Size in bytes of currently traced memory. + Protected by TABLES_LOCK(). */ + size_t traced_memory; + /* Peak size in bytes of traced memory. + Protected by TABLES_LOCK(). */ + size_t peak_traced_memory; + /* Hash table used as a set to intern filenames: + PyObject* => PyObject*. + Protected by the GIL */ + _Py_hashtable_t *filenames; + /* Buffer to store a new traceback in traceback_new(). + Protected by the GIL. */ + struct tracemalloc_traceback *traceback; + /* Hash table used as a set to intern tracebacks: + traceback_t* => traceback_t* + Protected by the GIL */ + _Py_hashtable_t *tracebacks; + /* pointer (void*) => trace (trace_t*). + Protected by TABLES_LOCK(). */ + _Py_hashtable_t *traces; + /* domain (unsigned int) => traces (_Py_hashtable_t). + Protected by TABLES_LOCK(). */ + _Py_hashtable_t *domains; + + struct tracemalloc_traceback empty_traceback; + + Py_tss_t reentrant_key; +}; + +#define _tracemalloc_runtime_state_INIT \ + { \ + .config = { \ + .initialized = TRACEMALLOC_NOT_INITIALIZED, \ + .tracing = 0, \ + .max_nframe = 1, \ + }, \ + .reentrant_key = Py_tss_NEEDS_INIT, \ + } + + +#ifdef __cplusplus +} +#endif +#endif // !Py_INTERNAL_TRACEMALLOC_H diff --git a/src/external/windows/include/python/internal/pycore_tuple.h b/src/external/windows/include/python/internal/pycore_tuple.h index 3e4a7f13..0623d85a 100755 --- a/src/external/windows/include/python/internal/pycore_tuple.h +++ b/src/external/windows/include/python/internal/pycore_tuple.h @@ -14,7 +14,6 @@ extern "C" { /* runtime lifecycle */ extern PyStatus _PyTuple_InitGlobalObjects(PyInterpreterState *); -extern PyStatus _PyTuple_InitTypes(PyInterpreterState *); extern void _PyTuple_Fini(PyInterpreterState *); @@ -62,11 +61,18 @@ struct _Py_tuple_state { #endif }; -#define _PyTuple_ITEMS(op) (_PyTuple_CAST(op)->ob_item) +#define _PyTuple_ITEMS(op) _Py_RVALUE(_PyTuple_CAST(op)->ob_item) extern PyObject *_PyTuple_FromArray(PyObject *const *, Py_ssize_t); extern PyObject *_PyTuple_FromArraySteal(PyObject *const *, Py_ssize_t); + +typedef struct { + PyObject_HEAD + Py_ssize_t it_index; + PyTupleObject *it_seq; /* Set to NULL when iterator is exhausted */ +} _PyTupleIterObject; + #ifdef __cplusplus } #endif diff --git a/src/external/windows/include/python/internal/pycore_typeobject.h b/src/external/windows/include/python/internal/pycore_typeobject.h index 6bfe176b..b67e7dfe 100644 --- a/src/external/windows/include/python/internal/pycore_typeobject.h +++ b/src/external/windows/include/python/internal/pycore_typeobject.h @@ -4,20 +4,25 @@ extern "C" { #endif +#include "pycore_moduleobject.h" + #ifndef Py_BUILD_CORE # error "this header requires Py_BUILD_CORE define" #endif -/* runtime lifecycle */ +/* state */ -extern PyStatus _PyTypes_InitState(PyInterpreterState *); -extern PyStatus _PyTypes_InitTypes(PyInterpreterState *); -extern void _PyTypes_FiniTypes(PyInterpreterState *); -extern void _PyTypes_Fini(PyInterpreterState *); +#define _Py_TYPE_BASE_VERSION_TAG (2<<16) +#define _Py_MAX_GLOBAL_TYPE_VERSION_TAG (_Py_TYPE_BASE_VERSION_TAG - 1) +struct _types_runtime_state { + /* Used to set PyTypeObject.tp_version_tag for core static types. */ + // bpo-42745: next_version_tag remains shared by all interpreters + // because of static types. + unsigned int next_version_tag; +}; -/* other API */ // Type attribute lookup cache: speed up attribute and method lookups, // see _PyType_Lookup(). @@ -28,21 +33,115 @@ struct type_cache_entry { }; #define MCACHE_SIZE_EXP 12 -#define MCACHE_STATS 0 struct type_cache { struct type_cache_entry hashtable[1 << MCACHE_SIZE_EXP]; -#if MCACHE_STATS - size_t hits; - size_t misses; - size_t collisions; -#endif }; -extern PyStatus _PyTypes_InitSlotDefs(void); +/* For now we hard-code this to a value for which we are confident + all the static builtin types will fit (for all builds). */ +#define _Py_MAX_STATIC_BUILTIN_TYPES 200 -extern void _PyStaticType_Dealloc(PyTypeObject *type); +typedef struct { + PyTypeObject *type; + int readying; + int ready; + // XXX tp_dict can probably be statically allocated, + // instead of dynamically and stored on the interpreter. + PyObject *tp_dict; + PyObject *tp_subclasses; + /* We never clean up weakrefs for static builtin types since + they will effectively never get triggered. However, there + are also some diagnostic uses for the list of weakrefs, + so we still keep it. */ + PyObject *tp_weaklist; +} static_builtin_state; +struct types_state { + /* Used to set PyTypeObject.tp_version_tag. + It starts at _Py_MAX_GLOBAL_TYPE_VERSION_TAG + 1, + where all those lower numbers are used for core static types. */ + unsigned int next_version_tag; + + struct type_cache type_cache; + size_t num_builtins_initialized; + static_builtin_state builtins[_Py_MAX_STATIC_BUILTIN_TYPES]; +}; + + +/* runtime lifecycle */ + +extern PyStatus _PyTypes_InitTypes(PyInterpreterState *); +extern void _PyTypes_FiniTypes(PyInterpreterState *); +extern void _PyTypes_Fini(PyInterpreterState *); + + +/* other API */ + +/* Length of array of slotdef pointers used to store slots with the + same __name__. There should be at most MAX_EQUIV-1 slotdef entries with + the same __name__, for any __name__. Since that's a static property, it is + appropriate to declare fixed-size arrays for this. */ +#define MAX_EQUIV 10 + +typedef struct wrapperbase pytype_slotdef; + + +static inline PyObject ** +_PyStaticType_GET_WEAKREFS_LISTPTR(static_builtin_state *state) +{ + assert(state != NULL); + return &state->tp_weaklist; +} + +/* Like PyType_GetModuleState, but skips verification + * that type is a heap type with an associated module */ +static inline void * +_PyType_GetModuleState(PyTypeObject *type) +{ + assert(PyType_Check(type)); + assert(type->tp_flags & Py_TPFLAGS_HEAPTYPE); + PyHeapTypeObject *et = (PyHeapTypeObject *)type; + assert(et->ht_module); + PyModuleObject *mod = (PyModuleObject *)(et->ht_module); + assert(mod != NULL); + return mod->md_state; +} + + +extern int _PyStaticType_InitBuiltin(PyInterpreterState *, PyTypeObject *type); +extern static_builtin_state * _PyStaticType_GetState(PyInterpreterState *, PyTypeObject *); +extern void _PyStaticType_ClearWeakRefs(PyInterpreterState *, PyTypeObject *type); +extern void _PyStaticType_Dealloc(PyInterpreterState *, PyTypeObject *); + +PyAPI_FUNC(PyObject *) _PyType_GetDict(PyTypeObject *); +extern PyObject * _PyType_GetBases(PyTypeObject *type); +extern PyObject * _PyType_GetMRO(PyTypeObject *type); +extern PyObject* _PyType_GetSubclasses(PyTypeObject *); +extern int _PyType_HasSubclasses(PyTypeObject *); + +// PyType_Ready() must be called if _PyType_IsReady() is false. +// See also the Py_TPFLAGS_READY flag. +static inline int +_PyType_IsReady(PyTypeObject *type) +{ + return _PyType_GetDict(type) != NULL; +} + +PyObject * +_Py_type_getattro_impl(PyTypeObject *type, PyObject *name, int *suppress_missing_attribute); +PyObject * +_Py_type_getattro(PyTypeObject *type, PyObject *name); + +extern PyObject* _Py_BaseObject_RichCompare(PyObject* self, PyObject* other, int op); + +PyObject *_Py_slot_tp_getattro(PyObject *self, PyObject *name); +PyObject *_Py_slot_tp_getattr_hook(PyObject *self, PyObject *name); + +PyAPI_DATA(PyTypeObject) _PyBufferWrapper_Type; + +PyObject * +_PySuper_Lookup(PyTypeObject *su_type, PyObject *su_obj, PyObject *name, int *meth_found); #ifdef __cplusplus } diff --git a/src/external/windows/include/python/internal/pycore_typevarobject.h b/src/external/windows/include/python/internal/pycore_typevarobject.h new file mode 100644 index 00000000..13cee2d7 --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_typevarobject.h @@ -0,0 +1,24 @@ +#ifndef Py_INTERNAL_TYPEVAROBJECT_H +#define Py_INTERNAL_TYPEVAROBJECT_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +extern PyObject *_Py_make_typevar(PyObject *, PyObject *, PyObject *); +extern PyObject *_Py_make_paramspec(PyThreadState *, PyObject *); +extern PyObject *_Py_make_typevartuple(PyThreadState *, PyObject *); +extern PyObject *_Py_make_typealias(PyThreadState *, PyObject *); +extern PyObject *_Py_subscript_generic(PyThreadState *, PyObject *); +extern int _Py_initialize_generic(PyInterpreterState *); +extern void _Py_clear_generic_types(PyInterpreterState *); + +extern PyTypeObject _PyTypeAlias_Type; + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_TYPEVAROBJECT_H */ diff --git a/src/external/windows/include/python/internal/pycore_unicodeobject.h b/src/external/windows/include/python/internal/pycore_unicodeobject.h index 4a64c9d4..acef7d73 100644 --- a/src/external/windows/include/python/internal/pycore_unicodeobject.h +++ b/src/external/windows/include/python/internal/pycore_unicodeobject.h @@ -9,8 +9,10 @@ extern "C" { #endif #include "pycore_fileutils.h" // _Py_error_handler +#include "pycore_ucnhash.h" // _PyUnicode_Name_CAPI void _PyUnicode_ExactDealloc(PyObject *op); +Py_ssize_t _PyUnicode_InternedSize(void); /* runtime lifecycle */ @@ -19,7 +21,6 @@ extern PyStatus _PyUnicode_InitGlobalObjects(PyInterpreterState *); extern PyStatus _PyUnicode_InitTypes(PyInterpreterState *); extern void _PyUnicode_Fini(PyInterpreterState *); extern void _PyUnicode_FiniTypes(PyInterpreterState *); -extern void _PyStaticUnicode_Dealloc(PyObject *); extern PyTypeObject _PyUnicodeASCIIIter_Type; @@ -32,6 +33,10 @@ struct _Py_unicode_runtime_ids { Py_ssize_t next_index; }; +struct _Py_unicode_runtime_state { + struct _Py_unicode_runtime_ids ids; +}; + /* fs_codec.encoding is initialized to NULL. Later, it is set to a non-NULL string by _PyUnicode_InitEncodings(). */ struct _Py_unicode_fs_codec { @@ -49,10 +54,13 @@ struct _Py_unicode_ids { struct _Py_unicode_state { struct _Py_unicode_fs_codec fs_codec; + _PyUnicode_Name_CAPI *ucnhash_capi; + // Unicode identifiers (_Py_Identifier): see _PyUnicode_FromId() struct _Py_unicode_ids ids; }; +extern void _PyUnicode_InternInPlace(PyInterpreterState *interp, PyObject **p); extern void _PyUnicode_ClearInterned(PyInterpreterState *interp); diff --git a/src/external/windows/include/python/internal/pycore_unicodeobject_generated.h b/src/external/windows/include/python/internal/pycore_unicodeobject_generated.h new file mode 100644 index 00000000..a2d4d13e --- /dev/null +++ b/src/external/windows/include/python/internal/pycore_unicodeobject_generated.h @@ -0,0 +1,2093 @@ +#ifndef Py_INTERNAL_UNICODEOBJECT_GENERATED_H +#define Py_INTERNAL_UNICODEOBJECT_GENERATED_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_BUILD_CORE +# error "this header requires Py_BUILD_CORE define" +#endif + +/* The following is auto-generated by Tools/build/generate_global_objects.py. */ +static inline void +_PyUnicode_InitStaticStrings(PyInterpreterState *interp) { + PyObject *string; + string = &_Py_ID(CANCELLED); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(FINISHED); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(False); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(JSONDecodeError); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(PENDING); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(Py_Repr); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(TextIOWrapper); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(True); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(WarningMessage); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_WindowsConsoleIO); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__IOBase_closed); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__abc_tpflags__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__abs__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__abstractmethods__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__add__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__aenter__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__aexit__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__aiter__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__all__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__and__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__anext__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__annotations__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__args__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__asyncio_running_event_loop__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__await__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__bases__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__bool__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__buffer__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__build_class__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__builtins__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__bytes__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__call__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__cantrace__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__class__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__class_getitem__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__classcell__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__classdict__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__classdictcell__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__complex__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__contains__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__copy__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__ctypes_from_outparam__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__del__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__delattr__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__delete__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__delitem__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__dict__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__dictoffset__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__dir__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__divmod__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__doc__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__enter__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__eq__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__exit__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__file__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__float__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__floordiv__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__format__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__fspath__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__ge__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__get__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__getattr__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__getattribute__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__getinitargs__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__getitem__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__getnewargs__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__getnewargs_ex__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__getstate__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__gt__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__hash__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__iadd__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__iand__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__ifloordiv__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__ilshift__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__imatmul__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__imod__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__import__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__imul__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__index__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__init__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__init_subclass__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__instancecheck__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__int__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__invert__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__ior__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__ipow__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__irshift__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__isabstractmethod__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__isub__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__iter__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__itruediv__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__ixor__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__le__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__len__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__length_hint__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__lltrace__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__loader__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__lshift__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__lt__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__main__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__matmul__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__missing__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__mod__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__module__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__mro_entries__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__mul__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__name__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__ne__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__neg__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__new__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__newobj__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__newobj_ex__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__next__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__notes__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__or__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__orig_class__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__origin__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__package__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__parameters__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__path__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__pos__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__pow__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__prepare__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__qualname__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__radd__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__rand__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__rdivmod__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__reduce__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__reduce_ex__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__release_buffer__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__repr__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__reversed__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__rfloordiv__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__rlshift__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__rmatmul__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__rmod__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__rmul__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__ror__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__round__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__rpow__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__rrshift__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__rshift__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__rsub__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__rtruediv__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__rxor__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__set__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__set_name__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__setattr__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__setitem__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__setstate__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__sizeof__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__slotnames__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__slots__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__spec__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__str__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__sub__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__subclasscheck__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__subclasshook__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__truediv__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__trunc__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__type_params__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__typing_is_unpacked_typevartuple__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__typing_prepare_subst__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__typing_subst__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__typing_unpacked_tuple_args__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__warningregistry__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__weaklistoffset__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__weakref__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(__xor__); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_abc_impl); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_abstract_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_active); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_annotation); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_anonymous_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_argtypes_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_as_parameter_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_asyncio_future_blocking); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_blksize); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_bootstrap); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_check_retval_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_dealloc_warn); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_feature_version); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_fields_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_finalizing); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_find_and_load); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_fix_up_module); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_flags_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_get_sourcefile); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_handle_fromlist); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_initializing); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_io); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_is_text_encoding); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_length_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_limbo); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_lock_unlock_module); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_loop); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_needs_com_addref_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_pack_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_restype_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_showwarnmsg); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_shutdown); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_slotnames); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_strptime_datetime); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_swappedbytes_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_type_); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_uninitialized_submodules); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_warn_unawaited_coroutine); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(_xoptions); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(a); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(abs_tol); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(access); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(add); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(add_done_callback); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(after_in_child); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(after_in_parent); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(aggregate_class); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(alias); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(append); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(arg); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(argdefs); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(args); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(arguments); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(argv); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(as_integer_ratio); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(ast); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(attribute); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(authorizer_callback); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(autocommit); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(b); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(backtick); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(base); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(before); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(big); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(binary_form); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(block); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(bound); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(buffer); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(buffer_callback); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(buffer_size); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(buffering); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(buffers); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(bufsize); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(builtins); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(byteorder); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(bytes); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(bytes_per_sep); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(c); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(c_call); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(c_exception); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(c_return); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(cached_statements); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(cadata); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(cafile); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(call); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(call_exception_handler); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(call_soon); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(cancel); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(capath); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(category); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(cb_type); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(certfile); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(check_same_thread); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(clear); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(close); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(closed); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(closefd); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(closure); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_argcount); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_cellvars); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_code); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_consts); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_exceptiontable); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_filename); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_firstlineno); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_flags); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_freevars); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_kwonlyargcount); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_linetable); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_name); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_names); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_nlocals); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_posonlyargcount); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_qualname); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_stacksize); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(co_varnames); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(code); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(command); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(comment_factory); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(compile_mode); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(consts); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(context); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(contravariant); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(cookie); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(copy); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(copyreg); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(coro); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(count); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(covariant); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(cwd); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(d); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(data); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(database); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(decode); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(decoder); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(default); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(defaultaction); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(delete); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(depth); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(detect_types); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(deterministic); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(device); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(dict); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(dictcomp); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(difference_update); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(digest); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(digest_size); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(digestmod); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(dir_fd); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(discard); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(dispatch_table); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(displayhook); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(dklen); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(doc); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(dont_inherit); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(dst); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(dst_dir_fd); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(duration); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(e); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(eager_start); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(effective_ids); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(element_factory); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(encode); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(encoding); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(end); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(end_lineno); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(end_offset); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(endpos); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(entrypoint); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(env); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(errors); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(event); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(eventmask); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(exc_type); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(exc_value); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(excepthook); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(exception); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(existing_file_name); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(exp); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(extend); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(extra_tokens); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(facility); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(factory); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(false); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(family); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(fanout); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(fd); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(fd2); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(fdel); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(fget); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(file); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(file_actions); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(filename); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(fileno); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(filepath); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(fillvalue); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(filters); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(final); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(find_class); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(fix_imports); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(flags); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(flush); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(follow_symlinks); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(format); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(frequency); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(from_param); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(fromlist); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(fromtimestamp); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(fromutc); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(fset); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(func); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(future); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(generation); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(genexpr); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(get); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(get_debug); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(get_event_loop); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(get_loop); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(get_source); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(getattr); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(getstate); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(gid); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(globals); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(groupindex); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(groups); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(handle); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(hash_name); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(header); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(headers); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(hi); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(hook); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(id); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(ident); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(ignore); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(imag); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(importlib); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(in_fd); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(incoming); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(indexgroup); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(inf); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(infer_variance); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(inheritable); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(initial); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(initial_bytes); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(initial_value); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(initval); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(inner_size); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(input); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(insert_comments); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(insert_pis); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(instructions); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(intern); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(intersection); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(is_running); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(isatty); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(isinstance); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(isoformat); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(isolation_level); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(istext); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(item); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(items); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(iter); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(iterable); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(iterations); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(join); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(jump); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(keepends); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(key); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(keyfile); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(keys); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(kind); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(kw); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(kw1); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(kw2); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(lambda); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(last); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(last_exc); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(last_node); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(last_traceback); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(last_type); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(last_value); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(latin1); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(leaf_size); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(len); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(length); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(level); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(limit); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(line); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(line_buffering); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(lineno); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(listcomp); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(little); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(lo); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(locale); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(locals); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(logoption); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(loop); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(mapping); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(match); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(max_length); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(maxdigits); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(maxevents); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(maxmem); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(maxsplit); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(maxvalue); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(memLevel); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(memlimit); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(message); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(metaclass); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(metadata); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(method); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(mod); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(mode); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(module); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(module_globals); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(modules); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(mro); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(msg); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(mycmp); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(n); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(n_arg); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(n_fields); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(n_sequence_fields); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(n_unnamed_fields); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(name); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(name_from); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(namespace_separator); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(namespaces); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(narg); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(ndigits); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(new_file_name); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(new_limit); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(newline); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(newlines); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(next); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(nlocals); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(node_depth); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(node_offset); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(ns); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(nstype); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(nt); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(null); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(number); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(obj); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(object); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(offset); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(offset_dst); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(offset_src); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(on_type_read); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(onceregistry); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(only_keys); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(oparg); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(opcode); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(open); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(opener); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(operation); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(optimize); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(options); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(order); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(origin); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(out_fd); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(outgoing); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(overlapped); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(owner); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(p); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(pages); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(parent); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(password); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(path); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(pattern); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(peek); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(persistent_id); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(persistent_load); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(person); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(pi_factory); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(pid); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(policy); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(pos); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(pos1); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(pos2); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(posix); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(print_file_and_line); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(priority); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(progress); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(progress_handler); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(progress_routine); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(proto); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(protocol); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(ps1); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(ps2); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(query); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(quotetabs); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(r); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(raw); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(read); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(read1); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(readable); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(readall); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(readinto); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(readinto1); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(readline); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(readonly); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(real); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(reducer_override); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(registry); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(rel_tol); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(release); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(reload); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(repl); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(replace); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(reserved); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(reset); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(resetids); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(return); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(reverse); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(reversed); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(s); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(salt); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(sched_priority); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(scheduler); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(seek); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(seekable); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(selectors); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(self); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(send); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(sep); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(sequence); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(server_hostname); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(server_side); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(session); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(setcomp); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(setpgroup); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(setsid); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(setsigdef); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(setsigmask); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(setstate); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(shape); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(show_cmd); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(signed); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(size); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(sizehint); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(skip_file_prefixes); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(sleep); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(sock); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(sort); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(sound); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(source); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(source_traceback); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(src); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(src_dir_fd); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(stacklevel); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(start); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(statement); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(status); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(stderr); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(stdin); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(stdout); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(step); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(steps); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(store_name); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(strategy); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(strftime); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(strict); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(strict_mode); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(string); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(sub_key); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(symmetric_difference_update); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(tabsize); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(tag); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(target); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(target_is_directory); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(task); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(tb_frame); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(tb_lasti); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(tb_lineno); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(tb_next); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(tell); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(template); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(term); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(text); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(threading); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(throw); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(timeout); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(times); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(timetuple); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(top); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(trace_callback); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(traceback); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(trailers); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(translate); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(true); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(truncate); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(twice); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(txt); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(type); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(type_params); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(tz); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(tzname); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(uid); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(unlink); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(unraisablehook); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(uri); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(usedforsecurity); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(value); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(values); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(version); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(volume); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(warnings); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(warnoptions); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(wbits); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(week); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(weekday); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(which); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(who); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(withdata); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(writable); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(write); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(write_through); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(x); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(year); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); + string = &_Py_ID(zdict); + assert(_PyUnicode_CheckConsistency(string, 1)); + _PyUnicode_InternInPlace(interp, &string); +} +/* End auto-generated code */ +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERNAL_UNICODEOBJECT_GENERATED_H */ diff --git a/src/external/windows/include/python/internal/pycore_unionobject.h b/src/external/windows/include/python/internal/pycore_unionobject.h index 4908b0d8..785723dd 100755 --- a/src/external/windows/include/python/internal/pycore_unionobject.h +++ b/src/external/windows/include/python/internal/pycore_unionobject.h @@ -9,10 +9,10 @@ extern "C" { #endif extern PyTypeObject _PyUnion_Type; -#define _PyUnion_Check(op) Py_IS_TYPE(op, &_PyUnion_Type) +#define _PyUnion_Check(op) Py_IS_TYPE((op), &_PyUnion_Type) extern PyObject *_Py_union_type_or(PyObject *, PyObject *); -#define _PyGenericAlias_Check(op) PyObject_TypeCheck(op, &Py_GenericAliasType) +#define _PyGenericAlias_Check(op) PyObject_TypeCheck((op), &Py_GenericAliasType) extern PyObject *_Py_subs_parameters(PyObject *, PyObject *, PyObject *, PyObject *); extern PyObject *_Py_make_parameters(PyObject *); extern PyObject *_Py_union_args(PyObject *self); diff --git a/src/external/windows/include/python/interpreteridobject.h b/src/external/windows/include/python/interpreteridobject.h new file mode 100644 index 00000000..9d6f0053 --- /dev/null +++ b/src/external/windows/include/python/interpreteridobject.h @@ -0,0 +1,17 @@ +#ifndef Py_INTERPRETERIDOBJECT_H +#define Py_INTERPRETERIDOBJECT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef Py_LIMITED_API +# define Py_CPYTHON_INTERPRETERIDOBJECT_H +# include "cpython/interpreteridobject.h" +# undef Py_CPYTHON_INTERPRETERIDOBJECT_H +#endif + +#ifdef __cplusplus +} +#endif +#endif /* !Py_INTERPRETERIDOBJECT_H */ diff --git a/src/external/windows/include/python/iterobject.h b/src/external/windows/include/python/iterobject.h index 38ce0acf..d508b905 100755 --- a/src/external/windows/include/python/iterobject.h +++ b/src/external/windows/include/python/iterobject.h @@ -11,12 +11,12 @@ PyAPI_DATA(PyTypeObject) PyCallIter_Type; extern PyTypeObject _PyAnextAwaitable_Type; #endif -#define PySeqIter_Check(op) Py_IS_TYPE(op, &PySeqIter_Type) +#define PySeqIter_Check(op) Py_IS_TYPE((op), &PySeqIter_Type) PyAPI_FUNC(PyObject *) PySeqIter_New(PyObject *); -#define PyCallIter_Check(op) Py_IS_TYPE(op, &PyCallIter_Type) +#define PyCallIter_Check(op) Py_IS_TYPE((op), &PyCallIter_Type) PyAPI_FUNC(PyObject *) PyCallIter_New(PyObject *, PyObject *); diff --git a/src/external/windows/include/python/listobject.h b/src/external/windows/include/python/listobject.h index 6cfdb80d..a45d6933 100755 --- a/src/external/windows/include/python/listobject.h +++ b/src/external/windows/include/python/listobject.h @@ -23,7 +23,7 @@ PyAPI_DATA(PyTypeObject) PyListRevIter_Type; #define PyList_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LIST_SUBCLASS) -#define PyList_CheckExact(op) Py_IS_TYPE(op, &PyList_Type) +#define PyList_CheckExact(op) Py_IS_TYPE((op), &PyList_Type) PyAPI_FUNC(PyObject *) PyList_New(Py_ssize_t size); PyAPI_FUNC(Py_ssize_t) PyList_Size(PyObject *); diff --git a/src/external/windows/include/python/longobject.h b/src/external/windows/include/python/longobject.h index 0748a955..7e505676 100755 --- a/src/external/windows/include/python/longobject.h +++ b/src/external/windows/include/python/longobject.h @@ -7,11 +7,11 @@ extern "C" { /* Long (arbitrary precision) integer object interface */ -PyAPI_DATA(PyTypeObject) PyLong_Type; +// PyLong_Type is declared by object.h #define PyLong_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS) -#define PyLong_CheckExact(op) Py_IS_TYPE(op, &PyLong_Type) +#define PyLong_CheckExact(op) Py_IS_TYPE((op), &PyLong_Type) PyAPI_FUNC(PyObject *) PyLong_FromLong(long); PyAPI_FUNC(PyObject *) PyLong_FromUnsignedLong(unsigned long); @@ -34,7 +34,24 @@ PyAPI_FUNC(PyObject *) PyLong_GetInfo(void); #if !defined(SIZEOF_PID_T) || SIZEOF_PID_T == SIZEOF_INT #define _Py_PARSE_PID "i" #define PyLong_FromPid PyLong_FromLong -#define PyLong_AsPid PyLong_AsLong +# ifndef Py_LIMITED_API +# define PyLong_AsPid _PyLong_AsInt +# elif SIZEOF_INT == SIZEOF_LONG +# define PyLong_AsPid PyLong_AsLong +# else +static inline int +PyLong_AsPid(PyObject *obj) +{ + int overflow; + long result = PyLong_AsLongAndOverflow(obj, &overflow); + if (overflow || result > INT_MAX || result < INT_MIN) { + PyErr_SetString(PyExc_OverflowError, + "Python int too large to convert to C int"); + return -1; + } + return (int)result; +} +# endif #elif SIZEOF_PID_T == SIZEOF_LONG #define _Py_PARSE_PID "l" #define PyLong_FromPid PyLong_FromLong diff --git a/src/external/windows/include/python/memoryobject.h b/src/external/windows/include/python/memoryobject.h index 16129f46..7645539c 100755 --- a/src/external/windows/include/python/memoryobject.h +++ b/src/external/windows/include/python/memoryobject.h @@ -6,19 +6,9 @@ extern "C" { #endif -#ifndef Py_LIMITED_API -PyAPI_DATA(PyTypeObject) _PyManagedBuffer_Type; -#endif PyAPI_DATA(PyTypeObject) PyMemoryView_Type; -#define PyMemoryView_Check(op) Py_IS_TYPE(op, &PyMemoryView_Type) - -#ifndef Py_LIMITED_API -/* Get a pointer to the memoryview's private copy of the exporter's buffer. */ -#define PyMemoryView_GET_BUFFER(op) (&((PyMemoryViewObject *)(op))->view) -/* Get a pointer to the exporting object (this may be NULL!). */ -#define PyMemoryView_GET_BASE(op) (((PyMemoryViewObject *)(op))->view.obj) -#endif +#define PyMemoryView_Check(op) Py_IS_TYPE((op), &PyMemoryView_Type) PyAPI_FUNC(PyObject *) PyMemoryView_FromObject(PyObject *base); #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 @@ -32,38 +22,10 @@ PyAPI_FUNC(PyObject *) PyMemoryView_GetContiguous(PyObject *base, int buffertype, char order); - -/* The structs are declared here so that macros can work, but they shouldn't - be considered public. Don't access their fields directly, use the macros - and functions instead! */ #ifndef Py_LIMITED_API -#define _Py_MANAGED_BUFFER_RELEASED 0x001 /* access to exporter blocked */ -#define _Py_MANAGED_BUFFER_FREE_FORMAT 0x002 /* free format */ -typedef struct { - PyObject_HEAD - int flags; /* state flags */ - Py_ssize_t exports; /* number of direct memoryview exports */ - Py_buffer master; /* snapshot buffer obtained from the original exporter */ -} _PyManagedBufferObject; - - -/* memoryview state flags */ -#define _Py_MEMORYVIEW_RELEASED 0x001 /* access to master buffer blocked */ -#define _Py_MEMORYVIEW_C 0x002 /* C-contiguous layout */ -#define _Py_MEMORYVIEW_FORTRAN 0x004 /* Fortran contiguous layout */ -#define _Py_MEMORYVIEW_SCALAR 0x008 /* scalar: ndim = 0 */ -#define _Py_MEMORYVIEW_PIL 0x010 /* PIL-style layout */ - -typedef struct { - PyObject_VAR_HEAD - _PyManagedBufferObject *mbuf; /* managed buffer */ - Py_hash_t hash; /* hash value for read-only views */ - int flags; /* state flags */ - Py_ssize_t exports; /* number of buffer re-exports */ - Py_buffer view; /* private copy of the exporter's view */ - PyObject *weakreflist; - Py_ssize_t ob_array[1]; /* shape, strides, suboffsets */ -} PyMemoryViewObject; +# define Py_CPYTHON_MEMORYOBJECT_H +# include "cpython/memoryobject.h" +# undef Py_CPYTHON_MEMORYOBJECT_H #endif #ifdef __cplusplus diff --git a/src/external/windows/include/python/methodobject.h b/src/external/windows/include/python/methodobject.h index 56816e4f..f1c2a06c 100755 --- a/src/external/windows/include/python/methodobject.h +++ b/src/external/windows/include/python/methodobject.h @@ -13,8 +13,8 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyCFunction_Type; -#define PyCFunction_CheckExact(op) Py_IS_TYPE(op, &PyCFunction_Type) -#define PyCFunction_Check(op) PyObject_TypeCheck(op, &PyCFunction_Type) +#define PyCFunction_CheckExact(op) Py_IS_TYPE((op), &PyCFunction_Type) +#define PyCFunction_Check(op) PyObject_TypeCheck((op), &PyCFunction_Type) typedef PyObject *(*PyCFunction)(PyObject *, PyObject *); typedef PyObject *(*_PyCFunctionFast) (PyObject *, PyObject *const *, Py_ssize_t); diff --git a/src/external/windows/include/python/modsupport.h b/src/external/windows/include/python/modsupport.h index 174503b8..4bfc0ccd 100755 --- a/src/external/windows/include/python/modsupport.h +++ b/src/external/windows/include/python/modsupport.h @@ -37,14 +37,14 @@ PyAPI_FUNC(PyObject *) Py_BuildValue(const char *, ...); PyAPI_FUNC(PyObject *) _Py_BuildValue_SizeT(const char *, ...); -#define ANY_VARARGS(n) (n == PY_SSIZE_T_MAX) - PyAPI_FUNC(PyObject *) Py_VaBuildValue(const char *, va_list); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030a0000 // Add an attribute with name 'name' and value 'obj' to the module 'mod. // On success, return 0 on success. // On error, raise an exception and return -1. PyAPI_FUNC(int) PyModule_AddObjectRef(PyObject *mod, const char *name, PyObject *value); +#endif /* Py_LIMITED_API */ // Similar to PyModule_AddObjectRef() but steal a reference to 'obj' // (Py_DECREF(obj)) on success (if it returns 0). @@ -58,8 +58,8 @@ PyAPI_FUNC(int) PyModule_AddStringConstant(PyObject *, const char *, const char PyAPI_FUNC(int) PyModule_AddType(PyObject *module, PyTypeObject *type); #endif /* Py_LIMITED_API */ -#define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant(m, #c, c) -#define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant(m, #c, c) +#define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant((m), #c, (c)) +#define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant((m), #c, (c)) #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 /* New in 3.5 */ @@ -134,10 +134,10 @@ PyAPI_FUNC(PyObject *) PyModule_Create2(PyModuleDef*, int apiver); #ifdef Py_LIMITED_API #define PyModule_Create(module) \ - PyModule_Create2(module, PYTHON_ABI_VERSION) + PyModule_Create2((module), PYTHON_ABI_VERSION) #else #define PyModule_Create(module) \ - PyModule_Create2(module, PYTHON_API_VERSION) + PyModule_Create2((module), PYTHON_API_VERSION) #endif #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000 @@ -148,10 +148,10 @@ PyAPI_FUNC(PyObject *) PyModule_FromDefAndSpec2(PyModuleDef *def, #ifdef Py_LIMITED_API #define PyModule_FromDefAndSpec(module, spec) \ - PyModule_FromDefAndSpec2(module, spec, PYTHON_ABI_VERSION) + PyModule_FromDefAndSpec2((module), (spec), PYTHON_ABI_VERSION) #else #define PyModule_FromDefAndSpec(module, spec) \ - PyModule_FromDefAndSpec2(module, spec, PYTHON_API_VERSION) + PyModule_FromDefAndSpec2((module), (spec), PYTHON_API_VERSION) #endif /* Py_LIMITED_API */ #endif /* New in 3.5 */ diff --git a/src/external/windows/include/python/moduleobject.h b/src/external/windows/include/python/moduleobject.h index cf0d5413..bf5a5a37 100755 --- a/src/external/windows/include/python/moduleobject.h +++ b/src/external/windows/include/python/moduleobject.h @@ -9,8 +9,8 @@ extern "C" { PyAPI_DATA(PyTypeObject) PyModule_Type; -#define PyModule_Check(op) PyObject_TypeCheck(op, &PyModule_Type) -#define PyModule_CheckExact(op) Py_IS_TYPE(op, &PyModule_Type) +#define PyModule_Check(op) PyObject_TypeCheck((op), &PyModule_Type) +#define PyModule_CheckExact(op) Py_IS_TYPE((op), &PyModule_Type) #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 PyAPI_FUNC(PyObject *) PyModule_NewObject( @@ -43,8 +43,22 @@ PyAPI_DATA(PyTypeObject) PyModuleDef_Type; typedef struct PyModuleDef_Base { PyObject_HEAD + /* The function used to re-initialize the module. + This is only set for legacy (single-phase init) extension modules + and only used for those that support multiple initializations + (m_size >= 0). + It is set by _PyImport_LoadDynamicModuleWithSpec() + and _imp.create_builtin(). */ PyObject* (*m_init)(void); + /* The module's index into its interpreter's modules_by_index cache. + This is set for all extension modules but only used for legacy ones. + (See PyInterpreterState.modules_by_index for more info.) + It is set by PyModuleDef_Init(). */ Py_ssize_t m_index; + /* A copy of the module's __dict__ after the first time it was loaded. + This is only set/used for legacy modules that do not support + multiple initializations. + It is set by _PyImport_FixupExtensionObject(). */ PyObject* m_copy; } PyModuleDef_Base; @@ -64,13 +78,23 @@ struct PyModuleDef_Slot { #define Py_mod_create 1 #define Py_mod_exec 2 +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030c0000 +# define Py_mod_multiple_interpreters 3 +#endif #ifndef Py_LIMITED_API -#define _Py_mod_LAST_SLOT 2 +#define _Py_mod_LAST_SLOT 3 #endif #endif /* New in 3.5 */ +/* for Py_mod_multiple_interpreters: */ +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030c0000 +# define Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED ((void *)0) +# define Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED ((void *)1) +# define Py_MOD_PER_INTERPRETER_GIL_SUPPORTED ((void *)2) +#endif + struct PyModuleDef { PyModuleDef_Base m_base; const char* m_name; diff --git a/src/external/windows/include/python/object.h b/src/external/windows/include/python/object.h index 59f85820..eabdb293 100755 --- a/src/external/windows/include/python/object.h +++ b/src/external/windows/include/python/object.h @@ -51,6 +51,8 @@ A standard interface exists for objects that contain an array of items whose size is determined when the object is allocated. */ +#include "pystats.h" + /* Py_DEBUG implies Py_REF_DEBUG. */ #if defined(Py_DEBUG) && !defined(Py_REF_DEBUG) # define Py_REF_DEBUG @@ -76,12 +78,76 @@ whose size is determined when the object is allocated. /* PyObject_HEAD defines the initial segment of every PyObject. */ #define PyObject_HEAD PyObject ob_base; -#define PyObject_HEAD_INIT(type) \ - { _PyObject_EXTRA_INIT \ - 1, type }, +/* +Immortalization: -#define PyVarObject_HEAD_INIT(type, size) \ - { PyObject_HEAD_INIT(type) size }, +The following indicates the immortalization strategy depending on the amount +of available bits in the reference count field. All strategies are backwards +compatible but the specific reference count value or immortalization check +might change depending on the specializations for the underlying system. + +Proper deallocation of immortal instances requires distinguishing between +statically allocated immortal instances vs those promoted by the runtime to be +immortal. The latter should be the only instances that require +cleanup during runtime finalization. +*/ + +#if SIZEOF_VOID_P > 4 +/* +In 64+ bit systems, an object will be marked as immortal by setting all of the +lower 32 bits of the reference count field, which is equal to: 0xFFFFFFFF + +Using the lower 32 bits makes the value backwards compatible by allowing +C-Extensions without the updated checks in Py_INCREF and Py_DECREF to safely +increase and decrease the objects reference count. The object would lose its +immortality, but the execution would still be correct. + +Reference count increases will use saturated arithmetic, taking advantage of +having all the lower 32 bits set, which will avoid the reference count to go +beyond the refcount limit. Immortality checks for reference count decreases will +be done by checking the bit sign flag in the lower 32 bits. +*/ +#define _Py_IMMORTAL_REFCNT UINT_MAX + +#else +/* +In 32 bit systems, an object will be marked as immortal by setting all of the +lower 30 bits of the reference count field, which is equal to: 0x3FFFFFFF + +Using the lower 30 bits makes the value backwards compatible by allowing +C-Extensions without the updated checks in Py_INCREF and Py_DECREF to safely +increase and decrease the objects reference count. The object would lose its +immortality, but the execution would still be correct. + +Reference count increases and decreases will first go through an immortality +check by comparing the reference count field to the immortality reference count. +*/ +#define _Py_IMMORTAL_REFCNT (UINT_MAX >> 2) +#endif + +// Make all internal uses of PyObject_HEAD_INIT immortal while preserving the +// C-API expectation that the refcnt will be set to 1. +#ifdef Py_BUILD_CORE +#define PyObject_HEAD_INIT(type) \ + { \ + _PyObject_EXTRA_INIT \ + { _Py_IMMORTAL_REFCNT }, \ + (type) \ + }, +#else +#define PyObject_HEAD_INIT(type) \ + { \ + _PyObject_EXTRA_INIT \ + { 1 }, \ + (type) \ + }, +#endif /* Py_BUILD_CORE */ + +#define PyVarObject_HEAD_INIT(type, size) \ + { \ + PyObject_HEAD_INIT(type) \ + (size) \ + }, /* PyObject_VAR_HEAD defines the initial segment of all variable-size * container objects. These end with a declaration of an array with 1 @@ -99,7 +165,28 @@ whose size is determined when the object is allocated. */ struct _object { _PyObject_HEAD_EXTRA - Py_ssize_t ob_refcnt; + +#if (defined(__GNUC__) || defined(__clang__)) \ + && !(defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L) + // On C99 and older, anonymous union is a GCC and clang extension + __extension__ +#endif +#ifdef _MSC_VER + // Ignore MSC warning C4201: "nonstandard extension used: + // nameless struct/union" + __pragma(warning(push)) + __pragma(warning(disable: 4201)) +#endif + union { + Py_ssize_t ob_refcnt; +#if SIZEOF_VOID_P > 4 + PY_UINT32_T ob_refcnt_split[2]; +#endif + }; +#ifdef _MSC_VER + __pragma(warning(pop)) +#endif + PyTypeObject *ob_type; }; @@ -136,29 +223,49 @@ static inline PyTypeObject* Py_TYPE(PyObject *ob) { # define Py_TYPE(ob) Py_TYPE(_PyObject_CAST(ob)) #endif +PyAPI_DATA(PyTypeObject) PyLong_Type; +PyAPI_DATA(PyTypeObject) PyBool_Type; + // bpo-39573: The Py_SET_SIZE() function must be used to set an object size. static inline Py_ssize_t Py_SIZE(PyObject *ob) { - PyVarObject *var_ob = _PyVarObject_CAST(ob); - return var_ob->ob_size; + assert(ob->ob_type != &PyLong_Type); + assert(ob->ob_type != &PyBool_Type); + return _PyVarObject_CAST(ob)->ob_size; } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 # define Py_SIZE(ob) Py_SIZE(_PyObject_CAST(ob)) #endif +static inline Py_ALWAYS_INLINE int _Py_IsImmortal(PyObject *op) +{ +#if SIZEOF_VOID_P > 4 + return _Py_CAST(PY_INT32_T, op->ob_refcnt) < 0; +#else + return op->ob_refcnt == _Py_IMMORTAL_REFCNT; +#endif +} +#define _Py_IsImmortal(op) _Py_IsImmortal(_PyObject_CAST(op)) static inline int Py_IS_TYPE(PyObject *ob, PyTypeObject *type) { return Py_TYPE(ob) == type; } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define Py_IS_TYPE(ob, type) Py_IS_TYPE(_PyObject_CAST(ob), type) +# define Py_IS_TYPE(ob, type) Py_IS_TYPE(_PyObject_CAST(ob), (type)) #endif static inline void Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt) { + // This immortal check is for code that is unaware of immortal objects. + // The runtime tracks these objects and we should avoid as much + // as possible having extensions inadvertently change the refcnt + // of an immortalized object. + if (_Py_IsImmortal(ob)) { + return; + } ob->ob_refcnt = refcnt; } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define Py_SET_REFCNT(ob, refcnt) Py_SET_REFCNT(_PyObject_CAST(ob), refcnt) +# define Py_SET_REFCNT(ob, refcnt) Py_SET_REFCNT(_PyObject_CAST(ob), (refcnt)) #endif @@ -169,12 +276,13 @@ static inline void Py_SET_TYPE(PyObject *ob, PyTypeObject *type) { # define Py_SET_TYPE(ob, type) Py_SET_TYPE(_PyObject_CAST(ob), type) #endif - static inline void Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size) { + assert(ob->ob_base.ob_type != &PyLong_Type); + assert(ob->ob_base.ob_type != &PyBool_Type); ob->ob_size = size; } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define Py_SET_SIZE(ob, size) Py_SET_SIZE(_PyVarObject_CAST(ob), size) +# define Py_SET_SIZE(ob, size) Py_SET_SIZE(_PyVarObject_CAST(ob), (size)) #endif @@ -226,6 +334,11 @@ typedef int (*initproc)(PyObject *, PyObject *, PyObject *); typedef PyObject *(*newfunc)(PyTypeObject *, PyObject *, PyObject *); typedef PyObject *(*allocfunc)(PyTypeObject *, Py_ssize_t); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030c0000 // 3.12 +typedef PyObject *(*vectorcallfunc)(PyObject *callable, PyObject *const *args, + size_t nargsf, PyObject *kwnames); +#endif + typedef struct{ int slot; /* slot id, see below */ void *pfunc; /* function pointer */ @@ -255,6 +368,11 @@ PyAPI_FUNC(void *) PyType_GetModuleState(PyTypeObject *); PyAPI_FUNC(PyObject *) PyType_GetName(PyTypeObject *); PyAPI_FUNC(PyObject *) PyType_GetQualName(PyTypeObject *); #endif +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 +PyAPI_FUNC(PyObject *) PyType_FromMetaclass(PyTypeObject*, PyObject*, PyType_Spec*, PyObject*); +PyAPI_FUNC(void *) PyObject_GetTypeData(PyObject *obj, PyTypeObject *cls); +PyAPI_FUNC(Py_ssize_t) PyType_GetTypeDataSize(PyTypeObject *cls); +#endif /* Generic type check */ PyAPI_FUNC(int) PyType_IsSubtype(PyTypeObject *, PyTypeObject *); @@ -263,7 +381,7 @@ static inline int PyObject_TypeCheck(PyObject *ob, PyTypeObject *type) { return Py_IS_TYPE(ob, type) || PyType_IsSubtype(Py_TYPE(ob), type); } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 -# define PyObject_TypeCheck(ob, type) PyObject_TypeCheck(_PyObject_CAST(ob), type) +# define PyObject_TypeCheck(ob, type) PyObject_TypeCheck(_PyObject_CAST(ob), (type)) #endif PyAPI_DATA(PyTypeObject) PyType_Type; /* built-in 'type' */ @@ -347,12 +465,21 @@ given type object has a specified feature. #ifndef Py_LIMITED_API +/* Track types initialized using _PyStaticType_InitBuiltin(). */ +#define _Py_TPFLAGS_STATIC_BUILTIN (1 << 1) + +/* Placement of weakref pointers are managed by the VM, not by the type. + * The VM will automatically set tp_weaklistoffset. + */ +#define Py_TPFLAGS_MANAGED_WEAKREF (1 << 3) + /* Placement of dict (and values) pointers are managed by the VM, not by the type. - * The VM will automatically set tp_dictoffset. Should not be used for variable sized - * classes, such as classes that extend tuple. + * The VM will automatically set tp_dictoffset. */ #define Py_TPFLAGS_MANAGED_DICT (1 << 4) +#define Py_TPFLAGS_PREHEADER (Py_TPFLAGS_MANAGED_WEAKREF | Py_TPFLAGS_MANAGED_DICT) + /* Set if instances of the type object are treated as sequences for pattern matching */ #define Py_TPFLAGS_SEQUENCE (1 << 5) /* Set if instances of the type object are treated as mappings for pattern matching */ @@ -373,11 +500,13 @@ given type object has a specified feature. #define Py_TPFLAGS_BASETYPE (1UL << 10) /* Set if the type implements the vectorcall protocol (PEP 590) */ -#ifndef Py_LIMITED_API +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 #define Py_TPFLAGS_HAVE_VECTORCALL (1UL << 11) +#ifndef Py_LIMITED_API // Backwards compatibility alias for API that was provisional in Python 3.8 #define _Py_TPFLAGS_HAVE_VECTORCALL Py_TPFLAGS_HAVE_VECTORCALL #endif +#endif /* Set if the type is 'ready' -- fully initialized */ #define Py_TPFLAGS_READY (1UL << 12) @@ -409,6 +538,9 @@ given type object has a specified feature. // subject itself (rather than a mapped attribute on it): #define _Py_TPFLAGS_MATCH_SELF (1UL << 22) +/* Items (ob_size*tp_itemsize) are found at the end of an instance's memory */ +#define Py_TPFLAGS_ITEMS_AT_END (1UL << 23) + /* These flags are used to determine if a type is a subclass. */ #define Py_TPFLAGS_LONG_SUBCLASS (1UL << 24) #define Py_TPFLAGS_LIST_SUBCLASS (1UL << 25) @@ -468,11 +600,12 @@ decision that's up to the implementer of each new type so if you want, you can count such references to the type object.) */ -#ifdef Py_REF_DEBUG -PyAPI_DATA(Py_ssize_t) _Py_RefTotal; +#if defined(Py_REF_DEBUG) && !defined(Py_LIMITED_API) PyAPI_FUNC(void) _Py_NegativeRefcount(const char *filename, int lineno, PyObject *op); -#endif /* Py_REF_DEBUG */ +PyAPI_FUNC(void) _Py_INCREF_IncRefTotal(void); +PyAPI_FUNC(void) _Py_DECREF_DecRefTotal(void); +#endif // Py_REF_DEBUG && !Py_LIMITED_API PyAPI_FUNC(void) _Py_Dealloc(PyObject *); @@ -488,52 +621,86 @@ PyAPI_FUNC(void) Py_DecRef(PyObject *); PyAPI_FUNC(void) _Py_IncRef(PyObject *); PyAPI_FUNC(void) _Py_DecRef(PyObject *); -static inline void Py_INCREF(PyObject *op) +static inline Py_ALWAYS_INLINE void Py_INCREF(PyObject *op) { -#if defined(Py_REF_DEBUG) && defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030A0000 - // Stable ABI for Python 3.10 built in debug mode. +#if defined(Py_LIMITED_API) && (Py_LIMITED_API+0 >= 0x030c0000 || defined(Py_REF_DEBUG)) + // Stable ABI implements Py_INCREF() as a function call on limited C API + // version 3.12 and newer, and on Python built in debug mode. _Py_IncRef() + // was added to Python 3.10.0a7, use Py_IncRef() on older Python versions. + // Py_IncRef() accepts NULL whereas _Py_IncRef() doesn't. +# if Py_LIMITED_API+0 >= 0x030a00A7 _Py_IncRef(op); +# else + Py_IncRef(op); +# endif #else // Non-limited C API and limited C API for Python 3.9 and older access // directly PyObject.ob_refcnt. -#ifdef Py_REF_DEBUG - _Py_RefTotal++; -#endif +#if SIZEOF_VOID_P > 4 + // Portable saturated add, branching on the carry flag and set low bits + PY_UINT32_T cur_refcnt = op->ob_refcnt_split[PY_BIG_ENDIAN]; + PY_UINT32_T new_refcnt = cur_refcnt + 1; + if (new_refcnt == 0) { + return; + } + op->ob_refcnt_split[PY_BIG_ENDIAN] = new_refcnt; +#else + // Explicitly check immortality against the immortal value + if (_Py_IsImmortal(op)) { + return; + } op->ob_refcnt++; +#endif + _Py_INCREF_STAT_INC(); +#ifdef Py_REF_DEBUG + _Py_INCREF_IncRefTotal(); +#endif #endif } #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 # define Py_INCREF(op) Py_INCREF(_PyObject_CAST(op)) #endif - -#if defined(Py_REF_DEBUG) && defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030A0000 -// Stable ABI for limited C API version 3.10 of Python debug build +#if defined(Py_LIMITED_API) && (Py_LIMITED_API+0 >= 0x030c0000 || defined(Py_REF_DEBUG)) +// Stable ABI implements Py_DECREF() as a function call on limited C API +// version 3.12 and newer, and on Python built in debug mode. _Py_DecRef() was +// added to Python 3.10.0a7, use Py_DecRef() on older Python versions. +// Py_DecRef() accepts NULL whereas _Py_IncRef() doesn't. static inline void Py_DECREF(PyObject *op) { +# if Py_LIMITED_API+0 >= 0x030a00A7 _Py_DecRef(op); +# else + Py_DecRef(op); +# endif } #define Py_DECREF(op) Py_DECREF(_PyObject_CAST(op)) #elif defined(Py_REF_DEBUG) static inline void Py_DECREF(const char *filename, int lineno, PyObject *op) { - _Py_RefTotal--; - if (--op->ob_refcnt != 0) { - if (op->ob_refcnt < 0) { - _Py_NegativeRefcount(filename, lineno, op); - } + if (op->ob_refcnt <= 0) { + _Py_NegativeRefcount(filename, lineno, op); } - else { + if (_Py_IsImmortal(op)) { + return; + } + _Py_DECREF_STAT_INC(); + _Py_DECREF_DecRefTotal(); + if (--op->ob_refcnt == 0) { _Py_Dealloc(op); } } #define Py_DECREF(op) Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op)) #else -static inline void Py_DECREF(PyObject *op) +static inline Py_ALWAYS_INLINE void Py_DECREF(PyObject *op) { // Non-limited C API and limited C API for Python 3.9 and older access // directly PyObject.ob_refcnt. + if (_Py_IsImmortal(op)) { + return; + } + _Py_DECREF_STAT_INC(); if (--op->ob_refcnt == 0) { _Py_Dealloc(op); } @@ -575,15 +742,44 @@ static inline void Py_DECREF(PyObject *op) * one of those can't cause problems -- but in part that relies on that * Python integers aren't currently weakly referencable. Best practice is * to use Py_CLEAR() even if you can't think of a reason for why you need to. + * + * gh-98724: Use a temporary variable to only evaluate the macro argument once, + * to avoid the duplication of side effects if the argument has side effects. + * + * gh-99701: If the PyObject* type is used with casting arguments to PyObject*, + * the code can be miscompiled with strict aliasing because of type punning. + * With strict aliasing, a compiler considers that two pointers of different + * types cannot read or write the same memory which enables optimization + * opportunities. + * + * If available, use _Py_TYPEOF() to use the 'op' type for temporary variables, + * and so avoid type punning. Otherwise, use memcpy() which causes type erasure + * and so prevents the compiler to reuse an old cached 'op' value after + * Py_CLEAR(). */ -#define Py_CLEAR(op) \ - do { \ - PyObject *_py_tmp = _PyObject_CAST(op); \ - if (_py_tmp != NULL) { \ - (op) = NULL; \ - Py_DECREF(_py_tmp); \ - } \ +#ifdef _Py_TYPEOF +#define Py_CLEAR(op) \ + do { \ + _Py_TYPEOF(op)* _tmp_op_ptr = &(op); \ + _Py_TYPEOF(op) _tmp_old_op = (*_tmp_op_ptr); \ + if (_tmp_old_op != NULL) { \ + *_tmp_op_ptr = _Py_NULL; \ + Py_DECREF(_tmp_old_op); \ + } \ } while (0) +#else +#define Py_CLEAR(op) \ + do { \ + PyObject **_tmp_op_ptr = _Py_CAST(PyObject**, &(op)); \ + PyObject *_tmp_old_op = (*_tmp_op_ptr); \ + if (_tmp_old_op != NULL) { \ + PyObject *_null_ptr = _Py_NULL; \ + memcpy(_tmp_op_ptr, &_null_ptr, sizeof(PyObject*)); \ + Py_DECREF(_tmp_old_op); \ + } \ + } while (0) +#endif + /* Function to use in case the object pointer can be NULL: */ static inline void Py_XINCREF(PyObject *op) @@ -651,7 +847,7 @@ PyAPI_FUNC(int) Py_IsNone(PyObject *x); #define Py_IsNone(x) Py_Is((x), Py_None) /* Macro for returning Py_None from a function */ -#define Py_RETURN_NONE return Py_NewRef(Py_None) +#define Py_RETURN_NONE return Py_None /* Py_NotImplemented is a singleton used to signal that an operation is @@ -661,7 +857,7 @@ PyAPI_DATA(PyObject) _Py_NotImplementedStruct; /* Don't use this directly */ #define Py_NotImplemented (&_Py_NotImplementedStruct) /* Macro for returning Py_NotImplemented from a function */ -#define Py_RETURN_NOTIMPLEMENTED return Py_NewRef(Py_NotImplemented) +#define Py_RETURN_NOTIMPLEMENTED return Py_NotImplemented /* Rich comparison opcodes */ #define Py_LT 0 @@ -772,7 +968,7 @@ PyType_HasFeature(PyTypeObject *type, unsigned long feature) return ((flags & feature) != 0); } -#define PyType_FastSubclass(type, flag) PyType_HasFeature(type, flag) +#define PyType_FastSubclass(type, flag) PyType_HasFeature((type), (flag)) static inline int PyType_Check(PyObject *op) { return PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TYPE_SUBCLASS); diff --git a/src/external/windows/include/python/objimpl.h b/src/external/windows/include/python/objimpl.h index 11b5c7af..2824f262 100755 --- a/src/external/windows/include/python/objimpl.h +++ b/src/external/windows/include/python/objimpl.h @@ -135,14 +135,14 @@ PyAPI_FUNC(PyVarObject *) _PyObject_NewVar(PyTypeObject *, Py_ssize_t); // Alias to PyObject_New(). In Python 3.8, PyObject_NEW() called directly // PyObject_MALLOC() with _PyObject_SIZE(). -#define PyObject_NEW(type, typeobj) PyObject_New(type, typeobj) +#define PyObject_NEW(type, typeobj) PyObject_New(type, (typeobj)) #define PyObject_NewVar(type, typeobj, n) \ ( (type *) _PyObject_NewVar((typeobj), (n)) ) // Alias to PyObject_NewVar(). In Python 3.8, PyObject_NEW_VAR() called // directly PyObject_MALLOC() with _PyObject_VAR_SIZE(). -#define PyObject_NEW_VAR(type, typeobj, n) PyObject_NewVar(type, typeobj, n) +#define PyObject_NEW_VAR(type, typeobj, n) PyObject_NewVar(type, (typeobj), (n)) /* @@ -157,6 +157,25 @@ PyAPI_FUNC(int) PyGC_Enable(void); PyAPI_FUNC(int) PyGC_Disable(void); PyAPI_FUNC(int) PyGC_IsEnabled(void); + +#if !defined(Py_LIMITED_API) +/* Visit all live GC-capable objects, similar to gc.get_objects(None). The + * supplied callback is called on every such object with the void* arg set + * to the supplied arg. Returning 0 from the callback ends iteration, returning + * 1 allows iteration to continue. Returning any other value may result in + * undefined behaviour. + * + * If new objects are (de)allocated by the callback it is undefined if they + * will be visited. + + * Garbage collection is disabled during operation. Explicitly running a + * collection in the callback may lead to undefined behaviour e.g. visiting the + * same objects multiple times or not at all. + */ +typedef int (*gcvisitobjects_t)(PyObject*, void*); +PyAPI_FUNC(void) PyUnstable_GC_VisitObjects(gcvisitobjects_t callback, void* arg); +#endif + /* Test if a type has a GC head */ #define PyType_IS_GC(t) PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC) diff --git a/src/external/windows/include/python/opcode.h b/src/external/windows/include/python/opcode.h index 27cd9368..c132c99a 100755 --- a/src/external/windows/include/python/opcode.h +++ b/src/external/windows/include/python/opcode.h @@ -1,4 +1,4 @@ -// Auto-generated by Tools/scripts/generate_opcode_h.py from Lib/opcode.py +// Auto-generated by Tools/build/generate_opcode_h.py from Lib/opcode.py #ifndef Py_OPCODE_H #define Py_OPCODE_H @@ -11,12 +11,17 @@ extern "C" { #define CACHE 0 #define POP_TOP 1 #define PUSH_NULL 2 +#define INTERPRETER_EXIT 3 +#define END_FOR 4 +#define END_SEND 5 #define NOP 9 -#define UNARY_POSITIVE 10 #define UNARY_NEGATIVE 11 #define UNARY_NOT 12 #define UNARY_INVERT 15 +#define RESERVED 17 #define BINARY_SUBSCR 25 +#define BINARY_SLICE 26 +#define STORE_SLICE 27 #define GET_LEN 30 #define MATCH_MAPPING 31 #define MATCH_SEQUENCE 32 @@ -30,21 +35,17 @@ extern "C" { #define BEFORE_ASYNC_WITH 52 #define BEFORE_WITH 53 #define END_ASYNC_FOR 54 +#define CLEANUP_THROW 55 #define STORE_SUBSCR 60 #define DELETE_SUBSCR 61 #define GET_ITER 68 #define GET_YIELD_FROM_ITER 69 -#define PRINT_EXPR 70 #define LOAD_BUILD_CLASS 71 #define LOAD_ASSERTION_ERROR 74 #define RETURN_GENERATOR 75 -#define LIST_TO_TUPLE 82 #define RETURN_VALUE 83 -#define IMPORT_STAR 84 #define SETUP_ANNOTATIONS 85 -#define YIELD_VALUE 86 -#define ASYNC_GEN_WRAP 87 -#define PREP_RERAISE_STAR 88 +#define LOAD_LOCALS 87 #define POP_EXCEPT 89 #define HAVE_ARGUMENT 90 #define STORE_NAME 90 @@ -68,22 +69,22 @@ extern "C" { #define IMPORT_NAME 108 #define IMPORT_FROM 109 #define JUMP_FORWARD 110 -#define JUMP_IF_FALSE_OR_POP 111 -#define JUMP_IF_TRUE_OR_POP 112 -#define POP_JUMP_FORWARD_IF_FALSE 114 -#define POP_JUMP_FORWARD_IF_TRUE 115 +#define POP_JUMP_IF_FALSE 114 +#define POP_JUMP_IF_TRUE 115 #define LOAD_GLOBAL 116 #define IS_OP 117 #define CONTAINS_OP 118 #define RERAISE 119 #define COPY 120 +#define RETURN_CONST 121 #define BINARY_OP 122 #define SEND 123 #define LOAD_FAST 124 #define STORE_FAST 125 #define DELETE_FAST 126 -#define POP_JUMP_FORWARD_IF_NOT_NONE 128 -#define POP_JUMP_FORWARD_IF_NONE 129 +#define LOAD_FAST_CHECK 127 +#define POP_JUMP_IF_NOT_NONE 128 +#define POP_JUMP_IF_NONE 129 #define RAISE_VARARGS 130 #define GET_AWAITABLE 131 #define MAKE_FUNCTION 132 @@ -95,106 +96,141 @@ extern "C" { #define STORE_DEREF 138 #define DELETE_DEREF 139 #define JUMP_BACKWARD 140 +#define LOAD_SUPER_ATTR 141 #define CALL_FUNCTION_EX 142 +#define LOAD_FAST_AND_CLEAR 143 #define EXTENDED_ARG 144 #define LIST_APPEND 145 #define SET_ADD 146 #define MAP_ADD 147 -#define LOAD_CLASSDEREF 148 #define COPY_FREE_VARS 149 +#define YIELD_VALUE 150 #define RESUME 151 #define MATCH_CLASS 152 #define FORMAT_VALUE 155 #define BUILD_CONST_KEY_MAP 156 #define BUILD_STRING 157 -#define LOAD_METHOD 160 #define LIST_EXTEND 162 #define SET_UPDATE 163 #define DICT_MERGE 164 #define DICT_UPDATE 165 -#define PRECALL 166 #define CALL 171 #define KW_NAMES 172 -#define POP_JUMP_BACKWARD_IF_NOT_NONE 173 -#define POP_JUMP_BACKWARD_IF_NONE 174 -#define POP_JUMP_BACKWARD_IF_FALSE 175 -#define POP_JUMP_BACKWARD_IF_TRUE 176 -#define BINARY_OP_ADAPTIVE 3 -#define BINARY_OP_ADD_FLOAT 4 -#define BINARY_OP_ADD_INT 5 -#define BINARY_OP_ADD_UNICODE 6 -#define BINARY_OP_INPLACE_ADD_UNICODE 7 -#define BINARY_OP_MULTIPLY_FLOAT 8 -#define BINARY_OP_MULTIPLY_INT 13 -#define BINARY_OP_SUBTRACT_FLOAT 14 -#define BINARY_OP_SUBTRACT_INT 16 -#define BINARY_SUBSCR_ADAPTIVE 17 -#define BINARY_SUBSCR_DICT 18 -#define BINARY_SUBSCR_GETITEM 19 -#define BINARY_SUBSCR_LIST_INT 20 -#define BINARY_SUBSCR_TUPLE_INT 21 -#define CALL_ADAPTIVE 22 +#define CALL_INTRINSIC_1 173 +#define CALL_INTRINSIC_2 174 +#define LOAD_FROM_DICT_OR_GLOBALS 175 +#define LOAD_FROM_DICT_OR_DEREF 176 +#define MIN_INSTRUMENTED_OPCODE 237 +#define INSTRUMENTED_LOAD_SUPER_ATTR 237 +#define INSTRUMENTED_POP_JUMP_IF_NONE 238 +#define INSTRUMENTED_POP_JUMP_IF_NOT_NONE 239 +#define INSTRUMENTED_RESUME 240 +#define INSTRUMENTED_CALL 241 +#define INSTRUMENTED_RETURN_VALUE 242 +#define INSTRUMENTED_YIELD_VALUE 243 +#define INSTRUMENTED_CALL_FUNCTION_EX 244 +#define INSTRUMENTED_JUMP_FORWARD 245 +#define INSTRUMENTED_JUMP_BACKWARD 246 +#define INSTRUMENTED_RETURN_CONST 247 +#define INSTRUMENTED_FOR_ITER 248 +#define INSTRUMENTED_POP_JUMP_IF_FALSE 249 +#define INSTRUMENTED_POP_JUMP_IF_TRUE 250 +#define INSTRUMENTED_END_FOR 251 +#define INSTRUMENTED_END_SEND 252 +#define INSTRUMENTED_INSTRUCTION 253 +#define INSTRUMENTED_LINE 254 +#define MIN_PSEUDO_OPCODE 256 +#define SETUP_FINALLY 256 +#define SETUP_CLEANUP 257 +#define SETUP_WITH 258 +#define POP_BLOCK 259 +#define JUMP 260 +#define JUMP_NO_INTERRUPT 261 +#define LOAD_METHOD 262 +#define LOAD_SUPER_METHOD 263 +#define LOAD_ZERO_SUPER_METHOD 264 +#define LOAD_ZERO_SUPER_ATTR 265 +#define STORE_FAST_MAYBE_NULL 266 +#define MAX_PSEUDO_OPCODE 266 +#define BINARY_OP_ADD_FLOAT 6 +#define BINARY_OP_ADD_INT 7 +#define BINARY_OP_ADD_UNICODE 8 +#define BINARY_OP_INPLACE_ADD_UNICODE 10 +#define BINARY_OP_MULTIPLY_FLOAT 13 +#define BINARY_OP_MULTIPLY_INT 14 +#define BINARY_OP_SUBTRACT_FLOAT 16 +#define BINARY_OP_SUBTRACT_INT 18 +#define BINARY_SUBSCR_DICT 19 +#define BINARY_SUBSCR_GETITEM 20 +#define BINARY_SUBSCR_LIST_INT 21 +#define BINARY_SUBSCR_TUPLE_INT 22 #define CALL_PY_EXACT_ARGS 23 #define CALL_PY_WITH_DEFAULTS 24 -#define COMPARE_OP_ADAPTIVE 26 -#define COMPARE_OP_FLOAT_JUMP 27 -#define COMPARE_OP_INT_JUMP 28 -#define COMPARE_OP_STR_JUMP 29 -#define EXTENDED_ARG_QUICK 34 -#define JUMP_BACKWARD_QUICK 38 -#define LOAD_ATTR_ADAPTIVE 39 -#define LOAD_ATTR_INSTANCE_VALUE 40 -#define LOAD_ATTR_MODULE 41 -#define LOAD_ATTR_SLOT 42 -#define LOAD_ATTR_WITH_HINT 43 -#define LOAD_CONST__LOAD_FAST 44 -#define LOAD_FAST__LOAD_CONST 45 -#define LOAD_FAST__LOAD_FAST 46 -#define LOAD_GLOBAL_ADAPTIVE 47 -#define LOAD_GLOBAL_BUILTIN 48 -#define LOAD_GLOBAL_MODULE 55 -#define LOAD_METHOD_ADAPTIVE 56 -#define LOAD_METHOD_CLASS 57 -#define LOAD_METHOD_MODULE 58 -#define LOAD_METHOD_NO_DICT 59 -#define LOAD_METHOD_WITH_DICT 62 -#define LOAD_METHOD_WITH_VALUES 63 -#define PRECALL_ADAPTIVE 64 -#define PRECALL_BOUND_METHOD 65 -#define PRECALL_BUILTIN_CLASS 66 -#define PRECALL_BUILTIN_FAST_WITH_KEYWORDS 67 -#define PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 72 -#define PRECALL_NO_KW_BUILTIN_FAST 73 -#define PRECALL_NO_KW_BUILTIN_O 76 -#define PRECALL_NO_KW_ISINSTANCE 77 -#define PRECALL_NO_KW_LEN 78 -#define PRECALL_NO_KW_LIST_APPEND 79 -#define PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST 80 -#define PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 81 -#define PRECALL_NO_KW_METHOD_DESCRIPTOR_O 113 -#define PRECALL_NO_KW_STR_1 121 -#define PRECALL_NO_KW_TUPLE_1 127 -#define PRECALL_NO_KW_TYPE_1 141 -#define PRECALL_PYFUNC 143 -#define RESUME_QUICK 150 -#define STORE_ATTR_ADAPTIVE 153 -#define STORE_ATTR_INSTANCE_VALUE 154 -#define STORE_ATTR_SLOT 158 -#define STORE_ATTR_WITH_HINT 159 -#define STORE_FAST__LOAD_FAST 161 -#define STORE_FAST__STORE_FAST 167 -#define STORE_SUBSCR_ADAPTIVE 168 -#define STORE_SUBSCR_DICT 169 -#define STORE_SUBSCR_LIST_INT 170 -#define UNPACK_SEQUENCE_ADAPTIVE 177 -#define UNPACK_SEQUENCE_LIST 178 -#define UNPACK_SEQUENCE_TUPLE 179 -#define UNPACK_SEQUENCE_TWO_TUPLE 180 -#define DO_TRACING 255 +#define CALL_BOUND_METHOD_EXACT_ARGS 28 +#define CALL_BUILTIN_CLASS 29 +#define CALL_BUILTIN_FAST_WITH_KEYWORDS 34 +#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 38 +#define CALL_NO_KW_BUILTIN_FAST 39 +#define CALL_NO_KW_BUILTIN_O 40 +#define CALL_NO_KW_ISINSTANCE 41 +#define CALL_NO_KW_LEN 42 +#define CALL_NO_KW_LIST_APPEND 43 +#define CALL_NO_KW_METHOD_DESCRIPTOR_FAST 44 +#define CALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 45 +#define CALL_NO_KW_METHOD_DESCRIPTOR_O 46 +#define CALL_NO_KW_STR_1 47 +#define CALL_NO_KW_TUPLE_1 48 +#define CALL_NO_KW_TYPE_1 56 +#define COMPARE_OP_FLOAT 57 +#define COMPARE_OP_INT 58 +#define COMPARE_OP_STR 59 +#define FOR_ITER_LIST 62 +#define FOR_ITER_TUPLE 63 +#define FOR_ITER_RANGE 64 +#define FOR_ITER_GEN 65 +#define LOAD_SUPER_ATTR_ATTR 66 +#define LOAD_SUPER_ATTR_METHOD 67 +#define LOAD_ATTR_CLASS 70 +#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 72 +#define LOAD_ATTR_INSTANCE_VALUE 73 +#define LOAD_ATTR_MODULE 76 +#define LOAD_ATTR_PROPERTY 77 +#define LOAD_ATTR_SLOT 78 +#define LOAD_ATTR_WITH_HINT 79 +#define LOAD_ATTR_METHOD_LAZY_DICT 80 +#define LOAD_ATTR_METHOD_NO_DICT 81 +#define LOAD_ATTR_METHOD_WITH_VALUES 82 +#define LOAD_CONST__LOAD_FAST 84 +#define LOAD_FAST__LOAD_CONST 86 +#define LOAD_FAST__LOAD_FAST 88 +#define LOAD_GLOBAL_BUILTIN 111 +#define LOAD_GLOBAL_MODULE 112 +#define STORE_ATTR_INSTANCE_VALUE 113 +#define STORE_ATTR_SLOT 148 +#define STORE_ATTR_WITH_HINT 153 +#define STORE_FAST__LOAD_FAST 154 +#define STORE_FAST__STORE_FAST 158 +#define STORE_SUBSCR_DICT 159 +#define STORE_SUBSCR_LIST_INT 160 +#define UNPACK_SEQUENCE_LIST 161 +#define UNPACK_SEQUENCE_TUPLE 166 +#define UNPACK_SEQUENCE_TWO_TUPLE 167 +#define SEND_GEN 168 + +#define HAS_ARG(op) ((((op) >= HAVE_ARGUMENT) && (!IS_PSEUDO_OPCODE(op)))\ + || ((op) == JUMP) \ + || ((op) == JUMP_NO_INTERRUPT) \ + || ((op) == LOAD_METHOD) \ + || ((op) == LOAD_SUPER_METHOD) \ + || ((op) == LOAD_ZERO_SUPER_METHOD) \ + || ((op) == LOAD_ZERO_SUPER_ATTR) \ + || ((op) == STORE_FAST_MAYBE_NULL) \ + ) #define HAS_CONST(op) (false\ - || ((op) == 100) \ - || ((op) == 172) \ + || ((op) == LOAD_CONST) \ + || ((op) == RETURN_CONST) \ + || ((op) == KW_NAMES) \ ) #define NB_ADD 0 @@ -224,11 +260,10 @@ extern "C" { #define NB_INPLACE_TRUE_DIVIDE 24 #define NB_INPLACE_XOR 25 -#define HAS_ARG(op) ((op) >= HAVE_ARGUMENT) +/* Defined in Lib/opcode.py */ +#define ENABLE_SPECIALIZATION 1 -/* Reserve some bytecodes for internal use in the compiler. - * The value of 240 is arbitrary. */ -#define IS_ARTIFICIAL(op) ((op) > 240) +#define IS_PSEUDO_OPCODE(op) (((op) >= MIN_PSEUDO_OPCODE) && ((op) <= MAX_PSEUDO_OPCODE)) #ifdef __cplusplus } diff --git a/src/external/windows/include/python/patchlevel.h b/src/external/windows/include/python/patchlevel.h index 240ca8d2..938ceef5 100755 --- a/src/external/windows/include/python/patchlevel.h +++ b/src/external/windows/include/python/patchlevel.h @@ -17,13 +17,13 @@ /* Version parsed out into numeric values */ /*--start constants--*/ #define PY_MAJOR_VERSION 3 -#define PY_MINOR_VERSION 11 +#define PY_MINOR_VERSION 12 #define PY_MICRO_VERSION 3 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL #define PY_RELEASE_SERIAL 0 /* Version as a string */ -#define PY_VERSION "3.11.3" +#define PY_VERSION "3.12.3" /*--end constants--*/ /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. diff --git a/src/external/windows/include/python/py_curses.h b/src/external/windows/include/python/py_curses.h index 68b847ed..3a2a1127 100755 --- a/src/external/windows/include/python/py_curses.h +++ b/src/external/windows/include/python/py_curses.h @@ -64,7 +64,7 @@ typedef struct { char *encoding; } PyCursesWindowObject; -#define PyCursesWindow_Check(v) Py_IS_TYPE(v, &PyCursesWindow_Type) +#define PyCursesWindow_Check(v) Py_IS_TYPE((v), &PyCursesWindow_Type) #define PyCurses_CAPSULE_NAME "_curses._C_API" diff --git a/src/external/windows/include/python/pybuffer.h b/src/external/windows/include/python/pybuffer.h index ec802d88..b15ec2d6 100644 --- a/src/external/windows/include/python/pybuffer.h +++ b/src/external/windows/include/python/pybuffer.h @@ -32,6 +32,9 @@ typedef struct { void *internal; } Py_buffer; +typedef int (*getbufferproc)(PyObject *, Py_buffer *, int); +typedef void (*releasebufferproc)(PyObject *, Py_buffer *); + /* Return 1 if the getbuffer function is available, otherwise return 0. */ PyAPI_FUNC(int) PyObject_CheckBuffer(PyObject *obj); @@ -101,7 +104,7 @@ PyAPI_FUNC(void) PyBuffer_Release(Py_buffer *view); /* Maximum number of dimensions */ #define PyBUF_MAX_NDIM 64 -/* Flags for getting buffers */ +/* Flags for getting buffers. Keep these in sync with inspect.BufferFlags. */ #define PyBUF_SIMPLE 0 #define PyBUF_WRITABLE 0x0001 diff --git a/src/external/windows/include/python/pycapsule.h b/src/external/windows/include/python/pycapsule.h index 9387a1c7..8164647d 100755 --- a/src/external/windows/include/python/pycapsule.h +++ b/src/external/windows/include/python/pycapsule.h @@ -22,7 +22,7 @@ PyAPI_DATA(PyTypeObject) PyCapsule_Type; typedef void (*PyCapsule_Destructor)(PyObject *); -#define PyCapsule_CheckExact(op) Py_IS_TYPE(op, &PyCapsule_Type) +#define PyCapsule_CheckExact(op) Py_IS_TYPE((op), &PyCapsule_Type) PyAPI_FUNC(PyObject *) PyCapsule_New( diff --git a/src/external/windows/include/python/pyconfig.h b/src/external/windows/include/python/pyconfig.h index b8615a7a..52b353c5 100755 --- a/src/external/windows/include/python/pyconfig.h +++ b/src/external/windows/include/python/pyconfig.h @@ -72,34 +72,51 @@ WIN32 is still required for the locale module. #define USE_SOCKET #endif +#if defined(Py_BUILD_CORE) || defined(Py_BUILD_CORE_BUILTIN) || defined(Py_BUILD_CORE_MODULE) +#include + +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) +#define MS_WINDOWS_DESKTOP +#endif +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) +#define MS_WINDOWS_APP +#endif +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_SYSTEM) +#define MS_WINDOWS_SYSTEM +#endif +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_GAMES) +#define MS_WINDOWS_GAMES +#endif + +/* Define to 1 if you support windows console io */ +#if defined(MS_WINDOWS_DESKTOP) || defined(MS_WINDOWS_APP) || defined(MS_WINDOWS_SYSTEM) +#define HAVE_WINDOWS_CONSOLE_IO 1 +#endif +#endif /* Py_BUILD_CORE || Py_BUILD_CORE_BUILTIN || Py_BUILD_CORE_MODULE */ /* Compiler specific defines */ /* ------------------------------------------------------------------------*/ -/* Microsoft C defines _MSC_VER */ +/* Microsoft C defines _MSC_VER, as does clang-cl.exe */ #ifdef _MSC_VER /* We want COMPILER to expand to a string containing _MSC_VER's *value*. * This is horridly tricky, because the stringization operator only works * on macro arguments, and doesn't evaluate macros passed *as* arguments. - * Attempts simpler than the following appear doomed to produce "_MSC_VER" - * literally in the string. */ #define _Py_PASTE_VERSION(SUFFIX) \ ("[MSC v." _Py_STRINGIZE(_MSC_VER) " " SUFFIX "]") /* e.g., this produces, after compile-time string catenation, - * ("[MSC v.1200 32 bit (Intel)]") + * ("[MSC v.1900 64 bit (Intel)]") * * _Py_STRINGIZE(_MSC_VER) expands to - * _Py_STRINGIZE1((_MSC_VER)) expands to - * _Py_STRINGIZE2(_MSC_VER) but as this call is the result of token-pasting - * it's scanned again for macros and so further expands to (under MSVC 6) - * _Py_STRINGIZE2(1200) which then expands to - * "1200" + * _Py_STRINGIZE1(_MSC_VER) and this second macro call is scanned + * again for macros and so further expands to + * _Py_STRINGIZE1(1900) which then expands to + * "1900" */ -#define _Py_STRINGIZE(X) _Py_STRINGIZE1((X)) -#define _Py_STRINGIZE1(X) _Py_STRINGIZE2 ## X -#define _Py_STRINGIZE2(X) #X +#define _Py_STRINGIZE(X) _Py_STRINGIZE1(X) +#define _Py_STRINGIZE1(X) #X /* MSVC defines _WINxx to differentiate the windows platform types @@ -122,13 +139,16 @@ WIN32 is still required for the locale module. */ #ifdef MS_WIN64 #if defined(_M_X64) || defined(_M_AMD64) -#if defined(__INTEL_COMPILER) +#if defined(__clang__) +#define COMPILER ("[Clang " __clang_version__ "] 64 bit (AMD64) with MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]") +#define PY_SUPPORT_TIER 0 +#elif defined(__INTEL_COMPILER) #define COMPILER ("[ICC v." _Py_STRINGIZE(__INTEL_COMPILER) " 64 bit (amd64) with MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]") #define PY_SUPPORT_TIER 0 #else #define COMPILER _Py_PASTE_VERSION("64 bit (AMD64)") #define PY_SUPPORT_TIER 1 -#endif /* __INTEL_COMPILER */ +#endif /* __clang__ */ #define PYD_PLATFORM_TAG "win_amd64" #elif defined(_M_ARM64) #define COMPILER _Py_PASTE_VERSION("64 bit (ARM64)") @@ -181,13 +201,16 @@ typedef _W64 int Py_ssize_t; #if defined(MS_WIN32) && !defined(MS_WIN64) #if defined(_M_IX86) -#if defined(__INTEL_COMPILER) +#if defined(__clang__) +#define COMPILER ("[Clang " __clang_version__ "] 32 bit (Intel) with MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]") +#define PY_SUPPORT_TIER 0 +#elif defined(__INTEL_COMPILER) #define COMPILER ("[ICC v." _Py_STRINGIZE(__INTEL_COMPILER) " 32 bit (Intel) with MSC v." _Py_STRINGIZE(_MSC_VER) " CRT]") #define PY_SUPPORT_TIER 0 #else #define COMPILER _Py_PASTE_VERSION("32 bit (Intel)") #define PY_SUPPORT_TIER 1 -#endif /* __INTEL_COMPILER */ +#endif /* __clang__ */ #define PYD_PLATFORM_TAG "win32" #elif defined(_M_ARM) #define COMPILER _Py_PASTE_VERSION("32 bit (ARM)") @@ -209,6 +232,16 @@ typedef int pid_t; #endif /* _MSC_VER */ +/* ------------------------------------------------------------------------*/ +/* mingw and mingw-w64 define __MINGW32__ */ +#ifdef __MINGW32__ + +#ifdef _WIN64 +#define MS_WIN64 +#endif + +#endif /* __MINGW32__*/ + /* ------------------------------------------------------------------------*/ /* egcs/gnu-win32 defines __GNUC__ and _WIN32 */ #if defined(__GNUC__) && defined(_WIN32) @@ -275,17 +308,17 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ file in their Makefile (other compilers are generally taken care of by distutils.) */ # if defined(_DEBUG) -# pragma comment(lib,"python311_d.lib") +# pragma comment(lib,"python312_d.lib") # elif defined(Py_LIMITED_API) # pragma comment(lib,"python3.lib") # else -# pragma comment(lib,"python311.lib") +# pragma comment(lib,"python312.lib") # endif /* _DEBUG */ # endif /* _MSC_VER */ # endif /* Py_BUILD_CORE */ #endif /* MS_COREDLL */ -#if defined(MS_WIN64) +#ifdef MS_WIN64 /* maintain "win32" sys.platform for backward compatibility of Python code, the Win64 API should be close enough to the Win32 API to make this preferable */ @@ -297,6 +330,7 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ # define SIZEOF_HKEY 8 # define SIZEOF_SIZE_T 8 # define ALIGNOF_SIZE_T 8 +# define ALIGNOF_MAX_ALIGN_T 8 /* configure.ac defines HAVE_LARGEFILE_SUPPORT iff sizeof(off_t) > sizeof(long), and sizeof(long long) >= sizeof(off_t). On Win64 the second condition is not true, but if fpos_t replaces off_t @@ -318,6 +352,7 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ # else # define SIZEOF_TIME_T 4 # endif +# define ALIGNOF_MAX_ALIGN_T 8 #endif #ifdef _DEBUG @@ -583,9 +618,6 @@ Py_NO_ENABLE_SHARED to find out. Also support MS_NO_COREDLL for b/w compat */ /* Define to 1 if you have the header file. */ #define HAVE_SIGNAL_H 1 -/* Define if you have the prototypes. */ -#define HAVE_STDARG_PROTOTYPES - /* Define if you have the header file. */ #define HAVE_STDDEF_H 1 diff --git a/src/external/windows/include/python/pydtrace.h b/src/external/windows/include/python/pydtrace.h index 8fac2004..abe0aee0 100755 --- a/src/external/windows/include/python/pydtrace.h +++ b/src/external/windows/include/python/pydtrace.h @@ -12,7 +12,7 @@ extern "C" { /* pydtrace_probes.h, on systems with DTrace, is auto-generated to include `PyDTrace_{PROBE}` and `PyDTrace_{PROBE}_ENABLED()` macros for every probe - defined in pydtrace_provider.d. + defined in pydtrace.d. Calling these functions must be guarded by a `PyDTrace_{PROBE}_ENABLED()` check to minimize performance impact when probing is off. For example: diff --git a/src/external/windows/include/python/pyerrors.h b/src/external/windows/include/python/pyerrors.h index 5ce49e48..650537a3 100755 --- a/src/external/windows/include/python/pyerrors.h +++ b/src/external/windows/include/python/pyerrors.h @@ -18,6 +18,8 @@ PyAPI_FUNC(PyObject *) PyErr_Occurred(void); PyAPI_FUNC(void) PyErr_Clear(void); PyAPI_FUNC(void) PyErr_Fetch(PyObject **, PyObject **, PyObject **); PyAPI_FUNC(void) PyErr_Restore(PyObject *, PyObject *, PyObject *); +PyAPI_FUNC(PyObject *) PyErr_GetRaisedException(void); +PyAPI_FUNC(void) PyErr_SetRaisedException(PyObject *); #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030b0000 PyAPI_FUNC(PyObject*) PyErr_GetHandledException(void); PyAPI_FUNC(void) PyErr_SetHandledException(PyObject *); @@ -51,6 +53,10 @@ PyAPI_FUNC(void) PyException_SetCause(PyObject *, PyObject *); PyAPI_FUNC(PyObject *) PyException_GetContext(PyObject *); PyAPI_FUNC(void) PyException_SetContext(PyObject *, PyObject *); + +PyAPI_FUNC(PyObject *) PyException_GetArgs(PyObject *); +PyAPI_FUNC(void) PyException_SetArgs(PyObject *, PyObject *); + /* */ #define PyExceptionClass_Check(x) \ @@ -62,10 +68,10 @@ PyAPI_FUNC(void) PyException_SetContext(PyObject *, PyObject *); PyAPI_FUNC(const char *) PyExceptionClass_Name(PyObject *); -#define PyExceptionInstance_Class(x) ((PyObject*)Py_TYPE(x)) +#define PyExceptionInstance_Class(x) _PyObject_CAST(Py_TYPE(x)) #define _PyBaseExceptionGroup_Check(x) \ - PyObject_TypeCheck(x, (PyTypeObject *)PyExc_BaseExceptionGroup) + PyObject_TypeCheck((x), (PyTypeObject *)PyExc_BaseExceptionGroup) /* Predefined exceptions */ diff --git a/src/external/windows/include/python/pyexpat.h b/src/external/windows/include/python/pyexpat.h index 5f5d381a..9cd10446 100755 --- a/src/external/windows/include/python/pyexpat.h +++ b/src/external/windows/include/python/pyexpat.h @@ -48,8 +48,10 @@ struct PyExpat_CAPI enum XML_Status (*SetEncoding)(XML_Parser parser, const XML_Char *encoding); int (*DefaultUnknownEncodingHandler)( void *encodingHandlerData, const XML_Char *name, XML_Encoding *info); - /* might be none for expat < 2.1.0 */ + /* might be NULL for expat < 2.1.0 */ int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt); + /* might be NULL for expat < 2.6.0 */ + XML_Bool (*SetReparseDeferralEnabled)(XML_Parser parser, XML_Bool enabled); /* always add new stuff to the end! */ }; diff --git a/src/external/windows/include/python/pymacconfig.h b/src/external/windows/include/python/pymacconfig.h index a1eccea4..06d5edbc 100755 --- a/src/external/windows/include/python/pymacconfig.h +++ b/src/external/windows/include/python/pymacconfig.h @@ -10,7 +10,9 @@ #if defined(__APPLE__) +# undef ALIGNOF_MAX_ALIGN_T # undef SIZEOF_LONG +# undef SIZEOF_LONG_DOUBLE # undef SIZEOF_PTHREAD_T # undef SIZEOF_SIZE_T # undef SIZEOF_TIME_T @@ -23,6 +25,7 @@ # undef DOUBLE_IS_BIG_ENDIAN_IEEE754 # undef DOUBLE_IS_LITTLE_ENDIAN_IEEE754 # undef HAVE_GCC_ASM_FOR_X87 +# undef HAVE_GCC_ASM_FOR_X64 # undef VA_LIST_IS_ARRAY # if defined(__LP64__) && defined(__x86_64__) @@ -80,22 +83,16 @@ #define DOUBLE_IS_LITTLE_ENDIAN_IEEE754 #endif /* __BIG_ENDIAN */ -#ifdef __i386__ +#if defined(__i386__) || defined(__x86_64__) # define HAVE_GCC_ASM_FOR_X87 +# define ALIGNOF_MAX_ALIGN_T 16 +# define HAVE_GCC_ASM_FOR_X64 1 +# define SIZEOF_LONG_DOUBLE 16 +#else +# define ALIGNOF_MAX_ALIGN_T 8 +# define SIZEOF_LONG_DOUBLE 8 #endif - /* - * The definition in pyconfig.h is only valid on the OS release - * where configure ran on and not necessarily for all systems where - * the executable can be used on. - * - * Specifically: OSX 10.4 has limited supported for '%zd', while - * 10.5 has full support for '%zd'. A binary built on 10.5 won't - * work properly on 10.4 unless we suppress the definition - * of PY_FORMAT_SIZE_T - */ -#undef PY_FORMAT_SIZE_T - #endif /* defined(_APPLE__) */ diff --git a/src/external/windows/include/python/pymacro.h b/src/external/windows/include/python/pymacro.h index c7b79218..78e9b6c8 100755 --- a/src/external/windows/include/python/pymacro.h +++ b/src/external/windows/include/python/pymacro.h @@ -3,20 +3,23 @@ // gh-91782: On FreeBSD 12, if the _POSIX_C_SOURCE and _XOPEN_SOURCE macros are // defined, disables C11 support and does not define -// the static_assert() macro. Define the static_assert() macro in Python until -// suports C11: +// the static_assert() macro. // https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255290 -#if defined(__FreeBSD__) && !defined(static_assert) -# define static_assert _Static_assert -#endif - -// static_assert is defined in glibc from version 2.16. Before it requires -// compiler support (gcc >= 4.6) and is called _Static_assert. -// In C++ 11 static_assert is a keyword, redefining is undefined behaviour. -#if (defined(__GLIBC__) \ - && (__GLIBC__ < 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ <= 16)) \ - && !(defined(__cplusplus) && __cplusplus >= 201103L) \ - && !defined(static_assert)) +// +// macOS <= 10.10 doesn't define static_assert in assert.h at all despite +// having C11 compiler support. +// +// static_assert is defined in glibc from version 2.16. Compiler support for +// the C11 _Static_assert keyword is in gcc >= 4.6. +// +// MSVC makes static_assert a keyword in C11-17, contrary to the standards. +// +// In C++11 and C2x, static_assert is a keyword, redefining is undefined +// behaviour. So only define if building as C (if __STDC_VERSION__ is defined), +// not C++, and only for C11-17. +#if !defined(static_assert) && (defined(__GNUC__) || defined(__clang__)) \ + && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L \ + && __STDC_VERSION__ <= 201710L # define static_assert _Static_assert #endif @@ -152,4 +155,9 @@ // For example, "int x; _Py_RVALUE(x) = 1;" fails with a compiler error. #define _Py_RVALUE(EXPR) ((void)0, (EXPR)) +// Return non-zero if the type is signed, return zero if it's unsigned. +// Use "<= 0" rather than "< 0" to prevent the compiler warning: +// "comparison of unsigned expression in '< 0' is always false". +#define _Py_IS_TYPE_SIGNED(type) ((type)(-1) <= 0) + #endif /* Py_PYMACRO_H */ diff --git a/src/external/windows/include/python/pymath.h b/src/external/windows/include/python/pymath.h index b0ec907d..2cc34877 100755 --- a/src/external/windows/include/python/pymath.h +++ b/src/external/windows/include/python/pymath.h @@ -39,27 +39,24 @@ // Return 1 if float or double arg is neither infinite nor NAN, else 0. #define Py_IS_FINITE(X) isfinite(X) -/* HUGE_VAL is supposed to expand to a positive double infinity. Python - * uses Py_HUGE_VAL instead because some platforms are broken in this - * respect. We used to embed code in pyport.h to try to worm around that, - * but different platforms are broken in conflicting ways. If you're on - * a platform where HUGE_VAL is defined incorrectly, fiddle your Python - * config to #define Py_HUGE_VAL to something that works on your platform. +// Py_INFINITY: Value that evaluates to a positive double infinity. +#ifndef Py_INFINITY +# define Py_INFINITY ((double)INFINITY) +#endif + +/* Py_HUGE_VAL should always be the same as Py_INFINITY. But historically + * this was not reliable and Python did not require IEEE floats and C99 + * conformity. Prefer Py_INFINITY for new code. */ #ifndef Py_HUGE_VAL # define Py_HUGE_VAL HUGE_VAL #endif -// Py_NAN: Value that evaluates to a quiet Not-a-Number (NaN). +/* Py_NAN: Value that evaluates to a quiet Not-a-Number (NaN). The sign is + * undefined and normally not relevant, but e.g. fixed for float("nan"). + */ #if !defined(Py_NAN) -# if _Py__has_builtin(__builtin_nan) - // Built-in implementation of the ISO C99 function nan(): quiet NaN. -# define Py_NAN (__builtin_nan("")) -#else - // Use C99 NAN constant: quiet Not-A-Number. - // NAN is a float, Py_NAN is a double: cast to double. # define Py_NAN ((double)NAN) -# endif #endif #endif /* Py_PYMATH_H */ diff --git a/src/external/windows/include/python/pymem.h b/src/external/windows/include/python/pymem.h index 10b2538d..977893ec 100755 --- a/src/external/windows/include/python/pymem.h +++ b/src/external/windows/include/python/pymem.h @@ -82,13 +82,13 @@ PyAPI_FUNC(void) PyMem_Free(void *ptr); // Deprecated aliases only kept for backward compatibility. // PyMem_Del and PyMem_DEL are defined with no parameter to be able to use // them as function pointers (ex: dealloc = PyMem_Del). -#define PyMem_MALLOC(n) PyMem_Malloc(n) -#define PyMem_NEW(type, n) PyMem_New(type, n) -#define PyMem_REALLOC(p, n) PyMem_Realloc(p, n) -#define PyMem_RESIZE(p, type, n) PyMem_Resize(p, type, n) -#define PyMem_FREE(p) PyMem_Free(p) -#define PyMem_Del PyMem_Free -#define PyMem_DEL PyMem_Free +#define PyMem_MALLOC(n) PyMem_Malloc((n)) +#define PyMem_NEW(type, n) PyMem_New(type, (n)) +#define PyMem_REALLOC(p, n) PyMem_Realloc((p), (n)) +#define PyMem_RESIZE(p, type, n) PyMem_Resize((p), type, (n)) +#define PyMem_FREE(p) PyMem_Free((p)) +#define PyMem_Del(p) PyMem_Free((p)) +#define PyMem_DEL(p) PyMem_Free((p)) #ifndef Py_LIMITED_API diff --git a/src/external/windows/include/python/pyport.h b/src/external/windows/include/python/pyport.h index 2bd3d64e..2294eafc 100755 --- a/src/external/windows/include/python/pyport.h +++ b/src/external/windows/include/python/pyport.h @@ -153,32 +153,10 @@ typedef Py_ssize_t Py_ssize_clean_t; /* Largest possible value of size_t. */ #define PY_SIZE_MAX SIZE_MAX -/* Macro kept for backward compatibility: use "z" in new code. +/* Macro kept for backward compatibility: use directly "z" in new code. * - * PY_FORMAT_SIZE_T is a platform-specific modifier for use in a printf - * format to convert an argument with the width of a size_t or Py_ssize_t. - * C99 introduced "z" for this purpose, but old MSVCs had not supported it. - * Since MSVC supports "z" since (at least) 2015, we can just use "z" - * for new code. - * - * These "high level" Python format functions interpret "z" correctly on - * all platforms (Python interprets the format string itself, and does whatever - * the platform C requires to convert a size_t/Py_ssize_t argument): - * - * PyBytes_FromFormat - * PyErr_Format - * PyBytes_FromFormatV - * PyUnicode_FromFormatV - * - * Lower-level uses require that you interpolate the correct format modifier - * yourself (e.g., calling printf, fprintf, sprintf, PyOS_snprintf); for - * example, - * - * Py_ssize_t index; - * fprintf(stderr, "index %" PY_FORMAT_SIZE_T "d sucks\n", index); - * - * That will expand to %zd or to something else correct for a Py_ssize_t on - * the platform. + * PY_FORMAT_SIZE_T is a modifier for use in a printf format to convert an + * argument with the width of a size_t or Py_ssize_t: "z" (C99). */ #ifndef PY_FORMAT_SIZE_T # define PY_FORMAT_SIZE_T "z" @@ -206,7 +184,6 @@ typedef Py_ssize_t Py_ssize_clean_t; # define Py_LOCAL_INLINE(type) static inline type #endif -// bpo-28126: Py_MEMCPY is kept for backwards compatibility, #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 # define Py_MEMCPY memcpy #endif @@ -269,6 +246,10 @@ typedef Py_ssize_t Py_ssize_clean_t; #define S_ISCHR(x) (((x) & S_IFMT) == S_IFCHR) #endif +#ifndef S_ISLNK +#define S_ISLNK(x) (((x) & S_IFMT) == S_IFLNK) +#endif + #ifdef __cplusplus /* Move this down here since some C++ #include's don't like to be included inside an extern "C" */ @@ -341,6 +322,15 @@ extern "C" { #define Py_DEPRECATED(VERSION_UNUSED) #endif +// _Py_DEPRECATED_EXTERNALLY(version) +// Deprecated outside CPython core. +#ifdef Py_BUILD_CORE +#define _Py_DEPRECATED_EXTERNALLY(VERSION_UNUSED) +#else +#define _Py_DEPRECATED_EXTERNALLY(version) Py_DEPRECATED(version) +#endif + + #if defined(__clang__) #define _Py_COMP_DIAG_PUSH _Pragma("clang diagnostic push") #define _Py_COMP_DIAG_IGNORE_DEPR_DECLS \ @@ -439,11 +429,6 @@ Please be conservative with adding new ones, document them and enclose them in platform-specific #ifdefs. **************************************************************************/ -#ifdef SOLARIS -/* Unchecked */ -extern int gethostname(char *, int); -#endif - #ifdef HAVE__GETPTY #include /* we need to import mode_t */ extern char * _getpty(int *, int, mode_t, int); @@ -672,6 +657,27 @@ extern char * _getpty(int *, int, mode_t, int); # define WITH_THREAD #endif +#ifdef WITH_THREAD +# ifdef Py_BUILD_CORE +# ifdef HAVE_THREAD_LOCAL +# error "HAVE_THREAD_LOCAL is already defined" +# endif +# define HAVE_THREAD_LOCAL 1 +# ifdef thread_local +# define _Py_thread_local thread_local +# elif __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__) +# define _Py_thread_local _Thread_local +# elif defined(_MSC_VER) /* AKA NT_THREADS */ +# define _Py_thread_local __declspec(thread) +# elif defined(__GNUC__) /* includes clang */ +# define _Py_thread_local __thread +# else + // fall back to the PyThread_tss_*() API, or ignore. +# undef HAVE_THREAD_LOCAL +# endif +# endif +#endif + /* Check that ALT_SOABI is consistent with Py_TRACE_REFS: ./configure --with-trace-refs should must be used to define Py_TRACE_REFS */ #if defined(ALT_SOABI) && defined(Py_TRACE_REFS) @@ -720,6 +726,15 @@ extern char * _getpty(int *, int, mode_t, int); # define _Py__has_builtin(x) 0 #endif +// _Py_TYPEOF(expr) gets the type of an expression. +// +// Example: _Py_TYPEOF(x) x_copy = (x); +// +// The macro is only defined if GCC or clang compiler is used. +#if defined(__GNUC__) || defined(__clang__) +# define _Py_TYPEOF(expr) __typeof__(expr) +#endif + /* A convenient way for code to know if sanitizers are enabled. */ #if defined(__has_feature) @@ -733,10 +748,32 @@ extern char * _getpty(int *, int, mode_t, int); # define _Py_ADDRESS_SANITIZER # endif # endif +# if __has_feature(thread_sanitizer) +# if !defined(_Py_THREAD_SANITIZER) +# define _Py_THREAD_SANITIZER +# endif +# endif #elif defined(__GNUC__) # if defined(__SANITIZE_ADDRESS__) # define _Py_ADDRESS_SANITIZER # endif #endif + +/* AIX has __bool__ redefined in it's system header file. */ +#if defined(_AIX) && defined(__bool__) +#undef __bool__ +#endif + +// Make sure we have maximum alignment, even if the current compiler +// does not support max_align_t. Note that: +// - Autoconf reports alignment of unknown types to 0. +// - 'long double' has maximum alignment on *most* platforms, +// looks like the best we can do for pre-C11 compilers. +// - The value is tested, see test_alignof_max_align_t +#if !defined(ALIGNOF_MAX_ALIGN_T) || ALIGNOF_MAX_ALIGN_T == 0 +# undef ALIGNOF_MAX_ALIGN_T +# define ALIGNOF_MAX_ALIGN_T _Alignof(long double) +#endif + #endif /* Py_PYPORT_H */ diff --git a/src/external/windows/include/python/pystats.h b/src/external/windows/include/python/pystats.h new file mode 100644 index 00000000..f675ba8d --- /dev/null +++ b/src/external/windows/include/python/pystats.h @@ -0,0 +1,110 @@ + + +#ifndef Py_PYSTATS_H +#define Py_PYSTATS_H +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef Py_STATS + +#define SPECIALIZATION_FAILURE_KINDS 36 + +/* Stats for determining who is calling PyEval_EvalFrame */ +#define EVAL_CALL_TOTAL 0 +#define EVAL_CALL_VECTOR 1 +#define EVAL_CALL_GENERATOR 2 +#define EVAL_CALL_LEGACY 3 +#define EVAL_CALL_FUNCTION_VECTORCALL 4 +#define EVAL_CALL_BUILD_CLASS 5 +#define EVAL_CALL_SLOT 6 +#define EVAL_CALL_FUNCTION_EX 7 +#define EVAL_CALL_API 8 +#define EVAL_CALL_METHOD 9 + +#define EVAL_CALL_KINDS 10 + +typedef struct _specialization_stats { + uint64_t success; + uint64_t failure; + uint64_t hit; + uint64_t deferred; + uint64_t miss; + uint64_t deopt; + uint64_t failure_kinds[SPECIALIZATION_FAILURE_KINDS]; +} SpecializationStats; + +typedef struct _opcode_stats { + SpecializationStats specialization; + uint64_t execution_count; + uint64_t pair_count[256]; +} OpcodeStats; + +typedef struct _call_stats { + uint64_t inlined_py_calls; + uint64_t pyeval_calls; + uint64_t frames_pushed; + uint64_t frame_objects_created; + uint64_t eval_calls[EVAL_CALL_KINDS]; +} CallStats; + +typedef struct _object_stats { + uint64_t increfs; + uint64_t decrefs; + uint64_t interpreter_increfs; + uint64_t interpreter_decrefs; + uint64_t allocations; + uint64_t allocations512; + uint64_t allocations4k; + uint64_t allocations_big; + uint64_t frees; + uint64_t to_freelist; + uint64_t from_freelist; + uint64_t new_values; + uint64_t dict_materialized_on_request; + uint64_t dict_materialized_new_key; + uint64_t dict_materialized_too_big; + uint64_t dict_materialized_str_subclass; + uint64_t type_cache_hits; + uint64_t type_cache_misses; + uint64_t type_cache_dunder_hits; + uint64_t type_cache_dunder_misses; + uint64_t type_cache_collisions; +} ObjectStats; + +typedef struct _stats { + OpcodeStats opcode_stats[256]; + CallStats call_stats; + ObjectStats object_stats; +} PyStats; + + +PyAPI_DATA(PyStats) _py_stats_struct; +PyAPI_DATA(PyStats *) _py_stats; + +extern void _Py_StatsClear(void); +extern void _Py_PrintSpecializationStats(int to_file); + +#ifdef _PY_INTERPRETER + +#define _Py_INCREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.interpreter_increfs++; } while (0) +#define _Py_DECREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.interpreter_decrefs++; } while (0) + +#else + +#define _Py_INCREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.increfs++; } while (0) +#define _Py_DECREF_STAT_INC() do { if (_py_stats) _py_stats->object_stats.decrefs++; } while (0) + +#endif + +#else + +#define _Py_INCREF_STAT_INC() ((void)0) +#define _Py_DECREF_STAT_INC() ((void)0) + +#endif // !Py_STATS + +#ifdef __cplusplus +} +#endif +#endif /* !Py_PYSTATs_H */ diff --git a/src/external/windows/include/python/pythonrun.h b/src/external/windows/include/python/pythonrun.h index 0a896db4..75c36723 100755 --- a/src/external/windows/include/python/pythonrun.h +++ b/src/external/windows/include/python/pythonrun.h @@ -13,6 +13,10 @@ PyAPI_FUNC(void) PyErr_Print(void); PyAPI_FUNC(void) PyErr_PrintEx(int); PyAPI_FUNC(void) PyErr_Display(PyObject *, PyObject *, PyObject *); +#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030C0000 +PyAPI_FUNC(void) PyErr_DisplayException(PyObject *); +#endif + /* Stuff with no proper home (yet) */ PyAPI_DATA(int) (*PyOS_InputHook)(void); diff --git a/src/external/windows/include/python/pythread.h b/src/external/windows/include/python/pythread.h index 42ca5b0a..3d014dc4 100755 --- a/src/external/windows/include/python/pythread.h +++ b/src/external/windows/include/python/pythread.h @@ -20,7 +20,9 @@ PyAPI_FUNC(unsigned long) PyThread_start_new_thread(void (*)(void *), void *); PyAPI_FUNC(void) _Py_NO_RETURN PyThread_exit_thread(void); PyAPI_FUNC(unsigned long) PyThread_get_thread_ident(void); -#if defined(__APPLE__) || defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(_WIN32) || defined(_AIX) +#if (defined(__APPLE__) || defined(__linux__) || defined(_WIN32) \ + || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) \ + || defined(__DragonFly__) || defined(_AIX)) #define PY_HAVE_THREAD_NATIVE_ID PyAPI_FUNC(unsigned long) PyThread_get_thread_native_id(void); #endif diff --git a/src/external/windows/include/python/rangeobject.h b/src/external/windows/include/python/rangeobject.h index d2105d02..3f85e50f 100755 --- a/src/external/windows/include/python/rangeobject.h +++ b/src/external/windows/include/python/rangeobject.h @@ -19,7 +19,7 @@ PyAPI_DATA(PyTypeObject) PyRange_Type; PyAPI_DATA(PyTypeObject) PyRangeIter_Type; PyAPI_DATA(PyTypeObject) PyLongRangeIter_Type; -#define PyRange_Check(op) Py_IS_TYPE(op, &PyRange_Type) +#define PyRange_Check(op) Py_IS_TYPE((op), &PyRange_Type) #ifdef __cplusplus } diff --git a/src/external/windows/include/python/setobject.h b/src/external/windows/include/python/setobject.h index 52f95caa..7c9e4c3a 100755 --- a/src/external/windows/include/python/setobject.h +++ b/src/external/windows/include/python/setobject.h @@ -20,21 +20,21 @@ PyAPI_FUNC(int) PySet_Discard(PyObject *set, PyObject *key); PyAPI_FUNC(PyObject *) PySet_Pop(PyObject *set); PyAPI_FUNC(Py_ssize_t) PySet_Size(PyObject *anyset); -#define PyFrozenSet_CheckExact(ob) Py_IS_TYPE(ob, &PyFrozenSet_Type) +#define PyFrozenSet_CheckExact(ob) Py_IS_TYPE((ob), &PyFrozenSet_Type) #define PyFrozenSet_Check(ob) \ - (Py_IS_TYPE(ob, &PyFrozenSet_Type) || \ + (Py_IS_TYPE((ob), &PyFrozenSet_Type) || \ PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type)) #define PyAnySet_CheckExact(ob) \ - (Py_IS_TYPE(ob, &PySet_Type) || Py_IS_TYPE(ob, &PyFrozenSet_Type)) + (Py_IS_TYPE((ob), &PySet_Type) || Py_IS_TYPE((ob), &PyFrozenSet_Type)) #define PyAnySet_Check(ob) \ - (Py_IS_TYPE(ob, &PySet_Type) || Py_IS_TYPE(ob, &PyFrozenSet_Type) || \ + (Py_IS_TYPE((ob), &PySet_Type) || Py_IS_TYPE((ob), &PyFrozenSet_Type) || \ PyType_IsSubtype(Py_TYPE(ob), &PySet_Type) || \ PyType_IsSubtype(Py_TYPE(ob), &PyFrozenSet_Type)) #define PySet_CheckExact(op) Py_IS_TYPE(op, &PySet_Type) #define PySet_Check(ob) \ - (Py_IS_TYPE(ob, &PySet_Type) || \ + (Py_IS_TYPE((ob), &PySet_Type) || \ PyType_IsSubtype(Py_TYPE(ob), &PySet_Type)) #ifndef Py_LIMITED_API diff --git a/src/external/windows/include/python/sliceobject.h b/src/external/windows/include/python/sliceobject.h index c4150604..a903c61f 100755 --- a/src/external/windows/include/python/sliceobject.h +++ b/src/external/windows/include/python/sliceobject.h @@ -28,7 +28,7 @@ typedef struct { PyAPI_DATA(PyTypeObject) PySlice_Type; PyAPI_DATA(PyTypeObject) PyEllipsis_Type; -#define PySlice_Check(op) Py_IS_TYPE(op, &PySlice_Type) +#define PySlice_Check(op) Py_IS_TYPE((op), &PySlice_Type) PyAPI_FUNC(PyObject *) PySlice_New(PyObject* start, PyObject* stop, PyObject* step); diff --git a/src/external/windows/include/python/structmember.h b/src/external/windows/include/python/structmember.h index ea0645b5..8251c02e 100755 --- a/src/external/windows/include/python/structmember.h +++ b/src/external/windows/include/python/structmember.h @@ -5,69 +5,50 @@ extern "C" { #endif -/* Interface to map C struct members to Python object attributes */ +/* Interface to map C struct members to Python object attributes + * + * This header is deprecated: new code should not use stuff from here. + * New definitions are in descrobject.h. + * + * However, there's nothing wrong with old code continuing to use it, + * and there's not much mainenance overhead in maintaining a few aliases. + * So, don't be too eager to convert old code. + * + * It uses names not prefixed with Py_. + * It is also *not* included from Python.h and must be included individually. + */ -#include /* For offsetof */ - -/* An array of PyMemberDef structures defines the name, type and offset - of selected members of a C structure. These can be read by - PyMember_GetOne() and set by PyMember_SetOne() (except if their READONLY - flag is set). The array must be terminated with an entry whose name - pointer is NULL. */ - -struct PyMemberDef { - const char *name; - int type; - Py_ssize_t offset; - int flags; - const char *doc; -}; +#include /* For offsetof (not always provided by Python.h) */ /* Types */ -#define T_SHORT 0 -#define T_INT 1 -#define T_LONG 2 -#define T_FLOAT 3 -#define T_DOUBLE 4 -#define T_STRING 5 -#define T_OBJECT 6 -/* XXX the ordering here is weird for binary compatibility */ -#define T_CHAR 7 /* 1-character string */ -#define T_BYTE 8 /* 8-bit signed int */ -/* unsigned variants: */ -#define T_UBYTE 9 -#define T_USHORT 10 -#define T_UINT 11 -#define T_ULONG 12 - -/* Added by Jack: strings contained in the structure */ -#define T_STRING_INPLACE 13 - -/* Added by Lillo: bools contained in the structure (assumed char) */ -#define T_BOOL 14 - -#define T_OBJECT_EX 16 /* Like T_OBJECT, but raises AttributeError - when the value is NULL, instead of - converting to None. */ -#define T_LONGLONG 17 -#define T_ULONGLONG 18 - -#define T_PYSSIZET 19 /* Py_ssize_t */ -#define T_NONE 20 /* Value is always None */ - +#define T_SHORT Py_T_SHORT +#define T_INT Py_T_INT +#define T_LONG Py_T_LONG +#define T_FLOAT Py_T_FLOAT +#define T_DOUBLE Py_T_DOUBLE +#define T_STRING Py_T_STRING +#define T_OBJECT _Py_T_OBJECT +#define T_CHAR Py_T_CHAR +#define T_BYTE Py_T_BYTE +#define T_UBYTE Py_T_UBYTE +#define T_USHORT Py_T_USHORT +#define T_UINT Py_T_UINT +#define T_ULONG Py_T_ULONG +#define T_STRING_INPLACE Py_T_STRING_INPLACE +#define T_BOOL Py_T_BOOL +#define T_OBJECT_EX Py_T_OBJECT_EX +#define T_LONGLONG Py_T_LONGLONG +#define T_ULONGLONG Py_T_ULONGLONG +#define T_PYSSIZET Py_T_PYSSIZET +#define T_NONE _Py_T_NONE /* Flags */ -#define READONLY 1 -#define READ_RESTRICTED 2 -#define PY_WRITE_RESTRICTED 4 +#define READONLY Py_READONLY +#define PY_AUDIT_READ Py_AUDIT_READ +#define READ_RESTRICTED Py_AUDIT_READ +#define PY_WRITE_RESTRICTED _Py_WRITE_RESTRICTED #define RESTRICTED (READ_RESTRICTED | PY_WRITE_RESTRICTED) -#define PY_AUDIT_READ READ_RESTRICTED - -/* Current API, use this */ -PyAPI_FUNC(PyObject *) PyMember_GetOne(const char *, PyMemberDef *); -PyAPI_FUNC(int) PyMember_SetOne(char *, PyMemberDef *, PyObject *); - #ifdef __cplusplus } diff --git a/src/external/windows/include/python/structseq.h b/src/external/windows/include/python/structseq.h index 034eb8f0..65f38ebe 100755 --- a/src/external/windows/include/python/structseq.h +++ b/src/external/windows/include/python/structseq.h @@ -35,9 +35,9 @@ PyAPI_FUNC(PyObject *) PyStructSequence_New(PyTypeObject* type); typedef PyTupleObject PyStructSequence; /* Macro, *only* to be used to fill in brand new objects */ -#define PyStructSequence_SET_ITEM(op, i, v) PyTuple_SET_ITEM(op, i, v) +#define PyStructSequence_SET_ITEM(op, i, v) PyTuple_SET_ITEM((op), (i), (v)) -#define PyStructSequence_GET_ITEM(op, i) PyTuple_GET_ITEM(op, i) +#define PyStructSequence_GET_ITEM(op, i) PyTuple_GET_ITEM((op), (i)) #endif PyAPI_FUNC(void) PyStructSequence_SetItem(PyObject*, Py_ssize_t, PyObject*); diff --git a/src/external/windows/include/python/sysmodule.h b/src/external/windows/include/python/sysmodule.h index 8b42b047..fd5b38c7 100755 --- a/src/external/windows/include/python/sysmodule.h +++ b/src/external/windows/include/python/sysmodule.h @@ -29,6 +29,19 @@ Py_DEPRECATED(3.11) PyAPI_FUNC(int) PySys_HasWarnOptions(void); Py_DEPRECATED(3.11) PyAPI_FUNC(void) PySys_AddXOption(const wchar_t *); PyAPI_FUNC(PyObject *) PySys_GetXOptions(void); +#if !defined(Py_LIMITED_API) +typedef struct { + FILE* perf_map; + PyThread_type_lock map_lock; +} PerfMapState; + +PyAPI_FUNC(int) PyUnstable_PerfMapState_Init(void); + +PyAPI_FUNC(int) PyUnstable_WritePerfMapEntry(const void *code_addr, unsigned int code_size, const char *entry_name); + +PyAPI_FUNC(void) PyUnstable_PerfMapState_Fini(void); +#endif + #ifndef Py_LIMITED_API # define Py_CPYTHON_SYSMODULE_H # include "cpython/sysmodule.h" diff --git a/src/external/windows/include/python/traceback.h b/src/external/windows/include/python/traceback.h index a7b6822f..fefbd4bc 100755 --- a/src/external/windows/include/python/traceback.h +++ b/src/external/windows/include/python/traceback.h @@ -11,7 +11,7 @@ PyAPI_FUNC(int) PyTraceBack_Print(PyObject *, PyObject *); /* Reveal traceback type so we can typecheck traceback objects */ PyAPI_DATA(PyTypeObject) PyTraceBack_Type; -#define PyTraceBack_Check(v) Py_IS_TYPE(v, &PyTraceBack_Type) +#define PyTraceBack_Check(v) Py_IS_TYPE((v), &PyTraceBack_Type) #ifndef Py_LIMITED_API diff --git a/src/external/windows/include/python/tracemalloc.h b/src/external/windows/include/python/tracemalloc.h index 05b4cc16..206f5777 100755 --- a/src/external/windows/include/python/tracemalloc.h +++ b/src/external/windows/include/python/tracemalloc.h @@ -33,6 +33,40 @@ PyAPI_FUNC(int) PyTraceMalloc_Untrack( PyAPI_FUNC(PyObject*) _PyTraceMalloc_GetTraceback( unsigned int domain, uintptr_t ptr); + +/* Return non-zero if tracemalloc is tracing */ +PyAPI_FUNC(int) _PyTraceMalloc_IsTracing(void); + +/* Clear the tracemalloc traces */ +PyAPI_FUNC(void) _PyTraceMalloc_ClearTraces(void); + +/* Clear the tracemalloc traces */ +PyAPI_FUNC(PyObject *) _PyTraceMalloc_GetTraces(void); + +/* Clear tracemalloc traceback for an object */ +PyAPI_FUNC(PyObject *) _PyTraceMalloc_GetObjectTraceback(PyObject *obj); + +/* Initialize tracemalloc */ +PyAPI_FUNC(int) _PyTraceMalloc_Init(void); + +/* Start tracemalloc */ +PyAPI_FUNC(int) _PyTraceMalloc_Start(int max_nframe); + +/* Stop tracemalloc */ +PyAPI_FUNC(void) _PyTraceMalloc_Stop(void); + +/* Get the tracemalloc traceback limit */ +PyAPI_FUNC(int) _PyTraceMalloc_GetTracebackLimit(void); + +/* Get the memory usage of tracemalloc in bytes */ +PyAPI_FUNC(size_t) _PyTraceMalloc_GetMemory(void); + +/* Get the current size and peak size of traced memory blocks as a 2-tuple */ +PyAPI_FUNC(PyObject *) _PyTraceMalloc_GetTracedMemory(void); + +/* Set the peak size of traced memory blocks to the current size */ +PyAPI_FUNC(void) _PyTraceMalloc_ResetPeak(void); + #endif #endif /* !Py_TRACEMALLOC_H */ diff --git a/src/external/windows/include/python/tupleobject.h b/src/external/windows/include/python/tupleobject.h index fc6917dd..4f0af164 100755 --- a/src/external/windows/include/python/tupleobject.h +++ b/src/external/windows/include/python/tupleobject.h @@ -25,7 +25,7 @@ PyAPI_DATA(PyTypeObject) PyTupleIter_Type; #define PyTuple_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TUPLE_SUBCLASS) -#define PyTuple_CheckExact(op) Py_IS_TYPE(op, &PyTuple_Type) +#define PyTuple_CheckExact(op) Py_IS_TYPE((op), &PyTuple_Type) PyAPI_FUNC(PyObject *) PyTuple_New(Py_ssize_t size); PyAPI_FUNC(Py_ssize_t) PyTuple_Size(PyObject *); diff --git a/src/external/windows/include/python/unicodeobject.h b/src/external/windows/include/python/unicodeobject.h index b10ea826..9a291907 100755 --- a/src/external/windows/include/python/unicodeobject.h +++ b/src/external/windows/include/python/unicodeobject.h @@ -113,7 +113,7 @@ PyAPI_DATA(PyTypeObject) PyUnicodeIter_Type; #define PyUnicode_Check(op) \ PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_UNICODE_SUBCLASS) -#define PyUnicode_CheckExact(op) Py_IS_TYPE(op, &PyUnicode_Type) +#define PyUnicode_CheckExact(op) Py_IS_TYPE((op), &PyUnicode_Type) /* --- Constants ---------------------------------------------------------- */ @@ -171,13 +171,6 @@ PyAPI_FUNC(Py_ssize_t) PyUnicode_GetLength( ); #endif -/* Get the number of Py_UNICODE units in the - string representation. */ - -Py_DEPRECATED(3.3) PyAPI_FUNC(Py_ssize_t) PyUnicode_GetSize( - PyObject *unicode /* Unicode object */ - ); - #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000 /* Read a character from the string. */ @@ -198,9 +191,7 @@ PyAPI_FUNC(int) PyUnicode_WriteChar( ); #endif -/* Resize a Unicode object. The length is the number of characters, except - if the kind of the string is PyUnicode_WCHAR_KIND: in this case, the length - is the number of Py_UNICODE characters. +/* Resize a Unicode object. The length is the number of codepoints. *unicode is modified to point to the new (resized) object and 0 returned on success. @@ -265,10 +256,6 @@ PyAPI_FUNC(PyObject *) PyUnicode_InternFromString( const char *u /* UTF-8 encoded string */ ); -// PyUnicode_InternImmortal() is deprecated since Python 3.10 -// and will be removed in Python 3.12. Use PyUnicode_InternInPlace() instead. -Py_DEPRECATED(3.10) PyAPI_FUNC(void) PyUnicode_InternImmortal(PyObject **); - /* --- wchar_t support for platforms which support it --------------------- */ #ifdef HAVE_WCHAR_H @@ -639,7 +626,7 @@ PyAPI_FUNC(PyObject*) PyUnicode_AsLatin1String( /* --- ASCII Codecs ------------------------------------------------------- - Only 7-bit ASCII data is excepted. All other codes generate errors. + Only 7-bit ASCII data is expected. All other codes generate errors. */ @@ -768,38 +755,22 @@ PyAPI_FUNC(int) PyUnicode_FSConverter(PyObject*, void*); PyAPI_FUNC(int) PyUnicode_FSDecoder(PyObject*, void*); -/* Decode a null-terminated string using Py_FileSystemDefaultEncoding - and the "surrogateescape" error handler. - - If Py_FileSystemDefaultEncoding is not set, fall back to the locale - encoding. - - Use PyUnicode_DecodeFSDefaultAndSize() if the string length is known. -*/ +/* Decode a null-terminated string from the Python filesystem encoding + and error handler. + If the string length is known, use PyUnicode_DecodeFSDefaultAndSize(). */ PyAPI_FUNC(PyObject*) PyUnicode_DecodeFSDefault( const char *s /* encoded string */ ); -/* Decode a string using Py_FileSystemDefaultEncoding - and the "surrogateescape" error handler. - - If Py_FileSystemDefaultEncoding is not set, fall back to the locale - encoding. -*/ - +/* Decode a string from the Python filesystem encoding and error handler. */ PyAPI_FUNC(PyObject*) PyUnicode_DecodeFSDefaultAndSize( const char *s, /* encoded string */ Py_ssize_t size /* size */ ); -/* Encode a Unicode object to Py_FileSystemDefaultEncoding with the - "surrogateescape" error handler, and return bytes. - - If Py_FileSystemDefaultEncoding is not set, fall back to the locale - encoding. -*/ - +/* Encode a Unicode object to the Python filesystem encoding and error handler. + Return bytes. */ PyAPI_FUNC(PyObject*) PyUnicode_EncodeFSDefault( PyObject *unicode ); diff --git a/src/external/windows/include/python/weakrefobject.h b/src/external/windows/include/python/weakrefobject.h index 190a8181..74e8ebc8 100755 --- a/src/external/windows/include/python/weakrefobject.h +++ b/src/external/windows/include/python/weakrefobject.h @@ -12,12 +12,12 @@ PyAPI_DATA(PyTypeObject) _PyWeakref_RefType; PyAPI_DATA(PyTypeObject) _PyWeakref_ProxyType; PyAPI_DATA(PyTypeObject) _PyWeakref_CallableProxyType; -#define PyWeakref_CheckRef(op) PyObject_TypeCheck(op, &_PyWeakref_RefType) +#define PyWeakref_CheckRef(op) PyObject_TypeCheck((op), &_PyWeakref_RefType) #define PyWeakref_CheckRefExact(op) \ - Py_IS_TYPE(op, &_PyWeakref_RefType) + Py_IS_TYPE((op), &_PyWeakref_RefType) #define PyWeakref_CheckProxy(op) \ - (Py_IS_TYPE(op, &_PyWeakref_ProxyType) || \ - Py_IS_TYPE(op, &_PyWeakref_CallableProxyType)) + (Py_IS_TYPE((op), &_PyWeakref_ProxyType) \ + || Py_IS_TYPE((op), &_PyWeakref_CallableProxyType)) #define PyWeakref_Check(op) \ (PyWeakref_CheckRef(op) || PyWeakref_CheckProxy(op)) diff --git a/src/external/windows/lib/Win32/python311.lib b/src/external/windows/lib/Win32/python311.lib deleted file mode 100644 index ca3fb02e995a91049ef7be4af1e6ea063aaba605..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 368002 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

@bUN)-XR@Oyg@!`LniB}UpZn`qo?cl} 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%0D>$3?ihN2(^sIP>XAPLMOW#Q=q6|S(9n-Vo8D@e! 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

eN`>~5 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%0D0@PMB1ka#CYSlXT%z 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 diff --git a/src/external/windows/lib/Win32/python312.lib b/src/external/windows/lib/Win32/python312.lib new file mode 100644 index 0000000000000000000000000000000000000000..790a31eecfc1b1920c0d551b4cc07226fe47713c GIT binary patch literal 386024 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 KMv7n(>-`@fG_qR& literal 0 HcmV?d00001 diff --git a/src/external/windows/lib/Win32/python312_d.lib b/src/external/windows/lib/Win32/python312_d.lib new file mode 100644 index 0000000000000000000000000000000000000000..3074af1a754344e6b361c3dcc4202a4aabfae09e GIT binary patch literal 391598 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%0A1Qr3l8BdYa{>Om$Mj8fs13 zc4U3B$i|tvm*DB4&JNvgXt52AyZ3U&nOY*rxu93w6M8&)YR<&NA@js;A{r$v+&Df)drfhzPlpQ+q^b}H z7RR((Gp;%zY?zI7ThslW+2%Ov-{!-k42TA)&~Msrov+IayC7cVrgRk&OvU$_J<_%6GK3I$<+h z$J>vzdpe;TnMGS$SFI55$aAHn`D=o{qPdz%ZV8t2rjqK$I98x~XqvtCW-CTG7N>Tw zqNzROh3;l&3ggH`5PC$Lke^U*x9F{)ib9%?-uP71@WJH?+xhL*srBYiBbgZsCh`6? zX8hyzPA6fDF06@}RJv+-W&did(WAv>b&XC%shDi7?EXg48e21|^e$|!Z?s!YYIBL)NS5;P z*f!GIkjkIqu~Hhmk*Vt4%cKMKj%*c0H-$ z4mqhZ4J)bReLATuSV-*{NlBXFNqK9gJ?^8TyA-|;(@XMb#N+kVV%%7*mm17YdRm71 z$Z|mq4akp7P>d!%urfMnfml{rc%8H$Kk-w^FchnmR^-dd?SRc&Nv*U(SmEOxZ{k#v z4?k6WrxJX5lK8(of9u#M^s2qBUB0}GlS-cR zBxBOcQzg%Nio)V)`SxODS;p?IulfK4fGoeWXdwM-~3iSWYh^TJ5ER<-A03t#(vRbiQP|kTowNU4rGj$QTQK)Gbx8oR=uN)sA`)#SM&h zAz)PNZbDdDaQ82-qtH8i>=v|oht@Er^$mJ$#h-MwT~<{h!uueiV7k^Q366$1;tZi> zEuOX78x2K06zjB@yR1u9uvo##t)j3!?N&>q)|ggkY3n2=Jo+3Qv*3a~%a}sw_dFJf zPAU)@4r*(-VMLRh)Ufov?)dJenSn;K<7Icxwi>tS-rpgmep=X=4z{Rqkk}O(6Y%sK zB}aS4Yg1T)o5I$SMQiJR@veuyN<~ZH{Op9=335Fhh9{czA_Be$Y#mAKjC46RCDNvf zi0s7?FPZh0ZI#9b?bK=(W1T7rqO2X7rT4tBAzu~&J$yy(Vxnp7ksU9Jhgi@-3ce=l zU#L(^YvP?+=2)qGg$=w_+eoFbfvf&zv&Bz5DheSW2wS)e zRH>o}2w?*WD!ptuTA|+-@=Ycn2aU$SyQ`5f@F4!U)V3{XQv`CYhmU6 zbl6?&&MMjEM6h$M(4~7a!;6$`gz84mf!%Xn9ib?rsyHSa z>v&4OT_208SnPxvUofnvI6I*!nIQ4HtV}hvnHpwKN{XV_k5}}euh zkx&=~B4Dx^md<(9NyMoZQJf)3CC`hU$1pR4^!0Z_WzuG8ts|CI zOmw6j6O1i2=HNJZZQ!IX1e>ihW6WNprmA2b0JqkZ4L9U%74r*u=1sm;vBXY}5kpnZz zTc>bQ#=YH^0rf}-7)zimG(T;6M<&seRxj37(;`1`zI`t-De|G?S-Ea#qf%leyp%Y0 zNU0UlQ;BK3aaT~Cq=epB;)S@4a@?XrFhWP6{#rj{4~I!T^g%TTUWf;@c1<3Wq2tw_7`ZPIL61H1@W{>W7FTE$Xj7hT%pQ_5gfs9 zBhCi~A&!Q1%z}Y9!Ynd+d$KAwDQo4VhGkD}4Ovzy9wq4n(pmfKu#D7gb;&M# z&{wH0DdHpYqwuUcu)`QYrorAAglPrCA7KtsHMrOYvq*|ed*#By@Uq{UnthN~bP68KUZTc!N-(y(OGW4~swU~J+{ zRl?~~7S*w`c8=l9%`0@SCpKYOambUIgi0y7MrDN~)AezDB!>=lYtRyz*c|E%lN{@S z8URW@m1SBid3yCD#WV`brJ5vS16r$ z;l}!SDw$61n7jdEZYh~g?wI=SQeT5nFXeFAqO5nO?97##|4x!CG_zeIO`*!%!JXPZ zJ%p7PiB6!09A9=?Gl~UncRU=p*zM7Dr=hx<3aNZ;0A&@Pp-M(UheDwSCb4#GWCOj) zKCv95O@ulqN>TrC+aqwKox9maLiZE#@nyyB4ll+)<{14W3kC;E93yosI|MZgaK@97 zI@WMwd{U2Nw9X2RriWFebyj%St%p^l zbyg-0r8GIYW14VFOec3t6IO}o+VXIif;QN6-(u^MgOZlz?FEMj$R=b~wEM6M9D zTc=Lg$-cZ&?G#9*cwxf!SKRGxKWL#y27LuRs##Q6?PD&tdd%?DjkUGMHCes2cJPspiLaKl zk|}AeE&jx9BJ^to(5s#|B;v zJ9IAmm_1bhDJ9!1K_wWUt*|L6gNHiqsZYWhD?{}*Ka5JyT>aO(6m5Q#q=?~syryuf zeyh>4DAxk1GaHy$C)a6gb7HAu4R+{+Bew|>?p#B+3L(OGn!569Taqqx&cbx@!8^&u zzf?KC=^|5nsd9XN(@J*MK1P8qVUY^N+nBedePnr_B(goBa-kq`)T4_MJue>iSba|kc!B#7du`m zI^bEcf)1@y7sX1AXbN~a3&YK!aT$ayu(1%;M8;mZgdPaUUvcV=35DYPBk zbvIQ?oJT+Sf42UbpOl%X zAvKpcpV!q47XoE&Z|fApnd^+>jEM8p1fF2HQo^zko$^zPxi91dgRNy1N;e7T)u>&l zGt*AxDvl2^rA2b-rW`D`7#YoyQ*t`>CMBoMHA#hjzGF2uK+)L;BKrenLk>lW>v%e` z<(U&|VqQr+)EGZ?%6ysE#C~Wt5T+i3R1zXvl$m{GVQYS1D)f^$EXz5^!t6Y4K(m6n06G36Ea7fz$66xCp`!cqi7_o zrXjiBc5gW@bG)3H;Yo6aRuYaaoSJG(uje2~S_LI}na>8u66XcK3Wm0DK+#3?h_vlu3L zdrG~2?Y?8UqS?e^`oy9}eF{|xwxODaz~Pg|NL!jxD(v~;r+KQFh)|^W{#g-Opw?M= z%+%|ZRdl2DHgfzLOa1TiTUa)oUSrslxmbFujnms6i6npFVaq9< zkCEj^4W284^Tt|ZHQ2$YHM?L$u@Z9cKic$Rlk4_-XaOco6YgL^V{2sQmmUBusEtp? zfl7tpqCgvK8h#zBES4D-6f^EKKD(^O*vk?IPeZM76nMIZkS9_;;`fE3Cui zSLRaF!}f*1#6+`9Fri?=IzB^3ua)YMjaQOktWlA$?|`bAUckreMfe#ftcv7)jAD>T z8xw1E)YbOA^`?8b++ycrJwQD8(Rt{avr&2*xgZ-$WuepUx~lzno$(-F40E?PYC2M3 zxVoa24)D~m4poL99pI^nMrIiPs7`warl6fv>_ODVScFAUti;I(IOA@#CiauKeTWr2 z6W+**p`qo&qa$v$(N>5adZVJMB6c>}D(J?WP$(lC zy^FBvpJvBqLN6_kpKRc3ue5_ke^>?amq%LK_Ev}p^-p(?-HN|6j8%Nao4Yw6aFQ&mGKYP-( zCD{9?l$!uyN!$c1^h=Xek3CkySssSmJHa;qq@jY~&CwU(_zNG3A zU$6FdCcZqWT!@EniQ$y3gdxfMK-f~%BMvE=_rr0)PL#l1RW_D+-cx@k)>cQVis`*^ zyq4fptLC9qv9Vfjh1aaLMRmxb-dl2b(Hjn7op&!fSaE+xi>d<))NxpJpIw*g@Hi?? z?d|a4M7F68F(PlEXQaK9dEQfhhr_69 zXj1E~_;zRgmeU>Uy``yr^fipS>mbw7)eOQY|Fc%6B z+pJJZF~=b>j9)b3RG!ZwQbix@vdy7HsI=Wqmbx$;&wJt=aEz)f5(IB+52=X@(#m5d zg2$ejauCe7T5mNnJ>}OcO5#W`g%vRIw8mzl_F;71Vh9U*crh_?KJ}PTdH%4F#;KJ$ zVNntJVI%iU?2P44wUjePs67AJmfw6EOa1RrYzST#er3vLiBNey_Hn!Qq*xmMrY^A@ zRkCM|XD^WNyOhLUfcI?DGc%{~+|oO4HdRhh;?gtG;LZ`3pfN4+yeB)Sj4iF)Gx5qR zeUXSBgC%k)(t5MR@_M{TTBdmO;90WG5f*xqT*43|Hx`F9DoLETfF~B^k|utj_oj5X zXGtBWBSjJ}8h)*}BozXLgm;=VyS?!r98QrAV7V>#X>6hv5BWZxkwH8#;!()~?$phPKQ~=4D=mC(5fA>n-BO9>tne zoO>owl99B=@T@XP+L#Gx+jw2Dlqu{%(2{-<9Z1?!NKE<)$IQKQC1S?j(CIe(Yni3^ zICX4Se(TTl8Ky*>-WlSsBbqVWVo1onh=&w%5y8i7EKqtIb{~$zg;k{XcFvujS_`vK zo3Qc|+?18pdMh4}nVjNjW;_NLUV5{8daZ7GsadRG$6m|RLTpPAOEjhE_Av0i)00Bs zt3;5tVf%=04)GMwTXI=amntTCBG6dxE%hjB4NliVk8U@o6*3p*jx#L)D-@<#R z;aGgglDz{~_r}8|+SY4365$|F3LD&Elet7I*JjU-%eZ$W{4OM+_op)_MWa#) zn06tavoLvZnGLuH)rTCBmQSb8cdPIj)4ku3@mjMy=oCpV5%Ba5>+|}ne~VG9Q+}ul ztAq+d)1BcS;CD(BIg&%-I^BpF$phOloSfZmtwrxt50>x35Xvl{2}n=+Iipi}F87#& z>u@@iIA>&gdc@^;Y_MqK3>kXeT0FBA8hnm%qu!tRvf#KqGQ1H9?%`UD zxy=rmNb4hlAwCRjSY>%2(cvb!M&sGYH2bj5PI+u9q$)5lgkaJqat3x0!&~e0iG&EV zScM!L!5DdZrYpas0t1NYX(>(hNA+#lr&Ory>$m!acB=M)Vba73LB%Qn&hs4`rEi_m z21F_;?4P2aW6PVtlfH!9GDkPG=r-nx*-?eUaVPNtW(7N?8lwX?M(X1@gj&Z<|F-9q zx{+omMN1?rmn9+1i$flU3LUbYs&1nImI?sU$(TdmeJ#U z;CMJa+7o|*v=dJvlXAQ^g)g4C&Ft1ao*71a;ZJCU5?hK~&2(7$h%deGSGT7XcqMG2 zRB*mHXB_*DKK;P~B^^6%WUu>qA*ENE;VJkzR~Yrw?c8X&o|9 zBjaPT{$F(cAShWx1E= z54J?0^{s!bTTVl}$=1 z(u^)gZY)n}LK%Gx%}2?W5_essF>F$#GE~T8X0obiAEK_H3~--bgL59DNJxe8>_vDh zg?39?xjXiDs0Heidvcp{xKSXytdt<%yj za;zP_456)(1Y_(9D|$L(otO1AeC(L7BvNZ1uD^SxPRpVA%=^Y}yEcd~)#E)v+iqVR z*~CV_h7~xl@dz{}HcoeuCnA-NJOPbKFEA$?6AXK3p`5I5oS+?-sAM>U3rQYF`q$!X z3w~x%mRre+X1jtLXe^y~o7q&R_XEnI3&Y>k9*C|HAx*|Yf?HJY?s|WSkI+~i4 z+d`-dEqE!`7JXW0rM9i<8GURLDXk4x&!k15vV2+v8RscTZ^@cyAJ^GZq&dwTSFtT?>w#ZiZ5`$tBxE~Z1Y zQ9vgZO1&>i58j9sOq(FD@obwP3)aZhLTeFfy%imJwJv<4!kWY?GQuHw8{<^w^5GWZ8R5Zsbf*f zQ^|4ifQfrZDPUr1dBDVwGs)EQfQjjM1=ngEonpGUwyuk5@F>PxuG`QzOD^6L0|O;2 z2_RTGI*Nqur=6MG{=}GCvExxE=ohw2ViqhPAEy(k#8wM(=cUZji(Wpfh+;&n*PlEK z^+v>cWD?H0lB0Kca6;ywc!ud4-V^TI*rCIeo-L7YJuOpu7bdSa_XxC1aG{n}QJItp zE?lHC{NxX1D$?lWE)*w;oIAPkiBDZ)Eo!`uZoAc7N?UE@{v+)^O=0`qre!T#Eu)V_ z;5c>6DNM*=sipL6Ilng1-(HJXp!|ny5(*m%P6@-O8)Dy9$}E&KJ%d3?o2`%;YRYW7 z-C*%apK@>8QIy-xbBg<7Ji3nHMUs2ds?#Uqr{|uiS8hp8KUieXRwjRmmtLs8Fa^RO zF2`dpMr%U{gfOT?hE-83{3R3ReTaCVwo!q2os3FF3BD*B7qb_^E|=(wGkS4hlrp2I z^ImzgeNV!AaNRVXLZNV5ZM?!39XUaj0&OYDaj6p8QpkahEzl3x9RuMS8wFNY_B1jT zwPeLcxa}ejxql2}7HZ0Ds$JsPgB}D{>A4aX3vfS^Z);X4Sv)d}Dep#FBMtX~>O7Bh zDT`puj>;*pG3$1aW6f?Y)=}lWoZW>A69hg$T&KZFOU|23H4qwRP+{EN{p@NUvZnW_JyLqjjBtF(_-3 zR_>jLv>B<{j{9Kh>=x8!f};W`O(iWGg=L@Y4};oa8Emc3&zso3k6t|XB&w7RLf$1( z>cEf}FD9t2hV~|NjDr-7{X`9MX-7`oCS ziNWJlzY;GJgSe)JkMWMRR-YoG5D23{{apY#7=)`eQP3e+~Y3n0-=Y$|?xgQ2qvKGXkp{YvM!-ObbgKp#V2_wmNGj z^=>kena+fqrwFlaoR`i93UGB@ak5lEm5h?L3@WtZu#Um}w$&c5$Gb#n*&tBBGj0Qs z(51Yr0v|58HyX!#X61uPs`RiNpK4(b5*^Vi;~z++f8A?D1?>VC%9KrM4B(?>Egc2+ zXxjKnr$6|LpjKwOw^dtoz(5!T! zKMtCXg?QSlXH)#475&JbGKto+ZSlM)>UKy=@J>tPMLIOx?RmsLxfkm&pbqK@>lp6X zILevNgOg+OK#lK)bvtb?5(!(K!pjkw4O^-WvpA#YkB^r6o|x+V8B?G z$CCc$1m;v5TI~s!f}RvsuB;{E;)DT5$EPwBV^bzsA5)D942Db;?c!Y&)sg1L=)avMWGyRDq z&TpV%eqvqI&_fNg^&W@7i;PWK%T~I;<8q?+%%WWC#S@-vHp-y2sa3?>L=}?FLYsvg z_E1s75;5=1WN%ytD$2a1Oxe)74jv8F+HzXxtCw{h&_rI0(GKs?RGvGHVC!6QigaE( zb!;bc({a)+QcU4Z*P3bg zt;n%^#w30RmtDmOGSi37_jSfp_(HJJN%ZGPr z(qCiK!Ry6oZD2Ky9WQv@dTau<%J03QX6rqdIDxiV4_=<|W~_+0V|Zs%7P<%r238wb zO~IPrWi$aBkBHOWSrKqC z0Z(&T5pdU5aaj>?v57TkaUzX@%1vIV4?^{#ejH;Eysm(nYmd6O&Ap_s++jR;Utdqt zL!GstlQ+_Qsd2GGdtX{x+Ze~9!)m!BaggVAvASdzoL?OoX`Qp6Pngq0IF6h#iq#c% ze$BK8p+ZFi$sw#r1T&8p$E{$w^$v5VN~Xn*2K(IT^_|CwN7cA%vCZQ zx~*y^iY0y7vJ{T9p}K7R@TH6H1av>89g#&VogythHjt!@a*%D>Y=MVR=z1oegW{QjCpoRQT1z9=sB|{L0FyJ&+k{GIv#7CgX1e?ujfr5S4XqY#?ADv~NrJG__#m})iRGMV z4K|aQyIoY`vDTTn!im129G9I@r|n#ZMUSFYsWWO+$Yi8{772B-d?VzpzUt z-c-V=_;So@BKH4f>qDe5m2+;Jl+R=R^j7NaZC&)et}2v94K~lm=x`R)ZLy?_hmrVZ zC%yM%1I4HYbIR3td=N?BG1I`qi;$_O8aM(9S~if?d<5as8ZTl=r{;Z8)Kb#eTf??rA-x`<&qf|aw>?J zLG6>i{JVBM3?-C;rSl5C2R;XitigL=wj=PN^yHLklD-L{)bY7a+`Px-{636i`hz_& zCz|kAsLQdy5r8%YXj`!vYfEw-5mehbeaR9BN+G?~mQIf>*VQ{N8bq?Ba8-atFtp@b z!~e1|!br5nh~acNe?I)alCg1e$E2Pq%@rE1TI{3aeArPARj^oRlZH;QM@4fvP)W1P zX{Fc9VQNsJ$fbM1Hjd1QV1=q;&;b=U%oz!nc*UVA*l-{_j=*{w8^o^cJtfQ?e zCrOg`K|KsT+^2ZZdkD5>^9@ZfR)s?0z6L@g#zm63PgWvYyjH_Y7fz`oaWi9D96eIR}A%@oE zI9}q|p$cVLEb2?-jV8oC1Pr3lT03Z%uJfu?O9fZ!UZycaTFaxU67ndkY!3R|l{x0L z-U=Pa_^D3rdM0BPY9lL~Z`2t{KIAf@g68v5bH>K`SZ?eCqh0&xRJyG(d|mIf`k2dM za^91skDuu@r}4U8SDc-NV`scjbJqLcwq=1Nr0l8N?zZG-FUXOVd4^lR4@8J7#t3F# zHN6{b)1FX3gzi7hjTOdR4>1?FN^XVRcohe1Jx2}DJMg%ml!p_jN#+wYrQW9p`|0gx|3*#G-%f&3qEJZ zrW$pvHvz#?&p0xR;Tq1L)F-_s#(-%~>D_rcJS$C&cKB8DoJ&N!jnh$d!e{`Lo{jY4 z#2(@ahpk4Tj}l8i%U_T4WsgUriH3PJx(+qSPtd5-#WKAfhePYIOrsx}p*3>l6b8LW2xk!v_MVCsA3|Y3qH~*sbHOy4kWKI1 z1{KZ+$2&yn&M(eFv#ujy@KZk85~d`k!0DS@;%R9h53yv>jD$pSOIQ7-c6H74mbh%2{m>l3HML5FMKlBdln+TeU|kdBZ6PF zGoNhlB$mfa8jahP2C=UsG>b?nALzAunj1Y#@wHAoLicfXYazNWm6c@T%9COewvlRe zpjnFd>1?iqm6kOiQ&CVuoWUAh^k!j|7V7Srd9thGtFQD{7NSU{dLAY!{QT5Gq7c_mG%gjnij9bjO_Rb5jgh58yZ& z_gsXh0j^b1DOBj8p|46)ndx%EEMc^UgW!U`yOIIxp!1-drCX(6d8DALDJf;xMw9lA zV&6+Zu%oy)29p|o8$oIeyT6m>3ONqIBzJZuUgD><39E4PS;>sm2|IdZBq~hF(CCdN zWjjt6ZQ;c6*eFy9{<2yVPqr#;Lbb44+8A$J!v#~db@E*W9Zd=`MG`)Q^U_$#`ACt3 z50l<%`OWxVuvjQi4A!8-nBwX>663ZZ5fxeNh{i+6&(Yh z!wRhh%X?YcYPPy9e2uXx_!6PYR=5u;2O<&r5Jck(DX&d+c^VVgN`>LBU6&#{sgK=I zy}d>sqaMtcY`%orq?L$g5Gf=`SPRzBEI#?7&ra7v0@1i)xnROuim1hjDIEqRmR_Yz z$fKu~V$jADMWatx;!|@Ng!Ks05)!r|X;s>^Tt46F#YpQ02YN&oaUwkmT%3d*WNJwf za-*!2Y?q5tX!FM|prGjI3iW>7$BDEOL$$6R;9`I!_t9cRGUu;)zYlQB17%^~o28WsKDcyJdBM`g5f^q2LOzolqsoW)-)^Fj!feSQE1OK2bWcRGP(< zM3hkhXqSO5+i0DjlwS#M!Xx_s7ws{@O?X7OZmMnvR;kE2QZFC!FxZM7gZ&sH))rFX z2SV&M!DN;f;imQKEPd`W9@F*W^zcCAMS26*wthsq(v#p;u!7M@l`BiK&nR?a6Dbr? z;;C8>Vnuu~k}A#elF5_A3SZI9wkma==F-ReyIxcZdr>Rn#b@$kouecBz+^h@x#5;v z;nSbdZ;7^LB)yjD6@Kk`{_Y8F(w$=^S{mtAO#9(fs*wp!!o%PIEw|&bw5VUD_AW^k zK5)YRc3l`w(gTjU+O7x3aVxdlms1Kv^v&XKpo=W9itElAL7oK`Mwf^sdQdQ%SeutO z$yA<~m}zhLHpPo~SRyBU4t8FoznB=_?x+){Gn|9x&+=v$5JFoqT|>@DBi4kn`FOKW z6rH3SRmhKuTJnu547iIhQ@l6ZV#yD*uB5l26VT!(!fZ7f0gRpXM_3(_2+{Te4LKLgq|#TkaF%sNlpfBL1-k8#odiF9wZvhtS5MD1%}-zt}K@GH{)IAQC_1 zJ^^|gLL2cu0s1-6=uA)5+_r8ubi&}Lnmhy~l}Q3gLo z$A={o5lj+Nwl+R?6_0WxG`5VAH3mo1y@QsFq`CF&MsZQ_QyTa&J}#+DhTa)lHp3^=l# zlOtD^Y3*1D5?O4hMq}b8T4fl#Y_Hb0uh1zj6-${JN7(z|-YKdwXb++9ur^!&LQ0ja z(u9?qR*s)7UkX>om@8H2$jZEZB3p@M#i#>(DmFhllUtyuek63F3%6l|>3VR;g6=os zxE?%YmAddsH6j(^kRg#_-y*9Pyh-mI*1_Cf;LTkBN_)#cYS<)cP3| z9cU!?dsJzioTfEt3!!oB8Xwk{HVBnTn=#sBQBIk(v=nFG#!i76rh>_2g-T~bS&hQQ zHv`3rc$L=4(dG59inPuOEky2-Da)M%%Y;-ur`E+h&eRR5a{LLsM6O~9s_ zTXIcgRs`HeXN>c{Tr0^!sslSVN`_)p0iUxY$+xP2kJ3t#wLD;=gp$lqPTz~B&tsa8 zCc=Z0EXL^?!b2pN%xERUyRZt3EX|OXr&3GA;nWzzCY2_D)f7355^PLB*Zzf^9AMwE z6ANld5p%i9xSP3-jP&L8#EA=Hyp8V*bdZ)Wg41L8G>xWLWn_c+x0Z&j0>Y(rA`b?&7|81sDnwP0ni!*f>u;VU;dg}f{o&CE^oiJ3Wfp-+@k>!Ot z1M>Mrt{#7RuFm^KpW3>$Pwk59)jQ;>4}b6dM4!40I1PV4{;FK<1l+KDu1?$~SC{OS zs|)@tS9=4u{}JhcpPOIE)Z9O1YWG=Y0K zbaSrG5Z_E)3)$1S=J4|bu<7TSTJkgS9)tg%W@?`&GIjmqnK}X(h3sJHPlo(sklzm8 z7Q|)p;9OliFIU5dX48+F@?4uEF2)4$0L%&|i(~j&DVp!P^J=&2P%p zGT?OZ9(i-Fw&J=5*EyRJ<~QO0_DoHEBU8`e_e%V|?;Qvazt6<)!=YdKSGl?icxtRr z`@aHVP8Dj0dZEq)cE#WKeWOqlKP=SNhYHn1nO*nuK6Uoj3pMZig*pm<@Ad0G_3$tI z)SXZEsePZ!)lt9dQ#S%vKh>v3A)AM5`*(fneDL;srcZ79ZJ(M8-12mvS`6gSscn7g zV(7Nwdg5>T)V)BPWKW}xZOhgC-{k7CU!&}C&7VSD`BkoV11>{&r{VWD;1uXj0(ZyX z=4wCKJp#Wwysl7l-jS*OhB9?2(9CkRr^?k9T+e<9@~kgc=Zq9;+loTHfZyBjd;Sf% zTKRd@`Mq^OwpFM#UnVwMERWJ0ZoB!CS4#RZ-*9-pCryh6->IrlcxOQ>f8?wGUQwL_5x)pX8Dz@4v5zir94BV;sec+U6V3=66WNy@zGu+#S)bc0ifq_e%WUymKOs z1I;EoCF0iY5pPB!9^5q%eSmNNMzlk~SH2!HAv}ryx7!6}27c$__wghX6C;^;bZLfm z4*7S3yt^abUMQzGp*#?O&plB#dnDrOy-`;9eFnH*;JWes5WW{8-WG^+BH()<{)L;Q z;_Me^VrztLH_F6$2p53IfiKO(MK8)wewldeB}gyJL@&Z5{y%-=Ol*d54QQ5ag0cbZ z7W`h9XW~$V;S^&VWLb%P?X*uK?m-^!1uT6FZn9qFobdNov4RnF+R1C*E-~R z2kK)L$_~HVfTn$PA`V%Bx&UrqJQ4SepuCTPY%3AJf$;{k&mlYx*v-Ii4qjKZKsN>$ zc-}Oci0daI!vxarU|h%l7fyk0HOhGn>I&g>{Qnewk6MTEVLi$PGChlMWDRw)9J1s0 zHvG;TOvGlxkPqQ z@?MlL!jW&y#Mt{2aq!6~D}>ul!nlg?@cU4I2-}r=tBL zoQ3qy`Y_u5>8RTeqC8JSy?-bXPvie{@&5_HxG?;P;H3Fh73)Z69G3 z=J2C4)Z5!I7k&&lgxk)7d>=(WIvaB1_xW=Y@t2RIz2SQ`e*1tw1+aTRl8BA*`&f$l zLj2#JiFN_l@i(KtBHa8b(Cv(|ZhO?@)-YW{*rfvpdT4xmcWv-@p7T7FT>7M9PmRydjjBnz#n{ICT=<)6YYbcr+gP}=?3T--$9%CHp&fQXMCsM zz_^Og_f3oe*P-6e+{QL}K1%A)|74q=_>ia?HItbmrOvH5v2hY#M6$lFt&%|=z zw*y@t;;crTeeXjV{Q~h39zob?0d&HJ7z6RU33Roc??IjsP6g~~gj?>*#Qk?*j(s)e zTvuG!<982JHm@-vHds7<0FNDf$`0majk` zMVPfEbd;^2OQKC|1bwadKF}iEd^hIoJCWWuF_&JCGQJ)2%Jql?*yZ@X@*d3p4TSr|DqU|8$wM?9OH1al_ ziPJDk$C&%iItuv*-SwEiA6k})3;R&7n9sNU5Of2CGY}@XKp#Q4WC-m7aW8>xd^+Tq zbth!}5yr~f(Vy-@JH+qKccLEdKtIOsHTd0h9(W*(V2%_$kPGzdLHh*4WP-N!s#M&S zLVtt&kD@$IL>bON84g31Ht5erTX_P%%l?ir;7Qcw-!RVN_bmLbeF}AmkR#049%Tr< z<P9=Z3epI5Y~d` zF@$TrgMR#0l+ixO%fYEQvYCmy5NEQb;;0Eyj)pMY~c0)%(xN$agCxin5yRQrD zhzZb-LZ)HxA3;09|GU+ZU;KXoevilR@(*LKKLcYa!exI#+%|MAj5+(v#h89fDjq{P zbyX^!ML4B}_JiL;$5XLuGZhyhY!2ADjZ|Fo@>D#H|Cx(9v)^Etv*;CD3Q+_4$bN1PqNZ!640mqL~$S0P{Eb?cevQwRql z?yApcV%`@}9+!gGWq={vi0>yaK|NnV{U3GyWwf;~q5kmwApYMJ|8M>|v399TyzoE5}$#-kGQ9P0R0qUIe2s<-VGl@+kP*; zPXvF2W$%Ojh_L=Nw1bbO;t7PYb5ijz!WpMR|3*0BZ0MN?ySyL#J_LUZ!B~NC@3~mld;)nx zxET2Dz~e~3Qp8`4a52haOXPj>V&oBFIr6<0Wp(yvk#GE7ejeKVCsQ#W`I>{WcpCXw zg)%%7ux&td+<6#}5${?2-ik!YQA?xQehA@H@~ZcKagw z!>7@9knXChFvp;-ue}Ik3ew#OG)Dq=x|Gf*KA0Rvkc?I;Ei!lE_{&mzD;$M42 zCU)t=czp!Qe*kUdh(w4!=tlj}lNMv`fN%%?f9!s=(I24wd>i%gV~iOCnBNg5LHh{8 z-OI3^c{}Ddgnf_1T>e_fiE!c)=>FSa{JtD{-X7xv!b9Ic`C=}3@MVx?^91uG+QX)p z%QnIPFTos-@7te2zeQO152TB5HgHz~_smP7n<5e zon&L^1mOShi!qktd&?~_U;hei_*t~0e_@Qq@A2C~S9~pW*wed`&!J!RKn{cp4uj74R^)r%L|nK((m`3@e<1Pz_|f=%bPnV?0OivK z-S8lkC1_@VzWo-+b}-5e@cX+Hv3xel8o!%@_BezUi1#R9OJ-rck8sCK%>4-W&&9eE z;St2&c~i7~@SFoaH=&+4I~@8R!n229-Sld-kyoO6%HCNA6p;}Ph$d>P9A6=;K? zd-QG4-w;;53UlmhfJ3-_bF3E;9s_K~*5Cp9XE#H=f#1dWJ`iz_-x6&O{APVC6?@!( zaqD-`i_oTby$NX`ob?;TeFXm_-1HRMcwCQKS=bzAN@cZ=dk>=mP z3v|oCXLEcXiSLIVMZZIM9`Q~?*zDF!tiKn1?KbFNzs6kt1K2bW4h8Rh(eF0h3Hkwa zvN>0v%^>uB8SCSVP*-on{JSgigK!D#NL&04_78-$kH98{uoAj%ir>TjfU)dhtVs}> zze&aUzs5X=|L^%7##MYT`z^*;(DXivu?FFR-(x%j?q0xG;Qt37L7IO=+K-{V;{RFr zz4v<FPkjb$6QTQa=mUVC{%Ne45cd2$*0q;HC&lkh_+5o~ z*MsI9@VopHtVIxV#J_tt)EC0dyQ5C`$i(V5pdRr5^Sj`Gl>K_t!SXjj_e6LCxRU_C zzJ+=87nnn?PsNqL#JKx2*u3t*82=;85BH*9{uFb=br{3Hi}B@$2xw=g12+Ew%<1@k z<}Sp+*t6npjF+H!dKPq*L!oowcaNFSM-Vo{|JMO_B-;Mw*C0MZ?^claRp?s?7jBLI zgK#@wSG*d!Ho_L@|4-eVisg`Pr)!|wBkb^XjNJ&AVVque9rA;|e>TRA9KYAzg0>6T zZ&640puRS{4Qt}tF~j$U`;hMa zphr0M7vO<#!TsQSIP^BO^Bw+$zWyA>AcTz(QjEWk--@{szsoTWPvZX^;aaq_UD3|Y z{WX8+TFcBM7!Amc|g$j6L(QgPlfXvYW-Bi;MHjqw9CXZ#dpg>d>zj5h~i95@lQ@54NX-zVOUvF130 zcR^nKKYTpK3w&?B9%I;A%-smvtV6$91HBx-rvttov;v_Uu)E%ibWVUQ_HvMmP@P^1UG&%J{N<(XVHqJSLIXDU?+Q{rNobd_DT~YVVux{TUb+adQ68t|8ZFJ@Hu)iWa`fu0;j>fq8AM_!C zHnJ3Je*EUh#~5I{A>Ccxg7o)+90*sef}VnK$N^}J;CU%<0okNz_k-;bVc(}Q2k(aVg|;{U^=Kn2A~QFt3$UI*I2B=RA;uKc@dNn1>oDwVAY3>fYqojNrF+mH@&9r7 zy$12_`wGHU7?1FK`2^Y%%I^u_wgl~?M?p_M8v68+=-cnWxQOo=%a8`X4_=D#58>!{ zqOSwD5OhnHpiKe4-P_Sm0e=p3=ivWa0iRVvo|Yr-AkxMEyW#(M1=7Lykwf5t{~tj( z{sy$?(=&1FjnEsvgF3?Z2>MnZz8^msedZL*n-8GA5pGAkS;NTRsrdgi^h4kt_yEf3 z{g`v`ed7l)2ZPuBz#k3RQNYas?8HrkI8@x7{v^F8y)XSKhW4MO+r;OHJ;a;Eo5UN% z?qW}|t5_LdAU+{JDb5$47M~KAiZ6-F#23Zo;u7&Wak2QUxJZ0Kd|rG@92>XdiMSni z;>mcY`1A3@;vw;C@hkDD_>Fi_{9gP{JR*K8{s_zb<6@)uS+wwfihsd2AfhCSqJM}Z z(naZ8)9&=(v@4yT&Pivd2c?Ilz3KjGPr4wTo6buQPY*~JrhRFDx_R{S=ta?sqm810 ztUv3^mS%6ymSsz_#o3YBV7fdVN>`*urSD9SPHX8q($~a0MB7B$Mz4)t6Kx;8E_!>k zZ**j|Q*?0jmS|QqBRVwNJ327hKRP6OTeMfSUoLh5oW52x z(u4E2=ACp^`mXf2bRuo0V`)2me|joRrIYE(^uYX}{PgtW={f0U=`rbv>3h@nU@>)U zx+Yzpu1(ja$EWX3Tj@#Z`_gU2>qI>rNypRC^tAMY>BrJd)0d~ONHBI8+o#W@d!^5&&!tbNe^1|(?w0PJ?vef@{ZjPB z==0GRqD!L7qf4X9qR&M?itdQ+iGCX08~rT0GrBAKRrFx=%jkjV{^%FcL(#9Jhoj#_ zzm0wuJstf$dMx@=^oQt)=<(>!(WB8HqrXIdjs6xr8NDdkIDSc-$7%dr^q=V8Q5-)X zJsbTidQqHVLnVo$I2Rj<7l{{(DE~+H&+M6O>v+rfRq;#HZL-&7J7=%Vw#>H5UX{H$ z+dg|mwnese_Udeh?Dg4B*=w`cW!q)jW;<$i4TYmjOWJ#@&57LxI3N|zgwIv-YZTJCy5iqd&DW?c=0~b%Eq#0wkjLXCbDC* zW3v0>2jbtwKaU@bABuk&|0@1P{7C%!xRx)^kBL{sjd(2ni}X<2CU~@gmVJ`o%KQB@P!yih1H40>^&DkT_br zQ;dogVo(f=qr`GCB9@9?@pf^9m@DRp1!A#SDCUd9M4y-~R*D`mAfAn%iT@dIBM!-5 zBX$r;x_AENZ1;S({L1V-*^K^Oxzn^79X}s`G&?I>m@mp_=Dqond}-d3FUuF_bMk?_JD;8R z<^6eAenkGZd_g`h-!X28F|k&x5yy&-SS^~OCDw^|iQ~k2ag3M}UdwKTaxF=hf9iGk47G#HI^Rn%d*Cg8{+a|9~ zUY88!Yx1#tJa6Tz^Hq5xUy)Db&HR{rIIrhJ`AEJpAI+c0{+w-`zb5@l_GI?=?CI>O zY@75?*^BePWq-|1%1_JRlb?{kJ3l!;CI3LaK0iJ`H9s+bSAJZ+Hh*va{``IUy8MIr z8Tp6v)ANtyAIi_nKboJNUzmR;-#OVO*(rHr@`mK~$--o2vM4zy**Doc*(cd6nUTy- z-j?i_9G>i-9FQECyd`;Sa!4{OIW*}{j!1fwE21l-Z$?)|--*5!-4NXzT^oHlx-R-k zbYpaN^sVT-(buEvqpwCcMb|{%j=mRtBl>D`b@JKdbIEDR2b0s24<%)$-9$w^0nleWKD8?a$Ry< z^1S%Fcv}2N?45o;+F1NBy*>R=x;(DMTZm46Y~Gi&^V`MU;)mkj$#coSlHTlyY`f@h z>6fy0_G)oJepvp_{P6tB_>%PV>E+q$(<`#CXP?ck%`VNpkj>3r8owiZrFbI!bNYeo zwCpeGsoDFpld@B?ozf@MFT*tW`Rr@iS@C`GW!cx_pT#?;TZyOAFJ|A)z8Zfe`)YPo z_J#Pecx&;&?0wnE*^cQ^+1=4(b~UCi?8B#@%08K$pPiTeGJOyWfM28!qz|RPPJf?1 zlKv`vJpDuZX!^VKH|cNFpQjI}e@g$DK9-)HT_e6Gt`=VvUl-SkZ-}pm>%^DEmEtOK zy|_YrQ#>dBEwU($W~Q^!L({jV2d0OlOVh>al5{w$XG7U=x_Q1?{__0Q`4;)B@>k}& z=3C{DWWUQEjrWL_MemFjMhl{)(UR!!=&)!`G&hF3gqq#sVtNPiGroF18-?l%1J=DE&-& zL3&YoUiyhN%4Vc*PWMcoPydsy%>JD=GN`H9KIvQ1+oB&vw?vObKS-a7ZV++)>iA{x zR`Hv%8QI?1?%5vMp4nd6F4-Hh-Lf}kyJp+P+s1FqUz%^4za)QM{O|0#_}T2W`8N4$ z@*VQ6^XIaEWfx_e~Y$4ABs;#;#7@v`{7=pFHGX+0i}`{TFAi{qjA``J

lDgJJ}B$=E1Slko;G`=N1U3^G`G2xBPx4=6 z_h$EGKgoWY{VcmXyDz&x`+0Up_T%hF*`3+#*g zaQ5pgOJ9`c>G}Dm@{98?=9lCb<(K7`=by_zpMN(0QhsUvh5VfS&iKdiUGZ+oo046V zdCB5rAn8dCOJ*l?lJ4Zz=)UA<$(_kv$&ZttCU+|e@Y%nexLjx`C)QLa%=in@}uOB$sdwtQcp&bRmm~QJCmi!STdfx zJz16$WG7Z=SSy1iH^(Om95V{onMfDM4Tx$i(V3K61^;X zX|!pyaddNfe0F)dU%r37Z+=~RY5Jw~iu9Z5x!Kp#8`5vVxV@!#mDngtvlnGA&R&`& z*-Nr4%d<_gjk8U&@26L$UrBFFzn#7%|7v=DdTsiR^vmhTvOV%Q=X>RQ=KJJVrPria zr(a9U+WO}4o0D_IM@u^Uxx&`kKQ2B~skvY1=k4M=PTDN2f-sqKl#rL?4V!i%yR|6n!!}Ci-l2PBa*u5q&rs zi#{FIqmM_;=)!1yG!dN{eIzjXgr#V&W}DCogJ--j*BjiR!0{^ zL(y=wF8WmT?&$dFUD3y)_e3W|?~6{1-W#11eI`0DIyw48bZ&G?wBePiVh*C3n5TSVn`$Q^0bO5|l`E%L-PtC5}KH^ku;$?M}N`Jb&y_Kmkp z|NE86DR(l?g}P0YnYc?tC)XA?mFi7$X>~8o$UGl*=pu2UeD~9 z*ejYH{zq$?Jzn6dW+M6DzOHHgS1X%WMcYNMO7-gIt(jim?3>XF=g`bu<9s+fgV#BS z@JeTsY1TStW?k9aGQHwCFgw6n^>k-Dr?ay;S+VvxIGdRrl*tv){-rh0Te4Za4%#pK zYkGCOU;5vzgkBN9GTtKIJvmSOUtJTuJpSLiD!MbhEB$d=UK_pkzgQi;<$tt38u3<0 zTSxX9>9qL6@tJC+6s7-9u9ecXSS@`fv)4;m^8c@xUdW2+p9!s*o=N`kU#*)qOXSMw zY_Z|B(?>GBdfF)6s$vE8q4*45MV%fO>!^>!9~0%Z)MQd#OVR8=U;N@lN0t7Ba6pMB)+~v0#^q`Riq&J&1dkd_5%vlg}V!(GO)ze`n zy@8g;0WRHUw%dbvEX#Nd0#pO%s!XC&>&CMr!}Zynp}`4mMwG7(*Ie;#nh(Rf_d0qxqcXB~ ztz^>$Gv2B7)hA>Ha>_cpUF2k#Jdf16aQB-MEFh?O<>tnRsyHR`{`wgFRoK+*(9r`( zuP$8+>UjBmShr+Ko;#wBfp2n=Sai&;!HLck01%5>4*P@#=K|VY?@YF*h9+B_PYWSm z6m@8=7Oe?;#wYNaF^jKw_H?)}+8`sHl%+o?3!q_HfbeAj$d;u(HbxobB680QfXZ;LrxIxEAq{joIT9lkmr&ULHoly8Sy*`bkP zNWMX4s%8iiR=X}8A{R0&TQI+CX^Cn|gAjuQ< zVYt|@iN@+{G01k2Pc8gwLush1f_JlXO(i?Wto4i!j^crM<#m&4LBdfYV=laSy;de? z9)0y6VAnbSP*mU+8+1+S>dFuR!sB@bn5sg~*eWg1hhR(L;zq*dqp-}M#y)g0 zGf>FUkRW=vC?I^#SxKtn>48L2VFsH}9g{~@{x-gSO@io8N(E4(uX?z$ATWuyTUrnd zgF|gRMMwVENeKB3LiUm^2QdeZ0Yyn?NTvTXhbjl$-~cn&%ioB8wRDhqZERf!Jdq9=O!{2vJJssf|&9Ir9vIw;~?f=)?H; zbDRKL?)@a(02c5>X?V@4t1J+&LLn=@SQVpB)E$^;)mcHLyTW0^UFQbGeS>(BE`WjS zsivX#q(O}tlxAhasEKs9@Q|R))WVi_l%T)yNH0B^TVk?kXoy^P^T0)-D{nF~8h=RD zOyXLj?ZNQ@rDl1cLg^+%-(YjJKHR?!U1jZjrCWFu^$t4&B|ma%+~bJQ*f1sQoS?Zu zW@^Dp;q$w-rURPka8wZFRg!d#7fR>K6-v?ODydC7k>qym148mb&}PdL!N6>08^V`F z3vwxoR9RpyqC%9a#*3UujTm{88a36J3+rlHeHb^h1C0QICreILJ#(e z7mX}x_$LT?$T7~Olw>>uDnG4lvvy^k$}-`Ut%7-F3yp~eB@fy^xVi+w(yiSZQQmwx z6*Nu-nmIP+O9v#otTB1lfB>zEOPOr&U@ix3{R}m$Pc>6$8caowDOHYFHn3}ON*c7x zoIs@3GTMP#u8mNzh7ZIoGY2rhoS;&>^T- zaTvO2qTbX^*8vorkHL^clS&Vmz3lE>I^yzZdA(E&E_23OgU}nT#f5~>uv#oQ3YZ@g z8PQXPBm!W;ATM@`Z}R^IkvOSdtfg3SD?ayevHKUF(#~j+OMn$Y0%R0S%!8?t?Z8@3YEx3Xw}~b3+VMY8FhXsG>@ISTPuB3>LJ_VVVNq#@pgDdu@G)noWt7i;%Ok;^m@BNx5js5P91s zy_y@LVKNyM2&E$_GePEx3$Q0?4jh zDi%p?BTM<0Bo#3wcz%7gH0UdN?I?_!mg&OQtTCn5srYDNtwFmvz?J0M!rI-_gkRkz z`~gZUx$cvkXBVYVUL)n;mdH z-N9IuFFMM{u>$E=Wky>rO1YGZl1T`nS!GCHCMJFKqy3VkWK65gI|pNvUA0b&A$Baj$1ZUKrzf5(TwM>-5K^~ory;7{ zmU-#+stK1EJ0G0dc2;72Miz3?>tv}>nUFp%<+LbJQ&qU>V-{Fjx`K26O7x--Yu56q zPM{Ea5;00L-T=}{vp&vyr_vw?QykVab(v56k7~o}j%;F5rzX5~@yaEEFTCDHtMnqe zdCrYr`XGEM0&Q;CG2Bm7S}9GyrY5@UE2c(i6(n1M``k$BT@ePf+Uu4y;MkuEQl2eP za@&Z){wV)5F=SDCF;FD5Hk3ybB#t+N?I}*pdTK~jUwU_0sRZ>A^`a{TWhH^sE6qga z(10;*AWfQ4d2lP}EeQ>=gkkTCg)?AT*Th+V%*gx2lTu)QxHb`tEM59&gz!c(F{vDgu1B+MvSD znFZ}>_R_90nn(cX2%#vaWi!9CvN6IQ#lcOpaM52`H#e;X&cBIqG>%(U;1o zvTy?BwXicBF#+OA>0v_i$y=a)~QUwV(=9yYLY|5K?DnSslJ+Dy1Mi87-292FRp+Foi!DlGIRU^v3UR)C9)>m`imz(DE& zrDCDeT3H`Drc_GY1cT)&ZC&u9j@gi>RLuuR2K1i30@-~)7ItYjTvImevM#np6k4lK z>XR%$a^YP7dOEsxcr>>WWL`c-ZgCc123q9;o{O6$;Ov3g(%CZ)@0&fRzc#<8f1r1u z&yGXZ%mxl$s&|@9BW5!vBlIM#6P7X1{pHI}ehiv3)wFJ6O!8?|Cs`QXG0{63okcz= zmq#w7n1>5^sn(Gby(TTF2;x<&q_e9G5K?$NIxIxId@4vu8ZwYsS)@1fl59jjw+RT@ef*)6JK{i7%(U>?Rni>lDZ6%}N+ z&}LIzVbQO&u5KXmB&Pms46UR+t3kODUWU>kUn>DpgHcU(g-{c#Y9!_6ry!+j0o-d4 zdX=YSLJUg|t@A3RYsD=Ay_Q~37vo`XW9XQ%x@@Ps;E+rxNe6}IS2Sh^V_9u`+jXew zBaKmBB$SVMxp@DSm-Rp>C2xI7tEvMq8;us!f$3!?;pzW^hx{rLI{;PzMNDEs@0WoK?ZIC(0WdWyT*ESGq7PDc-SZ9EGFUbI`;naqeWA^ZlpP^AJ2Q*f7 zyxqs(1SVFKRQ47|sp1Aw3|$2XHcls2fRWYZO+3KLLhF&hP#Ie($Z6p%Q?ky~5geJa z3Vo8ca)t)mhE{3GMA=J^(NGR2(caecpv*#m^{S~3%wxl_ys`!&!BpDSFxf06rA~xQ zx9V~Rr^GgLXG2Ds&7oOXR(T1-Qlhom+HWCfW5_j95NxVbGrOnyTkn1AM2QA(9$KH+ z#nM}@DiRe6$W0b0Qe6{zQs zidSY)EuTTbn`uRtL3crpzQoJ*2C`U1>9#gzm>A*Y1>zxjK zk{^K8FRX@8)&r^r-M}bgUUN0jHgZV-;K&{lO3p)6<* zNaf~%P;4Hg@|8-6%%o_s^7Tjg)+6LI5VI~|kX%IQNBR_<0-DG60H$k)+(6Y%qyd;I zT0(TEV0t=7#NzN5I)WaOC9R%dX$YsO+q(F}AYSx$4Gyi81wvH*nHQ!b!wBZUL30GO zfU==jnYLLHVnXy}>n;K4yaCzVcywhZYE8|HUPG>cI;+GIUDu36>f5M`ijg`&U~y59 zS-6eB<}H_yM^>9!o6R+ueN;xn`p4uNP=C`eEsvd|?x98KBrt|MEb)zzhFtG*R5HS_ z*_glj7x(rq>Ko`cW(gC~I(5&K=3Kp+C)IUBQY&h5GlHT9kSIX=4pS8ct88IpF`b3+ z$WljMH4EcW-qMO3K%?o-mbUpYa$4Sq?DLkFxLDhwrW43{iNemghb-mX!{dYoRG*Eh8alaj43Kiry zAM23jUZGeEW_9(4;Mh)9oaANX5Y6JQ{(W4@38Jrw6~(Z4V9s9q1{n;@*?UF>g3qHm zJocxFLM{4SM36=pv*u**#6P6tu6><|*RtZfi+muZrA!a+pB_ytBxMg}eG}t>hN|!b#>mzcf z#*I3sA9La$HYv-I4JuGuQXJVB%Q5HEpJpgAd}PJJE*2Ou_`(!sT0aBnh+?RZDctM!GU{kT!( z3@@1AOKm~jI=7Q7oOb9```nEa4K5|X0NN~fMp@|Mol;E>3^vBb^?g>&(C8$#IBb+Q~Lwc*Z$E3uB7S1M-3ER%cOjY@Ocgbt96VRAQ;_HNgtr;cEm; z(L=|GrJyPi7(j5-vp&&>%NV$f+7Er(!DBOYNdu=TWG7H%q~cm88gt=-^5`%K5t$nu zCLcj6b%MbV@xe--VTZ7-hpWR*LX0KPGuSMXXIV@{DLl3cX?K8%lMAEh>ncCJI3kNF z9%TTd3-bYhq|Sh9*bsq;c>W`_=ZF2RhA)~*h)oA}%&6cd=#+Pso0cDjs<6$_-# zt5Hf8c;U>xxjgwT#ol`xC*9EXi$O{QkyXCuPLVB`I=SY$4zP4$4^bRrR(I(21`F8+ zdU0SHYLPxSQJaZ&D9feBdXuT78XvXL=ep4m*bziAR=SYcYt1s@W6)Q}P3R8J51EXaY|%f|KBi!UAF9Jmi5%5%O$vjkG1S-Q z4AVw4Sj(L`ssd_Ie3Zobkhb62+}Q)O7xJ8hy5y4tGshZ(+}o&f(d~z{;h4U;aJ5yE z0IEQ_>&owmb?wIJN^YYBpc97Z<|7U6{RGi=W&R&)zY(}#V$lfaQnvZB_nfJ*F(;A) zYXb=LS%aOh&BQ9Xo{gNGGeW7MhSeMW`RpQ@A!JWXlPH?V;# zDP>9F;0Nx2@~D8zKLs@_7l7zH#rRk6?bq0rT&{4_R2K{$Q@5JAObA`eZ#XWsVW!w1HCe#)VCs$j_v(#6ZoL5# zs5d~-@|(lhqC>}pTNzt3!QL7AOS^-6V)ZpNo6Z@sde+tXlW% z{;s~B-hoAZwF#DF@4aT!P-(S=i|5ZT69EBdYW)LxY>?k{!hy#mb$rZ%$}>Y0iHY

N;GKp%tEtL$g7v)8={e`OiZqt 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 Jd;L12ENqa1&NWX%#ez9E6-q)giRsmD zB8+pdnS|r(RYD-Tb=07U~HW4aq)cg?k@Ey7!zu8APlE@v~qI?_|8Ru^CFR7fF~Bbbga&$SM$!~>YHRdjem#?KIzaAOlIaZ=l2 zg#*U8i`qkv#Yw;8C7hQI-T7*aV=RK1L=MG91RT{U!|1Hb3TU5lFfVB5le@nmr0t0V z`we-X@}N9r1_T^vOu~73nag5&9xDJ}y0U?%D9K>tC9te9jQ)h(JhjtP2ntLw?PxF^ z1}fG!8rnZJ*tD+{SYD?K&wJTkbJb>mzX9vGU-6?9-S-2R=d%*dE;4 zC@@FS(G+U4s5|jHnk=MsHr=w}NlimrwVTQu@0=CBSHqiC%gpQ>RNcrI+(bCsq7sl+lVjsfDmNgnhH za?)K3Et}~KNG^yK2RX618M9%SmL*p+1Df0xhw$b8ilnokdYe%m*GEYY(YlOJQkX5s z^4WbVD6-noB-L9CVx(_k2;?*9L}ETW))_p4&Th&D8UIhGHsr|;X*MMwq=oO<{;r-L zDKS9O-sQFhfMvregSjPff#^Am_^Lvrmrenes~wYqL_)J)Z4Y=9jRH2-S7O8%HV%L( zhf;32{**T&B($@#I7SMh4&I+5hodqn`ZjOaYI+4Qb=k9!o4>pZU^RaUkc>zZmL@c_ zSBgE8E}W(*Fmmn%82U6_wlJlku47E_;l(mi7Dg9!PPFI&oHSO39NZ5mx@tEpRnTix zBH9V9Zbni{7?S{~!z!hwOxkEMkcBNPbI{=n$w_gsTT=28su^2}TNaZT2u6w{+pGl;ny@rhL|)Y!PJm zlO*cUKZZhOFsa!Pd)T$F2iS04TF5oOWN88F&>7o$iCP;R9#ND#7@7!oOa&aR4NtbDvRNA*t&z(a2hbsJ zx=Iqg16dns;T4!#YsD(bWTbYGH@b^4l%BhO@xXr|R%i<0k;geGny7n@}5B7KbslrDK7b>aK_js*Py9 z(}Ke&<0nL|pah$QRX_q!TXdvJiA+^1;atg1Rmy62tHg!5bpm5Sr;dspsln$SA=gCF%N_9Oz{a;%_Z_UdLO00y` z)?g&5b?QeGq0d`)Tr6(#9!nsux_;s^thkfn6Ul22DnTfy zSRpof`&TDSwMIwtIxW zqU0DQFzbRFrwPTxg~S2d?bt)8x)zNEoBTmEsXra;3GS z9A-*HP!TFHRWZCOhcKOrtaU1~RltLSb!c5$%CUwb3cKX7OQWOKIp&g*l}$Ku3{@G4 zZDE#JjliHnMJpqPD$B-HB?wr0G#(>*+*wvUL>}_TJHGl9Y!^j5zwu+i zNn26I=b$N0g=o)EMhacb1sqFYc^lt}!fPi$>jNd}5MRQyZ-B?s;IZcp<_NZUPM*1J`Vwl^9Owi5fOmcmfZp5z%F*q1GTo zxf)V_5PV{3PAL(yrMn_kKKD$z1+3d_jw;7);@q^PsNm1{&KT!Rh*DCy^QLdQSS2{b zuNzNWB>LK)pHB@Ba-EhV<^kM#?}N_FJNb?{630u_QX$a%F(j=_rHU(V3i@&`TQHvt zPB0x*3MFrhE}FnHl8z`19Wxtx7N0jWvQ?1KV*N0A1kfTK!`gXfr;9Fz;$K@J2Jj3z zJysfioLtJNJ>!F;FpFuske4XRbgUZdcMHDN${pJlk)dQy@xA#MJs^Ai1 zjD=97$^2qOXKsMA?Q2>jH2_=N!<0o&4C(iZ4p%sux|#_w6wwG)ib8OA zke4$j!P%e`jNwiKMT}CVkW|p+cq_FiBLgi?YI(@nuF9@5p}e45rOli|@|Wh2cFWHv zAg;V}zUt{n7eG1{2}K&#)KwIU!J=@TQZWde^H^aI4HkmlunVwKK6NY%Mha+0QUi28{#l)_|qJb~9#>y5H>96y{yN;_P>0j)7)EwdKW7(CK2( z;Oxy#%#gVGl2R3VDe%qZ5R8|I^Lh4qtU504z#f?r65y&OT2^!3$y9VL} z%Z&>DWY$PeYo>Ej^_ruuwg|GBc)8;GE?~29kZ=O0KfGQr8|EV)B(GmFOQcg;AUFZgHwD9v6td zh61F{y%gIYtu^#s$c8DXKap(s zDu%(>>|YpFh2TMsRRV9Im|gU=B2M42PzF70Ye2Sb>xC)>3uoQ4u-Y!gC&h{`ag|EP zVEo37SnAfg%c`Q}rtSLR@0%Lg6;S%HnG51-f_JwKx_=9)|E@(PX0yg8`JZvIG!PZfb{66xOube1pJF zl0gUAZMxK}m zq`@2DKAaYc#jz7RC#*hce~O-=mD6&s<=aseCRl@N=nmrg={XyIQN_zJ`Vi)u5e(Cn zh?!$!;d~%2AFwIMWN>9X#jQA*V69s)&(vn3d9NI=4Bwy#m)E2_wPG4gM zo_h}9XpP7JlETto%Uv`E-}rbw@vjsdUQ0~FoZdB7o0 zk|UUl*^A}`Vre5>I7)MMqupwfDK8Y&a-m~Y4e1v+Cj=j2fjET3?ZP=YffdRnyE8%g zvr#(~eTvTT2W90;qU1qKol&wR3O16S;6#h+l!#y&@?Z)VaX>i2t_{M~lpL&B95?Rf z^9{JJ5{QfuJPcjY8f?om{@!elECem6)RN_$lmJ6{oNt<%q2V_W4>6_{A9$3fzDXKj zu&6%-#3_*x_;d-NlvmabHFjLT8gJnEO>j(7UAeN9)Tz&4Tyv-^ARBsSg%*#ZR~JP? z(d5O_V2h(mJM5hZ3v20S#~Rte)$zdNp;&VYq$ign;pF)CSuhS=ODlJ+fx#64YPxrZ zr|Ci%*e(O$#myBoBJiXgMDzO|a=W1#FE<;e!Iy_sb#fY$qji&&>k|1%hg7atABkOG(dtVJ#?4iaeT}83kl6OWNxs@L&=twYX*ou%IwRyu!xmqg* z%OaYx$yP8m$9O|{XdzXJ0@YQODB=8lU85h+!ZDC2O(=4c-_lqZh@89Ih75&y0dGL^ zy5Bb1GHwx$Ub$+q1NN5#jD%D=+B~@IDN2K}yfqYz#~6R9ggEHto@q+D_$qIdNI0!M z{SB4^Q%Yd0HOMD@-SxMOfC9s%94iN!cmZDvRBc4k_F~`3GAS0oef;=DxxWu|O@A`B zJQP)8D#0bT5^OVWV}`;J?+$iJeC3}P91e~aM_%`oL?{H>e6<8-z66$j?5wV2Vt9>4 z$1o~MfLm$dVwkCC610X{z;RF?hqj%)h5|`v!9${9pC^zyprxk4Qp=LVy&9CGAI~uv z%apx(Y`50eo9GelHUgTc0(<1@%u3L%uh+faGlQm7bX-)-%w`i_zDV!23&0}4ZEDs*3^0 zY2*cV+WY|T_!0E;r=zz^`mOwplWk^74us2Q%`NmGs zXbpUJ)2)4jK7hCCkI8-O!GoK;YB!wBD&r)j)j!>4`P3c^v0)(rLkY1_q z?xNf}bTM?3f{i9<45*|ce?7c_q0ZyCCLiNZKpKzRe{@Z_F^MzSCBF1_1oe#y<}TW{ z|0wP*L4^n|5fv8QOYqLr7>027SShX?WTdcGk5zF|U-CbD&M$Ba21gr1{@CiF`C%8` z?<^d9=PH#R5|pygPFD#lqgR0KoV);%ijtK{R8*dgoL^r}&mVd@D^a|FWEQsADpTfF z(ZbNPT7%`rD=%}nC;xD77uW0H#ev;2)%5snCFK%0!>AY8?OtpZmluR&fA@}vV4S6KJB)~l9q)G{`u1QtJ_DaS}+uZ{$@s=Z{Cje=z z-q1^nRpG#v^X{-qvr}dI!u9qlmHE-h1s5CLg4xB?X{7m5=u8OC^L$V}?WDB+LF7QVv{I4eZ4 z3#5W1TqM+`nj_W*EvM+VRXnEVbzDFuVAb`92@O{L)L)TkG&CSsL5rs0!mDCYf3y?< z9mzd9qoMHPH_8{VRP}4P>ep3ixII}%V%v|Cbi1<>J709fkQR5c(x`gLMqua5qC>-- zp5ldYDQL<$DAHmNs?~|HrGly%tHPkXmXYHHk(6Y?;WpapY*{;hFjT{;Q@2Y85Hu9* zV9_}W+fYWd(!G;amVn`&afmIzWzGOru%J__CDDRFG?ohKfSJNwdOWN_HX^%e@Y%tT z+AmKPQjXzW%gGlE0AvgE!Pq|F*FvZw<>e?RmW`IX0F`KeP?6-!9O96L&c9S;QFucE z>ucfs(c#E|CKtLppkVGT76tSYWOW?tB<;>ZcW46-(bFPI>y&owNYA@KLK8y1Ne8ub zJE>e#+){~|h!TTM1FN(RQg(#t7zc%wj;1U_nG%E+Q_c!e!Kp<6P8XKo^Q{~Yl^Tjh zU}y27*a1%CfO~|fjH@UU#CCV`iXz}sT3UrO|b&3f(^P2j+2$fA6X%8S?OZQRT=B6 zkK=gn@H7OSm5mXrC%e3HwrY}GSyi#8S0tw|^kw$+WSC=jIKUDrcsV6kCsQ0MN_+!F zU0KH3lSN6UK&i{e3|E)CLAV~OE5JCEcUw(mkq@-!BuGibX{x{}`$aT@u_owgq#EIG zwlJJ@#1Oqy>_QlQB)kxm8M$_F3BnlUE)^x%9evVZ4u_?_kiF4s(2vnrSpOX(g!isPgRbKzH)wJ4~a?!iej)*RqzyEn^5gYgws$+(7U_876YlY1*1#UbdeXfD*4JJf_$MU zBU%t;uQ;@jWO%G7bMAc8)R??>3a?|(_bfG1bH*(x_vVp8lrEXLa9>@~*oHO#DVTpS zRfC;{lmgP8i*5KVz{Zb~y~|>wX&WAHuS-P=mW&D^7B?$Uvj=KRXU{wwe$e`B^LzRS zdI$Q-@#X8-&>fY-e7Du}K5GNMEj)!)%PeDK;GHfu>4uKFYhq8bSCD{EIOG5|II!lk zqT={tFecy?6^m?Cv_D|HsY7;f1rIhZi3`d=Q%*1r3@*WvQt%47X``x?RRX$az)B=N z{k6H|yUDFn+Lj6eoegbO(9Vkl9-mJ6sJw|qYD6g!-xj2(C3qfYol*?na-d=$-z8G- z!il0RnG+1$b|#^LjUhae0FOcTj&>PG9$8As(+V0*sN5W=b4=futGbVZS2PM>gH6`8 zoGIzSqa?AX7s&=6+HO`n3RJK+7ifPb>TL`iGgg;9j}H_{hJ`>5L7pX2yb&=Vn3g2bM!A3ZAo%C;nR&5+G+*4=O{>HEmF5cHDN(4t5^`jg12CxJ6&eB`B z0LHa15-mY|-V#<3Jpkrytl|X_SAGvUeRRj>M&enqf!knYzey2`;sp{{umbMq-^K)z zlxV*{7D-7=D59sja}Aj~wTTU3?9R$%=k*e16iQhhXtX4x z^GKo7J@S|WmTaY?6A}aCOKWxM*bdq^Xro7u=Nehb>y4=hu_;huRLU8O$ z7&@3v4vN?{r*8E=O6@wA*e(mkq_kX8xjsd$!3I@U83f{-god@Rk`@Cv{L;PfK4SUJf2&SUh$Qr$_ zWc71RA~(M4VFqxxMbpJG_Bja^ahTs)+W@MDtGV`CSjDYlXs%6qmsAywTos3f8O8hy zNh){}wnG-|j^mY5aV4xwu*TklOXX-0G%=;EhJV{~VKrbqsFJ%a5A=pb?@TK?VXH+4 zracLF(rc~tim9QY9WX~IR)YHh9Xlcml`F7ELzdf*W@Ez z^WfV&1o!M2)H!7Ycfw=1G?VxyLL0RhFC02s8>~+9TEpWvg*%1Z37zwOOio}=Yn5#mvZb<7(~GK5ZZVRWC~$8^P*88($aw;> z6uZP-!Dp>=P9wOHND1@{5FFhj1v*OkzJ$i~kJ+|44W(Z)hGq^~*37s@UEU4-lb;&bH4kgh^gNYG4#j&ALfSt-G?MN_6Ft z@<=L5%A=}~-J{yD>=h+t^8v{VNUgG@0)w-v4h-zpomyFp<>Dz*Rg_SfutMxIVYr+; zx{9JIQ@yZcD+{bP(>uVfic7&Um_xNMbxG_c^9Hmu-i6S#4?R9OQB5ERh|*a#lRQ0H zhWkFl3J^*|wwq~KD1vGs6u~rUc+dPPwY!jV!K|+SYW_IKsYs=x@M_A%UH$un@=u#xEG{gkP4(!AQ+Bun~%MuVY zJOcTrR!qWJ;i&ndLMM=pA3T4Tc675*KTZlUo9#6{xMrMjq%*VXt1AFs{O zx~ys>EpU}xk4W@@T$T#Ds2V-=cpRkhw}y1C5j{N1u<5N?h*#z+DSF27sx}~ketVRtCHpa$XN4W;2weGUu?gCRsU?a5OF*|Y> zfd(8_+}BRFojzjYy=wAMe5bqBS=1a`=N{g}6*Mam(!MJaQSSGSox-yoBoNc}&@Ev* zi;5XJxxz__i9UEsf`{6EtR(|fIHZX2k7bKCJ~k-v0J9LO=flI~HAw3m zxHY7Fv5xhpp-Db?97vjJ=$#{+2C~nq8zyoD!}%)Og`}$B!t+Nwm1p?O8i9I;GJ_=< z!*wH&qC-QwVgVX9Qotu5E+8(Eue~{U=Z$dO@)SetN3<=2NpVcadl1J$=<~>h1Qv4P z%)Ysn@?yPS>ksN0g#yCynYES>7RI^2<2vatt>-+nf3H|Me-GV>QYd%F_{fHTo04pd z$_<)(-nV%ER*kRLo3}+N)%fVJdre%zlyfSw+F9h(x^N1|pVP2AZ^37;^=y4EdRnAk zBRH3en{u8M&_SF^01+uAzD85)#+dem@c2lDq7)7GB&%;)x#x{C{~2Iiyskeq ze!YNt&r~O{H!feF_4dF6&(3Pzbjk_4hp=zkGk%>JSR)pnkSfzT+j`WQ>0MN7^fDlO zW0TY=cFVThK;?ZRIL$V%9wS>kn zK}gr;%>38kPGfUk%l55JaN|#Keq-DoF$t$eNJ}JaV2A78ty4N#ivxVat?|Zsc7Ehl zn|i{h@Zjm=n_h>a(OkZ?YY9^TorY3?NoU03LB5Bq3khQ$b{_b_GKUw|7xEmQFN@ud zaQqyutn9W*$9uJG*2)4#dDm|>0Pcxi09vSX9G!57G~P(A>eTY>U*(f;PQO;PODyPx zU`2%!4ULvZ;0>?~29K#*gSMSv%sk<-$3+B78YJ$pxUkjVnDhs|g)MSaNC@L<)T$T# zE|r%7^oyd{Epi7=Lb-Y!sb57r!t1AU>^vVa)xb4Uw^pEWw|Tg=5+fMbmJOR~dW8$^ z(d+F533gLLgt{r}Ct6mh5X74*&$(2lQ{OxI2Sms6tu+ z%o)WsCo7ls3&}RP-d=%+hrOaJk0Q%TEdvj+4mU;{MI!XxY5#zpsC60yrIX;SWvp}O zW`naY&>Nt84Bmhth{Jmn&Yg$RX83(l55uQKT`wYp|rqqT)C+{|1ac^)!2_&iq$!J>am-!dSZ7b zIXZHV=24b45@$YIYpSqv4KU0rKA%QjPSC3aTgL)>8f9m;+k@+Bb$WYH-G;P;<6)Rp z<95y2-dB-33fJvAyzsEJE-dc(ct{%eD^kR)Fk#(T@gll56%T3DdAoaaZqy<`ZhrU) zlZtD!1tn%)mH&KL$`FJk}opj8<;CM$DR)Q{}h#;55s+@>jq~YYAhh zg|oQ@e{H2##+^h4X!SmCa2zh~+XJvz*=@F~)oxYv-mZ4511%Q{@8_?2rYlqxb=QVoJh>xVblOSN4;A+Fx7sVWf_8Kz9nmrqrM;=N5@ z3=DRBSdIc{Ps`7ygPYmG3M>{TXojOrw5sDa(0XP7OH z_Njl(LQzPY(uSxugs&C^JnTi0b@M|6OF)2dqJ)O>=vLzHFNVks4uP*>4nYvDpO> z!0u&9WYDajk-#M+ZpwQP-`1*2U6(I!tqJX(XrWfJz3J6@JB`iBci;qEC^X(-RZe4P+G*=!f86c*s#= z0b^Tp3TRL|P`d_cO;0O2YODh-RU5o&^5kTVvUsd(LC4k&c)uxZVy8rKP@W&k;%y=C zD2K+Q%9XcxJ7J1hV4MM$xdPX}rh&7=+?_$~N3OCV>10tTsN4}4j{TTaT+^}!0ZzIN zl_O#khhAxRFG!dK84J5f9kvX6IOP2BA#7)(&cvfzaE!qndB4`NgD20gnnvxs|3o~h zH~A!1Jz{}M1b;hE@}+@krbI~~7YQ?mSCh}-VYx1{id60hk}Gm-S~=HUki6cOsujCY zR#e;fxTWq!LwJmnzF{Je;t>Gc|&FugTl{g zteu)D_Y@mzVwZ*iO~rc_@OChX^>}eOt;hhzD|&ul5_+ETa_(bEQ!k5$4yjJqTV6bh zs1CX`8Y%G%k<;H5GHBQ?5>R?>xL#1V?m7A*oi z@xelJQ}$fzO+%C>R3qeQn`k8lWpH0;F(&wlw9a)+>D`p#=<=r z-M5FK3X_E|hnx??(8^g-rohU!WqJ%VDNV65a=X6P9-b6X?kKUXv&2nrH-!*fLbl3k z_=QV(ZdbR@#&yA{i{2e5nJdhBv)ru~2D|PLb$nVx`6sqAV!;R|C*#6Rg4O`gX3X!`&bdU7I1GaCw<(nISiXnS@biG zB`m*61!p+cnLMNb7mGZ-h1^XlbcZG$c?Z_Y6(Z8POxhJ4;3?b1p}REjASvFMw~GRi z7R&PxF0}$8S1ZO`1y`y7*vY}(_~aZMsdUOsVLg+I1vQF3b=3ho(ZcPb>tu>D{eNgX z5BR8x?T-f#6)d2lh~hH}qGAK2s)!*4A^`#kU;&q9vq=^-bMt zwx}$BsH|^@gh}1a96AOULnNC4;*wE<_y&mOg7)CWK*TLar(lRUUKG)T%i@go~ieW6%0ubsK$=UqW{~hE5b(gNO?6paDeAgkkX=5t961%1^ic z23>^93D3Gj))SX(U#&3qOR;CD0ko%VrO7;7-^TD5{XPd{vJ0_V z86ASitI~&1A2@1kw6E5;A#>=p7CDTGsy#PXI*dJ!XbO@;Btqk1DbgIM#0=l2Ev5_I zi*de<=ACQXRN8fT`Y#x&+S%-xafz`c-(dDbwN}#o0e&Xtk67t8_?=ieH1wE@X&C<~ zf1)h}c`w`UnQ7yPUWR|KG;PxQYxJ(s95vm;(!yB61DUkD@=vrV|vuhN3|rl z4llj7MIc8+kkS~cezMf~(XWV@iQzFTI(4r8kBX0ijT<%UxSWR)rMKzz;6j)vcJPzer$ zYazbRV@fYG?JnDWDJD7=fd7^rjzc$Fh1Zp)j>5w^(U`bTgB%*K*bZo7}FjN6my8-0dL&! zrN!EDNWRBc{|co~#b%&brBMXaFuM6Gk?K5Rm6^>SSP+qKup&^2!Ps#fer?@fpy!ch z{!%@hv;a%m!R16lazjilv!efINEIe52Cu=9Z5% z8ckubq9&%_<=q|guW_50ZE%3HI~;x7wD>iCn?7ZmYWdK(q!as~Wo3hCU$DuD&>mXW zEj+pN2`yKc)9fv!idazb4f}PZcup!~o>%$T_+!6Ib6m(XqK!!UQ7>lXOT33I5)nAK zUe4Dwzux>uv`-E0v3N04ger1ol2k!o*~D0Fhh&a?O$%yLlba`a<8$^x4QV^Z$0nsT zK8$2l3OCu9FAcxPC!Wjwu6S)wt-&Ig_@c>v8L{FUTAc!N42=;m@J-_i8-2liBsTU= zxIl{GdD$;Qe?U8^kKePb9IeQkQb5!YmXCg{Wm=f4Aqb~dS3N=Zs@g9^eqBp$weL03 zFBfG$8oph|-%jnK)BWfhY6+X%l~h5-_Bl0A$M z^o98IY`@S#!>B}Guv0BMamOcyQJoOoEAW?S{i*j1qYzHm?dTkYRXmbOY`gtY`bWeL z2rsWd)3LEK6dlpO7%$lLRz3O`wG*Y;`TlT_4y6P|b_5(-6n;+f7Uq|p+}8bZIy6kh z-_rAZ{(%0Db;~y(pDP7uHCU$E%~x~0?arAkkHyb;Kh?HAop_EVe2%=X)N z5E@Mbx?$lbgvRUe9i$zR%=S^8YG-4^c{|@8+YBKzfLYx8WM6-E*{0Hmws#7|RFlj*`Fp8C0qOqnOZN?mkZ2ljmOsqzPuAW5rTrQ6e8<5}x*S)`DCX~qj^z|HEzqc6xQSn* z13S(f{HtQ6XIff{-zj~dg~1GeGnK+Lg`}*O7zrgb*)^B`2|0Os5lVd@Q%i~i&NPfD zRI2}a8XfxZiriRB!iBDSfGNF6dqQg9@>7gj`)y+alwFYlRwUk5VgDx6JP+~Wiw3Ul zTsMEc^uwSfCd|)LefoHd_=GckwVYu6?ioKK8C`CRGSCBUD*-7sJ=8{o-9s@@M5`Me zBIZR@o%@j?Q&Qv zHJBm~zX=DW!8zHpvR~keqH#X*cyBZ+=k-Ksy{|_Z6*&li6~T z$;hS?r$#CD)-;7S3|z)A811N#Nux~W=wQ;zLlJ!Xn5tk?MzG!Io%|M4%*hnifo|OH zvp%O~eXRX>jbI&#map)!?bzi7tOTf|M4SqbJbJ_l|00m$HCRR3ZPJ>SU&S=W=~?7J z0sCh9Q~3M}+AKi9dGqSu!5bTe?wrngUx-SBhe2!cvfPnMmr2mDGor)Zjpe-}wc9C}5gZ8nTR*wN=xX$6s$#HOk zO~~({)unroBU%5RmZxckr$Lv;;~0q6BMz6t*~idnE(cYn)~ATlSA1^$B9uNT^c&_Y z`XJyp411TOe>heuo4eFSlfV8b5bcc6mJdb5@(eA`MwHTO9DZ@92%UT&fvF@EC$;HC za)mgCCklaqkNuoiZkRVB-}i@k$)^8}9QOd)+H}zH6z1LVD9@1-^6OW@j+{IP7tRMC z2l<{@LlYR&$sDR6M z;pQ?q@A^l4Tp-{kWegb4L+ZYhLzXAt*Y9uZ9@4_iO;z*t?->JA6W|B@6-S{VV@LNl zy@vb~-2gRCp<#`bU4yG z^3@Qutj|jBnx2{6xvN9>-t=5(h2={LYBi@xv!*)Dshm)GR^7vYiI?P8O@Nw{BOb;6 zq0^kZqo1Er9@MQqzu*ZBWx%r$A*T-S0{60Vt2sbnPqv<}BD zSH_rY7Huq6OCEFj|LMkD)9B~?y`|9~BL7z2!vCgKZyL}q0Cw9)~m zqrLR`##uKKt+I(GcHk{YlfdQ94$YfI6jeuj?xSax-$BGGh)BWm(kf3Tn0)It1N2@K zhD@$U^z&kLtuPc8SbjbP8r16Xr&qHERgEztg`q4BEX`})!rH>0j$C=U@0%sT9q$+7a3q;uQ_favV?OUx@13F!iytPGEq&NBCTyza$*H*?IjWU zL@`Cm!1j7692WBAg=qskivmlud^Br~`RDSr2w0}BTgH@dpI&O=i?qkMTevx}OoO+i z?Y)(lHH=Ix1Q?OoEZqNKhk=a>Oj)qwCL-4~klRssk9Mi~OlaKlHUo3(8?9%pyqTz% z8K@j0j`pwuZq%*S&3VJ;eRY6m*~<;wX#FX(sHUIG)h5)l_m22+4fpI71|kP4IjS1j z@G*h@hn@v(TytN^Zf@gR1~Q#RP}#;{)@hsm_vr@2y)t4gq6G^1lmj*!Ch^N{=VpLf zGGF^1FSB`cd9P!> zxz;oF7Ghp)X0k#>_P65Z0!uOPw}xBUo2i4iS{su`BSP?Iy!>1X+WHgcj$&@>Ys`Gw z!QgnC8EX2u{Qd>@;-$eI53;?u*35)rsvv%P+0Un$Sl2Xq6pb7pWB(h63mLDA5rYcH zDjF~R!tz=1WGE)`V`(}XoaQe*~nc2Y1R5YJ9 z2Wy+lJKnkWHe%k4nd(L=m{-^Ky>s4wh<%Hm&4uVKT`H|dfHtMoLvxsRtDdH2Rspp8 zKHj;DX$^HYzT#$-D-UHJVf%iYCR=henNGXZ$JBb})-8Wj0{b&|fLT8(n5x7 z=EuKMM6*iP)z{A8S>+ByrDQB|Uzu54d0z-vq37y;zksdKoq(L>_U4)!^?$HJV07;P zI=GV~4|kcVe9kp~Il)?d*s~oE@>;wRAX1iM{7m4TeAmadinX_~HdbQV3qu~JS14b5 z!Ro(jtv{!6T(U_-O0Bp843o)g5AaFm*2!3sNW8lv5=MAx}{Lv327OD#oKT}^}THI zT11J3l&CDu&hh%5PR3aVhb$FYyk))j&0>q!(n6(rVj{7X3cQ*?|AXxTmf(|ZCl9kF zXk{Ub!+P;EK^rf1zqO9r_#O+>E;wd-jqF+YM7nc@jh9Q8 zzqF6XOB)NdqQ}dd>k`*+pFUtASKN5n({RIfZsQ~iQ`vX{v&*ED8H*E%+BRzKHA@JM zz3gad3N&eWwPj1{5-&L-rQ0j&J6nc{3f6nWe=1^DijIYbhzi!aJ#Q>$R;rFg!y|sV zKx}%%2KOA^QA&&S8Mh(qFzK<6X01nlUpALVVY>*;>kI}ppNB@F%O)r-O-B2Ji)Zwi z&ZDq>q)lUFMcy4)x9|V&SI2nWo^FvAH?gelAUXR^t#g3od@v#>os-})20i$)VkLV> zV4iIE(V^8mPj)ae15L!~Ba>8SEiQj%1|$FW>NPg9eao;A=>Q5`?3v!8d@5M$P3yn? z2(R@z>Zqbzhq~4US~R`tszaWDd*4N86`Vn_1FR_no)oy zxHav!ot&f4Ehe9fZe(%w3zCJ;r=X#i4jPL?c@;BKGFLm+ClbHAp0CB*EzN7vsPab& z=+Djd8Xn~S>|y1pSnmN_Fm&aFl`P>ydZKo)vO*+0=pDL(C4AV*Qz0SHq05hU+s3oW zBYL7J&7ewinuA$$mbdbP+ll(9f$F1^fdzD;iHbXj^TAe;Wwi*gx1E363}*MVVQbwR zKO1G7Y^~RKGiO8e(zC_wS%QiZ1mrzHFnf;}F>W=_-jC_ITHPV-Ivi8O%G+PGkJ2`6 z+$P>fapr6`L@dLl=hCj6+gZ?+j_v@5+oWXW&jEn?V6Rsuv%Si(QpK4_ z1>+V_m;aKvhpBE8m1+~KnqPsJc5_1aDeR@?>Z!5o1mo7?=0J<{_a829Ow2qz^P!Fz zd`_Rv^eP^?C?mY}(@RfqMtFYo4YUh5I~Q^d1aXKqH8+=!^O@91-e$D`KE{~?@9p6u z5T0`Ae9-qnF8CeyTcG@j>$^Q5@+bPn-oi^q&60x2T+5jL(}Fdh>J4eSG0X@O(Jpq(bb7iCA>f}$z86Th&T6&%ni&d zjLIqQy%kXdb32-UE|-TaN8O44oMX$;-@xNy2I)aR*NEg|SzJ`aB%HkEK;F*H@4T>- zy`6xCo+*x4s$!#4Nwce8y@K~Kf(ABE!|}_C&Iuj=Wz=T&u0jSL#c4$u2y^qAelE9f zk&PJfeD&jOBf@5)s8s^7@-_nO5M8)#+%}Hd4uD*nBqV7v%zT=1yT~*hXeQf0Wm_4o zjcV1-+`((3L1w10=9NXMWZBKY8s+!Si%#$wWpLCwi4EjPO=2ztW`f9%TBOOY(Y>~@ zCO=*(F>k|BAdJiHSdgYyC|{Go%49;jlxa*HVj-&7Q$d>4EC21?>_-l@5Jg3n3XyW& zwSUZDDgV#HRI!_bqW@q1e%(xt{y$;RAMQyt5jZr%^?v-;If=x4(jX<3ilJJpCS5WA zT)yrA@BE7Uu9?JE@F^=VdU=2uD{qT{SA6LO{}E@}o;Gsn1_-dslP7}6+Y`g@+{Z2Z zjEOjiN_(0`H2qwD%K|(9&7H5FU3EVpWxu5A7G9JiTNY z@2fr^l`r6jn}5nu1mh zUoCoX27B)>>UpFmbpJwhLpN?NvTsetJ4Ei$OC~POQ^=&sYbnUdX}t8@R<@}xo0wGT zzK@cT518LK7|woTAO@IZ`#CK`*uu5jR+0AY+oXKyRp*S%h=w&6C-wY58%{Yd&QOIq7|n^K?L!@n&K0srh<~;QGfGC617b$`$jVa`k3s9p zuihBFnx*_$MpKLXKYibqSA<&vZ0)5G)ESKSF?P&n>v_6wCIxj@HplWr-~~S=rEz zRsY)OFXkQ6FU&OFJ)%1%o5W2;tJ;Fh$5!&H_DdZVE!kxyM7@_-_q9pfdtVt?;E0QS z?}2%-=XpWkIW)+UmKV~xxTvo>32yt9^dW}KC$$l9QO ztn%0Ai?|=Z)>BdG2I)3Mv~DFU4lwPTm`{ZlAks86U;L+6`jJGUeXEnLn{OZ|KwDHs zc1)msr+tsrUBywe@AN$F3Ru&h{~x0DAWC;^(B@;z8?WPOE~-U5`St`hbj!1!9AO*! zy^bf`HVe)qZuv1t;Il0r^Uh-S*(PYZ61@*Xk-i}9+>kbG7i;Ga5h4|xRYXJUi&qn` zn8d#Rk6LTeyiVDwInnBGmL`?&K@f|~ob&Dxj+p;sU`B5=;|p#Sa6v?=XvK%3CeP0? zuDG)$TH)TLFXophSAS4%E?sc+EcfOwI;JR&ZHCFWEEtP5pMOH^IsY1?rFeprc4poB zkmjK{z(tQ1&*nJ5Zx&wZJ;UZ!H2+*~t0L~xpNOkt^SJfXc zC&lQr7${|18e3XoFlXm3{IP`lc`|15`jzjEHKFAD8F_o1y^kGAB=!^?+aI}v*bFrN zT<)kvdbJ`kX(j8`R6UPw?W7xX-0E5xNjhujFMCCvcH$2;t*z?L}vpwdk(D;~R-0#s6 z%)P1ehEBVm-edm1e-A~P*AmQ5RZ|MqwxPFKAp15}msWZ#qCM|pr>Bd`w+qehqr?wG zxohNN0N(B`52nrF+d`I<&sU^- zEx;_(>15r*E$A(l{@b@upmS*EnfXzNb3F4bv%E(cCP`Y`(OHsy!xzutvn0#QAeX5O z(rt~9WeCwp8VWl;>8JNxTAAIc~$4A#0cs3?Xnuu0B1MdqR;}y?(15x!#8p+yf z%$3Vo))E8RW?MvBR-{97yw6N!9onEH8a!l6r^@OOimo-ddi_j}u5GlVD$rfzt6uhN z$z1kTH`#G*)Jj%n6l*)UVem4JwQY{Ec^#lYQe=<1&Af6N+oLUJTA|nDQjkrJ#?9rQ zu3gLHW-DgeTsR=xwupSo)E|~Gc^f9H>Q&%%txio}#xch2MzSJV(Yo^8e_BlDb>$8n zk#GB>Bf=Ex>Fw zY@K#lnc7wA@l!#@>}Qv(Sj4$oyLD9FGm6#{wm{|E7kJL+f4Ofb$7lAKs9LqK_?hUI zsEq7pEBRi9y(XqMVAxBgOqGHDK#tXEl9w6G?K}UwQsk@c)A3VDvG}s{_$5ZWk&SLY zvyxkRKOh2AEH5Rn5e@UcJj^!YfQgw#u{W!j(&Gk<)z%#|&+=G3h=@Q;70juZk11m2 zAsv&pTiS*_-VjPZlx70`@qW2zCHqTsZPoCL)#G<})Z3rInTv zFsD5JhFDu1wK8ErO=%{uMh|}S!VDfK$BfK&UVk4aUDa+v{0|XvFix(S@!CEfC&!IU zaS^-~X?lh7W3-@UKkR+c4DQVnIwGGO*Cv6DHgxq+&}=J4V_Z$HO#_-QLs)f^5ocYg`qwT7u@4AdZp!BtVgsJZ3J zn&K4GSsgXYIlvAn-=~1-$vtm2kJNK|Cf%VH@aK{?#XnL}&4uJ=f-`u>H=&ZapOmL; z2L=5j%p|YZZUD(k46J_3kL&JZt6#}T&kj)GI|cFrVwF~HHu9LQ42UYFMfRfFnIqGf zT}8)^G%uSfkJyN{ZivdaG{~d+a!=2LS*=&h>b27~SZZ`on2^lSjAt}m+XX6pGmYKSgy>k|%XW$`S^B~1mZjjUHa(|NUV zL5#|GdD?HSOSdpuG1q=@%W_^ZUuZ*Z7x0IzWsaof1v*u$b(+wrYC5u)7LZg1FTFGF zTxp5Xy7|(Fdo5&LuCC(-{Qca%Oi!Ur_sVmDeLnqEnmA2+k&Y|w6;&lG@N1fczZGls zi*-!8l`v?x@hsb~XvgKQs~c_R9hXaD%;bEJH-{z#mpjN?z$)%%K#~99+rB%;k^f6| zWWUcx)xyYJB=zwJs0I+m%gT-Ps_Ts-7qMQ|Ky-|i)+;3SOYff8!cx~nTq@cY=DaW1 z=(19yNU9@w*-Vb4UWVyG$^cNq2D|Oc=j4hw1lD={U+rdZN+|;;h6K zF>-3>G&PbU-Riky%t_X*S~{MOD&mo?v=dWaw?OvHqs_O9ns8U@xdS`_zmF@mDv}rY zSv6aJdy+l7t90B!E_Wd;a4sz=YT+NIJ|Zei)s7K4QzUheCm2#@v%oG|`jE=I*jip~ z2%wI=G_WCIs%9kgu%23q1z|;Av`o0zH>0F~DheP3j zTbVASlepV=-#(kE*T$&r+&*`}NozssX6x3hbStAQtiLCAn9jSTbz@X@-VN|FK01@I zj#q)#>39W&H1*-`l$R0o=lG9SZ{n8ykC~~gKhfUd(88{pdGGLg9o3h^1*8?O4nTD3 zl@ETO%h9PsBXIw`lr*c>lcB`wh3%kR5)BhRh3>WKbOc|%89lY!^-QsC5fZs&#uGUZ%(MR9#Q zb0OWwXs+v5|3-0#XDTSVj<#mHUVbOOX)U=`HQh83UXIACKvHP;<*`yv;s#2*I)y?g571_!uz zo9L;k&kKN9QM=1V@8mtOyLH^KFXXW^lqyVnQ7OtN+f-3!%9&Fww0b5q>?VGBn9h%1}#UQNd(=ix_V9%l+D%9pE!)b- z5~iH@$u1^8U?FSwAgLjvywsmk&g^BKO0tsG#EZdNYvS{hi+Q)Yt%XTj#y+|>&2D>7 zTECDF)B2f_J9w^3w$SZNqHGT%+rQ)Q2aDMDr|77(fog}8mlRk;U&j)06M1TkDay1c z(k8Hef3^F4>p04m79*;Y5Lm>AH%wf^+S^XYD?Q-|wzp(^64@tzl}nefeQFz@01J;(Sm5S1!7qNCZ;S_S5wtel@#@eI%r za77|bAG%R8Zi$hHnBDxzb=Q! z(dIafv=v77@U}mS4)ciVq2rQahzi@@?^j@zz|3B9da}rve@Mp_R}0z*E8VMr8NT<8 z!|Y8wY-ZXV_>*RW@i}nDsL4D&AJM!C8lM#SP*wd6_=HVg$UVlZhrKk>;Nwh52vnPmE4Q3dI-iQ*4; z4SRHBA`u-XVn=8EHxnY>rXOc+VqR}E&!Zqp2gb(zXD6QHvEkJ7GRY6Jma&y@Pry5v zJYpyF`j~l5EsmEGUbw*@Ma*-Vc`X(2!2WfOu`kW%6R$ZDTO-E4k{bii9C_f+pg2qB z)=SsTSE#7}zzFRALEUXU0&}fI6+H-u+kG3(Ffq?cRMCfERaEoH9&rLQKSJaqYmPK$ zFqG|AbS?*-OI$T9c^98c^w?4PXd(_P$d44z&g(KiK+_4K0e~iD1oJwaTAU zcvaNTOtd>bCr<@(7JF}8!g6{|R7HLz(5I)8Kik6obAgFinv!KPMbcgm@ClsjeA{?_ z_L-?R$JwNr!1Hz*(m$hTFg2v7 zYIZl<&sI2YSy3ItX+KmJHx`8TR8(MJ-Ub0LAz|z6$?PQzhakq~am=$+-(j%W|A7wi*C@No+s76L$2ik@op2BPQ!4VnhY%=d`E4^U{MXDG6 zUS$hMsvkFT#VtF^?!7@-W?PojSjX88~+EmsCHIOg|(4oxhPA2UZaDv zxQ(B*a+RG(NBg9sUoYChanz@*+ztcPNenFiz@AqMzx!z`xueLRv?!HyJA+yE3deJ& z5=q`?OjKn2WqIfn(U@n}o#j(R&surx;dco;y>OdJnhkv4;ENv}XPfbyiOt&(6>T#% z9jhm9^nKpSR%SEM`2DudMp4y%n3bzco6$J>po(V(kE0i?T!rHZk)Qr)r#R>OqLtiT zq_dNYYP}3XR=-d@BKZ2RhuPD3DKhUzXJI()%g+eFlgfPY`eW=#y{yUFE}5>R_IgRm z_-zHCIeSgq$+Y36G`a`^mY>?6Jw;iYF}k&$c7E5K-t(_) zF_mMkZ$+4HA7?SBiLW#TaioL0_Z44DytiXKGO1CM>%R5^4`eGg%|J9gUv0h#=D)Khb+`N4Edwba{cpozr?YtsC z=<0=IPw+Zsq>)@mTk3T1%M%JY`&gP;wr9}_d2`j4$9aYPfq|Pk$n9c_VAIsn{fkz} zx6j`oR>-5uAcMki@@!y}ZrYc!mF@nAWw32JTbhq5qbI)g%m%KE{!tlxwpy9aP`;1$ zH{xHzBAsiIy?Y_++{dQ32&vRL;HMRQJZ~p+KhZ2$WMtEZI0e2mjf-Dil=ph=*nh;` zpr0D#B|E0Qfjj;Q-I+vwQcL?2TQU6t)bk+-Klm~@zZys_XNl+9OQ_w14F zMO!#BG|rZr;U3_Qf8~zu4(j{DYdiSvps&kj+cdkhp8&khXVQKx=Gs2r*uFt0e_Jk^ zWl=m?I$Djk@Amg3UX6Zhm@!oOMM%rmcbPShwd^~CytFR!JMA1$>G6$DF2DERb~AW& zHa^0oIue6y7TwZ3v(PPV^ms7bEFbc^v_6S1zwRVD>3Th zWAAJ`&3*in4LQZ_rPr_wTzRR1ueaybJA|+IvkjZPFAG>&W?-$`huiFBYyFEoSBY1E zR*|#MBpv3S{?(qHo)W**V191(^b=dz*Zj?f+}`c9h70BU8IY@QKDCL-6K%*HoghV0 zo(wc>)h}&#v+wu24OxX9L4N(>mliK)iT|+WD!IcDtX`YE`b{yfUjMWqYhg<@eU0u7 zd2@8;Y>u=472$KfwwkywinD*a`u@WlXa8GA>x2#=Noy0LU6a02+(iD5j+RC1Vasrp zrlB2~c6B~k%j<_CZ7#~75^sD09|sTRiNKHh^V%bUcdSSD3a8dGMzxtSz&RJVn}q zY-q-!Hiy_^&(RaE96oo)BAeOX{2W)L|3UPK=H z&V>ac2VUlZw(Cq(Wi|@f&0kZnkC% z%UNP((v2cYEEHH9-Pd%ls3^6;#O&r1Wu;W@Sb#OlU*Q`>6|IdHvQn!I+PVD=m#yMG zx=m$}6=^fjtdspuiY)xiCb}}~1bX>~C$e`WlEhndOkM%|a^t_*9<4BP-#;XL{;e^; zSdkZwR-<9(wVQc0x=o{XbQWTmv?l>(^rUrviTeh&Yb{BvLK>Sk;WcS1kK&lK&MRKU zam*b?VkCfJbCgV)jAqd~e{@;Fe%ekWnX=2M#CF`?H_8+E`n#_WaIAP2BHD2II&2LS0k#ActBCn|L73U`Q7>U%dR-m+mV87+*=SPZ4YkQ5n47V>YlplXz z0{dQbM~ySAxBHC5NGQdoGnKThyVJCDiA3ISBBKz8ind*KV&_gCCkKo?QOPd;-bDEZ z#XW94!1)FTqr^ZkpDxtvO4~<#SXi62+5O~dO7ZtD(5GqdRhz{7cZa|m&~i#08_b|< zs)l#-dik)Gty*#r^Xd8G4~rTR{YY7K8}*jeHk4tsaA%)$?7bYd^0V?Ou4dcx(qjv) z>b53aI*V6z$BcAQ_=tTbI%JGgPM!_?w&FTR&amXi0bA>MWpuEfzGTn6lX*RTq71rC zw@XWpcJ&Ufn01nO^-f0k?g9s2G47B524Un={e8i%-Rx7HiqX;n?)Ys9%1A8gJw?<) zIvrz?cSE;iQZ)d&J|u4Yg<5l@H@Jyg^GuA{QB7;2mHPPu9-PZ7^|LWrSLZ;R?vvLR zF#8tO?LCVlw&x5)*oE>u;1@TU^T7(1Frl)z-<56&agc;IO)5_WGthz_uTJ4vw~~QK zQ=pPDfui6!w=@vDY?XCH8=Sm^V4i!n#DvVOgtI7Wc-I{`7GNRGyjvI$N!Jve-vCzf@LY^0}GLKC7XV zml6;MCtY!vN67^SB6X?~B3eDx`sJ+SIuGDccqz2x6_dU;#_KL6HAkkEyx*py|_X8Dl^%} z;Hqfl@7lFF%KN&tF_Z2zwy2Y|tf&gf1vj25Vmp7enX4@TZ5vuzW}wT@k8z#k(No9F zR-?;+cxz$qR3=_yASMUgRB)h)rGZt*=o@lyI}@)p5c$+AI?gOhL>VUyTeLaBIpK8; zM6rYG&ZQKLtU|X-fvmtMJh^e0s0n(VflU4a5>;Azk^Nnn*H38Be=I~L=kP$xZ1?Gh z)^VQH^=2Xmi}(O-+**W2=|4?>+{mLe(T=LhGJ!GU`c%8wEw1~*S-zq6j1D~`=rI#ynTfvjt<+$8D**EcYg_+wxl{z$L$CbO4&lbNQf zRe}F-b=@z7|Iom|q?KZd-=!?d2z?YOlg zsZY@F4XZfwgkpa!hx}R0-u$gbW{&j`f$YqJXf;PwoyoL@MjAM>AWZ|hdeORZ$5>Zy zGtz=ts`6IAUS{f}y^bal^L7JM&508fP4&;8CTcC;Vc^mAMg@Lr7s}fkAmM#a?48LH z-f1AFad~o!fs^h#{}l^9)(ZO=GAEn#LV;$1O-jxwF|5$9^SolH}BE5MBJ|K0y^rM zql67KyYUCJidnN;LAD~z2AXyLOXCi(X5E9hS>ZmRfKx$@5wyxUJTaq$R~h#ra&{o> zu0V@D{oKCQY_ab{?1#YCskDBf6H*_~9lt-3sI5&@DurN~BBWy>P$&9Q4Z|b``@0+C(%+2 zOfc0*(@?8UsIs<%SK+A!TBbkfQ6nL;13z!;w>6QNX(lF`*re?MSlbjH53c96O*;e6 zenOLGf|2>~dzFvy$ZT(9DjJ!nC$DkcBTfON8;G`3n7sA?DX%%}6Dz6*4a{tRTPHYV zD^CPo|4rYVDCU`~gOO-IUCL8|cd}|r$|_!qXBenxqLkJh5ZkzCTbs>1COc}el+Ikx zM5Gj}il>0MOZhPXnG|1Tq4oBMdZtJB;`^ik2HV4di+sZ zM}fY4|HUgJAFg{TPsGD0CJsulNw+7`m*1+pirL@jQA$k9;`*ctdJnYcRSjQ0$?f@2 zr1!FD^S&?~QgYiWIvMiX;i{*3UHNdSbhM%E4g|u5q0TN>I1q4K!&B1z2v!2$?|gP9 z$HN~f<#Lj}m+r@kzg?RH+jjq&%T{o1`=h1p8s$Y32QvMNZVd(zivitlF5-wq&r)e~ z{NX-yA#=#@2r4>-h;(;!&967G?)EC>=D9<33^4vSMtI#)rV z1t_gUz!ubg=Z9i*ipBPW*CTpptua<69(yC{7*VxRh>e6#VerrilX&Tx$+WA1Mbv!@j z7-?ZEPFhESJ@1iMFgcNE?o!%-pj{`b;LYpt>rUq7MtFVt(yb$oq^#uhbW7(+^MGYb z{m*0KcJe$UFPNO~3@FQj1!F(u?-dI<7MpM4a^izXl=Kv$BM$N!1Y}NcynPRk6OW0_ zGm0{qfoJ#2(xD;~p|6Q64hh+SrTZA@@V5HLce76QGjQ7u4k@V5j?M#Aulc&D1?x5N z_*92Qg{Auw`9L$DOghItP=SS)=J7ebbi6VCeGF7py4SPk7IRf;pFLMgl)^_Zq-94o z|MQa8hgg^W)^~_plcb={fj_o*%e5=nA1k!wQW8i~AkUi4DXq~UN^-VU{plPf>2INH z1%MUE3|927=5ATZI~oBSYDG%?!c|wzWQl_ob|*hd-YcEz6OSo|T=M-8Fuxk#7B1oFS@>4>R)JJ~zdcD49Pg1Paed_c0=`KkMJfTK$3z z8J5vkLav+p$zdkHh{&{eP;oM^obb*pCck7uRwFaoo&CQ9GZ*rRdf7w{C2`GH1-b?1 z*p64_o??G|xP=*@!xIY6g9G-h{X(LW;wu(5QfS$E7I{x|J{hr^y{A_ZQPunoR(d0L zXN%MJubH`ud{lH2=ec3d)9gLHZf3%5McLLxcdUK4_vzj2i@$-0&`p%40xf#HWBPHH z^G!gt4jO49SaZ~U{`ef0^DQ%xPsvr7oHfEvtYh}!v^ejiaWQ)m{?Nt<6eDAlk{oK0$HS*B$Xz7_8*`ek?O%bpSAC!AK)9NVgV<3$859DlaFXR{iMYD)vo3Fi|PH%H?$it;=$GDp=_(_jg>yE1gj$ zDkldkkP{HE%dfwai60t>HpTwrWdtqTW!BMs+_E15Vtd*OtQa{HM&=!5IX^Z~l~o-A zdmH&rIYrjWCk7(fAd7&~b^zF&Z$i(BUAa#Uv`pSxjh_eR>CWxF2YCJ(ZQxP3tioz4 zo%rVbJ#6VdGZ71|W=CF6fnRX_CyT_%s?Uu)k1IdfUr^`_SO=tRKcZOVYgdol%CX2V z?5J)1U>jMMjMgjrt9-D7*DGHd$XrXL;?^s7bhu$NuUEb@F+)iezg}rKe&QC^;4v0< zMXguvY_nx8uUEz*qACvzjMWJ(-xpOG#+kWl)(*hu`{=zvTY0R0Z6ul9}~d~ZWmwxbFBq0L2&rZ9Vg#?JJ(`gz^jx?a>l zQ?<*7Z2tpA#o{iT9{`&IgNmXHXl+=qplAtOrXK;BZpw9|Ge~w5Sa8ntcTu+{;DwR(41gKg~j`mU9z7x#c{2_58XA1m+ z_?d&LN|{d)9qku=Q+KtfBJ*pc%>({IIvqC{CsfPZFEIZs{A!ZO`~OWNs=oIM%m-Vq zsk4LUgNZsK7EoG?fz7!7>)-eD+T!;JO}la~2Lt6>6ximc!|hk`4D^SlL0!W>N0M)_ zntIAeXU={#Mx3ks)51%&9^{ml5P08hL_nlXco#gW(e_N<( zn5cg8*6ZCHxqk9LF(&LtX-x&=qV=q1qQXd#kp((Yng;e1UkdFm<`u;xGYvPUyxxGZ z*nj`6BAzkX$W%oHJGQMpe^O+^Pl*xJ`M?34BBv9h8GgStRa{z9begNPqxl*$%iW(NSPnHOB0=nR!pV!bCK7Lf=Kn=`Z~-ITrof*b-r)R& zY!4Qe$`^L~TyC4IrKE|V7w@^P=ot6nA~VtNql*_TizI1_i?V}~#tjtNL5r=-5Y?qo zu>%9zwtnp=mT}uIu~5S*BI&@^9vg5>RK{LvBC5)aL~VQSv)z+;-M!4pRCJp(T18xT zLFRm3CoMNo)94~11v&)UHuOT@>1^3on1~cjQ4{+FF^wlKNfUYLE3HgbZ3}E(pQpP` zWt+FkL{0a_-?AuHb>6tuCA?3u+QJhx;3$5941=sKLgX3!-`>mQHJIGhT}ai2EketZ zkstQaZ+k?=gtZp3l6pqK?)JR((!FeV*O`dQ_GiHgs`BaMXL*#aH#0p-Mk$bTcBk*> zv6LkyqD@!I&o00+R4X2TfGxuY6VtAcfwcYr%P_RdfOTwjH(HshECcAzEB4+jtnMZ= zRn2Y;m_xr<`>VL+ZnKG)9i}x){38>1V8d=GnVCo}yCv#@v3XZi$)qXh$+z0vJnvfK zZH-Du2U1m3y+kM8Z=2I=4xc677Govz0TD|>%8v`slA#-~pTjM=T}PwaNT9$5 z{^4aDMcf@@@uk-mC6Vnj#PW^Fn$D~}rK1gpx@B4DG-tb%7gzClh`kZHydGNUB<1uC z2kB1Y9Qr}UIsnWM&%XYtr~Aux9&a?-kjYhxD>_^A)1fI?_D|JefzD?K#Pw z%;5+xL_3K*GjtT!$XEuWyu}8ZnlRgUh&`DjdM2GxvV%&?2{g6eYrjolO+Bh-Qh7c9 z0Jn{((o`VnsHBqFEa|Zr)#K8V0bp=Pnh9q5Ne9==XP@nOL|>^#OPNq@<@*%q?b$nf zoJ}O^iI}9}pd&R90EJqmr35W|`+){$xn)lpd4pW;!jQ*rT|!DT!OY+C`GgHT^Pe&? z!NpGUZ3?{7zP{^YAG1O^BFELv*_URbh{KKVKE9A6 z4wb5i8%t?dAnXcJlvj(os){9{9j}MqesVVNcvXgEz64E;4MO{i%T6Wj0OprbL%Njk{Bj;-Bj-exiu!p{t!g{DpR3wYVPmTxJO932MAOcPWK}T`c{Y%wmjp?0G>c77E%k^uJkU-cI`&X*Y257~$-J7&?mw|)Hu z3wYghsgB5Cb>esWr0oD7>C81L6GA+J)quIs5Vw_K0r*?14_}0#a69ly&kS=RZd{Zh5Po=@45{ zxqge7(nJsquKeOT;rBN*5WBiXyeT6qekQPv!*d=w$ky>T1Jmj1ANB;?4zFLuT?nXJ zNaeJt%XtpG-InVJc_;*85n6iuAdh@ns~66)ZN9@u=QH%Ya|Fef?qT5N)cmDzJ=^9x z4O|!bIz;W~wqEHdEiIZ6#=5_s%+$LK)Ewd9sG%Zz(ej2@j&cmOkqy-`!0A;|T?6=a zW9q%WhW)z62DY2x|BjIGEG=p!-Me7?1}>U9pRH6A12vcGGpf-jq{&m>y?Hll^4$hz zo;$=HYtzKCvLbHsbMMV(Zc_`Fs>8VY@m-*uF=^V3dZpZeC%j)PAETYSgW1!Wa4yeAFwYr6Y@1flYWm*kph?#TV+{!aVO9M5a zoleGzEiEn5uqM0zn#>y3%D|@(a(!`jnKwI<=H_26GY}mE?Ou~e?MSh((GVCO3w)(Hg^A0mu%v*RY?}2 zC+N^RRfS~)vbr^CCk} z%S0+8D;w&+E9+k%P8D?2()=mbZ3jZGEC5&qN&{57y=&TzN z6_=NAR}GKI+scf{MwMqdNuY-_OI@OmXnN9AjXD0S3{i+Re95R^^y@hbz4b2d@7nJRLDlYBW@ zg>Gw@QkIOyX1!{Ei@d{bCNcy{>k^Xn^vA=Ou&mtyv4(EvnTuxR7V) zM~pmG=k|dY^84tc!h3$yNK}js6ad}tP1m$PR!&th&JEvs8*X6LTiS*4f5 z#ND!JrEp|I=iR(g$c=cL?Ek@~t@Lb-ZZ%F>fAhXXqUGu2?B*ND&Su=wpaM8vmTCQvCn0JOSf$cuu6H?`_KL+MDJ@$ zr=8nWAH9r<+!iGN<$W&S#Patm`wbLCz))??CBb#axVEOZEV@l%ob(t5zW$NlD$izq zL0NncyGp67N2JLfHfQ_t$(QZ$3Bs=mwVrD%cn(ps;`22|Au;> zpXJssEQ?-&t^e(({SUxE5JqIr=R{R7J4E7CtS`bYKaSKd3Bv1-AbFxf#27^banJuc-CW?&Z*VzGJ-Fd0g}2BA$o3I69hdJKWN4 zE4TR&gUqx=;R|vZYt7*iM#nnjW#?OT<9EZ+^=9*p-$Tpc+YEZ?IS;)5Vd$O!Iuo?cceAEj=-zlETz3@~y z{EF;_Syvuj!@clyIq#sR7tpFaYr(C1cvb$4;SC%~g@tb5bjh|mia%^kD_Y9&hi4Iy z!pwAlz_Qel=7L@JyHDS;g?HJXGjW4SS;^_?HlW>Uuw)EHr zv)NtQCqzv16*IYG+vF@o+!jD$@3tm5PHEx)r?xvfyiKeJt{o zUNgT#x8$s*aa&S!)9TW$p<}#1`8pyd`wJCBJAwVa;8d+WY`@>IP_xq-H@9hEdHW5> z-AcAiV)C1Se0LL7WYo8_)(l^E!qtxdmpOo?B}e1wfoM^DQql)uMU@yF|caf;b^S+U7 zcS)jj52HBSedqVyz<&Nn$mEQJvYb#^Ek~AQ;S*Ph`!7E*zk!mv$0)k+;xiv_~xC09EI)Kl&V_=KTyw~`VnT*P?OY0Qs(UtYa zZsfV)V*KZ2fuIKspQ^bv|q2ec_al0|4 z(pDa~qam3#=rWyoD||i5;3CB z%VgU*1+rEP#R?kE9<_pF1z(^y&{h?ej#t5bXV`V(EX$XWONSj5)P+X7aSH}7Tfq_G zuk5*Y%`H9BkS9{B%A9%ZiHt#fUQ5N_+92y@c(2RP@)`KCc2s2}3~BjQQ!?lA7$1k| z=5<`$@*}%C{_XyvX7JbO4Z88_#)6gZZKQ2&`@O!1we1^Qu5H6h^O4+LTQ{D{^U1e1 z{JX8i`lPu??n)25XUkP6H`w!kHyT@Ugo``(Uf zE3_;fS(eKWwBN@vPq3jYSj_^NPrtrz0n7Y@9aWjkNY9phv+FGD*^iK}UtL-{Twc#X zbn3M&mmgto_$MP@i-0CaycY{vwzpCAwf7ChD>wrBGa@VWT9D7srf;ot>@)m=*coc( zZe-2E7mpOy>{lZhZ?!2P57;mu2i?-tT6ff?X=KdY$;RSKO@nhn1%!B7;_Re?Ht`6|d<2G%@|O zNn~~LrN=3Vg?!lZ-4f2f_{&73!zPONNzk0I_4xMHJSY5ZrE9e!0gJ5M4pjY~cRnfoI({~4={i6A7jsKbva)S90A;lcwe*zQ zh2pfrWIzp2KB?1cDx_N)NxP=YnE5R26f0L%OcRVH&v_G%@>rT`M^(0RL$lsSOG=*n&!13i6U zz#ZZ=)l3Uj(e4O{nBQ{I*NZt~KFi1yH#htEaG)y927crPk5pdHe&lS#PA@3%2SQ*d z%l0pd{4FTjaf%~Z_nnstn-XKHKzi>i2ZrXxRX3$=NoyMlwj_GS9eJFCYllU zPH~7G>jg$?S9`2eN08Kbt-u<7 znYV8WpDkT%W)^y>>P7sc6M4$*U+O)JJ>?~4rjq(u$d~DyQ?QA>#-%2r$Ca;a=MbHZ zu6knY5#Co?X5?ZOQZiP&sap=Q_p}@ky&hi$or}I{c)qydcZG=>?i0k9eap)VtkHx? zt5&f!T4|(aJ3U@na)IMzN~mw2=h?*6RVHdQ30lFJ0kin7hp(BENYvGaY;SyQPudoN zwoThsX(>y&#wewz!VQg)blajGV9(pHiMwysMyWyV#taU3alMw*K~$E;(!eU@O*!%8 zG?sTAA}g6sQ3l%UzrKHfGtk!CP&v0C(;w{Y^A4s0_VMq1qc-1|`^94R4@=NHa0a)M zHg5sup3lz<9&1754JL9b)yQ;oAT9Jb8&1-C&>0c+D{*{D``6Kr|&k=xjuj+DH!zR`MOgU z7G2Yr?Tr7n1SJ36w_kRc<=!H0Gy}R2L@&_nm z#Op|=e^{Dadc>pEN#4;@3wU+1&%#U#`&^3F)xgs1>i@}f&hguC;dV;u+AjWV5mZ6x zfqTB)$9~oUjoHKP>=$t7^6X+0%9d|oAnCeEKQ3WO4;ratPBH`jK?*bp%xTxvUb>rC zxrZ#wuAtD5?AS%|wo}L3uHksw;RuoPkF~gBh9^i@#^Xa_((Q}LHE&ojpUFocIo%he z9aIHl2dq;LJT|PD_35a#F6t3*l9+)MchF^Xv7fZO=#HtKV~(8SxZAOayc!i=3oOk; zcc9PNaqnEd1O2!r}LGHU#5tc|>#}1V|51fn`Fe1E~>(QK!@&wkk8eh3a{l~@B6pTV(>&9Jw-F&unXCpGQo9OYXIyZ$Zj;G@V^Vs5? zL&VfUs_Mpp6DQ*zo3W2)>xA>f{k*~@FO^jh7wu^rY<|xi-qWarxHglg?5u+7DRuf{ z;S$#0%IAqYkR2)RK4Gj%vNU7~4*fIj09%485h*DR22GdpBNMEB7bRyL=IHEsF&3?G zZIX^B0&i2RyXvKpo;% zi*l9BUdRgc9#VS>TY>625-&)@LAr*@jj!94)*o<+vd!g>&g5D1q6jyQvR%CRGJENf zf-<;{4E=05d+ZlSc{%App+0m9h`Q3EKC&{RweRK&c8F?fmqbQq8k_aOL8=k1&xX*d zoWviELu=pXu6utjuYE5q^9@wgazk|iKU_X;9oGe{5p8o$@=@;NE-Fs$F z;+gD6cR-`pcs~{7x;%Z6W`t-)>i6rNhrE>DczAkvV zudGEt?V8%N(m`(5t71H{TuAqU%kbpe73}l18S=iUnOi$Xj5yQr?>!(1JCAm4U(A!Z^EELdyt-JH zg))FfuDfApBC)R3v8XgwE@c77J!c{Bd`9aUC)hi$tK+F@NffE<(r?pF_OGtf)BJgK zt7}@=>xGRfKPrHK_2u}phuD|=kA({hJIgbHp1$+UxzoI+yiqPjBOj z4L3$+4!VjSJ6g!ik$(eVV?R4Mc|EVf>c!q5zpK-i<1g?$PPK0Q*eQ^0Yqb7rfA<~Y zOi%p?IX%zk54cl(13Ur0uYgh$p*tc=M&3yNTO*6v8@Vac%jrHv>uR7;Uv-&Y%o^38 zltsybsys=sj(?`Xu@aucZnp4L_>w64^jVY4l^lJ##X{s{UOFroMD1G@Ws+W&1z zB=W6M4e|x)Vh=TXgVte7ek)$V>#&BUJX%p}YcMss3i>m(+uy~tiFsSJbrtxq$S=sf z^pE507u;UTNppIG3T!)=O+J6Kq=aXaJ4#u+g{zH<_-kdN5kJ4xv2#4)?<^&D@~g;M zK&*^cpFPX0yGmKv0VTKG0`2f$Km90=_C`^S4EnkDXbx0I>G=YAJ z)fGpTP>s!;D(&ZUUQ&~Yq#5o!r)zKzI&S127);BGp3Q)Q%gz}n7v$DSVNt!}Zp6P0+l+@3y+wf9gdr)+A{4w7K z_Gp_&sI(QWG&+jvHGi?_sbze|sRd-JoVk#VSQCEY1lx#~F}j+_KJY+_gL}@g2hu8{ zxt;u3o)8YMOY0Dd$~MiceVC)N_muLw(UvzeQ|Ll@P9af{V*qU7jxjIpU|V=^gxi?{ zz~sa#k`(3c&z`mP2+w2pMS78z?Xii>vS5(5Lcrr0oYZ>_d+V(ck(E|WW-QoCJuh76 z7*_ze-;OLcS0P?ntI*p1ukWrCcM!IT^lq21$F0cI1N+nueU(3nBMA>gr0wc13{akx zijz`+Hml8VdzqG`qltMnZXH6N-rkJP$JoNMPa6*yQSHybprV|U9l^kJF3N;Lj z$gX;Q97s*)m=s}K)q{WDe<05D;rhjnT zM&65Q7o*Zfn=i*1$f2w%w^KV~kAf7kJ&X2Y`g%TH&U-QKBV(Tm3ALo#udIs`X-k9V zugbsWtmFABJxcTS3Fqe0oz5hxotq~sC5nd}bJjk^w*A3K8&lO?Dz*`%``X+C`Lt46 zo;zf9z+}lN?tR_|KThYFvqOa3-KjJW2+U(wG#h(5k%$?QHl`q3AAb-})v^*II~3|P z=p@^rjxipm?N*3=z2n|nb~39|q%|L+{zJ~4tXybT{9v6&yDK*$SH62tjwjEfLQg=i z^=fp<3GTH_mduekI4LVTn(-5NOQINX@vsXvvaRb96^bs-O zt_Esaz^%aEpwYMbvVn(q^ko@%+KuOyW|g*ZNNZ{qk66zBMz(=SYHGnr>nO-K4mF>; zo1zK*;ZdX4#Kqd}nD>&tke2~ju5AS0i zq=$~%$=|^}c%VO!V>RCLy$Paef7d;6mVJMDuZI%wX*GuPDB>f zxO*L+i0oM&-NDs5vMo&@`wl3&f7M?zmT`2y7kmdBuyos_45SyHttM)=K4vCohYP)K zUE8P8A-K3@ZviaVh1EXV+md8={F^thX$sjsKzeY^$W1~IdYAVeirxX~!K(+}-^zO6 zgzsPjmevEb>+;g!BynD)kC|)(m2Ghp-}d^p zdAuK-W6R|uf8DA6cRCF*+1hP+16uF_Gb`KLNWbfC`*9B2xm+EyyHnWq ziW%$R+;iT2PZr%n?~wQJ-a(P>q4U3iXM)H1{BM5wZ=&ceknjE9#|zG|@9nX^g(@o0 zzU%X@+RNJ4H%1*mCoOwWH=vsMgIjpU-mpqg*;6Zn?%@F7@F_2((X303?z9j zhzPZwvvDEspbj!{Ntdn3D)KzA(*5)1_b2g6cd(Hsis!1x;zE0wQ#KzKcdtEeWYU&m zdr)ddT7yBWe&($y_N9jyh_F1Me5(S@{p_VXM3j4|fk!)gZcvg~2{GyG+YfSN@Bd6h zHKP-GZG~4|CF&4AVIuNIf*UHVY)_)Kp>J8sB3>Il8KH7*9ES+EWzfDwr*J_ZuyHEi z!XOfr>b^@<=6cFN_WOdgITfO%TKx6^?ML-|^TxfrAN91Jio&PzGJ^PCgE8Sr9N&9J zPa`kQlS7$a76E1Z6RpRde{cM9UXMMiBf9vQ2bZRxWZ8h51Gi4EU0HS&@8EXsU%>D1 zTsiNco!wM$9t3DttC5Z7ut)K{{v9IoO}2ZGbvYv6-+=n#*9j|_I?O=T`ZcA7@~_2#73aG^H7ul zSs!;nA8;v>w9F`$b?ng7;8(ng2ez?rd*kJth4yAt;($M>9fj7)^Kl(CN3z!qiW5qYUlcp}q~|wV zId<|^S$w$Ilx=eq8GOF-yQerZ_;z`84ifX0Q2h1;L^CeTz3Vh*V!uFf%XgP z`IoNX{et((eh(TD;3$Xm8?*o?*!mA%yX0Paga7`EH=sQ`x`j?nCPfQi9X|PP>;6{s zF7KE1F5P?qwf%x}Iu6`9bR~OJBO`A@@wOb!;bI5cGAO0{0nN4z()7*QQuESwfdfD-hqChp*HZS2Q(1%ejxf9(z?tu<*W*|rz z<_cOEc*u91Teph)^dmD@$;z)e$hYcJZSywH2>e(_)YjGHR0P?!_*~W{u5=p%Pb#}l zwPWl_ePSR}fgUQ=MfXNn8d#QzyqVCk)Pw9veTtZl4nF@tA03ai29KrLpryYnxp_Xf z^k_X>6nE0{uoP)Ci1nRmv+w}N`aUy~z3EhG1vIq0tpLooPp+B8%+C=s*V4JtOmu## z%D`%SIBxs}V3yIj@@x=6$tg;n$(r@0p3R{Q(Z-^PZXn=~KZbzLtu37M`+oM8z5;Bm zAf-Y+(CilDwyb8&9s~Fa$-rJ-d%>m?+~Z>bS!s_0c4pHBLfgja*YRR(F*Xd zThdSP3h-M!k>*0$_2K}xb&`;8U9f9joL9V#b63AJQb90Ic3wb{-ls3ER>YCs@p@XO zUqM6+Wskn~#eK`zE`P75(UBQda{;o;-H-G<#iMirV5%IYs6Nb+cORaYNbDaBY|@?1 z)=5aVH<8CW;QP@-_g6IB$@?-t+jAQ$unk~U_`>wVyVytn#Y`4SWUS8$xL^g?+Oc#y+oWF&T*~{- zqFU`#&mev(8bdQuub#nU=r5vV+?4{?Avkm^o!V_oiona8D zl9dxhZttqmVj)Lvi|n~J!&H`zX7H(JFr`y?Hm79gZhYO3d<_4La%dhX;^&txOB zz0;TDb?21ovSs+l%8S_B`~NYC*;9<{Y=2>aKgeRMs?G|0|Hr1iID_g4g_UNbvs|rLzP+EV#dIAzGvHBit_sZSMFYOy z%JJqI2AVizttA8G@XoEO$UB;WZoX~k!bEz5nYuTid^d_XD%kA+>y3A=ZX|9ao~7fF zOU}kBla`WPY`8*3(5`tM7V-$1ZR9E+y=a&E*4F=s6Bl!gY+5qoBFC~81NCdGD{AfL zew}M%!ZJVGw*1wG_kWOhN?hXFxR(o1(vYQSY;rJ$bmQ%L(`4L+E-h- zRNKW(Wk9UKRN3A|8g=LJkHlHOH3qKNvMCeo;szk4m=IbkhkcJhbdlrKMa z!M@iYYkr->8HeklY`W7lnX1=>VorLyfL}?zBk1Myi#yI^?OLy+^9d1^H>#rjh~(vm zi+MkyB*xWNUpyUBdn*`Az(y|^I$!kjhX3#FJj0``nm(=~pcDm_M^V%W@>ozQ(o{e~ z3I;<>C@Q#ab~j{Uvm3XB#DY=;R74SwBBCPL9(z|%I)aGw7FsAldM_aa^3I$s+1>NM z!*#AbydQEUSHAr2(`M$(%$W&LlN~Oz*WWLvqL8ZkIs-4@Ess1@%voYPBiNJq51o-aq2^^bBJ%Ia*`&gbnA;D$!5=|+ugiP41z z#XaC~AO|_H|HwB(&1^cjTwZ$AYt|5}MRR^tjatij&W|8A6^e7%Gh$wAq|Mzce?7z6 z{3zmbx_8V}6o+ZpBl#FdLykqRG~F(#4xf*zv3R{2bZJYV%kO@8`Wn{d$15NkxKNaJ z3ex4jJkv+KIXz*(2UlEWE}HQ(dmb(389y1x<;GverP7tjXvDX@JLo)1^;41L9yXCh ztVgP&e3G-XuQ|-I+tZO;QfK}>CT(ox(IOc#GLl zP+V>ssjrko6Q|Jk)F8c(6ls0+<}EBm&O$OuXjQh4fW7cr9$@)ZYQ!cPYVbrzd4IP8@!b{=G%V!T z66Y_xLnE2sN6D&Ti37b^IMkc*VtyvM#0VE2tY|MM1(U6obv6)A}Z=8BfJ zu+%R*!E13@Wq8I!c?I7<)k@P{^uAYG2IW~mR%6zL z73rR-fvQH|;8(mUi7~G~s%q#M@$rskM8C?2-oqwt&nbyIY6hb8rn^pwT-z8&*oM(+xy#l^ojfDJW#d9uO#(uLJ6?_Fb zXtkaQRPW)QEvrPmhnf|9M@1i@EEhpsEvcPV^r5>Z@C{t2~sj%Sh#Q1YW^kxBPm7Goh{zCqkoEnFjRuj)GG=I2wCHWq;Mc zR9?kIuD!0wzYLgdGhW@t%sSyCOtj}_yR2Q%lXul|B7HUB_jU(aU;QVX$vr9)Z61r; zoDs3gzFF@yWThS{^;^+%*jQ9eaqN>V6_Q4NNHdxN~!A&ynBEchN zI*6OqZ(nmU`y=Yg^susl(nPDv2oOJcxX#rp*eh_e%r*#@sg4*)rq4(Hxt1lLoy3gBOvxP@jKb(i0bn2r65@<}lG*Kt7K?Kd0-2t@~Q73}=e1E33gy-|l zaAFTV^NDh%Zy&p4AzKO!!+HEdND`~6=K;k98^sMMd*xPiE(Kl2u z3CgPvw9UH*Zk)^hwtEpjEsNvj#uK2t3MihF)he}^^muQn;HmRsWuDe;ziYRa(}6G#X&x~4+c-J&70+- z%r$dP4pk1<6fXl7+{~w%iyKh$;5bE$KaF~;QxaP!{;Z?hAG!~;*xI9zXSqcLos$)% z&7?ldz}{KeZ^vHF+G-ie(^N$cMY>xyo&PU;fLZ|}EL5mGPE>Dmo^R@Y&VFqjMHLCK zp;ZORQOa~A6Q};TZ5>OfhXQn#{vK+mV&iIs(!wgsL~!34dGCC2-+DN3ddi77D!irsobO5sO%^L3<;M?q@ zVPp>nr>IK@6?Kb!=K?=WQlsSk?1yO|SXUZtk3a#rbdj(SI~ARm`{wLo|3rNGNa;>Q z$&^XCs7;^px*}OWtIfUJS=M(bXZGwt50qUx>O%l)d_a%tr&yyVNIZIVkUHEx$J{5%p1% zWgh2scqs)}SN9-rZcfkMypGRJN15JPm`*XD8??6fe)ZN_Ufaivs31j9RSKiqeM6^n z9^dX$jJcG|qNgJ}@{=Dgyj-kxCu6>*wMO@k?~m6L)dC+kqU&OV`$xugHALmhRGDq! z7d_NBD)yZQVrt88xpEobxjIL2xv?oZ5wul=Yz3_3ZwniqX+i8Rhz+VROB0~1FVL#j zFX$_(ZFi0O3eK?)_%)ybt$g0V?7z3@wv#;j-6GlAt3)CnV%#t54zdriJ7BXl%T|Gg zJ1@{6W2(oWiz9N6D6%hGgC_%MkZJvX*~<1-S|pEqd|ooGHGAO1^BnO@$4uT)x@yA! zo8-zqJN{*xq-PX8pfAa56#H31H?sQ%Uf9DovR;wgjtP2hWFYh5>jTdf@V&P;B2rUJ z4dVpV+$)9_GqsOI)zv2p#mzeoE8WL&^CzOHHmA*Pr}lzgelo!YIJL+t^aTrZtE}QL zcoKdA`RcTO0rGQv+4TOEJo8UQe}O;)vq)J-p!~KIAGh1W`E7kAYQiPaQz*ZFaLv~a zvL)J2`UYO^Zs16(YA7_{mAcgu=j&;SYGD2<&o_ES{>1|cr7W>c5>?Y(73kvXLyJUh zfM+6^lsTNLp^FMy(Tx+Dh};NsBr(MkpW)%EuCYgcQQfd3x4PExojfC&%0={LBU61n z!7a+yB3bkhvqUoe9Ub69FV($^Zc*QSGPs0qQC1@=5Esf^;M4yxtMev~QrQrfUEX#r zdGNrZUf=EGrJU)LSpgXgTFV+Q9z1Y8%cuU4Y_4OHo}A+T>-g@p_z9kHd zq?7N^!EqZ8HO13WIR%h={`$@iCOZ(Bo@85K3l!BcBc1nn-n}Q;#>kE&2h1BC=Lg+G z^Om(=&v!v*B(;~_W2YB9BEGK0u0xt=OsP|7B3HmWEc&EVIM6lF<`glG*!LEYR_BJ! z75$TQ0weBb_GXdKfjfGMNLfdRD?^K<1QvV;N7KXX>3TNEcH07I4qH{&W=ma;0F8L~ zraHweE!_b=<-(ido%x&vYw%o5b!Q|0nmswUgk^~*j4ED?k+DG~fk+?c=%NF?_{H1n zcCcRbhSAgP99^nl*vhlr9L)B~dVS8;BeE~BziGC;lrvX8dr-oJ{y8~IVx z@_=*fT;v_^clP)$mKo0lxM}pPirVGaOd^Xq-9`1+-8q`xTOfOO+M9RpWqbDdXg=4W zNh5cqCH77>C<1-ulGHsMfqo%ydPotP5`Ed(^3z^b8HIdEvpQ8gc2e!gh-@iZ_C1-Uy%V+haAdkzVnYjEbg}dp`*uAbO z-d(Hmgu^U-Uyh)X*N8JFjlk;T1$zFa$FDrdvHc-IGS>?=YTBtz1UB=G_Ql)Te=xM1 zNTs7F-N)b=wCXNGRUfvF_;?B5y@rLDZlA>)k`Z(x(UcU{qI-)hv#?q_KyUxumc2}WD}rtcoS{%Te_8P>&p2A^Ip2DB@>-9DbWuD~0~x(C zy6KT2i};n%+d(ov)zy-9iz3?3Ue}{R+qi z16N*obiY{M@6K&(m3$D*51eidb^)-l>*qR8vW@+r0ae$C(S5bjo0qL&_VjQzSwNj# zPM6o^v|AGNB2`+LFYp6Ye zUJ~BaZ_!~s<1>x9h67hV<6zuB%vgJYZHAAd_-Xmn{5u;jx-u8YHrueGtvv2ejJevz zjcR_pbH(uuam4>LoZs2!pkgP|;Z`0mnCIsj4_M9f{8>29f1uM{2I^Cp3w%M#e3cKd z75upo*FzZyv5y#NkB_@QGM}}_|BT35Y!$S&jT3AIaYX(ioZLT~<1R6e6xn0LTW(&& zIW%8}^GIBpsVfdZs%t2adGO+iHgnnM_EnI{!C6yRr;Wo7v5ykyZz8FKM0iC56Gc{X`_=iI&+4~9CijEsz+P%L{&0H*<+BRL zde5Y5gop1ti7Wc;iRW*mh%{tnp^SsuMz{+(c63JaQnVsyDh! z^pO7nu-OQ~trb>h63{7=5e{)E3l%)1^s z%Ho}W)K$b;ygy%ro@&q55I06PP=kHxrEClQQo$EkHSGc9Datyq=P2vQUn}6pzVFdJ zqw3Nsr7Tl_17tlOW;EVmKc70x9V>Yw=KvMOb zqdbf^>pFIGl=XK&rnr$?cJ(S#fzDi;P-z~o?;nurk{`Gz%M%ojyS?Ftd2AcZ38%6E zfzDRtaRT{0qo~UII3mt1Cwj6>88&*{8@nw6Y)kW-U#{R7{k#Ysdvqn7`iuhWeL?NQ z6`b=hKZ2*_6&~;dY}{RQJ>SI_1Zh4>in@5IQuUF7w?b{>?_STo+=UVB&gT3KTTe>4 z(4qs;i~s(IiVtyCz@iAQuJ<#@-ubyl^S{{MSsWzND>oBmCR=MTX?8O(ZeN|79_ z-l+8kmcV~Tuywz(MDzUm`96g_&r8C|WMaV}s`8FPc~b9P*LNZN@|H#uT^4_m3%OP( zKP*v4gs~Nn!DlYtd-5UT{}sjOKGIy0P1J$c{w3&M`pnUT>*DB3mW6+b|J8#ewv?qZ zxFZ%9&H0=4z~3?tq%A8Gft*aeYsEU2lgq=2undJyJ zBLl|i;WI3HNeB8bN)xQUw}IZ9UNCSqpW_vgU*NB0N)j6f&XvawG~nky3=-M1DpYoVdwC}x1H;8^ks~}mA)r#&ZeO{b;j_)a}A(vmpo88n_)Gtk>tZU&{h^-f&mXMO7t*;P}EYpU}C}rKb&iEU& z_@PkE$JFtoj&jY%^~UT}YRczqYA^w+I{`&YULShdF1FA%7=MG7SJg=BO-TBoh^5}f z3fMk=GKem5$`SxsFK^WN{RB(BO_5(fIh+-3JRS31=cy@2c-{*na)nE-K5B68JQH48 z%>L}n61!)5a%+RlrcMTa!Dh8zJJ0^1Em36Aj*{M~7?$NwrX!1S{phFQtwpfGN9;_JQlORGKDSEr=gcnE08;!;=FcyYxoFBz2cmuJZ0fvgWay8ve<$ zW@j{yny*?#;2|3%39611MFHC0F>5|Y0d_$$o%yCMr6KF!j*hQZ#N6FR+y|S*%tdzH z?iTG1@Xf!-h}%lSDz7l|R{4%p5w&dhM020@f#-h8GYtGIZ~t3gbanj~5z}2liGd4} z@@Ua*_=fKj_VaCcZv|{^x&+*YC$9Xug!%iT_@ev`Npv>b==q<`EjzrG$B#VTe-4>< zj6I_J0iWLeX^`URELWegYb&3r1JP76);pW?wAiZ1RvWzNv5jo29gODwzjcZqwRH7r zKGlcd7w}^r4W}C9cU;|c&QA8XACBfy1XUa`39EXtQ6#>3{)OEfi9Z6UI!-jYkIX;w z-Cn+r9F1bqb9ic5lb+@Bd8po`r=#2D%Rwf&^0g8$V*_CLZr8nGK=J;|0FF%6F_h$};n`#7wn2Z5i|`B=$%h zlGR81{IQU^XJoExkj-tO%_U8;>UdFv@Y<`F9%hMEEOEQ|vbm&I%v3bmeh+sSd532u zs>u1!a)J=IvT5>Rp5+pWn{M|yY+7a+aeK}x-pSl^61OMUoY%tzxA#+nC!gZmd#S|j zon`m>3x!JytbBIS4Q9>s2lw+0=DbAiW4F@nom^Eu4Lcg#qibKET)?{j0wUv}xAKV5 zN!osE^_6^*%A&ZPTy`gZ5U+ZEk$fKeP?Nt{K3`VF-}^XlH#enO%+3@m6_~bX+CdVp z@`w?;@8q#7nSFT_JKc5ZbwiV_>7pCf6*60oZUCq0?#`W-@M)?fF_T>mtIeA1yHu9^ zHJ{EA73r^($f>LyAXs^KA#Lb9yprWsWz5wgx6oO-rd9VPe3q(6+)JsI%p0a{=h0S` zs6snjvRVG`N5l6p_bSZQGRsISy^%d;9doaixI!ykvhfb;bYc~At6{E|@wNuL`I~CK zLv4s#J(|m*(@eUY2E&V?4Ae-X7NqHLNCCVLJFzGh&UhS43s{=b=y3vg) z_Pvbcg|m3*CYBfVLOh?{VHKUnb@jaf_X_9ik`26jZw*q#nF%&_p=?l}LmsY{-8*r9 z*t3Rci+C(}^>>~yzcGI9wjLIJWd7P=>qKYpd&7BwyJ+kqMAqWQ&9{n7{6^tK zVKaEBm6*Rkpd1QUJ~zn(-sTyAx zqB-95<9<=Q`vJ)G*Y49W$Kd|ad)7~fSUNQh+&@f7R5&Gv^5qOlX(+ENV17F1gVoGz z5*)2ir5Yt7*h`bT|8$i1Qd7jFggFg+3CQ8Zg-1l@PP0g=COM395kG3@E9KWK4+hsW z+3fJ}?T%_|Y8WHPV`w&K`YN`An+M03Y$hW?yevo-NgNVZ#~ylibJYUgLoEQ6x;Dkk zMDhIPUyQrJ@%)w%OtKp+T>ivAVjXPck4fHoVJ`3ARw1^P`w37QlD`zWG+=dY15WDX z=CeiQq;-fIsAbSiPm~I2)X&~3I=~wBp&*l-KNJL{D)$=32=?#gr`n4?91lx8PrL^{ z`cmD$$O64}aq|Uifj$yOO>)ZD8C4eAJKM(R|H*r&O*o58GWTP2pK<7j_#r*&xO3Kd z)}w91s3Z_9HeJ>cumU%?{Z({pZx_b&cSSI~yr`cOz-`;6X@==8ohS6kE%==1yT z9D0g1KtdRq3rFWrCk~3gSatQHK>nu1e|)ry^=x90?LWQ#GE`c;YUoAR;8kP)=@27C|Id1p~0>0wPBg_*=l<%oF`nDTBI}3>^&QJcCr1G0*J^QRvsmo)kn84Esi5* zr?9=0MfC#Rpp39857}$AzuvQ*PwV3{PlWBLtr!(x*N_Vd{C7)RpBLT6Q-kxH(na{u zQk)w7Xuz6jw{Oh>wktY^xB@606V>@eo~;hQjlIBos7pD^?)6Va|2CVkPBFKc2UivqAA{etYf>E6NSB> zL&t^Ec>En>5L|h@=?c5z`hzw*99QMxw0$1RE@a_^u_?&5M9xhGUt6xoWqj@4Vpd#O)3 zFT4k!fn!9O3~c1G(Z|>F`F$cd$MgWdTugB}4PCcdBt4R5{j`+nPa4v@NOh*s{r1Ny8@KZPwr_B(qEMFByC$%pZg}FcGpzmkg;BkvibTZ} zhXy+sX!jxc126C$;OQWfT1)xGGVdoH{sR;fyzKGM#CuCq7?rYO`n%29ocG6V2xFIv zV1}nI+q8gZ_?Zw_1asm&{$!QdnLsigUpn+G-!#m@oy#pYa%|SFI`YbZt~++Fy{HS8 z5#*)2eY)f!ve{B6HrUB?Y6;FM`=U)rRy$|y>B#y4bNY7Q`E$7*hc(1>l1g=Z%ns_- z;-Ju6GFcKHE@sRPk)&l+*E>MRPR*<%`q0{f-_Xn4f%7#erf<14uXLVSXW7jW{7gjD zl_3Id9!c-kp3B_+QCyvwDJb&r)!~1)@EtZQ$Q6ZFs8Jd{EQozgQ6^WLl_{bpj~x(g z^lH_Oit8!wCL|HpH|rvD-3J88W~bua~EsyMyqd$qsV+}umPlxbeKpYwX7lK* zVt&E=3S?^BNkGcAOD-#BDK{dVo#$84v5yvIZ!{_DvX*CfWQa%s7L9Mjk?oUNY3zkK zVvY)9vY&wL5NVJ)_O5$;yvV6~HOR{{d$Po?rJi|uUI78G*16}NyTI@IUISEDHkW8M zS?z9$al}4m5I=jXrfCVs&t8}5RvW1?m)tU5S&O0CX)`OgTgcqeGM8S{+RPT&g{aO2 za(~T&_fPRYenaM>@Rc$X-O^8td`rBc7$Y-zhnaG`vcadkpTSr!+%Re`kM&KN>#)g3 zNO`PCPD~ql{46uyl9^7MhI=NO-_f-?Z)6YGSjaSGqS6XF=J%O?Q^ZT8w`DFh=8%r7 z`uqZEG4tCYr`TUR4lt3kRC%00r|-MA$wJoY;{nr4&vG=36!MvmA_lgn*#nqyyAw1WP{#Ta-a%7?B$757?-4)(eDU&-6D$GV3nyx|>d_mr5sS9| z&0Vgh8Bk4TPrlP)@|ZK_3!Ca5Mk{)ARbL6O==&i)x{j)nkfnRo3x(U`i1a}@$?cCF z$ZABDhrFfV)qUqIdrLnI<7L?{&D%p)&ABUiw@!~_nKJUJh*-=L7TwJ9YUeEFo7qQ* zXc|OuMU%&-!)F3cioN^KyZNNdh+^xbwgQ&kA7k1rY(>E-ZDrQx#}YW n>-v4EuZ(?DpN44U(2&KBG7H(zw>PS~pKa*RB3Onhv)cawpS|{Z literal 0 HcmV?d00001 diff --git a/src/external/windows/lib/x64/python311.lib b/src/external/windows/lib/x64/python311.lib deleted file mode 100644 index 528350c087c371401aafa642f185c9489231c165..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 360148 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%0ANR79-VM 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 diff --git a/src/external/windows/lib/x64/python311_d.lib b/src/external/windows/lib/x64/python311_d.lib deleted file mode 100644 index c501ba87bff408b67d15ac3b961cce620adeff4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364518 zcmb5X4}4rznLd7;d#8)YB348eD|Tx|M8r~Styqz?X=qB?h9oUrtPGQ6(o9Ka!px*? zu(F7#EXyLxw~H)`SP`)zA|hhNS}RsWM7AO#ixm-TtraUGA|m4NdCza-)A2z#LFHRg-^~D zg-@L&3fEmFiv0zNWcgh}qWe0LNX)?zIQ>wG^siS4iDz#TDdDe2OC;aiDI|8x6$xSc z5aXN6AP2TT$hi9ukpOA!28rSYR|ts@rlJU>8wF$FV386&c&9}2`8|Ts!m%X^f4oH^ zNjC|J;z1$-(%T=ED2|>d2+2)5B+@6&6cT@E7b)TQk1@X5CsM+Z8x@|w@d;6U{d|e^ zs)s~zd6!7;SjpJ=s7Qdq=jSnQ+9V2u8+S+~U*9eWh0ou__}qP>K)7)kjeH>t zJugxC^s|DHtQk>w2uI*5=m{UcnQ_DMA|ZVG2*!2SiiB`A%98NeLm8i0EE2+h*BIBs z7va+vGpf(hl;|NW{JXAwkova2;8N8qk8pr%VFwhxx=|wi-XnsL9I}(~GW;eSg8EC? zdI{qzCyRuz^?AnaH;9DrRn&hV{o{p|wgBn- zkS-v(A9YD$JC55SJB9I=c98-KcUVLo;tvI8uf+nm#vIH zPDT8tio&<<7lm(L#@Ieb6bRo~qHrgUz_te%-<$>>@U7L19Vk1A{Wt>Oe2%gGM)(1~ z{Si^P^JawwI0D~3N+P)w?W26RNdEmPg$r>6F70QOk=KN?(H?=q_wEseyHf>RSMDZ^ zF}~9+3KEFxcW@ote3Zf!I0B!VqOb?YJ)&?It~rG7Ue35{9?pU9B5go=9qJe1QyU}- z55oTgNFU+Hh>OJ8IG!zv>-!kvxDHBe!4X)uQDGmBgsF_y{h|mI9zfm^euO+DeEUg} z^q~*_=pgdpP?4Su-CmUOgO`c)w|%1U*lxxzE)WI6V`~||cn0Ud-hxDW_FmZT6@_0e zWBlSU=z%A$7lq#($N1G1qOflX^vJJ0TSVbkNcSF;`>$8S2lD6F_lxxNt0W2s4iXak z9~T9}Z|`UPzDE=Y`=>DWZG%tXK#TGCR#71Q;e5v92#@f@JjQRXMqGeDAZ~=;%~U|# zeh2&(aUuL3aU|?tCy{&$c?6`lJgtE7$SuGZFHm?6$LA0S)DIxN?Q+H!Q3nV&Z(@8I z?TGM&;~6)hT@Y?XpH27@+O5PGj=)zAW_i+9CiR6vA9{w}x#T%Xw$qeXb&IBNT!}%gPX01q$oiCC%!^d&c!Nr*9Ex4A>K>zVp z@Q%av>4Z~&TSYSKAYg+?PTT{)ZWjE_UL}&ZZ4=4c4-?6exE3CH4Z?m#Bu54*UteE_hTLw$(v>YkiQjic`f>>=}(Jf4(#Wg0G|kd+F6L(Er`#( zh#z#*(f9o`(mDG9gmDpU7DJ9S&qJIEb025C{dvR(c*hW9ZVPhY9lIHCzZm+9MLP2- z#+!yjN_YdxiE!K?n{vPrTNEV=8NL-8~uzaN` z?A$GqKb|j=E}ToC{&oRN<}yx0-VnObrU*-JWGq9z5Kg;_u?&6)ojVvyk!C_C;!0SG zItUbYu9Zmscre06zc7kx&S;NB(l-(M|Jc=URaVvJtca+pZ3L>>A#`lF8{4ZVE| z+i~0u?!AnAc8e4!Jc>S&@Y&50>5ov>_rsR(>d?8e?lt_QN zL`Xc0HUT6P%S8G!@LJ#y*252B{CdW^BSb=IEo0PA5{bkX9D#EYZwZvqxrC<}&3=&( zHax(H zy_-cUF%3uHS2G!p?i4AItb0x({lyj`vFCP?5`Ot0<7ZDGKY(A%X8aUmb;2Wi8IN5i zQo^1N#$(Uo9Qfs0#?KCgJ@Du<#?K!RDdE?fMRLhC7@r>^k^CF-P6BEFH{jx}j7z42 zH(eC&n2kCyRTQ=kDxi*S1-^QK@wIMIkl2AEa0kW;Kyu}MBKeP7MDkzAGYORCe*stA z&e(LRNF!8E7z?Doy+`XK@5MRV%I}V695@O`W2p{Z|C=TNukiHuzH$@plYrZ2N~F(C5sZs*1fHGCc;-xm z3p{x>YM0(?+63O?k5)xlSze~7R;TzAO?168?j_|*zM?m_UCmEPG zNeTOF62iihBSNdool5MWh9Bv0(ZJ;38Q!XHrlM}#GDBaSzUTcz!?HBHG5A zZetvadr!if&`%NyM>CFj5NQD3crWAFCEzVV*yl559*Xp!eZ8@V@sbcsKkL79niHspzu_9q7La?e{P`X5kz-bvmOR;S%13K7}xU zEn^|-iUj(Jg#gBl67%t!@a|QNleZzBz}&}3I8&ivFs?35|%%wa0rgT zvMU)Ya34wNJ6>T6jzCX0<6YZCN|+CSgzg5T=Wgf$jMF9FHdmw)x8MlOfj@~Ga0K2y zoiYDr_yJH35{psR5|`o#bQT!z#C1UedGb!61NlTa6=@;NLp%tJ5Eh{W?St@+XBnLr zzz^`Q`HV#;fCtRIjIrQekrLj14daxvMM{|6&N$^koCCABG1^ZOsRY7m2ile~<{klm zKha?dn5#=yT^CFOe>X9Z)<8?U^udvqXA2;!HTH zOQJaISwTooLcDR6zKUfqcF2xae3*>|o6y6G-gtwsG6HYjc@#bl;2adZ=BAvG% z^<}>(zWqMNEX0ZM_LYn|XupKF)flt)ilW4790AN_NWAqjga^z)UqD!l@CXYEjJdaq zBH62q!(wcqjTF!buk~-Uc~gZaZV~HSh;?qAwyWK%5DsQy6{dmk9rYbP)P> zGP=e@@igS&l1oMMbzFymv~(EbER?Inu{a(J-uVj1+tUulbGU9igS$^8U$_C7Cs8b- z{k>`zkfI39`kA0?5@AIAON9U?9FA-tRLZ18r*lQS`11Jaur|FBV{K=O|Z6mG>4 zcsbHVI1JZe!YdXtUVc90sQ+cuGs4DU#)lvyG!J16LrysFa*5xSH@vq=)b-j0FgUOA0%IPwfgzcX7RIUM5?AiZlk z98Q<3}4r0Z2cJJOK(nzgrZ3HbWF1Mw)&O9^q%37>}f) zAaNd!g#C=4-XjVUt8fH%-=Z)d$N89tnIe%CQQss`o<(2^>I6{u%kzwl zZ^tqIjPw9Wa*Rab>Fq+|?^{KI@aG#DPr(o2FBdVML|O=cIb0$U#|ep-94!(Fw7Hi6 z;#!HqpB_WFz|-9lN#Q!dfL#G`dHx#4-|?I9Jp2;=c9leu9)ailK(bk)@W+z`A^i&K zGEjI1Wh`+uj#r}%AU_CG?q&P~+AUD{>tc!Yn`qmFukTSn8~i%3eGB6blo{bGPcrTh zI2Z7Nb_Nul!`uVmulNn5-$0!ud<*^vJJ6;GUqcv#tv4~Y&x3zp$3cwS*J8Z_@YVYm z-@FR(0=Ava*n#vBzJ_)~*oJyexMKrj2z@SL%||4PADAK}dU1^*titt$@GoaF&cpSC z@PU>BI3EBm!L^2f`#Fh^qQ50vHk*O@mm=X~=*uNw|1sdQYZ>R?DT;)DL%SzjawuaX z^n`!iqA(Xn;Np`RAH4_R0Hxa)qliDDj6RyMemmprV?L|3IH2 zu^mU?vRRBvQBD%Lj$H~|emUc^>!Aleb_8Qn3x0tAhrUqa0vv%Wu4G(}G!Qm&S z8rMd`%9cdB>r%l$K4IP~{UO?v!~q-6l zfr}a@Ssq~~9Yd8(}<9e`{EVYN^{*Bk=*F|c_A=VQ3u!`J(# z04T4KeG>X)^eYng;|O%^ zVVsUO3Zyq&!uZVfxMl-4An$?VS@1*XK|cW`7ffedI8`Kse?^)J7i?zy>vcE>&cB}V zL5yc4uEg<5Q9S2(k@h1zpxBN61xP=yUk&r%i6k|8)AW(eWbByWmFVVsgc+IVhqqd16 z;Wcv@(~y^hqvkV?>=#AC5hzm$Tu_O?4raFj=*cLVH|xp>`+&3tT8_Kyhwqhf;vd(KUrZb zj=;cd1@!X+z#!T(;SV=6p4=o7iRm~_$Gz1vjAXG$CAQ%R6pv%Pbd^X6MdUBxAk-Ja z6vRVfDvkv7H$Zaw6O5imMIwQIvZo()810Gh(A|s&mx&Z8PDQ>E4nL0ZiiboINKQXr zBE4rNo?)&;UZPzQ4!=PnsT_&)1B06xLkD4IDF{0D5D#W-&r#-)VE81KJR6eW6a?7?;Paf!mS zHNkioN8qW;C6Y%Af>6X903rFm<0Xn1^AnPvAHn$9Ng|QB4M$)%#w|ecAGS&)kM4sX z;9=AsARRo5QR%{Uz6<^GZi(d4^S}chTBfiKN8tZ(O(6XIGR7mbL?Qv%Bf##RjGx{w z62ilXm&AoQ0zd7SDE6bT0#dA5lh`^R_Yc6}gA&ED6VNZ8Ad-)wjuI|LItYKA&v+g( zAbknO76h?{@scBOPC%U@6dqI<#BmTd3V%cTfmFP^7+2y5{QVBb-==~G{2gHf z#g{+FIBW#oJDd8WHM#9U{wk7Vz5qR14jDLIzdf?z&8815) za^Ntu7s8>BGG1|;NC_{!mvP86kxE>SBk&639pTVn#y_U;3mkkhW9kiv4{&%vVK0ur zE77k@T!tg?sJ;IOk0?BYBd`MXp0M&*#u-x~ z2WBAuB+!Ot0F9>&?brP8t$ zU0qp{_*aL;oW8{?mYr5=Z|iFlrS6H+sg)LCtlSzdEvye#miMo%47A{|IyzRGgwQ>4 z>OvTdj99iOk|&F5<^GY1a^_0p@AhglRBMsccQ)Ccl1H%#h20Yz*%D&XQ)yPu(;&M{H7URmxkSJd*jTH~_YDU@iiYOOqiY>V4it+DFtMP7%IVIfzg1>@C`!Oq%H-H@nqIa1KpR9n@-O088L zs#cu54du*SS7|h>^_p@=^%3S;h_j{Ts#fYV92ZQqDotNyMbP(**L&fj^1vx z29p9Sk=nMQR;AHVZ#YHWTe8CLiA9Y@Y2k2X;GEv-8su-&ILauP+goXM*5I=-KBn7U zM3EIO+TeM1-H<9bB2f)xN~PJVH!6OtDaQka%mowU18*Ws} zy2`;n^0(7dND-n@t+f`dLq)NL52`1hG%Cuq&RQGMY|ivGTjiG1dxRyW^xYHG#wtt8 zBO~>JlHZ228lSzQ*7EuXmv3~w30jV1_1k_0X>twY3|ZAXmoFF}8mcr(eG_9&%Fd|P z2J7pa3+uIJeWcR4oYlxj+3j<^WkXZBA}Yg|jhliA*;dg#p&|lNcO7Nwkh2=Y?nS@U z(WsB2rHz(#70A;XIawfWt?HWb`nYX*Dx5%TQn9c;Hql;gmBU0Bx$)mgIhW(z(;177 z>d1(->1{R8_hlm%C3!x)PF1G|W>RjLJ(ZD4xv9%LBQ_~^DupjIXO#b8en^>NbX96= z+-{OI;o-VRJj%%0n$WAS3~h4Q_A=VmTsT~AaOQ?& zPiH*Ke!d6YS==a88@sk$ zCM9|_rUw{W-aSET?n6xWIil_fX&(?=newo#vca}^=|D=9wzq;gG93r0m6Gm>W#gm$ zneaWK;j|4}7m7h5qwgK>r|#OuLXnKzFqe*xw5nqx6DCHAY2=n!MxEVY&FFc++4)7awF-iVf>gWStT{BuI6xcD8o`x z!|I8$l+>`=oC>S*mqbRts%~4K(v!&OmuJ+Fpf#Z2HUzE7l^J^}3~LVy4X3TyOLtJE zOp>j_aJ%YG*Q+8dWrl&O>0GoGg@uOGS?eCbXe!ba9ZkqK4KQdv%EYKcyS!$n?2I~N z=QqoEs7rlP=)-NNaR)9Vw04?p+}I(6wzd_=O|3q(j5cGHSwU-7(s+aMm0>9H=A&%F zR;0v{#^h+i5F$-WvAq_iWZ8yh6~=R4eStf~Qk7dtyC-@p=Z;ru1C^j*24aWjjkF9+ zjkU~qFxm>`jz5ex2b{)dm`d(2dn#j<7*oj|rXH^8YGj;hh0pCBsSeoQ-6gZeVe0{2 z#15edA-!td@xdiydB9wQ0LkLz7a6)lrVI zq|{+8tdE;J;f&Z5)LOWt+gl71F5QJljl=G=lP87;na99ICY$5>>fu<)-aN1JsdkjD zgG!NC6@7L0#M1KE7zX}9hYR=(EUUvxG*YnWd_ zmuNCV-8ncKhmC9az(~1i(_q+EW9Z0u6rgfUGd_G5s>J4;3wbeSAHq1e8n@cxPNug) zo9$TNwyrx$69jJPMw|q3e`aG8sslTlG(GXIQo?pt?Zi>e^Yqo}o^`CP(J1SC5Cm$X z8sT6@ucJ|^kXd(NmQjFP9vm#yYZw^TOI11G?65f!RmN=eq%oqFwSm%HT-~8+Mv5Cq z%r;_rv8sy^6i1{^NHRJ;;?3wuma9-)OmbJ7!);BctJXe!mB+U^ApJ6vQXx;$bV#6;t`7AiBE$npl^(pgrDX>eJ>Za8qE#q#D^ zP6ataJk;^V4~Fe45HYK%jE=P?N=P-$$+!xN5?5r??yQxg3~jiF!BEfZ!F^Mo<9f(3 zQXRkbf?FGZ8Y!Z3{dy0XUO>^z=6N&B?7OQTsbV$H))!QKzEA1TuMNd0Z^S%o|PLWs@GyO ze6vI?*1Sma4B6LdizS%JR~cuREK>|QA=wD}YFS#I#%Jq}R9^#KzSj8`?YQdVVN4Je z6@*dxHf{M9O6Bvr8Dxq0QkiI-Zy}X3!STendSzKcp6CfV9W5o( zjGhWTEUm|x7L1Sk$4tr?@3n_FyX60t2MoC^)Z)>cv z@!_b-SSyXkHsL!w^oPzF|BUgJ#$%h<>$_#glhJt=LE0R?)_8R7M0VDFDq1Kp$1bFJ zN_IMlwMXzwwO<64m&GB)vuDqfSO)|Ql3RGNit9^z)g5m6QVhT3LmVA6+Ab#iZN|j4 zCSps==T!Q}oVH@~(ouC!*j7@~A(=W6)0qIQ((qMTIhqLDNpqgoia$iw_?@~_u<5YQNEx+x!P?(B zs3}o6mY7mBvOF3RQ-1353d_7{%CAX4t0S&GZ5io0ZnvN9$(&e;m!$9PIUL^m^fO`YFT+yU)i&APlADA%Y88E zIM*u6?`&dXrmE{tR&FJjHOWh2o;K<8{kmEoJPa*Q&1TE=Nw9R2q4S__b$>L-n~@IZBW zZDhi`^5*HSuWqmMRt=?=@z3RclToqhPJr?l*F2t1>(Txv_}%8e}7C@hy|{i0l}P-NM6dGlv73RbLmwqoggw-Ta^;yK9%TNU|~ z<~-W#<5(E%#yYFB4rmS(!!&8*WFDJ%N^8?OT3(ZD<0~=78z?o$^%^B4MW4%GgViD3 zvRTCfsjF4==!I4CTx!M|=9Yq0ERec$$LqQiV;u|FuI?;NMm)yoTx!bwI=}3>O)ur@ zLY3p0Jo1#*25Xw~EMh8}l;=JSmzV)>Wg(Vk<9VCB_JoS162B0FU{2JoYV4kX2z<;yI#T2j2cW#^TF4PWHD#^Is!-lNVI&J}!n1T&>DX|pvvehQ zn4EE0rjmnc674oFU)nvPlj(9?nG>QCXM@xV&FyS@t0Fl=LLp*j@|J$n2*G;*NimH} z>9LnvW}H^^GI-FHmCHw1QE>x~;tJ_2t|E6?4JJismNx28=_WOF160YWR@U>1=%#&D z0=1K}Wu>oUp?A5KnMY-+bf^^+zAZb-TrKoDbXmtjW@k7oohh=_Dl4?!tY8I|IzvI?G3 zNWZ>H@l|of_`XWXR2;m zT)l5;D=XJL)qHftchtUJ=b)p~_x^5>9>KTeOnCwOkfdB7v)d~}Wjj+8ky{Z}P&e&f zL{+)DdS$6f$klk35xsBO=?rURrYH-NE2h&}eUZ}Z&OSF1F+yPL&a%j8Xd9kkks|bf znA>RL36j30w$X7k%Jb6lM1RG+RN-ZcuTp$eNxJ#r!gP8d9Y#d2EUEKY9%iE!Do%HO zOtlm3PfB!LsmpMm<;e8P-hiY!9PXSmS*2=+lT*43!+dh&%4d6}e|!zU%Yr%2mhLrm zkXbd`$!nG!WhlCpD(~_J3?)7`4}o}du=?pEUV`fgZ{;O(T0H%t;55y zGUnYgk|r+o_@_4NNA^0sCZgIU}KM^r65ukObx=d6lf49LnCE$_$*S#vht<%K}_&1tG7C^Ky5IqmkT* z^H*74%kkW6Xr#VAtHHZ|t!m7qr-E16=xxKS4bq1U7^#fnb+k$(mAw-f^lr%7QR<&6S6Bk8Xyt<W#j9(zCaufK`j?})toY1IqfT!##7kuXp8TGJYTUUzYq_9NKc`abuEz3U z;V|A(#ZBWtrP<6{qSLBjq#msYR@c^#SBPeAY__#m8}fl{tR2-`lc~EajnQf|UJxoT^Ln&CG`ISAB%O#B`mN&Gk)AyOyVbxX8Z&J@vYzs#72>f zk06k^k2uNr@UJeEHE}n&JmV=y5k|+(1Fm@XGRJrbq8jxO+#)lh!WWpk| zcxy6-(YdjUTSpkiI*3}_L7ZfKxba5@;K@tVY|ZfkB%^lYnCl}>GCqQ6=DNw{8BcDC zkR>miB11$x=e@i~@ajvVl>5eM%g7>aT zFji>@0{2+7nhHZ|xxEA5sAHKQMyhg!bBArGu1qmdeBSe6Nzp>Zk&7RL?p*R*h06`5 zG%Z&t%!FoJlXUXYMs>_xJHnx1d03#wvpD1jt*R`KU>aluPoO*2RLt~Au3E(oCN`(c zRZ_;!S1JB-Ea;(!uRhgC16C}HG*{`A1*(ZwEXG8H?>?jKo}kwau(s6ADtf4ce83Hd zvPM;TF*L-0UJo|aM4q6)mzM2|X3S7RZ9u1H*>NCrPQ9%%j3c#C2A|7`c7N@EMxi|t zH+c4Jxk{nAnJ3Q7G-A!`#>zwc0Dws>a~X4NsmMGc#vDA2u>5%u#yrDVQ5%bdqovvp zpNC;-sm}_-V-}>EmYp@!)2|%q96ih%n8q&z2DvHiBp3}YK6n4-LP6!=M7CmHX4U*<`%QjwJL|-g%z09 zESJTaXQyvniT=&W?yJ+g+6h!ZJB0rVZlg zI=3plZrxcTfQ1nD$-Y0kjA1h7YITmoGrLjb5onwJ8+G@2rPXNcW&(%AY2+P&P z!gKY0Rdy?=Tg6E(m%ZD%?NYr;?<#OFEuZ?fja17`*?=(0ab+e4<5Eyn^P+V^HF`xw z?mMW=&{ssHv`nc{cbg@6B+{!|yp}AV+t_gQMMsOvdre{y);gXDspE)@cm2;KW!0-!s=*S_de0CEgGoA!^ zp_QJ8=>+PeM1&|C`P2q8s~8V9hVWqp3T9QqVFLNwhigDu#>D6ODG?LiRbgq+BEkV*XQJQ9a zkpLrcaw`|NxDHsNw3M~(Vj^jxh1x@mgW4z!6$h)B-5r&r8zobWHZ16KW;-N9$!uKw z9XNDkSZZSvVNv6dJC10UyC7Zq=_QHMs^`h3&yoZ!RGhY^zsCnhSPK;iOMY#lP^~0M z3)N}PcvrJ?)G(&oEvJVg0}{1kTTHA2#tJz~j=U$s?Fs#`>G7lvYXu(0uc=k=>@UXl zw2l>3A!k=86Q+{8%w`@{DI9KaLuI_0`za~Gd-<8TDw*=dXL!w4KkxOkA*(ia;dWOl zKrObsNTTopFG~%}%RSTJs3h8&o-S&!wA{3}BPt@UmDDRsYM<@~yOOSj#(OM(ox4zJ zL^rl8>(#;TmcD^k=B~ncj56DrTI`sTbAn$KL z^tqNVR8|zWTV7lRN%{h{G^99r6wGE3)7d(J?!Kj{4LhyqJGMZk7&@7~!{`um=WlXZ zfft1Kf<6LH;6X+^ZyHHQBP2z9gcLo1lXBNjNL0SKIp-!Ot5$Y+b7F%tu#nzaW(f6B zHGS%hVe-|ECU_fMd9RNuxnk0W&8n&CLT8cE^I=eGR3- zxmj_Vl|!PE?0JjGc(N#{ZE`&z=5h2riXy>RSZgGc?xd9hg=j=3M;(#TBM)hnY{=1K zmq(Lt@o>R*l%Y+;x17gwdGs`-=1%UZxWcnh#rV1L(N>yZjNNxC(1WOOl+-_WGA3ZM zMzedzDg)SepZ3zK(qxQXJY~#c6m3rR7=;|kCX%`=d4C?^v0O8$!Z`bSWyD%QOO)E{ z1HphuWr(LU7I@WEw>~=srz||3u~@XBG7w3e78@Qv0kzL@bh*eSJ+o~tP^Sogv>6a` zJ;Tqag8)n!xr^Vuu%ZmAuT4AvQcqP-tX5)McD@+<4h{8T?$UY1zqAZH!6EPc{mJ~r zv7wqw+%AFw^j6ab%2Mxodi`&3`4}<~HPloc`fVQD${nBd7@pe;;){);3fzX`xR0oFXElRsXP*fEY(ynb`3>3&7!nA0y;i(`)o)#OP3MS-fvEk8`lqSkTqLCXWrZCle zOO&{fA811>9lxNyDJ!jwSUH_>p4P~bIQ?FfFZ0g)rW2-vd;|<*O&zB;9Q_^v=}_JLkPmY+?ASglS_C^V5;9#LU>w$OWQf}tq~_Y zS7;oykB>Sx#>x>34X3k7I}hl^L5RAd8M!0D{{AiJiwrK=stjNCJns8a%D1C2Y}JAz zY)50*yvp6_Mr>SMRfHc2z*_J-TsD?G-nQAC)tC^FChBSIJf4k_t1^6gt1sv#%w4Ps zCPFdh)aLagyi6q48`xP>3N#d&AKUfdwfd^{iq_g1l>)T43~Z~ zG~-7PF71HBM#9q>3pwjgH<>gB)&m@C6snCKzZuq1#(hV&(fCSZlk=jT4J}KM-5GFEK7WugRMEMp2fw}tfaxmv4@5=U=f%A0i4 znNc!wNhTOH+(GjyC`y5>5Rw+NK%eQ}fk;|rOwJf+#ylx8(-0pMTQ9#og$gu}OTCd! zvZ^5vjgQH$gVuBEUd8zFb$Cga-u^W{f{rMrG>s#u394l&sbK{*L9t9tQ0HMy2*k#l zR}&OT)lYRsxrdriHc2vhn@cd>DK{szjSx)6;>Mm{^bf;T^$3<(Lbf7AtF3X#S`*^< zn9=BBwxRh-bSbu4VR{&?#8eIHZ(>T5EwUDHxd!z^WoZrp4(N*P-q$M;-K#~!^vZoi zOiK)6a{2gMDRfx2>vtvkH%ft=*(xF9r=^;uUXc%2p|ra?aL$PO4jV@r8xXlNX9`^3 zY~|?#OO!@1+wB=zbzm2M_0O{kl|AL!8gD|TdqRq`Wkb(%a#YAVzrc{_^D4EBn6ua` zb5uK`;Z|Ujc2=R^ZsF;3tc5c!UA-@5d(7gQLL+-RXN@~?>PpmaJpS;uDk5WgbYMP{ zf_PT3>375TuVw7T?(bmF`4>Gl^diOrR?-MtE}K;hl`oE%dETxwiWJI9i$+GOW7uke z8>S7DR>k-QrJ1_w%7rt22}mQE=ZJwkp(>46+2PFTa3U(rM@^;5lVcKS9V6c$qR5Jz z2N@h8cvo(q(tKX09^{J>YEIkW+HtJA@{;)iIyn<+zO}KUR>PF*U`MqwBI}>8rQxdg zUqeqx=&1@V0JVM46#W-1@S{<{?3yo?4-9OA_iJ>Di9&(@2#+ zeNJ-?6ldL;=BiCRP?pZbtV#+C9b+<6S@O^K8ti`0o6IV>y> z3YbG(WmU~5JCF4QVcKoqg2%PXi2k*KWchLp^jujLYK++!Ww_ z0GtNqIUMVu4?`$g>Qts(HD1uyq-^VytNjApAlt_RGUrT_V4bq)UD4gWyr-|%%onLd z>JZzrDN{g0DspV&wZR(o ztr2XnV)pg$!f}+Y&8q4k8i(0u!85VCz=Fo=)tY&hK!Yj?(Q72h7B2je#HY#zB< z*NWam>~G-dN6g4kS{r)7EjPbCrEBA4sjd$?a(#72>DoA1nzeD1u8oXa$GE$JzYWJx zx;D~Po{gh)ZDf@5Y#gO)(@`H8#5g)9a<0}|bv75G!ga2x)f@DfGFD0fA+*&UxL1qF z1`5mVtK)%Qbrk&-t;Ej;6Y4$7ToYEfT&&Ne2iCCwjLPz{Det7Q3iY04JXSCXV}(bN zd9iX-u5bC|Ft0ourEAkRGB)h&xUOp@Hm`CN)`0qEl}kqG4$QSZIs^B!xPjQ1mYf9` zp<7R9EzFF89uzsg-T4L7qEfjzP_35M+b+nuk)uPox`Re=?$m+ymu1APGqJX2xNp}WG$E1*p0-9-lZ!kmdpmf>4ZVy09+pO+NdulDKkq;Rw@W)Y1T z8#whvzQSenKEmv(76xtcpLHU8xOhi4UwP|bS zS~#j0AJY!*dMusk)=CkqEk$8@1KYEim348Qm7;#DhX}Gp#lnkFtUay`?hYb4j!JBK zctJ=q^J;9Uk60?-nS3{}bD`tk5_MbH>DT zo}pNKToC#?pvY+xjxw~#yXLV+t+iGr8gH}HqM1}c7qu`k&rRIhW*d(6Amc)s{Nx#} zwK6e1ac+L0Ll?C$vB-_-iE|CddXO^5U@@B2U$4-O1^*Gi8!gV$I;YV23 z3&#VG;5}zKnU|qiKW)uWnH!-TqV>gb>cX}lwG(qwBy|rYIOBXEc&B;Njit$Yqk2eFd zGnCMt_EPD_%Tb09_mQDlKW$A8Ag3`oN^8Sc9_=)f-au{bR6V2ZnJc>2i$}Q2e`1qd0d3^MMSt(4Yx@7Rc$cnGDz`3NSh^rUQ5Wrf|C zd&8?h+5H?#R%6*cRv1=JN9FM2k?vu!P9fM%ibS0J87$XdJ>Y&8N6raD6RACBzHJ}nPFIC_pzML2Pv}@exk#1cjoYv z*z%kS3x_79K8cFAJb(ul*;YktS8WYxL$XjCrZd8E98}FTZ76ik5ei-))ZK`a4)QHE z4jK2Lr=hx1=TdIz*|tgazKVw*nS7-?TcvXN2nIVlIxWVHnxk|~;765cwvjnHYhlKn z8NQ>*r#msS{0LoNBEr^Sj10jT^V{FT%EOG*WUerO@|6t zYps>>Wp3deBTpHzF*nmO8&X;u9w@5p;oI8aUf{)&C-s@zy66=!+=F-#u;kEZ_D&Q_ z2JFO7CaU>->p6NO>UawEuBF!u!pl~0-)Zf*_^8vjx0X(Tf!f;1Vcrn-|3IG6Q#R^Q z=}~Q8U0qnh7`&i?^-aUYU<(peCM8E@`HRjSFOR5z-DMHlDAdO-b-fQG?pkY(^{|RW zdTPqoteKmhb8u3tWz4c|$`1USwi& z>-4P8MUYuvGDjjLDh8LQr|LP^Vw?8pF!Px<)PS>mEV`#rj>mv)z4i{2YwnmgEd5Z= zYw_iGZ5E>#N6a7^`9rJpeGO!)PeIphR=^U~7eiqBQJ?3FJwtp786PBCgI)(;`7N7= ztG@Sq(ivDI(ZFsF^v0=uGz)93kRR}ktLXI*dRlBLX3>jWcSSDX*ABkbnipSbgTn0q z=&DL(#GXI~8Dp}-a#0w;lR2F*N8{0z-n|!evIAB=!P?4X*#tO7fd;wMiy`LNc+1(# z9dtEoP+WKW2puTPx+f@-)UYY{-KA!soIl+_A96D7+!NUobxW@AP3VgcWTwQ- z3qStkl0%*Kyl4ZaoCcgpC+*uPvfQAJgcjxrcBsfng$_xp(Mb5aSIywoDkjFeB-nCY zF9p_V#-lrb8S$A_PoPVTtC9>x?v%spfzW_f;N_UXx_+w&bXVq{;RXJFdh^QG7|S#| z)OA$mGOdEcuD5cB1dMG4?4^7Xg0GTWB}``P5m0pN$|EKEN3+$Y!TZvH<<>>lTE222 zEm5`2cJ?~QGYaJu+;9_fP1SPCl#|r9$IwJ2wmiB0yq_9sZnP;qdMSEGNPXyyE;@!6 z%E4S(KBwYPZO~Z_*jR^ez9ZRH9d#N_LyqMf4FBlaabyxPOB}aY-I28Y>QYv8pB=*t*t>-9otW_`y4J!3GEZEE;neQn zSk|Z@mCE-W<16nzA9Wq0qakcZ5ahcfSFSTubeA$a9EFuo=au!Tq;Z<#&*z~Psg6iR zQZrqJ@@YlxJ&lZ~r&4tJm1dejM-DXncMhaYOs`ByFKe;?bW6uAtG21`U0=oH3^{=S zCqbf+ouS^QE!60n5}m+MuPl2i=Z>S@(A5FETQ|y`_^9oMAlw{|jy1hS7&DWvC@DpT zi!Dl=t#5SJSQDd1C)a^lZ2q2Ysjo>_&}A#Sx@;Wt^g2v>iC_eMWCb5~a@GOMjFE2` zI7(#`y@2RQhDt9SxqUu95NV_5gkzORm3;aU>$(w6z7o3O%7#H&y-NdfDz^dL2du${ z@aDEMBi4cywMLxjDm0njM6l`Lpp;aTPOH_|*W~@CJCLaOYCjSsd4CDObZ7-_>X~O=}JCgpVCMa6xz~&6n>y@b_Rt zzNgZB^|V<=Cp7SN+G5qxF1q=~OoXrZi!+ae;e{ zi8>6%o!9XxL#>op@-hz505rG>8#rgt&=9_r?No_8#w6DCV10?*3hhNP@zs^yK1^%M z;B42E6_PjXq_-j1i$Mvoqmh4qtK@2qh34k01NULNc1kkKaGsF|LjP3l$m3)iM^Qcj z=iPc7ukw~9!)2-Ui*KR3<-iW5&~PZVkwj>*$3w>(21z^;dpr!LVmuOiJls0OnMz^E z6vM^k(H3Sg`Y@u>txsN!I8h-10|(6GAVg;*5<3Y8lg; zFcFydX$?vig3@9Wf)?ohPZg0CD}NYDV$M!|ZG0&$L2}k&N!L*ZTTg13QL@c4+BP3s zIb)QrLiI8&qGr1V<-xYb8ob$MJ|2;k>kzQ*6*iL({3;=Hki+!w2MMgzJ)Wn?a;c}p zG@aa0J6@HI+X(f=_|whp#c?NR<)+My8+r*UXFX@BCl0L0)!P?$tj$X0L1o<;Si@0Y z--O-^C8&m!O*u?2O_mc&jH5MHs8{*U<7M_@O#c7)&y?Yd2!L*aC{K}#ld{8Xn4FyN z^9B9b_;ikr;q4|wuHL{4dG0&(#(j(uQ-+~Bb}BrybG_`qn>VDq$>=zUjMz*WL~Pgu zS1@E;1>-GeEhz=zDY9Iu(smDkd_8OAm>jpH?4Y3~H~b=pAF#F>}{suiuhN;I1qP&h*?!pcf)3fQJ;P}suCiMa+JtzGZBHxg)}ELCg6*e0Xpi~%TrGaAU6x$KN4%f`M9 z_zrHVSsrqe6c~CW`0%y@<}($ydUI%4uJW>}HMu}>kLW{7CucniS*K+IMx2;H@(2jU zS2@9i3UE)wy`6}&>U#w{gR z==zpT)^C@_vDL*a^mW5zXU0x5V2$R5kHfU|`$tqgt;jAIL8wLs>taH8$XgOG5r%Iu@BzxG@Bis+@1#_3xgB(MJC8{eolJzyYPS6a+6j6&cue;uqZzH-7xS8r|n4O)!QW5YJ%#}}6 zT^G6ylk<#{ZDiqw#X>Jt`8hKQ&G8e-QfcVrsFh?Zi%MG#g+t1zO4&G1N@QPL;PDa; zbukONugC0qx#8SyP-gqKF3ZU+`ML7GNIq+Y!<9Lx@)FH7iRg_xjS_dkRpXW4UpGTb}EmY%TF_J|R`g6&X#?d9dh!-Kgsa2!04g=UEK+H`z`QO5?Fn7!_>VYI_WaZ*-nT(>@jUqr(cHYaa6jRFZql zH91Tv_n26e<6h*P__`W1wxZ>Os2r$DYD9#}v$VXXI)Gtvzq8;WuFY8Wm36lqRT&|D z`;s1+^PtXDcNI#Y&9O3f*ZKM!4P70&F@|=>4ljzDL(;=@*?COPFo?uVN{0Cl6W$0d0|Cty{w8X5snLkR zs~|Rl(l#U+7gB*oeSDz^$~RCNBU4iThYiEBVr|??=W$R5o@bAP>ma?7j{Zo`*FYlo z{ins$rb?GEIO@m5jxRiYyownmk0+mQVtWp(s|XcM>~0>g^^!23x~$%dc}rg=-`P?x z7Wo=(V7^Q(x~r|LHtIE6RN<@Jv1Ch5?~qqoYv!w$)mLB&i{gOqr6SJmY75*m^^apw z8rJ4udZb$SE$PiMej}-Ro_xmXt2>)@3|6tNvX^CDl{Mvo3H7kQqgT&+O+vCEqpy8?H?nYAXVVVP%ArlOia^+Q^`rG|}2xz2ZC`L*g@jX_+SvEnzk^Q@FsE;7Rh z1Lccq-4m_hdJPNt=nI0n2jJ7J-m}!zB;Ph*7;E+DOBIs}jD?1S{y69X6wfMLu55U@ z2Cmjv(YoI-#ZqP%2ufOF5@KD*^mML84q1v_o?oI7_W^<05Pf}a&43qzCj>`kPq{XT zFHs>ou)J9}R1?BvluU(^6J5x8d@%|angQo_%#U95D+D3Mzdws>voXMKNhXV|4vhbiK^CFf>B{dTzey7 zEwtG1aETd>GOdCu5eM1S4)j%+s#2iRDMEjhU!_dCb6EHsA*SAk@#-iwFCM5+l!E3u zDarbfS44KwSI=<~<5&+A3wlC9aiDdCre(M>@Cd$b?=V(kO=|2jd~2Kj+^_?RZ{LN9 zvVfqwZ7=>=n)M^|hf>&Ak47TY2bMbb^KByxswMQjDD1C^N=9qZae*w!9gy)b!hD${ zka?%!{Gem4RG_ac$9#HHBuCzY(<{6jQ@eFST$h#FN)xz3s;qa6Gm+RPT958k^0cm; zYxN|C0l~F(w#&$hgY3!Vr<+S!X>HKF2hP!A(`hIhPZ`+Q4po5~Cju@^FZGKJ>J zY&>n~MyD+*Lsk72rzheQn$pAGav{eNE2B(sB!G@`&eIuzQu10!6D>|3RSTQvR!Mt} zw1&}mXoM>-)4Vf)t%Q^6;g!0z-U*C%u(g!jP&PY+ic`W@t7x~6IMZKDkW14Jk){Uq znv)LNC!vJ)!N6Qs7~exkk`G$eVUM;m&?fwG5{*bb1#%H2YRhPpHs?JdIBT$iWdpZ- zhvZ4YLd{%M(*tlSb}djIDz$Z`A$zY%402(`Ve;bxF+cS_htiJs4V?Fe5Q-zxC(hTW z4MBg0oay|PWSd%Fs{P=?gziOt3@)TbRi%LzeF`jG-K3=T5&FE8b)?z#ar$JJmG_Ke zTUOK2P(H4x@#-U5>Cj)tJ%yY&X^fAdP%*WG%Xni9yXRmULheO^_QqJd$wiAf;gG3mx|1kSlS1yB@R! z+Xr)^>b@ACVY88;&%{#gbF$OMIgo?7NNwTCg=3k49LzSX6n9>k)92*FldJg=ToKW> zn$BE-mGA{IqiwPT9?`;Vifp8Oamb^Aw!RCuYgl|=J}2e@J=A2ztcD>z4uM;Q_O&#;_f zIo}ECr&$>VKHq|YO@44n9|_SWDMuL>J5K~AA;eXk?fDT!bfD&EoE4f$&@E@z6+`FMX>gY)b*ovz6FNBcCRqm;PUmp2L7B1Y>GAr(xqhV{T&d*a@}n4qlz+XSKf7iW>Gc891jh z2;VA4>GJDX`V3zOBd6L2hFa;AqI__jEjT51h_DUIV@1t>eb3aENw_+;CAF)OtlI8a zU8XbChF0bdKiAS>M2gp$OvuwlC{Q-Mn9`58LVY@OteJy3URpRNWF*#Z6d`Jpm@f}J&59=Eu_B4kR-rKwo zFUOOAaX^fsehkaRnAgTc;%0j{m9|NkxuNkUoC~oHp3@iP#LVO7cvO3Bnz^p1D@}^j z6jH4iGneLAC9#x{v-wzPaeX=@^oeH8R-!tMEj$cW(>CK`eTNuETm@%{~p3uM6wJk)u9af(UBpu zj2VbDI)aw7fRREnQjq95Gp#r9GdB?Pwkq8yJKYJn66d$`jFI-3krwh9Bb~KZoA`RD zjtg69ne4u>wr6xq$AuPl>$1w#x(Zt95MGhdQ7Wg7mW|qK^sNo-K$s0ERCxxmAe4bp zg^`K{!6|hkz*e$<;)iDVFikdUF@4O^i{&JQj0)G#u}On<2vK7%WK?Y`0w>mF?&p)N zdD$SjMzWl}xVfdr{p8)1hc!CPd%t39ZD{4CAx{Z;Z+)Eh6lr>`hnjPs;P`tiPsAsx z7MVVg(xzn|!)av>N47KPJe#G;nVY9>i}M2Z6e_Z^by99em{J__f{4169y50oSEpv6 zzI%QHRfbPBDbGOa*dh~OC#Li>h@%o&+iW%xMM+WAysaEh?K?{rs1{^ZPFJa-4xZ^L z>3Kr7qYQ-b>-E`w{GvLT(A!I;MT1rPWSqOgJXB!KW`*9)rQ0F5KzylTVO$ttDJh0j z6QlfkILhOkaa&rUoS01+q`TxOl=3+_&$6u4u$-sDzRWvwil5>DKV&D{k~;U+2D&o# zBiAb9Ripa2y*3idmHW&}L$7(t%2~pj=R}-(ihvusHC$3KSMFd$uZPhaWmp$%nh!-d zqhuS5d##0M;A8C0oF~s2u@PW;gUaKaiXG*v$T%9q9+b}_V{Aub*c3H5 zE@48{d0Rud_m#$m@+a5ER~j1|c08zz-dOg?g?oKnysCtHO z$%mAC%xbg5nVqS7#CNow6`RCDP#TZTc@SeOjmJje#Hb|pcqot<&lA)4w&>Fv{J{vA z8^L0{ZEVebvCH#sW39cCW3Z%dN_i09g-?W~m?Z z=FXZsNB%zh;K3D(?JXD)xLn5iQ`BKNiHM zG!X|C6Y=QnsW@-6D0bYGh%=u^Mf)F8@!0QE(f8F8j=v!hM|?UF z*ItLTUX8r?Y$6taCK0v&2Jd?KfNluK`QUbcDiJ4uw+;Gfu)h%8XQ5wvHp1MTh)W>b z0nQ_^-3edoKADK=pGd^!YmkorLHuxj(X|KzI2N+!ahwPF2yCwg?^?uV-eZaA*^fBw zOT>-%{S1z0{wfjo0c(Ggh{7KD$8jBwcY=2@^!xGq@?RoOz=FMrxc=8D3mlKb@tE_# z`vB6iF%cKMA7KN-_&xi4_{Q%mphC3D7jV|!Q!(@VNdL=ccba5)~__tIn0UpNhew5QGXBNfwdQm*N1?6{3L0tHSf~eh$x`%Rp z497FSSP)&1KLhzg_754h}_RII!<6}MiEItA?f?^G-Uj`^QdTniiyeG1<7u-OUTMuhpu z_wf4=(PQ_N}r^4U;-ztd9zKQs6FNh`I zD2O|O2euW&G{{y%*Vs`I`+?_hej_*^`F26vd}l!{0FJ`%U6&@}?s6iY`gg<+=*M{v z&L2V@yytrbk=|Vpj{;*r_jlkQIBGN6EimO%$S>fgy9(m+?-s;79H-&9^14)PfV}%b zg#7@@<;MkaHqf`eDCUnB#TH=Wx}w+zOa<<5p$>re+>Z+4NyKS$Um^xSiabJm8fPOP z_9BfBqJ9206}ulRhzovE5NmOK2FC()d%;=u%Yrxz=hr_`5Xb$dAg=fo@?#(33;C8k zh!@W1;JEtN1+fP<_v5(g^Qk!KKtVjdALqXrIQ|PL zyPHz6>sHi-FQsA(IQT25YtWqy+0o$70Cx*`_aS~KgS+}k)UThQEx#J|;b^pd97m2% z#9rXS>F7^ih5qyniRd~4Z4;RKPbj}>iP-cywDUJ2FaH^R1@w2$NW{#UkOSxAeC;vl zhmM7hH=|!U4*3i2nQuY+CEi=nmLWUkghbp595gEt8-P70!VY)>zgNvh-}Sac9QJnf z3r8m68sHg(ec-4>i~)nMNyKBo4T$qJ#AVLw5qIEWggfg^kOP|#&i2@pluo4M0fc!G!dMKOLm=;)mx#ybqMacQL+`+K1HX6UcrnhO znu)gZCgkxOQZaa3Dr(1|PM(0@Z^rL8;@a`nR6KHgD)t?liic+52=0^M?s^OQ7H}R1 z=Rt7x!1e%a?}zPK;17ep68w>Gp{$NWU-oC@GvYD-o#+$ag>Zo(x@LSBZ3D6yC*gVs z90d8`BdNIO6!hUIBj4VGe86$ryOAE?!TGR<>;SMDoOx}D*a9560Qq@$DxN+S*O!h& zoZX&?jSF#|!tahnNI!n>g6t0bz66}ZfnoGV&%^FwU?r~2yLX~4{}Jb1C?jC*62$8? z)D`@`5x)nQCE_Za@5XUQC*rUazHw~fxE8ht!}iY6RP+FI&^}jxAN}8>=#M{}io>>` z-Cl|M{&D0D(ASGH1?~lB_dThY2j1q-qF?wCIQOGo{}?N<|cR&kxeaWl?0Lbn5)D()4~d+Tr=#`#HgS=(qeL75^W5ZvrM~QT2=0yETh!vWbX@h=_;? zVMj!gOhN{-k(q>uNYm-*$uvy5hwhmyh=_=Yh=_=Yh=_;?sJNpdDk35xA}S)HqT+^# z2#AP?cz@^AUT?heQ+0euqBuTgW5G#|(t8N8bK` zHb3|NT+9XTDf~SF_|1S{h9jsn`;AGxBA~ zD)=78TC?~okZ15+0o)xIVw}7S`FtPBjPJVhGjYxZnb;oRZtsN*fN$PIm~-&m_Gjb) z_#AYHBF=Ke-T7RM`S)bvf%DK__`Anna*vt-zW})i;Y02~zq=WAekc0WEf}}oLL2-5{TRQm18%o(qA%YB*#h6r z-@#ve1GiyZ+>W-unzjAc(9Wl!|GWitHdct*P$5R9P>-Xz*liSR1i}m7gnEBFWW04~ z^L8Q5ZxmuR;@<+9@2)3NK2eA}A#-f}?_3;T6ynPW@0oz+nOq2b4`*0&zlizmI`pll zb8!~F{UN6wgSZzzhWP+%>+ZXtj4v(3#rS*5t&oTCZH9QK;JfBVlm%&bPzTq)s}T3S z73DY`ZFeT-ApG6^ZJ3A8zcPZ*>0$_$3VL+;&u>kEo7zp{(*Jm6R4-FFbCp$=Nu{|m-E!dD=?*+WPd--GyW0(=k9 z4sQaP9$#-c>hlrIFOWC5b_v)FWedP5Pom6Q!XCIcfyMyFXH<;;Fo~zvX@|<0sp=5_d&Gz7hVn- zV>k3={M`|<*4;?w_Lmjn2*6H7{LPTo5`?crKN&c*5IY}+GQJjlekSA-d>12p`)d$? z4rH~%A-~Km#BBqG*b9GmLU;*&Km6)KoNx&G>uj_YzUx7IAHvHK?*{Ok0e&Zg=GbGg zp1%_7{GpgXUzdyX@b_5AKgS(~^=C2q=<6ZZ9gvGN@XZ}UUE!O*9A!tm8KB>OA?BJz zC_BCj@q6c`kST^SUhyqnl8YN&4Z1@hGlAEw2tWK<^zVIg@fm!3?3;@#@$IxifX7KG@sLK>Om`5b$#mZv^ly<`p7E zUas38{RR2BYOoMbApMIDD#RK1`vl?*0Cx%Kb^`7}&>mJtpBgU29j`0I&G!e%h`+f@ZExx-7jN5I{_qWZ(VfYSdLEdhn zKaLdQR(vPp_tr}x2W*JBYh$drPh&m7@AEgp9F1>#q%{V4=aKjYhw!|->fThPD1h4#m{Cur`z31tQD z;G0oKe5Zd0@)5p^Uyu60-{XKkA8~d$3UkTZF~|HM6&wBtGW`{h=f0nc3%{3&>uyWM zZXZLx1nka_V!T|A{(!%=+f%VC@MEBR2*0nq6Z?lBrs8_=IOYz>{`kEb@Vx*(1w8i$ zpF03Q2K%L_5nhXZ%o9lS)?Y!#@JsAB?gb9NFTn5ozEqry??HUG{TzD`e4qJ6Dh|O{ z`#9>Xz+8*(*c#^Ue`2rkIMVt%_B8)SdjCMaGRRg>pdA0feh%ShfIkCtw_=a5HU91{ zGO=TVc^%)S_PkcK;ro9PaD5=E!cVYd(x7WES+c}s^@tt=b=2C>WeK+PV&}{tPT%3mQ z!t-;n9dH)_z9W8L{2tWLh3LcY!#s!IPl9&aF6si`T@#o~&jb$R=;pU#48H|?=ram& zExysyQEr5Pfxj2M4Q0W%1T>qVET`AeZpUCO;(KTr*7~E-rVELw=?7?Ee7!S}-xlT`F3R(0`fHlEq9P9HW<_NU;u7KZ%I1>o( zgt?;jMwB1l1E9I+3CKf#!yXfV?|vLI?^TgR#qP;L5Y>U6g9fv-& z1atCf*e^h?+x5*DC-{9i{$6n^=BKw{4#T&{iHN%bYb^9QcfJkl_Pa4Z)8Zko1dZYw$TQdJ3n&_)}1M=7psvD(%J;|fA3oC<1n8; zfp(gKvfhXJ{NigN<9!lFCyfqb5KEMzRe&qZC1k74X$ z>>b<2`m-^{A-=7Fzi1icKG5tiULegvY=1xIf?q(+c@gM$LLbNXxfei=+P)C`;_t3I zU<}~*itP&V+hE-Up9^-xxWM1b5O@0*LI!*> z#t*(r@Ox|EI@dr>xf=OxL8e`Sv5#*?6JrJ6t|QRxK8k(dW9Z-bp4fA-)^YS9d{M@B1#uw3tKpIt8?tkMGBK(;Ly3@jcYUKIN%Y+>7r#tVijuNvCMq!Q7>m8d@Xn_-U9u3OVstI zXz$IT3&MBBb1()G{@lhGzxaI%XnwsJN z3Gr>e6=Z3A$8Cc(0^yCf!#I2%<~)1@OR;}_Ng>WW8vPvK^$72Vv9cw8&)XSogYR+7 zEob0+=s7~n5?{-|o_{0%R(@mt&HSc()AU0q-`?Vt;uYdmVusj5EK5HoE)$oFkBTeB z72?z43*xilbK>*jQ{t226XF_iwfKy;JTNJBXw6<@xLK zlk+#`XXJm&p2(ie{*gVNt;@H~x68jHZWXtPG|%!a^5^DxzCpfuzFA)6wS1d=r~G;O z^Yg9pE%WWM1>QQpI{8@g@#Ko+%H*o#qsh0ETaxc3wSnjk7a+$AItxpKa~F^|7-qm zUMrr=AI$%pKbk+1|1*C&|5yHa{zU$d{O|cw`Ev13@uc{2@s;BG;;Y3C#XZGOi!T*F zEAB03irHcSJL{LEFGydMzA$}$x^ucix>LG+`r>ro^p)wJ=|Sls>0arp(!JAz(^sc6 z(*4st(%sSn(%sWnq_0Wmq%ThoO!rIoN#88qF5W6m7iWqy#9PE!;xzF#aai%1;(b@v(djYi6XNgUAL696 zpAHuDio=T|iX)4ubTVC?cGH#V3F(PxI~_|W($Tb)_R^!EGg>N+5p%=>ajZB(yg{rK z4bc+Ei@Iow5z!Q*;yAHFjEUEYCF1pBNDPX3Vv#snEEWsJd@(Ez7bl1##WL~x^tb8n z(&vlq#EZlO+0(^aiYJP{7pE7Ci+>eE#ggKv;;rey;=9Qq;x*!o^fvLC^t0*h;!g2> z@k8-l@jY>`xGR0Rc(wRdwx>8q94IbK55;`7nb<;XE;bRHif^RnrgM^ar{|@IiJzut zr*BVp7yFCXigVI;r0+@3PoFEkn%LS8ApKK1QZ$R_)wZi`Tzh`)MYWx3Th?A&+p)HJ?S-{X zYn#L&#i5po+vuvWU)^4#gtepCd5hNjp9w>RB?(}CDw?p=!r=& zE>?@brH`k7PoGF1P5+TTiQ$lBY4%K-WnU}4QGC7lck;qw=i)`hPQ{Ch9g7``=VY~P zgKVR0!))X1<+Vd<`_}fW9Z-99ZANYH+U~UjYx~#ssqImFW$hKUJ!^Z_URC>MaZ~XN zZ1BHTe7m@{_-^r?BFS$oeqP*C+*}OS7S#r7b853{N7Rn2Ev&t^HoLZYQwdoYRhU%YD;SmW)Ee5&X(6+SKCFrRBV}Too$hAlWmnfH+y;Z z;%vw4McEG73$vGHJ7@c3FUfYvUYhNc?V9bL?UwDEU6Xt=`BHLi^0nl%$@R&N$rqAO zB-bUMN^VF#lYAxlM)LXO%gLvcuP2{NzM6b9`C{_E?85AA+1s=6Y*p6Dy4ghb*6f|x zTe9WZ>#{dxCucWiYqHhZ=d&+nZ_ZX`W7$dBN3$!kqq3pw6WK?y6SFh2Gqba^^RxG6 zr)TG8@5;`~-jSV_y)io_Tbr%RdRaf4%%-wavvaZwvUg|aW$(#8m3=t7Ec;ki&sJoO z?9ReNb|>)Ivhh57sQQ;SXV(~5T# zQ^ncE$;BIs7Zm?V_AIs(Kg;jUk11YX{5*eMvAkGX99=vo|7HHcbZxP&czbbL`pxu| z;v?ye>8ANMVx#;`#fQ_k7H=!gDBho5ls-=!TMQS=ijDJE6}KgGi_4(0x=?&TTqNEv z-X}W6c(JNDvA8w=ZvO53mi#;U_ww8GA7OiPTmIAhuKdUOo%tR45AvJy@8|dAcjrIJ zTgBJJ4dScfdhvDf4RIqh#orXyi7$z-h;NB6ikpN;k|a$wO0s0bWdHnte7}6({8jlr z`2od&#s0;z{Ex+Ni$4^E`KU#jlEA7r!jFNPkfLxp=VnQ}IA? zNAdk)vbe8!X}U{#WO``&f#RriF#SO?KmBq(lrBjJ(j(Hj=|#nYbWyrEotG|54^L;O zho!U9ndxiOd(-cwx2JccKTCg}en0J`CL!M{FcMmwrCII=#QRHvLrkitL@@s`TUO zC(=)*`)9Ap?h;>1zn*?NJy*P2T$3JGoKQTcwnc5D+Fy!?it~&26z7R|iGQX~rBH2T zKN5c{HqAE44yqkod%Sq0_)+oK;?CmX;?d%V#ofhEicb_*7FQG>Ek0I!ytur$s<@`O zy7)+OY4PFWL&asqr;E=NpD(^pe5$y%_+)W$aY^yP;&a7ki$-llZCCO7+LzPo)32o4 zWzWmD&GyRn%l6J@WUtKj%=XB>m3$-ndUjp*rR>Yu4cS++uVvR~U(LRo-J0E$eIfgJ zc1`x3?3V1?*^jf^vYWGSW#7#1%D$i7k$p0|Hv4RLUH-%DGue-_JF|t^oNR7(M0RBM zn(TmVezqVxC_6AaBztvsaCUokb@tQj@N8Z-kj=~v%?7hs*fmti4y9FSbrL zPqs+5N}ii+nQWGPE?-n!f^B|M%W7%uKgBiqMKGzjG;bFl&p(-eB41f-CAJp7&3~2O zpZ_lZV}4)$>-;zQAM)Sl59D9WFUvoYUz>j_f2R0oepP;T{^5MI_($<%@l^58;@`#P z`IY$<`N#4^z|Ns06X)sn*@wi%CCT{1!j+9L#jc@BKK{5TA-^6n^0APTx2lwrf2$cY zdnda;D|z~5EK&bEJ@)@tsd^+CO;#qyCC4XkOU_KjlFO2}C+|qkO3qH+nS3B=Cm%^J zNb1Qs$-9yhk`E=#(Mk7N)oS#f3 zCnuLDlgTAXBUzEGNj{joF*zk!m%KN5Q*vtZmgKbL&B^J>hm(tvw8@HBG%Ls3azq}wHBY5yyEmAwBaBk?~zjm-bNbh|Vz_ivj%^k04WJTl4rk1*z#HL68@U{`-H!kox;=3Ug6>Qr|EcOnIv;RAG4~t6shZiKfBu{605Aj^6NaQYJ{oJBmi}yke_D?<+PdHg)zE+ZCJU&o8zw^bTW-Vw+;~Lhds*DeW{i zDz@d_#&e2ay;GLtge@ z*oh1WdyyRzyBk@Xz9~Ib?MeQS{det3{*>8$Nw08sCXb~5Z*L;^Cin5~*{7^1^iJh3*}o&Zl{coRq_Yd!vz(mTUCW!(OT@0Ve&O$3hO_eS zrCUrCC;hkWVQxzGE(T{0>t+tZ$GCj^i$Zv;o!{$rfAibjCBV!MJt?rJ+k-!28BxCS z?ozAA$Q8cg0eXWSZ;#;Wn_`NbOwogi%)Gy@(>%P@;l~>mubb8Fj@RiX3^|QP>{mUOL^ z@95|k3RK>PyMA=IlbPA;HQ>Bodp-aQ0|afeK{vZBh?p9u4?b8rML=^<;$9@&M-D*_ zO+QTB0(@qD+<12~q=O(Dz#G3ZmwmkDNe^7k={Fk_Iv0IzC3%b5(Anx)=E1zu$(YLB zgHC~B#tKUpuP3;z$V(4DZv@V>$=w^>(XP+NEkO@}29|gJT`B^q7$NacYkbs$k$+M* zF2a1@efEMD-eMe4{gl$>(WS@{Bv(piu+45v^rsL;%G5jLds+@~fZk7^qGv%VF-y#^ z6L}EZT{W3}%hicD*k6VhE=C-P&Xvr>P%IMwMl%6;kO@GXOti+wsZ^90{ZuK@PtXyR ze4_bvg}y^q|9Ug{wjf9>0IrXz9Vs3Gsk*>wHGB%WAfTM!TwL}HD3;;YKHhaQkyNgT zC4SCXH326-DhY(ick$wGe^F>Z!rvs#Er~*8|F1ci;C5ORPjg@$%QM&4)T9;r{!?*{wZ(VUp=AEeE2`A!U zaNfhO217M$d0@Pu`>yr?w0!jAP^x;>JvbRekAVCqJSA_MzA(b{u$S{00rW8A3622l zCBu)TW(64us}0@@BYX39XM{}z`1m`lco#G#n`0)exh;fLWFxr{CmA4_g+i!qFi`TO0!U{? zBZjdig=3D60s5(-HVsCRyC7<~fo@Y{y6A)SM!3wvLXt7*(W;QcqGofdhj+sjoxGJV z~@@H3d?N9 zJtyh)BVBtQ&~o;`9$V^bhE4`1#@kJPx1Ex4LEcby5had3Wv@Nig6Pp`_t^_7ssPSY z>NBNV8;pb#DfbRYI+D;pnwy+W1rrj?tQ-a+vq7!tY^oVc|B)=IdFrq%IVDXH=`lj( z#Q-b~<|}$scTz4mL_kxR7mLE!0MUY{(^4QM>+4wZHBKHliVsZ*a>^wDxvkX>HB^px zDN#<>dV250{L~iOtx5&*t5QuRK5(e9x)ngM59xJB$-|yX8eNn9XXvoX8D&zw9LV$J z+GdL#da*cA*9F#4-g7jj`pnb=nthv@go)NVC_yF+J#sR;#DstmCOX&T`vf_sc~EYq zDYqO#GHR>DK`a~acE$C zk&SdK0W?8HKtVKQUrn|$7Qzb}Bxc(n{E_G&Jv&Vzh(uCoUoUi^2}vcCrIlezEyGOT z!@`2c+xnBkUDJViM0h|NlX||CSY(xUeUv1#ps*cV2Bs@s(?EfR*Zkye-VoWbWI*$g zqqfVOnt366;`N|<%*lwd1b7V`u??9N*3cj)w>oHLB?{{qiF)eH4jwk*?KO>O7lW6M z_-&2=DrX{>P|1B^e5Yhu5rg!OTvI`=-m`F0Q<>M15u~O#YN|1=hNsB{idIn$U?SxJ zG?oj1z3d%68+(uOak*_o0FH~)B7lJMdW~l&W@A?&Lo_zcOA{=Nx&Zaoi9>?=2;V7j zuvWQfRiEltP!aI$H^$RBPv4}fk}EnXR7|~wATzQx0y`IabF@7Phm)2CJpxTVIppKR zd7)8^d`y^(kEMc;cSw@)r~?@mld-&@z9a$9aEcbd1&x*MrWqjte7HgC4hP7uy+=T_ z3$b7sAq>l*6xM~Lb#Y;-B}F`*gwAiRW@W0%s2hP%({Wtboi#2+5fvLWTDgB!sMO0KDBL^VMfAZA_C{o~>PCu+vLSUOp4`UG@=+50JXrl_SuJlNZ z!GTzus<%wkTdSp{D+=)}9ydWb+@lc==xBr(LKj62=^gF*OddQY)Ypd~jHGTWck?

Y&R*&k3Lo&boa|yZx{HALRrYDyTf*u>Sm*$v5UC9vVBkualk8IAw%b~2| zaY9h#FG5+B45)oBUCI)GZnPIJ5vYG+wAj%a$EZm}mc?b$a zU8yrl`_To^G?C|hz0Bya>TE{Z(r~O1*jYFcC7?t{U5sX89ZzY8bZ~yFvvQL3BO0K3 zWr>gKj+$(l*5|;{Tz?Fk1X5Fyq$8_|s)1xtX6z84RVq-^#;mix4e64`8rmhgVJ9}Q zAvLL!9da*(1_~1cXli1hwPI=|$@|>ep3CacIW>o&cv{wmJ6x(ad8$c`#R@3{H~Ogn zZpMNGMfRY?R0FIzI7KS(x1;2d=aMQ2>&7kW&kw8U%n2S@C|bLy0Q!2q`Ru z62%Gt>X;-gS#}OEEDcafR<;ZX5TWC>-7=NSkcx#s7z14hib>PkrSMgsxuV}4pJEw6 zLq=$g)B#>Fb)au&Qw7pc9*y=gb_13Sw_l@|GB1SpS9dWqtkoG$h z^s)@iF-WM-B8l@vkcLin$qqtNOm?SKV6_{Y-vy{kSGOQl!9Ja{nn~Y4X)faPvG#;i zYZwfbwM@^eXb9%hNXnK>ixxgVgx9wCn1jZTLu9~mI@JrHOQBQ;K|BQop*q-iq8P<& z2^J+^*e$b=G5s|0!UG6>7_aU+8G2STtQejRV-?98u%laz6R}3oDyNy?08yQ8Du~mW zW#xtkiJGqM)UDBfE2NS}NED@HlQlf2jP0cK&e;IMg70JWX7Gypg)0SVpDvI2z60VauDv7ykyE-6aJ*-FH% z|G}a9;j=9%DSP}7&gUIKUn>M$m~%p;QXK5ltZHe@9zo${cpfGwOJgKhMS~n$q&~4! zIE(=$-5LO!d+AWSIYvhd4L)cr1Ib*_@+JY&uV(5Q70p}fGzt*50Kk4*s@;#u49IN; zl(eW&%b;EC_HcUQWYNO>o@wD`np)g$o;co;U5h1i$rh=381yyM{XB%#G2+c%2)Co{ zl`K)0%ualCV0q#^nS_*`5UT~fus-{7fG$XFy9i4^O?(*$DcvwHx)6dOK{!tr1<;BJ z^Z-xkaU=k%$xSs=PVJ*iii-u90=OWTt%RHYWZ6lON2)aqOvC|=9%`LLeOl@F5t?ds zn%2XlYyzD2NSk4oC_*N8|0rV z7xq_v3@N=DN;Cgh2y}FAlrj@Lf=wiVN_kb|+R$h{A82Xs$!SgA7c~nMj5G!nZ~3MTzdU4M zBiu+;F!dIYp^iR=HEJH0GIT33DV}IvE%Ly9^Kg>~p5$k~)N5KXjD0Q3VB3&|^{ZV5 z*h7KLb5aJ{k7tO$kqiOkKO|=O*awU}kgQo-(?lj~)`wA5`4H5U52$*o2w5eqf`AzN^?o4gOy#0sYJD5=ct5@wI`$YgC41(*eUW7669WIPEvP^H1u zM2-Q31`Un#?umngeNuuUADRQwZjZKk7sv#pQ6RM?2Zoj|Uc6|@@Q~SW1EE$Sb)SdU z>AKWu$8jj0bFCl}nF&bZiQ~+o5l17teZKnRT;secg$gxZyYxrV?+%Y%j*;@ zwNM8wm$*dWlsLeJB@WPG#sc&-84FA7#sqFU#^n-Y=yq_iWwPZI+9^{R9Tuxh5oVxF z5fm;U2+LPSuP23aDecL<>Lm(*DFPyg?X);?W~HdymU(cR8do(YA{aS@M#74rBYD0o zH=@$?*vUqVMN*hZLJAXOHy<*4XYWXy1+!)kMZh>+RBYr`z6ir`?psX%4A`MY%{+Wg+Q~i&_^gKMgD; zPxgN!+zJpkapvt5#Hyw=9|fW1CElmZ=GVqBn@9_qSV#GT$^%9sUV3u(t_fvVa|k3r ztN48~)t5`uWC6Cgv68M*O}0k))k?O$gk7=Gqp!f=2< zr)Iv=6idQhG=c=uH6EAEkw^}GN*$lLm?-B(y%9Q;3Ye5;1}>jr?wHA33@oA0 zSmss9HdQ;F1<}E_qOy<~GpRwHC5IcVrNUU0@?m5STz6JG;MG*;PM$&hVUtG=ta;VY@*c zh*}UDvZm6KQIIQAX=Ny^YLAAE3{I@;wO5W&f2T0n3gM__v`yw11W+n8{t01x6nFkK z#v|)>SK^+*+^O+#H-?0&4J7ke2P3P_ye``h5kOU2w=*Bt+I23LL86c&l`fmBb|F=g zyf8xZ^Rb!ov>;DudtOU^>pbodg10hFV$ zXB$*4R7i@-La;)IJflcHpBXO4kHA?enIu(-grPa7|uMETzu54t{M~DH#cv+h4H4H!vSw>>6nzPnLLTF$& zPMVtU$kR#_aa*ENh>=LSzGt|os^hEbI+_vth}i3S@b z2~{!Bj#l`3Y9$|S%>gdx>uhXDHBa;=tot>afAcUQD|8Z&IQvw1Hs|Kmv`=^6D7J>G zrl+v%L#UHJ)`M23$sI-_)RFff_i7JRXE!u#u%y_cVPS_ZR|PK@K(G@Ghl_@c>O5(h z2wUoLI8_)Np$SdOc{)Xfk`insx)Kpd3r0 zgmW0Rim8Q0t*tRW2h=$x>j3>5BTg19ghcX1d%#6pTc`nAU%6GWkg|{rjs(VTrEUFF zaMlf&XMH|nF~qP`)Gjt6u;D&wh$w5!1IK4PhA9Bk2Y5*0ZbCsLjcbn>Dvor(p###7 znipaLlkZW-!G0Fd*hq;ba77MC$v=Wc4RZNX;Bs-GI&3h!kL`K=NKU-7TK% z$pAz3eQ2voAh5Z1jGA*cLNudd`sp`Dxs-H$n8(-9WOoAn0N2s6&s#=!vzQ5?^|qIo zB23j6C018WT~`>0qM&ozYo{ihmUh8twiXtRZpU_3g+|`h0WI0oT5cZP_UJH{>^}NvOG4Vx z30T#{%0?r;jV=5DDI%sJ=vPyqDW|DkU`v(9*Jxv+2_v`*^Gv{(J7@Mu&S!_7ltBeU zGdiK+Hk?gZfNn{ql^2~BsqR*xp7S=nTmB$_%~ zRjNY_hfGEo#MD#-^2mssV2E(W2mx_d004@O0Hn@;rD1g4@hifn*r0ph-+5#$2X7Kn5@ zK~-uH^%5&=tLVCp(XAaWxHhClydskTx^7~V0?evXG@ZHCLswyFPp12(Pk^ydNx&Gd z4QaWZzUDwd36UQGCxeg@*uk$4<0aeyVK;~aIR`M<$HiFM0?Mu}n-)587}~jwEmakK z<;SLJfnEtDn1(jg+D=j)+>1e4^Wll0Dg8!4$Zrwaga&tsY|d~lH%?MkAG&HOM5`u| z2y;)!#!!tUvqf5RxhP9pJ?Srqih^OF5HZ~g-F}$aVINpBJ&Hm=o^0$55FcspUwCjh z^OZIYB=@!zCkxcd60j$rCmd@S(Ws*ZWW?B}^Wq4%-!RdbFp`16lI%T%^&aPm9Ens( zq@jYOuK~&*CZXAYpH^IKE%+jU0iv7Ia^}Kmi$@klY6_R~CH84nti#ZBt>~!$G!byZ zJ_;SeU|_^ei=2|ol{L9lFv!VVrUpF?RA1UI8<{O5<^GzIba86bg<#zbE-5-mgKvce zEYQa)5@uuRfO=^M2BLIF5h>eL>xzR>0`UAOQ`b1&ok=+L3{)`3=imLk_u6Y=qtk`@ ztlNQmd`eUz7POm~cOu~N@pc&;=ixwYUsn8wBx~h<&8ACewTo7i3c?{-beTg1ufq$Z zTnCtfI^O~qZ0Jk|2@~4MmML%mkHk_L_F^blK#dk!(Cu_5yRcz_PcONBAG-HX-dP}i2FxlcOps)?A(tG+DT8cO0|(jHppHiY z)2n;rU~C2aZ}X}KVg#vcb9OkS#1>X3MRgq#6RJZc)UNt$l#Dg1$tROoY#Y)WDdmc6 ztNBhe76(@zVg$+ne-v_#L=!{BNq%#6G%6wHSJv-LPWAYS23{@#I=On9Xfi05D^5jA z_R1;*72%r5Dl2Ius_=4Oh3YUfm5-n`M;@^Ha6RAoP?8RD`lRzsxr`E!EmJiS=gBoY zEU{q@iFC3k%n$PwVP2%5nS51In@*GH9CUc zi0iP_)P`1pysnYmqmye%sp82qy-2mA^_$RDdSo$fbB=O(%i}L<1XvcA5h(lK`$xer zJ9M%r*?{^04|)=OD3$=jU2X)~+jVWsAyS1wqXw1D8v%G7pnNJjR3~x5LXF|2gdRTv zH=jZ8Qn%U4Do~vbsofw+$IUj4c4@}yrb=QGPfR+pw0{~N!=o_RQ1%b+b*IR4mdgnO z`uM~cpKzL3{n@zsF}SkR?XlBGCkea-1C*ZzS#-BoVb;MmmS=g(Cjz3A*A)<8SOsY* z=aWB}CV2aK!^WCC9{50>(#ts;ZcoBtWr@X7a!X$ZA3fH_QvkGy_n9wmk6@C8mR{v%TqfvQf7STE#?sA=$siRfRE5#_(aH^=V3K^nmS3}FKC~f{Jhnufy z(zP4V;6`bjZaFdG`GYQbqSN=;aEp@D28OKvQJPf^!*Z#9vc$yXFo%~pVg;zR0t$=` zV+(Xhq7MZ_I6Z(sIrEdUy4LzE8Z!LM4AD78idLN>=X$M#fM7u;=|s#K^G(VaOqqcW zN80Qe2s(Mp{)+KkjHK3l_%doj(+eq#$Bw(m)0D4jRL%a9PM-Mc1p#*2B|se>cVRIG zWm`+WqeKa+bJHRAuTL`vmuCQK8Z-ITDWtlV!E(jXIg8x+@iv4BVM~HXSa`ZJ#GU}i zR0bmVJua86UOnqeGfa+4Sv~cPC`OK0zpjMkC!}BSq zjT9JfQl*h@g;trxW@d6!w5<{Lmnw^d&W^cG8Fmnn4E606nt*dUEYkB&I)as_w7iud z7)k}FV?(nC2RXBVs5+ttebiz@bUxJXa4fC~O}{fa5dx(ihLdJqNGVL;1hgj@^CQ}o z8G-6i)5m`h3Piu3_~Ho zGS&p!)@Tq&S}-n@tC(-@Niu@dypW-7W(h}TiMY~EWx-@oYDmE7cwQb1%l-ldgDeb1 z*WCg@W$H-_0vmu5OF3rE8*c<6v9&&D1ec9x!_0saR+gKXbL6I0n{qP1nc7?nPY29$ zwcOh=J15+Nu+>w$wt8b^q~7h|^rTyd6h;n#nY;v^%iw0cu|gKOS;qxZK6$G*>zx)0 zPWUweU$Imm{OZ9=pZs~!6mFu*pZzIT-9wQ8g$FiDcvprI@+7O?Wq12HbVqjjWcnfx z$8ghmHMy%mYubS`va&uh*=6ypj^A|g*$uZbdeH-U@gRJEa-`GXovIA=CRP5_u}Xck z3pIPayW#}S(P$qUaQmxH5+C#&3_&kNR#w+X$KgeqvQL0^XAJTfykx6UM6hmubPP*I z3{qmaR+e4z!^p9BDL94pB-!g>lrX^9-)PL%2dlij-c}@dtL_$ zDWrvK(E)Qk94%}5RiBXhZzp<3+Uxp|`lu4e954n`kOsAK2%5y+m|>`OxNw4NS*inS zAM?YjKiP6#W&0qH8vEsb3+**p$0cUnCs2IZU6I35TL!RtgB&l^wfzL$@0X=Q&B}pf zf@9JQg}m?KXMF`dvc+X^0rfRdP1XA?mdP|}2*a#NygTgjU&ffifbI30XgbMr4R>K? zzXna$Tq8@ghMp^tQ2J%-qCU8Q?s?Y-<_yhVGPrnn(USTE8=~*C_uh5Ht~Ygw;AWvL<9OL|ZWBiAM3qkY8Yw@0Xo?TDoLZDoEcI&1kKT)P%`rORAR>( zO)V#tVo@d~OWIKJ^irb15*|lX(EANXqc~n9`&z1(YYUELNxz*MM3JRO1iEwX)S{>kIdD)esCl`sc!_DC&l6CRALO>w=Dlljf>Bx6sO@3@dsiW3KvhZ+v2wsW}IqCOeL%3hI(%Z2iIRxWrvI}f9yMR|^ z*RMwX(5y*TKR4?Ez|PhqQTR;gy))UK$SPiitinnY23@l@RuF;iSKv5My<}@LV!_x7 z@kLkn(FlPQyqcWygw!~~@5q}_I;#}JYc~auZ{B+GK}IK9?#s6x zo}8EQ`?ns{uQ711d>7Y^rk}(0N}z$*T07a-Pvb^`At@_urP~s}cA{_R`pG!ARHPCk zWbVJC>qnO7Mao3m%RTjS+|zL$2=-&@`yD~~G&sg`I(C?_?OVHkN)p9;#IR^I&6{_3 z{aDWHyFQ}o4PHxC^%C!TDX1Uvd%P}X@G5VJqV>(Z%^O2X<%ioXBJcEu5tm?-0(Fqm zo0x``F@wHOnk4l^j%C9@Qal8HRU;IhYt;ace2}azMRF_*faE1V)YaC%+Cl)}LEi^V2&%m9#KRs|v(Srd_HL#Ut(3WIG{9Kp8>$|%rB(tr|8 zJ(=ugNJ9OpL$Y`usX9*z8O@f$RpgApk-P)$n&DK9fR={Ai zF+G}>s@kVlz-j1d%JkO?=0>dSl*b^dexEyEN{fJak3|nadqs4+KQol~)pR$d;-P<< z>pua!Ts9CBFjh8iJHcs{dO}?r%em>ub~M?Z1M8&;*p2vIaSpUB0R*?Q+y|$1u~Dz( z8+0l?!tnuv({6uOMM=;e_D zT)t-Ja6cRuo$QssSdP&CCdVFY7eU>T&2Svn_8y%FEInoIR=ase!v(5qb`BSYIQu!O z0Hu{5cDGUiJlGEt7MAB#&t1D&z#`>6dL7{8#Xcv4=;Ww08c@yy*lwg40aYU11|gZ= ztLgO-N6Pi=qS%Rn>O#ixG*Svo1;I}|j~$f3Ag0TElqjC(X-G?XCEDuR^|8}sZ`$#J zI*}L0P<*9?_ivPRGW2?-kfsCF1vBZ7X66y<$FpHIBLf?1TC%X>!K&#{LJ)Af*% zTGw=YWcKSONQ87=8;82JP8^9^*>Q$U7#z}LLRYsfgJgk- z@F6I)Xe0&t`B4Z@DZ@nsLOj4Mo?B>ELLPVq+XlLK;U^Hw8_FT*;hlDtV3>s#bzfPF7uBPbmcc%9PoLf~UqMk%K?#PDcRe61rEgRXm&#?EkK zMVXc^bl~lZ2m%VQGIVKY1&wuHEMr)9UJMgHhzONvsgbTm`@$%iLD`G4^(nb}tBe|} zq@^(1iNTkVyNEKU7^xM+T`3tEJEqlxZSU%Kw7W{jE3E#i`;v&BW@%qLTe^U;Q=E*( zsNn3(ETx1rc8zWyQgN~TSFt5jC0i{v$Qv{&OEksHqgX30FpOj-Hsf>&v2Vs}F1&?x z^mk0Z2-Yy3=;%QMNttoTkB&qy{F;(7l6C*FSd0kv4v2x#=xa!%+mez(T!Lwb6==#W zB4mzN>e-sn+g(a>R1z)<*qm$91#|~VR~!TBNeHW*lCcT4Z-nl^0Oo0uWK?N~5;By~ zkfnq=OyPqQZH|i%WRDJuM=KVy6z-vDuiy_ONrRHpT`rqbW=c@$IVa=^jNdyny%7e= ztU_7dq)bn8;~uQ8V9kp9E38so)v}EeE2u0zto6Y!VCSk1B@@3Ddfk&-9rR%DXaLpOTPn7ssSE-U|OW#148c9D+j9M&vOswOF5S}CaN;-S4fa+?_{mS zSk82Q;v}*8^CoSnFsC{8WDFVNYuhSUbg_$}UK+vd#;^Ja? z3GoXWeLEdc1ip#ghwH8u_Pq2aP8q+f+a6&DJ8o_x`v+!6@Nz~pG>(bY2E~Zh2P1s* zWRtMkM+ft(gSG|rE0UOoRaK^lRs@Zh&Zs?GYL?7=h^ z;tI5FCT~8tA`T5UyLjs;o@s#w!XeU1y4<0fT7%Vyt>EtsQXPfW4{oZx{uoY7$To^L zFS3oO-f6SzBVEO=OwQr>Ms>?^J^CEjjRt74ZF%c`?ae>N0hK47Rr=T+nd zLsvRLWHssm&?{yV6)BB9gm%>LM8=)K2unaqTmg&6CsVpGPcaxeMm$?UOyR04d`6RI z!|4ZX_!N=Dr9~7;;`Ge7Qy19G(&2Uhg_4;4UsJQGH`ARsE>>!kU5+j`m@6bPb4E@` zlhj^01&;)==>8yQhhx!lkwsTo)>49$yJ9MkXBr=qx1=13-JrT9uA83aW&-;;lMV#2 zk-e=XHc>* z6>5Ee=?Vv&^ORzt2_umR>h2*_5&+Zqrae-ajDw2T1PDA0sAWmu$~Y_zhlzPTLRKa~ zaUK{KFx&~J6dB2@UAYgd!@pg397mZZO${fvSgIRo5V;KsK>ctM|x&QyQ8?McjnOt!$=xa&Zoj4sr7Kx&QASes^~DM>b2LxP1Iz2V%)B{e!kX& zUS#KLKi*>Uf>BW-Jm(ItnUg+I$Npj7s;k_s z>qRsrv7qM9-Wne0_8CkPT!dOmUJ-=0WHmWtE}l+JLNKj(8#D>^CKR}WojHo#DlC2M zh62F3L-JO=sxfvhJ25rs9d9rYaea@oHU`Ovh?+<`m ziPx9tO%R*NDx59i9tAni3xIG;Esu#KEqlBKgLAhOFMDQoMH1|dVT)j(D35n zC8gM&RhC!l%LPXI@=sYX|A^%`It>{tOkkGe_S9BQjv563O2unqD zA5IPO?4ZcUL6|b_FVX5Hj?|B*?Rpg*U4i564`i%|c`74ScrXaF>Wdt*bGi?z_#MPz zVk6FCgGFI+yLsYxOAe5j9|I4Mp%Dxv4;`LadPuJ{aB+mKF^#G^rNNh0LLPR;2u?Q@& z`lN7uPIH5|DbO&l{~90Z{^s9;eNQ1S+`o$FU|@7;YRG^?!No=RCq@S2S+f{uxY)Uf z3Pyw0h{;eZ^#BI1>j@=9W6I{&9@Pxxpxw>10SC*Bh2vPSTqRY^!^zgL0ivRW-b8HZ z{gXk-HrRmzDE&^G65^VrcZH59P)lKJ<3eQ{UK4v(z#~Fe>qTLHO3z^( z&IwaE8|{op=leP~yXB|GUk}0=g_56_C+6ah00v3hGTTOE%M!5~ktg5S^@Qj25&;cF zcXenFLa26AX@I@VxClQ_z)bb)zP%dpA)q$P^fJo`N3c@FF!k}wR4v%OWv!s4%Yq8N z$f^dc(PYqa{!0d>G3ujfsSL^+eIsFpQ$&xzuf-5G9cy$-PmsZU>b}mfv_p#Hk-6>G zxYMzxurvqdUAIcQiIYa&HlI-CK*>3C3N8mdWeL6D00f!sl2Z?IH>W#xh*8I%A;I!k zJW9tSlp8xV6ZA511gxk%1llTC>?p5*ss!!Ul;9BhZ5ezNUk#~3qTW5{2*gXl+yN`0 zk^F$x(@0T#WkFjis)oBIbxhQP`OU>(k%Ci9Q$1x==*qyQV0Q+zgN6Pm$^vy-1@|Of zmnq_~)n-*h$3`ZI#`2D|*NH}+-)gLGO_yDFkh#1)!xk4o?MYtVFhfOCluv@FZZ9KJ zKl9Gr6?h3d4jrC96fmkcn*2On9eO4^E2&5>u1>Et*deSbQ=TctCuVyqKE3s}O6LE%w?33%#zUyX9<&%&yu{yiC z40Ge)J6Mxe!&ze~TW!qE6*=xnOU`Jf`_pBbkd>JRqBjXor)w%wo$UAP{&rfGmJqVd z!g3Nuwpk2A6(576c4A=oFp#N~s)~|9(QG8T@mI&@LOR^nJ%OQ=XNKE3Q#o*1!><-O zV9X%$d69W=vul|fu&;8U5iH5QWskv9ixKGCT+CAaRI<+N6s}S6#=&PsU>>TjQ5j2@ z1odT73HBxrj!u^ZY-t#T3By~AWmHc_lpsGh{4@#4sI%c&)u|zZlO9?g+p5!Ko1{k5 z8FL&;2DWte<1_|EQYt{!<@pg6#w)Ch5xCT&0#H@Stc6SzcoyCbw`UQ46cWXPqJo`w zTCF3L4A(VcXx!0XF>tU?hhWH?pCjb5J=%7sPs%=Nvh4vX#~)g{m>iuB8U3u!hiD8$ zi8aoptGcujn2rKv)YnAUOJ>JsBq=Zoq>4BZ3fXsrvp5kN!#OmK(4b?_aSpWO6zfk4 zY@$gyH`Az7Rn<_5tW-k*MZAUrqIk9gqV;AwUPCSyP^>?xsv0WKVX6%<`?-$@aqX3= zrA!pBnKE5G$7Q-`{RCw3Dk>8_t2C=Bsy@@VDOS~_z=4lcgY;hzQj3Sh()zcmF%jsh zEMCq5p*d0suK?k|$GNENC)ErTzA^&}U!8#e5K^gt3uet8s$>ppJjGZ(Q&dT~boS7` zk-`z!^QC4hhF>D8<~KZdpBd9(?bSJt<$<(Ry5gjdt>&oTek#?EVlWL~8Ff7sL=Nyg zS;}Tiqbf2-m-j}vm9ZIvEo-To$teb&_o{-EB*5qO75oFWq0U!HPi7JRyG=ojsfS+z zs2nDxEK0C%O`y|}I5qw%V$zkR#f_EnB~G}KuOOQ{1Zkwf54uG2W$;z4Eb}5qQbii` z=`v%v5mZb@PS2eNVg+wGMj zpFj)hiuARm#0eOkTmst&!x=jZwQj_v0eSn}_Y~(wmVB+pI2T8+2%@KZ79TEtniLoH z@Z=3W>kt+i`K_3}XpkzB5IyToO zmXcs_6`YRn%RNC=D0F8rc?2#;?hiU|f&@|NxwTRZcfY6ez8G5qye?ASJJgpc4kKX`9#ezkPCQnX;CVXLb#cDtRxgEUiJa<}&)uB&(`#+(07einrGupNm>IC+Vd>8<~ zI-^)(J(jVEc-If!H0<+WPG&Lm3Fqm~m^VMsGq3Ah93ilA*EAol`2Acj(=SJ9?l>Kb zH?!A%WH<*Co{=tG`?CiPzmb$fed_@&KzID%LWimHoj6-57UmqTIWNl5QVQvcpW)Ma z$NUAwDC;dLe!)$jre^KSH6P~Br``vO(9(}Upli(MDctG5C#>iM-*8u!b?K7cpLM(8nJ&7U6i8XDG1 zqhe3MW^)Q|Q=3z(_zCs^0pUSDDaR$&{BlWizV7wf#WnYc5` zxm{{to;j?6qR=kil@UkYOslR)%ey>XyH`=jgZ7Sm{jwUTQHkXvD<>t#jLpqZjOU$!s*89nYx+eti!eW zp|WZm4s*L}Dv(mTAK}|u0SQgT{6KEKwQ2&UzDV541>nz9_2439!t6+18prZ)ukId1 z2B-ng@;pF>69=cKc>0rsi@}03VKt=zOK;;D;Ec5H3}9xgBz&p-wN)>1j;==YQ@-|% zC}ZJR{_wnV$imsP8&a%h){xVII{Rh^O6x?+&j~5Hq^pOLcQ!!v* zgOL$p7|#aI&`T)MYq8ADJ)6wKi;KNe!x0%wQcV;=os<>#bjjTcuQKK&QldTeyv8be zAbJ>Ur_=H9aB^2~y#0|iyVvbQUWJ@H!Ot9%4o>;Cbut_yLSo?(8fB*6m0};8>*49& zJV41XqWKmjwX=}>3P3ZCB7Q2EhTh%3SOBU zjT7ca%b05ws~IQ)sqt73(R$F8nLsrx>Wr_GX<(jkdMMZCg2uWPaIcT4!WCj9s)bj) z-8qne7x@0jW75?X6)4Z(a9tz-qSEC;D+7db6}`mA`a1t}2{TD`V?5q(eGrpOgnW?y6pZ3y6g&RQD+=pA2BSf)j^BgvzS{AW z8%M@6i_V99I4Tqs74V9;F)YDwcVZP@H#g<*%N$sBt7r?U40tmhJ*p|)@%ph`BQq66 zZS3RRgXBdpph0obqNC7CmJ!o3M?~oL%|VJTha97U z0kDt6UcZGsxHD66Y1n=+nnk*r!3f;E^t*xd9$dYINW469n>n(&(P_3uq^N64E8XFe zH`K}AI@ih?xz?u&b$ilaBf9=i9m#=KF-+d_`Eo7jL77_TImGj*zRWQeMruq%r+D@h zM?twycPB6}N+<0>MCF^Z{O}5*E8N`n+Np_B4|9>|A}uWM-A*{DG!bi(aR+r0I~HS0 z;iMqF1y4dw(LPc`BuQho{uE#IVr8mnZ$jIM9yT1;AqRJaC|pblX}K#o3kL?;DAnRn z=boKr1XIe7l^+KOSbAKlZB8h*hxJ4(ALUD?4vxE)@5N$_mJeZvsmK_<+?9=9&bq}^y6$Txo z1f$m$jAKibmr4Ep!k_`taRyV8LabiZ9a-oJV2q&S5$n-}HVN2kV{!|!ASdo9uxd7! z>{&E()E7|};X)vz_F8M5F{@y3OIJ~IBr9-2VG@8x>+kT{0|BY$Q%P5|H$8AJ;J|5? zr%Gn1=hR3?rbReNghcf^U*U|_wDy;YZcy18nugNlw5yuUC0s8z_SYDrTF~ggJWV;a z33O=i>_>u;+2cB=c&Gz~RkyUJA%f)>rtpy|r@<*Mz(+UxB``*$lHCkTTgem;1XB|R z=j?76SxSgp3C5KXa&n{_3hp7ArzMmm-X%6Fx%3vtS9fV+=;TjfdUU&q)CKae(3v8r z4*L_3=p2&-u(V)*St3C!XcgZLNQmT@3~>7B$)Iqa#7k4edlb?pY@b#OdDq951_-i_ zq4S$zUVJDXjY zZXIt)=8*slyJ06mOXB&h@MBAqE6g~oH4-4_%rDL$)OVNIOhZ6th~)LYoOyC}grQ&7 z1Znn65K)ztSXD1#iWL)3zoSNW29!om8Q)&E0_a>J+AtbH10&pgD~4L$$E;AwEL;|O zld_5;!Pae!%?L1|VqC}Z{1lNE$sepf8KxET)H4kk<0JirguG|d4xpn9SijItAs_{_ zH`H={@X@TRjaJ!)b_>B+Z|gmGBcO$LpQKAD6N45r3w{Q!<=a;yn zPInD?-nL270lkzt<(eU%QE~8|2b;Kho&1u_?5rc?cmlaxwb>T!aUU#Poq_JmM)n$O~Lvm z7fYQNP3LfANPq9W_FCBJzy_t+?U-k7DN7Q)pxwkoUx~ys>{ZC=xH`CSysC7EWRl)9 z3^rFpI9h0TSR9)L6`LzpK!^I5|*XPpusKlhWk zP?V&ZnXKWPY%&HJt%32!m0bac6E;cmG557^)82_Z4{N%-Jn8)x!p&T*x(*G`&fU?@Nu;Hfw>Ed zG@hwil#K4}tdEp)T)s?LDiYH3a8qQF|;!boG8a1}}{?j1M1wyA7k}+cH+kr0bq$zg;Wb#7b;Vw6?J1S#% zbRbXhq-l6J4fn)UA_)C3l`7|(Xs}ywwqPbUMhu=BjrMb8=vAfRH7r=kOLB1}VMqY( z)mW!Wc=~cCYt2qx+!-Fj`yjA4?(;M6(SlN8gG>-h zyN~YG#z{PD(#ypegoFlQr*zxT!4G$*Zx7((?SVIgy5l3byD$~&^z=S08f02zykdvDm90gR7#gIC z=`^i1+~wA)iaAYF@)}JSa8xzH%z22KRZS`7*3}n97R}hqdect*s#;b0P1PPh%hlsh{pWee@blFb!8Q43dLS16dh- zTo+pG2bT(~SHzIeH+BlKn67Qx1jz8jP~DWFb+`*}P>TX}eti~AI{a{hW$9c)3^mKr zfKcmKAFjW^bQcK@|R^HlgSj#bBPB&K zT!(f>^c7g=k}Xvb4h~4ST)y|}UyoI!W5KaIMIQ?lQ4I8-m(kG`)bEwV1L_@^fIB_K z0(o62oty$1%o()&NHXW993>195N44U?FfUwVZTboUw%Uk;yF{AwPw>ihH*ZOn>Swe z+^KBgvFRUjl+fhx59jzK z+Chupq=7BAtp}3IOM|0CL6_53x5Q z!oN1R6P=Pf$*8-ESOHx%W8DRpmSOjPV+qL`0h}^;2j|isgM_xQY3q6VuXLT@dbd z-BHl2pEPCs9#Z2qu{t|O=Fm1ne-7Q#N_Q!ynGeVR^)5SWhBYoq*(Wo5*DR{uoFqLN zdxCa~r=Z<&=XE$vSW?{ z?d4)BIDy-pF>E@+sv=CcKPtO?z{tQW5?U+U#*Kx!H+1E~>9;58MwfNYLclRh_|k`W z)0drHjPw$QKG^fF%Qz$>m|J>Xx7saZY?NAXQR?K-;{2K1!s%Ci!nHzh66?4(Zhd%t z)Z2MFNX&}S98hnLBPO9-buegWI7>6{2~*`!A8{zS%apr=>`9U4^%0Twg$lM0@5G(a zdbd~idoZfh?Yt;mMc)cA^#)zvtozp4T| zgVP;&2X+?%g^y#f^i#?mX)MJwQ3)=`zx^60zWdOr|AfOnAqvY6o0oB8&Obf9u(?jVyi7S z0Q^qI3bC2kS$yY|E#)z5cXV>6-Ilz3r}={mk5qW?&n5^_X6O?l=U~guX!er9#lwr1)SY|-&z+(~B&O{+8#^qXRnM8R-@Z=INySGt z`_sc;<4jUkg^2Z>5s5PYJ3VI~4WyoPwGODi)N}sZdc?D7;};?$mG$~xuDOHUn#;rq zFZkBCeuD&LgU4%bnlZPZt}Gg}H0IoYhl#`VnA=ywiSB1Qp#Bowe@hKNo7#ObGBIuE z{IAyVetLS_>G+L>pn*Gb=Frcteso7JZ7#4^Axj~t*$U^(FudM5bl(H@6l+u4d-Ujk z?SRx0OfkGOsU}-`Tn}II(7Mu)(;=u z11V;a6rpd%zDPO?3EC~p%=$|kNqg+b?>@aV(#}oV(z!*vxIqrqpJJrv{ABa%?x&tp zm=u+Fi?BRlc)h9Zzkj(kum0@hKlemxwJgyK&58lo@KI-E6|01A( zqN1qSFajdY0#XIhkPrwprqBe!B{{;uK-sSZU-~HU?_fH-kfB1aQ?Ck99?Ch-L)bosfr;4sLHt-E9+vKyeDF-X~ z)u~q8vYPl~lfb;0mNx3@lZ;9*1QPy`wx)n2yo+m;o~h)eIs9x^Cy{2IZbd@k@#B?XS;$(?HCTFrthKTt8*eN{?fLAK(Xu6b*?DmcJA`5zK)q=H zgS7%*)M&{&hiNqL(eruHSkMv!U)1Q*g~B?Fc&~=2BFIgTFlIF!lZ?rCj1)8%#Vy~x)aVq&Esp@MqGJ}j zkX0MR)_u;cZ5e2KL9I16Nz;$&=O6zhhlxY9fW@PYfU4!%M@@F@e2Ny)B(7$&B;1p(^#RY$H9wT6nyswJrJiBfo> zoBnbK&7fYL;Qy1~%loG1PLlI!9aEO4 zN2^-p;jgbJW^El))=JtG>|z#-jLWRYn9o3_tXbL^tf$qMxDHVIua1h$S``{YUSS(T zG&Nn_uYr!pHZIgISi-IlttWGPR9{c)$+Lj!yL%qIF980hPo4T($^SfO8TTgYk~@;MT) zT1k5quphkR^y2lDZ)~KE1GLa{`HeLlLH`A}CIbDgdSl}yieO*T6U~xe;-d=e=+UgVu96+K)KHbqX?n55 zM-=6z?>w+Rk2Kp#OLVjDQMM!lQm5%#YZiFAw=xnAlc#%GLqx7XmXLqZ=Qhlq;S%P1GJvB z@%eYf`$6|EJTDsqE3$-SWIo1tVTzPiJ8uJOm>yDC;puw{h!q}Sp~)eI_0;gYE)%P5 zfW@YU1i3)w`9fNslXONDp^O>n5Du8=tViqAsc%2YrTN!RVbMKoCB|X%FOl_QVdbF) zAw{{!n=UWB{Wy8k_KH3OTse^($bqga7;~NW<&k-6gK7`FMVqo{mFl2K$+9|h zFW=ROUz^dX@qbvQ!2J7k+7|9*I_in65T8Hp7d#c{w%Vv7p2_bNpt4P57_;0VtPav( zK;pUuo^A0baT(;?KbZ6<|v7s%ZBytLjVVLKy2c4XZ6ZE@Bu&ov^ozs8F74`U|_WC{Grx z;ZY9}_9PGWwP*DkMspPCT0>$LZ%3X-iZ4fX z23z;fxI%RXaemnnSucHdgN%9g0W29vkCyUVYDU#c@dPX19GXX-pqq-XByHo?#HVnUrz&1f_z}js*|&6BkeqT zsd&CO1nJVC1gmKZc92JRCuP=W)YsKi2fIH<^;@i;0Y8K>3M_0vh~1>aj;qA(joHfJ zN?}y{YRq3sxyqTb5=neaS^7eNQ zNm@(ZK3>J7?On+(N%tkUB%`=*#Hx0A6!-O0k&7SE(Tny!#C>2?JMFz$NTX^2L^&Ep zwsc_Thlh!pprMxJ@P)Mt{KY3N=H-*WNK{eT>6+D&63wpGfO0G0Ig4s!MsJyrLDVDz zmES#-FPE@Ow%37XETTwyW`R$G#YboyRucET&LsdhaH>fM6?`O@V3$Y8)KwHz51&nlR}AS=vDVH`v(~u~2sybyQ{lX@H8) zDsX<>)t<18>ahlCs8ov}kqfNtNOs4I!g0;HXjdCzu|Hbp~? zOtB=h9tut`I|(TrEzchK*CygRG+gE_?Gm{la!r1E(RPYloxWWNHzd3f5w|A5I~>(5 zop`A}Iq7ntuhG12_{3LT)1bGqNChwFad(w5L(w%q57 zvnjf9>Df{I0;D7|x+~QA?a#C5T*9p;)6yHXoG6xZjjWVUv6M$mW4Tw}PeG?h@li!l z&DmF;UQWKjt0VHR9T2Pgj9ZTuH-vd0QfU7E!c(Nx(OTXx)_YI)zyBY! z3cUN-^9Og*nmI=&|9;>G#p&Z! zJZ2;O-DTxiRst7P4LP2y&TCsHXt`{4LXK3}LIE-Io(B8q{CA?3$ex=@kTK%{F=}4K zP9naiC(>h92DJ*y2v)?+-%i;@E8_cFqVM4>15$W)plEq|mA7(fMf`xz4tiaK)eok) z@e~m!g3NBrt}Q&X`=OfXA}WT;(CojVOE;2cKhiMS9c+vgmlI^-?!Kq%LCTMOtYPxE z17%S`W~kbop*unt^%FmpNog{i!kPuVN`F?pLcB?e&C=6K)NvNNb73BcQ=9kAPA7Yv z?3YjBL6`meCv zA&mBwipJ`R*@J(! z8mM%bAm?Nd&BkL(60gu~{5rrT)fy*_9gR*%*t>3xf~TVW+@d98*U^6N`v4VfRfQ!) zV;8k?U^b224{8>;mLWQJXjQ6SzXIkvo@IKlvjI9Da+k&`HP9YQr~E z*5>DcTyd$am7{U8%b@Kl(`yUSehJW&pecCE1d;yZ^|lp-FxszNkH!7*<>(TP+dK7B zc;}+@Y)2?{gU5j=1_G1hniUYCKEm0 z5j+)S7{0AJho9Zd^;7wK8^wLXbw(+k$wcFrS}A=$&A)j8CT~Bihv|ObI*$pmrZrb* zT%Z~8r=JzBygm`UHo?yD;_Svnv@@LVr}}>I{H#3a^g_IT0-KGwY?HBmD5v=F! zfS_eW(aY57-L_NovM|8nk5L(5!jd8XnKSRnLo|MibTkRw9zZT3V@{)uluKCbr?G&Z z4IykdCM+L1gHN9veuB>6m#B%#GZ9IC+cBtCbY`H+gB44^+(VTIe+9@k_G-KzYG$ya zY;iSaF^-{SRc)UWT53)JdoReQO^CBDi6*AIhf) zZfSt*WNB)rOTzhEQ^5Or_SU_18Sh^ek3GD{9@nr+)G^u-U!1j&*U|syCwEOuWbXj6 zH#zi*6&_QxlI$NhiLWHf{5<}8n*pYS-+C0mO7hmlL6^uAE!VPSbVUGX4cSHS@1gi( zg^K1(X3xFSbEHAbhxYl;#pD*zK7S=5nzXwS)oW9*W)|#dp5KshSNXZo^bkc-Od3mu z4WqY7=+>FZ2MAjcs@6GNzQ#F^z#OKJ7LrR@hgJ2IJDmU^YV!0wBBsie?s&#iCj2Z;&4KqipaeKQzsv?A}&2S!sHLQ~AOxKvS>+Jl~|*mS-6? z+l0y<;#MAT*C|&#-+(-gcV?%3wA5Fu zaajc4E$>iM>ESwqJJkt&>xdYvU{86f^SjqO)ie{wC4(2zXI^0l(`k;HXOff_=7BL> zQ=|4p8pGTGPZN_Glqx=kARb;_rN$M?A?-4u%CH?2A>RCN$wrD0cbjlc23A;RlvDci z*w#ywQ`+NaQ{*i}QsfVwUC{a>`GdVWTB_ZaD5H84?a33%Ouk5a@_mqL(u7=Cw}|{; zgEBjaydRQfjVg*M8^rb8PBG;H4Oy0~XeT#q<|N*6{a}DdPkphAhwPO;{-(RmFX*T6 zt^FWa-NxP6y_@XmkU|~8o=OZ&9PDKe=CR%DAU)!LSkr)S8hv{z?@4#qz*Jr?mOurS zdh^r%&7zwRM*>tjnJDfwYJlpreQWK4X!Xb2FYKpGNS>ByQp_q!M4i^xjkGsD6=OxViq3 z{p1%;Xo(RlyJZwn*asqyKk@1Mr)h@f10oPo3iE^X_B`r58DO%*gf?EA-GfTJ#F@Z$ zzNmHXUnrV)-M-&kM?CIQ2>)2%# zkw0MGpIMT@6$ul8x9!{|_e=;QUeOR^>2cbid1$t@b6VHXY$*!xe6y1#s*NA;84uco zB?Yx9k#ol!pc9g-O6AS4#Q0DaR}V5mVNVz(cs)uBGQ-e{Q$b{%m+*czMbG4{J2(Bzi4MT>(1!o zv@^VkneANcnRW@%0(*M6dWEZGPq&q!R{@!n@onsEtHfGIMRvtQD=IJA9e$HgrHH6y z0#uiCkkt`oOEnoDJ(`|N`DQv$e zn;$uS@)gSFm-92j2H5OL>?%&8)$NueE6OaN5B>5iWtPhaxK4+Ib=hG~A~eD2@>r8F zTv%#kQB^O^-A@*E2cToDs6`=}kBmvULNeb8sI1YE*DXzElqYO_tF)9KsPdrgFxH$*mahU8M0b9_C7pcay&7s4rzgVcb(pv*QEAbv znKS8uJ+#i>7vS2Rtg6P5%p1qc8dnh2+*Ype6h$>v0%Whp>#|C-VZeNM_-BWSdB308 z&g!tbEUdJK4RG+aQ|R37^p=^t%KrgBQ(7DYB8q1pYQQ6kssUO`DqHICK#E!r>Uh&| z&s$ul59)~0#u1!@eLrFO8S+IB1(=Q`YOE?V{s%Q08#;vYcR?Q3aED>#iboMZQrGE% zERwXEis(C>mba1vf7E{E@5jj>Jrdx$L&MpzMIxIkX;@%kYXWsxt#kHlp|$i;KbIxc zF-};&C^l{V(dL^Z=VNMKg45zk;@2x+5rD9qV4gOv8MBQd|Hu7Ynf+?ft(C%mCSNDw z6MmvnXN;9ADkI8C{Q1*#p24dgAUc!S^GI@6HFSS^NBM^{LYS;i`pK04l_V*!+V}qZ za5=4_ApxG#bF1khZoeQpYB^x$GRpfrr6#kQ9XoF{ZRR3GM;EPY`A?7DOEs!B{N%1N zax{!qnbTu8FQ=8eW`H)t>gsQI4wb`1J!A8RXXH}P*jj#Ol+{6D_WxmHA*^8#iEgXC zEsx^-r&WAcip}jdO>&7+QA9W;d_KP+P&+_XHtHogC}CSh^=FTrzjFs=*Pii{qpj?Q zfVsF*sEvPrKb@#`RMh@fm(}5WRv`G@D%!)Xj_Jv>19eqY$#vx*`%`7m^evSAsTZJn z9UhyRYm}njzEk!tC;isfGtB}-VJfoXX&VwV$RjuKQ)4{N)KGVtBavN?W)VM|LlQ<7 z>@n87c#M0hXEkJVsOX$UYrDH=_7Pg!p9?T~HJTjXi2QNd2Yok_KYm_EG#gYIQa+zv z=Nw7-f{MvHhEq{ENGb^vLA-Bi{4DPu)KE`En?+%}MY*KR$3l)%{M*P+jI|_S0mXU1 zBYg1L;}^&yycpmyci{AzY#7CvAZD4H@Zo_F#%vs5vWLL1kfNiAV*FN5Bwe5wzlon0 z=SZNm3O_QJ#062|s)Ns*As^IK#kEnxci$82&}@Y@jJ)6Ek5USW+)Pha-u}QM3zJbb z&G+Y)@II~04P;5ug1yvh_YJZRQBY zwG1SV$xm2Ep0H(r$__uxkiv2TPuTSI+x!ktD?gDpkC0_aAOq2_Ux#h9zj)bClqMhW zgZCz+?Ylc3ySYsBD@kp;{_6sSdNSb14bY7|5S}R%z==%Ad6X zRB10X1K+QQ;5=WrdF-RUevJ->eVNCD}&EufaB zo^M=Rae(w3VdToxGw@F>y0zxrL)vjNoe{;;4aEovRW`t$E(T$N|(q0kF{Zl@vu{S8*G~`>=9AkuIsqv+e4U?9Rk#@saA)a`ext>TNKv0MxL;v zk!N!GLD&-lpR_N3Tn^2ZP5~;LoW+8+cRFQw2C&ABJhyWjt#O?LT>iL}iKyZu3YeQe zXv*tNy6BiDSF^;KU}lybUABlKhpv2GWiyj)_$76N0+G=j>z=zp)wofLgmik!-Zhf; z-VV@d#WJs+rEz>sMI_f#n#@!8R6a+{XdP49ID&oR#6t@XgfM1|ipiWFyml@;FM*HE zoxAiT`Pf)3ud_wQ>r{aEP*%?z;>GEBHW`^IFfZr{^=;qkM$A)jDn`3=VsC0P@Z>NRl2hj0Z$NlLvrtvB|T{%MA5Mdt3g5USg z!0nVD?x*9KU2zg-0vW%kaL)mf(V}I_i5|gD>)$!4tH_QLv^;-Fk-_zdM>k;gzuB|w zI$DVnbySlJN8(Hn!_^Jl#IJvz=lpv%3DJ=l&m5uUMSW{J}G$ZqTXn&-m7wwx@-{s-p^$qcjlF127?mUGT3*uPOY$k_FZl*6*)j* z9=a7#sov5-%dg=gq3$K>VTw-Z^i@vR{A0%5IVjxTN z7GUQ7`pex1Y32?!P~}-NnnMxyHs4BfXqbU3bq;|M{ywhV%@9UTQ&ynj^#CqFqW&1I z=X=5)KSAsHa4u=PF!ora-Hx6v7q(wSYnGI#t3wtSsAF1#nJF#cyJ=S>M(p`d| z1*g=%-Sr^vlmC{M*w!H>RzQ2~@J#Ps+GCH>5?O2%JHX~vE<|&&4FU^~D2PY zB9*tbbYJfP15$WY8-smzX0zEjk22xnv^6f;zFxqRa>=Pv^tK5Oljv&ARdSx z*Z3U80~0jlRCcJyE_m2H9!r8j$-?7`YCCQl@m)66oJ~}7+YYlPQZ~v&)uN+|c88UI znSYJqz4y$ypsA5C8F-?i{IxsC_r7mVHW_G9I_jRgXx@W|seA4R=5+E^Q5Met2g~=$ z*uMd5JN9eM6J%{4YQMrG)7sG8+>icVxShBkanI$O)9gr)B|j8flOZqIztt?Cz^ep4 zR?Ex$m+}SRsa+{^t9SoHd~SWBqjt6=+Y)7E2Z6NqDwX%pZgmpk##)kt_aw+)uXLZ~ zy|5?isj_y+z>dSm4ap^Y`V=zh-Cqf^g1t;~mlgRTjQg3Is~D33DC#xPJ10LaI&p|9 zM?W|6)UzjOb~A83I;fg`ZzIP3qGYxtpNaB$_dPOtB}H^!8oxl+3I)y*rf#lZMA?w9 z%&48LL#)OJt;9VCurZKo2Xp;3&0+sVVP;is6WS4voGl4eeuhHGa?<;oT)c`XTD!Us# z%w(f0N<%SM$dt_)6m!k=(cB&jyF8{eA&r;U{}il9<*#nuN-NUWh%6U7HJu<;t~TNeShsb`^iWDV9J#f1E9TPdfO%&Xq;!6 zvLnMKNDWrxymCh_(VlHKCbzd*jHx-%QAT^kHYszq6Zc2V?aZG2HV7=rMb`EE*Spq` zbw2P+Fu^cq#f$dn5(1*rHnGlWM6IE;0R^1e^KaE zlPW3qica{?Pr7!DPWXQf(7MQY9SpJV`D(&>V*M6i#jqW3@HPu}2=CMwy(@&Ve&=gX zC)SjSZr0+Ypzs_4@!Fz+wRv~wKm5FC>kxCKu=hpL%QsUV+E2BNbGbfA#`sX4u?k+J zU|s$3#FP9SVxEfTj`gw*5(b>Obb$Bq!rA-i+~dyxk1_`A9Fic0fnFuI6uDELB)eM>2mQQl^In zJ|(O{w~P=b;lGMD8P)vChv+OvD?-Irm*$aA`A^O3#IQk+ABw<_-0|r$ioloYX`zm! zuD-522C(?r08YcEjY&UA_nMdM$#P@`>-)&3I&Y3^({@;|H9#5jlBmh7;y{tGfJ80a;5_)Gjf z=QUWJqR;u&gk zH>WKr$|IrQFY0;o?8o8!ZJKofVhNYvM74`TPUf8;AC%0|1)gcjc) zpk3y6&gyJQ#VGNJ0j%AR9$30Ngt2yTJu+4*o0BG~GEuLNvXSS@Wo)APu~WnIr6f$Q zH;Z!7ia9o?*>#G=ax`340md5MN{Ft(>F40&GS?{In+u30f=U_DDaVTVi0;yGX&-Ma zOA*#An29Uvf4_@n;%*I(snv)Rmk*ql^a$C)D{J>?c%7_{WY2)$M-tiW)YqcUkj?JZ z5PiuJlcAKM*{ZF^@r=wqEf*y%q-ZvEYqLU{Bl|Tx-g!#GST+T7Bz5J~T&fT_;3K-+ z1K5+D(d_7lE;}mgG=-Ve??uAc0&6-^Wx;tmdpl_S0=8X}$Oh}?7jxdcLA&8Y2DWs` zK`tj|W|gAn8U1hxbQ9wiwl-7^RO$D|*C}E-V&KONV7W3=)r-z7v~%m$rQr(Nx#elt zygds=N$fHxGB{x}h|^Zq-(5gbA2pJdL6^k_yX8-sbUR7AGdoMtCfbW<4H|eMgwamnu$7vd0@>+e)T%P#e7!HV~d`g*?{!<`Kn5nNS_4(q6tn|KCrHp ziLK9X<`nvAbOBP{d_YxFA1;6LCS^X)shQr?aBG4$nRM?oSh_ll?oC)m!29*<%U6hZQO#omDuaij?e_mg@p_d@ z#XR-`N;jKzDDU^zhCkS6aH*nlBJPHZ*STVC*jidu zZmMZ9R=b3obbvPgt0KOJ-F7>@RO+kum18epb~Ij8=?d+I%iK;~dzAuxc1JLt%C`+} zKzvRB;{MljE)el{MLvGtgosc?aUwV^Ec?#8{Kb>9DjDf+VsR0*aq ze^*XNWiLQ6w?oy*dWU?1R4W=Y2De8c+ z>$#_Pk!QbCM^!d=rb-r<7+CSlaYK)j6<5%)C0Q{b+PkD}AYw%|G0bIU*X@n17Ny8| zV#=4xh*(KYq}!(G60tB5)rj0&k)B28S$C<4{QTA0pOsC-q*@bY$O@vrNzLy#7Q)DP ztH~@vK%$D;F3QtqWR~4dx~;6|$+-mw@?agSCakAh9rx&nlmep5tA;5mKBB;CcP_bc zl;-HYCRAx&39wIIy0n&be4majr!NkwegF2tw!L%~QUwsDNeUvcr{~Y*C(rlmxcm}} zVPHk=7e!$0&n?KL2h6XMX2-8sHHD>P>Ue*7ohUSiuR&xSQCBJy3Dz6WC zOwE*Z0|aGAtuOX03Sk<3T+L&Ti=;S>Lnv&aK)$27_g*C*7x2x^UNaBJdY2v*6j zpXhavR>|r*p3_Ays3b{PB~eY*<)>%lP)*j8YHFk-%5F)tvW<#CRAJ46Q<78fpSeoR z5X1yiM3jln!pcloTS%uuPXQ(yR8u93veDXnJhjJuTAOPCb|?1$TYm`_)f8CNePLf5 zrt`;|fZN%^YQu(g_S!wRRJ(-w3=~t_3%z*c~w$VB3Gk_XxO<`9plO&LlRVU#T{Y{n?#AIR&_%4D+j1n^+h!iEG(idq|cdkzdJ$FHCD5t zoNk*G>Cn7)Oc|d|^S+6eh?X$%c@Os3GdgVFL3`|`YM%MxCC&u1@z)+7p9o>hW*VlP z*@#AQ*Yz(B(kM1p^Gug3VY>kmzVvpZOp>sLni%VBV*%G&g?S*VA3kOBHCmxw((ufe zMNuZ&Wq-AJ+zr}gw^TFHawu*yAlH>N`Wb$kuNBXbbfuOdyy#a_mIUMxcMRUQnevD) zYltT80mNkl#N?X`j}ozUfJlYLSVVCmnEij;yf2?-|0@BaQV=VP3FgL`8O;hq81q$b zH+&@HS=$?U6mW>?{TU{=1s;6sWqSxiJ z8q+_*Iz^f0%4M#dq^gGY#avdImtGK z{&gy5rKFK$i7BZDoVfJ>-|a{~wl;*x)>*@2_YMJ2*uQ}h4EsKD7wNJ~G0!bYmtaTw zaJAV5G&8#TS&meCpEmd^29&XSaNz0;vdt(zjawwyredXr0hFQ7n}7a(g7o>Cit2G1 z8)OQzfQPI9VegByHbrY#UL#E0GQrxkV*RX3gw0n`WbXkl&cgO;j0P4l7m_MRhgD+$cptFIZA6;On_l8ptB z;NUwFWOS*g5yEGc2D@2l`=VsmgmHe)S%b*P>^4aY7{v+ZE99 z)xYaz5Hmr~G%1ad!K|F$;0iGl4NQlX2^#dcqW$z8D`IwrFlLgT2`<(N%Lq>|&ctRYkPVQv~Y{Z61*h=4^g$;_opehW>XW*(oRxzJ8Incm89E&fM`-m zCd@@Sp?&3VA%_Xyk?Yv5fbONc zHO#iL@!i{oc8qQt5fk4jGA1@EHacjDkwta=?SrdiQ63H5>aemb5i4{L^?;UYqGOA= z_sytVKwK~8!j|tcxPP^IX9IDE04~eKmzunl%5KUe?oiB?A}>1Iv_06IpZE{cay_Bc zwKRB(0xN0D123JXSUXKmbg>HsGVehH_NL?s+i4Xau4f}N7G6zJMqui+2UgK4J^~PB zt>UPP?!P|c_tVMT8#=D6I27GZsoeVfRnqR8Iwm}t6W1;n&zDxV;8EE~BhhHQQiz|N z^YZ&tZ>fo_Q5JLz;zST*&zLiN3t7-8K$K=dAW}+hKXElhN^k49!JnU@8sGZow)1{B zqxG~dPI|%3ZcVYW11<^C3&@^zy1&f|%ASo;vm;~T+l3h%p!kRa&0cQ$UN&j=9Ssj% zofTct(5!r=!Toz^R*u!vx>;n*5s+QzmsNQs?eyQ(5Z$cvJb#SHpj2Tg0dv-{r#29C zoR-O|bQ0|rw{aUP%mmT>s3T+7hA`%MEtASggO?HTGT&Rck$4l-Jd@UL!tw!~R@gUj zHR*Jsk=LFbY?X?PHC~vPPBOlyW=iTdgLbORTJmzx@!imp(;Awg`wDVUB zK2X!5=#)?b53G;hEIWIa=KhCj9!m<9UN4>Kthm$U+dk3~Q;n`h*g`?RZPxDmos@6; zSVOZV4hVCmq*`3YX(&93DBl*6`v!kO_!ARq8z(pt6(*x-y~CURi>MNDlA26CB}y$? z_tt1|jiU9*TB0ZP|3kEHo3u8MtoKtryVRofL-}9ueCB6>C@t0k^YqOzKk}&Za~)Sw z<0JqdHRKhh?-}L&Qs)NoAsHyi@fZY8X8C)h|dxr+vjmPyz|OeY8q^@ASxTm z360-3f}f>KQPaAy<9w$pQO1cV%8qpQ{VJ8Ui|;v4_A5nb1xU&LAd6Oj9|A-yp11`AZ}DmJq^+dSSqe>g7%T|` zh4l$moR8zj^EZBHbL)xrI^sheX;Ql6B5P@~?N}~J_oJTH)_A#3SUM18XFjraB}LhD zjJycDMM@nAsQq2@;Ewf_!Td>2mBd7SaSxuWSU`PofA%xsAPUr1Webf=!AN^rQ#R7|uDVUcD^;eytc{vxcQ3Fz8DvAMTw)n1q zBC&ZUR4lLzU0;1G;vDJvPZP395GX7)%AzKnac-x*=zKpr#ztvrIsO5i;A}YHzDE9U z0U*lo5@=uHn6)T}_7w{uQ_jdDS#K=LI7+fE(s5<&xsj}$Mm%$YWL*rIa%4q*|J#o` zA0ofMB*4X&NyP0I)JV+Qa*q4`zjQP?@}V0--~HiOM;XAsIWfjMm~vC`Qf|zFjOsIy z={%$Q50CVUX>gk&u1^p-U+!~rIr)L5#nO4Ljzp`;lR)A`FoO3aPUPKy|J4zl4%R^5 zuo)8dvnZo6r(5gYl=uJ7K=iPlBofY2fL?b+-EoQZx=hdXO396b`0}r)N3zK0EY}j{ z)%1a#^`&xa){peN2m0?7Q&b-waf_igiP?(1N6G*^fNqeU!~=-T#2M? zCeUllKl{#+URN8KlJpApe63#^$Nk(IEi=*)v{q3TYHgnuIh2K3tEcg9Uo1C)oPn_a zLFDh7MDf#(bV!c2rm|kL29bryDCX)tZt@QD2^o5_oGv!N*XDO9%X^Zq(-LK!v4UOF z$Gv~zx7pY0h&CCs6G&K)w(K`}amxYzAnWi4 zMdS}M4NOV?0F2}Z2|pYQVa!cBri?QcG&|mz>*DXEY}WE(y=+$^VLpObYw7HvJE=}) zi!at9hc2t1MPo3E-j0v%ew6XDd=jz?k`lTaqC3}Xraga|?zL|9lfvi{gF%hL^8sja z)9N>~NQ>D47JE+u23F#80jyKrwMo1;>^46y+~!WSxPq^xLSr`Nx5le!%(nY!G9rIO z+L+oai%2{Cq$mkF9+VY~`>pOV$_noEljsRzgK-Ft7Gk}3Xz^)ch^t#zgu}SQQgh(H(2XBp>oJ;G$E)|u6LldO9q##rFZQttq zC{wl@GG$~_kXL!B*Uh8kRraW;Qf31c@?rZ_ zlEpbv*;S9=X9db$C*6Bb7DX-l6`qHk2GUxfJUn7R3VUf_rGFf_i}y7!)iScugDNI#rRE%BH4#*t3M75u%s3vO9r9CciN5z^kg2=4qb-6$TPH`E5UUx3J|1kNvJPmJHqBYfHa~d~^ z;!LpCf7-RiRm!~`)iS}OJi;0UIh(HY&h4W8*)cUO(k)A;Ajbav%do>CjCfo}9413T zuv^+#=Gq?eJ15k21BouM^j@Xf_rXwAr16T2GSs_^&$=_+2Evy-Gd>6?W~yb{$c zq!%TkT*Cd%3!5p6ampv1%bVz7Ia?)%DlJ2VPOV<9Kk+b~TAfB@dbUc6-$5sYEyfkx zq*JRiC6OB$7BO*u0OFp}Q$J0o73C~qOY!b#l*3%(`6w5dP@$@Ym@ei@jTMyR-6fro8Z?;+lU>bA1<;$;l$svB)(%>?CgK}6rJTFy0!=*#%IbPL^; zJS6y80<6dO?7jSk+3k87NRbFz58&M_(~iC^4v`0_U|_PtdnAMk8%H0;! zso{&KTx;pJMP)>da7lUV5>?v_pPsvpX3#x|8yOz7hS6<@6V28wquUPmLMEA1s*6n| z32_m!=FXK8Pmwj>XP|eoT83Cl)tblOsB)gHxr%{}w!@-x7e#@;rB3Ei;QfF&%s7FB z=Pb&0%!=N12xYHboZHFZWZCOa#uT~~*rkJ;?kv!C5+#Cu^i%!B*Yn&*g zoy&tNW;{Pq>hClNDNY2r-C7rNFOrlGsfp26o=55wBY_FL;uG^1oFlLJu$pN}9PG8Z ztnqdyIC>GaUbN~pd$-ROTJ@@#QR6)}mfA3gEXqb6d2heI{O!F*G;F%NPUk;RWbx4j zG0miUO%9SrepJm(WRVS{4zd~_+!K}+FrWCd>@H$Hre-Gba7GFfd5KCte6fnW#N(J5 zKg42}(a8ctaBCOb$e{@C2{qZuviR{H9zhz+Nqk(vtXQe3oW1|+971-9M+F?h@rk_?*Su&)wZF-HZN-lA0>$#rk@+7S=TISj}Q5^IGaUYO=@ej+fQJ1h zd)i&ciCIt2R93*?nIKm(X>h?s+6mOxGigN#o(MARwTddNp*XdHp2*e%15kJsKzE$h z{pP$$cbuNp6K(EzWjG~xLm+9)>z7uOq|fQO%u56>DZ1rw{GoTVLKyLRh3Fh)b;PqP zko3NV0Vrc;HXjkbmSTw)R6NRlaiWYIG|=jsWm0lTs}0r6p-z&ql!#6DP0A%=BZbJ) zOx89me28yvmC;)XWt+~$O{ ze0o;vkWJpMNkB%W!&yAhCDeL=NTF9Z*Kvvzni`mK4v!ov&~5LBe&0&EZKmj!O4B9Q zj3Ymg;(9hCgb|x7auSiJ0zB4~;QauQ@ZZ0WT_*`!XnFXWfv`_Ur>3h0Z9YP$rZ1_8 zGICewuIkyH4_%?Uf|e>)6f#j^$Z_VWBDq0ZA^6LBk7)aV)!zW?qxMk z%FYPUo*wk|5u&vY%!N{{(Xc-F#xnAwuPCymrLsG!bfqE8k~kpv=myo^bh{(tDAnG) z8X(g1I7;bis3R#R)oM&RO0ktcZPi4Nq#NtN zhu5>s=TT0Ch9|A&8mz{acH8;OlI;MoOlX0jSC{>; zlg@Hp<5K#H3B#>aQpjuejanhKwC;#%AYrZ5`}Wq|`B>ldK=( z&KHvOF(rOM@c9tb-EhLggNmrTVQdL(ld>mq`v%$Ro`v^bBz{~8d^Ww@GVZ0I>gWzN zhwY}^e76$#Yz1-|lS9I`2kicO;k|2Vl6wcu`d(@}pXNS~Q|hz6d)nXIXzX7v@e4|4>>nPs`817v?-JOh zIqPS=`|cj%_bGv2nzlD)(7~HzdwombOR_yM>uW`Jxj`czZ$>Z0Szmv}=tHFWekHI= zQ}eGaZ=6S(x0Jw_qj^*V)cAwjH&AXofyXqyI74FI53R6&o&GL|G@huIn59!4ZfYH@ zgg4yT7^k}M3X9$f9(=f91-%uVR5IUWx{I!I=nJkky*-D%z*_Pbn3$dD7c>Rle&w8v zndI&Jm;43T@PtPJSwXMzPn;zyNG{S}pPN%DOE!Q0y6BZe1(z;T3o`G8vRi^FDqI!fB9hVLQQ!J^aNKWoM?I@8QIexykD@|%J(z`!C$}3L>W3sG~1{tQG z53bCm8f_OQ%hNZ=rk!+l8g3Hm+L}=j|jXa6t>B=j}lX!IG&TYbCWO17T ziSKyx{XH)-u2;v6whZ-Yx-Dzjlxmgr4aje=sd#5P`RyUPZ-@(vX&k)&Yyz?p$3DBU zo@(ZX0%90@%sY50^4ib#i#|?XdzhXY8_}?-iGqc_Hn@BCOvLAT#7#4DUu-0ai^lbA z&*=3uuEUMo=B1f@eRN=QLwnz0H<;t9{KJN zoyxtb=bBvC7L^sPhZBdpE|Gs8iJ4|<7M8auIK3L$=))^7F!o!RU81WJl^ywwN5YqI zzcEV3@6L*gVZoQU)L=!N|M3C-Zt>eDR9O~=Mtkt}3CC%)M{C$^yf%AManiiAl-o5R zkJ6#l8UE(n7!BL(fj!ajMf=FX@8;#v9_AfHq!ad%0&L;2Mm{sT;Qg)SGso(_Ku(uk zlrvd(^vW{InY^nfO6m-WPQ7lfsmALV#_5=;X*7%2!x>g7b%h|VeY{2Ju@ENhcpVuv z`xdn*G@cV`zkP$obApDa>{^0f15t0q*PgTPrL*>lfXL0)fEAS!#WtZ)m(I}2`yQbB zc89@pLFT7S*x73|W8X(ycDxv6NoKJtOT_i}%Giqoi|YRUQ(I_{_5t{Uh!|E;Ve#4} zoGt;`2VFdOj%5F^B(k*i7{xt*zOsHN?OHwpU!d%n41+H2C4uDSibA#$_hZCmm-J-x zAx5W(_l^B-Ic2v$G3A=6TXc@0=wtW#tLJIgG6~RWpBTKZ(T(l6Qy;CO8{3mjs1j!v z80o35M%&58KLvFC9yNIRkw0BBwt61<)6c*c#L>>pfE68UWNDwCDSLq|?Q=7#soF*9 zNal~zQ@4`LUts!+#-?$iR3!8D{y$tLnZGon%99!71ls)m(F&SfUtxMP!!QebGBmp? z4Se?k&8{gXR8x_K>Bys8NJ!s9GEc>H8M|~)C-?l1*@sEyX(m*8G9xQ4+<+d4d0JB#YQW@zY2J~zx4uNc6>V~ujj@7>jI6U8Yr0a;$0f}(_0 z+Xv;)YW+1JcapSPBQI8SP}~jjV&7=E5i#t|k|FGsQ_y5YbcE3zo6hOgcuwY99aV|> zCEN)ER^^SlPSq8r6-=))LuO2D#@wXeEf=)s3%yKN{Fdx5D6k z5}Kj2I`qFnGjxs#wVMGeIzy2seD&>iSI86oWT19reb!k7A8zqjf+iy^PwMdOC0cKP zHjqsYFoo?3X}R^U*H)00e=$;Btm@TbbP}RkMzV%f%iyuauLi2Ld?lDeYibVLL38Lg z6RNcR8OTn5df3MAR{U;Yn;lvT>ly5jwpVO>lUCP13{;6(Y2cIN`)uDwQQTY&msL9X zQXa+WVZ%fcw`p+lF}vd1{H4Hodb+F^vw&??thSJM@cL8Flya_wvhP_N8WvLaeZGds zUl(@J6*p-!39RvN9eh87BGm(e4F*BwcnW9Y((F?bV}7e!N#jIVf|qN&9iZU?8Wl-_FC|G?@M)Qfb9h9~7t z9hj+mUb|}>ol*X!p+&KhdmDU?LU<&>UjD7hQQK&p{aeF~HiwFjBRHo^-0{X$iWvXV zQe#r>ptZC(5%}O8`zIf#vzw(_BD=06DJ}+H@J8m5BXleCUmY{m&iWSwKQDn^@4B}R ze{b$T9Z^m%DHJj7On>((MNG@IL|ftjS*MTa_UVa1Im<&Bb-9L$%}2&8>2UB_-V1Go zk!QC#O6w+Z@9!Sq9d}l0son%PevDdJQs9GnB-YI%AGAutjJ4S8Y%`ZQAb6_<%x$+< zzfR26T4r%!c<@ZHW~VoZ*-I0UzSbx1e}Ig0o1NTAGOpFg$a_sg2P8a}!2e{u zwDbV^pLEXbW=-@sUF^ii9v{a31g}*P*WVEplS$qnLr;wGIuhlqVL-R**G2QbjO#eH zyVWwtW$jNLMNGDe!ny_P$=25@Wzu@GUc+ROL6plmOhQ#0%Cl7Zy&Qkne1o1D4KAY# zTP=z&cYl%3tHd@cL{___#L=DD)3;{j;-cC`+yRZ2o}jok6LBLQZkCe_-hP24jcDXP zNV9Yk_X^!z7FH4O3b(owO`d8Im9+_|Ih@oenZF*eS&>y?#>%I-NsZ&z;N z685sC%JO-@|MYKt=Oyw#SzI!D4kn7-FJPC4rT8E8-ssC?MqQ-$Mz{Kip0-k69Rs8G zRr#3*XlIbEka(F_Hz~bX(M@|t_2W5o(|((emgcd#JG19#4U<54)}y@q$8#RvN3&o% zw~_cZM59ME*vL_X4+B(q7J$gL?5m?M(vDzPZu{;A`Iw!6*mjtt zP9|WD%*y)rBCU}*fGdd#a$iqA`r!%6edPkG$ucQyOUQDkg?_eK5%`GvC^~lV;?BVj?^6jJ76vU2fYDtDLn8td8z^J2I;=>Omh>%1Q-h{v%H`=QICM zfJ0>iUN?JQpfuk(%@3P=kXFdU3O9nC6xs2!qrzhd;_=UxR60lT_z@p1Dbmf&hE>S2 zK{PB`!ZQQaKtJ$G%_6F}%2VcK1T9!;Zq~(6o!3|HHB0COCnYdWrF$$0Y$(AxIyxSePxe0p^`hg%)c z#fsW4iduhtXToY)wel6&+O>^s+a>t(T;$7JP27Dvgpp4ANX32WY!;(|ib{qe$+}be z7azp2+EGUoI{zN)5S8Sz^99Q?&RjsGGiK<=2SOOHK*dWyyNZ5meoj~2)YxdDj zpwQ22JItCG#Zo%9VZr-xv?pHrZu}A26QA=F;d681)&fRvNQYW0X!OnpSgiR)e^x6a zK{l}Z&*>L;f#UBA0iGmHqDX2_hrTN*lDep(Ig{DDToGQo9V%6LMu14_ZqHjAD9><7 zPle3{g^9pMhvg5zbcGAll+ca;DgZvs>*>8~_M=1+=@{_x`-?M82+&BaZYxJ`!N$|8 zUkXh^#E7ydm1yJdKD zuzpl{;b0c6A9ob90`@7P_Z6DwW8cX>OY{8BVqzDk!zi4n7e%BK6U$~3sX{R+)+OVG zGGG@^&UmaKgpn%xY|-tcK4MAG5Je?J(M?*yJ4YzGsia88AHtNICqn(QE;=H4cgnjI zDLYw{Es1H}S^2GVs5>I2xONZadnVcDglJKHHwJOt;Wa(3 zQiiOuqHlQMA<99!)UW4$#doRq6mteyRR>kUdmEJHtY7JP2F0xRDol3VCo{{5=H=gG zYVdh^pPwitHx5?%w7c>z&`MuLv6wE-7@G$tsD(!l>~P9d{4JYKHtsK`#j)dIB8Ia^ zH>u=7#%Vn8KAy*aSQ)~&4=CKOsqB$Wmi>}48_?;0#*9g8Y0aprj33(&2NsRs_l_tk z{dD+19uGeVh!obaoQiRBi2EFHj`QPP2M*EAvxiK`{74ewMJ)=QS*>~G&?(w8Kdg-G zYhIgGQbdJlPuHAxooLk*S);9~F8*M6@MDT-AI`s)OSDGYrS%1$sN|}{M zeKfBFI&oo}LGfGDy%DR3^_aq9EhJ&WL70WS_Zw{%9U|}jc!1^Nd5%)cIE=0L*Djj< zPXvgioN;)#>e-Eyaj5Pm%FZ~T6OB)AW?!KbjVJw7c39;|vbd61<&o8*-0wmO0O4^( zCmPcqznD)a8X?NeXP4HSvlkSCkCV||&)yT=TWH;S%Exjfc>DKfZ?-W(&4Man8Ie~n z>M*Q`at$>U4YLb3?24zGy}V%^O0}#J$ySd9uZ}Y18*b~mJ%o{KD&%e!iB&V`B*1+t zi`RJ8QZ&p`R|!rxUZ90Fi#*W0H-5WF9_VR552nhbu(s{}`!um?E4u8#Mh}H^;w%th zy?k=wPFgdbQREt69hPKEwn?!PkkNRm&P+aPb(m!FQE8zuvGKkGj^NiQl+k#kdsW^E zyRMIynCOiUWq(q{xvUNguW?M1RZoSgML)mip|!NPdR|S9kn$QXu+!do)Gz6jt0yLCwg{;k6G@F0)ZFEjhl8C5de-yp(e{2q?}3zBJsvn0K#z zF~AHPU`-qp<#h8)UNUY9qKNgrlR5h-Vr?AYc5!yJrVVwvl8no}=vbotYQ5>lj!?wf zL_-|vV2_F!f#SLayGDE1qvxsGpsAWzf?|cG1Uae+Hq& zi;gv__j>!#@?BK#)l$cer59{fnvbx^SmBxhkM-q>%~zYTFKG3D_yQ9}NU?%Hsx3H9 zR`BvIzC+eGAS)QUBYziJL2L94CSXx3K=I;^SE})wq_60>CP-m@qmzgGPmM03lZRIW z%s59X^Dw59T~tzZ9{O>Z!^R5Td;2k|37_$EW2w4&M7;Dp55DoeM#F}eu=EF zK#}(90B)7&OmoMO*V}p0{T^ZQA>~ z(;SJcXfia0-J8M}wM6GR%0xZxZnv8;RW@D8>rUH5AD#d)JaqkxU0ISGjhV z#BWo{qJzCnTEpcx>0Gm;LZ>5zP?yV+7H>^S^`ynKaYkuIVSR%eKqvbw+CZb+DL{5d zc5TDce^_8)D)1`h%Z6vtEb6S-vvRA;#m>oG@%UkC;W0+G_2Q;4_K>9FD z#(U#H$BUn^93vffHF8Z7AHq5YJCFt`Jr2_jB+5vIi3njP*ik;Wu*P=M@M}gUJ0ncB zxMbw8fQA=7SBb|Y(ME2x6*im@l@?VajDP5@>ojX)j8y-9DC720l#G1y%AxfxlSRd< z$ni?6LP=dPQNAbtOs(CN?}<}WnFSlmgoI@TyV*HEJkBd=yJ={=k)MRRIg};Hx_Tss zvIN~VM0U8`-YTKm8)qdn9_*g{BHqhOV(+4SGTA&k~jO=D-gR?r$z25)`G zMf^5GFD*~Xd_=L?nkA1G(W>&gmPbcQR%oWes|wotrOhb2pZ0#e6)LrZjpu2!PV5A$ zi#H_!G@ugJF7WT$ZZC6+{CgiY*XeMxBT5h3iW$-!!b}i@f4#d&0nL!UDki;>In3iS zwq6w0E;H80*Laq&pNd7VKgy8~d7MixoY_wLw5W(I*0d!_ zIqgAv$}Vx2*V3LcAwW!|>p|3_gcV%7tdwrH*v;DB3XduJhDDG4yn((UvE*-1ZuiQ# zNd#ukpn0DxquG5$s9{n_&%2zlzp%hxSYE`o6<#_?>_L9E zhYcz1&E3XP=7doljVgpP~1G zQ+)EeoNnbRx6%QCIu6I1OeSHO(fh!KpR6yU_kkTH@R{;W4tYg=Rx>c4KWq6$dQ+x}!tL|pA4rP~zm_fN&&2;ek1*>9a^$8bgJiR)qjK~tzxvlM$agyrX zh6H%Z9)US)H_aVKqA_3>A6Jk${%zZl3|gUvs>!Tj3v1ZKI^-IZE6hZzM1xU#w$Lgu z3^3z6I-Elt>^h}{Y9FNOLmRL2+ly%`HgEK!REo&5WZ)_5uK4vJRW%IPknNGI2M18J zuvY@aO(6%*5pe_{_BRZzC=q46LeE8?r;OJdMq&vAD@+DE&*v(>agJ>2O%<88EL^*E z_J`ZKh}$#BR@Wykw!Kv1ZJ6enS4-%c>a9;CGs9`8Tm5Fz)udW{Pigs?@>mw z%<%@~@FO8Bi2SyS%)CZdhdoWvIZJT_A8Vj2QvJrgPf-?Ww2Iu>l9phNbFeH2D5Md# zF%)53t2%OB2&0ZsQ?0IKtBhPH*o!`Ajm)HI`W+RIt$r*^Pw6@1!XP?_QAJ(IJttOB zMcr5p6KuAHHHtDveSU46Lz$y@RkSE)@Vj1A(RR6L$WHRa<5Vn`Ig;f2ktZIKzhOJg zkMTyL#F>fecYlBFn{2AzouDQ&o9Sv?a)iebMW%alrtYOPrHKlU`FX00$tqoge)rPl^yM_XJ*?rl0W!B zO=Y#9F}7r;WuvH~{s7rSiB(dAS@-SOZmH9 zg=JKi@|h{uWSR)m(Yki%z7v;eUHd#h=f^$#$RKDxg!Ycz7PeYWasC$?VtaP&&TdWe zTd@HxEG=RWu2q;$>@PL!SZ8XA)6GtS7r z^1UB*{dgPs-YIGxdnAvVCYp;XN=Cl-o66tsA}=vDK#pRYC}W~Wd`!V=dfWD|_EF|= znwrM1$0|o$Npvb9DSwKhrN8Q&=F!sh0H0N)u$-ENN*H9rRhISHPBuIvz+-`^{P}}U zL#*pgucKVkObwfD)FkcAk$%TLQgJ!0tzT=Hu%V2wJ)twEU-zfvQD*iV4bQ}Yq!9b9 z{{03Kzts?xO|S$%2=W~Vre7|ke8+bxB3&V&;4{|AyaOE=^AhCX`Dm^EaqN2j^6d8k zeyl5vnX$~Z7WiQ2@MBlWC;kxN@;a_Khs$DfTN3Qn&Ta|S<)Civ=$+*cP;@cNM;>Ca z-|C41VcSC4(tK;rBa~U1t>U(2@Ceo>(dz3QEMbg6Ub^gpKQ5E6_)$e>p#|N-_DFe4 z0N8cCc)|8w8f3>-N^p zJZt!?mMK}+Xk9o_7_yAK^lw^nEXx>5kQI5!Hs7?~Og`gxHIeVud8s~g)4}T)al01o zDkSb71}^K#VPy>*jLAdcu|@W@=W=I0&rAhV0p z0|O1w*@MUnl3Mc2`=1Iq!tS(qSbY*Zl`ZKYOPCBY!?k~1nM+<{zM8B&CmotJ#NtS_ zCh=9#m@E;cqsr!G4SVp)<^?`FEkyB=Zq|j!mBv>kgHa1p!TKA~buQ2KE%Z@+FNDPh z-YGL+h3yMfSES$3W*=2oEK<1bB0JFmC9f;sD}z#I!v8JK;kNWQx)M?8QI$)@KTn;Y zcyF=qE3A%qp0|ndI8#~7=i&`#Sy>`zohYmYboP;4^~li>#$Tf1%j(~caw?l17`B#j zDt`rdY+))DX~B+k$c(oND8Ku+LXS*IWsmZ*E+2!vtVbMs%Vdzj)I`S^d2R1Uukm|T z|7fTYwqf2>X)zbFt@J;>&mr4dYUHx`!^)~3oDNyLC*((O`}MgDioX6;s>XcUW*Z6i zh(a5u)5ES-StOhZ0iQDL$>ltz{|}H^TP3?K!7$L`vk64GRc_nLyK^rCTq@5Co{DnL z_a-mkIp^h?ab^)c>sjSxH_|{!v=3R+w{5w#ve@3e4r(-+J{r&E=Jt z4z?7cRHW+)>;Kz9`TbQIDm^k&+*sNef{Aj`+B|jQJ9|jl)f#TJmDkv##+pjWKn2r3Lwm_P4~`QjW|)H>-XNIsBaobGjlpkdKkjQW;9UPGl zda**;t7QAzOa1~k{siF>0OQ{$rsD+~{~ab@z+wwoJ{VN8-n?tn3G#qD&FQi|AgD=s z@t@bXQszHL`3nAs_AS#(!Yd#;u`55O|7tq1%TJ)$U-ImIV23Yr52fNPB_5=n)64x~F3MbpzH_+TXsQv<6 zR3*$qYvIM|QwnG;JY?YABGoKT2Pbo)jnxF_)*Nx~#(_>?lEuJ?oh31nupPYG}?BiJlkSiHUgb^8%_^I|iu1 zSFs}R^!3U=3&~R)*Ab=pU!dC$cAY4s+V&GFX1g$B$S7>9z$fG!cq*NILcWUC$vwc< zU&h)3Wc&2bCr^@WCsjO@fDo1qcz`-pdu|P3tW#>1H>C|~C@#zcx{NMoxk9=;t>Q(? z(j|!YJv+;vp<25$DjrpI8=RW3e?iqGe;?eshGNRI8rpCcg~(jDP*&xENh7aQL|>pH zvja0Gsg-UDlzq5pi{8I0~U!ZH#%pD`S|b-I%hd&@(m@ZKz!`M ztWEA8d4w`5=K()v0G)7|D?oG%P;R0TuGySNy82Ex>)1)Ti}I98&$i!(C+UQwBxuO;741A zvb1;-Xe%Ox`0j{W7l?R8L+qaDmO?~X;!driu2Gh_C_rS10bfy^e~5$kr0BHv+1ong zQH{-24cnXQ#~MQ!aV>*86?tz@TtN}yH5C^Rs*E}7+%mC{=InLfoVBuNi&<@nB{h}x zfs~W|2Rpl(BYK^sJ;x27jQo5uhP_nE%1rzxXsF$$xQ0Q*G4k36IU$UGQ%#Q#gO`tl zbqul}Zzf$mNvCJGmFF**C>dpi2V2yLGEonp*)nHv`qG7l1KGUoH5-a%0`~a zo^M}Ce&Tk8O&-|Inp0b;M~#HJ3U(Z?{?_m+?KsMo=Y4VmL@5@GvM;}%IFUn9T{$0- zy`GAvi@3#t7&5zNnbqWr$`{i-tcb$S`-E9d8Uc%Q!AyCo?dDA(jC+S~BzY%2))xd7 z`-xf(TFWcE@xuvP%kNZpU1O9UBrb2Nrz?Achb^rVEEf2q1q;8)r2S)s0M|{2Kdj?1 zYcnIkWq0IblO`{8B-=}w6CR2EI$I3Km{{p#AYz|M`A?S${ z(J@6CkIDJv&e3{ym!BA?yrOOpP?!c{;NL90&eD2zx1PqTL=#wd;nJz>I=trgYcxMA z`=|*6S=Stv;bt$7dLk?=eJI0*z+QIjhp%VQUiKahSI&KGlq>u)tLQwf+xHrHbWZGH zb!5^yu!9-%>gO*M(2TjyK<~`M7K1^F`#|7(yFGvWGL3B&6DlY$66T`)^zEK~8)-j% zzbTg;j!Sv-6pi$}bu;9iX_sstH{d8^!%;v#0X7|3L#go^|F( zWu5nfw=*R3r^kOQBAFl3a_KQBwr!W!p{f~J=RbV9)3U~l{V-sIetQN5h8D-5LF|sLwr1e7gihUl5HI{t(8_{|p0 zFVP9@Q(C6gVRhNq<0u{~bEcMDaBD3*htL`EkQKYL=nHC~FJSp8xnF=f#dMD@bD8vB zQ}+cN4FVET|BPyemj34RsWl$ikzIbUkM8 z#EYcs+Ip%<&?%~GTRF$7+KBH&K+8KfhmfLr{be%j_9SxK9d+TJCa8`xJbL1;i zPt$nT)es}yp$TqwBLuV^6(3Kq13t52#U|PT*V9qy(Ntq-Cp?;9-|||9tq1byzQA+l zTp+TH@%?gQ&J7yh=QZTcmO<9oR5?)<%B%GK60oN z$PS*IgRBmo#g{O;z*l_TdizT970nb$qb!~QY>!PZ74TD_c6Mii3@-&D=2N?p&QMmT zxsU9!`oOn*JV1CBgOw=v@Z1Ze?G_3>+Utl9b)->!qsc`JVY@=Pq@v@$9HE)~Qh>^D zRG%uUhqm}`BjEzoDN)TIA*NuU$TW48LKgPJN6w7A1_ONQ; z;O!YjQbjw<=h3*n?3a;PJXnmU=j}>|`pbz+%Zb_=P|2JnP{9m(zi-8S@=~v8s3azD zoMwQEjwPyWsdnwkdCDQYs%83*s*S@cN<|sq13R0nB3}`zP-CcV3|n^Md1Y*@lXXIM zrSc~#gO?e^j|+eJV-w}Q+vw=jjUa~AUnffF9*<5|H(Kw_pp(@wW!|vmCqCSpl486H zC+wS0o~Fg#k?Se02``qCUQ(eqa#*hmgIdLjz#lE%cr1tFwzdIcTq=BQO4NpsXUM#( z!Bv{05k49F2S=A)!f0CYJ_MNShgup4ON#u$*Oy-7 z*^tf}UW}w3+bBvpl<~wRijul0M5XjVS;E8F^?r}lS6UdnS3>ndGk*K_5Y-EHHKQvH zNeyt}u>~v512xw17i*)8Z00lMR!~GyYNV(J}Ij(MBda zU9`XlkcGKm=FT3q?d(`*`?=5%dvnwR6^euWX&VLzqFjJInKz8 zbFkjqiG!?3%(Q~GX2i}P`ubU7cT=y<}b85u3N}3Z9GJ zd1#p)nNRmcdic0>?U5~m!Rr^S1dsl4S0?30da7COhA+I(#o}Bt?!XuPJNHXV|h%KshwDxB$&&;5;->Reg zW>oO&1Bi5*pMCNGMLPX4Q1#4suKr|4{c?(xAJ z>1=*LNn|RDpswLTYaLb1{nKk+5v@@+?H5E@UH!wHEcGelwmiCp^>~-m(=@LKnsQCW z7M|Bg?)kkx;xWM>Ek7oWJt&!i2V9toXb!OMwapZ{0exrRqoU42}O0u?AiQNdCPSf~}M zLXc1tXo!gf0z^pU(#ml%bCL`sGhxn5E(jDwd7)~-S`;r3q*g2_s4Y_4V!6fuQNmU3 zw}4zL1cV4meb?IOOy+X_gU^0u=L1h3KK*9xv-i5~wbxpbTq|BA_`-OkC>_*;9w4Qy z67b`Xdpp;%t}-kl_Xi)qnL>65aD!v{y#zelbu%`fVb9hd%@wm(#IqVwlnSCI!2WID zjUp-ygt5&o)|^KZEz)z)U`6Tm2DJlII?S);9D8vXn_)0SlwN7HhZoPQ-pYHpq@HNx zYdJI`TSX-k@TQNP_^6h1`laDKjzn!oMs_{X4at3zZ{Ei@BxT_=HFfF0pBi@53J z6D?YRu1?i=K}WZ4$40%hjpNTJ!pYYh11h_^s1x>*Z}!zD5Oq>GRaHGJI33RdiH(8gd2-=&2^v7&;VHd?4%Atg^+YY~7}Wvz5O%KzEyu{J5v+7V*0Xs(%O4Q(rBfUdwvw$*|vH z)&<(cme-45ueII0yoxpPQ#Kwb?~x`VT@^T{ZDd_FEsO|TGDy>UfsEBpTE8MXU_5Qo zvMK1IAuD9vJO-a8F#}6Wp**{SnU?50O`h5AG@qwuBKT%MDbkrZy)Q30ut1%U_(eWv zIwErk2pIM*tu4Wd_nOxK3)a#9hq!8PQGf^6>xOw1T!B9WQTdgYgW6|u&`CNZ{*#1y z=)O7C^$B;7oOz93Fxc&>pOLHJSAefR^zWsoIqv^G`W0f^C67o+Pgm6|8)%e|$7f$; z>-B8RU%+K53Zw@y=-|P_w{y>*=VG!mXl#b3dkpdA&mHiNC{=uby`$%2{st8$h%SN9>_oJgKIpp^P5S*}E?;dGeqLG|2# z-L%L`o&;)&J{WuTViNt5m(VYX_!$Z<9QYm1_KBzYcf9<)ze5zMpyiN0?dY9D(tD-H zIJTY}`8!e{v2A+U)kj)w(ef8WMD$7&&BKl)o3cVsvLG)f@M%U5@3DomQm-O1>6h-k zYyvCcuIn*yFLPgu!Abj;@Wz=#6G%t!eA)vxj zM7KiPgqy_d$@zeoXbVo5Kz1a~yNeiQx6b1}&l&bNAktevR zCjS(Bf`5+Uil))u)5KYNt-(p2eKc_cpX4_YpG$t@Kgr-m|K(R77q1Wg5=EsPzBp7i zsJylWdGyJfMptsB##?r(f>Vq-n@;&f^AjB9EQ%!3BQ$C*l$Gxd7!Im32*&B5!;r3}WOmLUlxZV=o=cKJ=TVi=G&{pM3JMZQQ zZdo*UXrPcAS16zYpK^7gNAx9oFPbWD92K1(!2K+vPRw$BKbo86_7~`iRvB;;mgI@K z$R9*=v$>zC8ZNr4@82ln66Xc}7R?=*@AjL`FKr)K_T-{y#rs0}F3!RHJ(@ep?V@+3 zl>AaMFBaJRUGMbY%r<{HAX7Z(Q=qB9DQe-_E@n1-7)c%Eb$jqbIQg>+a-65ir>^Fh zVMQdB9)r6Syb(jT!2Qq3CpfG4k4WMOr^A!(qDGDGTsJ7FlHO4u@6xva^4(1SD3YAz zZE!2p`oHteu@(BKjjYBBp>vz~Wu53Z`mbnanzz8EyV3#;6e&E`F>?=Fzkf$_GuR42 zto%*}`f=OUA67DVCFH8nk0^h+cIRJ3hm4P-xeaRl4!*r=4NLoZQ05S5UW9Kh$j9d}d>)F04JxSv zA(Qm?Mz1xy{7pZ_uQe;pSL!1vV4-1^T)0!fZgr;5TUrJm!%EXpc5Cw}Z5L;^Hdyio z>DtUNu>o=^JS4oKj!&l;n9C;tupBkQ+J5zkjV!BiGPhzo~ies%U3zi^cf_7@1>vg zzDE97=B?j|3HF=uZ%{L#0a%i0Ii8Db!KyJAT{_Ck3o01C?)1zT9KUUWTvZb}(LTF) z&)6+Y-fHb_%29hu42l^IZ-JgZOw}v{AoGxa%oi{Dx0y0)131}}NfDfaeT{U-L(4MO zvhLU(6Zi8t36dVaTcz(&*zns4IGqtaAe6qzWH8078xF09?n zdAox_zS}4&aFmVk26*#Q?%jr!-AAZ~V^&_b16;##C`hIL=J=9Mng()MW!>8BNg&$c zFq#z$#w{JPrNiGIbCqrBkuaXH-3ATBFk1oHFS+H<45(vI`Z)Uwjst4K$OH9Khs(S& zid$Nw>F4bmb(%H((J-dE_d{rXQyy7zk=OSaBAR`2RID$E0A6i+O6a67OfN}GrN`n$ zG>Rd{BVze)3YgPcekSf(k6Y3TBc@Uhf_>EW@N<`WADsY9Dt?Q99|7HKteJe7b??at zrYhZwUiRD`SSa+uDeG&dISLGpuBd-j{1SrOig(A)Ud5j0X-mR1hu={k-XNqYn&*w| z=!Y9uhzSp8>{Ob0U=vh&&!YQ^TZ^x+;9GwV0IhN#;gXahn*(x(*d*PLgybG%yX1o+)lJaxvio8GI;kM}7ehYiJbs?e^M5u}eQLX$Bl2)DN zTKTVIQDe9a(mD`iR6Z;oai0C7%h7Clfn2Qah7EYy31{ZiB@p>ah|JkhFWI@c&nVLN z=dPQzlePUfAs#9bDOR6MxGa>sfBUDICv_wH*)XwMBgq+RWF*M6&OVQRX=b!JtOLo&q|l@%!U9^FD4? zPc0FlOc7}apa$h71sQ;a<@vig1JFFgBq4PlH@R0JCHSfnR)2JkwO|WNE74HkSP1}W z2~p0Qt6h<6?5Z8_si&i`Ld!$8>?^ zzbwerb?T8Na&OV+*ZELxT?piK9o6`gJ@ z*v>0@yS1X6S=LfrZmxb)QA2}n_mZ#NR>QY@Ke1%Y_T-D)ifgc5mgA*+X<<`+fg%MO z82M1w>W#73lVT*BigD;d6RN zBv)x&2f9P3Yx2ap1mbqExT47ljWnU6eA^+F^}10VNzK~F_i!Caf}N++t5P3oX(!7? z>w8yrwU~O}(c(H>E{&We&F|HyR7fw?Qf%TX*-zVE`f4A4*G{pxX$rW&+B{j3C^~H1 zX`Nh$;dHyTlGx98q^0c%Y&X5lFOZ& z8~<7&saCEmU&~T;sb_ig_;dD%)T?m*w@mtZJ*mhW|7|5&zb5yWuH!uYT_KXss~`eI ztcvnxXPNbjde(%1*REca?7-7S2T$_~-d)c!0)@71A-e-nR&VL(aU!eNHApI;sR>l7 zpQj+!L-k=tlD1yr`mk<69wo!+#kA%v@>A}>QNXIqFenS9*_T#YUXWG1W9Ej61mgeF z(kM2C=3Ot&@jwj~g& zM~IcnW2qa8H+Rq-8<>|E;<@R9l`@I;hmF$mfrz8klMkNdh@)qSXZT$nhdoiMf;LHe z_$t%x52yM3KyAy?dVEX@H-UfOR#>kM^5;f_1CY$NgB6#peZ+T%Z8$*?#t@VakSLOB2qG$ zR7tUxTi~#}E7H~$-N1Kz?p`sw^noy<+mlZX02 z06WuL$gN#9m)l1-FgCcn#GrnpZKDrF{YZ+9?$Qmv&#S;P0_wAuE^Othm4|FpddaFg zz_4A}l}7v5*?jdu-oL3fD!N#cCW3rX+fifcIKEG_5qW26MSlC1lK-l}x)@gm3h($~ z8`q=9A2Ff~O1nY#i%v5G5mC!Utp$`w`dDS3TK=Z#HZI*0*p7_!HwCu?{bt;7kTb1= z>_iH$Y)E-2K_pPQeA`*pOM~r9KlRzRL1pDc_dMGB?}%RJ85Wa#6H-SiZUlOQRc&_l zLRCAGaEL`?H_s-P{91y0*pi-O4zV9JG>jC}Ov@92Y%S)#Ebfzrg%e{tCDKe(P0*?R zxXWCTk_nj#mck{wZy zu|j_Bo~0ATjMotsi8KvKr_QfMcP;(W*6-oFmMqNF97dVPsTq!31sVvgZja0(Yk76E zgM1ViNqB( z5iBjIjM`?!ukBED@>@UG&W{Fo(uiAa{jzpqf9@cC9lsyI(LHpn6u+F4>(xU%bsvND}J i6mR6Lj22{30>Q54WJxGOc)DZr!|Y8y9!`pBEdL)A#|j<* diff --git a/src/external/windows/lib/x64/python312.lib b/src/external/windows/lib/x64/python312.lib new file mode 100644 index 0000000000000000000000000000000000000000..34bca1bc7f41ce0768e579eebfff95f8d60e13cc GIT binary patch literal 377824 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%0A1s(Sg}!o~&hPBwuY8A& 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 literal 0 HcmV?d00001 diff --git a/src/external/windows/lib/x64/python312_d.lib b/src/external/windows/lib/x64/python312_d.lib new file mode 100644 index 0000000000000000000000000000000000000000..b3faaf85adb8dd487ab097e85c94a317152fb08c GIT binary patch literal 383358 zcmb4s3!Gd#Lk98~Gm{V_GU?28l1?VwLw8S- z!H9?~n?*zxF^h;SA|fJ-$g+rt7+J)Ch!`GXL_|bH#E6K95!wHD>eS;@-MSP0`Tf4! z>2tnw>Rq?0Zr!?XKBn3lT6OI1Z#yvj_fJQLzwNIn=8tzxnLcHj{(IT(O6_rm>bheO z)wQ)pb=`S}s(g7ekOX675MGGj2#NUf!}Uo{OM|y0r@A7VtnyJl>?PKZ)MyyMOA?Oh8>L0yr6QzHxAdx zwr^I9LvRK5KbdjFRF!F5iR+ar|NX@pm9Ook2-#0s8kHkQmB!SiszR9Zf=2%Ao{EtD zdJ^Lg7pM&A+IAr0zKyDj@WZP#vZqEBp=;ZPjC*fXU4$P_XWX|t_`9q86{j)Or78!q zoybqZbGvEe3h4r}-wZIGdJKMnpI^@S_34NY@EGDl_yyuec=~9@b35P%`2Ed{PoXS; zuDc%7$TlCK80X*$d>4Ac9m^Q^KcX_i54Rfh;R@V|G9x^&g>m0bl@Ycc$hZ%_2-^@3 z!hI-j!gmlC!o6JvkKzj4-(cKv55ff=oW|I84eWtW?9ccC(n$F3F^qd#um`rD&$tuy zjBwAPjPGqznZ`m~fxAv&+=Kihe1AIQZlr^7*LKGDkq3l3pJMy~`9!#TF5>~@0g%7u zLB<=NQ90rDH!${|qjJK&n;DZ)M+vVRVZ31y_`qu~W4vJ_egl&yGxl4ia>BlcFeYz; z9C+;!jJ9%;u6HpWoT0i1Kbpq4 z|50#(2e&YO`n>9TXkXR!@MQ*v;|l!bCWBeH0^9Fp{B)D*B0O{s{2Y4V6KHEd*E83v{NuMW&YP-opzC)Clkha+Ncb({PI&q# z#%~b^Apg-^gWGWhK0b?a-i`2cqw3mm8sm4Tz#p&!?L*@!T%S_;Lsu9ag)4mj75EFn zCA^4sqA>^8IjXYdX~wN6OTxE~V{DlWIRRq>!ndww+`1aP)$oP9BTCveI51Y)5}!$H%nE%+u^G6R`eyWx}7m;mC6XO0+%r9QN|umsSLv_UL0J)=LY*P}`ZmT>$Kv;~h{LrS`HpQ$d)j#_v$a2)})f@if{wVaGDYlf&=}{0e14 zcw#S&>~F6?{sViR#n=yNBJBH!M*al)G$4E9B$dB%qsnIVsH_+1oPqp431xQ@%HTw# z|G39h*0-O^x|ag?s%#eW|M(|Vb^`9v3m;b5+!pjNscar}3#I~)_noV<_ij*G{|PEv z3?GY*0C%~{mLT8fEm7H0@D?F%??V~9Z;Q&_kMeu}*(y8vSpatLhrbW3P}wPWschK+ zDw{bCxLReicLQDoPFGnE!tHqmalQd@LAvIn{O2R??|o8b1IGf8FGXDDpsvl$RW=Cw z!DHYP;U7POxZR5QY)3kwJ8^$-kj@W0hV)$ko5hGX(mZ?uV|hbmgevljFmy7b`aFIE zL)#eDJ@6Y?jyMpOZPv&apQ1FD;=Vyxyq)p>dsI$1=^@4-+63Wb$OuayCoDrfBbz18+Z-AA)=zzMWB804g^hrIFQOOIQKD#wJ_|FKJW`z#j|W{c56TnMM4ZV{S~ zF-GqI4>wx1lvNNAhl~sQC;`Epz?bTR{0P1#`R*A zow=LAD6XTbGHICc$`0%h-;cmA;gyIl&~*>Sdq8C`j8FHXEAU#3rwDuPrIEj8h3a~2 zyUKCjA#^>4dmfNog77v!ud@F@K3|M*375Q`zUiAzTR`gey>AG`8Xjd>-XS_$5H3HD@p+_&aOGu;OYetY;B(+; zY{nJ%&mP7Xj!_v<*?&3XAGWFr;gBB2Kg_{z;E>xHe}A{C5Dt7nBm2U&u)kJS-uy7* z?@xgqI2idtIN)H$n{jU^ym1HPP3R{GZ<)?G7;?f}F4xE}KwqbUx^=;E&|z*u_`4a5 zgXXIW;XsT`;uC?t4xny9xP9_!{y=1NGu-z)jmUx_-W&>iYRk)%CNv z2Djr1Jn|spQH;kluEG`g`MDa|cg|4REz4DQJMvNkWqdpE?NyBbMf)M#b~oeOs8@vB z`ZOy4ggnx?2Up;5jDLV^%L|PEy%F}nH=bd9XLroafm=|Pge`k8zICz62wTuk0F@(< zKZLhooPWfvj2q^v$_=+bcDbrdL7TY=?exYYRDRv_8rh4_D?k^KgF3FJ5T8K92bj5J>VG~+8rs|w+geGJaS^*ohdi~fu7p9gAG zzH&Wyz$H61@*8hb8e1?fBV3PrCs6tCM-G-FJR0*1M_s`|Kq0^ATJ+>|M%ej zM>uvr#=Ey--UYl1`9OI4b&PkSFD9&oZ$jfz1JsSi6qUVza@5#_>n6+vFJsK!6XEWO zvN~BKzy1p32k=#lD}d~J^g)ELqU;Da+{*asb@&bZ_rr|qUjh$6{nPmG2ILJ@`N!!7 zH{uGs73D-Y>`;yD`u$-C{LkSAm*ILD<_QOBWPh2CdI3C%{+jUOSq#k6GQzX4BfNBn zM&(_j$QR(Siy4Qa&JfJM-xZgIcxnSJBKiU_NjUA_vzY%W>EM;e6n8J5_!l@^in7aP88lESRAfH{psp{U-R-I2Tvo zz=s(JT#onw|F}ct|A6*EICPQ${2od;i}8;g@PL1qtWkOIWJSnNKt3FQt;%~5HsOT1 zj5%mygkFS2m~%d(w}Ia%`{s)VXX8rPLnHqIc#9^ht{<#Y`C%g}pTE@L9$bNWqXv)S z3ScgwF&Ftt=tG!<_aYq{r{hZ4!I*mncxX$1T&9sP+y;99^An8)C@aFi;fxb6Rym>n z7LCer8__m__RWkI+BTs*hcOdvjxajHI2GkiX!U92eHS2pz=Gp6vgbA^LVn_*jJbOt ze!!w<3=rQ%z=gsA>pP0`$|5)gOkE0zC{^fLoowx$$o@wwRuE2T78^YNr za}D@98`w10;5J-=f7x9lKX)1CHFv1If%;7Nx2qV<-Bk`$zWJQWKk|?P%Kjt3$8yH1 zjVjkbS+4>SLUHugVGkHl1<$g(@eUv5xU!^!XZl;R^iAA&j%8sGM--0AmF9 z8rR?oobfc{%)6lnMp1VO!9-GGp@i2_|`ZFS70s5p0HtWgH5;sJ51 z9q9muu4SCsr*gvZA&kxqDkqE~Ji@7487t3#J#g9vMhE#tXy3~C;E2jK9>*2fxRlX4 zLFF2^;|iSiEMqzTCJey`;T)t}<2+n}v!7%9>nfFNJc29mF_a78?0py?LwpDyI@SQ` z`Vi1W`U#s524U?Lj0Wrorys=lmrGF}E>)EeDvkW?v*8zg*9SLhxLsS4rrCk)UQPX{)>WUvlb;DZ=55Kh~ZF@7P!13vT|D zjL&XY6~gBiGcHA+0puUOm2uWJDhDc`IuAged=mHkU*nz)w+5!b=Pg zuL}=V*-yGu<;cfX_V5z?{gg)K_{UVGb{u2HA*w>CUC+37zN%calks1xRYe1F{4d~| zb2YM$V!T0^I-fD^V3iRLS;&}r3*^At5nqidxS}rLc`6}Wg>l|hBPzdmhN@h9tEx=B zoALIeF`heG<;oZv^@7fIcW|iOaB;(6FRZjTa zV#a@?{sP(2ry1;qD{#~?2G`;W9D4!dpL3OIoPjIh8IAmgI={EG0xX^cN$ z4WIC*eHniqR$YYOAHet{*8B<2z=rVW#~C}9VeNgH%D-*!@Cub{Y{wP&3Hm%B+YRIA ze0P<-;%@wnu{9yzXz(kW>>7050!K;1+B=8vGS2C}#9Z*UH-z?2T- zEtjZ_u>ZY`11?q>;gGG21Mg88;cYt^2M*vjaQN+vH$A2@!apu%ycy$V!T|>{-hwOP zjR=o$5aLVtNBAckb_?UJGgL-6>=?$IPzN<&^CsYMq>b=a*bojq+JOEB{sBHUrsE3y z(+vj4;tIU+361=B=#zo$&4@qYAhbQgw9Skuk0W1zBbPD`h8>XaM88h>6Y3V>dDJb! z&V`KU55;fbnP~>-r=9`+I8`G%avS^se~*0DSc2;kmA~*5`7 zE^nxc2KvLxf&aajaR=@J8W-UT+#dsKz+(B+ID@1ZJ$ho&>W zyF*n7_g&4n{{Z*{zO#h!U5xt(_o06zY{mUUV>zzC4<9yIg)4B?35*-j*AuQryb0f4 z%=pq(szSILVG!;$I1@5LccaSpD)J(C!BUkyFV;(MqUgxk^oYCMB0@SWw1|Ghxvgxk>v z625yI<2w&R58N?_@x3eI2e|7PgX?hx?%c}w?g_91?zn?-C&qGwt#>oNf3(U8ccY&m zY@Nlp`!M_luF4HiU#K|;o@wCYexOj+K>mLt22bGn1nwKC2SEPU^EE23K)og0{S4!KlU0TA zeUuI1p1F+gVcbHv>oUgOlfValfVxQd{wl^jSmz|%eLCX@S3{5ZpEphAZ=TCIXsXHy zZ@yI{+k}3R@NX>!#)=sM<4=u$-BV?Rv(IOobF#_^|MnyUW0_0?eb8CJx#$B4AHR`t z?oId&d>na0*mM@-ocrMiIPXfv$B>U2vv374k0Dg{M1B(f=2phv9;7N7n{fpuJ;vDc z8t{PKkrx_|;`%7!exXKXkFBWhz~3Clcoo{I2HNnefIj3ckbm=Gm0ybbhv(4w*B`?g zm;dV&j6?PWo>Tb^sApe59VZ+z zo$(g%2!D@$jc_nH8VKWH;O_?*2P^yr{=A)W(WuHbp2YP@)%DVa2Dpd61pF22x^Rf9_NH7Y}B96Y&Nrn>RB4L#c|!23!fKn}p3>jEj-S zK>i5oG2y2R4UndvqV8S!9OE=FLJ2bMN(K83`ByI1s9c9S1>~1cV|;!;Kz8RPu}szNyVSjPKNe+f$_GnOO0gzCABgBLND?X4<=;d=~D!4+6` zA)~qn?DkOk#=qkpsqr|jzy-KRXrOIh@Q}*ixtTE)_d>$k zmolcIz7URjp7D;ORZci+BV+m{Dkr=H;S;7Gs*#;BO=*1OU_5gL&cJ;Hs9-Oo#=ad@ zA-w)s#%rHf6~dyM7>ln^6~e$0jqJl{=Rjq*9gLGMQ56l;gOd(a*(dKZKtJ_K0PC6> zpPH&NAU|pn$8Lq(3uF$Cb^Imw4 zvX{z#ekJ2E^aDWUs8NmlG2{c`7dJ6}eh7GnAgz>UU>}3mAl+VZERL`V*uSW8JKBN9p12ZD)5tH`j(hWV zl^wi?!3JD`zdOd@YFw{Y`QIXsfyxQ+3FMQ|M*)@IK8<`&^o@i)P-h8$vyky>)LEd? zdxu887s`&XJNiGuXXi35McoA|H?=hKz4iqUc;(ZKNlOtP@G7(;!rvaw_?vqW4zMR= zggursUOkF%fmb0;gxwEhyjnr7ROQR(YveDWy%3&7J0kpH1>>`~BVMnj3d^moN(m9j43@T*Fcz4fFmztOzo&#qYGEy2!nq@9uVG!G!Wjpg>m>a zl@s2!gmL(F_zfKK1mnVE@QeWXl))!4E(I#@J97O3QQm}it!BLYX4nJA9Kkpa`9(N( zH^woSLk_&_Va5#9DZS{{vR;#kd81zsCN!BAYNo`W5wD)pSP zW>i%OE5RqMK9jKuSHkKS86(50qOl!UppLi@R^i@DSlz`~gSNWnslmbCd3_5O4h+tk z-9K|-Z{NUzg@dExomI`o+mD<&IIIQ-=P#N&w@6YS7A)or%vm)5#KBqJ1Knz{Z+!6h zT8A)N?W`J{*&MDdSiZV8)PckL+R?#@2(az$%-&F!TqEckKYk{hjf{9tfk^+D-KZ`f zshNPJME^aj-j3B)r1iaRwx^_1Oe106_@YL;LmmbZmBsaTy~7D>JAOH#Z=AVgy0F%+ zpJro;P>LEUn_pY+bIwz>IN~j?wo0g^k>r6^b!d%?w)e_%$z0SZ<64bm&#H|iypmM1 zdfVD(&1bZaf!Bo=J@rO)1lg9h@mgoq+mF1CBf~;bl0IN$=t=d?s@WSlt?I05r|L{y zp-#Z%N)K}DNqO@W;GuPEx?Rv9e+)>McxfSBq zylUMl?JrzsjCX47P~}C?FC1%xS}Q=_^$+&+_o3ao6nKf&cCYBvT0PB{s673HUf4H2 zyVV+;xvDm_roX-tCFa{kLBZVqTBo-GpRKV`+v*dFqG}>m-ssF;hl=70 zAJjlTVN{H3o3%co#he*HuhtR$QCw0+kKlAa&c!=pY{d#!fs-mH)NLTe_KLo7_DAid zuZg4!*F}wE_oGATX*JiPLawdaoGQ~gIa$nXq6w}XYmWH}YQl-ME)_GIqvJupU~|LD zo&Vl;x%WWlEPCoABi^RJ(?S!2kq~<=vWuFlBjcZ;+kTT<8er;@;d z15wKlwa%(%q}goEs;@)05eFevjz7>EtEK5eT9kqdSjvE%&)DicIxX23377B>}z5uo?tq;V|FiZH%G?Yy{;&ClHLY}S-yUm1RJSi z&26u$uPCsL)Ug&OSw`wu-J-&p;7H{3OYmk$R2@j<^a~1VNKp4ta2ul5BxTNC3*!)2 z=s4Z&eww-r7Lx20jytz0x?YnYEprT1O>xsU6c##8Z=-LdI#f$EMWKn=WewAqICX4S z*6fU(Qy1*QW*L=|wGK(K57|!B4kRPC7R@$oEC{i!Z^da-ua7O0&DbP2YRyKPZZM%T z4kg`uj7{8%j5yJlgeDFl(X3)jg!lhY=)(AGX*cUP$vVeh`Oo~L}fTw%&vdU-L zQLzphMOjr0)qUghs-vSA_(zQ^lzLXsv@FTAEc-KRSdrNKnp16`SR0S#9hMy^V;h%y zAse}81#s*OED(Cm;_Aqlm^oUO5qloS%WI3ySn64(-IgRL)Ost^CQGbBt(!OWwtH!D z6z z>Y|$9VBxE$RjZL%Uu0HLfLk3N9&9!+Fl-Li^?ukAg4W8kF23yj=4D-NoidqW-pRr4BjBa}124n6tT2S^lir z5FQiGZVy$(iX(>|s4U+`I$f#-tu+fOm}y~c_c+e7xDed)1;_Jp$3*p-;|4ySXvLNn zq`~$1iS#)aCtwZSWLzXOKJ`*w3(p$lvr_Fb(1dI}C9Ai^y-M<}F0`11`_)KuD2j>+ z!YM{6DEmXTS; z!Wun|tEGs6%Jao!%K0?o+P?9bJ!6fb4xac8&P2YumJ^Hn#vN}l9)~wuL!J$%DJ7oz ztgDV_x7;JqvrddC*Ed_keh@VgM|iLSxClBsrxEOVHS8&{`B;>@F%BhpezUu^(#MCR zs$*?50o#Qyc<2wsFa9&dGn#y(wQ|lK&m1S{E3GCVP1lA#;Z`{|+!TH?_kMDPdP*4QipyCUvmb(~vg>!52P-qft zj%2xw)njnn!43)B9cR_$U@??p@Tec&*o;HZgN1%ytZA)_*1YPP+Q6ttu&)V1737W$ z$)&(2chKov0A49lQL1$cT2)BK$|)R`XbTz`1s9&ONlievSsYDah;LO1ey{C7d>(lV zQYLM7*;0CkEhT9mR`+xmjuUtoq#Kui1{IomrL(bFO9d4_k2f_tMRE3&8NT8f3n9e4 zr8tiD|LM0Eg);vO^ZfXcy!9ni0e==YQ_w66&nIkGDolhnu$o_8YexY^c_6_c zvLhe=3FlVj`Mqr{f7EULDaySBYZGND6{>(Q(h{c>CPEunB~uE%mIq9moP=|$^8DVl zqfPP9%H~Qeu8o+PF)ZotpbA)l(V>KW5t5DsMu!N8Iw|0`9M0105|7kj-AIoQf>;QV z)4T4?W`!X+xnuU%Mpn3p8J3pO(=c9S5&>9u2~~mb!YVN;=xO((ZEpH}HaSOhjo>ED+#qT1Rj>6G{yW587H&=hhpdA(F8d2fQYpA^81i zNtG9#RP79{5|4d#_;76HhB*_PQ(9JL^I3C4jiu9GGm0=jVlk;hf6FGZ*2o3ft?jiUnHNsM+xm ztMqTJ8Ev_#5vy3Bb*GLsZ3oLb7O-7Y>1lO$moM@g(i8}XlS%lIYVPDF{9`+KKh2B{r_qWyoh?I=#9#AgK+9JLf`Hnc5+8%9dfAPeN{d&Z;dR zTR9KQTFoJ>x^`@@X@e}P*-qa*{VmGSozyrN)6U>#A>@XsZw~Qvlweh6ZVO zBCfU3VE#^;v^3x!-)fH8N`qiw)Zb~2cDKhHL+C78;hKO|r!~4uu4183y!FX0yYVK& zsp*R6fI}8nrmu} zzIrMTX0F03u9!#<)!OZ%C3>X><}=B9;C0>0u}Yn)3Z8ZldO9nocU*-gft_dP_fSPqm|FXCif9t+lq^P8Wp9%d#GA0L`sAmPqI9#=3f| z*`QWc%!E{_o`lT|&Gm^~ISK2C@-;bK>(Gy;6jsK$%FDRm#7c)`^!Slr@M_NISH zsd~mbW35_B!`*92W7ovE*;8~mVE_Ae7ulrch1rN?_;iU(kx#bLJtt$?9&ouF~^~jZv zaZyHdeq<~r@KZ)}exiVQ3cQQh7?Sf51(NoWCOIGBor|(2?WUCHJVhzOtUx^MOlL21 zoQEi?Ne@Ym^H7Xs(n%T3`H^Ws)lE7{a-0Vl&oU25j`I*jvdl>t&H0h>)HT*l?j~Y5 zos47JI>B((QRLDN(j@0Y#vhq5+im)rh~acHc4_Mb!&ygBOFKxDoDUg)WB{IYwcVK^ zyC6BWjAN;fG|BmhqFL&ul;=Fj6d_A?ogzp>xy{TY2@9suUMIpEOj3FrXKB0w}P}k|T1$Vg5u1ICk5AJCQ-sC|PdCNldaIVVy zCeIzsje{Z`NOdC2-O?pTt`BfBOBifTTcwJrG=^yjaD_56kXvtVVRB&t6=>Qzhq!WSrJa^*=ozhTc_zST8jkW`X zR40vCsm!)qqcaw0gjO*J%Rr&~g0gR%UgW{9ZJFux;1M~B>7K9FFNcO0&@1b%!s#EV zI`gXjBE~d4L-YKj5{#o9V^L!?5ssBwKm0om%SuC593HbEwY1`T zvVB^?kuK50yoE(HS0(fh6n9}qk|l;ZAr0G#^`oVNHA7A>IcRv)Qo+(oRCdL@C>N6B zN1Ds!DP7K`RR}H}WY(#Rw}u_rX$0G??D~?niSjDJpNn0`^&*$Wf`{ErMHUG|PTV8g zu)%bFGRNOPEU+F(V*lo>9B9(++bG;nWew;Q!A^^-g)yK?ro#_(R!E))n(Qooo;NWk zrH$e!oqLsi%S3F1!FC_Ney$cdknu=kGP7KX-Bj0c=5Y_*O!MDs)ZdKPGlFVg&iEu9BH<(GFObG&V+lzNlhyAr9Nx|vSQ1o!JR|UCM30>5b+UD7YlI_I$@D~`snI(Qi~N9y$7Ou zq+V_729A-Sl(~{hOF=cwALpOqZ@k;458gCp=*tpP+AP>=%5DQZ64||FK~JNf6#8)N zjn<00>F}<|m({VqVY#EKV2&deo9k^yMZw7OvA;PP&;%WiEf&KHb!>u4MNd23<4hfu zFmp;MCg*B+0K6*?JtZV|K`l#;tSPouW=cXPSr-inaJCvfqqSLJ6PpmC^z@TNtoCD+ z+&jzFh*0W7DHv!~;DuTSj?Tqafmy+5KQv9S0xyUQJu6vcpFfAzu~r{)Kt(016S4@~ z3cS>le0oBeu#gnzMhfZVmM}Du_|R;wlhkY;v~^XR7JQKa(-?9q=5119{-&&zoA0!V z6U8>xJH^!(LI1q&-hIAXVk=g}#4pcPhBg~a)7Iu?3T$#ThTmr;#EaHDCa z^Xg`qTGHJv#?{D-FaCws`t2TsFdK?$XBQt#X9Bch&r2i<2L=SG?`{XV=UOb4M5J?m zrNz8z+pkNQh!ph3lG>*{F~34J;n~_q ze!`*%G=eSDnYJo0T%3qswBbV6a>p$An4pX%w%k=&k+tTyut`GLMJ41bK3~>X)3O+ zA3t+e6j3cP9)cqvtp_VKoZx6l%W+4sqSEkV6`d+Ng?lZQ7;WnkPgEj(tTA?S&_6N7 z#LkcEY}B;GXvM~Ut7ehWQ)jD(3U>NySyExSI=A(Min#1K&#fxp^L`jQJUVSu)YFSo zw5w2Wtqq4Z=B*OmS7`^g_E(d(h@_8R$1!DI7x<@iMh#AcF0=)!;PF+NwjhsA(2l|~ z+Q168Y!P{TI}(Ozf#yZdok3n!LIldj;U=%OZK_l#7G&_syc$5b(g+4}(pH1UhGdTwV_1ftl07R`TW#4aaQbj z`qofeK}Vz^*9-iD+8MGZS4Q%c7F!4O=C~w->T4T!R`Wy*#p)%#WtWSw;hXZH5S3>G>cW;m$FyphoTTv#7krH3M7;oXEMRVhB5Wf{jn z*l4x0LxbzaixW}JHz9>eXM+Y&ZWAh<4PId?w+WTb#snXy#flxz1R3+J*zrs-G0%z} zkM5+joEH6IP-#F4HR7OjostM+0<6>O53cEVo*X9HtX5}`#?%f(|^ zQD{PB^mA)f@wEx9HzE-1S0~U-42eUw(bXhW5cbZWxo~z5?k+>FWAWWtN(q};v$YL2 zt|e?zO0tO$Xmk>agbv+hiT$n3C=9RRFljbsNg}q!OKe7DV~4-cxd$H2Z)ldpDl34l zw@sb5kB9y39P$f2hQPT^;aG9Ro8RO<+((|nX1deD3cUnB4o+lsLdOay46Tb#vKd>b4OgZZmL0UZdYg6FDV?&e5!~wc@U48;KS=PH&q| zda;}6km;`38o7|*iz*%Q4ID}KD#tf{vwTm~_!b(+Hho-zEi{hJZ_tR2*2hJv68uB} z-h$s<^|9m`iO=Su#)W`1QD5xWV||RI%JJ!K=BOie71;!npg42t745^?LO&QP(>6RL z)NkCzRV^?Nc+ORLJEJG3;zlG>F7Jt+7W*+p>cbT%a~@%qq;guZd?)NQXCTwcSs0euAwgq9OL z$YO>TS^ZGcJ-$PbOwckH!C+ow@?6UThTM!LNLuWO=!1Q9T}9UC75QJ@lg|SflGr&q ze)hoNNwd38#GSQ&aBgq^K;OW^xTYpK=pv($i2bcK`doPD2r3p}Mud|O_!V@g6(ZJC z({Lvw2O|D~&Fck%l`(^Q)xf_N80+f#LYDmN5nW z*G&5GWuwzgiK7>|^-6{7uPB>JNiG<)&0+T@Im(@^5Rw(M!2Yrw0FkWBnVdA#PI)q7 zrXfBqwn2Ue3KM7{s-E{upKp9wLY z43ZGj&W@B^Kf*8y8rNsV?Tp?$^cy;`&)UwP;9uX^+_SJ{hjF=Bqa-{pl0~rl6 zxEP(MGJRx;5{j1Z14FNl?BdU&23E0hVYRU`Saj+e*P>$C&;z9s6|ycYFeLi4TB9K5 zEDp*XRflL8&aWLuH$;ES!n41zmC(7A`cTUDSh93kP4@JgHF70bO3dGQW)po(N*wLR z9DHYe2&Yp7{;iA|{umnnoByJxwSgfESV;q7z2Dj}Ouh&)^Mb>%3@Mfk&K?=5kK)vo zsNU(#NMS))rmeb6kvS|RhyiV9(vSFYss;WO9Y8{5`KYN>c}h$otuP7=5{jZoJelDL z!Mkw-mF4qG6TU2Ts*KQbx`$VfVY^$9%w6d8a<2Or(V|8JYskYr_1cK8f1#F!puv+e zj0CV4?5v$0VWu@xef-M^1zQyCM1fj$%C0Olsw)LPnqAPtMoF;hf*qBX?3p7wr!E-U zn7eUXWEtu)Q=pI9g-t<=e79#gls-GkWGhZF{~fexA+pvk#%2|qDOPG(Hb25}tkkk# zrR#JQ9VfOtdPynbu*eeZhehl_lp|%OmK7f16>>wJwI~i#LaTB;-{+Ehtf{_+1w}_V znSoJQna6M{s_n?MnVHJ#@rut8au{e3e<2GBJdztG-P7q|ROr)5BNol+DbBXDELFRB zpq#}@vWXlEg)u+GGS9_|Q3=)FH_Jml>W~q~JiV4zLS~(}5W~nw=zkX8ow2EN3d5z` z#2Qs~h~DN2BM_=EUgOW;Ara&(IKwre@^P{3un}{SJ6Bq1YZL_ zV~gs7XW>+r^wKq64#CeTK_wjTVF1H6+SOL2Lw$DXYeKen%1v4!R2sddp*ZTB@Yt))!Sr~Y8MZ!Ud~e#n2X8Bt3rrFapYJzi!bl+tFP-WkE^ zS?(Pa|fDu z7F=J8y8*q@QVb^62bQHKtdLx6bf!HOsQ{eH^KlCOgt3bCfn_>YFo|P@r`Bb$5-RCi zKe{a|522Jc-6Nx`s>O8UWJ00v2Gm;`wiC)}nyuC74CI&KBe63b6nlhXw}H-EP&X4S z3<=*-fm$?JZ4cG!gX?`4{gf z!iYVOvXT#N8s^(=Au2^iXgz_MQH6Zo%kDp-YokWtSY65@88P!Rg6H$l)_hmKU=nI$ zD^acN7|=$J4F$p5lJKPZu>Rt9A;3WCZMxf~7DAQcb9*X;&|=E*j{0XCa4#D#h26 z;}v7YD&y@OC1LMR?FmaCQK7?vibCfs&KVcpQI6v6(Ott~X>kZ;Y*TheVvknqtz0zT z?w6qpsemqN;bLBzxVKMr9PdHLg*3tLbsK7^^;RyXM@}y6E*7ORJ#xC^cn>-* zq$!W7(|RitQ=ZL5-w?N{OmVyige$Gf!%wih7Y+m47XoJ`nOC5BKi%zESsI}dqW8sd znv3&$8b_AI#3;QD-nZ5K(oh4nx8tzF9qwWN+l}s4+TGTY(txBk4u^&?YZKiV$HHp8 z6~0u)7NwzudT+@d=gpYeUy_4bmEyZ9o^A$Y=P0o~9q`eI?>ad`+DC!r{dBiEfRe@} zl-`E#Jl1I;y^-46nR-Sis|5*+@Q z)=4P`UmRZd^jnQ*vxGF^2X<_okM*UN6KA6fz|y=QPPikKWQ^B)%jj4S8)bL0M<_tZ z*ws;R&upXgzWYZ<+_FF{jed_{Ny$IDuz_j^tn&Omtc>AZvf^>KgI?p=3%xL|oI)k| z=}0eRvFBm`B!8TtkQrX%*(WsJ_RUD>e-2Du5+F*X~##D3soLaS1wJT`VxXv3yKw^FhlzMJyAD1vV`WNmOiji5(01g;FK9RC_}@ z5ir)q@lSAsgSuNBjfLVjLcyD*wtEoiAm3Ue$e3H6h-yfkMzv$txF*ntDjrsFS<8Un z)u;p?!Qi-7(GsMER5}}eUmowpxc_oW{5@TQJL+kEE zx?0T(3!6~ut(-46 zofSrbGGXH;mMI%jdK(@zne5>yUNkO#x#S6bmbNZ>&kf`8AOfBo`z+4N@TA=@f)t`! z&i9^^lQQ8c)=SHv8N^+EGzar`Tzu3~`e~L3Fj9LvJ>*$|Lr9Qk^gM_LsPs^AplLee zI0m~k@V;s26rDO_@1a8F`LjL^U9^?xb?^c9s(TC=dM}WC(vgnj zb2cmYOzs4G*Ww@`Iy)i0GbPoC#!1*O(8A#x^g676Oeqxl>+NY3y~sjOPCdo#)#05p z@D0CyNNo0hgi0R=48B2kQMXYu;((`vOfgyExyY#Kd6so6Gy&b{<;+WD2dqMZx7Eq= z2@pn+2D#LaLG0*QM|?H`bV%tjAF9#~+7J%8rAX~?6IW;`wnw^A>y2LfAST$OY%`gkMWA%kYL2rmE)H|?8K zpi7zjh0_q0<9$l8naVSr4wW61xk~%OaG9UUG1@HR6S}Q^#twjEL_YZ|JnDz4%u123Jxqi)&({-^`KbHV#rz z;Np}Fac)e}#Ocvk^jd7HvB0cc3EisNhGE+2M+bmWN{5i_l{kgn4eSeID_GQMrI}J; z$#(OSHI_{a3qw2^_jd!%_&{a(dVe&3yf@|tD$6&|zI1eAgHUHJ zmdu+=^AgO|LVZ|E%2?J5edr6Hfp4#x$Vmyw`k(>8MCL_3TMlBW1j8TkGB#zXml8|g zj363<2E)^#HM3W&z(>= zDRBzVwYe~Jg;-*<{6Oh#=n$Z_!R~u&5NXH+$JA|z&IK?+9EKClLyVkf(|WnYJCF|= zty7YDhIq~x3B#Y}q!&?$97X*UkxzjUUiEOcz-6iTJ9~o|N89LWq2o|$6N#|mfQQ>a z93=5b9Pls}Oz}t@@G!$oGmXNLDTZ^ZYde^24q!xN`vQG$_V`D$gve0fB5Vx)^dhw=y#iqd9)ow?2FN^lMJ?=(6FFnoB4EhJkDjtsNRGc zlu|;?b~CEO-K~{)2gZG`qA0f^;KU@H8Xx&JLgt`Q>EQzs*k}g4KvCqt8vElbZ40+IaTUxx5Di;V}9bthpDL34c@`XH33 z8d5fuFoQICPAV}%>#R_(%AKdn?B$sJ|M)MI;mZhsrht^E$i)fSaW+g$F88@hKR!Oa zYe(_y1(9pE@aj_d*1w5zisHf+$~aW1Vm{iree4~qQ&B(#-9#odWlz|!6n9Ky9QS%b zoB~CWOI6yxi(am0jh>NULXNwVco8qHV`=|5-e=oDtBS#nL!HZ^D#e$pUR0F=3tstx z7^_|@vG6FS!0aoK8~6BTXN|J4DJH2pGE%`@+=B+1qidUOs=qU)Vd7dOxNs3!aXaiv8wwUrETDbUQi}&?C$uq5wvW@9WixbGpl3r zJ#I=%tYnk0pi_NZP!odDojx~gc$Xd~pm7{T?MXx+p$*J?LYw z^V(wGMA??oo2;W5BptCZ&@?5kkK8eRf(c$vGgBn?AqTFu5b5KZwnSZf2*+23TGX;v zJGc$nffJh8yP&X$vAVg9`fd*U|Zh{*=DVAjWsCc-xjt-Km(VK;S&PQPuG?1;J z{FEu;-&Ql&z>xr$lEn-!2QzZvJWz%SL;eZA&d8$UPz>IBo#n!V6+lPNHid?Nk_~;H zN+`^4tMT!+HyF0?a$>GT<6ke`I|;N<4%Qp1aKM0m*df9yXuxilvJ09b8*jYhQ@n%i z>I#{p$S@$mM{vX~|1z=GPmRMWK~eT%69X@BnM7fFvGLbzuUMsbG5Oqc2IM%Qk1eCz za~8Ud=nCOPi9pH-2qjdBU}6Qh$73$pYz@_-y@##ETE``#!?gGL>b&kC*Wnu3yuFMK{mH}%tS9}bwV?P8!-H8|ZyjMP9XpCcW%+O{F*Xjg`07umjR(16 zziOcG?_h)2a^KVfB`thnLW&h2dh5#FP^3isEr)OgaV+R=3}cS7zS$bKF`tORy2aIE zEUYYG=$Mp+U@Qt8>tUomjKPYDoL&41Be@t$X-N|M;Db|(*%8PkwV#H=z6>b8nQIix zo!^Xd4DFeyQtl+{8@waW_7jF^#g^CCZ0on|+!jygQ)-x9TnjYhK*3!7Y+kyM@hB+S zMi*{eEc8-Qm@^a5gr7u~YQrE$y`)%KOxj8)98yVDD#m$2BKzV3PnU44OIgqw37(8p zTVfLCE0XmqSt7Ue_vZ%^`D_(}t8>uGWwH9Kvf9{6r+NEPtQoF?qcs1u}xYFsKtx=3Pwl00D?CGlm%Q_y+jVjhLsu|y=a zKS#$~^_8n^Bafy0yKki0S%JZfsi9>;bMhf>S#;~Szj)3X%J2&(H}>JvDHw$XE1t0& z%z4!{H9__Ff}#e~U)o01j}MOVmNggSSZ>mJlghwmh`ztwstpdK{BvWBH z&I9Enf4tkD3|yiticQ^3D4fVur*!0Ebd zN&C6Ab>bA3gf$b&ZPPg;!`B`XCC8j(^Khyt+&DX#=kpTx>t;1>rcA;LozO*o)BX^BPz9*2nvSMx8%I0yD(7?0hI1hU51p7hi z^v&Z@Z1kq#R;P|Fs4jhYSp~;%ivgvH)c=pE508dF&b6uiK4aZ}ld<AftWy0_iLL>dQ;2U*4+I5wNQ zdiw42hY3hNWDF4TUC!C_{SGzzn`^>YdvJlDLQ)lAiPPc{x7+0s3Ej{6&1h?(@#Ex< z8Eif_EVK96{OYAGa>Wp>*m;6LZe;e>By}vei@;S>7pU8egIO3JyPnMaZX%@P+Wj`u(v2R*T-IMBXz*V<$Z0zzopzY05lCo~Qjp*2T+ zLi30c+S8Nkh+uC#LHvs}??>kkrEs8`%z#)QS=!t$w+$Gmm^5t|#&cQsX`DzF{EQ!! z2y3GPeQ`DAGms+IdWnP9wm3rmyq2`CDD`zCa)nWb_l{vLb*E@}wnHk@N;y~F2@E5G zv=wLc6va{Y6!KH%l2v*e^bA95tl0H8#wJikHoh;mrK8!j@5pDBCrKGR4e{~7*kwe! zywO>7nuGXY)@ijto2S%wO~ld%dbAs(crB~r4;I2f9!{ni>)cP55*=|guqYf)QK_s0!z^tFifv~G$+HDitt8$X5MNB|w>T%dCTqvTEcE?Vw>Bl6ZO z=?J9GDl{(|KI<_6A64RO;DmYvN&Q>@I0jQVQ%|2NT^ygKDe)W4bo@}78SXMGrCEna zQ>$i@M5B=8j9>yvY#)vKZG{Ov#3cPxdL2&1JPBKZg7R4JQIUlcyXNk^e8V(eaNA-<3%^|f-FK2 zBKxBU=VAGjFo9*3F|Ue+Ao0A9IaX>}xOJg>(H{(r-6d6nLmm1AVZ4pjNSn0uWFPqJ z?v&ZhG5V^W4`AUK&Ss{L1`ADkB?~8YVaY>3C_v>#07k z3yM-QMJC1W#obC*_we=WxoWO6M(XpHbv{4Wg$zI!tDU z=z{^eYfbf=2?A_q;Y1JjNPx%Sw$)H|NUNcs&$Ut+>4L!seW2PxFX1CvN`P(9DNt_G z?ai&zQLv?qlrCt2No&inyVnuq0B&enG}{&gZmw`CG#LbqCLH7sr}%p{4?&Ktu=cg1u>6Rgm1Fhk)P@@M|w347>eVL{A9aIEFAoSpQ#uHLp9qH(K zL|`f8hPiTWf@Xz2UVXLJ3Vl+uoU7Q}2$V@1AHg6xNQkiYq&|Gmp3i62H*(*2BC+7X zRf0y+#6$`s2tzJWCdA>>I5D*1xtV<~S5V-CQ5Y=d3SDSLD1vp6nbMEd zg%%jl`W?f%s+a3S4g86!<4Pe4Qc?=`;fb`7B`XUyqQD~qUDn6<&gJSoyMY7teJzgV zedA7Ib}+dV6cmDsL=UX0w?)WBvlJ&$d1?KwhFP48Bzk(0Tbv3>N~r0KSL`ck_s;T9 zD^hMEUb&~2>B!I$evo*Yr}A9E;}A8@y8PYTN`|8=*mS(w}Y~a;&bS z8*5`Lw_;FgDHw_36^j#P+JtsGy#-P?FtmfC;fwX1Xgq(|Q;t&PLW)L^GAV^sO zv?Ankj~}1AD2*aUBC;rNdi<@+GMtqca;Zp7_(O00a{U#l34aLG&W`OcC>1fwnaG1U z$g-qAU@y$WOg<5|lwo%SCX&3UHL6!N>9cgv=xYMX1okwn6W>-rbW8nsY6(e>BFY>Y zj$OOgsZ6BJ_h~$1D(98N1!JFhu9Zxf;FWj^Z<%H3ax9lJ-gWeH(l!CJG){c*H&zwe zqIXNC&>mlGxFsI_N#HNXXMtVf)tnmco<}AlXi13{MXE)kZWxqmOrDak@0~?U)Ohsj z>rj#9Ou0&2TV!Y<6xj&*;|TR@8lku;_f4E7D%Nk;$tb)p7Ma43izx_#1CB~ zhz+b~i`!i)pJQU$7Y@3A+3sR)!eejy<#~&E;mwOWS92<`tBCT}CH0}DpFkl;q={C9 zq8WIb%NLd;vnFJRMJw5?3E6ye<c3@i4$^|;~Uq$aTzY^h%3+1l%%*Vu$xn@F$IgUF&e)7FCF=9oX^JFU}F z=IM<^;n~f2zFE|9>`V|1{XQbca13AFXtjs%3^B@xU2)+NFWjP^=0JQb8C4qlzPy3W8HABfwVrcFzxj@pZRi)KdDC zWf02=2n7|!C!-SvD+o#BAY@cyDgqH}G7s}f*VbZ?T#H%GUSw|B9Zuw3%HviL=Y7~1 ztTwg^(om*^ykCFf4bO&Ti=(C+DLDQCD-iJyQ;S?fp|n|9zz{7{aCF-gzl&LFoXI?u zEiMQ+P?*T-)=9aYU}|y9iy|s3J=T6HuA*k3z6X9IRe?`6smws@*rE_$5mWjzilY&E z+hR5n#Yj=qeEcpy91`1bs1_7eqI)$_2ha7c^hB!IxyHhP6L+s6*=rG-;O-EnDyf4B zy)!sCd$>*?gq81T#0qQ-#`ih!**}a;Wif_Q$HLe=!7@_3yEVR+55_<#t{L-X9LtH> z)X9#7%FHvbI4)8;Ex&@lw!3J0?LBUs28y-Yl1J8Ym)e?ACEf!Cah>gYT!}BarkSC$`7CMn@4YDA@*^8ofne5NZ-^ za}r{?ktMJ#mf?L!Vca5>3u_4{Bo4ufnTM)u1ff$Y7v~Prqepz_QcicxBOCWQw<1N@ z>w-57eC$Ph;lbG#DZ)N*E@svfQ(RKR_p7O3kxu(swfRZwZVSZ9LMS%5JBHpO%vddP zdEZSx#TRrF3Okj;@ESc&M=zc`mpp|ERF2>7R9l_F2F|2O8x{1wE2Ls1ZK7Aurz{(IcX%Bp5q3^6F~@230~R{!MeIZjV(awD(Edarag=)%fvLZ!1o6A(K# z3SuX~f*F;^nwp;vnaBu@V-M?R_$ju~I5tHMjtB85LcDZk+=ohML-|u`6DpmJ4?7)H zLGLUV>MghfbNk~q>J^ULX}1UE-X1>G<R=B5|IDo8udofvKtE!WFVl0oDT*>X-S4TrSa%y82A5l%A8ku2W z-MWtNGet3QQp1{4+knqDrkH_7W-jfFlp7{&F6bf?N@=4r9`hf%eYg%YFpL?9pB@5O z8@wjEGT4uv)P`0f?Sf4elBy2BwK7P5+dXb6O(rq6S8e`DLwL&-jQj7R`3&?Ia0K@>Vlol&ta>!>&&t= zZRm~^`p^@XzFM`U0($k^4h;YO(~;qC`)i8%<6TEinZ|!F+x?o|l-lEtF4eQOOPz6N zmzwfrZO)Un4@)OEnR9hrI(*!Q=YQn+ry_3A%m z>ZniV>cTJP>ef3eYRX*|wd00dz3`b_9sZ46ZQh=#Lx7X_&(zc-GIb?z@$YlB*Vihl z^^;7E9$8UKr&iPpQz~lDXLB{_*O|KD51Be}TbJ5+UzfV-hh1v)sZ3pn-#6adrKaQe z?vS7Mido*cd8SS$KaXW<(l0V~^wXKz0nW|8&(w9F z0_UzSb-?CKodaC=-ApaJBU6vupQ)`s%v2ws?#$Gd2QszuKEz`yc(@+D4e7>p$9FQ- zb#JB~1sbrq2e#85%+xi|@Baye`GZUy1D`GE&xh?g_&W5SOl|uf@)S7bF2oPNr+*(| z+?}cI_8*+8S>vJ_{Z{*{?$kWNW8hIV^2=dEbo2!ku zPKIpRez`gX`c3%z2*_^+|55N}z;^yVx!MXmbXBH0*B~ulMmb!Ku)mb4{qXnWkX?=6 zbMX5`{NDKj()H&|J#$<|-G;o~IIp5!nq5&FdT^avQF~umQ5(NmQ8};)Wp)C}Wb5ZE zYT)Y?wfzTO>dGH=snz#)sl^X;son0))m^yGc(6-NgZxp*x8U#Rf7+$?eW*)a_HdUv z9JuKxU1}C^@AfXW3A%Hj+Yi^ykGs_4z*5Lxglxrwxw_*1TRzA+`sv_42%G1@8-Aoqt=p}l9-f}5=iia3)wmw>E2I17*lkq#p?{iS+u79RW-TLudO+7DH z+kOY%Pa~Y)cB!Lqy#Uv_Kg!kZz$|cX1n0CJUFsC@cEj~4;EIQGbrj*Rh{In{MlW`$ zIl$9fD(e1QE9$s!Rn%nseFktf{$35)Qt%$%*`>DsKla`|&iASMAK$MlNs=TX>5wFe zL!2a>bLL!za~U&pE=k_z%)IBEH#6_|nD@-NNODV(BuSFok|arzBuSDaNs=U$BuSDa zNz(VZ*1qr8e$VmgcYAyukKZ4A=KWf0?X~ZFuf6u#Ya?&HC!*}vqQ1U?vGl229P%=Z z$1)eszqt^%yd)E=HbmdY{|E8^v5hlv4`}wF2=Xa#PGaAJUycj_r417%`%JwjL}zv=PQs0@S3$nCQjZw6F0mD z;}!o)#90O0B78rE@52#qXT&)Jak>z{_esoOf5P1LST1h2PoQChU2WR5IKJZwYiCvduVg+bdEk~awxxcxB9KZm1l%|<&Qlyfj2ARLP@J{RKz;Tq(5XXItpBIF(6 zQKY+HKi~)#Bb__uqwSE#%WD{02+P591o^)adAlF^$x+U2sGOjA2x*>)@-0Q2t&r~n zhcNG~Ks^m$tr)}@#s9nUe`EZA6!5c=x5JiVY#)+~`|Ioj}W zwAo=;6F@U-1^$EPP|)lHng#F4#nN}>;(!6niJ)H&`h7uv8{l^XeiPtl=7qTSqq*2= zq7Y~P1M5pxh^+v-ct?yM^iefNwdB^$_6&gmbnn#7!f} z^AV`WBeDMB|J4oD6~Y~>zyq*{5qd$h>u4s?QA1#~ZLiuD3v^(zapDgF;* zeY^jm6yrY^N8tat=b_EdMwvc|Iy)En{xtG*4$6(+=X?tN2k@QnzZdXbK|2okeBh7W z8gngzxD5GxEo6$%g6>k(-z8Yj5d^*;{|v^|`RLmhqHZognel(~i!ok4kMRiHHu!%! zz8?bZg@}6(Xt%it?T0WI^!t7eb+t_)ZhK=P=I&UC`S^be{@?Ki$SvCy;!5Bjczq!b z!}qZ}U@buV599j@VHyJ#BL3-H(wVbM2Grk&81 zkZ%sT4*B^y)+vO$@q4S^rs6q-1;0tfEeQ8wJ)7|$+6mz_z>oVL@^}OCd<)8tu@8T=5XN^wzHiFJwZK35P4p+ky$5kO2JGB#qfYUE)~=A{-irL< z|AK3<<{?~+?@f0r#3R=gV%KX6@yu0NTc1Zftc}xui?RDVwEe%49>P|C!@Texl;@dD zT=o?B;rG3N&qV(V!2bpF&69xr6=MkaUH^fy{uAx;FU$j26YuyF@_RkTGs5Fn7h<0; z7h;R^3UN9@@0GdO?gGrefIWxr>#oK8d=tj_)wx*lRjgMCH(XYT>0f}%vN_f*JX@0(eO6$t0;SBR(PVr`yyx5Xgko|hV}dLw?qEj z1MPzK{HD=DoZm#ee4HNuLvicR*2^j?gMS}WY8fjI0dpe z!bZR!ep)VW#Ts``GZ&YAC>I;G&~}i;?>ip(K*&FgGOa?{5e_^t7d@w7%|x8NKzr7) zxmbN1#>@L5qaf_~0m!o_Vc&ED@FQq*gvWuu1K+F0a&h5MF1D&;?}4!Ca4t?o*l84V z*IM)ogmN9yLfG#}#m=h{A7Kc;p99Ucpt)=kYsN~*KW)Ut|ND`~ zm4nFRQOFC@x@H3LKyw?uj{|<~(a0BIH-diTy^!@04mk$p8pnE!@D%X3tN;yoY z7Bu@EkGT?Q-GKkkqpr?B5o7)YjJ-+BfveFk5YAnLuoiR7I`n<~-U7d;0e>0fhkn$@ zVeiM9cQoe9W6_ofFC2sQ58-j7u?gU3A>PyP!(93?@IzmjdmQE$gj>%2{VMh*z?BI5&d9`-2xsmGxpDtY9Eb2E!U->6 zoFmNL7xEJR@AgrQ=@e^jR){^%#k_tKV9%uD$!D>@`6c@D)2TT2sZ^Z*SM0y=edhh> zD+pWs0%I593E(zC=mFh5e@n&b|G=IMaW4jsS$~I~0lyCed`rNG{t3MS_*@J4EbO@+ z#`oda10DXITns;e{*3Sx(zvR`nwn$nO;8{BeGGm-j0dcbek8R@am8Pd669>D)SpG2QSnErRj(4f2P4UqW}9(xwF|Hi!W zJlgeXjK#k}#``DM?0-R@^jFLsPhriV-@xAjd6o zgmb@(F>)*9Nrdz7L4UjpYZb!nKgSro8*}V^SR;M`ISc=v_&)mnPYbav=$3=eM);nA z?|W{;+K=$SPYSUL;lRrv2SA27_i~J(?_kV+0deqqTkyRMfFFzR%kjPE>5ySwk2ar% zagP7bp-#p>ggwj$u(v!J`P%Py9a#@$Lc5 zrQmndhp`_<*bzMT+yryk%P^0=ybxz2JhWjUt^jP+Mum6~;VkgK4RwD2XqLYO?Tv6@ z58CxxsK@iskG`FYhrW@E6RyHKg|OjunB%{W@p&HBh0kH1_$A~S{p<|D=HG}p8sD2> z-gz2f;u^FKX!hC>`0dd*-vHPS;D^wU-va;dM?W4r2l^m{vtGcwfN&Y~CJzY6z6hKA zClya19D~q<@xR08kp}X1%-PtZd=fG#!jlLozOTT1H3MV6_g6>@;pt1!|2|!a!_iiY z&^C8piSd3_hCE}={W8WszL( zm?P)j4EYCPCyeJC4#XJV5_NDf`tT*F2ZS50L_hyB(m*=TA>8&A$erlh4`WW)4rRUL zBFKrq!o2xw=q}K%Lulv6@c+!KFpd##Tm0V>{I)_K&;K0y@K*|PG{X6))A6edaT3b0 z@3koB0`z%=X`tEeLgWK9SAPxt9pUC_1?FC?%PX*M4`R$9Tz*&~u6Ymgekke_zqhR+ z9eh7<2>8AWYvuAnJcj?r;s4=)^}ieIG-z+d|IGnA3A|1lK;7g2If%R2;h49Eux28h zh2I+kch$p?GZAK;g>~)>jN^}C{zW+SOte43*;qp#nT~aI57Z0R)MsX3es~-D75<;M z7uo>7cf$WYk3*k39^(rCpWPh$aMbZruSOYP2^oD!Aud^pw(Lha-;Z^;#2mN`b%1dD z$I-_Su1EUQKY_IseD6Y9Pi_VtuR;HL1?FS?J{f&<+Jm{c5aE*FKrYAAl->AkoK$4?-9;F2zZ3!wnCkO=TpG_x~~vj$k$je>K*x7f$!ar z#|fmjEBHJN_)ci=>(K6Ne^!Wx5$?Jdb2h>_`tQAvVY+^fGTn_fxCL?*!qEu#W4v#S zb!#oczOTjHh;ZS{F_)s>-M%5_*lx7xCYTR4#`t>~>h`6WdjUInQ}n-$(9b@D`o(-Q zejVf~z#iWKb&q%lyaf9P@VOIl4nX`Bh(Ct7*8sj9;tBjd%uL7=??n3hA#eDe^$v^?eD~~wG9nBefVBy@ zUeF!!cI;z--*sQiZGe}6UyR=m0NynV?K~U%wl1_Oe(!?c&*S%I2)%Q$N1KDa7s4Ho zKNpRn?k_^yBFwq~{Tbn0jIDEqF>kCy|GxqIA%t5HZ^k^VWev3Xk$?kt!Vw6oAZO$M z&p144KMqDPoBrX?U6jz8##plE&;pPwI;zdc`+_vU^1X2~m(4U(568z%ilU(s7E zE8bNsFP0WdibINl{P27*Uy&c0zb8K|ujTK~w@#-e+a%j2uT8d2UZ1=!c~`Pma!9g$ zvTyRXWL7dgIUw01*(aHi?3e7H?4InM%un`AW+v}Q4o%*fyghk$GMRrMf30Zb`d0PI-{Oo+w{K))-{P_I+`EmJC`I`Lb zd~LoiKQ@0~-pWtPPt3O!uM_orI3LYd=BHwF`H6g!{1y2t^Ud;?=O4=dng1)lNqk3q zTf8>kHh)vTbN;$~TE0{M#(cZ{_4%{;?)h{1^Z7IR-}5);yX0@lcg_Eie<}H5^7-To z$)(8^$z{pq$>)+EC3hzGBtJ{;O@5yIIJqnNP4esHSIGm({mCzr2b13>4<)}#9!`Fr zJd^xAc`W&J^2g+ft&n5p# zHb@H`pk!&1mSRJ(fq02X%6}C9ES@d4O1DT~oxUvJrr5gJv3OOnMX_b^>f)`%>x)+w zn-^OZuPLS#Zzy&sUR%7b*sj>N*uGdQ{wAIhj~0I{9xMJ-JYJM#QU0OWpxm(BU(6J< z#9Pwo>CWk{=`QI`>F(*9)3>H?N_R_Vr~9VwOy{QurTeG*r3a+l>4E9YbWZw?bnkR- z`u236bV1sm&PeB_UFod!ec}V+cyXLKNt__wFHRQ6iW5bv7%7^?5yfaRRvc9vS=^sK zkp4dXMf&UX!Sq+@Z_;0;kEDM{4=Zcsk?9d>BOOVf6n_za6(^=2NY@mri^*bbv99=F zdUAS7dVIPrJtlo$`rh>D^n`S6x+Xm-T`amppI9zti-W`=V!n8{fbotP6o-lTh?Qc6 z7!X6^P)H@iVwva>?-B=#d19_uD3*vtVu3hN^oluRmFO1z;<@zM^q=WAVrwx?WceQD zmy5TQyOdWI?=Pm8CltpQ#}%JQXNaF9`-pdlv(xX2@29t=-xEI&w~E`v&EgjEGx1pZ zM)7v>T(*nYTkIt+OZOFzr<;n+#4E%m;^pGr^uly@a#4D5x}W%SdS3debSJT=SeU(2 z?3CQ@ws#lajN)ZdTIL2^iS!>(@&=7q!*-5q@PL8P2VP_ zi?h<*#gD{K#hv2$^xx?V>BoyRi-qN)@_=%2xujfL&M%jh{pFmpubf?Wl?Ru-<*c%& z+^<|v&MUW18)8JP6>G#%qAga7rf7+E;=SS+akMy6Oo~x4CdS1PVnS?~y(HTxdudi? z8)q-eUXyK+y*hhkwq>?yv03qo;w5Q!v8XtxSWql14lL#u+htp4+hp5jugzYU9bT?3 zk1R*ZW;t0l%2nk+*(yiNBg(;Ys9aIj%a!GD`9$%TVxw~F{K?{};_t;X#nZ($`JaoI zlz%J!TAWyZs64iOe|b!KQu%@MlyY79zVd_R@#WFwd&@QDaplS73FX@I)bbE(yZ zGs@G-kCtbaA1^N`FD!S=cFK0h-juyDdqcJ;o0%=n-jVHDfiu7qSbowb{Dt)7d%M zFS1W$XJwzsK9HT9eKh+{c5`-A*3NFrzMXw2yEwZfyDYmZ`$~3Uc18BZ?9%M>+4d~-^kvZ-ITpA8_&L$U7M}RZpg0Bj>%pSe;3b) z|A;;E?k^d$CP;qMUWPVEV z!Q!Oi#ks|=@?Yoo=fBJ!$REsqoBttyB>zqRc>c%y z(fs%M@A8N9U*r$vf6o7uKbD_WTr0jNt`T1qUl-SjZ-}pm>&2JFRpM%KgSb+BQ#>#J zEs7*hX6Cc<1M>azee(VCW%-hPX+Bici@{lrUd`0=1a`W=l<*Uk_%Pq@Cir*KH zrf*4>C+|rXB@2^f$KfgFXH~&;{7;dWS^3N2-r}C(r^U~T zpBHx*_Z9aSzbNi3ep39X_;GPZaaZx1;=$r~#lyv~ieDEG6hA0_SlnJbRQ$Fm@(uDb z|8#j?`PuUF@^j@y-l%FpzD?d^GIQ>a_SGr5~=4|I|ezqj*&$_b% zvpLz^tSh@Mxi9;9_T%iX>?hgJvb(c;v!7=7WDjM(&3>7EFZ+J>VD_8r*V*IQ@3LQI z4`laef6gAs{*e73`(buxc3b{f_M_}i*&nlJR?mjBBeEm2_hiemk!&=3SGGJmG<$b; zNcQ{e$!uk|DjUiMvcs}Qwjw(`8_a6i!`TzrU$RHD&GY|cFJuG7dy2z~T5))RU2NJe z?h<=pv$wLiq4-jIWqNh`h5V`P>FliXobprUcZ+k&v&&DGm*-#1|CW8OxTLtb_(t(j z@$z!G_+;_d>^u2&={M5v<+tYF%^~-f8|N>{H_Bg{Uy*(#y|%cfxW4#iaZB;7;*06E z>DSX+i|-XT=dTwx7N->lmG3EknjBNSw>Y{uzx+)3F>!|2G|zV?YMesn#RkPoikB5x@zSCw%3|YU zqhgcd`}tM*SMrh8b(G(Kr6l-2idQBZrq3oZIsR$! z-$?RhM3z4!*V6pE9C>~@B>GJ~nSRIQP01URosu0O-EWz^IoUbcC3(Y(mh*QtlKy7d zVgC!H{o!O)(nt1p_d^kBZIW74}^6BKr}y$v|>?^3h}@xge=0 zpG=y`g~`#$SaL@4vE-;^JXx8vlU6d3oSCdmMw7|pyyWA_S;?B@nBX@scjle;Aul&Okte3ui|m-bF^%s>-jF8Q|7=h4wsed9zu%X< zDsguv!|4`@+@1Ux`;*l#a)&bcf8!qIne^%O@995MxmWoc?^Z-k`<3*6-Hzp7yk~h$ zBC`LawdBR`U0(m9cQ1M7?_W~0gL#FshxupX?_%yq+3-z?PWg3yP54XcRw@j zf3&07^+oP!#k(S?Jx(UIp!M4k-K`&PR*Wd6%;v?{hYu zVyAOPF}v8m(EFWzinlv^o~~lYd`>a9usff9inbEH4+3X+x)y`?tOzxe|66@bR zeXP*?rw#KhJM5uOOFzQzae}>P>#ds%PD-R%@h2w+-n@45U4aU$7?kI3w`iInh`-*_vcm zHA8TC<)QhOvxR_#jbJHpp{l3VpqFYajNaMNtSwaeN3#HO9l-Y>(%pqKo4$$f0S6iCcirtPQUy zPKNX+h`Q<{ihCQctkcuubJ~LgV>-z;w~~3=ib~^xmYTSg(n&JqNJ!@21%>(Rt&eeA zaRRD{v&oq)`SGaD#!YM_WdUel=@%vhsu&@0UwvfQgOQ&>H!i-}C(7)Fb-Z{zr1~kP z%cDz?wA`j%&d)S@l(xI-=-s1Zc=XkY z*WKm;=0J3=WG4DznE)`F3BZF)0ODk#J~Be3qQvN@N{N1gj-ccp)vqh`9lBnm6uYFXk$K)%l!#H30^f~zr^X)>TxCuOXTcA>HzLy z&yF(F9Ie(pI_Y+wCkD*mJk&%tAs)NTgny{2g}RKu1B1{}F;@&G&$ z$Dvg9s(WxUh#mp?FQrS~G=E|6=y5M6Gy)hP98+KXvW z4wpuKMro-3>w(O1DWXXja+&$Pu#UIXbh7+GW1_Eq)N~D$)z4g%-+KOyDpgO@YC=HV z{Haere`-Z%4ojMAXo=9#myD6jsK2npP4d*uq`V>kg)(859?}w}g|O#6yc?(l1fpY~ z-+hghfKq801h+jjH_`9)xc-zx#v9#2Ud%L~xpkRu;$vhY`$5tWeW8WGKuM|!ARX)t z8OD~hcK~mJRT1#F)HKw7HqbH#qxiTW>I7Y_L5*oC&jT`Vi%6`cS4Be(iw6hEl{3vd zlx68`#re(Bk;JrCjt`9XOJOH~7y*~yy#vja^`X9X=>BULs0H6AsJGcIC3!`Ya~4N~ z(1ayZWdz*`S*6ao41Sr@t)|mVVVUDY1JTUn!o0l>rW5plHc1ccrAM96(8-Unk;Wi=#K|JKAaC%y zhzduaa=bB7hZKYn&tAa67|yb4Go>3d43Q%#Ee9kW2WcQpa(YYT!ptJZQHe@sgPPgd z;4_x~kkqT=>u*_dN}3?jLy*dg0azN$aI+>GcxjDSH6ox%&x=Lh*o@KItJ6{-weQfe za&#A*fK zpS;BIMuLHh$LdYhGrey!q!@}UXhL?)s1o4qhfm2MGf~VPX$?Snvtqmi(7b3QdkYGp zA^U2Mmn8UJI6(Ue`w8z>`m+c1OH!0X($}8e*9`L|)oqqmep_n!&GcAtQK zuJ@pNM4O1%R=5QCv~|vzkfrQzQJD>;lu6NON7tL^32I-U=R{vPH_$*PH*i$N%qAYJ zWJLrGD;I+oEcxZP04irrmrx1AVSJ~qv=R&H9kiwcxq9i$Nlg`1N5&^L?!l7-BWhwW znLtH!COnJi_&lD2wHjN}Cxce?U8`MIzk>RLi``YcO7W^h+CVARP_Hr7 zAA-!3q7m2|Hiu~5hTmt)V$Rz7AY~)uGDl4+@*85R?ib%^HysmWqvz)EaP_9{vs28qIEZ6P{U{a9k(V!FsS!QGJXYr!4Qv z2gIPNf`?VD6{sMv#iw^si4R0%HwxOQ16WsjBt~~vEKaA#@c1R7NYWh&q4xcioJ#RU zC*qzyK@mXeBG!ZR?>=-<jqu|t4X>42Ito<%zOvTXZSVSGgRvRq9q0NKpXj3b0kjkD?1NBL}zwN=nl zVcSsW;^8OS2pcC-8?iV`Sn21JijNPxe??ne6IH*5Ww0SNDeN6`?+XnSCI-;tSXX_; z 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

Orv8uvX!}Semm3vL! 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 k>L2gl$3CYSWh`=57}bp|3EigC-%J%gr None: """Testing various assignments.""" diff --git a/tests/test_efro/test_message.py b/tests/test_efro/test_message.py index be5cf589..4c996236 100644 --- a/tests/test_efro/test_message.py +++ b/tests/test_efro/test_message.py @@ -8,10 +8,9 @@ from __future__ import annotations import os import logging import asyncio -from typing import TYPE_CHECKING, overload, assert_type +from typing import TYPE_CHECKING, overload, assert_type, override from dataclasses import dataclass -from typing_extensions import override import pytest from efro.error import CleanError, RemoteError, CommunicationError from efro.dataclassio import ioprepped diff --git a/tools/bacloud b/tools/bacloud index 4179b057..c136123c 100755 --- a/tools/bacloud +++ b/tools/bacloud @@ -1,4 +1,4 @@ -#!/usr/bin/env python3.11 +#!/usr/bin/env python3.12 # Released under the MIT License. See LICENSE for details. # """A tool for interacting with ballistica's cloud services. diff --git a/tools/bacommon/cloud.py b/tools/bacommon/cloud.py index dd14bb5b..4ebf4a50 100644 --- a/tools/bacommon/cloud.py +++ b/tools/bacommon/cloud.py @@ -4,10 +4,9 @@ from __future__ import annotations from dataclasses import dataclass, field -from typing import TYPE_CHECKING, Annotated +from typing import TYPE_CHECKING, Annotated, override from enum import Enum -from typing_extensions import override from efro.message import Message, Response from efro.dataclassio import ioprepped, IOAttrs from bacommon.transfer import DirectoryManifest diff --git a/tools/batools/assetsmakefile.py b/tools/batools/assetsmakefile.py index 728b21ac..c477360b 100755 --- a/tools/batools/assetsmakefile.py +++ b/tools/batools/assetsmakefile.py @@ -8,11 +8,12 @@ import json import os from typing import TYPE_CHECKING +from efrotools.pyver import PYVERNODOT + if TYPE_CHECKING: pass -# Note: code below needs updating when Python version changes (currently 3.11) -PYC_SUFFIX = '.cpython-311.opt-1.pyc' +PYC_SUFFIX = f'.cpython-{PYVERNODOT}.opt-1.pyc' ASSETS_SRC = 'src/assets' BUILD_DIR = 'build/assets' diff --git a/tools/batools/build.py b/tools/batools/build.py index f20c01c3..129b9e34 100644 --- a/tools/batools/build.py +++ b/tools/batools/build.py @@ -19,56 +19,6 @@ if TYPE_CHECKING: from typing import Sequence, Any -@dataclass -class PyRequirement: - """A Python package/module required by our project.""" - - modulename: str | None = None - minversion: list[int] | None = None # None implies no min version. - pipname: str | None = None # None implies same as modulename. - - -# Note: we look directly for modules when possible instead of just pip -# entries; this accounts for manual installations or other nonstandard -# setups. - -# Note 2: That is probably unnecessary. I'm certainly not using it. We -# can probably just replace this with a simple requirements.txt file, -# can't we? Feels like we're mostly reinventing the wheel here. We just -# need a clean way to check/list missing stuff without necessarily -# installing it. And as far as manually-installed bits, pip itself must -# have some way to allow for that, right?... - -# Note 3: Have transitioned all these to pipname only; can at least -# remove our custom module based stuff soon if nobody complains, which -# would free us to theoretically move to a requirements.txt based setup. -PY_REQUIREMENTS = [ - PyRequirement(pipname='mypy', minversion=[1, 8, 0]), - PyRequirement(pipname='pylint', minversion=[3, 0, 3]), - PyRequirement(pipname='cpplint', minversion=[1, 6, 1]), - PyRequirement(pipname='pytest', minversion=[7, 4, 4]), - PyRequirement(pipname='pytz', minversion=[2023, 3]), - PyRequirement(pipname='ansiwrap', minversion=[0, 8, 4]), - PyRequirement(pipname='requests', minversion=[2, 31, 0]), - PyRequirement(pipname='pdoc', minversion=[14, 4, 0]), - PyRequirement(pipname='PyYAML', minversion=[6, 0, 1]), - PyRequirement(pipname='black', minversion=[24, 1, 1]), - PyRequirement(pipname='typing_extensions', minversion=[4, 9, 0]), - PyRequirement(pipname='types-filelock', minversion=[3, 2, 7]), - PyRequirement(pipname='types-requests', minversion=[2, 31, 0, 20240106]), - PyRequirement(pipname='types-pytz', minversion=[2023, 3, 1, 1]), - PyRequirement(pipname='types-PyYAML', minversion=[6, 0, 12, 12]), - PyRequirement(pipname='certifi', minversion=[2023, 11, 17]), - PyRequirement(pipname='types-certifi', minversion=[2021, 10, 8, 3]), - PyRequirement(pipname='pbxproj', minversion=[4, 0, 0]), - PyRequirement(pipname='filelock', minversion=[3, 13, 1]), - PyRequirement(pipname='python-daemon', minversion=[3, 0, 1]), - PyRequirement(pipname='Sphinx', minversion=[7, 2, 6]), - PyRequirement(pipname='furo', minversion=[2024, 0o1, 29]), - PyRequirement(pipname='Jinja2', minversion=[3, 1, 2]), -] - - class PrefabTarget(Enum): """Types of prefab builds able to be run.""" @@ -384,11 +334,7 @@ def _vstr(nums: Sequence[int]) -> str: def checkenv() -> None: """Check for tools necessary to build and run the app.""" - # pylint: disable=too-many-branches - # pylint: disable=too-many-statements - # pylint: disable=too-many-locals - - from efrotools import PYTHON_BIN + from efrotools.pyver import PYVER print(f'{Clr.BLD}Checking environment...{Clr.RST}', flush=True) @@ -436,15 +382,13 @@ def checkenv() -> None: ' please install it via apt, brew, etc.' ) - # Make sure they've got our target Python version. - if ( - subprocess.run( - ['which', PYTHON_BIN], check=False, capture_output=True - ).returncode - != 0 - ): + # Make sure we're running under the Python version the project + # expects. + cur_ver = f'{sys.version_info.major}.{sys.version_info.minor}' + if cur_ver != PYVER: raise CleanError( - f'{PYTHON_BIN} is required; please install it' 'via apt, brew, etc.' + f'We expect to be running under Python {PYVER},' + f' but found {cur_ver}.' ) # Make sure they've got clang-format. @@ -461,157 +405,19 @@ def checkenv() -> None: # Make sure they've got pip for that python version. if ( subprocess.run( - [PYTHON_BIN, '-m', 'pip', '--version'], + [sys.executable, '-m', 'pip', '--version'], check=False, capture_output=True, ).returncode != 0 ): raise CleanError( - f'pip (for {PYTHON_BIN}) is required; please install it.' + f'pip (for {sys.executable}) is required; please install it.' ) - # Parse package names and versions from pip. - piplist = ( - subprocess.run( - [PYTHON_BIN, '-m', 'pip', 'list'], check=True, capture_output=True - ) - .stdout.decode() - .strip() - .splitlines() - ) - assert 'Package' in piplist[0] and 'Version' in piplist[0] - assert '--------' in piplist[1] - piplist = piplist[2:] - pipvers: dict[str, list[int]] = {} - for i, line in enumerate(piplist): - try: - pname, pverraw = line.split()[:2] - pver = [int(x) if x.isdigit() else 0 for x in pverraw.split('.')] - pipvers[pname] = pver - except Exception as exc: - raise RuntimeError( - f'Error parsing version info from line {i} of:' - f'\nBEGIN\n{piplist}\nEND' - ) from exc - - # Check for some required python modules. - # - # FIXME: since all of these come from pip now, we should just use - # pip --list to check versions on everything instead of doing it - # ad-hoc. - for req in PY_REQUIREMENTS: - try: - modname = req.modulename - minver = req.minversion - pipname = req.pipname - if modname is None: - assert pipname is not None - if pipname not in pipvers: - raise CleanError( - f'{pipname} (for {PYTHON_BIN}) is required.\n' - f'To install it, try: "{PYTHON_BIN}' - f' -m pip install {pipname}"\n' - f'Alternately, "tools/pcommand install_pip_reqs"' - f' will update all pip requirements.' - ) - if minver is not None: - vnums = pipvers[pipname] - # Seeing a decent number of version lengths fluctuating - # (one day [a,b,c,d] and the next [a,b,c]) - # So let's pad with zeros to match lengths. - while len(vnums) < len(minver): - vnums.append(0) - while len(minver) < len(vnums): - minver.append(0) - assert len(vnums) == len( - minver - ), f'unexpected version format for {pipname}: {vnums}' - if vnums < minver: - raise CleanError( - f'{pipname} ver. {_vstr(minver)} or newer' - f' is required; found {_vstr(vnums)}.\n' - f'To upgrade it, try: "{PYTHON_BIN}' - f' -m pip install --upgrade {pipname}".\n' - 'Alternately, "tools/pcommand install_pip_reqs"' - ' will update all pip requirements.' - ) - else: - if pipname is None: - pipname = modname - if minver is not None: - results = subprocess.run( - f'{PYTHON_BIN} -m {modname} --version', - shell=True, - check=False, - capture_output=True, - ) - else: - results = subprocess.run( - f'{PYTHON_BIN} -c "import {modname}"', - shell=True, - check=False, - capture_output=True, - ) - if results.returncode != 0: - raise CleanError( - f'{pipname} (for {PYTHON_BIN}) is required.\n' - f'To install it, try: "{PYTHON_BIN}' - f' -m pip install {pipname}"\n' - f'Alternately, "tools/pcommand install_pip_reqs"' - f' will update all pip requirements.' - ) - if minver is not None: - # Note: some modules such as pytest print - # their version to stderr, so grab both. - verlines = ( - (results.stdout + results.stderr).decode().splitlines() - ) - if verlines[0].startswith('Cpplint fork'): - verlines = verlines[1:] - ver_line = verlines[0] - assert modname in ver_line - - # Choking on 'mypy 0.xx (compiled: yes)' - if '(compiled: ' in ver_line: - ver_line = ' '.join(ver_line.split()[:2]) - try: - vnums = [ - int(x) for x in ver_line.split()[-1].split('.') - ] - except Exception: - print( - f'ERROR PARSING VER LINE for {req}:' - f' \'{ver_line}\'' - ) - raise - assert len(vnums) == len(minver) - if vnums < minver: - raise CleanError( - f'{pipname} ver. {_vstr(minver)} or newer' - f' is required; found {_vstr(vnums)}.\n' - f'To upgrade it, try: "{PYTHON_BIN}' - f' -m pip install --upgrade {pipname}".\n' - 'Alternately, "tools/pcommand install_pip_reqs"' - ' will update all pip requirements.' - ) - except Exception: - print(f'ERROR CHECKING PIP REQ \'{req}\'') - raise - print(f'{Clr.BLD}Environment ok.{Clr.RST}', flush=True) -def get_pip_reqs() -> list[str]: - """Return the pip requirements needed to build/run stuff.""" - out: list[str] = [] - for req in PY_REQUIREMENTS: - name = req.modulename if req.pipname is None else req.pipname - assert isinstance(name, str) - out.append(name) - return out - - def _get_server_config_raw_contents(projroot: str) -> str: import textwrap @@ -737,7 +543,8 @@ def cmake_prep_dir(dirname: str, verbose: bool = False) -> None: """ # pylint: disable=too-many-locals import json - from efrotools import PYVER + + from efrotools.pyver import PYVER @dataclass class Entry: diff --git a/tools/batools/dummymodule.py b/tools/batools/dummymodule.py index 0b45a489..5b98372f 100755 --- a/tools/batools/dummymodule.py +++ b/tools/batools/dummymodule.py @@ -1,5 +1,7 @@ # Released under the MIT License. See LICENSE for details. # +# pylint: disable=too-many-lines + """Generates dummy .py modules based on binary modules. This allows us to use code introspection tools such as pylint without spinning @@ -14,6 +16,7 @@ import os import types import textwrap import subprocess +from pathlib import Path from typing import TYPE_CHECKING from efro.error import CleanError @@ -778,14 +781,15 @@ def _writeclasses(module: ModuleType, classnames: Sequence[str]) -> str: class Generator: """Context for a module generation pass.""" - def __init__(self, modulename: str, outfilename: str): + def __init__(self, projroot: str, modulename: str, outfilename: str): + self.projroot = projroot self.mname = modulename self.outfilename = outfilename def run(self) -> None: """Run the actual generation from within the app context.""" - from efrotools import get_public_license + from efrotools.project import get_public_legal_notice from efrotools.code import format_python_str module = __import__(self.mname) @@ -813,12 +817,12 @@ class Generator: funcnames.sort() classnames.sort() typing_imports = ( - 'TYPE_CHECKING, overload, Sequence, TypeVar' + 'TYPE_CHECKING, overload, override, Sequence, TypeVar' if self.mname == '_babase' else ( - 'TYPE_CHECKING, overload, TypeVar' + 'TYPE_CHECKING, overload, override, TypeVar' if self.mname == '_bascenev1' - else 'TYPE_CHECKING, TypeVar' + else 'TYPE_CHECKING, override, TypeVar' ) ) typing_imports_tc = ( @@ -851,7 +855,7 @@ class Generator: else '' if self.mname == '_bascenev1' else '' ) out = ( - get_public_license('python') + '\n' + get_public_legal_notice('python') + '\n' '#\n' f'"""A dummy stub module for the real {self.mname}.\n' '\n' @@ -893,8 +897,6 @@ class Generator: '\n' f'from typing import {typing_imports}\n' '\n' - f'from typing_extensions import override\n' - '\n' f'{enum_import_lines}' 'if TYPE_CHECKING:\n' f' from typing import {typing_imports_tc}\n' @@ -918,7 +920,7 @@ class Generator: ) # Lastly format it. - out = format_python_str(out) + out = format_python_str(Path(self.projroot), out) os.makedirs(os.path.dirname(self.outfilename), exist_ok=True) with open(self.outfilename, 'w', encoding='utf-8') as outfile: @@ -945,10 +947,18 @@ def generate_dummy_modules(projroot: str) -> None: assets=True, purpose='dummy-module generation' ) + # We need access to things like black that are installed into the project + # venv. + venvpath = '.venv/bin' + if not os.path.isdir(venvpath): + raise RuntimeError( + f'Expected project venv binary path not found: "{venvpath}".' + ) pycmd = ( f'import sys\n' f'sys.path.append("build/assets/ba_data/python")\n' f'sys.path.append("{toolsdir}")\n' + # f'sys.path.append("{venvpath}")\n' f'from batools import dummymodule\n' ) @@ -967,7 +977,7 @@ def generate_dummy_modules(projroot: str) -> None: os.path.join(projroot, builddir, f'{mname}.py') ) pycmd += ( - f'dummymodule.Generator(modulename="{mname}",' + f'dummymodule.Generator(projroot=".", modulename="{mname}",' f' outfilename="{outfilename}").run()\n' ) @@ -978,11 +988,20 @@ def generate_dummy_modules(projroot: str) -> None: flush=True, ) try: - # Note: Ask Python to kindly not scatter __pycache__ files + # Note: Ask Python to kindly *not* scatter __pycache__ files # throughout our build output. + # + # Also pass our .venv path so any recursive invocations of Python + # will properly pick up our modules (for things like black formatting). + + # pylint: disable=inconsistent-quotes subprocess.run( [binary_path, '--command', pycmd], - env=dict(os.environ, PYTHONDONTWRITEBYTECODE='1'), + env=dict( + os.environ, + PYTHONDONTWRITEBYTECODE='1', + PATH=f'.venv/bin:{os.environ["PATH"]}', + ), check=True, ) print( @@ -991,7 +1010,12 @@ def generate_dummy_modules(projroot: str) -> None: flush=True, ) - except Exception as exc2: + except Exception as exc: + if bool(False): + import logging + + logging.exception('ERROR') + # Keep our error simple here; we want focus to be on what went - # wrong withing BallisticaKit. - raise CleanError('Dummy-module generation failed.') from exc2 + # wrong within BallisticaKit. + raise CleanError('Dummy-module generation failed.') from exc diff --git a/tools/pcommand b/tools/batools/pcommandmain.py old mode 100755 new mode 100644 similarity index 97% rename from tools/pcommand rename to tools/batools/pcommandmain.py index 8493c487..278bbd6a --- a/tools/pcommand +++ b/tools/batools/pcommandmain.py @@ -1,4 +1,3 @@ -#!/usr/bin/env python3.11 # Released under the MIT License. See LICENSE for details. # """A collection of commands for use with this project. @@ -56,6 +55,7 @@ from efrotools.pcommands import ( tweak_empty_py_files, make_ensure, make_target_debug, + pur, ) from efrotools.pcommands2 import ( with_build_lock, @@ -99,8 +99,6 @@ from batools.pcommands import ( warm_start_asset_build, gen_docs_pdoc, gen_docs_sphinx, - list_pip_reqs, - install_pip_reqs, checkenv, prefab_platform, ensure_prefab_platform, @@ -141,5 +139,6 @@ from batools.pcommands2 import ( # pylint: enable=unused-import -if __name__ == '__main__': +def run_pcommand_main() -> None: + """Do the thing.""" pcommand.pcommand_main(globals()) diff --git a/tools/batools/pcommands.py b/tools/batools/pcommands.py index 79add57c..b8eca720 100644 --- a/tools/batools/pcommands.py +++ b/tools/batools/pcommands.py @@ -541,36 +541,6 @@ def gen_docs_sphinx() -> None: batools.docs.generate_sphinxdoc() -def list_pip_reqs() -> None: - """List Python Pip packages needed for this project.""" - from batools.build import get_pip_reqs - - pcommand.disallow_in_batch() - - print(' '.join(get_pip_reqs())) - - -def install_pip_reqs() -> None: - """Install Python Pip packages needed for this project.""" - import subprocess - from efrotools import PYTHON_BIN - from efro.terminal import Clr - from batools.build import get_pip_reqs - - pcommand.disallow_in_batch() - - # Make sure pip itself is up to date first. - subprocess.run( - [PYTHON_BIN, '-m', 'pip', 'install', '--upgrade', 'pip'], check=True - ) - - subprocess.run( - [PYTHON_BIN, '-m', 'pip', 'install', '--upgrade'] + get_pip_reqs(), - check=True, - ) - print(f'{Clr.GRN}All pip requirements installed!{Clr.RST}') - - def checkenv() -> None: """Check for tools necessary to build and run the app.""" import batools.build diff --git a/tools/batools/project/_checks.py b/tools/batools/project/_checks.py index 85694c8c..f1612d79 100755 --- a/tools/batools/project/_checks.py +++ b/tools/batools/project/_checks.py @@ -11,22 +11,17 @@ import os from efro.error import CleanError from efro.terminal import Clr -from efrotools import get_public_license, PYVER +from efrotools.project import ( + get_public_legal_notice, + get_non_public_legal_notice, + get_non_public_legal_notice_prev, +) +from efrotools.pyver import PYVER, PYVERNODOT if TYPE_CHECKING: from batools.project._updater import ProjectUpdater -def _get_legal_notice_private() -> str: - """Return the one line legal notice we expect private files to have.""" - return 'Copyright (c) 2011-2024 Eric Froemling' - - -def _get_legal_notice_private_prev() -> str: - """Allows us to auto-update.""" - return 'Copyright (c) 2011-2023 Eric Froemling' - - def check_source_files(self: ProjectUpdater) -> None: """Check project source files.""" for fsrc in self.source_files: @@ -214,9 +209,9 @@ def _check_c_license( ) -> None: # Look for public license line (public or private repo) or private # license line (private repo only) - line_private = '// ' + _get_legal_notice_private() - line_private_prev = '// ' + _get_legal_notice_private_prev() - line_public = get_public_license('c++') + line_private = '// ' + get_non_public_legal_notice() + line_private_prev = '// ' + get_non_public_legal_notice_prev() + line_public = get_public_legal_notice('c++') lnum = 0 if self.public: @@ -266,14 +261,14 @@ def check_makefiles(self: ProjectUpdater) -> None: # Make sure public repo is public-license only. if self.public: - public_license = get_public_license('makefile') + public_license = get_public_legal_notice('makefile') if public_license not in makefile: raise CleanError(f'Pub license not found in {fpath}.') # Allow both public and private license in private repo. else: if ( - _get_legal_notice_private() not in makefile - and get_public_license('makefile') not in makefile + get_non_public_legal_notice() not in makefile + and get_public_legal_notice('makefile') not in makefile ): raise CleanError(f'Priv or pub legal not found in {fpath}.') @@ -467,9 +462,9 @@ def _check_python_file_license( # In all cases, look for our one-line legal notice. # In the public case, look for the rest of our public license too. if self.license_line_checks: - public_license = get_public_license('python') - private_license = '# ' + _get_legal_notice_private() - private_license_prev = '# ' + _get_legal_notice_private_prev() + public_license = get_public_legal_notice('python') + private_license = '# ' + get_non_public_legal_notice() + private_license_prev = '# ' + get_non_public_legal_notice_prev() lnum = copyrightline if len(lines) < lnum + 1: raise RuntimeError('Not enough lines in file:', fname) @@ -592,6 +587,7 @@ def check_sync_states(self: ProjectUpdater) -> None: def check_misc(self: ProjectUpdater) -> None: """Check misc project stuff.""" + from efrotools import readfile, replace_exact # Make sure we're set to prod master server. (but ONLY when # checking; still want to be able to run updates). @@ -612,3 +608,54 @@ def check_misc(self: ProjectUpdater) -> None: != '1' ): raise CleanError('Not using prod v2 master server.') + + # Make sure we've got the right Python version in a few files. + if not self.public: + + # Make sure android cmake stuff links against current python version. + fpath = ( + 'ballisticakit-android/BallisticaKit/src/main/cpp/CMakeLists.txt' + ) + contents = readfile(os.path.join(self.projroot, fpath)) + _ = replace_exact(contents, f'libpython{PYVER}d.a', 'DUMMYVAL') + _ = replace_exact(contents, f'libpython{PYVER}.a', 'DUMMYVAL') + + # Make sure assets Makefile is compiling pyc files for current + # Python version. + contents = readfile(os.path.join(self.projroot, 'src/assets/Makefile')) + _ = replace_exact( + contents, + f'$1: $$(subst /__pycache__,,$$(subst .cpython-{PYVERNODOT}' + f'.opt-1.pyc,.py,$1))', + 'DUMMYVAL', + ) + + # Make sure staged wrapper script is invoking current Python version + # on modular builds. + contents = readfile(os.path.join(self.projroot, 'tools/batools/staging.py')) + _ = replace_exact( + contents, + f'exec python{PYVER} ba_data/python/baenv.py "$@"\\n', + 'DUMMYVAL', + ) + + # Our XCode project should refer to the current Python lib serveral times. + if not self.public: + contents = readfile( + os.path.join( + self.projroot, + 'ballisticakit-xcode/BallisticaKit.xcodeproj/project.pbxproj', + ) + ) + _ = replace_exact( + contents, + '"-lpython3.12d",', + 'DUMMYVAL', + count=7, + ) + _ = replace_exact( + contents, + '"-lpython3.12",', + 'DUMMYVAL', + count=7, + ) diff --git a/tools/batools/project/_updater.py b/tools/batools/project/_updater.py index 5d820d92..885c0738 100755 --- a/tools/batools/project/_updater.py +++ b/tools/batools/project/_updater.py @@ -426,8 +426,7 @@ class ProjectUpdater: # from batools.xcode import update_xcode_project for projpath in [ - # 'ballisticakit-ios.xcodeproj/project.pbxproj', - 'ballisticakit-xcode/BallisticaKit.xcodeproj/project.pbxproj', + 'ballisticakit-xcode/BallisticaKit.xcodeproj/project.pbxproj' ]: # These currently aren't bundled in public. if self.public: diff --git a/tools/batools/pythonenumsmodule.py b/tools/batools/pythonenumsmodule.py index e7cf4cbf..daaa42c8 100755 --- a/tools/batools/pythonenumsmodule.py +++ b/tools/batools/pythonenumsmodule.py @@ -12,7 +12,7 @@ import os from typing import TYPE_CHECKING from efro.terminal import Clr -from efrotools import get_public_license +from efrotools.project import get_public_legal_notice if TYPE_CHECKING: pass @@ -155,7 +155,7 @@ def generate(projroot: str, infilename: str, outfilename: str) -> None: from batools.project import project_centric_path out = ( - get_public_license('python') + get_public_legal_notice('python') + f'\n"""Enum vals generated by {__name__}; do not edit by hand."""' f'\n\nfrom enum import Enum\n' ) diff --git a/tools/batools/spinoff/_context.py b/tools/batools/spinoff/_context.py index d61b7486..849a1ce6 100644 --- a/tools/batools/spinoff/_context.py +++ b/tools/batools/spinoff/_context.py @@ -1052,7 +1052,7 @@ class SpinoffContext: src_path.endswith('.py') or src_path in {'tools/cloudshell'} ) and out != text: self._ensure_parent_repo_tool_configs_exist() - out = format_python_str(out) + out = format_python_str(projroot=self._src_root, code=out) # Ditto for .cc if src_path.endswith('.cc') and out != text: diff --git a/tools/batools/spinoff/_main.py b/tools/batools/spinoff/_main.py index db0fa80e..eeb08eef 100644 --- a/tools/batools/spinoff/_main.py +++ b/tools/batools/spinoff/_main.py @@ -223,7 +223,9 @@ def _do_create(src_root: str | None, dst_root: str) -> None: template = replace_exact( template, '# __SRC_FEATURE_SETS__', - format_python_str(f'ctx.src_feature_sets = {featuresets!r}'), + format_python_str( + projroot=dst_root, code=f'ctx.src_feature_sets = {featuresets!r}' + ), ) with open( diff --git a/tools/batools/spinoff/_test.py b/tools/batools/spinoff/_test.py index 096f2015..3587b7cb 100644 --- a/tools/batools/spinoff/_test.py +++ b/tools/batools/spinoff/_test.py @@ -47,6 +47,7 @@ def spinoff_test(args: list[str]) -> None: featuresets = {fs.name: fs for fs in FeatureSet.get_all_for_project('.')} testtype = args[0] + assert testtype if testtype in featuresets: path = f'build/spinofftest/{testtype}' print( diff --git a/tools/batools/staging.py b/tools/batools/staging.py index 20b92523..a63436d0 100755 --- a/tools/batools/staging.py +++ b/tools/batools/staging.py @@ -12,7 +12,8 @@ from functools import partial from typing import TYPE_CHECKING from efro.terminal import Clr -from efrotools import PYVER, extract_arg, extract_flag +from efrotools import extract_arg, extract_flag +from efrotools.pyver import PYVER if TYPE_CHECKING: pass @@ -351,8 +352,8 @@ class AssetStager: # tidier. dbgsfx = '_d' if self.debug else '' - # Note: Needs updating when Python version changes (currently 3.11). - toplevelfiles: list[str] = [f'python311{dbgsfx}.dll'] + # Note: Needs updating when Python version changes (currently 3.12). + toplevelfiles: list[str] = [f'python312{dbgsfx}.dll'] if self.win_type == 'win': toplevelfiles += [ @@ -542,7 +543,7 @@ class AssetStager: '# Basically this will do:\n' '# import baenv; baenv.configure();' ' import babase; babase.app.run().\n' - 'exec python3.11 ba_data/python/baenv.py "$@"\n' + 'exec python3.12 ba_data/python/baenv.py "$@"\n' ) subprocess.run(['chmod', '+x', path], check=True) diff --git a/tools/batools/xcodeproject.py b/tools/batools/xcodeproject.py index 3a15fcad..c26042f8 100644 --- a/tools/batools/xcodeproject.py +++ b/tools/batools/xcodeproject.py @@ -36,37 +36,17 @@ def update_xcode_project( ) -> str: """Given an xcode project, update it for the current set of files.""" - pbasename = os.path.basename(path) - if pbasename.endswith('-mac.xcodeproj') or pbasename.endswith( - '-ios.xcodeproj' - ): - suffixes = ['.cc', '.h', '.m', '.mm'] - updater = Updater( - projroot, - path, - existing_data, - sorted( - p - for p in all_source_files - if os.path.splitext(p)[1] in suffixes - ), - # has_app_delegate_mm=True, - projname=projname, - ) - else: - suffixes = ['.cc', '.h', '.m', '.mm', '.swift'] - updater = Updater( - projroot, - path, - existing_data, - sorted( - p - for p in all_source_files - if os.path.splitext(p)[1] in suffixes - ), - # has_app_delegate_mm=True, - projname=projname, - ) + suffixes = ['.cc', '.h', '.m', '.mm', '.swift'] + updater = Updater( + projroot, + path, + existing_data, + sorted( + p for p in all_source_files if os.path.splitext(p)[1] in suffixes + ), + # has_app_delegate_mm=True, + projname=projname, + ) return updater.run(force=force) diff --git a/tools/efro/dataclassio/extras.py b/tools/efro/dataclassio/extras.py index c54b0c0d..b92788f7 100644 --- a/tools/efro/dataclassio/extras.py +++ b/tools/efro/dataclassio/extras.py @@ -5,9 +5,7 @@ from __future__ import annotations import dataclasses -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override if TYPE_CHECKING: from typing import Any diff --git a/tools/efro/error.py b/tools/efro/error.py index f0e561b7..5bf8bee5 100644 --- a/tools/efro/error.py +++ b/tools/efro/error.py @@ -3,11 +3,9 @@ """Common errors and related functionality.""" from __future__ import annotations -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, override import errno -from typing_extensions import override - if TYPE_CHECKING: from typing import Any diff --git a/tools/efro/log.py b/tools/efro/log.py index e33e10a1..0c1cf9a9 100644 --- a/tools/efro/log.py +++ b/tools/efro/log.py @@ -12,10 +12,9 @@ import itertools from enum import Enum from collections import deque from dataclasses import dataclass, field -from typing import TYPE_CHECKING, Annotated +from typing import TYPE_CHECKING, Annotated, override from threading import Thread, current_thread, Lock -from typing_extensions import override from efro.util import utc_now from efro.call import tpartial from efro.terminal import Clr diff --git a/tools/efro/message/_protocol.py b/tools/efro/message/_protocol.py index 57dd80a2..b9b01440 100644 --- a/tools/efro/message/_protocol.py +++ b/tools/efro/message/_protocol.py @@ -386,7 +386,6 @@ class MessageProtocol: f'\n' f'from typing import TYPE_CHECKING{ovld}{ovld2}\n' f'\n' - # f'from typing_extensions import override\n' f'{import_lines}' f'\n' f'if TYPE_CHECKING:\n' diff --git a/tools/efrotools/__init__.py b/tools/efrotools/__init__.py index 33cc1aa5..5b678587 100644 --- a/tools/efrotools/__init__.py +++ b/tools/efrotools/__init__.py @@ -12,22 +12,14 @@ live client or server code. from __future__ import annotations import os -import sys import json from pathlib import Path from typing import TYPE_CHECKING, overload + if TYPE_CHECKING: from typing import Sequence, Any, Literal -# Python major version we're using for all this stuff. -PYVER = '3.11' - -# Python binary assumed by these tools. -# PYTHON_BIN = f 'python{PYVER}' if platform.system() != 'Windows' else 'python' -# Update; just using the same executable used to launch us. -PYTHON_BIN = sys.executable - # Cache these since we may repeatedly fetch these in batch mode. _g_project_configs: dict[str, dict[str, Any]] = {} _g_local_configs: dict[str, dict[str, Any]] = {} @@ -173,26 +165,6 @@ def replace_section( return f'{before_begin}{replace_text}{after_end}' -def get_public_license(style: str) -> str: - """Return the license notice as used for our public facing stuff. - - 'style' arg can be 'python', 'c++', or 'makefile, or 'raw'. - """ - if style == 'raw': - return 'Released under the MIT License. See LICENSE for details.' - if style == 'python': - # Add a line at the bottom since our python-formatters tend to smush - # our code up against the license; this keeps things a bit more - # visually separated. - return '# Released under the MIT License. See LICENSE for details.' - if style == 'makefile': - # Basically same as python except without the last line. - return '# Released under the MIT License. See LICENSE for details.' - if style == 'c++': - return '// Released under the MIT License. See LICENSE for details.' - raise RuntimeError(f'Invalid style: {style}') - - def readfile(path: str | Path) -> str: """Read a utf-8 text file into a string.""" with open(path, encoding='utf-8') as infile: diff --git a/tools/efrotools/code.py b/tools/efrotools/code.py index 762c0961..06ca91dc 100644 --- a/tools/efrotools/code.py +++ b/tools/efrotools/code.py @@ -137,7 +137,7 @@ def check_cpplint(projroot: Path, full: bool) -> None: from concurrent.futures import ThreadPoolExecutor from multiprocessing import cpu_count - from efrotools import getprojectconfig, PYVER + from efrotools import getprojectconfig from efro.terminal import Clr os.chdir(projroot) @@ -183,7 +183,7 @@ def check_cpplint(projroot: Path, full: bool) -> None: def lint_file(filename: str) -> None: result = subprocess.call( [ - f'python{PYVER}', + sys.executable, # Currently (May 2023) seeing a bunch of warnings # about 'sre_compile deprecated'. Ignoring them. '-W', @@ -250,16 +250,16 @@ def get_code_filenames(projroot: Path, include_generated: bool) -> list[str]: return out -def black_base_args() -> list[str]: +def black_base_args(projroot: Path) -> list[str]: """Build base args for running black Python formatting.""" - from efrotools import PYVER + from efrotools.pyver import PYVER, get_project_python_executable pyver = 'py' + PYVER.replace('.', '') if len(pyver) != 5: raise RuntimeError('Py version filtering err.') return [ - f'python{PYVER}', + get_project_python_executable(projroot), '-m', 'black', '--target-version', @@ -283,14 +283,14 @@ def format_project_python_files(projroot: Path, full: bool) -> None: filenames = get_script_filenames(projroot) # Calc a config hash so we redo formatting after it changes. - confighash = get_string_hash(' '.join(black_base_args())) + confighash = get_string_hash(' '.join(black_base_args(projroot))) cache.update(filenames, confighash) dirtyfiles = cache.get_dirty_files() if dirtyfiles: # Run a single black command to batch everything. - cmd = black_base_args() + list(dirtyfiles) + cmd = black_base_args(projroot) + list(dirtyfiles) if subprocess.run(cmd, check=False).returncode != 0: raise CleanError( f'Black formatting failed for {len(dirtyfiles)} files.' @@ -307,14 +307,20 @@ def format_project_python_files(projroot: Path, full: bool) -> None: ) -def format_python_str(code: str) -> str: +def format_python_str(projroot: Path | str, code: str) -> str: """Run our Python formatting on the provided inline code.""" + if isinstance(projroot, str): + projroot = Path(projroot) - return subprocess.run( - black_base_args() + ['--code', code], - capture_output=True, - check=True, - ).stdout.decode() + cmd = black_base_args(projroot) + ['--code', code] + results = subprocess.run(cmd, capture_output=True, check=False) + if results.returncode == 0: + return results.stdout.decode() + + cmdprint = cmd[:-1] + [''] + raise RuntimeError( + f'Black command failed: {cmdprint}. stderr: {results.stderr.decode()}' + ) def _should_include_script(fnamefull: str) -> bool: diff --git a/tools/efrotools/genwrapper.py b/tools/efrotools/genwrapper.py new file mode 100644 index 00000000..36921296 --- /dev/null +++ b/tools/efrotools/genwrapper.py @@ -0,0 +1,79 @@ +# Released under the MIT License. See LICENSE for details. +# +"""Functionality related to android builds.""" +from __future__ import annotations + +import os +import sys +import stat +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + pass + +if __name__ == '__main__': + if len(sys.argv) not in (3, 4): + raise RuntimeError('Expected 2 args') + + from efrotools import getprojectconfig + from efrotools.project import ( + get_public_legal_notice, + get_non_public_legal_notice, + ) + + gentype = sys.argv[1] + path = sys.argv[2] + module = sys.argv[3] if len(sys.argv) > 3 else None + + # We technically could stick the 'python' or 'python3' path in, but + # let's go with the full versioned one just to keep it clear what + # we're using currently. Just need to make sure this gets re-run + # when that changes. + pybinpath = os.path.join( + os.path.abspath(os.getcwd()), '.venv', 'bin', 'python3.12' + ) + + public = getprojectconfig(projroot='.').get('public', False) + assert isinstance(public, bool) + + legalnotice: str = ( + get_public_legal_notice('raw') + if public + else get_non_public_legal_notice() + ) + if gentype == 'pcommand': + assert module is not None + contents = ( + f'#!{pybinpath}\n' + f'# {legalnotice}\n' + '# This file is autogenerated; do not hand edit.\n' + '#\n' + '"""Simple wrapper so pcommand uses our internal virtual' + ' environment."""\n' + f'from {module} import run_pcommand_main\n' + '\n' + 'if __name__ == "__main__":\n' + ' run_pcommand_main()\n' + ) + + elif gentype == 'cloudshell': + contents = ( + f'#!{pybinpath}\n' + f'# {legalnotice}\n' + '# This file is autogenerated; do not hand edit.\n' + '#\n' + '"""Simple wrapper so cloudshell uses our' + ' internal virtual environment."""\n' + 'from efrotoolsinternal.cloudshell import run_cloudshell_main\n' + '\n' + 'if __name__ == "__main__":\n' + ' run_cloudshell_main()\n' + ) + else: + raise RuntimeError(f'Unsupported gentype: {gentype}') + + with open(path, 'w', encoding='utf-8') as outfile: + outfile.write(contents) + os.chmod( + path, os.stat(path).st_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH + ) diff --git a/tools/efrotools/jsontools.py b/tools/efrotools/jsontools.py index 708bf382..bc140a50 100644 --- a/tools/efrotools/jsontools.py +++ b/tools/efrotools/jsontools.py @@ -5,9 +5,7 @@ from __future__ import annotations import json -from typing import TYPE_CHECKING - -from typing_extensions import override +from typing import TYPE_CHECKING, override if TYPE_CHECKING: from typing import Any diff --git a/tools/efrotools/message.py b/tools/efrotools/message.py index df77e936..e3a8b191 100644 --- a/tools/efrotools/message.py +++ b/tools/efrotools/message.py @@ -15,6 +15,7 @@ if TYPE_CHECKING: def standard_message_sender_gen_pcommand( + projroot: Path, basename: str, source_module: str, enable_sync_sends: bool, @@ -72,7 +73,7 @@ def standard_message_sender_gen_pcommand( enable_sync_sends=enable_sync_sends, enable_async_sends=enable_async_sends, ) - out = format_python_str(out) + out = format_python_str(projroot, out) print(f'Meta-building {Clr.BLD}{dst}{Clr.RST}') Path(dst).parent.mkdir(parents=True, exist_ok=True) @@ -81,6 +82,7 @@ def standard_message_sender_gen_pcommand( def standard_message_receiver_gen_pcommand( + projroot: Path, basename: str, source_module: str, is_async: bool, @@ -88,6 +90,7 @@ def standard_message_receiver_gen_pcommand( embedded: bool = False, ) -> None: """Used by pcommands generating efro.message receiver modules.""" + # pylint: disable=too-many-locals import efro.message from efro.terminal import Clr @@ -137,7 +140,7 @@ def standard_message_receiver_gen_pcommand( build_time_protocol_create_code=build_time_protocol_create_code, is_async=is_async, ) - out = format_python_str(out) + out = format_python_str(projroot, out) print(f'Meta-building {Clr.BLD}{dst}{Clr.RST}') Path(dst).parent.mkdir(parents=True, exist_ok=True) diff --git a/tools/efrotools/pcommands.py b/tools/efrotools/pcommands.py index 52e9440c..a5cbee2b 100644 --- a/tools/efrotools/pcommands.py +++ b/tools/efrotools/pcommands.py @@ -138,7 +138,7 @@ def xcoderun() -> None: def pyver() -> None: """Prints the Python version used by this project.""" - from efrotools import PYVER + from efrotools.pyver import PYVER pcommand.disallow_in_batch() @@ -625,7 +625,7 @@ def pytest() -> None: import os import platform import subprocess - from efrotools import getprojectconfig, PYTHON_BIN + from efrotools import getprojectconfig from efro.error import CleanError pcommand.disallow_in_batch() @@ -648,7 +648,7 @@ def pytest() -> None: # Do the thing. results = subprocess.run( - [PYTHON_BIN, '-m', 'pytest'] + sys.argv[2:], check=False + [sys.executable, '-m', 'pytest'] + sys.argv[2:], check=False ) if results.returncode != 0: sys.exit(results.returncode) diff --git a/tools/efrotools/project.py b/tools/efrotools/project.py new file mode 100644 index 00000000..b2587c8f --- /dev/null +++ b/tools/efrotools/project.py @@ -0,0 +1,42 @@ +# Released under the MIT License. See LICENSE for details. +# +"""Project related functionality.""" + +from __future__ import annotations + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from typing import Literal + + +def get_public_legal_notice( + style: Literal['python', 'c++', 'makefile', 'raw'] +) -> str: + """Return the license notice as used for our public facing stuff. + + 'style' arg can be 'python', 'c++', or 'makefile, or 'raw'. + """ + # FIXME: Probably don't need style here for the minimal amount we're + # doing with it now. + if style == 'raw': + return 'Released under the MIT License. See LICENSE for details.' + if style == 'python': + return '# Released under the MIT License. See LICENSE for details.' + if style == 'makefile': + return '# Released under the MIT License. See LICENSE for details.' + if style == 'c++': + return '// Released under the MIT License. See LICENSE for details.' + raise RuntimeError(f'Invalid style: {style}') + + +def get_non_public_legal_notice() -> str: + """Return the one line legal notice we expect private repo files to have.""" + # TODO: Move this to project config or somewhere not hard-coded. + return 'Copyright (c) 2011-2024 Eric Froemling' + + +def get_non_public_legal_notice_prev() -> str: + """Allows us to auto-update.""" + # TODO: Move this to project config or somewhere not hard-coded. + return 'Copyright (c) 2011-2023 Eric Froemling' diff --git a/tools/efrotools/pybuild.py b/tools/efrotools/pybuild.py index 6e7117e6..a06ff671 100644 --- a/tools/efrotools/pybuild.py +++ b/tools/efrotools/pybuild.py @@ -271,7 +271,7 @@ def build_apple(arch: str, debug: bool = False) -> None: '\t# Apply target Python patches\n' f'\tcd $$(PYTHON_SRCDIR-$({tword})) && ' 'patch -p1 < $(PROJECT_DIR)/patch/Python/Python.patch\n' - f'\t/opt/homebrew/opt/python@3.11/bin/python3.11' + f'\t/opt/homebrew/opt/python@3.12/bin/python3.12' ' ../../tools/pcommand python_apple_patch' f' $$(PYTHON_SRCDIR-$({tword}))\n' ), @@ -957,6 +957,12 @@ def gather(do_android: bool, do_apple: bool) -> None: # pylint: disable=too-many-statements # pylint: disable=too-many-branches + # Currently need to avoid using nested identical quotes in fstrings + # because black chokes on them, even though pylint wants us to. + # + # https://github.com/psf/black/issues/3746 + # pylint: disable=inconsistent-quotes + class CompileArch(Enum): """The exhaustive set of single architectures we build for. @@ -970,10 +976,10 @@ def gather(do_android: bool, do_apple: bool) -> None: ANDROID_X86_64 = 'android_x86_64' IOS_ARM64 = 'ios_arm64' IOS_SIM_ARM64 = 'ios_simulator_arm64' - IOS_SIM_X86_64 = 'ios_simulator_x86_64' + # IOS_SIM_X86_64 = 'ios_simulator_x86_64' TVOS_ARM64 = 'tvos_arm64' TVOS_SIM_ARM64 = 'tvos_simulator_arm64' - TVOS_SIM_X86_64 = 'tvos_simulator_x86_64' + # TVOS_SIM_X86_64 = 'tvos_simulator_x86_64' MAC_ARM64 = 'mac_arm64' MAC_X86_64 = 'mac_x86_64' @@ -1035,15 +1041,29 @@ def gather(do_android: bool, do_apple: bool) -> None: } # Where some support libraries got built to. + # NOTE: Mac builds here are universal which covers x86_64 and arm64, + # but for ios/tvos/etc. we just go with arm64. The only thing that + # leaves out these days is x86_64 simulator, but we don't need to care + # about that so it's not worth the complicated lipo setup to merge + # things. bases2 = { - 'mac': f'{bases["mac"]}/merge/macOS/macosx', - 'ios': f'{bases["ios"]}/merge/iOS/iphoneos', + # 'mac': f'{bases["mac"]}/merge/macOS/macosx', + 'mac': f'{bases["mac"]}/install/macOS/macosx', + # 'ios': f'{bases["ios"]}/merge/iOS/iphoneos', + 'ios': f'{bases["ios"]}/install/iOS/iphoneos.arm64', + # 'ios_simulator': ( + # f'{bases["ios_simulator"]}/merge/iOS/iphonesimulator' + # ), 'ios_simulator': ( - f'{bases["ios_simulator"]}/merge/iOS/iphonesimulator' + f'{bases["ios_simulator"]}/install/iOS/iphonesimulator.arm64' ), - 'tvos': f'{bases["tvos"]}/merge/tvOS/appletvos', + # 'tvos': f'{bases["tvos"]}/merge/tvOS/appletvos', + 'tvos': f'{bases["tvos"]}/install/tvOS/appletvos.arm64', + # 'tvos_simulator': ( + # f'{bases["tvos_simulator"]}/merge/tvOS/appletvsimulator' + # ), 'tvos_simulator': ( - f'{bases["tvos_simulator"]}/merge/tvOS/appletvsimulator' + f'{bases["tvos_simulator"]}/install/tvOS/appletvsimulator.arm64' ), 'android_arm': f'build/python_android_arm{bsuffix}/{apost2}', 'android_arm64': f'build/python_android_arm64{bsuffix}/{apost2}', @@ -1051,8 +1071,9 @@ def gather(do_android: bool, do_apple: bool) -> None: 'android_x86_64': f'build/python_android_x86_64{bsuffix}/{apost2}', } - # Groups should point to base sets of headers and pylibs that are - # used by all builds in the group. + # Groups should point to base sets of headers and pylibs that + # are used by all builds in the group. + # # Note we point to a bunch of bases here but that is only for # sanity check purposes (to make sure they are all identical); # only the first actually gets used. @@ -1128,7 +1149,8 @@ def gather(do_android: bool, do_apple: bool) -> None: out = [ ( f'{bases2[base]}/python-{PY_VER_EXACT_APPLE}' - f'/libPython{PY_VER_APPLE}.a' + # f'/libPython{PY_VER_APPLE}.a' + f'/lib/libpython{PY_VER_APPLE}{debug_d}.a' ), f'{bases2[base]}/openssl-{OPENSSL_VER_APPLE}/lib/libssl.a', f'{bases2[base]}/openssl-{OPENSSL_VER_APPLE}/lib/libcrypto.a', @@ -1162,13 +1184,17 @@ def gather(do_android: bool, do_apple: bool) -> None: # that seems odd but I guess it's right?... config_headers={ CompileArch.MAC_ARM64: bases2['mac'] - + f'/python-{PY_VER_EXACT_APPLE}/Headers/pyconfig.h', + # + f'/python-{PY_VER_EXACT_APPLE}/Headers/pyconfig.h', + + f'/python-{PY_VER_EXACT_APPLE}/' + f'include/python{PY_VER_APPLE}{debug_d}/pyconfig.h', CompileArch.MAC_X86_64: bases2['mac'] - + f'/python-{PY_VER_EXACT_APPLE}/Headers/pyconfig.h', + # + f'/python-{PY_VER_EXACT_APPLE}/Headers/pyconfig.h', + + f'/python-{PY_VER_EXACT_APPLE}/' + f'include/python{PY_VER_APPLE}{debug_d}/pyconfig.h', }, sys_config_scripts=[ bases2['mac'] - + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' + + f'/python-{PY_VER_EXACT_APPLE}/lib/python{PY_VER_APPLE}/' f'_sysconfigdata_{debug_d}_darwin_darwin.py' ], libs=_apple_libs('mac'), @@ -1178,15 +1204,19 @@ def gather(do_android: bool, do_apple: bool) -> None: group=groups['apple'], config_headers={ CompileArch.IOS_ARM64: bases2['ios'] - + f'/python-{PY_VER_EXACT_APPLE}/Headers/pyconfig-arm64.h', + # + f'/python-{PY_VER_EXACT_APPLE}/' + # f'Headers/pyconfig-arm64.h', + + f'/python-{PY_VER_EXACT_APPLE}/' + f'include/python{PY_VER_APPLE}{debug_d}/pyconfig.h', }, sys_config_scripts=[ - bases2['ios'] - + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' - f'_sysconfigdata_{debug_d}_ios_iphoneos.py', - bases2['ios'] - + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' - f'_sysconfigdata_{debug_d}_ios_iphoneos_arm64.py', + # bases2['ios'] + # + f'/python-{PY_VER_EXACT_APPLE}/' + # f'lib/python{PY_VER_APPLE}/' + # f'_sysconfigdata_{debug_d}_ios_iphoneos.py', + bases2['ios'] + f'/python-{PY_VER_EXACT_APPLE}/' + f'lib/python{PY_VER_APPLE}/' + f'_sysconfigdata_{debug_d}_ios_iphoneos-arm64.py', ], libs=_apple_libs('ios'), ), @@ -1195,20 +1225,24 @@ def gather(do_android: bool, do_apple: bool) -> None: group=groups['apple'], config_headers={ CompileArch.IOS_SIM_ARM64: bases2['ios_simulator'] - + f'/python-{PY_VER_EXACT_APPLE}/Headers/pyconfig-arm64.h', - CompileArch.IOS_SIM_X86_64: bases2['ios_simulator'] - + f'/python-{PY_VER_EXACT_APPLE}/Headers/pyconfig-x86_64.h', + # + f'/python-{PY_VER_EXACT_APPLE}/' + # 'Headers/pyconfig-arm64.h', + + f'/python-{PY_VER_EXACT_APPLE}/' + f'include/python{PY_VER_APPLE}{debug_d}/pyconfig.h', + # CompileArch.IOS_SIM_X86_64: bases2['ios_simulator'] + # + f'/python-{PY_VER_EXACT_APPLE}/' + # 'Headers/pyconfig-x86_64.h', }, sys_config_scripts=[ - bases2['ios_simulator'] - + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' - f'_sysconfigdata_{debug_d}_ios_iphonesimulator.py', - bases2['ios_simulator'] - + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' - f'_sysconfigdata_{debug_d}_ios_iphonesimulator_arm64.py', - bases2['ios_simulator'] - + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' - f'_sysconfigdata_{debug_d}_ios_iphonesimulator_x86_64.py', + # bases2['ios_simulator'] + # + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' + # f'_sysconfigdata_{debug_d}_ios_iphonesimulator.py', + bases2['ios_simulator'] + f'/python-{PY_VER_EXACT_APPLE}/' + f'lib/python{PY_VER_APPLE}/' + f'_sysconfigdata_{debug_d}_ios_iphonesimulator-arm64.py', + # bases2['ios_simulator'] + # + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' + # f'_sysconfigdata_{debug_d}_ios_iphonesimulator_x86_64.py', ], libs=_apple_libs('ios_simulator'), ), @@ -1217,15 +1251,18 @@ def gather(do_android: bool, do_apple: bool) -> None: group=groups['apple'], config_headers={ CompileArch.TVOS_ARM64: bases2['tvos'] - + f'/python-{PY_VER_EXACT_APPLE}/Headers/pyconfig-arm64.h', + + f'/python-{PY_VER_EXACT_APPLE}/' + f'include/python{PY_VER_APPLE}{debug_d}/pyconfig.h', + # + f'/python-{PY_VER_EXACT_APPLE}/ + # Headers/pyconfig-arm64.h', }, sys_config_scripts=[ - bases2['tvos'] - + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' - f'_sysconfigdata_{debug_d}_tvos_appletvos.py', - bases2['tvos'] - + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' - f'_sysconfigdata_{debug_d}_tvos_appletvos_arm64.py', + # bases2['tvos'] + # + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' + # f'_sysconfigdata_{debug_d}_tvos_appletvos.py', + bases2['tvos'] + f'/python-{PY_VER_EXACT_APPLE}/' + f'lib/python{PY_VER_APPLE}/' + f'_sysconfigdata_{debug_d}_tvos_appletvos-arm64.py', ], libs=_apple_libs('tvos'), ), @@ -1234,20 +1271,23 @@ def gather(do_android: bool, do_apple: bool) -> None: group=groups['apple'], config_headers={ CompileArch.TVOS_SIM_ARM64: bases2['tvos_simulator'] - + f'/python-{PY_VER_EXACT_APPLE}/Headers/pyconfig-arm64.h', - CompileArch.TVOS_SIM_X86_64: bases2['ios_simulator'] - + f'/python-{PY_VER_EXACT_APPLE}/Headers/pyconfig-x86_64.h', + + f'/python-{PY_VER_EXACT_APPLE}/' + f'include/python{PY_VER_APPLE}{debug_d}/pyconfig.h', + # CompileArch.TVOS_SIM_X86_64: bases2['ios_simulator'] + # + f'/python-{PY_VER_EXACT_APPLE}/' + # f'Headers/pyconfig-x86_64.h', }, sys_config_scripts=[ - bases2['tvos_simulator'] - + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' - f'_sysconfigdata_{debug_d}_tvos_appletvsimulator.py', - bases2['tvos_simulator'] - + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' - f'_sysconfigdata_{debug_d}_tvos_appletvsimulator_arm64.py', - bases2['tvos_simulator'] - + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' - f'_sysconfigdata_{debug_d}_tvos_appletvsimulator_x86_64.py', + # bases2['tvos_simulator'] + # + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' + # f'_sysconfigdata_{debug_d}_tvos_appletvsimulator.py', + bases2['tvos_simulator'] + f'/python-{PY_VER_EXACT_APPLE}/' + f'lib/python{PY_VER_APPLE}/' + f'_sysconfigdata_{debug_d}_tvos_appletvsimulator-arm64.py', + # bases2['tvos_simulator'] + # + f'/python-{PY_VER_EXACT_APPLE}/python-stdlib/' + # f'_sysconfigdata_{debug_d}' + # '_tvos_appletvsimulator_x86_64.py', ], libs=_apple_libs('tvos_simulator'), ), @@ -1259,8 +1299,10 @@ def gather(do_android: bool, do_apple: bool) -> None: + f'/usr/include/{alibname}/pyconfig.h' }, sys_config_scripts=[ - bases['android_arm'] + f'/usr/lib/python{PY_VER_ANDROID}/' - f'_sysconfigdata_{debug_d}_linux_arm-linux-androideabi.py' + bases['android_arm'] + + f'/usr/lib/python{PY_VER_ANDROID}/' + # f'_sysconfigdata_{debug_d}_linux_arm-linux-androideabi.py' + f'_sysconfigdata_{debug_d}_linux_.py' ], libs=_android_libs('android_arm'), libinst='android_armeabi-v7a', @@ -1275,7 +1317,8 @@ def gather(do_android: bool, do_apple: bool) -> None: sys_config_scripts=[ bases['android_arm64'] + f'/usr/lib/python{PY_VER_ANDROID}/' f'_sysconfigdata_{debug_d}' - f'_linux_aarch64-linux-android.py' + # f'_linux_aarch64-linux-android.py' + f'_linux_.py' ], libs=_android_libs('android_arm64'), libinst='android_arm64-v8a', @@ -1290,7 +1333,8 @@ def gather(do_android: bool, do_apple: bool) -> None: sys_config_scripts=[ bases['android_x86'] + f'/usr/lib/python{PY_VER_ANDROID}/' f'_sysconfigdata_{debug_d}' - f'_linux_i686-linux-android.py' + # f'_linux_i686-linux-android.py' + f'_linux_.py' ], libs=_android_libs('android_x86'), libinst='android_x86', @@ -1306,13 +1350,29 @@ def gather(do_android: bool, do_apple: bool) -> None: bases['android_x86_64'] + f'/usr/lib/python{PY_VER_ANDROID}/' f'_sysconfigdata_{debug_d}' - f'_linux_x86_64-linux-android.py' + # f'_linux_x86_64-linux-android.py' + f'_linux_.py' ], libs=_android_libs('android_x86_64'), libinst='android_x86_64', ), ] + # if do_apple: + # # The default apple builds spit out static libs which are + # # then linked into shared libs that python loads + # # dynamically. We, however, want to build everything + # # statically, so we need to use lipo to combine some + # # architectures such as x86_64/arm64 simulator builds. XCode + # # allows specifying paths per architecture in some cases but + # # not all, which is why we need this. + # print('LIPO-ING STANDALONE LIBS') + # subprocess.run( + # ['rm', '-rf', bases2['mac'] + '/efromerge'], check=True + # ) + # subprocess.run(['mkdir', bases2['mac'] + # + '/efromerge'], check=True) + # Assemble per-group stuff. for grpname, grp in groups.items(): if not do_android and grpname == 'android': @@ -1381,7 +1441,8 @@ def gather(do_android: bool, do_apple: bool) -> None: f'\n' f'#elif BA_OSTYPE_IOS and defined(__x86_64__)\n' f'#if TARGET_OS_SIMULATOR\n' - f'#include "pyconfig_{CompileArch.IOS_SIM_X86_64.value}.h"\n' + f'#error x86 simulator no longer supported here.\n' + # f'#include "pyconfig_{CompileArch.IOS_SIM_X86_64.value}.h"\n' f'#else\n' f'#error this platform combo should not be possible\n' f'#endif // TARGET_OS_SIMULATOR\n' @@ -1395,7 +1456,8 @@ def gather(do_android: bool, do_apple: bool) -> None: f'\n' f'#elif BA_OSTYPE_TVOS and defined(__x86_64__)\n' f'#if TARGET_OS_SIMULATOR\n' - f'#include "pyconfig_{CompileArch.TVOS_SIM_X86_64.value}.h"\n' + f'#error x86 simulator no longer supported here.\n' + # f'#include "pyconfig_{CompileArch.TVOS_SIM_X86_64.value}.h"\n' f'#else\n' f'#error this platform combo should not be possible\n' f'#endif // TARGET_OS_SIMULATOR\n' @@ -1500,10 +1562,14 @@ def gather(do_android: bool, do_apple: bool) -> None: pylib_dst, os.path.basename(script) ) if os.path.exists(scriptdst): - raise RuntimeError( - 'Multiple sys-config-scripts trying to write' - f" to '{scriptdst}'." + print( + 'WARNING TEMPORARILY ALLOWING' + ' REPEAT SYS CONFIG SCRIPTS' ) + # raise RuntimeError( + # 'Multiple sys-config-scripts trying to write' + # f" to '{scriptdst}'." + # ) subprocess.run(['cp', script, pylib_dst], check=True) # Copy in this build's libs. diff --git a/tools/efrotools/pyver.py b/tools/efrotools/pyver.py new file mode 100644 index 00000000..5722dd49 --- /dev/null +++ b/tools/efrotools/pyver.py @@ -0,0 +1,81 @@ +# Released under the MIT License. See LICENSE for details. +# +"""This module defines the major Python version we are using in the project. + +Tools that need to do some work or regenerate files when this changes can +add this submodule file as a dependency. +""" +from pathlib import Path + +# import subprocess + +PYVER = '3.12' +PYVERNODOT = PYVER.replace('.', '') + +_checked_valid_sys_executable = False # pylint: disable=invalid-name +_valid_sys_executable: str | None = None + + +# def get_valid_sys_executable() -> str: +# """Attempt to get a valid Python interpreter path. + +# Using sys.executable for this purpose may return the path to the +# executable containing the embedded Python, which may not be a standard +# iterpreter. +# """ + +# pyverstr = f'{sys.version_info.major}.{sys.version_info.minor}' + +# global _checked_valid_sys_executable +# global _valid_sys_executable +# if not _checked_valid_sys_executable: + +# # First look at sys.executable to see if it seems like a standard +# # python interpreter. +# try: +# output = subprocess.run( +# [sys.executable, '--version'], check=True, capture_output=True +# ).stdout.decode() +# if output.startswith(f'Python {pyverstr}'): +# _valid_sys_executable = sys.executable +# except Exception: +# import logging + +# logging.exception( +# 'Error checking sys.executable in get_valid_sys_executable' +# ) + +# if _valid_sys_executable is None: +# # For now, as a fallback, just go with 'pythonX.Y'. +# _valid_sys_executable = f'python{pyverstr}' + +# # As a fallback, look for bin/pythonX.Y under our sys.prefix. +# # prefixpath = os.path.join( +# sys.prefix, 'bin', f'python{pyverstr}') +# # if os.path.exists(prefixpath): +# # _valid_sys_executable = prefixpath + +# _checked_valid_sys_executable = True + +# if _valid_sys_executable is None: +# raise RuntimeError('Have no valid sys executable.') + +# return _valid_sys_executable + + +def get_project_python_executable(projroot: Path | str) -> str: + """Return the path to a standalone Python interpreter for this project. + + In some cases, using sys.executable will return an executable such as + a game binary that contains an embedded Python but is not actually a + standard interpreter. Tool functionality can use this instead when an + interpreter is needed. + """ + if isinstance(projroot, str): + projroot = Path(projroot) + path = Path(projroot, f'.venv/bin/python{PYVER}') + if not path.exists(): + raise RuntimeError( + f"Expected project Python executable not found at '{path}'." + ) + return str(path) diff --git a/tools/efrotools/toolconfig.py b/tools/efrotools/toolconfig.py index bb993a5c..0610ad77 100644 --- a/tools/efrotools/toolconfig.py +++ b/tools/efrotools/toolconfig.py @@ -10,6 +10,7 @@ for some tool defaults across all my projects. from __future__ import annotations +from pathlib import Path from typing import TYPE_CHECKING from efro.terminal import Clr @@ -67,7 +68,8 @@ def _filter_tool_config(projroot: Path, cfg: str) -> str: # pylint: disable=too-many-locals import textwrap - from efrotools import getprojectconfig, PYVER + from efrotools import getprojectconfig + from efrotools.pyver import PYVER # Emacs dir-locals defaults. Note that these contain other # replacements so need to be at the top. @@ -118,15 +120,15 @@ def _filter_tool_config(projroot: Path, cfg: str) -> str: # Stick project-root wherever they want. cfg = cfg.replace('__EFRO_PROJECT_ROOT__', str(projroot)) - # Project Python version; '3.11', etc. + # Project Python version; '3.12', etc. name = '__EFRO_PY_VER__' if name in cfg: cfg = cfg.replace(name, PYVER) - # Project Python version as a binary name; 'python3.11', etc. + # Project Python version as a binary name; 'python3.12', etc. name = '__EFRO_PY_BIN__' if name in cfg: - cfg = cfg.replace(name, f'python{PYVER}') + cfg = cfg.replace(name, str(Path(projroot, '.venv', 'bin', 'python'))) # Colon-separated list of project Python paths. name = '__EFRO_PYTHON_PATHS__' @@ -192,7 +194,7 @@ truthy-function, unused-awaitable, explicit-override if name in cfg: from efrotools.code import black_base_args - bargs = black_base_args() + bargs = black_base_args(projroot) assert bargs[2] == 'black' cfg = cfg.replace( name, '(' + ' '.join(f'"{b}"' for b in bargs[3:]) + ')' diff --git a/tools/spinoff b/tools/spinoff index eff7f42e..15b9f8fe 100755 --- a/tools/spinoff +++ b/tools/spinoff @@ -1,12 +1,45 @@ -#!/usr/bin/env python3.11 +#!/usr/bin/env python3.12 # Released under the MIT License. See LICENSE for details. # """Command line wrapper for the spinoff system.""" from __future__ import annotations +import os +import sys +import subprocess if __name__ == '__main__': from batools.spinoff import spinoff_main - spinoff_main() + # Our initial invocation actually just sets up the env for our + # *real* invocation (so we can run under our desired venv/etc.) + if os.environ.get('BA_SPINOFF_HAVE_ENV') != '1': + + # Our shebang line gives us a generic 'pythonX.Y' environment, but + # we actually want to run under the virtual-env of the source + # project so we have all the pip stuff we expect. So if we are + # getting invoked via a symlink we assume it points to the source + # project, and if not then we assume we are the source project. + if os.path.islink(sys.argv[0]): + src_spinoff_path = os.path.realpath(sys.argv[0]) + else: + src_spinoff_path = sys.argv[0] + + src_proj_root = os.path.abspath( + os.path.join(os.path.dirname(src_spinoff_path), '..') + ) + src_proj_python = os.path.join(src_proj_root, '.venv/bin/python3.12') + + cmd = [src_proj_python, sys.argv[0]] + sys.argv[1:] + + # Make sure the src project is properly bootstrapped. + subprocess.run(['make', 'prereqs'], check=True, cwd=src_proj_root) + + # Finally, run for realz. + subprocess.run( + cmd, check=True, env=dict(os.environ, BA_SPINOFF_HAVE_ENV='1') + ) + + else: + spinoff_main()