Imported Upstream version 3.9.8 upstream/3.9.8
authorDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 25 Jan 2022 23:27:52 +0000 (08:27 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 25 Jan 2022 23:27:52 +0000 (08:27 +0900)
422 files changed:
Doc/c-api/call.rst
Doc/c-api/gcsupport.rst
Doc/c-api/init.rst
Doc/c-api/type.rst
Doc/c-api/typeobj.rst
Doc/data/python3.9.abi
Doc/distributing/index.rst
Doc/distutils/apiref.rst
Doc/extending/newtypes.rst
Doc/faq/design.rst
Doc/faq/gui.rst
Doc/faq/installed.rst
Doc/faq/programming.rst
Doc/howto/functional.rst
Doc/includes/sqlite3/text_factory.py
Doc/install/index.rst
Doc/installing/index.rst
Doc/library/argparse.rst
Doc/library/array.rst
Doc/library/ast.rst
Doc/library/asyncio-stream.rst
Doc/library/cgi.rst
Doc/library/codecs.rst
Doc/library/collections.abc.rst
Doc/library/configparser.rst
Doc/library/ctypes.rst
Doc/library/datetime.rst
Doc/library/dbm.rst
Doc/library/enum.rst
Doc/library/exceptions.rst
Doc/library/functions.rst
Doc/library/functools.rst
Doc/library/hashlib.rst
Doc/library/html.entities.rst
Doc/library/http.cookiejar.rst
Doc/library/importlib.rst
Doc/library/intro.rst
Doc/library/ipaddress.rst
Doc/library/json.rst
Doc/library/logging.config.rst
Doc/library/logging.rst
Doc/library/mmap.rst
Doc/library/multiprocessing.rst
Doc/library/os.rst
Doc/library/pathlib.rst
Doc/library/platform.rst
Doc/library/plistlib.rst
Doc/library/profile.rst
Doc/library/random.rst
Doc/library/re.rst
Doc/library/select.rst
Doc/library/site.rst
Doc/library/socket.rst
Doc/library/sqlite3.rst
Doc/library/ssl.rst
Doc/library/stat.rst
Doc/library/subprocess.rst
Doc/library/sysconfig.rst
Doc/library/test.rst
Doc/library/tkinter.ttk.rst
Doc/library/tracemalloc.rst
Doc/library/types.rst
Doc/library/typing.rst
Doc/library/urllib.request.rst
Doc/library/venv.rst
Doc/library/weakref.rst
Doc/library/webbrowser.rst
Doc/library/xml.dom.minidom.rst
Doc/license.rst
Doc/reference/compound_stmts.rst
Doc/reference/datamodel.rst
Doc/reference/executionmodel.rst
Doc/requirements.txt
Doc/tutorial/appetite.rst
Doc/tutorial/floatingpoint.rst
Doc/tutorial/introduction.rst
Doc/tutorial/modules.rst
Doc/using/cmdline.rst
Doc/using/mac.rst
Doc/whatsnew/2.0.rst
Doc/whatsnew/2.7.rst
Doc/whatsnew/3.1.rst
Include/Python.h
Include/abstract.h
Include/cpython/dictobject.h
Include/cpython/unicodeobject.h
Include/internal/pycore_code.h
Include/internal/pycore_object.h
Include/internal/pycore_traceback.h
Include/patchlevel.h
Include/pytime.h
Lib/_osx_support.py
Lib/argparse.py
Lib/asyncio/base_events.py
Lib/asyncio/events.py
Lib/asyncio/runners.py
Lib/asyncio/subprocess.py
Lib/asyncio/tasks.py
Lib/asyncio/unix_events.py
Lib/compileall.py
Lib/concurrent/futures/thread.py
Lib/contextlib.py
Lib/ctypes/_aix.py
Lib/ctypes/test/test_structures.py
Lib/difflib.py
Lib/distutils/ccompiler.py
Lib/distutils/command/check.py
Lib/distutils/msvc9compiler.py
Lib/distutils/tests/test_bdist_rpm.py
Lib/distutils/unixccompiler.py
Lib/doctest.py
Lib/email/_parseaddr.py
Lib/email/contentmanager.py
Lib/encodings/raw_unicode_escape.py
Lib/encodings/unicode_escape.py
Lib/ensurepip/__init__.py
Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl [deleted file]
Lib/ensurepip/_bundled/pip-21.2.4-py3-none-any.whl [new file with mode: 0644]
Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl [deleted file]
Lib/ensurepip/_bundled/setuptools-58.1.0-py3-none-any.whl [new file with mode: 0644]
Lib/functools.py
Lib/graphlib.py
Lib/html/parser.py
Lib/http/client.py
Lib/idlelib/ChangeLog
Lib/idlelib/help.html
Lib/idlelib/help_about.py
Lib/idlelib/idle_test/htest.py
Lib/idlelib/idle_test/mock_tk.py
Lib/idlelib/idle_test/test_config_key.py
Lib/idlelib/idle_test/test_macosx.py
Lib/idlelib/idle_test/test_multicall.py
Lib/idlelib/idle_test/test_pyparse.py
Lib/idlelib/idle_test/test_query.py
Lib/idlelib/pyshell.py
Lib/idlelib/run.py
Lib/inspect.py
Lib/lib2to3/fixes/fix_metaclass.py
Lib/lib2to3/fixes/fix_paren.py
Lib/lib2to3/tests/data/py2_test_grammar.py
Lib/lib2to3/tests/data/py3_test_grammar.py
Lib/linecache.py
Lib/logging/handlers.py
Lib/mimetypes.py
Lib/msilib/schema.py
Lib/pickle.py
Lib/pkgutil.py
Lib/pydoc_data/topics.py
Lib/shutil.py
Lib/sqlite3/__init__.py
Lib/sqlite3/test/dbapi.py
Lib/tarfile.py
Lib/tempfile.py
Lib/test/_test_multiprocessing.py
Lib/test/ann_module5.py [new file with mode: 0644]
Lib/test/ann_module6.py [new file with mode: 0644]
Lib/test/datetimetester.py
Lib/test/decimaltestdata/abs.decTest
Lib/test/decimaltestdata/extra.decTest
Lib/test/libregrtest/main.py
Lib/test/libregrtest/refleak.py
Lib/test/libregrtest/setup.py
Lib/test/pickletester.py
Lib/test/support/__init__.py
Lib/test/support/hashlib_helper.py
Lib/test/support/testresult.py
Lib/test/test__xxsubinterpreters.py
Lib/test/test_argparse.py
Lib/test/test_asyncgen.py
Lib/test/test_asyncio/__init__.py
Lib/test/test_asyncio/test_events.py
Lib/test/test_asyncio/test_queues.py
Lib/test/test_asyncio/test_streams.py
Lib/test/test_asyncio/test_subprocess.py
Lib/test/test_asyncio/test_tasks.py
Lib/test/test_bdb.py
Lib/test/test_bigaddrspace.py
Lib/test/test_bigmem.py
Lib/test/test_bool.py
Lib/test/test_bz2.py
Lib/test/test_c_locale_coercion.py
Lib/test/test_capi.py
Lib/test/test_cmd_line.py
Lib/test/test_cmd_line_script.py
Lib/test/test_codecs.py
Lib/test/test_collections.py
Lib/test/test_compileall.py
Lib/test/test_complex.py
Lib/test/test_concurrent_futures.py
Lib/test/test_contextlib.py
Lib/test/test_contextlib_async.py
Lib/test/test_csv.py
Lib/test/test_dataclasses.py
Lib/test/test_datetime.py
Lib/test/test_dbm.py
Lib/test/test_decimal.py
Lib/test/test_descr.py
Lib/test/test_devpoll.py
Lib/test/test_dict.py
Lib/test/test_dict_version.py
Lib/test/test_difflib.py
Lib/test/test_dis.py
Lib/test/test_distutils.py
Lib/test/test_doctest.py
Lib/test/test_doctest2.py
Lib/test/test_dtrace.py
Lib/test/test_email/test_email.py
Lib/test/test_email/test_message.py
Lib/test/test_embed.py
Lib/test/test_exceptions.py
Lib/test/test_fcntl.py
Lib/test/test_filecmp.py
Lib/test/test_fileio.py
Lib/test/test_format.py
Lib/test/test_ftplib.py
Lib/test/test_functools.py
Lib/test/test_future.py
Lib/test/test_gc.py
Lib/test/test_gdb.py
Lib/test/test_genericalias.py
Lib/test/test_global.py
Lib/test/test_graphlib.py
Lib/test/test_gzip.py
Lib/test/test_http_cookiejar.py
Lib/test/test_httpservers.py
Lib/test/test_importlib/source/test_source_encoding.py
Lib/test/test_importlib/test_locks.py
Lib/test/test_importlib/test_threaded_import.py
Lib/test/test_inspect.py
Lib/test/test_io.py
Lib/test/test_isinstance.py
Lib/test/test_iter.py
Lib/test/test_json/test_speedups.py
Lib/test/test_lltrace.py
Lib/test/test_locale.py
Lib/test/test_logging.py
Lib/test/test_lzma.py
Lib/test/test_mailbox.py
Lib/test/test_math.py
Lib/test/test_mimetypes.py
Lib/test/test_multibytecodec.py
Lib/test/test_optparse.py
Lib/test/test_ossaudiodev.py
Lib/test/test_pathlib.py
Lib/test/test_pdb.py
Lib/test/test_pickle.py
Lib/test/test_pickletools.py
Lib/test/test_pipes.py
Lib/test/test_pkgutil.py
Lib/test/test_poll.py
Lib/test/test_poplib.py
Lib/test/test_posix.py
Lib/test/test_profile.py
Lib/test/test_pydoc.py
Lib/test/test_range.py
Lib/test/test_readline.py
Lib/test/test_resource.py
Lib/test/test_sax.py
Lib/test/test_selectors.py
Lib/test/test_shelve.py
Lib/test/test_shutil.py
Lib/test/test_socket.py
Lib/test/test_ssl.py
Lib/test/test_strftime.py
Lib/test/test_support.py
Lib/test/test_sys.py
Lib/test/test_tarfile.py
Lib/test/test_tcl.py
Lib/test/test_tempfile.py
Lib/test/test_threading.py
Lib/test/test_threadsignals.py
Lib/test/test_time.py
Lib/test/test_timeout.py
Lib/test/test_tk.py
Lib/test/test_tools/test_md5sum.py
Lib/test/test_traceback.py
Lib/test/test_tracemalloc.py
Lib/test/test_ttk_guionly.py
Lib/test/test_ttk_textonly.py
Lib/test/test_typing.py
Lib/test/test_unicode_file.py
Lib/test/test_unicode_file_functions.py
Lib/test/test_unittest.py
Lib/test/test_unparse.py
Lib/test/test_urllib2_localnet.py
Lib/test/test_venv.py
Lib/test/test_weakref.py
Lib/test/test_winconsoleio.py
Lib/test/test_winreg.py
Lib/test/test_wsgiref.py
Lib/test/test_xml_etree.py
Lib/test/test_xmlrpc.py
Lib/test/test_xmlrpc_net.py
Lib/test/test_zipimport.py
Lib/test/test_zoneinfo/test_zoneinfo.py
Lib/threading.py
Lib/tkinter/__init__.py
Lib/tkinter/test/runtktests.py [deleted file]
Lib/tkinter/test/test_tkinter/test_colorchooser.py
Lib/tkinter/test/test_tkinter/test_font.py
Lib/tkinter/test/test_tkinter/test_images.py
Lib/tkinter/test/test_tkinter/test_loadtk.py
Lib/tkinter/test/test_tkinter/test_misc.py
Lib/tkinter/test/test_tkinter/test_simpledialog.py
Lib/tkinter/test/test_tkinter/test_text.py
Lib/tkinter/test/test_tkinter/test_variables.py
Lib/tkinter/test/test_tkinter/test_widgets.py
Lib/tkinter/test/test_ttk/test_extensions.py
Lib/tkinter/test/test_ttk/test_functions.py [deleted file]
Lib/tkinter/test/test_ttk/test_style.py
Lib/tkinter/test/test_ttk/test_widgets.py
Lib/tkinter/ttk.py
Lib/typing.py
Lib/unittest/async_case.py
Lib/unittest/case.py
Lib/unittest/mock.py
Lib/unittest/test/test_async_case.py
Lib/unittest/test/test_skipping.py
Lib/unittest/test/testmock/testsealable.py
Lib/venv/__init__.py
Lib/venv/scripts/common/Activate.ps1
Lib/wsgiref/validate.py
Lib/xmlrpc/client.py
Lib/zoneinfo/_zoneinfo.py
Mac/BuildScript/bpo-44828-filedialog-crash-monterey.patch [new file with mode: 0644]
Mac/BuildScript/build-installer.py
Mac/BuildScript/resources/ReadMe.rtf
Mac/IDLE/IDLE.app/Contents/Resources/idlemain.py
Mac/PythonLauncher/MyAppDelegate.m
Mac/README.rst
Mac/Resources/framework/Info.plist.in
Makefile.pre.in
Misc/ACKS
Misc/NEWS
Modules/_asynciomodule.c
Modules/_codecsmodule.c
Modules/_cryptmodule.c
Modules/_csv.c
Modules/_ctypes/_ctypes_test.c
Modules/_ctypes/callproc.c
Modules/_ctypes/cfield.c
Modules/_ctypes/ctypes.h
Modules/_datetimemodule.c
Modules/_gdbmmodule.c
Modules/_io/bufferedio.c
Modules/_math.c
Modules/_pickle.c
Modules/_sqlite/connection.c
Modules/_sre.c
Modules/_testcapimodule.c
Modules/_testmultiphase.c
Modules/_tkinter.c
Modules/_tracemalloc.c
Modules/_zoneinfo.c
Modules/arraymodule.c
Modules/clinic/_codecsmodule.c.h
Modules/clinic/_gdbmmodule.c.h
Modules/clinic/arraymodule.c.h
Modules/expat/xmlparse.c
Modules/expat/xmltok.c
Modules/gc_weakref.txt
Modules/getbuildinfo.c
Modules/getpath.c
Modules/hashlib.h
Modules/makesetup
Modules/mathmodule.c
Modules/posixmodule.c
Modules/sha1module.c
Modules/socketmodule.c
Modules/syslogmodule.c
Modules/timemodule.c
Modules/zlibmodule.c
Objects/abstract.c
Objects/descrobject.c
Objects/floatobject.c
Objects/genericaliasobject.c
Objects/listobject.c
Objects/listsort.txt
Objects/obmalloc.c
Objects/rangeobject.c
Objects/setobject.c
Objects/typeobject.c
Objects/unicodeobject.c
PC/getpathp.c
PC/pylauncher.rc
PC/pyshellext.rc
PC/python_exe.rc
PC/python_nt.rc
PC/pythonw_exe.rc
PC/sqlite3.rc
PCbuild/get_external.py
PCbuild/lib.pyproj
Parser/pegen/parse.c
Parser/pegen/parse_string.c
Parser/pegen/pegen.c
Programs/_testembed.c
Python/ast.c
Python/bootstrap_hash.c
Python/dynload_hpux.c
Python/errors.c
Python/fileutils.c
Python/import.c
Python/importdl.c
Python/initconfig.c
Python/pathconfig.c
Python/pythonrun.c
Python/pytime.c
Python/thread_pthread.h
README.rst
Tools/clinic/clinic.py
Tools/peg_generator/pegen/c_generator.py
Tools/peg_generator/pegen/first_sets.py
Tools/peg_generator/scripts/download_pypi_packages.py
Tools/pynche/ColorDB.py
Tools/scripts/dutree.doc
Tools/scripts/pep384_macrocheck.py
Tools/ssl/multissltests.py
Tools/stringbench/stringbench.py
configure
configure.ac
pyconfig.h.in
setup.py

index 31dc9c8031fdb6d3af92aacd8955b206a5bade91..739b5e97d15150d36dd064394d9e90b7797c2e43 100644 (file)
@@ -185,7 +185,7 @@ Object Calling API
 Various functions are available for calling a Python object.
 Each converts its arguments to a convention supported by the called object â€“
 either *tp_call* or vectorcall.
-In order to do as litle conversion as possible, pick one that best fits
+In order to do as little conversion as possible, pick one that best fits
 the format of data you have available.
 
 The following table summarizes the available functions;
index f821b45090c47068ea6ffca6ddebb22f1d6983a9..b0d62d8cf830ab052a848511a6bcb5bd585c9279 100644 (file)
@@ -33,6 +33,14 @@ Constructors for container types must conform to two rules:
 #. Once all the fields which may contain references to other containers are
    initialized, it must call :c:func:`PyObject_GC_Track`.
 
+Similarly, the deallocator for the object must conform to a similar pair of
+rules:
+
+#. Before fields which refer to other containers are invalidated,
+   :c:func:`PyObject_GC_UnTrack` must be called.
+
+#. The object's memory must be deallocated using :c:func:`PyObject_GC_Del`.
+
    .. warning::
       If a type adds the Py_TPFLAGS_HAVE_GC, then it *must* implement at least
       a :c:member:`~PyTypeObject.tp_traverse` handler or explicitly use one
@@ -100,14 +108,6 @@ Constructors for container types must conform to two rules:
 
    .. versionadded:: 3.9
 
-Similarly, the deallocator for the object must conform to a similar pair of
-rules:
-
-#. Before fields which refer to other containers are invalidated,
-   :c:func:`PyObject_GC_UnTrack` must be called.
-
-#. The object's memory must be deallocated using :c:func:`PyObject_GC_Del`.
-
 
 .. c:function:: void PyObject_GC_Del(void *op)
 
index eb0bd14587145be1a5755fa7329fb0f3df0371d2..9d7876e0559814d62419984999e4d03256075c99 100644 (file)
@@ -448,7 +448,7 @@ Process-wide parameters
    (set by :c:func:`Py_SetProgramName` above) and some environment variables.
    The returned string consists of a series of directory names separated by a
    platform dependent delimiter character.  The delimiter character is ``':'``
-   on Unix and Mac OS X, ``';'`` on Windows.  The returned string points into
+   on Unix and macOS, ``';'`` on Windows.  The returned string points into
    static storage; the caller should not modify its value.  The list
    :data:`sys.path` is initialized with this value on interpreter startup; it
    can be (and usually is) modified later to change the search path for loading
@@ -469,7 +469,7 @@ Process-wide parameters
    default search path but uses the one provided instead.  This is useful if
    Python is embedded by an application that has full knowledge of the location
    of all modules.  The path components should be separated by the platform
-   dependent delimiter character, which is ``':'`` on Unix and Mac OS X, ``';'``
+   dependent delimiter character, which is ``':'`` on Unix and macOS, ``';'``
    on Windows.
 
    This also causes :data:`sys.executable` to be set to the program
@@ -510,7 +510,7 @@ Process-wide parameters
    Return the platform identifier for the current platform.  On Unix, this is
    formed from the "official" name of the operating system, converted to lower
    case, followed by the major revision number; e.g., for Solaris 2.x, which is
-   also known as SunOS 5.x, the value is ``'sunos5'``.  On Mac OS X, it is
+   also known as SunOS 5.x, the value is ``'sunos5'``.  On macOS, it is
    ``'darwin'``.  On Windows, it is ``'win'``.  The returned string points into
    static storage; the caller should not modify its value.  The value is available
    to Python code as ``sys.platform``.
index 69894cae2069e625fe2f97b5eab2d1f4efdbe85a..cc2d8fdaa513c16bce653ae3fe2562387c2d8666 100644 (file)
@@ -173,7 +173,7 @@ The following functions and structs are used to create
    The *module* argument can be used to record the module in which the new
    class is defined. It must be a module object or ``NULL``.
    If not ``NULL``, the module is associated with the new type and can later be
-   retreived with :c:func:`PyType_GetModule`.
+   retrieved with :c:func:`PyType_GetModule`.
    The associated module is not inherited by subclasses; it must be specified
    for each class individually.
 
index 5a1f5f994dddd765ed236b44d3bf5599b446978b..a800616730b9da8ac42be23246b4b382e0a9bdd3 100644 (file)
@@ -189,136 +189,136 @@ sub-slots
 .. table::
    :widths: 26,17,12
 
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | Slot                                                    | :ref:`Type <slot-typedefs-table>` | special      |
-   |                                                         |                                   | methods      |
-   +=========================================================+===================================+==============+
-   | :c:member:`~PyAsyncMethods.am_await`                    | :c:type:`unaryfunc`               | __await__    |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyAsyncMethods.am_aiter`                    | :c:type:`unaryfunc`               | __aiter__    |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyAsyncMethods.am_anext`                    | :c:type:`unaryfunc`               | __anext__    |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   |                                                                                                            |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_add`                     | :c:type:`binaryfunc`              | __add__      |
-   |                                                         |                                   | __radd__     |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_inplace_add`             | :c:type:`binaryfunc`              | __iadd__     |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_subtract`                | :c:type:`binaryfunc`              | __sub__      |
-   |                                                         |                                   | __rsub__     |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_inplace_subtract`        | :c:type:`binaryfunc`              | __sub__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_multiply`                | :c:type:`binaryfunc`              | __mul__      |
-   |                                                         |                                   | __rmul__     |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_inplace_multiply`        | :c:type:`binaryfunc`              | __mul__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_remainder`               | :c:type:`binaryfunc`              | __mod__      |
-   |                                                         |                                   | __rmod__     |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_inplace_remainder`       | :c:type:`binaryfunc`              | __mod__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_divmod`                  | :c:type:`binaryfunc`              | __divmod__   |
-   |                                                         |                                   | __rdivmod__  |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_power`                   | :c:type:`ternaryfunc`             | __pow__      |
-   |                                                         |                                   | __rpow__     |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_inplace_power`           | :c:type:`ternaryfunc`             | __pow__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_negative`                | :c:type:`unaryfunc`               | __neg__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_positive`                | :c:type:`unaryfunc`               | __pos__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_absolute`                | :c:type:`unaryfunc`               | __abs__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_bool`                    | :c:type:`inquiry`                 | __bool__     |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_invert`                  | :c:type:`unaryfunc`               | __invert__   |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_lshift`                  | :c:type:`binaryfunc`              | __lshift__   |
-   |                                                         |                                   | __rlshift__  |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_inplace_lshift`          | :c:type:`binaryfunc`              | __lshift__   |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_rshift`                  | :c:type:`binaryfunc`              | __rshift__   |
-   |                                                         |                                   | __rrshift__  |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_inplace_rshift`          | :c:type:`binaryfunc`              | __rshift__   |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_and`                     | :c:type:`binaryfunc`              | __and__      |
-   |                                                         |                                   | __rand__     |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_inplace_and`             | :c:type:`binaryfunc`              | __and__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_xor`                     | :c:type:`binaryfunc`              | __xor__      |
-   |                                                         |                                   | __rxor__     |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_inplace_xor`             | :c:type:`binaryfunc`              | __xor__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_or`                      | :c:type:`binaryfunc`              | __or__       |
-   |                                                         |                                   | __ror__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_inplace_or`              | :c:type:`binaryfunc`              | __or__       |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_int`                     | :c:type:`unaryfunc`               | __int__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_reserved`                | void *                            |              |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_float`                   | :c:type:`unaryfunc`               | __float__    |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_floor_divide`            | :c:type:`binaryfunc`              | __floordiv__ |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_inplace_floor_divide`    | :c:type:`binaryfunc`              | __floordiv__ |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_true_divide`             | :c:type:`binaryfunc`              | __truediv__  |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_inplace_true_divide`     | :c:type:`binaryfunc`              | __truediv__  |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_index`                   | :c:type:`unaryfunc`               | __index__    |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_matrix_multiply`         | :c:type:`binaryfunc`              | __matmul__   |
-   |                                                         |                                   | __rmatmul__  |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyNumberMethods.nb_inplace_matrix_multiply` | :c:type:`binaryfunc`              | __matmul__   |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   |                                                                                                            |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyMappingMethods.mp_length`                 | :c:type:`lenfunc`                 | __len__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyMappingMethods.mp_subscript`              | :c:type:`binaryfunc`              | __getitem__  |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyMappingMethods.mp_ass_subscript`          | :c:type:`objobjargproc`           | __setitem__, |
-   |                                                         |                                   | __delitem__  |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   |                                                                                                            |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PySequenceMethods.sq_length`                | :c:type:`lenfunc`                 | __len__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PySequenceMethods.sq_concat`                | :c:type:`binaryfunc`              | __add__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PySequenceMethods.sq_repeat`                | :c:type:`ssizeargfunc`            | __mul__      |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PySequenceMethods.sq_item`                  | :c:type:`ssizeargfunc`            | __getitem__  |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PySequenceMethods.sq_ass_item`              | :c:type:`ssizeobjargproc`         | __setitem__  |
-   |                                                         |                                   | __delitem__  |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PySequenceMethods.sq_contains`              | :c:type:`objobjproc`              | __contains__ |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PySequenceMethods.sq_inplace_concat`        | :c:type:`binaryfunc`              | __iadd__     |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PySequenceMethods.sq_inplace_repeat`        | :c:type:`ssizeargfunc`            | __imul__     |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   |                                                                                                            |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyBufferProcs.bf_getbuffer`                 | :c:func:`getbufferproc`           |              |
-   +---------------------------------------------------------+-----------------------------------+--------------+
-   | :c:member:`~PyBufferProcs.bf_releasebuffer`             | :c:func:`releasebufferproc`       |              |
-   +---------------------------------------------------------+-----------------------------------+--------------+
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | Slot                                                    | :ref:`Type <slot-typedefs-table>` | special       |
+   |                                                         |                                   | methods       |
+   +=========================================================+===================================+===============+
+   | :c:member:`~PyAsyncMethods.am_await`                    | :c:type:`unaryfunc`               | __await__     |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyAsyncMethods.am_aiter`                    | :c:type:`unaryfunc`               | __aiter__     |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyAsyncMethods.am_anext`                    | :c:type:`unaryfunc`               | __anext__     |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   |                                                                                                             |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_add`                     | :c:type:`binaryfunc`              | __add__       |
+   |                                                         |                                   | __radd__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_inplace_add`             | :c:type:`binaryfunc`              | __iadd__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_subtract`                | :c:type:`binaryfunc`              | __sub__       |
+   |                                                         |                                   | __rsub__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_inplace_subtract`        | :c:type:`binaryfunc`              | __isub__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_multiply`                | :c:type:`binaryfunc`              | __mul__       |
+   |                                                         |                                   | __rmul__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_inplace_multiply`        | :c:type:`binaryfunc`              | __imul__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_remainder`               | :c:type:`binaryfunc`              | __mod__       |
+   |                                                         |                                   | __rmod__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_inplace_remainder`       | :c:type:`binaryfunc`              | __imod__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_divmod`                  | :c:type:`binaryfunc`              | __divmod__    |
+   |                                                         |                                   | __rdivmod__   |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_power`                   | :c:type:`ternaryfunc`             | __pow__       |
+   |                                                         |                                   | __rpow__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_inplace_power`           | :c:type:`ternaryfunc`             | __ipow__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_negative`                | :c:type:`unaryfunc`               | __neg__       |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_positive`                | :c:type:`unaryfunc`               | __pos__       |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_absolute`                | :c:type:`unaryfunc`               | __abs__       |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_bool`                    | :c:type:`inquiry`                 | __bool__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_invert`                  | :c:type:`unaryfunc`               | __invert__    |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_lshift`                  | :c:type:`binaryfunc`              | __lshift__    |
+   |                                                         |                                   | __rlshift__   |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_inplace_lshift`          | :c:type:`binaryfunc`              | __ilshift__   |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_rshift`                  | :c:type:`binaryfunc`              | __rshift__    |
+   |                                                         |                                   | __rrshift__   |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_inplace_rshift`          | :c:type:`binaryfunc`              | __irshift__   |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_and`                     | :c:type:`binaryfunc`              | __and__       |
+   |                                                         |                                   | __rand__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_inplace_and`             | :c:type:`binaryfunc`              | __iand__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_xor`                     | :c:type:`binaryfunc`              | __xor__       |
+   |                                                         |                                   | __rxor__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_inplace_xor`             | :c:type:`binaryfunc`              | __ixor__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_or`                      | :c:type:`binaryfunc`              | __or__        |
+   |                                                         |                                   | __ror__       |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_inplace_or`              | :c:type:`binaryfunc`              | __ior__       |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_int`                     | :c:type:`unaryfunc`               | __int__       |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_reserved`                | void *                            |               |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_float`                   | :c:type:`unaryfunc`               | __float__     |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_floor_divide`            | :c:type:`binaryfunc`              | __floordiv__  |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_inplace_floor_divide`    | :c:type:`binaryfunc`              | __ifloordiv__ |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_true_divide`             | :c:type:`binaryfunc`              | __truediv__   |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_inplace_true_divide`     | :c:type:`binaryfunc`              | __itruediv__  |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_index`                   | :c:type:`unaryfunc`               | __index__     |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_matrix_multiply`         | :c:type:`binaryfunc`              | __matmul__    |
+   |                                                         |                                   | __rmatmul__   |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyNumberMethods.nb_inplace_matrix_multiply` | :c:type:`binaryfunc`              | __imatmul__   |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   |                                                                                                             |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyMappingMethods.mp_length`                 | :c:type:`lenfunc`                 | __len__       |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyMappingMethods.mp_subscript`              | :c:type:`binaryfunc`              | __getitem__   |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyMappingMethods.mp_ass_subscript`          | :c:type:`objobjargproc`           | __setitem__,  |
+   |                                                         |                                   | __delitem__   |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   |                                                                                                             |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PySequenceMethods.sq_length`                | :c:type:`lenfunc`                 | __len__       |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PySequenceMethods.sq_concat`                | :c:type:`binaryfunc`              | __add__       |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PySequenceMethods.sq_repeat`                | :c:type:`ssizeargfunc`            | __mul__       |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PySequenceMethods.sq_item`                  | :c:type:`ssizeargfunc`            | __getitem__   |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PySequenceMethods.sq_ass_item`              | :c:type:`ssizeobjargproc`         | __setitem__   |
+   |                                                         |                                   | __delitem__   |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PySequenceMethods.sq_contains`              | :c:type:`objobjproc`              | __contains__  |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PySequenceMethods.sq_inplace_concat`        | :c:type:`binaryfunc`              | __iadd__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PySequenceMethods.sq_inplace_repeat`        | :c:type:`ssizeargfunc`            | __imul__      |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   |                                                                                                             |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyBufferProcs.bf_getbuffer`                 | :c:func:`getbufferproc`           |               |
+   +---------------------------------------------------------+-----------------------------------+---------------+
+   | :c:member:`~PyBufferProcs.bf_releasebuffer`             | :c:func:`releasebufferproc`       |               |
+   +---------------------------------------------------------+-----------------------------------+---------------+
 
 .. _slot-typedefs-table:
 
@@ -657,6 +657,18 @@ and :c:type:`PyType_Type` effectively act as defaults.)
    :c:func:`PyObject_GC_Del` if the instance was allocated using
    :c:func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar`.
 
+   If the type supports garbage collection (has the :const:`Py_TPFLAGS_HAVE_GC`
+   flag bit set), the destructor should call :c:func:`PyObject_GC_UnTrack`
+   before clearing any member fields.
+
+   .. code-block:: c
+
+     static void foo_dealloc(foo_object *self) {
+         PyObject_GC_UnTrack(self);
+         Py_CLEAR(self->ref);
+         Py_TYPE(self)->tp_free((PyObject *)self);
+     }
+
    Finally, if the type is heap allocated (:const:`Py_TPFLAGS_HEAPTYPE`), the
    deallocator should decrement the reference count for its type object after
    calling the type deallocator. In order to avoid dangling pointers, the
index 228fefcd8700563c9a01817d03b869e495635522..e2037436bda00caa987cb0f359d07b4ff62a7272 100644 (file)
     <elf-symbol name='_PyUnicode_AsUnicode' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyUnicode_CheckConsistency' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyUnicode_Copy' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='_PyUnicode_DecodeUnicodeEscape' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_PyUnicode_DecodeRawUnicodeEscapeStateful' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_PyUnicode_DecodeUnicodeEscapeInternal' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_PyUnicode_DecodeUnicodeEscapeStateful' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyUnicode_EQ' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyUnicode_EncodeCharmap' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyUnicode_EncodeUTF16' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <function-decl name='Py_GetBuildInfo' mangled-name='Py_GetBuildInfo' filepath='./Modules/getbuildinfo.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetBuildInfo'>
       <return type-id='type-id-3'/>
     </function-decl>
+    <type-decl name='void' id='type-id-4'/>
+    <function-decl name='PyOS_snprintf' mangled-name='PyOS_snprintf' filepath='./Include/pyerrors.h' line='312' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Parser/acceler.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyObject_Free' mangled-name='PyObject_Free' filepath='./Include/objimpl.h' line='102' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__printf_chk' mangled-name='__printf_chk' filepath='/usr/include/x86_64-linux-gnu/bits/stdio2.h' line='90' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyGrammar_FindDFA' mangled-name='PyGrammar_FindDFA' filepath='./Include/grammar.h' line='69' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__fprintf_chk' mangled-name='__fprintf_chk' filepath='/usr/include/x86_64-linux-gnu/bits/stdio2.h' line='88' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Malloc' mangled-name='PyObject_Malloc' filepath='./Include/objimpl.h' line='97' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='exit' mangled-name='exit' filepath='/usr/include/stdlib.h' line='617' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__builtin_memset' mangled-name='memset' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Parser/grammar1.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_Py_FatalErrorFunc' mangled-name='_Py_FatalErrorFunc' filepath='./Include/cpython/pyerrors.h' line='187' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='Parser/listnode.c' comp-dir-path='/src' language='LANG_C99'>
-    <type-decl name='void' id='type-id-4'/>
     <class-decl name='_node' size-in-bits='384' is-struct='yes' visibility='default' filepath='./Include/node.h' line='10' column='1' id='type-id-5'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='n_type' type-id='type-id-6' visibility='default' filepath='./Include/node.h' line='11' column='1'/>
       <return type-id='type-id-15'/>
     </function-decl>
     <function-decl name='PyNode_Free' mangled-name='PyNode_Free' filepath='Parser/node.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNode_Free'>
-      <parameter type-id='type-id-11' name='n' filepath='Parser/listnode.c' line='15' column='1'/>
+      <parameter type-id='type-id-11' name='n' filepath='Parser/node.c' line='146' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
     <function-decl name='PyNode_AddChild' mangled-name='PyNode_AddChild' filepath='Parser/node.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNode_AddChild'>
       <parameter type-id='type-id-8' name='type' filepath='Parser/node.c' line='8' column='1'/>
       <return type-id='type-id-11'/>
     </function-decl>
+    <function-decl name='strlen' mangled-name='strlen' filepath='/usr/include/string.h' line='385' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Realloc' mangled-name='PyObject_Realloc' filepath='./Include/objimpl.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Parser/parser.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyNode_AddChild' mangled-name='PyNode_AddChild' filepath='./Include/node.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='strcmp' mangled-name='strcmp' filepath='/usr/include/string.h' line='137' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNode_Free' mangled-name='PyNode_Free' filepath='./Include/node.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMem_Free' mangled-name='PyMem_Free' filepath='./Include/pymem.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMem_Malloc' mangled-name='PyMem_Malloc' filepath='./Include/pymem.h' line='52' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNode_New' mangled-name='PyNode_New' filepath='./Include/node.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyGrammar_AddAccelerators' mangled-name='PyGrammar_AddAccelerators' filepath='Parser/parser.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='Parser/token.c' comp-dir-path='/src' language='LANG_C99'>
     <qualified-type-def type-id='type-id-3' const='yes' id='type-id-16'/>
       <return type-id='type-id-8'/>
     </function-decl>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Parser/pegen/peg_api.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='_mod' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/Python-ast.h' line='52' column='1' id='type-id-20'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='kind' type-id='type-id-21' visibility='default' filepath='./Include/Python-ast.h' line='53' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='v' type-id='type-id-22' visibility='default' filepath='./Include/Python-ast.h' line='73' column='1'/>
-      </data-member>
-    </class-decl>
-    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-23'/>
-    <enum-decl name='_mod_kind' filepath='./Include/Python-ast.h' line='50' column='1' id='type-id-21'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='Module_kind' value='1'/>
-      <enumerator name='Interactive_kind' value='2'/>
-      <enumerator name='Expression_kind' value='3'/>
-      <enumerator name='FunctionType_kind' value='4'/>
-    </enum-decl>
-    <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='54' column='1' id='type-id-22'>
-      <data-member access='private'>
-        <var-decl name='Module' type-id='type-id-24' visibility='default' filepath='./Include/Python-ast.h' line='58' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Interactive' type-id='type-id-25' visibility='default' filepath='./Include/Python-ast.h' line='62' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Expression' type-id='type-id-26' visibility='default' filepath='./Include/Python-ast.h' line='66' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='FunctionType' type-id='type-id-27' visibility='default' filepath='./Include/Python-ast.h' line='71' column='1'/>
-      </data-member>
-    </union-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='55' column='1' id='type-id-24'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='body' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='56' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='type_ignores' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='57' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-29' visibility='default' filepath='./Include/asdl.h' line='18' column='1' id='type-id-30'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-15' visibility='default' filepath='./Include/asdl.h' line='19' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-31' visibility='default' filepath='./Include/asdl.h' line='20' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-4' size-in-bits='64' id='type-id-32'/>
-    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-33'/>
-
-    <array-type-def dimensions='1' type-id='type-id-32' size-in-bits='64' id='type-id-31'>
-      <subrange length='1' type-id='type-id-33' id='type-id-34'/>
-
-    </array-type-def>
-    <typedef-decl name='asdl_seq' type-id='type-id-30' filepath='./Include/asdl.h' line='21' column='1' id='type-id-29'/>
-    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-28'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='60' column='1' id='type-id-25'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='body' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='61' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='64' column='1' id='type-id-26'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='body' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='65' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='_expr' size-in-bits='384' is-struct='yes' visibility='default' filepath='./Include/Python-ast.h' line='234' column='1' id='type-id-36'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='kind' type-id='type-id-37' visibility='default' filepath='./Include/Python-ast.h' line='235' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='v' type-id='type-id-38' visibility='default' filepath='./Include/Python-ast.h' line='376' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='lineno' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='377' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='col_offset' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='378' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='end_lineno' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='379' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='352'>
-        <var-decl name='end_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='380' column='1'/>
-      </data-member>
-    </class-decl>
-    <enum-decl name='_expr_kind' filepath='./Include/Python-ast.h' line='226' column='1' id='type-id-37'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='BoolOp_kind' value='1'/>
-      <enumerator name='NamedExpr_kind' value='2'/>
-      <enumerator name='BinOp_kind' value='3'/>
-      <enumerator name='UnaryOp_kind' value='4'/>
-      <enumerator name='Lambda_kind' value='5'/>
-      <enumerator name='IfExp_kind' value='6'/>
-      <enumerator name='Dict_kind' value='7'/>
-      <enumerator name='Set_kind' value='8'/>
-      <enumerator name='ListComp_kind' value='9'/>
-      <enumerator name='SetComp_kind' value='10'/>
-      <enumerator name='DictComp_kind' value='11'/>
-      <enumerator name='GeneratorExp_kind' value='12'/>
-      <enumerator name='Await_kind' value='13'/>
-      <enumerator name='Yield_kind' value='14'/>
-      <enumerator name='YieldFrom_kind' value='15'/>
-      <enumerator name='Compare_kind' value='16'/>
-      <enumerator name='Call_kind' value='17'/>
-      <enumerator name='FormattedValue_kind' value='18'/>
-      <enumerator name='JoinedStr_kind' value='19'/>
-      <enumerator name='Constant_kind' value='20'/>
-      <enumerator name='Attribute_kind' value='21'/>
-      <enumerator name='Subscript_kind' value='22'/>
-      <enumerator name='Starred_kind' value='23'/>
-      <enumerator name='Name_kind' value='24'/>
-      <enumerator name='List_kind' value='25'/>
-      <enumerator name='Tuple_kind' value='26'/>
-      <enumerator name='Slice_kind' value='27'/>
-    </enum-decl>
-    <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='236' column='1' id='type-id-38'>
-      <data-member access='private'>
-        <var-decl name='BoolOp' type-id='type-id-39' visibility='default' filepath='./Include/Python-ast.h' line='240' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='NamedExpr' type-id='type-id-40' visibility='default' filepath='./Include/Python-ast.h' line='245' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='BinOp' type-id='type-id-41' visibility='default' filepath='./Include/Python-ast.h' line='251' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='UnaryOp' type-id='type-id-42' visibility='default' filepath='./Include/Python-ast.h' line='256' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Lambda' type-id='type-id-43' visibility='default' filepath='./Include/Python-ast.h' line='261' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='IfExp' type-id='type-id-44' visibility='default' filepath='./Include/Python-ast.h' line='267' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Dict' type-id='type-id-45' visibility='default' filepath='./Include/Python-ast.h' line='272' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Set' type-id='type-id-46' visibility='default' filepath='./Include/Python-ast.h' line='276' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='ListComp' type-id='type-id-47' visibility='default' filepath='./Include/Python-ast.h' line='281' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='SetComp' type-id='type-id-47' visibility='default' filepath='./Include/Python-ast.h' line='286' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='DictComp' type-id='type-id-48' visibility='default' filepath='./Include/Python-ast.h' line='292' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='GeneratorExp' type-id='type-id-47' visibility='default' filepath='./Include/Python-ast.h' line='297' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Await' type-id='type-id-49' visibility='default' filepath='./Include/Python-ast.h' line='301' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Yield' type-id='type-id-49' visibility='default' filepath='./Include/Python-ast.h' line='305' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='YieldFrom' type-id='type-id-49' visibility='default' filepath='./Include/Python-ast.h' line='309' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Compare' type-id='type-id-50' visibility='default' filepath='./Include/Python-ast.h' line='315' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Call' type-id='type-id-51' visibility='default' filepath='./Include/Python-ast.h' line='321' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='FormattedValue' type-id='type-id-52' visibility='default' filepath='./Include/Python-ast.h' line='327' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='JoinedStr' type-id='type-id-53' visibility='default' filepath='./Include/Python-ast.h' line='331' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Constant' type-id='type-id-54' visibility='default' filepath='./Include/Python-ast.h' line='336' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Attribute' type-id='type-id-55' visibility='default' filepath='./Include/Python-ast.h' line='342' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Subscript' type-id='type-id-56' visibility='default' filepath='./Include/Python-ast.h' line='348' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Starred' type-id='type-id-57' visibility='default' filepath='./Include/Python-ast.h' line='353' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Name' type-id='type-id-58' visibility='default' filepath='./Include/Python-ast.h' line='358' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='List' type-id='type-id-59' visibility='default' filepath='./Include/Python-ast.h' line='363' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Tuple' type-id='type-id-59' visibility='default' filepath='./Include/Python-ast.h' line='368' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='Slice' type-id='type-id-60' visibility='default' filepath='./Include/Python-ast.h' line='374' column='1'/>
-      </data-member>
-    </union-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='237' column='1' id='type-id-39'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='op' type-id='type-id-61' visibility='default' filepath='./Include/Python-ast.h' line='238' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='values' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='239' column='1'/>
-      </data-member>
-    </class-decl>
-    <enum-decl name='_boolop' filepath='./Include/Python-ast.h' line='22' column='1' id='type-id-62'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='And' value='1'/>
-      <enumerator name='Or' value='2'/>
-    </enum-decl>
-    <typedef-decl name='boolop_ty' type-id='type-id-62' filepath='./Include/Python-ast.h' line='22' column='1' id='type-id-61'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='242' column='1' id='type-id-40'>
+  <abi-instr version='1.0' address-size='64' path='Parser/pegen/pegen.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_Py_asdl_seq_new' mangled-name='_Py_asdl_seq_new' filepath='./Include/asdl.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Name' mangled-name='_Py_Name' filepath='./Include/Python-ast.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__builtin_memmove' mangled-name='memmove' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Call' mangled-name='_Py_Call' filepath='./Include/Python-ast.h' line='619' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Dealloc' mangled-name='_Py_Dealloc' filepath='./Include/object.h' line='401' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyArena_AddPyObject' mangled-name='PyArena_AddPyObject' filepath='./Include/pyarena.h' line='57' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUTF8' mangled-name='PyUnicode_DecodeUTF8' filepath='./Include/unicodeobject.h' line='451' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_TypeIgnore' mangled-name='_Py_TypeIgnore' filepath='./Include/Python-ast.h' line='687' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Module' mangled-name='_Py_Module' filepath='./Include/Python-ast.h' line='461' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_FstringParser_ConcatFstring' mangled-name='_PyPegen_FstringParser_ConcatFstring' filepath='Parser/pegen/parse_string.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_parsestr' mangled-name='_PyPegen_parsestr' filepath='Parser/pegen/parse_string.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_FstringParser_ConcatAndDel' mangled-name='_PyPegen_FstringParser_ConcatAndDel' filepath='Parser/pegen/parse_string.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyBytes_ConcatAndDel' mangled-name='PyBytes_ConcatAndDel' filepath='./Include/bytesobject.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_FstringParser_Init' mangled-name='_PyPegen_FstringParser_Init' filepath='Parser/pegen/parse_string.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Constant' mangled-name='_Py_Constant' filepath='./Include/Python-ast.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_FstringParser_Dealloc' mangled-name='_PyPegen_FstringParser_Dealloc' filepath='Parser/pegen/parse_string.h' line='44' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_Occurred' mangled-name='PyErr_Occurred' filepath='./Include/pyerrors.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_FstringParser_Finish' mangled-name='_PyPegen_FstringParser_Finish' filepath='Parser/pegen/parse_string.h' line='43' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__stack_chk_fail' mangled-name='__stack_chk_fail' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyArena_Malloc' mangled-name='PyArena_Malloc' filepath='./Include/pyarena.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_ClassDef' mangled-name='_Py_ClassDef' filepath='./Include/Python-ast.h' line='480' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_FunctionDef' mangled-name='_Py_FunctionDef' filepath='./Include/Python-ast.h' line='469' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_AsyncFunctionDef' mangled-name='_Py_AsyncFunctionDef' filepath='./Include/Python-ast.h' line='474' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_arguments' mangled-name='_Py_arguments' filepath='./Include/Python-ast.h' line='669' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyBytes_AsString' mangled-name='PyBytes_AsString' filepath='./Include/bytesobject.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_arg' mangled-name='_Py_arg' filepath='./Include/Python-ast.h' line='674' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_List' mangled-name='_Py_List' filepath='./Include/Python-ast.h' line='649' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Tuple' mangled-name='_Py_Tuple' filepath='./Include/Python-ast.h' line='653' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Attribute' mangled-name='_Py_Attribute' filepath='./Include/Python-ast.h' line='633' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Subscript' mangled-name='_Py_Subscript' filepath='./Include/Python-ast.h' line='637' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Starred' mangled-name='_Py_Starred' filepath='./Include/Python-ast.h' line='641' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_asdl_int_seq_new' mangled-name='_Py_asdl_int_seq_new' filepath='./Include/asdl.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_InternFromString' mangled-name='PyUnicode_InternFromString' filepath='./Include/unicodeobject.h' line='265' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_alias' mangled-name='_Py_alias' filepath='./Include/Python-ast.h' line='682' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__builtin_strcpy' mangled-name='strcpy' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_Ready' mangled-name='_PyUnicode_Ready' filepath='./Include/cpython/unicodeobject.h' line='472' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsUTF8' mangled-name='PyUnicode_AsUTF8' filepath='./Include/cpython/unicodeobject.h' line='765' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyBytes_FromStringAndSize' mangled-name='PyBytes_FromStringAndSize' filepath='./Include/bytesobject.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_InternInPlace' mangled-name='PyUnicode_InternInPlace' filepath='./Include/unicodeobject.h' line='263' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTokenizer_FromUTF8' mangled-name='PyTokenizer_FromUTF8' filepath='Parser/pegen/../tokenizer.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTokenizer_Free' mangled-name='PyTokenizer_Free' filepath='Parser/pegen/../tokenizer.h' line='80' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTokenizer_FromString' mangled-name='PyTokenizer_FromString' filepath='Parser/pegen/../tokenizer.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTokenizer_FromFile' mangled-name='PyTokenizer_FromFile' filepath='Parser/pegen/../tokenizer.h' line='78' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='fopen' mangled-name='fopen64' filepath='/usr/include/stdio.h' line='257' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='fclose' mangled-name='fclose' filepath='/usr/include/stdio.h' line='213' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_SetFromErrnoWithFilename' mangled-name='PyErr_SetFromErrnoWithFilename' filepath='./Include/pyerrors.h' line='169' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMem_Calloc' mangled-name='PyMem_Calloc' filepath='./Include/cpython/pymem.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_NoMemory' mangled-name='PyErr_NoMemory' filepath='./Include/pyerrors.h' line='161' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='strchr' mangled-name='strchr' filepath='/usr/include/string.h' line='226' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__errno_location' mangled-name='__errno_location' filepath='/usr/include/errno.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyOS_strtol' mangled-name='PyOS_strtol' filepath='./Include/longobject.h' line='224' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_FromLong' mangled-name='PyLong_FromLong' filepath='./Include/longobject.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyOS_strtoul' mangled-name='PyOS_strtoul' filepath='./Include/longobject.h' line='223' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyOS_string_to_double' mangled-name='PyOS_string_to_double' filepath='./Include/pystrtod.h' line='9' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyComplex_FromCComplex' mangled-name='PyComplex_FromCComplex' filepath='./Include/complexobject.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_FromString' mangled-name='PyLong_FromString' filepath='./Include/longobject.h' line='103' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFloat_FromDouble' mangled-name='PyFloat_FromDouble' filepath='./Include/floatobject.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyList_SetItem' mangled-name='PyList_SetItem' filepath='./Include/listobject.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyList_New' mangled-name='PyList_New' filepath='./Include/listobject.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMem_Realloc' mangled-name='PyMem_Realloc' filepath='./Include/pymem.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__builtin_strncpy' mangled-name='strncpy' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTokenizer_Get' mangled-name='PyTokenizer_Get' filepath='Parser/pegen/../tokenizer.h' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='strtok' mangled-name='strtok' filepath='/usr/include/string.h' line='336' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_SetNone' mangled-name='PyErr_SetNone' filepath='./Include/pyerrors.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='strncmp' mangled-name='strncmp' filepath='/usr/include/string.h' line='140' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__builtin_memcpy' mangled-name='memcpy' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMem_RawMalloc' mangled-name='PyMem_RawMalloc' filepath='./Include/cpython/pymem.h' line='9' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromFormatV' mangled-name='PyUnicode_FromFormatV' filepath='./Include/unicodeobject.h' line='254' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_BuildValue' mangled-name='Py_BuildValue' filepath='./Include/modsupport.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTuple_Pack' mangled-name='PyTuple_Pack' filepath='./Include/tupleobject.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_SetObject' mangled-name='PyErr_SetObject' filepath='./Include/pyerrors.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMem_RawFree' mangled-name='PyMem_RawFree' filepath='./Include/cpython/pymem.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_ProgramTextObject' mangled-name='PyErr_ProgramTextObject' filepath='./Include/cpython/pyerrors.h' line='148' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_ExceptionMatches' mangled-name='PyErr_ExceptionMatches' filepath='./Include/pyerrors.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_Fetch' mangled-name='PyErr_Fetch' filepath='./Include/pyerrors.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Str' mangled-name='PyObject_Str' filepath='./Include/object.h' line='242' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_Clear' mangled-name='PyErr_Clear' filepath='./Include/pyerrors.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_Format' mangled-name='PyErr_Format' filepath='./Include/pyerrors.h' line='174' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyImport_ImportModuleNoBlock' mangled-name='PyImport_ImportModuleNoBlock' filepath='./Include/import.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_GetAttrString' mangled-name='PyObject_GetAttrString' filepath='./Include/object.h' line='247' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_MakeTpCall' mangled-name='_PyObject_MakeTpCall' filepath='./Include/cpython/abstract.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_CheckFunctionResult' mangled-name='_Py_CheckFunctionResult' filepath='./Include/cpython/abstract.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThreadState_Get' mangled-name='PyThreadState_Get' filepath='./Include/pystate.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyType_Name' mangled-name='_PyType_Name' filepath='./Include/cpython/object.h' line='300' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_parse' mangled-name='_PyPegen_parse' filepath='Parser/pegen/pegen.h' line='305' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Parser/pegen/parse.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_PyPegen_expect_token' mangled-name='_PyPegen_expect_token' filepath='Parser/pegen/pegen.h' line='126' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_singleton_seq' mangled-name='_PyPegen_singleton_seq' filepath='Parser/pegen/pegen.h' line='235' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_insert_memo' mangled-name='_PyPegen_insert_memo' filepath='Parser/pegen/pegen.h' line='117' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_seq_insert_in_front' mangled-name='_PyPegen_seq_insert_in_front' filepath='Parser/pegen/pegen.h' line='236' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_seq_append_to_end' mangled-name='_PyPegen_seq_append_to_end' filepath='Parser/pegen/pegen.h' line='237' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_FunctionType' mangled-name='_Py_FunctionType' filepath='./Include/Python-ast.h' line='467' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_make_module' mangled-name='_PyPegen_make_module' filepath='Parser/pegen/pegen.h' line='268' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_function_def_decorators' mangled-name='_PyPegen_function_def_decorators' filepath='Parser/pegen/pegen.h' line='257' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_lookahead' mangled-name='_PyPegen_lookahead' filepath='Parser/pegen/pegen.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_If' mangled-name='_Py_If' filepath='./Include/Python-ast.h' line='515' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_get_last_nonnwhitespace_token' mangled-name='_PyPegen_get_last_nonnwhitespace_token' filepath='Parser/pegen/pegen.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_fill_token' mangled-name='_PyPegen_fill_token' filepath='Parser/pegen/pegen.h' line='129' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_lookahead_with_int' mangled-name='_PyPegen_lookahead_with_int' filepath='Parser/pegen/pegen.h' line='123' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_class_def_decorators' mangled-name='_PyPegen_class_def_decorators' filepath='Parser/pegen/pegen.h' line='258' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_new_type_comment' mangled-name='_PyPegen_new_type_comment' filepath='Parser/pegen/pegen.h' line='186' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_For' mangled-name='_Py_For' filepath='./Include/Python-ast.h' line='503' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_raise_error' mangled-name='_PyPegen_raise_error' filepath='Parser/pegen/pegen.h' line='134' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_AsyncFor' mangled-name='_Py_AsyncFor' filepath='./Include/Python-ast.h' line='507' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_While' mangled-name='_Py_While' filepath='./Include/Python-ast.h' line='511' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Pass' mangled-name='_Py_Pass' filepath='./Include/Python-ast.h' line='553' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_interactive_exit' mangled-name='_PyPegen_interactive_exit' filepath='Parser/pegen/pegen.h' line='234' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Interactive' mangled-name='_Py_Interactive' filepath='./Include/Python-ast.h' line='463' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Expression' mangled-name='_Py_Expression' filepath='./Include/Python-ast.h' line='465' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_name_token' mangled-name='_PyPegen_name_token' filepath='Parser/pegen/pegen.h' line='130' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_dummy_name' mangled-name='_PyPegen_dummy_name' filepath='Parser/pegen/pegen.h' line='138' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_comprehension' mangled-name='_Py_comprehension' filepath='./Include/Python-ast.h' line='661' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_set_expr_context' mangled-name='_PyPegen_set_expr_context' filepath='Parser/pegen/pegen.h' line='246' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_NamedExpr' mangled-name='_Py_NamedExpr' filepath='./Include/Python-ast.h' line='565' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_get_expr_name' mangled-name='_PyPegen_get_expr_name' filepath='Parser/pegen/pegen.h' line='133' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_get_invalid_target' mangled-name='_PyPegen_get_invalid_target' filepath='Parser/pegen/pegen.h' line='276' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_update_memo' mangled-name='_PyPegen_update_memo' filepath='Parser/pegen/pegen.h' line='118' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_is_memoized' mangled-name='_PyPegen_is_memoized' filepath='Parser/pegen/pegen.h' line='119' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_keyword' mangled-name='_Py_keyword' filepath='./Include/Python-ast.h' line='678' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_keyword_or_starred' mangled-name='_PyPegen_keyword_or_starred' filepath='Parser/pegen/pegen.h' line='259' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_join_sequences' mangled-name='_PyPegen_join_sequences' filepath='Parser/pegen/pegen.h' line='266' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_collect_call_seqs' mangled-name='_PyPegen_collect_call_seqs' filepath='Parser/pegen/pegen.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_seq_delete_starred_exprs' mangled-name='_PyPegen_seq_delete_starred_exprs' filepath='Parser/pegen/pegen.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_seq_extract_starred_exprs' mangled-name='_PyPegen_seq_extract_starred_exprs' filepath='Parser/pegen/pegen.h' line='260' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_nonparen_genexp_in_call' mangled-name='_PyPegen_nonparen_genexp_in_call' filepath='Parser/pegen/pegen.h' line='301' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_arguments_parsing_error' mangled-name='_PyPegen_arguments_parsing_error' filepath='Parser/pegen/pegen.h' line='300' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_YieldFrom' mangled-name='_Py_YieldFrom' filepath='./Include/Python-ast.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Yield' mangled-name='_Py_Yield' filepath='./Include/Python-ast.h' line='609' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_key_value_pair' mangled-name='_PyPegen_key_value_pair' filepath='Parser/pegen/pegen.h' line='247' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_GeneratorExp' mangled-name='_Py_GeneratorExp' filepath='./Include/Python-ast.h' line='602' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_string_token' mangled-name='_PyPegen_string_token' filepath='Parser/pegen/pegen.h' line='132' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_concatenate_strings' mangled-name='_PyPegen_concatenate_strings' filepath='Parser/pegen/pegen.h' line='265' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_number_token' mangled-name='_PyPegen_number_token' filepath='Parser/pegen/pegen.h' line='131' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_ListComp' mangled-name='_Py_ListComp' filepath='./Include/Python-ast.h' line='590' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_SetComp' mangled-name='_Py_SetComp' filepath='./Include/Python-ast.h' line='594' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_get_values' mangled-name='_PyPegen_get_values' filepath='Parser/pegen/pegen.h' line='249' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_get_keys' mangled-name='_PyPegen_get_keys' filepath='Parser/pegen/pegen.h' line='248' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Dict' mangled-name='_Py_Dict' filepath='./Include/Python-ast.h' line='583' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Set' mangled-name='_Py_Set' filepath='./Include/Python-ast.h' line='587' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_DictComp' mangled-name='_Py_DictComp' filepath='./Include/Python-ast.h' line='598' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Slice' mangled-name='_Py_Slice' filepath='./Include/Python-ast.h' line='657' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Await' mangled-name='_Py_Await' filepath='./Include/Python-ast.h' line='606' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_UnaryOp' mangled-name='_Py_UnaryOp' filepath='./Include/Python-ast.h' line='573' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_BinOp' mangled-name='_Py_BinOp' filepath='./Include/Python-ast.h' line='569' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_cmpop_expr_pair' mangled-name='_PyPegen_cmpop_expr_pair' filepath='Parser/pegen/pegen.h' line='243' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_check_barry_as_flufl' mangled-name='_PyPegen_check_barry_as_flufl' filepath='Parser/pegen/pegen.h' line='267' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_get_exprs' mangled-name='_PyPegen_get_exprs' filepath='Parser/pegen/pegen.h' line='245' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_get_cmpops' mangled-name='_PyPegen_get_cmpops' filepath='Parser/pegen/pegen.h' line='244' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Compare' mangled-name='_Py_Compare' filepath='./Include/Python-ast.h' line='615' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_BoolOp' mangled-name='_Py_BoolOp' filepath='./Include/Python-ast.h' line='562' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_name_default_pair' mangled-name='_PyPegen_name_default_pair' filepath='Parser/pegen/pegen.h' line='250' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_star_etc' mangled-name='_PyPegen_star_etc' filepath='Parser/pegen/pegen.h' line='252' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_slash_with_default' mangled-name='_PyPegen_slash_with_default' filepath='Parser/pegen/pegen.h' line='251' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_IfExp' mangled-name='_Py_IfExp' filepath='./Include/Python-ast.h' line='579' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_make_arguments' mangled-name='_PyPegen_make_arguments' filepath='Parser/pegen/pegen.h' line='253' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Lambda' mangled-name='_Py_Lambda' filepath='./Include/Python-ast.h' line='576' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_empty_arguments' mangled-name='_PyPegen_empty_arguments' filepath='Parser/pegen/pegen.h' line='255' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_add_type_comment_to_arg' mangled-name='_PyPegen_add_type_comment_to_arg' filepath='Parser/pegen/pegen.h' line='225' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Try' mangled-name='_Py_Try' filepath='./Include/Python-ast.h' line='530' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_ExceptHandler' mangled-name='_Py_ExceptHandler' filepath='./Include/Python-ast.h' line='664' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_withitem' mangled-name='_Py_withitem' filepath='./Include/Python-ast.h' line='684' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_With' mangled-name='_Py_With' filepath='./Include/Python-ast.h' line='519' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_AsyncWith' mangled-name='_Py_AsyncWith' filepath='./Include/Python-ast.h' line='523' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_join_names_with_dot' mangled-name='_PyPegen_join_names_with_dot' filepath='Parser/pegen/pegen.h' line='239' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_alias_for_star' mangled-name='_PyPegen_alias_for_star' filepath='Parser/pegen/pegen.h' line='241' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_seq_count_dots' mangled-name='_PyPegen_seq_count_dots' filepath='Parser/pegen/pegen.h' line='240' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_ImportFrom' mangled-name='_Py_ImportFrom' filepath='./Include/Python-ast.h' line='540' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_augoperator' mangled-name='_PyPegen_augoperator' filepath='Parser/pegen/pegen.h' line='256' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_AnnAssign' mangled-name='_Py_AnnAssign' filepath='./Include/Python-ast.h' line='499' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Assign' mangled-name='_Py_Assign' filepath='./Include/Python-ast.h' line='491' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_AugAssign' mangled-name='_Py_AugAssign' filepath='./Include/Python-ast.h' line='495' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Expr' mangled-name='_Py_Expr' filepath='./Include/Python-ast.h' line='550' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Break' mangled-name='_Py_Break' filepath='./Include/Python-ast.h' line='556' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Continue' mangled-name='_Py_Continue' filepath='./Include/Python-ast.h' line='559' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Return' mangled-name='_Py_Return' filepath='./Include/Python-ast.h' line='485' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Raise' mangled-name='_Py_Raise' filepath='./Include/Python-ast.h' line='527' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Import' mangled-name='_Py_Import' filepath='./Include/Python-ast.h' line='537' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Delete' mangled-name='_Py_Delete' filepath='./Include/Python-ast.h' line='488' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Assert' mangled-name='_Py_Assert' filepath='./Include/Python-ast.h' line='534' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_map_names_to_ids' mangled-name='_PyPegen_map_names_to_ids' filepath='Parser/pegen/pegen.h' line='242' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Global' mangled-name='_Py_Global' filepath='./Include/Python-ast.h' line='544' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Nonlocal' mangled-name='_Py_Nonlocal' filepath='./Include/Python-ast.h' line='547' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_seq_flatten' mangled-name='_PyPegen_seq_flatten' filepath='Parser/pegen/pegen.h' line='238' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_raise_error_known_location' mangled-name='_PyPegen_raise_error_known_location' filepath='Parser/pegen/pegen.h' line='135' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Parser/pegen/parse_string.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_Py_JoinedStr' mangled-name='_Py_JoinedStr' filepath='./Include/Python-ast.h' line='627' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromStringAndSize' mangled-name='PyUnicode_FromStringAndSize' filepath='./Include/unicodeobject.h' line='130' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUTF8Stateful' mangled-name='PyUnicode_DecodeUTF8Stateful' filepath='./Include/unicodeobject.h' line='457' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AppendAndDel' mangled-name='PyUnicode_AppendAndDel' filepath='./Include/unicodeobject.h' line='815' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_Parser_New' mangled-name='_PyPegen_Parser_New' filepath='Parser/pegen/pegen.h' line='227' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_run_parser' mangled-name='_PyPegen_run_parser' filepath='Parser/pegen/pegen.h' line='231' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_Parser_Free' mangled-name='_PyPegen_Parser_Free' filepath='Parser/pegen/pegen.h' line='228' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_FormattedValue' mangled-name='_Py_FormattedValue' filepath='./Include/Python-ast.h' line='623' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyBytes_DecodeEscape' mangled-name='_PyBytes_DecodeEscape' filepath='./Include/cpython/bytesobject.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_BadInternalCall' mangled-name='_PyErr_BadInternalCall' filepath='./Include/pyerrors.h' line='217' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_SetString' mangled-name='PyErr_SetString' filepath='./Include/pyerrors.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__builtin___sprintf_chk' mangled-name='__sprintf_chk' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_DecodeUnicodeEscapeInternal' mangled-name='_PyUnicode_DecodeUnicodeEscapeInternal' filepath='./Include/cpython/unicodeobject.h' line='869' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromFormat' mangled-name='PyUnicode_FromFormat' filepath='./Include/unicodeobject.h' line='258' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_WarnExplicitObject' mangled-name='PyErr_WarnExplicitObject' filepath='./Include/warnings.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_new_identifier' mangled-name='_PyPegen_new_identifier' filepath='Parser/pegen/pegen.h' line='226' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Parser/pegen/peg_api.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='_mod' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/Python-ast.h' line='52' column='1' id='type-id-20'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='kind' type-id='type-id-21' visibility='default' filepath='./Include/Python-ast.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='v' type-id='type-id-22' visibility='default' filepath='./Include/Python-ast.h' line='73' column='1'/>
+      </data-member>
+    </class-decl>
+    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-23'/>
+    <enum-decl name='_mod_kind' filepath='./Include/Python-ast.h' line='50' column='1' id='type-id-21'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='Module_kind' value='1'/>
+      <enumerator name='Interactive_kind' value='2'/>
+      <enumerator name='Expression_kind' value='3'/>
+      <enumerator name='FunctionType_kind' value='4'/>
+    </enum-decl>
+    <union-decl name='__anonymous_union__' size-in-bits='128' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='54' column='1' id='type-id-22'>
+      <data-member access='private'>
+        <var-decl name='Module' type-id='type-id-24' visibility='default' filepath='./Include/Python-ast.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Interactive' type-id='type-id-25' visibility='default' filepath='./Include/Python-ast.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Expression' type-id='type-id-26' visibility='default' filepath='./Include/Python-ast.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='FunctionType' type-id='type-id-27' visibility='default' filepath='./Include/Python-ast.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='55' column='1' id='type-id-24'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='body' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='56' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='type_ignores' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='57' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-29' visibility='default' filepath='./Include/asdl.h' line='18' column='1' id='type-id-30'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='size' type-id='type-id-15' visibility='default' filepath='./Include/asdl.h' line='19' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='elements' type-id='type-id-31' visibility='default' filepath='./Include/asdl.h' line='20' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-4' size-in-bits='64' id='type-id-32'/>
+    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-33'/>
+
+    <array-type-def dimensions='1' type-id='type-id-32' size-in-bits='64' id='type-id-31'>
+      <subrange length='1' type-id='type-id-33' id='type-id-34'/>
+
+    </array-type-def>
+    <typedef-decl name='asdl_seq' type-id='type-id-30' filepath='./Include/asdl.h' line='21' column='1' id='type-id-29'/>
+    <pointer-type-def type-id='type-id-29' size-in-bits='64' id='type-id-28'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='60' column='1' id='type-id-25'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='body' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='64' column='1' id='type-id-26'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='body' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='65' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_expr' size-in-bits='384' is-struct='yes' visibility='default' filepath='./Include/Python-ast.h' line='234' column='1' id='type-id-36'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='kind' type-id='type-id-37' visibility='default' filepath='./Include/Python-ast.h' line='235' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='v' type-id='type-id-38' visibility='default' filepath='./Include/Python-ast.h' line='376' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='lineno' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='377' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <var-decl name='col_offset' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='378' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='end_lineno' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='379' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='352'>
+        <var-decl name='end_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='380' column='1'/>
+      </data-member>
+    </class-decl>
+    <enum-decl name='_expr_kind' filepath='./Include/Python-ast.h' line='226' column='1' id='type-id-37'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='BoolOp_kind' value='1'/>
+      <enumerator name='NamedExpr_kind' value='2'/>
+      <enumerator name='BinOp_kind' value='3'/>
+      <enumerator name='UnaryOp_kind' value='4'/>
+      <enumerator name='Lambda_kind' value='5'/>
+      <enumerator name='IfExp_kind' value='6'/>
+      <enumerator name='Dict_kind' value='7'/>
+      <enumerator name='Set_kind' value='8'/>
+      <enumerator name='ListComp_kind' value='9'/>
+      <enumerator name='SetComp_kind' value='10'/>
+      <enumerator name='DictComp_kind' value='11'/>
+      <enumerator name='GeneratorExp_kind' value='12'/>
+      <enumerator name='Await_kind' value='13'/>
+      <enumerator name='Yield_kind' value='14'/>
+      <enumerator name='YieldFrom_kind' value='15'/>
+      <enumerator name='Compare_kind' value='16'/>
+      <enumerator name='Call_kind' value='17'/>
+      <enumerator name='FormattedValue_kind' value='18'/>
+      <enumerator name='JoinedStr_kind' value='19'/>
+      <enumerator name='Constant_kind' value='20'/>
+      <enumerator name='Attribute_kind' value='21'/>
+      <enumerator name='Subscript_kind' value='22'/>
+      <enumerator name='Starred_kind' value='23'/>
+      <enumerator name='Name_kind' value='24'/>
+      <enumerator name='List_kind' value='25'/>
+      <enumerator name='Tuple_kind' value='26'/>
+      <enumerator name='Slice_kind' value='27'/>
+    </enum-decl>
+    <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='236' column='1' id='type-id-38'>
+      <data-member access='private'>
+        <var-decl name='BoolOp' type-id='type-id-39' visibility='default' filepath='./Include/Python-ast.h' line='240' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='NamedExpr' type-id='type-id-40' visibility='default' filepath='./Include/Python-ast.h' line='245' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='BinOp' type-id='type-id-41' visibility='default' filepath='./Include/Python-ast.h' line='251' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='UnaryOp' type-id='type-id-42' visibility='default' filepath='./Include/Python-ast.h' line='256' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Lambda' type-id='type-id-43' visibility='default' filepath='./Include/Python-ast.h' line='261' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='IfExp' type-id='type-id-44' visibility='default' filepath='./Include/Python-ast.h' line='267' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Dict' type-id='type-id-45' visibility='default' filepath='./Include/Python-ast.h' line='272' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Set' type-id='type-id-46' visibility='default' filepath='./Include/Python-ast.h' line='276' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='ListComp' type-id='type-id-47' visibility='default' filepath='./Include/Python-ast.h' line='281' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='SetComp' type-id='type-id-47' visibility='default' filepath='./Include/Python-ast.h' line='286' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='DictComp' type-id='type-id-48' visibility='default' filepath='./Include/Python-ast.h' line='292' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='GeneratorExp' type-id='type-id-47' visibility='default' filepath='./Include/Python-ast.h' line='297' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Await' type-id='type-id-49' visibility='default' filepath='./Include/Python-ast.h' line='301' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Yield' type-id='type-id-49' visibility='default' filepath='./Include/Python-ast.h' line='305' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='YieldFrom' type-id='type-id-49' visibility='default' filepath='./Include/Python-ast.h' line='309' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Compare' type-id='type-id-50' visibility='default' filepath='./Include/Python-ast.h' line='315' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Call' type-id='type-id-51' visibility='default' filepath='./Include/Python-ast.h' line='321' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='FormattedValue' type-id='type-id-52' visibility='default' filepath='./Include/Python-ast.h' line='327' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='JoinedStr' type-id='type-id-53' visibility='default' filepath='./Include/Python-ast.h' line='331' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Constant' type-id='type-id-54' visibility='default' filepath='./Include/Python-ast.h' line='336' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Attribute' type-id='type-id-55' visibility='default' filepath='./Include/Python-ast.h' line='342' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Subscript' type-id='type-id-56' visibility='default' filepath='./Include/Python-ast.h' line='348' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Starred' type-id='type-id-57' visibility='default' filepath='./Include/Python-ast.h' line='353' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Name' type-id='type-id-58' visibility='default' filepath='./Include/Python-ast.h' line='358' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='List' type-id='type-id-59' visibility='default' filepath='./Include/Python-ast.h' line='363' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Tuple' type-id='type-id-59' visibility='default' filepath='./Include/Python-ast.h' line='368' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='Slice' type-id='type-id-60' visibility='default' filepath='./Include/Python-ast.h' line='374' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='237' column='1' id='type-id-39'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='op' type-id='type-id-61' visibility='default' filepath='./Include/Python-ast.h' line='238' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='values' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='239' column='1'/>
+      </data-member>
+    </class-decl>
+    <enum-decl name='_boolop' filepath='./Include/Python-ast.h' line='22' column='1' id='type-id-62'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='And' value='1'/>
+      <enumerator name='Or' value='2'/>
+    </enum-decl>
+    <typedef-decl name='boolop_ty' type-id='type-id-62' filepath='./Include/Python-ast.h' line='22' column='1' id='type-id-61'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='242' column='1' id='type-id-40'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='target' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='243' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='244' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-63'/>
+    <typedef-decl name='expr_ty' type-id='type-id-63' filepath='./Include/Python-ast.h' line='18' column='1' id='type-id-35'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='247' column='1' id='type-id-41'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='left' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='248' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='op' type-id='type-id-64' visibility='default' filepath='./Include/Python-ast.h' line='249' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='right' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='250' column='1'/>
+      </data-member>
+    </class-decl>
+    <enum-decl name='_operator' filepath='./Include/Python-ast.h' line='24' column='1' id='type-id-65'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='Add' value='1'/>
+      <enumerator name='Sub' value='2'/>
+      <enumerator name='Mult' value='3'/>
+      <enumerator name='MatMult' value='4'/>
+      <enumerator name='Div' value='5'/>
+      <enumerator name='Mod' value='6'/>
+      <enumerator name='Pow' value='7'/>
+      <enumerator name='LShift' value='8'/>
+      <enumerator name='RShift' value='9'/>
+      <enumerator name='BitOr' value='10'/>
+      <enumerator name='BitXor' value='11'/>
+      <enumerator name='BitAnd' value='12'/>
+      <enumerator name='FloorDiv' value='13'/>
+    </enum-decl>
+    <typedef-decl name='operator_ty' type-id='type-id-65' filepath='./Include/Python-ast.h' line='26' column='1' id='type-id-64'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='253' column='1' id='type-id-42'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='op' type-id='type-id-66' visibility='default' filepath='./Include/Python-ast.h' line='254' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='operand' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='255' column='1'/>
+      </data-member>
+    </class-decl>
+    <enum-decl name='_unaryop' filepath='./Include/Python-ast.h' line='28' column='1' id='type-id-67'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='Invert' value='1'/>
+      <enumerator name='Not' value='2'/>
+      <enumerator name='UAdd' value='3'/>
+      <enumerator name='USub' value='4'/>
+    </enum-decl>
+    <typedef-decl name='unaryop_ty' type-id='type-id-67' filepath='./Include/Python-ast.h' line='28' column='1' id='type-id-66'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='258' column='1' id='type-id-43'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='args' type-id='type-id-68' visibility='default' filepath='./Include/Python-ast.h' line='259' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='body' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='260' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_arguments' size-in-bits='448' is-struct='yes' visibility='default' filepath='./Include/Python-ast.h' line='407' column='1' id='type-id-69'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='posonlyargs' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='408' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='args' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='409' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='vararg' type-id='type-id-70' visibility='default' filepath='./Include/Python-ast.h' line='410' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='kwonlyargs' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='411' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='kw_defaults' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='412' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='kwarg' type-id='type-id-70' visibility='default' filepath='./Include/Python-ast.h' line='413' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='defaults' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='414' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_arg' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/Python-ast.h' line='417' column='1' id='type-id-71'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='arg' type-id='type-id-72' visibility='default' filepath='./Include/Python-ast.h' line='418' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='annotation' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='419' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='type_comment' type-id='type-id-73' visibility='default' filepath='./Include/Python-ast.h' line='420' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='lineno' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='421' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='224'>
+        <var-decl name='col_offset' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='422' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='end_lineno' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='423' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <var-decl name='end_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='424' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_object' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/object.h' line='105' column='1' id='type-id-74'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ob_refcnt' type-id='type-id-15' visibility='default' filepath='./Include/object.h' line='107' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='ob_type' type-id='type-id-75' visibility='default' filepath='./Include/object.h' line='108' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_typeobject' size-in-bits='3264' is-struct='yes' visibility='default' filepath='./Include/cpython/object.h' line='193' column='1' id='type-id-76'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ob_base' type-id='type-id-77' visibility='default' filepath='./Include/cpython/object.h' line='194' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='tp_name' type-id='type-id-3' visibility='default' filepath='./Include/cpython/object.h' line='195' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='tp_basicsize' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='196' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='tp_itemsize' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='196' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='tp_dealloc' type-id='type-id-78' visibility='default' filepath='./Include/cpython/object.h' line='200' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='tp_vectorcall_offset' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='201' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='tp_getattr' type-id='type-id-79' visibility='default' filepath='./Include/cpython/object.h' line='202' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='tp_setattr' type-id='type-id-80' visibility='default' filepath='./Include/cpython/object.h' line='203' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='tp_as_async' type-id='type-id-81' visibility='default' filepath='./Include/cpython/object.h' line='204' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='tp_repr' type-id='type-id-82' visibility='default' filepath='./Include/cpython/object.h' line='206' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='tp_as_number' type-id='type-id-83' visibility='default' filepath='./Include/cpython/object.h' line='210' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='tp_as_sequence' type-id='type-id-84' visibility='default' filepath='./Include/cpython/object.h' line='211' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='tp_as_mapping' type-id='type-id-85' visibility='default' filepath='./Include/cpython/object.h' line='212' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='tp_hash' type-id='type-id-86' visibility='default' filepath='./Include/cpython/object.h' line='216' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <var-decl name='tp_call' type-id='type-id-87' visibility='default' filepath='./Include/cpython/object.h' line='217' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <var-decl name='tp_str' type-id='type-id-82' visibility='default' filepath='./Include/cpython/object.h' line='218' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='tp_getattro' type-id='type-id-88' visibility='default' filepath='./Include/cpython/object.h' line='219' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='tp_setattro' type-id='type-id-89' visibility='default' filepath='./Include/cpython/object.h' line='220' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='tp_as_buffer' type-id='type-id-90' visibility='default' filepath='./Include/cpython/object.h' line='223' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='tp_flags' type-id='type-id-33' visibility='default' filepath='./Include/cpython/object.h' line='226' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='tp_doc' type-id='type-id-3' visibility='default' filepath='./Include/cpython/object.h' line='228' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='tp_traverse' type-id='type-id-91' visibility='default' filepath='./Include/cpython/object.h' line='232' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='tp_clear' type-id='type-id-92' visibility='default' filepath='./Include/cpython/object.h' line='235' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1600'>
+        <var-decl name='tp_richcompare' type-id='type-id-93' visibility='default' filepath='./Include/cpython/object.h' line='239' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1664'>
+        <var-decl name='tp_weaklistoffset' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='242' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='tp_iter' type-id='type-id-94' visibility='default' filepath='./Include/cpython/object.h' line='245' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1792'>
+        <var-decl name='tp_iternext' type-id='type-id-95' visibility='default' filepath='./Include/cpython/object.h' line='246' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1856'>
+        <var-decl name='tp_methods' type-id='type-id-96' visibility='default' filepath='./Include/cpython/object.h' line='249' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1920'>
+        <var-decl name='tp_members' type-id='type-id-97' visibility='default' filepath='./Include/cpython/object.h' line='250' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1984'>
+        <var-decl name='tp_getset' type-id='type-id-98' visibility='default' filepath='./Include/cpython/object.h' line='251' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2048'>
+        <var-decl name='tp_base' type-id='type-id-99' visibility='default' filepath='./Include/cpython/object.h' line='252' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2112'>
+        <var-decl name='tp_dict' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='253' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2176'>
+        <var-decl name='tp_descr_get' type-id='type-id-101' visibility='default' filepath='./Include/cpython/object.h' line='254' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2240'>
+        <var-decl name='tp_descr_set' type-id='type-id-102' visibility='default' filepath='./Include/cpython/object.h' line='255' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2304'>
+        <var-decl name='tp_dictoffset' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='256' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2368'>
+        <var-decl name='tp_init' type-id='type-id-103' visibility='default' filepath='./Include/cpython/object.h' line='257' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2432'>
+        <var-decl name='tp_alloc' type-id='type-id-104' visibility='default' filepath='./Include/cpython/object.h' line='258' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2496'>
+        <var-decl name='tp_new' type-id='type-id-105' visibility='default' filepath='./Include/cpython/object.h' line='259' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2560'>
+        <var-decl name='tp_free' type-id='type-id-106' visibility='default' filepath='./Include/cpython/object.h' line='260' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2624'>
+        <var-decl name='tp_is_gc' type-id='type-id-92' visibility='default' filepath='./Include/cpython/object.h' line='261' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2688'>
+        <var-decl name='tp_bases' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='262' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2752'>
+        <var-decl name='tp_mro' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='263' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2816'>
+        <var-decl name='tp_cache' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='264' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2880'>
+        <var-decl name='tp_subclasses' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='265' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2944'>
+        <var-decl name='tp_weaklist' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='266' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='3008'>
+        <var-decl name='tp_del' type-id='type-id-78' visibility='default' filepath='./Include/cpython/object.h' line='267' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='3072'>
+        <var-decl name='tp_version_tag' type-id='type-id-107' visibility='default' filepath='./Include/cpython/object.h' line='270' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='3136'>
+        <var-decl name='tp_finalize' type-id='type-id-78' visibility='default' filepath='./Include/cpython/object.h' line='272' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='3200'>
+        <var-decl name='tp_vectorcall' type-id='type-id-108' visibility='default' filepath='./Include/cpython/object.h' line='273' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-77' visibility='default' filepath='./Include/object.h' line='115' column='1' id='type-id-109'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='target' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='243' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/object.h' line='116' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ob_size' type-id='type-id-15' visibility='default' filepath='./Include/object.h' line='117' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='PyObject' type-id='type-id-74' filepath='./Include/object.h' line='109' column='1' id='type-id-110'/>
+    <typedef-decl name='PyVarObject' type-id='type-id-109' filepath='./Include/object.h' line='118' column='1' id='type-id-77'/>
+    <pointer-type-def type-id='type-id-110' size-in-bits='64' id='type-id-100'/>
+    <pointer-type-def type-id='type-id-111' size-in-bits='64' id='type-id-112'/>
+    <typedef-decl name='destructor' type-id='type-id-112' filepath='./Include/object.h' line='180' column='1' id='type-id-78'/>
+    <pointer-type-def type-id='type-id-113' size-in-bits='64' id='type-id-114'/>
+    <typedef-decl name='getattrfunc' type-id='type-id-114' filepath='./Include/object.h' line='181' column='1' id='type-id-79'/>
+    <pointer-type-def type-id='type-id-115' size-in-bits='64' id='type-id-116'/>
+    <typedef-decl name='setattrfunc' type-id='type-id-116' filepath='./Include/object.h' line='183' column='1' id='type-id-80'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-117' visibility='default' filepath='./Include/cpython/object.h' line='178' column='1' id='type-id-118'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='am_await' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='179' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='244' column='1'/>
+        <var-decl name='am_aiter' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='180' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='am_anext' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='181' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-36' size-in-bits='64' id='type-id-63'/>
-    <typedef-decl name='expr_ty' type-id='type-id-63' filepath='./Include/Python-ast.h' line='18' column='1' id='type-id-35'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='247' column='1' id='type-id-41'>
+    <pointer-type-def type-id='type-id-120' size-in-bits='64' id='type-id-121'/>
+    <typedef-decl name='unaryfunc' type-id='type-id-121' filepath='./Include/object.h' line='163' column='1' id='type-id-119'/>
+    <typedef-decl name='PyAsyncMethods' type-id='type-id-118' filepath='./Include/cpython/object.h' line='182' column='1' id='type-id-117'/>
+    <pointer-type-def type-id='type-id-117' size-in-bits='64' id='type-id-81'/>
+    <typedef-decl name='reprfunc' type-id='type-id-121' filepath='./Include/object.h' line='185' column='1' id='type-id-82'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='2304' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-122' visibility='default' filepath='./Include/cpython/object.h' line='111' column='1' id='type-id-123'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='left' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='248' column='1'/>
+        <var-decl name='nb_add' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='116' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='op' type-id='type-id-64' visibility='default' filepath='./Include/Python-ast.h' line='249' column='1'/>
+        <var-decl name='nb_subtract' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='117' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='right' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='250' column='1'/>
+        <var-decl name='nb_multiply' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='118' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='nb_remainder' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='119' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='nb_divmod' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='120' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='nb_power' type-id='type-id-87' visibility='default' filepath='./Include/cpython/object.h' line='121' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='nb_negative' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='122' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='nb_positive' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='123' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='nb_absolute' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='124' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='nb_bool' type-id='type-id-92' visibility='default' filepath='./Include/cpython/object.h' line='125' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='nb_invert' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='126' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='nb_lshift' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='127' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='nb_rshift' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='128' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='nb_and' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='129' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='nb_xor' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='130' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='nb_or' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='131' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <var-decl name='nb_int' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='132' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <var-decl name='nb_reserved' type-id='type-id-32' visibility='default' filepath='./Include/cpython/object.h' line='133' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='nb_float' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='134' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='nb_inplace_add' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='136' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='nb_inplace_subtract' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='137' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='nb_inplace_multiply' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='138' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='nb_inplace_remainder' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='139' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='nb_inplace_power' type-id='type-id-87' visibility='default' filepath='./Include/cpython/object.h' line='140' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='nb_inplace_lshift' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='141' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1600'>
+        <var-decl name='nb_inplace_rshift' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='142' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1664'>
+        <var-decl name='nb_inplace_and' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='143' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='nb_inplace_xor' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='144' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1792'>
+        <var-decl name='nb_inplace_or' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='145' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1856'>
+        <var-decl name='nb_floor_divide' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='147' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1920'>
+        <var-decl name='nb_true_divide' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='148' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1984'>
+        <var-decl name='nb_inplace_floor_divide' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='149' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2048'>
+        <var-decl name='nb_inplace_true_divide' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='150' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2112'>
+        <var-decl name='nb_index' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='152' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2176'>
+        <var-decl name='nb_matrix_multiply' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='154' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2240'>
+        <var-decl name='nb_inplace_matrix_multiply' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='155' column='1'/>
       </data-member>
     </class-decl>
-    <enum-decl name='_operator' filepath='./Include/Python-ast.h' line='24' column='1' id='type-id-65'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='Add' value='1'/>
-      <enumerator name='Sub' value='2'/>
-      <enumerator name='Mult' value='3'/>
-      <enumerator name='MatMult' value='4'/>
-      <enumerator name='Div' value='5'/>
-      <enumerator name='Mod' value='6'/>
-      <enumerator name='Pow' value='7'/>
-      <enumerator name='LShift' value='8'/>
-      <enumerator name='RShift' value='9'/>
-      <enumerator name='BitOr' value='10'/>
-      <enumerator name='BitXor' value='11'/>
-      <enumerator name='BitAnd' value='12'/>
-      <enumerator name='FloorDiv' value='13'/>
-    </enum-decl>
-    <typedef-decl name='operator_ty' type-id='type-id-65' filepath='./Include/Python-ast.h' line='26' column='1' id='type-id-64'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='253' column='1' id='type-id-42'>
+    <pointer-type-def type-id='type-id-125' size-in-bits='64' id='type-id-126'/>
+    <typedef-decl name='binaryfunc' type-id='type-id-126' filepath='./Include/object.h' line='164' column='1' id='type-id-124'/>
+    <pointer-type-def type-id='type-id-127' size-in-bits='64' id='type-id-128'/>
+    <typedef-decl name='ternaryfunc' type-id='type-id-128' filepath='./Include/object.h' line='165' column='1' id='type-id-87'/>
+    <pointer-type-def type-id='type-id-129' size-in-bits='64' id='type-id-130'/>
+    <typedef-decl name='inquiry' type-id='type-id-130' filepath='./Include/object.h' line='166' column='1' id='type-id-92'/>
+    <typedef-decl name='PyNumberMethods' type-id='type-id-123' filepath='./Include/cpython/object.h' line='156' column='1' id='type-id-122'/>
+    <pointer-type-def type-id='type-id-122' size-in-bits='64' id='type-id-83'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='640' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-131' visibility='default' filepath='./Include/cpython/object.h' line='158' column='1' id='type-id-132'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='op' type-id='type-id-66' visibility='default' filepath='./Include/Python-ast.h' line='254' column='1'/>
+        <var-decl name='sq_length' type-id='type-id-133' visibility='default' filepath='./Include/cpython/object.h' line='159' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='operand' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='255' column='1'/>
+        <var-decl name='sq_concat' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='160' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='sq_repeat' type-id='type-id-134' visibility='default' filepath='./Include/cpython/object.h' line='161' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='sq_item' type-id='type-id-134' visibility='default' filepath='./Include/cpython/object.h' line='162' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='was_sq_slice' type-id='type-id-32' visibility='default' filepath='./Include/cpython/object.h' line='163' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='sq_ass_item' type-id='type-id-135' visibility='default' filepath='./Include/cpython/object.h' line='164' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='was_sq_ass_slice' type-id='type-id-32' visibility='default' filepath='./Include/cpython/object.h' line='165' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='sq_contains' type-id='type-id-136' visibility='default' filepath='./Include/cpython/object.h' line='166' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='sq_inplace_concat' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='168' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='sq_inplace_repeat' type-id='type-id-134' visibility='default' filepath='./Include/cpython/object.h' line='169' column='1'/>
       </data-member>
     </class-decl>
-    <enum-decl name='_unaryop' filepath='./Include/Python-ast.h' line='28' column='1' id='type-id-67'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='Invert' value='1'/>
-      <enumerator name='Not' value='2'/>
-      <enumerator name='UAdd' value='3'/>
-      <enumerator name='USub' value='4'/>
-    </enum-decl>
-    <typedef-decl name='unaryop_ty' type-id='type-id-67' filepath='./Include/Python-ast.h' line='28' column='1' id='type-id-66'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='258' column='1' id='type-id-43'>
+    <pointer-type-def type-id='type-id-137' size-in-bits='64' id='type-id-138'/>
+    <typedef-decl name='lenfunc' type-id='type-id-138' filepath='./Include/object.h' line='167' column='1' id='type-id-133'/>
+    <pointer-type-def type-id='type-id-139' size-in-bits='64' id='type-id-140'/>
+    <typedef-decl name='ssizeargfunc' type-id='type-id-140' filepath='./Include/object.h' line='168' column='1' id='type-id-134'/>
+    <pointer-type-def type-id='type-id-141' size-in-bits='64' id='type-id-142'/>
+    <typedef-decl name='ssizeobjargproc' type-id='type-id-142' filepath='./Include/object.h' line='170' column='1' id='type-id-135'/>
+    <pointer-type-def type-id='type-id-143' size-in-bits='64' id='type-id-144'/>
+    <typedef-decl name='objobjproc' type-id='type-id-144' filepath='./Include/object.h' line='174' column='1' id='type-id-136'/>
+    <typedef-decl name='PySequenceMethods' type-id='type-id-132' filepath='./Include/cpython/object.h' line='170' column='1' id='type-id-131'/>
+    <pointer-type-def type-id='type-id-131' size-in-bits='64' id='type-id-84'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-145' visibility='default' filepath='./Include/cpython/object.h' line='172' column='1' id='type-id-146'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='mp_length' type-id='type-id-133' visibility='default' filepath='./Include/cpython/object.h' line='173' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='mp_subscript' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='174' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='mp_ass_subscript' type-id='type-id-147' visibility='default' filepath='./Include/cpython/object.h' line='175' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-148' size-in-bits='64' id='type-id-149'/>
+    <typedef-decl name='objobjargproc' type-id='type-id-149' filepath='./Include/object.h' line='172' column='1' id='type-id-147'/>
+    <typedef-decl name='PyMappingMethods' type-id='type-id-146' filepath='./Include/cpython/object.h' line='176' column='1' id='type-id-145'/>
+    <pointer-type-def type-id='type-id-145' size-in-bits='64' id='type-id-85'/>
+    <typedef-decl name='Py_hash_t' type-id='type-id-15' filepath='./Include/pyport.h' line='114' column='1' id='type-id-150'/>
+    <pointer-type-def type-id='type-id-151' size-in-bits='64' id='type-id-152'/>
+    <typedef-decl name='hashfunc' type-id='type-id-152' filepath='./Include/object.h' line='186' column='1' id='type-id-86'/>
+    <typedef-decl name='getattrofunc' type-id='type-id-126' filepath='./Include/object.h' line='182' column='1' id='type-id-88'/>
+    <typedef-decl name='setattrofunc' type-id='type-id-149' filepath='./Include/object.h' line='184' column='1' id='type-id-89'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-153' visibility='default' filepath='./Include/cpython/object.h' line='184' column='1' id='type-id-154'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='args' type-id='type-id-68' visibility='default' filepath='./Include/Python-ast.h' line='259' column='1'/>
+        <var-decl name='bf_getbuffer' type-id='type-id-155' visibility='default' filepath='./Include/cpython/object.h' line='185' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='body' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='260' column='1'/>
+        <var-decl name='bf_releasebuffer' type-id='type-id-156' visibility='default' filepath='./Include/cpython/object.h' line='186' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_arguments' size-in-bits='448' is-struct='yes' visibility='default' filepath='./Include/Python-ast.h' line='407' column='1' id='type-id-69'>
+    <class-decl name='bufferinfo' size-in-bits='640' is-struct='yes' visibility='default' filepath='./Include/cpython/object.h' line='56' column='1' id='type-id-157'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='posonlyargs' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='408' column='1'/>
+        <var-decl name='buf' type-id='type-id-32' visibility='default' filepath='./Include/cpython/object.h' line='57' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='args' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='409' column='1'/>
+        <var-decl name='obj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='58' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='vararg' type-id='type-id-70' visibility='default' filepath='./Include/Python-ast.h' line='410' column='1'/>
+        <var-decl name='len' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='59' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='kwonlyargs' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='411' column='1'/>
+        <var-decl name='itemsize' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='60' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='kw_defaults' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='412' column='1'/>
+        <var-decl name='readonly' type-id='type-id-8' visibility='default' filepath='./Include/cpython/object.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <var-decl name='ndim' type-id='type-id-8' visibility='default' filepath='./Include/cpython/object.h' line='63' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='kwarg' type-id='type-id-70' visibility='default' filepath='./Include/Python-ast.h' line='413' column='1'/>
+        <var-decl name='format' type-id='type-id-7' visibility='default' filepath='./Include/cpython/object.h' line='64' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='defaults' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='414' column='1'/>
+        <var-decl name='shape' type-id='type-id-158' visibility='default' filepath='./Include/cpython/object.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='strides' type-id='type-id-158' visibility='default' filepath='./Include/cpython/object.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='suboffsets' type-id='type-id-158' visibility='default' filepath='./Include/cpython/object.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='internal' type-id='type-id-32' visibility='default' filepath='./Include/cpython/object.h' line='68' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_arg' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/Python-ast.h' line='417' column='1' id='type-id-71'>
+    <pointer-type-def type-id='type-id-15' size-in-bits='64' id='type-id-158'/>
+    <typedef-decl name='Py_buffer' type-id='type-id-157' filepath='./Include/cpython/object.h' line='69' column='1' id='type-id-159'/>
+    <pointer-type-def type-id='type-id-159' size-in-bits='64' id='type-id-160'/>
+    <pointer-type-def type-id='type-id-161' size-in-bits='64' id='type-id-162'/>
+    <typedef-decl name='getbufferproc' type-id='type-id-162' filepath='./Include/cpython/object.h' line='71' column='1' id='type-id-155'/>
+    <pointer-type-def type-id='type-id-163' size-in-bits='64' id='type-id-164'/>
+    <typedef-decl name='releasebufferproc' type-id='type-id-164' filepath='./Include/cpython/object.h' line='72' column='1' id='type-id-156'/>
+    <typedef-decl name='PyBufferProcs' type-id='type-id-154' filepath='./Include/cpython/object.h' line='187' column='1' id='type-id-153'/>
+    <pointer-type-def type-id='type-id-153' size-in-bits='64' id='type-id-90'/>
+    <pointer-type-def type-id='type-id-165' size-in-bits='64' id='type-id-166'/>
+    <typedef-decl name='visitproc' type-id='type-id-166' filepath='./Include/object.h' line='175' column='1' id='type-id-167'/>
+    <pointer-type-def type-id='type-id-168' size-in-bits='64' id='type-id-169'/>
+    <typedef-decl name='traverseproc' type-id='type-id-169' filepath='./Include/object.h' line='176' column='1' id='type-id-91'/>
+    <pointer-type-def type-id='type-id-170' size-in-bits='64' id='type-id-171'/>
+    <typedef-decl name='richcmpfunc' type-id='type-id-171' filepath='./Include/object.h' line='187' column='1' id='type-id-93'/>
+    <typedef-decl name='getiterfunc' type-id='type-id-121' filepath='./Include/object.h' line='188' column='1' id='type-id-94'/>
+    <typedef-decl name='iternextfunc' type-id='type-id-121' filepath='./Include/object.h' line='189' column='1' id='type-id-95'/>
+    <class-decl name='PyMethodDef' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/methodobject.h' line='35' column='1' id='type-id-172'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='arg' type-id='type-id-72' visibility='default' filepath='./Include/Python-ast.h' line='418' column='1'/>
+        <var-decl name='ml_name' type-id='type-id-3' visibility='default' filepath='./Include/methodobject.h' line='36' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='annotation' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='419' column='1'/>
+        <var-decl name='ml_meth' type-id='type-id-173' visibility='default' filepath='./Include/methodobject.h' line='37' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='type_comment' type-id='type-id-73' visibility='default' filepath='./Include/Python-ast.h' line='420' column='1'/>
+        <var-decl name='ml_flags' type-id='type-id-8' visibility='default' filepath='./Include/methodobject.h' line='38' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='lineno' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='421' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='224'>
-        <var-decl name='col_offset' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='422' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='end_lineno' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='423' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='end_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='424' column='1'/>
+        <var-decl name='ml_doc' type-id='type-id-3' visibility='default' filepath='./Include/methodobject.h' line='40' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_object' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/object.h' line='105' column='1' id='type-id-74'>
+    <typedef-decl name='PyCFunction' type-id='type-id-126' filepath='./Include/methodobject.h' line='19' column='1' id='type-id-173'/>
+    <pointer-type-def type-id='type-id-172' size-in-bits='64' id='type-id-96'/>
+    <class-decl name='PyMemberDef' size-in-bits='320' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-174'/>
+    <pointer-type-def type-id='type-id-174' size-in-bits='64' id='type-id-97'/>
+    <class-decl name='PyGetSetDef' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/descrobject.h' line='11' column='1' id='type-id-175'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_refcnt' type-id='type-id-15' visibility='default' filepath='./Include/object.h' line='107' column='1'/>
+        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/descrobject.h' line='12' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='ob_type' type-id='type-id-75' visibility='default' filepath='./Include/object.h' line='108' column='1'/>
+        <var-decl name='get' type-id='type-id-176' visibility='default' filepath='./Include/descrobject.h' line='13' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='_typeobject' size-in-bits='3264' is-struct='yes' visibility='default' filepath='./Include/cpython/object.h' line='193' column='1' id='type-id-76'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-77' visibility='default' filepath='./Include/cpython/object.h' line='194' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='set' type-id='type-id-177' visibility='default' filepath='./Include/descrobject.h' line='14' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='tp_name' type-id='type-id-3' visibility='default' filepath='./Include/cpython/object.h' line='195' column='1'/>
+        <var-decl name='doc' type-id='type-id-3' visibility='default' filepath='./Include/descrobject.h' line='15' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='tp_basicsize' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='196' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='tp_itemsize' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='196' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='tp_dealloc' type-id='type-id-78' visibility='default' filepath='./Include/cpython/object.h' line='200' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='tp_vectorcall_offset' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='201' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='tp_getattr' type-id='type-id-79' visibility='default' filepath='./Include/cpython/object.h' line='202' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='tp_setattr' type-id='type-id-80' visibility='default' filepath='./Include/cpython/object.h' line='203' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='tp_as_async' type-id='type-id-81' visibility='default' filepath='./Include/cpython/object.h' line='204' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='tp_repr' type-id='type-id-82' visibility='default' filepath='./Include/cpython/object.h' line='206' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='tp_as_number' type-id='type-id-83' visibility='default' filepath='./Include/cpython/object.h' line='210' column='1'/>
+        <var-decl name='closure' type-id='type-id-32' visibility='default' filepath='./Include/descrobject.h' line='16' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='tp_as_sequence' type-id='type-id-84' visibility='default' filepath='./Include/cpython/object.h' line='211' column='1'/>
+    </class-decl>
+    <pointer-type-def type-id='type-id-178' size-in-bits='64' id='type-id-179'/>
+    <typedef-decl name='getter' type-id='type-id-179' filepath='./Include/descrobject.h' line='8' column='1' id='type-id-176'/>
+    <pointer-type-def type-id='type-id-180' size-in-bits='64' id='type-id-181'/>
+    <typedef-decl name='setter' type-id='type-id-181' filepath='./Include/descrobject.h' line='9' column='1' id='type-id-177'/>
+    <pointer-type-def type-id='type-id-175' size-in-bits='64' id='type-id-98'/>
+    <pointer-type-def type-id='type-id-76' size-in-bits='64' id='type-id-99'/>
+    <typedef-decl name='descrgetfunc' type-id='type-id-128' filepath='./Include/object.h' line='190' column='1' id='type-id-101'/>
+    <typedef-decl name='descrsetfunc' type-id='type-id-149' filepath='./Include/object.h' line='191' column='1' id='type-id-102'/>
+    <typedef-decl name='initproc' type-id='type-id-149' filepath='./Include/object.h' line='192' column='1' id='type-id-103'/>
+    <typedef-decl name='PyTypeObject' type-id='type-id-76' filepath='./Include/object.h' line='66' column='1' id='type-id-182'/>
+    <pointer-type-def type-id='type-id-182' size-in-bits='64' id='type-id-75'/>
+    <pointer-type-def type-id='type-id-183' size-in-bits='64' id='type-id-184'/>
+    <typedef-decl name='allocfunc' type-id='type-id-184' filepath='./Include/object.h' line='194' column='1' id='type-id-104'/>
+    <pointer-type-def type-id='type-id-185' size-in-bits='64' id='type-id-186'/>
+    <typedef-decl name='newfunc' type-id='type-id-186' filepath='./Include/object.h' line='193' column='1' id='type-id-105'/>
+    <pointer-type-def type-id='type-id-187' size-in-bits='64' id='type-id-188'/>
+    <typedef-decl name='freefunc' type-id='type-id-188' filepath='./Include/object.h' line='179' column='1' id='type-id-106'/>
+    <type-decl name='unsigned int' size-in-bits='32' id='type-id-107'/>
+    <qualified-type-def type-id='type-id-100' const='yes' id='type-id-189'/>
+    <pointer-type-def type-id='type-id-189' size-in-bits='64' id='type-id-190'/>
+    <typedef-decl name='size_t' type-id='type-id-33' filepath='/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h' line='209' column='1' id='type-id-191'/>
+    <pointer-type-def type-id='type-id-192' size-in-bits='64' id='type-id-193'/>
+    <typedef-decl name='vectorcallfunc' type-id='type-id-193' filepath='./Include/cpython/object.h' line='74' column='1' id='type-id-108'/>
+    <typedef-decl name='identifier' type-id='type-id-100' filepath='./Include/asdl.h' line='5' column='1' id='type-id-72'/>
+    <typedef-decl name='string' type-id='type-id-100' filepath='./Include/asdl.h' line='6' column='1' id='type-id-73'/>
+    <pointer-type-def type-id='type-id-71' size-in-bits='64' id='type-id-194'/>
+    <typedef-decl name='arg_ty' type-id='type-id-194' filepath='./Include/Python-ast.h' line='39' column='1' id='type-id-70'/>
+    <pointer-type-def type-id='type-id-69' size-in-bits='64' id='type-id-195'/>
+    <typedef-decl name='arguments_ty' type-id='type-id-195' filepath='./Include/Python-ast.h' line='37' column='1' id='type-id-68'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='263' column='1' id='type-id-44'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='test' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='264' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='tp_as_mapping' type-id='type-id-85' visibility='default' filepath='./Include/cpython/object.h' line='212' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='body' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='265' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='960'>
-        <var-decl name='tp_hash' type-id='type-id-86' visibility='default' filepath='./Include/cpython/object.h' line='216' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='orelse' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='266' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1024'>
-        <var-decl name='tp_call' type-id='type-id-87' visibility='default' filepath='./Include/cpython/object.h' line='217' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='269' column='1' id='type-id-45'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='keys' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='270' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1088'>
-        <var-decl name='tp_str' type-id='type-id-82' visibility='default' filepath='./Include/cpython/object.h' line='218' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='values' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='271' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='tp_getattro' type-id='type-id-88' visibility='default' filepath='./Include/cpython/object.h' line='219' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='274' column='1' id='type-id-46'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='elts' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='275' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='tp_setattro' type-id='type-id-89' visibility='default' filepath='./Include/cpython/object.h' line='220' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='278' column='1' id='type-id-47'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='elt' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='279' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1280'>
-        <var-decl name='tp_as_buffer' type-id='type-id-90' visibility='default' filepath='./Include/cpython/object.h' line='223' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='generators' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='280' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='tp_flags' type-id='type-id-33' visibility='default' filepath='./Include/cpython/object.h' line='226' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='288' column='1' id='type-id-48'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='key' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='289' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1408'>
-        <var-decl name='tp_doc' type-id='type-id-3' visibility='default' filepath='./Include/cpython/object.h' line='228' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='290' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1472'>
-        <var-decl name='tp_traverse' type-id='type-id-91' visibility='default' filepath='./Include/cpython/object.h' line='232' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='generators' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='291' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='tp_clear' type-id='type-id-92' visibility='default' filepath='./Include/cpython/object.h' line='235' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='299' column='1' id='type-id-49'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='300' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='tp_richcompare' type-id='type-id-93' visibility='default' filepath='./Include/cpython/object.h' line='239' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='311' column='1' id='type-id-50'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='left' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='312' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1664'>
-        <var-decl name='tp_weaklistoffset' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='242' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='ops' type-id='type-id-196' visibility='default' filepath='./Include/Python-ast.h' line='313' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1728'>
-        <var-decl name='tp_iter' type-id='type-id-94' visibility='default' filepath='./Include/cpython/object.h' line='245' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='comparators' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='314' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='tp_iternext' type-id='type-id-95' visibility='default' filepath='./Include/cpython/object.h' line='246' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-197' visibility='default' filepath='./Include/asdl.h' line='23' column='1' id='type-id-198'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='size' type-id='type-id-15' visibility='default' filepath='./Include/asdl.h' line='24' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='tp_methods' type-id='type-id-96' visibility='default' filepath='./Include/cpython/object.h' line='249' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='elements' type-id='type-id-199' visibility='default' filepath='./Include/asdl.h' line='25' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1920'>
-        <var-decl name='tp_members' type-id='type-id-97' visibility='default' filepath='./Include/cpython/object.h' line='250' column='1'/>
+    </class-decl>
+
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='32' id='type-id-199'>
+      <subrange length='1' type-id='type-id-33' id='type-id-34'/>
+
+    </array-type-def>
+    <typedef-decl name='asdl_int_seq' type-id='type-id-198' filepath='./Include/asdl.h' line='26' column='1' id='type-id-197'/>
+    <pointer-type-def type-id='type-id-197' size-in-bits='64' id='type-id-196'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='317' column='1' id='type-id-51'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='func' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='318' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1984'>
-        <var-decl name='tp_getset' type-id='type-id-98' visibility='default' filepath='./Include/cpython/object.h' line='251' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='args' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='319' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2048'>
-        <var-decl name='tp_base' type-id='type-id-99' visibility='default' filepath='./Include/cpython/object.h' line='252' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='keywords' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='320' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2112'>
-        <var-decl name='tp_dict' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='253' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='323' column='1' id='type-id-52'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='324' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2176'>
-        <var-decl name='tp_descr_get' type-id='type-id-101' visibility='default' filepath='./Include/cpython/object.h' line='254' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='conversion' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='325' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2240'>
-        <var-decl name='tp_descr_set' type-id='type-id-102' visibility='default' filepath='./Include/cpython/object.h' line='255' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='format_spec' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='326' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2304'>
-        <var-decl name='tp_dictoffset' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='256' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='329' column='1' id='type-id-53'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='values' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='330' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2368'>
-        <var-decl name='tp_init' type-id='type-id-103' visibility='default' filepath='./Include/cpython/object.h' line='257' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='333' column='1' id='type-id-54'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='value' type-id='type-id-200' visibility='default' filepath='./Include/Python-ast.h' line='334' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2432'>
-        <var-decl name='tp_alloc' type-id='type-id-104' visibility='default' filepath='./Include/cpython/object.h' line='258' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='kind' type-id='type-id-73' visibility='default' filepath='./Include/Python-ast.h' line='335' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2496'>
-        <var-decl name='tp_new' type-id='type-id-105' visibility='default' filepath='./Include/cpython/object.h' line='259' column='1'/>
+    </class-decl>
+    <typedef-decl name='constant' type-id='type-id-100' filepath='./Include/asdl.h' line='8' column='1' id='type-id-200'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='338' column='1' id='type-id-55'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='339' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2560'>
-        <var-decl name='tp_free' type-id='type-id-106' visibility='default' filepath='./Include/cpython/object.h' line='260' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='attr' type-id='type-id-72' visibility='default' filepath='./Include/Python-ast.h' line='340' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2624'>
-        <var-decl name='tp_is_gc' type-id='type-id-92' visibility='default' filepath='./Include/cpython/object.h' line='261' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ctx' type-id='type-id-201' visibility='default' filepath='./Include/Python-ast.h' line='341' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2688'>
-        <var-decl name='tp_bases' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='262' column='1'/>
+    </class-decl>
+    <enum-decl name='_expr_context' filepath='./Include/Python-ast.h' line='20' column='1' id='type-id-202'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='Load' value='1'/>
+      <enumerator name='Store' value='2'/>
+      <enumerator name='Del' value='3'/>
+    </enum-decl>
+    <typedef-decl name='expr_context_ty' type-id='type-id-202' filepath='./Include/Python-ast.h' line='20' column='1' id='type-id-201'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='344' column='1' id='type-id-56'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='345' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2752'>
-        <var-decl name='tp_mro' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='263' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='slice' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='346' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2816'>
-        <var-decl name='tp_cache' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='264' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ctx' type-id='type-id-201' visibility='default' filepath='./Include/Python-ast.h' line='347' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2880'>
-        <var-decl name='tp_subclasses' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='265' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='350' column='1' id='type-id-57'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='351' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2944'>
-        <var-decl name='tp_weaklist' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='266' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='ctx' type-id='type-id-201' visibility='default' filepath='./Include/Python-ast.h' line='352' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='3008'>
-        <var-decl name='tp_del' type-id='type-id-78' visibility='default' filepath='./Include/cpython/object.h' line='267' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='355' column='1' id='type-id-58'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='id' type-id='type-id-72' visibility='default' filepath='./Include/Python-ast.h' line='356' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='3072'>
-        <var-decl name='tp_version_tag' type-id='type-id-107' visibility='default' filepath='./Include/cpython/object.h' line='270' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='ctx' type-id='type-id-201' visibility='default' filepath='./Include/Python-ast.h' line='357' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='3136'>
-        <var-decl name='tp_finalize' type-id='type-id-78' visibility='default' filepath='./Include/cpython/object.h' line='272' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='360' column='1' id='type-id-59'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='elts' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='361' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='3200'>
-        <var-decl name='tp_vectorcall' type-id='type-id-108' visibility='default' filepath='./Include/cpython/object.h' line='273' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='ctx' type-id='type-id-201' visibility='default' filepath='./Include/Python-ast.h' line='362' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-77' visibility='default' filepath='./Include/object.h' line='115' column='1' id='type-id-109'>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='370' column='1' id='type-id-60'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/object.h' line='116' column='1'/>
+        <var-decl name='lower' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='371' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='upper' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='372' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='ob_size' type-id='type-id-15' visibility='default' filepath='./Include/object.h' line='117' column='1'/>
+        <var-decl name='step' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='373' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='PyObject' type-id='type-id-74' filepath='./Include/object.h' line='109' column='1' id='type-id-110'/>
-    <typedef-decl name='PyVarObject' type-id='type-id-109' filepath='./Include/object.h' line='118' column='1' id='type-id-77'/>
-    <pointer-type-def type-id='type-id-110' size-in-bits='64' id='type-id-100'/>
-    <pointer-type-def type-id='type-id-111' size-in-bits='64' id='type-id-112'/>
-    <typedef-decl name='destructor' type-id='type-id-112' filepath='./Include/object.h' line='180' column='1' id='type-id-78'/>
-    <pointer-type-def type-id='type-id-113' size-in-bits='64' id='type-id-114'/>
-    <typedef-decl name='getattrfunc' type-id='type-id-114' filepath='./Include/object.h' line='181' column='1' id='type-id-79'/>
-    <pointer-type-def type-id='type-id-115' size-in-bits='64' id='type-id-116'/>
-    <typedef-decl name='setattrfunc' type-id='type-id-116' filepath='./Include/object.h' line='183' column='1' id='type-id-80'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-117' visibility='default' filepath='./Include/cpython/object.h' line='178' column='1' id='type-id-118'>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='68' column='1' id='type-id-27'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='am_await' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='179' column='1'/>
+        <var-decl name='argtypes' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='69' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='am_aiter' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='180' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='am_anext' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='181' column='1'/>
+        <var-decl name='returns' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='70' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-120' size-in-bits='64' id='type-id-121'/>
-    <typedef-decl name='unaryfunc' type-id='type-id-121' filepath='./Include/object.h' line='163' column='1' id='type-id-119'/>
-    <typedef-decl name='PyAsyncMethods' type-id='type-id-118' filepath='./Include/cpython/object.h' line='182' column='1' id='type-id-117'/>
-    <pointer-type-def type-id='type-id-117' size-in-bits='64' id='type-id-81'/>
-    <typedef-decl name='reprfunc' type-id='type-id-121' filepath='./Include/object.h' line='185' column='1' id='type-id-82'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='2304' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-122' visibility='default' filepath='./Include/cpython/object.h' line='111' column='1' id='type-id-123'>
+    <pointer-type-def type-id='type-id-20' size-in-bits='64' id='type-id-203'/>
+    <typedef-decl name='mod_ty' type-id='type-id-203' filepath='./Include/Python-ast.h' line='14' column='1' id='type-id-204'/>
+    <class-decl name='_IO_FILE' size-in-bits='1728' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='49' column='1' id='type-id-205'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='nb_add' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='116' column='1'/>
+        <var-decl name='_flags' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='51' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='nb_subtract' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='117' column='1'/>
+        <var-decl name='_IO_read_ptr' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='54' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='nb_multiply' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='118' column='1'/>
+        <var-decl name='_IO_read_end' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='55' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='nb_remainder' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='119' column='1'/>
+        <var-decl name='_IO_read_base' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='56' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='nb_divmod' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='120' column='1'/>
+        <var-decl name='_IO_write_base' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='57' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='nb_power' type-id='type-id-87' visibility='default' filepath='./Include/cpython/object.h' line='121' column='1'/>
+        <var-decl name='_IO_write_ptr' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='58' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='nb_negative' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='122' column='1'/>
+        <var-decl name='_IO_write_end' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='59' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='nb_positive' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='123' column='1'/>
+        <var-decl name='_IO_buf_base' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='60' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='nb_absolute' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='124' column='1'/>
+        <var-decl name='_IO_buf_end' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='61' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='nb_bool' type-id='type-id-92' visibility='default' filepath='./Include/cpython/object.h' line='125' column='1'/>
+        <var-decl name='_IO_save_base' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='64' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='nb_invert' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='126' column='1'/>
+        <var-decl name='_IO_backup_base' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='65' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='nb_lshift' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='127' column='1'/>
+        <var-decl name='_IO_save_end' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='66' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='nb_rshift' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='128' column='1'/>
+        <var-decl name='_markers' type-id='type-id-206' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='68' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='nb_and' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='129' column='1'/>
+        <var-decl name='_chain' type-id='type-id-207' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='70' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='nb_xor' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='130' column='1'/>
+        <var-decl name='_fileno' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='928'>
+        <var-decl name='_flags2' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='73' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='960'>
-        <var-decl name='nb_or' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='131' column='1'/>
+        <var-decl name='_old_offset' type-id='type-id-208' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='74' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1024'>
-        <var-decl name='nb_int' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='132' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1088'>
-        <var-decl name='nb_reserved' type-id='type-id-32' visibility='default' filepath='./Include/cpython/object.h' line='133' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='nb_float' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='134' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='nb_inplace_add' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='136' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1280'>
-        <var-decl name='nb_inplace_subtract' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='137' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='nb_inplace_multiply' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='138' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1408'>
-        <var-decl name='nb_inplace_remainder' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='139' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1472'>
-        <var-decl name='nb_inplace_power' type-id='type-id-87' visibility='default' filepath='./Include/cpython/object.h' line='140' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='nb_inplace_lshift' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='141' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='nb_inplace_rshift' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='142' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1664'>
-        <var-decl name='nb_inplace_and' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='143' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1728'>
-        <var-decl name='nb_inplace_xor' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='144' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='nb_inplace_or' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='145' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='nb_floor_divide' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='147' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1920'>
-        <var-decl name='nb_true_divide' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='148' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1984'>
-        <var-decl name='nb_inplace_floor_divide' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='149' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2048'>
-        <var-decl name='nb_inplace_true_divide' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='150' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2112'>
-        <var-decl name='nb_index' type-id='type-id-119' visibility='default' filepath='./Include/cpython/object.h' line='152' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2176'>
-        <var-decl name='nb_matrix_multiply' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='154' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2240'>
-        <var-decl name='nb_inplace_matrix_multiply' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='155' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-125' size-in-bits='64' id='type-id-126'/>
-    <typedef-decl name='binaryfunc' type-id='type-id-126' filepath='./Include/object.h' line='164' column='1' id='type-id-124'/>
-    <pointer-type-def type-id='type-id-127' size-in-bits='64' id='type-id-128'/>
-    <typedef-decl name='ternaryfunc' type-id='type-id-128' filepath='./Include/object.h' line='165' column='1' id='type-id-87'/>
-    <pointer-type-def type-id='type-id-129' size-in-bits='64' id='type-id-130'/>
-    <typedef-decl name='inquiry' type-id='type-id-130' filepath='./Include/object.h' line='166' column='1' id='type-id-92'/>
-    <typedef-decl name='PyNumberMethods' type-id='type-id-123' filepath='./Include/cpython/object.h' line='156' column='1' id='type-id-122'/>
-    <pointer-type-def type-id='type-id-122' size-in-bits='64' id='type-id-83'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='640' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-131' visibility='default' filepath='./Include/cpython/object.h' line='158' column='1' id='type-id-132'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='sq_length' type-id='type-id-133' visibility='default' filepath='./Include/cpython/object.h' line='159' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='sq_concat' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='160' column='1'/>
+        <var-decl name='_cur_column' type-id='type-id-209' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='77' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='sq_repeat' type-id='type-id-134' visibility='default' filepath='./Include/cpython/object.h' line='161' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1040'>
+        <var-decl name='_vtable_offset' type-id='type-id-210' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='78' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='sq_item' type-id='type-id-134' visibility='default' filepath='./Include/cpython/object.h' line='162' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1048'>
+        <var-decl name='_shortbuf' type-id='type-id-211' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='79' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='was_sq_slice' type-id='type-id-32' visibility='default' filepath='./Include/cpython/object.h' line='163' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <var-decl name='_lock' type-id='type-id-212' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='81' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='sq_ass_item' type-id='type-id-135' visibility='default' filepath='./Include/cpython/object.h' line='164' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='_offset' type-id='type-id-213' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='89' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='was_sq_ass_slice' type-id='type-id-32' visibility='default' filepath='./Include/cpython/object.h' line='165' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='_codecvt' type-id='type-id-214' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='91' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='sq_contains' type-id='type-id-136' visibility='default' filepath='./Include/cpython/object.h' line='166' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='_wide_data' type-id='type-id-215' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='92' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='sq_inplace_concat' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='168' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='_freeres_list' type-id='type-id-207' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='93' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='sq_inplace_repeat' type-id='type-id-134' visibility='default' filepath='./Include/cpython/object.h' line='169' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='_freeres_buf' type-id='type-id-32' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='94' column='1'/>
       </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-137' size-in-bits='64' id='type-id-138'/>
-    <typedef-decl name='lenfunc' type-id='type-id-138' filepath='./Include/object.h' line='167' column='1' id='type-id-133'/>
-    <pointer-type-def type-id='type-id-139' size-in-bits='64' id='type-id-140'/>
-    <typedef-decl name='ssizeargfunc' type-id='type-id-140' filepath='./Include/object.h' line='168' column='1' id='type-id-134'/>
-    <pointer-type-def type-id='type-id-141' size-in-bits='64' id='type-id-142'/>
-    <typedef-decl name='ssizeobjargproc' type-id='type-id-142' filepath='./Include/object.h' line='170' column='1' id='type-id-135'/>
-    <pointer-type-def type-id='type-id-143' size-in-bits='64' id='type-id-144'/>
-    <typedef-decl name='objobjproc' type-id='type-id-144' filepath='./Include/object.h' line='174' column='1' id='type-id-136'/>
-    <typedef-decl name='PySequenceMethods' type-id='type-id-132' filepath='./Include/cpython/object.h' line='170' column='1' id='type-id-131'/>
-    <pointer-type-def type-id='type-id-131' size-in-bits='64' id='type-id-84'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-145' visibility='default' filepath='./Include/cpython/object.h' line='172' column='1' id='type-id-146'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='mp_length' type-id='type-id-133' visibility='default' filepath='./Include/cpython/object.h' line='173' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='__pad5' type-id='type-id-191' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='95' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='mp_subscript' type-id='type-id-124' visibility='default' filepath='./Include/cpython/object.h' line='174' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='_mode' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='96' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='mp_ass_subscript' type-id='type-id-147' visibility='default' filepath='./Include/cpython/object.h' line='175' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1568'>
+        <var-decl name='_unused2' type-id='type-id-216' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='98' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-148' size-in-bits='64' id='type-id-149'/>
-    <typedef-decl name='objobjargproc' type-id='type-id-149' filepath='./Include/object.h' line='172' column='1' id='type-id-147'/>
-    <typedef-decl name='PyMappingMethods' type-id='type-id-146' filepath='./Include/cpython/object.h' line='176' column='1' id='type-id-145'/>
-    <pointer-type-def type-id='type-id-145' size-in-bits='64' id='type-id-85'/>
-    <typedef-decl name='Py_hash_t' type-id='type-id-15' filepath='./Include/pyport.h' line='114' column='1' id='type-id-150'/>
-    <pointer-type-def type-id='type-id-151' size-in-bits='64' id='type-id-152'/>
-    <typedef-decl name='hashfunc' type-id='type-id-152' filepath='./Include/object.h' line='186' column='1' id='type-id-86'/>
-    <typedef-decl name='getattrofunc' type-id='type-id-126' filepath='./Include/object.h' line='182' column='1' id='type-id-88'/>
-    <typedef-decl name='setattrofunc' type-id='type-id-149' filepath='./Include/object.h' line='184' column='1' id='type-id-89'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-153' visibility='default' filepath='./Include/cpython/object.h' line='184' column='1' id='type-id-154'>
+    <class-decl name='_IO_marker' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-217'/>
+    <pointer-type-def type-id='type-id-217' size-in-bits='64' id='type-id-206'/>
+    <pointer-type-def type-id='type-id-205' size-in-bits='64' id='type-id-207'/>
+    <typedef-decl name='__off_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='152' column='1' id='type-id-208'/>
+    <type-decl name='unsigned short int' size-in-bits='16' id='type-id-209'/>
+    <type-decl name='signed char' size-in-bits='8' id='type-id-210'/>
+
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='8' id='type-id-211'>
+      <subrange length='1' type-id='type-id-33' id='type-id-34'/>
+
+    </array-type-def>
+    <typedef-decl name='_IO_lock_t' type-id='type-id-4' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='43' column='1' id='type-id-218'/>
+    <pointer-type-def type-id='type-id-218' size-in-bits='64' id='type-id-212'/>
+    <typedef-decl name='__off64_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='153' column='1' id='type-id-213'/>
+    <class-decl name='_IO_codecvt' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-219'/>
+    <pointer-type-def type-id='type-id-219' size-in-bits='64' id='type-id-214'/>
+    <class-decl name='_IO_wide_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-220'/>
+    <pointer-type-def type-id='type-id-220' size-in-bits='64' id='type-id-215'/>
+
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='160' id='type-id-216'>
+      <subrange length='20' type-id='type-id-33' id='type-id-221'/>
+
+    </array-type-def>
+    <typedef-decl name='FILE' type-id='type-id-205' filepath='/usr/include/x86_64-linux-gnu/bits/types/FILE.h' line='7' column='1' id='type-id-222'/>
+    <pointer-type-def type-id='type-id-222' size-in-bits='64' id='type-id-223'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-224' visibility='default' filepath='./Include/compile.h' line='37' column='1' id='type-id-225'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='bf_getbuffer' type-id='type-id-155' visibility='default' filepath='./Include/cpython/object.h' line='185' column='1'/>
+        <var-decl name='cf_flags' type-id='type-id-8' visibility='default' filepath='./Include/compile.h' line='38' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='bf_releasebuffer' type-id='type-id-156' visibility='default' filepath='./Include/cpython/object.h' line='186' column='1'/>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='cf_feature_version' type-id='type-id-8' visibility='default' filepath='./Include/compile.h' line='39' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='bufferinfo' size-in-bits='640' is-struct='yes' visibility='default' filepath='./Include/cpython/object.h' line='56' column='1' id='type-id-157'>
+    <typedef-decl name='PyCompilerFlags' type-id='type-id-225' filepath='./Include/compile.h' line='40' column='1' id='type-id-224'/>
+    <pointer-type-def type-id='type-id-224' size-in-bits='64' id='type-id-226'/>
+    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-227'/>
+    <class-decl name='_arena' size-in-bits='192' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-228'/>
+    <typedef-decl name='PyArena' type-id='type-id-228' filepath='./Include/pyarena.h' line='12' column='1' id='type-id-229'/>
+    <pointer-type-def type-id='type-id-229' size-in-bits='64' id='type-id-230'/>
+    <function-decl name='PyPegen_ASTFromFileObject' mangled-name='PyPegen_ASTFromFileObject' filepath='Parser/pegen/peg_api.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPegen_ASTFromFileObject'>
+      <parameter type-id='type-id-223' name='fp' filepath='Parser/pegen/peg_api.c' line='45' column='1'/>
+      <parameter type-id='type-id-100' name='filename_ob' filepath='Parser/pegen/peg_api.c' line='45' column='1'/>
+      <parameter type-id='type-id-8' name='mode' filepath='Parser/pegen/peg_api.c' line='45' column='1'/>
+      <parameter type-id='type-id-3' name='enc' filepath='Parser/pegen/peg_api.c' line='46' column='1'/>
+      <parameter type-id='type-id-3' name='ps1' filepath='Parser/pegen/peg_api.c' line='46' column='1'/>
+      <parameter type-id='type-id-3' name='ps2' filepath='Parser/pegen/peg_api.c' line='46' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Parser/pegen/peg_api.c' line='47' column='1'/>
+      <parameter type-id='type-id-227' name='errcode' filepath='Parser/pegen/peg_api.c' line='47' column='1'/>
+      <parameter type-id='type-id-230' name='arena' filepath='Parser/pegen/peg_api.c' line='47' column='1'/>
+      <return type-id='type-id-204'/>
+    </function-decl>
+    <function-decl name='PyPegen_ASTFromFilename' mangled-name='PyPegen_ASTFromFilename' filepath='Parser/pegen/peg_api.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPegen_ASTFromFilename'>
+      <parameter type-id='type-id-3' name='filename' filepath='Parser/pegen/peg_api.c' line='32' column='1'/>
+      <parameter type-id='type-id-8' name='mode' filepath='Parser/pegen/peg_api.c' line='32' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Parser/pegen/peg_api.c' line='32' column='1'/>
+      <parameter type-id='type-id-230' name='arena' filepath='Parser/pegen/peg_api.c' line='32' column='1'/>
+      <return type-id='type-id-204'/>
+    </function-decl>
+    <function-decl name='PyPegen_ASTFromStringObject' mangled-name='PyPegen_ASTFromStringObject' filepath='Parser/pegen/peg_api.c' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPegen_ASTFromStringObject'>
+      <parameter type-id='type-id-3' name='str' filepath='Parser/pegen/peg_api.c' line='20' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Parser/pegen/peg_api.c' line='20' column='1'/>
+      <parameter type-id='type-id-8' name='mode' filepath='Parser/pegen/peg_api.c' line='20' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Parser/pegen/peg_api.c' line='21' column='1'/>
+      <parameter type-id='type-id-230' name='arena' filepath='Parser/pegen/peg_api.c' line='21' column='1'/>
+      <return type-id='type-id-204'/>
+    </function-decl>
+    <function-decl name='PyPegen_ASTFromString' mangled-name='PyPegen_ASTFromString' filepath='Parser/pegen/peg_api.c' line='7' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPegen_ASTFromString'>
+      <parameter type-id='type-id-3' name='str' filepath='Parser/pegen/peg_api.c' line='7' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Parser/pegen/peg_api.c' line='7' column='1'/>
+      <parameter type-id='type-id-8' name='mode' filepath='Parser/pegen/peg_api.c' line='7' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Parser/pegen/peg_api.c' line='8' column='1'/>
+      <parameter type-id='type-id-230' name='arena' filepath='Parser/pegen/peg_api.c' line='8' column='1'/>
+      <return type-id='type-id-204'/>
+    </function-decl>
+    <function-decl name='PySys_Audit' mangled-name='PySys_Audit' filepath='./Include/cpython/sysmodule.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_run_parser_from_file_pointer' mangled-name='_PyPegen_run_parser_from_file_pointer' filepath='Parser/pegen/pegen.h' line='229' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromString' mangled-name='PyUnicode_FromString' filepath='./Include/unicodeobject.h' line='137' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_run_parser_from_file' mangled-name='_PyPegen_run_parser_from_file' filepath='Parser/pegen/pegen.h' line='232' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPegen_run_parser_from_string' mangled-name='_PyPegen_run_parser_from_string' filepath='Parser/pegen/pegen.h' line='233' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-type size-in-bits='64' id='type-id-120'>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-100'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-192'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-190'/>
+      <parameter type-id='type-id-191'/>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-100'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-125'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-100'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-127'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-100'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-170'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-8'/>
+      <return type-id='type-id-100'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-113'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-7'/>
+      <return type-id='type-id-100'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-139'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-15'/>
+      <return type-id='type-id-100'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-178'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-32'/>
+      <return type-id='type-id-100'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-185'>
+      <parameter type-id='type-id-75'/>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-100'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-183'>
+      <parameter type-id='type-id-75'/>
+      <parameter type-id='type-id-15'/>
+      <return type-id='type-id-100'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-129'>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-143'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-148'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-180'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-32'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-161'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-160'/>
+      <parameter type-id='type-id-8'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-115'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-7'/>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-141'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-15'/>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-168'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-167'/>
+      <parameter type-id='type-id-32'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-165'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-32'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-151'>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-150'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-137'>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-15'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-111'>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-4'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-163'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-160'/>
+      <return type-id='type-id-4'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-187'>
+      <parameter type-id='type-id-32'/>
+      <return type-id='type-id-4'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Parser/myreadline.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='_ts' size-in-bits='2112' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='51' column='1' id='type-id-231'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='buf' type-id='type-id-32' visibility='default' filepath='./Include/cpython/object.h' line='57' column='1'/>
+        <var-decl name='prev' type-id='type-id-232' visibility='default' filepath='./Include/cpython/pystate.h' line='54' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='obj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='58' column='1'/>
+        <var-decl name='next' type-id='type-id-232' visibility='default' filepath='./Include/cpython/pystate.h' line='55' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='len' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='59' column='1'/>
+        <var-decl name='interp' type-id='type-id-233' visibility='default' filepath='./Include/cpython/pystate.h' line='56' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='itemsize' type-id='type-id-15' visibility='default' filepath='./Include/cpython/object.h' line='60' column='1'/>
+        <var-decl name='frame' type-id='type-id-234' visibility='default' filepath='./Include/cpython/pystate.h' line='59' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='readonly' type-id='type-id-8' visibility='default' filepath='./Include/cpython/object.h' line='62' column='1'/>
+        <var-decl name='recursion_depth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='60' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='ndim' type-id='type-id-8' visibility='default' filepath='./Include/cpython/object.h' line='63' column='1'/>
+        <var-decl name='overflowed' type-id='type-id-1' visibility='default' filepath='./Include/cpython/pystate.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='296'>
+        <var-decl name='recursion_critical' type-id='type-id-1' visibility='default' filepath='./Include/cpython/pystate.h' line='63' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='format' type-id='type-id-7' visibility='default' filepath='./Include/cpython/object.h' line='64' column='1'/>
+        <var-decl name='stackcheck_counter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='352'>
+        <var-decl name='tracing' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='70' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='shape' type-id='type-id-158' visibility='default' filepath='./Include/cpython/object.h' line='65' column='1'/>
+        <var-decl name='use_tracing' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='71' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='strides' type-id='type-id-158' visibility='default' filepath='./Include/cpython/object.h' line='66' column='1'/>
+        <var-decl name='c_profilefunc' type-id='type-id-235' visibility='default' filepath='./Include/cpython/pystate.h' line='73' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='suboffsets' type-id='type-id-158' visibility='default' filepath='./Include/cpython/object.h' line='67' column='1'/>
+        <var-decl name='c_tracefunc' type-id='type-id-235' visibility='default' filepath='./Include/cpython/pystate.h' line='74' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='internal' type-id='type-id-32' visibility='default' filepath='./Include/cpython/object.h' line='68' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-15' size-in-bits='64' id='type-id-158'/>
-    <typedef-decl name='Py_buffer' type-id='type-id-157' filepath='./Include/cpython/object.h' line='69' column='1' id='type-id-159'/>
-    <pointer-type-def type-id='type-id-159' size-in-bits='64' id='type-id-160'/>
-    <pointer-type-def type-id='type-id-161' size-in-bits='64' id='type-id-162'/>
-    <typedef-decl name='getbufferproc' type-id='type-id-162' filepath='./Include/cpython/object.h' line='71' column='1' id='type-id-155'/>
-    <pointer-type-def type-id='type-id-163' size-in-bits='64' id='type-id-164'/>
-    <typedef-decl name='releasebufferproc' type-id='type-id-164' filepath='./Include/cpython/object.h' line='72' column='1' id='type-id-156'/>
-    <typedef-decl name='PyBufferProcs' type-id='type-id-154' filepath='./Include/cpython/object.h' line='187' column='1' id='type-id-153'/>
-    <pointer-type-def type-id='type-id-153' size-in-bits='64' id='type-id-90'/>
-    <pointer-type-def type-id='type-id-165' size-in-bits='64' id='type-id-166'/>
-    <typedef-decl name='visitproc' type-id='type-id-166' filepath='./Include/object.h' line='175' column='1' id='type-id-167'/>
-    <pointer-type-def type-id='type-id-168' size-in-bits='64' id='type-id-169'/>
-    <typedef-decl name='traverseproc' type-id='type-id-169' filepath='./Include/object.h' line='176' column='1' id='type-id-91'/>
-    <pointer-type-def type-id='type-id-170' size-in-bits='64' id='type-id-171'/>
-    <typedef-decl name='richcmpfunc' type-id='type-id-171' filepath='./Include/object.h' line='187' column='1' id='type-id-93'/>
-    <typedef-decl name='getiterfunc' type-id='type-id-121' filepath='./Include/object.h' line='188' column='1' id='type-id-94'/>
-    <typedef-decl name='iternextfunc' type-id='type-id-121' filepath='./Include/object.h' line='189' column='1' id='type-id-95'/>
-    <class-decl name='PyMethodDef' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/methodobject.h' line='35' column='1' id='type-id-172'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ml_name' type-id='type-id-3' visibility='default' filepath='./Include/methodobject.h' line='36' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='ml_meth' type-id='type-id-173' visibility='default' filepath='./Include/methodobject.h' line='37' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='ml_flags' type-id='type-id-8' visibility='default' filepath='./Include/methodobject.h' line='38' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='ml_doc' type-id='type-id-3' visibility='default' filepath='./Include/methodobject.h' line='40' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='PyCFunction' type-id='type-id-126' filepath='./Include/methodobject.h' line='19' column='1' id='type-id-173'/>
-    <pointer-type-def type-id='type-id-172' size-in-bits='64' id='type-id-96'/>
-    <class-decl name='PyMemberDef' size-in-bits='320' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-174'/>
-    <pointer-type-def type-id='type-id-174' size-in-bits='64' id='type-id-97'/>
-    <class-decl name='PyGetSetDef' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/descrobject.h' line='11' column='1' id='type-id-175'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/descrobject.h' line='12' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='get' type-id='type-id-176' visibility='default' filepath='./Include/descrobject.h' line='13' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='set' type-id='type-id-177' visibility='default' filepath='./Include/descrobject.h' line='14' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='doc' type-id='type-id-3' visibility='default' filepath='./Include/descrobject.h' line='15' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='closure' type-id='type-id-32' visibility='default' filepath='./Include/descrobject.h' line='16' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-178' size-in-bits='64' id='type-id-179'/>
-    <typedef-decl name='getter' type-id='type-id-179' filepath='./Include/descrobject.h' line='8' column='1' id='type-id-176'/>
-    <pointer-type-def type-id='type-id-180' size-in-bits='64' id='type-id-181'/>
-    <typedef-decl name='setter' type-id='type-id-181' filepath='./Include/descrobject.h' line='9' column='1' id='type-id-177'/>
-    <pointer-type-def type-id='type-id-175' size-in-bits='64' id='type-id-98'/>
-    <pointer-type-def type-id='type-id-76' size-in-bits='64' id='type-id-99'/>
-    <typedef-decl name='descrgetfunc' type-id='type-id-128' filepath='./Include/object.h' line='190' column='1' id='type-id-101'/>
-    <typedef-decl name='descrsetfunc' type-id='type-id-149' filepath='./Include/object.h' line='191' column='1' id='type-id-102'/>
-    <typedef-decl name='initproc' type-id='type-id-149' filepath='./Include/object.h' line='192' column='1' id='type-id-103'/>
-    <typedef-decl name='PyTypeObject' type-id='type-id-76' filepath='./Include/object.h' line='66' column='1' id='type-id-182'/>
-    <pointer-type-def type-id='type-id-182' size-in-bits='64' id='type-id-75'/>
-    <pointer-type-def type-id='type-id-183' size-in-bits='64' id='type-id-184'/>
-    <typedef-decl name='allocfunc' type-id='type-id-184' filepath='./Include/object.h' line='194' column='1' id='type-id-104'/>
-    <pointer-type-def type-id='type-id-185' size-in-bits='64' id='type-id-186'/>
-    <typedef-decl name='newfunc' type-id='type-id-186' filepath='./Include/object.h' line='193' column='1' id='type-id-105'/>
-    <pointer-type-def type-id='type-id-187' size-in-bits='64' id='type-id-188'/>
-    <typedef-decl name='freefunc' type-id='type-id-188' filepath='./Include/object.h' line='179' column='1' id='type-id-106'/>
-    <type-decl name='unsigned int' size-in-bits='32' id='type-id-107'/>
-    <qualified-type-def type-id='type-id-100' const='yes' id='type-id-189'/>
-    <pointer-type-def type-id='type-id-189' size-in-bits='64' id='type-id-190'/>
-    <typedef-decl name='size_t' type-id='type-id-33' filepath='/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h' line='209' column='1' id='type-id-191'/>
-    <pointer-type-def type-id='type-id-192' size-in-bits='64' id='type-id-193'/>
-    <typedef-decl name='vectorcallfunc' type-id='type-id-193' filepath='./Include/cpython/object.h' line='74' column='1' id='type-id-108'/>
-    <typedef-decl name='identifier' type-id='type-id-100' filepath='./Include/asdl.h' line='5' column='1' id='type-id-72'/>
-    <typedef-decl name='string' type-id='type-id-100' filepath='./Include/asdl.h' line='6' column='1' id='type-id-73'/>
-    <pointer-type-def type-id='type-id-71' size-in-bits='64' id='type-id-194'/>
-    <typedef-decl name='arg_ty' type-id='type-id-194' filepath='./Include/Python-ast.h' line='39' column='1' id='type-id-70'/>
-    <pointer-type-def type-id='type-id-69' size-in-bits='64' id='type-id-195'/>
-    <typedef-decl name='arguments_ty' type-id='type-id-195' filepath='./Include/Python-ast.h' line='37' column='1' id='type-id-68'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='263' column='1' id='type-id-44'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='test' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='264' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='body' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='265' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='orelse' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='266' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='269' column='1' id='type-id-45'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='keys' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='270' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='values' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='271' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='274' column='1' id='type-id-46'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='elts' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='275' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='278' column='1' id='type-id-47'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='elt' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='279' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='generators' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='280' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='288' column='1' id='type-id-48'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='key' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='289' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='290' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='generators' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='291' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='299' column='1' id='type-id-49'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='300' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='311' column='1' id='type-id-50'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='left' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='312' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='ops' type-id='type-id-196' visibility='default' filepath='./Include/Python-ast.h' line='313' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='comparators' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='314' column='1'/>
+        <var-decl name='c_profileobj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='75' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-197' visibility='default' filepath='./Include/asdl.h' line='23' column='1' id='type-id-198'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-15' visibility='default' filepath='./Include/asdl.h' line='24' column='1'/>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='c_traceobj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='76' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='elements' type-id='type-id-199' visibility='default' filepath='./Include/asdl.h' line='25' column='1'/>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='curexc_type' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='79' column='1'/>
       </data-member>
-    </class-decl>
-
-    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='32' id='type-id-199'>
-      <subrange length='1' type-id='type-id-33' id='type-id-34'/>
-
-    </array-type-def>
-    <typedef-decl name='asdl_int_seq' type-id='type-id-198' filepath='./Include/asdl.h' line='26' column='1' id='type-id-197'/>
-    <pointer-type-def type-id='type-id-197' size-in-bits='64' id='type-id-196'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='317' column='1' id='type-id-51'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='func' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='318' column='1'/>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='curexc_value' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='80' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='args' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='319' column='1'/>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='curexc_traceback' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='81' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='keywords' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='320' column='1'/>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='exc_state' type-id='type-id-236' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='323' column='1' id='type-id-52'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='324' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='exc_info' type-id='type-id-237' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='conversion' type-id='type-id-8' visibility='default' filepath='./Include/Python-ast.h' line='325' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='dict' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='format_spec' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='326' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='gilstate_counter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='94' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='329' column='1' id='type-id-53'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='values' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='330' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='async_exc' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='96' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='333' column='1' id='type-id-54'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='value' type-id='type-id-200' visibility='default' filepath='./Include/Python-ast.h' line='334' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='thread_id' type-id='type-id-33' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='kind' type-id='type-id-73' visibility='default' filepath='./Include/Python-ast.h' line='335' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='trash_delete_nesting' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='99' column='1'/>
       </data-member>
-    </class-decl>
-    <typedef-decl name='constant' type-id='type-id-100' filepath='./Include/asdl.h' line='8' column='1' id='type-id-200'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='338' column='1' id='type-id-55'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='339' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='trash_delete_later' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='100' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='attr' type-id='type-id-72' visibility='default' filepath='./Include/Python-ast.h' line='340' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1600'>
+        <var-decl name='on_delete' type-id='type-id-188' visibility='default' filepath='./Include/cpython/pystate.h' line='125' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='ctx' type-id='type-id-201' visibility='default' filepath='./Include/Python-ast.h' line='341' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1664'>
+        <var-decl name='on_delete_data' type-id='type-id-32' visibility='default' filepath='./Include/cpython/pystate.h' line='126' column='1'/>
       </data-member>
-    </class-decl>
-    <enum-decl name='_expr_context' filepath='./Include/Python-ast.h' line='20' column='1' id='type-id-202'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='Load' value='1'/>
-      <enumerator name='Store' value='2'/>
-      <enumerator name='Del' value='3'/>
-    </enum-decl>
-    <typedef-decl name='expr_context_ty' type-id='type-id-202' filepath='./Include/Python-ast.h' line='20' column='1' id='type-id-201'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='344' column='1' id='type-id-56'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='345' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='coroutine_origin_tracking_depth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='128' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='slice' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='346' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1792'>
+        <var-decl name='async_gen_firstiter' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='130' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='ctx' type-id='type-id-201' visibility='default' filepath='./Include/Python-ast.h' line='347' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1856'>
+        <var-decl name='async_gen_finalizer' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='131' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='350' column='1' id='type-id-57'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='value' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='351' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1920'>
+        <var-decl name='context' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='133' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='ctx' type-id='type-id-201' visibility='default' filepath='./Include/Python-ast.h' line='352' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1984'>
+        <var-decl name='context_ver' type-id='type-id-238' visibility='default' filepath='./Include/cpython/pystate.h' line='134' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2048'>
+        <var-decl name='id' type-id='type-id-238' visibility='default' filepath='./Include/cpython/pystate.h' line='137' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='355' column='1' id='type-id-58'>
+    <pointer-type-def type-id='type-id-231' size-in-bits='64' id='type-id-232'/>
+    <class-decl name='_is' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-239'/>
+    <typedef-decl name='PyInterpreterState' type-id='type-id-239' filepath='./Include/pystate.h' line='22' column='1' id='type-id-240'/>
+    <pointer-type-def type-id='type-id-240' size-in-bits='64' id='type-id-233'/>
+    <class-decl name='_frame' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-241'/>
+    <typedef-decl name='PyFrameObject' type-id='type-id-241' filepath='./Include/pyframe.h' line='12' column='1' id='type-id-242'/>
+    <pointer-type-def type-id='type-id-242' size-in-bits='64' id='type-id-234'/>
+    <pointer-type-def type-id='type-id-243' size-in-bits='64' id='type-id-244'/>
+    <typedef-decl name='Py_tracefunc' type-id='type-id-244' filepath='./Include/cpython/pystate.h' line='19' column='1' id='type-id-235'/>
+    <class-decl name='_err_stackitem' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='36' column='1' id='type-id-245'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='id' type-id='type-id-72' visibility='default' filepath='./Include/Python-ast.h' line='356' column='1'/>
+        <var-decl name='exc_type' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='43' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='ctx' type-id='type-id-201' visibility='default' filepath='./Include/Python-ast.h' line='357' column='1'/>
+        <var-decl name='exc_value' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='43' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='360' column='1' id='type-id-59'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='elts' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='361' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='exc_traceback' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='43' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='ctx' type-id='type-id-201' visibility='default' filepath='./Include/Python-ast.h' line='362' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='previous_item' type-id='type-id-246' visibility='default' filepath='./Include/cpython/pystate.h' line='45' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='370' column='1' id='type-id-60'>
+    <pointer-type-def type-id='type-id-245' size-in-bits='64' id='type-id-246'/>
+    <typedef-decl name='_PyErr_StackItem' type-id='type-id-245' filepath='./Include/cpython/pystate.h' line='47' column='1' id='type-id-236'/>
+    <pointer-type-def type-id='type-id-236' size-in-bits='64' id='type-id-237'/>
+    <typedef-decl name='__uint64_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='45' column='1' id='type-id-247'/>
+    <typedef-decl name='uint64_t' type-id='type-id-247' filepath='/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h' line='27' column='1' id='type-id-238'/>
+    <typedef-decl name='PyThreadState' type-id='type-id-231' filepath='./Include/pystate.h' line='20' column='1' id='type-id-248'/>
+    <pointer-type-def type-id='type-id-248' size-in-bits='64' id='type-id-249'/>
+    <var-decl name='_PyOS_ReadlineTState' type-id='type-id-249' mangled-name='_PyOS_ReadlineTState' visibility='default' filepath='./Include/pythonrun.h' line='196' column='1' elf-symbol-id='_PyOS_ReadlineTState'/>
+    <pointer-type-def type-id='type-id-250' size-in-bits='64' id='type-id-251'/>
+    <var-decl name='PyOS_InputHook' type-id='type-id-251' mangled-name='PyOS_InputHook' visibility='default' filepath='./Include/pythonrun.h' line='193' column='1' elf-symbol-id='PyOS_InputHook'/>
+    <pointer-type-def type-id='type-id-252' size-in-bits='64' id='type-id-253'/>
+    <var-decl name='PyOS_ReadlineFunctionPointer' type-id='type-id-253' mangled-name='PyOS_ReadlineFunctionPointer' visibility='default' filepath='./Include/pythonrun.h' line='194' column='1' elf-symbol-id='PyOS_ReadlineFunctionPointer'/>
+    <function-decl name='PyOS_Readline' mangled-name='PyOS_Readline' filepath='Parser/myreadline.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_Readline'>
+      <parameter type-id='type-id-223' name='sys_stdin' filepath='Parser/myreadline.c' line='356' column='1'/>
+      <parameter type-id='type-id-223' name='sys_stdout' filepath='Parser/myreadline.c' line='356' column='1'/>
+      <parameter type-id='type-id-3' name='prompt' filepath='Parser/myreadline.c' line='356' column='1'/>
+      <return type-id='type-id-7'/>
+    </function-decl>
+    <function-decl name='PyEval_SaveThread' mangled-name='PyEval_SaveThread' filepath='./Include/ceval.h' line='126' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThread_acquire_lock' mangled-name='PyThread_acquire_lock' filepath='./Include/pythread.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='fileno' mangled-name='fileno' filepath='/usr/include/stdio.h' line='786' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='isatty' mangled-name='isatty' filepath='/usr/include/unistd.h' line='779' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_RestoreThread' mangled-name='PyEval_RestoreThread' filepath='./Include/ceval.h' line='127' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThread_release_lock' mangled-name='PyThread_release_lock' filepath='./Include/pythread.h' line='91' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThread_allocate_lock' mangled-name='PyThread_allocate_lock' filepath='./Include/pythread.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__fgets_alias' mangled-name='fgets' filepath='/usr/include/x86_64-linux-gnu/bits/stdio2.h' line='245' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_CheckSignals' mangled-name='PyErr_CheckSignals' filepath='./Include/pyerrors.h' line='231' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='clearerr' mangled-name='clearerr' filepath='/usr/include/stdio.h' line='757' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='feof' mangled-name='feof' filepath='/usr/include/stdio.h' line='759' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyOS_InterruptOccurred' mangled-name='_PyOS_InterruptOccurred' filepath='./Include/internal/pycore_pystate.h' line='133' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMem_RawRealloc' mangled-name='PyMem_RawRealloc' filepath='./Include/cpython/pymem.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='fflush' mangled-name='fflush' filepath='/usr/include/stdio.h' line='218' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-type size-in-bits='64' id='type-id-252'>
+      <parameter type-id='type-id-223'/>
+      <parameter type-id='type-id-223'/>
+      <parameter type-id='type-id-3'/>
+      <return type-id='type-id-7'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-250'>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-243'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-234'/>
+      <parameter type-id='type-id-8'/>
+      <parameter type-id='type-id-100'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Parser/parsetok.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-254' visibility='default' filepath='./Include/grammar.h' line='60' column='1' id='type-id-255'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='lower' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='371' column='1'/>
+        <var-decl name='g_ndfas' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='61' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='upper' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='372' column='1'/>
+        <var-decl name='g_dfa' type-id='type-id-256' visibility='default' filepath='./Include/grammar.h' line='62' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='step' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='373' column='1'/>
+        <var-decl name='g_ll' type-id='type-id-257' visibility='default' filepath='./Include/grammar.h' line='63' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/Python-ast.h' line='68' column='1' id='type-id-27'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='argtypes' type-id='type-id-28' visibility='default' filepath='./Include/Python-ast.h' line='69' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='g_start' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='64' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='returns' type-id='type-id-35' visibility='default' filepath='./Include/Python-ast.h' line='70' column='1'/>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <var-decl name='g_accel' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='65' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-20' size-in-bits='64' id='type-id-203'/>
-    <typedef-decl name='mod_ty' type-id='type-id-203' filepath='./Include/Python-ast.h' line='14' column='1' id='type-id-204'/>
-    <class-decl name='_IO_FILE' size-in-bits='1728' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='49' column='1' id='type-id-205'>
+    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-258' visibility='default' filepath='./Include/grammar.h' line='50' column='1' id='type-id-259'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_flags' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='51' column='1'/>
+        <var-decl name='d_type' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='51' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='_IO_read_ptr' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='54' column='1'/>
+        <var-decl name='d_name' type-id='type-id-7' visibility='default' filepath='./Include/grammar.h' line='52' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='_IO_read_end' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='55' column='1'/>
+        <var-decl name='d_nstates' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='53' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='_IO_read_base' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='56' column='1'/>
+        <var-decl name='d_state' type-id='type-id-260' visibility='default' filepath='./Include/grammar.h' line='54' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='_IO_write_base' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='57' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='_IO_write_ptr' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='58' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='_IO_write_end' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='59' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='_IO_buf_base' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='60' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='_IO_buf_end' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='61' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='_IO_save_base' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='64' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='_IO_backup_base' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='65' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='_IO_save_end' type-id='type-id-7' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='66' column='1'/>
+        <var-decl name='d_first' type-id='type-id-261' visibility='default' filepath='./Include/grammar.h' line='55' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='_markers' type-id='type-id-206' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='68' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-262' visibility='default' filepath='./Include/grammar.h' line='37' column='1' id='type-id-263'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='s_narcs' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='38' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='_chain' type-id='type-id-207' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='70' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='s_arc' type-id='type-id-264' visibility='default' filepath='./Include/grammar.h' line='39' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='_fileno' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='72' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='s_lower' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='42' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='928'>
-        <var-decl name='_flags2' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='73' column='1'/>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='s_upper' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='43' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='960'>
-        <var-decl name='_old_offset' type-id='type-id-208' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='74' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='s_accel' type-id='type-id-227' visibility='default' filepath='./Include/grammar.h' line='44' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1024'>
-        <var-decl name='_cur_column' type-id='type-id-209' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='77' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='s_accept' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='45' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1040'>
-        <var-decl name='_vtable_offset' type-id='type-id-210' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='78' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-265' visibility='default' filepath='./Include/grammar.h' line='30' column='1' id='type-id-266'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='a_lbl' type-id='type-id-6' visibility='default' filepath='./Include/grammar.h' line='31' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1048'>
-        <var-decl name='_shortbuf' type-id='type-id-211' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='79' column='1'/>
+      <data-member access='public' layout-offset-in-bits='16'>
+        <var-decl name='a_arrow' type-id='type-id-6' visibility='default' filepath='./Include/grammar.h' line='32' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1088'>
-        <var-decl name='_lock' type-id='type-id-212' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='81' column='1'/>
+    </class-decl>
+    <typedef-decl name='arc' type-id='type-id-266' filepath='./Include/grammar.h' line='33' column='1' id='type-id-265'/>
+    <qualified-type-def type-id='type-id-265' const='yes' id='type-id-267'/>
+    <pointer-type-def type-id='type-id-267' size-in-bits='64' id='type-id-264'/>
+    <typedef-decl name='state' type-id='type-id-263' filepath='./Include/grammar.h' line='46' column='1' id='type-id-262'/>
+    <pointer-type-def type-id='type-id-262' size-in-bits='64' id='type-id-260'/>
+    <typedef-decl name='bitset' type-id='type-id-7' filepath='./Include/bitset.h' line='11' column='1' id='type-id-261'/>
+    <typedef-decl name='dfa' type-id='type-id-259' filepath='./Include/grammar.h' line='56' column='1' id='type-id-258'/>
+    <qualified-type-def type-id='type-id-258' const='yes' id='type-id-268'/>
+    <pointer-type-def type-id='type-id-268' size-in-bits='64' id='type-id-256'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-269' visibility='default' filepath='./Include/grammar.h' line='23' column='1' id='type-id-270'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ll_nlabels' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='24' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='_offset' type-id='type-id-213' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='89' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='ll_label' type-id='type-id-271' visibility='default' filepath='./Include/grammar.h' line='25' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='_codecvt' type-id='type-id-214' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='91' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-272' visibility='default' filepath='./Include/grammar.h' line='14' column='1' id='type-id-273'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='lb_type' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='15' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1280'>
-        <var-decl name='_wide_data' type-id='type-id-215' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='92' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='lb_str' type-id='type-id-3' visibility='default' filepath='./Include/grammar.h' line='16' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='_freeres_list' type-id='type-id-207' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='93' column='1'/>
+    </class-decl>
+    <typedef-decl name='label' type-id='type-id-273' filepath='./Include/grammar.h' line='17' column='1' id='type-id-272'/>
+    <qualified-type-def type-id='type-id-272' const='yes' id='type-id-274'/>
+    <pointer-type-def type-id='type-id-274' size-in-bits='64' id='type-id-271'/>
+    <typedef-decl name='labellist' type-id='type-id-270' filepath='./Include/grammar.h' line='26' column='1' id='type-id-269'/>
+    <qualified-type-def type-id='type-id-269' const='yes' id='type-id-257'/>
+    <typedef-decl name='grammar' type-id='type-id-255' filepath='./Include/grammar.h' line='66' column='1' id='type-id-254'/>
+    <pointer-type-def type-id='type-id-254' size-in-bits='64' id='type-id-275'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-276' visibility='default' filepath='./Include/parsetok.h' line='13' column='1' id='type-id-277'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='error' type-id='type-id-8' visibility='default' filepath='./Include/parsetok.h' line='14' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1408'>
-        <var-decl name='_freeres_buf' type-id='type-id-32' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='94' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='filename' type-id='type-id-100' visibility='default' filepath='./Include/parsetok.h' line='15' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1472'>
-        <var-decl name='__pad5' type-id='type-id-191' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='95' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='lineno' type-id='type-id-8' visibility='default' filepath='./Include/parsetok.h' line='16' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='_mode' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='96' column='1'/>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='offset' type-id='type-id-8' visibility='default' filepath='./Include/parsetok.h' line='17' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1568'>
-        <var-decl name='_unused2' type-id='type-id-216' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='98' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='text' type-id='type-id-7' visibility='default' filepath='./Include/parsetok.h' line='18' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='_IO_marker' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-217'/>
-    <pointer-type-def type-id='type-id-217' size-in-bits='64' id='type-id-206'/>
-    <pointer-type-def type-id='type-id-205' size-in-bits='64' id='type-id-207'/>
-    <typedef-decl name='__off_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='152' column='1' id='type-id-208'/>
-    <type-decl name='unsigned short int' size-in-bits='16' id='type-id-209'/>
-    <type-decl name='signed char' size-in-bits='8' id='type-id-210'/>
-
-    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='8' id='type-id-211'>
-      <subrange length='1' type-id='type-id-33' id='type-id-34'/>
-
-    </array-type-def>
-    <typedef-decl name='_IO_lock_t' type-id='type-id-4' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h' line='43' column='1' id='type-id-218'/>
-    <pointer-type-def type-id='type-id-218' size-in-bits='64' id='type-id-212'/>
-    <typedef-decl name='__off64_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='153' column='1' id='type-id-213'/>
-    <class-decl name='_IO_codecvt' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-219'/>
-    <pointer-type-def type-id='type-id-219' size-in-bits='64' id='type-id-214'/>
-    <class-decl name='_IO_wide_data' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-220'/>
-    <pointer-type-def type-id='type-id-220' size-in-bits='64' id='type-id-215'/>
-
-    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='160' id='type-id-216'>
-      <subrange length='20' type-id='type-id-33' id='type-id-221'/>
-
-    </array-type-def>
-    <typedef-decl name='FILE' type-id='type-id-205' filepath='/usr/include/x86_64-linux-gnu/bits/types/FILE.h' line='7' column='1' id='type-id-222'/>
-    <pointer-type-def type-id='type-id-222' size-in-bits='64' id='type-id-223'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-224' visibility='default' filepath='./Include/compile.h' line='37' column='1' id='type-id-225'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='cf_flags' type-id='type-id-8' visibility='default' filepath='./Include/compile.h' line='38' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='token' type-id='type-id-8' visibility='default' filepath='./Include/parsetok.h' line='19' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='cf_feature_version' type-id='type-id-8' visibility='default' filepath='./Include/compile.h' line='39' column='1'/>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <var-decl name='expected' type-id='type-id-8' visibility='default' filepath='./Include/parsetok.h' line='20' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='PyCompilerFlags' type-id='type-id-225' filepath='./Include/compile.h' line='40' column='1' id='type-id-224'/>
-    <pointer-type-def type-id='type-id-224' size-in-bits='64' id='type-id-226'/>
-    <pointer-type-def type-id='type-id-8' size-in-bits='64' id='type-id-227'/>
-    <class-decl name='_arena' size-in-bits='192' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-228'/>
-    <typedef-decl name='PyArena' type-id='type-id-228' filepath='./Include/pyarena.h' line='12' column='1' id='type-id-229'/>
-    <pointer-type-def type-id='type-id-229' size-in-bits='64' id='type-id-230'/>
-    <function-decl name='PyPegen_ASTFromFileObject' mangled-name='PyPegen_ASTFromFileObject' filepath='Parser/pegen/peg_api.c' line='45' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPegen_ASTFromFileObject'>
-      <parameter type-id='type-id-223' name='fp' filepath='Parser/pegen/peg_api.c' line='45' column='1'/>
-      <parameter type-id='type-id-100' name='filename_ob' filepath='Parser/pegen/peg_api.c' line='45' column='1'/>
-      <parameter type-id='type-id-8' name='mode' filepath='Parser/pegen/peg_api.c' line='45' column='1'/>
-      <parameter type-id='type-id-3' name='enc' filepath='Parser/pegen/peg_api.c' line='46' column='1'/>
-      <parameter type-id='type-id-3' name='ps1' filepath='Parser/pegen/peg_api.c' line='46' column='1'/>
-      <parameter type-id='type-id-3' name='ps2' filepath='Parser/pegen/peg_api.c' line='46' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Parser/pegen/peg_api.c' line='47' column='1'/>
-      <parameter type-id='type-id-227' name='errcode' filepath='Parser/pegen/peg_api.c' line='47' column='1'/>
-      <parameter type-id='type-id-230' name='arena' filepath='Parser/pegen/peg_api.c' line='47' column='1'/>
-      <return type-id='type-id-204'/>
+    <typedef-decl name='perrdetail' type-id='type-id-277' filepath='./Include/parsetok.h' line='21' column='1' id='type-id-276'/>
+    <pointer-type-def type-id='type-id-276' size-in-bits='64' id='type-id-278'/>
+    <function-decl name='PyParser_ParseFileFlagsEx' mangled-name='PyParser_ParseFileFlagsEx' filepath='Parser/parsetok.c' line='192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseFileFlagsEx'>
+      <parameter type-id='type-id-223' name='fp' filepath='Parser/parsetok.c' line='192' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Parser/parsetok.c' line='192' column='1'/>
+      <parameter type-id='type-id-3' name='enc' filepath='Parser/parsetok.c' line='193' column='1'/>
+      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='193' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='193' column='1'/>
+      <parameter type-id='type-id-3' name='ps1' filepath='Parser/parsetok.c' line='194' column='1'/>
+      <parameter type-id='type-id-3' name='ps2' filepath='Parser/parsetok.c' line='194' column='1'/>
+      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='195' column='1'/>
+      <parameter type-id='type-id-227' name='flags' filepath='Parser/parsetok.c' line='195' column='1'/>
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <function-decl name='PyParser_ParseFileObject' mangled-name='PyParser_ParseFileObject' filepath='Parser/parsetok.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseFileObject'>
+      <parameter type-id='type-id-223' name='fp' filepath='Parser/parsetok.c' line='165' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Parser/parsetok.c' line='165' column='1'/>
+      <parameter type-id='type-id-3' name='enc' filepath='Parser/parsetok.c' line='166' column='1'/>
+      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='166' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='166' column='1'/>
+      <parameter type-id='type-id-3' name='ps1' filepath='Parser/parsetok.c' line='167' column='1'/>
+      <parameter type-id='type-id-3' name='ps2' filepath='Parser/parsetok.c' line='167' column='1'/>
+      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='168' column='1'/>
+      <parameter type-id='type-id-227' name='flags' filepath='Parser/parsetok.c' line='168' column='1'/>
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <function-decl name='PyParser_ParseFileFlags' mangled-name='PyParser_ParseFileFlags' filepath='Parser/parsetok.c' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseFileFlags'>
+      <parameter type-id='type-id-223' name='fp' filepath='Parser/parsetok.c' line='154' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Parser/parsetok.c' line='154' column='1'/>
+      <parameter type-id='type-id-3' name='enc' filepath='Parser/parsetok.c' line='154' column='1'/>
+      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='155' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='155' column='1'/>
+      <parameter type-id='type-id-3' name='ps1' filepath='Parser/parsetok.c' line='156' column='1'/>
+      <parameter type-id='type-id-3' name='ps2' filepath='Parser/parsetok.c' line='156' column='1'/>
+      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='157' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Parser/parsetok.c' line='157' column='1'/>
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <function-decl name='PyParser_ParseFile' mangled-name='PyParser_ParseFile' filepath='Parser/parsetok.c' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseFile'>
+      <parameter type-id='type-id-223' name='fp' filepath='Parser/parsetok.c' line='145' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Parser/parsetok.c' line='145' column='1'/>
+      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='145' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='145' column='1'/>
+      <parameter type-id='type-id-3' name='ps1' filepath='Parser/parsetok.c' line='146' column='1'/>
+      <parameter type-id='type-id-3' name='ps2' filepath='Parser/parsetok.c' line='146' column='1'/>
+      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='147' column='1'/>
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <function-decl name='PyParser_ParseStringFlagsFilenameEx' mangled-name='PyParser_ParseStringFlagsFilenameEx' filepath='Parser/parsetok.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseStringFlagsFilenameEx'>
+      <parameter type-id='type-id-3' name='s' filepath='Parser/parsetok.c' line='124' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Parser/parsetok.c' line='124' column='1'/>
+      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='125' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='125' column='1'/>
+      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='126' column='1'/>
+      <parameter type-id='type-id-227' name='flags' filepath='Parser/parsetok.c' line='126' column='1'/>
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <function-decl name='PyParser_ParseStringObject' mangled-name='PyParser_ParseStringObject' filepath='Parser/parsetok.c' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseStringObject'>
+      <parameter type-id='type-id-3' name='s' filepath='Parser/parsetok.c' line='89' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Parser/parsetok.c' line='89' column='1'/>
+      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='90' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='90' column='1'/>
+      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='91' column='1'/>
+      <parameter type-id='type-id-227' name='flags' filepath='Parser/parsetok.c' line='91' column='1'/>
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <function-decl name='PyParser_ParseStringFlagsFilename' mangled-name='PyParser_ParseStringFlagsFilename' filepath='Parser/parsetok.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseStringFlagsFilename'>
+      <parameter type-id='type-id-3' name='s' filepath='Parser/parsetok.c' line='79' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Parser/parsetok.c' line='79' column='1'/>
+      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='80' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='80' column='1'/>
+      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='81' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Parser/parsetok.c' line='81' column='1'/>
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <function-decl name='PyParser_ParseStringFlags' mangled-name='PyParser_ParseStringFlags' filepath='Parser/parsetok.c' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseStringFlags'>
+      <parameter type-id='type-id-3' name='s' filepath='Parser/parsetok.c' line='71' column='1'/>
+      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='71' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='71' column='1'/>
+      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='72' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Parser/parsetok.c' line='72' column='1'/>
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <function-decl name='PyParser_ParseString' mangled-name='PyParser_ParseString' filepath='Parser/parsetok.c' line='65' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseString'>
+      <parameter type-id='type-id-3' name='s' filepath='Parser/parsetok.c' line='65' column='1'/>
+      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='65' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='65' column='1'/>
+      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='65' column='1'/>
+      <return type-id='type-id-11'/>
+    </function-decl>
+    <function-decl name='realloc' mangled-name='realloc' filepath='/usr/include/stdlib.h' line='550' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyParser_AddToken' mangled-name='PyParser_AddToken' filepath='Parser/parser.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='malloc' mangled-name='malloc' filepath='/usr/include/stdlib.h' line='539' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='free' mangled-name='free' filepath='/usr/include/stdlib.h' line='565' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyParser_New' mangled-name='PyParser_New' filepath='Parser/parser.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyParser_Delete' mangled-name='PyParser_Delete' filepath='Parser/parser.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyNode_FinalizeEndPos' mangled-name='_PyNode_FinalizeEndPos' filepath='./Include/node.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeFSDefault' mangled-name='PyUnicode_DecodeFSDefault' filepath='./Include/unicodeobject.h' line='764' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Parser/tokenizer.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_Py_dup' mangled-name='_Py_dup' filepath='./Include/cpython/fileutils.h' line='159' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='fdopen' mangled-name='fdopen' filepath='/usr/include/stdio.h' line='279' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Substring' mangled-name='PyUnicode_Substring' filepath='./Include/unicodeobject.h' line='142' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsUTF8String' mangled-name='PyUnicode_AsUTF8String' filepath='./Include/unicodeobject.h' line='464' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_IsPrintable' mangled-name='_PyUnicode_IsPrintable' filepath='./Include/cpython/unicodeobject.h' line='1170' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_ScanIdentifier' mangled-name='_PyUnicode_ScanIdentifier' filepath='./Include/cpython/unicodeobject.h' line='1232' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyToken_ThreeChars' mangled-name='PyToken_ThreeChars' filepath='./Include/token.h' line='90' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyToken_TwoChars' mangled-name='PyToken_TwoChars' filepath='./Include/token.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__ctype_b_loc' mangled-name='__ctype_b_loc' filepath='/usr/include/ctype.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyToken_OneChar' mangled-name='PyToken_OneChar' filepath='./Include/token.h' line='88' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='strcspn' mangled-name='strcspn' filepath='/usr/include/string.h' line='273' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_BuildValue_SizeT' mangled-name='_Py_BuildValue_SizeT' filepath='./Include/modsupport.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Decode' mangled-name='PyUnicode_Decode' filepath='./Include/unicodeobject.h' line='359' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyOS_Readline' mangled-name='PyOS_Readline' filepath='./Include/pythonrun.h' line='191' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Size' mangled-name='PyObject_Size' filepath='./Include/abstract.h' line='277' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySys_WriteStderr' mangled-name='PySys_WriteStderr' filepath='./Include/sysmodule.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='getc' mangled-name='getc' filepath='/usr/include/stdio.h' line='486' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='ungetc' mangled-name='ungetc' filepath='/usr/include/stdio.h' line='639' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyByteArray_AsString' mangled-name='PyByteArray_AsString' filepath='./Include/bytearrayobject.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsUTF8AndSize' mangled-name='PyUnicode_AsUTF8AndSize' filepath='./Include/cpython/unicodeobject.h' line='746' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyByteArray_FromStringAndSize' mangled-name='PyByteArray_FromStringAndSize' filepath='./Include/bytearrayobject.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_UniversalNewlineFgets' mangled-name='Py_UniversalNewlineFgets' filepath='./Include/cpython/fileobject.h' line='9' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='ftell' mangled-name='ftell' filepath='/usr/include/stdio.h' line='689' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='lseek' mangled-name='lseek64' filepath='/usr/include/unistd.h' line='337' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_CallMethodId_SizeT' mangled-name='_PyObject_CallMethodId_SizeT' filepath='./Include/cpython/abstract.h' line='218' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_GetAttrId' mangled-name='_PyObject_GetAttrId' filepath='./Include/cpython/object.h' line='315' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__ctype_tolower_loc' mangled-name='__ctype_tolower_loc' filepath='/usr/include/ctype.h' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/abstract.c' comp-dir-path='/src' language='LANG_C99'>
+    <qualified-type-def type-id='type-id-7' const='yes' id='type-id-279'/>
+    <pointer-type-def type-id='type-id-279' size-in-bits='64' id='type-id-280'/>
+    <function-decl name='_Py_FreeCharPArray' mangled-name='_Py_FreeCharPArray' filepath='Objects/abstract.c' line='2771' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FreeCharPArray'>
+      <parameter type-id='type-id-280' name='array' filepath='Objects/abstract.c' line='2771' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PySequence_BytesToCharpArray' mangled-name='_PySequence_BytesToCharpArray' filepath='Objects/abstract.c' line='2712' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySequence_BytesToCharpArray'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/abstract.c' line='2712' column='1'/>
+      <return type-id='type-id-280'/>
+    </function-decl>
+    <function-decl name='PyIter_Check' mangled-name='PyIter_Check' filepath='Objects/abstract.c' line='2677' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyIter_Check'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyObject_RealIsSubclass' mangled-name='_PyObject_RealIsSubclass' filepath='Objects/abstract.c' line='2643' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_RealIsSubclass'>
+      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
+      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyObject_RealIsInstance' mangled-name='_PyObject_RealIsInstance' filepath='Objects/abstract.c' line='2637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_RealIsInstance'>
+      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
+      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyPegen_ASTFromFilename' mangled-name='PyPegen_ASTFromFilename' filepath='Parser/pegen/peg_api.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPegen_ASTFromFilename'>
-      <parameter type-id='type-id-3' name='filename' filepath='Parser/pegen/peg_api.c' line='32' column='1'/>
-      <parameter type-id='type-id-8' name='mode' filepath='Parser/pegen/peg_api.c' line='32' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Parser/pegen/peg_api.c' line='32' column='1'/>
-      <parameter type-id='type-id-230' name='arena' filepath='Parser/pegen/peg_api.c' line='32' column='1'/>
-      <return type-id='type-id-204'/>
+    <function-decl name='PyObject_IsSubclass' mangled-name='PyObject_IsSubclass' filepath='Objects/abstract.c' line='2629' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IsSubclass'>
+      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2629' column='1'/>
+      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2629' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyPegen_ASTFromStringObject' mangled-name='PyPegen_ASTFromStringObject' filepath='Parser/pegen/peg_api.c' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPegen_ASTFromStringObject'>
-      <parameter type-id='type-id-3' name='str' filepath='Parser/pegen/peg_api.c' line='20' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Parser/pegen/peg_api.c' line='20' column='1'/>
-      <parameter type-id='type-id-8' name='mode' filepath='Parser/pegen/peg_api.c' line='20' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Parser/pegen/peg_api.c' line='21' column='1'/>
-      <parameter type-id='type-id-230' name='arena' filepath='Parser/pegen/peg_api.c' line='21' column='1'/>
-      <return type-id='type-id-204'/>
+    <function-decl name='PyObject_IsInstance' mangled-name='PyObject_IsInstance' filepath='Objects/abstract.c' line='2546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IsInstance'>
+      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2629' column='1'/>
+      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2629' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyPegen_ASTFromString' mangled-name='PyPegen_ASTFromString' filepath='Parser/pegen/peg_api.c' line='7' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPegen_ASTFromString'>
-      <parameter type-id='type-id-3' name='str' filepath='Parser/pegen/peg_api.c' line='7' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Parser/pegen/peg_api.c' line='7' column='1'/>
-      <parameter type-id='type-id-8' name='mode' filepath='Parser/pegen/peg_api.c' line='7' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Parser/pegen/peg_api.c' line='8' column='1'/>
-      <parameter type-id='type-id-230' name='arena' filepath='Parser/pegen/peg_api.c' line='8' column='1'/>
-      <return type-id='type-id-204'/>
+    <function-decl name='PyMapping_Values' mangled-name='PyMapping_Values' filepath='Objects/abstract.c' line='2333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Values'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2333' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyMapping_Items' mangled-name='PyMapping_Items' filepath='Objects/abstract.c' line='2319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Items'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2333' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyMapping_Keys' mangled-name='PyMapping_Keys' filepath='Objects/abstract.c' line='2305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Keys'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2333' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyMapping_HasKey' mangled-name='PyMapping_HasKey' filepath='Objects/abstract.c' line='2260' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_HasKey'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2260' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/abstract.c' line='2260' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyMapping_HasKeyString' mangled-name='PyMapping_HasKeyString' filepath='Objects/abstract.c' line='2246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_HasKeyString'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2246' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2246' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyMapping_SetItemString' mangled-name='PyMapping_SetItemString' filepath='Objects/abstract.c' line='2227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_SetItemString'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2227' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2227' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Objects/abstract.c' line='2227' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyMapping_Length' mangled-name='PyMapping_Length' filepath='Objects/abstract.c' line='2203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Length'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2203' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyMapping_Check' mangled-name='PyMapping_Check' filepath='Objects/abstract.c' line='2169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Check'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySequence_Index' mangled-name='PySequence_Index' filepath='Objects/abstract.c' line='2161' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Index'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='2161' column='1'/>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2161' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PySequence_In' mangled-name='PySequence_In' filepath='Objects/abstract.c' line='2155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_In'>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='2155' column='1'/>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='2155' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySequence_Count' mangled-name='PySequence_Count' filepath='Objects/abstract.c' line='2133' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Count'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='2161' column='1'/>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2161' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='_PySequence_IterSearch' mangled-name='_PySequence_IterSearch' filepath='Objects/abstract.c' line='2048' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySequence_IterSearch'>
+      <parameter type-id='type-id-100' name='seq' filepath='Objects/abstract.c' line='2048' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2048' column='1'/>
+      <parameter type-id='type-id-8' name='operation' filepath='Objects/abstract.c' line='2048' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PySequence_Fast' mangled-name='PySequence_Fast' filepath='Objects/abstract.c' line='2015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Fast'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='2015' column='1'/>
+      <parameter type-id='type-id-3' name='m' filepath='Objects/abstract.c' line='2015' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySequence_Tuple' mangled-name='PySequence_Tuple' filepath='Objects/abstract.c' line='1908' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Tuple'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1908' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySequence_DelSlice' mangled-name='PySequence_DelSlice' filepath='Objects/abstract.c' line='1884' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_DelSlice'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1884' column='1'/>
+      <parameter type-id='type-id-15' name='i1' filepath='Objects/abstract.c' line='1884' column='1'/>
+      <parameter type-id='type-id-15' name='i2' filepath='Objects/abstract.c' line='1884' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySequence_SetSlice' mangled-name='PySequence_SetSlice' filepath='Objects/abstract.c' line='1859' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_SetSlice'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1859' column='1'/>
+      <parameter type-id='type-id-15' name='i1' filepath='Objects/abstract.c' line='1859' column='1'/>
+      <parameter type-id='type-id-15' name='i2' filepath='Objects/abstract.c' line='1859' column='1'/>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1859' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySequence_DelItem' mangled-name='PySequence_DelItem' filepath='Objects/abstract.c' line='1826' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_DelItem'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1826' column='1'/>
+      <parameter type-id='type-id-15' name='i' filepath='Objects/abstract.c' line='1826' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySequence_SetItem' mangled-name='PySequence_SetItem' filepath='Objects/abstract.c' line='1793' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_SetItem'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1793' column='1'/>
+      <parameter type-id='type-id-15' name='i' filepath='Objects/abstract.c' line='1793' column='1'/>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1793' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySequence_GetSlice' mangled-name='PySequence_GetSlice' filepath='Objects/abstract.c' line='1770' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_GetSlice'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1770' column='1'/>
+      <parameter type-id='type-id-15' name='i1' filepath='Objects/abstract.c' line='1770' column='1'/>
+      <parameter type-id='type-id-15' name='i2' filepath='Objects/abstract.c' line='1770' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySequence_GetItem' mangled-name='PySequence_GetItem' filepath='Objects/abstract.c' line='1740' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_GetItem'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1740' column='1'/>
+      <parameter type-id='type-id-15' name='i' filepath='Objects/abstract.c' line='1740' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySequence_InPlaceRepeat' mangled-name='PySequence_InPlaceRepeat' filepath='Objects/abstract.c' line='1710' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_InPlaceRepeat'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1710' column='1'/>
+      <parameter type-id='type-id-15' name='count' filepath='Objects/abstract.c' line='1710' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySequence_InPlaceConcat' mangled-name='PySequence_InPlaceConcat' filepath='Objects/abstract.c' line='1685' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_InPlaceConcat'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1685' column='1'/>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1685' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySequence_Repeat' mangled-name='PySequence_Repeat' filepath='Objects/abstract.c' line='1655' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Repeat'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1710' column='1'/>
+      <parameter type-id='type-id-15' name='count' filepath='Objects/abstract.c' line='1710' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySequence_Concat' mangled-name='PySequence_Concat' filepath='Objects/abstract.c' line='1630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Concat'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1685' column='1'/>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1685' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySequence_Length' mangled-name='PySequence_Length' filepath='Objects/abstract.c' line='1623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Length'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2203' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PySequence_Check' mangled-name='PySequence_Check' filepath='Objects/abstract.c' line='1588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Check'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1588' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyNumber_ToBase' mangled-name='PyNumber_ToBase' filepath='Objects/abstract.c' line='1569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_ToBase'>
+      <parameter type-id='type-id-100' name='n' filepath='Objects/abstract.c' line='1569' column='1'/>
+      <parameter type-id='type-id-8' name='base' filepath='Objects/abstract.c' line='1569' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_Float' mangled-name='PyNumber_Float' filepath='Objects/abstract.c' line='1510' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Float'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1510' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_Long' mangled-name='PyNumber_Long' filepath='Objects/abstract.c' line='1411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Long'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1411' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_AsSsize_t' mangled-name='PyNumber_AsSsize_t' filepath='Objects/abstract.c' line='1366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_AsSsize_t'>
+      <parameter type-id='type-id-100' name='item' filepath='Objects/abstract.c' line='1366' column='1'/>
+      <parameter type-id='type-id-100' name='err' filepath='Objects/abstract.c' line='1366' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyNumber_Index' mangled-name='PyNumber_Index' filepath='Objects/abstract.c' line='1324' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Index'>
+      <parameter type-id='type-id-100' name='item' filepath='Objects/abstract.c' line='1324' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyIndex_Check' mangled-name='PyIndex_Check' filepath='Objects/abstract.c' line='1313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyIndex_Check'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1588' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyNumber_Absolute' mangled-name='PyNumber_Absolute' filepath='Objects/abstract.c' line='1296' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Absolute'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1296' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_Invert' mangled-name='PyNumber_Invert' filepath='Objects/abstract.c' line='1280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Invert'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1296' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_Positive' mangled-name='PyNumber_Positive' filepath='Objects/abstract.c' line='1264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Positive'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1296' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_Negative' mangled-name='PyNumber_Negative' filepath='Objects/abstract.c' line='1248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Negative'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1296' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlacePower' mangled-name='PyNumber_InPlacePower' filepath='Objects/abstract.c' line='1233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlacePower'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1233' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1233' column='1'/>
+      <parameter type-id='type-id-100' name='z' filepath='Objects/abstract.c' line='1233' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceRemainder' mangled-name='PyNumber_InPlaceRemainder' filepath='Objects/abstract.c' line='1226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceRemainder'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceMatrixMultiply' mangled-name='PyNumber_InPlaceMatrixMultiply' filepath='Objects/abstract.c' line='1219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceMatrixMultiply'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceMultiply' mangled-name='PyNumber_InPlaceMultiply' filepath='Objects/abstract.c' line='1190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceMultiply'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1190' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1190' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceAdd' mangled-name='PyNumber_InPlaceAdd' filepath='Objects/abstract.c' line='1169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceAdd'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1190' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1190' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceTrueDivide' mangled-name='PyNumber_InPlaceTrueDivide' filepath='Objects/abstract.c' line='1162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceTrueDivide'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceFloorDivide' mangled-name='PyNumber_InPlaceFloorDivide' filepath='Objects/abstract.c' line='1155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceFloorDivide'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceSubtract' mangled-name='PyNumber_InPlaceSubtract' filepath='Objects/abstract.c' line='1151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceSubtract'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceRshift' mangled-name='PyNumber_InPlaceRshift' filepath='Objects/abstract.c' line='1150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceRshift'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceLshift' mangled-name='PyNumber_InPlaceLshift' filepath='Objects/abstract.c' line='1149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceLshift'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceAnd' mangled-name='PyNumber_InPlaceAnd' filepath='Objects/abstract.c' line='1148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceAnd'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceXor' mangled-name='PyNumber_InPlaceXor' filepath='Objects/abstract.c' line='1147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceXor'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceOr' mangled-name='PyNumber_InPlaceOr' filepath='Objects/abstract.c' line='1146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceOr'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_Power' mangled-name='PyNumber_Power' filepath='Objects/abstract.c' line='1090' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Power'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1090' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1090' column='1'/>
+      <parameter type-id='type-id-100' name='z' filepath='Objects/abstract.c' line='1090' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_Remainder' mangled-name='PyNumber_Remainder' filepath='Objects/abstract.c' line='1084' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Remainder'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_TrueDivide' mangled-name='PyNumber_TrueDivide' filepath='Objects/abstract.c' line='1078' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_TrueDivide'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_FloorDivide' mangled-name='PyNumber_FloorDivide' filepath='Objects/abstract.c' line='1072' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_FloorDivide'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-type size-in-bits='64' id='type-id-120'>
-      <parameter type-id='type-id-100'/>
+    <function-decl name='PyNumber_MatrixMultiply' mangled-name='PyNumber_MatrixMultiply' filepath='Objects/abstract.c' line='1066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_MatrixMultiply'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
       <return type-id='type-id-100'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-192'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-190'/>
-      <parameter type-id='type-id-191'/>
-      <parameter type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_Multiply' mangled-name='PyNumber_Multiply' filepath='Objects/abstract.c' line='1047' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Multiply'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1190' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1190' column='1'/>
       <return type-id='type-id-100'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-125'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_Add' mangled-name='PyNumber_Add' filepath='Objects/abstract.c' line='1016' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Add'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1190' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1190' column='1'/>
       <return type-id='type-id-100'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-127'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_Divmod' mangled-name='PyNumber_Divmod' filepath='Objects/abstract.c' line='1013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Divmod'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
       <return type-id='type-id-100'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-170'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyNumber_Subtract' mangled-name='PyNumber_Subtract' filepath='Objects/abstract.c' line='1012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Subtract'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
       <return type-id='type-id-100'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-113'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-7'/>
+    </function-decl>
+    <function-decl name='PyNumber_Rshift' mangled-name='PyNumber_Rshift' filepath='Objects/abstract.c' line='1011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Rshift'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
       <return type-id='type-id-100'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-139'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyNumber_Lshift' mangled-name='PyNumber_Lshift' filepath='Objects/abstract.c' line='1010' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Lshift'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
       <return type-id='type-id-100'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-178'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyNumber_And' mangled-name='PyNumber_And' filepath='Objects/abstract.c' line='1009' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_And'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
       <return type-id='type-id-100'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-185'>
-      <parameter type-id='type-id-75'/>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_Xor' mangled-name='PyNumber_Xor' filepath='Objects/abstract.c' line='1008' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Xor'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
       <return type-id='type-id-100'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-183'>
-      <parameter type-id='type-id-75'/>
-      <parameter type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyNumber_Or' mangled-name='PyNumber_Or' filepath='Objects/abstract.c' line='1007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Or'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
       <return type-id='type-id-100'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-129'>
-      <parameter type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyNumber_Check' mangled-name='PyNumber_Check' filepath='Objects/abstract.c' line='820' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Check'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
       <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-143'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_Format' mangled-name='PyObject_Format' filepath='Objects/abstract.c' line='759' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Format'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='759' column='1'/>
+      <parameter type-id='type-id-100' name='format_spec' filepath='Objects/abstract.c' line='759' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyBuffer_Release' mangled-name='PyBuffer_Release' filepath='Objects/abstract.c' line='745' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_Release'>
+      <parameter type-id='type-id-160' name='view' filepath='Objects/abstract.c' line='745' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyBuffer_FillInfo' mangled-name='PyBuffer_FillInfo' filepath='Objects/abstract.c' line='706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_FillInfo'>
+      <parameter type-id='type-id-160' name='view' filepath='Objects/abstract.c' line='706' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='706' column='1'/>
+      <parameter type-id='type-id-32' name='buf' filepath='Objects/abstract.c' line='706' column='1'/>
+      <parameter type-id='type-id-15' name='len' filepath='Objects/abstract.c' line='706' column='1'/>
+      <parameter type-id='type-id-8' name='readonly' filepath='Objects/abstract.c' line='707' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Objects/abstract.c' line='707' column='1'/>
       <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-148'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyBuffer_FillContiguousStrides' mangled-name='PyBuffer_FillContiguousStrides' filepath='Objects/abstract.c' line='682' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_FillContiguousStrides'>
+      <parameter type-id='type-id-8' name='nd' filepath='Objects/abstract.c' line='682' column='1'/>
+      <parameter type-id='type-id-158' name='shape' filepath='Objects/abstract.c' line='682' column='1'/>
+      <parameter type-id='type-id-158' name='strides' filepath='Objects/abstract.c' line='683' column='1'/>
+      <parameter type-id='type-id-8' name='itemsize' filepath='Objects/abstract.c' line='683' column='1'/>
+      <parameter type-id='type-id-1' name='fort' filepath='Objects/abstract.c' line='684' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_CopyData' mangled-name='PyObject_CopyData' filepath='Objects/abstract.c' line='611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CopyData'>
+      <parameter type-id='type-id-100' name='dest' filepath='Objects/abstract.c' line='611' column='1'/>
+      <parameter type-id='type-id-100' name='src' filepath='Objects/abstract.c' line='611' column='1'/>
       <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-180'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyBuffer_FromContiguous' mangled-name='PyBuffer_FromContiguous' filepath='Objects/abstract.c' line='560' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_FromContiguous'>
+      <parameter type-id='type-id-160' name='view' filepath='Objects/abstract.c' line='560' column='1'/>
+      <parameter type-id='type-id-32' name='buf' filepath='Objects/abstract.c' line='560' column='1'/>
+      <parameter type-id='type-id-15' name='len' filepath='Objects/abstract.c' line='560' column='1'/>
+      <parameter type-id='type-id-1' name='fort' filepath='Objects/abstract.c' line='560' column='1'/>
       <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-161'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-160'/>
-      <parameter type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyBuffer_SizeFromFormat' mangled-name='PyBuffer_SizeFromFormat' filepath='Objects/abstract.c' line='518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_SizeFromFormat'>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/abstract.c' line='518' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <qualified-type-def type-id='type-id-15' const='yes' id='type-id-281'/>
+    <pointer-type-def type-id='type-id-281' size-in-bits='64' id='type-id-282'/>
+    <function-decl name='_Py_add_one_to_index_C' mangled-name='_Py_add_one_to_index_C' filepath='Objects/abstract.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_add_one_to_index_C'>
+      <parameter type-id='type-id-8' name='nd' filepath='Objects/abstract.c' line='502' column='1'/>
+      <parameter type-id='type-id-158' name='index' filepath='Objects/abstract.c' line='502' column='1'/>
+      <parameter type-id='type-id-282' name='shape' filepath='Objects/abstract.c' line='502' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_add_one_to_index_F' mangled-name='_Py_add_one_to_index_F' filepath='Objects/abstract.c' line='486' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_add_one_to_index_F'>
+      <parameter type-id='type-id-8' name='nd' filepath='Objects/abstract.c' line='502' column='1'/>
+      <parameter type-id='type-id-158' name='index' filepath='Objects/abstract.c' line='502' column='1'/>
+      <parameter type-id='type-id-282' name='shape' filepath='Objects/abstract.c' line='502' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyBuffer_GetPointer' mangled-name='PyBuffer_GetPointer' filepath='Objects/abstract.c' line='470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_GetPointer'>
+      <parameter type-id='type-id-160' name='view' filepath='Objects/abstract.c' line='470' column='1'/>
+      <parameter type-id='type-id-158' name='indices' filepath='Objects/abstract.c' line='470' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyObject_GetBuffer' mangled-name='PyObject_GetBuffer' filepath='Objects/abstract.c' line='373' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetBuffer'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='373' column='1'/>
+      <parameter type-id='type-id-160' name='view' filepath='Objects/abstract.c' line='373' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Objects/abstract.c' line='373' column='1'/>
       <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-115'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-7'/>
-      <parameter type-id='type-id-100'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-32' size-in-bits='64' id='type-id-283'/>
+    <function-decl name='PyObject_AsWriteBuffer' mangled-name='PyObject_AsWriteBuffer' filepath='Objects/abstract.c' line='344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_AsWriteBuffer'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='344' column='1'/>
+      <parameter type-id='type-id-283' name='buffer' filepath='Objects/abstract.c' line='345' column='1'/>
+      <parameter type-id='type-id-158' name='buffer_len' filepath='Objects/abstract.c' line='346' column='1'/>
       <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-141'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_AsReadBuffer' mangled-name='PyObject_AsReadBuffer' filepath='Objects/abstract.c' line='337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_AsReadBuffer'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='337' column='1'/>
+      <parameter type-id='type-id-283' name='buffer' filepath='Objects/abstract.c' line='338' column='1'/>
+      <parameter type-id='type-id-158' name='buffer_len' filepath='Objects/abstract.c' line='339' column='1'/>
       <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-168'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-167'/>
-      <parameter type-id='type-id-32'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-3' size-in-bits='64' id='type-id-284'/>
+    <function-decl name='PyObject_AsCharBuffer' mangled-name='PyObject_AsCharBuffer' filepath='Objects/abstract.c' line='330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_AsCharBuffer'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='330' column='1'/>
+      <parameter type-id='type-id-284' name='buffer' filepath='Objects/abstract.c' line='331' column='1'/>
+      <parameter type-id='type-id-158' name='buffer_len' filepath='Objects/abstract.c' line='332' column='1'/>
       <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-165'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyObject_CheckReadBuffer' mangled-name='PyObject_CheckReadBuffer' filepath='Objects/abstract.c' line='295' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CheckReadBuffer'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='295' column='1'/>
       <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-151'>
-      <parameter type-id='type-id-100'/>
-      <return type-id='type-id-150'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-137'>
-      <parameter type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_CheckBuffer' mangled-name='PyObject_CheckBuffer' filepath='Objects/abstract.c' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CheckBuffer'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='284' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_DelItemString' mangled-name='PyObject_DelItemString' filepath='Objects/abstract.c' line='264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_DelItemString'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='264' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='264' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_DelItem' mangled-name='PyObject_DelItem' filepath='Objects/abstract.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_DelItem'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='232' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/abstract.c' line='232' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_SetItem' mangled-name='PyObject_SetItem' filepath='Objects/abstract.c' line='200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SetItem'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='200' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/abstract.c' line='200' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Objects/abstract.c' line='200' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_GetItem' mangled-name='PyObject_GetItem' filepath='Objects/abstract.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetItem'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='146' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/abstract.c' line='146' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_HasLen' mangled-name='_PyObject_HasLen' filepath='Objects/abstract.c' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_HasLen'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_Length' mangled-name='PyObject_Length' filepath='Objects/abstract.c' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Length'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2203' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyObject_Type' mangled-name='PyObject_Type' filepath='Objects/abstract.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Type'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='35' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <qualified-type-def type-id='type-id-159' const='yes' id='type-id-285'/>
+    <pointer-type-def type-id='type-id-285' size-in-bits='64' id='type-id-286'/>
+    <function-decl name='PyBuffer_IsContiguous' mangled-name='PyBuffer_IsContiguous' filepath='Objects/abstract.c' line='454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_IsContiguous'>
+      <parameter type-id='type-id-286' name='view' filepath='Objects/abstract.c' line='454' column='1'/>
+      <parameter type-id='type-id-1' name='order' filepath='Objects/abstract.c' line='454' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySequence_Size' mangled-name='PySequence_Size' filepath='Objects/abstract.c' line='1597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Size'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1597' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PySequence_List' mangled-name='PySequence_List' filepath='Objects/abstract.c' line='1992' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_List'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1992' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyMapping_Size' mangled-name='PyMapping_Size' filepath='Objects/abstract.c' line='2176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Size'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1597' column='1'/>
       <return type-id='type-id-15'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-111'>
-      <parameter type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_Size' mangled-name='PyObject_Size' filepath='Objects/abstract.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Size'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='49' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyObject_LengthHint' mangled-name='PyObject_LengthHint' filepath='Objects/abstract.c' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_LengthHint'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='89' column='1'/>
+      <parameter type-id='type-id-15' name='defaultvalue' filepath='Objects/abstract.c' line='89' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyMapping_GetItemString' mangled-name='PyMapping_GetItemString' filepath='Objects/abstract.c' line='2210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_GetItemString'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2210' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2210' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_GetIter' mangled-name='PyObject_GetIter' filepath='Objects/abstract.c' line='2650' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetIter'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2650' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyIter_Next' mangled-name='PyIter_Next' filepath='Objects/abstract.c' line='2691' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyIter_Next'>
+      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySequence_Contains' mangled-name='PySequence_Contains' filepath='Objects/abstract.c' line='2142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Contains'>
+      <parameter type-id='type-id-100' name='seq' filepath='Objects/abstract.c' line='2142' column='1'/>
+      <parameter type-id='type-id-100' name='ob' filepath='Objects/abstract.c' line='2142' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyBytes_AsStringAndSize' mangled-name='PyBytes_AsStringAndSize' filepath='./Include/bytesobject.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-163'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-160'/>
+    </function-decl>
+    <function-decl name='_PyObject_LookupAttrId' mangled-name='_PyObject_LookupAttrId' filepath='./Include/cpython/object.h' line='328' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-187'>
-      <parameter type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyType_IsSubtype' mangled-name='PyType_IsSubtype' filepath='./Include/object.h' line='223' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_CheckRecursiveCall' mangled-name='_Py_CheckRecursiveCall' filepath='./Include/internal/pycore_ceval.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_IsTrue' mangled-name='PyObject_IsTrue' filepath='./Include/object.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_LookupSpecial' mangled-name='_PyObject_LookupSpecial' filepath='./Include/cpython/object.h' line='303' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_FromId' mangled-name='_PyUnicode_FromId' filepath='./Include/cpython/unicodeobject.h' line='1226' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_VectorcallMethod' mangled-name='PyObject_VectorcallMethod' filepath='./Include/cpython/abstract.h' line='191' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_Values' mangled-name='PyDict_Values' filepath='./Include/dictobject.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_Items' mangled-name='PyDict_Items' filepath='./Include/dictobject.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_Keys' mangled-name='PyDict_Keys' filepath='./Include/dictobject.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_RichCompareBool' mangled-name='PyObject_RichCompareBool' filepath='./Include/object.h' line='246' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTuple_Resize' mangled-name='_PyTuple_Resize' filepath='./Include/cpython/tupleobject.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTuple_New' mangled-name='PyTuple_New' filepath='./Include/tupleobject.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyList_AsTuple' mangled-name='PyList_AsTuple' filepath='./Include/listobject.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PySlice_FromIndices' mangled-name='_PySlice_FromIndices' filepath='./Include/sliceobject.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_FromSsize_t' mangled-name='PyLong_FromSsize_t' filepath='./Include/longobject.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_Format' mangled-name='_PyLong_Format' filepath='./Include/longobject.h' line='195' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_WarnFormat' mangled-name='PyErr_WarnFormat' filepath='./Include/warnings.h' line='15' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_AsDouble' mangled-name='PyLong_AsDouble' filepath='./Include/longobject.h' line='92' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFloat_FromString' mangled-name='PyFloat_FromString' filepath='./Include/floatobject.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_Copy' mangled-name='_PyLong_Copy' filepath='./Include/longintrepr.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_FromNbIndexOrNbInt' mangled-name='_PyLong_FromNbIndexOrNbInt' filepath='./Include/longobject.h' line='191' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_FromBytes' mangled-name='_PyLong_FromBytes' filepath='./Include/longobject.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_FromNbInt' mangled-name='_PyLong_FromNbInt' filepath='./Include/longobject.h' line='181' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_FromUnicodeObject' mangled-name='PyLong_FromUnicodeObject' filepath='./Include/longobject.h' line='107' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_AsSsize_t' mangled-name='PyLong_AsSsize_t' filepath='./Include/longobject.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_GivenExceptionMatches' mangled-name='PyErr_GivenExceptionMatches' filepath='./Include/pyerrors.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_Sign' mangled-name='_PyLong_Sign' filepath='./Include/longobject.h' line='116' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_New' mangled-name='PyUnicode_New' filepath='./Include/cpython/unicodeobject.h' line='460' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyImport_ImportModule' mangled-name='PyImport_ImportModule' filepath='./Include/import.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_CallFunctionObjArgs' mangled-name='PyObject_CallFunctionObjArgs' filepath='./Include/abstract.h' line='215' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_GenericAlias' mangled-name='Py_GenericAlias' filepath='./Include/genericaliasobject.h' line='8' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyList_Extend' mangled-name='_PyList_Extend' filepath='./Include/cpython/listobject.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySeqIter_New' mangled-name='PySeqIter_New' filepath='./Include/iterobject.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
-    </function-type>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Parser/myreadline.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='_ts' size-in-bits='2112' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='51' column='1' id='type-id-231'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='prev' type-id='type-id-232' visibility='default' filepath='./Include/cpython/pystate.h' line='54' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='next' type-id='type-id-232' visibility='default' filepath='./Include/cpython/pystate.h' line='55' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='interp' type-id='type-id-233' visibility='default' filepath='./Include/cpython/pystate.h' line='56' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='frame' type-id='type-id-234' visibility='default' filepath='./Include/cpython/pystate.h' line='59' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='recursion_depth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='60' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='overflowed' type-id='type-id-1' visibility='default' filepath='./Include/cpython/pystate.h' line='61' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='296'>
-        <var-decl name='recursion_critical' type-id='type-id-1' visibility='default' filepath='./Include/cpython/pystate.h' line='63' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='stackcheck_counter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='352'>
-        <var-decl name='tracing' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='70' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='use_tracing' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='71' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='c_profilefunc' type-id='type-id-235' visibility='default' filepath='./Include/cpython/pystate.h' line='73' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='c_tracefunc' type-id='type-id-235' visibility='default' filepath='./Include/cpython/pystate.h' line='74' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='c_profileobj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='75' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='c_traceobj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='76' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='curexc_type' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='79' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='curexc_value' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='80' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='curexc_traceback' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='81' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='exc_state' type-id='type-id-236' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='exc_info' type-id='type-id-237' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='dict' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1280'>
-        <var-decl name='gilstate_counter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='94' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='async_exc' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='96' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1408'>
-        <var-decl name='thread_id' type-id='type-id-33' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1472'>
-        <var-decl name='trash_delete_nesting' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='99' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='trash_delete_later' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='100' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='on_delete' type-id='type-id-188' visibility='default' filepath='./Include/cpython/pystate.h' line='125' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1664'>
-        <var-decl name='on_delete_data' type-id='type-id-32' visibility='default' filepath='./Include/cpython/pystate.h' line='126' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1728'>
-        <var-decl name='coroutine_origin_tracking_depth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='128' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='async_gen_firstiter' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='130' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='async_gen_finalizer' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='131' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1920'>
-        <var-decl name='context' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='133' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1984'>
-        <var-decl name='context_ver' type-id='type-id-238' visibility='default' filepath='./Include/cpython/pystate.h' line='134' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2048'>
-        <var-decl name='id' type-id='type-id-238' visibility='default' filepath='./Include/cpython/pystate.h' line='137' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-231' size-in-bits='64' id='type-id-232'/>
-    <class-decl name='_is' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-239'/>
-    <typedef-decl name='PyInterpreterState' type-id='type-id-239' filepath='./Include/pystate.h' line='22' column='1' id='type-id-240'/>
-    <pointer-type-def type-id='type-id-240' size-in-bits='64' id='type-id-233'/>
-    <class-decl name='_frame' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-241'/>
-    <typedef-decl name='PyFrameObject' type-id='type-id-241' filepath='./Include/pyframe.h' line='12' column='1' id='type-id-242'/>
-    <pointer-type-def type-id='type-id-242' size-in-bits='64' id='type-id-234'/>
-    <pointer-type-def type-id='type-id-243' size-in-bits='64' id='type-id-244'/>
-    <typedef-decl name='Py_tracefunc' type-id='type-id-244' filepath='./Include/cpython/pystate.h' line='19' column='1' id='type-id-235'/>
-    <class-decl name='_err_stackitem' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='36' column='1' id='type-id-245'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='exc_type' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='43' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='exc_value' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='43' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='exc_traceback' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='43' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='previous_item' type-id='type-id-246' visibility='default' filepath='./Include/cpython/pystate.h' line='45' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-245' size-in-bits='64' id='type-id-246'/>
-    <typedef-decl name='_PyErr_StackItem' type-id='type-id-245' filepath='./Include/cpython/pystate.h' line='47' column='1' id='type-id-236'/>
-    <pointer-type-def type-id='type-id-236' size-in-bits='64' id='type-id-237'/>
-    <typedef-decl name='__uint64_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='45' column='1' id='type-id-247'/>
-    <typedef-decl name='uint64_t' type-id='type-id-247' filepath='/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h' line='27' column='1' id='type-id-238'/>
-    <typedef-decl name='PyThreadState' type-id='type-id-231' filepath='./Include/pystate.h' line='20' column='1' id='type-id-248'/>
-    <pointer-type-def type-id='type-id-248' size-in-bits='64' id='type-id-249'/>
-    <var-decl name='_PyOS_ReadlineTState' type-id='type-id-249' mangled-name='_PyOS_ReadlineTState' visibility='default' filepath='./Include/pythonrun.h' line='196' column='1' elf-symbol-id='_PyOS_ReadlineTState'/>
-    <pointer-type-def type-id='type-id-250' size-in-bits='64' id='type-id-251'/>
-    <var-decl name='PyOS_InputHook' type-id='type-id-251' mangled-name='PyOS_InputHook' visibility='default' filepath='./Include/pythonrun.h' line='193' column='1' elf-symbol-id='PyOS_InputHook'/>
-    <pointer-type-def type-id='type-id-252' size-in-bits='64' id='type-id-253'/>
-    <var-decl name='PyOS_ReadlineFunctionPointer' type-id='type-id-253' mangled-name='PyOS_ReadlineFunctionPointer' visibility='default' filepath='./Include/pythonrun.h' line='194' column='1' elf-symbol-id='PyOS_ReadlineFunctionPointer'/>
-    <function-decl name='PyOS_Readline' mangled-name='PyOS_Readline' filepath='Parser/myreadline.c' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_Readline'>
-      <parameter type-id='type-id-223' name='sys_stdin' filepath='Parser/myreadline.c' line='356' column='1'/>
-      <parameter type-id='type-id-223' name='sys_stdout' filepath='Parser/myreadline.c' line='356' column='1'/>
-      <parameter type-id='type-id-3' name='prompt' filepath='Parser/myreadline.c' line='356' column='1'/>
-      <return type-id='type-id-7'/>
     </function-decl>
-    <function-type size-in-bits='64' id='type-id-252'>
-      <parameter type-id='type-id-223'/>
-      <parameter type-id='type-id-223'/>
-      <parameter type-id='type-id-3'/>
-      <return type-id='type-id-7'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-250'>
-      <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-243'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-234'/>
-      <parameter type-id='type-id-8'/>
-      <parameter type-id='type-id-100'/>
-      <return type-id='type-id-8'/>
-    </function-type>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Parser/parsetok.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-254' visibility='default' filepath='./Include/grammar.h' line='60' column='1' id='type-id-255'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='g_ndfas' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='61' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='g_dfa' type-id='type-id-256' visibility='default' filepath='./Include/grammar.h' line='62' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='g_ll' type-id='type-id-257' visibility='default' filepath='./Include/grammar.h' line='63' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='g_start' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='64' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='g_accel' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='65' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-258' visibility='default' filepath='./Include/grammar.h' line='50' column='1' id='type-id-259'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='d_type' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='51' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='d_name' type-id='type-id-7' visibility='default' filepath='./Include/grammar.h' line='52' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='d_nstates' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='53' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='d_state' type-id='type-id-260' visibility='default' filepath='./Include/grammar.h' line='54' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='d_first' type-id='type-id-261' visibility='default' filepath='./Include/grammar.h' line='55' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-262' visibility='default' filepath='./Include/grammar.h' line='37' column='1' id='type-id-263'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='s_narcs' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='38' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='s_arc' type-id='type-id-264' visibility='default' filepath='./Include/grammar.h' line='39' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='s_lower' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='42' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='s_upper' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='43' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='s_accel' type-id='type-id-227' visibility='default' filepath='./Include/grammar.h' line='44' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='s_accept' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='45' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='32' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-265' visibility='default' filepath='./Include/grammar.h' line='30' column='1' id='type-id-266'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='a_lbl' type-id='type-id-6' visibility='default' filepath='./Include/grammar.h' line='31' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='16'>
-        <var-decl name='a_arrow' type-id='type-id-6' visibility='default' filepath='./Include/grammar.h' line='32' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='arc' type-id='type-id-266' filepath='./Include/grammar.h' line='33' column='1' id='type-id-265'/>
-    <qualified-type-def type-id='type-id-265' const='yes' id='type-id-267'/>
-    <pointer-type-def type-id='type-id-267' size-in-bits='64' id='type-id-264'/>
-    <typedef-decl name='state' type-id='type-id-263' filepath='./Include/grammar.h' line='46' column='1' id='type-id-262'/>
-    <pointer-type-def type-id='type-id-262' size-in-bits='64' id='type-id-260'/>
-    <typedef-decl name='bitset' type-id='type-id-7' filepath='./Include/bitset.h' line='11' column='1' id='type-id-261'/>
-    <typedef-decl name='dfa' type-id='type-id-259' filepath='./Include/grammar.h' line='56' column='1' id='type-id-258'/>
-    <qualified-type-def type-id='type-id-258' const='yes' id='type-id-268'/>
-    <pointer-type-def type-id='type-id-268' size-in-bits='64' id='type-id-256'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-269' visibility='default' filepath='./Include/grammar.h' line='23' column='1' id='type-id-270'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ll_nlabels' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='24' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='ll_label' type-id='type-id-271' visibility='default' filepath='./Include/grammar.h' line='25' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-272' visibility='default' filepath='./Include/grammar.h' line='14' column='1' id='type-id-273'>
+  <abi-instr version='1.0' address-size='64' path='Objects/accu.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-287' visibility='default' filepath='./Include/internal/pycore_accu.h' line='24' column='1' id='type-id-288'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='lb_type' type-id='type-id-8' visibility='default' filepath='./Include/grammar.h' line='15' column='1'/>
+        <var-decl name='large' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_accu.h' line='25' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='lb_str' type-id='type-id-3' visibility='default' filepath='./Include/grammar.h' line='16' column='1'/>
+        <var-decl name='small' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_accu.h' line='26' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='label' type-id='type-id-273' filepath='./Include/grammar.h' line='17' column='1' id='type-id-272'/>
-    <qualified-type-def type-id='type-id-272' const='yes' id='type-id-274'/>
-    <pointer-type-def type-id='type-id-274' size-in-bits='64' id='type-id-271'/>
-    <typedef-decl name='labellist' type-id='type-id-270' filepath='./Include/grammar.h' line='26' column='1' id='type-id-269'/>
-    <qualified-type-def type-id='type-id-269' const='yes' id='type-id-257'/>
-    <typedef-decl name='grammar' type-id='type-id-255' filepath='./Include/grammar.h' line='66' column='1' id='type-id-254'/>
-    <pointer-type-def type-id='type-id-254' size-in-bits='64' id='type-id-275'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-276' visibility='default' filepath='./Include/parsetok.h' line='13' column='1' id='type-id-277'>
+    <typedef-decl name='_PyAccu' type-id='type-id-288' filepath='./Include/internal/pycore_accu.h' line='27' column='1' id='type-id-287'/>
+    <pointer-type-def type-id='type-id-287' size-in-bits='64' id='type-id-289'/>
+    <function-decl name='_PyAccu_Destroy' mangled-name='_PyAccu_Destroy' filepath='Objects/accu.c' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAccu_Destroy'>
+      <parameter type-id='type-id-289' name='acc' filepath='Objects/accu.c' line='111' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAccu_Finish' mangled-name='_PyAccu_Finish' filepath='Objects/accu.c' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAccu_Finish'>
+      <parameter type-id='type-id-289' name='acc' filepath='Objects/accu.c' line='93' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyAccu_Accumulate' mangled-name='_PyAccu_Accumulate' filepath='Objects/accu.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAccu_Accumulate'>
+      <parameter type-id='type-id-289' name='acc' filepath='Objects/accu.c' line='55' column='1'/>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/accu.c' line='55' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyAccu_Init' mangled-name='_PyAccu_Init' filepath='Objects/accu.c' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAccu_Init'>
+      <parameter type-id='type-id-289' name='acc' filepath='Objects/accu.c' line='18' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyAccu_FinishAsList' mangled-name='_PyAccu_FinishAsList' filepath='Objects/accu.c' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAccu_FinishAsList'>
+      <parameter type-id='type-id-289' name='acc' filepath='Objects/accu.c' line='76' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Join' mangled-name='PyUnicode_Join' filepath='./Include/unicodeobject.h' line='902' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyList_SetSlice' mangled-name='PyList_SetSlice' filepath='./Include/listobject.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyList_Append' mangled-name='PyList_Append' filepath='./Include/listobject.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/boolobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyBool_Type' type-id='type-id-182' mangled-name='PyBool_Type' visibility='default' filepath='./Include/boolobject.h' line='10' column='1' elf-symbol-id='PyBool_Type'/>
+    <class-decl name='_longobject' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/longintrepr.h' line='85' column='1' id='type-id-290'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='error' type-id='type-id-8' visibility='default' filepath='./Include/parsetok.h' line='14' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='filename' type-id='type-id-100' visibility='default' filepath='./Include/parsetok.h' line='15' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='lineno' type-id='type-id-8' visibility='default' filepath='./Include/parsetok.h' line='16' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='offset' type-id='type-id-8' visibility='default' filepath='./Include/parsetok.h' line='17' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-77' visibility='default' filepath='./Include/longintrepr.h' line='86' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='text' type-id='type-id-7' visibility='default' filepath='./Include/parsetok.h' line='18' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='token' type-id='type-id-8' visibility='default' filepath='./Include/parsetok.h' line='19' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='expected' type-id='type-id-8' visibility='default' filepath='./Include/parsetok.h' line='20' column='1'/>
+        <var-decl name='ob_digit' type-id='type-id-291' visibility='default' filepath='./Include/longintrepr.h' line='87' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='perrdetail' type-id='type-id-277' filepath='./Include/parsetok.h' line='21' column='1' id='type-id-276'/>
-    <pointer-type-def type-id='type-id-276' size-in-bits='64' id='type-id-278'/>
-    <function-decl name='PyParser_ParseFileFlagsEx' mangled-name='PyParser_ParseFileFlagsEx' filepath='Parser/parsetok.c' line='192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseFileFlagsEx'>
-      <parameter type-id='type-id-223' name='fp' filepath='Parser/parsetok.c' line='192' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Parser/parsetok.c' line='192' column='1'/>
-      <parameter type-id='type-id-3' name='enc' filepath='Parser/parsetok.c' line='193' column='1'/>
-      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='193' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='193' column='1'/>
-      <parameter type-id='type-id-3' name='ps1' filepath='Parser/parsetok.c' line='194' column='1'/>
-      <parameter type-id='type-id-3' name='ps2' filepath='Parser/parsetok.c' line='194' column='1'/>
-      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='195' column='1'/>
-      <parameter type-id='type-id-227' name='flags' filepath='Parser/parsetok.c' line='195' column='1'/>
-      <return type-id='type-id-11'/>
+    <typedef-decl name='__uint32_t' type-id='type-id-107' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='42' column='1' id='type-id-292'/>
+    <typedef-decl name='uint32_t' type-id='type-id-292' filepath='/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h' line='26' column='1' id='type-id-293'/>
+    <typedef-decl name='digit' type-id='type-id-293' filepath='./Include/longintrepr.h' line='45' column='1' id='type-id-294'/>
+
+    <array-type-def dimensions='1' type-id='type-id-294' size-in-bits='32' id='type-id-291'>
+      <subrange length='1' type-id='type-id-33' id='type-id-34'/>
+
+    </array-type-def>
+    <var-decl name='_Py_FalseStruct' type-id='type-id-290' mangled-name='_Py_FalseStruct' visibility='default' filepath='./Include/boolobject.h' line='18' column='1' elf-symbol-id='_Py_FalseStruct'/>
+    <var-decl name='_Py_TrueStruct' type-id='type-id-290' mangled-name='_Py_TrueStruct' visibility='default' filepath='./Include/boolobject.h' line='18' column='1' elf-symbol-id='_Py_TrueStruct'/>
+    <function-decl name='PyBool_FromLong' mangled-name='PyBool_FromLong' filepath='Objects/boolobject.c' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBool_FromLong'>
+      <parameter type-id='type-id-12' name='ok' filepath='Objects/boolobject.c' line='28' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyParser_ParseFileObject' mangled-name='PyParser_ParseFileObject' filepath='Parser/parsetok.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseFileObject'>
-      <parameter type-id='type-id-223' name='fp' filepath='Parser/parsetok.c' line='165' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Parser/parsetok.c' line='165' column='1'/>
-      <parameter type-id='type-id-3' name='enc' filepath='Parser/parsetok.c' line='166' column='1'/>
-      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='166' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='166' column='1'/>
-      <parameter type-id='type-id-3' name='ps1' filepath='Parser/parsetok.c' line='167' column='1'/>
-      <parameter type-id='type-id-3' name='ps2' filepath='Parser/parsetok.c' line='167' column='1'/>
-      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='168' column='1'/>
-      <parameter type-id='type-id-227' name='flags' filepath='Parser/parsetok.c' line='168' column='1'/>
-      <return type-id='type-id-11'/>
+    <function-decl name='_PyArg_NoKeywords' mangled-name='_PyArg_NoKeywords' filepath='./Include/modsupport.h' line='62' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyParser_ParseFileFlags' mangled-name='PyParser_ParseFileFlags' filepath='Parser/parsetok.c' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseFileFlags'>
-      <parameter type-id='type-id-223' name='fp' filepath='Parser/parsetok.c' line='154' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Parser/parsetok.c' line='154' column='1'/>
-      <parameter type-id='type-id-3' name='enc' filepath='Parser/parsetok.c' line='154' column='1'/>
-      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='155' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='155' column='1'/>
-      <parameter type-id='type-id-3' name='ps1' filepath='Parser/parsetok.c' line='156' column='1'/>
-      <parameter type-id='type-id-3' name='ps2' filepath='Parser/parsetok.c' line='156' column='1'/>
-      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='157' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Parser/parsetok.c' line='157' column='1'/>
-      <return type-id='type-id-11'/>
+    <function-decl name='PyArg_UnpackTuple' mangled-name='PyArg_UnpackTuple' filepath='./Include/modsupport.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyParser_ParseFile' mangled-name='PyParser_ParseFile' filepath='Parser/parsetok.c' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseFile'>
-      <parameter type-id='type-id-223' name='fp' filepath='Parser/parsetok.c' line='145' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Parser/parsetok.c' line='145' column='1'/>
-      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='145' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='145' column='1'/>
-      <parameter type-id='type-id-3' name='ps1' filepath='Parser/parsetok.c' line='146' column='1'/>
-      <parameter type-id='type-id-3' name='ps2' filepath='Parser/parsetok.c' line='146' column='1'/>
-      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='147' column='1'/>
-      <return type-id='type-id-11'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/bytes_methods.c' comp-dir-path='/src' language='LANG_C99'>
+
+    <array-type-def dimensions='1' type-id='type-id-2' size-in-bits='infinite' id='type-id-295'>
+      <subrange length='infinite' id='type-id-18'/>
+
+    </array-type-def>
+    <qualified-type-def type-id='type-id-295' const='yes' id='type-id-296'/>
+    <var-decl name='_Py_isspace__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='42' column='1'/>
+    <var-decl name='_Py_isalpha__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='43' column='1'/>
+    <var-decl name='_Py_isalnum__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='44' column='1'/>
+    <var-decl name='_Py_isascii__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='45' column='1'/>
+    <var-decl name='_Py_isdigit__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='46' column='1'/>
+    <var-decl name='_Py_islower__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='47' column='1'/>
+    <var-decl name='_Py_isupper__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='48' column='1'/>
+    <var-decl name='_Py_istitle__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='49' column='1'/>
+    <var-decl name='_Py_lower__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='50' column='1'/>
+    <var-decl name='_Py_upper__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='51' column='1'/>
+    <var-decl name='_Py_title__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='52' column='1'/>
+    <var-decl name='_Py_capitalize__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='53' column='1'/>
+    <var-decl name='_Py_swapcase__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='54' column='1'/>
+    <var-decl name='_Py_maketrans__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='62' column='1'/>
+    <var-decl name='_Py_find__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='56' column='1'/>
+    <var-decl name='_Py_index__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='57' column='1'/>
+    <var-decl name='_Py_rfind__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='58' column='1'/>
+    <var-decl name='_Py_rindex__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='59' column='1'/>
+    <var-decl name='_Py_count__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='55' column='1'/>
+    <var-decl name='_Py_startswith__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='60' column='1'/>
+    <var-decl name='_Py_endswith__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='61' column='1'/>
+    <function-decl name='__builtin_memcmp' mangled-name='memcmp' filepath='/usr/include/string.h' line='64' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyParser_ParseStringFlagsFilenameEx' mangled-name='PyParser_ParseStringFlagsFilenameEx' filepath='Parser/parsetok.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseStringFlagsFilenameEx'>
-      <parameter type-id='type-id-3' name='s' filepath='Parser/parsetok.c' line='124' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Parser/parsetok.c' line='124' column='1'/>
-      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='125' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='125' column='1'/>
-      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='126' column='1'/>
-      <parameter type-id='type-id-227' name='flags' filepath='Parser/parsetok.c' line='126' column='1'/>
-      <return type-id='type-id-11'/>
+    <function-decl name='PyBuffer_Release' mangled-name='PyBuffer_Release' filepath='./Include/cpython/abstract.h' line='330' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyParser_ParseStringObject' mangled-name='PyParser_ParseStringObject' filepath='Parser/parsetok.c' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseStringObject'>
-      <parameter type-id='type-id-3' name='s' filepath='Parser/parsetok.c' line='89' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Parser/parsetok.c' line='89' column='1'/>
-      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='90' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='90' column='1'/>
-      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='91' column='1'/>
-      <parameter type-id='type-id-227' name='flags' filepath='Parser/parsetok.c' line='91' column='1'/>
-      <return type-id='type-id-11'/>
+    <function-decl name='PyObject_GetBuffer' mangled-name='PyObject_GetBuffer' filepath='./Include/cpython/abstract.h' line='274' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyParser_ParseStringFlagsFilename' mangled-name='PyParser_ParseStringFlagsFilename' filepath='Parser/parsetok.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseStringFlagsFilename'>
-      <parameter type-id='type-id-3' name='s' filepath='Parser/parsetok.c' line='79' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Parser/parsetok.c' line='79' column='1'/>
-      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='80' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='80' column='1'/>
-      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='81' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Parser/parsetok.c' line='81' column='1'/>
-      <return type-id='type-id-11'/>
+    <function-decl name='_PyArg_ParseTuple_SizeT' mangled-name='_PyArg_ParseTuple_SizeT' filepath='./Include/modsupport.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyParser_ParseStringFlags' mangled-name='PyParser_ParseStringFlags' filepath='Parser/parsetok.c' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseStringFlags'>
-      <parameter type-id='type-id-3' name='s' filepath='Parser/parsetok.c' line='71' column='1'/>
-      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='71' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='71' column='1'/>
-      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='72' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Parser/parsetok.c' line='72' column='1'/>
-      <return type-id='type-id-11'/>
+    <function-decl name='_PyEval_SliceIndex' mangled-name='_PyEval_SliceIndex' filepath='./Include/cpython/ceval.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyParser_ParseString' mangled-name='PyParser_ParseString' filepath='Parser/parsetok.c' line='65' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ParseString'>
-      <parameter type-id='type-id-3' name='s' filepath='Parser/parsetok.c' line='65' column='1'/>
-      <parameter type-id='type-id-275' name='g' filepath='Parser/parsetok.c' line='65' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Parser/parsetok.c' line='65' column='1'/>
-      <parameter type-id='type-id-278' name='err_ret' filepath='Parser/parsetok.c' line='65' column='1'/>
-      <return type-id='type-id-11'/>
+    <function-decl name='PyBool_FromLong' mangled-name='PyBool_FromLong' filepath='./Include/boolobject.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/abstract.c' comp-dir-path='/src' language='LANG_C99'>
-    <qualified-type-def type-id='type-id-7' const='yes' id='type-id-279'/>
-    <pointer-type-def type-id='type-id-279' size-in-bits='64' id='type-id-280'/>
-    <function-decl name='_Py_FreeCharPArray' mangled-name='_Py_FreeCharPArray' filepath='Objects/abstract.c' line='2771' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FreeCharPArray'>
-      <parameter type-id='type-id-280' name='array' filepath='Objects/abstract.c' line='2771' column='1'/>
+    <function-decl name='memchr' mangled-name='memchr' filepath='/usr/include/string.h' line='91' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PySequence_BytesToCharpArray' mangled-name='_PySequence_BytesToCharpArray' filepath='Objects/abstract.c' line='2712' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySequence_BytesToCharpArray'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/abstract.c' line='2712' column='1'/>
-      <return type-id='type-id-280'/>
+    <function-decl name='PyNumber_AsSsize_t' mangled-name='PyNumber_AsSsize_t' filepath='./Include/abstract.h' line='509' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyIter_Next' mangled-name='PyIter_Next' filepath='Objects/abstract.c' line='2691' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyIter_Next'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyObject_CheckBuffer' mangled-name='PyObject_CheckBuffer' filepath='./Include/cpython/abstract.h' line='267' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyIter_Check' mangled-name='PyIter_Check' filepath='Objects/abstract.c' line='2677' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyIter_Check'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='memrchr' mangled-name='memrchr' filepath='/usr/include/string.h' line='115' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_GetIter' mangled-name='PyObject_GetIter' filepath='Objects/abstract.c' line='2650' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetIter'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2650' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/bytearrayobject.c' comp-dir-path='/src' language='LANG_C99'>
+
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='infinite' id='type-id-297'>
+      <subrange length='infinite' id='type-id-18'/>
+
+    </array-type-def>
+    <var-decl name='_PyByteArray_empty_string' type-id='type-id-297' mangled-name='_PyByteArray_empty_string' visibility='default' filepath='./Include/cpython/bytearrayobject.h' line='20' column='1' elf-symbol-id='_PyByteArray_empty_string'/>
+    <var-decl name='PyByteArray_Type' type-id='type-id-182' mangled-name='PyByteArray_Type' visibility='default' filepath='./Include/bytearrayobject.h' line='22' column='1' elf-symbol-id='PyByteArray_Type'/>
+    <var-decl name='PyByteArrayIter_Type' type-id='type-id-182' mangled-name='PyByteArrayIter_Type' visibility='default' filepath='./Include/bytearrayobject.h' line='23' column='1' elf-symbol-id='PyByteArrayIter_Type'/>
+    <function-decl name='PyByteArray_Concat' mangled-name='PyByteArray_Concat' filepath='Objects/bytearrayobject.c' line='255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_Concat'>
+      <parameter type-id='type-id-100' name='a' filepath='Objects/bytearrayobject.c' line='255' column='1'/>
+      <parameter type-id='type-id-100' name='b' filepath='Objects/bytearrayobject.c' line='255' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyObject_RealIsSubclass' mangled-name='_PyObject_RealIsSubclass' filepath='Objects/abstract.c' line='2643' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_RealIsSubclass'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyObject_RealIsInstance' mangled-name='_PyObject_RealIsInstance' filepath='Objects/abstract.c' line='2637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_RealIsInstance'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
+    <function-decl name='PyByteArray_Resize' mangled-name='PyByteArray_Resize' filepath='Objects/bytearrayobject.c' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_Resize'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/bytearrayobject.c' line='176' column='1'/>
+      <parameter type-id='type-id-15' name='requested_size' filepath='Objects/bytearrayobject.c' line='176' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_IsSubclass' mangled-name='PyObject_IsSubclass' filepath='Objects/abstract.c' line='2629' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IsSubclass'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2629' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2629' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyByteArray_AsString' mangled-name='PyByteArray_AsString' filepath='Objects/bytearrayobject.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_AsString'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/bytearrayobject.c' line='167' column='1'/>
+      <return type-id='type-id-7'/>
     </function-decl>
-    <function-decl name='PyObject_IsInstance' mangled-name='PyObject_IsInstance' filepath='Objects/abstract.c' line='2546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IsInstance'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2629' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2629' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyByteArray_Size' mangled-name='PyByteArray_Size' filepath='Objects/bytearrayobject.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_Size'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/bytearrayobject.c' line='158' column='1'/>
+      <return type-id='type-id-15'/>
     </function-decl>
-    <function-decl name='PyMapping_Values' mangled-name='PyMapping_Values' filepath='Objects/abstract.c' line='2333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Values'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
+    <function-decl name='PyByteArray_FromStringAndSize' mangled-name='PyByteArray_FromStringAndSize' filepath='Objects/bytearrayobject.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_FromStringAndSize'>
+      <parameter type-id='type-id-3' name='bytes' filepath='Objects/bytearrayobject.c' line='114' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/bytearrayobject.c' line='114' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyMapping_Items' mangled-name='PyMapping_Items' filepath='Objects/abstract.c' line='2319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Items'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
+    <function-decl name='PyByteArray_FromObject' mangled-name='PyByteArray_FromObject' filepath='Objects/bytearrayobject.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_FromObject'>
+      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyMapping_Keys' mangled-name='PyMapping_Keys' filepath='Objects/abstract.c' line='2305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Keys'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyObject_GC_Del' mangled-name='PyObject_GC_Del' filepath='./Include/objimpl.h' line='182' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMapping_HasKey' mangled-name='PyMapping_HasKey' filepath='Objects/abstract.c' line='2260' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_HasKey'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2629' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2629' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_bytes_endswith' mangled-name='_Py_bytes_endswith' filepath='./Include/internal/pycore_bytes_methods.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMapping_HasKeyString' mangled-name='PyMapping_HasKeyString' filepath='Objects/abstract.c' line='2246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_HasKeyString'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2246' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2246' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_bytes_startswith' mangled-name='_Py_bytes_startswith' filepath='./Include/internal/pycore_bytes_methods.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMapping_SetItemString' mangled-name='PyMapping_SetItemString' filepath='Objects/abstract.c' line='2227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_SetItemString'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2227' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2227' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Objects/abstract.c' line='2227' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_bytes_contains' mangled-name='_Py_bytes_contains' filepath='./Include/internal/pycore_bytes_methods.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMapping_GetItemString' mangled-name='PyMapping_GetItemString' filepath='Objects/abstract.c' line='2210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_GetItemString'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2210' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2210' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_bytes_rindex' mangled-name='_Py_bytes_rindex' filepath='./Include/internal/pycore_bytes_methods.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMapping_Length' mangled-name='PyMapping_Length' filepath='Objects/abstract.c' line='2203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Length'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2203' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_Py_bytes_rfind' mangled-name='_Py_bytes_rfind' filepath='./Include/internal/pycore_bytes_methods.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMapping_Size' mangled-name='PyMapping_Size' filepath='Objects/abstract.c' line='2176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Size'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2176' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_Py_bytes_index' mangled-name='_Py_bytes_index' filepath='./Include/internal/pycore_bytes_methods.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMapping_Check' mangled-name='PyMapping_Check' filepath='Objects/abstract.c' line='2169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMapping_Check'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_bytes_count' mangled-name='_Py_bytes_count' filepath='./Include/internal/pycore_bytes_methods.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_Index' mangled-name='PySequence_Index' filepath='Objects/abstract.c' line='2161' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Index'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='2161' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2161' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_Py_bytes_find' mangled-name='_Py_bytes_find' filepath='./Include/internal/pycore_bytes_methods.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_In' mangled-name='PySequence_In' filepath='Objects/abstract.c' line='2155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_In'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyNumber_Index' mangled-name='PyNumber_Index' filepath='./Include/abstract.h' line='501' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_Contains' mangled-name='PySequence_Contains' filepath='Objects/abstract.c' line='2142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Contains'>
-      <parameter type-id='type-id-100' name='seq' filepath='Objects/abstract.c' line='2142' column='1'/>
-      <parameter type-id='type-id-100' name='ob' filepath='Objects/abstract.c' line='2142' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyArg_UnpackKeywords' mangled-name='_PyArg_UnpackKeywords' filepath='./Include/modsupport.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_Count' mangled-name='PySequence_Count' filepath='Objects/abstract.c' line='2133' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Count'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='2161' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2161' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyLong_AsInt' mangled-name='_PyLong_AsInt' filepath='./Include/longobject.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PySequence_IterSearch' mangled-name='_PySequence_IterSearch' filepath='Objects/abstract.c' line='2048' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySequence_IterSearch'>
-      <parameter type-id='type-id-100' name='seq' filepath='Objects/abstract.c' line='2048' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2048' column='1'/>
-      <parameter type-id='type-id-8' name='operation' filepath='Objects/abstract.c' line='2048' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_Py_bytes_swapcase' mangled-name='_Py_bytes_swapcase' filepath='./Include/internal/pycore_bytes_methods.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_Fast' mangled-name='PySequence_Fast' filepath='Objects/abstract.c' line='2015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Fast'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='2015' column='1'/>
-      <parameter type-id='type-id-3' name='m' filepath='Objects/abstract.c' line='2015' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_bytes_capitalize' mangled-name='_Py_bytes_capitalize' filepath='./Include/internal/pycore_bytes_methods.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_List' mangled-name='PySequence_List' filepath='Objects/abstract.c' line='1992' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_List'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1992' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_bytes_title' mangled-name='_Py_bytes_title' filepath='./Include/internal/pycore_bytes_methods.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_Tuple' mangled-name='PySequence_Tuple' filepath='Objects/abstract.c' line='1908' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Tuple'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1908' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_bytes_upper' mangled-name='_Py_bytes_upper' filepath='./Include/internal/pycore_bytes_methods.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_DelSlice' mangled-name='PySequence_DelSlice' filepath='Objects/abstract.c' line='1884' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_DelSlice'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1884' column='1'/>
-      <parameter type-id='type-id-15' name='i1' filepath='Objects/abstract.c' line='1884' column='1'/>
-      <parameter type-id='type-id-15' name='i2' filepath='Objects/abstract.c' line='1884' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_bytes_lower' mangled-name='_Py_bytes_lower' filepath='./Include/internal/pycore_bytes_methods.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_SetSlice' mangled-name='PySequence_SetSlice' filepath='Objects/abstract.c' line='1859' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_SetSlice'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1859' column='1'/>
-      <parameter type-id='type-id-15' name='i1' filepath='Objects/abstract.c' line='1859' column='1'/>
-      <parameter type-id='type-id-15' name='i2' filepath='Objects/abstract.c' line='1859' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1859' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_bytes_istitle' mangled-name='_Py_bytes_istitle' filepath='./Include/internal/pycore_bytes_methods.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_DelItem' mangled-name='PySequence_DelItem' filepath='Objects/abstract.c' line='1826' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_DelItem'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1826' column='1'/>
-      <parameter type-id='type-id-15' name='i' filepath='Objects/abstract.c' line='1826' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_bytes_isupper' mangled-name='_Py_bytes_isupper' filepath='./Include/internal/pycore_bytes_methods.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_SetItem' mangled-name='PySequence_SetItem' filepath='Objects/abstract.c' line='1793' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_SetItem'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1793' column='1'/>
-      <parameter type-id='type-id-15' name='i' filepath='Objects/abstract.c' line='1793' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1793' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_bytes_islower' mangled-name='_Py_bytes_islower' filepath='./Include/internal/pycore_bytes_methods.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_GetSlice' mangled-name='PySequence_GetSlice' filepath='Objects/abstract.c' line='1770' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_GetSlice'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1770' column='1'/>
-      <parameter type-id='type-id-15' name='i1' filepath='Objects/abstract.c' line='1770' column='1'/>
-      <parameter type-id='type-id-15' name='i2' filepath='Objects/abstract.c' line='1770' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_bytes_isdigit' mangled-name='_Py_bytes_isdigit' filepath='./Include/internal/pycore_bytes_methods.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_GetItem' mangled-name='PySequence_GetItem' filepath='Objects/abstract.c' line='1740' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_GetItem'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1740' column='1'/>
-      <parameter type-id='type-id-15' name='i' filepath='Objects/abstract.c' line='1740' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_bytes_isascii' mangled-name='_Py_bytes_isascii' filepath='./Include/internal/pycore_bytes_methods.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_InPlaceRepeat' mangled-name='PySequence_InPlaceRepeat' filepath='Objects/abstract.c' line='1710' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_InPlaceRepeat'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1740' column='1'/>
-      <parameter type-id='type-id-15' name='i' filepath='Objects/abstract.c' line='1740' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_bytes_isalnum' mangled-name='_Py_bytes_isalnum' filepath='./Include/internal/pycore_bytes_methods.h' line='15' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_InPlaceConcat' mangled-name='PySequence_InPlaceConcat' filepath='Objects/abstract.c' line='1685' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_InPlaceConcat'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1685' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1685' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_bytes_isalpha' mangled-name='_Py_bytes_isalpha' filepath='./Include/internal/pycore_bytes_methods.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_Repeat' mangled-name='PySequence_Repeat' filepath='Objects/abstract.c' line='1655' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Repeat'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1740' column='1'/>
-      <parameter type-id='type-id-15' name='i' filepath='Objects/abstract.c' line='1740' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_bytes_isspace' mangled-name='_Py_bytes_isspace' filepath='./Include/internal/pycore_bytes_methods.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_Concat' mangled-name='PySequence_Concat' filepath='Objects/abstract.c' line='1630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Concat'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1685' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1685' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PySequence_Fast' mangled-name='PySequence_Fast' filepath='./Include/abstract.h' line='692' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_Length' mangled-name='PySequence_Length' filepath='Objects/abstract.c' line='1623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Length'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2203' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyErr_Print' mangled-name='PyErr_Print' filepath='./Include/pythonrun.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_Size' mangled-name='PySequence_Size' filepath='Objects/abstract.c' line='1597' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Size'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2176' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_Py_GetConfig' mangled-name='_Py_GetConfig' filepath='./Include/cpython/pystate.h' line='199' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_WarnEx' mangled-name='PyErr_WarnEx' filepath='./Include/warnings.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsEncodedString' mangled-name='PyUnicode_AsEncodedString' filepath='./Include/unicodeobject.h' line='409' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyBuffer_ToContiguous' mangled-name='PyBuffer_ToContiguous' filepath='./Include/cpython/abstract.h' line='286' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_AsLong' mangled-name='PyLong_AsLong' filepath='./Include/longobject.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyArg_ParseTupleAndKeywords_SizeT' mangled-name='_PyArg_ParseTupleAndKeywords_SizeT' filepath='./Include/modsupport.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_GetIter' mangled-name='PyObject_GetIter' filepath='./Include/abstract.h' line='372' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_Check' mangled-name='PyNumber_Check' filepath='./Include/abstract.h' line='394' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySlice_Unpack' mangled-name='PySlice_Unpack' filepath='./Include/sliceobject.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySlice_AdjustIndices' mangled-name='PySlice_AdjustIndices' filepath='./Include/sliceobject.h' line='57' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_New' mangled-name='_PyObject_New' filepath='./Include/objimpl.h' line='122' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySequence_Check' mangled-name='PySequence_Check' filepath='Objects/abstract.c' line='1588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySequence_Check'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyUnicode_DecodeLatin1' mangled-name='PyUnicode_DecodeLatin1' filepath='./Include/unicodeobject.h' line='614' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_ToBase' mangled-name='PyNumber_ToBase' filepath='Objects/abstract.c' line='1569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_ToBase'>
-      <parameter type-id='type-id-100' name='n' filepath='Objects/abstract.c' line='1569' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/abstract.c' line='1569' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_strhex_with_sep' mangled-name='_Py_strhex_with_sep' filepath='./Include/pystrhex.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_Float' mangled-name='PyNumber_Float' filepath='Objects/abstract.c' line='1510' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Float'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1510' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyArg_BadArgument' mangled-name='_PyArg_BadArgument' filepath='./Include/modsupport.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_Long' mangled-name='PyNumber_Long' filepath='Objects/abstract.c' line='1411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Long'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1411' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyUnicode_FromEncodedObject' mangled-name='PyUnicode_FromEncodedObject' filepath='./Include/unicodeobject.h' line='235' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_AsSsize_t' mangled-name='PyNumber_AsSsize_t' filepath='Objects/abstract.c' line='1366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_AsSsize_t'>
-      <parameter type-id='type-id-100' name='item' filepath='Objects/abstract.c' line='1366' column='1'/>
-      <parameter type-id='type-id-100' name='err' filepath='Objects/abstract.c' line='1366' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyUnicode_GetDefaultEncoding' mangled-name='PyUnicode_GetDefaultEncoding' filepath='./Include/unicodeobject.h' line='352' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_Index' mangled-name='PyNumber_Index' filepath='Objects/abstract.c' line='1324' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Index'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyArg_CheckPositional' mangled-name='_PyArg_CheckPositional' filepath='./Include/modsupport.h' line='73' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyIndex_Check' mangled-name='PyIndex_Check' filepath='Objects/abstract.c' line='1313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyIndex_Check'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyList_Reverse' mangled-name='PyList_Reverse' filepath='./Include/listobject.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_Absolute' mangled-name='PyNumber_Absolute' filepath='Objects/abstract.c' line='1296' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Absolute'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyBuffer_IsContiguous' mangled-name='PyBuffer_IsContiguous' filepath='./Include/cpython/abstract.h' line='308' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_Invert' mangled-name='PyNumber_Invert' filepath='Objects/abstract.c' line='1280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Invert'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_bytes_maketrans' mangled-name='_Py_bytes_maketrans' filepath='./Include/internal/pycore_bytes_methods.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_Positive' mangled-name='PyNumber_Positive' filepath='Objects/abstract.c' line='1264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Positive'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyObject_GC_New' mangled-name='_PyObject_GC_New' filepath='./Include/objimpl.h' line='169' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_Negative' mangled-name='PyNumber_Negative' filepath='Objects/abstract.c' line='1248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Negative'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyObject_IsInstance' mangled-name='PyObject_IsInstance' filepath='./Include/abstract.h' line='836' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_InPlacePower' mangled-name='PyNumber_InPlacePower' filepath='Objects/abstract.c' line='1233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlacePower'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1233' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1233' column='1'/>
-      <parameter type-id='type-id-100' name='z' filepath='Objects/abstract.c' line='1233' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyBuffer_FillInfo' mangled-name='PyBuffer_FillInfo' filepath='./Include/cpython/abstract.h' line='325' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_InPlaceRemainder' mangled-name='PyNumber_InPlaceRemainder' filepath='Objects/abstract.c' line='1226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceRemainder'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyBytes_FormatEx' mangled-name='_PyBytes_FormatEx' filepath='./Include/cpython/bytesobject.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_InPlaceMatrixMultiply' mangled-name='PyNumber_InPlaceMatrixMultiply' filepath='Objects/abstract.c' line='1219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceMatrixMultiply'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyEval_GetBuiltinId' mangled-name='_PyEval_GetBuiltinId' filepath='./Include/cpython/ceval.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_InPlaceMultiply' mangled-name='PyNumber_InPlaceMultiply' filepath='Objects/abstract.c' line='1190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceMultiply'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1685' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1685' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyBytes_FromHex' mangled-name='_PyBytes_FromHex' filepath='./Include/cpython/bytesobject.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_InPlaceAdd' mangled-name='PyNumber_InPlaceAdd' filepath='Objects/abstract.c' line='1169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceAdd'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1685' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1685' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyObject_LengthHint' mangled-name='PyObject_LengthHint' filepath='./Include/cpython/abstract.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_InPlaceTrueDivide' mangled-name='PyNumber_InPlaceTrueDivide' filepath='Objects/abstract.c' line='1162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceTrueDivide'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyIter_Next' mangled-name='PyIter_Next' filepath='./Include/abstract.h' line='386' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_InPlaceFloorDivide' mangled-name='PyNumber_InPlaceFloorDivide' filepath='Objects/abstract.c' line='1155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceFloorDivide'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/bytesobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyBytes_Type' type-id='type-id-182' mangled-name='PyBytes_Type' visibility='default' filepath='./Include/bytesobject.h' line='30' column='1' elf-symbol-id='PyBytes_Type'/>
+    <var-decl name='PyBytesIter_Type' type-id='type-id-182' mangled-name='PyBytesIter_Type' visibility='default' filepath='./Include/bytesobject.h' line='31' column='1' elf-symbol-id='PyBytesIter_Type'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='4416' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-298' visibility='default' filepath='./Include/cpython/bytesobject.h' line='44' column='1' id='type-id-299'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='buffer' type-id='type-id-100' visibility='default' filepath='./Include/cpython/bytesobject.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='allocated' type-id='type-id-15' visibility='default' filepath='./Include/cpython/bytesobject.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='min_size' type-id='type-id-15' visibility='default' filepath='./Include/cpython/bytesobject.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='use_bytearray' type-id='type-id-8' visibility='default' filepath='./Include/cpython/bytesobject.h' line='56' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='224'>
+        <var-decl name='overallocate' type-id='type-id-8' visibility='default' filepath='./Include/cpython/bytesobject.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='use_small_buffer' type-id='type-id-8' visibility='default' filepath='./Include/cpython/bytesobject.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <var-decl name='small_buffer' type-id='type-id-300' visibility='default' filepath='./Include/cpython/bytesobject.h' line='64' column='1'/>
+      </data-member>
+    </class-decl>
+
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='4096' id='type-id-300'>
+      <subrange length='512' type-id='type-id-33' id='type-id-301'/>
+
+    </array-type-def>
+    <typedef-decl name='_PyBytesWriter' type-id='type-id-299' filepath='./Include/cpython/bytesobject.h' line='65' column='1' id='type-id-298'/>
+    <pointer-type-def type-id='type-id-298' size-in-bits='64' id='type-id-302'/>
+    <function-decl name='_PyBytesWriter_WriteBytes' mangled-name='_PyBytesWriter_WriteBytes' filepath='Objects/bytesobject.c' line='3485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_WriteBytes'>
+      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3485' column='1'/>
+      <parameter type-id='type-id-32' name='ptr' filepath='Objects/bytesobject.c' line='3485' column='1'/>
+      <parameter type-id='type-id-32' name='bytes' filepath='Objects/bytesobject.c' line='3486' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/bytesobject.c' line='3486' column='1'/>
+      <return type-id='type-id-32'/>
     </function-decl>
-    <function-decl name='PyNumber_InPlaceSubtract' mangled-name='PyNumber_InPlaceSubtract' filepath='Objects/abstract.c' line='1151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceSubtract'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+    <function-decl name='_PyBytesWriter_Finish' mangled-name='_PyBytesWriter_Finish' filepath='Objects/bytesobject.c' line='3441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Finish'>
+      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3441' column='1'/>
+      <parameter type-id='type-id-32' name='str' filepath='Objects/bytesobject.c' line='3441' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyNumber_InPlaceRshift' mangled-name='PyNumber_InPlaceRshift' filepath='Objects/abstract.c' line='1150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceRshift'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyBytesWriter_Alloc' mangled-name='_PyBytesWriter_Alloc' filepath='Objects/bytesobject.c' line='3411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Alloc'>
+      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3411' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/bytesobject.c' line='3411' column='1'/>
+      <return type-id='type-id-32'/>
     </function-decl>
-    <function-decl name='PyNumber_InPlaceLshift' mangled-name='PyNumber_InPlaceLshift' filepath='Objects/abstract.c' line='1149' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceLshift'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyBytesWriter_Resize' mangled-name='_PyBytesWriter_Resize' filepath='Objects/bytesobject.c' line='3311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Resize'>
+      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3311' column='1'/>
+      <parameter type-id='type-id-32' name='str' filepath='Objects/bytesobject.c' line='3311' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/bytesobject.c' line='3311' column='1'/>
+      <return type-id='type-id-32'/>
     </function-decl>
-    <function-decl name='PyNumber_InPlaceAnd' mangled-name='PyNumber_InPlaceAnd' filepath='Objects/abstract.c' line='1148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceAnd'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyBytesWriter_Dealloc' mangled-name='_PyBytesWriter_Dealloc' filepath='Objects/bytesobject.c' line='3241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Dealloc'>
+      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3241' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_InPlaceXor' mangled-name='PyNumber_InPlaceXor' filepath='Objects/abstract.c' line='1147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceXor'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyBytesWriter_Init' mangled-name='_PyBytesWriter_Init' filepath='Objects/bytesobject.c' line='3230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Init'>
+      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3230' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_InPlaceOr' mangled-name='PyNumber_InPlaceOr' filepath='Objects/abstract.c' line='1146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_InPlaceOr'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <pointer-type-def type-id='type-id-100' size-in-bits='64' id='type-id-303'/>
+    <function-decl name='_PyBytes_Resize' mangled-name='_PyBytes_Resize' filepath='Objects/bytesobject.c' line='3000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytes_Resize'>
+      <parameter type-id='type-id-303' name='pv' filepath='Objects/bytesobject.c' line='3000' column='1'/>
+      <parameter type-id='type-id-15' name='newsize' filepath='Objects/bytesobject.c' line='3000' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyNumber_Power' mangled-name='PyNumber_Power' filepath='Objects/abstract.c' line='1090' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Power'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1233' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1233' column='1'/>
-      <parameter type-id='type-id-100' name='z' filepath='Objects/abstract.c' line='1233' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyBytes_ConcatAndDel' mangled-name='PyBytes_ConcatAndDel' filepath='Objects/bytesobject.c' line='2978' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_ConcatAndDel'>
+      <parameter type-id='type-id-303' name='pv' filepath='Objects/bytesobject.c' line='2978' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/bytesobject.c' line='2978' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_Remainder' mangled-name='PyNumber_Remainder' filepath='Objects/abstract.c' line='1084' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Remainder'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+    <function-decl name='_PyBytes_FromHex' mangled-name='_PyBytes_FromHex' filepath='Objects/bytesobject.c' line='2344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytes_FromHex'>
+      <parameter type-id='type-id-100' name='string' filepath='Objects/bytesobject.c' line='2344' column='1'/>
+      <parameter type-id='type-id-8' name='use_bytearray' filepath='Objects/bytesobject.c' line='2344' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyNumber_TrueDivide' mangled-name='PyNumber_TrueDivide' filepath='Objects/abstract.c' line='1078' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_TrueDivide'>
+    <function-decl name='_PyBytes_Join' mangled-name='_PyBytes_Join' filepath='Objects/bytesobject.c' line='1825' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytes_Join'>
       <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
       <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyNumber_FloorDivide' mangled-name='PyNumber_FloorDivide' filepath='Objects/abstract.c' line='1072' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_FloorDivide'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+    <function-decl name='PyBytes_Repr' mangled-name='PyBytes_Repr' filepath='Objects/bytesobject.c' line='1261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_Repr'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/bytesobject.c' line='1261' column='1'/>
+      <parameter type-id='type-id-8' name='smartquotes' filepath='Objects/bytesobject.c' line='1261' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyNumber_MatrixMultiply' mangled-name='PyNumber_MatrixMultiply' filepath='Objects/abstract.c' line='1066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_MatrixMultiply'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <pointer-type-def type-id='type-id-7' size-in-bits='64' id='type-id-304'/>
+    <function-decl name='PyBytes_AsStringAndSize' mangled-name='PyBytes_AsStringAndSize' filepath='Objects/bytesobject.c' line='1219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_AsStringAndSize'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/bytesobject.c' line='1219' column='1'/>
+      <parameter type-id='type-id-304' name='s' filepath='Objects/bytesobject.c' line='1220' column='1'/>
+      <parameter type-id='type-id-158' name='len' filepath='Objects/bytesobject.c' line='1221' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyNumber_Multiply' mangled-name='PyNumber_Multiply' filepath='Objects/abstract.c' line='1047' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Multiply'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1685' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1685' column='1'/>
+    <function-decl name='PyBytes_AsString' mangled-name='PyBytes_AsString' filepath='Objects/bytesobject.c' line='1208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_AsString'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/bytesobject.c' line='1208' column='1'/>
+      <return type-id='type-id-7'/>
+    </function-decl>
+    <function-decl name='PyBytes_Size' mangled-name='PyBytes_Size' filepath='Objects/bytesobject.c' line='1197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_Size'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/bytesobject.c' line='1197' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyBytes_DecodeEscape' mangled-name='PyBytes_DecodeEscape' filepath='Objects/bytesobject.c' line='1171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_DecodeEscape'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/bytesobject.c' line='1171' column='1'/>
+      <parameter type-id='type-id-15' name='len' filepath='Objects/bytesobject.c' line='1172' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/bytesobject.c' line='1173' column='1'/>
+      <parameter type-id='type-id-15' name='_unused_unicode' filepath='Objects/bytesobject.c' line='1174' column='1'/>
+      <parameter type-id='type-id-3' name='_unused_recode_encoding' filepath='Objects/bytesobject.c' line='1175' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyNumber_Add' mangled-name='PyNumber_Add' filepath='Objects/abstract.c' line='1016' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Add'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1685' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1685' column='1'/>
+    <function-decl name='_PyBytes_DecodeEscape' mangled-name='_PyBytes_DecodeEscape' filepath='Objects/bytesobject.c' line='1063' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytes_DecodeEscape'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/bytesobject.c' line='1063' column='1'/>
+      <parameter type-id='type-id-15' name='len' filepath='Objects/bytesobject.c' line='1064' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/bytesobject.c' line='1065' column='1'/>
+      <parameter type-id='type-id-284' name='first_invalid_escape' filepath='Objects/bytesobject.c' line='1066' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyNumber_Divmod' mangled-name='PyNumber_Divmod' filepath='Objects/abstract.c' line='1013' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Divmod'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+    <function-decl name='_PyBytes_FormatEx' mangled-name='_PyBytes_FormatEx' filepath='Objects/bytesobject.c' line='583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytes_FormatEx'>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/bytesobject.c' line='583' column='1'/>
+      <parameter type-id='type-id-15' name='format_len' filepath='Objects/bytesobject.c' line='583' column='1'/>
+      <parameter type-id='type-id-100' name='args' filepath='Objects/bytesobject.c' line='584' column='1'/>
+      <parameter type-id='type-id-8' name='use_bytearray' filepath='Objects/bytesobject.c' line='584' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyNumber_Subtract' mangled-name='PyNumber_Subtract' filepath='Objects/abstract.c' line='1012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Subtract'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+    <function-decl name='PyBytes_FromFormat' mangled-name='PyBytes_FromFormat' filepath='Objects/bytesobject.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_FromFormat'>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/bytesobject.c' line='357' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyNumber_Rshift' mangled-name='PyNumber_Rshift' filepath='Objects/abstract.c' line='1011' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Rshift'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+    <class-decl name='__va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-305'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='gp_offset' type-id='type-id-107' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='fp_offset' type-id='type-id-107' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='overflow_arg_area' type-id='type-id-32' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='reg_save_area' type-id='type-id-32' visibility='default'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-305' size-in-bits='64' id='type-id-306'/>
+    <function-decl name='PyBytes_FromFormatV' mangled-name='PyBytes_FromFormatV' filepath='Objects/bytesobject.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_FromFormatV'>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/bytesobject.c' line='168' column='1'/>
+      <parameter type-id='type-id-306' name='vargs' filepath='Objects/bytesobject.c' line='168' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyNumber_Lshift' mangled-name='PyNumber_Lshift' filepath='Objects/abstract.c' line='1010' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Lshift'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+    <function-decl name='PyBytes_FromString' mangled-name='PyBytes_FromString' filepath='Objects/bytesobject.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_FromString'>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/bytesobject.c' line='128' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyNumber_And' mangled-name='PyNumber_And' filepath='Objects/abstract.c' line='1009' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_And'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+    <function-decl name='PyBytes_FromStringAndSize' mangled-name='PyBytes_FromStringAndSize' filepath='Objects/bytesobject.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_FromStringAndSize'>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/bytesobject.c' line='97' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/bytesobject.c' line='97' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyNumber_Xor' mangled-name='PyNumber_Xor' filepath='Objects/abstract.c' line='1008' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Xor'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyBytes_Concat' mangled-name='PyBytes_Concat' filepath='Objects/bytesobject.c' line='2929' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_Concat'>
+      <parameter type-id='type-id-303' name='pv' filepath='Objects/bytesobject.c' line='2929' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/bytesobject.c' line='2929' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyNumber_Or' mangled-name='PyNumber_Or' filepath='Objects/abstract.c' line='1007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Or'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
+    <function-decl name='_PyBytesWriter_Prepare' mangled-name='_PyBytesWriter_Prepare' filepath='Objects/bytesobject.c' line='3381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Prepare'>
+      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3381' column='1'/>
+      <parameter type-id='type-id-32' name='str' filepath='Objects/bytesobject.c' line='3381' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/bytesobject.c' line='3381' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyBytes_FromObject' mangled-name='PyBytes_FromObject' filepath='Objects/bytesobject.c' line='2805' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_FromObject'>
+      <parameter type-id='type-id-100' name='x' filepath='Objects/bytesobject.c' line='2805' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyNumber_Check' mangled-name='PyNumber_Check' filepath='Objects/abstract.c' line='820' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNumber_Check'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyByteArray_Resize' mangled-name='PyByteArray_Resize' filepath='./Include/bytearrayobject.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_Format' mangled-name='PyObject_Format' filepath='Objects/abstract.c' line='759' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Format'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='759' column='1'/>
-      <parameter type-id='type-id-100' name='format_spec' filepath='Objects/abstract.c' line='759' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_NewReference' mangled-name='_Py_NewReference' filepath='./Include/cpython/object.h' line='9' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyBuffer_Release' mangled-name='PyBuffer_Release' filepath='Objects/abstract.c' line='745' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_Release'>
-      <parameter type-id='type-id-160' name='view' filepath='Objects/abstract.c' line='745' column='1'/>
+    <function-decl name='_Py_HashBytes' mangled-name='_Py_HashBytes' filepath='./Include/pyhash.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyBuffer_FillInfo' mangled-name='PyBuffer_FillInfo' filepath='Objects/abstract.c' line='706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_FillInfo'>
-      <parameter type-id='type-id-160' name='view' filepath='Objects/abstract.c' line='706' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='706' column='1'/>
-      <parameter type-id='type-id-32' name='buf' filepath='Objects/abstract.c' line='706' column='1'/>
-      <parameter type-id='type-id-15' name='len' filepath='Objects/abstract.c' line='706' column='1'/>
-      <parameter type-id='type-id-8' name='readonly' filepath='Objects/abstract.c' line='707' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Objects/abstract.c' line='707' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyErr_BadArgument' mangled-name='PyErr_BadArgument' filepath='./Include/pyerrors.h' line='160' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyBuffer_FillContiguousStrides' mangled-name='PyBuffer_FillContiguousStrides' filepath='Objects/abstract.c' line='682' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_FillContiguousStrides'>
-      <parameter type-id='type-id-8' name='nd' filepath='Objects/abstract.c' line='682' column='1'/>
-      <parameter type-id='type-id-158' name='shape' filepath='Objects/abstract.c' line='682' column='1'/>
-      <parameter type-id='type-id-158' name='strides' filepath='Objects/abstract.c' line='683' column='1'/>
-      <parameter type-id='type-id-8' name='itemsize' filepath='Objects/abstract.c' line='683' column='1'/>
-      <parameter type-id='type-id-1' name='fort' filepath='Objects/abstract.c' line='684' column='1'/>
+    <function-decl name='PyType_GetFlags' mangled-name='PyType_GetFlags' filepath='./Include/object.h' line='231' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_CopyData' mangled-name='PyObject_CopyData' filepath='Objects/abstract.c' line='611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CopyData'>
-      <parameter type-id='type-id-100' name='dest' filepath='Objects/abstract.c' line='611' column='1'/>
-      <parameter type-id='type-id-100' name='src' filepath='Objects/abstract.c' line='611' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyObject_GetItem' mangled-name='PyObject_GetItem' filepath='./Include/abstract.h' line='289' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyBuffer_FromContiguous' mangled-name='PyBuffer_FromContiguous' filepath='Objects/abstract.c' line='560' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_FromContiguous'>
-      <parameter type-id='type-id-160' name='view' filepath='Objects/abstract.c' line='560' column='1'/>
-      <parameter type-id='type-id-32' name='buf' filepath='Objects/abstract.c' line='560' column='1'/>
-      <parameter type-id='type-id-15' name='len' filepath='Objects/abstract.c' line='560' column='1'/>
-      <parameter type-id='type-id-1' name='fort' filepath='Objects/abstract.c' line='560' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyLong_FormatBytesWriter' mangled-name='_PyLong_FormatBytesWriter' filepath='./Include/longobject.h' line='203' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyBuffer_SizeFromFormat' mangled-name='PyBuffer_SizeFromFormat' filepath='Objects/abstract.c' line='518' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_SizeFromFormat'>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/abstract.c' line='518' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyTuple_GetItem' mangled-name='PyTuple_GetItem' filepath='./Include/tupleobject.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <qualified-type-def type-id='type-id-15' const='yes' id='type-id-281'/>
-    <pointer-type-def type-id='type-id-281' size-in-bits='64' id='type-id-282'/>
-    <function-decl name='_Py_add_one_to_index_C' mangled-name='_Py_add_one_to_index_C' filepath='Objects/abstract.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_add_one_to_index_C'>
-      <parameter type-id='type-id-8' name='nd' filepath='Objects/abstract.c' line='502' column='1'/>
-      <parameter type-id='type-id-158' name='index' filepath='Objects/abstract.c' line='502' column='1'/>
-      <parameter type-id='type-id-282' name='shape' filepath='Objects/abstract.c' line='502' column='1'/>
+    <function-decl name='_PyUnicode_FormatLong' mangled-name='_PyUnicode_FormatLong' filepath='./Include/cpython/unicodeobject.h' line='1215' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_add_one_to_index_F' mangled-name='_Py_add_one_to_index_F' filepath='Objects/abstract.c' line='486' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_add_one_to_index_F'>
-      <parameter type-id='type-id-8' name='nd' filepath='Objects/abstract.c' line='502' column='1'/>
-      <parameter type-id='type-id-158' name='index' filepath='Objects/abstract.c' line='502' column='1'/>
-      <parameter type-id='type-id-282' name='shape' filepath='Objects/abstract.c' line='502' column='1'/>
+    <function-decl name='PyNumber_Long' mangled-name='PyNumber_Long' filepath='./Include/abstract.h' line='515' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyBuffer_GetPointer' mangled-name='PyBuffer_GetPointer' filepath='Objects/abstract.c' line='470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_GetPointer'>
-      <parameter type-id='type-id-160' name='view' filepath='Objects/abstract.c' line='470' column='1'/>
-      <parameter type-id='type-id-158' name='indices' filepath='Objects/abstract.c' line='470' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='PyLong_AsLongAndOverflow' mangled-name='PyLong_AsLongAndOverflow' filepath='./Include/longobject.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <qualified-type-def type-id='type-id-159' const='yes' id='type-id-283'/>
-    <pointer-type-def type-id='type-id-283' size-in-bits='64' id='type-id-284'/>
-    <function-decl name='PyBuffer_IsContiguous' mangled-name='PyBuffer_IsContiguous' filepath='Objects/abstract.c' line='454' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_IsContiguous'>
-      <parameter type-id='type-id-284' name='view' filepath='Objects/abstract.c' line='454' column='1'/>
-      <parameter type-id='type-id-1' name='order' filepath='Objects/abstract.c' line='454' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyObject_ASCII' mangled-name='PyObject_ASCII' filepath='./Include/object.h' line='243' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_GetBuffer' mangled-name='PyObject_GetBuffer' filepath='Objects/abstract.c' line='373' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetBuffer'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='373' column='1'/>
-      <parameter type-id='type-id-160' name='view' filepath='Objects/abstract.c' line='373' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Objects/abstract.c' line='373' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyFloat_AsDouble' mangled-name='PyFloat_AsDouble' filepath='./Include/floatobject.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-32' size-in-bits='64' id='type-id-285'/>
-    <function-decl name='PyObject_AsWriteBuffer' mangled-name='PyObject_AsWriteBuffer' filepath='Objects/abstract.c' line='344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_AsWriteBuffer'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='344' column='1'/>
-      <parameter type-id='type-id-285' name='buffer' filepath='Objects/abstract.c' line='345' column='1'/>
-      <parameter type-id='type-id-158' name='buffer_len' filepath='Objects/abstract.c' line='346' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyOS_double_to_string' mangled-name='PyOS_double_to_string' filepath='./Include/pystrtod.h' line='15' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_AsReadBuffer' mangled-name='PyObject_AsReadBuffer' filepath='Objects/abstract.c' line='337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_AsReadBuffer'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='337' column='1'/>
-      <parameter type-id='type-id-285' name='buffer' filepath='Objects/abstract.c' line='338' column='1'/>
-      <parameter type-id='type-id-158' name='buffer_len' filepath='Objects/abstract.c' line='339' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='__builtin___memmove_chk' mangled-name='__memmove_chk' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-3' size-in-bits='64' id='type-id-286'/>
-    <function-decl name='PyObject_AsCharBuffer' mangled-name='PyObject_AsCharBuffer' filepath='Objects/abstract.c' line='330' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_AsCharBuffer'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='330' column='1'/>
-      <parameter type-id='type-id-286' name='buffer' filepath='Objects/abstract.c' line='331' column='1'/>
-      <parameter type-id='type-id-158' name='buffer_len' filepath='Objects/abstract.c' line='332' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyObject_Calloc' mangled-name='PyObject_Calloc' filepath='./Include/objimpl.h' line='99' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_CheckReadBuffer' mangled-name='PyObject_CheckReadBuffer' filepath='Objects/abstract.c' line='295' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CheckReadBuffer'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='295' column='1'/>
-      <return type-id='type-id-8'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/call.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_PyStack_AsDict' mangled-name='_PyStack_AsDict' filepath='Objects/call.c' line='909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyStack_AsDict'>
+      <parameter type-id='type-id-190' name='values' filepath='Objects/call.c' line='909' column='1'/>
+      <parameter type-id='type-id-100' name='kwnames' filepath='Objects/call.c' line='909' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyObject_CheckBuffer' mangled-name='PyObject_CheckBuffer' filepath='Objects/abstract.c' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CheckBuffer'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='284' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyObject_CallFunctionObjArgs' mangled-name='PyObject_CallFunctionObjArgs' filepath='Objects/call.c' line='892' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallFunctionObjArgs'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='892' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyObject_DelItemString' mangled-name='PyObject_DelItemString' filepath='Objects/abstract.c' line='264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_DelItemString'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='264' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='264' column='1'/>
-      <return type-id='type-id-8'/>
+    <class-decl name='_Py_Identifier' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/cpython/object.h' line='45' column='1' id='type-id-307'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='next' type-id='type-id-308' visibility='default' filepath='./Include/cpython/object.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='string' type-id='type-id-3' visibility='default' filepath='./Include/cpython/object.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='object' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='48' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-307' size-in-bits='64' id='type-id-308'/>
+    <function-decl name='_PyObject_CallMethodIdObjArgs' mangled-name='_PyObject_CallMethodIdObjArgs' filepath='Objects/call.c' line='861' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallMethodIdObjArgs'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='861' column='1'/>
+      <parameter type-id='type-id-308' name='name' filepath='Objects/call.c' line='862' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyObject_DelItem' mangled-name='PyObject_DelItem' filepath='Objects/abstract.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_DelItem'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='232' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/abstract.c' line='232' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyObject_CallMethodObjArgs' mangled-name='PyObject_CallMethodObjArgs' filepath='Objects/call.c' line='836' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallMethodObjArgs'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='836' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/call.c' line='836' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyObject_SetItem' mangled-name='PyObject_SetItem' filepath='Objects/abstract.c' line='200' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SetItem'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='200' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/abstract.c' line='200' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Objects/abstract.c' line='200' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyObject_VectorcallMethod' mangled-name='PyObject_VectorcallMethod' filepath='Objects/call.c' line='802' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_VectorcallMethod'>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/call.c' line='802' column='1'/>
+      <parameter type-id='type-id-190' name='args' filepath='Objects/call.c' line='802' column='1'/>
+      <parameter type-id='type-id-191' name='nargsf' filepath='Objects/call.c' line='803' column='1'/>
+      <parameter type-id='type-id-100' name='kwnames' filepath='Objects/call.c' line='803' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyObject_GetItem' mangled-name='PyObject_GetItem' filepath='Objects/abstract.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetItem'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='146' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/abstract.c' line='146' column='1'/>
+    <typedef-decl name='_Py_Identifier' type-id='type-id-307' filepath='./Include/cpython/object.h' line='49' column='1' id='type-id-309'/>
+    <function-decl name='_PyObject_CallMethodId_SizeT' mangled-name='_PyObject_CallMethodId_SizeT' filepath='Objects/call.c' line='718' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallMethodId_SizeT'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='718' column='1'/>
+      <parameter type-id='type-id-308' name='name' filepath='Objects/call.c' line='718' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='719' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyObject_LengthHint' mangled-name='PyObject_LengthHint' filepath='Objects/abstract.c' line='89' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_LengthHint'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='89' column='1'/>
-      <parameter type-id='type-id-15' name='defaultvalue' filepath='Objects/abstract.c' line='89' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyObject_CallMethod_SizeT' mangled-name='_PyObject_CallMethod_SizeT' filepath='Objects/call.c' line='694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallMethod_SizeT'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='694' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/call.c' line='694' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='695' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyObject_HasLen' mangled-name='_PyObject_HasLen' filepath='Objects/abstract.c' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_HasLen'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyObject_CallMethodId' mangled-name='_PyObject_CallMethodId' filepath='Objects/call.c' line='670' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallMethodId'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='718' column='1'/>
+      <parameter type-id='type-id-308' name='name' filepath='Objects/call.c' line='718' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='719' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyObject_Length' mangled-name='PyObject_Length' filepath='Objects/abstract.c' line='70' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Length'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2203' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyEval_CallMethod' mangled-name='PyEval_CallMethod' filepath='Objects/call.c' line='647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_CallMethod'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='694' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/call.c' line='694' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='695' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyObject_Size' mangled-name='PyObject_Size' filepath='Objects/abstract.c' line='49' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Size'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2176' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyObject_CallMethod' mangled-name='PyObject_CallMethod' filepath='Objects/call.c' line='620' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallMethod'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='694' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/call.c' line='694' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='695' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyObject_Type' mangled-name='PyObject_Type' filepath='Objects/abstract.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Type'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
+    <function-decl name='_PyObject_CallFunction_SizeT' mangled-name='_PyObject_CallFunction_SizeT' filepath='Objects/call.c' line='591' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallFunction_SizeT'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='591' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='591' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/accu.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-287' visibility='default' filepath='./Include/internal/pycore_accu.h' line='24' column='1' id='type-id-288'>
+    <function-decl name='PyEval_CallFunction' mangled-name='PyEval_CallFunction' filepath='Objects/call.c' line='576' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_CallFunction'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='591' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='591' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_CallFunction' mangled-name='PyObject_CallFunction' filepath='Objects/call.c' line='558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallFunction'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='591' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='591' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <class-decl name='_ts' size-in-bits='2112' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='51' column='1' id='type-id-310'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='prev' type-id='type-id-232' visibility='default' filepath='./Include/cpython/pystate.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='next' type-id='type-id-232' visibility='default' filepath='./Include/cpython/pystate.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='interp' type-id='type-id-311' visibility='default' filepath='./Include/cpython/pystate.h' line='56' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='frame' type-id='type-id-312' visibility='default' filepath='./Include/cpython/pystate.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='recursion_depth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <var-decl name='overflowed' type-id='type-id-1' visibility='default' filepath='./Include/cpython/pystate.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='296'>
+        <var-decl name='recursion_critical' type-id='type-id-1' visibility='default' filepath='./Include/cpython/pystate.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='stackcheck_counter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='352'>
+        <var-decl name='tracing' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='use_tracing' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='c_profilefunc' type-id='type-id-235' visibility='default' filepath='./Include/cpython/pystate.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='c_tracefunc' type-id='type-id-235' visibility='default' filepath='./Include/cpython/pystate.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='c_profileobj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='c_traceobj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='76' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='curexc_type' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='79' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='curexc_value' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='80' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='curexc_traceback' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='81' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='exc_state' type-id='type-id-236' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='exc_info' type-id='type-id-237' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='dict' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='gilstate_counter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='async_exc' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='thread_id' type-id='type-id-33' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='trash_delete_nesting' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='trash_delete_later' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='100' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1600'>
+        <var-decl name='on_delete' type-id='type-id-188' visibility='default' filepath='./Include/cpython/pystate.h' line='125' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1664'>
+        <var-decl name='on_delete_data' type-id='type-id-32' visibility='default' filepath='./Include/cpython/pystate.h' line='126' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='coroutine_origin_tracking_depth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='128' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1792'>
+        <var-decl name='async_gen_firstiter' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='130' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1856'>
+        <var-decl name='async_gen_finalizer' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='131' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1920'>
+        <var-decl name='context' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='133' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1984'>
+        <var-decl name='context_ver' type-id='type-id-238' visibility='default' filepath='./Include/cpython/pystate.h' line='134' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2048'>
+        <var-decl name='id' type-id='type-id-238' visibility='default' filepath='./Include/cpython/pystate.h' line='137' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_is' size-in-bits='45184' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='71' column='1' id='type-id-313'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='next' type-id='type-id-314' visibility='default' filepath='./Include/internal/pycore_interp.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='tstate_head' type-id='type-id-232' visibility='default' filepath='./Include/internal/pycore_interp.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='runtime' type-id='type-id-315' visibility='default' filepath='./Include/internal/pycore_interp.h' line='79' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='id' type-id='type-id-316' visibility='default' filepath='./Include/internal/pycore_interp.h' line='81' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='id_refcount' type-id='type-id-316' visibility='default' filepath='./Include/internal/pycore_interp.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='requires_idref' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='83' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='id_mutex' type-id='type-id-317' visibility='default' filepath='./Include/internal/pycore_interp.h' line='84' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='finalizing' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='ceval' type-id='type-id-318' visibility='default' filepath='./Include/internal/pycore_interp.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4928'>
+        <var-decl name='gc' type-id='type-id-319' visibility='default' filepath='./Include/internal/pycore_interp.h' line='89' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6848'>
+        <var-decl name='modules' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='91' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6912'>
+        <var-decl name='modules_by_index' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='6976'>
+        <var-decl name='sysdict' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='93' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7040'>
+        <var-decl name='builtins' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7104'>
+        <var-decl name='importlib' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7168'>
+        <var-decl name='num_threads' type-id='type-id-12' visibility='default' filepath='./Include/internal/pycore_interp.h' line='98' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7232'>
+        <var-decl name='pythread_stacksize' type-id='type-id-191' visibility='default' filepath='./Include/internal/pycore_interp.h' line='103' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7296'>
+        <var-decl name='codec_search_path' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='105' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7360'>
+        <var-decl name='codec_search_cache' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='106' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7424'>
+        <var-decl name='codec_error_registry' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='107' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7488'>
+        <var-decl name='codecs_initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='108' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7552'>
+        <var-decl name='unicode' type-id='type-id-320' visibility='default' filepath='./Include/internal/pycore_interp.h' line='110' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7808'>
+        <var-decl name='config' type-id='type-id-321' visibility='default' filepath='./Include/internal/pycore_interp.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='10944'>
+        <var-decl name='dlopenflags' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='11008'>
+        <var-decl name='dict' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='117' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='11072'>
+        <var-decl name='builtins_copy' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='119' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='11136'>
+        <var-decl name='import_func' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='120' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='11200'>
+        <var-decl name='eval_frame' type-id='type-id-322' visibility='default' filepath='./Include/internal/pycore_interp.h' line='122' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='11264'>
+        <var-decl name='co_extra_user_count' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='124' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='11328'>
+        <var-decl name='co_extra_freefuncs' type-id='type-id-323' visibility='default' filepath='./Include/internal/pycore_interp.h' line='125' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='27648'>
+        <var-decl name='before_forkers' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='128' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='27712'>
+        <var-decl name='after_forkers_parent' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='129' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='27776'>
+        <var-decl name='after_forkers_child' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='130' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='27840'>
+        <var-decl name='pyexitfunc' type-id='type-id-112' visibility='default' filepath='./Include/internal/pycore_interp.h' line='133' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='27904'>
+        <var-decl name='pyexitmodule' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='134' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='27968'>
+        <var-decl name='tstate_next_unique_id' type-id='type-id-238' visibility='default' filepath='./Include/internal/pycore_interp.h' line='136' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='28032'>
+        <var-decl name='warnings' type-id='type-id-324' visibility='default' filepath='./Include/internal/pycore_interp.h' line='138' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='28288'>
+        <var-decl name='audit_hooks' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='140' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='28352'>
+        <var-decl name='parser' type-id='type-id-325' visibility='default' filepath='./Include/internal/pycore_interp.h' line='147' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='28416'>
+        <var-decl name='small_ints' type-id='type-id-326' visibility='default' filepath='./Include/internal/pycore_interp.h' line='155' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-313' size-in-bits='64' id='type-id-314'/>
+    <class-decl name='pyruntimestate' size-in-bits='5248' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='52' column='1' id='type-id-327'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='preinitializing' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='preinitialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='core_initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='_finalizing' type-id='type-id-328' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='interpreters' type-id='type-id-329' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='xidregistry' type-id='type-id-330' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='90' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='main_thread' type-id='type-id-33' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='exitfuncs' type-id='type-id-331' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2688'>
+        <var-decl name='nexitfuncs' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2752'>
+        <var-decl name='ceval' type-id='type-id-332' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='98' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4480'>
+        <var-decl name='gilstate' type-id='type-id-333' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4736'>
+        <var-decl name='preconfig' type-id='type-id-334' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='101' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5056'>
+        <var-decl name='open_code_hook' type-id='type-id-335' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='103' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5120'>
+        <var-decl name='open_code_userdata' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='104' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5184'>
+        <var-decl name='audit_hook_head' type-id='type-id-336' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='105' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_Py_atomic_address' size-in-bits='64' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_atomic.h' line='45' column='1' id='type-id-337'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='_value' type-id='type-id-338' visibility='default' filepath='./Include/internal/pycore_atomic.h' line='46' column='1'/>
+      </data-member>
+    </class-decl>
+    <type-decl name='atomic_uintptr_t' size-in-bits='64' id='type-id-338'/>
+    <typedef-decl name='_Py_atomic_address' type-id='type-id-337' filepath='./Include/internal/pycore_atomic.h' line='47' column='1' id='type-id-328'/>
+    <class-decl name='pyinterpreters' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='72' column='1' id='type-id-329'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='large' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_accu.h' line='25' column='1'/>
+        <var-decl name='mutex' type-id='type-id-317' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='73' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='small' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_accu.h' line='26' column='1'/>
+        <var-decl name='head' type-id='type-id-311' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='main' type-id='type-id-311' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='next_id' type-id='type-id-316' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='84' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='_PyAccu' type-id='type-id-288' filepath='./Include/internal/pycore_accu.h' line='27' column='1' id='type-id-287'/>
-    <pointer-type-def type-id='type-id-287' size-in-bits='64' id='type-id-289'/>
-    <function-decl name='_PyAccu_Destroy' mangled-name='_PyAccu_Destroy' filepath='Objects/accu.c' line='111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAccu_Destroy'>
-      <parameter type-id='type-id-289' name='acc' filepath='Objects/accu.c' line='111' column='1'/>
-      <return type-id='type-id-4'/>
-    </function-decl>
-    <function-decl name='_PyAccu_Finish' mangled-name='_PyAccu_Finish' filepath='Objects/accu.c' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAccu_Finish'>
-      <parameter type-id='type-id-289' name='acc' filepath='Objects/accu.c' line='93' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='_PyAccu_FinishAsList' mangled-name='_PyAccu_FinishAsList' filepath='Objects/accu.c' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAccu_FinishAsList'>
-      <parameter type-id='type-id-289' name='acc' filepath='Objects/accu.c' line='76' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='_PyAccu_Accumulate' mangled-name='_PyAccu_Accumulate' filepath='Objects/accu.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAccu_Accumulate'>
-      <parameter type-id='type-id-289' name='acc' filepath='Objects/accu.c' line='55' column='1'/>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/accu.c' line='55' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyAccu_Init' mangled-name='_PyAccu_Init' filepath='Objects/accu.c' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAccu_Init'>
-      <parameter type-id='type-id-289' name='acc' filepath='Objects/accu.c' line='18' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/boolobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyBool_Type' type-id='type-id-182' mangled-name='PyBool_Type' visibility='default' filepath='./Include/boolobject.h' line='10' column='1' elf-symbol-id='PyBool_Type'/>
-    <class-decl name='_longobject' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/longintrepr.h' line='85' column='1' id='type-id-290'>
+    <typedef-decl name='PyThread_type_lock' type-id='type-id-32' filepath='./Include/pythread.h' line='5' column='1' id='type-id-317'/>
+    <typedef-decl name='PyInterpreterState' type-id='type-id-313' filepath='./Include/pystate.h' line='22' column='1' id='type-id-339'/>
+    <pointer-type-def type-id='type-id-339' size-in-bits='64' id='type-id-311'/>
+    <typedef-decl name='__int64_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='44' column='1' id='type-id-340'/>
+    <typedef-decl name='int64_t' type-id='type-id-340' filepath='/usr/include/x86_64-linux-gnu/bits/stdint-intn.h' line='27' column='1' id='type-id-316'/>
+    <class-decl name='_xidregistry' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='87' column='1' id='type-id-330'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-77' visibility='default' filepath='./Include/longintrepr.h' line='86' column='1'/>
+        <var-decl name='mutex' type-id='type-id-317' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='88' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='head' type-id='type-id-341' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='89' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_xidregitem' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='176' column='1' id='type-id-342'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='cls' type-id='type-id-75' visibility='default' filepath='./Include/internal/pycore_interp.h' line='177' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='getdata' type-id='type-id-343' visibility='default' filepath='./Include/internal/pycore_interp.h' line='178' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='next' type-id='type-id-341' visibility='default' filepath='./Include/internal/pycore_interp.h' line='179' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_xid' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='209' column='1' id='type-id-344'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='data' type-id='type-id-32' visibility='default' filepath='./Include/cpython/pystate.h' line='213' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='obj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='220' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='interp' type-id='type-id-316' visibility='default' filepath='./Include/cpython/pystate.h' line='230' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='ob_digit' type-id='type-id-291' visibility='default' filepath='./Include/longintrepr.h' line='87' column='1'/>
+        <var-decl name='new_object' type-id='type-id-345' visibility='default' filepath='./Include/cpython/pystate.h' line='235' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='free' type-id='type-id-188' visibility='default' filepath='./Include/cpython/pystate.h' line='245' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='__uint32_t' type-id='type-id-107' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='42' column='1' id='type-id-292'/>
-    <typedef-decl name='uint32_t' type-id='type-id-292' filepath='/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h' line='26' column='1' id='type-id-293'/>
-    <typedef-decl name='digit' type-id='type-id-293' filepath='./Include/longintrepr.h' line='45' column='1' id='type-id-294'/>
+    <pointer-type-def type-id='type-id-344' size-in-bits='64' id='type-id-346'/>
+    <pointer-type-def type-id='type-id-347' size-in-bits='64' id='type-id-345'/>
+    <pointer-type-def type-id='type-id-348' size-in-bits='64' id='type-id-349'/>
+    <typedef-decl name='crossinterpdatafunc' type-id='type-id-349' filepath='./Include/cpython/pystate.h' line='256' column='1' id='type-id-343'/>
+    <pointer-type-def type-id='type-id-342' size-in-bits='64' id='type-id-341'/>
+    <pointer-type-def type-id='type-id-350' size-in-bits='64' id='type-id-351'/>
 
-    <array-type-def dimensions='1' type-id='type-id-294' size-in-bits='32' id='type-id-291'>
-      <subrange length='1' type-id='type-id-33' id='type-id-34'/>
+    <array-type-def dimensions='1' type-id='type-id-351' size-in-bits='2048' id='type-id-331'>
+      <subrange length='32' type-id='type-id-33' id='type-id-352'/>
 
     </array-type-def>
-    <var-decl name='_Py_FalseStruct' type-id='type-id-290' mangled-name='_Py_FalseStruct' visibility='default' filepath='./Include/boolobject.h' line='18' column='1' elf-symbol-id='_Py_FalseStruct'/>
-    <var-decl name='_Py_TrueStruct' type-id='type-id-290' mangled-name='_Py_TrueStruct' visibility='default' filepath='./Include/boolobject.h' line='18' column='1' elf-symbol-id='_Py_TrueStruct'/>
-    <function-decl name='PyBool_FromLong' mangled-name='PyBool_FromLong' filepath='Objects/boolobject.c' line='28' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBool_FromLong'>
-      <parameter type-id='type-id-12' name='ok' filepath='Objects/boolobject.c' line='28' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/bytes_methods.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='_ceval_runtime_state' size-in-bits='1728' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='16' column='1' id='type-id-332'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='signals_pending' type-id='type-id-353' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='21' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='gil' type-id='type-id-354' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='22' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_Py_atomic_int' size-in-bits='32' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_atomic.h' line='49' column='1' id='type-id-355'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='_value' type-id='type-id-356' visibility='default' filepath='./Include/internal/pycore_atomic.h' line='50' column='1'/>
+      </data-member>
+    </class-decl>
+    <type-decl name='atomic_int' size-in-bits='32' id='type-id-356'/>
+    <typedef-decl name='_Py_atomic_int' type-id='type-id-355' filepath='./Include/internal/pycore_atomic.h' line='51' column='1' id='type-id-353'/>
+    <class-decl name='_gil_runtime_state' size-in-bits='1664' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_gil.h' line='23' column='1' id='type-id-354'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='interval' type-id='type-id-33' visibility='default' filepath='./Include/internal/pycore_gil.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='last_holder' type-id='type-id-328' visibility='default' filepath='./Include/internal/pycore_gil.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='locked' type-id='type-id-353' visibility='default' filepath='./Include/internal/pycore_gil.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='switch_number' type-id='type-id-33' visibility='default' filepath='./Include/internal/pycore_gil.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='cond' type-id='type-id-357' visibility='default' filepath='./Include/internal/pycore_gil.h' line='37' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='mutex' type-id='type-id-358' visibility='default' filepath='./Include/internal/pycore_gil.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='switch_cond' type-id='type-id-357' visibility='default' filepath='./Include/internal/pycore_gil.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='switch_mutex' type-id='type-id-358' visibility='default' filepath='./Include/internal/pycore_gil.h' line='43' column='1'/>
+      </data-member>
+    </class-decl>
+    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='75' column='1' id='type-id-359'>
+      <data-member access='private'>
+        <var-decl name='__data' type-id='type-id-360' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='77' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='__size' type-id='type-id-361' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='__align' type-id='type-id-362' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='79' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='92' column='1' id='type-id-360'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='' type-id='type-id-363' visibility='default'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='__g_refs' type-id='type-id-364' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='112' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='__g_size' type-id='type-id-364' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='113' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='__g1_orig_size' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <var-decl name='__wrefs' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='__g_signals' type-id='type-id-364' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='94' column='1' id='type-id-363'>
+      <data-member access='private'>
+        <var-decl name='__wseq' type-id='type-id-365' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='__wseq32' type-id='type-id-366' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='101' column='1'/>
+      </data-member>
+    </union-decl>
+    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-365'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='97' column='1' id='type-id-366'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='__low' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='__high' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='100' column='1'/>
+      </data-member>
+    </class-decl>
 
-    <array-type-def dimensions='1' type-id='type-id-2' size-in-bits='infinite' id='type-id-295'>
-      <subrange length='infinite' id='type-id-18'/>
+    <array-type-def dimensions='1' type-id='type-id-107' size-in-bits='64' id='type-id-364'>
+      <subrange length='2' type-id='type-id-33' id='type-id-367'/>
 
     </array-type-def>
-    <qualified-type-def type-id='type-id-295' const='yes' id='type-id-296'/>
-    <var-decl name='_Py_isspace__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='42' column='1'/>
-    <var-decl name='_Py_isalpha__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='43' column='1'/>
-    <var-decl name='_Py_isalnum__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='44' column='1'/>
-    <var-decl name='_Py_isascii__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='45' column='1'/>
-    <var-decl name='_Py_isdigit__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='46' column='1'/>
-    <var-decl name='_Py_islower__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='47' column='1'/>
-    <var-decl name='_Py_isupper__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='48' column='1'/>
-    <var-decl name='_Py_istitle__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='49' column='1'/>
-    <var-decl name='_Py_lower__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='50' column='1'/>
-    <var-decl name='_Py_upper__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='51' column='1'/>
-    <var-decl name='_Py_title__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='52' column='1'/>
-    <var-decl name='_Py_capitalize__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='53' column='1'/>
-    <var-decl name='_Py_swapcase__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='54' column='1'/>
-    <var-decl name='_Py_maketrans__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='62' column='1'/>
-    <var-decl name='_Py_find__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='56' column='1'/>
-    <var-decl name='_Py_index__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='57' column='1'/>
-    <var-decl name='_Py_rfind__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='58' column='1'/>
-    <var-decl name='_Py_rindex__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='59' column='1'/>
-    <var-decl name='_Py_count__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='55' column='1'/>
-    <var-decl name='_Py_startswith__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='60' column='1'/>
-    <var-decl name='_Py_endswith__doc__' type-id='type-id-296' visibility='default' filepath='./Include/internal/pycore_bytes_methods.h' line='61' column='1'/>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/bytearrayobject.c' comp-dir-path='/src' language='LANG_C99'>
 
-    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='infinite' id='type-id-297'>
-      <subrange length='infinite' id='type-id-18'/>
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-361'>
+      <subrange length='48' type-id='type-id-33' id='type-id-368'/>
+
+    </array-type-def>
+    <type-decl name='long long int' size-in-bits='64' id='type-id-362'/>
+    <typedef-decl name='pthread_cond_t' type-id='type-id-359' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='80' column='1' id='type-id-357'/>
+    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='67' column='1' id='type-id-369'>
+      <data-member access='private'>
+        <var-decl name='__data' type-id='type-id-370' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='__size' type-id='type-id-371' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='__align' type-id='type-id-12' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='71' column='1'/>
+      </data-member>
+    </union-decl>
+    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='22' column='1' id='type-id-370'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='__lock' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='__count' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='__owner' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='__nusers' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='__kind' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='__spins' type-id='type-id-6' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='176'>
+        <var-decl name='__elision' type-id='type-id-6' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='35' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='__list' type-id='type-id-372' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='36' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='49' column='1' id='type-id-373'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='__prev' type-id='type-id-374' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='__next' type-id='type-id-374' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='52' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-373' size-in-bits='64' id='type-id-374'/>
+    <typedef-decl name='__pthread_list_t' type-id='type-id-373' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='53' column='1' id='type-id-372'/>
+
+    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-371'>
+      <subrange length='40' type-id='type-id-33' id='type-id-375'/>
 
     </array-type-def>
-    <var-decl name='_PyByteArray_empty_string' type-id='type-id-297' mangled-name='_PyByteArray_empty_string' visibility='default' filepath='./Include/cpython/bytearrayobject.h' line='20' column='1' elf-symbol-id='_PyByteArray_empty_string'/>
-    <var-decl name='PyByteArray_Type' type-id='type-id-182' mangled-name='PyByteArray_Type' visibility='default' filepath='./Include/bytearrayobject.h' line='22' column='1' elf-symbol-id='PyByteArray_Type'/>
-    <var-decl name='PyByteArrayIter_Type' type-id='type-id-182' mangled-name='PyByteArrayIter_Type' visibility='default' filepath='./Include/bytearrayobject.h' line='23' column='1' elf-symbol-id='PyByteArrayIter_Type'/>
-    <function-decl name='PyByteArray_Concat' mangled-name='PyByteArray_Concat' filepath='Objects/bytearrayobject.c' line='255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_Concat'>
-      <parameter type-id='type-id-100' name='a' filepath='Objects/bytearrayobject.c' line='255' column='1'/>
-      <parameter type-id='type-id-100' name='b' filepath='Objects/bytearrayobject.c' line='255' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyByteArray_Resize' mangled-name='PyByteArray_Resize' filepath='Objects/bytearrayobject.c' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_Resize'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/bytearrayobject.c' line='176' column='1'/>
-      <parameter type-id='type-id-15' name='requested_size' filepath='Objects/bytearrayobject.c' line='176' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyByteArray_AsString' mangled-name='PyByteArray_AsString' filepath='Objects/bytearrayobject.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_AsString'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/bytearrayobject.c' line='167' column='1'/>
-      <return type-id='type-id-7'/>
-    </function-decl>
-    <function-decl name='PyByteArray_Size' mangled-name='PyByteArray_Size' filepath='Objects/bytearrayobject.c' line='158' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_Size'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2203' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyByteArray_FromStringAndSize' mangled-name='PyByteArray_FromStringAndSize' filepath='Objects/bytearrayobject.c' line='114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_FromStringAndSize'>
-      <parameter type-id='type-id-3' name='bytes' filepath='Objects/bytearrayobject.c' line='114' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/bytearrayobject.c' line='114' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyByteArray_FromObject' mangled-name='PyByteArray_FromObject' filepath='Objects/bytearrayobject.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyByteArray_FromObject'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/bytesobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyBytes_Type' type-id='type-id-182' mangled-name='PyBytes_Type' visibility='default' filepath='./Include/bytesobject.h' line='30' column='1' elf-symbol-id='PyBytes_Type'/>
-    <var-decl name='PyBytesIter_Type' type-id='type-id-182' mangled-name='PyBytesIter_Type' visibility='default' filepath='./Include/bytesobject.h' line='31' column='1' elf-symbol-id='PyBytesIter_Type'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='4416' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-298' visibility='default' filepath='./Include/cpython/bytesobject.h' line='44' column='1' id='type-id-299'>
+    <typedef-decl name='pthread_mutex_t' type-id='type-id-369' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='72' column='1' id='type-id-358'/>
+    <class-decl name='_gilstate_runtime_state' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='27' column='1' id='type-id-333'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='buffer' type-id='type-id-100' visibility='default' filepath='./Include/cpython/bytesobject.h' line='46' column='1'/>
+        <var-decl name='check_enabled' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='30' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='allocated' type-id='type-id-15' visibility='default' filepath='./Include/cpython/bytesobject.h' line='49' column='1'/>
+        <var-decl name='tstate_current' type-id='type-id-328' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='33' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='min_size' type-id='type-id-15' visibility='default' filepath='./Include/cpython/bytesobject.h' line='53' column='1'/>
+        <var-decl name='autoInterpreterState' type-id='type-id-311' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='38' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='use_bytearray' type-id='type-id-8' visibility='default' filepath='./Include/cpython/bytesobject.h' line='56' column='1'/>
+        <var-decl name='autoTSSkey' type-id='type-id-376' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='39' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_Py_tss_t' size-in-bits='64' is-struct='yes' visibility='default' filepath='./Include/pythread.h' line='143' column='1' id='type-id-377'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='_is_initialized' type-id='type-id-8' visibility='default' filepath='./Include/pythread.h' line='144' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='_key' type-id='type-id-378' visibility='default' filepath='./Include/pythread.h' line='145' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='pthread_key_t' type-id='type-id-107' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='49' column='1' id='type-id-378'/>
+    <typedef-decl name='Py_tss_t' type-id='type-id-377' filepath='./Include/pythread.h' line='123' column='1' id='type-id-376'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-334' visibility='default' filepath='./Include/cpython/initconfig.h' line='47' column='1' id='type-id-379'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='_config_init' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='48' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='parse_argv' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='isolated' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='use_environment' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='configure_locale' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='coerce_c_locale' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='81' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='coerce_c_locale_warn' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='89' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='224'>
-        <var-decl name='overallocate' type-id='type-id-8' visibility='default' filepath='./Include/cpython/bytesobject.h' line='60' column='1'/>
+        <var-decl name='utf8_mode' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='114' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='use_small_buffer' type-id='type-id-8' visibility='default' filepath='./Include/cpython/bytesobject.h' line='63' column='1'/>
+        <var-decl name='dev_mode' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='120' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='small_buffer' type-id='type-id-300' visibility='default' filepath='./Include/cpython/bytesobject.h' line='64' column='1'/>
+        <var-decl name='allocator' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='124' column='1'/>
       </data-member>
     </class-decl>
-
-    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='4096' id='type-id-300'>
-      <subrange length='512' type-id='type-id-33' id='type-id-301'/>
-
-    </array-type-def>
-    <typedef-decl name='_PyBytesWriter' type-id='type-id-299' filepath='./Include/cpython/bytesobject.h' line='65' column='1' id='type-id-298'/>
-    <pointer-type-def type-id='type-id-298' size-in-bits='64' id='type-id-302'/>
-    <function-decl name='_PyBytesWriter_WriteBytes' mangled-name='_PyBytesWriter_WriteBytes' filepath='Objects/bytesobject.c' line='3485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_WriteBytes'>
-      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3485' column='1'/>
-      <parameter type-id='type-id-32' name='ptr' filepath='Objects/bytesobject.c' line='3485' column='1'/>
-      <parameter type-id='type-id-32' name='bytes' filepath='Objects/bytesobject.c' line='3486' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/bytesobject.c' line='3486' column='1'/>
-      <return type-id='type-id-32'/>
-    </function-decl>
-    <function-decl name='_PyBytesWriter_Finish' mangled-name='_PyBytesWriter_Finish' filepath='Objects/bytesobject.c' line='3441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Finish'>
-      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3441' column='1'/>
-      <parameter type-id='type-id-32' name='str' filepath='Objects/bytesobject.c' line='3441' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='_PyBytesWriter_Alloc' mangled-name='_PyBytesWriter_Alloc' filepath='Objects/bytesobject.c' line='3411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Alloc'>
-      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3411' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/bytesobject.c' line='3411' column='1'/>
-      <return type-id='type-id-32'/>
-    </function-decl>
-    <function-decl name='_PyBytesWriter_Prepare' mangled-name='_PyBytesWriter_Prepare' filepath='Objects/bytesobject.c' line='3381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Prepare'>
-      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3381' column='1'/>
-      <parameter type-id='type-id-32' name='str' filepath='Objects/bytesobject.c' line='3381' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/bytesobject.c' line='3381' column='1'/>
-      <return type-id='type-id-32'/>
-    </function-decl>
-    <function-decl name='_PyBytesWriter_Resize' mangled-name='_PyBytesWriter_Resize' filepath='Objects/bytesobject.c' line='3311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Resize'>
-      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3311' column='1'/>
-      <parameter type-id='type-id-32' name='str' filepath='Objects/bytesobject.c' line='3311' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/bytesobject.c' line='3311' column='1'/>
-      <return type-id='type-id-32'/>
-    </function-decl>
-    <function-decl name='_PyBytesWriter_Dealloc' mangled-name='_PyBytesWriter_Dealloc' filepath='Objects/bytesobject.c' line='3241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Dealloc'>
-      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3241' column='1'/>
-      <return type-id='type-id-4'/>
-    </function-decl>
-    <function-decl name='_PyBytesWriter_Init' mangled-name='_PyBytesWriter_Init' filepath='Objects/bytesobject.c' line='3230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytesWriter_Init'>
-      <parameter type-id='type-id-302' name='writer' filepath='Objects/bytesobject.c' line='3230' column='1'/>
-      <return type-id='type-id-4'/>
-    </function-decl>
-    <pointer-type-def type-id='type-id-100' size-in-bits='64' id='type-id-303'/>
-    <function-decl name='_PyBytes_Resize' mangled-name='_PyBytes_Resize' filepath='Objects/bytesobject.c' line='3000' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytes_Resize'>
-      <parameter type-id='type-id-303' name='pv' filepath='Objects/bytesobject.c' line='3000' column='1'/>
-      <parameter type-id='type-id-15' name='newsize' filepath='Objects/bytesobject.c' line='3000' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyBytes_ConcatAndDel' mangled-name='PyBytes_ConcatAndDel' filepath='Objects/bytesobject.c' line='2978' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_ConcatAndDel'>
-      <parameter type-id='type-id-303' name='pv' filepath='Objects/bytesobject.c' line='2978' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/bytesobject.c' line='2978' column='1'/>
-      <return type-id='type-id-4'/>
-    </function-decl>
-    <function-decl name='PyBytes_Concat' mangled-name='PyBytes_Concat' filepath='Objects/bytesobject.c' line='2929' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_Concat'>
-      <parameter type-id='type-id-303' name='pv' filepath='Objects/bytesobject.c' line='2929' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/bytesobject.c' line='2929' column='1'/>
-      <return type-id='type-id-4'/>
-    </function-decl>
-    <function-decl name='PyBytes_FromObject' mangled-name='PyBytes_FromObject' filepath='Objects/bytesobject.c' line='2805' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_FromObject'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1992' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='_PyBytes_FromHex' mangled-name='_PyBytes_FromHex' filepath='Objects/bytesobject.c' line='2344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytes_FromHex'>
-      <parameter type-id='type-id-100' name='string' filepath='Objects/bytesobject.c' line='2344' column='1'/>
-      <parameter type-id='type-id-8' name='use_bytearray' filepath='Objects/bytesobject.c' line='2344' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='_PyBytes_Join' mangled-name='_PyBytes_Join' filepath='Objects/bytesobject.c' line='1825' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytes_Join'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyBytes_Repr' mangled-name='PyBytes_Repr' filepath='Objects/bytesobject.c' line='1261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_Repr'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/bytesobject.c' line='1261' column='1'/>
-      <parameter type-id='type-id-8' name='smartquotes' filepath='Objects/bytesobject.c' line='1261' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <pointer-type-def type-id='type-id-7' size-in-bits='64' id='type-id-304'/>
-    <function-decl name='PyBytes_AsStringAndSize' mangled-name='PyBytes_AsStringAndSize' filepath='Objects/bytesobject.c' line='1219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_AsStringAndSize'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/bytesobject.c' line='1219' column='1'/>
-      <parameter type-id='type-id-304' name='s' filepath='Objects/bytesobject.c' line='1220' column='1'/>
-      <parameter type-id='type-id-158' name='len' filepath='Objects/bytesobject.c' line='1221' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyBytes_AsString' mangled-name='PyBytes_AsString' filepath='Objects/bytesobject.c' line='1208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_AsString'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/bytearrayobject.c' line='167' column='1'/>
-      <return type-id='type-id-7'/>
-    </function-decl>
-    <function-decl name='PyBytes_Size' mangled-name='PyBytes_Size' filepath='Objects/bytesobject.c' line='1197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_Size'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2203' column='1'/>
-      <return type-id='type-id-15'/>
-    </function-decl>
-    <function-decl name='PyBytes_DecodeEscape' mangled-name='PyBytes_DecodeEscape' filepath='Objects/bytesobject.c' line='1171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_DecodeEscape'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/bytesobject.c' line='1171' column='1'/>
-      <parameter type-id='type-id-15' name='len' filepath='Objects/bytesobject.c' line='1172' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/bytesobject.c' line='1173' column='1'/>
-      <parameter type-id='type-id-15' name='_unused_unicode' filepath='Objects/bytesobject.c' line='1174' column='1'/>
-      <parameter type-id='type-id-3' name='_unused_recode_encoding' filepath='Objects/bytesobject.c' line='1175' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='_PyBytes_DecodeEscape' mangled-name='_PyBytes_DecodeEscape' filepath='Objects/bytesobject.c' line='1063' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytes_DecodeEscape'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/bytesobject.c' line='1063' column='1'/>
-      <parameter type-id='type-id-15' name='len' filepath='Objects/bytesobject.c' line='1064' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/bytesobject.c' line='1065' column='1'/>
-      <parameter type-id='type-id-286' name='first_invalid_escape' filepath='Objects/bytesobject.c' line='1066' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='_PyBytes_FormatEx' mangled-name='_PyBytes_FormatEx' filepath='Objects/bytesobject.c' line='583' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyBytes_FormatEx'>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/bytesobject.c' line='583' column='1'/>
-      <parameter type-id='type-id-15' name='format_len' filepath='Objects/bytesobject.c' line='583' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/bytesobject.c' line='584' column='1'/>
-      <parameter type-id='type-id-8' name='use_bytearray' filepath='Objects/bytesobject.c' line='584' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyBytes_FromFormat' mangled-name='PyBytes_FromFormat' filepath='Objects/bytesobject.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_FromFormat'>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/bytesobject.c' line='357' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <class-decl name='__va_list_tag' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-305'>
+    <typedef-decl name='PyPreConfig' type-id='type-id-379' filepath='./Include/cpython/initconfig.h' line='125' column='1' id='type-id-334'/>
+    <typedef-decl name='Py_OpenCodeHookFunction' type-id='type-id-179' filepath='./Include/cpython/fileobject.h' line='16' column='1' id='type-id-335'/>
+    <class-decl name='_Py_AuditHookEntry' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='44' column='1' id='type-id-380'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='next' type-id='type-id-336' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='hookCFunction' type-id='type-id-381' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='userData' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='47' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-380' size-in-bits='64' id='type-id-336'/>
+    <pointer-type-def type-id='type-id-382' size-in-bits='64' id='type-id-383'/>
+    <typedef-decl name='Py_AuditHookFunction' type-id='type-id-383' filepath='./Include/cpython/sysmodule.h' line='14' column='1' id='type-id-381'/>
+    <typedef-decl name='_Py_AuditHookEntry' type-id='type-id-380' filepath='./Include/internal/pycore_runtime.h' line='48' column='1' id='type-id-384'/>
+    <pointer-type-def type-id='type-id-327' size-in-bits='64' id='type-id-315'/>
+    <class-decl name='_ceval_state' size-in-bits='4416' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='35' column='1' id='type-id-318'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='recursion_limit' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='tracing_possible' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='eval_breaker' type-id='type-id-353' visibility='default' filepath='./Include/internal/pycore_interp.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='gil_drop_request' type-id='type-id-353' visibility='default' filepath='./Include/internal/pycore_interp.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='pending' type-id='type-id-385' visibility='default' filepath='./Include/internal/pycore_interp.h' line='48' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_pending_calls' size-in-bits='4288' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='18' column='1' id='type-id-385'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='gp_offset' type-id='type-id-107' visibility='default'/>
+        <var-decl name='lock' type-id='type-id-317' visibility='default' filepath='./Include/internal/pycore_interp.h' line='19' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='fp_offset' type-id='type-id-107' visibility='default'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='calls_to_do' type-id='type-id-353' visibility='default' filepath='./Include/internal/pycore_interp.h' line='21' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='async_exc' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='25' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='calls' type-id='type-id-386' visibility='default' filepath='./Include/internal/pycore_interp.h' line='30' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4224'>
+        <var-decl name='first' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4256'>
+        <var-decl name='last' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='32' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='27' column='1' id='type-id-387'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='func' type-id='type-id-388' visibility='default' filepath='./Include/internal/pycore_interp.h' line='28' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='overflow_arg_area' type-id='type-id-32' visibility='default'/>
+        <var-decl name='arg' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_interp.h' line='29' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-389' size-in-bits='64' id='type-id-388'/>
+
+    <array-type-def dimensions='1' type-id='type-id-387' size-in-bits='4096' id='type-id-386'>
+      <subrange length='32' type-id='type-id-33' id='type-id-352'/>
+
+    </array-type-def>
+    <class-decl name='_gc_runtime_state' size-in-bits='1920' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_gc.h' line='130' column='1' id='type-id-319'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='trash_delete_later' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_gc.h' line='133' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='trash_delete_nesting' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_gc.h' line='135' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='enabled' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_gc.h' line='137' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='reg_save_area' type-id='type-id-32' visibility='default'/>
+        <var-decl name='debug' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_gc.h' line='138' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='generations' type-id='type-id-390' visibility='default' filepath='./Include/internal/pycore_gc.h' line='140' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='generation0' type-id='type-id-391' visibility='default' filepath='./Include/internal/pycore_gc.h' line='141' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='permanent_generation' type-id='type-id-392' visibility='default' filepath='./Include/internal/pycore_gc.h' line='143' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <var-decl name='generation_stats' type-id='type-id-393' visibility='default' filepath='./Include/internal/pycore_gc.h' line='144' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1600'>
+        <var-decl name='collecting' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_gc.h' line='146' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1664'>
+        <var-decl name='garbage' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_gc.h' line='148' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='callbacks' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_gc.h' line='150' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1792'>
+        <var-decl name='long_lived_total' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_gc.h' line='157' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1856'>
+        <var-decl name='long_lived_pending' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_gc.h' line='161' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-305' size-in-bits='64' id='type-id-306'/>
-    <function-decl name='PyBytes_FromFormatV' mangled-name='PyBytes_FromFormatV' filepath='Objects/bytesobject.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_FromFormatV'>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/bytesobject.c' line='168' column='1'/>
-      <parameter type-id='type-id-306' name='vargs' filepath='Objects/bytesobject.c' line='168' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyBytes_FromString' mangled-name='PyBytes_FromString' filepath='Objects/bytesobject.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_FromString'>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/bytesobject.c' line='128' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyBytes_FromStringAndSize' mangled-name='PyBytes_FromStringAndSize' filepath='Objects/bytesobject.c' line='97' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBytes_FromStringAndSize'>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/bytesobject.c' line='97' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/bytesobject.c' line='97' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/call.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='_PyStack_AsDict' mangled-name='_PyStack_AsDict' filepath='Objects/call.c' line='909' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyStack_AsDict'>
-      <parameter type-id='type-id-190' name='values' filepath='Objects/call.c' line='909' column='1'/>
-      <parameter type-id='type-id-100' name='kwnames' filepath='Objects/call.c' line='909' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyObject_CallFunctionObjArgs' mangled-name='PyObject_CallFunctionObjArgs' filepath='Objects/call.c' line='892' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallFunctionObjArgs'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='892' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <class-decl name='_Py_Identifier' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/cpython/object.h' line='45' column='1' id='type-id-307'>
+    <class-decl name='gc_generation' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_gc.h' line='113' column='1' id='type-id-392'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='next' type-id='type-id-308' visibility='default' filepath='./Include/cpython/object.h' line='46' column='1'/>
+        <var-decl name='head' type-id='type-id-394' visibility='default' filepath='./Include/internal/pycore_gc.h' line='114' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='threshold' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_gc.h' line='115' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='count' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_gc.h' line='116' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-394' visibility='default' filepath='./Include/internal/pycore_gc.h' line='12' column='1' id='type-id-395'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='_gc_next' type-id='type-id-396' visibility='default' filepath='./Include/internal/pycore_gc.h' line='15' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='string' type-id='type-id-3' visibility='default' filepath='./Include/cpython/object.h' line='47' column='1'/>
+        <var-decl name='_gc_prev' type-id='type-id-396' visibility='default' filepath='./Include/internal/pycore_gc.h' line='19' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='uintptr_t' type-id='type-id-33' filepath='/usr/include/stdint.h' line='90' column='1' id='type-id-396'/>
+    <typedef-decl name='PyGC_Head' type-id='type-id-395' filepath='./Include/internal/pycore_gc.h' line='20' column='1' id='type-id-394'/>
+
+    <array-type-def dimensions='1' type-id='type-id-392' size-in-bits='576' id='type-id-390'>
+      <subrange length='3' type-id='type-id-33' id='type-id-397'/>
+
+    </array-type-def>
+    <pointer-type-def type-id='type-id-394' size-in-bits='64' id='type-id-391'/>
+    <class-decl name='gc_generation_stats' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_gc.h' line='121' column='1' id='type-id-398'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='collections' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_gc.h' line='123' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='collected' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_gc.h' line='125' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='object' type-id='type-id-100' visibility='default' filepath='./Include/cpython/object.h' line='48' column='1'/>
+        <var-decl name='uncollectable' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_gc.h' line='127' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-307' size-in-bits='64' id='type-id-308'/>
-    <function-decl name='_PyObject_CallMethodIdObjArgs' mangled-name='_PyObject_CallMethodIdObjArgs' filepath='Objects/call.c' line='861' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallMethodIdObjArgs'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='861' column='1'/>
-      <parameter type-id='type-id-308' name='name' filepath='Objects/call.c' line='862' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyObject_CallMethodObjArgs' mangled-name='PyObject_CallMethodObjArgs' filepath='Objects/call.c' line='836' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallMethodObjArgs'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='836' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/call.c' line='836' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyObject_VectorcallMethod' mangled-name='PyObject_VectorcallMethod' filepath='Objects/call.c' line='802' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_VectorcallMethod'>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/call.c' line='802' column='1'/>
-      <parameter type-id='type-id-190' name='args' filepath='Objects/call.c' line='802' column='1'/>
-      <parameter type-id='type-id-191' name='nargsf' filepath='Objects/call.c' line='803' column='1'/>
-      <parameter type-id='type-id-100' name='kwnames' filepath='Objects/call.c' line='803' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <typedef-decl name='_Py_Identifier' type-id='type-id-307' filepath='./Include/cpython/object.h' line='49' column='1' id='type-id-309'/>
-    <function-decl name='_PyObject_CallMethodId_SizeT' mangled-name='_PyObject_CallMethodId_SizeT' filepath='Objects/call.c' line='718' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallMethodId_SizeT'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='718' column='1'/>
-      <parameter type-id='type-id-308' name='name' filepath='Objects/call.c' line='718' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='719' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='_PyObject_CallMethod_SizeT' mangled-name='_PyObject_CallMethod_SizeT' filepath='Objects/call.c' line='694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallMethod_SizeT'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='694' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Objects/call.c' line='694' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='695' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='_PyObject_CallMethodId' mangled-name='_PyObject_CallMethodId' filepath='Objects/call.c' line='670' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallMethodId'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='718' column='1'/>
-      <parameter type-id='type-id-308' name='name' filepath='Objects/call.c' line='718' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='719' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyEval_CallMethod' mangled-name='PyEval_CallMethod' filepath='Objects/call.c' line='647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_CallMethod'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='694' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Objects/call.c' line='694' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='695' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyObject_CallMethod' mangled-name='PyObject_CallMethod' filepath='Objects/call.c' line='620' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallMethod'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='694' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Objects/call.c' line='694' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='695' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='_PyObject_CallFunction_SizeT' mangled-name='_PyObject_CallFunction_SizeT' filepath='Objects/call.c' line='591' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CallFunction_SizeT'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='591' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='591' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyEval_CallFunction' mangled-name='PyEval_CallFunction' filepath='Objects/call.c' line='576' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_CallFunction'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='591' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='591' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyObject_CallFunction' mangled-name='PyObject_CallFunction' filepath='Objects/call.c' line='558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallFunction'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='591' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/call.c' line='591' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <class-decl name='_ts' size-in-bits='2112' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='51' column='1' id='type-id-310'>
+
+    <array-type-def dimensions='1' type-id='type-id-398' size-in-bits='576' id='type-id-393'>
+      <subrange length='3' type-id='type-id-33' id='type-id-397'/>
+
+    </array-type-def>
+    <class-decl name='_Py_unicode_state' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='60' column='1' id='type-id-320'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='prev' type-id='type-id-232' visibility='default' filepath='./Include/cpython/pystate.h' line='54' column='1'/>
+        <var-decl name='fs_codec' type-id='type-id-399' visibility='default' filepath='./Include/internal/pycore_interp.h' line='61' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_Py_unicode_fs_codec' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='53' column='1' id='type-id-399'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='encoding' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='utf8' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='errors' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp.h' line='56' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='error_handler' type-id='type-id-400' visibility='default' filepath='./Include/internal/pycore_interp.h' line='57' column='1'/>
+      </data-member>
+    </class-decl>
+    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/fileutils.h' line='5' column='1' id='type-id-401'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='_Py_ERROR_UNKNOWN' value='0'/>
+      <enumerator name='_Py_ERROR_STRICT' value='1'/>
+      <enumerator name='_Py_ERROR_SURROGATEESCAPE' value='2'/>
+      <enumerator name='_Py_ERROR_REPLACE' value='3'/>
+      <enumerator name='_Py_ERROR_IGNORE' value='4'/>
+      <enumerator name='_Py_ERROR_BACKSLASHREPLACE' value='5'/>
+      <enumerator name='_Py_ERROR_SURROGATEPASS' value='6'/>
+      <enumerator name='_Py_ERROR_XMLCHARREFREPLACE' value='7'/>
+      <enumerator name='_Py_ERROR_OTHER' value='8'/>
+    </enum-decl>
+    <typedef-decl name='_Py_error_handler' type-id='type-id-401' filepath='./Include/cpython/fileutils.h' line='15' column='1' id='type-id-400'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='3136' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-321' visibility='default' filepath='./Include/cpython/initconfig.h' line='133' column='1' id='type-id-402'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='_config_init' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='134' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='isolated' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='136' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='next' type-id='type-id-232' visibility='default' filepath='./Include/cpython/pystate.h' line='55' column='1'/>
+        <var-decl name='use_environment' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='137' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='dev_mode' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='138' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='interp' type-id='type-id-311' visibility='default' filepath='./Include/cpython/pystate.h' line='56' column='1'/>
+        <var-decl name='install_signal_handlers' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='141' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='use_hash_seed' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='143' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='frame' type-id='type-id-312' visibility='default' filepath='./Include/cpython/pystate.h' line='59' column='1'/>
+        <var-decl name='hash_seed' type-id='type-id-33' visibility='default' filepath='./Include/cpython/initconfig.h' line='144' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='recursion_depth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='60' column='1'/>
+        <var-decl name='faulthandler' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='148' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='overflowed' type-id='type-id-1' visibility='default' filepath='./Include/cpython/pystate.h' line='61' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='296'>
-        <var-decl name='recursion_critical' type-id='type-id-1' visibility='default' filepath='./Include/cpython/pystate.h' line='63' column='1'/>
+        <var-decl name='_use_peg_parser' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='152' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='stackcheck_counter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
+        <var-decl name='tracemalloc' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='156' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='352'>
-        <var-decl name='tracing' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='70' column='1'/>
+        <var-decl name='import_time' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='158' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='use_tracing' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='71' column='1'/>
+        <var-decl name='show_ref_count' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='159' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='416'>
+        <var-decl name='dump_refs' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='160' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='c_profilefunc' type-id='type-id-235' visibility='default' filepath='./Include/cpython/pystate.h' line='73' column='1'/>
+        <var-decl name='malloc_stats' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='161' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='c_tracefunc' type-id='type-id-235' visibility='default' filepath='./Include/cpython/pystate.h' line='74' column='1'/>
+        <var-decl name='filesystem_encoding' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='196' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='c_profileobj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='75' column='1'/>
+        <var-decl name='filesystem_errors' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='197' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='c_traceobj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='76' column='1'/>
+        <var-decl name='pycache_prefix' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='199' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='curexc_type' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='79' column='1'/>
+        <var-decl name='parse_argv' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='200' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='curexc_value' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='80' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='curexc_traceback' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='81' column='1'/>
+        <var-decl name='argv' type-id='type-id-404' visibility='default' filepath='./Include/cpython/initconfig.h' line='209' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='exc_state' type-id='type-id-236' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
+        <var-decl name='program_name' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='219' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='exc_info' type-id='type-id-237' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='xoptions' type-id='type-id-404' visibility='default' filepath='./Include/cpython/initconfig.h' line='221' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <var-decl name='warnoptions' type-id='type-id-404' visibility='default' filepath='./Include/cpython/initconfig.h' line='225' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='dict' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
+        <var-decl name='site_import' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='234' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1248'>
+        <var-decl name='bytes_warning' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='244' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1280'>
-        <var-decl name='gilstate_counter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='94' column='1'/>
+        <var-decl name='inspect' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='254' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1312'>
+        <var-decl name='interactive' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='260' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='async_exc' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='96' column='1'/>
+        <var-decl name='optimization_level' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='267' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1376'>
+        <var-decl name='parser_debug' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='275' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1408'>
-        <var-decl name='thread_id' type-id='type-id-33' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
+        <var-decl name='write_bytecode' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='283' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1440'>
+        <var-decl name='verbose' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='295' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1472'>
-        <var-decl name='trash_delete_nesting' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='99' column='1'/>
+        <var-decl name='quiet' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='302' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1504'>
+        <var-decl name='user_site_directory' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='310' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='trash_delete_later' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='100' column='1'/>
+        <var-decl name='configure_c_stdio' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='318' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1568'>
+        <var-decl name='buffered_stdio' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='326' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='on_delete' type-id='type-id-188' visibility='default' filepath='./Include/cpython/pystate.h' line='125' column='1'/>
+        <var-decl name='stdio_encoding' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='332' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1664'>
-        <var-decl name='on_delete_data' type-id='type-id-32' visibility='default' filepath='./Include/cpython/pystate.h' line='126' column='1'/>
+        <var-decl name='stdio_errors' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='338' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1728'>
-        <var-decl name='coroutine_origin_tracking_depth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='128' column='1'/>
+        <var-decl name='check_hash_pycs_mode' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='364' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='async_gen_firstiter' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='130' column='1'/>
+        <var-decl name='pathconfig_warnings' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='372' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='async_gen_finalizer' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='131' column='1'/>
+        <var-decl name='pythonpath_env' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='374' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1920'>
-        <var-decl name='context' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='133' column='1'/>
+        <var-decl name='home' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='375' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1984'>
-        <var-decl name='context_ver' type-id='type-id-238' visibility='default' filepath='./Include/cpython/pystate.h' line='134' column='1'/>
+        <var-decl name='module_search_paths_set' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='380' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='2048'>
-        <var-decl name='id' type-id='type-id-238' visibility='default' filepath='./Include/cpython/pystate.h' line='137' column='1'/>
+        <var-decl name='module_search_paths' type-id='type-id-404' visibility='default' filepath='./Include/cpython/initconfig.h' line='381' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2176'>
+        <var-decl name='executable' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='385' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2240'>
+        <var-decl name='base_executable' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='386' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2304'>
+        <var-decl name='prefix' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='387' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2368'>
+        <var-decl name='base_prefix' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='388' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2432'>
+        <var-decl name='exec_prefix' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='389' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2496'>
+        <var-decl name='base_exec_prefix' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='390' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2560'>
+        <var-decl name='platlibdir' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='391' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2624'>
+        <var-decl name='skip_source_first_line' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='399' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2688'>
+        <var-decl name='run_command' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='401' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2752'>
+        <var-decl name='run_module' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='402' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2816'>
+        <var-decl name='run_filename' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='403' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2880'>
+        <var-decl name='_install_importlib' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='409' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2912'>
+        <var-decl name='_init_main' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='412' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2944'>
+        <var-decl name='_isolated_interpreter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='416' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='3008'>
+        <var-decl name='_orig_argv' type-id='type-id-404' visibility='default' filepath='./Include/cpython/initconfig.h' line='424' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_is' size-in-bits='45184' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='71' column='1' id='type-id-313'>
+    <typedef-decl name='wchar_t' type-id='type-id-8' filepath='/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h' line='321' column='1' id='type-id-405'/>
+    <pointer-type-def type-id='type-id-405' size-in-bits='64' id='type-id-403'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-404' visibility='default' filepath='./Include/cpython/initconfig.h' line='31' column='1' id='type-id-406'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='next' type-id='type-id-314' visibility='default' filepath='./Include/internal/pycore_interp.h' line='73' column='1'/>
+        <var-decl name='length' type-id='type-id-15' visibility='default' filepath='./Include/cpython/initconfig.h' line='34' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='tstate_head' type-id='type-id-232' visibility='default' filepath='./Include/internal/pycore_interp.h' line='74' column='1'/>
+        <var-decl name='items' type-id='type-id-407' visibility='default' filepath='./Include/cpython/initconfig.h' line='35' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-403' size-in-bits='64' id='type-id-407'/>
+    <typedef-decl name='PyWideStringList' type-id='type-id-406' filepath='./Include/cpython/initconfig.h' line='36' column='1' id='type-id-404'/>
+    <typedef-decl name='PyConfig' type-id='type-id-402' filepath='./Include/cpython/initconfig.h' line='425' column='1' id='type-id-321'/>
+    <typedef-decl name='PyThreadState' type-id='type-id-310' filepath='./Include/pystate.h' line='20' column='1' id='type-id-408'/>
+    <pointer-type-def type-id='type-id-408' size-in-bits='64' id='type-id-409'/>
+    <class-decl name='_frame' size-in-bits='2944' is-struct='yes' visibility='default' filepath='./Include/cpython/frameobject.h' line='17' column='1' id='type-id-410'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ob_base' type-id='type-id-77' visibility='default' filepath='./Include/cpython/frameobject.h' line='18' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='f_back' type-id='type-id-411' visibility='default' filepath='./Include/cpython/frameobject.h' line='19' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='f_code' type-id='type-id-412' visibility='default' filepath='./Include/cpython/frameobject.h' line='20' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='f_builtins' type-id='type-id-100' visibility='default' filepath='./Include/cpython/frameobject.h' line='21' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='f_globals' type-id='type-id-100' visibility='default' filepath='./Include/cpython/frameobject.h' line='22' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='f_locals' type-id='type-id-100' visibility='default' filepath='./Include/cpython/frameobject.h' line='23' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='f_valuestack' type-id='type-id-303' visibility='default' filepath='./Include/cpython/frameobject.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='f_stacktop' type-id='type-id-303' visibility='default' filepath='./Include/cpython/frameobject.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='f_trace' type-id='type-id-100' visibility='default' filepath='./Include/cpython/frameobject.h' line='29' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='f_trace_lines' type-id='type-id-1' visibility='default' filepath='./Include/cpython/frameobject.h' line='30' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='712'>
+        <var-decl name='f_trace_opcodes' type-id='type-id-1' visibility='default' filepath='./Include/cpython/frameobject.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='f_gen' type-id='type-id-100' visibility='default' filepath='./Include/cpython/frameobject.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='f_lasti' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='36' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='864'>
+        <var-decl name='f_lineno' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='f_iblock' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='928'>
+        <var-decl name='f_executing' type-id='type-id-1' visibility='default' filepath='./Include/cpython/frameobject.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='f_blockstack' type-id='type-id-413' visibility='default' filepath='./Include/cpython/frameobject.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2880'>
+        <var-decl name='f_localsplus' type-id='type-id-414' visibility='default' filepath='./Include/cpython/frameobject.h' line='46' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-410' size-in-bits='64' id='type-id-411'/>
+    <class-decl name='PyCodeObject' size-in-bits='1408' is-struct='yes' visibility='default' filepath='./Include/cpython/code.h' line='18' column='1' id='type-id-415'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/cpython/code.h' line='19' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='runtime' type-id='type-id-315' visibility='default' filepath='./Include/internal/pycore_interp.h' line='79' column='1'/>
+        <var-decl name='co_argcount' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='20' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='co_posonlyargcount' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='21' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='id' type-id='type-id-316' visibility='default' filepath='./Include/internal/pycore_interp.h' line='81' column='1'/>
+        <var-decl name='co_kwonlyargcount' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='22' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='224'>
+        <var-decl name='co_nlocals' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='23' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='id_refcount' type-id='type-id-316' visibility='default' filepath='./Include/internal/pycore_interp.h' line='82' column='1'/>
+        <var-decl name='co_stacksize' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <var-decl name='co_flags' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='25' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='requires_idref' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='83' column='1'/>
+        <var-decl name='co_firstlineno' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='26' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='id_mutex' type-id='type-id-317' visibility='default' filepath='./Include/internal/pycore_interp.h' line='84' column='1'/>
+        <var-decl name='co_code' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='27' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='finalizing' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='86' column='1'/>
+        <var-decl name='co_consts' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='co_names' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='29' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='co_varnames' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='30' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='co_freevars' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='co_cellvars' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='co_cell2arg' type-id='type-id-158' visibility='default' filepath='./Include/cpython/code.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='co_filename' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='39' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='ceval' type-id='type-id-318' visibility='default' filepath='./Include/internal/pycore_interp.h' line='88' column='1'/>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='co_name' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='40' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='4928'>
-        <var-decl name='gc' type-id='type-id-319' visibility='default' filepath='./Include/internal/pycore_interp.h' line='89' column='1'/>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='co_lnotab' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='41' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='6848'>
-        <var-decl name='modules' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='91' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1024'>
+        <var-decl name='co_zombieframe' type-id='type-id-32' visibility='default' filepath='./Include/cpython/code.h' line='43' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='6912'>
-        <var-decl name='modules_by_index' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='92' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1088'>
+        <var-decl name='co_weakreflist' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='44' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='6976'>
-        <var-decl name='sysdict' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='93' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='co_extra' type-id='type-id-32' visibility='default' filepath='./Include/cpython/code.h' line='48' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='7040'>
-        <var-decl name='builtins' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='94' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='co_opcache_map' type-id='type-id-416' visibility='default' filepath='./Include/cpython/code.h' line='60' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='7104'>
-        <var-decl name='importlib' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='95' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='co_opcache' type-id='type-id-417' visibility='default' filepath='./Include/cpython/code.h' line='61' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='7168'>
-        <var-decl name='num_threads' type-id='type-id-12' visibility='default' filepath='./Include/internal/pycore_interp.h' line='98' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='co_opcache_flag' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='62' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='7232'>
-        <var-decl name='pythread_stacksize' type-id='type-id-191' visibility='default' filepath='./Include/internal/pycore_interp.h' line='103' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1376'>
+        <var-decl name='co_opcache_size' type-id='type-id-418' visibility='default' filepath='./Include/cpython/code.h' line='63' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='7296'>
-        <var-decl name='codec_search_path' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='105' column='1'/>
+    </class-decl>
+    <type-decl name='unsigned char' size-in-bits='8' id='type-id-418'/>
+    <pointer-type-def type-id='type-id-418' size-in-bits='64' id='type-id-416'/>
+    <class-decl name='_PyOpcache' size-in-bits='256' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-419'/>
+    <typedef-decl name='_PyOpcache' type-id='type-id-419' filepath='./Include/cpython/code.h' line='15' column='1' id='type-id-420'/>
+    <pointer-type-def type-id='type-id-420' size-in-bits='64' id='type-id-417'/>
+    <typedef-decl name='PyCodeObject' type-id='type-id-415' filepath='./Include/code.h' line='9' column='1' id='type-id-421'/>
+    <pointer-type-def type-id='type-id-421' size-in-bits='64' id='type-id-412'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-422' visibility='default' filepath='./Include/cpython/frameobject.h' line='11' column='1' id='type-id-423'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='b_type' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='12' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='7360'>
-        <var-decl name='codec_search_cache' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='106' column='1'/>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='b_handler' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='13' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='7424'>
-        <var-decl name='codec_error_registry' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='107' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='b_level' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='14' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='7488'>
-        <var-decl name='codecs_initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='108' column='1'/>
+    </class-decl>
+    <typedef-decl name='PyTryBlock' type-id='type-id-423' filepath='./Include/cpython/frameobject.h' line='15' column='1' id='type-id-422'/>
+
+    <array-type-def dimensions='1' type-id='type-id-422' size-in-bits='1920' id='type-id-413'>
+      <subrange length='20' type-id='type-id-33' id='type-id-221'/>
+
+    </array-type-def>
+
+    <array-type-def dimensions='1' type-id='type-id-100' size-in-bits='64' id='type-id-414'>
+      <subrange length='1' type-id='type-id-33' id='type-id-34'/>
+
+    </array-type-def>
+    <typedef-decl name='PyFrameObject' type-id='type-id-410' filepath='./Include/pyframe.h' line='12' column='1' id='type-id-424'/>
+    <pointer-type-def type-id='type-id-424' size-in-bits='64' id='type-id-312'/>
+    <pointer-type-def type-id='type-id-425' size-in-bits='64' id='type-id-426'/>
+    <typedef-decl name='_PyFrameEvalFunction' type-id='type-id-426' filepath='./Include/cpython/pystate.h' line='187' column='1' id='type-id-322'/>
+
+    <array-type-def dimensions='1' type-id='type-id-106' size-in-bits='16320' id='type-id-323'>
+      <subrange length='255' type-id='type-id-33' id='type-id-427'/>
+
+    </array-type-def>
+    <class-decl name='_warnings_runtime_state' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='11' column='1' id='type-id-324'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='filters' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='14' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='7552'>
-        <var-decl name='unicode' type-id='type-id-320' visibility='default' filepath='./Include/internal/pycore_interp.h' line='110' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='once_registry' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='15' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='7808'>
-        <var-decl name='config' type-id='type-id-321' visibility='default' filepath='./Include/internal/pycore_interp.h' line='112' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='default_action' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='16' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='10944'>
-        <var-decl name='dlopenflags' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='114' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='filters_version' type-id='type-id-12' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='17' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='11008'>
-        <var-decl name='dict' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='117' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='142' column='1' id='type-id-325'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='listnode' type-id='type-id-428' visibility='default' filepath='./Include/internal/pycore_interp.h' line='146' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='11072'>
-        <var-decl name='builtins_copy' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='119' column='1'/>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='143' column='1' id='type-id-428'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='level' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='144' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='11136'>
-        <var-decl name='import_func' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='120' column='1'/>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='atbol' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='145' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='11200'>
-        <var-decl name='eval_frame' type-id='type-id-322' visibility='default' filepath='./Include/internal/pycore_interp.h' line='122' column='1'/>
+    </class-decl>
+    <typedef-decl name='PyLongObject' type-id='type-id-290' filepath='./Include/longobject.h' line='10' column='1' id='type-id-429'/>
+    <pointer-type-def type-id='type-id-429' size-in-bits='64' id='type-id-430'/>
+
+    <array-type-def dimensions='1' type-id='type-id-430' size-in-bits='16768' id='type-id-326'>
+      <subrange length='262' type-id='type-id-33' id='type-id-431'/>
+
+    </array-type-def>
+    <function-decl name='_PyObject_Call_Prepend' mangled-name='_PyObject_Call_Prepend' filepath='Objects/call.c' line='463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_Call_Prepend'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Objects/call.c' line='463' column='1'/>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='463' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='464' column='1'/>
+      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='464' column='1'/>
+      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='464' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_CallObject' mangled-name='PyObject_CallObject' filepath='Objects/call.c' line='445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallObject'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='445' column='1'/>
+      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='445' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyEval_CallObjectWithKeywords' mangled-name='PyEval_CallObjectWithKeywords' filepath='Objects/call.c' line='412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_CallObjectWithKeywords'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='412' column='1'/>
+      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='413' column='1'/>
+      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='413' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyFunction_Vectorcall' mangled-name='_PyFunction_Vectorcall' filepath='Objects/call.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFunction_Vectorcall'>
+      <parameter type-id='type-id-100' name='func' filepath='Objects/call.c' line='346' column='1'/>
+      <parameter type-id='type-id-190' name='stack' filepath='Objects/call.c' line='346' column='1'/>
+      <parameter type-id='type-id-191' name='nargsf' filepath='Objects/call.c' line='347' column='1'/>
+      <parameter type-id='type-id-100' name='kwnames' filepath='Objects/call.c' line='347' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyCFunction_Call' mangled-name='PyCFunction_Call' filepath='Objects/call.c' line='298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCFunction_Call'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='298' column='1'/>
+      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='298' column='1'/>
+      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='298' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_Call' mangled-name='_PyObject_Call' filepath='Objects/call.c' line='252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_Call'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Objects/call.c' line='252' column='1'/>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='252' column='1'/>
+      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='253' column='1'/>
+      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='253' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyVectorcall_Call' mangled-name='PyVectorcall_Call' filepath='Objects/call.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyVectorcall_Call'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='205' column='1'/>
+      <parameter type-id='type-id-100' name='tuple' filepath='Objects/call.c' line='205' column='1'/>
+      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='205' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_MakeTpCall' mangled-name='_PyObject_MakeTpCall' filepath='Objects/call.c' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_MakeTpCall'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Objects/call.c' line='147' column='1'/>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='147' column='1'/>
+      <parameter type-id='type-id-190' name='args' filepath='Objects/call.c' line='148' column='1'/>
+      <parameter type-id='type-id-15' name='nargs' filepath='Objects/call.c' line='148' column='1'/>
+      <parameter type-id='type-id-100' name='keywords' filepath='Objects/call.c' line='149' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_VectorcallDict' mangled-name='PyObject_VectorcallDict' filepath='Objects/call.c' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_VectorcallDict'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='138' column='1'/>
+      <parameter type-id='type-id-190' name='args' filepath='Objects/call.c' line='138' column='1'/>
+      <parameter type-id='type-id-191' name='nargsf' filepath='Objects/call.c' line='139' column='1'/>
+      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='139' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_FastCallDictTstate' mangled-name='_PyObject_FastCallDictTstate' filepath='Objects/call.c' line='94' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_FastCallDictTstate'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Objects/call.c' line='94' column='1'/>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='94' column='1'/>
+      <parameter type-id='type-id-190' name='args' filepath='Objects/call.c' line='95' column='1'/>
+      <parameter type-id='type-id-191' name='nargsf' filepath='Objects/call.c' line='95' column='1'/>
+      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='96' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_CallNoArgs' mangled-name='PyObject_CallNoArgs' filepath='Objects/call.c' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallNoArgs'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='35' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_Py_CheckFunctionResult' mangled-name='_Py_CheckFunctionResult' filepath='Objects/call.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_CheckFunctionResult'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Objects/call.c' line='33' column='1'/>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='33' column='1'/>
+      <parameter type-id='type-id-100' name='result' filepath='Objects/call.c' line='34' column='1'/>
+      <parameter type-id='type-id-3' name='where' filepath='Objects/call.c' line='34' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyDict_Next' mangled-name='PyDict_Next' filepath='./Include/dictobject.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_NoMemory' mangled-name='_PyErr_NoMemory' filepath='./Include/internal/pycore_pyerrors.h' line='60' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_SetString' mangled-name='_PyErr_SetString' filepath='./Include/internal/pycore_pyerrors.h' line='62' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_SetItem' mangled-name='PyDict_SetItem' filepath='./Include/dictobject.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_NewPresized' mangled-name='_PyDict_NewPresized' filepath='./Include/cpython/dictobject.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_GetMethod' mangled-name='_PyObject_GetMethod' filepath='./Include/cpython/object.h' line='330' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_Format' mangled-name='_PyErr_Format' filepath='./Include/internal/pycore_pyerrors.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCallable_Check' mangled-name='PyCallable_Check' filepath='./Include/object.h' line='263' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyEval_EvalCode' mangled-name='_PyEval_EvalCode' filepath='./Include/internal/pycore_ceval.h' line='43' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyFrame_New_NoTrack' mangled-name='_PyFrame_New_NoTrack' filepath='./Include/cpython/frameobject.h' line='60' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTuple_FromArray' mangled-name='_PyTuple_FromArray' filepath='./Include/internal/pycore_tupleobject.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_FormatFromCauseTstate' mangled-name='_PyErr_FormatFromCauseTstate' filepath='./Include/internal/pycore_pyerrors.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_VaBuildStack_SizeT' mangled-name='_Py_VaBuildStack_SizeT' filepath='./Include/modsupport.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_VaBuildStack' mangled-name='_Py_VaBuildStack' filepath='./Include/modsupport.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-type size-in-bits='64' id='type-id-425'>
+      <parameter type-id='type-id-409'/>
+      <parameter type-id='type-id-312'/>
+      <parameter type-id='type-id-8'/>
+      <return type-id='type-id-100'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-347'>
+      <parameter type-id='type-id-346'/>
+      <return type-id='type-id-100'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-348'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-346'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-382'>
+      <parameter type-id='type-id-3'/>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-32'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-389'>
+      <parameter type-id='type-id-32'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-350'>
+      <return type-id='type-id-4'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/capsule.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyCapsule_Type' type-id='type-id-182' mangled-name='PyCapsule_Type' visibility='default' filepath='./Include/pycapsule.h' line='21' column='1' elf-symbol-id='PyCapsule_Type'/>
+    <function-decl name='PyCapsule_Import' mangled-name='PyCapsule_Import' filepath='Objects/capsule.c' line='195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_Import'>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/capsule.c' line='195' column='1'/>
+      <parameter type-id='type-id-8' name='no_block' filepath='Objects/capsule.c' line='195' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyCapsule_SetContext' mangled-name='PyCapsule_SetContext' filepath='Objects/capsule.c' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_SetContext'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
+      <parameter type-id='type-id-32' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <typedef-decl name='PyCapsule_Destructor' type-id='type-id-112' filepath='./Include/pycapsule.h' line='23' column='1' id='type-id-432'/>
+    <function-decl name='PyCapsule_SetDestructor' mangled-name='PyCapsule_SetDestructor' filepath='Objects/capsule.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_SetDestructor'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='167' column='1'/>
+      <parameter type-id='type-id-432' name='destructor' filepath='Objects/capsule.c' line='167' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyCapsule_SetName' mangled-name='PyCapsule_SetName' filepath='Objects/capsule.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_SetName'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='153' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/capsule.c' line='153' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyCapsule_SetPointer' mangled-name='PyCapsule_SetPointer' filepath='Objects/capsule.c' line='134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_SetPointer'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='134' column='1'/>
+      <parameter type-id='type-id-32' name='pointer' filepath='Objects/capsule.c' line='134' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyCapsule_GetContext' mangled-name='PyCapsule_GetContext' filepath='Objects/capsule.c' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_GetContext'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='122' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyCapsule_GetDestructor' mangled-name='PyCapsule_GetDestructor' filepath='Objects/capsule.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_GetDestructor'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='110' column='1'/>
+      <return type-id='type-id-432'/>
+    </function-decl>
+    <function-decl name='PyCapsule_GetName' mangled-name='PyCapsule_GetName' filepath='Objects/capsule.c' line='98' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_GetName'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='98' column='1'/>
+      <return type-id='type-id-3'/>
+    </function-decl>
+    <function-decl name='PyCapsule_GetPointer' mangled-name='PyCapsule_GetPointer' filepath='Objects/capsule.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_GetPointer'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='80' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/capsule.c' line='80' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyCapsule_New' mangled-name='PyCapsule_New' filepath='Objects/capsule.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_New'>
+      <parameter type-id='type-id-32' name='pointer' filepath='Objects/capsule.c' line='44' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/capsule.c' line='44' column='1'/>
+      <parameter type-id='type-id-432' name='destructor' filepath='Objects/capsule.c' line='44' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyCapsule_IsValid' mangled-name='PyCapsule_IsValid' filepath='Objects/capsule.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_IsValid'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='153' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/capsule.c' line='153' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/cellobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyCell_Type' type-id='type-id-182' mangled-name='PyCell_Type' visibility='default' filepath='./Include/cellobject.h' line='14' column='1' elf-symbol-id='PyCell_Type'/>
+    <function-decl name='PyCell_Set' mangled-name='PyCell_Set' filepath='Objects/cellobject.c' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCell_Set'>
+      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2629' column='1'/>
+      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2629' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyCell_Get' mangled-name='PyCell_Get' filepath='Objects/cellobject.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCell_Get'>
+      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyCell_New' mangled-name='PyCell_New' filepath='Objects/cellobject.c' line='7' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCell_New'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1296' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_RichCompare' mangled-name='PyObject_RichCompare' filepath='./Include/object.h' line='245' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/classobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='PyMemberDef' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/structmember.h' line='18' column='1' id='type-id-174'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/structmember.h' line='19' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='11264'>
-        <var-decl name='co_extra_user_count' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='124' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='type' type-id='type-id-8' visibility='default' filepath='./Include/structmember.h' line='20' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='11328'>
-        <var-decl name='co_extra_freefuncs' type-id='type-id-323' visibility='default' filepath='./Include/internal/pycore_interp.h' line='125' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='offset' type-id='type-id-15' visibility='default' filepath='./Include/structmember.h' line='21' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='27648'>
-        <var-decl name='before_forkers' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='128' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='flags' type-id='type-id-8' visibility='default' filepath='./Include/structmember.h' line='22' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='27712'>
-        <var-decl name='after_forkers_parent' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='129' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='doc' type-id='type-id-3' visibility='default' filepath='./Include/structmember.h' line='23' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='27776'>
-        <var-decl name='after_forkers_child' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='130' column='1'/>
+    </class-decl>
+    <var-decl name='PyMethod_Type' type-id='type-id-182' mangled-name='PyMethod_Type' visibility='default' filepath='./Include/classobject.h' line='20' column='1' elf-symbol-id='PyMethod_Type'/>
+    <var-decl name='PyInstanceMethod_Type' type-id='type-id-182' mangled-name='PyInstanceMethod_Type' visibility='default' filepath='./Include/classobject.h' line='41' column='1' elf-symbol-id='PyInstanceMethod_Type'/>
+    <function-decl name='PyInstanceMethod_New' mangled-name='PyInstanceMethod_New' filepath='Objects/classobject.c' line='378' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInstanceMethod_New'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1296' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyMethod_Self' mangled-name='PyMethod_Self' filepath='Objects/classobject.c' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMethod_Self'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyMethod_Function' mangled-name='PyMethod_Function' filepath='Objects/classobject.c' line='15' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMethod_Function'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyMethod_New' mangled-name='PyMethod_New' filepath='Objects/classobject.c' line='99' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMethod_New'>
+      <parameter type-id='type-id-100' name='func' filepath='Objects/classobject.c' line='99' column='1'/>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/classobject.c' line='99' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyInstanceMethod_Function' mangled-name='PyInstanceMethod_Function' filepath='Objects/classobject.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInstanceMethod_Function'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_Call' mangled-name='PyObject_Call' filepath='./Include/abstract.h' line='158' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_GetAttr' mangled-name='PyObject_GetAttr' filepath='./Include/object.h' line='250' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_HashPointer' mangled-name='_Py_HashPointer' filepath='./Include/pyhash.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Hash' mangled-name='PyObject_Hash' filepath='./Include/object.h' line='259' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_ClearWeakRefs' mangled-name='PyObject_ClearWeakRefs' filepath='./Include/object.h' line='264' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyType_Lookup' mangled-name='_PyType_Lookup' filepath='./Include/cpython/object.h' line='301' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyType_Ready' mangled-name='PyType_Ready' filepath='./Include/object.h' line='233' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/codeobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyCode_Type' type-id='type-id-182' mangled-name='PyCode_Type' visibility='default' filepath='./Include/cpython/code.h' line='111' column='1' elf-symbol-id='PyCode_Type'/>
+    <function-decl name='_PyCode_SetExtra' mangled-name='_PyCode_SetExtra' filepath='Objects/codeobject.c' line='1083' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_SetExtra'>
+      <parameter type-id='type-id-100' name='code' filepath='Objects/codeobject.c' line='1083' column='1'/>
+      <parameter type-id='type-id-15' name='index' filepath='Objects/codeobject.c' line='1083' column='1'/>
+      <parameter type-id='type-id-32' name='extra' filepath='Objects/codeobject.c' line='1083' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyCode_GetExtra' mangled-name='_PyCode_GetExtra' filepath='Objects/codeobject.c' line='1062' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_GetExtra'>
+      <parameter type-id='type-id-100' name='code' filepath='Objects/codeobject.c' line='1062' column='1'/>
+      <parameter type-id='type-id-15' name='index' filepath='Objects/codeobject.c' line='1062' column='1'/>
+      <parameter type-id='type-id-283' name='extra' filepath='Objects/codeobject.c' line='1062' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <class-decl name='_PyOpcache' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_code.h' line='13' column='1' id='type-id-419'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='u' type-id='type-id-433' visibility='default' filepath='./Include/internal/pycore_code.h' line='16' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='27840'>
-        <var-decl name='pyexitfunc' type-id='type-id-112' visibility='default' filepath='./Include/internal/pycore_interp.h' line='133' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='optimized' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_code.h' line='17' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='27904'>
-        <var-decl name='pyexitmodule' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='134' column='1'/>
+    </class-decl>
+    <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_code.h' line='14' column='1' id='type-id-433'>
+      <data-member access='private'>
+        <var-decl name='lg' type-id='type-id-434' visibility='default' filepath='./Include/internal/pycore_code.h' line='15' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='27968'>
-        <var-decl name='tstate_next_unique_id' type-id='type-id-238' visibility='default' filepath='./Include/internal/pycore_interp.h' line='136' column='1'/>
+    </union-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-434' visibility='default' filepath='./Include/internal/pycore_code.h' line='7' column='1' id='type-id-435'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ptr' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_code.h' line='8' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='28032'>
-        <var-decl name='warnings' type-id='type-id-324' visibility='default' filepath='./Include/internal/pycore_interp.h' line='138' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='globals_ver' type-id='type-id-238' visibility='default' filepath='./Include/internal/pycore_code.h' line='9' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='28288'>
-        <var-decl name='audit_hooks' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='140' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='builtins_ver' type-id='type-id-238' visibility='default' filepath='./Include/internal/pycore_code.h' line='10' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='28352'>
-        <var-decl name='parser' type-id='type-id-325' visibility='default' filepath='./Include/internal/pycore_interp.h' line='147' column='1'/>
+    </class-decl>
+    <typedef-decl name='_PyOpcache_LoadGlobal' type-id='type-id-435' filepath='./Include/internal/pycore_code.h' line='11' column='1' id='type-id-434'/>
+    <class-decl name='_addr_pair' size-in-bits='64' is-struct='yes' visibility='default' filepath='./Include/cpython/code.h' line='138' column='1' id='type-id-436'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ap_lower' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='139' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='28416'>
-        <var-decl name='small_ints' type-id='type-id-326' visibility='default' filepath='./Include/internal/pycore_interp.h' line='155' column='1'/>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='ap_upper' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='140' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-313' size-in-bits='64' id='type-id-314'/>
-    <class-decl name='pyruntimestate' size-in-bits='5248' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='52' column='1' id='type-id-327'>
+    <typedef-decl name='PyAddrPair' type-id='type-id-436' filepath='./Include/cpython/code.h' line='141' column='1' id='type-id-437'/>
+    <pointer-type-def type-id='type-id-437' size-in-bits='64' id='type-id-438'/>
+    <function-decl name='_PyCode_CheckLineNumber' mangled-name='_PyCode_CheckLineNumber' filepath='Objects/codeobject.c' line='1010' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_CheckLineNumber'>
+      <parameter type-id='type-id-412' name='co' filepath='Objects/codeobject.c' line='1010' column='1'/>
+      <parameter type-id='type-id-8' name='lasti' filepath='Objects/codeobject.c' line='1010' column='1'/>
+      <parameter type-id='type-id-438' name='bounds' filepath='Objects/codeobject.c' line='1010' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyCode_Addr2Line' mangled-name='PyCode_Addr2Line' filepath='Objects/codeobject.c' line='991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_Addr2Line'>
+      <parameter type-id='type-id-412' name='co' filepath='Objects/codeobject.c' line='991' column='1'/>
+      <parameter type-id='type-id-8' name='addrq' filepath='Objects/codeobject.c' line='991' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyCode_ConstantKey' mangled-name='_PyCode_ConstantKey' filepath='Objects/codeobject.c' line='707' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_ConstantKey'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/codeobject.c' line='707' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyCode_NewEmpty' mangled-name='PyCode_NewEmpty' filepath='Objects/codeobject.c' line='332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_NewEmpty'>
+      <parameter type-id='type-id-3' name='filename' filepath='Objects/codeobject.c' line='332' column='1'/>
+      <parameter type-id='type-id-3' name='funcname' filepath='Objects/codeobject.c' line='332' column='1'/>
+      <parameter type-id='type-id-8' name='firstlineno' filepath='Objects/codeobject.c' line='332' column='1'/>
+      <return type-id='type-id-412'/>
+    </function-decl>
+    <function-decl name='PyCode_New' mangled-name='PyCode_New' filepath='Objects/codeobject.c' line='275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_New'>
+      <parameter type-id='type-id-8' name='argcount' filepath='Objects/codeobject.c' line='275' column='1'/>
+      <parameter type-id='type-id-8' name='kwonlyargcount' filepath='Objects/codeobject.c' line='275' column='1'/>
+      <parameter type-id='type-id-8' name='nlocals' filepath='Objects/codeobject.c' line='276' column='1'/>
+      <parameter type-id='type-id-8' name='stacksize' filepath='Objects/codeobject.c' line='276' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Objects/codeobject.c' line='276' column='1'/>
+      <parameter type-id='type-id-100' name='code' filepath='Objects/codeobject.c' line='277' column='1'/>
+      <parameter type-id='type-id-100' name='consts' filepath='Objects/codeobject.c' line='277' column='1'/>
+      <parameter type-id='type-id-100' name='names' filepath='Objects/codeobject.c' line='277' column='1'/>
+      <parameter type-id='type-id-100' name='varnames' filepath='Objects/codeobject.c' line='278' column='1'/>
+      <parameter type-id='type-id-100' name='freevars' filepath='Objects/codeobject.c' line='278' column='1'/>
+      <parameter type-id='type-id-100' name='cellvars' filepath='Objects/codeobject.c' line='278' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Objects/codeobject.c' line='279' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/codeobject.c' line='279' column='1'/>
+      <parameter type-id='type-id-8' name='firstlineno' filepath='Objects/codeobject.c' line='279' column='1'/>
+      <parameter type-id='type-id-100' name='lnotab' filepath='Objects/codeobject.c' line='280' column='1'/>
+      <return type-id='type-id-412'/>
+    </function-decl>
+    <function-decl name='PyCode_NewWithPosOnlyArgs' mangled-name='PyCode_NewWithPosOnlyArgs' filepath='Objects/codeobject.c' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_NewWithPosOnlyArgs'>
+      <parameter type-id='type-id-8' name='argcount' filepath='Objects/codeobject.c' line='117' column='1'/>
+      <parameter type-id='type-id-8' name='posonlyargcount' filepath='Objects/codeobject.c' line='117' column='1'/>
+      <parameter type-id='type-id-8' name='kwonlyargcount' filepath='Objects/codeobject.c' line='117' column='1'/>
+      <parameter type-id='type-id-8' name='nlocals' filepath='Objects/codeobject.c' line='118' column='1'/>
+      <parameter type-id='type-id-8' name='stacksize' filepath='Objects/codeobject.c' line='118' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Objects/codeobject.c' line='118' column='1'/>
+      <parameter type-id='type-id-100' name='code' filepath='Objects/codeobject.c' line='119' column='1'/>
+      <parameter type-id='type-id-100' name='consts' filepath='Objects/codeobject.c' line='119' column='1'/>
+      <parameter type-id='type-id-100' name='names' filepath='Objects/codeobject.c' line='119' column='1'/>
+      <parameter type-id='type-id-100' name='varnames' filepath='Objects/codeobject.c' line='120' column='1'/>
+      <parameter type-id='type-id-100' name='freevars' filepath='Objects/codeobject.c' line='120' column='1'/>
+      <parameter type-id='type-id-100' name='cellvars' filepath='Objects/codeobject.c' line='120' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Objects/codeobject.c' line='121' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/codeobject.c' line='121' column='1'/>
+      <parameter type-id='type-id-8' name='firstlineno' filepath='Objects/codeobject.c' line='121' column='1'/>
+      <parameter type-id='type-id-100' name='lnotab' filepath='Objects/codeobject.c' line='122' column='1'/>
+      <return type-id='type-id-412'/>
+    </function-decl>
+    <function-decl name='PyBytes_Size' mangled-name='PyBytes_Size' filepath='./Include/bytesobject.h' line='44' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyComplex_AsCComplex' mangled-name='PyComplex_AsCComplex' filepath='./Include/complexobject.h' line='52' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PySet_NextEntry' mangled-name='_PySet_NextEntry' filepath='./Include/setobject.h' line='71' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFrozenSet_New' mangled-name='PyFrozenSet_New' filepath='./Include/setobject.h' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_FromVoidPtr' mangled-name='PyLong_FromVoidPtr' filepath='./Include/longobject.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyArg_ParseTuple' mangled-name='PyArg_ParseTuple' filepath='./Include/modsupport.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_Copy' mangled-name='_PyUnicode_Copy' filepath='./Include/cpython/unicodeobject.h' line='477' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyBytes_FromString' mangled-name='PyBytes_FromString' filepath='./Include/bytesobject.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Compare' mangled-name='PyUnicode_Compare' filepath='./Include/unicodeobject.h' line='965' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySequence_Tuple' mangled-name='PySequence_Tuple' filepath='./Include/abstract.h' line='679' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/complexobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyComplex_Type' type-id='type-id-182' mangled-name='PyComplex_Type' visibility='default' filepath='./Include/complexobject.h' line='39' column='1' elf-symbol-id='PyComplex_Type'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-439' visibility='default' filepath='./Include/complexobject.h' line='10' column='1' id='type-id-440'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='preinitializing' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='54' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='preinitialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='57' column='1'/>
+        <var-decl name='real' type-id='type-id-441' visibility='default' filepath='./Include/complexobject.h' line='11' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='core_initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='60' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='63' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='_finalizing' type-id='type-id-328' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='70' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='interpreters' type-id='type-id-329' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='85' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='xidregistry' type-id='type-id-330' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='90' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='main_thread' type-id='type-id-33' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='92' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='exitfuncs' type-id='type-id-331' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='95' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2688'>
-        <var-decl name='nexitfuncs' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='96' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2752'>
-        <var-decl name='ceval' type-id='type-id-332' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='98' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='4480'>
-        <var-decl name='gilstate' type-id='type-id-333' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='99' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='4736'>
-        <var-decl name='preconfig' type-id='type-id-334' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='101' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='5056'>
-        <var-decl name='open_code_hook' type-id='type-id-335' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='103' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='5120'>
-        <var-decl name='open_code_userdata' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='104' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='5184'>
-        <var-decl name='audit_hook_head' type-id='type-id-336' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='105' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='_Py_atomic_address' size-in-bits='64' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_atomic.h' line='45' column='1' id='type-id-337'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_value' type-id='type-id-338' visibility='default' filepath='./Include/internal/pycore_atomic.h' line='46' column='1'/>
+        <var-decl name='imag' type-id='type-id-441' visibility='default' filepath='./Include/complexobject.h' line='12' column='1'/>
       </data-member>
     </class-decl>
-    <type-decl name='atomic_uintptr_t' size-in-bits='64' id='type-id-338'/>
-    <typedef-decl name='_Py_atomic_address' type-id='type-id-337' filepath='./Include/internal/pycore_atomic.h' line='47' column='1' id='type-id-328'/>
-    <class-decl name='pyinterpreters' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='72' column='1' id='type-id-329'>
+    <type-decl name='double' size-in-bits='64' id='type-id-441'/>
+    <typedef-decl name='Py_complex' type-id='type-id-440' filepath='./Include/complexobject.h' line='13' column='1' id='type-id-439'/>
+    <function-decl name='PyComplex_AsCComplex' mangled-name='PyComplex_AsCComplex' filepath='Objects/complexobject.c' line='311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_AsCComplex'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/complexobject.c' line='311' column='1'/>
+      <return type-id='type-id-439'/>
+    </function-decl>
+    <function-decl name='PyComplex_ImagAsDouble' mangled-name='PyComplex_ImagAsDouble' filepath='Objects/complexobject.c' line='266' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_ImagAsDouble'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/complexobject.c' line='266' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='PyComplex_RealAsDouble' mangled-name='PyComplex_RealAsDouble' filepath='Objects/complexobject.c' line='255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_RealAsDouble'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/complexobject.c' line='255' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='PyComplex_FromDoubles' mangled-name='PyComplex_FromDoubles' filepath='Objects/complexobject.c' line='246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_FromDoubles'>
+      <parameter type-id='type-id-441' name='real' filepath='Objects/complexobject.c' line='246' column='1'/>
+      <parameter type-id='type-id-441' name='imag' filepath='Objects/complexobject.c' line='246' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyComplex_FromCComplex' mangled-name='PyComplex_FromCComplex' filepath='Objects/complexobject.c' line='223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_FromCComplex'>
+      <parameter type-id='type-id-439' name='cval' filepath='Objects/complexobject.c' line='223' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_Py_c_abs' mangled-name='_Py_c_abs' filepath='Objects/complexobject.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_abs'>
+      <parameter type-id='type-id-439' name='z' filepath='Objects/complexobject.c' line='180' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='_Py_c_pow' mangled-name='_Py_c_pow' filepath='Objects/complexobject.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_pow'>
+      <parameter type-id='type-id-439' name='a' filepath='Objects/complexobject.c' line='124' column='1'/>
+      <parameter type-id='type-id-439' name='b' filepath='Objects/complexobject.c' line='124' column='1'/>
+      <return type-id='type-id-439'/>
+    </function-decl>
+    <function-decl name='_Py_c_quot' mangled-name='_Py_c_quot' filepath='Objects/complexobject.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_quot'>
+      <parameter type-id='type-id-439' name='a' filepath='Objects/complexobject.c' line='63' column='1'/>
+      <parameter type-id='type-id-439' name='b' filepath='Objects/complexobject.c' line='63' column='1'/>
+      <return type-id='type-id-439'/>
+    </function-decl>
+    <function-decl name='_Py_c_prod' mangled-name='_Py_c_prod' filepath='Objects/complexobject.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_prod'>
+      <parameter type-id='type-id-439' name='a' filepath='Objects/complexobject.c' line='50' column='1'/>
+      <parameter type-id='type-id-439' name='b' filepath='Objects/complexobject.c' line='50' column='1'/>
+      <return type-id='type-id-439'/>
+    </function-decl>
+    <function-decl name='_Py_c_neg' mangled-name='_Py_c_neg' filepath='Objects/complexobject.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_neg'>
+      <parameter type-id='type-id-439' name='a' filepath='Objects/complexobject.c' line='41' column='1'/>
+      <return type-id='type-id-439'/>
+    </function-decl>
+    <function-decl name='_Py_c_diff' mangled-name='_Py_c_diff' filepath='Objects/complexobject.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_diff'>
+      <parameter type-id='type-id-439' name='a' filepath='Objects/complexobject.c' line='50' column='1'/>
+      <parameter type-id='type-id-439' name='b' filepath='Objects/complexobject.c' line='50' column='1'/>
+      <return type-id='type-id-439'/>
+    </function-decl>
+    <function-decl name='_Py_c_sum' mangled-name='_Py_c_sum' filepath='Objects/complexobject.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_sum'>
+      <parameter type-id='type-id-439' name='a' filepath='Objects/complexobject.c' line='50' column='1'/>
+      <parameter type-id='type-id-439' name='b' filepath='Objects/complexobject.c' line='50' column='1'/>
+      <return type-id='type-id-439'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_Init' mangled-name='_PyUnicodeWriter_Init' filepath='./Include/cpython/unicodeobject.h' line='634' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyComplex_FormatAdvancedWriter' mangled-name='_PyComplex_FormatAdvancedWriter' filepath='./Include/complexobject.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_Finish' mangled-name='_PyUnicodeWriter_Finish' filepath='./Include/cpython/unicodeobject.h' line='714' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_Dealloc' mangled-name='_PyUnicodeWriter_Dealloc' filepath='./Include/cpython/unicodeobject.h' line='718' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_HashDouble' mangled-name='_Py_HashDouble' filepath='./Include/pyhash.h' line='10' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='hypot' mangled-name='hypot' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='pow' mangled-name='pow' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='140' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='atan2' mangled-name='atan2' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__builtin_sincos' mangled-name='sincos' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='exp' mangled-name='exp' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='95' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='log' mangled-name='log' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='104' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_TransformDecimalAndSpaceToASCII' mangled-name='_PyUnicode_TransformDecimalAndSpaceToASCII' filepath='./Include/cpython/unicodeobject.h' line='1016' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_string_to_number_with_underscores' mangled-name='_Py_string_to_number_with_underscores' filepath='./Include/pystrtod.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_Float' mangled-name='PyNumber_Float' filepath='./Include/abstract.h' line='521' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/descrobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyMethodDescr_Type' type-id='type-id-182' mangled-name='PyMethodDescr_Type' visibility='default' filepath='./Include/descrobject.h' line='79' column='1' elf-symbol-id='PyMethodDescr_Type'/>
+    <var-decl name='PyClassMethodDescr_Type' type-id='type-id-182' mangled-name='PyClassMethodDescr_Type' visibility='default' filepath='./Include/descrobject.h' line='76' column='1' elf-symbol-id='PyClassMethodDescr_Type'/>
+    <var-decl name='PyMemberDescr_Type' type-id='type-id-182' mangled-name='PyMemberDescr_Type' visibility='default' filepath='./Include/descrobject.h' line='78' column='1' elf-symbol-id='PyMemberDescr_Type'/>
+    <var-decl name='PyGetSetDescr_Type' type-id='type-id-182' mangled-name='PyGetSetDescr_Type' visibility='default' filepath='./Include/descrobject.h' line='77' column='1' elf-symbol-id='PyGetSetDescr_Type'/>
+    <var-decl name='PyWrapperDescr_Type' type-id='type-id-182' mangled-name='PyWrapperDescr_Type' visibility='default' filepath='./Include/descrobject.h' line='80' column='1' elf-symbol-id='PyWrapperDescr_Type'/>
+    <var-decl name='_PyMethodWrapper_Type' type-id='type-id-182' mangled-name='_PyMethodWrapper_Type' visibility='default' filepath='./Include/descrobject.h' line='83' column='1' elf-symbol-id='_PyMethodWrapper_Type'/>
+    <var-decl name='PyDictProxy_Type' type-id='type-id-182' mangled-name='PyDictProxy_Type' visibility='default' filepath='./Include/descrobject.h' line='81' column='1' elf-symbol-id='PyDictProxy_Type'/>
+    <var-decl name='PyProperty_Type' type-id='type-id-182' mangled-name='PyProperty_Type' visibility='default' filepath='./Include/descrobject.h' line='103' column='1' elf-symbol-id='PyProperty_Type'/>
+    <function-decl name='PyWrapper_New' mangled-name='PyWrapper_New' filepath='Objects/descrobject.c' line='1435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWrapper_New'>
+      <parameter type-id='type-id-100' name='d' filepath='Objects/descrobject.c' line='1435' column='1'/>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/descrobject.c' line='1435' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyDictProxy_New' mangled-name='PyDictProxy_New' filepath='Objects/descrobject.c' line='1232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDictProxy_New'>
+      <parameter type-id='type-id-100' name='mapping' filepath='Objects/descrobject.c' line='1232' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <class-decl name='wrapperbase' size-in-bits='448' is-struct='yes' visibility='default' filepath='./Include/descrobject.h' line='26' column='1' id='type-id-442'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='mutex' type-id='type-id-317' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='73' column='1'/>
+        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/descrobject.h' line='27' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='head' type-id='type-id-311' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='74' column='1'/>
+        <var-decl name='offset' type-id='type-id-8' visibility='default' filepath='./Include/descrobject.h' line='28' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='main' type-id='type-id-311' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='75' column='1'/>
+        <var-decl name='function' type-id='type-id-32' visibility='default' filepath='./Include/descrobject.h' line='29' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='next_id' type-id='type-id-316' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='84' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='PyThread_type_lock' type-id='type-id-32' filepath='./Include/pythread.h' line='5' column='1' id='type-id-317'/>
-    <typedef-decl name='PyInterpreterState' type-id='type-id-313' filepath='./Include/pystate.h' line='22' column='1' id='type-id-339'/>
-    <pointer-type-def type-id='type-id-339' size-in-bits='64' id='type-id-311'/>
-    <typedef-decl name='__int64_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='44' column='1' id='type-id-340'/>
-    <typedef-decl name='int64_t' type-id='type-id-340' filepath='/usr/include/x86_64-linux-gnu/bits/stdint-intn.h' line='27' column='1' id='type-id-316'/>
-    <class-decl name='_xidregistry' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='87' column='1' id='type-id-330'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='mutex' type-id='type-id-317' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='88' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='head' type-id='type-id-341' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='89' column='1'/>
+        <var-decl name='wrapper' type-id='type-id-443' visibility='default' filepath='./Include/descrobject.h' line='30' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='_xidregitem' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='176' column='1' id='type-id-342'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='cls' type-id='type-id-75' visibility='default' filepath='./Include/internal/pycore_interp.h' line='177' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='doc' type-id='type-id-3' visibility='default' filepath='./Include/descrobject.h' line='31' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='getdata' type-id='type-id-343' visibility='default' filepath='./Include/internal/pycore_interp.h' line='178' column='1'/>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='flags' type-id='type-id-8' visibility='default' filepath='./Include/descrobject.h' line='32' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='next' type-id='type-id-341' visibility='default' filepath='./Include/internal/pycore_interp.h' line='179' column='1'/>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='name_strobj' type-id='type-id-100' visibility='default' filepath='./Include/descrobject.h' line='33' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_xid' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='209' column='1' id='type-id-344'>
+    <pointer-type-def type-id='type-id-444' size-in-bits='64' id='type-id-445'/>
+    <typedef-decl name='wrapperfunc' type-id='type-id-445' filepath='./Include/descrobject.h' line='20' column='1' id='type-id-443'/>
+    <pointer-type-def type-id='type-id-442' size-in-bits='64' id='type-id-446'/>
+    <function-decl name='PyDescr_NewWrapper' mangled-name='PyDescr_NewWrapper' filepath='Objects/descrobject.c' line='987' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewWrapper'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/descrobject.c' line='987' column='1'/>
+      <parameter type-id='type-id-446' name='base' filepath='Objects/descrobject.c' line='987' column='1'/>
+      <parameter type-id='type-id-32' name='wrapped' filepath='Objects/descrobject.c' line='987' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <typedef-decl name='PyGetSetDef' type-id='type-id-175' filepath='./Include/descrobject.h' line='17' column='1' id='type-id-447'/>
+    <pointer-type-def type-id='type-id-447' size-in-bits='64' id='type-id-448'/>
+    <function-decl name='PyDescr_NewGetSet' mangled-name='PyDescr_NewGetSet' filepath='Objects/descrobject.c' line='975' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewGetSet'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/descrobject.c' line='975' column='1'/>
+      <parameter type-id='type-id-448' name='getset' filepath='Objects/descrobject.c' line='975' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <typedef-decl name='PyMemberDef' type-id='type-id-174' filepath='./Include/structmember.h' line='24' column='1' id='type-id-449'/>
+    <pointer-type-def type-id='type-id-449' size-in-bits='64' id='type-id-450'/>
+    <function-decl name='PyDescr_NewMember' mangled-name='PyDescr_NewMember' filepath='Objects/descrobject.c' line='963' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewMember'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/descrobject.c' line='963' column='1'/>
+      <parameter type-id='type-id-450' name='member' filepath='Objects/descrobject.c' line='963' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <typedef-decl name='PyMethodDef' type-id='type-id-172' filepath='./Include/methodobject.h' line='42' column='1' id='type-id-451'/>
+    <pointer-type-def type-id='type-id-451' size-in-bits='64' id='type-id-452'/>
+    <function-decl name='PyDescr_NewClassMethod' mangled-name='PyDescr_NewClassMethod' filepath='Objects/descrobject.c' line='951' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewClassMethod'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/descrobject.c' line='951' column='1'/>
+      <parameter type-id='type-id-452' name='method' filepath='Objects/descrobject.c' line='951' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyDescr_NewMethod' mangled-name='PyDescr_NewMethod' filepath='Objects/descrobject.c' line='905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewMethod'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/descrobject.c' line='905' column='1'/>
+      <parameter type-id='type-id-452' name='method' filepath='Objects/descrobject.c' line='905' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_SetAttrId' mangled-name='_PyObject_SetAttrId' filepath='./Include/cpython/object.h' line='316' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMapping_Check' mangled-name='PyMapping_Check' filepath='./Include/abstract.h' line='762' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Type' mangled-name='PyObject_Type' filepath='./Include/abstract.h' line='268' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyType_GetTextSignatureFromInternalDoc' mangled-name='_PyType_GetTextSignatureFromInternalDoc' filepath='./Include/cpython/object.h' line='306' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyType_GetDocFromInternalDoc' mangled-name='_PyType_GetDocFromInternalDoc' filepath='./Include/cpython/object.h' line='305' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTrash_end' mangled-name='_PyTrash_end' filepath='./Include/cpython/object.h' line='521' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTrash_begin' mangled-name='_PyTrash_begin' filepath='./Include/cpython/object.h' line='520' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_GC_UnTrack' mangled-name='PyObject_GC_UnTrack' filepath='./Include/objimpl.h' line='180' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyArg_UnpackStack' mangled-name='_PyArg_UnpackStack' filepath='./Include/modsupport.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySequence_Contains' mangled-name='PySequence_Contains' filepath='./Include/abstract.h' line='721' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_Contains' mangled-name='PyDict_Contains' filepath='./Include/dictobject.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_Or' mangled-name='PyNumber_Or' filepath='./Include/abstract.h' line='493' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyType_GenericAlloc' mangled-name='PyType_GenericAlloc' filepath='./Include/object.h' line='234' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_RealIsSubclass' mangled-name='_PyObject_RealIsSubclass' filepath='./Include/cpython/abstract.h' line='367' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTuple_GetSlice' mangled-name='PyTuple_GetSlice' filepath='./Include/tupleobject.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_FunctionStr' mangled-name='_PyObject_FunctionStr' filepath='./Include/cpython/object.h' line='345' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyStack_AsDict' mangled-name='_PyStack_AsDict' filepath='./Include/cpython/abstract.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMember_SetOne' mangled-name='PyMember_SetOne' filepath='./Include/structmember.h' line='68' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCMethod_New' mangled-name='PyCMethod_New' filepath='./Include/methodobject.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_IsAbstract' mangled-name='_PyObject_IsAbstract' filepath='./Include/cpython/object.h' line='314' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMember_GetOne' mangled-name='PyMember_GetOne' filepath='./Include/structmember.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_VectorcallDict' mangled-name='PyObject_VectorcallDict' filepath='./Include/cpython/abstract.h' line='142' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-type size-in-bits='64' id='type-id-444'>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-32'/>
+      <return type-id='type-id-100'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/enumobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyEnum_Type' type-id='type-id-182' mangled-name='PyEnum_Type' visibility='default' filepath='./Include/enumobject.h' line='10' column='1' elf-symbol-id='PyEnum_Type'/>
+    <var-decl name='PyReversed_Type' type-id='type-id-182' mangled-name='PyReversed_Type' visibility='default' filepath='./Include/enumobject.h' line='11' column='1' elf-symbol-id='PyReversed_Type'/>
+    <function-decl name='PySequence_Size' mangled-name='PySequence_Size' filepath='./Include/abstract.h' line='623' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySequence_GetItem' mangled-name='PySequence_GetItem' filepath='./Include/abstract.h' line='645' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_Add' mangled-name='PyNumber_Add' filepath='./Include/abstract.h' line='399' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySequence_Check' mangled-name='PySequence_Check' filepath='./Include/abstract.h' line='620' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/exceptions.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyExc_EnvironmentError' type-id='type-id-100' mangled-name='PyExc_EnvironmentError' visibility='default' filepath='./Include/pyerrors.h' line='138' column='1' elf-symbol-id='PyExc_EnvironmentError'/>
+    <var-decl name='PyExc_IOError' type-id='type-id-100' mangled-name='PyExc_IOError' visibility='default' filepath='./Include/pyerrors.h' line='139' column='1' elf-symbol-id='PyExc_IOError'/>
+    <var-decl name='PyExc_BaseException' type-id='type-id-100' mangled-name='PyExc_BaseException' visibility='default' filepath='./Include/pyerrors.h' line='72' column='1' elf-symbol-id='PyExc_BaseException'/>
+    <var-decl name='PyExc_Exception' type-id='type-id-100' mangled-name='PyExc_Exception' visibility='default' filepath='./Include/pyerrors.h' line='73' column='1' elf-symbol-id='PyExc_Exception'/>
+    <var-decl name='PyExc_TypeError' type-id='type-id-100' mangled-name='PyExc_TypeError' visibility='default' filepath='./Include/pyerrors.h' line='109' column='1' elf-symbol-id='PyExc_TypeError'/>
+    <var-decl name='PyExc_StopAsyncIteration' type-id='type-id-100' mangled-name='PyExc_StopAsyncIteration' visibility='default' filepath='./Include/pyerrors.h' line='75' column='1' elf-symbol-id='PyExc_StopAsyncIteration'/>
+    <var-decl name='PyExc_StopIteration' type-id='type-id-100' mangled-name='PyExc_StopIteration' visibility='default' filepath='./Include/pyerrors.h' line='77' column='1' elf-symbol-id='PyExc_StopIteration'/>
+    <var-decl name='PyExc_GeneratorExit' type-id='type-id-100' mangled-name='PyExc_GeneratorExit' visibility='default' filepath='./Include/pyerrors.h' line='78' column='1' elf-symbol-id='PyExc_GeneratorExit'/>
+    <var-decl name='PyExc_SystemExit' type-id='type-id-100' mangled-name='PyExc_SystemExit' visibility='default' filepath='./Include/pyerrors.h' line='108' column='1' elf-symbol-id='PyExc_SystemExit'/>
+    <var-decl name='PyExc_KeyboardInterrupt' type-id='type-id-100' mangled-name='PyExc_KeyboardInterrupt' visibility='default' filepath='./Include/pyerrors.h' line='94' column='1' elf-symbol-id='PyExc_KeyboardInterrupt'/>
+    <var-decl name='PyExc_ImportError' type-id='type-id-100' mangled-name='PyExc_ImportError' visibility='default' filepath='./Include/pyerrors.h' line='88' column='1' elf-symbol-id='PyExc_ImportError'/>
+    <var-decl name='PyExc_ModuleNotFoundError' type-id='type-id-100' mangled-name='PyExc_ModuleNotFoundError' visibility='default' filepath='./Include/pyerrors.h' line='90' column='1' elf-symbol-id='PyExc_ModuleNotFoundError'/>
+    <var-decl name='PyExc_OSError' type-id='type-id-100' mangled-name='PyExc_OSError' visibility='default' filepath='./Include/pyerrors.h' line='87' column='1' elf-symbol-id='PyExc_OSError'/>
+    <var-decl name='PyExc_BlockingIOError' type-id='type-id-100' mangled-name='PyExc_BlockingIOError' visibility='default' filepath='./Include/pyerrors.h' line='119' column='1' elf-symbol-id='PyExc_BlockingIOError'/>
+    <var-decl name='PyExc_ConnectionError' type-id='type-id-100' mangled-name='PyExc_ConnectionError' visibility='default' filepath='./Include/pyerrors.h' line='122' column='1' elf-symbol-id='PyExc_ConnectionError'/>
+    <var-decl name='PyExc_ChildProcessError' type-id='type-id-100' mangled-name='PyExc_ChildProcessError' visibility='default' filepath='./Include/pyerrors.h' line='121' column='1' elf-symbol-id='PyExc_ChildProcessError'/>
+    <var-decl name='PyExc_BrokenPipeError' type-id='type-id-100' mangled-name='PyExc_BrokenPipeError' visibility='default' filepath='./Include/pyerrors.h' line='120' column='1' elf-symbol-id='PyExc_BrokenPipeError'/>
+    <var-decl name='PyExc_ConnectionAbortedError' type-id='type-id-100' mangled-name='PyExc_ConnectionAbortedError' visibility='default' filepath='./Include/pyerrors.h' line='123' column='1' elf-symbol-id='PyExc_ConnectionAbortedError'/>
+    <var-decl name='PyExc_ConnectionRefusedError' type-id='type-id-100' mangled-name='PyExc_ConnectionRefusedError' visibility='default' filepath='./Include/pyerrors.h' line='124' column='1' elf-symbol-id='PyExc_ConnectionRefusedError'/>
+    <var-decl name='PyExc_ConnectionResetError' type-id='type-id-100' mangled-name='PyExc_ConnectionResetError' visibility='default' filepath='./Include/pyerrors.h' line='125' column='1' elf-symbol-id='PyExc_ConnectionResetError'/>
+    <var-decl name='PyExc_FileExistsError' type-id='type-id-100' mangled-name='PyExc_FileExistsError' visibility='default' filepath='./Include/pyerrors.h' line='126' column='1' elf-symbol-id='PyExc_FileExistsError'/>
+    <var-decl name='PyExc_FileNotFoundError' type-id='type-id-100' mangled-name='PyExc_FileNotFoundError' visibility='default' filepath='./Include/pyerrors.h' line='127' column='1' elf-symbol-id='PyExc_FileNotFoundError'/>
+    <var-decl name='PyExc_IsADirectoryError' type-id='type-id-100' mangled-name='PyExc_IsADirectoryError' visibility='default' filepath='./Include/pyerrors.h' line='129' column='1' elf-symbol-id='PyExc_IsADirectoryError'/>
+    <var-decl name='PyExc_NotADirectoryError' type-id='type-id-100' mangled-name='PyExc_NotADirectoryError' visibility='default' filepath='./Include/pyerrors.h' line='130' column='1' elf-symbol-id='PyExc_NotADirectoryError'/>
+    <var-decl name='PyExc_InterruptedError' type-id='type-id-100' mangled-name='PyExc_InterruptedError' visibility='default' filepath='./Include/pyerrors.h' line='128' column='1' elf-symbol-id='PyExc_InterruptedError'/>
+    <var-decl name='PyExc_PermissionError' type-id='type-id-100' mangled-name='PyExc_PermissionError' visibility='default' filepath='./Include/pyerrors.h' line='131' column='1' elf-symbol-id='PyExc_PermissionError'/>
+    <var-decl name='PyExc_ProcessLookupError' type-id='type-id-100' mangled-name='PyExc_ProcessLookupError' visibility='default' filepath='./Include/pyerrors.h' line='132' column='1' elf-symbol-id='PyExc_ProcessLookupError'/>
+    <var-decl name='PyExc_TimeoutError' type-id='type-id-100' mangled-name='PyExc_TimeoutError' visibility='default' filepath='./Include/pyerrors.h' line='133' column='1' elf-symbol-id='PyExc_TimeoutError'/>
+    <var-decl name='PyExc_EOFError' type-id='type-id-100' mangled-name='PyExc_EOFError' visibility='default' filepath='./Include/pyerrors.h' line='85' column='1' elf-symbol-id='PyExc_EOFError'/>
+    <var-decl name='PyExc_RuntimeError' type-id='type-id-100' mangled-name='PyExc_RuntimeError' visibility='default' filepath='./Include/pyerrors.h' line='98' column='1' elf-symbol-id='PyExc_RuntimeError'/>
+    <var-decl name='PyExc_RecursionError' type-id='type-id-100' mangled-name='PyExc_RecursionError' visibility='default' filepath='./Include/pyerrors.h' line='100' column='1' elf-symbol-id='PyExc_RecursionError'/>
+    <var-decl name='PyExc_NotImplementedError' type-id='type-id-100' mangled-name='PyExc_NotImplementedError' visibility='default' filepath='./Include/pyerrors.h' line='102' column='1' elf-symbol-id='PyExc_NotImplementedError'/>
+    <var-decl name='PyExc_NameError' type-id='type-id-100' mangled-name='PyExc_NameError' visibility='default' filepath='./Include/pyerrors.h' line='96' column='1' elf-symbol-id='PyExc_NameError'/>
+    <var-decl name='PyExc_UnboundLocalError' type-id='type-id-100' mangled-name='PyExc_UnboundLocalError' visibility='default' filepath='./Include/pyerrors.h' line='110' column='1' elf-symbol-id='PyExc_UnboundLocalError'/>
+    <var-decl name='PyExc_AttributeError' type-id='type-id-100' mangled-name='PyExc_AttributeError' visibility='default' filepath='./Include/pyerrors.h' line='83' column='1' elf-symbol-id='PyExc_AttributeError'/>
+    <var-decl name='PyExc_SyntaxError' type-id='type-id-100' mangled-name='PyExc_SyntaxError' visibility='default' filepath='./Include/pyerrors.h' line='103' column='1' elf-symbol-id='PyExc_SyntaxError'/>
+    <var-decl name='PyExc_IndentationError' type-id='type-id-100' mangled-name='PyExc_IndentationError' visibility='default' filepath='./Include/pyerrors.h' line='104' column='1' elf-symbol-id='PyExc_IndentationError'/>
+    <var-decl name='PyExc_TabError' type-id='type-id-100' mangled-name='PyExc_TabError' visibility='default' filepath='./Include/pyerrors.h' line='105' column='1' elf-symbol-id='PyExc_TabError'/>
+    <var-decl name='PyExc_LookupError' type-id='type-id-100' mangled-name='PyExc_LookupError' visibility='default' filepath='./Include/pyerrors.h' line='80' column='1' elf-symbol-id='PyExc_LookupError'/>
+    <var-decl name='PyExc_IndexError' type-id='type-id-100' mangled-name='PyExc_IndexError' visibility='default' filepath='./Include/pyerrors.h' line='92' column='1' elf-symbol-id='PyExc_IndexError'/>
+    <var-decl name='PyExc_KeyError' type-id='type-id-100' mangled-name='PyExc_KeyError' visibility='default' filepath='./Include/pyerrors.h' line='93' column='1' elf-symbol-id='PyExc_KeyError'/>
+    <var-decl name='PyExc_ValueError' type-id='type-id-100' mangled-name='PyExc_ValueError' visibility='default' filepath='./Include/pyerrors.h' line='115' column='1' elf-symbol-id='PyExc_ValueError'/>
+    <var-decl name='PyExc_UnicodeError' type-id='type-id-100' mangled-name='PyExc_UnicodeError' visibility='default' filepath='./Include/pyerrors.h' line='111' column='1' elf-symbol-id='PyExc_UnicodeError'/>
+    <var-decl name='PyExc_UnicodeEncodeError' type-id='type-id-100' mangled-name='PyExc_UnicodeEncodeError' visibility='default' filepath='./Include/pyerrors.h' line='112' column='1' elf-symbol-id='PyExc_UnicodeEncodeError'/>
+    <var-decl name='PyExc_UnicodeDecodeError' type-id='type-id-100' mangled-name='PyExc_UnicodeDecodeError' visibility='default' filepath='./Include/pyerrors.h' line='113' column='1' elf-symbol-id='PyExc_UnicodeDecodeError'/>
+    <var-decl name='PyExc_UnicodeTranslateError' type-id='type-id-100' mangled-name='PyExc_UnicodeTranslateError' visibility='default' filepath='./Include/pyerrors.h' line='114' column='1' elf-symbol-id='PyExc_UnicodeTranslateError'/>
+    <var-decl name='PyExc_AssertionError' type-id='type-id-100' mangled-name='PyExc_AssertionError' visibility='default' filepath='./Include/pyerrors.h' line='82' column='1' elf-symbol-id='PyExc_AssertionError'/>
+    <var-decl name='PyExc_ArithmeticError' type-id='type-id-100' mangled-name='PyExc_ArithmeticError' visibility='default' filepath='./Include/pyerrors.h' line='79' column='1' elf-symbol-id='PyExc_ArithmeticError'/>
+    <var-decl name='PyExc_FloatingPointError' type-id='type-id-100' mangled-name='PyExc_FloatingPointError' visibility='default' filepath='./Include/pyerrors.h' line='86' column='1' elf-symbol-id='PyExc_FloatingPointError'/>
+    <var-decl name='PyExc_OverflowError' type-id='type-id-100' mangled-name='PyExc_OverflowError' visibility='default' filepath='./Include/pyerrors.h' line='97' column='1' elf-symbol-id='PyExc_OverflowError'/>
+    <var-decl name='PyExc_ZeroDivisionError' type-id='type-id-100' mangled-name='PyExc_ZeroDivisionError' visibility='default' filepath='./Include/pyerrors.h' line='116' column='1' elf-symbol-id='PyExc_ZeroDivisionError'/>
+    <var-decl name='PyExc_SystemError' type-id='type-id-100' mangled-name='PyExc_SystemError' visibility='default' filepath='./Include/pyerrors.h' line='107' column='1' elf-symbol-id='PyExc_SystemError'/>
+    <var-decl name='PyExc_ReferenceError' type-id='type-id-100' mangled-name='PyExc_ReferenceError' visibility='default' filepath='./Include/pyerrors.h' line='106' column='1' elf-symbol-id='PyExc_ReferenceError'/>
+    <var-decl name='PyExc_MemoryError' type-id='type-id-100' mangled-name='PyExc_MemoryError' visibility='default' filepath='./Include/pyerrors.h' line='95' column='1' elf-symbol-id='PyExc_MemoryError'/>
+    <var-decl name='PyExc_BufferError' type-id='type-id-100' mangled-name='PyExc_BufferError' visibility='default' filepath='./Include/pyerrors.h' line='84' column='1' elf-symbol-id='PyExc_BufferError'/>
+    <var-decl name='PyExc_Warning' type-id='type-id-100' mangled-name='PyExc_Warning' visibility='default' filepath='./Include/pyerrors.h' line='145' column='1' elf-symbol-id='PyExc_Warning'/>
+    <var-decl name='PyExc_UserWarning' type-id='type-id-100' mangled-name='PyExc_UserWarning' visibility='default' filepath='./Include/pyerrors.h' line='146' column='1' elf-symbol-id='PyExc_UserWarning'/>
+    <var-decl name='PyExc_DeprecationWarning' type-id='type-id-100' mangled-name='PyExc_DeprecationWarning' visibility='default' filepath='./Include/pyerrors.h' line='147' column='1' elf-symbol-id='PyExc_DeprecationWarning'/>
+    <var-decl name='PyExc_PendingDeprecationWarning' type-id='type-id-100' mangled-name='PyExc_PendingDeprecationWarning' visibility='default' filepath='./Include/pyerrors.h' line='148' column='1' elf-symbol-id='PyExc_PendingDeprecationWarning'/>
+    <var-decl name='PyExc_SyntaxWarning' type-id='type-id-100' mangled-name='PyExc_SyntaxWarning' visibility='default' filepath='./Include/pyerrors.h' line='149' column='1' elf-symbol-id='PyExc_SyntaxWarning'/>
+    <var-decl name='PyExc_RuntimeWarning' type-id='type-id-100' mangled-name='PyExc_RuntimeWarning' visibility='default' filepath='./Include/pyerrors.h' line='150' column='1' elf-symbol-id='PyExc_RuntimeWarning'/>
+    <var-decl name='PyExc_FutureWarning' type-id='type-id-100' mangled-name='PyExc_FutureWarning' visibility='default' filepath='./Include/pyerrors.h' line='151' column='1' elf-symbol-id='PyExc_FutureWarning'/>
+    <var-decl name='PyExc_ImportWarning' type-id='type-id-100' mangled-name='PyExc_ImportWarning' visibility='default' filepath='./Include/pyerrors.h' line='152' column='1' elf-symbol-id='PyExc_ImportWarning'/>
+    <var-decl name='PyExc_UnicodeWarning' type-id='type-id-100' mangled-name='PyExc_UnicodeWarning' visibility='default' filepath='./Include/pyerrors.h' line='153' column='1' elf-symbol-id='PyExc_UnicodeWarning'/>
+    <var-decl name='PyExc_BytesWarning' type-id='type-id-100' mangled-name='PyExc_BytesWarning' visibility='default' filepath='./Include/pyerrors.h' line='154' column='1' elf-symbol-id='PyExc_BytesWarning'/>
+    <var-decl name='PyExc_ResourceWarning' type-id='type-id-100' mangled-name='PyExc_ResourceWarning' visibility='default' filepath='./Include/pyerrors.h' line='155' column='1' elf-symbol-id='PyExc_ResourceWarning'/>
+    <function-decl name='_PyErr_TrySetFromCause' mangled-name='_PyErr_TrySetFromCause' filepath='Objects/exceptions.c' line='2792' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_TrySetFromCause'>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/exceptions.c' line='2792' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeTranslateError_Create' mangled-name='_PyUnicodeTranslateError_Create' filepath='Objects/exceptions.c' line='2212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeTranslateError_Create'>
+      <parameter type-id='type-id-100' name='object' filepath='Objects/exceptions.c' line='2213' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/exceptions.c' line='2214' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='2214' column='1'/>
+      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='2214' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <typedef-decl name='Py_UNICODE' type-id='type-id-405' filepath='./Include/cpython/unicodeobject.h' line='14' column='1' id='type-id-453'/>
+    <qualified-type-def type-id='type-id-453' const='yes' id='type-id-454'/>
+    <pointer-type-def type-id='type-id-454' size-in-bits='64' id='type-id-455'/>
+    <function-decl name='PyUnicodeTranslateError_Create' mangled-name='PyUnicodeTranslateError_Create' filepath='Objects/exceptions.c' line='2203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_Create'>
+      <parameter type-id='type-id-455' name='object' filepath='Objects/exceptions.c' line='2204' column='1'/>
+      <parameter type-id='type-id-15' name='length' filepath='Objects/exceptions.c' line='2204' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/exceptions.c' line='2205' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='2205' column='1'/>
+      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='2205' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicodeDecodeError_Create' mangled-name='PyUnicodeDecodeError_Create' filepath='Objects/exceptions.c' line='2105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_Create'>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/exceptions.c' line='2106' column='1'/>
+      <parameter type-id='type-id-3' name='object' filepath='Objects/exceptions.c' line='2106' column='1'/>
+      <parameter type-id='type-id-15' name='length' filepath='Objects/exceptions.c' line='2106' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/exceptions.c' line='2107' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='2107' column='1'/>
+      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='2107' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_Create' mangled-name='PyUnicodeEncodeError_Create' filepath='Objects/exceptions.c' line='1989' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_Create'>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/exceptions.c' line='1990' column='1'/>
+      <parameter type-id='type-id-455' name='object' filepath='Objects/exceptions.c' line='1990' column='1'/>
+      <parameter type-id='type-id-15' name='length' filepath='Objects/exceptions.c' line='1990' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/exceptions.c' line='1991' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='1991' column='1'/>
+      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='1991' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicodeTranslateError_GetEnd' mangled-name='PyUnicodeTranslateError_GetEnd' filepath='Objects/exceptions.c' line='1776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_GetEnd'>
+      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1776' column='1'/>
+      <parameter type-id='type-id-158' name='end' filepath='Objects/exceptions.c' line='1776' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicodeDecodeError_GetEnd' mangled-name='PyUnicodeDecodeError_GetEnd' filepath='Objects/exceptions.c' line='1758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_GetEnd'>
+      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1758' column='1'/>
+      <parameter type-id='type-id-158' name='end' filepath='Objects/exceptions.c' line='1758' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_GetEnd' mangled-name='PyUnicodeEncodeError_GetEnd' filepath='Objects/exceptions.c' line='1739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetEnd'>
+      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1758' column='1'/>
+      <parameter type-id='type-id-158' name='end' filepath='Objects/exceptions.c' line='1758' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicodeTranslateError_GetStart' mangled-name='PyUnicodeTranslateError_GetStart' filepath='Objects/exceptions.c' line='1708' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_GetStart'>
+      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1776' column='1'/>
+      <parameter type-id='type-id-158' name='end' filepath='Objects/exceptions.c' line='1776' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicodeDecodeError_GetStart' mangled-name='PyUnicodeDecodeError_GetStart' filepath='Objects/exceptions.c' line='1690' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_GetStart'>
+      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1758' column='1'/>
+      <parameter type-id='type-id-158' name='end' filepath='Objects/exceptions.c' line='1758' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_GetStart' mangled-name='PyUnicodeEncodeError_GetStart' filepath='Objects/exceptions.c' line='1671' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetStart'>
+      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1758' column='1'/>
+      <parameter type-id='type-id-158' name='end' filepath='Objects/exceptions.c' line='1758' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicodeDecodeError_GetObject' mangled-name='PyUnicodeDecodeError_GetObject' filepath='Objects/exceptions.c' line='1659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_GetObject'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyExceptionClass_Name' mangled-name='PyExceptionClass_Name' filepath='Objects/exceptions.c' line='365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyExceptionClass_Name'>
+      <parameter type-id='type-id-100' name='ob' filepath='Objects/exceptions.c' line='365' column='1'/>
+      <return type-id='type-id-3'/>
+    </function-decl>
+    <function-decl name='PyException_SetContext' mangled-name='PyException_SetContext' filepath='Objects/exceptions.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_SetContext'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/exceptions.c' line='357' column='1'/>
+      <parameter type-id='type-id-100' name='context' filepath='Objects/exceptions.c' line='357' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyException_GetContext' mangled-name='PyException_GetContext' filepath='Objects/exceptions.c' line='348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_GetContext'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/exceptions.c' line='348' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyException_SetCause' mangled-name='PyException_SetCause' filepath='Objects/exceptions.c' line='340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_SetCause'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/exceptions.c' line='340' column='1'/>
+      <parameter type-id='type-id-100' name='cause' filepath='Objects/exceptions.c' line='340' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyException_GetCause' mangled-name='PyException_GetCause' filepath='Objects/exceptions.c' line='331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_GetCause'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/exceptions.c' line='348' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyException_SetTraceback' mangled-name='PyException_SetTraceback' filepath='Objects/exceptions.c' line='325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_SetTraceback'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/exceptions.c' line='325' column='1'/>
+      <parameter type-id='type-id-100' name='tb' filepath='Objects/exceptions.c' line='325' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyException_GetTraceback' mangled-name='PyException_GetTraceback' filepath='Objects/exceptions.c' line='316' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_GetTraceback'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/exceptions.c' line='348' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_GetEncoding' mangled-name='PyUnicodeEncodeError_GetEncoding' filepath='Objects/exceptions.c' line='1641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetEncoding'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_GetObject' mangled-name='PyUnicodeEncodeError_GetObject' filepath='Objects/exceptions.c' line='1653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetObject'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_SetStart' mangled-name='PyUnicodeEncodeError_SetStart' filepath='Objects/exceptions.c' line='1715' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_SetStart'>
+      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1715' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/exceptions.c' line='1715' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_SetEnd' mangled-name='PyUnicodeEncodeError_SetEnd' filepath='Objects/exceptions.c' line='1783' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_SetEnd'>
+      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1715' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/exceptions.c' line='1715' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_GetReason' mangled-name='PyUnicodeEncodeError_GetReason' filepath='Objects/exceptions.c' line='1806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetReason'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_SetReason' mangled-name='PyUnicodeEncodeError_SetReason' filepath='Objects/exceptions.c' line='1827' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_SetReason'>
+      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1827' column='1'/>
+      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='1827' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_IsWhitespace' mangled-name='_PyUnicode_IsWhitespace' filepath='./Include/cpython/unicodeobject.h' line='1098' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FindChar' mangled-name='PyUnicode_FindChar' filepath='./Include/unicodeobject.h' line='932' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_XStrip' mangled-name='_PyUnicode_XStrip' filepath='./Include/cpython/unicodeobject.h' line='1045' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Tailmatch' mangled-name='PyUnicode_Tailmatch' filepath='./Include/unicodeobject.h' line='910' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_Restore' mangled-name='PyErr_Restore' filepath='./Include/pyerrors.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_NormalizeException' mangled-name='PyErr_NormalizeException' filepath='./Include/pyerrors.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_GetDictPtr' mangled-name='_PyObject_GetDictPtr' filepath='./Include/cpython/object.h' line='332' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyModule_GetDict' mangled-name='PyModule_GetDict' filepath='./Include/moduleobject.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_SetItemString' mangled-name='PyDict_SetItemString' filepath='./Include/dictobject.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_New' mangled-name='PyDict_New' filepath='./Include/dictobject.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_CallFunction_SizeT' mangled-name='_PyObject_CallFunction_SizeT' filepath='./Include/abstract.h' line='198' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_ReadChar' mangled-name='PyUnicode_ReadChar' filepath='./Include/unicodeobject.h' line='184' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Repr' mangled-name='PyObject_Repr' filepath='./Include/object.h' line='241' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_GetItemWithError' mangled-name='PyDict_GetItemWithError' filepath='./Include/dictobject.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_Copy' mangled-name='PyDict_Copy' filepath='./Include/dictobject.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_SetItemId' mangled-name='_PyDict_SetItemId' filepath='./Include/cpython/dictobject.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_SetAttr' mangled-name='PyObject_SetAttr' filepath='./Include/object.h' line='251' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/genericaliasobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='Py_GenericAliasType' type-id='type-id-182' mangled-name='Py_GenericAliasType' visibility='default' filepath='./Include/genericaliasobject.h' line='9' column='1' elf-symbol-id='Py_GenericAliasType'/>
+    <function-decl name='Py_GenericAlias' mangled-name='Py_GenericAlias' filepath='Objects/genericaliasobject.c' line='643' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GenericAlias'>
+      <parameter type-id='type-id-100' name='origin' filepath='Objects/genericaliasobject.c' line='643' column='1'/>
+      <parameter type-id='type-id-100' name='args' filepath='Objects/genericaliasobject.c' line='643' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_Dir' mangled-name='PyObject_Dir' filepath='./Include/object.h' line='271' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EqualToASCIIString' mangled-name='_PyUnicode_EqualToASCIIString' filepath='./Include/cpython/unicodeobject.h' line='1039' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_SetAttrString' mangled-name='PyObject_SetAttrString' filepath='./Include/object.h' line='248' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_WriteASCIIString' mangled-name='_PyUnicodeWriter_WriteASCIIString' filepath='./Include/cpython/unicodeobject.h' line='697' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_WriteStr' mangled-name='_PyUnicodeWriter_WriteStr' filepath='./Include/cpython/unicodeobject.h' line='681' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_GenericGetAttr' mangled-name='PyObject_GenericGetAttr' filepath='./Include/object.h' line='254' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/genobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyGen_Type' type-id='type-id-182' mangled-name='PyGen_Type' visibility='default' filepath='./Include/genobject.h' line='36' column='1' elf-symbol-id='PyGen_Type'/>
+    <var-decl name='PyCoro_Type' type-id='type-id-182' mangled-name='PyCoro_Type' visibility='default' filepath='./Include/genobject.h' line='56' column='1' elf-symbol-id='PyCoro_Type'/>
+    <var-decl name='_PyCoroWrapper_Type' type-id='type-id-182' mangled-name='_PyCoroWrapper_Type' visibility='default' filepath='./Include/genobject.h' line='57' column='1' elf-symbol-id='_PyCoroWrapper_Type'/>
+    <var-decl name='PyAsyncGen_Type' type-id='type-id-182' mangled-name='PyAsyncGen_Type' visibility='default' filepath='./Include/genobject.h' line='82' column='1' elf-symbol-id='PyAsyncGen_Type'/>
+    <var-decl name='_PyAsyncGenASend_Type' type-id='type-id-182' mangled-name='_PyAsyncGenASend_Type' visibility='default' filepath='./Include/genobject.h' line='83' column='1' elf-symbol-id='_PyAsyncGenASend_Type'/>
+    <var-decl name='_PyAsyncGenWrappedValue_Type' type-id='type-id-182' mangled-name='_PyAsyncGenWrappedValue_Type' visibility='default' filepath='./Include/genobject.h' line='84' column='1' elf-symbol-id='_PyAsyncGenWrappedValue_Type'/>
+    <var-decl name='_PyAsyncGenAThrow_Type' type-id='type-id-182' mangled-name='_PyAsyncGenAThrow_Type' visibility='default' filepath='./Include/genobject.h' line='85' column='1' elf-symbol-id='_PyAsyncGenAThrow_Type'/>
+    <function-decl name='PyAsyncGen_New' mangled-name='PyAsyncGen_New' filepath='Objects/genobject.c' line='1420' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAsyncGen_New'>
+      <parameter type-id='type-id-312' name='f' filepath='Objects/genobject.c' line='1420' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/genobject.c' line='1420' column='1'/>
+      <parameter type-id='type-id-100' name='qualname' filepath='Objects/genobject.c' line='1420' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyCoro_New' mangled-name='PyCoro_New' filepath='Objects/genobject.c' line='1139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCoro_New'>
+      <parameter type-id='type-id-312' name='f' filepath='Objects/genobject.c' line='1139' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/genobject.c' line='1139' column='1'/>
+      <parameter type-id='type-id-100' name='qualname' filepath='Objects/genobject.c' line='1139' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyGen_New' mangled-name='PyGen_New' filepath='Objects/genobject.c' line='820' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGen_New'>
+      <parameter type-id='type-id-312' name='f' filepath='Objects/genobject.c' line='820' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyGen_NewWithQualName' mangled-name='PyGen_NewWithQualName' filepath='Objects/genobject.c' line='814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGen_NewWithQualName'>
+      <parameter type-id='type-id-312' name='f' filepath='Objects/genobject.c' line='814' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/genobject.c' line='814' column='1'/>
+      <parameter type-id='type-id-100' name='qualname' filepath='Objects/genobject.c' line='814' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyGen_FetchStopIterationValue' mangled-name='_PyGen_FetchStopIterationValue' filepath='Objects/genobject.c' line='595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGen_FetchStopIterationValue'>
+      <parameter type-id='type-id-303' name='pvalue' filepath='Objects/genobject.c' line='595' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='768' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-456' visibility='default' filepath='./Include/genobject.h' line='31' column='1' id='type-id-457'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='data' type-id='type-id-32' visibility='default' filepath='./Include/cpython/pystate.h' line='213' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='obj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='220' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='interp' type-id='type-id-316' visibility='default' filepath='./Include/cpython/pystate.h' line='230' column='1'/>
+        <var-decl name='gi_frame' type-id='type-id-312' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='new_object' type-id='type-id-345' visibility='default' filepath='./Include/cpython/pystate.h' line='235' column='1'/>
+        <var-decl name='gi_running' type-id='type-id-1' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='free' type-id='type-id-188' visibility='default' filepath='./Include/cpython/pystate.h' line='245' column='1'/>
+        <var-decl name='gi_code' type-id='type-id-100' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
       </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-344' size-in-bits='64' id='type-id-346'/>
-    <pointer-type-def type-id='type-id-347' size-in-bits='64' id='type-id-345'/>
-    <pointer-type-def type-id='type-id-348' size-in-bits='64' id='type-id-349'/>
-    <typedef-decl name='crossinterpdatafunc' type-id='type-id-349' filepath='./Include/cpython/pystate.h' line='256' column='1' id='type-id-343'/>
-    <pointer-type-def type-id='type-id-342' size-in-bits='64' id='type-id-341'/>
-    <pointer-type-def type-id='type-id-350' size-in-bits='64' id='type-id-351'/>
-
-    <array-type-def dimensions='1' type-id='type-id-351' size-in-bits='2048' id='type-id-331'>
-      <subrange length='32' type-id='type-id-33' id='type-id-352'/>
-
-    </array-type-def>
-    <class-decl name='_ceval_runtime_state' size-in-bits='1728' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='16' column='1' id='type-id-332'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='signals_pending' type-id='type-id-353' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='21' column='1'/>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='gi_weakreflist' type-id='type-id-100' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='gil' type-id='type-id-354' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='22' column='1'/>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='gi_name' type-id='type-id-100' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='_Py_atomic_int' size-in-bits='32' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_atomic.h' line='49' column='1' id='type-id-355'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_value' type-id='type-id-356' visibility='default' filepath='./Include/internal/pycore_atomic.h' line='50' column='1'/>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='gi_qualname' type-id='type-id-100' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='gi_exc_state' type-id='type-id-236' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
       </data-member>
     </class-decl>
-    <type-decl name='atomic_int' size-in-bits='32' id='type-id-356'/>
-    <typedef-decl name='_Py_atomic_int' type-id='type-id-355' filepath='./Include/internal/pycore_atomic.h' line='51' column='1' id='type-id-353'/>
-    <class-decl name='_gil_runtime_state' size-in-bits='1664' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_gil.h' line='23' column='1' id='type-id-354'>
+    <typedef-decl name='PyGenObject' type-id='type-id-457' filepath='./Include/genobject.h' line='34' column='1' id='type-id-456'/>
+    <pointer-type-def type-id='type-id-456' size-in-bits='64' id='type-id-458'/>
+    <function-decl name='_PyGen_Send' mangled-name='_PyGen_Send' filepath='Objects/genobject.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGen_Send'>
+      <parameter type-id='type-id-458' name='gen' filepath='Objects/genobject.c' line='283' column='1'/>
+      <parameter type-id='type-id-100' name='arg' filepath='Objects/genobject.c' line='283' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyGen_Finalize' mangled-name='_PyGen_Finalize' filepath='Objects/genobject.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGen_Finalize'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/genobject.c' line='44' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyGen_SetStopIterationValue' mangled-name='_PyGen_SetStopIterationValue' filepath='Objects/genobject.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGen_SetStopIterationValue'>
+      <parameter type-id='type-id-100' name='value' filepath='Objects/genobject.c' line='556' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyErr_FormatFromCause' mangled-name='_PyErr_FormatFromCause' filepath='./Include/cpython/pyerrors.h' line='100' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFrame_GetLineNumber' mangled-name='PyFrame_GetLineNumber' filepath='./Include/pyframe.h' line='15' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_GetFrame' mangled-name='PyEval_GetFrame' filepath='./Include/ceval.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyException_GetTraceback' mangled-name='PyException_GetTraceback' filepath='./Include/pyerrors.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_WriteUnraisable' mangled-name='PyErr_WriteUnraisable' filepath='./Include/pyerrors.h' line='227' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_WarnUnawaitedCoroutine' mangled-name='_PyErr_WarnUnawaitedCoroutine' filepath='./Include/warnings.h' line='60' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_CallFinalizerFromDealloc' mangled-name='PyObject_CallFinalizerFromDealloc' filepath='./Include/cpython/object.h' line='335' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_ChainStackItem' mangled-name='_PyErr_ChainStackItem' filepath='./Include/internal/pycore_pyerrors.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/fileobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyStdPrinter_Type' type-id='type-id-182' mangled-name='PyStdPrinter_Type' visibility='default' filepath='./Include/cpython/fileobject.h' line='14' column='1' elf-symbol-id='PyStdPrinter_Type'/>
+    <function-decl name='PyFile_OpenCode' mangled-name='PyFile_OpenCode' filepath='Objects/fileobject.c' line='574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_OpenCode'>
+      <parameter type-id='type-id-3' name='utf8path' filepath='Objects/fileobject.c' line='574' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFile_SetOpenCodeHook' mangled-name='PyFile_SetOpenCodeHook' filepath='Objects/fileobject.c' line='528' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_SetOpenCodeHook'>
+      <parameter type-id='type-id-335' name='hook' filepath='Objects/fileobject.c' line='528' column='1'/>
+      <parameter type-id='type-id-32' name='userData' filepath='Objects/fileobject.c' line='528' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyFile_NewStdPrinter' mangled-name='PyFile_NewStdPrinter' filepath='Objects/fileobject.c' line='341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_NewStdPrinter'>
+      <parameter type-id='type-id-8' name='fd' filepath='Objects/fileobject.c' line='341' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='Py_UniversalNewlineFgets' mangled-name='Py_UniversalNewlineFgets' filepath='Objects/fileobject.c' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UniversalNewlineFgets'>
+      <parameter type-id='type-id-7' name='buf' filepath='Objects/fileobject.c' line='241' column='1'/>
+      <parameter type-id='type-id-8' name='n' filepath='Objects/fileobject.c' line='241' column='1'/>
+      <parameter type-id='type-id-223' name='stream' filepath='Objects/fileobject.c' line='241' column='1'/>
+      <parameter type-id='type-id-100' name='fobj' filepath='Objects/fileobject.c' line='241' column='1'/>
+      <return type-id='type-id-7'/>
+    </function-decl>
+    <function-decl name='PyObject_AsFileDescriptor' mangled-name='PyObject_AsFileDescriptor' filepath='Objects/fileobject.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_AsFileDescriptor'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/fileobject.c' line='180' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyFile_WriteString' mangled-name='PyFile_WriteString' filepath='Objects/fileobject.c' line='150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_WriteString'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/fileobject.c' line='150' column='1'/>
+      <parameter type-id='type-id-100' name='f' filepath='Objects/fileobject.c' line='150' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyFile_WriteObject' mangled-name='PyFile_WriteObject' filepath='Objects/fileobject.c' line='119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_WriteObject'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/fileobject.c' line='119' column='1'/>
+      <parameter type-id='type-id-100' name='f' filepath='Objects/fileobject.c' line='119' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Objects/fileobject.c' line='119' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyFile_GetLine' mangled-name='PyFile_GetLine' filepath='Objects/fileobject.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_GetLine'>
+      <parameter type-id='type-id-100' name='f' filepath='Objects/fileobject.c' line='54' column='1'/>
+      <parameter type-id='type-id-8' name='n' filepath='Objects/fileobject.c' line='54' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFile_FromFd' mangled-name='PyFile_FromFd' filepath='Objects/fileobject.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_FromFd'>
+      <parameter type-id='type-id-8' name='fd' filepath='Objects/fileobject.c' line='33' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/fileobject.c' line='33' column='1'/>
+      <parameter type-id='type-id-3' name='mode' filepath='Objects/fileobject.c' line='33' column='1'/>
+      <parameter type-id='type-id-8' name='buffering' filepath='Objects/fileobject.c' line='33' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/fileobject.c' line='33' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/fileobject.c' line='34' column='1'/>
+      <parameter type-id='type-id-3' name='newline' filepath='Objects/fileobject.c' line='34' column='1'/>
+      <parameter type-id='type-id-8' name='closefd' filepath='Objects/fileobject.c' line='34' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFile_OpenCodeObject' mangled-name='PyFile_OpenCodeObject' filepath='Objects/fileobject.c' line='548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_OpenCodeObject'>
+      <parameter type-id='type-id-100' name='path' filepath='Objects/fileobject.c' line='548' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='Py_IsInitialized' mangled-name='Py_IsInitialized' filepath='./Include/pylifecycle.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__uflow' mangled-name='__uflow' filepath='/usr/include/stdio.h' line='858' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='flockfile' mangled-name='flockfile' filepath='/usr/include/stdio.h' line='840' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='funlockfile' mangled-name='funlockfile' filepath='/usr/include/stdio.h' line='847' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyBytes_Resize' mangled-name='_PyBytes_Resize' filepath='./Include/cpython/bytesobject.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_write' mangled-name='_Py_write' filepath='./Include/cpython/fileutils.h' line='111' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_AsUTF8String' mangled-name='_PyUnicode_AsUTF8String' filepath='./Include/cpython/unicodeobject.h' line='799' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/floatobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyFloat_Type' type-id='type-id-182' mangled-name='PyFloat_Type' visibility='default' filepath='./Include/floatobject.h' line='21' column='1' elf-symbol-id='PyFloat_Type'/>
+    <qualified-type-def type-id='type-id-418' const='yes' id='type-id-459'/>
+    <pointer-type-def type-id='type-id-459' size-in-bits='64' id='type-id-460'/>
+    <function-decl name='_PyFloat_Unpack8' mangled-name='_PyFloat_Unpack8' filepath='Objects/floatobject.c' line='2509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Unpack8'>
+      <parameter type-id='type-id-460' name='p' filepath='Objects/floatobject.c' line='2509' column='1'/>
+      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2509' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='_PyFloat_Unpack4' mangled-name='_PyFloat_Unpack4' filepath='Objects/floatobject.c' line='2431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Unpack4'>
+      <parameter type-id='type-id-460' name='p' filepath='Objects/floatobject.c' line='2509' column='1'/>
+      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2509' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='_PyFloat_Unpack2' mangled-name='_PyFloat_Unpack2' filepath='Objects/floatobject.c' line='2361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Unpack2'>
+      <parameter type-id='type-id-460' name='p' filepath='Objects/floatobject.c' line='2361' column='1'/>
+      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2361' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='_PyFloat_Pack8' mangled-name='_PyFloat_Pack8' filepath='Objects/floatobject.c' line='2232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Pack8'>
+      <parameter type-id='type-id-441' name='x' filepath='Objects/floatobject.c' line='2232' column='1'/>
+      <parameter type-id='type-id-416' name='p' filepath='Objects/floatobject.c' line='2232' column='1'/>
+      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2232' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyFloat_Pack4' mangled-name='_PyFloat_Pack4' filepath='Objects/floatobject.c' line='2125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Pack4'>
+      <parameter type-id='type-id-441' name='x' filepath='Objects/floatobject.c' line='2125' column='1'/>
+      <parameter type-id='type-id-416' name='p' filepath='Objects/floatobject.c' line='2125' column='1'/>
+      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2125' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyFloat_Pack2' mangled-name='_PyFloat_Pack2' filepath='Objects/floatobject.c' line='2021' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Pack2'>
+      <parameter type-id='type-id-441' name='x' filepath='Objects/floatobject.c' line='2021' column='1'/>
+      <parameter type-id='type-id-416' name='p' filepath='Objects/floatobject.c' line='2021' column='1'/>
+      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2021' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyFloat_DebugMallocStats' mangled-name='_PyFloat_DebugMallocStats' filepath='Objects/floatobject.c' line='2001' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_DebugMallocStats'>
+      <parameter type-id='type-id-223' name='out' filepath='Objects/floatobject.c' line='2001' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFloat_FromString' mangled-name='PyFloat_FromString' filepath='Objects/floatobject.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_FromString'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/floatobject.c' line='167' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFloat_FromDouble' mangled-name='PyFloat_FromDouble' filepath='Objects/floatobject.c' line='116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_FromDouble'>
+      <parameter type-id='type-id-441' name='fval' filepath='Objects/floatobject.c' line='116' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFloat_GetInfo' mangled-name='PyFloat_GetInfo' filepath='Objects/floatobject.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_GetInfo'>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFloat_GetMin' mangled-name='PyFloat_GetMin' filepath='Objects/floatobject.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_GetMin'>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='PyFloat_GetMax' mangled-name='PyFloat_GetMax' filepath='Objects/floatobject.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_GetMax'>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='PyFloat_AsDouble' mangled-name='PyFloat_AsDouble' filepath='Objects/floatobject.c' line='233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_AsDouble'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/floatobject.c' line='233' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='ldexp' mangled-name='ldexp' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_dg_infinity' mangled-name='_Py_dg_infinity' filepath='./Include/internal/pycore_dtoa.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_dg_stdnan' mangled-name='_Py_dg_stdnan' filepath='./Include/internal/pycore_dtoa.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='frexp' mangled-name='frexp' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='98' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDebugAllocatorStats' mangled-name='_PyDebugAllocatorStats' filepath='./Include/cpython/object.h' line='390' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyStructSequence_InitType2' mangled-name='PyStructSequence_InitType2' filepath='./Include/structseq.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_parse_inf_or_nan' mangled-name='_Py_parse_inf_or_nan' filepath='./Include/pystrtod.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='strtol' mangled-name='strtol' filepath='/usr/include/stdlib.h' line='176' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='fmod' mangled-name='fmod' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='168' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_SetFromErrno' mangled-name='PyErr_SetFromErrno' filepath='./Include/pyerrors.h' line='162' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_Lshift' mangled-name='_PyLong_Lshift' filepath='./Include/longobject.h' line='236' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='modf' mangled-name='modf' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='110' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_FromDouble' mangled-name='PyLong_FromDouble' filepath='./Include/longobject.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_Negative' mangled-name='PyNumber_Negative' filepath='./Include/abstract.h' line='450' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_NumBits' mangled-name='_PyLong_NumBits' filepath='./Include/longobject.h' line='126' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyStructSequence_New' mangled-name='PyStructSequence_New' filepath='./Include/structseq.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_FromASCII' mangled-name='_PyUnicode_FromASCII' filepath='./Include/cpython/unicodeobject.h' line='565' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_get_387controlword' mangled-name='_Py_get_387controlword' filepath='./Include/pymath.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_set_387controlword' mangled-name='_Py_set_387controlword' filepath='./Include/pymath.h' line='84' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_dg_dtoa' mangled-name='_Py_dg_dtoa' filepath='./Include/internal/pycore_dtoa.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_dg_strtod' mangled-name='_Py_dg_strtod' filepath='./Include/internal/pycore_dtoa.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_dg_freedtoa' mangled-name='_Py_dg_freedtoa' filepath='./Include/internal/pycore_dtoa.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='round' mangled-name='round' filepath='/usr/include/x86_64-linux-gnu/bits/mathcalls.h' line='298' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyFloat_FormatAdvancedWriter' mangled-name='_PyFloat_FormatAdvancedWriter' filepath='./Include/floatobject.h' line='107' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/frameobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyFrame_Type' type-id='type-id-182' mangled-name='PyFrame_Type' visibility='default' filepath='./Include/cpython/frameobject.h' line='52' column='1' elf-symbol-id='PyFrame_Type'/>
+    <function-decl name='PyFrame_GetBack' mangled-name='PyFrame_GetBack' filepath='Objects/frameobject.c' line='1223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_GetBack'>
+      <parameter type-id='type-id-312' name='frame' filepath='Objects/frameobject.c' line='1223' column='1'/>
+      <return type-id='type-id-312'/>
+    </function-decl>
+    <function-decl name='PyFrame_GetCode' mangled-name='PyFrame_GetCode' filepath='Objects/frameobject.c' line='1212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_GetCode'>
+      <parameter type-id='type-id-312' name='frame' filepath='Objects/frameobject.c' line='1212' column='1'/>
+      <return type-id='type-id-412'/>
+    </function-decl>
+    <function-decl name='_PyFrame_DebugMallocStats' mangled-name='_PyFrame_DebugMallocStats' filepath='Objects/frameobject.c' line='1201' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFrame_DebugMallocStats'>
+      <parameter type-id='type-id-223' name='out' filepath='Objects/floatobject.c' line='2001' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFrame_LocalsToFast' mangled-name='PyFrame_LocalsToFast' filepath='Objects/frameobject.c' line='1138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_LocalsToFast'>
+      <parameter type-id='type-id-312' name='f' filepath='Objects/frameobject.c' line='1138' column='1'/>
+      <parameter type-id='type-id-8' name='clear' filepath='Objects/frameobject.c' line='1138' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFrame_FastToLocals' mangled-name='PyFrame_FastToLocals' filepath='Objects/frameobject.c' line='1126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_FastToLocals'>
+      <parameter type-id='type-id-312' name='f' filepath='Objects/frameobject.c' line='1126' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFrame_FastToLocalsWithError' mangled-name='PyFrame_FastToLocalsWithError' filepath='Objects/frameobject.c' line='1066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_FastToLocalsWithError'>
+      <parameter type-id='type-id-312' name='f' filepath='Objects/frameobject.c' line='1066' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-422' size-in-bits='64' id='type-id-461'/>
+    <function-decl name='PyFrame_BlockPop' mangled-name='PyFrame_BlockPop' filepath='Objects/frameobject.c' line='957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_BlockPop'>
+      <parameter type-id='type-id-312' name='f' filepath='Objects/frameobject.c' line='957' column='1'/>
+      <return type-id='type-id-461'/>
+    </function-decl>
+    <function-decl name='PyFrame_BlockSetup' mangled-name='PyFrame_BlockSetup' filepath='Objects/frameobject.c' line='944' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_BlockSetup'>
+      <parameter type-id='type-id-312' name='f' filepath='Objects/frameobject.c' line='944' column='1'/>
+      <parameter type-id='type-id-8' name='type' filepath='Objects/frameobject.c' line='944' column='1'/>
+      <parameter type-id='type-id-8' name='handler' filepath='Objects/frameobject.c' line='944' column='1'/>
+      <parameter type-id='type-id-8' name='level' filepath='Objects/frameobject.c' line='944' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFrame_New' mangled-name='PyFrame_New' filepath='Objects/frameobject.c' line='931' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_New'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Objects/frameobject.c' line='931' column='1'/>
+      <parameter type-id='type-id-412' name='code' filepath='Objects/frameobject.c' line='931' column='1'/>
+      <parameter type-id='type-id-100' name='globals' filepath='Objects/frameobject.c' line='932' column='1'/>
+      <parameter type-id='type-id-100' name='locals' filepath='Objects/frameobject.c' line='932' column='1'/>
+      <return type-id='type-id-312'/>
+    </function-decl>
+    <function-decl name='PyFrame_GetLineNumber' mangled-name='PyFrame_GetLineNumber' filepath='Objects/frameobject.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_GetLineNumber'>
+      <parameter type-id='type-id-312' name='f' filepath='Objects/frameobject.c' line='35' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyCell_Set' mangled-name='PyCell_Set' filepath='./Include/cellobject.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_DelItem' mangled-name='PyObject_DelItem' filepath='./Include/abstract.h' line='309' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_SetItem' mangled-name='PyObject_SetItem' filepath='./Include/abstract.h' line='297' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_GetItemIdWithError' mangled-name='_PyDict_GetItemIdWithError' filepath='./Include/cpython/dictobject.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_GC_Resize' mangled-name='_PyObject_GC_Resize' filepath='./Include/objimpl.h' line='163' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_GC_NewVar' mangled-name='_PyObject_GC_NewVar' filepath='./Include/objimpl.h' line='170' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyGen_Finalize' mangled-name='_PyGen_Finalize' filepath='./Include/genobject.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCode_Addr2Line' mangled-name='PyCode_Addr2Line' filepath='./Include/cpython/code.h' line='135' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/funcobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyFunction_Type' type-id='type-id-182' mangled-name='PyFunction_Type' visibility='default' filepath='./Include/funcobject.h' line='44' column='1' elf-symbol-id='PyFunction_Type'/>
+    <var-decl name='PyClassMethod_Type' type-id='type-id-182' mangled-name='PyClassMethod_Type' visibility='default' filepath='./Include/funcobject.h' line='88' column='1' elf-symbol-id='PyClassMethod_Type'/>
+    <var-decl name='PyStaticMethod_Type' type-id='type-id-182' mangled-name='PyStaticMethod_Type' visibility='default' filepath='./Include/funcobject.h' line='89' column='1' elf-symbol-id='PyStaticMethod_Type'/>
+    <function-decl name='PyStaticMethod_New' mangled-name='PyStaticMethod_New' filepath='Objects/funcobject.c' line='1037' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStaticMethod_New'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/funcobject.c' line='1037' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyClassMethod_New' mangled-name='PyClassMethod_New' filepath='Objects/funcobject.c' line='857' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyClassMethod_New'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/funcobject.c' line='1037' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFunction_SetAnnotations' mangled-name='PyFunction_SetAnnotations' filepath='Objects/funcobject.c' line='218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_SetAnnotations'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/funcobject.c' line='218' column='1'/>
+      <parameter type-id='type-id-100' name='annotations' filepath='Objects/funcobject.c' line='218' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyFunction_GetAnnotations' mangled-name='PyFunction_GetAnnotations' filepath='Objects/funcobject.c' line='208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetAnnotations'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFunction_SetClosure' mangled-name='PyFunction_SetClosure' filepath='Objects/funcobject.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_SetClosure'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/funcobject.c' line='218' column='1'/>
+      <parameter type-id='type-id-100' name='annotations' filepath='Objects/funcobject.c' line='218' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyFunction_GetClosure' mangled-name='PyFunction_GetClosure' filepath='Objects/funcobject.c' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetClosure'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFunction_SetKwDefaults' mangled-name='PyFunction_SetKwDefaults' filepath='Objects/funcobject.c' line='155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_SetKwDefaults'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/funcobject.c' line='218' column='1'/>
+      <parameter type-id='type-id-100' name='annotations' filepath='Objects/funcobject.c' line='218' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyFunction_GetKwDefaults' mangled-name='PyFunction_GetKwDefaults' filepath='Objects/funcobject.c' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetKwDefaults'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFunction_SetDefaults' mangled-name='PyFunction_SetDefaults' filepath='Objects/funcobject.c' line='125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_SetDefaults'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/funcobject.c' line='218' column='1'/>
+      <parameter type-id='type-id-100' name='annotations' filepath='Objects/funcobject.c' line='218' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyFunction_GetDefaults' mangled-name='PyFunction_GetDefaults' filepath='Objects/funcobject.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetDefaults'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFunction_GetModule' mangled-name='PyFunction_GetModule' filepath='Objects/funcobject.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetModule'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFunction_GetGlobals' mangled-name='PyFunction_GetGlobals' filepath='Objects/funcobject.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetGlobals'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFunction_GetCode' mangled-name='PyFunction_GetCode' filepath='Objects/funcobject.c' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetCode'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFunction_New' mangled-name='PyFunction_New' filepath='Objects/funcobject.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_New'>
+      <parameter type-id='type-id-100' name='code' filepath='Objects/funcobject.c' line='79' column='1'/>
+      <parameter type-id='type-id-100' name='globals' filepath='Objects/funcobject.c' line='79' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyFunction_NewWithQualName' mangled-name='PyFunction_NewWithQualName' filepath='Objects/funcobject.c' line='11' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_NewWithQualName'>
+      <parameter type-id='type-id-100' name='code' filepath='Objects/funcobject.c' line='11' column='1'/>
+      <parameter type-id='type-id-100' name='globals' filepath='Objects/funcobject.c' line='11' column='1'/>
+      <parameter type-id='type-id-100' name='qualname' filepath='Objects/funcobject.c' line='11' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyMethod_New' mangled-name='PyMethod_New' filepath='./Include/classobject.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTuple_Size' mangled-name='PyTuple_Size' filepath='./Include/tupleobject.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/interpreteridobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='_PyInterpreterID_Type' type-id='type-id-182' mangled-name='_PyInterpreterID_Type' visibility='default' filepath='./Include/cpython/interpreteridobject.h' line='11' column='1' elf-symbol-id='_PyInterpreterID_Type'/>
+    <class-decl name='_is' size-in-bits='45184' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='71' column='1' id='type-id-462'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='interval' type-id='type-id-33' visibility='default' filepath='./Include/internal/pycore_gil.h' line='25' column='1'/>
+        <var-decl name='next' type-id='type-id-314' visibility='default' filepath='./Include/internal/pycore_interp.h' line='73' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='last_holder' type-id='type-id-328' visibility='default' filepath='./Include/internal/pycore_gil.h' line='28' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='locked' type-id='type-id-353' visibility='default' filepath='./Include/internal/pycore_gil.h' line='31' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='switch_number' type-id='type-id-33' visibility='default' filepath='./Include/internal/pycore_gil.h' line='33' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='cond' type-id='type-id-357' visibility='default' filepath='./Include/internal/pycore_gil.h' line='37' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='mutex' type-id='type-id-358' visibility='default' filepath='./Include/internal/pycore_gil.h' line='38' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='960'>
-        <var-decl name='switch_cond' type-id='type-id-357' visibility='default' filepath='./Include/internal/pycore_gil.h' line='42' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='switch_mutex' type-id='type-id-358' visibility='default' filepath='./Include/internal/pycore_gil.h' line='43' column='1'/>
-      </data-member>
-    </class-decl>
-    <union-decl name='__anonymous_union__' size-in-bits='384' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='75' column='1' id='type-id-359'>
-      <data-member access='private'>
-        <var-decl name='__data' type-id='type-id-360' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='77' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='__size' type-id='type-id-361' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='78' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='__align' type-id='type-id-362' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='79' column='1'/>
-      </data-member>
-    </union-decl>
-    <class-decl name='__pthread_cond_s' size-in-bits='384' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='92' column='1' id='type-id-360'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='' type-id='type-id-363' visibility='default'/>
+        <var-decl name='tstate_head' type-id='type-id-232' visibility='default' filepath='./Include/internal/pycore_interp.h' line='74' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='__g_refs' type-id='type-id-364' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='112' column='1'/>
+        <var-decl name='runtime' type-id='type-id-463' visibility='default' filepath='./Include/internal/pycore_interp.h' line='79' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='__g_size' type-id='type-id-364' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='113' column='1'/>
+        <var-decl name='id' type-id='type-id-316' visibility='default' filepath='./Include/internal/pycore_interp.h' line='81' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='__g1_orig_size' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='114' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='__wrefs' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='115' column='1'/>
+        <var-decl name='id_refcount' type-id='type-id-316' visibility='default' filepath='./Include/internal/pycore_interp.h' line='82' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='__g_signals' type-id='type-id-364' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='116' column='1'/>
+        <var-decl name='requires_idref' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='83' column='1'/>
       </data-member>
-    </class-decl>
-    <union-decl name='__anonymous_union__' size-in-bits='64' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='94' column='1' id='type-id-363'>
-      <data-member access='private'>
-        <var-decl name='__wseq' type-id='type-id-365' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='96' column='1'/>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='id_mutex' type-id='type-id-317' visibility='default' filepath='./Include/internal/pycore_interp.h' line='84' column='1'/>
       </data-member>
-      <data-member access='private'>
-        <var-decl name='__wseq32' type-id='type-id-366' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='101' column='1'/>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='finalizing' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='86' column='1'/>
       </data-member>
-    </union-decl>
-    <type-decl name='long long unsigned int' size-in-bits='64' id='type-id-365'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='97' column='1' id='type-id-366'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='__low' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='99' column='1'/>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='ceval' type-id='type-id-318' visibility='default' filepath='./Include/internal/pycore_interp.h' line='88' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='__high' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='100' column='1'/>
+      <data-member access='public' layout-offset-in-bits='4928'>
+        <var-decl name='gc' type-id='type-id-319' visibility='default' filepath='./Include/internal/pycore_interp.h' line='89' column='1'/>
       </data-member>
-    </class-decl>
-
-    <array-type-def dimensions='1' type-id='type-id-107' size-in-bits='64' id='type-id-364'>
-      <subrange length='2' type-id='type-id-33' id='type-id-367'/>
-
-    </array-type-def>
-
-    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='384' id='type-id-361'>
-      <subrange length='48' type-id='type-id-33' id='type-id-368'/>
-
-    </array-type-def>
-    <type-decl name='long long int' size-in-bits='64' id='type-id-362'/>
-    <typedef-decl name='pthread_cond_t' type-id='type-id-359' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='80' column='1' id='type-id-357'/>
-    <union-decl name='__anonymous_union__' size-in-bits='320' is-anonymous='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='67' column='1' id='type-id-369'>
-      <data-member access='private'>
-        <var-decl name='__data' type-id='type-id-370' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='69' column='1'/>
+      <data-member access='public' layout-offset-in-bits='6848'>
+        <var-decl name='modules' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='91' column='1'/>
       </data-member>
-      <data-member access='private'>
-        <var-decl name='__size' type-id='type-id-371' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='70' column='1'/>
+      <data-member access='public' layout-offset-in-bits='6912'>
+        <var-decl name='modules_by_index' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='92' column='1'/>
       </data-member>
-      <data-member access='private'>
-        <var-decl name='__align' type-id='type-id-12' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='71' column='1'/>
+      <data-member access='public' layout-offset-in-bits='6976'>
+        <var-decl name='sysdict' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='93' column='1'/>
       </data-member>
-    </union-decl>
-    <class-decl name='__pthread_mutex_s' size-in-bits='320' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='22' column='1' id='type-id-370'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='__lock' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='24' column='1'/>
+      <data-member access='public' layout-offset-in-bits='7040'>
+        <var-decl name='builtins' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='94' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='__count' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='25' column='1'/>
+      <data-member access='public' layout-offset-in-bits='7104'>
+        <var-decl name='importlib' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='7168'>
+        <var-decl name='num_threads' type-id='type-id-12' visibility='default' filepath='./Include/internal/pycore_interp.h' line='98' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='__owner' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='26' column='1'/>
+      <data-member access='public' layout-offset-in-bits='7232'>
+        <var-decl name='pythread_stacksize' type-id='type-id-191' visibility='default' filepath='./Include/internal/pycore_interp.h' line='103' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='__nusers' type-id='type-id-107' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='28' column='1'/>
+      <data-member access='public' layout-offset-in-bits='7296'>
+        <var-decl name='codec_search_path' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='105' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='__kind' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='32' column='1'/>
+      <data-member access='public' layout-offset-in-bits='7360'>
+        <var-decl name='codec_search_cache' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='106' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='__spins' type-id='type-id-6' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='34' column='1'/>
+      <data-member access='public' layout-offset-in-bits='7424'>
+        <var-decl name='codec_error_registry' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='107' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='176'>
-        <var-decl name='__elision' type-id='type-id-6' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='35' column='1'/>
+      <data-member access='public' layout-offset-in-bits='7488'>
+        <var-decl name='codecs_initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='108' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='__list' type-id='type-id-372' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/struct_mutex.h' line='36' column='1'/>
+      <data-member access='public' layout-offset-in-bits='7552'>
+        <var-decl name='unicode' type-id='type-id-320' visibility='default' filepath='./Include/internal/pycore_interp.h' line='110' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='__pthread_internal_list' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='49' column='1' id='type-id-373'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='__prev' type-id='type-id-374' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='51' column='1'/>
+      <data-member access='public' layout-offset-in-bits='7808'>
+        <var-decl name='config' type-id='type-id-321' visibility='default' filepath='./Include/internal/pycore_interp.h' line='112' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='__next' type-id='type-id-374' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='52' column='1'/>
+      <data-member access='public' layout-offset-in-bits='10944'>
+        <var-decl name='dlopenflags' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='114' column='1'/>
       </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-373' size-in-bits='64' id='type-id-374'/>
-    <typedef-decl name='__pthread_list_t' type-id='type-id-373' filepath='/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h' line='53' column='1' id='type-id-372'/>
-
-    <array-type-def dimensions='1' type-id='type-id-1' size-in-bits='320' id='type-id-371'>
-      <subrange length='40' type-id='type-id-33' id='type-id-375'/>
-
-    </array-type-def>
-    <typedef-decl name='pthread_mutex_t' type-id='type-id-369' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='72' column='1' id='type-id-358'/>
-    <class-decl name='_gilstate_runtime_state' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='27' column='1' id='type-id-333'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='check_enabled' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='30' column='1'/>
+      <data-member access='public' layout-offset-in-bits='11008'>
+        <var-decl name='dict' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='117' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='tstate_current' type-id='type-id-328' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='33' column='1'/>
+      <data-member access='public' layout-offset-in-bits='11072'>
+        <var-decl name='builtins_copy' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='119' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='autoInterpreterState' type-id='type-id-311' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='38' column='1'/>
+      <data-member access='public' layout-offset-in-bits='11136'>
+        <var-decl name='import_func' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='120' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='autoTSSkey' type-id='type-id-376' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='39' column='1'/>
+      <data-member access='public' layout-offset-in-bits='11200'>
+        <var-decl name='eval_frame' type-id='type-id-322' visibility='default' filepath='./Include/internal/pycore_interp.h' line='122' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='_Py_tss_t' size-in-bits='64' is-struct='yes' visibility='default' filepath='./Include/pythread.h' line='143' column='1' id='type-id-377'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_is_initialized' type-id='type-id-8' visibility='default' filepath='./Include/pythread.h' line='144' column='1'/>
+      <data-member access='public' layout-offset-in-bits='11264'>
+        <var-decl name='co_extra_user_count' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='124' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='_key' type-id='type-id-378' visibility='default' filepath='./Include/pythread.h' line='145' column='1'/>
+      <data-member access='public' layout-offset-in-bits='11328'>
+        <var-decl name='co_extra_freefuncs' type-id='type-id-323' visibility='default' filepath='./Include/internal/pycore_interp.h' line='125' column='1'/>
       </data-member>
-    </class-decl>
-    <typedef-decl name='pthread_key_t' type-id='type-id-107' filepath='/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h' line='49' column='1' id='type-id-378'/>
-    <typedef-decl name='Py_tss_t' type-id='type-id-377' filepath='./Include/pythread.h' line='123' column='1' id='type-id-376'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-334' visibility='default' filepath='./Include/cpython/initconfig.h' line='47' column='1' id='type-id-379'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_config_init' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='48' column='1'/>
+      <data-member access='public' layout-offset-in-bits='27648'>
+        <var-decl name='before_forkers' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='128' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='parse_argv' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='52' column='1'/>
+      <data-member access='public' layout-offset-in-bits='27712'>
+        <var-decl name='after_forkers_parent' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='129' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='isolated' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='59' column='1'/>
+      <data-member access='public' layout-offset-in-bits='27776'>
+        <var-decl name='after_forkers_child' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='130' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='use_environment' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='64' column='1'/>
+      <data-member access='public' layout-offset-in-bits='27840'>
+        <var-decl name='pyexitfunc' type-id='type-id-112' visibility='default' filepath='./Include/internal/pycore_interp.h' line='133' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='configure_locale' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='68' column='1'/>
+      <data-member access='public' layout-offset-in-bits='27904'>
+        <var-decl name='pyexitmodule' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='134' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='coerce_c_locale' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='81' column='1'/>
+      <data-member access='public' layout-offset-in-bits='27968'>
+        <var-decl name='tstate_next_unique_id' type-id='type-id-238' visibility='default' filepath='./Include/internal/pycore_interp.h' line='136' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='coerce_c_locale_warn' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='89' column='1'/>
+      <data-member access='public' layout-offset-in-bits='28032'>
+        <var-decl name='warnings' type-id='type-id-324' visibility='default' filepath='./Include/internal/pycore_interp.h' line='138' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='224'>
-        <var-decl name='utf8_mode' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='114' column='1'/>
+      <data-member access='public' layout-offset-in-bits='28288'>
+        <var-decl name='audit_hooks' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='140' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='dev_mode' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='120' column='1'/>
+      <data-member access='public' layout-offset-in-bits='28352'>
+        <var-decl name='parser' type-id='type-id-325' visibility='default' filepath='./Include/internal/pycore_interp.h' line='147' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='allocator' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='124' column='1'/>
+      <data-member access='public' layout-offset-in-bits='28416'>
+        <var-decl name='small_ints' type-id='type-id-326' visibility='default' filepath='./Include/internal/pycore_interp.h' line='155' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='PyPreConfig' type-id='type-id-379' filepath='./Include/cpython/initconfig.h' line='125' column='1' id='type-id-334'/>
-    <typedef-decl name='Py_OpenCodeHookFunction' type-id='type-id-179' filepath='./Include/cpython/fileobject.h' line='16' column='1' id='type-id-335'/>
-    <class-decl name='_Py_AuditHookEntry' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='44' column='1' id='type-id-380'>
+    <class-decl name='pyruntimestate' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-464'/>
+    <pointer-type-def type-id='type-id-464' size-in-bits='64' id='type-id-463'/>
+    <function-decl name='_PyInterpreterID_LookUp' mangled-name='_PyInterpreterID_LookUp' filepath='Objects/interpreteridobject.c' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterID_LookUp'>
+      <parameter type-id='type-id-100' name='requested_id' filepath='Objects/interpreteridobject.c' line='281' column='1'/>
+      <return type-id='type-id-311'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_GetIDObject' mangled-name='_PyInterpreterState_GetIDObject' filepath='Objects/interpreteridobject.c' line='268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetIDObject'>
+      <parameter type-id='type-id-311' name='interp' filepath='Objects/interpreteridobject.c' line='268' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterID_New' mangled-name='_PyInterpreterID_New' filepath='Objects/interpreteridobject.c' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterID_New'>
+      <parameter type-id='type-id-316' name='id' filepath='Objects/interpreteridobject.c' line='262' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyLong_AsLongLong' mangled-name='PyLong_AsLongLong' filepath='./Include/longobject.h' line='98' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_LookUpID' mangled-name='_PyInterpreterState_LookUpID' filepath='./Include/internal/pycore_interp.h' line='182' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_IDIncref' mangled-name='_PyInterpreterState_IDIncref' filepath='./Include/internal/pycore_interp.h' line='185' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_IDInitref' mangled-name='_PyInterpreterState_IDInitref' filepath='./Include/internal/pycore_interp.h' line='184' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyInterpreterState_GetID' mangled-name='PyInterpreterState_GetID' filepath='./Include/pystate.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_FromLongLong' mangled-name='PyLong_FromLongLong' filepath='./Include/longobject.h' line='96' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_IDDecref' mangled-name='_PyInterpreterState_IDDecref' filepath='./Include/internal/pycore_interp.h' line='186' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyArg_ParseTupleAndKeywords' mangled-name='PyArg_ParseTupleAndKeywords' filepath='./Include/modsupport.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_AsLongLongAndOverflow' mangled-name='PyLong_AsLongLongAndOverflow' filepath='./Include/longobject.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/iterobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PySeqIter_Type' type-id='type-id-182' mangled-name='PySeqIter_Type' visibility='default' filepath='./Include/iterobject.h' line='8' column='1' elf-symbol-id='PySeqIter_Type'/>
+    <var-decl name='PyCallIter_Type' type-id='type-id-182' mangled-name='PyCallIter_Type' visibility='default' filepath='./Include/iterobject.h' line='9' column='1' elf-symbol-id='PyCallIter_Type'/>
+    <function-decl name='PyCallIter_New' mangled-name='PyCallIter_New' filepath='Objects/iterobject.c' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCallIter_New'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/iterobject.c' line='181' column='1'/>
+      <parameter type-id='type-id-100' name='sentinel' filepath='Objects/iterobject.c' line='181' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySeqIter_New' mangled-name='PySeqIter_New' filepath='Objects/iterobject.c' line='15' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySeqIter_New'>
+      <parameter type-id='type-id-100' name='seq' filepath='Objects/iterobject.c' line='15' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_HasLen' mangled-name='_PyObject_HasLen' filepath='./Include/cpython/abstract.h' line='257' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/listobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyList_Type' type-id='type-id-182' mangled-name='PyList_Type' visibility='default' filepath='./Include/listobject.h' line='20' column='1' elf-symbol-id='PyList_Type'/>
+    <var-decl name='PyListIter_Type' type-id='type-id-182' mangled-name='PyListIter_Type' visibility='default' filepath='./Include/listobject.h' line='21' column='1' elf-symbol-id='PyListIter_Type'/>
+    <var-decl name='PyListRevIter_Type' type-id='type-id-182' mangled-name='PyListRevIter_Type' visibility='default' filepath='./Include/listobject.h' line='22' column='1' elf-symbol-id='PyListRevIter_Type'/>
+    <function-decl name='PyList_AsTuple' mangled-name='PyList_AsTuple' filepath='Objects/listobject.c' line='2492' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_AsTuple'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/listobject.c' line='2492' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyList_Reverse' mangled-name='PyList_Reverse' filepath='Objects/listobject.c' line='2478' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Reverse'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/listobject.c' line='2478' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyList_Sort' mangled-name='PyList_Sort' filepath='Objects/listobject.c' line='2449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Sort'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/listobject.c' line='2449' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-465' visibility='default' filepath='./Include/cpython/listobject.h' line='9' column='1' id='type-id-466'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='next' type-id='type-id-336' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='45' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-77' visibility='default' filepath='./Include/cpython/listobject.h' line='10' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='hookCFunction' type-id='type-id-381' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='46' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='ob_item' type-id='type-id-303' visibility='default' filepath='./Include/cpython/listobject.h' line='12' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='userData' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='47' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='allocated' type-id='type-id-15' visibility='default' filepath='./Include/cpython/listobject.h' line='25' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-380' size-in-bits='64' id='type-id-336'/>
-    <pointer-type-def type-id='type-id-382' size-in-bits='64' id='type-id-383'/>
-    <typedef-decl name='Py_AuditHookFunction' type-id='type-id-383' filepath='./Include/cpython/sysmodule.h' line='14' column='1' id='type-id-381'/>
-    <typedef-decl name='_Py_AuditHookEntry' type-id='type-id-380' filepath='./Include/internal/pycore_runtime.h' line='48' column='1' id='type-id-384'/>
-    <pointer-type-def type-id='type-id-327' size-in-bits='64' id='type-id-315'/>
-    <class-decl name='_ceval_state' size-in-bits='4416' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='35' column='1' id='type-id-318'>
+    <typedef-decl name='PyListObject' type-id='type-id-466' filepath='./Include/cpython/listobject.h' line='26' column='1' id='type-id-465'/>
+    <pointer-type-def type-id='type-id-465' size-in-bits='64' id='type-id-467'/>
+    <function-decl name='_PyList_Extend' mangled-name='_PyList_Extend' filepath='Objects/listobject.c' line='966' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyList_Extend'>
+      <parameter type-id='type-id-467' name='self' filepath='Objects/listobject.c' line='966' column='1'/>
+      <parameter type-id='type-id-100' name='iterable' filepath='Objects/listobject.c' line='966' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyList_SetSlice' mangled-name='PyList_SetSlice' filepath='Objects/listobject.c' line='711' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_SetSlice'>
+      <parameter type-id='type-id-100' name='a' filepath='Objects/listobject.c' line='711' column='1'/>
+      <parameter type-id='type-id-15' name='ilow' filepath='Objects/listobject.c' line='711' column='1'/>
+      <parameter type-id='type-id-15' name='ihigh' filepath='Objects/listobject.c' line='711' column='1'/>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/listobject.c' line='711' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyList_GetSlice' mangled-name='PyList_GetSlice' filepath='Objects/listobject.c' line='469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_GetSlice'>
+      <parameter type-id='type-id-100' name='a' filepath='Objects/listobject.c' line='469' column='1'/>
+      <parameter type-id='type-id-15' name='ilow' filepath='Objects/listobject.c' line='469' column='1'/>
+      <parameter type-id='type-id-15' name='ihigh' filepath='Objects/listobject.c' line='469' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyList_Append' mangled-name='PyList_Append' filepath='Objects/listobject.c' line='314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Append'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/listobject.c' line='314' column='1'/>
+      <parameter type-id='type-id-100' name='newitem' filepath='Objects/listobject.c' line='314' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyList_Insert' mangled-name='PyList_Insert' filepath='Objects/listobject.c' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Insert'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/listobject.c' line='284' column='1'/>
+      <parameter type-id='type-id-15' name='where' filepath='Objects/listobject.c' line='284' column='1'/>
+      <parameter type-id='type-id-100' name='newitem' filepath='Objects/listobject.c' line='284' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyList_SetItem' mangled-name='PyList_SetItem' filepath='Objects/listobject.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_SetItem'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/listobject.c' line='230' column='1'/>
+      <parameter type-id='type-id-15' name='i' filepath='Objects/listobject.c' line='230' column='1'/>
+      <parameter type-id='type-id-100' name='newitem' filepath='Objects/listobject.c' line='231' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyList_GetItem' mangled-name='PyList_GetItem' filepath='Objects/listobject.c' line='210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_GetItem'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/listobject.c' line='210' column='1'/>
+      <parameter type-id='type-id-15' name='i' filepath='Objects/listobject.c' line='210' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyList_Size' mangled-name='PyList_Size' filepath='Objects/listobject.c' line='184' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Size'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/bytesobject.c' line='1197' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyList_New' mangled-name='PyList_New' filepath='Objects/listobject.c' line='133' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_New'>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/listobject.c' line='133' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyList_DebugMallocStats' mangled-name='_PyList_DebugMallocStats' filepath='Objects/listobject.c' line='125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyList_DebugMallocStats'>
+      <parameter type-id='type-id-223' name='out' filepath='Objects/floatobject.c' line='2001' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyArg_NoKwnames' mangled-name='_PyArg_NoKwnames' filepath='./Include/modsupport.h' line='63' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_GC_Track' mangled-name='PyObject_GC_Track' filepath='./Include/objimpl.h' line='175' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyEval_SliceIndexNotNone' mangled-name='_PyEval_SliceIndexNotNone' filepath='./Include/cpython/ceval.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_WriteChar' mangled-name='_PyUnicodeWriter_WriteChar' filepath='./Include/cpython/unicodeobject.h' line='674' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_ReprLeave' mangled-name='Py_ReprLeave' filepath='./Include/object.h' line='276' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_ReprEnter' mangled-name='Py_ReprEnter' filepath='./Include/object.h' line='275' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/longobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='_PyLong_Zero' type-id='type-id-100' mangled-name='_PyLong_Zero' visibility='default' filepath='./Include/longobject.h' line='232' column='1' elf-symbol-id='_PyLong_Zero'/>
+    <var-decl name='_PyLong_One' type-id='type-id-100' mangled-name='_PyLong_One' visibility='default' filepath='./Include/longobject.h' line='233' column='1' elf-symbol-id='_PyLong_One'/>
+
+    <array-type-def dimensions='1' type-id='type-id-418' size-in-bits='2048' id='type-id-468'>
+      <subrange length='256' type-id='type-id-33' id='type-id-469'/>
+
+    </array-type-def>
+    <var-decl name='_PyLong_DigitValue' type-id='type-id-468' mangled-name='_PyLong_DigitValue' visibility='default' filepath='./Include/longobject.h' line='79' column='1' elf-symbol-id='_PyLong_DigitValue'/>
+    <var-decl name='PyLong_Type' type-id='type-id-182' mangled-name='PyLong_Type' visibility='default' filepath='./Include/longobject.h' line='12' column='1' elf-symbol-id='PyLong_Type'/>
+    <function-decl name='PyLong_GetInfo' mangled-name='PyLong_GetInfo' filepath='Objects/longobject.c' line='5737' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_GetInfo'>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_DivmodNear' mangled-name='_PyLong_DivmodNear' filepath='Objects/longobject.c' line='5191' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_DivmodNear'>
+      <parameter type-id='type-id-100' name='a' filepath='Objects/longobject.c' line='5191' column='1'/>
+      <parameter type-id='type-id-100' name='b' filepath='Objects/longobject.c' line='5191' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_GCD' mangled-name='_PyLong_GCD' filepath='Objects/longobject.c' line='4829' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_GCD'>
+      <parameter type-id='type-id-100' name='aarg' filepath='Objects/longobject.c' line='4829' column='1'/>
+      <parameter type-id='type-id-100' name='barg' filepath='Objects/longobject.c' line='4829' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_Lshift' mangled-name='_PyLong_Lshift' filepath='Objects/longobject.c' line='4637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Lshift'>
+      <parameter type-id='type-id-100' name='a' filepath='Objects/longobject.c' line='4637' column='1'/>
+      <parameter type-id='type-id-191' name='shiftby' filepath='Objects/longobject.c' line='4637' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_Rshift' mangled-name='_PyLong_Rshift' filepath='Objects/longobject.c' line='4566' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Rshift'>
+      <parameter type-id='type-id-100' name='a' filepath='Objects/longobject.c' line='4637' column='1'/>
+      <parameter type-id='type-id-191' name='shiftby' filepath='Objects/longobject.c' line='4637' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_Frexp' mangled-name='_PyLong_Frexp' filepath='Objects/longobject.c' line='2865' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Frexp'>
+      <parameter type-id='type-id-430' name='a' filepath='Objects/longobject.c' line='2865' column='1'/>
+      <parameter type-id='type-id-158' name='e' filepath='Objects/longobject.c' line='2865' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='PyLong_FromUnicodeObject' mangled-name='PyLong_FromUnicodeObject' filepath='Objects/longobject.c' line='2625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromUnicodeObject'>
+      <parameter type-id='type-id-100' name='u' filepath='Objects/longobject.c' line='2625' column='1'/>
+      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2625' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-453' size-in-bits='64' id='type-id-470'/>
+    <function-decl name='PyLong_FromUnicode' mangled-name='PyLong_FromUnicode' filepath='Objects/longobject.c' line='2614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromUnicode'>
+      <parameter type-id='type-id-470' name='u' filepath='Objects/longobject.c' line='2614' column='1'/>
+      <parameter type-id='type-id-15' name='length' filepath='Objects/longobject.c' line='2614' column='1'/>
+      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2614' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_FromBytes' mangled-name='_PyLong_FromBytes' filepath='Objects/longobject.c' line='2594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromBytes'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/longobject.c' line='2594' column='1'/>
+      <parameter type-id='type-id-15' name='len' filepath='Objects/longobject.c' line='2594' column='1'/>
+      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2594' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyLong_FromString' mangled-name='PyLong_FromString' filepath='Objects/longobject.c' line='2233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromString'>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/longobject.c' line='2233' column='1'/>
+      <parameter type-id='type-id-304' name='pend' filepath='Objects/longobject.c' line='2233' column='1'/>
+      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2233' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_FormatBytesWriter' mangled-name='_PyLong_FormatBytesWriter' filepath='Objects/longobject.c' line='2082' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FormatBytesWriter'>
+      <parameter type-id='type-id-302' name='writer' filepath='Objects/longobject.c' line='2082' column='1'/>
+      <parameter type-id='type-id-7' name='str' filepath='Objects/longobject.c' line='2082' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/longobject.c' line='2083' column='1'/>
+      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2084' column='1'/>
+      <parameter type-id='type-id-8' name='alternate' filepath='Objects/longobject.c' line='2084' column='1'/>
+      <return type-id='type-id-7'/>
+    </function-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='448' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-471' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='606' column='1' id='type-id-472'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='recursion_limit' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='36' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='tracing_possible' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='42' column='1'/>
+        <var-decl name='buffer' type-id='type-id-100' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='607' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='eval_breaker' type-id='type-id-353' visibility='default' filepath='./Include/internal/pycore_interp.h' line='45' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='gil_drop_request' type-id='type-id-353' visibility='default' filepath='./Include/internal/pycore_interp.h' line='47' column='1'/>
+        <var-decl name='data' type-id='type-id-32' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='608' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='pending' type-id='type-id-385' visibility='default' filepath='./Include/internal/pycore_interp.h' line='48' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='_pending_calls' size-in-bits='4288' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='18' column='1' id='type-id-385'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='lock' type-id='type-id-317' visibility='default' filepath='./Include/internal/pycore_interp.h' line='19' column='1'/>
+        <var-decl name='kind' type-id='type-id-473' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='609' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='calls_to_do' type-id='type-id-353' visibility='default' filepath='./Include/internal/pycore_interp.h' line='21' column='1'/>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='maxchar' type-id='type-id-474' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='610' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='async_exc' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='25' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='size' type-id='type-id-15' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='611' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='calls' type-id='type-id-386' visibility='default' filepath='./Include/internal/pycore_interp.h' line='30' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='pos' type-id='type-id-15' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='612' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='4224'>
-        <var-decl name='first' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='31' column='1'/>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='min_length' type-id='type-id-15' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='615' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='4256'>
-        <var-decl name='last' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='32' column='1'/>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='min_char' type-id='type-id-474' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='618' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='27' column='1' id='type-id-387'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='func' type-id='type-id-388' visibility='default' filepath='./Include/internal/pycore_interp.h' line='28' column='1'/>
+      <data-member access='public' layout-offset-in-bits='416'>
+        <var-decl name='overallocate' type-id='type-id-418' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='621' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='arg' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_interp.h' line='29' column='1'/>
+      <data-member access='public' layout-offset-in-bits='424'>
+        <var-decl name='readonly' type-id='type-id-418' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='625' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-389' size-in-bits='64' id='type-id-388'/>
-
-    <array-type-def dimensions='1' type-id='type-id-387' size-in-bits='4096' id='type-id-386'>
-      <subrange length='32' type-id='type-id-33' id='type-id-352'/>
-
-    </array-type-def>
-    <class-decl name='_gc_runtime_state' size-in-bits='1920' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_gc.h' line='130' column='1' id='type-id-319'>
+    <enum-decl name='PyUnicode_Kind' filepath='./Include/cpython/unicodeobject.h' line='313' column='1' id='type-id-473'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='PyUnicode_WCHAR_KIND' value='0'/>
+      <enumerator name='PyUnicode_1BYTE_KIND' value='1'/>
+      <enumerator name='PyUnicode_2BYTE_KIND' value='2'/>
+      <enumerator name='PyUnicode_4BYTE_KIND' value='4'/>
+    </enum-decl>
+    <typedef-decl name='Py_UCS4' type-id='type-id-293' filepath='./Include/unicodeobject.h' line='102' column='1' id='type-id-474'/>
+    <typedef-decl name='_PyUnicodeWriter' type-id='type-id-472' filepath='./Include/cpython/unicodeobject.h' line='626' column='1' id='type-id-471'/>
+    <pointer-type-def type-id='type-id-471' size-in-bits='64' id='type-id-475'/>
+    <function-decl name='_PyLong_FormatWriter' mangled-name='_PyLong_FormatWriter' filepath='Objects/longobject.c' line='2069' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FormatWriter'>
+      <parameter type-id='type-id-475' name='writer' filepath='Objects/longobject.c' line='2069' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/longobject.c' line='2070' column='1'/>
+      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2071' column='1'/>
+      <parameter type-id='type-id-8' name='alternate' filepath='Objects/longobject.c' line='2071' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyLong_Format' mangled-name='_PyLong_Format' filepath='Objects/longobject.c' line='2055' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Format'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/longobject.c' line='2055' column='1'/>
+      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2055' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_Size_t_Converter' mangled-name='_PyLong_Size_t_Converter' filepath='Objects/longobject.c' line='1541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Size_t_Converter'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/longobject.c' line='1541' column='1'/>
+      <parameter type-id='type-id-32' name='ptr' filepath='Objects/longobject.c' line='1541' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyLong_UnsignedLongLong_Converter' mangled-name='_PyLong_UnsignedLongLong_Converter' filepath='Objects/longobject.c' line='1524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_UnsignedLongLong_Converter'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/longobject.c' line='1541' column='1'/>
+      <parameter type-id='type-id-32' name='ptr' filepath='Objects/longobject.c' line='1541' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyLong_UnsignedLong_Converter' mangled-name='_PyLong_UnsignedLong_Converter' filepath='Objects/longobject.c' line='1507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_UnsignedLong_Converter'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/longobject.c' line='1541' column='1'/>
+      <parameter type-id='type-id-32' name='ptr' filepath='Objects/longobject.c' line='1541' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyLong_UnsignedInt_Converter' mangled-name='_PyLong_UnsignedInt_Converter' filepath='Objects/longobject.c' line='1485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_UnsignedInt_Converter'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/longobject.c' line='1485' column='1'/>
+      <parameter type-id='type-id-32' name='ptr' filepath='Objects/longobject.c' line='1485' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyLong_UnsignedShort_Converter' mangled-name='_PyLong_UnsignedShort_Converter' filepath='Objects/longobject.c' line='1463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_UnsignedShort_Converter'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/longobject.c' line='1485' column='1'/>
+      <parameter type-id='type-id-32' name='ptr' filepath='Objects/longobject.c' line='1485' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyLong_AsLongLongAndOverflow' mangled-name='PyLong_AsLongLongAndOverflow' filepath='Objects/longobject.c' line='1387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsLongLongAndOverflow'>
+      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='1387' column='1'/>
+      <parameter type-id='type-id-227' name='overflow' filepath='Objects/longobject.c' line='1387' column='1'/>
+      <return type-id='type-id-362'/>
+    </function-decl>
+    <function-decl name='PyLong_AsUnsignedLongLongMask' mangled-name='PyLong_AsUnsignedLongLongMask' filepath='Objects/longobject.c' line='1353' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsUnsignedLongLongMask'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/longobject.c' line='1353' column='1'/>
+      <return type-id='type-id-365'/>
+    </function-decl>
+    <function-decl name='PyLong_AsLongLong' mangled-name='PyLong_AsLongLong' filepath='Objects/longobject.c' line='1236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsLongLong'>
+      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='1236' column='1'/>
+      <return type-id='type-id-362'/>
+    </function-decl>
+    <function-decl name='PyLong_AsVoidPtr' mangled-name='PyLong_AsVoidPtr' filepath='Objects/longobject.c' line='1108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsVoidPtr'>
+      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='1108' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyLong_FromVoidPtr' mangled-name='PyLong_FromVoidPtr' filepath='Objects/longobject.c' line='1091' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromVoidPtr'>
+      <parameter type-id='type-id-32' name='p' filepath='Objects/longobject.c' line='1091' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_AsByteArray' mangled-name='_PyLong_AsByteArray' filepath='Objects/longobject.c' line='956' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_AsByteArray'>
+      <parameter type-id='type-id-430' name='v' filepath='Objects/longobject.c' line='956' column='1'/>
+      <parameter type-id='type-id-416' name='bytes' filepath='Objects/longobject.c' line='957' column='1'/>
+      <parameter type-id='type-id-191' name='n' filepath='Objects/longobject.c' line='957' column='1'/>
+      <parameter type-id='type-id-8' name='little_endian' filepath='Objects/longobject.c' line='958' column='1'/>
+      <parameter type-id='type-id-8' name='is_signed' filepath='Objects/longobject.c' line='958' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyLong_FromByteArray' mangled-name='_PyLong_FromByteArray' filepath='Objects/longobject.c' line='845' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromByteArray'>
+      <parameter type-id='type-id-460' name='bytes' filepath='Objects/longobject.c' line='845' column='1'/>
+      <parameter type-id='type-id-191' name='n' filepath='Objects/longobject.c' line='845' column='1'/>
+      <parameter type-id='type-id-8' name='little_endian' filepath='Objects/longobject.c' line='846' column='1'/>
+      <parameter type-id='type-id-8' name='is_signed' filepath='Objects/longobject.c' line='846' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_NumBits' mangled-name='_PyLong_NumBits' filepath='Objects/longobject.c' line='815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_NumBits'>
+      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='815' column='1'/>
+      <return type-id='type-id-191'/>
+    </function-decl>
+    <function-decl name='_PyLong_Sign' mangled-name='_PyLong_Sign' filepath='Objects/longobject.c' line='804' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Sign'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='284' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyLong_AsUnsignedLongMask' mangled-name='PyLong_AsUnsignedLongMask' filepath='Objects/longobject.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsUnsignedLongMask'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/longobject.c' line='780' column='1'/>
+      <return type-id='type-id-33'/>
+    </function-decl>
+    <function-decl name='PyLong_AsSize_t' mangled-name='PyLong_AsSize_t' filepath='Objects/longobject.c' line='707' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsSize_t'>
+      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='707' column='1'/>
+      <return type-id='type-id-191'/>
+    </function-decl>
+    <function-decl name='PyLong_AsUnsignedLong' mangled-name='PyLong_AsUnsignedLong' filepath='Objects/longobject.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsUnsignedLong'>
+      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='663' column='1'/>
+      <return type-id='type-id-33'/>
+    </function-decl>
+    <function-decl name='PyLong_AsSsize_t' mangled-name='PyLong_AsSsize_t' filepath='Objects/longobject.c' line='608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsSsize_t'>
+      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='608' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='_PyLong_AsInt' mangled-name='_PyLong_AsInt' filepath='Objects/longobject.c' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_AsInt'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/longobject.c' line='590' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyLong_AsLongAndOverflow' mangled-name='PyLong_AsLongAndOverflow' filepath='Objects/longobject.c' line='494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsLongAndOverflow'>
+      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='494' column='1'/>
+      <parameter type-id='type-id-227' name='overflow' filepath='Objects/longobject.c' line='494' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='PyLong_FromDouble' mangled-name='PyLong_FromDouble' filepath='Objects/longobject.c' line='417' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromDouble'>
+      <parameter type-id='type-id-441' name='dval' filepath='Objects/longobject.c' line='417' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyLong_FromSize_t' mangled-name='PyLong_FromSize_t' filepath='Objects/longobject.c' line='409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromSize_t'>
+      <parameter type-id='type-id-191' name='ival' filepath='Objects/longobject.c' line='409' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyLong_FromUnsignedLongLong' mangled-name='PyLong_FromUnsignedLongLong' filepath='Objects/longobject.c' line='401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromUnsignedLongLong'>
+      <parameter type-id='type-id-365' name='ival' filepath='Objects/longobject.c' line='401' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_Copy' mangled-name='_PyLong_Copy' filepath='Objects/longobject.c' line='269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Copy'>
+      <parameter type-id='type-id-430' name='src' filepath='Objects/longobject.c' line='269' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_FromNbIndexOrNbInt' mangled-name='_PyLong_FromNbIndexOrNbInt' filepath='Objects/longobject.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromNbIndexOrNbInt'>
+      <parameter type-id='type-id-100' name='integral' filepath='Objects/longobject.c' line='180' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_FromNbInt' mangled-name='_PyLong_FromNbInt' filepath='Objects/longobject.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromNbInt'>
+      <parameter type-id='type-id-100' name='integral' filepath='Objects/longobject.c' line='128' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyLong_New' mangled-name='_PyLong_New' filepath='Objects/longobject.c' line='246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_New'>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/longobject.c' line='246' column='1'/>
+      <return type-id='type-id-430'/>
+    </function-decl>
+    <function-decl name='PyLong_FromLong' mangled-name='PyLong_FromLong' filepath='Objects/longobject.c' line='297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromLong'>
+      <parameter type-id='type-id-12' name='ival' filepath='Objects/longobject.c' line='297' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyLong_FromUnsignedLong' mangled-name='PyLong_FromUnsignedLong' filepath='Objects/longobject.c' line='393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromUnsignedLong'>
+      <parameter type-id='type-id-33' name='ival' filepath='Objects/longobject.c' line='393' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyLong_AsLong' mangled-name='PyLong_AsLong' filepath='Objects/longobject.c' line='573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsLong'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/longobject.c' line='573' column='1'/>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='PyLong_FromLongLong' mangled-name='PyLong_FromLongLong' filepath='Objects/longobject.c' line='1145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromLongLong'>
+      <parameter type-id='type-id-362' name='ival' filepath='Objects/longobject.c' line='1145' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyLong_FromSsize_t' mangled-name='PyLong_FromSsize_t' filepath='Objects/longobject.c' line='1192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromSsize_t'>
+      <parameter type-id='type-id-15' name='ival' filepath='Objects/longobject.c' line='1192' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyLong_AsUnsignedLongLong' mangled-name='PyLong_AsUnsignedLongLong' filepath='Objects/longobject.c' line='1288' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsUnsignedLongLong'>
+      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='1288' column='1'/>
+      <return type-id='type-id-365'/>
+    </function-decl>
+    <function-decl name='PyLong_AsDouble' mangled-name='PyLong_AsDouble' filepath='Objects/longobject.c' line='2977' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsDouble'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/longobject.c' line='2977' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='_Py_bit_length' mangled-name='_Py_bit_length' filepath='./Include/pymath.h' line='235' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromWideChar' mangled-name='PyUnicode_FromWideChar' filepath='./Include/unicodeobject.h' line='282' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_PrepareInternal' mangled-name='_PyUnicodeWriter_PrepareInternal' filepath='./Include/cpython/unicodeobject.h' line='651' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyBytesWriter_Prepare' mangled-name='_PyBytesWriter_Prepare' filepath='./Include/cpython/bytesobject.h' line='94' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EqualToASCIIId' mangled-name='_PyUnicode_EqualToASCIIId' filepath='./Include/cpython/unicodeobject.h' line='1031' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Bytes' mangled-name='PyObject_Bytes' filepath='./Include/object.h' line='244' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_FormatAdvancedWriter' mangled-name='_PyLong_FormatAdvancedWriter' filepath='./Include/longobject.h' line='212' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/dictobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyDict_Type' type-id='type-id-182' mangled-name='PyDict_Type' visibility='default' filepath='./Include/dictobject.h' line='15' column='1' elf-symbol-id='PyDict_Type'/>
+    <var-decl name='PyDictIterKey_Type' type-id='type-id-182' mangled-name='PyDictIterKey_Type' visibility='default' filepath='./Include/dictobject.h' line='76' column='1' elf-symbol-id='PyDictIterKey_Type'/>
+    <var-decl name='PyDictIterValue_Type' type-id='type-id-182' mangled-name='PyDictIterValue_Type' visibility='default' filepath='./Include/dictobject.h' line='77' column='1' elf-symbol-id='PyDictIterValue_Type'/>
+    <var-decl name='PyDictIterItem_Type' type-id='type-id-182' mangled-name='PyDictIterItem_Type' visibility='default' filepath='./Include/dictobject.h' line='78' column='1' elf-symbol-id='PyDictIterItem_Type'/>
+    <var-decl name='PyDictRevIterKey_Type' type-id='type-id-182' mangled-name='PyDictRevIterKey_Type' visibility='default' filepath='./Include/dictobject.h' line='80' column='1' elf-symbol-id='PyDictRevIterKey_Type'/>
+    <var-decl name='PyDictRevIterItem_Type' type-id='type-id-182' mangled-name='PyDictRevIterItem_Type' visibility='default' filepath='./Include/dictobject.h' line='81' column='1' elf-symbol-id='PyDictRevIterItem_Type'/>
+    <var-decl name='PyDictRevIterValue_Type' type-id='type-id-182' mangled-name='PyDictRevIterValue_Type' visibility='default' filepath='./Include/dictobject.h' line='82' column='1' elf-symbol-id='PyDictRevIterValue_Type'/>
+    <var-decl name='PyDictKeys_Type' type-id='type-id-182' mangled-name='PyDictKeys_Type' visibility='default' filepath='./Include/dictobject.h' line='63' column='1' elf-symbol-id='PyDictKeys_Type'/>
+    <var-decl name='PyDictItems_Type' type-id='type-id-182' mangled-name='PyDictItems_Type' visibility='default' filepath='./Include/dictobject.h' line='65' column='1' elf-symbol-id='PyDictItems_Type'/>
+    <var-decl name='PyDictValues_Type' type-id='type-id-182' mangled-name='PyDictValues_Type' visibility='default' filepath='./Include/dictobject.h' line='64' column='1' elf-symbol-id='PyDictValues_Type'/>
+    <function-decl name='PyObject_GenericGetDict' mangled-name='PyObject_GenericGetDict' filepath='Objects/dictobject.c' line='4777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GenericGetDict'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/dictobject.c' line='4777' column='1'/>
+      <parameter type-id='type-id-32' name='context' filepath='Objects/dictobject.c' line='4777' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyDictView_Intersect' mangled-name='_PyDictView_Intersect' filepath='Objects/dictobject.c' line='4320' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDictView_Intersect'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/dictobject.c' line='4320' column='1'/>
+      <parameter type-id='type-id-100' name='other' filepath='Objects/dictobject.c' line='4320' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyDict_DelItemString' mangled-name='PyDict_DelItemString' filepath='Objects/dictobject.c' line='3524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_DelItemString'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/dictobject.c' line='3524' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/dictobject.c' line='3524' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-309' size-in-bits='64' id='type-id-476'/>
+    <function-decl name='_PyDict_DelItemId' mangled-name='_PyDict_DelItemId' filepath='Objects/dictobject.c' line='3515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_DelItemId'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/dictobject.c' line='3515' column='1'/>
+      <parameter type-id='type-id-476' name='key' filepath='Objects/dictobject.c' line='3515' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyDict_SetItemString' mangled-name='PyDict_SetItemString' filepath='Objects/dictobject.c' line='3501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_SetItemString'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/dictobject.c' line='3501' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/dictobject.c' line='3501' column='1'/>
+      <parameter type-id='type-id-100' name='item' filepath='Objects/dictobject.c' line='3501' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyDict_SetItemId' mangled-name='_PyDict_SetItemId' filepath='Objects/dictobject.c' line='3491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_SetItemId'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/dictobject.c' line='3491' column='1'/>
+      <parameter type-id='type-id-308' name='key' filepath='Objects/dictobject.c' line='3491' column='1'/>
+      <parameter type-id='type-id-100' name='item' filepath='Objects/dictobject.c' line='3491' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyDict_GetItemString' mangled-name='PyDict_GetItemString' filepath='Objects/dictobject.c' line='3477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_GetItemString'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/dictobject.c' line='3477' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/dictobject.c' line='3477' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyDict_GetItemId' mangled-name='_PyDict_GetItemId' filepath='Objects/dictobject.c' line='3463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_GetItemId'>
+      <parameter type-id='type-id-100' name='dp' filepath='Objects/dictobject.c' line='3463' column='1'/>
+      <parameter type-id='type-id-308' name='key' filepath='Objects/dictobject.c' line='3463' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyDict_Contains' mangled-name='_PyDict_Contains' filepath='Objects/dictobject.c' line='3305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_Contains'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='3305' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='3305' column='1'/>
+      <parameter type-id='type-id-150' name='hash' filepath='Objects/dictobject.c' line='3305' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyDict_Contains' mangled-name='PyDict_Contains' filepath='Objects/dictobject.c' line='3284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Contains'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='3284' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='3284' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-477' visibility='default' filepath='./Include/cpython/dictobject.h' line='14' column='1' id='type-id-478'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='trash_delete_later' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_gc.h' line='133' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='trash_delete_nesting' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_gc.h' line='135' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='enabled' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_gc.h' line='137' column='1'/>
+        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/cpython/dictobject.h' line='15' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='debug' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_gc.h' line='138' column='1'/>
+        <var-decl name='ma_used' type-id='type-id-15' visibility='default' filepath='./Include/cpython/dictobject.h' line='18' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='generations' type-id='type-id-390' visibility='default' filepath='./Include/internal/pycore_gc.h' line='140' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='generation0' type-id='type-id-391' visibility='default' filepath='./Include/internal/pycore_gc.h' line='141' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='permanent_generation' type-id='type-id-392' visibility='default' filepath='./Include/internal/pycore_gc.h' line='143' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1024'>
-        <var-decl name='generation_stats' type-id='type-id-393' visibility='default' filepath='./Include/internal/pycore_gc.h' line='144' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='collecting' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_gc.h' line='146' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1664'>
-        <var-decl name='garbage' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_gc.h' line='148' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1728'>
-        <var-decl name='callbacks' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_gc.h' line='150' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='long_lived_total' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_gc.h' line='157' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='long_lived_pending' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_gc.h' line='161' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='gc_generation' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_gc.h' line='113' column='1' id='type-id-392'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='head' type-id='type-id-394' visibility='default' filepath='./Include/internal/pycore_gc.h' line='114' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='threshold' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_gc.h' line='115' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='count' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_gc.h' line='116' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-394' visibility='default' filepath='./Include/internal/pycore_gc.h' line='12' column='1' id='type-id-395'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_gc_next' type-id='type-id-396' visibility='default' filepath='./Include/internal/pycore_gc.h' line='15' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='_gc_prev' type-id='type-id-396' visibility='default' filepath='./Include/internal/pycore_gc.h' line='19' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='uintptr_t' type-id='type-id-33' filepath='/usr/include/stdint.h' line='90' column='1' id='type-id-396'/>
-    <typedef-decl name='PyGC_Head' type-id='type-id-395' filepath='./Include/internal/pycore_gc.h' line='20' column='1' id='type-id-394'/>
-
-    <array-type-def dimensions='1' type-id='type-id-392' size-in-bits='576' id='type-id-390'>
-      <subrange length='3' type-id='type-id-33' id='type-id-397'/>
-
-    </array-type-def>
-    <pointer-type-def type-id='type-id-394' size-in-bits='64' id='type-id-391'/>
-    <class-decl name='gc_generation_stats' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_gc.h' line='121' column='1' id='type-id-398'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='collections' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_gc.h' line='123' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='collected' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_gc.h' line='125' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='uncollectable' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_gc.h' line='127' column='1'/>
-      </data-member>
-    </class-decl>
-
-    <array-type-def dimensions='1' type-id='type-id-398' size-in-bits='576' id='type-id-393'>
-      <subrange length='3' type-id='type-id-33' id='type-id-397'/>
-
-    </array-type-def>
-    <class-decl name='_Py_unicode_state' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='60' column='1' id='type-id-320'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='fs_codec' type-id='type-id-399' visibility='default' filepath='./Include/internal/pycore_interp.h' line='61' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='_Py_unicode_fs_codec' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='53' column='1' id='type-id-399'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='encoding' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp.h' line='54' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='utf8' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='55' column='1'/>
+        <var-decl name='ma_version_tag' type-id='type-id-238' visibility='default' filepath='./Include/cpython/dictobject.h' line='22' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='errors' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp.h' line='56' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='ma_keys' type-id='type-id-479' visibility='default' filepath='./Include/cpython/dictobject.h' line='24' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='error_handler' type-id='type-id-400' visibility='default' filepath='./Include/internal/pycore_interp.h' line='57' column='1'/>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='ma_values' type-id='type-id-303' visibility='default' filepath='./Include/cpython/dictobject.h' line='31' column='1'/>
       </data-member>
     </class-decl>
-    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/fileutils.h' line='5' column='1' id='type-id-401'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='_Py_ERROR_UNKNOWN' value='0'/>
-      <enumerator name='_Py_ERROR_STRICT' value='1'/>
-      <enumerator name='_Py_ERROR_SURROGATEESCAPE' value='2'/>
-      <enumerator name='_Py_ERROR_REPLACE' value='3'/>
-      <enumerator name='_Py_ERROR_IGNORE' value='4'/>
-      <enumerator name='_Py_ERROR_BACKSLASHREPLACE' value='5'/>
-      <enumerator name='_Py_ERROR_SURROGATEPASS' value='6'/>
-      <enumerator name='_Py_ERROR_XMLCHARREFREPLACE' value='7'/>
-      <enumerator name='_Py_ERROR_OTHER' value='8'/>
-    </enum-decl>
-    <typedef-decl name='_Py_error_handler' type-id='type-id-401' filepath='./Include/cpython/fileutils.h' line='15' column='1' id='type-id-400'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='3136' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-321' visibility='default' filepath='./Include/cpython/initconfig.h' line='133' column='1' id='type-id-402'>
+    <class-decl name='_dictkeysobject' size-in-bits='320' is-struct='yes' visibility='default' filepath='Objects/dict-common.h' line='22' column='1' id='type-id-480'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_config_init' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='134' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='isolated' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='136' column='1'/>
+        <var-decl name='dk_refcnt' type-id='type-id-15' visibility='default' filepath='Objects/dict-common.h' line='23' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='use_environment' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='137' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='dev_mode' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='138' column='1'/>
+        <var-decl name='dk_size' type-id='type-id-15' visibility='default' filepath='Objects/dict-common.h' line='26' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='install_signal_handlers' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='141' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='use_hash_seed' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='143' column='1'/>
+        <var-decl name='dk_lookup' type-id='type-id-481' visibility='default' filepath='Objects/dict-common.h' line='41' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='hash_seed' type-id='type-id-33' visibility='default' filepath='./Include/cpython/initconfig.h' line='144' column='1'/>
+        <var-decl name='dk_usable' type-id='type-id-15' visibility='default' filepath='Objects/dict-common.h' line='44' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='faulthandler' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='148' column='1'/>
+        <var-decl name='dk_nentries' type-id='type-id-15' visibility='default' filepath='Objects/dict-common.h' line='47' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='_use_peg_parser' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='152' column='1'/>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='dk_indices' type-id='type-id-297' visibility='default' filepath='Objects/dict-common.h' line='62' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='PyDictObject' type-id='type-id-478' filepath='./Include/cpython/dictobject.h' line='32' column='1' id='type-id-477'/>
+    <pointer-type-def type-id='type-id-477' size-in-bits='64' id='type-id-482'/>
+    <pointer-type-def type-id='type-id-483' size-in-bits='64' id='type-id-484'/>
+    <typedef-decl name='dict_lookup_func' type-id='type-id-484' filepath='Objects/dict-common.h' line='14' column='1' id='type-id-481'/>
+    <typedef-decl name='PyDictKeysObject' type-id='type-id-480' filepath='./Include/cpython/dictobject.h' line='9' column='1' id='type-id-485'/>
+    <pointer-type-def type-id='type-id-485' size-in-bits='64' id='type-id-479'/>
+    <function-decl name='_PyDict_SizeOf' mangled-name='_PyDict_SizeOf' filepath='Objects/dictobject.c' line='3165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_SizeOf'>
+      <parameter type-id='type-id-482' name='mp' filepath='Objects/dictobject.c' line='3165' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyDict_SetDefault' mangled-name='PyDict_SetDefault' filepath='Objects/dictobject.c' line='2918' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_SetDefault'>
+      <parameter type-id='type-id-100' name='d' filepath='Objects/dictobject.c' line='2918' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='2918' column='1'/>
+      <parameter type-id='type-id-100' name='defaultobj' filepath='Objects/dictobject.c' line='2918' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyDict_Items' mangled-name='PyDict_Items' filepath='Objects/dictobject.c' line='2769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Items'>
+      <parameter type-id='type-id-100' name='mp' filepath='Objects/dictobject.c' line='2769' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyDict_Values' mangled-name='PyDict_Values' filepath='Objects/dictobject.c' line='2759' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Values'>
+      <parameter type-id='type-id-100' name='mp' filepath='Objects/dictobject.c' line='2769' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyDict_Keys' mangled-name='PyDict_Keys' filepath='Objects/dictobject.c' line='2749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Keys'>
+      <parameter type-id='type-id-100' name='mp' filepath='Objects/dictobject.c' line='2769' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyDict_Size' mangled-name='PyDict_Size' filepath='Objects/dictobject.c' line='2739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Size'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/bytesobject.c' line='1197' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyDict_Copy' mangled-name='PyDict_Copy' filepath='Objects/dictobject.c' line='2665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Copy'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/dictobject.c' line='2665' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyDict_MergeEx' mangled-name='_PyDict_MergeEx' filepath='Objects/dictobject.c' line='2653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_MergeEx'>
+      <parameter type-id='type-id-100' name='a' filepath='Objects/dictobject.c' line='2653' column='1'/>
+      <parameter type-id='type-id-100' name='b' filepath='Objects/dictobject.c' line='2653' column='1'/>
+      <parameter type-id='type-id-8' name='override' filepath='Objects/dictobject.c' line='2653' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyDict_Merge' mangled-name='PyDict_Merge' filepath='Objects/dictobject.c' line='2646' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Merge'>
+      <parameter type-id='type-id-100' name='a' filepath='Objects/dictobject.c' line='2653' column='1'/>
+      <parameter type-id='type-id-100' name='b' filepath='Objects/dictobject.c' line='2653' column='1'/>
+      <parameter type-id='type-id-8' name='override' filepath='Objects/dictobject.c' line='2653' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyDict_Update' mangled-name='PyDict_Update' filepath='Objects/dictobject.c' line='2640' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Update'>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='2155' column='1'/>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='2155' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyDict_MergeFromSeq2' mangled-name='PyDict_MergeFromSeq2' filepath='Objects/dictobject.c' line='2410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_MergeFromSeq2'>
+      <parameter type-id='type-id-100' name='d' filepath='Objects/dictobject.c' line='2410' column='1'/>
+      <parameter type-id='type-id-100' name='seq2' filepath='Objects/dictobject.c' line='2410' column='1'/>
+      <parameter type-id='type-id-8' name='override' filepath='Objects/dictobject.c' line='2410' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyDict_Next' mangled-name='PyDict_Next' filepath='Objects/dictobject.c' line='1830' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Next'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1830' column='1'/>
+      <parameter type-id='type-id-158' name='ppos' filepath='Objects/dictobject.c' line='1830' column='1'/>
+      <parameter type-id='type-id-303' name='pkey' filepath='Objects/dictobject.c' line='1830' column='1'/>
+      <parameter type-id='type-id-303' name='pvalue' filepath='Objects/dictobject.c' line='1830' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyDict_DelItemIf' mangled-name='_PyDict_DelItemIf' filepath='Objects/dictobject.c' line='1677' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_DelItemIf'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1677' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1677' column='1'/>
+      <parameter type-id='type-id-130' name='predicate' filepath='Objects/dictobject.c' line='1678' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyDict_DelItem_KnownHash' mangled-name='_PyDict_DelItem_KnownHash' filepath='Objects/dictobject.c' line='1639' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_DelItem_KnownHash'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1639' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1639' column='1'/>
+      <parameter type-id='type-id-150' name='hash' filepath='Objects/dictobject.c' line='1639' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyDict_DelItem' mangled-name='PyDict_DelItem' filepath='Objects/dictobject.c' line='1624' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_DelItem'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1624' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1624' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyDict_SetItem_KnownHash' mangled-name='_PyDict_SetItem_KnownHash' filepath='Objects/dictobject.c' line='1577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_SetItem_KnownHash'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1577' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1577' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Objects/dictobject.c' line='1577' column='1'/>
+      <parameter type-id='type-id-150' name='hash' filepath='Objects/dictobject.c' line='1578' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyDict_GetItemStringWithError' mangled-name='_PyDict_GetItemStringWithError' filepath='Objects/dictobject.c' line='1495' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_GetItemStringWithError'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/dictobject.c' line='1495' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/dictobject.c' line='1495' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyDict_GetItemIdWithError' mangled-name='_PyDict_GetItemIdWithError' filepath='Objects/dictobject.c' line='1483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_GetItemIdWithError'>
+      <parameter type-id='type-id-100' name='dp' filepath='Objects/dictobject.c' line='1483' column='1'/>
+      <parameter type-id='type-id-308' name='key' filepath='Objects/dictobject.c' line='1483' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyDict_GetItem' mangled-name='PyDict_GetItem' filepath='Objects/dictobject.c' line='1382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_GetItem'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1382' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1382' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyDict_NewPresized' mangled-name='_PyDict_NewPresized' filepath='Objects/dictobject.c' line='1340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_NewPresized'>
+      <parameter type-id='type-id-15' name='minused' filepath='Objects/dictobject.c' line='1340' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyDict_MaybeUntrack' mangled-name='_PyDict_MaybeUntrack' filepath='Objects/dictobject.c' line='982' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_MaybeUntrack'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='982' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_HasOnlyStringKeys' mangled-name='_PyDict_HasOnlyStringKeys' filepath='Objects/dictobject.c' line='957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_HasOnlyStringKeys'>
+      <parameter type-id='type-id-100' name='dict' filepath='Objects/dictobject.c' line='957' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyDict_New' mangled-name='PyDict_New' filepath='Objects/dictobject.c' line='720' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_New'>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyDict_CheckConsistency' mangled-name='_PyDict_CheckConsistency' filepath='Objects/dictobject.c' line='469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_CheckConsistency'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='469' column='1'/>
+      <parameter type-id='type-id-8' name='check_content' filepath='Objects/dictobject.c' line='469' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyDict_DebugMallocStats' mangled-name='_PyDict_DebugMallocStats' filepath='Objects/dictobject.c' line='280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_DebugMallocStats'>
+      <parameter type-id='type-id-223' name='out' filepath='Objects/floatobject.c' line='2001' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_GetItem_KnownHash' mangled-name='_PyDict_GetItem_KnownHash' filepath='Objects/dictobject.c' line='1433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_GetItem_KnownHash'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1433' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1433' column='1'/>
+      <parameter type-id='type-id-150' name='hash' filepath='Objects/dictobject.c' line='1433' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyDict_GetItemWithError' mangled-name='PyDict_GetItemWithError' filepath='Objects/dictobject.c' line='1456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_GetItemWithError'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1456' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1456' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyDict_SetItem' mangled-name='PyDict_SetItem' filepath='Objects/dictobject.c' line='1550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_SetItem'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1550' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1550' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Objects/dictobject.c' line='1550' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyDict_Clear' mangled-name='PyDict_Clear' filepath='Objects/dictobject.c' line='1727' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Clear'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1727' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-150' size-in-bits='64' id='type-id-486'/>
+    <function-decl name='_PyDict_Next' mangled-name='_PyDict_Next' filepath='Objects/dictobject.c' line='1768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_Next'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1768' column='1'/>
+      <parameter type-id='type-id-158' name='ppos' filepath='Objects/dictobject.c' line='1768' column='1'/>
+      <parameter type-id='type-id-303' name='pkey' filepath='Objects/dictobject.c' line='1768' column='1'/>
+      <parameter type-id='type-id-303' name='pvalue' filepath='Objects/dictobject.c' line='1769' column='1'/>
+      <parameter type-id='type-id-486' name='phash' filepath='Objects/dictobject.c' line='1769' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyDict_Pop' mangled-name='_PyDict_Pop' filepath='Objects/dictobject.c' line='1894' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_Pop'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='298' column='1'/>
+      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='298' column='1'/>
+      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='298' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyDictView_New' mangled-name='_PyDictView_New' filepath='Objects/dictobject.c' line='4109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDictView_New'>
+      <parameter type-id='type-id-100' name='dict' filepath='Objects/dictobject.c' line='4109' column='1'/>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/dictobject.c' line='4109' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySet_New' mangled-name='PySet_New' filepath='./Include/setobject.h' line='80' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PySet_Update' mangled-name='_PySet_Update' filepath='./Include/setobject.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_CallMethodIdObjArgs' mangled-name='_PyObject_CallMethodIdObjArgs' filepath='./Include/cpython/abstract.h' line='223' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySet_Add' mangled-name='PySet_Add' filepath='./Include/setobject.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySequence_List' mangled-name='PySequence_List' filepath='./Include/abstract.h' line='683' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_FromSize_t' mangled-name='PyLong_FromSize_t' filepath='./Include/longobject.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyArg_ValidateKeywordArguments' mangled-name='PyArg_ValidateKeywordArguments' filepath='./Include/modsupport.h' line='47' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_IS_GC' mangled-name='PyObject_IS_GC' filepath='./Include/cpython/objimpl.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_SetKeyError' mangled-name='_PyErr_SetKeyError' filepath='./Include/cpython/pyerrors.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMapping_Keys' mangled-name='PyMapping_Keys' filepath='./Include/abstract.h' line='811' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_AssertFailed' mangled-name='_PyObject_AssertFailed' filepath='./Include/cpython/object.h' line='435' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-type size-in-bits='64' id='type-id-483'>
+      <parameter type-id='type-id-482'/>
+      <parameter type-id='type-id-100'/>
+      <parameter type-id='type-id-150'/>
+      <parameter type-id='type-id-303'/>
+      <return type-id='type-id-15'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/odictobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyODict_Type' type-id='type-id-182' mangled-name='PyODict_Type' visibility='default' filepath='./Include/odictobject.h' line='15' column='1' elf-symbol-id='PyODict_Type'/>
+    <var-decl name='PyODictIter_Type' type-id='type-id-182' mangled-name='PyODictIter_Type' visibility='default' filepath='./Include/odictobject.h' line='16' column='1' elf-symbol-id='PyODictIter_Type'/>
+    <var-decl name='PyODictKeys_Type' type-id='type-id-182' mangled-name='PyODictKeys_Type' visibility='default' filepath='./Include/odictobject.h' line='17' column='1' elf-symbol-id='PyODictKeys_Type'/>
+    <var-decl name='PyODictItems_Type' type-id='type-id-182' mangled-name='PyODictItems_Type' visibility='default' filepath='./Include/odictobject.h' line='18' column='1' elf-symbol-id='PyODictItems_Type'/>
+    <var-decl name='PyODictValues_Type' type-id='type-id-182' mangled-name='PyODictValues_Type' visibility='default' filepath='./Include/odictobject.h' line='19' column='1' elf-symbol-id='PyODictValues_Type'/>
+    <function-decl name='PyODict_DelItem' mangled-name='PyODict_DelItem' filepath='Objects/odictobject.c' line='1678' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyODict_DelItem'>
+      <parameter type-id='type-id-100' name='od' filepath='Objects/odictobject.c' line='1678' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/odictobject.c' line='1678' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyODict_SetItem' mangled-name='PyODict_SetItem' filepath='Objects/odictobject.c' line='1669' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyODict_SetItem'>
+      <parameter type-id='type-id-100' name='od' filepath='Objects/odictobject.c' line='1669' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/odictobject.c' line='1669' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Objects/odictobject.c' line='1669' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyODict_New' mangled-name='PyODict_New' filepath='Objects/odictobject.c' line='1645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyODict_New'>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyDictView_New' mangled-name='_PyDictView_New' filepath='./Include/cpython/dictobject.h' line='87' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_GetItem' mangled-name='PyDict_GetItem' filepath='./Include/dictobject.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_DelItem_KnownHash' mangled-name='_PyDict_DelItem_KnownHash' filepath='./Include/cpython/dictobject.h' line='43' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_ChainExceptions' mangled-name='_PyErr_ChainExceptions' filepath='./Include/cpython/pyerrors.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_SetItem_KnownHash' mangled-name='_PyDict_SetItem_KnownHash' filepath='./Include/cpython/dictobject.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_Clear' mangled-name='PyDict_Clear' filepath='./Include/dictobject.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_GetItem_KnownHash' mangled-name='_PyDict_GetItem_KnownHash' filepath='./Include/cpython/dictobject.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_SizeOf' mangled-name='_PyDict_SizeOf' filepath='./Include/cpython/dictobject.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_FromKeys' mangled-name='_PyDict_FromKeys' filepath='./Include/cpython/dictobject.h' line='62' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/memoryobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='_PyManagedBuffer_Type' type-id='type-id-182' mangled-name='_PyManagedBuffer_Type' visibility='default' filepath='./Include/memoryobject.h' line='10' column='1' elf-symbol-id='_PyManagedBuffer_Type'/>
+    <var-decl name='PyMemoryView_Type' type-id='type-id-182' mangled-name='PyMemoryView_Type' visibility='default' filepath='./Include/memoryobject.h' line='12' column='1' elf-symbol-id='PyMemoryView_Type'/>
+    <function-decl name='PyBuffer_ToContiguous' mangled-name='PyBuffer_ToContiguous' filepath='Objects/memoryobject.c' line='989' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_ToContiguous'>
+      <parameter type-id='type-id-32' name='buf' filepath='Objects/memoryobject.c' line='989' column='1'/>
+      <parameter type-id='type-id-160' name='src' filepath='Objects/memoryobject.c' line='989' column='1'/>
+      <parameter type-id='type-id-15' name='len' filepath='Objects/memoryobject.c' line='989' column='1'/>
+      <parameter type-id='type-id-1' name='order' filepath='Objects/memoryobject.c' line='989' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyMemoryView_GetContiguous' mangled-name='PyMemoryView_GetContiguous' filepath='Objects/memoryobject.c' line='926' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMemoryView_GetContiguous'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/memoryobject.c' line='926' column='1'/>
+      <parameter type-id='type-id-8' name='buffertype' filepath='Objects/memoryobject.c' line='926' column='1'/>
+      <parameter type-id='type-id-1' name='order' filepath='Objects/memoryobject.c' line='926' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyMemoryView_FromBuffer' mangled-name='PyMemoryView_FromBuffer' filepath='Objects/memoryobject.c' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMemoryView_FromBuffer'>
+      <parameter type-id='type-id-160' name='info' filepath='Objects/memoryobject.c' line='764' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyMemoryView_FromMemory' mangled-name='PyMemoryView_FromMemory' filepath='Objects/memoryobject.c' line='735' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMemoryView_FromMemory'>
+      <parameter type-id='type-id-7' name='mem' filepath='Objects/memoryobject.c' line='735' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/memoryobject.c' line='735' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Objects/memoryobject.c' line='735' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyMemoryView_FromObject' mangled-name='PyMemoryView_FromObject' filepath='Objects/memoryobject.c' line='794' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMemoryView_FromObject'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/memoryobject.c' line='794' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyLong_FromUnsignedLongLong' mangled-name='PyLong_FromUnsignedLongLong' filepath='./Include/longobject.h' line='97' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_FromUnsignedLong' mangled-name='PyLong_FromUnsignedLong' filepath='./Include/longobject.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_AsUnsignedLong' mangled-name='PyLong_AsUnsignedLong' filepath='./Include/longobject.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_AsSize_t' mangled-name='PyLong_AsSize_t' filepath='./Include/longobject.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_AsUnsignedLongLong' mangled-name='PyLong_AsUnsignedLongLong' filepath='./Include/longobject.h' line='99' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyLong_AsVoidPtr' mangled-name='PyLong_AsVoidPtr' filepath='./Include/longobject.h' line='94' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsASCIIString' mangled-name='PyUnicode_AsASCIIString' filepath='./Include/unicodeobject.h' line='636' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/methodobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyCFunction_Type' type-id='type-id-182' mangled-name='PyCFunction_Type' visibility='default' filepath='./Include/methodobject.h' line='14' column='1' elf-symbol-id='PyCFunction_Type'/>
+    <var-decl name='PyCMethod_Type' type-id='type-id-182' mangled-name='PyCMethod_Type' visibility='default' filepath='./Include/cpython/methodobject.h' line='5' column='1' elf-symbol-id='PyCMethod_Type'/>
+    <function-decl name='PyCFunction_GetFlags' mangled-name='PyCFunction_GetFlags' filepath='Objects/methodobject.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCFunction_GetFlags'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/methodobject.c' line='139' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyCFunction_GetSelf' mangled-name='PyCFunction_GetSelf' filepath='Objects/methodobject.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCFunction_GetSelf'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/methodobject.c' line='129' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyCFunction_GetFunction' mangled-name='PyCFunction_GetFunction' filepath='Objects/methodobject.c' line='119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCFunction_GetFunction'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/methodobject.c' line='119' column='1'/>
+      <return type-id='type-id-173'/>
+    </function-decl>
+    <function-decl name='PyCMethod_New' mangled-name='PyCMethod_New' filepath='Objects/methodobject.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCMethod_New'>
+      <parameter type-id='type-id-452' name='ml' filepath='Objects/methodobject.c' line='44' column='1'/>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/methodobject.c' line='44' column='1'/>
+      <parameter type-id='type-id-100' name='module' filepath='Objects/methodobject.c' line='44' column='1'/>
+      <parameter type-id='type-id-75' name='cls' filepath='Objects/methodobject.c' line='44' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyCFunction_NewEx' mangled-name='PyCFunction_NewEx' filepath='Objects/methodobject.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCFunction_NewEx'>
+      <parameter type-id='type-id-452' name='ml' filepath='Objects/methodobject.c' line='38' column='1'/>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/methodobject.c' line='38' column='1'/>
+      <parameter type-id='type-id-100' name='module' filepath='Objects/methodobject.c' line='38' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyVectorcall_Call' mangled-name='PyVectorcall_Call' filepath='./Include/cpython/abstract.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/moduleobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyModuleDef_Type' type-id='type-id-182' mangled-name='PyModuleDef_Type' visibility='default' filepath='./Include/moduleobject.h' line='41' column='1' elf-symbol-id='PyModuleDef_Type'/>
+    <var-decl name='PyModule_Type' type-id='type-id-182' mangled-name='PyModule_Type' visibility='default' filepath='./Include/moduleobject.h' line='10' column='1' elf-symbol-id='PyModule_Type'/>
+    <function-decl name='_PyModuleSpec_IsInitializing' mangled-name='_PyModuleSpec_IsInitializing' filepath='Objects/moduleobject.c' line='696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyModuleSpec_IsInitializing'>
+      <parameter type-id='type-id-100' name='spec' filepath='Objects/moduleobject.c' line='696' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyModule_ClearDict' mangled-name='_PyModule_ClearDict' filepath='Objects/moduleobject.c' line='564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyModule_ClearDict'>
+      <parameter type-id='type-id-100' name='d' filepath='Objects/moduleobject.c' line='564' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyModule_Clear' mangled-name='_PyModule_Clear' filepath='Objects/moduleobject.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyModule_Clear'>
+      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='556' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyModule_GetState' mangled-name='PyModule_GetState' filepath='Objects/moduleobject.c' line='546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetState'>
+      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='546' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <class-decl name='PyModuleDef' size-in-bits='832' is-struct='yes' visibility='default' filepath='./Include/moduleobject.h' line='75' column='1' id='type-id-487'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='m_base' type-id='type-id-488' visibility='default' filepath='./Include/moduleobject.h' line='76' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='tracemalloc' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='156' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='352'>
-        <var-decl name='import_time' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='158' column='1'/>
+        <var-decl name='m_name' type-id='type-id-3' visibility='default' filepath='./Include/moduleobject.h' line='77' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='show_ref_count' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='159' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='416'>
-        <var-decl name='dump_refs' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='160' column='1'/>
+        <var-decl name='m_doc' type-id='type-id-3' visibility='default' filepath='./Include/moduleobject.h' line='78' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='malloc_stats' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='161' column='1'/>
+        <var-decl name='m_size' type-id='type-id-15' visibility='default' filepath='./Include/moduleobject.h' line='79' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='filesystem_encoding' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='196' column='1'/>
+        <var-decl name='m_methods' type-id='type-id-452' visibility='default' filepath='./Include/moduleobject.h' line='80' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='filesystem_errors' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='197' column='1'/>
+        <var-decl name='m_slots' type-id='type-id-489' visibility='default' filepath='./Include/moduleobject.h' line='81' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='pycache_prefix' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='199' column='1'/>
+        <var-decl name='m_traverse' type-id='type-id-91' visibility='default' filepath='./Include/moduleobject.h' line='82' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='parse_argv' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='200' column='1'/>
+        <var-decl name='m_clear' type-id='type-id-92' visibility='default' filepath='./Include/moduleobject.h' line='83' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='argv' type-id='type-id-404' visibility='default' filepath='./Include/cpython/initconfig.h' line='209' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='program_name' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='219' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='960'>
-        <var-decl name='xoptions' type-id='type-id-404' visibility='default' filepath='./Include/cpython/initconfig.h' line='221' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1088'>
-        <var-decl name='warnoptions' type-id='type-id-404' visibility='default' filepath='./Include/cpython/initconfig.h' line='225' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='site_import' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='234' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1248'>
-        <var-decl name='bytes_warning' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='244' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1280'>
-        <var-decl name='inspect' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='254' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1312'>
-        <var-decl name='interactive' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='260' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='optimization_level' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='267' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1376'>
-        <var-decl name='parser_debug' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='275' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1408'>
-        <var-decl name='write_bytecode' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='283' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1440'>
-        <var-decl name='verbose' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='295' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1472'>
-        <var-decl name='quiet' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='302' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1504'>
-        <var-decl name='user_site_directory' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='310' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='configure_c_stdio' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='318' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1568'>
-        <var-decl name='buffered_stdio' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='326' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='stdio_encoding' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='332' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1664'>
-        <var-decl name='stdio_errors' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='338' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1728'>
-        <var-decl name='check_hash_pycs_mode' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='364' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='pathconfig_warnings' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='372' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='pythonpath_env' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='374' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1920'>
-        <var-decl name='home' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='375' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1984'>
-        <var-decl name='module_search_paths_set' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='380' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2048'>
-        <var-decl name='module_search_paths' type-id='type-id-404' visibility='default' filepath='./Include/cpython/initconfig.h' line='381' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2176'>
-        <var-decl name='executable' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='385' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2240'>
-        <var-decl name='base_executable' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='386' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2304'>
-        <var-decl name='prefix' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='387' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2368'>
-        <var-decl name='base_prefix' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='388' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2432'>
-        <var-decl name='exec_prefix' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='389' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2496'>
-        <var-decl name='base_exec_prefix' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='390' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2560'>
-        <var-decl name='platlibdir' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='391' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2624'>
-        <var-decl name='skip_source_first_line' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='399' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2688'>
-        <var-decl name='run_command' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='401' column='1'/>
+        <var-decl name='m_free' type-id='type-id-106' visibility='default' filepath='./Include/moduleobject.h' line='84' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2752'>
-        <var-decl name='run_module' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='402' column='1'/>
+    </class-decl>
+    <class-decl name='PyModuleDef_Base' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/moduleobject.h' line='44' column='1' id='type-id-490'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/moduleobject.h' line='45' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2816'>
-        <var-decl name='run_filename' type-id='type-id-403' visibility='default' filepath='./Include/cpython/initconfig.h' line='403' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='m_init' type-id='type-id-491' visibility='default' filepath='./Include/moduleobject.h' line='46' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2880'>
-        <var-decl name='_install_importlib' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='409' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='m_index' type-id='type-id-15' visibility='default' filepath='./Include/moduleobject.h' line='47' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2912'>
-        <var-decl name='_init_main' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='412' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='m_copy' type-id='type-id-100' visibility='default' filepath='./Include/moduleobject.h' line='48' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='2944'>
-        <var-decl name='_isolated_interpreter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='416' column='1'/>
+    </class-decl>
+    <pointer-type-def type-id='type-id-492' size-in-bits='64' id='type-id-491'/>
+    <typedef-decl name='PyModuleDef_Base' type-id='type-id-490' filepath='./Include/moduleobject.h' line='49' column='1' id='type-id-488'/>
+    <class-decl name='PyModuleDef_Slot' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/moduleobject.h' line='61' column='1' id='type-id-493'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='slot' type-id='type-id-8' visibility='default' filepath='./Include/moduleobject.h' line='62' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='3008'>
-        <var-decl name='_orig_argv' type-id='type-id-404' visibility='default' filepath='./Include/cpython/initconfig.h' line='424' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='value' type-id='type-id-32' visibility='default' filepath='./Include/moduleobject.h' line='63' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='wchar_t' type-id='type-id-8' filepath='/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h' line='321' column='1' id='type-id-405'/>
-    <pointer-type-def type-id='type-id-405' size-in-bits='64' id='type-id-403'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-404' visibility='default' filepath='./Include/cpython/initconfig.h' line='31' column='1' id='type-id-406'>
+    <pointer-type-def type-id='type-id-493' size-in-bits='64' id='type-id-489'/>
+    <typedef-decl name='PyModuleDef' type-id='type-id-487' filepath='./Include/moduleobject.h' line='85' column='1' id='type-id-494'/>
+    <pointer-type-def type-id='type-id-494' size-in-bits='64' id='type-id-495'/>
+    <function-decl name='PyModule_GetDef' mangled-name='PyModule_GetDef' filepath='Objects/moduleobject.c' line='536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetDef'>
+      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='536' column='1'/>
+      <return type-id='type-id-495'/>
+    </function-decl>
+    <function-decl name='PyModule_GetFilename' mangled-name='PyModule_GetFilename' filepath='Objects/moduleobject.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetFilename'>
+      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='523' column='1'/>
+      <return type-id='type-id-3'/>
+    </function-decl>
+    <function-decl name='PyModule_GetName' mangled-name='PyModule_GetName' filepath='Objects/moduleobject.c' line='491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetName'>
+      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='491' column='1'/>
+      <return type-id='type-id-3'/>
+    </function-decl>
+    <function-decl name='PyModule_GetDict' mangled-name='PyModule_GetDict' filepath='Objects/moduleobject.c' line='457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetDict'>
+      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='457' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyModule_SetDocString' mangled-name='PyModule_SetDocString' filepath='Objects/moduleobject.c' line='443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_SetDocString'>
+      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='443' column='1'/>
+      <parameter type-id='type-id-3' name='doc' filepath='Objects/moduleobject.c' line='443' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyModule_AddFunctions' mangled-name='PyModule_AddFunctions' filepath='Objects/moduleobject.c' line='429' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddFunctions'>
+      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='429' column='1'/>
+      <parameter type-id='type-id-452' name='functions' filepath='Objects/moduleobject.c' line='429' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyModule_ExecDef' mangled-name='PyModule_ExecDef' filepath='Objects/moduleobject.c' line='364' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_ExecDef'>
+      <parameter type-id='type-id-100' name='module' filepath='Objects/moduleobject.c' line='364' column='1'/>
+      <parameter type-id='type-id-495' name='def' filepath='Objects/moduleobject.c' line='364' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyModule_FromDefAndSpec2' mangled-name='PyModule_FromDefAndSpec2' filepath='Objects/moduleobject.c' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_FromDefAndSpec2'>
+      <parameter type-id='type-id-495' name='def' filepath='Objects/moduleobject.c' line='240' column='1'/>
+      <parameter type-id='type-id-100' name='spec' filepath='Objects/moduleobject.c' line='240' column='1'/>
+      <parameter type-id='type-id-8' name='module_api_version' filepath='Objects/moduleobject.c' line='240' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyModule_CreateInitialized' mangled-name='_PyModule_CreateInitialized' filepath='Objects/moduleobject.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyModule_CreateInitialized'>
+      <parameter type-id='type-id-495' name='module' filepath='Objects/moduleobject.c' line='177' column='1'/>
+      <parameter type-id='type-id-8' name='module_api_version' filepath='Objects/moduleobject.c' line='177' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyModule_Create2' mangled-name='PyModule_Create2' filepath='Objects/moduleobject.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_Create2'>
+      <parameter type-id='type-id-495' name='module' filepath='Objects/moduleobject.c' line='166' column='1'/>
+      <parameter type-id='type-id-8' name='module_api_version' filepath='Objects/moduleobject.c' line='166' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyModule_New' mangled-name='PyModule_New' filepath='Objects/moduleobject.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_New'>
+      <parameter type-id='type-id-3' name='utf8path' filepath='Objects/fileobject.c' line='574' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyModule_NewObject' mangled-name='PyModule_NewObject' filepath='Objects/moduleobject.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_NewObject'>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/moduleobject.c' line='84' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyModuleDef_Init' mangled-name='PyModuleDef_Init' filepath='Objects/moduleobject.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModuleDef_Init'>
+      <parameter type-id='type-id-495' name='def' filepath='Objects/moduleobject.c' line='39' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyModule_GetNameObject' mangled-name='PyModule_GetNameObject' filepath='Objects/moduleobject.c' line='470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetNameObject'>
+      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='470' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyModule_GetFilenameObject' mangled-name='PyModule_GetFilenameObject' filepath='Objects/moduleobject.c' line='501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetFilenameObject'>
+      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='470' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySys_FormatStderr' mangled-name='PySys_FormatStderr' filepath='./Include/sysmodule.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_CallMethod' mangled-name='PyObject_CallMethod' filepath='./Include/abstract.h' line='194' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='strrchr' mangled-name='strrchr' filepath='/usr/include/string.h' line='253' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyImport_IsInitialized' mangled-name='_PyImport_IsInitialized' filepath='./Include/cpython/import.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_GetItemId' mangled-name='_PyDict_GetItemId' filepath='./Include/cpython/dictobject.h' line='71' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-type size-in-bits='64' id='type-id-492'>
+      <return type-id='type-id-100'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/namespaceobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='_PyNamespace_Type' type-id='type-id-182' mangled-name='_PyNamespace_Type' visibility='default' filepath='./Include/namespaceobject.h' line='11' column='1' elf-symbol-id='_PyNamespace_Type'/>
+    <function-decl name='_PyNamespace_New' mangled-name='_PyNamespace_New' filepath='Objects/namespaceobject.c' line='247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyNamespace_New'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1296' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyDict_Update' mangled-name='PyDict_Update' filepath='./Include/dictobject.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/object.c' comp-dir-path='/src' language='LANG_C99'>
+
+    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='infinite' id='type-id-496'>
+      <subrange length='infinite' id='type-id-18'/>
+
+    </array-type-def>
+    <var-decl name='_Py_SwappedOp' type-id='type-id-496' mangled-name='_Py_SwappedOp' visibility='default' filepath='./Include/cpython/object.h' line='387' column='1' elf-symbol-id='_Py_SwappedOp'/>
+    <var-decl name='_PyNone_Type' type-id='type-id-182' mangled-name='_PyNone_Type' visibility='default' filepath='./Include/cpython/object.h' line='381' column='1' elf-symbol-id='_PyNone_Type'/>
+    <var-decl name='_Py_NoneStruct' type-id='type-id-110' mangled-name='_Py_NoneStruct' visibility='default' filepath='./Include/object.h' line='516' column='1' elf-symbol-id='_Py_NoneStruct'/>
+    <var-decl name='_PyNotImplemented_Type' type-id='type-id-182' mangled-name='_PyNotImplemented_Type' visibility='default' filepath='./Include/cpython/object.h' line='382' column='1' elf-symbol-id='_PyNotImplemented_Type'/>
+    <var-decl name='_Py_NotImplementedStruct' type-id='type-id-110' mangled-name='_Py_NotImplementedStruct' visibility='default' filepath='./Include/object.h' line='526' column='1' elf-symbol-id='_Py_NotImplementedStruct'/>
+    <function-decl name='PyObject_GET_WEAKREFS_LISTPTR' mangled-name='PyObject_GET_WEAKREFS_LISTPTR' filepath='Objects/object.c' line='2214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GET_WEAKREFS_LISTPTR'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='2214' column='1'/>
+      <return type-id='type-id-303'/>
+    </function-decl>
+    <function-decl name='_Py_Dealloc' mangled-name='_Py_Dealloc' filepath='Objects/object.c' line='2203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Dealloc'>
+      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='556' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_AssertFailed' mangled-name='_PyObject_AssertFailed' filepath='Objects/object.c' line='2147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_AssertFailed'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='2147' column='1'/>
+      <parameter type-id='type-id-3' name='expr' filepath='Objects/object.c' line='2147' column='1'/>
+      <parameter type-id='type-id-3' name='msg' filepath='Objects/object.c' line='2147' column='1'/>
+      <parameter type-id='type-id-3' name='file' filepath='Objects/object.c' line='2148' column='1'/>
+      <parameter type-id='type-id-8' name='line' filepath='Objects/object.c' line='2148' column='1'/>
+      <parameter type-id='type-id-3' name='function' filepath='Objects/object.c' line='2148' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTrash_end' mangled-name='_PyTrash_end' filepath='Objects/object.c' line='2137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_end'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Objects/object.c' line='2137' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTrash_begin' mangled-name='_PyTrash_begin' filepath='Objects/object.c' line='2123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_begin'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Objects/object.c' line='2123' column='1'/>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='2123' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyTrash_thread_destroy_chain' mangled-name='_PyTrash_thread_destroy_chain' filepath='Objects/object.c' line='2085' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_thread_destroy_chain'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTrash_destroy_chain' mangled-name='_PyTrash_destroy_chain' filepath='Objects/object.c' line='2058' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_destroy_chain'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTrash_thread_deposit_object' mangled-name='_PyTrash_thread_deposit_object' filepath='Objects/object.c' line='2044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_thread_deposit_object'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='2044' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTrash_deposit_object' mangled-name='_PyTrash_deposit_object' filepath='Objects/object.c' line='2030' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_deposit_object'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='2030' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_ReprLeave' mangled-name='Py_ReprLeave' filepath='Objects/object.c' line='1992' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_ReprLeave'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1992' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_ReprEnter' mangled-name='Py_ReprEnter' filepath='Objects/object.c' line='1958' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_ReprEnter'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1958' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyObject_DebugTypeStats' mangled-name='_PyObject_DebugTypeStats' filepath='Objects/object.c' line='1936' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_DebugTypeStats'>
+      <parameter type-id='type-id-223' name='out' filepath='Objects/object.c' line='1936' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_NewReference' mangled-name='_Py_NewReference' filepath='Objects/object.c' line='1822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_NewReference'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='1822' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Dir' mangled-name='PyObject_Dir' filepath='Objects/object.c' line='1505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Dir'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1505' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyCallable_Check' mangled-name='PyCallable_Check' filepath='Objects/object.c' line='1433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCallable_Check'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_Not' mangled-name='PyObject_Not' filepath='Objects/object.c' line='1421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Not'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='1421' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_GenericSetDict' mangled-name='PyObject_GenericSetDict' filepath='Objects/object.c' line='1365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GenericSetDict'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1365' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Objects/object.c' line='1365' column='1'/>
+      <parameter type-id='type-id-32' name='context' filepath='Objects/object.c' line='1365' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_GenericSetAttr' mangled-name='PyObject_GenericSetAttr' filepath='Objects/object.c' line='1359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GenericSetAttr'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1359' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='1359' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Objects/object.c' line='1359' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyObject_GenericSetAttrWithDict' mangled-name='_PyObject_GenericSetAttrWithDict' filepath='Objects/object.c' line='1284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GenericSetAttrWithDict'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1284' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='1284' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Objects/object.c' line='1285' column='1'/>
+      <parameter type-id='type-id-100' name='dict' filepath='Objects/object.c' line='1285' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_GenericGetAttr' mangled-name='PyObject_GenericGetAttr' filepath='Objects/object.c' line='1278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GenericGetAttr'>
+      <parameter type-id='type-id-100' name='code' filepath='Objects/funcobject.c' line='79' column='1'/>
+      <parameter type-id='type-id-100' name='globals' filepath='Objects/funcobject.c' line='79' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_GenericGetAttrWithDict' mangled-name='_PyObject_GenericGetAttrWithDict' filepath='Objects/object.c' line='1165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GenericGetAttrWithDict'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1165' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='1165' column='1'/>
+      <parameter type-id='type-id-100' name='dict' filepath='Objects/object.c' line='1166' column='1'/>
+      <parameter type-id='type-id-8' name='suppress' filepath='Objects/object.c' line='1166' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_GetMethod' mangled-name='_PyObject_GetMethod' filepath='Objects/object.c' line='1085' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetMethod'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1085' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='1085' column='1'/>
+      <parameter type-id='type-id-303' name='method' filepath='Objects/object.c' line='1085' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyObject_NextNotImplemented' mangled-name='_PyObject_NextNotImplemented' filepath='Objects/object.c' line='1065' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_NextNotImplemented'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_SelfIter' mangled-name='PyObject_SelfIter' filepath='Objects/object.c' line='1053' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SelfIter'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_GetDictPtr' mangled-name='_PyObject_GetDictPtr' filepath='Objects/object.c' line='1030' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetDictPtr'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1030' column='1'/>
+      <return type-id='type-id-303'/>
+    </function-decl>
+    <function-decl name='PyObject_SetAttr' mangled-name='PyObject_SetAttr' filepath='Objects/object.c' line='979' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SetAttr'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='979' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='979' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Objects/object.c' line='979' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_HasAttr' mangled-name='PyObject_HasAttr' filepath='Objects/object.c' line='964' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_HasAttr'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='964' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='964' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyObject_LookupAttrId' mangled-name='_PyObject_LookupAttrId' filepath='Objects/object.c' line='953' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_LookupAttrId'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='953' column='1'/>
+      <parameter type-id='type-id-476' name='name' filepath='Objects/object.c' line='953' column='1'/>
+      <parameter type-id='type-id-303' name='result' filepath='Objects/object.c' line='953' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyObject_LookupAttr' mangled-name='_PyObject_LookupAttr' filepath='Objects/object.c' line='904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_LookupAttr'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='904' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='904' column='1'/>
+      <parameter type-id='type-id-303' name='result' filepath='Objects/object.c' line='904' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_GetAttr' mangled-name='PyObject_GetAttr' filepath='Objects/object.c' line='879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetAttr'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='879' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='879' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_SetAttrId' mangled-name='_PyObject_SetAttrId' filepath='Objects/object.c' line='868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_SetAttrId'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='868' column='1'/>
+      <parameter type-id='type-id-476' name='name' filepath='Objects/object.c' line='868' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/object.c' line='868' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyObject_HasAttrId' mangled-name='_PyObject_HasAttrId' filepath='Objects/object.c' line='857' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_HasAttrId'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='857' column='1'/>
+      <parameter type-id='type-id-476' name='name' filepath='Objects/object.c' line='857' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyObject_GetAttrId' mangled-name='_PyObject_GetAttrId' filepath='Objects/object.c' line='846' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetAttrId'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='846' column='1'/>
+      <parameter type-id='type-id-476' name='name' filepath='Objects/object.c' line='846' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_IsAbstract' mangled-name='_PyObject_IsAbstract' filepath='Objects/object.c' line='829' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_IsAbstract'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='829' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_SetAttrString' mangled-name='PyObject_SetAttrString' filepath='Objects/object.c' line='813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SetAttrString'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='813' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/object.c' line='813' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/object.c' line='813' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_HasAttrString' mangled-name='PyObject_HasAttrString' filepath='Objects/object.c' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_HasAttrString'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2246' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2246' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_Hash' mangled-name='PyObject_Hash' filepath='Objects/object.c' line='765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Hash'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='765' column='1'/>
+      <return type-id='type-id-150'/>
+    </function-decl>
+    <function-decl name='PyObject_HashNotImplemented' mangled-name='PyObject_HashNotImplemented' filepath='Objects/object.c' line='757' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_HashNotImplemented'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='757' column='1'/>
+      <return type-id='type-id-150'/>
+    </function-decl>
+    <function-decl name='PyObject_RichCompareBool' mangled-name='PyObject_RichCompareBool' filepath='Objects/object.c' line='731' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_RichCompareBool'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='731' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/object.c' line='731' column='1'/>
+      <parameter type-id='type-id-8' name='op' filepath='Objects/object.c' line='731' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_RichCompare' mangled-name='PyObject_RichCompare' filepath='Objects/object.c' line='709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_RichCompare'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='709' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/object.c' line='709' column='1'/>
+      <parameter type-id='type-id-8' name='op' filepath='Objects/object.c' line='709' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_FunctionStr' mangled-name='_PyObject_FunctionStr' filepath='Objects/object.c' line='577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_FunctionStr'>
+      <parameter type-id='type-id-100' name='x' filepath='Objects/object.c' line='577' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_Bytes' mangled-name='PyObject_Bytes' filepath='Objects/object.c' line='529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Bytes'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='529' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_ASCII' mangled-name='PyObject_ASCII' filepath='Objects/object.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_ASCII'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='502' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_IsFreed' mangled-name='_PyObject_IsFreed' filepath='Objects/object.c' line='327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_IsFreed'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='327' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_Py_BreakPoint' mangled-name='_Py_BreakPoint' filepath='Objects/object.c' line='315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_BreakPoint'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Print' mangled-name='PyObject_Print' filepath='Objects/object.c' line='244' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Print'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='244' column='1'/>
+      <parameter type-id='type-id-223' name='fp' filepath='Objects/object.c' line='244' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Objects/object.c' line='244' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_CallFinalizerFromDealloc' mangled-name='PyObject_CallFinalizerFromDealloc' filepath='Objects/object.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallFinalizerFromDealloc'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/object.c' line='202' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_CallFinalizer' mangled-name='PyObject_CallFinalizer' filepath='Objects/object.c' line='185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallFinalizer'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/object.c' line='185' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-497'/>
+    <function-decl name='_PyObject_NewVar' mangled-name='_PyObject_NewVar' filepath='Objects/object.c' line='174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_NewVar'>
+      <parameter type-id='type-id-75' name='tp' filepath='Objects/object.c' line='174' column='1'/>
+      <parameter type-id='type-id-15' name='nitems' filepath='Objects/object.c' line='174' column='1'/>
+      <return type-id='type-id-497'/>
+    </function-decl>
+    <function-decl name='_PyObject_New' mangled-name='_PyObject_New' filepath='Objects/object.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_New'>
+      <parameter type-id='type-id-75' name='tp' filepath='Objects/object.c' line='163' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_InitVar' mangled-name='PyObject_InitVar' filepath='Objects/object.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_InitVar'>
+      <parameter type-id='type-id-497' name='op' filepath='Objects/object.c' line='152' column='1'/>
+      <parameter type-id='type-id-75' name='tp' filepath='Objects/object.c' line='152' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/object.c' line='152' column='1'/>
+      <return type-id='type-id-497'/>
+    </function-decl>
+    <function-decl name='PyObject_Init' mangled-name='PyObject_Init' filepath='Objects/object.c' line='141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Init'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='141' column='1'/>
+      <parameter type-id='type-id-75' name='tp' filepath='Objects/object.c' line='141' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='Py_DecRef' mangled-name='Py_DecRef' filepath='Objects/object.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_DecRef'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/object.c' line='135' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_IncRef' mangled-name='Py_IncRef' filepath='Objects/object.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_IncRef'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/object.c' line='135' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_CheckConsistency' mangled-name='_PyObject_CheckConsistency' filepath='Objects/object.c' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CheckConsistency'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='30' column='1'/>
+      <parameter type-id='type-id-8' name='check_content' filepath='Objects/object.c' line='30' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_IsTrue' mangled-name='PyObject_IsTrue' filepath='Objects/object.c' line='1393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IsTrue'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='1393' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_Repr' mangled-name='PyObject_Repr' filepath='Objects/object.c' line='389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Repr'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='389' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_Str' mangled-name='PyObject_Str' filepath='Objects/object.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Str'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='442' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyObject_Dump' mangled-name='_PyObject_Dump' filepath='Objects/object.c' line='348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_Dump'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='348' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_GetAttrString' mangled-name='PyObject_GetAttrString' filepath='Objects/object.c' line='786' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetAttrString'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='786' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/object.c' line='786' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyMem_DumpTraceback' mangled-name='_PyMem_DumpTraceback' filepath='Objects/object.c' line='21' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThreadState_GetDict' mangled-name='PyThreadState_GetDict' filepath='./Include/pystate.h' line='84' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_DebugMallocStats' mangled-name='_PyDict_DebugMallocStats' filepath='./Include/cpython/dictobject.h' line='75' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyFloat_DebugMallocStats' mangled-name='_PyFloat_DebugMallocStats' filepath='./Include/floatobject.h' line='103' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyFrame_DebugMallocStats' mangled-name='_PyFrame_DebugMallocStats' filepath='./Include/cpython/frameobject.h' line='78' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyList_DebugMallocStats' mangled-name='_PyList_DebugMallocStats' filepath='./Include/cpython/listobject.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTuple_DebugMallocStats' mangled-name='_PyTuple_DebugMallocStats' filepath='./Include/cpython/tupleobject.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTraceMalloc_NewReference' mangled-name='_PyTraceMalloc_NewReference' filepath='./Include/cpython/object.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTypes_InitSlotDefs' mangled-name='_PyTypes_InitSlotDefs' filepath='./Include/internal/pycore_pylifecycle.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyList_Sort' mangled-name='PyList_Sort' filepath='./Include/listobject.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_GetLocals' mangled-name='PyEval_GetLocals' filepath='./Include/ceval.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_DelItem' mangled-name='PyDict_DelItem' filepath='./Include/dictobject.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObjectDict_SetItem' mangled-name='_PyObjectDict_SetItem' filepath='./Include/cpython/dictobject.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyBytes_FromObject' mangled-name='PyBytes_FromObject' filepath='./Include/bytesobject.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_AsASCIIString' mangled-name='_PyUnicode_AsASCIIString' filepath='./Include/cpython/unicodeobject.h' line='912' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeASCII' mangled-name='PyUnicode_DecodeASCII' filepath='./Include/unicodeobject.h' line='630' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='fwrite' mangled-name='fwrite' filepath='/usr/include/stdio.h' line='652' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='ferror' mangled-name='ferror' filepath='/usr/include/stdio.h' line='761' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyType_CheckConsistency' mangled-name='_PyType_CheckConsistency' filepath='./Include/internal/pycore_object.h' line='15' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_CheckConsistency' mangled-name='_PyDict_CheckConsistency' filepath='./Include/internal/pycore_object.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_CheckConsistency' mangled-name='_PyUnicode_CheckConsistency' filepath='./Include/cpython/unicodeobject.h' line='246' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyGILState_Ensure' mangled-name='PyGILState_Ensure' filepath='./Include/pystate.h' line='120' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyGILState_Release' mangled-name='PyGILState_Release' filepath='./Include/pystate.h' line='130' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/obmalloc.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='_PyTraceMalloc_Config' size-in-bits='96' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='75' column='1' id='type-id-498'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='length' type-id='type-id-15' visibility='default' filepath='./Include/cpython/initconfig.h' line='34' column='1'/>
+        <var-decl name='initialized' type-id='type-id-499' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='tracing' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='86' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='items' type-id='type-id-407' visibility='default' filepath='./Include/cpython/initconfig.h' line='35' column='1'/>
+        <var-decl name='max_nframe' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='90' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-403' size-in-bits='64' id='type-id-407'/>
-    <typedef-decl name='PyWideStringList' type-id='type-id-406' filepath='./Include/cpython/initconfig.h' line='36' column='1' id='type-id-404'/>
-    <typedef-decl name='PyConfig' type-id='type-id-402' filepath='./Include/cpython/initconfig.h' line='425' column='1' id='type-id-321'/>
-    <typedef-decl name='PyThreadState' type-id='type-id-310' filepath='./Include/pystate.h' line='20' column='1' id='type-id-408'/>
-    <pointer-type-def type-id='type-id-408' size-in-bits='64' id='type-id-409'/>
-    <class-decl name='_frame' size-in-bits='2944' is-struct='yes' visibility='default' filepath='./Include/cpython/frameobject.h' line='17' column='1' id='type-id-410'>
+    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/internal/pycore_pymem.h' line='78' column='1' id='type-id-499'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='TRACEMALLOC_NOT_INITIALIZED' value='0'/>
+      <enumerator name='TRACEMALLOC_INITIALIZED' value='1'/>
+      <enumerator name='TRACEMALLOC_FINALIZED' value='2'/>
+    </enum-decl>
+    <var-decl name='_Py_tracemalloc_config' type-id='type-id-498' mangled-name='_Py_tracemalloc_config' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='98' column='1' elf-symbol-id='_Py_tracemalloc_config'/>
+    <function-decl name='_PyDebugAllocatorStats' mangled-name='_PyDebugAllocatorStats' filepath='Objects/obmalloc.c' line='2550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDebugAllocatorStats'>
+      <parameter type-id='type-id-223' name='out' filepath='Objects/obmalloc.c' line='2550' column='1'/>
+      <parameter type-id='type-id-3' name='block_name' filepath='Objects/obmalloc.c' line='2551' column='1'/>
+      <parameter type-id='type-id-8' name='num_blocks' filepath='Objects/obmalloc.c' line='2551' column='1'/>
+      <parameter type-id='type-id-191' name='sizeof_block' filepath='Objects/obmalloc.c' line='2551' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_GetAllocatedBlocks' mangled-name='_Py_GetAllocatedBlocks' filepath='Objects/obmalloc.c' line='1214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetAllocatedBlocks'>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyObject_Free' mangled-name='PyObject_Free' filepath='Objects/obmalloc.c' line='707' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Free'>
+      <parameter type-id='type-id-32' name='ptr' filepath='Objects/obmalloc.c' line='707' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Realloc' mangled-name='PyObject_Realloc' filepath='Objects/obmalloc.c' line='698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Realloc'>
+      <parameter type-id='type-id-32' name='ptr' filepath='Objects/obmalloc.c' line='698' column='1'/>
+      <parameter type-id='type-id-191' name='new_size' filepath='Objects/obmalloc.c' line='698' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyObject_Calloc' mangled-name='PyObject_Calloc' filepath='Objects/obmalloc.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Calloc'>
+      <parameter type-id='type-id-191' name='nelem' filepath='Objects/obmalloc.c' line='689' column='1'/>
+      <parameter type-id='type-id-191' name='elsize' filepath='Objects/obmalloc.c' line='689' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyObject_Malloc' mangled-name='PyObject_Malloc' filepath='Objects/obmalloc.c' line='680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Malloc'>
+      <parameter type-id='type-id-191' name='size' filepath='Objects/obmalloc.c' line='680' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='_PyMem_Strdup' mangled-name='_PyMem_Strdup' filepath='Objects/obmalloc.c' line='667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyMem_Strdup'>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/obmalloc.c' line='667' column='1'/>
+      <return type-id='type-id-7'/>
+    </function-decl>
+    <function-decl name='_PyMem_RawStrdup' mangled-name='_PyMem_RawStrdup' filepath='Objects/obmalloc.c' line='654' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyMem_RawStrdup'>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/obmalloc.c' line='667' column='1'/>
+      <return type-id='type-id-7'/>
+    </function-decl>
+    <qualified-type-def type-id='type-id-405' const='yes' id='type-id-500'/>
+    <pointer-type-def type-id='type-id-500' size-in-bits='64' id='type-id-501'/>
+    <function-decl name='_PyMem_RawWcsdup' mangled-name='_PyMem_RawWcsdup' filepath='Objects/obmalloc.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyMem_RawWcsdup'>
+      <parameter type-id='type-id-501' name='str' filepath='Objects/obmalloc.c' line='634' column='1'/>
+      <return type-id='type-id-403'/>
+    </function-decl>
+    <function-decl name='PyMem_Free' mangled-name='PyMem_Free' filepath='Objects/obmalloc.c' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_Free'>
+      <parameter type-id='type-id-32' name='ptr' filepath='Objects/obmalloc.c' line='707' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMem_Realloc' mangled-name='PyMem_Realloc' filepath='Objects/obmalloc.c' line='618' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_Realloc'>
+      <parameter type-id='type-id-32' name='ptr' filepath='Objects/obmalloc.c' line='698' column='1'/>
+      <parameter type-id='type-id-191' name='new_size' filepath='Objects/obmalloc.c' line='698' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyMem_Calloc' mangled-name='PyMem_Calloc' filepath='Objects/obmalloc.c' line='609' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_Calloc'>
+      <parameter type-id='type-id-191' name='nelem' filepath='Objects/obmalloc.c' line='689' column='1'/>
+      <parameter type-id='type-id-191' name='elsize' filepath='Objects/obmalloc.c' line='689' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyMem_Malloc' mangled-name='PyMem_Malloc' filepath='Objects/obmalloc.c' line='600' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_Malloc'>
+      <parameter type-id='type-id-191' name='size' filepath='Objects/obmalloc.c' line='680' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyMem_RawFree' mangled-name='PyMem_RawFree' filepath='Objects/obmalloc.c' line='593' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_RawFree'>
+      <parameter type-id='type-id-32' name='ptr' filepath='Objects/obmalloc.c' line='707' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMem_RawRealloc' mangled-name='PyMem_RawRealloc' filepath='Objects/obmalloc.c' line='585' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_RawRealloc'>
+      <parameter type-id='type-id-32' name='ptr' filepath='Objects/obmalloc.c' line='698' column='1'/>
+      <parameter type-id='type-id-191' name='new_size' filepath='Objects/obmalloc.c' line='698' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyMem_RawCalloc' mangled-name='PyMem_RawCalloc' filepath='Objects/obmalloc.c' line='576' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_RawCalloc'>
+      <parameter type-id='type-id-191' name='nelem' filepath='Objects/obmalloc.c' line='689' column='1'/>
+      <parameter type-id='type-id-191' name='elsize' filepath='Objects/obmalloc.c' line='689' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyMem_RawMalloc' mangled-name='PyMem_RawMalloc' filepath='Objects/obmalloc.c' line='562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_RawMalloc'>
+      <parameter type-id='type-id-191' name='size' filepath='Objects/obmalloc.c' line='680' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-502' visibility='default' filepath='./Include/cpython/objimpl.h' line='101' column='1' id='type-id-503'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-77' visibility='default' filepath='./Include/cpython/frameobject.h' line='18' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='f_back' type-id='type-id-411' visibility='default' filepath='./Include/cpython/frameobject.h' line='19' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='f_code' type-id='type-id-412' visibility='default' filepath='./Include/cpython/frameobject.h' line='20' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='f_builtins' type-id='type-id-100' visibility='default' filepath='./Include/cpython/frameobject.h' line='21' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='f_globals' type-id='type-id-100' visibility='default' filepath='./Include/cpython/frameobject.h' line='22' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='f_locals' type-id='type-id-100' visibility='default' filepath='./Include/cpython/frameobject.h' line='23' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='f_valuestack' type-id='type-id-303' visibility='default' filepath='./Include/cpython/frameobject.h' line='24' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='f_stacktop' type-id='type-id-303' visibility='default' filepath='./Include/cpython/frameobject.h' line='28' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='f_trace' type-id='type-id-100' visibility='default' filepath='./Include/cpython/frameobject.h' line='29' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='f_trace_lines' type-id='type-id-1' visibility='default' filepath='./Include/cpython/frameobject.h' line='30' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='712'>
-        <var-decl name='f_trace_opcodes' type-id='type-id-1' visibility='default' filepath='./Include/cpython/frameobject.h' line='31' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='f_gen' type-id='type-id-100' visibility='default' filepath='./Include/cpython/frameobject.h' line='34' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='f_lasti' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='36' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='864'>
-        <var-decl name='f_lineno' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='42' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='f_iblock' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='43' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='928'>
-        <var-decl name='f_executing' type-id='type-id-1' visibility='default' filepath='./Include/cpython/frameobject.h' line='44' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='960'>
-        <var-decl name='f_blockstack' type-id='type-id-413' visibility='default' filepath='./Include/cpython/frameobject.h' line='45' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2880'>
-        <var-decl name='f_localsplus' type-id='type-id-414' visibility='default' filepath='./Include/cpython/frameobject.h' line='46' column='1'/>
+        <var-decl name='ctx' type-id='type-id-32' visibility='default' filepath='./Include/cpython/objimpl.h' line='103' column='1'/>
       </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-410' size-in-bits='64' id='type-id-411'/>
-    <class-decl name='PyCodeObject' size-in-bits='1408' is-struct='yes' visibility='default' filepath='./Include/cpython/code.h' line='18' column='1' id='type-id-415'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/cpython/code.h' line='19' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='alloc' type-id='type-id-504' visibility='default' filepath='./Include/cpython/objimpl.h' line='106' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='co_argcount' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='20' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='co_posonlyargcount' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='21' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='co_kwonlyargcount' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='22' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='224'>
-        <var-decl name='co_nlocals' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='23' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='co_stacksize' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='24' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='co_flags' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='25' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='co_firstlineno' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='26' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='co_code' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='27' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='co_consts' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='28' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='co_names' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='29' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='co_varnames' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='30' column='1'/>
+        <var-decl name='free' type-id='type-id-505' visibility='default' filepath='./Include/cpython/objimpl.h' line='109' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='co_freevars' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='31' column='1'/>
+    </class-decl>
+    <pointer-type-def type-id='type-id-506' size-in-bits='64' id='type-id-504'/>
+    <pointer-type-def type-id='type-id-507' size-in-bits='64' id='type-id-505'/>
+    <typedef-decl name='PyObjectArenaAllocator' type-id='type-id-503' filepath='./Include/cpython/objimpl.h' line='110' column='1' id='type-id-502'/>
+    <pointer-type-def type-id='type-id-502' size-in-bits='64' id='type-id-508'/>
+    <function-decl name='PyObject_SetArenaAllocator' mangled-name='PyObject_SetArenaAllocator' filepath='Objects/obmalloc.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SetArenaAllocator'>
+      <parameter type-id='type-id-508' name='allocator' filepath='Objects/obmalloc.c' line='556' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_GetArenaAllocator' mangled-name='PyObject_GetArenaAllocator' filepath='Objects/obmalloc.c' line='550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetArenaAllocator'>
+      <parameter type-id='type-id-508' name='allocator' filepath='Objects/obmalloc.c' line='556' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMem_SetupDebugHooks' mangled-name='PyMem_SetupDebugHooks' filepath='Objects/obmalloc.c' line='512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_SetupDebugHooks'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyMem_GetCurrentAllocatorName' mangled-name='_PyMem_GetCurrentAllocatorName' filepath='Objects/obmalloc.c' line='374' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyMem_GetCurrentAllocatorName'>
+      <return type-id='type-id-3'/>
+    </function-decl>
+    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/pymem.h' line='40' column='1' id='type-id-509'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='PYMEM_ALLOCATOR_NOT_SET' value='0'/>
+      <enumerator name='PYMEM_ALLOCATOR_DEFAULT' value='1'/>
+      <enumerator name='PYMEM_ALLOCATOR_DEBUG' value='2'/>
+      <enumerator name='PYMEM_ALLOCATOR_MALLOC' value='3'/>
+      <enumerator name='PYMEM_ALLOCATOR_MALLOC_DEBUG' value='4'/>
+      <enumerator name='PYMEM_ALLOCATOR_PYMALLOC' value='5'/>
+      <enumerator name='PYMEM_ALLOCATOR_PYMALLOC_DEBUG' value='6'/>
+    </enum-decl>
+    <typedef-decl name='PyMemAllocatorName' type-id='type-id-509' filepath='./Include/cpython/pymem.h' line='50' column='1' id='type-id-510'/>
+    <pointer-type-def type-id='type-id-510' size-in-bits='64' id='type-id-511'/>
+    <function-decl name='_PyMem_GetAllocatorName' mangled-name='_PyMem_GetAllocatorName' filepath='Objects/obmalloc.c' line='271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyMem_GetAllocatorName'>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/obmalloc.c' line='271' column='1'/>
+      <parameter type-id='type-id-511' name='allocator' filepath='Objects/obmalloc.c' line='271' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/pymem.h' line='29' column='1' id='type-id-512'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='PYMEM_DOMAIN_RAW' value='0'/>
+      <enumerator name='PYMEM_DOMAIN_MEM' value='1'/>
+      <enumerator name='PYMEM_DOMAIN_OBJ' value='2'/>
+    </enum-decl>
+    <typedef-decl name='PyMemAllocatorDomain' type-id='type-id-512' filepath='./Include/cpython/pymem.h' line='38' column='1' id='type-id-513'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-514' visibility='default' filepath='./Include/cpython/pymem.h' line='53' column='1' id='type-id-515'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ctx' type-id='type-id-32' visibility='default' filepath='./Include/cpython/pymem.h' line='55' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='co_cellvars' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='32' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='malloc' type-id='type-id-504' visibility='default' filepath='./Include/cpython/pymem.h' line='58' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='co_cell2arg' type-id='type-id-158' visibility='default' filepath='./Include/cpython/code.h' line='38' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='calloc' type-id='type-id-516' visibility='default' filepath='./Include/cpython/pymem.h' line='61' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='co_filename' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='39' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='realloc' type-id='type-id-517' visibility='default' filepath='./Include/cpython/pymem.h' line='64' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='co_name' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='40' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='free' type-id='type-id-518' visibility='default' filepath='./Include/cpython/pymem.h' line='67' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='960'>
-        <var-decl name='co_lnotab' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='41' column='1'/>
+    </class-decl>
+    <pointer-type-def type-id='type-id-519' size-in-bits='64' id='type-id-516'/>
+    <pointer-type-def type-id='type-id-520' size-in-bits='64' id='type-id-517'/>
+    <pointer-type-def type-id='type-id-521' size-in-bits='64' id='type-id-518'/>
+    <typedef-decl name='PyMemAllocatorEx' type-id='type-id-515' filepath='./Include/cpython/pymem.h' line='68' column='1' id='type-id-514'/>
+    <pointer-type-def type-id='type-id-514' size-in-bits='64' id='type-id-522'/>
+    <function-decl name='_PyMem_SetDefaultAllocator' mangled-name='_PyMem_SetDefaultAllocator' filepath='Objects/obmalloc.c' line='258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyMem_SetDefaultAllocator'>
+      <parameter type-id='type-id-513' name='domain' filepath='Objects/obmalloc.c' line='258' column='1'/>
+      <parameter type-id='type-id-522' name='old_alloc' filepath='Objects/obmalloc.c' line='259' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyMem_GetAllocator' mangled-name='PyMem_GetAllocator' filepath='Objects/obmalloc.c' line='520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_GetAllocator'>
+      <parameter type-id='type-id-513' name='domain' filepath='Objects/obmalloc.c' line='520' column='1'/>
+      <parameter type-id='type-id-522' name='allocator' filepath='Objects/obmalloc.c' line='520' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMem_SetAllocator' mangled-name='PyMem_SetAllocator' filepath='Objects/obmalloc.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_SetAllocator'>
+      <parameter type-id='type-id-513' name='domain' filepath='Objects/obmalloc.c' line='520' column='1'/>
+      <parameter type-id='type-id-522' name='allocator' filepath='Objects/obmalloc.c' line='520' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_DebugMallocStats' mangled-name='_PyObject_DebugMallocStats' filepath='Objects/obmalloc.c' line='2595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_DebugMallocStats'>
+      <parameter type-id='type-id-223' name='out' filepath='Objects/obmalloc.c' line='2595' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='fputs' mangled-name='fputs' filepath='/usr/include/stdio.h' line='626' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='fputc' mangled-name='fputc' filepath='/usr/include/stdio.h' line='521' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyGILState_Check' mangled-name='PyGILState_Check' filepath='./Include/cpython/pystate.h' line='160' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__builtin___memcpy_chk' mangled-name='__memcpy_chk' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='getenv' mangled-name='getenv' filepath='/usr/include/stdlib.h' line='634' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='wcslen' mangled-name='wcslen' filepath='/usr/include/wchar.h' line='222' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='munmap' mangled-name='munmap' filepath='/usr/include/x86_64-linux-gnu/sys/mman.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='mmap' mangled-name='mmap64' filepath='/usr/include/x86_64-linux-gnu/sys/mman.h' line='61' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='calloc' mangled-name='calloc' filepath='/usr/include/stdlib.h' line='542' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_FatalErrorFormat' mangled-name='_Py_FatalErrorFormat' filepath='./Include/cpython/pyerrors.h' line='191' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-type size-in-bits='64' id='type-id-521'>
+      <parameter type-id='type-id-32'/>
+      <parameter type-id='type-id-32'/>
+      <return type-id='type-id-4'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-507'>
+      <parameter type-id='type-id-32'/>
+      <parameter type-id='type-id-32'/>
+      <parameter type-id='type-id-191'/>
+      <return type-id='type-id-4'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-506'>
+      <parameter type-id='type-id-32'/>
+      <parameter type-id='type-id-191'/>
+      <return type-id='type-id-32'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-519'>
+      <parameter type-id='type-id-32'/>
+      <parameter type-id='type-id-191'/>
+      <parameter type-id='type-id-191'/>
+      <return type-id='type-id-32'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-520'>
+      <parameter type-id='type-id-32'/>
+      <parameter type-id='type-id-32'/>
+      <parameter type-id='type-id-191'/>
+      <return type-id='type-id-32'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/picklebufobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyPickleBuffer_Type' type-id='type-id-182' mangled-name='PyPickleBuffer_Type' visibility='default' filepath='./Include/picklebufobject.h' line='13' column='1' elf-symbol-id='PyPickleBuffer_Type'/>
+    <function-decl name='PyPickleBuffer_Release' mangled-name='PyPickleBuffer_Release' filepath='Objects/picklebufobject.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPickleBuffer_Release'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/picklebufobject.c' line='55' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyPickleBuffer_GetBuffer' mangled-name='PyPickleBuffer_GetBuffer' filepath='Objects/picklebufobject.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPickleBuffer_GetBuffer'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/picklebufobject.c' line='36' column='1'/>
+      <return type-id='type-id-286'/>
+    </function-decl>
+    <function-decl name='PyPickleBuffer_FromObject' mangled-name='PyPickleBuffer_FromObject' filepath='Objects/picklebufobject.c' line='17' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPickleBuffer_FromObject'>
+      <parameter type-id='type-id-100' name='base' filepath='Objects/picklebufobject.c' line='17' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyMemoryView_FromObject' mangled-name='PyMemoryView_FromObject' filepath='./Include/memoryobject.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/rangeobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyRange_Type' type-id='type-id-182' mangled-name='PyRange_Type' visibility='default' filepath='./Include/rangeobject.h' line='18' column='1' elf-symbol-id='PyRange_Type'/>
+    <var-decl name='PyRangeIter_Type' type-id='type-id-182' mangled-name='PyRangeIter_Type' visibility='default' filepath='./Include/rangeobject.h' line='19' column='1' elf-symbol-id='PyRangeIter_Type'/>
+    <var-decl name='PyLongRangeIter_Type' type-id='type-id-182' mangled-name='PyLongRangeIter_Type' visibility='default' filepath='./Include/rangeobject.h' line='20' column='1' elf-symbol-id='PyLongRangeIter_Type'/>
+    <function-decl name='PyNumber_Subtract' mangled-name='PyNumber_Subtract' filepath='./Include/abstract.h' line='404' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_Multiply' mangled-name='PyNumber_Multiply' filepath='./Include/abstract.h' line='409' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PySequence_IterSearch' mangled-name='_PySequence_IterSearch' filepath='./Include/cpython/abstract.h' line='360' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Not' mangled-name='PyObject_Not' filepath='./Include/object.h' line='262' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_Remainder' mangled-name='PyNumber_Remainder' filepath='./Include/abstract.h' line='431' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_FloorDivide' mangled-name='PyNumber_FloorDivide' filepath='./Include/abstract.h' line='420' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PySlice_GetLongIndices' mangled-name='_PySlice_GetLongIndices' filepath='./Include/sliceobject.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/setobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PySetIter_Type' type-id='type-id-182' mangled-name='PySetIter_Type' visibility='default' filepath='./Include/setobject.h' line='78' column='1' elf-symbol-id='PySetIter_Type'/>
+    <var-decl name='PySet_Type' type-id='type-id-182' mangled-name='PySet_Type' visibility='default' filepath='./Include/setobject.h' line='76' column='1' elf-symbol-id='PySet_Type'/>
+    <var-decl name='PyFrozenSet_Type' type-id='type-id-182' mangled-name='PyFrozenSet_Type' visibility='default' filepath='./Include/setobject.h' line='77' column='1' elf-symbol-id='PyFrozenSet_Type'/>
+    <var-decl name='_PySet_Dummy' type-id='type-id-100' mangled-name='_PySet_Dummy' visibility='default' filepath='./Include/setobject.h' line='69' column='1' elf-symbol-id='_PySet_Dummy'/>
+    <function-decl name='_PySet_Update' mangled-name='_PySet_Update' filepath='Objects/setobject.c' line='2335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySet_Update'>
+      <parameter type-id='type-id-100' name='set' filepath='Objects/setobject.c' line='2335' column='1'/>
+      <parameter type-id='type-id-100' name='iterable' filepath='Objects/setobject.c' line='2335' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySet_Pop' mangled-name='PySet_Pop' filepath='Objects/setobject.c' line='2325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Pop'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/listobject.c' line='2492' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PySet_NextEntry' mangled-name='_PySet_NextEntry' filepath='Objects/setobject.c' line='2309' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySet_NextEntry'>
+      <parameter type-id='type-id-100' name='set' filepath='Objects/setobject.c' line='2309' column='1'/>
+      <parameter type-id='type-id-158' name='pos' filepath='Objects/setobject.c' line='2309' column='1'/>
+      <parameter type-id='type-id-303' name='key' filepath='Objects/setobject.c' line='2309' column='1'/>
+      <parameter type-id='type-id-486' name='hash' filepath='Objects/setobject.c' line='2309' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySet_Add' mangled-name='PySet_Add' filepath='Objects/setobject.c' line='2292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Add'>
+      <parameter type-id='type-id-100' name='anyset' filepath='Objects/setobject.c' line='2292' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/setobject.c' line='2292' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySet_Discard' mangled-name='PySet_Discard' filepath='Objects/setobject.c' line='2282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Discard'>
+      <parameter type-id='type-id-100' name='set' filepath='Objects/setobject.c' line='2282' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/setobject.c' line='2282' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySet_Contains' mangled-name='PySet_Contains' filepath='Objects/setobject.c' line='2272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Contains'>
+      <parameter type-id='type-id-100' name='anyset' filepath='Objects/setobject.c' line='2292' column='1'/>
+      <parameter type-id='type-id-100' name='key' filepath='Objects/setobject.c' line='2292' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySet_Clear' mangled-name='PySet_Clear' filepath='Objects/setobject.c' line='2262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Clear'>
+      <parameter type-id='type-id-100' name='set' filepath='Objects/setobject.c' line='2262' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySet_Size' mangled-name='PySet_Size' filepath='Objects/setobject.c' line='2252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Size'>
+      <parameter type-id='type-id-100' name='anyset' filepath='Objects/setobject.c' line='2252' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyFrozenSet_New' mangled-name='PyFrozenSet_New' filepath='Objects/setobject.c' line='2246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrozenSet_New'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySet_New' mangled-name='PySet_New' filepath='Objects/setobject.c' line='2240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_New'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='390' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyDict_Next' mangled-name='_PyDict_Next' filepath='./Include/cpython/dictobject.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_Contains' mangled-name='_PyDict_Contains' filepath='./Include/cpython/dictobject.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EQ' mangled-name='_PyUnicode_EQ' filepath='./Include/cpython/unicodeobject.h' line='1230' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/sliceobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyEllipsis_Type' type-id='type-id-182' mangled-name='PyEllipsis_Type' visibility='default' filepath='./Include/sliceobject.h' line='29' column='1' elf-symbol-id='PyEllipsis_Type'/>
+    <var-decl name='_Py_EllipsisObject' type-id='type-id-110' mangled-name='_Py_EllipsisObject' visibility='default' filepath='./Include/sliceobject.h' line='9' column='1' elf-symbol-id='_Py_EllipsisObject'/>
+    <var-decl name='PySlice_Type' type-id='type-id-182' mangled-name='PySlice_Type' visibility='default' filepath='./Include/sliceobject.h' line='28' column='1' elf-symbol-id='PySlice_Type'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-523' visibility='default' filepath='./Include/sliceobject.h' line='22' column='1' id='type-id-524'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/sliceobject.h' line='23' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1024'>
-        <var-decl name='co_zombieframe' type-id='type-id-32' visibility='default' filepath='./Include/cpython/code.h' line='43' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='start' type-id='type-id-100' visibility='default' filepath='./Include/sliceobject.h' line='24' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1088'>
-        <var-decl name='co_weakreflist' type-id='type-id-100' visibility='default' filepath='./Include/cpython/code.h' line='44' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='stop' type-id='type-id-100' visibility='default' filepath='./Include/sliceobject.h' line='24' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='co_extra' type-id='type-id-32' visibility='default' filepath='./Include/cpython/code.h' line='48' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='step' type-id='type-id-100' visibility='default' filepath='./Include/sliceobject.h' line='24' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='co_opcache_map' type-id='type-id-416' visibility='default' filepath='./Include/cpython/code.h' line='60' column='1'/>
+    </class-decl>
+    <typedef-decl name='PySliceObject' type-id='type-id-524' filepath='./Include/sliceobject.h' line='25' column='1' id='type-id-523'/>
+    <pointer-type-def type-id='type-id-523' size-in-bits='64' id='type-id-525'/>
+    <function-decl name='_PySlice_GetLongIndices' mangled-name='_PySlice_GetLongIndices' filepath='Objects/sliceobject.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySlice_GetLongIndices'>
+      <parameter type-id='type-id-525' name='self' filepath='Objects/sliceobject.c' line='372' column='1'/>
+      <parameter type-id='type-id-100' name='length' filepath='Objects/sliceobject.c' line='372' column='1'/>
+      <parameter type-id='type-id-303' name='start_ptr' filepath='Objects/sliceobject.c' line='373' column='1'/>
+      <parameter type-id='type-id-303' name='stop_ptr' filepath='Objects/sliceobject.c' line='373' column='1'/>
+      <parameter type-id='type-id-303' name='step_ptr' filepath='Objects/sliceobject.c' line='374' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySlice_GetIndicesEx' mangled-name='PySlice_GetIndicesEx' filepath='Objects/sliceobject.c' line='286' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_GetIndicesEx'>
+      <parameter type-id='type-id-100' name='_r' filepath='Objects/sliceobject.c' line='286' column='1'/>
+      <parameter type-id='type-id-15' name='length' filepath='Objects/sliceobject.c' line='286' column='1'/>
+      <parameter type-id='type-id-158' name='start' filepath='Objects/sliceobject.c' line='287' column='1'/>
+      <parameter type-id='type-id-158' name='stop' filepath='Objects/sliceobject.c' line='287' column='1'/>
+      <parameter type-id='type-id-158' name='step' filepath='Objects/sliceobject.c' line='287' column='1'/>
+      <parameter type-id='type-id-158' name='slicelength' filepath='Objects/sliceobject.c' line='288' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySlice_AdjustIndices' mangled-name='PySlice_AdjustIndices' filepath='Objects/sliceobject.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_AdjustIndices'>
+      <parameter type-id='type-id-15' name='length' filepath='Objects/sliceobject.c' line='242' column='1'/>
+      <parameter type-id='type-id-158' name='start' filepath='Objects/sliceobject.c' line='243' column='1'/>
+      <parameter type-id='type-id-158' name='stop' filepath='Objects/sliceobject.c' line='243' column='1'/>
+      <parameter type-id='type-id-15' name='step' filepath='Objects/sliceobject.c' line='243' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PySlice_Unpack' mangled-name='PySlice_Unpack' filepath='Objects/sliceobject.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_Unpack'>
+      <parameter type-id='type-id-100' name='_r' filepath='Objects/sliceobject.c' line='197' column='1'/>
+      <parameter type-id='type-id-158' name='start' filepath='Objects/sliceobject.c' line='198' column='1'/>
+      <parameter type-id='type-id-158' name='stop' filepath='Objects/sliceobject.c' line='198' column='1'/>
+      <parameter type-id='type-id-158' name='step' filepath='Objects/sliceobject.c' line='198' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PySlice_GetIndices' mangled-name='PySlice_GetIndices' filepath='Objects/sliceobject.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_GetIndices'>
+      <parameter type-id='type-id-100' name='_r' filepath='Objects/sliceobject.c' line='165' column='1'/>
+      <parameter type-id='type-id-15' name='length' filepath='Objects/sliceobject.c' line='165' column='1'/>
+      <parameter type-id='type-id-158' name='start' filepath='Objects/sliceobject.c' line='166' column='1'/>
+      <parameter type-id='type-id-158' name='stop' filepath='Objects/sliceobject.c' line='166' column='1'/>
+      <parameter type-id='type-id-158' name='step' filepath='Objects/sliceobject.c' line='166' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PySlice_FromIndices' mangled-name='_PySlice_FromIndices' filepath='Objects/sliceobject.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySlice_FromIndices'>
+      <parameter type-id='type-id-15' name='istart' filepath='Objects/sliceobject.c' line='146' column='1'/>
+      <parameter type-id='type-id-15' name='istop' filepath='Objects/sliceobject.c' line='146' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PySlice_New' mangled-name='PySlice_New' filepath='Objects/sliceobject.c' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_New'>
+      <parameter type-id='type-id-100' name='start' filepath='Objects/sliceobject.c' line='117' column='1'/>
+      <parameter type-id='type-id-100' name='stop' filepath='Objects/sliceobject.c' line='117' column='1'/>
+      <parameter type-id='type-id-100' name='step' filepath='Objects/sliceobject.c' line='117' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/structseq.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyStructSequence_UnnamedField' type-id='type-id-16' visibility='default' filepath='./Include/structseq.h' line='22' column='1'/>
+    <class-decl name='PyStructSequence_Desc' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/structseq.h' line='15' column='1' id='type-id-526'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/structseq.h' line='16' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1280'>
-        <var-decl name='co_opcache' type-id='type-id-417' visibility='default' filepath='./Include/cpython/code.h' line='61' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='doc' type-id='type-id-3' visibility='default' filepath='./Include/structseq.h' line='17' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='co_opcache_flag' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='62' column='1'/>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='fields' type-id='type-id-527' visibility='default' filepath='./Include/structseq.h' line='18' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1376'>
-        <var-decl name='co_opcache_size' type-id='type-id-418' visibility='default' filepath='./Include/cpython/code.h' line='63' column='1'/>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='n_in_sequence' type-id='type-id-8' visibility='default' filepath='./Include/structseq.h' line='19' column='1'/>
       </data-member>
     </class-decl>
-    <type-decl name='unsigned char' size-in-bits='8' id='type-id-418'/>
-    <pointer-type-def type-id='type-id-418' size-in-bits='64' id='type-id-416'/>
-    <class-decl name='_PyOpcache' size-in-bits='256' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-419'/>
-    <typedef-decl name='_PyOpcache' type-id='type-id-419' filepath='./Include/cpython/code.h' line='15' column='1' id='type-id-420'/>
-    <pointer-type-def type-id='type-id-420' size-in-bits='64' id='type-id-417'/>
-    <typedef-decl name='PyCodeObject' type-id='type-id-415' filepath='./Include/code.h' line='9' column='1' id='type-id-421'/>
-    <pointer-type-def type-id='type-id-421' size-in-bits='64' id='type-id-412'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='96' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-422' visibility='default' filepath='./Include/cpython/frameobject.h' line='11' column='1' id='type-id-423'>
+    <class-decl name='PyStructSequence_Field' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/structseq.h' line='10' column='1' id='type-id-528'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='b_type' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='12' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='b_handler' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='13' column='1'/>
+        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/structseq.h' line='11' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='b_level' type-id='type-id-8' visibility='default' filepath='./Include/cpython/frameobject.h' line='14' column='1'/>
+        <var-decl name='doc' type-id='type-id-3' visibility='default' filepath='./Include/structseq.h' line='12' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='PyTryBlock' type-id='type-id-423' filepath='./Include/cpython/frameobject.h' line='15' column='1' id='type-id-422'/>
-
-    <array-type-def dimensions='1' type-id='type-id-422' size-in-bits='1920' id='type-id-413'>
-      <subrange length='20' type-id='type-id-33' id='type-id-221'/>
-
-    </array-type-def>
-
-    <array-type-def dimensions='1' type-id='type-id-100' size-in-bits='64' id='type-id-414'>
-      <subrange length='1' type-id='type-id-33' id='type-id-34'/>
-
-    </array-type-def>
-    <typedef-decl name='PyFrameObject' type-id='type-id-410' filepath='./Include/pyframe.h' line='12' column='1' id='type-id-424'/>
-    <pointer-type-def type-id='type-id-424' size-in-bits='64' id='type-id-312'/>
-    <pointer-type-def type-id='type-id-425' size-in-bits='64' id='type-id-426'/>
-    <typedef-decl name='_PyFrameEvalFunction' type-id='type-id-426' filepath='./Include/cpython/pystate.h' line='187' column='1' id='type-id-322'/>
-
-    <array-type-def dimensions='1' type-id='type-id-106' size-in-bits='16320' id='type-id-323'>
-      <subrange length='255' type-id='type-id-33' id='type-id-427'/>
-
-    </array-type-def>
-    <class-decl name='_warnings_runtime_state' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='11' column='1' id='type-id-324'>
+    <pointer-type-def type-id='type-id-528' size-in-bits='64' id='type-id-527'/>
+    <typedef-decl name='PyStructSequence_Desc' type-id='type-id-526' filepath='./Include/structseq.h' line='20' column='1' id='type-id-529'/>
+    <pointer-type-def type-id='type-id-529' size-in-bits='64' id='type-id-530'/>
+    <function-decl name='PyStructSequence_NewType' mangled-name='PyStructSequence_NewType' filepath='Objects/structseq.c' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_NewType'>
+      <parameter type-id='type-id-530' name='desc' filepath='Objects/structseq.c' line='449' column='1'/>
+      <return type-id='type-id-75'/>
+    </function-decl>
+    <function-decl name='PyStructSequence_InitType' mangled-name='PyStructSequence_InitType' filepath='Objects/structseq.c' line='443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_InitType'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/structseq.c' line='443' column='1'/>
+      <parameter type-id='type-id-530' name='desc' filepath='Objects/structseq.c' line='443' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyStructSequence_InitType2' mangled-name='PyStructSequence_InitType2' filepath='Objects/structseq.c' line='386' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_InitType2'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/structseq.c' line='386' column='1'/>
+      <parameter type-id='type-id-530' name='desc' filepath='Objects/structseq.c' line='386' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyStructSequence_GetItem' mangled-name='PyStructSequence_GetItem' filepath='Objects/structseq.c' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_GetItem'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/structseq.c' line='64' column='1'/>
+      <parameter type-id='type-id-15' name='i' filepath='Objects/structseq.c' line='64' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyStructSequence_SetItem' mangled-name='PyStructSequence_SetItem' filepath='Objects/structseq.c' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_SetItem'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/structseq.c' line='58' column='1'/>
+      <parameter type-id='type-id-15' name='i' filepath='Objects/structseq.c' line='58' column='1'/>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/structseq.c' line='58' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyStructSequence_New' mangled-name='PyStructSequence_New' filepath='Objects/structseq.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_New'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/structseq.c' line='40' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyType_FromSpecWithBases' mangled-name='PyType_FromSpecWithBases' filepath='./Include/object.h' line='211' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_GetItemString' mangled-name='PyDict_GetItemString' filepath='./Include/dictobject.h' line='57' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/tupleobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyTuple_Type' type-id='type-id-182' mangled-name='PyTuple_Type' visibility='default' filepath='./Include/tupleobject.h' line='23' column='1' elf-symbol-id='PyTuple_Type'/>
+    <var-decl name='PyTupleIter_Type' type-id='type-id-182' mangled-name='PyTupleIter_Type' visibility='default' filepath='./Include/tupleobject.h' line='24' column='1' elf-symbol-id='PyTupleIter_Type'/>
+    <function-decl name='_PyTuple_Resize' mangled-name='_PyTuple_Resize' filepath='Objects/tupleobject.c' line='902' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTuple_Resize'>
+      <parameter type-id='type-id-303' name='pv' filepath='Objects/tupleobject.c' line='902' column='1'/>
+      <parameter type-id='type-id-15' name='newsize' filepath='Objects/tupleobject.c' line='902' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyTuple_GetSlice' mangled-name='PyTuple_GetSlice' filepath='Objects/tupleobject.c' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_GetSlice'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/tupleobject.c' line='452' column='1'/>
+      <parameter type-id='type-id-15' name='i' filepath='Objects/tupleobject.c' line='452' column='1'/>
+      <parameter type-id='type-id-15' name='j' filepath='Objects/tupleobject.c' line='452' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyTuple_Pack' mangled-name='PyTuple_Pack' filepath='Objects/tupleobject.c' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_Pack'>
+      <parameter type-id='type-id-15' name='n' filepath='Objects/tupleobject.c' line='196' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyTuple_MaybeUntrack' mangled-name='_PyTuple_MaybeUntrack' filepath='Objects/tupleobject.c' line='174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTuple_MaybeUntrack'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/tupleobject.c' line='174' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTuple_SetItem' mangled-name='PyTuple_SetItem' filepath='Objects/tupleobject.c' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_SetItem'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/tupleobject.c' line='154' column='1'/>
+      <parameter type-id='type-id-15' name='i' filepath='Objects/tupleobject.c' line='154' column='1'/>
+      <parameter type-id='type-id-100' name='newitem' filepath='Objects/tupleobject.c' line='154' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyTuple_GetItem' mangled-name='PyTuple_GetItem' filepath='Objects/tupleobject.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_GetItem'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/tupleobject.c' line='140' column='1'/>
+      <parameter type-id='type-id-15' name='i' filepath='Objects/tupleobject.c' line='140' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyTuple_Size' mangled-name='PyTuple_Size' filepath='Objects/tupleobject.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_Size'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/bytesobject.c' line='1197' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='_PyTuple_DebugMallocStats' mangled-name='_PyTuple_DebugMallocStats' filepath='Objects/tupleobject.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTuple_DebugMallocStats'>
+      <parameter type-id='type-id-223' name='out' filepath='Objects/tupleobject.c' line='41' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTuple_New' mangled-name='PyTuple_New' filepath='Objects/tupleobject.c' line='100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_New'>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/tupleobject.c' line='100' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/typeobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyType_Type' type-id='type-id-182' mangled-name='PyType_Type' visibility='default' filepath='./Include/object.h' line='227' column='1' elf-symbol-id='PyType_Type'/>
+    <var-decl name='PyBaseObject_Type' type-id='type-id-182' mangled-name='PyBaseObject_Type' visibility='default' filepath='./Include/object.h' line='228' column='1' elf-symbol-id='PyBaseObject_Type'/>
+    <var-decl name='PySuper_Type' type-id='type-id-182' mangled-name='PySuper_Type' visibility='default' filepath='./Include/object.h' line='229' column='1' elf-symbol-id='PySuper_Type'/>
+    <function-decl name='PyType_Ready' mangled-name='PyType_Ready' filepath='Objects/typeobject.c' line='5391' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_Ready'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='5391' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyType_LookupId' mangled-name='_PyType_LookupId' filepath='Objects/typeobject.c' line='3303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_LookupId'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='3303' column='1'/>
+      <parameter type-id='type-id-308' name='name' filepath='Objects/typeobject.c' line='3303' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyType_Lookup' mangled-name='_PyType_Lookup' filepath='Objects/typeobject.c' line='3243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_Lookup'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='3243' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Objects/typeobject.c' line='3243' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyType_GetModuleState' mangled-name='PyType_GetModuleState' filepath='Objects/typeobject.c' line='3169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetModuleState'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='3169' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyType_GetSlot' mangled-name='PyType_GetSlot' filepath='Objects/typeobject.c' line='3131' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetSlot'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='3131' column='1'/>
+      <parameter type-id='type-id-8' name='slot' filepath='Objects/typeobject.c' line='3131' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-531' visibility='default' filepath='./Include/object.h' line='201' column='1' id='type-id-532'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='filters' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='14' column='1'/>
+        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/object.h' line='202' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='once_registry' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='15' column='1'/>
+        <var-decl name='basicsize' type-id='type-id-8' visibility='default' filepath='./Include/object.h' line='203' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='itemsize' type-id='type-id-8' visibility='default' filepath='./Include/object.h' line='204' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='default_action' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='16' column='1'/>
+        <var-decl name='flags' type-id='type-id-107' visibility='default' filepath='./Include/object.h' line='205' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='filters_version' type-id='type-id-12' visibility='default' filepath='./Include/internal/pycore_warnings.h' line='17' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='142' column='1' id='type-id-325'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='listnode' type-id='type-id-428' visibility='default' filepath='./Include/internal/pycore_interp.h' line='146' column='1'/>
+        <var-decl name='slots' type-id='type-id-533' visibility='default' filepath='./Include/object.h' line='206' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='143' column='1' id='type-id-428'>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-534' visibility='default' filepath='./Include/object.h' line='196' column='1' id='type-id-535'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='level' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='144' column='1'/>
+        <var-decl name='slot' type-id='type-id-8' visibility='default' filepath='./Include/object.h' line='197' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='atbol' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='145' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='pfunc' type-id='type-id-32' visibility='default' filepath='./Include/object.h' line='198' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='PyLongObject' type-id='type-id-290' filepath='./Include/longobject.h' line='10' column='1' id='type-id-429'/>
-    <pointer-type-def type-id='type-id-429' size-in-bits='64' id='type-id-430'/>
+    <typedef-decl name='PyType_Slot' type-id='type-id-535' filepath='./Include/object.h' line='199' column='1' id='type-id-534'/>
+    <pointer-type-def type-id='type-id-534' size-in-bits='64' id='type-id-533'/>
+    <typedef-decl name='PyType_Spec' type-id='type-id-532' filepath='./Include/object.h' line='207' column='1' id='type-id-531'/>
+    <pointer-type-def type-id='type-id-531' size-in-bits='64' id='type-id-536'/>
+    <function-decl name='PyType_FromSpec' mangled-name='PyType_FromSpec' filepath='Objects/typeobject.c' line='3117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_FromSpec'>
+      <parameter type-id='type-id-536' name='spec' filepath='Objects/typeobject.c' line='3117' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyType_FromModuleAndSpec' mangled-name='PyType_FromModuleAndSpec' filepath='Objects/typeobject.c' line='2891' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_FromModuleAndSpec'>
+      <parameter type-id='type-id-100' name='module' filepath='Objects/typeobject.c' line='2891' column='1'/>
+      <parameter type-id='type-id-536' name='spec' filepath='Objects/typeobject.c' line='2891' column='1'/>
+      <parameter type-id='type-id-100' name='bases' filepath='Objects/typeobject.c' line='2891' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyType_FromSpecWithBases' mangled-name='PyType_FromSpecWithBases' filepath='Objects/typeobject.c' line='2885' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_FromSpecWithBases'>
+      <parameter type-id='type-id-536' name='spec' filepath='Objects/typeobject.c' line='2885' column='1'/>
+      <parameter type-id='type-id-100' name='bases' filepath='Objects/typeobject.c' line='2885' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyType_CalculateMetaclass' mangled-name='_PyType_CalculateMetaclass' filepath='Objects/typeobject.c' line='2356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_CalculateMetaclass'>
+      <parameter type-id='type-id-75' name='metatype' filepath='Objects/typeobject.c' line='2356' column='1'/>
+      <parameter type-id='type-id-100' name='bases' filepath='Objects/typeobject.c' line='2356' column='1'/>
+      <return type-id='type-id-75'/>
+    </function-decl>
+    <function-decl name='PyType_GetFlags' mangled-name='PyType_GetFlags' filepath='Objects/typeobject.c' line='2349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetFlags'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='2349' column='1'/>
+      <return type-id='type-id-33'/>
+    </function-decl>
+    <function-decl name='_PyObject_LookupSpecial' mangled-name='_PyObject_LookupSpecial' filepath='Objects/typeobject.c' line='1457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_LookupSpecial'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/typeobject.c' line='1457' column='1'/>
+      <parameter type-id='type-id-476' name='attrid' filepath='Objects/typeobject.c' line='1457' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyType_GenericNew' mangled-name='PyType_GenericNew' filepath='Objects/typeobject.c' line='1073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GenericNew'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='1073' column='1'/>
+      <parameter type-id='type-id-100' name='args' filepath='Objects/typeobject.c' line='1073' column='1'/>
+      <parameter type-id='type-id-100' name='kwds' filepath='Objects/typeobject.c' line='1073' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyType_GenericAlloc' mangled-name='PyType_GenericAlloc' filepath='Objects/typeobject.c' line='1040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GenericAlloc'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='1040' column='1'/>
+      <parameter type-id='type-id-15' name='nitems' filepath='Objects/typeobject.c' line='1040' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyType_Name' mangled-name='_PyType_Name' filepath='Objects/typeobject.c' line='447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_Name'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='447' column='1'/>
+      <return type-id='type-id-3'/>
+    </function-decl>
+    <function-decl name='PyType_ClearCache' mangled-name='PyType_ClearCache' filepath='Objects/typeobject.c' line='221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_ClearCache'>
+      <return type-id='type-id-107'/>
+    </function-decl>
+    <function-decl name='_PyType_CheckConsistency' mangled-name='_PyType_CheckConsistency' filepath='Objects/typeobject.c' line='151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_CheckConsistency'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='151' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyType_GetDocFromInternalDoc' mangled-name='_PyType_GetDocFromInternalDoc' filepath='Objects/typeobject.c' line='187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_GetDocFromInternalDoc'>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/typeobject.c' line='187' column='1'/>
+      <parameter type-id='type-id-3' name='internal_doc' filepath='Objects/typeobject.c' line='187' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyType_GetTextSignatureFromInternalDoc' mangled-name='_PyType_GetTextSignatureFromInternalDoc' filepath='Objects/typeobject.c' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_GetTextSignatureFromInternalDoc'>
+      <parameter type-id='type-id-3' name='name' filepath='Objects/typeobject.c' line='199' column='1'/>
+      <parameter type-id='type-id-3' name='internal_doc' filepath='Objects/typeobject.c' line='199' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyType_Modified' mangled-name='PyType_Modified' filepath='Objects/typeobject.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_Modified'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='261' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyType_IsSubtype' mangled-name='PyType_IsSubtype' filepath='Objects/typeobject.c' line='1419' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_IsSubtype'>
+      <parameter type-id='type-id-75' name='a' filepath='Objects/typeobject.c' line='1419' column='1'/>
+      <parameter type-id='type-id-75' name='b' filepath='Objects/typeobject.c' line='1419' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyType_GetModule' mangled-name='PyType_GetModule' filepath='Objects/typeobject.c' line='3145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetModule'>
+      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='3145' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyThreadState_GetFrame' mangled-name='PyThreadState_GetFrame' filepath='./Include/pystate.h' line='90' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFrame_GetCode' mangled-name='PyFrame_GetCode' filepath='./Include/pyframe.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_Call_Prepend' mangled-name='_PyObject_Call_Prepend' filepath='./Include/internal/pycore_call.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_Call' mangled-name='_PyObject_Call' filepath='./Include/internal/pycore_call.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_HashNotImplemented' mangled-name='PyObject_HashNotImplemented' filepath='./Include/object.h' line='260' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDescr_NewWrapper' mangled-name='PyDescr_NewWrapper' filepath='./Include/descrobject.h' line='94' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyStaticMethod_New' mangled-name='PyStaticMethod_New' filepath='./Include/funcobject.h' line='92' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDescr_NewClassMethod' mangled-name='PyDescr_NewClassMethod' filepath='./Include/descrobject.h' line='87' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDescr_NewMethod' mangled-name='PyDescr_NewMethod' filepath='./Include/descrobject.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDescr_NewMember' mangled-name='PyDescr_NewMember' filepath='./Include/descrobject.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDescr_NewGetSet' mangled-name='PyDescr_NewGetSet' filepath='./Include/descrobject.h' line='91' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDictKeys_DecRef' mangled-name='_PyDictKeys_DecRef' filepath='Objects/typeobject.c' line='3476' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_GenericSetAttrWithDict' mangled-name='_PyObject_GenericSetAttrWithDict' filepath='./Include/cpython/object.h' line='342' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyModule_GetState' mangled-name='PyModule_GetState' filepath='./Include/moduleobject.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_DelItemString' mangled-name='PyDict_DelItemString' filepath='./Include/dictobject.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_NewKeysForClass' mangled-name='_PyDict_NewKeysForClass' filepath='./Include/cpython/dictobject.h' line='47' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_IsIdentifier' mangled-name='PyUnicode_IsIdentifier' filepath='./Include/unicodeobject.h' line='1020' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_DelItemId' mangled-name='_PyDict_DelItemId' filepath='./Include/cpython/dictobject.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_GetGlobals' mangled-name='PyEval_GetGlobals' filepath='./Include/ceval.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Mangle' mangled-name='_Py_Mangle' filepath='./Include/compile.h' line='88' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyClassMethod_New' mangled-name='PyClassMethod_New' filepath='./Include/funcobject.h' line='91' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_GenericGetDict' mangled-name='PyObject_GenericGetDict' filepath='./Include/cpython/dictobject.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyWeakref_ClearRef' mangled-name='_PyWeakref_ClearRef' filepath='./Include/weakrefobject.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_GC_Malloc' mangled-name='_PyObject_GC_Malloc' filepath='./Include/cpython/objimpl.h' line='134' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_IsFreed' mangled-name='_PyObject_IsFreed' filepath='./Include/cpython/object.h' line='312' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyImport_GetModule' mangled-name='PyImport_GetModule' filepath='./Include/import.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyImport_Import' mangled-name='PyImport_Import' filepath='./Include/import.h' line='73' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_KeysSize' mangled-name='_PyDict_KeysSize' filepath='./Include/cpython/dictobject.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_RealIsInstance' mangled-name='_PyObject_RealIsInstance' filepath='./Include/cpython/abstract.h' line='365' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDictProxy_New' mangled-name='PyDictProxy_New' filepath='./Include/descrobject.h' line='99' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyWeakref_NewRef' mangled-name='PyWeakref_NewRef' filepath='./Include/weakrefobject.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_LookupAttr' mangled-name='_PyObject_LookupAttr' filepath='./Include/cpython/object.h' line='327' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/unicodeobject.c' comp-dir-path='/src' language='LANG_C99'>
 
-    <array-type-def dimensions='1' type-id='type-id-430' size-in-bits='16768' id='type-id-326'>
-      <subrange length='262' type-id='type-id-33' id='type-id-431'/>
+    <array-type-def dimensions='1' type-id='type-id-459' size-in-bits='infinite' id='type-id-537'>
+      <subrange length='infinite' id='type-id-18'/>
 
     </array-type-def>
-    <function-decl name='_PyObject_Call_Prepend' mangled-name='_PyObject_Call_Prepend' filepath='Objects/call.c' line='463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_Call_Prepend'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Objects/call.c' line='463' column='1'/>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='463' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/call.c' line='464' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='464' column='1'/>
-      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='464' column='1'/>
+    <qualified-type-def type-id='type-id-537' const='yes' id='type-id-538'/>
+    <var-decl name='_Py_ascii_whitespace' type-id='type-id-538' mangled-name='_Py_ascii_whitespace' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='1069' column='1' elf-symbol-id='_Py_ascii_whitespace'/>
+    <var-decl name='PyUnicode_Type' type-id='type-id-182' mangled-name='PyUnicode_Type' visibility='default' filepath='./Include/unicodeobject.h' line='111' column='1' elf-symbol-id='PyUnicode_Type'/>
+    <var-decl name='PyUnicodeIter_Type' type-id='type-id-182' mangled-name='PyUnicodeIter_Type' visibility='default' filepath='./Include/unicodeobject.h' line='112' column='1' elf-symbol-id='PyUnicodeIter_Type'/>
+    <function-decl name='PyInit__string' mangled-name='PyInit__string' filepath='Objects/unicodeobject.c' line='16347' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__string'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyObject_CallObject' mangled-name='PyObject_CallObject' filepath='Objects/call.c' line='445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallObject'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='445' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='445' column='1'/>
+    <function-decl name='PyUnicode_AsUnicodeCopy' mangled-name='PyUnicode_AsUnicodeCopy' filepath='Objects/unicodeobject.c' line='16056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUnicodeCopy'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='16056' column='1'/>
+      <return type-id='type-id-470'/>
+    </function-decl>
+    <function-decl name='Py_UNICODE_strrchr' mangled-name='Py_UNICODE_strrchr' filepath='Objects/unicodeobject.c' line='16043' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strrchr'>
+      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='16043' column='1'/>
+      <parameter type-id='type-id-453' name='c' filepath='Objects/unicodeobject.c' line='16043' column='1'/>
+      <return type-id='type-id-470'/>
+    </function-decl>
+    <function-decl name='Py_UNICODE_strchr' mangled-name='Py_UNICODE_strchr' filepath='Objects/unicodeobject.c' line='16033' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strchr'>
+      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='16033' column='1'/>
+      <parameter type-id='type-id-453' name='c' filepath='Objects/unicodeobject.c' line='16033' column='1'/>
+      <return type-id='type-id-470'/>
+    </function-decl>
+    <function-decl name='Py_UNICODE_strncmp' mangled-name='Py_UNICODE_strncmp' filepath='Objects/unicodeobject.c' line='16016' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strncmp'>
+      <parameter type-id='type-id-455' name='s1' filepath='Objects/unicodeobject.c' line='16016' column='1'/>
+      <parameter type-id='type-id-455' name='s2' filepath='Objects/unicodeobject.c' line='16016' column='1'/>
+      <parameter type-id='type-id-191' name='n' filepath='Objects/unicodeobject.c' line='16016' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='Py_UNICODE_strcmp' mangled-name='Py_UNICODE_strcmp' filepath='Objects/unicodeobject.c' line='16002' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strcmp'>
+      <parameter type-id='type-id-455' name='s1' filepath='Objects/unicodeobject.c' line='16002' column='1'/>
+      <parameter type-id='type-id-455' name='s2' filepath='Objects/unicodeobject.c' line='16002' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='Py_UNICODE_strcat' mangled-name='Py_UNICODE_strcat' filepath='Objects/unicodeobject.c' line='15993' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strcat'>
+      <parameter type-id='type-id-470' name='s1' filepath='Objects/unicodeobject.c' line='15993' column='1'/>
+      <parameter type-id='type-id-455' name='s2' filepath='Objects/unicodeobject.c' line='15993' column='1'/>
+      <return type-id='type-id-470'/>
+    </function-decl>
+    <function-decl name='Py_UNICODE_strncpy' mangled-name='Py_UNICODE_strncpy' filepath='Objects/unicodeobject.c' line='15983' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strncpy'>
+      <parameter type-id='type-id-470' name='s1' filepath='Objects/unicodeobject.c' line='15983' column='1'/>
+      <parameter type-id='type-id-455' name='s2' filepath='Objects/unicodeobject.c' line='15983' column='1'/>
+      <parameter type-id='type-id-191' name='n' filepath='Objects/unicodeobject.c' line='15983' column='1'/>
+      <return type-id='type-id-470'/>
+    </function-decl>
+    <function-decl name='Py_UNICODE_strcpy' mangled-name='Py_UNICODE_strcpy' filepath='Objects/unicodeobject.c' line='15975' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strcpy'>
+      <parameter type-id='type-id-470' name='s1' filepath='Objects/unicodeobject.c' line='15975' column='1'/>
+      <parameter type-id='type-id-455' name='s2' filepath='Objects/unicodeobject.c' line='15975' column='1'/>
+      <return type-id='type-id-470'/>
+    </function-decl>
+    <function-decl name='Py_UNICODE_strlen' mangled-name='Py_UNICODE_strlen' filepath='Objects/unicodeobject.c' line='15969' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strlen'>
+      <parameter type-id='type-id-455' name='u' filepath='Objects/unicodeobject.c' line='15969' column='1'/>
+      <return type-id='type-id-191'/>
+    </function-decl>
+    <function-decl name='PyUnicode_InternFromString' mangled-name='PyUnicode_InternFromString' filepath='Objects/unicodeobject.c' line='15736' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_InternFromString'>
+      <parameter type-id='type-id-3' name='cp' filepath='Objects/unicodeobject.c' line='15736' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyEval_CallObjectWithKeywords' mangled-name='PyEval_CallObjectWithKeywords' filepath='Objects/call.c' line='412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_CallObjectWithKeywords'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='412' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='413' column='1'/>
-      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='413' column='1'/>
+    <function-decl name='PyUnicode_InternImmortal' mangled-name='PyUnicode_InternImmortal' filepath='Objects/unicodeobject.c' line='15726' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_InternImmortal'>
+      <parameter type-id='type-id-303' name='p' filepath='Objects/unicodeobject.c' line='15726' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_InternInPlace' mangled-name='PyUnicode_InternInPlace' filepath='Objects/unicodeobject.c' line='15673' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_InternInPlace'>
+      <parameter type-id='type-id-303' name='p' filepath='Objects/unicodeobject.c' line='15673' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Format' mangled-name='PyUnicode_Format' filepath='Objects/unicodeobject.c' line='15362' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Format'>
+      <parameter type-id='type-id-100' name='format' filepath='Objects/unicodeobject.c' line='15362' column='1'/>
+      <parameter type-id='type-id-100' name='args' filepath='Objects/unicodeobject.c' line='15362' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyFunction_Vectorcall' mangled-name='_PyFunction_Vectorcall' filepath='Objects/call.c' line='346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFunction_Vectorcall'>
-      <parameter type-id='type-id-100' name='func' filepath='Objects/call.c' line='346' column='1'/>
-      <parameter type-id='type-id-190' name='stack' filepath='Objects/call.c' line='346' column='1'/>
-      <parameter type-id='type-id-191' name='nargsf' filepath='Objects/call.c' line='347' column='1'/>
-      <parameter type-id='type-id-100' name='kwnames' filepath='Objects/call.c' line='347' column='1'/>
+    <function-decl name='_PyUnicode_FormatLong' mangled-name='_PyUnicode_FormatLong' filepath='Objects/unicodeobject.c' line='14588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FormatLong'>
+      <parameter type-id='type-id-100' name='val' filepath='Objects/unicodeobject.c' line='14588' column='1'/>
+      <parameter type-id='type-id-8' name='alt' filepath='Objects/unicodeobject.c' line='14588' column='1'/>
+      <parameter type-id='type-id-8' name='prec' filepath='Objects/unicodeobject.c' line='14588' column='1'/>
+      <parameter type-id='type-id-8' name='type' filepath='Objects/unicodeobject.c' line='14588' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyCFunction_Call' mangled-name='PyCFunction_Call' filepath='Objects/call.c' line='298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCFunction_Call'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='412' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='413' column='1'/>
-      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='413' column='1'/>
+    <function-decl name='_PyUnicodeWriter_Dealloc' mangled-name='_PyUnicodeWriter_Dealloc' filepath='Objects/unicodeobject.c' line='14225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_Dealloc'>
+      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='14225' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_WriteLatin1String' mangled-name='_PyUnicodeWriter_WriteLatin1String' filepath='Objects/unicodeobject.c' line='14179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteLatin1String'>
+      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='14179' column='1'/>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='14180' column='1'/>
+      <parameter type-id='type-id-15' name='len' filepath='Objects/unicodeobject.c' line='14180' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_WriteASCIIString' mangled-name='_PyUnicodeWriter_WriteASCIIString' filepath='Objects/unicodeobject.c' line='14119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteASCIIString'>
+      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='14119' column='1'/>
+      <parameter type-id='type-id-3' name='ascii' filepath='Objects/unicodeobject.c' line='14120' column='1'/>
+      <parameter type-id='type-id-15' name='len' filepath='Objects/unicodeobject.c' line='14120' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_WriteStr' mangled-name='_PyUnicodeWriter_WriteStr' filepath='Objects/unicodeobject.c' line='14053' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteStr'>
+      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='14053' column='1'/>
+      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='14053' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_WriteChar' mangled-name='_PyUnicodeWriter_WriteChar' filepath='Objects/unicodeobject.c' line='14047' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteChar'>
+      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='14047' column='1'/>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodeobject.c' line='14047' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_PrepareKindInternal' mangled-name='_PyUnicodeWriter_PrepareKindInternal' filepath='Objects/unicodeobject.c' line='14015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_PrepareKindInternal'>
+      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='14015' column='1'/>
+      <parameter type-id='type-id-473' name='kind' filepath='Objects/unicodeobject.c' line='14016' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_PrepareInternal' mangled-name='_PyUnicodeWriter_PrepareInternal' filepath='Objects/unicodeobject.c' line='13938' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_PrepareInternal'>
+      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='13938' column='1'/>
+      <parameter type-id='type-id-15' name='length' filepath='Objects/unicodeobject.c' line='13939' column='1'/>
+      <parameter type-id='type-id-474' name='maxchar' filepath='Objects/unicodeobject.c' line='13939' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_Init' mangled-name='_PyUnicodeWriter_Init' filepath='Objects/unicodeobject.c' line='13914' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_Init'>
+      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='13914' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_RSplit' mangled-name='PyUnicode_RSplit' filepath='Objects/unicodeobject.c' line='13489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RSplit'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/unicodeobject.c' line='13489' column='1'/>
+      <parameter type-id='type-id-100' name='sep' filepath='Objects/unicodeobject.c' line='13489' column='1'/>
+      <parameter type-id='type-id-15' name='maxsplit' filepath='Objects/unicodeobject.c' line='13489' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyObject_Call' mangled-name='PyObject_Call' filepath='Objects/call.c' line='290' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Call'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='412' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='413' column='1'/>
-      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='413' column='1'/>
+    <function-decl name='PyUnicode_Split' mangled-name='PyUnicode_Split' filepath='Objects/unicodeobject.c' line='13293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Split'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/unicodeobject.c' line='13489' column='1'/>
+      <parameter type-id='type-id-100' name='sep' filepath='Objects/unicodeobject.c' line='13489' column='1'/>
+      <parameter type-id='type-id-15' name='maxsplit' filepath='Objects/unicodeobject.c' line='13489' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyObject_Call' mangled-name='_PyObject_Call' filepath='Objects/call.c' line='252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_Call'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Objects/call.c' line='252' column='1'/>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='252' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='253' column='1'/>
-      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='253' column='1'/>
+    <function-decl name='PyUnicode_Replace' mangled-name='PyUnicode_Replace' filepath='Objects/unicodeobject.c' line='12941' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Replace'>
+      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='12941' column='1'/>
+      <parameter type-id='type-id-100' name='substr' filepath='Objects/unicodeobject.c' line='12942' column='1'/>
+      <parameter type-id='type-id-100' name='replstr' filepath='Objects/unicodeobject.c' line='12943' column='1'/>
+      <parameter type-id='type-id-15' name='maxcount' filepath='Objects/unicodeobject.c' line='12944' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyVectorcall_Call' mangled-name='PyVectorcall_Call' filepath='Objects/call.c' line='205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyVectorcall_Call'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='205' column='1'/>
-      <parameter type-id='type-id-100' name='tuple' filepath='Objects/call.c' line='205' column='1'/>
-      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='205' column='1'/>
+    <function-decl name='PyUnicode_Substring' mangled-name='PyUnicode_Substring' filepath='Objects/unicodeobject.c' line='12699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Substring'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/unicodeobject.c' line='12699' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='12699' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='12699' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyObject_MakeTpCall' mangled-name='_PyObject_MakeTpCall' filepath='Objects/call.c' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_MakeTpCall'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Objects/call.c' line='147' column='1'/>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='147' column='1'/>
-      <parameter type-id='type-id-190' name='args' filepath='Objects/call.c' line='148' column='1'/>
-      <parameter type-id='type-id-15' name='nargs' filepath='Objects/call.c' line='148' column='1'/>
-      <parameter type-id='type-id-100' name='keywords' filepath='Objects/call.c' line='149' column='1'/>
+    <function-decl name='_PyUnicode_XStrip' mangled-name='_PyUnicode_XStrip' filepath='Objects/unicodeobject.c' line='12649' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_XStrip'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/unicodeobject.c' line='12649' column='1'/>
+      <parameter type-id='type-id-8' name='striptype' filepath='Objects/unicodeobject.c' line='12649' column='1'/>
+      <parameter type-id='type-id-100' name='sepobj' filepath='Objects/unicodeobject.c' line='12649' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyObject_VectorcallDict' mangled-name='PyObject_VectorcallDict' filepath='Objects/call.c' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_VectorcallDict'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='138' column='1'/>
-      <parameter type-id='type-id-190' name='args' filepath='Objects/call.c' line='138' column='1'/>
-      <parameter type-id='type-id-191' name='nargsf' filepath='Objects/call.c' line='139' column='1'/>
-      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='139' column='1'/>
+    <function-decl name='PyUnicode_IsIdentifier' mangled-name='PyUnicode_IsIdentifier' filepath='Objects/unicodeobject.c' line='12463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_IsIdentifier'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/unicodeobject.c' line='12463' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_ScanIdentifier' mangled-name='_PyUnicode_ScanIdentifier' filepath='Objects/unicodeobject.c' line='12426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ScanIdentifier'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/unicodeobject.c' line='12426' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AppendAndDel' mangled-name='PyUnicode_AppendAndDel' filepath='Objects/unicodeobject.c' line='11698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AppendAndDel'>
+      <parameter type-id='type-id-303' name='pv' filepath='Objects/bytesobject.c' line='2978' column='1'/>
+      <parameter type-id='type-id-100' name='w' filepath='Objects/bytesobject.c' line='2978' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Append' mangled-name='PyUnicode_Append' filepath='Objects/unicodeobject.c' line='11617' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Append'>
+      <parameter type-id='type-id-303' name='p_left' filepath='Objects/unicodeobject.c' line='11617' column='1'/>
+      <parameter type-id='type-id-100' name='right' filepath='Objects/unicodeobject.c' line='11617' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Concat' mangled-name='PyUnicode_Concat' filepath='Objects/unicodeobject.c' line='11569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Concat'>
+      <parameter type-id='type-id-100' name='left' filepath='Objects/unicodeobject.c' line='11569' column='1'/>
+      <parameter type-id='type-id-100' name='right' filepath='Objects/unicodeobject.c' line='11569' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyObject_FastCallDictTstate' mangled-name='_PyObject_FastCallDictTstate' filepath='Objects/call.c' line='94' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_FastCallDictTstate'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Objects/call.c' line='94' column='1'/>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='94' column='1'/>
-      <parameter type-id='type-id-190' name='args' filepath='Objects/call.c' line='95' column='1'/>
-      <parameter type-id='type-id-191' name='nargsf' filepath='Objects/call.c' line='95' column='1'/>
-      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='96' column='1'/>
+    <function-decl name='_PyUnicode_EQ' mangled-name='_PyUnicode_EQ' filepath='Objects/unicodeobject.c' line='11500' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EQ'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/exceptions.c' line='325' column='1'/>
+      <parameter type-id='type-id-100' name='tb' filepath='Objects/exceptions.c' line='325' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EqualToASCIIId' mangled-name='_PyUnicode_EqualToASCIIId' filepath='Objects/unicodeobject.c' line='11416' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EqualToASCIIId'>
+      <parameter type-id='type-id-100' name='left' filepath='Objects/unicodeobject.c' line='11416' column='1'/>
+      <parameter type-id='type-id-476' name='right' filepath='Objects/unicodeobject.c' line='11416' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicode_CompareWithASCIIString' mangled-name='PyUnicode_CompareWithASCIIString' filepath='Objects/unicodeobject.c' line='11314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_CompareWithASCIIString'>
+      <parameter type-id='type-id-100' name='uni' filepath='Objects/unicodeobject.c' line='11314' column='1'/>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='11314' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Compare' mangled-name='PyUnicode_Compare' filepath='Objects/unicodeobject.c' line='11293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Compare'>
+      <parameter type-id='type-id-100' name='left' filepath='Objects/unicodeobject.c' line='11293' column='1'/>
+      <parameter type-id='type-id-100' name='right' filepath='Objects/unicodeobject.c' line='11293' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Splitlines' mangled-name='PyUnicode_Splitlines' filepath='Objects/unicodeobject.c' line='10479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Splitlines'>
+      <parameter type-id='type-id-100' name='string' filepath='Objects/unicodeobject.c' line='10479' column='1'/>
+      <parameter type-id='type-id-8' name='keepends' filepath='Objects/unicodeobject.c' line='10479' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyObject_CallNoArgs' mangled-name='PyObject_CallNoArgs' filepath='Objects/call.c' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallNoArgs'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
+    <function-decl name='PyUnicode_Fill' mangled-name='PyUnicode_Fill' filepath='Objects/unicodeobject.c' line='10403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Fill'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='10403' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='10403' column='1'/>
+      <parameter type-id='type-id-15' name='length' filepath='Objects/unicodeobject.c' line='10403' column='1'/>
+      <parameter type-id='type-id-474' name='fill_char' filepath='Objects/unicodeobject.c' line='10404' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_FastFill' mangled-name='_PyUnicode_FastFill' filepath='Objects/unicodeobject.c' line='10389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FastFill'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='10389' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='10389' column='1'/>
+      <parameter type-id='type-id-15' name='length' filepath='Objects/unicodeobject.c' line='10389' column='1'/>
+      <parameter type-id='type-id-474' name='fill_char' filepath='Objects/unicodeobject.c' line='10390' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Join' mangled-name='PyUnicode_Join' filepath='Objects/unicodeobject.c' line='10193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Join'>
+      <parameter type-id='type-id-100' name='separator' filepath='Objects/unicodeobject.c' line='10193' column='1'/>
+      <parameter type-id='type-id-100' name='seq' filepath='Objects/unicodeobject.c' line='10193' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_Py_CheckFunctionResult' mangled-name='_Py_CheckFunctionResult' filepath='Objects/call.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_CheckFunctionResult'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Objects/call.c' line='33' column='1'/>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='33' column='1'/>
-      <parameter type-id='type-id-100' name='result' filepath='Objects/call.c' line='34' column='1'/>
-      <parameter type-id='type-id-3' name='where' filepath='Objects/call.c' line='34' column='1'/>
+    <function-decl name='PyUnicode_Tailmatch' mangled-name='PyUnicode_Tailmatch' filepath='Objects/unicodeobject.c' line='9946' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Tailmatch'>
+      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='9946' column='1'/>
+      <parameter type-id='type-id-100' name='substr' filepath='Objects/unicodeobject.c' line='9947' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='9948' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='9949' column='1'/>
+      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='9950' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FindChar' mangled-name='PyUnicode_FindChar' filepath='Objects/unicodeobject.c' line='9857' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FindChar'>
+      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='9857' column='1'/>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodeobject.c' line='9857' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='9858' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='9858' column='1'/>
+      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='9859' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Find' mangled-name='PyUnicode_Find' filepath='Objects/unicodeobject.c' line='9844' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Find'>
+      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='9844' column='1'/>
+      <parameter type-id='type-id-100' name='substr' filepath='Objects/unicodeobject.c' line='9845' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='9846' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='9847' column='1'/>
+      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='9848' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Count' mangled-name='PyUnicode_Count' filepath='Objects/unicodeobject.c' line='9770' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Count'>
+      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='9770' column='1'/>
+      <parameter type-id='type-id-100' name='substr' filepath='Objects/unicodeobject.c' line='9771' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='9772' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='9773' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-474' size-in-bits='64' id='type-id-539'/>
+    <function-decl name='_PyUnicode_InsertThousandsGrouping' mangled-name='_PyUnicode_InsertThousandsGrouping' filepath='Objects/unicodeobject.c' line='9650' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_InsertThousandsGrouping'>
+      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='9651' column='1'/>
+      <parameter type-id='type-id-15' name='n_buffer' filepath='Objects/unicodeobject.c' line='9652' column='1'/>
+      <parameter type-id='type-id-100' name='digits' filepath='Objects/unicodeobject.c' line='9653' column='1'/>
+      <parameter type-id='type-id-15' name='d_pos' filepath='Objects/unicodeobject.c' line='9654' column='1'/>
+      <parameter type-id='type-id-15' name='n_digits' filepath='Objects/unicodeobject.c' line='9655' column='1'/>
+      <parameter type-id='type-id-15' name='min_width' filepath='Objects/unicodeobject.c' line='9656' column='1'/>
+      <parameter type-id='type-id-3' name='grouping' filepath='Objects/unicodeobject.c' line='9657' column='1'/>
+      <parameter type-id='type-id-100' name='thousands_sep' filepath='Objects/unicodeobject.c' line='9658' column='1'/>
+      <parameter type-id='type-id-539' name='maxchar' filepath='Objects/unicodeobject.c' line='9659' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeDecimal' mangled-name='PyUnicode_EncodeDecimal' filepath='Objects/unicodeobject.c' line='9461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeDecimal'>
+      <parameter type-id='type-id-470' name='s' filepath='Objects/unicodeobject.c' line='9461' column='1'/>
+      <parameter type-id='type-id-15' name='length' filepath='Objects/unicodeobject.c' line='9462' column='1'/>
+      <parameter type-id='type-id-7' name='output' filepath='Objects/unicodeobject.c' line='9463' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9464' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicode_TransformDecimalToASCII' mangled-name='PyUnicode_TransformDecimalToASCII' filepath='Objects/unicodeobject.c' line='9420' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_TransformDecimalToASCII'>
+      <parameter type-id='type-id-470' name='s' filepath='Objects/unicodeobject.c' line='9420' column='1'/>
+      <parameter type-id='type-id-15' name='length' filepath='Objects/unicodeobject.c' line='9421' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-type size-in-bits='64' id='type-id-425'>
-      <parameter type-id='type-id-409'/>
-      <parameter type-id='type-id-312'/>
-      <parameter type-id='type-id-8'/>
+    <function-decl name='_PyUnicode_TransformDecimalAndSpaceToASCII' mangled-name='_PyUnicode_TransformDecimalAndSpaceToASCII' filepath='Objects/unicodeobject.c' line='9371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_TransformDecimalAndSpaceToASCII'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='9371' column='1'/>
       <return type-id='type-id-100'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-347'>
-      <parameter type-id='type-id-346'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Translate' mangled-name='PyUnicode_Translate' filepath='Objects/unicodeobject.c' line='9361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Translate'>
+      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='9361' column='1'/>
+      <parameter type-id='type-id-100' name='mapping' filepath='Objects/unicodeobject.c' line='9362' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9363' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_TranslateCharmap' mangled-name='PyUnicode_TranslateCharmap' filepath='Objects/unicodeobject.c' line='9346' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_TranslateCharmap'>
+      <parameter type-id='type-id-455' name='p' filepath='Objects/unicodeobject.c' line='9346' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='9347' column='1'/>
+      <parameter type-id='type-id-100' name='mapping' filepath='Objects/unicodeobject.c' line='9348' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9349' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsCharmapString' mangled-name='PyUnicode_AsCharmapString' filepath='Objects/unicodeobject.c' line='8921' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsCharmapString'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='8921' column='1'/>
+      <parameter type-id='type-id-100' name='mapping' filepath='Objects/unicodeobject.c' line='8922' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeCharmap' mangled-name='PyUnicode_EncodeCharmap' filepath='Objects/unicodeobject.c' line='8906' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeCharmap'>
+      <parameter type-id='type-id-455' name='p' filepath='Objects/unicodeobject.c' line='9346' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='9347' column='1'/>
+      <parameter type-id='type-id-100' name='mapping' filepath='Objects/unicodeobject.c' line='9348' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9349' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EncodeCharmap' mangled-name='_PyUnicode_EncodeCharmap' filepath='Objects/unicodeobject.c' line='8834' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeCharmap'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='8834' column='1'/>
+      <parameter type-id='type-id-100' name='mapping' filepath='Objects/unicodeobject.c' line='8835' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='8836' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_BuildEncodingMap' mangled-name='PyUnicode_BuildEncodingMap' filepath='Objects/unicodeobject.c' line='8423' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_BuildEncodingMap'>
+      <parameter type-id='type-id-100' name='string' filepath='Objects/unicodeobject.c' line='8423' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeCharmap' mangled-name='PyUnicode_DecodeCharmap' filepath='Objects/unicodeobject.c' line='8322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeCharmap'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='8322' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='8323' column='1'/>
+      <parameter type-id='type-id-100' name='mapping' filepath='Objects/unicodeobject.c' line='8324' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='8325' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsASCIIString' mangled-name='PyUnicode_AsASCIIString' filepath='Objects/unicodeobject.c' line='7373' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsASCIIString'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeASCII' mangled-name='PyUnicode_EncodeASCII' filepath='Objects/unicodeobject.c' line='7342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeASCII'>
+      <parameter type-id='type-id-455' name='p' filepath='Objects/unicodeobject.c' line='7342' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='7343' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7344' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeASCII' mangled-name='PyUnicode_DecodeASCII' filepath='Objects/unicodeobject.c' line='7243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeASCII'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='7243' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='7244' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7245' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsLatin1String' mangled-name='PyUnicode_AsLatin1String' filepath='Objects/unicodeobject.c' line='7235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsLatin1String'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeLatin1' mangled-name='PyUnicode_EncodeLatin1' filepath='Objects/unicodeobject.c' line='7202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeLatin1'>
+      <parameter type-id='type-id-455' name='p' filepath='Objects/unicodeobject.c' line='7342' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='7343' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7344' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeLatin1' mangled-name='PyUnicode_DecodeLatin1' filepath='Objects/unicodeobject.c' line='6919' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeLatin1'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6919' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6920' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6921' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeRawUnicodeEscape' mangled-name='PyUnicode_EncodeRawUnicodeEscape' filepath='Objects/unicodeobject.c' line='6904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeRawUnicodeEscape'>
+      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='6904' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6905' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsRawUnicodeEscapeString' mangled-name='PyUnicode_AsRawUnicodeEscapeString' filepath='Objects/unicodeobject.c' line='6825' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsRawUnicodeEscapeString'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='6825' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeRawUnicodeEscape' mangled-name='PyUnicode_DecodeRawUnicodeEscape' filepath='Objects/unicodeobject.c' line='6816' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeRawUnicodeEscape'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6919' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6920' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6921' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_DecodeRawUnicodeEscapeStateful' mangled-name='_PyUnicode_DecodeRawUnicodeEscapeStateful' filepath='Objects/unicodeobject.c' line='6680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_DecodeRawUnicodeEscapeStateful'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6680' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6681' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6682' column='1'/>
+      <parameter type-id='type-id-158' name='consumed' filepath='Objects/unicodeobject.c' line='6683' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeUnicodeEscape' mangled-name='PyUnicode_EncodeUnicodeEscape' filepath='Objects/unicodeobject.c' line='6663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUnicodeEscape'>
+      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='6904' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6905' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsUnicodeEscapeString' mangled-name='PyUnicode_AsUnicodeEscapeString' filepath='Objects/unicodeobject.c' line='6545' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUnicodeEscapeString'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='6825' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUnicodeEscape' mangled-name='PyUnicode_DecodeUnicodeEscape' filepath='Objects/unicodeobject.c' line='6535' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUnicodeEscape'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6919' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6920' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6921' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_DecodeUnicodeEscapeStateful' mangled-name='_PyUnicode_DecodeUnicodeEscapeStateful' filepath='Objects/unicodeobject.c' line='6512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_DecodeUnicodeEscapeStateful'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6512' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6513' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6514' column='1'/>
+      <parameter type-id='type-id-158' name='consumed' filepath='Objects/unicodeobject.c' line='6515' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_DecodeUnicodeEscapeInternal' mangled-name='_PyUnicode_DecodeUnicodeEscapeInternal' filepath='Objects/unicodeobject.c' line='6274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_DecodeUnicodeEscapeInternal'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6274' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6275' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6276' column='1'/>
+      <parameter type-id='type-id-158' name='consumed' filepath='Objects/unicodeobject.c' line='6277' column='1'/>
+      <parameter type-id='type-id-284' name='first_invalid_escape' filepath='Objects/unicodeobject.c' line='6278' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsUTF16String' mangled-name='PyUnicode_AsUTF16String' filepath='Objects/unicodeobject.c' line='6264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF16String'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeUTF16' mangled-name='PyUnicode_EncodeUTF16' filepath='Objects/unicodeobject.c' line='6249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUTF16'>
+      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='6249' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6250' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6251' column='1'/>
+      <parameter type-id='type-id-8' name='byteorder' filepath='Objects/unicodeobject.c' line='6252' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EncodeUTF16' mangled-name='_PyUnicode_EncodeUTF16' filepath='Objects/unicodeobject.c' line='6083' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeUTF16'>
+      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='6083' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6084' column='1'/>
+      <parameter type-id='type-id-8' name='byteorder' filepath='Objects/unicodeobject.c' line='6085' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUTF16Stateful' mangled-name='PyUnicode_DecodeUTF16Stateful' filepath='Objects/unicodeobject.c' line='5928' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF16Stateful'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='5928' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='5929' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5930' column='1'/>
+      <parameter type-id='type-id-227' name='byteorder' filepath='Objects/unicodeobject.c' line='5931' column='1'/>
+      <parameter type-id='type-id-158' name='consumed' filepath='Objects/unicodeobject.c' line='5932' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUTF16' mangled-name='PyUnicode_DecodeUTF16' filepath='Objects/unicodeobject.c' line='5919' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF16'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='5919' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='5920' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5921' column='1'/>
+      <parameter type-id='type-id-227' name='byteorder' filepath='Objects/unicodeobject.c' line='5922' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsUTF32String' mangled-name='PyUnicode_AsUTF32String' filepath='Objects/unicodeobject.c' line='5911' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF32String'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeUTF32' mangled-name='PyUnicode_EncodeUTF32' filepath='Objects/unicodeobject.c' line='5896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUTF32'>
+      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='6249' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6250' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6251' column='1'/>
+      <parameter type-id='type-id-8' name='byteorder' filepath='Objects/unicodeobject.c' line='6252' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EncodeUTF32' mangled-name='_PyUnicode_EncodeUTF32' filepath='Objects/unicodeobject.c' line='5749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeUTF32'>
+      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='5749' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5750' column='1'/>
+      <parameter type-id='type-id-8' name='byteorder' filepath='Objects/unicodeobject.c' line='5751' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUTF32Stateful' mangled-name='PyUnicode_DecodeUTF32Stateful' filepath='Objects/unicodeobject.c' line='5604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF32Stateful'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='5604' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='5605' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5606' column='1'/>
+      <parameter type-id='type-id-227' name='byteorder' filepath='Objects/unicodeobject.c' line='5607' column='1'/>
+      <parameter type-id='type-id-158' name='consumed' filepath='Objects/unicodeobject.c' line='5608' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUTF32' mangled-name='PyUnicode_DecodeUTF32' filepath='Objects/unicodeobject.c' line='5595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF32'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='5919' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='5920' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5921' column='1'/>
+      <parameter type-id='type-id-227' name='byteorder' filepath='Objects/unicodeobject.c' line='5922' column='1'/>
       <return type-id='type-id-100'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-348'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-346'/>
-      <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-382'>
-      <parameter type-id='type-id-3'/>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-32'/>
-      <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-389'>
-      <parameter type-id='type-id-32'/>
-      <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-350'>
-      <return type-id='type-id-4'/>
-    </function-type>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/capsule.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyCapsule_Type' type-id='type-id-182' mangled-name='PyCapsule_Type' visibility='default' filepath='./Include/pycapsule.h' line='21' column='1' elf-symbol-id='PyCapsule_Type'/>
-    <function-decl name='PyCapsule_Import' mangled-name='PyCapsule_Import' filepath='Objects/capsule.c' line='195' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_Import'>
-      <parameter type-id='type-id-3' name='name' filepath='Objects/capsule.c' line='195' column='1'/>
-      <parameter type-id='type-id-8' name='no_block' filepath='Objects/capsule.c' line='195' column='1'/>
-      <return type-id='type-id-32'/>
     </function-decl>
-    <function-decl name='PyCapsule_SetContext' mangled-name='PyCapsule_SetContext' filepath='Objects/capsule.c' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_SetContext'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-32' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyUnicode_AsUTF8String' mangled-name='PyUnicode_AsUTF8String' filepath='Objects/unicodeobject.c' line='5587' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF8String'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <typedef-decl name='PyCapsule_Destructor' type-id='type-id-112' filepath='./Include/pycapsule.h' line='23' column='1' id='type-id-432'/>
-    <function-decl name='PyCapsule_SetDestructor' mangled-name='PyCapsule_SetDestructor' filepath='Objects/capsule.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_SetDestructor'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='167' column='1'/>
-      <parameter type-id='type-id-432' name='destructor' filepath='Objects/capsule.c' line='167' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyUnicode_EncodeUTF8' mangled-name='PyUnicode_EncodeUTF8' filepath='Objects/unicodeobject.c' line='5572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUTF8'>
+      <parameter type-id='type-id-455' name='p' filepath='Objects/unicodeobject.c' line='7342' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='7343' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7344' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyCapsule_SetName' mangled-name='PyCapsule_SetName' filepath='Objects/capsule.c' line='153' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_SetName'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2246' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2246' column='1'/>
+    <function-decl name='_PyUnicode_AsUTF8String' mangled-name='_PyUnicode_AsUTF8String' filepath='Objects/unicodeobject.c' line='5565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsUTF8String'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='5565' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5565' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-191' size-in-bits='64' id='type-id-540'/>
+    <function-decl name='_Py_EncodeUTF8Ex' mangled-name='_Py_EncodeUTF8Ex' filepath='Objects/unicodeobject.c' line='5335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_EncodeUTF8Ex'>
+      <parameter type-id='type-id-501' name='text' filepath='Objects/unicodeobject.c' line='5335' column='1'/>
+      <parameter type-id='type-id-304' name='str' filepath='Objects/unicodeobject.c' line='5335' column='1'/>
+      <parameter type-id='type-id-540' name='error_pos' filepath='Objects/unicodeobject.c' line='5335' column='1'/>
+      <parameter type-id='type-id-284' name='reason' filepath='Objects/unicodeobject.c' line='5336' column='1'/>
+      <parameter type-id='type-id-8' name='raw_malloc' filepath='Objects/unicodeobject.c' line='5336' column='1'/>
+      <parameter type-id='type-id-400' name='errors' filepath='Objects/unicodeobject.c' line='5336' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_Py_DecodeUTF8_surrogateescape' mangled-name='_Py_DecodeUTF8_surrogateescape' filepath='Objects/unicodeobject.c' line='5305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_DecodeUTF8_surrogateescape'>
+      <parameter type-id='type-id-3' name='arg' filepath='Objects/unicodeobject.c' line='5305' column='1'/>
+      <parameter type-id='type-id-15' name='arglen' filepath='Objects/unicodeobject.c' line='5305' column='1'/>
+      <parameter type-id='type-id-540' name='wlen' filepath='Objects/unicodeobject.c' line='5306' column='1'/>
+      <return type-id='type-id-403'/>
+    </function-decl>
+    <function-decl name='_Py_DecodeUTF8Ex' mangled-name='_Py_DecodeUTF8Ex' filepath='Objects/unicodeobject.c' line='5196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_DecodeUTF8Ex'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='5196' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='5196' column='1'/>
+      <parameter type-id='type-id-407' name='wstr' filepath='Objects/unicodeobject.c' line='5196' column='1'/>
+      <parameter type-id='type-id-540' name='wlen' filepath='Objects/unicodeobject.c' line='5196' column='1'/>
+      <parameter type-id='type-id-284' name='reason' filepath='Objects/unicodeobject.c' line='5197' column='1'/>
+      <parameter type-id='type-id-400' name='errors' filepath='Objects/unicodeobject.c' line='5197' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyCapsule_SetPointer' mangled-name='PyCapsule_SetPointer' filepath='Objects/capsule.c' line='134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_SetPointer'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-32' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
+    <function-decl name='PyUnicode_DecodeUTF8Stateful' mangled-name='PyUnicode_DecodeUTF8Stateful' filepath='Objects/unicodeobject.c' line='5174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF8Stateful'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='5174' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='5175' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5176' column='1'/>
+      <parameter type-id='type-id-158' name='consumed' filepath='Objects/unicodeobject.c' line='5177' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUTF8' mangled-name='PyUnicode_DecodeUTF8' filepath='Objects/unicodeobject.c' line='4930' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF8'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6919' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6920' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6921' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_EncodeUTF7' mangled-name='PyUnicode_EncodeUTF7' filepath='Objects/unicodeobject.c' line='4905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUTF7'>
+      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='4905' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='4906' column='1'/>
+      <parameter type-id='type-id-8' name='base64SetO' filepath='Objects/unicodeobject.c' line='4907' column='1'/>
+      <parameter type-id='type-id-8' name='base64WhiteSpace' filepath='Objects/unicodeobject.c' line='4908' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='4909' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EncodeUTF7' mangled-name='_PyUnicode_EncodeUTF7' filepath='Objects/unicodeobject.c' line='4804' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeUTF7'>
+      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='4804' column='1'/>
+      <parameter type-id='type-id-8' name='base64SetO' filepath='Objects/unicodeobject.c' line='4805' column='1'/>
+      <parameter type-id='type-id-8' name='base64WhiteSpace' filepath='Objects/unicodeobject.c' line='4806' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='4807' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUTF7Stateful' mangled-name='PyUnicode_DecodeUTF7Stateful' filepath='Objects/unicodeobject.c' line='4606' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF7Stateful'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='4606' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='4607' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='4608' column='1'/>
+      <parameter type-id='type-id-158' name='consumed' filepath='Objects/unicodeobject.c' line='4609' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUTF7' mangled-name='PyUnicode_DecodeUTF7' filepath='Objects/unicodeobject.c' line='4591' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF7'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6919' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6920' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6921' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_GetDefaultEncoding' mangled-name='PyUnicode_GetDefaultEncoding' filepath='Objects/unicodeobject.c' line='4248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_GetDefaultEncoding'>
+      <return type-id='type-id-3'/>
+    </function-decl>
+    <function-decl name='PyUnicode_WriteChar' mangled-name='PyUnicode_WriteChar' filepath='Objects/unicodeobject.c' line='4225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_WriteChar'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4225' column='1'/>
+      <parameter type-id='type-id-15' name='index' filepath='Objects/unicodeobject.c' line='4225' column='1'/>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodeobject.c' line='4225' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyCapsule_GetContext' mangled-name='PyCapsule_GetContext' filepath='Objects/capsule.c' line='122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_GetContext'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='122' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='PyUnicode_ReadChar' mangled-name='PyUnicode_ReadChar' filepath='Objects/unicodeobject.c' line='4203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_ReadChar'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4203' column='1'/>
+      <parameter type-id='type-id-15' name='index' filepath='Objects/unicodeobject.c' line='4203' column='1'/>
+      <return type-id='type-id-474'/>
     </function-decl>
-    <function-decl name='PyCapsule_GetDestructor' mangled-name='PyCapsule_GetDestructor' filepath='Objects/capsule.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_GetDestructor'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='110' column='1'/>
-      <return type-id='type-id-432'/>
+    <function-decl name='PyUnicode_GetLength' mangled-name='PyUnicode_GetLength' filepath='Objects/unicodeobject.c' line='4191' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_GetLength'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4191' column='1'/>
+      <return type-id='type-id-15'/>
     </function-decl>
-    <function-decl name='PyCapsule_GetName' mangled-name='PyCapsule_GetName' filepath='Objects/capsule.c' line='98' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_GetName'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='98' column='1'/>
+    <function-decl name='PyUnicode_GetSize' mangled-name='PyUnicode_GetSize' filepath='Objects/unicodeobject.c' line='4172' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_GetSize'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4172' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_AsUnicode' mangled-name='_PyUnicode_AsUnicode' filepath='Objects/unicodeobject.c' line='4157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsUnicode'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4157' column='1'/>
+      <return type-id='type-id-455'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsUnicode' mangled-name='PyUnicode_AsUnicode' filepath='Objects/unicodeobject.c' line='4151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUnicode'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4151' column='1'/>
+      <return type-id='type-id-470'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsUnicodeAndSize' mangled-name='PyUnicode_AsUnicodeAndSize' filepath='Objects/unicodeobject.c' line='4112' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUnicodeAndSize'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4112' column='1'/>
+      <parameter type-id='type-id-158' name='size' filepath='Objects/unicodeobject.c' line='4112' column='1'/>
+      <return type-id='type-id-470'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsUTF8' mangled-name='PyUnicode_AsUTF8' filepath='Objects/unicodeobject.c' line='4106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF8'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4106' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='PyCapsule_GetPointer' mangled-name='PyCapsule_GetPointer' filepath='Objects/capsule.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_GetPointer'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='80' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Objects/capsule.c' line='80' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='PyUnicode_AsUTF8AndSize' mangled-name='PyUnicode_AsUTF8AndSize' filepath='Objects/unicodeobject.c' line='4085' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF8AndSize'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4085' column='1'/>
+      <parameter type-id='type-id-158' name='psize' filepath='Objects/unicodeobject.c' line='4085' column='1'/>
+      <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='PyCapsule_IsValid' mangled-name='PyCapsule_IsValid' filepath='Objects/capsule.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_IsValid'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2246' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2246' column='1'/>
+    <function-decl name='PyUnicode_FSDecoder' mangled-name='PyUnicode_FSDecoder' filepath='Objects/unicodeobject.c' line='4012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FSDecoder'>
+      <parameter type-id='type-id-100' name='arg' filepath='Objects/unicodeobject.c' line='4012' column='1'/>
+      <parameter type-id='type-id-32' name='addr' filepath='Objects/unicodeobject.c' line='4012' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyCapsule_New' mangled-name='PyCapsule_New' filepath='Objects/capsule.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCapsule_New'>
-      <parameter type-id='type-id-32' name='pointer' filepath='Objects/capsule.c' line='44' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Objects/capsule.c' line='44' column='1'/>
-      <parameter type-id='type-id-432' name='destructor' filepath='Objects/capsule.c' line='44' column='1'/>
+    <function-decl name='PyUnicode_FSConverter' mangled-name='PyUnicode_FSConverter' filepath='Objects/unicodeobject.c' line='3972' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FSConverter'>
+      <parameter type-id='type-id-100' name='arg' filepath='Objects/unicodeobject.c' line='3972' column='1'/>
+      <parameter type-id='type-id-32' name='addr' filepath='Objects/unicodeobject.c' line='3972' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeFSDefaultAndSize' mangled-name='PyUnicode_DecodeFSDefaultAndSize' filepath='Objects/unicodeobject.c' line='3936' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeFSDefaultAndSize'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='3936' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='3936' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/cellobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyCell_Type' type-id='type-id-182' mangled-name='PyCell_Type' visibility='default' filepath='./Include/cellobject.h' line='14' column='1' elf-symbol-id='PyCell_Type'/>
-    <function-decl name='PyCell_Set' mangled-name='PyCell_Set' filepath='Objects/cellobject.c' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCell_Set'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2629' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2629' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyUnicode_DecodeFSDefault' mangled-name='PyUnicode_DecodeFSDefault' filepath='Objects/unicodeobject.c' line='3930' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeFSDefault'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='3930' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyCell_Get' mangled-name='PyCell_Get' filepath='Objects/cellobject.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCell_Get'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+    <function-decl name='PyUnicode_DecodeLocale' mangled-name='PyUnicode_DecodeLocale' filepath='Objects/unicodeobject.c' line='3921' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeLocale'>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='3921' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3921' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyCell_New' mangled-name='PyCell_New' filepath='Objects/cellobject.c' line='7' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCell_New'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
+    <function-decl name='PyUnicode_DecodeLocaleAndSize' mangled-name='PyUnicode_DecodeLocaleAndSize' filepath='Objects/unicodeobject.c' line='3913' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeLocaleAndSize'>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='3913' column='1'/>
+      <parameter type-id='type-id-15' name='len' filepath='Objects/unicodeobject.c' line='3913' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3914' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/classobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='PyMemberDef' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/structmember.h' line='18' column='1' id='type-id-174'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/structmember.h' line='19' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='type' type-id='type-id-8' visibility='default' filepath='./Include/structmember.h' line='20' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='offset' type-id='type-id-15' visibility='default' filepath='./Include/structmember.h' line='21' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='flags' type-id='type-id-8' visibility='default' filepath='./Include/structmember.h' line='22' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='doc' type-id='type-id-3' visibility='default' filepath='./Include/structmember.h' line='23' column='1'/>
-      </data-member>
-    </class-decl>
-    <var-decl name='PyMethod_Type' type-id='type-id-182' mangled-name='PyMethod_Type' visibility='default' filepath='./Include/classobject.h' line='20' column='1' elf-symbol-id='PyMethod_Type'/>
-    <var-decl name='PyInstanceMethod_Type' type-id='type-id-182' mangled-name='PyInstanceMethod_Type' visibility='default' filepath='./Include/classobject.h' line='41' column='1' elf-symbol-id='PyInstanceMethod_Type'/>
-    <function-decl name='PyInstanceMethod_Function' mangled-name='PyInstanceMethod_Function' filepath='Objects/classobject.c' line='390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInstanceMethod_Function'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+    <function-decl name='PyUnicode_AsEncodedUnicode' mangled-name='PyUnicode_AsEncodedUnicode' filepath='Objects/unicodeobject.c' line='3833' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsEncodedUnicode'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3833' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3834' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3835' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyInstanceMethod_New' mangled-name='PyInstanceMethod_New' filepath='Objects/classobject.c' line='378' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInstanceMethod_New'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
+    <function-decl name='PyUnicode_EncodeFSDefault' mangled-name='PyUnicode_EncodeFSDefault' filepath='Objects/unicodeobject.c' line='3699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeFSDefault'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3699' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyMethod_New' mangled-name='PyMethod_New' filepath='Objects/classobject.c' line='99' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMethod_New'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='445' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='445' column='1'/>
+    <function-decl name='PyUnicode_EncodeLocale' mangled-name='PyUnicode_EncodeLocale' filepath='Objects/unicodeobject.c' line='3692' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeLocale'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3692' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3692' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyMethod_Self' mangled-name='PyMethod_Self' filepath='Objects/classobject.c' line='25' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMethod_Self'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+    <function-decl name='PyUnicode_AsEncodedObject' mangled-name='PyUnicode_AsEncodedObject' filepath='Objects/unicodeobject.c' line='3610' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsEncodedObject'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3610' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3611' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3612' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyMethod_Function' mangled-name='PyMethod_Function' filepath='Objects/classobject.c' line='15' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMethod_Function'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+    <function-decl name='PyUnicode_Encode' mangled-name='PyUnicode_Encode' filepath='Objects/unicodeobject.c' line='3594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Encode'>
+      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='3594' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='3595' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3596' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3597' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/codeobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyCode_Type' type-id='type-id-182' mangled-name='PyCode_Type' visibility='default' filepath='./Include/cpython/code.h' line='111' column='1' elf-symbol-id='PyCode_Type'/>
-    <function-decl name='_PyCode_SetExtra' mangled-name='_PyCode_SetExtra' filepath='Objects/codeobject.c' line='1083' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_SetExtra'>
-      <parameter type-id='type-id-100' name='code' filepath='Objects/codeobject.c' line='1083' column='1'/>
-      <parameter type-id='type-id-15' name='index' filepath='Objects/codeobject.c' line='1083' column='1'/>
-      <parameter type-id='type-id-32' name='extra' filepath='Objects/codeobject.c' line='1083' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyUnicode_AsDecodedUnicode' mangled-name='PyUnicode_AsDecodedUnicode' filepath='Objects/unicodeobject.c' line='3555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsDecodedUnicode'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3555' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3556' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3557' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyCode_GetExtra' mangled-name='_PyCode_GetExtra' filepath='Objects/codeobject.c' line='1062' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_GetExtra'>
-      <parameter type-id='type-id-100' name='code' filepath='Objects/codeobject.c' line='1062' column='1'/>
-      <parameter type-id='type-id-15' name='index' filepath='Objects/codeobject.c' line='1062' column='1'/>
-      <parameter type-id='type-id-285' name='extra' filepath='Objects/codeobject.c' line='1062' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyUnicode_AsDecodedObject' mangled-name='PyUnicode_AsDecodedObject' filepath='Objects/unicodeobject.c' line='3533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsDecodedObject'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3533' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3534' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3535' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <class-decl name='_PyOpcache' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_code.h' line='13' column='1' id='type-id-419'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='u' type-id='type-id-433' visibility='default' filepath='./Include/internal/pycore_code.h' line='16' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='optimized' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_code.h' line='17' column='1'/>
-      </data-member>
-    </class-decl>
-    <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_code.h' line='14' column='1' id='type-id-433'>
-      <data-member access='private'>
-        <var-decl name='lg' type-id='type-id-434' visibility='default' filepath='./Include/internal/pycore_code.h' line='15' column='1'/>
-      </data-member>
-    </union-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-434' visibility='default' filepath='./Include/internal/pycore_code.h' line='7' column='1' id='type-id-435'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ptr' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_code.h' line='8' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='globals_ver' type-id='type-id-238' visibility='default' filepath='./Include/internal/pycore_code.h' line='9' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='builtins_ver' type-id='type-id-238' visibility='default' filepath='./Include/internal/pycore_code.h' line='10' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='_PyOpcache_LoadGlobal' type-id='type-id-435' filepath='./Include/internal/pycore_code.h' line='11' column='1' id='type-id-434'/>
-    <class-decl name='_addr_pair' size-in-bits='64' is-struct='yes' visibility='default' filepath='./Include/cpython/code.h' line='138' column='1' id='type-id-436'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ap_lower' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='139' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='ap_upper' type-id='type-id-8' visibility='default' filepath='./Include/cpython/code.h' line='140' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='PyAddrPair' type-id='type-id-436' filepath='./Include/cpython/code.h' line='141' column='1' id='type-id-437'/>
-    <pointer-type-def type-id='type-id-437' size-in-bits='64' id='type-id-438'/>
-    <function-decl name='_PyCode_CheckLineNumber' mangled-name='_PyCode_CheckLineNumber' filepath='Objects/codeobject.c' line='1010' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_CheckLineNumber'>
-      <parameter type-id='type-id-412' name='co' filepath='Objects/codeobject.c' line='1010' column='1'/>
-      <parameter type-id='type-id-8' name='lasti' filepath='Objects/codeobject.c' line='1010' column='1'/>
-      <parameter type-id='type-id-438' name='bounds' filepath='Objects/codeobject.c' line='1010' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyUnicode_FromEncodedObject' mangled-name='PyUnicode_FromEncodedObject' filepath='Objects/unicodeobject.c' line='3341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromEncodedObject'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/unicodeobject.c' line='3341' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3342' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3343' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyCode_Addr2Line' mangled-name='PyCode_Addr2Line' filepath='Objects/codeobject.c' line='991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_Addr2Line'>
-      <parameter type-id='type-id-412' name='co' filepath='Objects/codeobject.c' line='991' column='1'/>
-      <parameter type-id='type-id-8' name='addrq' filepath='Objects/codeobject.c' line='991' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyUnicode_AsWideCharString' mangled-name='PyUnicode_AsWideCharString' filepath='Objects/unicodeobject.c' line='3259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsWideCharString'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3259' column='1'/>
+      <parameter type-id='type-id-158' name='size' filepath='Objects/unicodeobject.c' line='3260' column='1'/>
+      <return type-id='type-id-403'/>
     </function-decl>
-    <function-decl name='_PyCode_ConstantKey' mangled-name='_PyCode_ConstantKey' filepath='Objects/codeobject.c' line='707' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCode_ConstantKey'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/codeobject.c' line='707' column='1'/>
+    <function-decl name='PyUnicode_AsWideChar' mangled-name='PyUnicode_AsWideChar' filepath='Objects/unicodeobject.c' line='3217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsWideChar'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3217' column='1'/>
+      <parameter type-id='type-id-403' name='w' filepath='Objects/unicodeobject.c' line='3218' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='3219' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromFormat' mangled-name='PyUnicode_FromFormat' filepath='Objects/unicodeobject.c' line='3114' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromFormat'>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/bytesobject.c' line='357' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyCode_NewEmpty' mangled-name='PyCode_NewEmpty' filepath='Objects/codeobject.c' line='332' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_NewEmpty'>
-      <parameter type-id='type-id-3' name='filename' filepath='Objects/codeobject.c' line='332' column='1'/>
-      <parameter type-id='type-id-3' name='funcname' filepath='Objects/codeobject.c' line='332' column='1'/>
-      <parameter type-id='type-id-8' name='firstlineno' filepath='Objects/codeobject.c' line='332' column='1'/>
-      <return type-id='type-id-412'/>
+    <function-decl name='PyUnicode_FromFormatV' mangled-name='PyUnicode_FromFormatV' filepath='Objects/unicodeobject.c' line='3057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromFormatV'>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/unicodeobject.c' line='3057' column='1'/>
+      <parameter type-id='type-id-306' name='vargs' filepath='Objects/unicodeobject.c' line='3057' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyCode_New' mangled-name='PyCode_New' filepath='Objects/codeobject.c' line='275' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_New'>
-      <parameter type-id='type-id-8' name='argcount' filepath='Objects/codeobject.c' line='275' column='1'/>
-      <parameter type-id='type-id-8' name='kwonlyargcount' filepath='Objects/codeobject.c' line='275' column='1'/>
-      <parameter type-id='type-id-8' name='nlocals' filepath='Objects/codeobject.c' line='276' column='1'/>
-      <parameter type-id='type-id-8' name='stacksize' filepath='Objects/codeobject.c' line='276' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Objects/codeobject.c' line='276' column='1'/>
-      <parameter type-id='type-id-100' name='code' filepath='Objects/codeobject.c' line='277' column='1'/>
-      <parameter type-id='type-id-100' name='consts' filepath='Objects/codeobject.c' line='277' column='1'/>
-      <parameter type-id='type-id-100' name='names' filepath='Objects/codeobject.c' line='277' column='1'/>
-      <parameter type-id='type-id-100' name='varnames' filepath='Objects/codeobject.c' line='278' column='1'/>
-      <parameter type-id='type-id-100' name='freevars' filepath='Objects/codeobject.c' line='278' column='1'/>
-      <parameter type-id='type-id-100' name='cellvars' filepath='Objects/codeobject.c' line='278' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Objects/codeobject.c' line='279' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/codeobject.c' line='279' column='1'/>
-      <parameter type-id='type-id-8' name='firstlineno' filepath='Objects/codeobject.c' line='279' column='1'/>
-      <parameter type-id='type-id-100' name='lnotab' filepath='Objects/codeobject.c' line='280' column='1'/>
-      <return type-id='type-id-412'/>
+    <function-decl name='PyUnicode_AsUCS4Copy' mangled-name='PyUnicode_AsUCS4Copy' filepath='Objects/unicodeobject.c' line='2681' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUCS4Copy'>
+      <parameter type-id='type-id-100' name='string' filepath='Objects/unicodeobject.c' line='2681' column='1'/>
+      <return type-id='type-id-539'/>
     </function-decl>
-    <function-decl name='PyCode_NewWithPosOnlyArgs' mangled-name='PyCode_NewWithPosOnlyArgs' filepath='Objects/codeobject.c' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_NewWithPosOnlyArgs'>
-      <parameter type-id='type-id-8' name='argcount' filepath='Objects/codeobject.c' line='117' column='1'/>
-      <parameter type-id='type-id-8' name='posonlyargcount' filepath='Objects/codeobject.c' line='117' column='1'/>
-      <parameter type-id='type-id-8' name='kwonlyargcount' filepath='Objects/codeobject.c' line='117' column='1'/>
-      <parameter type-id='type-id-8' name='nlocals' filepath='Objects/codeobject.c' line='118' column='1'/>
-      <parameter type-id='type-id-8' name='stacksize' filepath='Objects/codeobject.c' line='118' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Objects/codeobject.c' line='118' column='1'/>
-      <parameter type-id='type-id-100' name='code' filepath='Objects/codeobject.c' line='119' column='1'/>
-      <parameter type-id='type-id-100' name='consts' filepath='Objects/codeobject.c' line='119' column='1'/>
-      <parameter type-id='type-id-100' name='names' filepath='Objects/codeobject.c' line='119' column='1'/>
-      <parameter type-id='type-id-100' name='varnames' filepath='Objects/codeobject.c' line='120' column='1'/>
-      <parameter type-id='type-id-100' name='freevars' filepath='Objects/codeobject.c' line='120' column='1'/>
-      <parameter type-id='type-id-100' name='cellvars' filepath='Objects/codeobject.c' line='120' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Objects/codeobject.c' line='121' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/codeobject.c' line='121' column='1'/>
-      <parameter type-id='type-id-8' name='firstlineno' filepath='Objects/codeobject.c' line='121' column='1'/>
-      <parameter type-id='type-id-100' name='lnotab' filepath='Objects/codeobject.c' line='122' column='1'/>
-      <return type-id='type-id-412'/>
+    <function-decl name='PyUnicode_AsUCS4' mangled-name='PyUnicode_AsUCS4' filepath='Objects/unicodeobject.c' line='2670' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUCS4'>
+      <parameter type-id='type-id-100' name='string' filepath='Objects/unicodeobject.c' line='2670' column='1'/>
+      <parameter type-id='type-id-539' name='target' filepath='Objects/unicodeobject.c' line='2670' column='1'/>
+      <parameter type-id='type-id-15' name='targetsize' filepath='Objects/unicodeobject.c' line='2670' column='1'/>
+      <parameter type-id='type-id-8' name='copy_null' filepath='Objects/unicodeobject.c' line='2671' column='1'/>
+      <return type-id='type-id-539'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/complexobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyComplex_Type' type-id='type-id-182' mangled-name='PyComplex_Type' visibility='default' filepath='./Include/complexobject.h' line='39' column='1' elf-symbol-id='PyComplex_Type'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-439' visibility='default' filepath='./Include/complexobject.h' line='10' column='1' id='type-id-440'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='real' type-id='type-id-441' visibility='default' filepath='./Include/complexobject.h' line='11' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='imag' type-id='type-id-441' visibility='default' filepath='./Include/complexobject.h' line='12' column='1'/>
-      </data-member>
-    </class-decl>
-    <type-decl name='double' size-in-bits='64' id='type-id-441'/>
-    <typedef-decl name='Py_complex' type-id='type-id-440' filepath='./Include/complexobject.h' line='13' column='1' id='type-id-439'/>
-    <function-decl name='PyComplex_AsCComplex' mangled-name='PyComplex_AsCComplex' filepath='Objects/complexobject.c' line='318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_AsCComplex'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/complexobject.c' line='318' column='1'/>
-      <return type-id='type-id-439'/>
+    <function-decl name='_PyUnicode_Copy' mangled-name='_PyUnicode_Copy' filepath='Objects/unicodeobject.c' line='2547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_Copy'>
+      <parameter type-id='type-id-100' name='x' filepath='Objects/bytesobject.c' line='2805' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyComplex_ImagAsDouble' mangled-name='PyComplex_ImagAsDouble' filepath='Objects/complexobject.c' line='273' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_ImagAsDouble'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/complexobject.c' line='273' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='_PyUnicode_FindMaxChar' mangled-name='_PyUnicode_FindMaxChar' filepath='Objects/unicodeobject.c' line='2464' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FindMaxChar'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='2464' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='2464' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='2464' column='1'/>
+      <return type-id='type-id-474'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_FromId' mangled-name='_PyUnicode_FromId' filepath='Objects/unicodeobject.c' line='2303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FromId'>
+      <parameter type-id='type-id-476' name='id' filepath='Objects/unicodeobject.c' line='2303' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromString' mangled-name='PyUnicode_FromString' filepath='Objects/unicodeobject.c' line='2292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromString'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='3930' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromStringAndSize' mangled-name='PyUnicode_FromStringAndSize' filepath='Objects/unicodeobject.c' line='2278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromStringAndSize'>
+      <parameter type-id='type-id-3' name='u' filepath='Objects/unicodeobject.c' line='2278' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='2278' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromWideChar' mangled-name='PyUnicode_FromWideChar' filepath='Objects/unicodeobject.c' line='2196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromWideChar'>
+      <parameter type-id='type-id-501' name='u' filepath='Objects/unicodeobject.c' line='2196' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='2196' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_FromUnicode' mangled-name='PyUnicode_FromUnicode' filepath='Objects/unicodeobject.c' line='2182' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromUnicode'>
+      <parameter type-id='type-id-455' name='u' filepath='Objects/unicodeobject.c' line='2182' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='2182' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_Ready' mangled-name='_PyUnicode_Ready' filepath='Objects/unicodeobject.c' line='1807' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_Ready'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='1807' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicode_CopyCharacters' mangled-name='PyUnicode_CopyCharacters' filepath='Objects/unicodeobject.c' line='1706' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_CopyCharacters'>
+      <parameter type-id='type-id-100' name='to' filepath='Objects/unicodeobject.c' line='1706' column='1'/>
+      <parameter type-id='type-id-15' name='to_start' filepath='Objects/unicodeobject.c' line='1706' column='1'/>
+      <parameter type-id='type-id-100' name='from' filepath='Objects/unicodeobject.c' line='1707' column='1'/>
+      <parameter type-id='type-id-15' name='from_start' filepath='Objects/unicodeobject.c' line='1707' column='1'/>
+      <parameter type-id='type-id-15' name='how_many' filepath='Objects/unicodeobject.c' line='1708' column='1'/>
+      <return type-id='type-id-15'/>
     </function-decl>
-    <function-decl name='PyComplex_RealAsDouble' mangled-name='PyComplex_RealAsDouble' filepath='Objects/complexobject.c' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_RealAsDouble'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/complexobject.c' line='273' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='_PyUnicode_FastCopyCharacters' mangled-name='_PyUnicode_FastCopyCharacters' filepath='Objects/unicodeobject.c' line='1698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FastCopyCharacters'>
+      <parameter type-id='type-id-100' name='to' filepath='Objects/unicodeobject.c' line='1699' column='1'/>
+      <parameter type-id='type-id-15' name='to_start' filepath='Objects/unicodeobject.c' line='1699' column='1'/>
+      <parameter type-id='type-id-100' name='from' filepath='Objects/unicodeobject.c' line='1700' column='1'/>
+      <parameter type-id='type-id-15' name='from_start' filepath='Objects/unicodeobject.c' line='1700' column='1'/>
+      <parameter type-id='type-id-15' name='how_many' filepath='Objects/unicodeobject.c' line='1700' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyComplex_FromDoubles' mangled-name='PyComplex_FromDoubles' filepath='Objects/complexobject.c' line='253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_FromDoubles'>
-      <parameter type-id='type-id-441' name='real' filepath='Objects/complexobject.c' line='253' column='1'/>
-      <parameter type-id='type-id-441' name='imag' filepath='Objects/complexobject.c' line='253' column='1'/>
+    <function-decl name='PyUnicode_New' mangled-name='PyUnicode_New' filepath='Objects/unicodeobject.c' line='1391' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_New'>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='1391' column='1'/>
+      <parameter type-id='type-id-474' name='maxchar' filepath='Objects/unicodeobject.c' line='1391' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyComplex_FromCComplex' mangled-name='PyComplex_FromCComplex' filepath='Objects/complexobject.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyComplex_FromCComplex'>
-      <parameter type-id='type-id-439' name='cval' filepath='Objects/complexobject.c' line='230' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyUnicode_CheckConsistency' mangled-name='_PyUnicode_CheckConsistency' filepath='Objects/unicodeobject.c' line='516' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_CheckConsistency'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/unicodeobject.c' line='516' column='1'/>
+      <parameter type-id='type-id-8' name='check_content' filepath='Objects/unicodeobject.c' line='516' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_c_abs' mangled-name='_Py_c_abs' filepath='Objects/complexobject.c' line='187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_abs'>
-      <parameter type-id='type-id-439' name='z' filepath='Objects/complexobject.c' line='187' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='PyUnicode_GetMax' mangled-name='PyUnicode_GetMax' filepath='Objects/unicodeobject.c' line='504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_GetMax'>
+      <return type-id='type-id-453'/>
     </function-decl>
-    <function-decl name='_Py_c_pow' mangled-name='_Py_c_pow' filepath='Objects/complexobject.c' line='124' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_pow'>
-      <parameter type-id='type-id-439' name='a' filepath='Objects/complexobject.c' line='124' column='1'/>
-      <parameter type-id='type-id-439' name='b' filepath='Objects/complexobject.c' line='124' column='1'/>
-      <return type-id='type-id-439'/>
+    <function-decl name='_Py_GetErrorHandler' mangled-name='_Py_GetErrorHandler' filepath='Objects/unicodeobject.c' line='398' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetErrorHandler'>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='398' column='1'/>
+      <return type-id='type-id-400'/>
     </function-decl>
-    <function-decl name='_Py_c_quot' mangled-name='_Py_c_quot' filepath='Objects/complexobject.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_quot'>
-      <parameter type-id='type-id-439' name='a' filepath='Objects/complexobject.c' line='63' column='1'/>
-      <parameter type-id='type-id-439' name='b' filepath='Objects/complexobject.c' line='63' column='1'/>
-      <return type-id='type-id-439'/>
+    <function-decl name='PyUnicode_RichCompare' mangled-name='PyUnicode_RichCompare' filepath='Objects/unicodeobject.c' line='11461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RichCompare'>
+      <parameter type-id='type-id-100' name='left' filepath='Objects/unicodeobject.c' line='11461' column='1'/>
+      <parameter type-id='type-id-100' name='right' filepath='Objects/unicodeobject.c' line='11461' column='1'/>
+      <parameter type-id='type-id-8' name='op' filepath='Objects/unicodeobject.c' line='11461' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_Py_c_prod' mangled-name='_Py_c_prod' filepath='Objects/complexobject.c' line='50' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_prod'>
-      <parameter type-id='type-id-439' name='a' filepath='Objects/complexobject.c' line='50' column='1'/>
-      <parameter type-id='type-id-439' name='b' filepath='Objects/complexobject.c' line='50' column='1'/>
-      <return type-id='type-id-439'/>
+    <function-decl name='PyUnicode_Contains' mangled-name='PyUnicode_Contains' filepath='Objects/unicodeobject.c' line='11506' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Contains'>
+      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='11506' column='1'/>
+      <parameter type-id='type-id-100' name='substr' filepath='Objects/unicodeobject.c' line='11506' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_c_neg' mangled-name='_Py_c_neg' filepath='Objects/complexobject.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_neg'>
-      <parameter type-id='type-id-439' name='a' filepath='Objects/complexobject.c' line='41' column='1'/>
-      <return type-id='type-id-439'/>
+    <function-decl name='PyUnicode_Resize' mangled-name='PyUnicode_Resize' filepath='Objects/unicodeobject.c' line='2060' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Resize'>
+      <parameter type-id='type-id-303' name='p_unicode' filepath='Objects/unicodeobject.c' line='2060' column='1'/>
+      <parameter type-id='type-id-15' name='length' filepath='Objects/unicodeobject.c' line='2060' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_c_diff' mangled-name='_Py_c_diff' filepath='Objects/complexobject.c' line='32' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_diff'>
-      <parameter type-id='type-id-439' name='a' filepath='Objects/complexobject.c' line='50' column='1'/>
-      <parameter type-id='type-id-439' name='b' filepath='Objects/complexobject.c' line='50' column='1'/>
-      <return type-id='type-id-439'/>
+    <function-decl name='_PyUnicode_FromASCII' mangled-name='_PyUnicode_FromASCII' filepath='Objects/unicodeobject.c' line='2335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FromASCII'>
+      <parameter type-id='type-id-3' name='buffer' filepath='Objects/unicodeobject.c' line='2335' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='2335' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_Py_c_sum' mangled-name='_Py_c_sum' filepath='Objects/complexobject.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_c_sum'>
-      <parameter type-id='type-id-439' name='a' filepath='Objects/complexobject.c' line='50' column='1'/>
-      <parameter type-id='type-id-439' name='b' filepath='Objects/complexobject.c' line='50' column='1'/>
-      <return type-id='type-id-439'/>
+    <function-decl name='PyUnicode_FromKindAndData' mangled-name='PyUnicode_FromKindAndData' filepath='Objects/unicodeobject.c' line='2444' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromKindAndData'>
+      <parameter type-id='type-id-8' name='kind' filepath='Objects/unicodeobject.c' line='2444' column='1'/>
+      <parameter type-id='type-id-32' name='buffer' filepath='Objects/unicodeobject.c' line='2444' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='2444' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/descrobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyMethodDescr_Type' type-id='type-id-182' mangled-name='PyMethodDescr_Type' visibility='default' filepath='./Include/descrobject.h' line='79' column='1' elf-symbol-id='PyMethodDescr_Type'/>
-    <var-decl name='PyClassMethodDescr_Type' type-id='type-id-182' mangled-name='PyClassMethodDescr_Type' visibility='default' filepath='./Include/descrobject.h' line='76' column='1' elf-symbol-id='PyClassMethodDescr_Type'/>
-    <var-decl name='PyMemberDescr_Type' type-id='type-id-182' mangled-name='PyMemberDescr_Type' visibility='default' filepath='./Include/descrobject.h' line='78' column='1' elf-symbol-id='PyMemberDescr_Type'/>
-    <var-decl name='PyGetSetDescr_Type' type-id='type-id-182' mangled-name='PyGetSetDescr_Type' visibility='default' filepath='./Include/descrobject.h' line='77' column='1' elf-symbol-id='PyGetSetDescr_Type'/>
-    <var-decl name='PyWrapperDescr_Type' type-id='type-id-182' mangled-name='PyWrapperDescr_Type' visibility='default' filepath='./Include/descrobject.h' line='80' column='1' elf-symbol-id='PyWrapperDescr_Type'/>
-    <var-decl name='_PyMethodWrapper_Type' type-id='type-id-182' mangled-name='_PyMethodWrapper_Type' visibility='default' filepath='./Include/descrobject.h' line='83' column='1' elf-symbol-id='_PyMethodWrapper_Type'/>
-    <var-decl name='PyDictProxy_Type' type-id='type-id-182' mangled-name='PyDictProxy_Type' visibility='default' filepath='./Include/descrobject.h' line='81' column='1' elf-symbol-id='PyDictProxy_Type'/>
-    <var-decl name='PyProperty_Type' type-id='type-id-182' mangled-name='PyProperty_Type' visibility='default' filepath='./Include/descrobject.h' line='103' column='1' elf-symbol-id='PyProperty_Type'/>
-    <function-decl name='PyWrapper_New' mangled-name='PyWrapper_New' filepath='Objects/descrobject.c' line='1433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWrapper_New'>
-      <parameter type-id='type-id-100' name='d' filepath='Objects/descrobject.c' line='1433' column='1'/>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/descrobject.c' line='1433' column='1'/>
+    <function-decl name='PyUnicode_FromOrdinal' mangled-name='PyUnicode_FromOrdinal' filepath='Objects/unicodeobject.c' line='3307' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromOrdinal'>
+      <parameter type-id='type-id-8' name='ordinal' filepath='Objects/unicodeobject.c' line='3307' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyDictProxy_New' mangled-name='PyDictProxy_New' filepath='Objects/descrobject.c' line='1230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDictProxy_New'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
+    <function-decl name='PyUnicode_FromObject' mangled-name='PyUnicode_FromObject' filepath='Objects/unicodeobject.c' line='3319' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromObject'>
+      <parameter type-id='type-id-100' name='obj' filepath='Objects/unicodeobject.c' line='3319' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <class-decl name='wrapperbase' size-in-bits='448' is-struct='yes' visibility='default' filepath='./Include/descrobject.h' line='26' column='1' id='type-id-442'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/descrobject.h' line='27' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='offset' type-id='type-id-8' visibility='default' filepath='./Include/descrobject.h' line='28' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='function' type-id='type-id-32' visibility='default' filepath='./Include/descrobject.h' line='29' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='wrapper' type-id='type-id-443' visibility='default' filepath='./Include/descrobject.h' line='30' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='doc' type-id='type-id-3' visibility='default' filepath='./Include/descrobject.h' line='31' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='flags' type-id='type-id-8' visibility='default' filepath='./Include/descrobject.h' line='32' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='name_strobj' type-id='type-id-100' visibility='default' filepath='./Include/descrobject.h' line='33' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-444' size-in-bits='64' id='type-id-445'/>
-    <typedef-decl name='wrapperfunc' type-id='type-id-445' filepath='./Include/descrobject.h' line='20' column='1' id='type-id-443'/>
-    <pointer-type-def type-id='type-id-442' size-in-bits='64' id='type-id-446'/>
-    <function-decl name='PyDescr_NewWrapper' mangled-name='PyDescr_NewWrapper' filepath='Objects/descrobject.c' line='985' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewWrapper'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/descrobject.c' line='985' column='1'/>
-      <parameter type-id='type-id-446' name='base' filepath='Objects/descrobject.c' line='985' column='1'/>
-      <parameter type-id='type-id-32' name='wrapped' filepath='Objects/descrobject.c' line='985' column='1'/>
+    <function-decl name='_PyUnicode_AsLatin1String' mangled-name='_PyUnicode_AsLatin1String' filepath='Objects/unicodeobject.c' line='7216' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsLatin1String'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='7216' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7216' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <typedef-decl name='PyGetSetDef' type-id='type-id-175' filepath='./Include/descrobject.h' line='17' column='1' id='type-id-447'/>
-    <pointer-type-def type-id='type-id-447' size-in-bits='64' id='type-id-448'/>
-    <function-decl name='PyDescr_NewGetSet' mangled-name='PyDescr_NewGetSet' filepath='Objects/descrobject.c' line='973' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewGetSet'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/descrobject.c' line='973' column='1'/>
-      <parameter type-id='type-id-448' name='getset' filepath='Objects/descrobject.c' line='973' column='1'/>
+    <function-decl name='_PyUnicode_AsASCIIString' mangled-name='_PyUnicode_AsASCIIString' filepath='Objects/unicodeobject.c' line='7356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsASCIIString'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='7356' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7356' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <typedef-decl name='PyMemberDef' type-id='type-id-174' filepath='./Include/structmember.h' line='24' column='1' id='type-id-449'/>
-    <pointer-type-def type-id='type-id-449' size-in-bits='64' id='type-id-450'/>
-    <function-decl name='PyDescr_NewMember' mangled-name='PyDescr_NewMember' filepath='Objects/descrobject.c' line='961' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewMember'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/descrobject.c' line='961' column='1'/>
-      <parameter type-id='type-id-450' name='member' filepath='Objects/descrobject.c' line='961' column='1'/>
+    <function-decl name='PyUnicode_AsEncodedString' mangled-name='PyUnicode_AsEncodedString' filepath='Objects/unicodeobject.c' line='3733' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsEncodedString'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3733' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3734' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3735' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <typedef-decl name='PyMethodDef' type-id='type-id-172' filepath='./Include/methodobject.h' line='42' column='1' id='type-id-451'/>
-    <pointer-type-def type-id='type-id-451' size-in-bits='64' id='type-id-452'/>
-    <function-decl name='PyDescr_NewClassMethod' mangled-name='PyDescr_NewClassMethod' filepath='Objects/descrobject.c' line='949' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewClassMethod'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/descrobject.c' line='949' column='1'/>
-      <parameter type-id='type-id-452' name='method' filepath='Objects/descrobject.c' line='949' column='1'/>
+    <function-decl name='_PyUnicode_JoinArray' mangled-name='_PyUnicode_JoinArray' filepath='Objects/unicodeobject.c' line='10217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_JoinArray'>
+      <parameter type-id='type-id-100' name='separator' filepath='Objects/unicodeobject.c' line='10217' column='1'/>
+      <parameter type-id='type-id-190' name='items' filepath='Objects/unicodeobject.c' line='10217' column='1'/>
+      <parameter type-id='type-id-15' name='seqlen' filepath='Objects/unicodeobject.c' line='10217' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyDescr_NewMethod' mangled-name='PyDescr_NewMethod' filepath='Objects/descrobject.c' line='903' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDescr_NewMethod'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/descrobject.c' line='903' column='1'/>
-      <parameter type-id='type-id-452' name='method' filepath='Objects/descrobject.c' line='903' column='1'/>
+    <function-decl name='_PyUnicode_EqualToASCIIString' mangled-name='_PyUnicode_EqualToASCIIString' filepath='Objects/unicodeobject.c' line='11393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EqualToASCIIString'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='11393' column='1'/>
+      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='11393' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Partition' mangled-name='PyUnicode_Partition' filepath='Objects/unicodeobject.c' line='13331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Partition'>
+      <parameter type-id='type-id-100' name='str_obj' filepath='Objects/unicodeobject.c' line='13331' column='1'/>
+      <parameter type-id='type-id-100' name='sep_obj' filepath='Objects/unicodeobject.c' line='13331' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-type size-in-bits='64' id='type-id-444'>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-32'/>
+    <function-decl name='PyUnicode_RPartition' mangled-name='PyUnicode_RPartition' filepath='Objects/unicodeobject.c' line='13389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RPartition'>
+      <parameter type-id='type-id-100' name='str_obj' filepath='Objects/unicodeobject.c' line='13331' column='1'/>
+      <parameter type-id='type-id-100' name='sep_obj' filepath='Objects/unicodeobject.c' line='13331' column='1'/>
       <return type-id='type-id-100'/>
-    </function-type>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/enumobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyEnum_Type' type-id='type-id-182' mangled-name='PyEnum_Type' visibility='default' filepath='./Include/enumobject.h' line='10' column='1' elf-symbol-id='PyEnum_Type'/>
-    <var-decl name='PyReversed_Type' type-id='type-id-182' mangled-name='PyReversed_Type' visibility='default' filepath='./Include/enumobject.h' line='11' column='1' elf-symbol-id='PyReversed_Type'/>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/exceptions.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyExc_EnvironmentError' type-id='type-id-100' mangled-name='PyExc_EnvironmentError' visibility='default' filepath='./Include/pyerrors.h' line='138' column='1' elf-symbol-id='PyExc_EnvironmentError'/>
-    <var-decl name='PyExc_IOError' type-id='type-id-100' mangled-name='PyExc_IOError' visibility='default' filepath='./Include/pyerrors.h' line='139' column='1' elf-symbol-id='PyExc_IOError'/>
-    <var-decl name='PyExc_BaseException' type-id='type-id-100' mangled-name='PyExc_BaseException' visibility='default' filepath='./Include/pyerrors.h' line='72' column='1' elf-symbol-id='PyExc_BaseException'/>
-    <var-decl name='PyExc_Exception' type-id='type-id-100' mangled-name='PyExc_Exception' visibility='default' filepath='./Include/pyerrors.h' line='73' column='1' elf-symbol-id='PyExc_Exception'/>
-    <var-decl name='PyExc_TypeError' type-id='type-id-100' mangled-name='PyExc_TypeError' visibility='default' filepath='./Include/pyerrors.h' line='109' column='1' elf-symbol-id='PyExc_TypeError'/>
-    <var-decl name='PyExc_StopAsyncIteration' type-id='type-id-100' mangled-name='PyExc_StopAsyncIteration' visibility='default' filepath='./Include/pyerrors.h' line='75' column='1' elf-symbol-id='PyExc_StopAsyncIteration'/>
-    <var-decl name='PyExc_StopIteration' type-id='type-id-100' mangled-name='PyExc_StopIteration' visibility='default' filepath='./Include/pyerrors.h' line='77' column='1' elf-symbol-id='PyExc_StopIteration'/>
-    <var-decl name='PyExc_GeneratorExit' type-id='type-id-100' mangled-name='PyExc_GeneratorExit' visibility='default' filepath='./Include/pyerrors.h' line='78' column='1' elf-symbol-id='PyExc_GeneratorExit'/>
-    <var-decl name='PyExc_SystemExit' type-id='type-id-100' mangled-name='PyExc_SystemExit' visibility='default' filepath='./Include/pyerrors.h' line='108' column='1' elf-symbol-id='PyExc_SystemExit'/>
-    <var-decl name='PyExc_KeyboardInterrupt' type-id='type-id-100' mangled-name='PyExc_KeyboardInterrupt' visibility='default' filepath='./Include/pyerrors.h' line='94' column='1' elf-symbol-id='PyExc_KeyboardInterrupt'/>
-    <var-decl name='PyExc_ImportError' type-id='type-id-100' mangled-name='PyExc_ImportError' visibility='default' filepath='./Include/pyerrors.h' line='88' column='1' elf-symbol-id='PyExc_ImportError'/>
-    <var-decl name='PyExc_ModuleNotFoundError' type-id='type-id-100' mangled-name='PyExc_ModuleNotFoundError' visibility='default' filepath='./Include/pyerrors.h' line='90' column='1' elf-symbol-id='PyExc_ModuleNotFoundError'/>
-    <var-decl name='PyExc_OSError' type-id='type-id-100' mangled-name='PyExc_OSError' visibility='default' filepath='./Include/pyerrors.h' line='87' column='1' elf-symbol-id='PyExc_OSError'/>
-    <var-decl name='PyExc_BlockingIOError' type-id='type-id-100' mangled-name='PyExc_BlockingIOError' visibility='default' filepath='./Include/pyerrors.h' line='119' column='1' elf-symbol-id='PyExc_BlockingIOError'/>
-    <var-decl name='PyExc_ConnectionError' type-id='type-id-100' mangled-name='PyExc_ConnectionError' visibility='default' filepath='./Include/pyerrors.h' line='122' column='1' elf-symbol-id='PyExc_ConnectionError'/>
-    <var-decl name='PyExc_ChildProcessError' type-id='type-id-100' mangled-name='PyExc_ChildProcessError' visibility='default' filepath='./Include/pyerrors.h' line='121' column='1' elf-symbol-id='PyExc_ChildProcessError'/>
-    <var-decl name='PyExc_BrokenPipeError' type-id='type-id-100' mangled-name='PyExc_BrokenPipeError' visibility='default' filepath='./Include/pyerrors.h' line='120' column='1' elf-symbol-id='PyExc_BrokenPipeError'/>
-    <var-decl name='PyExc_ConnectionAbortedError' type-id='type-id-100' mangled-name='PyExc_ConnectionAbortedError' visibility='default' filepath='./Include/pyerrors.h' line='123' column='1' elf-symbol-id='PyExc_ConnectionAbortedError'/>
-    <var-decl name='PyExc_ConnectionRefusedError' type-id='type-id-100' mangled-name='PyExc_ConnectionRefusedError' visibility='default' filepath='./Include/pyerrors.h' line='124' column='1' elf-symbol-id='PyExc_ConnectionRefusedError'/>
-    <var-decl name='PyExc_ConnectionResetError' type-id='type-id-100' mangled-name='PyExc_ConnectionResetError' visibility='default' filepath='./Include/pyerrors.h' line='125' column='1' elf-symbol-id='PyExc_ConnectionResetError'/>
-    <var-decl name='PyExc_FileExistsError' type-id='type-id-100' mangled-name='PyExc_FileExistsError' visibility='default' filepath='./Include/pyerrors.h' line='126' column='1' elf-symbol-id='PyExc_FileExistsError'/>
-    <var-decl name='PyExc_FileNotFoundError' type-id='type-id-100' mangled-name='PyExc_FileNotFoundError' visibility='default' filepath='./Include/pyerrors.h' line='127' column='1' elf-symbol-id='PyExc_FileNotFoundError'/>
-    <var-decl name='PyExc_IsADirectoryError' type-id='type-id-100' mangled-name='PyExc_IsADirectoryError' visibility='default' filepath='./Include/pyerrors.h' line='129' column='1' elf-symbol-id='PyExc_IsADirectoryError'/>
-    <var-decl name='PyExc_NotADirectoryError' type-id='type-id-100' mangled-name='PyExc_NotADirectoryError' visibility='default' filepath='./Include/pyerrors.h' line='130' column='1' elf-symbol-id='PyExc_NotADirectoryError'/>
-    <var-decl name='PyExc_InterruptedError' type-id='type-id-100' mangled-name='PyExc_InterruptedError' visibility='default' filepath='./Include/pyerrors.h' line='128' column='1' elf-symbol-id='PyExc_InterruptedError'/>
-    <var-decl name='PyExc_PermissionError' type-id='type-id-100' mangled-name='PyExc_PermissionError' visibility='default' filepath='./Include/pyerrors.h' line='131' column='1' elf-symbol-id='PyExc_PermissionError'/>
-    <var-decl name='PyExc_ProcessLookupError' type-id='type-id-100' mangled-name='PyExc_ProcessLookupError' visibility='default' filepath='./Include/pyerrors.h' line='132' column='1' elf-symbol-id='PyExc_ProcessLookupError'/>
-    <var-decl name='PyExc_TimeoutError' type-id='type-id-100' mangled-name='PyExc_TimeoutError' visibility='default' filepath='./Include/pyerrors.h' line='133' column='1' elf-symbol-id='PyExc_TimeoutError'/>
-    <var-decl name='PyExc_EOFError' type-id='type-id-100' mangled-name='PyExc_EOFError' visibility='default' filepath='./Include/pyerrors.h' line='85' column='1' elf-symbol-id='PyExc_EOFError'/>
-    <var-decl name='PyExc_RuntimeError' type-id='type-id-100' mangled-name='PyExc_RuntimeError' visibility='default' filepath='./Include/pyerrors.h' line='98' column='1' elf-symbol-id='PyExc_RuntimeError'/>
-    <var-decl name='PyExc_RecursionError' type-id='type-id-100' mangled-name='PyExc_RecursionError' visibility='default' filepath='./Include/pyerrors.h' line='100' column='1' elf-symbol-id='PyExc_RecursionError'/>
-    <var-decl name='PyExc_NotImplementedError' type-id='type-id-100' mangled-name='PyExc_NotImplementedError' visibility='default' filepath='./Include/pyerrors.h' line='102' column='1' elf-symbol-id='PyExc_NotImplementedError'/>
-    <var-decl name='PyExc_NameError' type-id='type-id-100' mangled-name='PyExc_NameError' visibility='default' filepath='./Include/pyerrors.h' line='96' column='1' elf-symbol-id='PyExc_NameError'/>
-    <var-decl name='PyExc_UnboundLocalError' type-id='type-id-100' mangled-name='PyExc_UnboundLocalError' visibility='default' filepath='./Include/pyerrors.h' line='110' column='1' elf-symbol-id='PyExc_UnboundLocalError'/>
-    <var-decl name='PyExc_AttributeError' type-id='type-id-100' mangled-name='PyExc_AttributeError' visibility='default' filepath='./Include/pyerrors.h' line='83' column='1' elf-symbol-id='PyExc_AttributeError'/>
-    <var-decl name='PyExc_SyntaxError' type-id='type-id-100' mangled-name='PyExc_SyntaxError' visibility='default' filepath='./Include/pyerrors.h' line='103' column='1' elf-symbol-id='PyExc_SyntaxError'/>
-    <var-decl name='PyExc_IndentationError' type-id='type-id-100' mangled-name='PyExc_IndentationError' visibility='default' filepath='./Include/pyerrors.h' line='104' column='1' elf-symbol-id='PyExc_IndentationError'/>
-    <var-decl name='PyExc_TabError' type-id='type-id-100' mangled-name='PyExc_TabError' visibility='default' filepath='./Include/pyerrors.h' line='105' column='1' elf-symbol-id='PyExc_TabError'/>
-    <var-decl name='PyExc_LookupError' type-id='type-id-100' mangled-name='PyExc_LookupError' visibility='default' filepath='./Include/pyerrors.h' line='80' column='1' elf-symbol-id='PyExc_LookupError'/>
-    <var-decl name='PyExc_IndexError' type-id='type-id-100' mangled-name='PyExc_IndexError' visibility='default' filepath='./Include/pyerrors.h' line='92' column='1' elf-symbol-id='PyExc_IndexError'/>
-    <var-decl name='PyExc_KeyError' type-id='type-id-100' mangled-name='PyExc_KeyError' visibility='default' filepath='./Include/pyerrors.h' line='93' column='1' elf-symbol-id='PyExc_KeyError'/>
-    <var-decl name='PyExc_ValueError' type-id='type-id-100' mangled-name='PyExc_ValueError' visibility='default' filepath='./Include/pyerrors.h' line='115' column='1' elf-symbol-id='PyExc_ValueError'/>
-    <var-decl name='PyExc_UnicodeError' type-id='type-id-100' mangled-name='PyExc_UnicodeError' visibility='default' filepath='./Include/pyerrors.h' line='111' column='1' elf-symbol-id='PyExc_UnicodeError'/>
-    <var-decl name='PyExc_UnicodeEncodeError' type-id='type-id-100' mangled-name='PyExc_UnicodeEncodeError' visibility='default' filepath='./Include/pyerrors.h' line='112' column='1' elf-symbol-id='PyExc_UnicodeEncodeError'/>
-    <var-decl name='PyExc_UnicodeDecodeError' type-id='type-id-100' mangled-name='PyExc_UnicodeDecodeError' visibility='default' filepath='./Include/pyerrors.h' line='113' column='1' elf-symbol-id='PyExc_UnicodeDecodeError'/>
-    <var-decl name='PyExc_UnicodeTranslateError' type-id='type-id-100' mangled-name='PyExc_UnicodeTranslateError' visibility='default' filepath='./Include/pyerrors.h' line='114' column='1' elf-symbol-id='PyExc_UnicodeTranslateError'/>
-    <var-decl name='PyExc_AssertionError' type-id='type-id-100' mangled-name='PyExc_AssertionError' visibility='default' filepath='./Include/pyerrors.h' line='82' column='1' elf-symbol-id='PyExc_AssertionError'/>
-    <var-decl name='PyExc_ArithmeticError' type-id='type-id-100' mangled-name='PyExc_ArithmeticError' visibility='default' filepath='./Include/pyerrors.h' line='79' column='1' elf-symbol-id='PyExc_ArithmeticError'/>
-    <var-decl name='PyExc_FloatingPointError' type-id='type-id-100' mangled-name='PyExc_FloatingPointError' visibility='default' filepath='./Include/pyerrors.h' line='86' column='1' elf-symbol-id='PyExc_FloatingPointError'/>
-    <var-decl name='PyExc_OverflowError' type-id='type-id-100' mangled-name='PyExc_OverflowError' visibility='default' filepath='./Include/pyerrors.h' line='97' column='1' elf-symbol-id='PyExc_OverflowError'/>
-    <var-decl name='PyExc_ZeroDivisionError' type-id='type-id-100' mangled-name='PyExc_ZeroDivisionError' visibility='default' filepath='./Include/pyerrors.h' line='116' column='1' elf-symbol-id='PyExc_ZeroDivisionError'/>
-    <var-decl name='PyExc_SystemError' type-id='type-id-100' mangled-name='PyExc_SystemError' visibility='default' filepath='./Include/pyerrors.h' line='107' column='1' elf-symbol-id='PyExc_SystemError'/>
-    <var-decl name='PyExc_ReferenceError' type-id='type-id-100' mangled-name='PyExc_ReferenceError' visibility='default' filepath='./Include/pyerrors.h' line='106' column='1' elf-symbol-id='PyExc_ReferenceError'/>
-    <var-decl name='PyExc_MemoryError' type-id='type-id-100' mangled-name='PyExc_MemoryError' visibility='default' filepath='./Include/pyerrors.h' line='95' column='1' elf-symbol-id='PyExc_MemoryError'/>
-    <var-decl name='PyExc_BufferError' type-id='type-id-100' mangled-name='PyExc_BufferError' visibility='default' filepath='./Include/pyerrors.h' line='84' column='1' elf-symbol-id='PyExc_BufferError'/>
-    <var-decl name='PyExc_Warning' type-id='type-id-100' mangled-name='PyExc_Warning' visibility='default' filepath='./Include/pyerrors.h' line='145' column='1' elf-symbol-id='PyExc_Warning'/>
-    <var-decl name='PyExc_UserWarning' type-id='type-id-100' mangled-name='PyExc_UserWarning' visibility='default' filepath='./Include/pyerrors.h' line='146' column='1' elf-symbol-id='PyExc_UserWarning'/>
-    <var-decl name='PyExc_DeprecationWarning' type-id='type-id-100' mangled-name='PyExc_DeprecationWarning' visibility='default' filepath='./Include/pyerrors.h' line='147' column='1' elf-symbol-id='PyExc_DeprecationWarning'/>
-    <var-decl name='PyExc_PendingDeprecationWarning' type-id='type-id-100' mangled-name='PyExc_PendingDeprecationWarning' visibility='default' filepath='./Include/pyerrors.h' line='148' column='1' elf-symbol-id='PyExc_PendingDeprecationWarning'/>
-    <var-decl name='PyExc_SyntaxWarning' type-id='type-id-100' mangled-name='PyExc_SyntaxWarning' visibility='default' filepath='./Include/pyerrors.h' line='149' column='1' elf-symbol-id='PyExc_SyntaxWarning'/>
-    <var-decl name='PyExc_RuntimeWarning' type-id='type-id-100' mangled-name='PyExc_RuntimeWarning' visibility='default' filepath='./Include/pyerrors.h' line='150' column='1' elf-symbol-id='PyExc_RuntimeWarning'/>
-    <var-decl name='PyExc_FutureWarning' type-id='type-id-100' mangled-name='PyExc_FutureWarning' visibility='default' filepath='./Include/pyerrors.h' line='151' column='1' elf-symbol-id='PyExc_FutureWarning'/>
-    <var-decl name='PyExc_ImportWarning' type-id='type-id-100' mangled-name='PyExc_ImportWarning' visibility='default' filepath='./Include/pyerrors.h' line='152' column='1' elf-symbol-id='PyExc_ImportWarning'/>
-    <var-decl name='PyExc_UnicodeWarning' type-id='type-id-100' mangled-name='PyExc_UnicodeWarning' visibility='default' filepath='./Include/pyerrors.h' line='153' column='1' elf-symbol-id='PyExc_UnicodeWarning'/>
-    <var-decl name='PyExc_BytesWarning' type-id='type-id-100' mangled-name='PyExc_BytesWarning' visibility='default' filepath='./Include/pyerrors.h' line='154' column='1' elf-symbol-id='PyExc_BytesWarning'/>
-    <var-decl name='PyExc_ResourceWarning' type-id='type-id-100' mangled-name='PyExc_ResourceWarning' visibility='default' filepath='./Include/pyerrors.h' line='155' column='1' elf-symbol-id='PyExc_ResourceWarning'/>
-    <function-decl name='_PyErr_TrySetFromCause' mangled-name='_PyErr_TrySetFromCause' filepath='Objects/exceptions.c' line='2792' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_TrySetFromCause'>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/exceptions.c' line='2792' column='1'/>
-      <parameter is-variadic='yes'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_WriteSubstring' mangled-name='_PyUnicodeWriter_WriteSubstring' filepath='Objects/unicodeobject.c' line='14084' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteSubstring'>
+      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='14084' column='1'/>
+      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='14084' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='14085' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='14085' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeWriter_Finish' mangled-name='_PyUnicodeWriter_Finish' filepath='Objects/unicodeobject.c' line='14193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_Finish'>
+      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='14193' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Decode' mangled-name='PyUnicode_Decode' filepath='Objects/unicodeobject.c' line='3443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Decode'>
+      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='3443' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='3444' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3445' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3446' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyUnicodeTranslateError_Create' mangled-name='_PyUnicodeTranslateError_Create' filepath='Objects/exceptions.c' line='2212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeTranslateError_Create'>
-      <parameter type-id='type-id-100' name='object' filepath='Objects/exceptions.c' line='2213' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/exceptions.c' line='2214' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='2214' column='1'/>
-      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='2214' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyModule_Create2' mangled-name='PyModule_Create2' filepath='./Include/modsupport.h' line='218' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyInterpreterState_GetConfig' mangled-name='_PyInterpreterState_GetConfig' filepath='./Include/cpython/pystate.h' line='195' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_SetFileSystemEncoding' mangled-name='_Py_SetFileSystemEncoding' filepath='./Include/internal/pycore_pylifecycle.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_DumpPathConfig' mangled-name='_Py_DumpPathConfig' filepath='./Include/internal/pycore_pathconfig.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyCodec_Lookup' mangled-name='_PyCodec_Lookup' filepath='./Include/codecs.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyMem_RawWcsdup' mangled-name='_PyMem_RawWcsdup' filepath='./Include/cpython/pymem.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_SetDefault' mangled-name='PyDict_SetDefault' filepath='./Include/cpython/dictobject.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_FormatWriter' mangled-name='_PyLong_FormatWriter' filepath='./Include/longobject.h' line='197' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_ToBase' mangled-name='PyNumber_ToBase' filepath='./Include/abstract.h' line='611' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_ToDecimalDigit' mangled-name='_PyUnicode_ToDecimalDigit' filepath='./Include/cpython/unicodeobject.h' line='1146' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_IsXidStart' mangled-name='_PyUnicode_IsXidStart' filepath='./Include/cpython/unicodeobject.h' line='1090' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_IsXidContinue' mangled-name='_PyUnicode_IsXidContinue' filepath='./Include/cpython/unicodeobject.h' line='1094' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='wmemcmp' mangled-name='wmemcmp' filepath='/usr/include/wchar.h' line='258' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_IsLinebreak' mangled-name='_PyUnicode_IsLinebreak' filepath='./Include/cpython/unicodeobject.h' line='1102' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_IsCaseIgnorable' mangled-name='_PyUnicode_IsCaseIgnorable' filepath='./Include/cpython/unicodeobject.h' line='1138' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_IsCased' mangled-name='_PyUnicode_IsCased' filepath='./Include/cpython/unicodeobject.h' line='1142' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCodec_StrictErrors' mangled-name='PyCodec_StrictErrors' filepath='./Include/codecs.h' line='214' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeTranslateError_SetStart' mangled-name='PyUnicodeTranslateError_SetStart' filepath='./Include/pyerrors.h' line='278' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeTranslateError_SetEnd' mangled-name='PyUnicodeTranslateError_SetEnd' filepath='./Include/pyerrors.h' line='290' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicodeTranslateError_Create' mangled-name='_PyUnicodeTranslateError_Create' filepath='./Include/cpython/pyerrors.h' line='176' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeTranslateError_SetReason' mangled-name='PyUnicodeTranslateError_SetReason' filepath='./Include/pyerrors.h' line='307' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCodec_LookupError' mangled-name='PyCodec_LookupError' filepath='./Include/codecs.h' line='211' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Init' mangled-name='PyObject_Init' filepath='./Include/objimpl.h' line='119' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyBytesWriter_WriteBytes' mangled-name='_PyBytesWriter_WriteBytes' filepath='./Include/cpython/bytesobject.h' line='115' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyBytesWriter_Init' mangled-name='_PyBytesWriter_Init' filepath='./Include/cpython/bytesobject.h' line='71' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyBytesWriter_Alloc' mangled-name='_PyBytesWriter_Alloc' filepath='./Include/cpython/bytesobject.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyBytesWriter_Finish' mangled-name='_PyBytesWriter_Finish' filepath='./Include/cpython/bytesobject.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyBytesWriter_Dealloc' mangled-name='_PyBytesWriter_Dealloc' filepath='./Include/cpython/bytesobject.h' line='80' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_SetStart' mangled-name='PyUnicodeEncodeError_SetStart' filepath='./Include/pyerrors.h' line='276' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_SetEnd' mangled-name='PyUnicodeEncodeError_SetEnd' filepath='./Include/pyerrors.h' line='288' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeEncodeError_SetReason' mangled-name='PyUnicodeEncodeError_SetReason' filepath='./Include/pyerrors.h' line='299' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCapsule_Import' mangled-name='PyCapsule_Import' filepath='./Include/pycapsule.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeDecodeError_SetStart' mangled-name='PyUnicodeDecodeError_SetStart' filepath='./Include/pyerrors.h' line='277' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeDecodeError_SetEnd' mangled-name='PyUnicodeDecodeError_SetEnd' filepath='./Include/pyerrors.h' line='289' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeDecodeError_SetReason' mangled-name='PyUnicodeDecodeError_SetReason' filepath='./Include/pyerrors.h' line='303' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeDecodeError_Create' mangled-name='PyUnicodeDecodeError_Create' filepath='./Include/pyerrors.h' line='250' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicodeDecodeError_GetObject' mangled-name='PyUnicodeDecodeError_GetObject' filepath='./Include/pyerrors.h' line='265' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyOS_FSPath' mangled-name='PyOS_FSPath' filepath='./Include/osmodule.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_DecodeLocaleEx' mangled-name='_Py_DecodeLocaleEx' filepath='./Include/cpython/fileutils.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCodec_Encode' mangled-name='PyCodec_Encode' filepath='./Include/codecs.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_EncodeLocaleEx' mangled-name='_Py_EncodeLocaleEx' filepath='./Include/cpython/fileutils.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCodec_Decode' mangled-name='PyCodec_Decode' filepath='./Include/codecs.h' line='95' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_WriteUnraisableMsg' mangled-name='_PyErr_WriteUnraisableMsg' filepath='./Include/cpython/pyerrors.h' line='183' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_ToUpperFull' mangled-name='_PyUnicode_ToUpperFull' filepath='./Include/cpython/unicodeobject.h' line='1128' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_ToLowerFull' mangled-name='_PyUnicode_ToLowerFull' filepath='./Include/cpython/unicodeobject.h' line='1118' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_IsUppercase' mangled-name='_PyUnicode_IsUppercase' filepath='./Include/cpython/unicodeobject.h' line='1082' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_IsLowercase' mangled-name='_PyUnicode_IsLowercase' filepath='./Include/cpython/unicodeobject.h' line='1078' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <typedef-decl name='Py_UNICODE' type-id='type-id-405' filepath='./Include/cpython/unicodeobject.h' line='14' column='1' id='type-id-453'/>
-    <qualified-type-def type-id='type-id-453' const='yes' id='type-id-454'/>
-    <pointer-type-def type-id='type-id-454' size-in-bits='64' id='type-id-455'/>
-    <function-decl name='PyUnicodeTranslateError_Create' mangled-name='PyUnicodeTranslateError_Create' filepath='Objects/exceptions.c' line='2203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_Create'>
-      <parameter type-id='type-id-455' name='object' filepath='Objects/exceptions.c' line='2204' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/exceptions.c' line='2204' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/exceptions.c' line='2205' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='2205' column='1'/>
-      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='2205' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyUnicode_IsNumeric' mangled-name='_PyUnicode_IsNumeric' filepath='./Include/cpython/unicodeobject.h' line='1166' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicodeDecodeError_Create' mangled-name='PyUnicodeDecodeError_Create' filepath='Objects/exceptions.c' line='2105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_Create'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/exceptions.c' line='2106' column='1'/>
-      <parameter type-id='type-id-3' name='object' filepath='Objects/exceptions.c' line='2106' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/exceptions.c' line='2106' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/exceptions.c' line='2107' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='2107' column='1'/>
-      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='2107' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyUnicode_IsDigit' mangled-name='_PyUnicode_IsDigit' filepath='./Include/cpython/unicodeobject.h' line='1162' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicodeEncodeError_Create' mangled-name='PyUnicodeEncodeError_Create' filepath='Objects/exceptions.c' line='1989' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_Create'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/exceptions.c' line='1990' column='1'/>
-      <parameter type-id='type-id-455' name='object' filepath='Objects/exceptions.c' line='1990' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/exceptions.c' line='1990' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/exceptions.c' line='1991' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='1991' column='1'/>
-      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='1991' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyUnicode_IsDecimalDigit' mangled-name='_PyUnicode_IsDecimalDigit' filepath='./Include/cpython/unicodeobject.h' line='1158' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_IsAlpha' mangled-name='_PyUnicode_IsAlpha' filepath='./Include/cpython/unicodeobject.h' line='1174' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_IsTitlecase' mangled-name='_PyUnicode_IsTitlecase' filepath='./Include/cpython/unicodeobject.h' line='1086' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_ToFoldedFull' mangled-name='_PyUnicode_ToFoldedFull' filepath='./Include/cpython/unicodeobject.h' line='1133' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_ToTitleFull' mangled-name='_PyUnicode_ToTitleFull' filepath='./Include/cpython/unicodeobject.h' line='1123' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='wcscmp' mangled-name='wcscmp' filepath='/usr/include/wchar.h' line='106' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyCodec_EncodeText' mangled-name='_PyCodec_EncodeText' filepath='./Include/codecs.h' line='120' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMemoryView_FromBuffer' mangled-name='PyMemoryView_FromBuffer' filepath='./Include/memoryobject.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyCodec_DecodeText' mangled-name='_PyCodec_DecodeText' filepath='./Include/codecs.h' line='126' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_FormatAdvancedWriter' mangled-name='_PyUnicode_FormatAdvancedWriter' filepath='./Include/cpython/unicodeobject.h' line='723' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Format' mangled-name='PyObject_Format' filepath='./Include/abstract.h' line='363' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicodeTranslateError_SetReason' mangled-name='PyUnicodeTranslateError_SetReason' filepath='Objects/exceptions.c' line='1843' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_SetReason'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1843' column='1'/>
-      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='1843' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/unicodectype.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_PyUnicode_IsAlpha' mangled-name='_PyUnicode_IsAlpha' filepath='Objects/unicodectype.c' line='291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsAlpha'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeDecodeError_SetReason' mangled-name='PyUnicodeDecodeError_SetReason' filepath='Objects/exceptions.c' line='1835' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_SetReason'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1843' column='1'/>
-      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='1843' column='1'/>
+    <function-decl name='_PyUnicode_IsCaseIgnorable' mangled-name='_PyUnicode_IsCaseIgnorable' filepath='Objects/unicodectype.c' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsCaseIgnorable'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeEncodeError_SetReason' mangled-name='PyUnicodeEncodeError_SetReason' filepath='Objects/exceptions.c' line='1827' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_SetReason'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1843' column='1'/>
-      <parameter type-id='type-id-3' name='reason' filepath='Objects/exceptions.c' line='1843' column='1'/>
+    <function-decl name='_PyUnicode_IsCased' mangled-name='_PyUnicode_IsCased' filepath='Objects/unicodectype.c' line='274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsCased'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeTranslateError_GetReason' mangled-name='PyUnicodeTranslateError_GetReason' filepath='Objects/exceptions.c' line='1820' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_GetReason'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyUnicode_ToFoldedFull' mangled-name='_PyUnicode_ToFoldedFull' filepath='Objects/unicodectype.c' line='259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToFoldedFull'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='259' column='1'/>
+      <parameter type-id='type-id-539' name='res' filepath='Objects/unicodectype.c' line='259' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeDecodeError_GetReason' mangled-name='PyUnicodeDecodeError_GetReason' filepath='Objects/exceptions.c' line='1813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_GetReason'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyUnicode_ToUpperFull' mangled-name='_PyUnicode_ToUpperFull' filepath='Objects/unicodectype.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToUpperFull'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='243' column='1'/>
+      <parameter type-id='type-id-539' name='res' filepath='Objects/unicodectype.c' line='243' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeEncodeError_GetReason' mangled-name='PyUnicodeEncodeError_GetReason' filepath='Objects/exceptions.c' line='1806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetReason'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyUnicode_ToTitleFull' mangled-name='_PyUnicode_ToTitleFull' filepath='Objects/unicodectype.c' line='227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToTitleFull'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='243' column='1'/>
+      <parameter type-id='type-id-539' name='res' filepath='Objects/unicodectype.c' line='243' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeTranslateError_SetEnd' mangled-name='PyUnicodeTranslateError_SetEnd' filepath='Objects/exceptions.c' line='1799' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_SetEnd'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1799' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='1799' column='1'/>
+    <function-decl name='_PyUnicode_ToLowerFull' mangled-name='_PyUnicode_ToLowerFull' filepath='Objects/unicodectype.c' line='211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToLowerFull'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='243' column='1'/>
+      <parameter type-id='type-id-539' name='res' filepath='Objects/unicodectype.c' line='243' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeDecodeError_SetEnd' mangled-name='PyUnicodeDecodeError_SetEnd' filepath='Objects/exceptions.c' line='1791' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_SetEnd'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1799' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='1799' column='1'/>
+    <function-decl name='_PyUnicode_ToLowercase' mangled-name='_PyUnicode_ToLowercase' filepath='Objects/unicodectype.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToLowercase'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='202' column='1'/>
+      <return type-id='type-id-474'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_ToUppercase' mangled-name='_PyUnicode_ToUppercase' filepath='Objects/unicodectype.c' line='190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToUppercase'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='202' column='1'/>
+      <return type-id='type-id-474'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_IsUppercase' mangled-name='_PyUnicode_IsUppercase' filepath='Objects/unicodectype.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsUppercase'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeEncodeError_SetEnd' mangled-name='PyUnicodeEncodeError_SetEnd' filepath='Objects/exceptions.c' line='1783' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_SetEnd'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1799' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='1799' column='1'/>
+    <function-decl name='_PyUnicode_IsLowercase' mangled-name='_PyUnicode_IsLowercase' filepath='Objects/unicodectype.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsLowercase'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeTranslateError_GetEnd' mangled-name='PyUnicodeTranslateError_GetEnd' filepath='Objects/exceptions.c' line='1776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_GetEnd'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1776' column='1'/>
-      <parameter type-id='type-id-158' name='end' filepath='Objects/exceptions.c' line='1776' column='1'/>
+    <function-decl name='_PyUnicode_IsPrintable' mangled-name='_PyUnicode_IsPrintable' filepath='Objects/unicodectype.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsPrintable'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeDecodeError_GetEnd' mangled-name='PyUnicodeDecodeError_GetEnd' filepath='Objects/exceptions.c' line='1758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_GetEnd'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1758' column='1'/>
-      <parameter type-id='type-id-158' name='end' filepath='Objects/exceptions.c' line='1758' column='1'/>
+    <function-decl name='_PyUnicode_IsNumeric' mangled-name='_PyUnicode_IsNumeric' filepath='Objects/unicodectype.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsNumeric'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeEncodeError_GetEnd' mangled-name='PyUnicodeEncodeError_GetEnd' filepath='Objects/exceptions.c' line='1739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetEnd'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1758' column='1'/>
-      <parameter type-id='type-id-158' name='end' filepath='Objects/exceptions.c' line='1758' column='1'/>
+    <function-decl name='_PyUnicode_IsDigit' mangled-name='_PyUnicode_IsDigit' filepath='Objects/unicodectype.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsDigit'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='130' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeTranslateError_SetStart' mangled-name='PyUnicodeTranslateError_SetStart' filepath='Objects/exceptions.c' line='1731' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_SetStart'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1799' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='1799' column='1'/>
+    <function-decl name='_PyUnicode_ToDigit' mangled-name='_PyUnicode_ToDigit' filepath='Objects/unicodectype.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToDigit'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeDecodeError_SetStart' mangled-name='PyUnicodeDecodeError_SetStart' filepath='Objects/exceptions.c' line='1723' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_SetStart'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1799' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='1799' column='1'/>
+    <function-decl name='_PyUnicode_IsDecimalDigit' mangled-name='_PyUnicode_IsDecimalDigit' filepath='Objects/unicodectype.c' line='113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsDecimalDigit'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='130' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeEncodeError_SetStart' mangled-name='PyUnicodeEncodeError_SetStart' filepath='Objects/exceptions.c' line='1715' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_SetStart'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1799' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/exceptions.c' line='1799' column='1'/>
+    <function-decl name='_PyUnicode_ToDecimalDigit' mangled-name='_PyUnicode_ToDecimalDigit' filepath='Objects/unicodectype.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToDecimalDigit'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeTranslateError_GetStart' mangled-name='PyUnicodeTranslateError_GetStart' filepath='Objects/exceptions.c' line='1708' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_GetStart'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1776' column='1'/>
-      <parameter type-id='type-id-158' name='end' filepath='Objects/exceptions.c' line='1776' column='1'/>
+    <function-decl name='_PyUnicode_IsXidContinue' mangled-name='_PyUnicode_IsXidContinue' filepath='Objects/unicodectype.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsXidContinue'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeDecodeError_GetStart' mangled-name='PyUnicodeDecodeError_GetStart' filepath='Objects/exceptions.c' line='1690' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_GetStart'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1758' column='1'/>
-      <parameter type-id='type-id-158' name='end' filepath='Objects/exceptions.c' line='1758' column='1'/>
+    <function-decl name='_PyUnicode_IsXidStart' mangled-name='_PyUnicode_IsXidStart' filepath='Objects/unicodectype.c' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsXidStart'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeEncodeError_GetStart' mangled-name='PyUnicodeEncodeError_GetStart' filepath='Objects/exceptions.c' line='1671' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetStart'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1758' column='1'/>
-      <parameter type-id='type-id-158' name='end' filepath='Objects/exceptions.c' line='1758' column='1'/>
+    <function-decl name='_PyUnicode_IsTitlecase' mangled-name='_PyUnicode_IsTitlecase' filepath='Objects/unicodectype.c' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsTitlecase'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeTranslateError_GetObject' mangled-name='PyUnicodeTranslateError_GetObject' filepath='Objects/exceptions.c' line='1665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeTranslateError_GetObject'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyUnicode_ToTitlecase' mangled-name='_PyUnicode_ToTitlecase' filepath='Objects/unicodectype.c' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToTitlecase'>
+      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='202' column='1'/>
+      <return type-id='type-id-474'/>
     </function-decl>
-    <function-decl name='PyUnicodeDecodeError_GetObject' mangled-name='PyUnicodeDecodeError_GetObject' filepath='Objects/exceptions.c' line='1659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_GetObject'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <qualified-type-def type-id='type-id-474' const='yes' id='type-id-541'/>
+    <function-decl name='_PyUnicode_IsLinebreak' mangled-name='_PyUnicode_IsLinebreak' filepath='Objects/unicodetype_db.h' line='6249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsLinebreak'>
+      <parameter type-id='type-id-541' name='ch' filepath='Objects/unicodetype_db.h' line='6249' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicodeEncodeError_GetObject' mangled-name='PyUnicodeEncodeError_GetObject' filepath='Objects/exceptions.c' line='1653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetObject'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+    <function-decl name='_PyUnicode_IsWhitespace' mangled-name='_PyUnicode_IsWhitespace' filepath='Objects/unicodetype_db.h' line='6208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsWhitespace'>
+      <parameter type-id='type-id-541' name='ch' filepath='Objects/unicodetype_db.h' line='6249' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Objects/weakrefobject.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='_PyWeakref_RefType' type-id='type-id-182' mangled-name='_PyWeakref_RefType' visibility='default' filepath='./Include/weakrefobject.h' line='43' column='1' elf-symbol-id='_PyWeakref_RefType'/>
+    <var-decl name='_PyWeakref_ProxyType' type-id='type-id-182' mangled-name='_PyWeakref_ProxyType' visibility='default' filepath='./Include/weakrefobject.h' line='44' column='1' elf-symbol-id='_PyWeakref_ProxyType'/>
+    <var-decl name='_PyWeakref_CallableProxyType' type-id='type-id-182' mangled-name='_PyWeakref_CallableProxyType' visibility='default' filepath='./Include/weakrefobject.h' line='45' column='1' elf-symbol-id='_PyWeakref_CallableProxyType'/>
+    <function-decl name='PyObject_ClearWeakRefs' mangled-name='PyObject_ClearWeakRefs' filepath='Objects/weakrefobject.c' line='967' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_ClearWeakRefs'>
+      <parameter type-id='type-id-100' name='object' filepath='Objects/weakrefobject.c' line='967' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyWeakref_GetObject' mangled-name='PyWeakref_GetObject' filepath='Objects/weakrefobject.c' line='937' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWeakref_GetObject'>
+      <parameter type-id='type-id-100' name='op' filepath='Objects/methodobject.c' line='129' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyUnicodeDecodeError_GetEncoding' mangled-name='PyUnicodeDecodeError_GetEncoding' filepath='Objects/exceptions.c' line='1647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeDecodeError_GetEncoding'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+    <function-decl name='PyWeakref_NewProxy' mangled-name='PyWeakref_NewProxy' filepath='Objects/weakrefobject.c' line='870' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWeakref_NewProxy'>
+      <parameter type-id='type-id-100' name='ob' filepath='Objects/weakrefobject.c' line='870' column='1'/>
+      <parameter type-id='type-id-100' name='callback' filepath='Objects/weakrefobject.c' line='870' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyUnicodeEncodeError_GetEncoding' mangled-name='PyUnicodeEncodeError_GetEncoding' filepath='Objects/exceptions.c' line='1641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicodeEncodeError_GetEncoding'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+    <function-decl name='PyWeakref_NewRef' mangled-name='PyWeakref_NewRef' filepath='Objects/weakrefobject.c' line='811' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWeakref_NewRef'>
+      <parameter type-id='type-id-100' name='ob' filepath='Objects/weakrefobject.c' line='811' column='1'/>
+      <parameter type-id='type-id-100' name='callback' filepath='Objects/weakrefobject.c' line='811' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyExceptionClass_Name' mangled-name='PyExceptionClass_Name' filepath='Objects/exceptions.c' line='365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyExceptionClass_Name'>
-      <parameter type-id='type-id-100' name='ob' filepath='Objects/exceptions.c' line='365' column='1'/>
-      <return type-id='type-id-3'/>
+    <class-decl name='_PyWeakReference' size-in-bits='448' is-struct='yes' visibility='default' filepath='./Include/weakrefobject.h' line='16' column='1' id='type-id-542'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/weakrefobject.h' line='17' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='wr_object' type-id='type-id-100' visibility='default' filepath='./Include/weakrefobject.h' line='23' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='wr_callback' type-id='type-id-100' visibility='default' filepath='./Include/weakrefobject.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='hash' type-id='type-id-150' visibility='default' filepath='./Include/weakrefobject.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='wr_prev' type-id='type-id-543' visibility='default' filepath='./Include/weakrefobject.h' line='38' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='wr_next' type-id='type-id-543' visibility='default' filepath='./Include/weakrefobject.h' line='39' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='PyWeakReference' type-id='type-id-542' filepath='./Include/weakrefobject.h' line='10' column='1' id='type-id-544'/>
+    <pointer-type-def type-id='type-id-544' size-in-bits='64' id='type-id-543'/>
+    <function-decl name='_PyWeakref_ClearRef' mangled-name='_PyWeakref_ClearRef' filepath='Objects/weakrefobject.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWeakref_ClearRef'>
+      <parameter type-id='type-id-543' name='self' filepath='Objects/weakrefobject.c' line='92' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyException_SetContext' mangled-name='PyException_SetContext' filepath='Objects/exceptions.c' line='357' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_SetContext'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/exceptions.c' line='357' column='1'/>
-      <parameter type-id='type-id-100' name='context' filepath='Objects/exceptions.c' line='357' column='1'/>
+    <function-decl name='_PyWeakref_GetWeakrefCount' mangled-name='_PyWeakref_GetWeakrefCount' filepath='Objects/weakrefobject.c' line='11' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWeakref_GetWeakrefCount'>
+      <parameter type-id='type-id-543' name='head' filepath='Objects/weakrefobject.c' line='11' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceMatrixMultiply' mangled-name='PyNumber_InPlaceMatrixMultiply' filepath='./Include/abstract.h' line='546' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyException_GetContext' mangled-name='PyException_GetContext' filepath='Objects/exceptions.c' line='348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_GetContext'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyNumber_MatrixMultiply' mangled-name='PyNumber_MatrixMultiply' filepath='./Include/abstract.h' line='413' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyException_SetCause' mangled-name='PyException_SetCause' filepath='Objects/exceptions.c' line='340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_SetCause'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/exceptions.c' line='340' column='1'/>
-      <parameter type-id='type-id-100' name='cause' filepath='Objects/exceptions.c' line='340' column='1'/>
+    <function-decl name='PyNumber_InPlaceOr' mangled-name='PyNumber_InPlaceOr' filepath='./Include/abstract.h' line='605' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyException_GetCause' mangled-name='PyException_GetCause' filepath='Objects/exceptions.c' line='331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_GetCause'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyNumber_InPlaceXor' mangled-name='PyNumber_InPlaceXor' filepath='./Include/abstract.h' line='599' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyException_SetTraceback' mangled-name='PyException_SetTraceback' filepath='Objects/exceptions.c' line='325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_SetTraceback'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyNumber_InPlaceAnd' mangled-name='PyNumber_InPlaceAnd' filepath='./Include/abstract.h' line='593' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyException_GetTraceback' mangled-name='PyException_GetTraceback' filepath='Objects/exceptions.c' line='316' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyException_GetTraceback'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyNumber_InPlaceRshift' mangled-name='PyNumber_InPlaceRshift' filepath='./Include/abstract.h' line='587' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/genericaliasobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='Py_GenericAliasType' type-id='type-id-182' mangled-name='Py_GenericAliasType' visibility='default' filepath='./Include/genericaliasobject.h' line='9' column='1' elf-symbol-id='Py_GenericAliasType'/>
-    <function-decl name='Py_GenericAlias' mangled-name='Py_GenericAlias' filepath='Objects/genericaliasobject.c' line='641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GenericAlias'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='445' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='445' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyNumber_InPlaceLshift' mangled-name='PyNumber_InPlaceLshift' filepath='./Include/abstract.h' line='581' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/genobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyGen_Type' type-id='type-id-182' mangled-name='PyGen_Type' visibility='default' filepath='./Include/genobject.h' line='36' column='1' elf-symbol-id='PyGen_Type'/>
-    <var-decl name='PyCoro_Type' type-id='type-id-182' mangled-name='PyCoro_Type' visibility='default' filepath='./Include/genobject.h' line='56' column='1' elf-symbol-id='PyCoro_Type'/>
-    <var-decl name='_PyCoroWrapper_Type' type-id='type-id-182' mangled-name='_PyCoroWrapper_Type' visibility='default' filepath='./Include/genobject.h' line='57' column='1' elf-symbol-id='_PyCoroWrapper_Type'/>
-    <var-decl name='PyAsyncGen_Type' type-id='type-id-182' mangled-name='PyAsyncGen_Type' visibility='default' filepath='./Include/genobject.h' line='82' column='1' elf-symbol-id='PyAsyncGen_Type'/>
-    <var-decl name='_PyAsyncGenASend_Type' type-id='type-id-182' mangled-name='_PyAsyncGenASend_Type' visibility='default' filepath='./Include/genobject.h' line='83' column='1' elf-symbol-id='_PyAsyncGenASend_Type'/>
-    <var-decl name='_PyAsyncGenWrappedValue_Type' type-id='type-id-182' mangled-name='_PyAsyncGenWrappedValue_Type' visibility='default' filepath='./Include/genobject.h' line='84' column='1' elf-symbol-id='_PyAsyncGenWrappedValue_Type'/>
-    <var-decl name='_PyAsyncGenAThrow_Type' type-id='type-id-182' mangled-name='_PyAsyncGenAThrow_Type' visibility='default' filepath='./Include/genobject.h' line='85' column='1' elf-symbol-id='_PyAsyncGenAThrow_Type'/>
-    <function-decl name='PyAsyncGen_New' mangled-name='PyAsyncGen_New' filepath='Objects/genobject.c' line='1418' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAsyncGen_New'>
-      <parameter type-id='type-id-312' name='f' filepath='Objects/genobject.c' line='1418' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/genobject.c' line='1418' column='1'/>
-      <parameter type-id='type-id-100' name='qualname' filepath='Objects/genobject.c' line='1418' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyNumber_InPlacePower' mangled-name='PyNumber_InPlacePower' filepath='./Include/abstract.h' line='574' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyCoro_New' mangled-name='PyCoro_New' filepath='Objects/genobject.c' line='1139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCoro_New'>
-      <parameter type-id='type-id-312' name='f' filepath='Objects/genobject.c' line='1139' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/genobject.c' line='1139' column='1'/>
-      <parameter type-id='type-id-100' name='qualname' filepath='Objects/genobject.c' line='1139' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyNumber_InPlaceRemainder' mangled-name='PyNumber_InPlaceRemainder' filepath='./Include/abstract.h' line='567' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceTrueDivide' mangled-name='PyNumber_InPlaceTrueDivide' filepath='./Include/abstract.h' line='560' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceFloorDivide' mangled-name='PyNumber_InPlaceFloorDivide' filepath='./Include/abstract.h' line='553' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceMultiply' mangled-name='PyNumber_InPlaceMultiply' filepath='./Include/abstract.h' line='542' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceSubtract' mangled-name='PyNumber_InPlaceSubtract' filepath='./Include/abstract.h' line='536' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_InPlaceAdd' mangled-name='PyNumber_InPlaceAdd' filepath='./Include/abstract.h' line='530' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_Xor' mangled-name='PyNumber_Xor' filepath='./Include/abstract.h' line='487' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_And' mangled-name='PyNumber_And' filepath='./Include/abstract.h' line='482' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_Rshift' mangled-name='PyNumber_Rshift' filepath='./Include/abstract.h' line='476' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_Lshift' mangled-name='PyNumber_Lshift' filepath='./Include/abstract.h' line='470' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyGen_New' mangled-name='PyGen_New' filepath='Objects/genobject.c' line='820' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGen_New'>
-      <parameter type-id='type-id-312' name='f' filepath='Objects/genobject.c' line='820' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyNumber_Invert' mangled-name='PyNumber_Invert' filepath='./Include/abstract.h' line='465' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyGen_NewWithQualName' mangled-name='PyGen_NewWithQualName' filepath='Objects/genobject.c' line='814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGen_NewWithQualName'>
-      <parameter type-id='type-id-312' name='f' filepath='Objects/genobject.c' line='814' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/genobject.c' line='814' column='1'/>
-      <parameter type-id='type-id-100' name='qualname' filepath='Objects/genobject.c' line='814' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyNumber_Absolute' mangled-name='PyNumber_Absolute' filepath='./Include/abstract.h' line='460' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyGen_FetchStopIterationValue' mangled-name='_PyGen_FetchStopIterationValue' filepath='Objects/genobject.c' line='595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGen_FetchStopIterationValue'>
-      <parameter type-id='type-id-303' name='pvalue' filepath='Objects/genobject.c' line='595' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyNumber_Positive' mangled-name='PyNumber_Positive' filepath='./Include/abstract.h' line='455' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyGen_SetStopIterationValue' mangled-name='_PyGen_SetStopIterationValue' filepath='Objects/genobject.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGen_SetStopIterationValue'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='284' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyNumber_Power' mangled-name='PyNumber_Power' filepath='./Include/abstract.h' line='444' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='768' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-456' visibility='default' filepath='./Include/genobject.h' line='31' column='1' id='type-id-457'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='gi_frame' type-id='type-id-312' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='gi_running' type-id='type-id-1' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='gi_code' type-id='type-id-100' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='gi_weakreflist' type-id='type-id-100' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='gi_name' type-id='type-id-100' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='gi_qualname' type-id='type-id-100' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='gi_exc_state' type-id='type-id-236' visibility='default' filepath='./Include/genobject.h' line='33' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='PyGenObject' type-id='type-id-457' filepath='./Include/genobject.h' line='34' column='1' id='type-id-456'/>
-    <pointer-type-def type-id='type-id-456' size-in-bits='64' id='type-id-458'/>
-    <function-decl name='_PyGen_Send' mangled-name='_PyGen_Send' filepath='Objects/genobject.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGen_Send'>
-      <parameter type-id='type-id-458' name='gen' filepath='Objects/genobject.c' line='283' column='1'/>
-      <parameter type-id='type-id-100' name='arg' filepath='Objects/genobject.c' line='283' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyNumber_Divmod' mangled-name='PyNumber_Divmod' filepath='./Include/abstract.h' line='438' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyGen_Finalize' mangled-name='_PyGen_Finalize' filepath='Objects/genobject.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGen_Finalize'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/genobject.c' line='44' column='1'/>
+    <function-decl name='PyNumber_TrueDivide' mangled-name='PyNumber_TrueDivide' filepath='./Include/abstract.h' line='426' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/fileobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyStdPrinter_Type' type-id='type-id-182' mangled-name='PyStdPrinter_Type' visibility='default' filepath='./Include/cpython/fileobject.h' line='14' column='1' elf-symbol-id='PyStdPrinter_Type'/>
-    <function-decl name='PyFile_OpenCode' mangled-name='PyFile_OpenCode' filepath='Objects/fileobject.c' line='574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_OpenCode'>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/bytesobject.c' line='128' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyFile_OpenCodeObject' mangled-name='PyFile_OpenCodeObject' filepath='Objects/fileobject.c' line='548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_OpenCodeObject'>
-      <parameter type-id='type-id-100' name='path' filepath='Objects/fileobject.c' line='548' column='1'/>
+  <abi-instr version='1.0' address-size='64' path='Python/_warnings.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_PyWarnings_Init' mangled-name='_PyWarnings_Init' filepath='Python/_warnings.c' line='1383' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWarnings_Init'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyFile_SetOpenCodeHook' mangled-name='PyFile_SetOpenCodeHook' filepath='Objects/fileobject.c' line='528' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_SetOpenCodeHook'>
-      <parameter type-id='type-id-335' name='hook' filepath='Objects/fileobject.c' line='528' column='1'/>
-      <parameter type-id='type-id-32' name='userData' filepath='Objects/fileobject.c' line='528' column='1'/>
+    <function-decl name='PyErr_WarnExplicitFormat' mangled-name='PyErr_WarnExplicitFormat' filepath='Python/_warnings.c' line='1255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnExplicitFormat'>
+      <parameter type-id='type-id-100' name='category' filepath='Python/_warnings.c' line='1255' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/_warnings.c' line='1256' column='1'/>
+      <parameter type-id='type-id-8' name='lineno' filepath='Python/_warnings.c' line='1256' column='1'/>
+      <parameter type-id='type-id-3' name='module_str' filepath='Python/_warnings.c' line='1257' column='1'/>
+      <parameter type-id='type-id-100' name='registry' filepath='Python/_warnings.c' line='1257' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/_warnings.c' line='1258' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyFile_NewStdPrinter' mangled-name='PyFile_NewStdPrinter' filepath='Objects/fileobject.c' line='341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_NewStdPrinter'>
-      <parameter type-id='type-id-8' name='fd' filepath='Objects/fileobject.c' line='341' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyErr_WarnExplicit' mangled-name='PyErr_WarnExplicit' filepath='Python/_warnings.c' line='1227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnExplicit'>
+      <parameter type-id='type-id-100' name='category' filepath='Python/_warnings.c' line='1227' column='1'/>
+      <parameter type-id='type-id-3' name='text' filepath='Python/_warnings.c' line='1227' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/_warnings.c' line='1228' column='1'/>
+      <parameter type-id='type-id-8' name='lineno' filepath='Python/_warnings.c' line='1228' column='1'/>
+      <parameter type-id='type-id-3' name='module_str' filepath='Python/_warnings.c' line='1229' column='1'/>
+      <parameter type-id='type-id-100' name='registry' filepath='Python/_warnings.c' line='1229' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_UniversalNewlineFgets' mangled-name='Py_UniversalNewlineFgets' filepath='Objects/fileobject.c' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UniversalNewlineFgets'>
-      <parameter type-id='type-id-7' name='buf' filepath='Objects/fileobject.c' line='241' column='1'/>
-      <parameter type-id='type-id-8' name='n' filepath='Objects/fileobject.c' line='241' column='1'/>
-      <parameter type-id='type-id-223' name='stream' filepath='Objects/fileobject.c' line='241' column='1'/>
-      <parameter type-id='type-id-100' name='fobj' filepath='Objects/fileobject.c' line='241' column='1'/>
-      <return type-id='type-id-7'/>
+    <function-decl name='PyErr_WarnExplicitObject' mangled-name='PyErr_WarnExplicitObject' filepath='Python/_warnings.c' line='1211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnExplicitObject'>
+      <parameter type-id='type-id-100' name='category' filepath='Python/_warnings.c' line='1211' column='1'/>
+      <parameter type-id='type-id-100' name='message' filepath='Python/_warnings.c' line='1211' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/_warnings.c' line='1212' column='1'/>
+      <parameter type-id='type-id-8' name='lineno' filepath='Python/_warnings.c' line='1212' column='1'/>
+      <parameter type-id='type-id-100' name='module' filepath='Python/_warnings.c' line='1213' column='1'/>
+      <parameter type-id='type-id-100' name='registry' filepath='Python/_warnings.c' line='1213' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_AsFileDescriptor' mangled-name='PyObject_AsFileDescriptor' filepath='Objects/fileobject.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_AsFileDescriptor'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/fileobject.c' line='180' column='1'/>
+    <function-decl name='PyErr_WarnEx' mangled-name='PyErr_WarnEx' filepath='Python/_warnings.c' line='1187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnEx'>
+      <parameter type-id='type-id-100' name='category' filepath='Python/_warnings.c' line='1187' column='1'/>
+      <parameter type-id='type-id-3' name='text' filepath='Python/_warnings.c' line='1187' column='1'/>
+      <parameter type-id='type-id-15' name='stack_level' filepath='Python/_warnings.c' line='1187' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyFile_WriteString' mangled-name='PyFile_WriteString' filepath='Objects/fileobject.c' line='150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_WriteString'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/fileobject.c' line='150' column='1'/>
-      <parameter type-id='type-id-100' name='f' filepath='Objects/fileobject.c' line='150' column='1'/>
+    <function-decl name='PyErr_ResourceWarning' mangled-name='PyErr_ResourceWarning' filepath='Python/_warnings.c' line='1168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_ResourceWarning'>
+      <parameter type-id='type-id-100' name='source' filepath='Python/_warnings.c' line='1168' column='1'/>
+      <parameter type-id='type-id-15' name='stack_level' filepath='Python/_warnings.c' line='1168' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/_warnings.c' line='1169' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyFile_WriteObject' mangled-name='PyFile_WriteObject' filepath='Objects/fileobject.c' line='119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_WriteObject'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/fileobject.c' line='119' column='1'/>
-      <parameter type-id='type-id-100' name='f' filepath='Objects/fileobject.c' line='119' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Objects/fileobject.c' line='119' column='1'/>
+    <function-decl name='PyErr_WarnFormat' mangled-name='PyErr_WarnFormat' filepath='Python/_warnings.c' line='1134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnFormat'>
+      <parameter type-id='type-id-100' name='source' filepath='Python/_warnings.c' line='1168' column='1'/>
+      <parameter type-id='type-id-15' name='stack_level' filepath='Python/_warnings.c' line='1168' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/_warnings.c' line='1169' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyFile_GetLine' mangled-name='PyFile_GetLine' filepath='Objects/fileobject.c' line='54' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_GetLine'>
-      <parameter type-id='type-id-100' name='f' filepath='Objects/fileobject.c' line='54' column='1'/>
-      <parameter type-id='type-id-8' name='n' filepath='Objects/fileobject.c' line='54' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyModule_AddObject' mangled-name='PyModule_AddObject' filepath='./Include/modsupport.h' line='139' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFile_FromFd' mangled-name='PyFile_FromFd' filepath='Objects/fileobject.c' line='33' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFile_FromFd'>
-      <parameter type-id='type-id-8' name='fd' filepath='Objects/fileobject.c' line='33' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Objects/fileobject.c' line='33' column='1'/>
-      <parameter type-id='type-id-3' name='mode' filepath='Objects/fileobject.c' line='33' column='1'/>
-      <parameter type-id='type-id-8' name='buffering' filepath='Objects/fileobject.c' line='33' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/fileobject.c' line='33' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/fileobject.c' line='34' column='1'/>
-      <parameter type-id='type-id-3' name='newline' filepath='Objects/fileobject.c' line='34' column='1'/>
-      <parameter type-id='type-id-8' name='closefd' filepath='Objects/fileobject.c' line='34' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyUnicode_Splitlines' mangled-name='PyUnicode_Splitlines' filepath='./Include/unicodeobject.h' line='842' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/floatobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyFloat_Type' type-id='type-id-182' mangled-name='PyFloat_Type' visibility='default' filepath='./Include/floatobject.h' line='21' column='1' elf-symbol-id='PyFloat_Type'/>
-    <qualified-type-def type-id='type-id-418' const='yes' id='type-id-459'/>
-    <pointer-type-def type-id='type-id-459' size-in-bits='64' id='type-id-460'/>
-    <function-decl name='_PyFloat_Unpack8' mangled-name='_PyFloat_Unpack8' filepath='Objects/floatobject.c' line='2509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Unpack8'>
-      <parameter type-id='type-id-460' name='p' filepath='Objects/floatobject.c' line='2509' column='1'/>
-      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2509' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='PyList_GetItem' mangled-name='PyList_GetItem' filepath='./Include/listobject.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyFloat_Unpack4' mangled-name='_PyFloat_Unpack4' filepath='Objects/floatobject.c' line='2431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Unpack4'>
-      <parameter type-id='type-id-460' name='p' filepath='Objects/floatobject.c' line='2509' column='1'/>
-      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2509' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='PyFrame_GetBack' mangled-name='PyFrame_GetBack' filepath='./Include/cpython/frameobject.h' line='80' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyFloat_Unpack2' mangled-name='_PyFloat_Unpack2' filepath='Objects/floatobject.c' line='2361' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Unpack2'>
-      <parameter type-id='type-id-460' name='p' filepath='Objects/floatobject.c' line='2361' column='1'/>
-      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2361' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='PyObject_IsSubclass' mangled-name='PyObject_IsSubclass' filepath='./Include/abstract.h' line='839' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyFloat_Pack8' mangled-name='_PyFloat_Pack8' filepath='Objects/floatobject.c' line='2232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Pack8'>
-      <parameter type-id='type-id-441' name='x' filepath='Objects/floatobject.c' line='2232' column='1'/>
-      <parameter type-id='type-id-416' name='p' filepath='Objects/floatobject.c' line='2232' column='1'/>
-      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2232' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyUnicode_GetLength' mangled-name='PyUnicode_GetLength' filepath='./Include/unicodeobject.h' line='169' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyFloat_Pack4' mangled-name='_PyFloat_Pack4' filepath='Objects/floatobject.c' line='2125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Pack4'>
-      <parameter type-id='type-id-441' name='x' filepath='Objects/floatobject.c' line='2232' column='1'/>
-      <parameter type-id='type-id-416' name='p' filepath='Objects/floatobject.c' line='2232' column='1'/>
-      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2232' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyFile_WriteObject' mangled-name='PyFile_WriteObject' filepath='./Include/fileobject.h' line='15' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyFloat_Pack2' mangled-name='_PyFloat_Pack2' filepath='Objects/floatobject.c' line='2021' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_Pack2'>
-      <parameter type-id='type-id-441' name='x' filepath='Objects/floatobject.c' line='2021' column='1'/>
-      <parameter type-id='type-id-416' name='p' filepath='Objects/floatobject.c' line='2021' column='1'/>
-      <parameter type-id='type-id-8' name='le' filepath='Objects/floatobject.c' line='2021' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyFile_WriteString' mangled-name='PyFile_WriteString' filepath='./Include/fileobject.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyFloat_DebugMallocStats' mangled-name='_PyFloat_DebugMallocStats' filepath='Objects/floatobject.c' line='2001' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_DebugMallocStats'>
-      <parameter type-id='type-id-223' name='out' filepath='Objects/floatobject.c' line='2001' column='1'/>
+    <function-decl name='_PySys_GetObjectId' mangled-name='_PySys_GetObjectId' filepath='./Include/cpython/sysmodule.h' line='9' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFloat_AsDouble' mangled-name='PyFloat_AsDouble' filepath='Objects/floatobject.c' line='233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_AsDouble'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/floatobject.c' line='233' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='_Py_DisplaySourceLine' mangled-name='_Py_DisplaySourceLine' filepath='./Include/cpython/traceback.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFloat_FromString' mangled-name='PyFloat_FromString' filepath='Objects/floatobject.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_FromString'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/floatobject.c' line='167' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_IsFinalizing' mangled-name='_Py_IsFinalizing' filepath='./Include/cpython/pylifecycle.h' line='57' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFloat_FromDouble' mangled-name='PyFloat_FromDouble' filepath='Objects/floatobject.c' line='116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_FromDouble'>
-      <parameter type-id='type-id-441' name='fval' filepath='Objects/floatobject.c' line='116' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyUnicode_Contains' mangled-name='PyUnicode_Contains' filepath='./Include/unicodeobject.h' line='1013' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFloat_GetInfo' mangled-name='PyFloat_GetInfo' filepath='Objects/floatobject.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_GetInfo'>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/Python-ast.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyInit__ast' mangled-name='PyInit__ast' filepath='Python/Python-ast.c' line='10796' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__ast'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyFloat_GetMin' mangled-name='PyFloat_GetMin' filepath='Objects/floatobject.c' line='37' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_GetMin'>
-      <return type-id='type-id-441'/>
+    <function-decl name='PyType_FromSpec' mangled-name='PyType_FromSpec' filepath='./Include/object.h' line='209' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFloat_GetMax' mangled-name='PyFloat_GetMax' filepath='Objects/floatobject.c' line='31' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFloat_GetMax'>
-      <return type-id='type-id-441'/>
+    <function-decl name='Py_EnterRecursiveCall' mangled-name='Py_EnterRecursiveCall' filepath='./Include/ceval.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_LeaveRecursiveCall' mangled-name='Py_LeaveRecursiveCall' filepath='./Include/ceval.h' line='68' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyType_GenericNew' mangled-name='PyType_GenericNew' filepath='./Include/object.h' line='235' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyModuleDef_Init' mangled-name='PyModuleDef_Init' filepath='./Include/moduleobject.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyModule_AddIntConstant' mangled-name='PyModule_AddIntConstant' filepath='./Include/modsupport.h' line='140' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySequence_Index' mangled-name='PySequence_Index' filepath='./Include/abstract.h' line='739' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyType_GetSlot' mangled-name='PyType_GetSlot' filepath='./Include/object.h' line='214' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_CallFunction' mangled-name='PyObject_CallFunction' filepath='./Include/abstract.h' line='182' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/frameobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyFrame_Type' type-id='type-id-182' mangled-name='PyFrame_Type' visibility='default' filepath='./Include/cpython/frameobject.h' line='52' column='1' elf-symbol-id='PyFrame_Type'/>
-    <function-decl name='PyFrame_GetBack' mangled-name='PyFrame_GetBack' filepath='Objects/frameobject.c' line='1223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_GetBack'>
-      <parameter type-id='type-id-312' name='frame' filepath='Objects/frameobject.c' line='1223' column='1'/>
-      <return type-id='type-id-312'/>
+  <abi-instr version='1.0' address-size='64' path='Python/ast.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_PyAST_GetDocString' mangled-name='_PyAST_GetDocString' filepath='Python/ast.c' line='5844' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAST_GetDocString'>
+      <parameter type-id='type-id-28' name='body' filepath='Python/ast.c' line='5844' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyFrame_GetCode' mangled-name='PyFrame_GetCode' filepath='Objects/frameobject.c' line='1212' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_GetCode'>
-      <parameter type-id='type-id-312' name='frame' filepath='Objects/frameobject.c' line='1212' column='1'/>
-      <return type-id='type-id-412'/>
+    <qualified-type-def type-id='type-id-10' const='yes' id='type-id-545'/>
+    <pointer-type-def type-id='type-id-545' size-in-bits='64' id='type-id-546'/>
+    <function-decl name='PyAST_FromNode' mangled-name='PyAST_FromNode' filepath='Python/ast.c' line='939' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAST_FromNode'>
+      <parameter type-id='type-id-546' name='n' filepath='Python/ast.c' line='939' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/ast.c' line='939' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/ast.c' line='939' column='1'/>
+      <parameter type-id='type-id-230' name='arena' filepath='Python/ast.c' line='940' column='1'/>
+      <return type-id='type-id-204'/>
+    </function-decl>
+    <function-decl name='PyAST_FromNodeObject' mangled-name='PyAST_FromNodeObject' filepath='Python/ast.c' line='763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAST_FromNodeObject'>
+      <parameter type-id='type-id-546' name='n' filepath='Python/ast.c' line='763' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/ast.c' line='763' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/ast.c' line='764' column='1'/>
+      <parameter type-id='type-id-230' name='arena' filepath='Python/ast.c' line='764' column='1'/>
+      <return type-id='type-id-204'/>
+    </function-decl>
+    <function-decl name='PyAST_Validate' mangled-name='PyAST_Validate' filepath='Python/ast.c' line='531' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAST_Validate'>
+      <parameter type-id='type-id-204' name='mod' filepath='Python/ast.c' line='531' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='strstr' mangled-name='strstr' filepath='/usr/include/string.h' line='330' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyParser_SimpleParseStringFlagsFilename' mangled-name='PyParser_SimpleParseStringFlagsFilename' filepath='./Include/pythonrun.h' line='84' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/ast_opt.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-547' visibility='default' filepath='./Include/compile.h' line='94' column='1' id='type-id-548'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='optimize' type-id='type-id-8' visibility='default' filepath='./Include/compile.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='ff_features' type-id='type-id-8' visibility='default' filepath='./Include/compile.h' line='96' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='_PyASTOptimizeState' type-id='type-id-548' filepath='./Include/compile.h' line='97' column='1' id='type-id-547'/>
+    <pointer-type-def type-id='type-id-547' size-in-bits='64' id='type-id-549'/>
+    <function-decl name='_PyAST_Optimize' mangled-name='_PyAST_Optimize' filepath='Python/ast_opt.c' line='747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAST_Optimize'>
+      <parameter type-id='type-id-204' name='mod' filepath='Python/ast_opt.c' line='747' column='1'/>
+      <parameter type-id='type-id-230' name='arena' filepath='Python/ast_opt.c' line='747' column='1'/>
+      <parameter type-id='type-id-549' name='state' filepath='Python/ast_opt.c' line='747' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyFrame_DebugMallocStats' mangled-name='_PyFrame_DebugMallocStats' filepath='Objects/frameobject.c' line='1201' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFrame_DebugMallocStats'>
-      <parameter type-id='type-id-223' name='out' filepath='Objects/floatobject.c' line='2001' column='1'/>
+    <function-decl name='_PyAST_GetDocString' mangled-name='_PyAST_GetDocString' filepath='./Include/ast.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFrame_LocalsToFast' mangled-name='PyFrame_LocalsToFast' filepath='Objects/frameobject.c' line='1138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_LocalsToFast'>
-      <parameter type-id='type-id-312' name='f' filepath='Objects/frameobject.c' line='1138' column='1'/>
-      <parameter type-id='type-id-8' name='clear' filepath='Objects/frameobject.c' line='1138' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/ast_unparse.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyUnicode_Find' mangled-name='PyUnicode_Find' filepath='./Include/unicodeobject.h' line='922' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFrame_FastToLocals' mangled-name='PyFrame_FastToLocals' filepath='Objects/frameobject.c' line='1126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_FastToLocals'>
-      <parameter type-id='type-id-312' name='f' filepath='Objects/frameobject.c' line='1126' column='1'/>
+    <function-decl name='PyUnicode_Replace' mangled-name='PyUnicode_Replace' filepath='./Include/unicodeobject.h' line='953' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFrame_FastToLocalsWithError' mangled-name='PyFrame_FastToLocalsWithError' filepath='Objects/frameobject.c' line='1066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_FastToLocalsWithError'>
-      <parameter type-id='type-id-312' name='f' filepath='Objects/frameobject.c' line='1066' column='1'/>
-      <return type-id='type-id-8'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/bltinmodule.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyFilter_Type' type-id='type-id-182' mangled-name='PyFilter_Type' visibility='default' filepath='./Include/bltinmodule.h' line='7' column='1' elf-symbol-id='PyFilter_Type'/>
+    <var-decl name='PyMap_Type' type-id='type-id-182' mangled-name='PyMap_Type' visibility='default' filepath='./Include/bltinmodule.h' line='8' column='1' elf-symbol-id='PyMap_Type'/>
+    <var-decl name='PyZip_Type' type-id='type-id-182' mangled-name='PyZip_Type' visibility='default' filepath='./Include/bltinmodule.h' line='9' column='1' elf-symbol-id='PyZip_Type'/>
+    <function-decl name='_PyModule_CreateInitialized' mangled-name='_PyModule_CreateInitialized' filepath='./Include/modsupport.h' line='221' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-422' size-in-bits='64' id='type-id-461'/>
-    <function-decl name='PyFrame_BlockPop' mangled-name='PyFrame_BlockPop' filepath='Objects/frameobject.c' line='957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_BlockPop'>
-      <parameter type-id='type-id-312' name='f' filepath='Objects/frameobject.c' line='957' column='1'/>
-      <return type-id='type-id-461'/>
+    <function-decl name='_PyArg_ParseStackAndKeywords' mangled-name='_PyArg_ParseStackAndKeywords' filepath='./Include/modsupport.h' line='116' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFrame_BlockSetup' mangled-name='PyFrame_BlockSetup' filepath='Objects/frameobject.c' line='944' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_BlockSetup'>
-      <parameter type-id='type-id-312' name='f' filepath='Objects/frameobject.c' line='944' column='1'/>
-      <parameter type-id='type-id-8' name='type' filepath='Objects/frameobject.c' line='944' column='1'/>
-      <parameter type-id='type-id-8' name='handler' filepath='Objects/frameobject.c' line='944' column='1'/>
-      <parameter type-id='type-id-8' name='level' filepath='Objects/frameobject.c' line='944' column='1'/>
+    <function-decl name='PyImport_ImportModuleLevelObject' mangled-name='PyImport_ImportModuleLevelObject' filepath='./Include/import.h' line='60' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFrame_New' mangled-name='PyFrame_New' filepath='Objects/frameobject.c' line='931' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_New'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Objects/frameobject.c' line='931' column='1'/>
-      <parameter type-id='type-id-412' name='code' filepath='Objects/frameobject.c' line='931' column='1'/>
-      <parameter type-id='type-id-100' name='globals' filepath='Objects/frameobject.c' line='932' column='1'/>
-      <parameter type-id='type-id-100' name='locals' filepath='Objects/frameobject.c' line='932' column='1'/>
-      <return type-id='type-id-312'/>
+    <function-decl name='PyMapping_SetItemString' mangled-name='PyMapping_SetItemString' filepath='./Include/abstract.h' line='832' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFrame_GetLineNumber' mangled-name='PyFrame_GetLineNumber' filepath='Objects/frameobject.c' line='35' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrame_GetLineNumber'>
-      <parameter type-id='type-id-312' name='f' filepath='Objects/frameobject.c' line='35' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyType_CalculateMetaclass' mangled-name='_PyType_CalculateMetaclass' filepath='./Include/cpython/object.h' line='304' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/funcobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyFunction_Type' type-id='type-id-182' mangled-name='PyFunction_Type' visibility='default' filepath='./Include/funcobject.h' line='44' column='1' elf-symbol-id='PyFunction_Type'/>
-    <var-decl name='PyClassMethod_Type' type-id='type-id-182' mangled-name='PyClassMethod_Type' visibility='default' filepath='./Include/funcobject.h' line='88' column='1' elf-symbol-id='PyClassMethod_Type'/>
-    <var-decl name='PyStaticMethod_Type' type-id='type-id-182' mangled-name='PyStaticMethod_Type' visibility='default' filepath='./Include/funcobject.h' line='89' column='1' elf-symbol-id='PyStaticMethod_Type'/>
-    <function-decl name='PyStaticMethod_New' mangled-name='PyStaticMethod_New' filepath='Objects/funcobject.c' line='1037' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStaticMethod_New'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyEval_EvalCodeEx' mangled-name='PyEval_EvalCodeEx' filepath='./Include/eval.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyClassMethod_New' mangled-name='PyClassMethod_New' filepath='Objects/funcobject.c' line='857' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyClassMethod_New'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyFile_GetLine' mangled-name='PyFile_GetLine' filepath='./Include/fileobject.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFunction_SetAnnotations' mangled-name='PyFunction_SetAnnotations' filepath='Objects/funcobject.c' line='218' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_SetAnnotations'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/funcobject.c' line='218' column='1'/>
-      <parameter type-id='type-id-100' name='annotations' filepath='Objects/funcobject.c' line='218' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_SourceAsString' mangled-name='_Py_SourceAsString' filepath='./Include/pythonrun.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFunction_GetAnnotations' mangled-name='PyFunction_GetAnnotations' filepath='Objects/funcobject.c' line='208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetAnnotations'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyEval_MergeCompilerFlags' mangled-name='PyEval_MergeCompilerFlags' filepath='./Include/cpython/ceval.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFunction_SetClosure' mangled-name='PyFunction_SetClosure' filepath='Objects/funcobject.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_SetClosure'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/funcobject.c' line='218' column='1'/>
-      <parameter type-id='type-id-100' name='annotations' filepath='Objects/funcobject.c' line='218' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyRun_StringFlags' mangled-name='PyRun_StringFlags' filepath='./Include/pythonrun.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFunction_GetClosure' mangled-name='PyFunction_GetClosure' filepath='Objects/funcobject.c' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetClosure'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyEval_GetBuiltins' mangled-name='PyEval_GetBuiltins' filepath='./Include/ceval.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFunction_SetKwDefaults' mangled-name='PyFunction_SetKwDefaults' filepath='Objects/funcobject.c' line='155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_SetKwDefaults'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/funcobject.c' line='218' column='1'/>
-      <parameter type-id='type-id-100' name='annotations' filepath='Objects/funcobject.c' line='218' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyEval_EvalCode' mangled-name='PyEval_EvalCode' filepath='./Include/eval.h' line='10' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFunction_GetKwDefaults' mangled-name='PyFunction_GetKwDefaults' filepath='Objects/funcobject.c' line='145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetKwDefaults'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyArena_New' mangled-name='PyArena_New' filepath='./Include/pyarena.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFunction_SetDefaults' mangled-name='PyFunction_SetDefaults' filepath='Objects/funcobject.c' line='125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_SetDefaults'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/funcobject.c' line='218' column='1'/>
-      <parameter type-id='type-id-100' name='annotations' filepath='Objects/funcobject.c' line='218' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyAST_obj2mod' mangled-name='PyAST_obj2mod' filepath='./Include/Python-ast.h' line='690' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFunction_GetDefaults' mangled-name='PyFunction_GetDefaults' filepath='Objects/funcobject.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetDefaults'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyAST_Validate' mangled-name='PyAST_Validate' filepath='./Include/ast.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFunction_GetModule' mangled-name='PyFunction_GetModule' filepath='Objects/funcobject.c' line='105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetModule'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyAST_CompileObject' mangled-name='PyAST_CompileObject' filepath='./Include/compile.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFunction_GetGlobals' mangled-name='PyFunction_GetGlobals' filepath='Objects/funcobject.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetGlobals'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyArena_Free' mangled-name='PyArena_Free' filepath='./Include/pyarena.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFunction_GetCode' mangled-name='PyFunction_GetCode' filepath='Objects/funcobject.c' line='85' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_GetCode'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyAST_Check' mangled-name='PyAST_Check' filepath='./Include/Python-ast.h' line='691' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFunction_New' mangled-name='PyFunction_New' filepath='Objects/funcobject.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_New'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_CompileStringObject' mangled-name='Py_CompileStringObject' filepath='./Include/pythonrun.h' line='117' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFunction_NewWithQualName' mangled-name='PyFunction_NewWithQualName' filepath='Objects/funcobject.c' line='11' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFunction_NewWithQualName'>
-      <parameter type-id='type-id-100' name='code' filepath='Objects/funcobject.c' line='11' column='1'/>
-      <parameter type-id='type-id-100' name='globals' filepath='Objects/funcobject.c' line='11' column='1'/>
-      <parameter type-id='type-id-100' name='qualname' filepath='Objects/funcobject.c' line='11' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyUnicode_FSDecoder' mangled-name='PyUnicode_FSDecoder' filepath='./Include/unicodeobject.h' line='753' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/interpreteridobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='_PyInterpreterID_Type' type-id='type-id-182' mangled-name='_PyInterpreterID_Type' visibility='default' filepath='./Include/cpython/interpreteridobject.h' line='11' column='1' elf-symbol-id='_PyInterpreterID_Type'/>
-    <class-decl name='_is' size-in-bits='45184' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp.h' line='71' column='1' id='type-id-462'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='next' type-id='type-id-314' visibility='default' filepath='./Include/internal/pycore_interp.h' line='73' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='tstate_head' type-id='type-id-232' visibility='default' filepath='./Include/internal/pycore_interp.h' line='74' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='runtime' type-id='type-id-463' visibility='default' filepath='./Include/internal/pycore_interp.h' line='79' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='id' type-id='type-id-316' visibility='default' filepath='./Include/internal/pycore_interp.h' line='81' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='id_refcount' type-id='type-id-316' visibility='default' filepath='./Include/internal/pycore_interp.h' line='82' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='requires_idref' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='83' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='id_mutex' type-id='type-id-317' visibility='default' filepath='./Include/internal/pycore_interp.h' line='84' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='finalizing' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='86' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='ceval' type-id='type-id-318' visibility='default' filepath='./Include/internal/pycore_interp.h' line='88' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='4928'>
-        <var-decl name='gc' type-id='type-id-319' visibility='default' filepath='./Include/internal/pycore_interp.h' line='89' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='6848'>
-        <var-decl name='modules' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='91' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='6912'>
-        <var-decl name='modules_by_index' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='92' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='6976'>
-        <var-decl name='sysdict' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='93' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='7040'>
-        <var-decl name='builtins' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='94' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='7104'>
-        <var-decl name='importlib' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='95' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='7168'>
-        <var-decl name='num_threads' type-id='type-id-12' visibility='default' filepath='./Include/internal/pycore_interp.h' line='98' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='7232'>
-        <var-decl name='pythread_stacksize' type-id='type-id-191' visibility='default' filepath='./Include/internal/pycore_interp.h' line='103' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='7296'>
-        <var-decl name='codec_search_path' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='105' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='7360'>
-        <var-decl name='codec_search_cache' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='106' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='7424'>
-        <var-decl name='codec_error_registry' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='107' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='7488'>
-        <var-decl name='codecs_initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='108' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='7552'>
-        <var-decl name='unicode' type-id='type-id-320' visibility='default' filepath='./Include/internal/pycore_interp.h' line='110' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='7808'>
-        <var-decl name='config' type-id='type-id-321' visibility='default' filepath='./Include/internal/pycore_interp.h' line='112' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='10944'>
-        <var-decl name='dlopenflags' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_interp.h' line='114' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='11008'>
-        <var-decl name='dict' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='117' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='11072'>
-        <var-decl name='builtins_copy' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='119' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='11136'>
-        <var-decl name='import_func' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='120' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='11200'>
-        <var-decl name='eval_frame' type-id='type-id-322' visibility='default' filepath='./Include/internal/pycore_interp.h' line='122' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='11264'>
-        <var-decl name='co_extra_user_count' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_interp.h' line='124' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='11328'>
-        <var-decl name='co_extra_freefuncs' type-id='type-id-323' visibility='default' filepath='./Include/internal/pycore_interp.h' line='125' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='27648'>
-        <var-decl name='before_forkers' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='128' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='27712'>
-        <var-decl name='after_forkers_parent' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='129' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='27776'>
-        <var-decl name='after_forkers_child' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='130' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='27840'>
-        <var-decl name='pyexitfunc' type-id='type-id-112' visibility='default' filepath='./Include/internal/pycore_interp.h' line='133' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='27904'>
-        <var-decl name='pyexitmodule' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='134' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='27968'>
-        <var-decl name='tstate_next_unique_id' type-id='type-id-238' visibility='default' filepath='./Include/internal/pycore_interp.h' line='136' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='28032'>
-        <var-decl name='warnings' type-id='type-id-324' visibility='default' filepath='./Include/internal/pycore_interp.h' line='138' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='28288'>
-        <var-decl name='audit_hooks' type-id='type-id-100' visibility='default' filepath='./Include/internal/pycore_interp.h' line='140' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='28352'>
-        <var-decl name='parser' type-id='type-id-325' visibility='default' filepath='./Include/internal/pycore_interp.h' line='147' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='28416'>
-        <var-decl name='small_ints' type-id='type-id-326' visibility='default' filepath='./Include/internal/pycore_interp.h' line='155' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='pyruntimestate' is-struct='yes' visibility='default' is-declaration-only='yes' id='type-id-464'/>
-    <pointer-type-def type-id='type-id-464' size-in-bits='64' id='type-id-463'/>
-    <function-decl name='_PyInterpreterID_LookUp' mangled-name='_PyInterpreterID_LookUp' filepath='Objects/interpreteridobject.c' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterID_LookUp'>
-      <parameter type-id='type-id-100' name='requested_id' filepath='Objects/interpreteridobject.c' line='281' column='1'/>
-      <return type-id='type-id-311'/>
+    <function-decl name='PyCallIter_New' mangled-name='PyCallIter_New' filepath='./Include/iterobject.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_GetIDObject' mangled-name='_PyInterpreterState_GetIDObject' filepath='Objects/interpreteridobject.c' line='268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetIDObject'>
-      <parameter type-id='type-id-311' name='interp' filepath='Objects/interpreteridobject.c' line='268' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyUnicode_FromOrdinal' mangled-name='PyUnicode_FromOrdinal' filepath='./Include/unicodeobject.h' line='329' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterID_New' mangled-name='_PyInterpreterID_New' filepath='Objects/interpreteridobject.c' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterID_New'>
-      <parameter type-id='type-id-316' name='id' filepath='Objects/interpreteridobject.c' line='262' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PySys_GetObject' mangled-name='PySys_GetObject' filepath='./Include/sysmodule.h' line='10' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/iterobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PySeqIter_Type' type-id='type-id-182' mangled-name='PySeqIter_Type' visibility='default' filepath='./Include/iterobject.h' line='8' column='1' elf-symbol-id='PySeqIter_Type'/>
-    <var-decl name='PyCallIter_Type' type-id='type-id-182' mangled-name='PyCallIter_Type' visibility='default' filepath='./Include/iterobject.h' line='9' column='1' elf-symbol-id='PyCallIter_Type'/>
-    <function-decl name='PyCallIter_New' mangled-name='PyCallIter_New' filepath='Objects/iterobject.c' line='181' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCallIter_New'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='445' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='445' column='1'/>
+  <abi-instr version='1.0' address-size='64' path='Python/ceval.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='_Py_CheckRecursionLimit' type-id='type-id-8' mangled-name='_Py_CheckRecursionLimit' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='62' column='1' elf-symbol-id='_Py_CheckRecursionLimit'/>
+    <function-decl name='Py_EnterRecursiveCall' mangled-name='Py_EnterRecursiveCall' filepath='Python/ceval.c' line='5687' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EnterRecursiveCall'>
+      <parameter type-id='type-id-3' name='where' filepath='Python/ceval.c' line='5687' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyEval_RequestCodeExtraIndex' mangled-name='_PyEval_RequestCodeExtraIndex' filepath='Python/ceval.c' line='5604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_RequestCodeExtraIndex'>
+      <parameter type-id='type-id-106' name='free' filepath='Python/ceval.c' line='5604' column='1'/>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='_PyEval_SliceIndexNotNone' mangled-name='_PyEval_SliceIndexNotNone' filepath='Python/ceval.c' line='5155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SliceIndexNotNone'>
+      <parameter type-id='type-id-100' name='v' filepath='Python/ceval.c' line='5155' column='1'/>
+      <parameter type-id='type-id-158' name='pi' filepath='Python/ceval.c' line='5155' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyEval_SliceIndex' mangled-name='_PyEval_SliceIndex' filepath='Python/ceval.c' line='5133' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SliceIndex'>
+      <parameter type-id='type-id-100' name='v' filepath='Python/ceval.c' line='5133' column='1'/>
+      <parameter type-id='type-id-158' name='pi' filepath='Python/ceval.c' line='5133' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyEval_GetFuncDesc' mangled-name='PyEval_GetFuncDesc' filepath='Python/ceval.c' line='4982' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFuncDesc'>
+      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4106' column='1'/>
+      <return type-id='type-id-3'/>
+    </function-decl>
+    <function-decl name='PyEval_GetFuncName' mangled-name='PyEval_GetFuncName' filepath='Python/ceval.c' line='4969' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFuncName'>
+      <parameter type-id='type-id-100' name='func' filepath='Python/ceval.c' line='4969' column='1'/>
+      <return type-id='type-id-3'/>
+    </function-decl>
+    <function-decl name='PyEval_MergeCompilerFlags' mangled-name='PyEval_MergeCompilerFlags' filepath='Python/ceval.c' line='4944' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_MergeCompilerFlags'>
+      <parameter type-id='type-id-226' name='cf' filepath='Python/ceval.c' line='4944' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyEval_GetGlobals' mangled-name='PyEval_GetGlobals' filepath='Python/ceval.c' line='4931' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetGlobals'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PySeqIter_New' mangled-name='PySeqIter_New' filepath='Objects/iterobject.c' line='15' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySeqIter_New'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
+    <function-decl name='PyEval_GetLocals' mangled-name='PyEval_GetLocals' filepath='Python/ceval.c' line='4913' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetLocals'>
       <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/listobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyList_Type' type-id='type-id-182' mangled-name='PyList_Type' visibility='default' filepath='./Include/listobject.h' line='20' column='1' elf-symbol-id='PyList_Type'/>
-    <var-decl name='PyListIter_Type' type-id='type-id-182' mangled-name='PyListIter_Type' visibility='default' filepath='./Include/listobject.h' line='21' column='1' elf-symbol-id='PyListIter_Type'/>
-    <var-decl name='PyListRevIter_Type' type-id='type-id-182' mangled-name='PyListRevIter_Type' visibility='default' filepath='./Include/listobject.h' line='22' column='1' elf-symbol-id='PyListRevIter_Type'/>
-    <function-decl name='PyList_AsTuple' mangled-name='PyList_AsTuple' filepath='Objects/listobject.c' line='2485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_AsTuple'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+    <function-decl name='_PyEval_GetBuiltinId' mangled-name='_PyEval_GetBuiltinId' filepath='Python/ceval.c' line='4899' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetBuiltinId'>
+      <parameter type-id='type-id-476' name='name' filepath='Python/ceval.c' line='4899' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyList_Reverse' mangled-name='PyList_Reverse' filepath='Objects/listobject.c' line='2471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Reverse'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='284' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyEval_GetBuiltins' mangled-name='PyEval_GetBuiltins' filepath='Python/ceval.c' line='4887' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetBuiltins'>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyList_Sort' mangled-name='PyList_Sort' filepath='Objects/listobject.c' line='2442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Sort'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyEval_GetFrame' mangled-name='PyEval_GetFrame' filepath='Python/ceval.c' line='4880' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFrame'>
+      <return type-id='type-id-312'/>
     </function-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-465' visibility='default' filepath='./Include/cpython/listobject.h' line='9' column='1' id='type-id-466'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-77' visibility='default' filepath='./Include/cpython/listobject.h' line='10' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='ob_item' type-id='type-id-303' visibility='default' filepath='./Include/cpython/listobject.h' line='12' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='allocated' type-id='type-id-15' visibility='default' filepath='./Include/cpython/listobject.h' line='25' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='PyListObject' type-id='type-id-466' filepath='./Include/cpython/listobject.h' line='26' column='1' id='type-id-465'/>
-    <pointer-type-def type-id='type-id-465' size-in-bits='64' id='type-id-467'/>
-    <function-decl name='_PyList_Extend' mangled-name='_PyList_Extend' filepath='Objects/listobject.c' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyList_Extend'>
-      <parameter type-id='type-id-467' name='self' filepath='Objects/listobject.c' line='959' column='1'/>
-      <parameter type-id='type-id-100' name='iterable' filepath='Objects/listobject.c' line='959' column='1'/>
+    <function-decl name='_PyEval_GetAsyncGenFinalizer' mangled-name='_PyEval_GetAsyncGenFinalizer' filepath='Python/ceval.c' line='4873' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetAsyncGenFinalizer'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyList_SetSlice' mangled-name='PyList_SetSlice' filepath='Objects/listobject.c' line='704' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_SetSlice'>
-      <parameter type-id='type-id-100' name='a' filepath='Objects/listobject.c' line='704' column='1'/>
-      <parameter type-id='type-id-15' name='ilow' filepath='Objects/listobject.c' line='704' column='1'/>
-      <parameter type-id='type-id-15' name='ihigh' filepath='Objects/listobject.c' line='704' column='1'/>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/listobject.c' line='704' column='1'/>
+    <function-decl name='_PyEval_SetAsyncGenFinalizer' mangled-name='_PyEval_SetAsyncGenFinalizer' filepath='Python/ceval.c' line='4859' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetAsyncGenFinalizer'>
+      <parameter type-id='type-id-100' name='finalizer' filepath='Python/ceval.c' line='4859' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyList_GetSlice' mangled-name='PyList_GetSlice' filepath='Objects/listobject.c' line='465' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_GetSlice'>
-      <parameter type-id='type-id-100' name='a' filepath='Objects/listobject.c' line='465' column='1'/>
-      <parameter type-id='type-id-15' name='ilow' filepath='Objects/listobject.c' line='465' column='1'/>
-      <parameter type-id='type-id-15' name='ihigh' filepath='Objects/listobject.c' line='465' column='1'/>
+    <function-decl name='_PyEval_GetAsyncGenFirstiter' mangled-name='_PyEval_GetAsyncGenFirstiter' filepath='Python/ceval.c' line='4852' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetAsyncGenFirstiter'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyList_Append' mangled-name='PyList_Append' filepath='Objects/listobject.c' line='313' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Append'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
+    <function-decl name='_PyEval_SetAsyncGenFirstiter' mangled-name='_PyEval_SetAsyncGenFirstiter' filepath='Python/ceval.c' line='4838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetAsyncGenFirstiter'>
+      <parameter type-id='type-id-100' name='finalizer' filepath='Python/ceval.c' line='4859' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyList_Insert' mangled-name='PyList_Insert' filepath='Objects/listobject.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Insert'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/listobject.c' line='283' column='1'/>
-      <parameter type-id='type-id-15' name='where' filepath='Objects/listobject.c' line='283' column='1'/>
-      <parameter type-id='type-id-100' name='newitem' filepath='Objects/listobject.c' line='283' column='1'/>
+    <function-decl name='_PyEval_GetCoroutineOriginTrackingDepth' mangled-name='_PyEval_GetCoroutineOriginTrackingDepth' filepath='Python/ceval.c' line='4831' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetCoroutineOriginTrackingDepth'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyList_SetItem' mangled-name='PyList_SetItem' filepath='Objects/listobject.c' line='229' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_SetItem'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1793' column='1'/>
-      <parameter type-id='type-id-15' name='i' filepath='Objects/abstract.c' line='1793' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1793' column='1'/>
+    <function-decl name='_PyEval_SetCoroutineOriginTrackingDepth' mangled-name='_PyEval_SetCoroutineOriginTrackingDepth' filepath='Python/ceval.c' line='4824' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetCoroutineOriginTrackingDepth'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='4824' column='1'/>
+      <parameter type-id='type-id-8' name='new_depth' filepath='Python/ceval.c' line='4824' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_SetTrace' mangled-name='PyEval_SetTrace' filepath='Python/ceval.c' line='4813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetTrace'>
+      <parameter type-id='type-id-235' name='func' filepath='Python/ceval.c' line='4813' column='1'/>
+      <parameter type-id='type-id-100' name='arg' filepath='Python/ceval.c' line='4813' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyEval_SetTrace' mangled-name='_PyEval_SetTrace' filepath='Python/ceval.c' line='4778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetTrace'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='4778' column='1'/>
+      <parameter type-id='type-id-235' name='func' filepath='Python/ceval.c' line='4778' column='1'/>
+      <parameter type-id='type-id-100' name='arg' filepath='Python/ceval.c' line='4778' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyEval_SetProfile' mangled-name='PyEval_SetProfile' filepath='Python/ceval.c' line='4768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetProfile'>
+      <parameter type-id='type-id-235' name='func' filepath='Python/ceval.c' line='4813' column='1'/>
+      <parameter type-id='type-id-100' name='arg' filepath='Python/ceval.c' line='4813' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyEval_SetProfile' mangled-name='_PyEval_SetProfile' filepath='Python/ceval.c' line='4737' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetProfile'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='4737' column='1'/>
+      <parameter type-id='type-id-235' name='func' filepath='Python/ceval.c' line='4737' column='1'/>
+      <parameter type-id='type-id-100' name='arg' filepath='Python/ceval.c' line='4737' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyList_GetItem' mangled-name='PyList_GetItem' filepath='Objects/listobject.c' line='209' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_GetItem'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/listobject.c' line='209' column='1'/>
-      <parameter type-id='type-id-15' name='i' filepath='Objects/listobject.c' line='209' column='1'/>
+    <function-decl name='_PyEval_CallTracing' mangled-name='_PyEval_CallTracing' filepath='Python/ceval.c' line='4683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_CallTracing'>
+      <parameter type-id='type-id-100' name='func' filepath='Python/ceval.c' line='4683' column='1'/>
+      <parameter type-id='type-id-100' name='args' filepath='Python/ceval.c' line='4683' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyList_Size' mangled-name='PyList_Size' filepath='Objects/listobject.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_Size'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2203' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyEval_EvalCodeEx' mangled-name='PyEval_EvalCodeEx' filepath='Python/ceval.c' line='4369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_EvalCodeEx'>
+      <parameter type-id='type-id-100' name='_co' filepath='Python/ceval.c' line='4369' column='1'/>
+      <parameter type-id='type-id-100' name='globals' filepath='Python/ceval.c' line='4369' column='1'/>
+      <parameter type-id='type-id-100' name='locals' filepath='Python/ceval.c' line='4369' column='1'/>
+      <parameter type-id='type-id-190' name='args' filepath='Python/ceval.c' line='4370' column='1'/>
+      <parameter type-id='type-id-8' name='argcount' filepath='Python/ceval.c' line='4370' column='1'/>
+      <parameter type-id='type-id-190' name='kws' filepath='Python/ceval.c' line='4371' column='1'/>
+      <parameter type-id='type-id-8' name='kwcount' filepath='Python/ceval.c' line='4371' column='1'/>
+      <parameter type-id='type-id-190' name='defs' filepath='Python/ceval.c' line='4372' column='1'/>
+      <parameter type-id='type-id-8' name='defcount' filepath='Python/ceval.c' line='4372' column='1'/>
+      <parameter type-id='type-id-100' name='kwdefs' filepath='Python/ceval.c' line='4373' column='1'/>
+      <parameter type-id='type-id-100' name='closure' filepath='Python/ceval.c' line='4373' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyList_New' mangled-name='PyList_New' filepath='Objects/listobject.c' line='133' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyList_New'>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/listobject.c' line='133' column='1'/>
+    <function-decl name='_PyEval_EvalCodeWithName' mangled-name='_PyEval_EvalCodeWithName' filepath='Python/ceval.c' line='4350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_EvalCodeWithName'>
+      <parameter type-id='type-id-100' name='_co' filepath='Python/ceval.c' line='4350' column='1'/>
+      <parameter type-id='type-id-100' name='globals' filepath='Python/ceval.c' line='4350' column='1'/>
+      <parameter type-id='type-id-100' name='locals' filepath='Python/ceval.c' line='4350' column='1'/>
+      <parameter type-id='type-id-190' name='args' filepath='Python/ceval.c' line='4351' column='1'/>
+      <parameter type-id='type-id-15' name='argcount' filepath='Python/ceval.c' line='4351' column='1'/>
+      <parameter type-id='type-id-190' name='kwnames' filepath='Python/ceval.c' line='4352' column='1'/>
+      <parameter type-id='type-id-190' name='kwargs' filepath='Python/ceval.c' line='4352' column='1'/>
+      <parameter type-id='type-id-15' name='kwcount' filepath='Python/ceval.c' line='4353' column='1'/>
+      <parameter type-id='type-id-8' name='kwstep' filepath='Python/ceval.c' line='4353' column='1'/>
+      <parameter type-id='type-id-190' name='defs' filepath='Python/ceval.c' line='4354' column='1'/>
+      <parameter type-id='type-id-15' name='defcount' filepath='Python/ceval.c' line='4354' column='1'/>
+      <parameter type-id='type-id-100' name='kwdefs' filepath='Python/ceval.c' line='4355' column='1'/>
+      <parameter type-id='type-id-100' name='closure' filepath='Python/ceval.c' line='4355' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Python/ceval.c' line='4356' column='1'/>
+      <parameter type-id='type-id-100' name='qualname' filepath='Python/ceval.c' line='4356' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyList_DebugMallocStats' mangled-name='_PyList_DebugMallocStats' filepath='Objects/listobject.c' line='125' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyList_DebugMallocStats'>
-      <parameter type-id='type-id-223' name='out' filepath='Objects/floatobject.c' line='2001' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='_PyEval_EvalFrameDefault' mangled-name='_PyEval_EvalFrameDefault' filepath='Python/ceval.c' line='918' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_EvalFrameDefault'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='918' column='1'/>
+      <parameter type-id='type-id-312' name='f' filepath='Python/ceval.c' line='918' column='1'/>
+      <parameter type-id='type-id-8' name='throwflag' filepath='Python/ceval.c' line='918' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/longobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='_PyLong_Zero' type-id='type-id-100' mangled-name='_PyLong_Zero' visibility='default' filepath='./Include/longobject.h' line='232' column='1' elf-symbol-id='_PyLong_Zero'/>
-    <var-decl name='_PyLong_One' type-id='type-id-100' mangled-name='_PyLong_One' visibility='default' filepath='./Include/longobject.h' line='233' column='1' elf-symbol-id='_PyLong_One'/>
-
-    <array-type-def dimensions='1' type-id='type-id-418' size-in-bits='2048' id='type-id-468'>
-      <subrange length='256' type-id='type-id-33' id='type-id-469'/>
-
-    </array-type-def>
-    <var-decl name='_PyLong_DigitValue' type-id='type-id-468' mangled-name='_PyLong_DigitValue' visibility='default' filepath='./Include/longobject.h' line='79' column='1' elf-symbol-id='_PyLong_DigitValue'/>
-    <var-decl name='PyLong_Type' type-id='type-id-182' mangled-name='PyLong_Type' visibility='default' filepath='./Include/longobject.h' line='12' column='1' elf-symbol-id='PyLong_Type'/>
-    <function-decl name='PyLong_GetInfo' mangled-name='PyLong_GetInfo' filepath='Objects/longobject.c' line='5736' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_GetInfo'>
+    <function-decl name='PyEval_EvalFrameEx' mangled-name='PyEval_EvalFrameEx' filepath='Python/ceval.c' line='846' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_EvalFrameEx'>
+      <parameter type-id='type-id-312' name='f' filepath='Python/ceval.c' line='846' column='1'/>
+      <parameter type-id='type-id-8' name='throwflag' filepath='Python/ceval.c' line='846' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyLong_DivmodNear' mangled-name='_PyLong_DivmodNear' filepath='Objects/longobject.c' line='5190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_DivmodNear'>
-      <parameter type-id='type-id-100' name='a' filepath='Objects/longobject.c' line='5190' column='1'/>
-      <parameter type-id='type-id-100' name='b' filepath='Objects/longobject.c' line='5190' column='1'/>
+    <function-decl name='PyEval_EvalFrame' mangled-name='PyEval_EvalFrame' filepath='Python/ceval.c' line='838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_EvalFrame'>
+      <parameter type-id='type-id-312' name='f' filepath='Python/ceval.c' line='838' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyLong_GCD' mangled-name='_PyLong_GCD' filepath='Objects/longobject.c' line='4828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_GCD'>
-      <parameter type-id='type-id-100' name='aarg' filepath='Objects/longobject.c' line='4828' column='1'/>
-      <parameter type-id='type-id-100' name='barg' filepath='Objects/longobject.c' line='4828' column='1'/>
+    <function-decl name='PyEval_EvalCode' mangled-name='PyEval_EvalCode' filepath='Python/ceval.c' line='824' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_EvalCode'>
+      <parameter type-id='type-id-100' name='co' filepath='Python/ceval.c' line='824' column='1'/>
+      <parameter type-id='type-id-100' name='globals' filepath='Python/ceval.c' line='824' column='1'/>
+      <parameter type-id='type-id-100' name='locals' filepath='Python/ceval.c' line='824' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyLong_Lshift' mangled-name='_PyLong_Lshift' filepath='Objects/longobject.c' line='4636' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Lshift'>
-      <parameter type-id='type-id-100' name='a' filepath='Objects/longobject.c' line='4636' column='1'/>
-      <parameter type-id='type-id-191' name='shiftby' filepath='Objects/longobject.c' line='4636' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_SetRecursionLimit' mangled-name='Py_SetRecursionLimit' filepath='Python/ceval.c' line='765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetRecursionLimit'>
+      <parameter type-id='type-id-8' name='new_limit' filepath='Python/ceval.c' line='765' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_GetRecursionLimit' mangled-name='Py_GetRecursionLimit' filepath='Python/ceval.c' line='758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetRecursionLimit'>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='Py_MakePendingCalls' mangled-name='Py_MakePendingCalls' filepath='Python/ceval.c' line='695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_MakePendingCalls'>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='Py_AddPendingCall' mangled-name='Py_AddPendingCall' filepath='Python/ceval.c' line='573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_AddPendingCall'>
+      <parameter type-id='type-id-388' name='func' filepath='Python/ceval.c' line='573' column='1'/>
+      <parameter type-id='type-id-32' name='arg' filepath='Python/ceval.c' line='573' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyEval_AddPendingCall' mangled-name='_PyEval_AddPendingCall' filepath='Python/ceval.c' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_AddPendingCall'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/ceval.c' line='554' column='1'/>
+      <parameter type-id='type-id-388' name='func' filepath='Python/ceval.c' line='555' column='1'/>
+      <parameter type-id='type-id-32' name='arg' filepath='Python/ceval.c' line='555' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyEval_SignalReceived' mangled-name='_PyEval_SignalReceived' filepath='Python/ceval.c' line='497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SignalReceived'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/ceval.c' line='497' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_RestoreThread' mangled-name='PyEval_RestoreThread' filepath='Python/ceval.c' line='463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_RestoreThread'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='463' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_SaveThread' mangled-name='PyEval_SaveThread' filepath='Python/ceval.c' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SaveThread'>
+      <return type-id='type-id-409'/>
+    </function-decl>
+    <function-decl name='_PyEval_SignalAsyncExc' mangled-name='_PyEval_SignalAsyncExc' filepath='Python/ceval.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SignalAsyncExc'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='442' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_ReleaseThread' mangled-name='PyEval_ReleaseThread' filepath='Python/ceval.c' line='394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ReleaseThread'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='394' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_AcquireThread' mangled-name='PyEval_AcquireThread' filepath='Python/ceval.c' line='381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_AcquireThread'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='381' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_ReleaseLock' mangled-name='PyEval_ReleaseLock' filepath='Python/ceval.c' line='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ReleaseLock'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_AcquireLock' mangled-name='PyEval_AcquireLock' filepath='Python/ceval.c' line='350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_AcquireLock'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_InitThreads' mangled-name='PyEval_InitThreads' filepath='Python/ceval.c' line='315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_InitThreads'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_ThreadsInitialized' mangled-name='PyEval_ThreadsInitialized' filepath='Python/ceval.c' line='265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ThreadsInitialized'>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_Py_FatalError_TstateNULL' mangled-name='_Py_FatalError_TstateNULL' filepath='Python/ceval.c' line='249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FatalError_TstateNULL'>
+      <parameter type-id='type-id-3' name='func' filepath='Python/ceval.c' line='249' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyEval_GetSwitchInterval' mangled-name='_PyEval_GetSwitchInterval' filepath='Python/ceval_gil.h' line='327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetSwitchInterval'>
+      <return type-id='type-id-33'/>
+    </function-decl>
+    <function-decl name='_PyEval_SetSwitchInterval' mangled-name='_PyEval_SetSwitchInterval' filepath='Python/ceval_gil.h' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetSwitchInterval'>
+      <parameter type-id='type-id-33' name='microseconds' filepath='Python/ceval_gil.h' line='321' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_CheckRecursiveCall' mangled-name='_Py_CheckRecursiveCall' filepath='Python/ceval.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_CheckRecursiveCall'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='780' column='1'/>
+      <parameter type-id='type-id-3' name='where' filepath='Python/ceval.c' line='780' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Append' mangled-name='PyUnicode_Append' filepath='./Include/unicodeobject.h' line='807' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFrame_FastToLocalsWithError' mangled-name='PyFrame_FastToLocalsWithError' filepath='./Include/cpython/frameobject.h' line='75' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_SetObject' mangled-name='_PyErr_SetObject' filepath='./Include/internal/pycore_pyerrors.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PySys_Audit' mangled-name='_PySys_Audit' filepath='./Include/internal/pycore_sysmodule.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_Fetch' mangled-name='_PyErr_Fetch' filepath='./Include/internal/pycore_pyerrors.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_Restore' mangled-name='_PyErr_Restore' filepath='./Include/internal/pycore_pyerrors.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_NormalizeException' mangled-name='_PyErr_NormalizeException' filepath='./Include/internal/pycore_pyerrors.h' line='73' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCell_New' mangled-name='PyCell_New' filepath='./Include/cellobject.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyAsyncGen_New' mangled-name='PyAsyncGen_New' filepath='./Include/genobject.h' line='87' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyGen_NewWithQualName' mangled-name='PyGen_NewWithQualName' filepath='./Include/genobject.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCoro_New' mangled-name='PyCoro_New' filepath='./Include/genobject.h' line='61' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Concat' mangled-name='PyUnicode_Concat' filepath='./Include/unicodeobject.h' line='799' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyCode_CheckLineNumber' mangled-name='_PyCode_CheckLineNumber' filepath='./Include/cpython/code.h' line='146' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_Format' mangled-name='PyUnicode_Format' filepath='./Include/unicodeobject.h' line='1002' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyException_SetCause' mangled-name='PyException_SetCause' filepath='./Include/pyerrors.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_GetTopmostException' mangled-name='_PyErr_GetTopmostException' filepath='./Include/cpython/pyerrors.h' line='78' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyCoro_GetAwaitableIter' mangled-name='_PyCoro_GetAwaitableIter' filepath='./Include/genobject.h' line='60' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyGen_yf' mangled-name='_PyGen_yf' filepath='./Include/genobject.h' line='47' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_ExceptionMatches' mangled-name='_PyErr_ExceptionMatches' filepath='./Include/internal/pycore_pyerrors.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyGen_FetchStopIterationValue' mangled-name='_PyGen_FetchStopIterationValue' filepath='./Include/genobject.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyGen_Send' mangled-name='_PyGen_Send' filepath='./Include/genobject.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAsyncGenValueWrapperNew' mangled-name='_PyAsyncGenValueWrapperNew' filepath='./Include/genobject.h' line='92' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFrame_BlockPop' mangled-name='PyFrame_BlockPop' filepath='./Include/cpython/frameobject.h' line='69' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_Clear' mangled-name='_PyErr_Clear' filepath='./Include/internal/pycore_pyerrors.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_LoadGlobal' mangled-name='_PyDict_LoadGlobal' filepath='./Include/cpython/dictobject.h' line='78' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_JoinArray' mangled-name='_PyUnicode_JoinArray' filepath='./Include/cpython/unicodeobject.h' line='1022' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_MergeEx' mangled-name='_PyDict_MergeEx' filepath='./Include/cpython/dictobject.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFrame_LocalsToFast' mangled-name='PyFrame_LocalsToFast' filepath='./Include/cpython/frameobject.h' line='73' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyModuleSpec_IsInitializing' mangled-name='_PyModuleSpec_IsInitializing' filepath='./Include/moduleobject.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_SetImportError' mangled-name='PyErr_SetImportError' filepath='./Include/pyerrors.h' line='211' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyModule_GetFilenameObject' mangled-name='PyModule_GetFilenameObject' filepath='./Include/moduleobject.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFrame_BlockSetup' mangled-name='PyFrame_BlockSetup' filepath='./Include/cpython/frameobject.h' line='68' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_Rshift' mangled-name='_PyLong_Rshift' filepath='Objects/longobject.c' line='4565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Rshift'>
-      <parameter type-id='type-id-100' name='a' filepath='Objects/longobject.c' line='4636' column='1'/>
-      <parameter type-id='type-id-191' name='shiftby' filepath='Objects/longobject.c' line='4636' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyObject_FastCallDictTstate' mangled-name='_PyObject_FastCallDictTstate' filepath='./Include/internal/pycore_call.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyLong_AsDouble' mangled-name='PyLong_AsDouble' filepath='Objects/longobject.c' line='2977' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsDouble'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/longobject.c' line='2977' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='PyFunction_NewWithQualName' mangled-name='PyFunction_NewWithQualName' filepath='./Include/funcobject.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_Frexp' mangled-name='_PyLong_Frexp' filepath='Objects/longobject.c' line='2865' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Frexp'>
-      <parameter type-id='type-id-430' name='a' filepath='Objects/longobject.c' line='2865' column='1'/>
-      <parameter type-id='type-id-158' name='e' filepath='Objects/longobject.c' line='2865' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='PySlice_New' mangled-name='PySlice_New' filepath='./Include/sliceobject.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyLong_FromUnicodeObject' mangled-name='PyLong_FromUnicodeObject' filepath='Objects/longobject.c' line='2625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromUnicodeObject'>
-      <parameter type-id='type-id-100' name='u' filepath='Objects/longobject.c' line='2625' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2625' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyException_SetTraceback' mangled-name='PyException_SetTraceback' filepath='./Include/pyerrors.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-453' size-in-bits='64' id='type-id-470'/>
-    <function-decl name='PyLong_FromUnicode' mangled-name='PyLong_FromUnicode' filepath='Objects/longobject.c' line='2614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromUnicode'>
-      <parameter type-id='type-id-470' name='u' filepath='Objects/longobject.c' line='2614' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/longobject.c' line='2614' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2614' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyThread_get_thread_ident' mangled-name='PyThread_get_thread_ident' filepath='./Include/pythread.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_FromBytes' mangled-name='_PyLong_FromBytes' filepath='Objects/longobject.c' line='2594' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromBytes'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/longobject.c' line='2594' column='1'/>
-      <parameter type-id='type-id-15' name='len' filepath='Objects/longobject.c' line='2594' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2594' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyErr_CheckSignalsTstate' mangled-name='_PyErr_CheckSignalsTstate' filepath='./Include/internal/pycore_pyerrors.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyLong_FromString' mangled-name='PyLong_FromString' filepath='Objects/longobject.c' line='2233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromString'>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/longobject.c' line='2233' column='1'/>
-      <parameter type-id='type-id-304' name='pend' filepath='Objects/longobject.c' line='2233' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2233' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyErr_SetNone' mangled-name='_PyErr_SetNone' filepath='./Include/internal/pycore_pyerrors.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_FormatBytesWriter' mangled-name='_PyLong_FormatBytesWriter' filepath='Objects/longobject.c' line='2082' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FormatBytesWriter'>
-      <parameter type-id='type-id-302' name='writer' filepath='Objects/longobject.c' line='2082' column='1'/>
-      <parameter type-id='type-id-7' name='str' filepath='Objects/longobject.c' line='2082' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/longobject.c' line='2083' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2084' column='1'/>
-      <parameter type-id='type-id-8' name='alternate' filepath='Objects/longobject.c' line='2084' column='1'/>
-      <return type-id='type-id-7'/>
+    <function-decl name='_PyThreadState_Swap' mangled-name='_PyThreadState_Swap' filepath='./Include/internal/pycore_pystate.h' line='117' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='448' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-471' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='606' column='1' id='type-id-472'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='buffer' type-id='type-id-100' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='607' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='data' type-id='type-id-32' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='608' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='kind' type-id='type-id-473' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='609' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='maxchar' type-id='type-id-474' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='610' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='size' type-id='type-id-15' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='611' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='pos' type-id='type-id-15' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='612' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='min_length' type-id='type-id-15' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='615' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='min_char' type-id='type-id-474' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='618' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='416'>
-        <var-decl name='overallocate' type-id='type-id-418' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='621' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='424'>
-        <var-decl name='readonly' type-id='type-id-418' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='625' column='1'/>
-      </data-member>
-    </class-decl>
-    <enum-decl name='PyUnicode_Kind' filepath='./Include/cpython/unicodeobject.h' line='313' column='1' id='type-id-473'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='PyUnicode_WCHAR_KIND' value='0'/>
-      <enumerator name='PyUnicode_1BYTE_KIND' value='1'/>
-      <enumerator name='PyUnicode_2BYTE_KIND' value='2'/>
-      <enumerator name='PyUnicode_4BYTE_KIND' value='4'/>
-    </enum-decl>
-    <typedef-decl name='Py_UCS4' type-id='type-id-293' filepath='./Include/unicodeobject.h' line='102' column='1' id='type-id-474'/>
-    <typedef-decl name='_PyUnicodeWriter' type-id='type-id-472' filepath='./Include/cpython/unicodeobject.h' line='626' column='1' id='type-id-471'/>
-    <pointer-type-def type-id='type-id-471' size-in-bits='64' id='type-id-475'/>
-    <function-decl name='_PyLong_FormatWriter' mangled-name='_PyLong_FormatWriter' filepath='Objects/longobject.c' line='2069' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FormatWriter'>
-      <parameter type-id='type-id-475' name='writer' filepath='Objects/longobject.c' line='2069' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/longobject.c' line='2070' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/longobject.c' line='2071' column='1'/>
-      <parameter type-id='type-id-8' name='alternate' filepath='Objects/longobject.c' line='2071' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyCode_InitOpcache' mangled-name='_PyCode_InitOpcache' filepath='./Include/internal/pycore_code.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_Format' mangled-name='_PyLong_Format' filepath='Objects/longobject.c' line='2055' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Format'>
-      <parameter type-id='type-id-100' name='n' filepath='Objects/abstract.c' line='1569' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/abstract.c' line='1569' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyTraceBack_Here' mangled-name='PyTraceBack_Here' filepath='./Include/traceback.h' line='9' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_Size_t_Converter' mangled-name='_PyLong_Size_t_Converter' filepath='Objects/longobject.c' line='1541' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Size_t_Converter'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-32' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyThread_free_lock' mangled-name='PyThread_free_lock' filepath='./Include/pythread.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_UnsignedLongLong_Converter' mangled-name='_PyLong_UnsignedLongLong_Converter' filepath='Objects/longobject.c' line='1524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_UnsignedLongLong_Converter'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-32' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyErr_Print' mangled-name='_PyErr_Print' filepath='./Include/internal/pycore_pylifecycle.h' line='105' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_UnsignedLong_Converter' mangled-name='_PyLong_UnsignedLong_Converter' filepath='Objects/longobject.c' line='1507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_UnsignedLong_Converter'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-32' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyGILState_GetThisThreadState' mangled-name='PyGILState_GetThisThreadState' filepath='./Include/pystate.h' line='138' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_UnsignedInt_Converter' mangled-name='_PyLong_UnsignedInt_Converter' filepath='Objects/longobject.c' line='1485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_UnsignedInt_Converter'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-32' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyThread_at_fork_reinit' mangled-name='_PyThread_at_fork_reinit' filepath='./Include/pythread.h' line='44' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_UnsignedShort_Converter' mangled-name='_PyLong_UnsignedShort_Converter' filepath='Objects/longobject.c' line='1463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_UnsignedShort_Converter'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-32' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyThreadState_DeleteExcept' mangled-name='_PyThreadState_DeleteExcept' filepath='./Include/internal/pycore_pystate.h' line='113' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyLong_AsLongLongAndOverflow' mangled-name='PyLong_AsLongLongAndOverflow' filepath='Objects/longobject.c' line='1387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsLongLongAndOverflow'>
-      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='1387' column='1'/>
-      <parameter type-id='type-id-227' name='overflow' filepath='Objects/longobject.c' line='1387' column='1'/>
-      <return type-id='type-id-362'/>
+    <function-decl name='pthread_cond_destroy' mangled-name='pthread_cond_destroy' filepath='/usr/include/pthread.h' line='970' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyLong_AsUnsignedLongLongMask' mangled-name='PyLong_AsUnsignedLongLongMask' filepath='Objects/longobject.c' line='1353' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsUnsignedLongLongMask'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/longobject.c' line='1353' column='1'/>
-      <return type-id='type-id-365'/>
+    <function-decl name='pthread_mutex_destroy' mangled-name='pthread_mutex_destroy' filepath='/usr/include/pthread.h' line='730' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyLong_AsUnsignedLongLong' mangled-name='PyLong_AsUnsignedLongLong' filepath='Objects/longobject.c' line='1288' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsUnsignedLongLong'>
-      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='1288' column='1'/>
-      <return type-id='type-id-365'/>
+    <function-decl name='PyThread_init_thread' mangled-name='PyThread_init_thread' filepath='./Include/pythread.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyLong_AsLongLong' mangled-name='PyLong_AsLongLong' filepath='Objects/longobject.c' line='1236' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsLongLong'>
-      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='1236' column='1'/>
-      <return type-id='type-id-362'/>
+    <function-decl name='_PyThread_cond_after' mangled-name='_PyThread_cond_after' filepath='Python/condvar.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyLong_FromSsize_t' mangled-name='PyLong_FromSsize_t' filepath='Objects/longobject.c' line='1192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromSsize_t'>
-      <parameter type-id='type-id-15' name='ival' filepath='Objects/longobject.c' line='1192' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='pthread_cond_timedwait' mangled-name='pthread_cond_timedwait' filepath='/usr/include/pthread.h' line='997' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyLong_FromLongLong' mangled-name='PyLong_FromLongLong' filepath='Objects/longobject.c' line='1145' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromLongLong'>
-      <parameter type-id='type-id-362' name='ival' filepath='Objects/longobject.c' line='1145' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='pthread_mutex_unlock' mangled-name='pthread_mutex_unlock' filepath='/usr/include/pthread.h' line='756' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyLong_AsVoidPtr' mangled-name='PyLong_AsVoidPtr' filepath='Objects/longobject.c' line='1108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsVoidPtr'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='122' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='pthread_mutex_lock' mangled-name='pthread_mutex_lock' filepath='/usr/include/pthread.h' line='738' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyLong_FromVoidPtr' mangled-name='PyLong_FromVoidPtr' filepath='Objects/longobject.c' line='1091' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromVoidPtr'>
-      <parameter type-id='type-id-32' name='p' filepath='Objects/longobject.c' line='1091' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='pthread_cond_signal' mangled-name='pthread_cond_signal' filepath='/usr/include/pthread.h' line='974' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_AsByteArray' mangled-name='_PyLong_AsByteArray' filepath='Objects/longobject.c' line='956' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_AsByteArray'>
-      <parameter type-id='type-id-430' name='v' filepath='Objects/longobject.c' line='956' column='1'/>
-      <parameter type-id='type-id-416' name='bytes' filepath='Objects/longobject.c' line='957' column='1'/>
-      <parameter type-id='type-id-191' name='n' filepath='Objects/longobject.c' line='957' column='1'/>
-      <parameter type-id='type-id-8' name='little_endian' filepath='Objects/longobject.c' line='958' column='1'/>
-      <parameter type-id='type-id-8' name='is_signed' filepath='Objects/longobject.c' line='958' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyThread_exit_thread' mangled-name='PyThread_exit_thread' filepath='./Include/pythread.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_FromByteArray' mangled-name='_PyLong_FromByteArray' filepath='Objects/longobject.c' line='845' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromByteArray'>
-      <parameter type-id='type-id-460' name='bytes' filepath='Objects/longobject.c' line='845' column='1'/>
-      <parameter type-id='type-id-191' name='n' filepath='Objects/longobject.c' line='845' column='1'/>
-      <parameter type-id='type-id-8' name='little_endian' filepath='Objects/longobject.c' line='846' column='1'/>
-      <parameter type-id='type-id-8' name='is_signed' filepath='Objects/longobject.c' line='846' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='pthread_cond_wait' mangled-name='pthread_cond_wait' filepath='/usr/include/pthread.h' line='986' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_NumBits' mangled-name='_PyLong_NumBits' filepath='Objects/longobject.c' line='815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_NumBits'>
-      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='815' column='1'/>
-      <return type-id='type-id-191'/>
+    <function-decl name='pthread_mutex_init' mangled-name='pthread_mutex_init' filepath='/usr/include/pthread.h' line='725' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_Sign' mangled-name='_PyLong_Sign' filepath='Objects/longobject.c' line='804' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Sign'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='284' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyThread_cond_init' mangled-name='_PyThread_cond_init' filepath='Python/condvar.h' line='52' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyLong_AsUnsignedLongMask' mangled-name='PyLong_AsUnsignedLongMask' filepath='Objects/longobject.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsUnsignedLongMask'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/longobject.c' line='780' column='1'/>
-      <return type-id='type-id-33'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/codecs.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='Py_hexdigits' type-id='type-id-3' mangled-name='Py_hexdigits' visibility='default' filepath='./Include/codecs.h' line='234' column='1' elf-symbol-id='Py_hexdigits'/>
+    <function-decl name='PyCodec_NameReplaceErrors' mangled-name='PyCodec_NameReplaceErrors' filepath='Python/codecs.c' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_NameReplaceErrors'>
+      <parameter type-id='type-id-100' name='exc' filepath='Python/codecs.c' line='959' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyLong_AsSize_t' mangled-name='PyLong_AsSize_t' filepath='Objects/longobject.c' line='707' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsSize_t'>
-      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='707' column='1'/>
-      <return type-id='type-id-191'/>
+    <function-decl name='PyCodec_BackslashReplaceErrors' mangled-name='PyCodec_BackslashReplaceErrors' filepath='Python/codecs.c' line='850' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_BackslashReplaceErrors'>
+      <parameter type-id='type-id-100' name='exc' filepath='Python/codecs.c' line='850' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyLong_AsUnsignedLong' mangled-name='PyLong_AsUnsignedLong' filepath='Objects/longobject.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsUnsignedLong'>
-      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='663' column='1'/>
-      <return type-id='type-id-33'/>
+    <function-decl name='PyCodec_XMLCharRefReplaceErrors' mangled-name='PyCodec_XMLCharRefReplaceErrors' filepath='Python/codecs.c' line='752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_XMLCharRefReplaceErrors'>
+      <parameter type-id='type-id-100' name='exc' filepath='Python/codecs.c' line='959' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyLong_AsSsize_t' mangled-name='PyLong_AsSsize_t' filepath='Objects/longobject.c' line='608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsSsize_t'>
-      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='608' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyCodec_ReplaceErrors' mangled-name='PyCodec_ReplaceErrors' filepath='Python/codecs.c' line='699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_ReplaceErrors'>
+      <parameter type-id='type-id-100' name='exc' filepath='Python/codecs.c' line='699' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyLong_AsInt' mangled-name='_PyLong_AsInt' filepath='Objects/longobject.c' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_AsInt'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='295' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyCodec_IgnoreErrors' mangled-name='PyCodec_IgnoreErrors' filepath='Python/codecs.c' line='675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_IgnoreErrors'>
+      <parameter type-id='type-id-100' name='exc' filepath='Python/codecs.c' line='675' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyLong_AsLong' mangled-name='PyLong_AsLong' filepath='Objects/longobject.c' line='573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsLong'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/longobject.c' line='573' column='1'/>
-      <return type-id='type-id-12'/>
+    <function-decl name='PyCodec_LookupError' mangled-name='PyCodec_LookupError' filepath='Python/codecs.c' line='638' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_LookupError'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/codecs.c' line='638' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyLong_AsLongAndOverflow' mangled-name='PyLong_AsLongAndOverflow' filepath='Objects/longobject.c' line='494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_AsLongAndOverflow'>
-      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='494' column='1'/>
-      <parameter type-id='type-id-227' name='overflow' filepath='Objects/longobject.c' line='494' column='1'/>
-      <return type-id='type-id-12'/>
+    <function-decl name='_PyCodec_DecodeText' mangled-name='_PyCodec_DecodeText' filepath='Python/codecs.c' line='603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodec_DecodeText'>
+      <parameter type-id='type-id-100' name='object' filepath='Python/codecs.c' line='603' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='604' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='605' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyLong_FromDouble' mangled-name='PyLong_FromDouble' filepath='Objects/longobject.c' line='417' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromDouble'>
-      <parameter type-id='type-id-441' name='dval' filepath='Objects/longobject.c' line='417' column='1'/>
+    <function-decl name='_PyCodec_EncodeText' mangled-name='_PyCodec_EncodeText' filepath='Python/codecs.c' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodec_EncodeText'>
+      <parameter type-id='type-id-100' name='object' filepath='Python/codecs.c' line='603' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='604' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='605' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyLong_FromSize_t' mangled-name='PyLong_FromSize_t' filepath='Objects/longobject.c' line='409' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromSize_t'>
-      <parameter type-id='type-id-191' name='ival' filepath='Objects/longobject.c' line='409' column='1'/>
+    <function-decl name='_PyCodec_LookupTextEncoding' mangled-name='_PyCodec_LookupTextEncoding' filepath='Python/codecs.c' line='521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodec_LookupTextEncoding'>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='521' column='1'/>
+      <parameter type-id='type-id-3' name='alternate_command' filepath='Python/codecs.c' line='522' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyLong_FromUnsignedLongLong' mangled-name='PyLong_FromUnsignedLongLong' filepath='Objects/longobject.c' line='401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromUnsignedLongLong'>
-      <parameter type-id='type-id-365' name='ival' filepath='Objects/longobject.c' line='401' column='1'/>
+    <function-decl name='PyCodec_Decode' mangled-name='PyCodec_Decode' filepath='Python/codecs.c' line='507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_Decode'>
+      <parameter type-id='type-id-100' name='object' filepath='Python/codecs.c' line='507' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='508' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='509' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyLong_FromUnsignedLong' mangled-name='PyLong_FromUnsignedLong' filepath='Objects/longobject.c' line='393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromUnsignedLong'>
-      <parameter type-id='type-id-33' name='ival' filepath='Objects/longobject.c' line='393' column='1'/>
+    <function-decl name='PyCodec_Encode' mangled-name='PyCodec_Encode' filepath='Python/codecs.c' line='494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_Encode'>
+      <parameter type-id='type-id-100' name='object' filepath='Python/codecs.c' line='507' column='1'/>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='508' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='509' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyLong_FromLong' mangled-name='PyLong_FromLong' filepath='Objects/longobject.c' line='297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyLong_FromLong'>
-      <parameter type-id='type-id-12' name='ival' filepath='Objects/longobject.c' line='297' column='1'/>
+    <function-decl name='PyCodec_StreamWriter' mangled-name='PyCodec_StreamWriter' filepath='Python/codecs.c' line='379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_StreamWriter'>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='379' column='1'/>
+      <parameter type-id='type-id-100' name='stream' filepath='Python/codecs.c' line='380' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='381' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyLong_Copy' mangled-name='_PyLong_Copy' filepath='Objects/longobject.c' line='269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_Copy'>
-      <parameter type-id='type-id-430' name='src' filepath='Objects/longobject.c' line='269' column='1'/>
+    <function-decl name='PyCodec_StreamReader' mangled-name='PyCodec_StreamReader' filepath='Python/codecs.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_StreamReader'>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='379' column='1'/>
+      <parameter type-id='type-id-100' name='stream' filepath='Python/codecs.c' line='380' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='381' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyLong_New' mangled-name='_PyLong_New' filepath='Objects/longobject.c' line='246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_New'>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/longobject.c' line='246' column='1'/>
-      <return type-id='type-id-430'/>
+    <function-decl name='PyCodec_IncrementalDecoder' mangled-name='PyCodec_IncrementalDecoder' filepath='Python/codecs.c' line='366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_IncrementalDecoder'>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='366' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='367' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyLong_FromNbIndexOrNbInt' mangled-name='_PyLong_FromNbIndexOrNbInt' filepath='Objects/longobject.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromNbIndexOrNbInt'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1992' column='1'/>
+    <function-decl name='PyCodec_IncrementalEncoder' mangled-name='PyCodec_IncrementalEncoder' filepath='Python/codecs.c' line='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_IncrementalEncoder'>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='366' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='367' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyLong_FromNbInt' mangled-name='_PyLong_FromNbInt' filepath='Objects/longobject.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromNbInt'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1992' column='1'/>
+    <function-decl name='PyCodec_Decoder' mangled-name='PyCodec_Decoder' filepath='Python/codecs.c' line='355' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_Decoder'>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='355' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/dictobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyDict_Type' type-id='type-id-182' mangled-name='PyDict_Type' visibility='default' filepath='./Include/dictobject.h' line='15' column='1' elf-symbol-id='PyDict_Type'/>
-    <var-decl name='PyDictIterKey_Type' type-id='type-id-182' mangled-name='PyDictIterKey_Type' visibility='default' filepath='./Include/dictobject.h' line='76' column='1' elf-symbol-id='PyDictIterKey_Type'/>
-    <var-decl name='PyDictIterValue_Type' type-id='type-id-182' mangled-name='PyDictIterValue_Type' visibility='default' filepath='./Include/dictobject.h' line='77' column='1' elf-symbol-id='PyDictIterValue_Type'/>
-    <var-decl name='PyDictIterItem_Type' type-id='type-id-182' mangled-name='PyDictIterItem_Type' visibility='default' filepath='./Include/dictobject.h' line='78' column='1' elf-symbol-id='PyDictIterItem_Type'/>
-    <var-decl name='PyDictRevIterKey_Type' type-id='type-id-182' mangled-name='PyDictRevIterKey_Type' visibility='default' filepath='./Include/dictobject.h' line='80' column='1' elf-symbol-id='PyDictRevIterKey_Type'/>
-    <var-decl name='PyDictRevIterItem_Type' type-id='type-id-182' mangled-name='PyDictRevIterItem_Type' visibility='default' filepath='./Include/dictobject.h' line='81' column='1' elf-symbol-id='PyDictRevIterItem_Type'/>
-    <var-decl name='PyDictRevIterValue_Type' type-id='type-id-182' mangled-name='PyDictRevIterValue_Type' visibility='default' filepath='./Include/dictobject.h' line='82' column='1' elf-symbol-id='PyDictRevIterValue_Type'/>
-    <var-decl name='PyDictKeys_Type' type-id='type-id-182' mangled-name='PyDictKeys_Type' visibility='default' filepath='./Include/dictobject.h' line='63' column='1' elf-symbol-id='PyDictKeys_Type'/>
-    <var-decl name='PyDictItems_Type' type-id='type-id-182' mangled-name='PyDictItems_Type' visibility='default' filepath='./Include/dictobject.h' line='65' column='1' elf-symbol-id='PyDictItems_Type'/>
-    <var-decl name='PyDictValues_Type' type-id='type-id-182' mangled-name='PyDictValues_Type' visibility='default' filepath='./Include/dictobject.h' line='64' column='1' elf-symbol-id='PyDictValues_Type'/>
-    <function-decl name='PyObject_GenericGetDict' mangled-name='PyObject_GenericGetDict' filepath='Objects/dictobject.c' line='4777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GenericGetDict'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/dictobject.c' line='4777' column='1'/>
-      <parameter type-id='type-id-32' name='context' filepath='Objects/dictobject.c' line='4777' column='1'/>
+    <function-decl name='PyCodec_Encoder' mangled-name='PyCodec_Encoder' filepath='Python/codecs.c' line='350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_Encoder'>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='355' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyDictView_Intersect' mangled-name='_PyDictView_Intersect' filepath='Objects/dictobject.c' line='4320' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDictView_Intersect'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/dictobject.c' line='4320' column='1'/>
-      <parameter type-id='type-id-100' name='other' filepath='Objects/dictobject.c' line='4320' column='1'/>
+    <function-decl name='_PyCodecInfo_GetIncrementalEncoder' mangled-name='_PyCodecInfo_GetIncrementalEncoder' filepath='Python/codecs.c' line='336' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodecInfo_GetIncrementalEncoder'>
+      <parameter type-id='type-id-100' name='codec_info' filepath='Python/codecs.c' line='336' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='337' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyDictView_New' mangled-name='_PyDictView_New' filepath='Objects/dictobject.c' line='4109' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDictView_New'>
-      <parameter type-id='type-id-100' name='dict' filepath='Objects/dictobject.c' line='4109' column='1'/>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/dictobject.c' line='4109' column='1'/>
+    <function-decl name='_PyCodecInfo_GetIncrementalDecoder' mangled-name='_PyCodecInfo_GetIncrementalDecoder' filepath='Python/codecs.c' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodecInfo_GetIncrementalDecoder'>
+      <parameter type-id='type-id-100' name='codec_info' filepath='Python/codecs.c' line='336' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='337' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyDict_DelItemString' mangled-name='PyDict_DelItemString' filepath='Objects/dictobject.c' line='3524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_DelItemString'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='264' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='264' column='1'/>
+    <function-decl name='PyCodec_KnownEncoding' mangled-name='PyCodec_KnownEncoding' filepath='Python/codecs.c' line='213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_KnownEncoding'>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='213' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-309' size-in-bits='64' id='type-id-476'/>
-    <function-decl name='_PyDict_DelItemId' mangled-name='_PyDict_DelItemId' filepath='Objects/dictobject.c' line='3515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_DelItemId'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/dictobject.c' line='3515' column='1'/>
-      <parameter type-id='type-id-476' name='key' filepath='Objects/dictobject.c' line='3515' column='1'/>
+    <function-decl name='_PyCodec_Forget' mangled-name='_PyCodec_Forget' filepath='Python/codecs.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodec_Forget'>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='186' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyDict_SetItemString' mangled-name='PyDict_SetItemString' filepath='Objects/dictobject.c' line='3501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_SetItemString'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2227' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2227' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Objects/abstract.c' line='2227' column='1'/>
+    <function-decl name='_PyCodec_Lookup' mangled-name='_PyCodec_Lookup' filepath='Python/codecs.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodec_Lookup'>
+      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='101' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyCodec_Register' mangled-name='PyCodec_Register' filepath='Python/codecs.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_Register'>
+      <parameter type-id='type-id-100' name='search_function' filepath='Python/codecs.c' line='34' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyDict_SetItemId' mangled-name='_PyDict_SetItemId' filepath='Objects/dictobject.c' line='3491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_SetItemId'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/dictobject.c' line='3491' column='1'/>
-      <parameter type-id='type-id-308' name='key' filepath='Objects/dictobject.c' line='3491' column='1'/>
-      <parameter type-id='type-id-100' name='item' filepath='Objects/dictobject.c' line='3491' column='1'/>
+    <function-decl name='PyCodec_RegisterError' mangled-name='PyCodec_RegisterError' filepath='Python/codecs.c' line='622' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_RegisterError'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/codecs.c' line='622' column='1'/>
+      <parameter type-id='type-id-100' name='error' filepath='Python/codecs.c' line='622' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyDict_GetItemString' mangled-name='PyDict_GetItemString' filepath='Objects/dictobject.c' line='3477' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_GetItemString'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2210' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2210' column='1'/>
+    <function-decl name='PyCodec_StrictErrors' mangled-name='PyCodec_StrictErrors' filepath='Python/codecs.c' line='665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_StrictErrors'>
+      <parameter type-id='type-id-100' name='mp' filepath='Objects/dictobject.c' line='2769' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyDict_GetItemId' mangled-name='_PyDict_GetItemId' filepath='Objects/dictobject.c' line='3463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_GetItemId'>
-      <parameter type-id='type-id-100' name='dp' filepath='Objects/dictobject.c' line='3463' column='1'/>
-      <parameter type-id='type-id-308' name='key' filepath='Objects/dictobject.c' line='3463' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyUnicodeDecodeError_GetStart' mangled-name='PyUnicodeDecodeError_GetStart' filepath='./Include/pyerrors.h' line='271' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyDict_Contains' mangled-name='_PyDict_Contains' filepath='Objects/dictobject.c' line='3305' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_Contains'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='3305' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='3305' column='1'/>
-      <parameter type-id='type-id-150' name='hash' filepath='Objects/dictobject.c' line='3305' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyUnicodeDecodeError_GetEnd' mangled-name='PyUnicodeDecodeError_GetEnd' filepath='./Include/pyerrors.h' line='283' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyDict_Contains' mangled-name='PyDict_Contains' filepath='Objects/dictobject.c' line='3284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Contains'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='3284' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='3284' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyUnicode_FromKindAndData' mangled-name='PyUnicode_FromKindAndData' filepath='./Include/cpython/unicodeobject.h' line='558' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='384' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-477' visibility='default' filepath='./Include/cpython/dictobject.h' line='14' column='1' id='type-id-478'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/cpython/dictobject.h' line='15' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='ma_used' type-id='type-id-15' visibility='default' filepath='./Include/cpython/dictobject.h' line='18' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='ma_version_tag' type-id='type-id-238' visibility='default' filepath='./Include/cpython/dictobject.h' line='22' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='ma_keys' type-id='type-id-479' visibility='default' filepath='./Include/cpython/dictobject.h' line='24' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='ma_values' type-id='type-id-303' visibility='default' filepath='./Include/cpython/dictobject.h' line='31' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='_dictkeysobject' size-in-bits='320' is-struct='yes' visibility='default' filepath='Objects/dict-common.h' line='22' column='1' id='type-id-480'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='dk_refcnt' type-id='type-id-15' visibility='default' filepath='Objects/dict-common.h' line='23' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='dk_size' type-id='type-id-15' visibility='default' filepath='Objects/dict-common.h' line='26' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='dk_lookup' type-id='type-id-481' visibility='default' filepath='Objects/dict-common.h' line='41' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='dk_usable' type-id='type-id-15' visibility='default' filepath='Objects/dict-common.h' line='44' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='dk_nentries' type-id='type-id-15' visibility='default' filepath='Objects/dict-common.h' line='47' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='dk_indices' type-id='type-id-297' visibility='default' filepath='Objects/dict-common.h' line='62' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='PyDictObject' type-id='type-id-478' filepath='./Include/cpython/dictobject.h' line='32' column='1' id='type-id-477'/>
-    <pointer-type-def type-id='type-id-477' size-in-bits='64' id='type-id-482'/>
-    <pointer-type-def type-id='type-id-483' size-in-bits='64' id='type-id-484'/>
-    <typedef-decl name='dict_lookup_func' type-id='type-id-484' filepath='Objects/dict-common.h' line='14' column='1' id='type-id-481'/>
-    <typedef-decl name='PyDictKeysObject' type-id='type-id-480' filepath='./Include/cpython/dictobject.h' line='9' column='1' id='type-id-485'/>
-    <pointer-type-def type-id='type-id-485' size-in-bits='64' id='type-id-479'/>
-    <function-decl name='_PyDict_SizeOf' mangled-name='_PyDict_SizeOf' filepath='Objects/dictobject.c' line='3165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_SizeOf'>
-      <parameter type-id='type-id-482' name='mp' filepath='Objects/dictobject.c' line='3165' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyUnicodeEncodeError_GetStart' mangled-name='PyUnicodeEncodeError_GetStart' filepath='./Include/pyerrors.h' line='270' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyDict_SetDefault' mangled-name='PyDict_SetDefault' filepath='Objects/dictobject.c' line='2918' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_SetDefault'>
-      <parameter type-id='type-id-100' name='d' filepath='Objects/dictobject.c' line='2918' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='2918' column='1'/>
-      <parameter type-id='type-id-100' name='defaultobj' filepath='Objects/dictobject.c' line='2918' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyUnicodeEncodeError_GetEnd' mangled-name='PyUnicodeEncodeError_GetEnd' filepath='./Include/pyerrors.h' line='282' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyDict_Items' mangled-name='PyDict_Items' filepath='Objects/dictobject.c' line='2769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Items'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyUnicodeEncodeError_GetObject' mangled-name='PyUnicodeEncodeError_GetObject' filepath='./Include/pyerrors.h' line='264' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyDict_Values' mangled-name='PyDict_Values' filepath='Objects/dictobject.c' line='2759' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Values'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyUnicodeDecodeError_GetEncoding' mangled-name='PyUnicodeDecodeError_GetEncoding' filepath='./Include/pyerrors.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyDict_Keys' mangled-name='PyDict_Keys' filepath='Objects/dictobject.c' line='2749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Keys'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyUnicodeEncodeError_GetEncoding' mangled-name='PyUnicodeEncodeError_GetEncoding' filepath='./Include/pyerrors.h' line='260' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyDict_Size' mangled-name='PyDict_Size' filepath='Objects/dictobject.c' line='2739' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Size'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2203' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyUnicodeTranslateError_GetStart' mangled-name='PyUnicodeTranslateError_GetStart' filepath='./Include/pyerrors.h' line='272' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyDict_Copy' mangled-name='PyDict_Copy' filepath='Objects/dictobject.c' line='2665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Copy'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/dictobject.c' line='2665' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyUnicodeTranslateError_GetEnd' mangled-name='PyUnicodeTranslateError_GetEnd' filepath='./Include/pyerrors.h' line='284' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyDict_MergeEx' mangled-name='_PyDict_MergeEx' filepath='Objects/dictobject.c' line='2653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_MergeEx'>
-      <parameter type-id='type-id-100' name='a' filepath='Objects/dictobject.c' line='2653' column='1'/>
-      <parameter type-id='type-id-100' name='b' filepath='Objects/dictobject.c' line='2653' column='1'/>
-      <parameter type-id='type-id-8' name='override' filepath='Objects/dictobject.c' line='2653' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyUnicodeTranslateError_GetObject' mangled-name='PyUnicodeTranslateError_GetObject' filepath='./Include/pyerrors.h' line='266' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyDict_Merge' mangled-name='PyDict_Merge' filepath='Objects/dictobject.c' line='2646' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Merge'>
-      <parameter type-id='type-id-100' name='a' filepath='Objects/dictobject.c' line='2653' column='1'/>
-      <parameter type-id='type-id-100' name='b' filepath='Objects/dictobject.c' line='2653' column='1'/>
-      <parameter type-id='type-id-8' name='override' filepath='Objects/dictobject.c' line='2653' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyDict_GetItemStringWithError' mangled-name='_PyDict_GetItemStringWithError' filepath='./Include/cpython/dictobject.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyDict_Update' mangled-name='PyDict_Update' filepath='Objects/dictobject.c' line='2640' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Update'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
+    <function-decl name='_PyErr_TrySetFromCause' mangled-name='_PyErr_TrySetFromCause' filepath='./Include/cpython/pyerrors.h' line='131' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_normalize_encoding' mangled-name='_Py_normalize_encoding' filepath='Python/codecs.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyList_Size' mangled-name='PyList_Size' filepath='./Include/listobject.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/compile.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyCompile_OpcodeStackEffect' mangled-name='PyCompile_OpcodeStackEffect' filepath='Python/compile.c' line='1132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCompile_OpcodeStackEffect'>
+      <parameter type-id='type-id-8' name='opcode' filepath='Python/compile.c' line='1132' column='1'/>
+      <parameter type-id='type-id-8' name='oparg' filepath='Python/compile.c' line='1132' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyDict_MergeFromSeq2' mangled-name='PyDict_MergeFromSeq2' filepath='Objects/dictobject.c' line='2410' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_MergeFromSeq2'>
-      <parameter type-id='type-id-100' name='d' filepath='Objects/dictobject.c' line='2410' column='1'/>
-      <parameter type-id='type-id-100' name='seq2' filepath='Objects/dictobject.c' line='2410' column='1'/>
-      <parameter type-id='type-id-8' name='override' filepath='Objects/dictobject.c' line='2410' column='1'/>
+    <function-decl name='PyCompile_OpcodeStackEffectWithJump' mangled-name='PyCompile_OpcodeStackEffectWithJump' filepath='Python/compile.c' line='1126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCompile_OpcodeStackEffectWithJump'>
+      <parameter type-id='type-id-8' name='opcode' filepath='Python/compile.c' line='1126' column='1'/>
+      <parameter type-id='type-id-8' name='oparg' filepath='Python/compile.c' line='1126' column='1'/>
+      <parameter type-id='type-id-8' name='jump' filepath='Python/compile.c' line='1126' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyDict_Pop' mangled-name='_PyDict_Pop' filepath='Objects/dictobject.c' line='1894' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_Pop'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='412' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='413' column='1'/>
-      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='413' column='1'/>
+    <function-decl name='PyNode_Compile' mangled-name='PyNode_Compile' filepath='Python/compile.c' line='394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNode_Compile'>
+      <parameter type-id='type-id-9' name='n' filepath='Python/compile.c' line='394' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/compile.c' line='394' column='1'/>
+      <return type-id='type-id-412'/>
+    </function-decl>
+    <function-decl name='PyAST_CompileEx' mangled-name='PyAST_CompileEx' filepath='Python/compile.c' line='379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAST_CompileEx'>
+      <parameter type-id='type-id-204' name='mod' filepath='Python/compile.c' line='379' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/compile.c' line='379' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/compile.c' line='379' column='1'/>
+      <parameter type-id='type-id-8' name='optimize' filepath='Python/compile.c' line='380' column='1'/>
+      <parameter type-id='type-id-230' name='arena' filepath='Python/compile.c' line='380' column='1'/>
+      <return type-id='type-id-412'/>
+    </function-decl>
+    <function-decl name='PyAST_CompileObject' mangled-name='PyAST_CompileObject' filepath='Python/compile.c' line='318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAST_CompileObject'>
+      <parameter type-id='type-id-204' name='mod' filepath='Python/compile.c' line='318' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/compile.c' line='318' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/compile.c' line='318' column='1'/>
+      <parameter type-id='type-id-8' name='optimize' filepath='Python/compile.c' line='319' column='1'/>
+      <parameter type-id='type-id-230' name='arena' filepath='Python/compile.c' line='319' column='1'/>
+      <return type-id='type-id-412'/>
+    </function-decl>
+    <function-decl name='_Py_Mangle' mangled-name='_Py_Mangle' filepath='Python/compile.c' line='231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Mangle'>
+      <parameter type-id='type-id-100' name='privateobj' filepath='Python/compile.c' line='231' column='1'/>
+      <parameter type-id='type-id-100' name='ident' filepath='Python/compile.c' line='231' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyDict_Next' mangled-name='PyDict_Next' filepath='Objects/dictobject.c' line='1830' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Next'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1830' column='1'/>
-      <parameter type-id='type-id-158' name='ppos' filepath='Objects/dictobject.c' line='1830' column='1'/>
-      <parameter type-id='type-id-303' name='pkey' filepath='Objects/dictobject.c' line='1830' column='1'/>
-      <parameter type-id='type-id-303' name='pvalue' filepath='Objects/dictobject.c' line='1830' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyCode_Optimize' mangled-name='PyCode_Optimize' filepath='./Include/cpython/code.h' line='158' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-150' size-in-bits='64' id='type-id-486'/>
-    <function-decl name='_PyDict_Next' mangled-name='_PyDict_Next' filepath='Objects/dictobject.c' line='1768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_Next'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1768' column='1'/>
-      <parameter type-id='type-id-158' name='ppos' filepath='Objects/dictobject.c' line='1768' column='1'/>
-      <parameter type-id='type-id-303' name='pkey' filepath='Objects/dictobject.c' line='1768' column='1'/>
-      <parameter type-id='type-id-303' name='pvalue' filepath='Objects/dictobject.c' line='1769' column='1'/>
-      <parameter type-id='type-id-486' name='phash' filepath='Objects/dictobject.c' line='1769' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyCode_NewWithPosOnlyArgs' mangled-name='PyCode_NewWithPosOnlyArgs' filepath='./Include/cpython/code.h' line='122' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_ExprAsUnicode' mangled-name='_PyAST_ExprAsUnicode' filepath='./Include/ast.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyST_GetScope' mangled-name='PyST_GetScope' filepath='./Include/symtable.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCapsule_New' mangled-name='PyCapsule_New' filepath='./Include/pycapsule.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCapsule_GetPointer' mangled-name='PyCapsule_GetPointer' filepath='./Include/pycapsule.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySymtable_Lookup' mangled-name='PySymtable_Lookup' filepath='./Include/symtable.h' line='84' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyAST_FromNode' mangled-name='PyAST_FromNode' filepath='./Include/ast.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySymtable_Free' mangled-name='PySymtable_Free' filepath='./Include/symtable.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFuture_FromASTObject' mangled-name='PyFuture_FromASTObject' filepath='./Include/compile.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAST_Optimize' mangled-name='_PyAST_Optimize' filepath='./Include/compile.h' line='99' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySymtable_BuildObject' mangled-name='PySymtable_BuildObject' filepath='./Include/symtable.h' line='80' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_CopyCharacters' mangled-name='PyUnicode_CopyCharacters' filepath='./Include/cpython/unicodeobject.h' line='499' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyDict_Clear' mangled-name='PyDict_Clear' filepath='Objects/dictobject.c' line='1727' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_Clear'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/genobject.c' line='44' column='1'/>
+    <function-decl name='_PyCode_ConstantKey' mangled-name='_PyCode_ConstantKey' filepath='./Include/cpython/code.h' line='156' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyDict_DelItemIf' mangled-name='_PyDict_DelItemIf' filepath='Objects/dictobject.c' line='1677' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_DelItemIf'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1677' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1677' column='1'/>
-      <parameter type-id='type-id-130' name='predicate' filepath='Objects/dictobject.c' line='1678' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PySequence_DelItem' mangled-name='PySequence_DelItem' filepath='./Include/abstract.h' line='661' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyDict_DelItem_KnownHash' mangled-name='_PyDict_DelItem_KnownHash' filepath='Objects/dictobject.c' line='1639' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_DelItem_KnownHash'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='3305' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='3305' column='1'/>
-      <parameter type-id='type-id-150' name='hash' filepath='Objects/dictobject.c' line='3305' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/context.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyContext_Type' type-id='type-id-182' mangled-name='PyContext_Type' visibility='default' filepath='./Include/context.h' line='10' column='1' elf-symbol-id='PyContext_Type'/>
+    <var-decl name='PyContextVar_Type' type-id='type-id-182' mangled-name='PyContextVar_Type' visibility='default' filepath='./Include/context.h' line='13' column='1' elf-symbol-id='PyContextVar_Type'/>
+    <var-decl name='PyContextToken_Type' type-id='type-id-182' mangled-name='PyContextToken_Type' visibility='default' filepath='./Include/context.h' line='16' column='1' elf-symbol-id='PyContextToken_Type'/>
+    <function-decl name='PyContextVar_Reset' mangled-name='PyContextVar_Reset' filepath='Python/context.c' line='289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContextVar_Reset'>
+      <parameter type-id='type-id-100' name='ovar' filepath='Python/context.c' line='289' column='1'/>
+      <parameter type-id='type-id-100' name='otok' filepath='Python/context.c' line='289' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyDict_DelItem' mangled-name='PyDict_DelItem' filepath='Objects/dictobject.c' line='1624' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_DelItem'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2629' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2629' column='1'/>
+    <function-decl name='PyContextVar_Get' mangled-name='PyContextVar_Get' filepath='Python/context.c' line='190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContextVar_Get'>
+      <parameter type-id='type-id-100' name='ovar' filepath='Python/context.c' line='190' column='1'/>
+      <parameter type-id='type-id-100' name='def' filepath='Python/context.c' line='190' column='1'/>
+      <parameter type-id='type-id-303' name='val' filepath='Python/context.c' line='190' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyDict_SetItem_KnownHash' mangled-name='_PyDict_SetItem_KnownHash' filepath='Objects/dictobject.c' line='1577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_SetItem_KnownHash'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1577' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1577' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Objects/dictobject.c' line='1577' column='1'/>
-      <parameter type-id='type-id-150' name='hash' filepath='Objects/dictobject.c' line='1578' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyContextVar_New' mangled-name='PyContextVar_New' filepath='Python/context.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContextVar_New'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/context.c' line='177' column='1'/>
+      <parameter type-id='type-id-100' name='def' filepath='Python/context.c' line='177' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyDict_SetItem' mangled-name='PyDict_SetItem' filepath='Objects/dictobject.c' line='1550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_SetItem'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1550' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1550' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Objects/dictobject.c' line='1550' column='1'/>
+    <function-decl name='PyContext_Exit' mangled-name='PyContext_Exit' filepath='Python/context.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_Exit'>
+      <parameter type-id='type-id-100' name='octx' filepath='Python/context.c' line='168' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyDict_GetItemStringWithError' mangled-name='_PyDict_GetItemStringWithError' filepath='Objects/dictobject.c' line='1495' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_GetItemStringWithError'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2210' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2210' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyContext_Enter' mangled-name='PyContext_Enter' filepath='Python/context.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_Enter'>
+      <parameter type-id='type-id-100' name='octx' filepath='Python/context.c' line='168' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyDict_GetItemIdWithError' mangled-name='_PyDict_GetItemIdWithError' filepath='Objects/dictobject.c' line='1483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_GetItemIdWithError'>
-      <parameter type-id='type-id-100' name='dp' filepath='Objects/dictobject.c' line='1483' column='1'/>
-      <parameter type-id='type-id-308' name='key' filepath='Objects/dictobject.c' line='1483' column='1'/>
+    <function-decl name='PyContext_CopyCurrent' mangled-name='PyContext_CopyCurrent' filepath='Python/context.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_CopyCurrent'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyDict_GetItemWithError' mangled-name='PyDict_GetItemWithError' filepath='Objects/dictobject.c' line='1456' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_GetItemWithError'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1456' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1456' column='1'/>
+    <function-decl name='PyContext_Copy' mangled-name='PyContext_Copy' filepath='Python/context.c' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_Copy'>
+      <parameter type-id='type-id-100' name='callable' filepath='Objects/funcobject.c' line='1037' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyDict_GetItem_KnownHash' mangled-name='_PyDict_GetItem_KnownHash' filepath='Objects/dictobject.c' line='1433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_GetItem_KnownHash'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1433' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1433' column='1'/>
-      <parameter type-id='type-id-150' name='hash' filepath='Objects/dictobject.c' line='1433' column='1'/>
+    <function-decl name='PyContext_New' mangled-name='PyContext_New' filepath='Python/context.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_New'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyDict_GetItem' mangled-name='PyDict_GetItem' filepath='Objects/dictobject.c' line='1382' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_GetItem'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1382' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1382' column='1'/>
+    <function-decl name='_PyContext_NewHamtForTests' mangled-name='_PyContext_NewHamtForTests' filepath='Python/context.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyContext_NewHamtForTests'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyDict_NewPresized' mangled-name='_PyDict_NewPresized' filepath='Objects/dictobject.c' line='1340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_NewPresized'>
-      <parameter type-id='type-id-15' name='minused' filepath='Objects/dictobject.c' line='1340' column='1'/>
+    <function-decl name='PyContextVar_Set' mangled-name='PyContextVar_Set' filepath='Python/context.c' line='253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContextVar_Set'>
+      <parameter type-id='type-id-100' name='ovar' filepath='Python/context.c' line='253' column='1'/>
+      <parameter type-id='type-id-100' name='val' filepath='Python/context.c' line='253' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyDict_MaybeUntrack' mangled-name='_PyDict_MaybeUntrack' filepath='Objects/dictobject.c' line='982' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_MaybeUntrack'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='982' column='1'/>
+    <function-decl name='_PyHamt_Init' mangled-name='_PyHamt_Init' filepath='./Include/internal/pycore_hamt.h' line='113' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyDict_HasOnlyStringKeys' mangled-name='_PyDict_HasOnlyStringKeys' filepath='Objects/dictobject.c' line='957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_HasOnlyStringKeys'>
-      <parameter type-id='type-id-100' name='dict' filepath='Objects/dictobject.c' line='957' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyDict_New' mangled-name='PyDict_New' filepath='Objects/dictobject.c' line='720' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyDict_New'>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyHamt_Fini' mangled-name='_PyHamt_Fini' filepath='./Include/internal/pycore_hamt.h' line='114' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyDict_CheckConsistency' mangled-name='_PyDict_CheckConsistency' filepath='Objects/dictobject.c' line='469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_CheckConsistency'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='469' column='1'/>
-      <parameter type-id='type-id-8' name='check_content' filepath='Objects/dictobject.c' line='469' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyHamt_Assoc' mangled-name='_PyHamt_Assoc' filepath='./Include/internal/pycore_hamt.h' line='78' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyDict_DebugMallocStats' mangled-name='_PyDict_DebugMallocStats' filepath='Objects/dictobject.c' line='280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDict_DebugMallocStats'>
-      <parameter type-id='type-id-223' name='out' filepath='Objects/floatobject.c' line='2001' column='1'/>
+    <function-decl name='_PyHamt_Find' mangled-name='_PyHamt_Find' filepath='./Include/internal/pycore_hamt.h' line='90' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-type size-in-bits='64' id='type-id-483'>
-      <parameter type-id='type-id-482'/>
-      <parameter type-id='type-id-100'/>
-      <parameter type-id='type-id-150'/>
-      <parameter type-id='type-id-303'/>
-      <return type-id='type-id-15'/>
-    </function-type>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/odictobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyODict_Type' type-id='type-id-182' mangled-name='PyODict_Type' visibility='default' filepath='./Include/odictobject.h' line='15' column='1' elf-symbol-id='PyODict_Type'/>
-    <var-decl name='PyODictIter_Type' type-id='type-id-182' mangled-name='PyODictIter_Type' visibility='default' filepath='./Include/odictobject.h' line='16' column='1' elf-symbol-id='PyODictIter_Type'/>
-    <var-decl name='PyODictKeys_Type' type-id='type-id-182' mangled-name='PyODictKeys_Type' visibility='default' filepath='./Include/odictobject.h' line='17' column='1' elf-symbol-id='PyODictKeys_Type'/>
-    <var-decl name='PyODictItems_Type' type-id='type-id-182' mangled-name='PyODictItems_Type' visibility='default' filepath='./Include/odictobject.h' line='18' column='1' elf-symbol-id='PyODictItems_Type'/>
-    <var-decl name='PyODictValues_Type' type-id='type-id-182' mangled-name='PyODictValues_Type' visibility='default' filepath='./Include/odictobject.h' line='19' column='1' elf-symbol-id='PyODictValues_Type'/>
-    <function-decl name='PyODict_DelItem' mangled-name='PyODict_DelItem' filepath='Objects/odictobject.c' line='1678' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyODict_DelItem'>
-      <parameter type-id='type-id-100' name='seq' filepath='Objects/abstract.c' line='2142' column='1'/>
-      <parameter type-id='type-id-100' name='ob' filepath='Objects/abstract.c' line='2142' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyHamt_Len' mangled-name='_PyHamt_Len' filepath='./Include/internal/pycore_hamt.h' line='102' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyODict_SetItem' mangled-name='PyODict_SetItem' filepath='Objects/odictobject.c' line='1669' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyODict_SetItem'>
-      <parameter type-id='type-id-100' name='od' filepath='Objects/odictobject.c' line='1669' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/odictobject.c' line='1669' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Objects/odictobject.c' line='1669' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyHamt_NewIterKeys' mangled-name='_PyHamt_NewIterKeys' filepath='./Include/internal/pycore_hamt.h' line='105' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyODict_New' mangled-name='PyODict_New' filepath='Objects/odictobject.c' line='1645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyODict_New'>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyHamt_Without' mangled-name='_PyHamt_Without' filepath='./Include/internal/pycore_hamt.h' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/memoryobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='_PyManagedBuffer_Type' type-id='type-id-182' mangled-name='_PyManagedBuffer_Type' visibility='default' filepath='./Include/memoryobject.h' line='10' column='1' elf-symbol-id='_PyManagedBuffer_Type'/>
-    <var-decl name='PyMemoryView_Type' type-id='type-id-182' mangled-name='PyMemoryView_Type' visibility='default' filepath='./Include/memoryobject.h' line='12' column='1' elf-symbol-id='PyMemoryView_Type'/>
-    <function-decl name='PyBuffer_ToContiguous' mangled-name='PyBuffer_ToContiguous' filepath='Objects/memoryobject.c' line='989' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyBuffer_ToContiguous'>
-      <parameter type-id='type-id-32' name='buf' filepath='Objects/memoryobject.c' line='989' column='1'/>
-      <parameter type-id='type-id-160' name='src' filepath='Objects/memoryobject.c' line='989' column='1'/>
-      <parameter type-id='type-id-15' name='len' filepath='Objects/memoryobject.c' line='989' column='1'/>
-      <parameter type-id='type-id-1' name='order' filepath='Objects/memoryobject.c' line='989' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyHamt_New' mangled-name='_PyHamt_New' filepath='./Include/internal/pycore_hamt.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMemoryView_GetContiguous' mangled-name='PyMemoryView_GetContiguous' filepath='Objects/memoryobject.c' line='926' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMemoryView_GetContiguous'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/memoryobject.c' line='926' column='1'/>
-      <parameter type-id='type-id-8' name='buffertype' filepath='Objects/memoryobject.c' line='926' column='1'/>
-      <parameter type-id='type-id-1' name='order' filepath='Objects/memoryobject.c' line='926' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyHamt_NewIterValues' mangled-name='_PyHamt_NewIterValues' filepath='./Include/internal/pycore_hamt.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMemoryView_FromObject' mangled-name='PyMemoryView_FromObject' filepath='Objects/memoryobject.c' line='794' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMemoryView_FromObject'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1510' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyHamt_NewIterItems' mangled-name='_PyHamt_NewIterItems' filepath='./Include/internal/pycore_hamt.h' line='111' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMemoryView_FromBuffer' mangled-name='PyMemoryView_FromBuffer' filepath='Objects/memoryobject.c' line='764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMemoryView_FromBuffer'>
-      <parameter type-id='type-id-160' name='info' filepath='Objects/memoryobject.c' line='764' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyHamt_Eq' mangled-name='_PyHamt_Eq' filepath='./Include/internal/pycore_hamt.h' line='99' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMemoryView_FromMemory' mangled-name='PyMemoryView_FromMemory' filepath='Objects/memoryobject.c' line='735' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMemoryView_FromMemory'>
-      <parameter type-id='type-id-7' name='mem' filepath='Objects/memoryobject.c' line='735' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/memoryobject.c' line='735' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Objects/memoryobject.c' line='735' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyDict_Size' mangled-name='PyDict_Size' filepath='./Include/dictobject.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/methodobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyCFunction_Type' type-id='type-id-182' mangled-name='PyCFunction_Type' visibility='default' filepath='./Include/methodobject.h' line='14' column='1' elf-symbol-id='PyCFunction_Type'/>
-    <var-decl name='PyCMethod_Type' type-id='type-id-182' mangled-name='PyCMethod_Type' visibility='default' filepath='./Include/cpython/methodobject.h' line='5' column='1' elf-symbol-id='PyCMethod_Type'/>
-    <function-decl name='PyCFunction_GetFlags' mangled-name='PyCFunction_GetFlags' filepath='Objects/methodobject.c' line='139' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCFunction_GetFlags'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyCFunction_GetSelf' mangled-name='PyCFunction_GetSelf' filepath='Objects/methodobject.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCFunction_GetSelf'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+  <abi-instr version='1.0' address-size='64' path='Python/errors.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyErr_ProgramTextObject' mangled-name='PyErr_ProgramTextObject' filepath='Python/errors.c' line='1722' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_ProgramTextObject'>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/errors.c' line='1722' column='1'/>
+      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1722' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyCFunction_GetFunction' mangled-name='PyCFunction_GetFunction' filepath='Objects/methodobject.c' line='119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCFunction_GetFunction'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/methodobject.c' line='119' column='1'/>
-      <return type-id='type-id-173'/>
-    </function-decl>
-    <function-decl name='PyCMethod_New' mangled-name='PyCMethod_New' filepath='Objects/methodobject.c' line='44' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCMethod_New'>
-      <parameter type-id='type-id-452' name='ml' filepath='Objects/methodobject.c' line='44' column='1'/>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/methodobject.c' line='44' column='1'/>
-      <parameter type-id='type-id-100' name='module' filepath='Objects/methodobject.c' line='44' column='1'/>
-      <parameter type-id='type-id-75' name='cls' filepath='Objects/methodobject.c' line='44' column='1'/>
+    <function-decl name='PyErr_ProgramText' mangled-name='PyErr_ProgramText' filepath='Python/errors.c' line='1710' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_ProgramText'>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/errors.c' line='1710' column='1'/>
+      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1710' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyCFunction_NewEx' mangled-name='PyCFunction_NewEx' filepath='Objects/methodobject.c' line='38' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCFunction_NewEx'>
-      <parameter type-id='type-id-452' name='ml' filepath='Objects/methodobject.c' line='38' column='1'/>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/methodobject.c' line='38' column='1'/>
-      <parameter type-id='type-id-100' name='module' filepath='Objects/methodobject.c' line='38' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyErr_SyntaxLocationEx' mangled-name='PyErr_SyntaxLocationEx' filepath='Python/errors.c' line='1649' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SyntaxLocationEx'>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/errors.c' line='1649' column='1'/>
+      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1649' column='1'/>
+      <parameter type-id='type-id-8' name='col_offset' filepath='Python/errors.c' line='1649' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/moduleobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyModuleDef_Type' type-id='type-id-182' mangled-name='PyModuleDef_Type' visibility='default' filepath='./Include/moduleobject.h' line='41' column='1' elf-symbol-id='PyModuleDef_Type'/>
-    <var-decl name='PyModule_Type' type-id='type-id-182' mangled-name='PyModule_Type' visibility='default' filepath='./Include/moduleobject.h' line='10' column='1' elf-symbol-id='PyModule_Type'/>
-    <function-decl name='_PyModuleSpec_IsInitializing' mangled-name='_PyModuleSpec_IsInitializing' filepath='Objects/moduleobject.c' line='696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyModuleSpec_IsInitializing'>
-      <parameter type-id='type-id-100' name='spec' filepath='Objects/moduleobject.c' line='696' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyErr_SyntaxLocationObject' mangled-name='PyErr_SyntaxLocationObject' filepath='Python/errors.c' line='1576' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SyntaxLocationObject'>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/errors.c' line='1576' column='1'/>
+      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1576' column='1'/>
+      <parameter type-id='type-id-8' name='col_offset' filepath='Python/errors.c' line='1576' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyModule_ClearDict' mangled-name='_PyModule_ClearDict' filepath='Objects/moduleobject.c' line='564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyModule_ClearDict'>
-      <parameter type-id='type-id-100' name='d' filepath='Objects/moduleobject.c' line='564' column='1'/>
+    <function-decl name='PyErr_SyntaxLocation' mangled-name='PyErr_SyntaxLocation' filepath='Python/errors.c' line='1565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SyntaxLocation'>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/errors.c' line='1565' column='1'/>
+      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1565' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyModule_Clear' mangled-name='_PyModule_Clear' filepath='Objects/moduleobject.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyModule_Clear'>
-      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='556' column='1'/>
+    <function-decl name='PyErr_WriteUnraisable' mangled-name='PyErr_WriteUnraisable' filepath='Python/errors.c' line='1555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WriteUnraisable'>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/errors.c' line='1555' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyModule_GetState' mangled-name='PyModule_GetState' filepath='Objects/moduleobject.c' line='546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetState'>
-      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='546' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='_PyErr_WriteUnraisableMsg' mangled-name='_PyErr_WriteUnraisableMsg' filepath='Python/errors.c' line='1452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_WriteUnraisableMsg'>
+      <parameter type-id='type-id-3' name='err_msg_str' filepath='Python/errors.c' line='1452' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/errors.c' line='1452' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <class-decl name='PyModuleDef' size-in-bits='832' is-struct='yes' visibility='default' filepath='./Include/moduleobject.h' line='75' column='1' id='type-id-487'>
+    <function-decl name='PyErr_NewExceptionWithDoc' mangled-name='PyErr_NewExceptionWithDoc' filepath='Python/errors.c' line='1163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_NewExceptionWithDoc'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/errors.c' line='1163' column='1'/>
+      <parameter type-id='type-id-3' name='doc' filepath='Python/errors.c' line='1163' column='1'/>
+      <parameter type-id='type-id-100' name='base' filepath='Python/errors.c' line='1164' column='1'/>
+      <parameter type-id='type-id-100' name='dict' filepath='Python/errors.c' line='1164' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyErr_NewException' mangled-name='PyErr_NewException' filepath='Python/errors.c' line='1105' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_NewException'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/errors.c' line='1105' column='1'/>
+      <parameter type-id='type-id-100' name='base' filepath='Python/errors.c' line='1105' column='1'/>
+      <parameter type-id='type-id-100' name='dict' filepath='Python/errors.c' line='1105' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyErr_Format' mangled-name='PyErr_Format' filepath='Python/errors.c' line='1089' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Format'>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='1089' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1089' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <class-decl name='_ts' size-in-bits='2112' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='51' column='1' id='type-id-550'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='m_base' type-id='type-id-488' visibility='default' filepath='./Include/moduleobject.h' line='76' column='1'/>
+        <var-decl name='prev' type-id='type-id-232' visibility='default' filepath='./Include/cpython/pystate.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='next' type-id='type-id-232' visibility='default' filepath='./Include/cpython/pystate.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='interp' type-id='type-id-311' visibility='default' filepath='./Include/cpython/pystate.h' line='56' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='frame' type-id='type-id-234' visibility='default' filepath='./Include/cpython/pystate.h' line='59' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='recursion_depth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <var-decl name='overflowed' type-id='type-id-1' visibility='default' filepath='./Include/cpython/pystate.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='296'>
+        <var-decl name='recursion_critical' type-id='type-id-1' visibility='default' filepath='./Include/cpython/pystate.h' line='63' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='m_name' type-id='type-id-3' visibility='default' filepath='./Include/moduleobject.h' line='77' column='1'/>
+        <var-decl name='stackcheck_counter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='352'>
+        <var-decl name='tracing' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='70' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='m_doc' type-id='type-id-3' visibility='default' filepath='./Include/moduleobject.h' line='78' column='1'/>
+        <var-decl name='use_tracing' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='71' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='m_size' type-id='type-id-15' visibility='default' filepath='./Include/moduleobject.h' line='79' column='1'/>
+        <var-decl name='c_profilefunc' type-id='type-id-235' visibility='default' filepath='./Include/cpython/pystate.h' line='73' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='m_methods' type-id='type-id-452' visibility='default' filepath='./Include/moduleobject.h' line='80' column='1'/>
+        <var-decl name='c_tracefunc' type-id='type-id-235' visibility='default' filepath='./Include/cpython/pystate.h' line='74' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='m_slots' type-id='type-id-489' visibility='default' filepath='./Include/moduleobject.h' line='81' column='1'/>
+        <var-decl name='c_profileobj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='c_traceobj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='76' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='curexc_type' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='79' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='curexc_value' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='80' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='curexc_traceback' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='81' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='896'>
+        <var-decl name='exc_state' type-id='type-id-236' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1152'>
+        <var-decl name='exc_info' type-id='type-id-237' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1216'>
+        <var-decl name='dict' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1280'>
+        <var-decl name='gilstate_counter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1344'>
+        <var-decl name='async_exc' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1408'>
+        <var-decl name='thread_id' type-id='type-id-33' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='m_traverse' type-id='type-id-91' visibility='default' filepath='./Include/moduleobject.h' line='82' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1472'>
+        <var-decl name='trash_delete_nesting' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='99' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='m_clear' type-id='type-id-92' visibility='default' filepath='./Include/moduleobject.h' line='83' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1536'>
+        <var-decl name='trash_delete_later' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='100' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='m_free' type-id='type-id-106' visibility='default' filepath='./Include/moduleobject.h' line='84' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1600'>
+        <var-decl name='on_delete' type-id='type-id-188' visibility='default' filepath='./Include/cpython/pystate.h' line='125' column='1'/>
       </data-member>
-    </class-decl>
-    <class-decl name='PyModuleDef_Base' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/moduleobject.h' line='44' column='1' id='type-id-490'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/moduleobject.h' line='45' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1664'>
+        <var-decl name='on_delete_data' type-id='type-id-32' visibility='default' filepath='./Include/cpython/pystate.h' line='126' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='m_init' type-id='type-id-491' visibility='default' filepath='./Include/moduleobject.h' line='46' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1728'>
+        <var-decl name='coroutine_origin_tracking_depth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='128' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='m_index' type-id='type-id-15' visibility='default' filepath='./Include/moduleobject.h' line='47' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1792'>
+        <var-decl name='async_gen_firstiter' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='130' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='m_copy' type-id='type-id-100' visibility='default' filepath='./Include/moduleobject.h' line='48' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1856'>
+        <var-decl name='async_gen_finalizer' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='131' column='1'/>
       </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-492' size-in-bits='64' id='type-id-491'/>
-    <typedef-decl name='PyModuleDef_Base' type-id='type-id-490' filepath='./Include/moduleobject.h' line='49' column='1' id='type-id-488'/>
-    <class-decl name='PyModuleDef_Slot' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/moduleobject.h' line='61' column='1' id='type-id-493'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='slot' type-id='type-id-8' visibility='default' filepath='./Include/moduleobject.h' line='62' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1920'>
+        <var-decl name='context' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='133' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='value' type-id='type-id-32' visibility='default' filepath='./Include/moduleobject.h' line='63' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1984'>
+        <var-decl name='context_ver' type-id='type-id-238' visibility='default' filepath='./Include/cpython/pystate.h' line='134' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2048'>
+        <var-decl name='id' type-id='type-id-238' visibility='default' filepath='./Include/cpython/pystate.h' line='137' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-493' size-in-bits='64' id='type-id-489'/>
-    <typedef-decl name='PyModuleDef' type-id='type-id-487' filepath='./Include/moduleobject.h' line='85' column='1' id='type-id-494'/>
-    <pointer-type-def type-id='type-id-494' size-in-bits='64' id='type-id-495'/>
-    <function-decl name='PyModule_GetDef' mangled-name='PyModule_GetDef' filepath='Objects/moduleobject.c' line='536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetDef'>
-      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='536' column='1'/>
-      <return type-id='type-id-495'/>
-    </function-decl>
-    <function-decl name='PyModule_GetFilename' mangled-name='PyModule_GetFilename' filepath='Objects/moduleobject.c' line='523' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetFilename'>
-      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='523' column='1'/>
-      <return type-id='type-id-3'/>
-    </function-decl>
-    <function-decl name='PyModule_GetFilenameObject' mangled-name='PyModule_GetFilenameObject' filepath='Objects/moduleobject.c' line='501' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetFilenameObject'>
-      <parameter type-id='type-id-100' name='path' filepath='Objects/fileobject.c' line='548' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyModule_GetName' mangled-name='PyModule_GetName' filepath='Objects/moduleobject.c' line='491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetName'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='98' column='1'/>
-      <return type-id='type-id-3'/>
-    </function-decl>
-    <function-decl name='PyModule_GetNameObject' mangled-name='PyModule_GetNameObject' filepath='Objects/moduleobject.c' line='470' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetNameObject'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1992' column='1'/>
+    <typedef-decl name='PyThreadState' type-id='type-id-550' filepath='./Include/pystate.h' line='20' column='1' id='type-id-551'/>
+    <pointer-type-def type-id='type-id-551' size-in-bits='64' id='type-id-552'/>
+    <function-decl name='_PyErr_Format' mangled-name='_PyErr_Format' filepath='Python/errors.c' line='1073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Format'>
+      <parameter type-id='type-id-552' name='tstate' filepath='Python/errors.c' line='1073' column='1'/>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='1073' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1074' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyModule_GetDict' mangled-name='PyModule_GetDict' filepath='Objects/moduleobject.c' line='457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_GetDict'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
+    <function-decl name='PyErr_FormatV' mangled-name='PyErr_FormatV' filepath='Python/errors.c' line='1065' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_FormatV'>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='1065' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1065' column='1'/>
+      <parameter type-id='type-id-306' name='vargs' filepath='Python/errors.c' line='1065' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyModule_SetDocString' mangled-name='PyModule_SetDocString' filepath='Objects/moduleobject.c' line='443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_SetDocString'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2246' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2246' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyErr_BadInternalCall' mangled-name='PyErr_BadInternalCall' filepath='Python/errors.c' line='1036' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_BadInternalCall'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyModule_AddFunctions' mangled-name='PyModule_AddFunctions' filepath='Objects/moduleobject.c' line='429' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddFunctions'>
-      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='429' column='1'/>
-      <parameter type-id='type-id-452' name='functions' filepath='Objects/moduleobject.c' line='429' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyErr_BadInternalCall' mangled-name='_PyErr_BadInternalCall' filepath='Python/errors.c' line='1024' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_BadInternalCall'>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/errors.c' line='1024' column='1'/>
+      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1024' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyModule_ExecDef' mangled-name='PyModule_ExecDef' filepath='Objects/moduleobject.c' line='364' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_ExecDef'>
-      <parameter type-id='type-id-100' name='module' filepath='Objects/moduleobject.c' line='364' column='1'/>
-      <parameter type-id='type-id-495' name='def' filepath='Objects/moduleobject.c' line='364' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyErr_SetImportError' mangled-name='PyErr_SetImportError' filepath='Python/errors.c' line='1018' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetImportError'>
+      <parameter type-id='type-id-100' name='co' filepath='Python/ceval.c' line='824' column='1'/>
+      <parameter type-id='type-id-100' name='globals' filepath='Python/ceval.c' line='824' column='1'/>
+      <parameter type-id='type-id-100' name='locals' filepath='Python/ceval.c' line='824' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyModule_FromDefAndSpec2' mangled-name='PyModule_FromDefAndSpec2' filepath='Objects/moduleobject.c' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_FromDefAndSpec2'>
-      <parameter type-id='type-id-495' name='def' filepath='Objects/moduleobject.c' line='240' column='1'/>
-      <parameter type-id='type-id-100' name='spec' filepath='Objects/moduleobject.c' line='240' column='1'/>
-      <parameter type-id='type-id-8' name='module_api_version' filepath='Objects/moduleobject.c' line='240' column='1'/>
+    <function-decl name='PyErr_SetImportErrorSubclass' mangled-name='PyErr_SetImportErrorSubclass' filepath='Python/errors.c' line='965' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetImportErrorSubclass'>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='965' column='1'/>
+      <parameter type-id='type-id-100' name='msg' filepath='Python/errors.c' line='965' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Python/errors.c' line='966' column='1'/>
+      <parameter type-id='type-id-100' name='path' filepath='Python/errors.c' line='966' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyModule_CreateInitialized' mangled-name='_PyModule_CreateInitialized' filepath='Objects/moduleobject.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyModule_CreateInitialized'>
-      <parameter type-id='type-id-495' name='module' filepath='Objects/moduleobject.c' line='177' column='1'/>
-      <parameter type-id='type-id-8' name='module_api_version' filepath='Objects/moduleobject.c' line='177' column='1'/>
+    <function-decl name='PyErr_SetFromErrno' mangled-name='PyErr_SetFromErrno' filepath='Python/errors.c' line='815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrno'>
+      <parameter type-id='type-id-100' name='im' filepath='Objects/classobject.c' line='25' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyModule_Create2' mangled-name='PyModule_Create2' filepath='Objects/moduleobject.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_Create2'>
-      <parameter type-id='type-id-495' name='module' filepath='Objects/moduleobject.c' line='166' column='1'/>
-      <parameter type-id='type-id-8' name='module_api_version' filepath='Objects/moduleobject.c' line='166' column='1'/>
+    <function-decl name='PyErr_SetFromErrnoWithFilename' mangled-name='PyErr_SetFromErrnoWithFilename' filepath='Python/errors.c' line='795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrnoWithFilename'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/dictobject.c' line='3477' column='1'/>
+      <parameter type-id='type-id-3' name='key' filepath='Objects/dictobject.c' line='3477' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyModule_New' mangled-name='PyModule_New' filepath='Objects/moduleobject.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_New'>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/bytesobject.c' line='128' column='1'/>
+    <function-decl name='PyErr_SetFromErrnoWithFilenameObjects' mangled-name='PyErr_SetFromErrnoWithFilenameObjects' filepath='Python/errors.c' line='696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrnoWithFilenameObjects'>
+      <parameter type-id='type-id-100' name='exc' filepath='Python/errors.c' line='696' column='1'/>
+      <parameter type-id='type-id-100' name='filenameObject' filepath='Python/errors.c' line='696' column='1'/>
+      <parameter type-id='type-id-100' name='filenameObject2' filepath='Python/errors.c' line='696' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyModule_NewObject' mangled-name='PyModule_NewObject' filepath='Objects/moduleobject.c' line='84' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_NewObject'>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/moduleobject.c' line='84' column='1'/>
+    <function-decl name='PyErr_SetFromErrnoWithFilenameObject' mangled-name='PyErr_SetFromErrnoWithFilenameObject' filepath='Python/errors.c' line='690' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrnoWithFilenameObject'>
+      <parameter type-id='type-id-100' name='code' filepath='Objects/funcobject.c' line='79' column='1'/>
+      <parameter type-id='type-id-100' name='globals' filepath='Objects/funcobject.c' line='79' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyModuleDef_Init' mangled-name='PyModuleDef_Init' filepath='Objects/moduleobject.c' line='39' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModuleDef_Init'>
-      <parameter type-id='type-id-495' name='def' filepath='Objects/moduleobject.c' line='39' column='1'/>
+    <function-decl name='PyErr_NoMemory' mangled-name='PyErr_NoMemory' filepath='Python/errors.c' line='683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_NoMemory'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-type size-in-bits='64' id='type-id-492'>
+    <function-decl name='PyErr_BadArgument' mangled-name='PyErr_BadArgument' filepath='Python/errors.c' line='661' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_BadArgument'>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyErr_FormatFromCause' mangled-name='_PyErr_FormatFromCause' filepath='Python/errors.c' line='644' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_FormatFromCause'>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='644' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='644' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-100'/>
-    </function-type>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/namespaceobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='_PyNamespace_Type' type-id='type-id-182' mangled-name='_PyNamespace_Type' visibility='default' filepath='./Include/namespaceobject.h' line='11' column='1' elf-symbol-id='_PyNamespace_Type'/>
-    <function-decl name='_PyNamespace_New' mangled-name='_PyNamespace_New' filepath='Objects/namespaceobject.c' line='247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyNamespace_New'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
+    </function-decl>
+    <function-decl name='_PyErr_FormatFromCauseTstate' mangled-name='_PyErr_FormatFromCauseTstate' filepath='Python/errors.c' line='629' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_FormatFromCauseTstate'>
+      <parameter type-id='type-id-552' name='tstate' filepath='Python/errors.c' line='629' column='1'/>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='629' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='630' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/object.c' comp-dir-path='/src' language='LANG_C99'>
-
-    <array-type-def dimensions='1' type-id='type-id-8' size-in-bits='infinite' id='type-id-496'>
-      <subrange length='infinite' id='type-id-18'/>
-
-    </array-type-def>
-    <var-decl name='_Py_SwappedOp' type-id='type-id-496' mangled-name='_Py_SwappedOp' visibility='default' filepath='./Include/cpython/object.h' line='387' column='1' elf-symbol-id='_Py_SwappedOp'/>
-    <var-decl name='_PyNone_Type' type-id='type-id-182' mangled-name='_PyNone_Type' visibility='default' filepath='./Include/cpython/object.h' line='381' column='1' elf-symbol-id='_PyNone_Type'/>
-    <var-decl name='_Py_NoneStruct' type-id='type-id-110' mangled-name='_Py_NoneStruct' visibility='default' filepath='./Include/object.h' line='516' column='1' elf-symbol-id='_Py_NoneStruct'/>
-    <var-decl name='_PyNotImplemented_Type' type-id='type-id-182' mangled-name='_PyNotImplemented_Type' visibility='default' filepath='./Include/cpython/object.h' line='382' column='1' elf-symbol-id='_PyNotImplemented_Type'/>
-    <var-decl name='_Py_NotImplementedStruct' type-id='type-id-110' mangled-name='_Py_NotImplementedStruct' visibility='default' filepath='./Include/object.h' line='526' column='1' elf-symbol-id='_Py_NotImplementedStruct'/>
-    <function-decl name='PyObject_GET_WEAKREFS_LISTPTR' mangled-name='PyObject_GET_WEAKREFS_LISTPTR' filepath='Objects/object.c' line='2214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GET_WEAKREFS_LISTPTR'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='2214' column='1'/>
-      <return type-id='type-id-303'/>
+    <function-decl name='_PyErr_ChainStackItem' mangled-name='_PyErr_ChainStackItem' filepath='Python/errors.c' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_ChainStackItem'>
+      <parameter type-id='type-id-237' name='exc_info' filepath='Python/errors.c' line='553' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_Dealloc' mangled-name='_Py_Dealloc' filepath='Objects/object.c' line='2203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Dealloc'>
-      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='556' column='1'/>
+    <function-decl name='_PyErr_ChainExceptions' mangled-name='_PyErr_ChainExceptions' filepath='Python/errors.c' line='511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_ChainExceptions'>
+      <parameter type-id='type-id-100' name='exc' filepath='Python/errors.c' line='511' column='1'/>
+      <parameter type-id='type-id-100' name='val' filepath='Python/errors.c' line='511' column='1'/>
+      <parameter type-id='type-id-100' name='tb' filepath='Python/errors.c' line='511' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_AssertFailed' mangled-name='_PyObject_AssertFailed' filepath='Objects/object.c' line='2147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_AssertFailed'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='2147' column='1'/>
-      <parameter type-id='type-id-3' name='expr' filepath='Objects/object.c' line='2147' column='1'/>
-      <parameter type-id='type-id-3' name='msg' filepath='Objects/object.c' line='2147' column='1'/>
-      <parameter type-id='type-id-3' name='file' filepath='Objects/object.c' line='2148' column='1'/>
-      <parameter type-id='type-id-8' name='line' filepath='Objects/object.c' line='2148' column='1'/>
-      <parameter type-id='type-id-3' name='function' filepath='Objects/object.c' line='2148' column='1'/>
+    <function-decl name='PyErr_SetExcInfo' mangled-name='PyErr_SetExcInfo' filepath='Python/errors.c' line='487' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetExcInfo'>
+      <parameter type-id='type-id-100' name='p_type' filepath='Python/errors.c' line='487' column='1'/>
+      <parameter type-id='type-id-100' name='p_value' filepath='Python/errors.c' line='487' column='1'/>
+      <parameter type-id='type-id-100' name='p_traceback' filepath='Python/errors.c' line='487' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTrash_end' mangled-name='_PyTrash_end' filepath='Objects/object.c' line='2137' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_end'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Objects/object.c' line='2137' column='1'/>
+    <function-decl name='PyErr_GetExcInfo' mangled-name='PyErr_GetExcInfo' filepath='Python/errors.c' line='480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_GetExcInfo'>
+      <parameter type-id='type-id-303' name='p_type' filepath='Python/errors.c' line='480' column='1'/>
+      <parameter type-id='type-id-303' name='p_value' filepath='Python/errors.c' line='480' column='1'/>
+      <parameter type-id='type-id-303' name='p_traceback' filepath='Python/errors.c' line='480' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTrash_begin' mangled-name='_PyTrash_begin' filepath='Objects/object.c' line='2123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_begin'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Objects/object.c' line='2123' column='1'/>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='2123' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyErr_GetExcInfo' mangled-name='_PyErr_GetExcInfo' filepath='Python/errors.c' line='465' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_GetExcInfo'>
+      <parameter type-id='type-id-552' name='tstate' filepath='Python/errors.c' line='465' column='1'/>
+      <parameter type-id='type-id-303' name='p_type' filepath='Python/errors.c' line='466' column='1'/>
+      <parameter type-id='type-id-303' name='p_value' filepath='Python/errors.c' line='466' column='1'/>
+      <parameter type-id='type-id-303' name='p_traceback' filepath='Python/errors.c' line='466' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTrash_thread_destroy_chain' mangled-name='_PyTrash_thread_destroy_chain' filepath='Objects/object.c' line='2085' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_thread_destroy_chain'>
+    <function-decl name='_PyErr_Clear' mangled-name='_PyErr_Clear' filepath='Python/errors.c' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Clear'>
+      <parameter type-id='type-id-552' name='tstate' filepath='Python/errors.c' line='450' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTrash_destroy_chain' mangled-name='_PyTrash_destroy_chain' filepath='Objects/object.c' line='2058' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_destroy_chain'>
+    <function-decl name='PyErr_Fetch' mangled-name='PyErr_Fetch' filepath='Python/errors.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Fetch'>
+      <parameter type-id='type-id-303' name='p_type' filepath='Python/errors.c' line='480' column='1'/>
+      <parameter type-id='type-id-303' name='p_value' filepath='Python/errors.c' line='480' column='1'/>
+      <parameter type-id='type-id-303' name='p_traceback' filepath='Python/errors.c' line='480' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTrash_thread_deposit_object' mangled-name='_PyTrash_thread_deposit_object' filepath='Objects/object.c' line='2044' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_thread_deposit_object'>
-      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='556' column='1'/>
+    <function-decl name='_PyErr_Fetch' mangled-name='_PyErr_Fetch' filepath='Python/errors.c' line='428' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Fetch'>
+      <parameter type-id='type-id-552' name='tstate' filepath='Python/errors.c' line='428' column='1'/>
+      <parameter type-id='type-id-303' name='p_type' filepath='Python/errors.c' line='428' column='1'/>
+      <parameter type-id='type-id-303' name='p_value' filepath='Python/errors.c' line='428' column='1'/>
+      <parameter type-id='type-id-303' name='p_traceback' filepath='Python/errors.c' line='429' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTrash_deposit_object' mangled-name='_PyTrash_deposit_object' filepath='Objects/object.c' line='2030' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTrash_deposit_object'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='2030' column='1'/>
+    <function-decl name='PyErr_NormalizeException' mangled-name='PyErr_NormalizeException' filepath='Python/errors.c' line='420' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_NormalizeException'>
+      <parameter type-id='type-id-303' name='p_type' filepath='Python/errors.c' line='480' column='1'/>
+      <parameter type-id='type-id-303' name='p_value' filepath='Python/errors.c' line='480' column='1'/>
+      <parameter type-id='type-id-303' name='p_traceback' filepath='Python/errors.c' line='480' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_ReprLeave' mangled-name='Py_ReprLeave' filepath='Objects/object.c' line='1992' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_ReprLeave'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1992' column='1'/>
+    <function-decl name='_PyErr_NormalizeException' mangled-name='_PyErr_NormalizeException' filepath='Python/errors.c' line='316' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_NormalizeException'>
+      <parameter type-id='type-id-552' name='tstate' filepath='Python/errors.c' line='316' column='1'/>
+      <parameter type-id='type-id-303' name='exc' filepath='Python/errors.c' line='316' column='1'/>
+      <parameter type-id='type-id-303' name='val' filepath='Python/errors.c' line='317' column='1'/>
+      <parameter type-id='type-id-303' name='tb' filepath='Python/errors.c' line='317' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_ReprEnter' mangled-name='Py_ReprEnter' filepath='Objects/object.c' line='1958' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_ReprEnter'>
-      <parameter type-id='type-id-100' name='dict' filepath='Objects/dictobject.c' line='957' column='1'/>
+    <function-decl name='PyErr_ExceptionMatches' mangled-name='PyErr_ExceptionMatches' filepath='Python/errors.c' line='298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_ExceptionMatches'>
+      <parameter type-id='type-id-100' name='exc' filepath='Python/errors.c' line='298' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyObject_DebugTypeStats' mangled-name='_PyObject_DebugTypeStats' filepath='Objects/object.c' line='1936' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_DebugTypeStats'>
-      <parameter type-id='type-id-223' name='out' filepath='Objects/floatobject.c' line='2001' column='1'/>
+    <function-decl name='_PyErr_ExceptionMatches' mangled-name='_PyErr_ExceptionMatches' filepath='Python/errors.c' line='291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_ExceptionMatches'>
+      <parameter type-id='type-id-552' name='tstate' filepath='Python/errors.c' line='291' column='1'/>
+      <parameter type-id='type-id-100' name='exc' filepath='Python/errors.c' line='291' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyErr_Occurred' mangled-name='PyErr_Occurred' filepath='Python/errors.c' line='248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Occurred'>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyErr_SetString' mangled-name='PyErr_SetString' filepath='Python/errors.c' line='240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetString'>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='240' column='1'/>
+      <parameter type-id='type-id-3' name='string' filepath='Python/errors.c' line='240' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_NewReference' mangled-name='_Py_NewReference' filepath='Objects/object.c' line='1822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_NewReference'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='1822' column='1'/>
+    <function-decl name='_PyErr_SetString' mangled-name='_PyErr_SetString' filepath='Python/errors.c' line='231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_SetString'>
+      <parameter type-id='type-id-552' name='tstate' filepath='Python/errors.c' line='231' column='1'/>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='231' column='1'/>
+      <parameter type-id='type-id-3' name='string' filepath='Python/errors.c' line='232' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_Dir' mangled-name='PyObject_Dir' filepath='Objects/object.c' line='1505' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Dir'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyErr_SetNone' mangled-name='PyErr_SetNone' filepath='Python/errors.c' line='223' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetNone'>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='223' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyCallable_Check' mangled-name='PyCallable_Check' filepath='Objects/object.c' line='1433' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCallable_Check'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyErr_SetNone' mangled-name='_PyErr_SetNone' filepath='Python/errors.c' line='216' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_SetNone'>
+      <parameter type-id='type-id-552' name='tstate' filepath='Python/errors.c' line='216' column='1'/>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='216' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_Not' mangled-name='PyObject_Not' filepath='Objects/object.c' line='1421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Not'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='284' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyErr_SetKeyError' mangled-name='_PyErr_SetKeyError' filepath='Python/errors.c' line='203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_SetKeyError'>
+      <parameter type-id='type-id-100' name='arg' filepath='Python/errors.c' line='203' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_IsTrue' mangled-name='PyObject_IsTrue' filepath='Objects/object.c' line='1393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IsTrue'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='284' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyErr_SetObject' mangled-name='PyErr_SetObject' filepath='Python/errors.c' line='193' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetObject'>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='193' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Python/errors.c' line='193' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_GenericSetDict' mangled-name='PyObject_GenericSetDict' filepath='Objects/object.c' line='1365' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GenericSetDict'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1365' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Objects/object.c' line='1365' column='1'/>
-      <parameter type-id='type-id-32' name='context' filepath='Objects/object.c' line='1365' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyErr_GetTopmostException' mangled-name='_PyErr_GetTopmostException' filepath='Python/errors.c' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_GetTopmostException'>
+      <parameter type-id='type-id-552' name='tstate' filepath='Python/errors.c' line='77' column='1'/>
+      <return type-id='type-id-237'/>
     </function-decl>
-    <function-decl name='PyObject_GenericSetAttr' mangled-name='PyObject_GenericSetAttr' filepath='Objects/object.c' line='1359' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GenericSetAttr'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1359' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='1359' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Objects/object.c' line='1359' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyErr_Restore' mangled-name='PyErr_Restore' filepath='Python/errors.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Restore'>
+      <parameter type-id='type-id-100' name='type' filepath='Python/errors.c' line='69' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Python/errors.c' line='69' column='1'/>
+      <parameter type-id='type-id-100' name='traceback' filepath='Python/errors.c' line='69' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_GenericSetAttrWithDict' mangled-name='_PyObject_GenericSetAttrWithDict' filepath='Objects/object.c' line='1284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GenericSetAttrWithDict'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1284' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='1284' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Objects/object.c' line='1285' column='1'/>
-      <parameter type-id='type-id-100' name='dict' filepath='Objects/object.c' line='1285' column='1'/>
+    <function-decl name='_PyErr_Restore' mangled-name='_PyErr_Restore' filepath='Python/errors.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Restore'>
+      <parameter type-id='type-id-552' name='tstate' filepath='Python/errors.c' line='41' column='1'/>
+      <parameter type-id='type-id-100' name='type' filepath='Python/errors.c' line='41' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Python/errors.c' line='41' column='1'/>
+      <parameter type-id='type-id-100' name='traceback' filepath='Python/errors.c' line='42' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_GivenExceptionMatches' mangled-name='PyErr_GivenExceptionMatches' filepath='Python/errors.c' line='259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_GivenExceptionMatches'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/exceptions.c' line='325' column='1'/>
+      <parameter type-id='type-id-100' name='tb' filepath='Objects/exceptions.c' line='325' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_GenericGetAttr' mangled-name='PyObject_GenericGetAttr' filepath='Objects/object.c' line='1278' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GenericGetAttr'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyErr_SetObject' mangled-name='_PyErr_SetObject' filepath='Python/errors.c' line='115' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_SetObject'>
+      <parameter type-id='type-id-552' name='tstate' filepath='Python/errors.c' line='115' column='1'/>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='115' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Python/errors.c' line='115' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_GenericGetAttrWithDict' mangled-name='_PyObject_GenericGetAttrWithDict' filepath='Objects/object.c' line='1165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GenericGetAttrWithDict'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1165' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='1165' column='1'/>
-      <parameter type-id='type-id-100' name='dict' filepath='Objects/object.c' line='1166' column='1'/>
-      <parameter type-id='type-id-8' name='suppress' filepath='Objects/object.c' line='1166' column='1'/>
+    <function-decl name='_PyErr_NoMemory' mangled-name='_PyErr_NoMemory' filepath='Python/errors.c' line='670' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_NoMemory'>
+      <parameter type-id='type-id-552' name='tstate' filepath='Python/errors.c' line='670' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyObject_GetMethod' mangled-name='_PyObject_GetMethod' filepath='Objects/object.c' line='1085' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetMethod'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1085' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='1085' column='1'/>
-      <parameter type-id='type-id-303' name='method' filepath='Objects/object.c' line='1085' column='1'/>
+    <function-decl name='_Py_fopen_obj' mangled-name='_Py_fopen_obj' filepath='./Include/cpython/fileutils.h' line='102' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_fopen' mangled-name='_Py_fopen' filepath='./Include/cpython/fileutils.h' line='98' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_HasAttrId' mangled-name='_PyObject_HasAttrId' filepath='./Include/cpython/object.h' line='317' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTraceBack_FromFrame' mangled-name='_PyTraceBack_FromFrame' filepath='./Include/internal/pycore_traceback.h' line='90' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_FatalError_TstateNULL' mangled-name='_Py_FatalError_TstateNULL' filepath='./Include/internal/pycore_pystate.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTraceBack_Print' mangled-name='PyTraceBack_Print' filepath='./Include/traceback.h' line='10' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyType_GetQualName' mangled-name='_PyType_GetQualName' filepath='./Include/internal/pycore_object.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='strerror' mangled-name='strerror' filepath='/usr/include/string.h' line='397' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeLocale' mangled-name='PyUnicode_DecodeLocale' filepath='./Include/unicodeobject.h' line='728' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyException_SetContext' mangled-name='PyException_SetContext' filepath='./Include/pyerrors.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyException_GetContext' mangled-name='PyException_GetContext' filepath='./Include/pyerrors.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/frozenmain.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='Py_FrozenMain' mangled-name='Py_FrozenMain' filepath='Python/frozenmain.c' line='17' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FrozenMain'>
+      <parameter type-id='type-id-8' name='argc' filepath='Python/frozenmain.c' line='17' column='1'/>
+      <parameter type-id='type-id-304' name='argv' filepath='Python/frozenmain.c' line='17' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyObject_NextNotImplemented' mangled-name='_PyObject_NextNotImplemented' filepath='Objects/object.c' line='1065' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_NextNotImplemented'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyRuntime_Initialize' mangled-name='_PyRuntime_Initialize' filepath='./Include/internal/pycore_runtime.h' line='126' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_SelfIter' mangled-name='PyObject_SelfIter' filepath='Objects/object.c' line='1053' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SelfIter'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyStatus_Exception' mangled-name='PyStatus_Exception' filepath='./Include/cpython/initconfig.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_GetDictPtr' mangled-name='_PyObject_GetDictPtr' filepath='Objects/object.c' line='1030' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetDictPtr'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/object.c' line='1030' column='1'/>
-      <return type-id='type-id-303'/>
+    <function-decl name='PyConfig_InitPythonConfig' mangled-name='PyConfig_InitPythonConfig' filepath='./Include/cpython/initconfig.h' line='427' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='setlocale' mangled-name='setlocale' filepath='/usr/include/locale.h' line='122' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyMem_RawStrdup' mangled-name='_PyMem_RawStrdup' filepath='./Include/cpython/pymem.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_DecodeLocale' mangled-name='Py_DecodeLocale' filepath='./Include/fileutils.h' line='8' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_SetAttr' mangled-name='PyObject_SetAttr' filepath='Objects/object.c' line='979' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SetAttr'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='979' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='979' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Objects/object.c' line='979' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='setbuf' mangled-name='setbuf' filepath='/usr/include/stdio.h' line='304' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_HasAttr' mangled-name='PyObject_HasAttr' filepath='Objects/object.c' line='964' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_HasAttr'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2629' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2629' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='Py_SetProgramName' mangled-name='Py_SetProgramName' filepath='./Include/pylifecycle.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_LookupAttrId' mangled-name='_PyObject_LookupAttrId' filepath='Objects/object.c' line='953' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_LookupAttrId'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='953' column='1'/>
-      <parameter type-id='type-id-476' name='name' filepath='Objects/object.c' line='953' column='1'/>
-      <parameter type-id='type-id-303' name='result' filepath='Objects/object.c' line='953' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='Py_InitializeFromConfig' mangled-name='Py_InitializeFromConfig' filepath='./Include/cpython/pylifecycle.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_LookupAttr' mangled-name='_PyObject_LookupAttr' filepath='Objects/object.c' line='904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_LookupAttr'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='904' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/object.c' line='904' column='1'/>
-      <parameter type-id='type-id-303' name='result' filepath='Objects/object.c' line='904' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyConfig_Clear' mangled-name='PyConfig_Clear' filepath='./Include/cpython/initconfig.h' line='429' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_GetAttr' mangled-name='PyObject_GetAttr' filepath='Objects/object.c' line='879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetAttr'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1685' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1685' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PySys_SetArgv' mangled-name='PySys_SetArgv' filepath='./Include/sysmodule.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_SetAttrId' mangled-name='_PyObject_SetAttrId' filepath='Objects/object.c' line='868' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_SetAttrId'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='868' column='1'/>
-      <parameter type-id='type-id-476' name='name' filepath='Objects/object.c' line='868' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/object.c' line='868' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyImport_ImportFrozenModule' mangled-name='PyImport_ImportFrozenModule' filepath='./Include/import.h' line='80' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_HasAttrId' mangled-name='_PyObject_HasAttrId' filepath='Objects/object.c' line='857' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_HasAttrId'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='857' column='1'/>
-      <parameter type-id='type-id-476' name='name' filepath='Objects/object.c' line='857' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='Py_FinalizeEx' mangled-name='Py_FinalizeEx' filepath='./Include/pylifecycle.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_GetAttrId' mangled-name='_PyObject_GetAttrId' filepath='Objects/object.c' line='846' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetAttrId'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='846' column='1'/>
-      <parameter type-id='type-id-476' name='name' filepath='Objects/object.c' line='846' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_GetCopyright' mangled-name='Py_GetCopyright' filepath='./Include/pylifecycle.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_IsAbstract' mangled-name='_PyObject_IsAbstract' filepath='Objects/object.c' line='829' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_IsAbstract'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='295' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='Py_GetVersion' mangled-name='Py_GetVersion' filepath='./Include/pylifecycle.h' line='57' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_SetAttrString' mangled-name='PyObject_SetAttrString' filepath='Objects/object.c' line='813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SetAttrString'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2227' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2227' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Objects/abstract.c' line='2227' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyRun_AnyFileExFlags' mangled-name='PyRun_AnyFileExFlags' filepath='./Include/pythonrun.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_HasAttrString' mangled-name='PyObject_HasAttrString' filepath='Objects/object.c' line='801' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_HasAttrString'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2246' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2246' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='Py_ExitStatusException' mangled-name='Py_ExitStatusException' filepath='./Include/cpython/pylifecycle.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_GetAttrString' mangled-name='PyObject_GetAttrString' filepath='Objects/object.c' line='786' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetAttrString'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2210' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2210' column='1'/>
-      <return type-id='type-id-100'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/future.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-553' visibility='default' filepath='./Include/compile.h' line='48' column='1' id='type-id-554'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ff_features' type-id='type-id-8' visibility='default' filepath='./Include/compile.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='ff_lineno' type-id='type-id-8' visibility='default' filepath='./Include/compile.h' line='50' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='PyFutureFeatures' type-id='type-id-554' filepath='./Include/compile.h' line='51' column='1' id='type-id-553'/>
+    <pointer-type-def type-id='type-id-553' size-in-bits='64' id='type-id-555'/>
+    <function-decl name='PyFuture_FromAST' mangled-name='PyFuture_FromAST' filepath='Python/future.c' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFuture_FromAST'>
+      <parameter type-id='type-id-204' name='mod' filepath='Python/future.c' line='147' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/future.c' line='147' column='1'/>
+      <return type-id='type-id-555'/>
     </function-decl>
-    <function-decl name='PyObject_Hash' mangled-name='PyObject_Hash' filepath='Objects/object.c' line='765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Hash'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='765' column='1'/>
-      <return type-id='type-id-150'/>
+    <function-decl name='PyFuture_FromASTObject' mangled-name='PyFuture_FromASTObject' filepath='Python/future.c' line='126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFuture_FromASTObject'>
+      <parameter type-id='type-id-204' name='mod' filepath='Python/future.c' line='126' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/future.c' line='126' column='1'/>
+      <return type-id='type-id-555'/>
     </function-decl>
-    <function-decl name='PyObject_HashNotImplemented' mangled-name='PyObject_HashNotImplemented' filepath='Objects/object.c' line='757' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_HashNotImplemented'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='757' column='1'/>
-      <return type-id='type-id-150'/>
+    <function-decl name='PyErr_SyntaxLocationObject' mangled-name='PyErr_SyntaxLocationObject' filepath='./Include/cpython/pyerrors.h' line='143' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_RichCompareBool' mangled-name='PyObject_RichCompareBool' filepath='Objects/object.c' line='731' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_RichCompareBool'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='731' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/object.c' line='731' column='1'/>
-      <parameter type-id='type-id-8' name='op' filepath='Objects/object.c' line='731' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/getargs.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_PyArg_NoKwnames' mangled-name='_PyArg_NoKwnames' filepath='Python/getargs.c' line='2839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_NoKwnames'>
+      <parameter type-id='type-id-3' name='funcname' filepath='Python/getargs.c' line='2839' column='1'/>
+      <parameter type-id='type-id-100' name='kwnames' filepath='Python/getargs.c' line='2839' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_RichCompare' mangled-name='PyObject_RichCompare' filepath='Objects/object.c' line='709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_RichCompare'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='709' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/object.c' line='709' column='1'/>
-      <parameter type-id='type-id-8' name='op' filepath='Objects/object.c' line='709' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='_PyObject_FunctionStr' mangled-name='_PyObject_FunctionStr' filepath='Objects/object.c' line='577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_FunctionStr'>
-      <parameter type-id='type-id-100' name='x' filepath='Objects/object.c' line='577' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyArg_NoPositional' mangled-name='_PyArg_NoPositional' filepath='Python/getargs.c' line='2822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_NoPositional'>
+      <parameter type-id='type-id-3' name='funcname' filepath='Python/getargs.c' line='2822' column='1'/>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='2822' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_Bytes' mangled-name='PyObject_Bytes' filepath='Objects/object.c' line='529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Bytes'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1992' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyArg_NoKeywords' mangled-name='_PyArg_NoKeywords' filepath='Python/getargs.c' line='2803' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_NoKeywords'>
+      <parameter type-id='type-id-3' name='funcname' filepath='Python/getargs.c' line='2822' column='1'/>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='2822' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_ASCII' mangled-name='PyObject_ASCII' filepath='Objects/object.c' line='502' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_ASCII'>
-      <parameter type-id='type-id-100' name='path' filepath='Objects/fileobject.c' line='548' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyArg_UnpackStack' mangled-name='_PyArg_UnpackStack' filepath='Python/getargs.c' line='2776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_UnpackStack'>
+      <parameter type-id='type-id-190' name='args' filepath='Python/getargs.c' line='2776' column='1'/>
+      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='2776' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/getargs.c' line='2776' column='1'/>
+      <parameter type-id='type-id-15' name='min' filepath='Python/getargs.c' line='2777' column='1'/>
+      <parameter type-id='type-id-15' name='max' filepath='Python/getargs.c' line='2777' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_Str' mangled-name='PyObject_Str' filepath='Objects/object.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Str'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1992' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyArg_UnpackTuple' mangled-name='PyArg_UnpackTuple' filepath='Python/getargs.c' line='2750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_UnpackTuple'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='2750' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/getargs.c' line='2750' column='1'/>
+      <parameter type-id='type-id-15' name='min' filepath='Python/getargs.c' line='2750' column='1'/>
+      <parameter type-id='type-id-15' name='max' filepath='Python/getargs.c' line='2750' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_Repr' mangled-name='PyObject_Repr' filepath='Objects/object.c' line='389' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Repr'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1992' column='1'/>
-      <return type-id='type-id-100'/>
+    <class-decl name='_PyArg_Parser' size-in-bits='512' is-struct='yes' visibility='default' filepath='./Include/modsupport.h' line='92' column='1' id='type-id-556'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='format' type-id='type-id-3' visibility='default' filepath='./Include/modsupport.h' line='93' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='keywords' type-id='type-id-557' visibility='default' filepath='./Include/modsupport.h' line='94' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='fname' type-id='type-id-3' visibility='default' filepath='./Include/modsupport.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='custom_msg' type-id='type-id-3' visibility='default' filepath='./Include/modsupport.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='pos' type-id='type-id-8' visibility='default' filepath='./Include/modsupport.h' line='97' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <var-decl name='min' type-id='type-id-8' visibility='default' filepath='./Include/modsupport.h' line='98' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='max' type-id='type-id-8' visibility='default' filepath='./Include/modsupport.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='kwtuple' type-id='type-id-100' visibility='default' filepath='./Include/modsupport.h' line='100' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='next' type-id='type-id-558' visibility='default' filepath='./Include/modsupport.h' line='101' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-16' size-in-bits='64' id='type-id-557'/>
+    <pointer-type-def type-id='type-id-556' size-in-bits='64' id='type-id-558'/>
+    <function-decl name='_PyArg_UnpackKeywords' mangled-name='_PyArg_UnpackKeywords' filepath='Python/getargs.c' line='2343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_UnpackKeywords'>
+      <parameter type-id='type-id-190' name='args' filepath='Python/getargs.c' line='2343' column='1'/>
+      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='2343' column='1'/>
+      <parameter type-id='type-id-100' name='kwargs' filepath='Python/getargs.c' line='2344' column='1'/>
+      <parameter type-id='type-id-100' name='kwnames' filepath='Python/getargs.c' line='2344' column='1'/>
+      <parameter type-id='type-id-558' name='parser' filepath='Python/getargs.c' line='2345' column='1'/>
+      <parameter type-id='type-id-8' name='minpos' filepath='Python/getargs.c' line='2346' column='1'/>
+      <parameter type-id='type-id-8' name='maxpos' filepath='Python/getargs.c' line='2346' column='1'/>
+      <parameter type-id='type-id-8' name='minkw' filepath='Python/getargs.c' line='2346' column='1'/>
+      <parameter type-id='type-id-303' name='buf' filepath='Python/getargs.c' line='2347' column='1'/>
+      <return type-id='type-id-190'/>
     </function-decl>
-    <function-decl name='_PyObject_Dump' mangled-name='_PyObject_Dump' filepath='Objects/object.c' line='348' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_Dump'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='982' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='PyArg_ValidateKeywordArguments' mangled-name='PyArg_ValidateKeywordArguments' filepath='Python/getargs.c' line='1632' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_ValidateKeywordArguments'>
+      <parameter type-id='type-id-100' name='kwargs' filepath='Python/getargs.c' line='1632' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyObject_IsFreed' mangled-name='_PyObject_IsFreed' filepath='Objects/object.c' line='327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_IsFreed'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
+    <function-decl name='_PyArg_VaParseTupleAndKeywordsFast_SizeT' mangled-name='_PyArg_VaParseTupleAndKeywordsFast_SizeT' filepath='Python/getargs.c' line='1618' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParseTupleAndKeywordsFast_SizeT'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1618' column='1'/>
+      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1618' column='1'/>
+      <parameter type-id='type-id-558' name='parser' filepath='Python/getargs.c' line='1619' column='1'/>
+      <parameter type-id='type-id-306' name='va' filepath='Python/getargs.c' line='1619' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_BreakPoint' mangled-name='_Py_BreakPoint' filepath='Objects/object.c' line='315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_BreakPoint'>
-      <return type-id='type-id-4'/>
+    <function-decl name='_PyArg_VaParseTupleAndKeywordsFast' mangled-name='_PyArg_VaParseTupleAndKeywordsFast' filepath='Python/getargs.c' line='1604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParseTupleAndKeywordsFast'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1618' column='1'/>
+      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1618' column='1'/>
+      <parameter type-id='type-id-558' name='parser' filepath='Python/getargs.c' line='1619' column='1'/>
+      <parameter type-id='type-id-306' name='va' filepath='Python/getargs.c' line='1619' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_Print' mangled-name='PyObject_Print' filepath='Objects/object.c' line='244' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Print'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='244' column='1'/>
-      <parameter type-id='type-id-223' name='fp' filepath='Objects/object.c' line='244' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Objects/object.c' line='244' column='1'/>
+    <function-decl name='_PyArg_ParseStackAndKeywords_SizeT' mangled-name='_PyArg_ParseStackAndKeywords_SizeT' filepath='Python/getargs.c' line='1590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseStackAndKeywords_SizeT'>
+      <parameter type-id='type-id-190' name='args' filepath='Python/getargs.c' line='1590' column='1'/>
+      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='1590' column='1'/>
+      <parameter type-id='type-id-100' name='kwnames' filepath='Python/getargs.c' line='1590' column='1'/>
+      <parameter type-id='type-id-558' name='parser' filepath='Python/getargs.c' line='1591' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_CallFinalizerFromDealloc' mangled-name='PyObject_CallFinalizerFromDealloc' filepath='Objects/object.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallFinalizerFromDealloc'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='295' column='1'/>
+    <function-decl name='_PyArg_ParseStackAndKeywords' mangled-name='_PyArg_ParseStackAndKeywords' filepath='Python/getargs.c' line='1577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseStackAndKeywords'>
+      <parameter type-id='type-id-190' name='args' filepath='Python/getargs.c' line='1590' column='1'/>
+      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='1590' column='1'/>
+      <parameter type-id='type-id-100' name='kwnames' filepath='Python/getargs.c' line='1590' column='1'/>
+      <parameter type-id='type-id-558' name='parser' filepath='Python/getargs.c' line='1591' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_CallFinalizer' mangled-name='PyObject_CallFinalizer' filepath='Objects/object.c' line='185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_CallFinalizer'>
-      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='556' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='_PyArg_ParseTupleAndKeywordsFast_SizeT' mangled-name='_PyArg_ParseTupleAndKeywordsFast_SizeT' filepath='Python/getargs.c' line='1564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTupleAndKeywordsFast_SizeT'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1564' column='1'/>
+      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1564' column='1'/>
+      <parameter type-id='type-id-558' name='parser' filepath='Python/getargs.c' line='1565' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-77' size-in-bits='64' id='type-id-497'/>
-    <function-decl name='_PyObject_NewVar' mangled-name='_PyObject_NewVar' filepath='Objects/object.c' line='174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_NewVar'>
-      <parameter type-id='type-id-75' name='tp' filepath='Objects/object.c' line='174' column='1'/>
-      <parameter type-id='type-id-15' name='nitems' filepath='Objects/object.c' line='174' column='1'/>
-      <return type-id='type-id-497'/>
+    <function-decl name='_PyArg_ParseTupleAndKeywordsFast' mangled-name='_PyArg_ParseTupleAndKeywordsFast' filepath='Python/getargs.c' line='1551' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTupleAndKeywordsFast'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1564' column='1'/>
+      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1564' column='1'/>
+      <parameter type-id='type-id-558' name='parser' filepath='Python/getargs.c' line='1565' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyObject_New' mangled-name='_PyObject_New' filepath='Objects/object.c' line='163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_New'>
-      <parameter type-id='type-id-75' name='tp' filepath='Objects/object.c' line='163' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyArg_VaParseTupleAndKeywords_SizeT' mangled-name='_PyArg_VaParseTupleAndKeywords_SizeT' filepath='Python/getargs.c' line='1525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParseTupleAndKeywords_SizeT'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1525' column='1'/>
+      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1526' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1527' column='1'/>
+      <parameter type-id='type-id-304' name='kwlist' filepath='Python/getargs.c' line='1528' column='1'/>
+      <parameter type-id='type-id-306' name='va' filepath='Python/getargs.c' line='1528' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_InitVar' mangled-name='PyObject_InitVar' filepath='Objects/object.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_InitVar'>
-      <parameter type-id='type-id-497' name='op' filepath='Objects/object.c' line='152' column='1'/>
-      <parameter type-id='type-id-75' name='tp' filepath='Objects/object.c' line='152' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/object.c' line='152' column='1'/>
-      <return type-id='type-id-497'/>
+    <function-decl name='PyArg_VaParseTupleAndKeywords' mangled-name='PyArg_VaParseTupleAndKeywords' filepath='Python/getargs.c' line='1500' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_VaParseTupleAndKeywords'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1525' column='1'/>
+      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1526' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1527' column='1'/>
+      <parameter type-id='type-id-304' name='kwlist' filepath='Python/getargs.c' line='1528' column='1'/>
+      <parameter type-id='type-id-306' name='va' filepath='Python/getargs.c' line='1528' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_Init' mangled-name='PyObject_Init' filepath='Objects/object.c' line='141' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Init'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='141' column='1'/>
-      <parameter type-id='type-id-75' name='tp' filepath='Objects/object.c' line='141' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyArg_ParseTupleAndKeywords_SizeT' mangled-name='_PyArg_ParseTupleAndKeywords_SizeT' filepath='Python/getargs.c' line='1474' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTupleAndKeywords_SizeT'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1474' column='1'/>
+      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1475' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1476' column='1'/>
+      <parameter type-id='type-id-304' name='kwlist' filepath='Python/getargs.c' line='1477' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_DecRef' mangled-name='Py_DecRef' filepath='Objects/object.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_DecRef'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='1822' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='PyArg_ParseTupleAndKeywords' mangled-name='PyArg_ParseTupleAndKeywords' filepath='Python/getargs.c' line='1450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_ParseTupleAndKeywords'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1474' column='1'/>
+      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1475' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1476' column='1'/>
+      <parameter type-id='type-id-304' name='kwlist' filepath='Python/getargs.c' line='1477' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_IncRef' mangled-name='Py_IncRef' filepath='Objects/object.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_IncRef'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='1822' column='1'/>
+    <function-decl name='_PyArg_BadArgument' mangled-name='_PyArg_BadArgument' filepath='Python/getargs.c' line='618' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_BadArgument'>
+      <parameter type-id='type-id-3' name='fname' filepath='Python/getargs.c' line='618' column='1'/>
+      <parameter type-id='type-id-3' name='displayname' filepath='Python/getargs.c' line='618' column='1'/>
+      <parameter type-id='type-id-3' name='expected' filepath='Python/getargs.c' line='619' column='1'/>
+      <parameter type-id='type-id-100' name='arg' filepath='Python/getargs.c' line='619' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_CheckConsistency' mangled-name='_PyObject_CheckConsistency' filepath='Objects/object.c' line='30' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CheckConsistency'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='30' column='1'/>
-      <parameter type-id='type-id-8' name='check_content' filepath='Objects/object.c' line='30' column='1'/>
+    <function-decl name='_PyArg_VaParse_SizeT' mangled-name='_PyArg_VaParse_SizeT' filepath='Python/getargs.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParse_SizeT'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='186' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='186' column='1'/>
+      <parameter type-id='type-id-306' name='va' filepath='Python/getargs.c' line='186' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/obmalloc.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='_PyTraceMalloc_Config' size-in-bits='96' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='75' column='1' id='type-id-498'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='initialized' type-id='type-id-499' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='82' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='tracing' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='86' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='max_nframe' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='90' column='1'/>
-      </data-member>
-    </class-decl>
-    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/internal/pycore_pymem.h' line='78' column='1' id='type-id-499'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='TRACEMALLOC_NOT_INITIALIZED' value='0'/>
-      <enumerator name='TRACEMALLOC_INITIALIZED' value='1'/>
-      <enumerator name='TRACEMALLOC_FINALIZED' value='2'/>
-    </enum-decl>
-    <var-decl name='_Py_tracemalloc_config' type-id='type-id-498' mangled-name='_Py_tracemalloc_config' visibility='default' filepath='./Include/internal/pycore_pymem.h' line='98' column='1' elf-symbol-id='_Py_tracemalloc_config'/>
-    <function-decl name='_PyObject_DebugMallocStats' mangled-name='_PyObject_DebugMallocStats' filepath='Objects/obmalloc.c' line='2595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_DebugMallocStats'>
-      <parameter type-id='type-id-223' name='out' filepath='Objects/obmalloc.c' line='2595' column='1'/>
+    <function-decl name='PyArg_VaParse' mangled-name='PyArg_VaParse' filepath='Python/getargs.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_VaParse'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='186' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='186' column='1'/>
+      <parameter type-id='type-id-306' name='va' filepath='Python/getargs.c' line='186' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyDebugAllocatorStats' mangled-name='_PyDebugAllocatorStats' filepath='Objects/obmalloc.c' line='2550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyDebugAllocatorStats'>
-      <parameter type-id='type-id-223' name='out' filepath='Objects/obmalloc.c' line='2550' column='1'/>
-      <parameter type-id='type-id-3' name='block_name' filepath='Objects/obmalloc.c' line='2551' column='1'/>
-      <parameter type-id='type-id-8' name='num_blocks' filepath='Objects/obmalloc.c' line='2551' column='1'/>
-      <parameter type-id='type-id-191' name='sizeof_block' filepath='Objects/obmalloc.c' line='2551' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='_PyArg_ParseStack_SizeT' mangled-name='_PyArg_ParseStack_SizeT' filepath='Python/getargs.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseStack_SizeT'>
+      <parameter type-id='type-id-190' name='args' filepath='Python/getargs.c' line='160' column='1'/>
+      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='160' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='160' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_GetAllocatedBlocks' mangled-name='_Py_GetAllocatedBlocks' filepath='Objects/obmalloc.c' line='1214' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetAllocatedBlocks'>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyArg_ParseStack' mangled-name='_PyArg_ParseStack' filepath='Python/getargs.c' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseStack'>
+      <parameter type-id='type-id-190' name='args' filepath='Python/getargs.c' line='160' column='1'/>
+      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='160' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='160' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_Free' mangled-name='PyObject_Free' filepath='Objects/obmalloc.c' line='707' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Free'>
-      <parameter type-id='type-id-32' name='ptr' filepath='Objects/obmalloc.c' line='707' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='_PyArg_ParseTuple_SizeT' mangled-name='_PyArg_ParseTuple_SizeT' filepath='Python/getargs.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTuple_SizeT'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='135' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='135' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_Realloc' mangled-name='PyObject_Realloc' filepath='Objects/obmalloc.c' line='698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Realloc'>
-      <parameter type-id='type-id-32' name='ptr' filepath='Objects/obmalloc.c' line='698' column='1'/>
-      <parameter type-id='type-id-191' name='new_size' filepath='Objects/obmalloc.c' line='698' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='PyArg_ParseTuple' mangled-name='PyArg_ParseTuple' filepath='Python/getargs.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_ParseTuple'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='135' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='135' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_Calloc' mangled-name='PyObject_Calloc' filepath='Objects/obmalloc.c' line='689' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Calloc'>
-      <parameter type-id='type-id-191' name='nelem' filepath='Objects/obmalloc.c' line='689' column='1'/>
-      <parameter type-id='type-id-191' name='elsize' filepath='Objects/obmalloc.c' line='689' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='_PyArg_Parse_SizeT' mangled-name='_PyArg_Parse_SizeT' filepath='Python/getargs.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_Parse_SizeT'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='135' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='135' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyObject_Malloc' mangled-name='PyObject_Malloc' filepath='Objects/obmalloc.c' line='680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_Malloc'>
-      <parameter type-id='type-id-191' name='size' filepath='Objects/obmalloc.c' line='680' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='PyArg_Parse' mangled-name='PyArg_Parse' filepath='Python/getargs.c' line='98' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_Parse'>
+      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='135' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='135' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyMem_Strdup' mangled-name='_PyMem_Strdup' filepath='Objects/obmalloc.c' line='667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyMem_Strdup'>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/obmalloc.c' line='667' column='1'/>
-      <return type-id='type-id-7'/>
+    <function-decl name='_PyArg_CheckPositional' mangled-name='_PyArg_CheckPositional' filepath='Python/getargs.c' line='2688' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_CheckPositional'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/getargs.c' line='2688' column='1'/>
+      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='2688' column='1'/>
+      <parameter type-id='type-id-15' name='min' filepath='Python/getargs.c' line='2689' column='1'/>
+      <parameter type-id='type-id-15' name='max' filepath='Python/getargs.c' line='2689' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyMem_RawStrdup' mangled-name='_PyMem_RawStrdup' filepath='Objects/obmalloc.c' line='654' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyMem_RawStrdup'>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/obmalloc.c' line='667' column='1'/>
-      <return type-id='type-id-7'/>
+    <function-decl name='_PyDict_HasOnlyStringKeys' mangled-name='_PyDict_HasOnlyStringKeys' filepath='./Include/cpython/dictobject.h' line='57' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <qualified-type-def type-id='type-id-405' const='yes' id='type-id-500'/>
-    <pointer-type-def type-id='type-id-500' size-in-bits='64' id='type-id-501'/>
-    <function-decl name='_PyMem_RawWcsdup' mangled-name='_PyMem_RawWcsdup' filepath='Objects/obmalloc.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyMem_RawWcsdup'>
-      <parameter type-id='type-id-501' name='str' filepath='Objects/obmalloc.c' line='634' column='1'/>
-      <return type-id='type-id-403'/>
+    <function-decl name='PyByteArray_Size' mangled-name='PyByteArray_Size' filepath='./Include/bytearrayobject.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMem_Free' mangled-name='PyMem_Free' filepath='Objects/obmalloc.c' line='627' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_Free'>
-      <parameter type-id='type-id-32' name='ptr' filepath='Objects/obmalloc.c' line='707' column='1'/>
+    <function-decl name='PyUnicode_AsUnicodeAndSize' mangled-name='PyUnicode_AsUnicodeAndSize' filepath='./Include/cpython/unicodeobject.h' line='595' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMem_Realloc' mangled-name='PyMem_Realloc' filepath='Objects/obmalloc.c' line='618' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_Realloc'>
-      <parameter type-id='type-id-32' name='ptr' filepath='Objects/obmalloc.c' line='698' column='1'/>
-      <parameter type-id='type-id-191' name='new_size' filepath='Objects/obmalloc.c' line='698' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='PyLong_AsUnsignedLongMask' mangled-name='PyLong_AsUnsignedLongMask' filepath='./Include/longobject.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMem_Calloc' mangled-name='PyMem_Calloc' filepath='Objects/obmalloc.c' line='609' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_Calloc'>
-      <parameter type-id='type-id-191' name='nelem' filepath='Objects/obmalloc.c' line='689' column='1'/>
-      <parameter type-id='type-id-191' name='elsize' filepath='Objects/obmalloc.c' line='689' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='PyLong_AsUnsignedLongLongMask' mangled-name='PyLong_AsUnsignedLongLongMask' filepath='./Include/longobject.h' line='100' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMem_Malloc' mangled-name='PyMem_Malloc' filepath='Objects/obmalloc.c' line='600' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_Malloc'>
-      <parameter type-id='type-id-191' name='size' filepath='Objects/obmalloc.c' line='680' column='1'/>
-      <return type-id='type-id-32'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/getcompiler.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='Py_GetCompiler' mangled-name='Py_GetCompiler' filepath='Python/getcompiler.c' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetCompiler'>
+      <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='PyMem_RawFree' mangled-name='PyMem_RawFree' filepath='Objects/obmalloc.c' line='593' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_RawFree'>
-      <parameter type-id='type-id-32' name='ptr' filepath='Objects/obmalloc.c' line='707' column='1'/>
-      <return type-id='type-id-4'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/getcopyright.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='Py_GetCopyright' mangled-name='Py_GetCopyright' filepath='Python/getcopyright.c' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetCopyright'>
+      <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='PyMem_RawRealloc' mangled-name='PyMem_RawRealloc' filepath='Objects/obmalloc.c' line='585' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_RawRealloc'>
-      <parameter type-id='type-id-32' name='ptr' filepath='Objects/obmalloc.c' line='698' column='1'/>
-      <parameter type-id='type-id-191' name='new_size' filepath='Objects/obmalloc.c' line='698' column='1'/>
-      <return type-id='type-id-32'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='./Python/getplatform.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='Py_GetPlatform' mangled-name='Py_GetPlatform' filepath='./Python/getplatform.c' line='9' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPlatform'>
+      <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='PyMem_RawCalloc' mangled-name='PyMem_RawCalloc' filepath='Objects/obmalloc.c' line='576' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_RawCalloc'>
-      <parameter type-id='type-id-191' name='nelem' filepath='Objects/obmalloc.c' line='689' column='1'/>
-      <parameter type-id='type-id-191' name='elsize' filepath='Objects/obmalloc.c' line='689' column='1'/>
-      <return type-id='type-id-32'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/getversion.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='Py_GetVersion' mangled-name='Py_GetVersion' filepath='Python/getversion.c' line='9' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetVersion'>
+      <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='PyMem_RawMalloc' mangled-name='PyMem_RawMalloc' filepath='Objects/obmalloc.c' line='562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_RawMalloc'>
-      <parameter type-id='type-id-191' name='size' filepath='Objects/obmalloc.c' line='680' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='Py_GetCompiler' mangled-name='Py_GetCompiler' filepath='./Include/pylifecycle.h' line='60' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-502' visibility='default' filepath='./Include/cpython/objimpl.h' line='101' column='1' id='type-id-503'>
+    <function-decl name='Py_GetBuildInfo' mangled-name='Py_GetBuildInfo' filepath='./Include/pylifecycle.h' line='61' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/graminit.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='_PyParser_Grammar' type-id='type-id-254' mangled-name='_PyParser_Grammar' visibility='default' filepath='Python/graminit.c' line='5' column='1' elf-symbol-id='_PyParser_Grammar'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/hamt.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='_PyHamtItems_Type' type-id='type-id-182' mangled-name='_PyHamtItems_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='70' column='1' elf-symbol-id='_PyHamtItems_Type'/>
+    <var-decl name='_PyHamtKeys_Type' type-id='type-id-182' mangled-name='_PyHamtKeys_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='68' column='1' elf-symbol-id='_PyHamtKeys_Type'/>
+    <var-decl name='_PyHamtValues_Type' type-id='type-id-182' mangled-name='_PyHamtValues_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='69' column='1' elf-symbol-id='_PyHamtValues_Type'/>
+    <var-decl name='_PyHamt_Type' type-id='type-id-182' mangled-name='_PyHamt_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='64' column='1' elf-symbol-id='_PyHamt_Type'/>
+    <var-decl name='_PyHamt_ArrayNode_Type' type-id='type-id-182' mangled-name='_PyHamt_ArrayNode_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='65' column='1' elf-symbol-id='_PyHamt_ArrayNode_Type'/>
+    <var-decl name='_PyHamt_BitmapNode_Type' type-id='type-id-182' mangled-name='_PyHamt_BitmapNode_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='66' column='1' elf-symbol-id='_PyHamt_BitmapNode_Type'/>
+    <var-decl name='_PyHamt_CollisionNode_Type' type-id='type-id-182' mangled-name='_PyHamt_CollisionNode_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='67' column='1' elf-symbol-id='_PyHamt_CollisionNode_Type'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/hashtable.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='_Py_hashtable_t' size-in-bits='640' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='60' column='1' id='type-id-559'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ctx' type-id='type-id-32' visibility='default' filepath='./Include/cpython/objimpl.h' line='103' column='1'/>
+        <var-decl name='nentries' type-id='type-id-191' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='61' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='alloc' type-id='type-id-504' visibility='default' filepath='./Include/cpython/objimpl.h' line='106' column='1'/>
+        <var-decl name='nbuckets' type-id='type-id-191' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='62' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='free' type-id='type-id-505' visibility='default' filepath='./Include/cpython/objimpl.h' line='109' column='1'/>
+        <var-decl name='buckets' type-id='type-id-560' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='get_entry_func' type-id='type-id-561' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='hash_func' type-id='type-id-562' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='compare_func' type-id='type-id-563' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='key_destroy_func' type-id='type-id-564' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='value_destroy_func' type-id='type-id-564' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='alloc' type-id='type-id-565' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='70' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-506' size-in-bits='64' id='type-id-504'/>
-    <pointer-type-def type-id='type-id-507' size-in-bits='64' id='type-id-505'/>
-    <typedef-decl name='PyObjectArenaAllocator' type-id='type-id-503' filepath='./Include/cpython/objimpl.h' line='110' column='1' id='type-id-502'/>
-    <pointer-type-def type-id='type-id-502' size-in-bits='64' id='type-id-508'/>
-    <function-decl name='PyObject_SetArenaAllocator' mangled-name='PyObject_SetArenaAllocator' filepath='Objects/obmalloc.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_SetArenaAllocator'>
-      <parameter type-id='type-id-508' name='allocator' filepath='Objects/obmalloc.c' line='556' column='1'/>
-      <return type-id='type-id-4'/>
-    </function-decl>
-    <function-decl name='PyObject_GetArenaAllocator' mangled-name='PyObject_GetArenaAllocator' filepath='Objects/obmalloc.c' line='550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GetArenaAllocator'>
-      <parameter type-id='type-id-508' name='allocator' filepath='Objects/obmalloc.c' line='556' column='1'/>
-      <return type-id='type-id-4'/>
-    </function-decl>
-    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/pymem.h' line='29' column='1' id='type-id-509'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='PYMEM_DOMAIN_RAW' value='0'/>
-      <enumerator name='PYMEM_DOMAIN_MEM' value='1'/>
-      <enumerator name='PYMEM_DOMAIN_OBJ' value='2'/>
-    </enum-decl>
-    <typedef-decl name='PyMemAllocatorDomain' type-id='type-id-509' filepath='./Include/cpython/pymem.h' line='38' column='1' id='type-id-510'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-511' visibility='default' filepath='./Include/cpython/pymem.h' line='53' column='1' id='type-id-512'>
+    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-566' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='17' column='1' id='type-id-567'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ctx' type-id='type-id-32' visibility='default' filepath='./Include/cpython/pymem.h' line='55' column='1'/>
+        <var-decl name='head' type-id='type-id-568' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='18' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_Py_slist_item_s' size-in-bits='64' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='13' column='1' id='type-id-569'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='next' type-id='type-id-570' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='14' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-569' size-in-bits='64' id='type-id-570'/>
+    <typedef-decl name='_Py_slist_item_t' type-id='type-id-569' filepath='./Include/internal/pycore_hashtable.h' line='15' column='1' id='type-id-571'/>
+    <pointer-type-def type-id='type-id-571' size-in-bits='64' id='type-id-568'/>
+    <typedef-decl name='_Py_slist_t' type-id='type-id-567' filepath='./Include/internal/pycore_hashtable.h' line='19' column='1' id='type-id-566'/>
+    <pointer-type-def type-id='type-id-566' size-in-bits='64' id='type-id-560'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-572' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='28' column='1' id='type-id-573'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='_Py_slist_item' type-id='type-id-571' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='30' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='malloc' type-id='type-id-504' visibility='default' filepath='./Include/cpython/pymem.h' line='58' column='1'/>
+        <var-decl name='key_hash' type-id='type-id-574' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='32' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='calloc' type-id='type-id-513' visibility='default' filepath='./Include/cpython/pymem.h' line='61' column='1'/>
+        <var-decl name='key' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='33' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='realloc' type-id='type-id-514' visibility='default' filepath='./Include/cpython/pymem.h' line='64' column='1'/>
+        <var-decl name='value' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='34' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='free' type-id='type-id-515' visibility='default' filepath='./Include/cpython/pymem.h' line='67' column='1'/>
+    </class-decl>
+    <typedef-decl name='Py_uhash_t' type-id='type-id-191' filepath='./Include/pyport.h' line='117' column='1' id='type-id-574'/>
+    <typedef-decl name='_Py_hashtable_entry_t' type-id='type-id-573' filepath='./Include/internal/pycore_hashtable.h' line='35' column='1' id='type-id-572'/>
+    <pointer-type-def type-id='type-id-572' size-in-bits='64' id='type-id-575'/>
+    <typedef-decl name='_Py_hashtable_t' type-id='type-id-559' filepath='./Include/internal/pycore_hashtable.h' line='42' column='1' id='type-id-576'/>
+    <pointer-type-def type-id='type-id-576' size-in-bits='64' id='type-id-577'/>
+    <pointer-type-def type-id='type-id-578' size-in-bits='64' id='type-id-579'/>
+    <typedef-decl name='_Py_hashtable_get_entry_func' type-id='type-id-579' filepath='./Include/internal/pycore_hashtable.h' line='47' column='1' id='type-id-561'/>
+    <pointer-type-def type-id='type-id-580' size-in-bits='64' id='type-id-581'/>
+    <typedef-decl name='_Py_hashtable_hash_func' type-id='type-id-581' filepath='./Include/internal/pycore_hashtable.h' line='44' column='1' id='type-id-562'/>
+    <pointer-type-def type-id='type-id-582' size-in-bits='64' id='type-id-583'/>
+    <typedef-decl name='_Py_hashtable_compare_func' type-id='type-id-583' filepath='./Include/internal/pycore_hashtable.h' line='45' column='1' id='type-id-563'/>
+    <typedef-decl name='_Py_hashtable_destroy_func' type-id='type-id-188' filepath='./Include/internal/pycore_hashtable.h' line='46' column='1' id='type-id-564'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-565' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='50' column='1' id='type-id-584'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='malloc' type-id='type-id-585' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='free' type-id='type-id-188' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='55' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-516' size-in-bits='64' id='type-id-513'/>
-    <pointer-type-def type-id='type-id-517' size-in-bits='64' id='type-id-514'/>
-    <pointer-type-def type-id='type-id-518' size-in-bits='64' id='type-id-515'/>
-    <typedef-decl name='PyMemAllocatorEx' type-id='type-id-512' filepath='./Include/cpython/pymem.h' line='68' column='1' id='type-id-511'/>
-    <pointer-type-def type-id='type-id-511' size-in-bits='64' id='type-id-519'/>
-    <function-decl name='PyMem_SetAllocator' mangled-name='PyMem_SetAllocator' filepath='Objects/obmalloc.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_SetAllocator'>
-      <parameter type-id='type-id-510' name='domain' filepath='Objects/obmalloc.c' line='538' column='1'/>
-      <parameter type-id='type-id-519' name='allocator' filepath='Objects/obmalloc.c' line='538' column='1'/>
+    <pointer-type-def type-id='type-id-586' size-in-bits='64' id='type-id-585'/>
+    <typedef-decl name='_Py_hashtable_allocator_t' type-id='type-id-584' filepath='./Include/internal/pycore_hashtable.h' line='56' column='1' id='type-id-565'/>
+    <function-decl name='_Py_hashtable_destroy' mangled-name='_Py_hashtable_destroy' filepath='Python/hashtable.c' line='404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_destroy'>
+      <parameter type-id='type-id-577' name='ht' filepath='Python/hashtable.c' line='404' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMem_GetAllocator' mangled-name='PyMem_GetAllocator' filepath='Objects/obmalloc.c' line='520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_GetAllocator'>
-      <parameter type-id='type-id-510' name='domain' filepath='Objects/obmalloc.c' line='538' column='1'/>
-      <parameter type-id='type-id-519' name='allocator' filepath='Objects/obmalloc.c' line='538' column='1'/>
+    <function-decl name='_Py_hashtable_clear' mangled-name='_Py_hashtable_clear' filepath='Python/hashtable.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_clear'>
+      <parameter type-id='type-id-577' name='ht' filepath='Python/hashtable.c' line='404' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMem_SetupDebugHooks' mangled-name='PyMem_SetupDebugHooks' filepath='Objects/obmalloc.c' line='512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMem_SetupDebugHooks'>
-      <return type-id='type-id-4'/>
+    <function-decl name='_Py_hashtable_new' mangled-name='_Py_hashtable_new' filepath='Python/hashtable.c' line='363' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_new'>
+      <parameter type-id='type-id-562' name='hash_func' filepath='Python/hashtable.c' line='363' column='1'/>
+      <parameter type-id='type-id-563' name='compare_func' filepath='Python/hashtable.c' line='364' column='1'/>
+      <return type-id='type-id-577'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-565' size-in-bits='64' id='type-id-587'/>
+    <function-decl name='_Py_hashtable_new_full' mangled-name='_Py_hashtable_new_full' filepath='Python/hashtable.c' line='316' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_new_full'>
+      <parameter type-id='type-id-562' name='hash_func' filepath='Python/hashtable.c' line='316' column='1'/>
+      <parameter type-id='type-id-563' name='compare_func' filepath='Python/hashtable.c' line='317' column='1'/>
+      <parameter type-id='type-id-564' name='key_destroy_func' filepath='Python/hashtable.c' line='318' column='1'/>
+      <parameter type-id='type-id-564' name='value_destroy_func' filepath='Python/hashtable.c' line='319' column='1'/>
+      <parameter type-id='type-id-587' name='allocator' filepath='Python/hashtable.c' line='320' column='1'/>
+      <return type-id='type-id-577'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-588' size-in-bits='64' id='type-id-589'/>
+    <typedef-decl name='_Py_hashtable_foreach_func' type-id='type-id-589' filepath='./Include/internal/pycore_hashtable.h' line='96' column='1' id='type-id-590'/>
+    <function-decl name='_Py_hashtable_foreach' mangled-name='_Py_hashtable_foreach' filepath='Python/hashtable.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_foreach'>
+      <parameter type-id='type-id-577' name='ht' filepath='Python/hashtable.c' line='261' column='1'/>
+      <parameter type-id='type-id-590' name='func' filepath='Python/hashtable.c' line='262' column='1'/>
+      <parameter type-id='type-id-32' name='user_data' filepath='Python/hashtable.c' line='263' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_Py_hashtable_get' mangled-name='_Py_hashtable_get' filepath='Python/hashtable.c' line='248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_get'>
+      <parameter type-id='type-id-577' name='ht' filepath='Python/hashtable.c' line='248' column='1'/>
+      <parameter type-id='type-id-32' name='key' filepath='Python/hashtable.c' line='248' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='_Py_hashtable_set' mangled-name='_Py_hashtable_set' filepath='Python/hashtable.c' line='209' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_set'>
+      <parameter type-id='type-id-577' name='ht' filepath='Python/hashtable.c' line='209' column='1'/>
+      <parameter type-id='type-id-32' name='key' filepath='Python/hashtable.c' line='209' column='1'/>
+      <parameter type-id='type-id-32' name='value' filepath='Python/hashtable.c' line='209' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_Py_hashtable_steal' mangled-name='_Py_hashtable_steal' filepath='Python/hashtable.c' line='174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_steal'>
+      <parameter type-id='type-id-577' name='ht' filepath='Python/hashtable.c' line='174' column='1'/>
+      <parameter type-id='type-id-32' name='key' filepath='Python/hashtable.c' line='174' column='1'/>
+      <return type-id='type-id-32'/>
     </function-decl>
-    <function-decl name='_PyMem_GetCurrentAllocatorName' mangled-name='_PyMem_GetCurrentAllocatorName' filepath='Objects/obmalloc.c' line='374' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyMem_GetCurrentAllocatorName'>
-      <return type-id='type-id-3'/>
+    <qualified-type-def type-id='type-id-576' const='yes' id='type-id-591'/>
+    <pointer-type-def type-id='type-id-591' size-in-bits='64' id='type-id-592'/>
+    <function-decl name='_Py_hashtable_size' mangled-name='_Py_hashtable_size' filepath='Python/hashtable.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_size'>
+      <parameter type-id='type-id-592' name='ht' filepath='Python/hashtable.c' line='120' column='1'/>
+      <return type-id='type-id-191'/>
     </function-decl>
-    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/pymem.h' line='40' column='1' id='type-id-520'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='PYMEM_ALLOCATOR_NOT_SET' value='0'/>
-      <enumerator name='PYMEM_ALLOCATOR_DEFAULT' value='1'/>
-      <enumerator name='PYMEM_ALLOCATOR_DEBUG' value='2'/>
-      <enumerator name='PYMEM_ALLOCATOR_MALLOC' value='3'/>
-      <enumerator name='PYMEM_ALLOCATOR_MALLOC_DEBUG' value='4'/>
-      <enumerator name='PYMEM_ALLOCATOR_PYMALLOC' value='5'/>
-      <enumerator name='PYMEM_ALLOCATOR_PYMALLOC_DEBUG' value='6'/>
-    </enum-decl>
-    <typedef-decl name='PyMemAllocatorName' type-id='type-id-520' filepath='./Include/cpython/pymem.h' line='50' column='1' id='type-id-521'/>
-    <function-decl name='_PyMem_SetupAllocators' mangled-name='_PyMem_SetupAllocators' filepath='Objects/obmalloc.c' line='307' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyMem_SetupAllocators'>
-      <parameter type-id='type-id-521' name='allocator' filepath='Objects/obmalloc.c' line='307' column='1'/>
+    <function-decl name='_Py_hashtable_compare_direct' mangled-name='_Py_hashtable_compare_direct' filepath='Python/hashtable.c' line='99' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_compare_direct'>
+      <parameter type-id='type-id-32' name='key1' filepath='Python/hashtable.c' line='99' column='1'/>
+      <parameter type-id='type-id-32' name='key2' filepath='Python/hashtable.c' line='99' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-521' size-in-bits='64' id='type-id-522'/>
-    <function-decl name='_PyMem_GetAllocatorName' mangled-name='_PyMem_GetAllocatorName' filepath='Objects/obmalloc.c' line='271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyMem_GetAllocatorName'>
-      <parameter type-id='type-id-3' name='name' filepath='Objects/obmalloc.c' line='271' column='1'/>
-      <parameter type-id='type-id-522' name='allocator' filepath='Objects/obmalloc.c' line='271' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_hashtable_hash_ptr' mangled-name='_Py_hashtable_hash_ptr' filepath='Python/hashtable.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_hash_ptr'>
+      <parameter type-id='type-id-32' name='key' filepath='Python/hashtable.c' line='92' column='1'/>
+      <return type-id='type-id-574'/>
     </function-decl>
-    <function-decl name='_PyMem_SetDefaultAllocator' mangled-name='_PyMem_SetDefaultAllocator' filepath='Objects/obmalloc.c' line='258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyMem_SetDefaultAllocator'>
-      <parameter type-id='type-id-510' name='domain' filepath='Objects/obmalloc.c' line='258' column='1'/>
-      <parameter type-id='type-id-519' name='old_alloc' filepath='Objects/obmalloc.c' line='259' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_HashPointerRaw' mangled-name='_Py_HashPointerRaw' filepath='./Include/pyhash.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-type size-in-bits='64' id='type-id-518'>
+    <function-type size-in-bits='64' id='type-id-578'>
+      <parameter type-id='type-id-577'/>
       <parameter type-id='type-id-32'/>
-      <parameter type-id='type-id-32'/>
-      <return type-id='type-id-4'/>
+      <return type-id='type-id-575'/>
     </function-type>
-    <function-type size-in-bits='64' id='type-id-507'>
+    <function-type size-in-bits='64' id='type-id-588'>
+      <parameter type-id='type-id-577'/>
       <parameter type-id='type-id-32'/>
       <parameter type-id='type-id-32'/>
-      <parameter type-id='type-id-191'/>
-      <return type-id='type-id-4'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-506'>
       <parameter type-id='type-id-32'/>
-      <parameter type-id='type-id-191'/>
-      <return type-id='type-id-32'/>
+      <return type-id='type-id-8'/>
     </function-type>
-    <function-type size-in-bits='64' id='type-id-516'>
+    <function-type size-in-bits='64' id='type-id-582'>
       <parameter type-id='type-id-32'/>
-      <parameter type-id='type-id-191'/>
-      <parameter type-id='type-id-191'/>
-      <return type-id='type-id-32'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-517'>
       <parameter type-id='type-id-32'/>
+      <return type-id='type-id-8'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-580'>
       <parameter type-id='type-id-32'/>
+      <return type-id='type-id-574'/>
+    </function-type>
+    <function-type size-in-bits='64' id='type-id-586'>
       <parameter type-id='type-id-191'/>
       <return type-id='type-id-32'/>
     </function-type>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/picklebufobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyPickleBuffer_Type' type-id='type-id-182' mangled-name='PyPickleBuffer_Type' visibility='default' filepath='./Include/picklebufobject.h' line='13' column='1' elf-symbol-id='PyPickleBuffer_Type'/>
-    <function-decl name='PyPickleBuffer_Release' mangled-name='PyPickleBuffer_Release' filepath='Objects/picklebufobject.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPickleBuffer_Release'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='284' column='1'/>
+  <abi-instr version='1.0' address-size='64' path='Python/import.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='_inittab' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/cpython/import.h' line='30' column='1' id='type-id-593'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/cpython/import.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='initfunc' type-id='type-id-491' visibility='default' filepath='./Include/cpython/import.h' line='32' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-593' size-in-bits='64' id='type-id-594'/>
+    <var-decl name='PyImport_Inittab' type-id='type-id-594' mangled-name='PyImport_Inittab' visibility='default' filepath='./Include/cpython/import.h' line='34' column='1' elf-symbol-id='PyImport_Inittab'/>
+    <function-decl name='PyImport_AppendInittab' mangled-name='PyImport_AppendInittab' filepath='Python/import.c' line='2496' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_AppendInittab'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='2496' column='1'/>
+      <parameter type-id='type-id-491' name='initfunc' filepath='Python/import.c' line='2496' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyPickleBuffer_GetBuffer' mangled-name='PyPickleBuffer_GetBuffer' filepath='Objects/picklebufobject.c' line='36' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPickleBuffer_GetBuffer'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/picklebufobject.c' line='36' column='1'/>
-      <return type-id='type-id-284'/>
+    <function-decl name='PyImport_ExtendInittab' mangled-name='PyImport_ExtendInittab' filepath='Python/import.c' line='2450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExtendInittab'>
+      <parameter type-id='type-id-594' name='newtab' filepath='Python/import.c' line='2450' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyPickleBuffer_FromObject' mangled-name='PyPickleBuffer_FromObject' filepath='Objects/picklebufobject.c' line='17' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPickleBuffer_FromObject'>
+    <function-decl name='PyInit__imp' mangled-name='PyInit__imp' filepath='Python/import.c' line='2411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__imp'>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyImport_Import' mangled-name='PyImport_Import' filepath='Python/import.c' line='2020' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_Import'>
+      <parameter type-id='type-id-100' name='module_name' filepath='Python/import.c' line='2020' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyImport_ReloadModule' mangled-name='PyImport_ReloadModule' filepath='Python/import.c' line='1987' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ReloadModule'>
+      <parameter type-id='type-id-100' name='m' filepath='Python/import.c' line='1987' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyImport_ImportModuleLevel' mangled-name='PyImport_ImportModuleLevel' filepath='Python/import.c' line='1969' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportModuleLevel'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='1969' column='1'/>
+      <parameter type-id='type-id-100' name='globals' filepath='Python/import.c' line='1969' column='1'/>
+      <parameter type-id='type-id-100' name='locals' filepath='Python/import.c' line='1969' column='1'/>
+      <parameter type-id='type-id-100' name='fromlist' filepath='Python/import.c' line='1970' column='1'/>
+      <parameter type-id='type-id-8' name='level' filepath='Python/import.c' line='1970' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyImport_ImportModuleLevelObject' mangled-name='PyImport_ImportModuleLevelObject' filepath='Python/import.c' line='1817' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportModuleLevelObject'>
+      <parameter type-id='type-id-100' name='name' filepath='Python/import.c' line='1817' column='1'/>
+      <parameter type-id='type-id-100' name='globals' filepath='Python/import.c' line='1817' column='1'/>
+      <parameter type-id='type-id-100' name='locals' filepath='Python/import.c' line='1818' column='1'/>
+      <parameter type-id='type-id-100' name='fromlist' filepath='Python/import.c' line='1818' column='1'/>
+      <parameter type-id='type-id-8' name='level' filepath='Python/import.c' line='1819' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyImport_GetModule' mangled-name='PyImport_GetModule' filepath='Python/import.c' line='1800' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetModule'>
       <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1992' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/rangeobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyRange_Type' type-id='type-id-182' mangled-name='PyRange_Type' visibility='default' filepath='./Include/rangeobject.h' line='18' column='1' elf-symbol-id='PyRange_Type'/>
-    <var-decl name='PyRangeIter_Type' type-id='type-id-182' mangled-name='PyRangeIter_Type' visibility='default' filepath='./Include/rangeobject.h' line='19' column='1' elf-symbol-id='PyRangeIter_Type'/>
-    <var-decl name='PyLongRangeIter_Type' type-id='type-id-182' mangled-name='PyLongRangeIter_Type' visibility='default' filepath='./Include/rangeobject.h' line='20' column='1' elf-symbol-id='PyLongRangeIter_Type'/>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/setobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PySetIter_Type' type-id='type-id-182' mangled-name='PySetIter_Type' visibility='default' filepath='./Include/setobject.h' line='78' column='1' elf-symbol-id='PySetIter_Type'/>
-    <var-decl name='PySet_Type' type-id='type-id-182' mangled-name='PySet_Type' visibility='default' filepath='./Include/setobject.h' line='76' column='1' elf-symbol-id='PySet_Type'/>
-    <var-decl name='PyFrozenSet_Type' type-id='type-id-182' mangled-name='PyFrozenSet_Type' visibility='default' filepath='./Include/setobject.h' line='77' column='1' elf-symbol-id='PyFrozenSet_Type'/>
-    <var-decl name='_PySet_Dummy' type-id='type-id-100' mangled-name='_PySet_Dummy' visibility='default' filepath='./Include/setobject.h' line='69' column='1' elf-symbol-id='_PySet_Dummy'/>
-    <function-decl name='_PySet_Update' mangled-name='_PySet_Update' filepath='Objects/setobject.c' line='2335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySet_Update'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyImport_ImportModuleNoBlock' mangled-name='PyImport_ImportModuleNoBlock' filepath='Python/import.c' line='1509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportModuleNoBlock'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='1509' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PySet_Pop' mangled-name='PySet_Pop' filepath='Objects/setobject.c' line='2325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Pop'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+    <function-decl name='PyImport_ImportModule' mangled-name='PyImport_ImportModule' filepath='Python/import.c' line='1485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportModule'>
+      <parameter type-id='type-id-3' name='utf8path' filepath='Objects/fileobject.c' line='574' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PySet_NextEntry' mangled-name='_PySet_NextEntry' filepath='Objects/setobject.c' line='2309' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySet_NextEntry'>
-      <parameter type-id='type-id-100' name='set' filepath='Objects/setobject.c' line='2309' column='1'/>
-      <parameter type-id='type-id-158' name='pos' filepath='Objects/setobject.c' line='2309' column='1'/>
-      <parameter type-id='type-id-303' name='key' filepath='Objects/setobject.c' line='2309' column='1'/>
-      <parameter type-id='type-id-486' name='hash' filepath='Objects/setobject.c' line='2309' column='1'/>
+    <function-decl name='PyImport_ImportFrozenModule' mangled-name='PyImport_ImportFrozenModule' filepath='Python/import.c' line='1468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportFrozenModule'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='1468' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PySet_Add' mangled-name='PySet_Add' filepath='Objects/setobject.c' line='2292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Add'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
+    <function-decl name='PyImport_ImportFrozenModuleObject' mangled-name='PyImport_ImportFrozenModuleObject' filepath='Python/import.c' line='1402' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportFrozenModuleObject'>
+      <parameter type-id='type-id-100' name='name' filepath='Python/import.c' line='1402' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PySet_Discard' mangled-name='PySet_Discard' filepath='Objects/setobject.c' line='2282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Discard'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyImport_GetImporter' mangled-name='PyImport_GetImporter' filepath='Python/import.c' line='1238' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetImporter'>
+      <parameter type-id='type-id-100' name='path' filepath='Python/import.c' line='1238' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PySet_Contains' mangled-name='PySet_Contains' filepath='Objects/setobject.c' line='2272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Contains'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyImport_ExecCodeModuleObject' mangled-name='PyImport_ExecCodeModuleObject' filepath='Python/import.c' line='1066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExecCodeModuleObject'>
+      <parameter type-id='type-id-100' name='name' filepath='Python/import.c' line='1066' column='1'/>
+      <parameter type-id='type-id-100' name='co' filepath='Python/import.c' line='1066' column='1'/>
+      <parameter type-id='type-id-100' name='pathname' filepath='Python/import.c' line='1066' column='1'/>
+      <parameter type-id='type-id-100' name='cpathname' filepath='Python/import.c' line='1067' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PySet_Clear' mangled-name='PySet_Clear' filepath='Objects/setobject.c' line='2262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Clear'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyImport_ExecCodeModuleWithPathnames' mangled-name='PyImport_ExecCodeModuleWithPathnames' filepath='Python/import.c' line='964' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExecCodeModuleWithPathnames'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='964' column='1'/>
+      <parameter type-id='type-id-100' name='co' filepath='Python/import.c' line='964' column='1'/>
+      <parameter type-id='type-id-3' name='pathname' filepath='Python/import.c' line='965' column='1'/>
+      <parameter type-id='type-id-3' name='cpathname' filepath='Python/import.c' line='966' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PySet_Size' mangled-name='PySet_Size' filepath='Objects/setobject.c' line='2252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_Size'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2203' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyImport_ExecCodeModuleEx' mangled-name='PyImport_ExecCodeModuleEx' filepath='Python/import.c' line='957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExecCodeModuleEx'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='957' column='1'/>
+      <parameter type-id='type-id-100' name='co' filepath='Python/import.c' line='957' column='1'/>
+      <parameter type-id='type-id-3' name='pathname' filepath='Python/import.c' line='957' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyFrozenSet_New' mangled-name='PyFrozenSet_New' filepath='Objects/setobject.c' line='2246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFrozenSet_New'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+    <function-decl name='PyImport_ExecCodeModule' mangled-name='PyImport_ExecCodeModule' filepath='Python/import.c' line='950' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExecCodeModule'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='950' column='1'/>
+      <parameter type-id='type-id-100' name='co' filepath='Python/import.c' line='950' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PySet_New' mangled-name='PySet_New' filepath='Objects/setobject.c' line='2240' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySet_New'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+    <function-decl name='PyImport_AddModule' mangled-name='PyImport_AddModule' filepath='Python/import.c' line='901' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_AddModule'>
+      <parameter type-id='type-id-3' name='utf8path' filepath='Objects/fileobject.c' line='574' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/sliceobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyEllipsis_Type' type-id='type-id-182' mangled-name='PyEllipsis_Type' visibility='default' filepath='./Include/sliceobject.h' line='29' column='1' elf-symbol-id='PyEllipsis_Type'/>
-    <var-decl name='_Py_EllipsisObject' type-id='type-id-110' mangled-name='_Py_EllipsisObject' visibility='default' filepath='./Include/sliceobject.h' line='9' column='1' elf-symbol-id='_Py_EllipsisObject'/>
-    <var-decl name='PySlice_Type' type-id='type-id-182' mangled-name='PySlice_Type' visibility='default' filepath='./Include/sliceobject.h' line='28' column='1' elf-symbol-id='PySlice_Type'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='320' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-523' visibility='default' filepath='./Include/sliceobject.h' line='22' column='1' id='type-id-524'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/sliceobject.h' line='23' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='start' type-id='type-id-100' visibility='default' filepath='./Include/sliceobject.h' line='24' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='stop' type-id='type-id-100' visibility='default' filepath='./Include/sliceobject.h' line='24' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='step' type-id='type-id-100' visibility='default' filepath='./Include/sliceobject.h' line='24' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='PySliceObject' type-id='type-id-524' filepath='./Include/sliceobject.h' line='25' column='1' id='type-id-523'/>
-    <pointer-type-def type-id='type-id-523' size-in-bits='64' id='type-id-525'/>
-    <function-decl name='_PySlice_GetLongIndices' mangled-name='_PySlice_GetLongIndices' filepath='Objects/sliceobject.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySlice_GetLongIndices'>
-      <parameter type-id='type-id-525' name='self' filepath='Objects/sliceobject.c' line='372' column='1'/>
-      <parameter type-id='type-id-100' name='length' filepath='Objects/sliceobject.c' line='372' column='1'/>
-      <parameter type-id='type-id-303' name='start_ptr' filepath='Objects/sliceobject.c' line='373' column='1'/>
-      <parameter type-id='type-id-303' name='stop_ptr' filepath='Objects/sliceobject.c' line='373' column='1'/>
-      <parameter type-id='type-id-303' name='step_ptr' filepath='Objects/sliceobject.c' line='374' column='1'/>
+    <function-decl name='PyImport_AddModuleObject' mangled-name='PyImport_AddModuleObject' filepath='Python/import.c' line='893' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_AddModuleObject'>
+      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='35' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyImport_FindExtensionObject' mangled-name='_PyImport_FindExtensionObject' filepath='Python/import.c' line='827' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_FindExtensionObject'>
+      <parameter type-id='type-id-100' name='name' filepath='Python/import.c' line='827' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/import.c' line='827' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyImport_FixupBuiltin' mangled-name='_PyImport_FixupBuiltin' filepath='Python/import.c' line='755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_FixupBuiltin'>
+      <parameter type-id='type-id-100' name='mod' filepath='Python/import.c' line='755' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='755' column='1'/>
+      <parameter type-id='type-id-100' name='modules' filepath='Python/import.c' line='755' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PySlice_GetIndicesEx' mangled-name='PySlice_GetIndicesEx' filepath='Objects/sliceobject.c' line='286' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_GetIndicesEx'>
-      <parameter type-id='type-id-100' name='_r' filepath='Objects/sliceobject.c' line='286' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/sliceobject.c' line='286' column='1'/>
-      <parameter type-id='type-id-158' name='start' filepath='Objects/sliceobject.c' line='287' column='1'/>
-      <parameter type-id='type-id-158' name='stop' filepath='Objects/sliceobject.c' line='287' column='1'/>
-      <parameter type-id='type-id-158' name='step' filepath='Objects/sliceobject.c' line='287' column='1'/>
-      <parameter type-id='type-id-158' name='slicelength' filepath='Objects/sliceobject.c' line='288' column='1'/>
+    <function-decl name='_PyImport_FixupExtensionObject' mangled-name='_PyImport_FixupExtensionObject' filepath='Python/import.c' line='690' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_FixupExtensionObject'>
+      <parameter type-id='type-id-100' name='mod' filepath='Python/import.c' line='690' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Python/import.c' line='690' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/import.c' line='691' column='1'/>
+      <parameter type-id='type-id-100' name='modules' filepath='Python/import.c' line='691' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PySlice_AdjustIndices' mangled-name='PySlice_AdjustIndices' filepath='Objects/sliceobject.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_AdjustIndices'>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/sliceobject.c' line='242' column='1'/>
-      <parameter type-id='type-id-158' name='start' filepath='Objects/sliceobject.c' line='243' column='1'/>
-      <parameter type-id='type-id-158' name='stop' filepath='Objects/sliceobject.c' line='243' column='1'/>
-      <parameter type-id='type-id-15' name='step' filepath='Objects/sliceobject.c' line='243' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyImport_GetMagicTag' mangled-name='PyImport_GetMagicTag' filepath='Python/import.c' line='667' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetMagicTag'>
+      <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='PySlice_Unpack' mangled-name='PySlice_Unpack' filepath='Objects/sliceobject.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_Unpack'>
-      <parameter type-id='type-id-100' name='_r' filepath='Objects/sliceobject.c' line='197' column='1'/>
-      <parameter type-id='type-id-158' name='start' filepath='Objects/sliceobject.c' line='198' column='1'/>
-      <parameter type-id='type-id-158' name='stop' filepath='Objects/sliceobject.c' line='198' column='1'/>
-      <parameter type-id='type-id-158' name='step' filepath='Objects/sliceobject.c' line='198' column='1'/>
+    <function-decl name='PyImport_GetMagicNumber' mangled-name='PyImport_GetMagicNumber' filepath='Python/import.c' line='645' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetMagicNumber'>
+      <return type-id='type-id-12'/>
+    </function-decl>
+    <function-decl name='_PyImport_SetModuleString' mangled-name='_PyImport_SetModuleString' filepath='Python/import.c' line='352' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_SetModuleString'>
+      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='352' column='1'/>
+      <parameter type-id='type-id-100' name='m' filepath='Python/import.c' line='352' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PySlice_GetIndices' mangled-name='PySlice_GetIndices' filepath='Objects/sliceobject.c' line='165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_GetIndices'>
-      <parameter type-id='type-id-100' name='_r' filepath='Objects/sliceobject.c' line='165' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/sliceobject.c' line='165' column='1'/>
-      <parameter type-id='type-id-158' name='start' filepath='Objects/sliceobject.c' line='166' column='1'/>
-      <parameter type-id='type-id-158' name='stop' filepath='Objects/sliceobject.c' line='166' column='1'/>
-      <parameter type-id='type-id-158' name='step' filepath='Objects/sliceobject.c' line='166' column='1'/>
+    <function-decl name='_PyImport_SetModule' mangled-name='_PyImport_SetModule' filepath='Python/import.c' line='344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_SetModule'>
+      <parameter type-id='type-id-100' name='seq' filepath='Objects/abstract.c' line='2142' column='1'/>
+      <parameter type-id='type-id-100' name='ob' filepath='Objects/abstract.c' line='2142' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PySlice_FromIndices' mangled-name='_PySlice_FromIndices' filepath='Objects/sliceobject.c' line='146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySlice_FromIndices'>
-      <parameter type-id='type-id-15' name='istart' filepath='Objects/sliceobject.c' line='146' column='1'/>
-      <parameter type-id='type-id-15' name='istop' filepath='Objects/sliceobject.c' line='146' column='1'/>
+    <function-decl name='_PyImport_GetModuleId' mangled-name='_PyImport_GetModuleId' filepath='Python/import.c' line='334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_GetModuleId'>
+      <parameter type-id='type-id-308' name='nameid' filepath='Python/import.c' line='334' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PySlice_New' mangled-name='PySlice_New' filepath='Objects/sliceobject.c' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySlice_New'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='412' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='413' column='1'/>
-      <parameter type-id='type-id-100' name='kwargs' filepath='Objects/call.c' line='413' column='1'/>
+    <function-decl name='_PyImport_IsInitialized' mangled-name='_PyImport_IsInitialized' filepath='Python/import.c' line='326' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_IsInitialized'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/import.c' line='326' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyImport_GetModuleDict' mangled-name='PyImport_GetModuleDict' filepath='Python/import.c' line='312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetModuleDict'>
       <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/structseq.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyStructSequence_UnnamedField' type-id='type-id-16' visibility='default' filepath='./Include/structseq.h' line='22' column='1'/>
-    <class-decl name='PyStructSequence_Desc' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/structseq.h' line='15' column='1' id='type-id-526'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/structseq.h' line='16' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='doc' type-id='type-id-3' visibility='default' filepath='./Include/structseq.h' line='17' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='fields' type-id='type-id-527' visibility='default' filepath='./Include/structseq.h' line='18' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='n_in_sequence' type-id='type-id-8' visibility='default' filepath='./Include/structseq.h' line='19' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='PyStructSequence_Field' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/structseq.h' line='10' column='1' id='type-id-528'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/structseq.h' line='11' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='doc' type-id='type-id-3' visibility='default' filepath='./Include/structseq.h' line='12' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-528' size-in-bits='64' id='type-id-527'/>
-    <typedef-decl name='PyStructSequence_Desc' type-id='type-id-526' filepath='./Include/structseq.h' line='20' column='1' id='type-id-529'/>
-    <pointer-type-def type-id='type-id-529' size-in-bits='64' id='type-id-530'/>
-    <function-decl name='PyStructSequence_NewType' mangled-name='PyStructSequence_NewType' filepath='Objects/structseq.c' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_NewType'>
-      <parameter type-id='type-id-530' name='desc' filepath='Objects/structseq.c' line='449' column='1'/>
-      <return type-id='type-id-75'/>
+    <function-decl name='_PyImport_ReleaseLock' mangled-name='_PyImport_ReleaseLock' filepath='Python/import.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_ReleaseLock'>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyStructSequence_InitType' mangled-name='PyStructSequence_InitType' filepath='Objects/structseq.c' line='443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_InitType'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/structseq.c' line='443' column='1'/>
-      <parameter type-id='type-id-530' name='desc' filepath='Objects/structseq.c' line='443' column='1'/>
+    <function-decl name='_PyImport_AcquireLock' mangled-name='_PyImport_AcquireLock' filepath='Python/import.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_AcquireLock'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyStructSequence_InitType2' mangled-name='PyStructSequence_InitType2' filepath='Objects/structseq.c' line='386' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_InitType2'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/structseq.c' line='386' column='1'/>
-      <parameter type-id='type-id-530' name='desc' filepath='Objects/structseq.c' line='386' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyMem_SetDefaultAllocator' mangled-name='_PyMem_SetDefaultAllocator' filepath='./Include/internal/pycore_pymem.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyStructSequence_GetItem' mangled-name='PyStructSequence_GetItem' filepath='Objects/structseq.c' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_GetItem'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/listobject.c' line='209' column='1'/>
-      <parameter type-id='type-id-15' name='i' filepath='Objects/listobject.c' line='209' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyMem_SetAllocator' mangled-name='PyMem_SetAllocator' filepath='./Include/cpython/pymem.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyStructSequence_SetItem' mangled-name='PyStructSequence_SetItem' filepath='Objects/structseq.c' line='58' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_SetItem'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/structseq.c' line='58' column='1'/>
-      <parameter type-id='type-id-15' name='i' filepath='Objects/structseq.c' line='58' column='1'/>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/structseq.c' line='58' column='1'/>
+    <function-decl name='_PyTime_GetPerfCounter' mangled-name='_PyTime_GetPerfCounter' filepath='./Include/pytime.h' line='229' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_AsMicroseconds' mangled-name='_PyTime_AsMicroseconds' filepath='./Include/pytime.h' line='114' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMarshal_ReadObjectFromString' mangled-name='PyMarshal_ReadObjectFromString' filepath='./Include/marshal.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyModule_GetDef' mangled-name='PyModule_GetDef' filepath='./Include/moduleobject.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyModule_FromDefAndSpec2' mangled-name='PyModule_FromDefAndSpec2' filepath='./Include/modsupport.h' line='235' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_Pop' mangled-name='_PyDict_Pop' filepath='./Include/cpython/dictobject.h' line='60' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyModule_NewObject' mangled-name='PyModule_NewObject' filepath='./Include/moduleobject.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyState_AddModule' mangled-name='_PyState_AddModule' filepath='./Include/internal/pycore_pystate.h' line='127' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyStructSequence_New' mangled-name='PyStructSequence_New' filepath='Objects/structseq.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStructSequence_New'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/structseq.c' line='40' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyModule_Clear' mangled-name='_PyModule_Clear' filepath='./Include/moduleobject.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/tupleobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyTuple_Type' type-id='type-id-182' mangled-name='PyTuple_Type' visibility='default' filepath='./Include/tupleobject.h' line='23' column='1' elf-symbol-id='PyTuple_Type'/>
-    <var-decl name='PyTupleIter_Type' type-id='type-id-182' mangled-name='PyTupleIter_Type' visibility='default' filepath='./Include/tupleobject.h' line='24' column='1' elf-symbol-id='PyTupleIter_Type'/>
-    <function-decl name='_PyTuple_Resize' mangled-name='_PyTuple_Resize' filepath='Objects/tupleobject.c' line='902' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTuple_Resize'>
-      <parameter type-id='type-id-303' name='pv' filepath='Objects/tupleobject.c' line='902' column='1'/>
-      <parameter type-id='type-id-15' name='newsize' filepath='Objects/tupleobject.c' line='902' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyModule_ClearDict' mangled-name='_PyModule_ClearDict' filepath='./Include/moduleobject.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyTuple_GetSlice' mangled-name='PyTuple_GetSlice' filepath='Objects/tupleobject.c' line='452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_GetSlice'>
-      <parameter type-id='type-id-100' name='a' filepath='Objects/listobject.c' line='465' column='1'/>
-      <parameter type-id='type-id-15' name='ilow' filepath='Objects/listobject.c' line='465' column='1'/>
-      <parameter type-id='type-id-15' name='ihigh' filepath='Objects/listobject.c' line='465' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyInterpreterState_ClearModules' mangled-name='_PyInterpreterState_ClearModules' filepath='./Include/internal/pycore_interp.h' line='160' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyTuple_Pack' mangled-name='PyTuple_Pack' filepath='Objects/tupleobject.c' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_Pack'>
-      <parameter type-id='type-id-15' name='n' filepath='Objects/tupleobject.c' line='196' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyGC_CollectNoFail' mangled-name='_PyGC_CollectNoFail' filepath='./Include/cpython/objimpl.h' line='119' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTuple_MaybeUntrack' mangled-name='_PyTuple_MaybeUntrack' filepath='Objects/tupleobject.c' line='174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTuple_MaybeUntrack'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/tupleobject.c' line='174' column='1'/>
+    <function-decl name='_PyGC_DumpShutdownStats' mangled-name='_PyGC_DumpShutdownStats' filepath='./Include/internal/pycore_pylifecycle.h' line='91' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyTuple_SetItem' mangled-name='PyTuple_SetItem' filepath='Objects/tupleobject.c' line='154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_SetItem'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1793' column='1'/>
-      <parameter type-id='type-id-15' name='i' filepath='Objects/abstract.c' line='1793' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='1793' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyList_Insert' mangled-name='PyList_Insert' filepath='./Include/listobject.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyTuple_GetItem' mangled-name='PyTuple_GetItem' filepath='Objects/tupleobject.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_GetItem'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/listobject.c' line='209' column='1'/>
-      <parameter type-id='type-id-15' name='i' filepath='Objects/listobject.c' line='209' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PySys_SetObject' mangled-name='PySys_SetObject' filepath='./Include/sysmodule.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyTuple_Size' mangled-name='PyTuple_Size' filepath='Objects/tupleobject.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_Size'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2203' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_Py_KeyedHash' mangled-name='_Py_KeyedHash' filepath='./Include/internal/pycore_pyhash.h' line='8' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyTuple_New' mangled-name='PyTuple_New' filepath='Objects/tupleobject.c' line='100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTuple_New'>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/tupleobject.c' line='100' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyImport_LoadDynamicModuleWithSpec' mangled-name='_PyImport_LoadDynamicModuleWithSpec' filepath='Python/importdl.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTuple_DebugMallocStats' mangled-name='_PyTuple_DebugMallocStats' filepath='Objects/tupleobject.c' line='41' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTuple_DebugMallocStats'>
-      <parameter type-id='type-id-223' name='out' filepath='Objects/tupleobject.c' line='41' column='1'/>
+    <function-decl name='PyModule_ExecDef' mangled-name='PyModule_ExecDef' filepath='./Include/modsupport.h' line='153' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/typeobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyType_Type' type-id='type-id-182' mangled-name='PyType_Type' visibility='default' filepath='./Include/object.h' line='227' column='1' elf-symbol-id='PyType_Type'/>
-    <var-decl name='PyBaseObject_Type' type-id='type-id-182' mangled-name='PyBaseObject_Type' visibility='default' filepath='./Include/object.h' line='228' column='1' elf-symbol-id='PyBaseObject_Type'/>
-    <var-decl name='PySuper_Type' type-id='type-id-182' mangled-name='PySuper_Type' visibility='default' filepath='./Include/object.h' line='229' column='1' elf-symbol-id='PySuper_Type'/>
-    <function-decl name='PyType_Ready' mangled-name='PyType_Ready' filepath='Objects/typeobject.c' line='5368' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_Ready'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='5368' column='1'/>
-      <return type-id='type-id-8'/>
+  <abi-instr version='1.0' address-size='64' path='./Python/importdl.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_PyObject_CallMethodId' mangled-name='_PyObject_CallMethodId' filepath='./Include/cpython/abstract.h' line='214' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyType_LookupId' mangled-name='_PyType_LookupId' filepath='Objects/typeobject.c' line='3280' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_LookupId'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='3280' column='1'/>
-      <parameter type-id='type-id-308' name='name' filepath='Objects/typeobject.c' line='3280' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyUnicode_EncodeFSDefault' mangled-name='PyUnicode_EncodeFSDefault' filepath='./Include/unicodeobject.h' line='787' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyType_Lookup' mangled-name='_PyType_Lookup' filepath='Objects/typeobject.c' line='3220' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_Lookup'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='3220' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Objects/typeobject.c' line='3220' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyImport_FindSharedFuncptr' mangled-name='_PyImport_FindSharedFuncptr' filepath='./Python/importdl.c' line='21' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyType_GetModuleState' mangled-name='PyType_GetModuleState' filepath='Objects/typeobject.c' line='3146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetModuleState'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='3146' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='PyImport_GetModuleDict' mangled-name='PyImport_GetModuleDict' filepath='./Include/import.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyType_GetModule' mangled-name='PyType_GetModule' filepath='Objects/typeobject.c' line='3122' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetModule'>
-      <parameter type-id='type-id-75' name='tp' filepath='Objects/object.c' line='163' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyImport_FixupExtensionObject' mangled-name='_PyImport_FixupExtensionObject' filepath='./Include/cpython/import.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyType_GetSlot' mangled-name='PyType_GetSlot' filepath='Objects/typeobject.c' line='3108' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetSlot'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='3108' column='1'/>
-      <parameter type-id='type-id-8' name='slot' filepath='Objects/typeobject.c' line='3108' column='1'/>
-      <return type-id='type-id-32'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='./Python/initconfig.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='Py_UTF8Mode' type-id='type-id-8' mangled-name='Py_UTF8Mode' visibility='default' filepath='./Include/fileobject.h' line='29' column='1' elf-symbol-id='Py_UTF8Mode'/>
+    <var-decl name='Py_DebugFlag' type-id='type-id-8' mangled-name='Py_DebugFlag' visibility='default' filepath='./Include/pydebug.h' line='8' column='1' elf-symbol-id='Py_DebugFlag'/>
+    <var-decl name='Py_VerboseFlag' type-id='type-id-8' mangled-name='Py_VerboseFlag' visibility='default' filepath='./Include/pydebug.h' line='9' column='1' elf-symbol-id='Py_VerboseFlag'/>
+    <var-decl name='Py_QuietFlag' type-id='type-id-8' mangled-name='Py_QuietFlag' visibility='default' filepath='./Include/pydebug.h' line='10' column='1' elf-symbol-id='Py_QuietFlag'/>
+    <var-decl name='Py_InteractiveFlag' type-id='type-id-8' mangled-name='Py_InteractiveFlag' visibility='default' filepath='./Include/pydebug.h' line='11' column='1' elf-symbol-id='Py_InteractiveFlag'/>
+    <var-decl name='Py_InspectFlag' type-id='type-id-8' mangled-name='Py_InspectFlag' visibility='default' filepath='./Include/pydebug.h' line='12' column='1' elf-symbol-id='Py_InspectFlag'/>
+    <var-decl name='Py_OptimizeFlag' type-id='type-id-8' mangled-name='Py_OptimizeFlag' visibility='default' filepath='./Include/pydebug.h' line='13' column='1' elf-symbol-id='Py_OptimizeFlag'/>
+    <var-decl name='Py_NoSiteFlag' type-id='type-id-8' mangled-name='Py_NoSiteFlag' visibility='default' filepath='./Include/pydebug.h' line='14' column='1' elf-symbol-id='Py_NoSiteFlag'/>
+    <var-decl name='Py_BytesWarningFlag' type-id='type-id-8' mangled-name='Py_BytesWarningFlag' visibility='default' filepath='./Include/pydebug.h' line='15' column='1' elf-symbol-id='Py_BytesWarningFlag'/>
+    <var-decl name='Py_FrozenFlag' type-id='type-id-8' mangled-name='Py_FrozenFlag' visibility='default' filepath='./Include/pydebug.h' line='16' column='1' elf-symbol-id='Py_FrozenFlag'/>
+    <var-decl name='Py_IgnoreEnvironmentFlag' type-id='type-id-8' mangled-name='Py_IgnoreEnvironmentFlag' visibility='default' filepath='./Include/pydebug.h' line='17' column='1' elf-symbol-id='Py_IgnoreEnvironmentFlag'/>
+    <var-decl name='Py_DontWriteBytecodeFlag' type-id='type-id-8' mangled-name='Py_DontWriteBytecodeFlag' visibility='default' filepath='./Include/pydebug.h' line='18' column='1' elf-symbol-id='Py_DontWriteBytecodeFlag'/>
+    <var-decl name='Py_NoUserSiteDirectory' type-id='type-id-8' mangled-name='Py_NoUserSiteDirectory' visibility='default' filepath='./Include/pydebug.h' line='19' column='1' elf-symbol-id='Py_NoUserSiteDirectory'/>
+    <var-decl name='Py_UnbufferedStdioFlag' type-id='type-id-8' mangled-name='Py_UnbufferedStdioFlag' visibility='default' filepath='./Include/pydebug.h' line='20' column='1' elf-symbol-id='Py_UnbufferedStdioFlag'/>
+    <var-decl name='Py_HashRandomizationFlag' type-id='type-id-8' mangled-name='Py_HashRandomizationFlag' visibility='default' filepath='./Include/pydebug.h' line='21' column='1' elf-symbol-id='Py_HashRandomizationFlag'/>
+    <var-decl name='Py_IsolatedFlag' type-id='type-id-8' mangled-name='Py_IsolatedFlag' visibility='default' filepath='./Include/pydebug.h' line='22' column='1' elf-symbol-id='Py_IsolatedFlag'/>
+    <function-decl name='_Py_GetConfigsAsDict' mangled-name='_Py_GetConfigsAsDict' filepath='./Python/initconfig.c' line='2614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetConfigsAsDict'>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-531' visibility='default' filepath='./Include/object.h' line='201' column='1' id='type-id-532'>
+    <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-595' visibility='default' filepath='./Include/cpython/initconfig.h' line='10' column='1' id='type-id-596'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/object.h' line='202' column='1'/>
+        <var-decl name='_type' type-id='type-id-597' visibility='default' filepath='./Include/cpython/initconfig.h' line='15' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='basicsize' type-id='type-id-8' visibility='default' filepath='./Include/object.h' line='203' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='itemsize' type-id='type-id-8' visibility='default' filepath='./Include/object.h' line='204' column='1'/>
+        <var-decl name='func' type-id='type-id-3' visibility='default' filepath='./Include/cpython/initconfig.h' line='16' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='flags' type-id='type-id-107' visibility='default' filepath='./Include/object.h' line='205' column='1'/>
+        <var-decl name='err_msg' type-id='type-id-3' visibility='default' filepath='./Include/cpython/initconfig.h' line='17' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='slots' type-id='type-id-533' visibility='default' filepath='./Include/object.h' line='206' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-534' visibility='default' filepath='./Include/object.h' line='196' column='1' id='type-id-535'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='slot' type-id='type-id-8' visibility='default' filepath='./Include/object.h' line='197' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='pfunc' type-id='type-id-32' visibility='default' filepath='./Include/object.h' line='198' column='1'/>
+        <var-decl name='exitcode' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='18' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='PyType_Slot' type-id='type-id-535' filepath='./Include/object.h' line='199' column='1' id='type-id-534'/>
-    <pointer-type-def type-id='type-id-534' size-in-bits='64' id='type-id-533'/>
-    <typedef-decl name='PyType_Spec' type-id='type-id-532' filepath='./Include/object.h' line='207' column='1' id='type-id-531'/>
-    <pointer-type-def type-id='type-id-531' size-in-bits='64' id='type-id-536'/>
-    <function-decl name='PyType_FromSpec' mangled-name='PyType_FromSpec' filepath='Objects/typeobject.c' line='3102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_FromSpec'>
-      <parameter type-id='type-id-536' name='spec' filepath='Objects/typeobject.c' line='3102' column='1'/>
-      <return type-id='type-id-100'/>
+    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/initconfig.h' line='11' column='1' id='type-id-597'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='_PyStatus_TYPE_OK' value='0'/>
+      <enumerator name='_PyStatus_TYPE_ERROR' value='1'/>
+      <enumerator name='_PyStatus_TYPE_EXIT' value='2'/>
+    </enum-decl>
+    <typedef-decl name='PyStatus' type-id='type-id-596' filepath='./Include/cpython/initconfig.h' line='19' column='1' id='type-id-595'/>
+    <pointer-type-def type-id='type-id-321' size-in-bits='64' id='type-id-598'/>
+    <function-decl name='PyConfig_Read' mangled-name='PyConfig_Read' filepath='./Python/initconfig.c' line='2503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_Read'>
+      <parameter type-id='type-id-598' name='config' filepath='./Python/initconfig.c' line='2503' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='PyType_FromModuleAndSpec' mangled-name='PyType_FromModuleAndSpec' filepath='Objects/typeobject.c' line='2876' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_FromModuleAndSpec'>
-      <parameter type-id='type-id-100' name='module' filepath='Objects/typeobject.c' line='2876' column='1'/>
-      <parameter type-id='type-id-536' name='spec' filepath='Objects/typeobject.c' line='2876' column='1'/>
-      <parameter type-id='type-id-100' name='bases' filepath='Objects/typeobject.c' line='2876' column='1'/>
-      <return type-id='type-id-100'/>
+    <pointer-type-def type-id='type-id-404' size-in-bits='64' id='type-id-599'/>
+    <function-decl name='PyConfig_SetWideStringList' mangled-name='PyConfig_SetWideStringList' filepath='./Python/initconfig.c' line='2479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetWideStringList'>
+      <parameter type-id='type-id-598' name='config' filepath='./Python/initconfig.c' line='2479' column='1'/>
+      <parameter type-id='type-id-599' name='list' filepath='./Python/initconfig.c' line='2479' column='1'/>
+      <parameter type-id='type-id-15' name='length' filepath='./Python/initconfig.c' line='2480' column='1'/>
+      <parameter type-id='type-id-407' name='items' filepath='./Python/initconfig.c' line='2480' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='PyType_FromSpecWithBases' mangled-name='PyType_FromSpecWithBases' filepath='Objects/typeobject.c' line='2870' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_FromSpecWithBases'>
-      <parameter type-id='type-id-536' name='spec' filepath='Objects/typeobject.c' line='2870' column='1'/>
-      <parameter type-id='type-id-100' name='bases' filepath='Objects/typeobject.c' line='2870' column='1'/>
-      <return type-id='type-id-100'/>
+    <qualified-type-def type-id='type-id-403' const='yes' id='type-id-600'/>
+    <pointer-type-def type-id='type-id-600' size-in-bits='64' id='type-id-601'/>
+    <function-decl name='PyConfig_SetArgv' mangled-name='PyConfig_SetArgv' filepath='./Python/initconfig.c' line='2467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetArgv'>
+      <parameter type-id='type-id-598' name='config' filepath='./Python/initconfig.c' line='2467' column='1'/>
+      <parameter type-id='type-id-15' name='argc' filepath='./Python/initconfig.c' line='2467' column='1'/>
+      <parameter type-id='type-id-601' name='argv' filepath='./Python/initconfig.c' line='2467' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='_PyType_CalculateMetaclass' mangled-name='_PyType_CalculateMetaclass' filepath='Objects/typeobject.c' line='2341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_CalculateMetaclass'>
-      <parameter type-id='type-id-75' name='metatype' filepath='Objects/typeobject.c' line='2341' column='1'/>
-      <parameter type-id='type-id-100' name='bases' filepath='Objects/typeobject.c' line='2341' column='1'/>
-      <return type-id='type-id-75'/>
+    <function-decl name='PyConfig_SetBytesArgv' mangled-name='PyConfig_SetBytesArgv' filepath='./Python/initconfig.c' line='2455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetBytesArgv'>
+      <parameter type-id='type-id-598' name='config' filepath='./Python/initconfig.c' line='2455' column='1'/>
+      <parameter type-id='type-id-15' name='argc' filepath='./Python/initconfig.c' line='2455' column='1'/>
+      <parameter type-id='type-id-280' name='argv' filepath='./Python/initconfig.c' line='2455' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='PyType_GetFlags' mangled-name='PyType_GetFlags' filepath='Objects/typeobject.c' line='2334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GetFlags'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='2334' column='1'/>
-      <return type-id='type-id-33'/>
+    <function-decl name='PyConfig_SetBytesString' mangled-name='PyConfig_SetBytesString' filepath='./Python/initconfig.c' line='771' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetBytesString'>
+      <parameter type-id='type-id-598' name='config' filepath='./Python/initconfig.c' line='771' column='1'/>
+      <parameter type-id='type-id-407' name='config_str' filepath='./Python/initconfig.c' line='771' column='1'/>
+      <parameter type-id='type-id-3' name='str' filepath='./Python/initconfig.c' line='772' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='_PyObject_LookupSpecial' mangled-name='_PyObject_LookupSpecial' filepath='Objects/typeobject.c' line='1442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_LookupSpecial'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/typeobject.c' line='1442' column='1'/>
-      <parameter type-id='type-id-476' name='attrid' filepath='Objects/typeobject.c' line='1442' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyConfig_InitIsolatedConfig' mangled-name='PyConfig_InitIsolatedConfig' filepath='./Python/initconfig.c' line='687' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_InitIsolatedConfig'>
+      <parameter type-id='type-id-598' name='config' filepath='./Python/initconfig.c' line='687' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyType_IsSubtype' mangled-name='PyType_IsSubtype' filepath='Objects/typeobject.c' line='1404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_IsSubtype'>
-      <parameter type-id='type-id-75' name='a' filepath='Objects/typeobject.c' line='1404' column='1'/>
-      <parameter type-id='type-id-75' name='b' filepath='Objects/typeobject.c' line='1404' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyConfig_InitPythonConfig' mangled-name='PyConfig_InitPythonConfig' filepath='./Python/initconfig.c' line='676' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_InitPythonConfig'>
+      <parameter type-id='type-id-598' name='config' filepath='./Python/initconfig.c' line='687' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyType_GenericNew' mangled-name='PyType_GenericNew' filepath='Objects/typeobject.c' line='1073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GenericNew'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='1073' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/typeobject.c' line='1073' column='1'/>
-      <parameter type-id='type-id-100' name='kwds' filepath='Objects/typeobject.c' line='1073' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyConfig_InitCompatConfig' mangled-name='_PyConfig_InitCompatConfig' filepath='./Python/initconfig.c' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyConfig_InitCompatConfig'>
+      <parameter type-id='type-id-598' name='config' filepath='./Python/initconfig.c' line='687' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyType_GenericAlloc' mangled-name='PyType_GenericAlloc' filepath='Objects/typeobject.c' line='1040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_GenericAlloc'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='1040' column='1'/>
-      <parameter type-id='type-id-15' name='nitems' filepath='Objects/typeobject.c' line='1040' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyConfig_Clear' mangled-name='PyConfig_Clear' filepath='./Python/initconfig.c' line='570' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_Clear'>
+      <parameter type-id='type-id-598' name='config' filepath='./Python/initconfig.c' line='570' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyType_Name' mangled-name='_PyType_Name' filepath='Objects/typeobject.c' line='447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_Name'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='447' column='1'/>
-      <return type-id='type-id-3'/>
+    <pointer-type-def type-id='type-id-407' size-in-bits='64' id='type-id-602'/>
+    <function-decl name='Py_GetArgcArgv' mangled-name='Py_GetArgcArgv' filepath='./Python/initconfig.c' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetArgcArgv'>
+      <parameter type-id='type-id-227' name='argc' filepath='./Python/initconfig.c' line='553' column='1'/>
+      <parameter type-id='type-id-602' name='argv' filepath='./Python/initconfig.c' line='553' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyType_Modified' mangled-name='PyType_Modified' filepath='Objects/typeobject.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_Modified'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='261' column='1'/>
+    <function-decl name='_Py_ClearArgcArgv' mangled-name='_Py_ClearArgcArgv' filepath='./Python/initconfig.c' line='525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_ClearArgcArgv'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyType_ClearCache' mangled-name='PyType_ClearCache' filepath='Objects/typeobject.c' line='221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyType_ClearCache'>
-      <return type-id='type-id-107'/>
+    <function-decl name='_Py_ClearStandardStreamEncoding' mangled-name='_Py_ClearStandardStreamEncoding' filepath='./Python/initconfig.c' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_ClearStandardStreamEncoding'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyType_GetTextSignatureFromInternalDoc' mangled-name='_PyType_GetTextSignatureFromInternalDoc' filepath='Objects/typeobject.c' line='199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_GetTextSignatureFromInternalDoc'>
-      <parameter type-id='type-id-3' name='name' filepath='Objects/typeobject.c' line='199' column='1'/>
-      <parameter type-id='type-id-3' name='internal_doc' filepath='Objects/typeobject.c' line='199' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_SetStandardStreamEncoding' mangled-name='Py_SetStandardStreamEncoding' filepath='./Python/initconfig.c' line='443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetStandardStreamEncoding'>
+      <parameter type-id='type-id-3' name='encoding' filepath='./Python/initconfig.c' line='443' column='1'/>
+      <parameter type-id='type-id-3' name='errors' filepath='./Python/initconfig.c' line='443' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyType_GetDocFromInternalDoc' mangled-name='_PyType_GetDocFromInternalDoc' filepath='Objects/typeobject.c' line='187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_GetDocFromInternalDoc'>
-      <parameter type-id='type-id-3' name='name' filepath='Objects/typeobject.c' line='187' column='1'/>
-      <parameter type-id='type-id-3' name='internal_doc' filepath='Objects/typeobject.c' line='187' column='1'/>
+    <qualified-type-def type-id='type-id-404' const='yes' id='type-id-603'/>
+    <pointer-type-def type-id='type-id-603' size-in-bits='64' id='type-id-604'/>
+    <function-decl name='_PyWideStringList_AsList' mangled-name='_PyWideStringList_AsList' filepath='./Python/initconfig.c' line='412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_AsList'>
+      <parameter type-id='type-id-604' name='list' filepath='./Python/initconfig.c' line='412' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyType_CheckConsistency' mangled-name='_PyType_CheckConsistency' filepath='Objects/typeobject.c' line='151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyType_CheckConsistency'>
-      <parameter type-id='type-id-75' name='type' filepath='Objects/typeobject.c' line='151' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyWideStringList_Extend' mangled-name='_PyWideStringList_Extend' filepath='./Python/initconfig.c' line='387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_Extend'>
+      <parameter type-id='type-id-599' name='list' filepath='./Python/initconfig.c' line='387' column='1'/>
+      <parameter type-id='type-id-604' name='list2' filepath='./Python/initconfig.c' line='387' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/unicodeobject.c' comp-dir-path='/src' language='LANG_C99'>
-
-    <array-type-def dimensions='1' type-id='type-id-459' size-in-bits='infinite' id='type-id-537'>
-      <subrange length='infinite' id='type-id-18'/>
-
-    </array-type-def>
-    <qualified-type-def type-id='type-id-537' const='yes' id='type-id-538'/>
-    <var-decl name='_Py_ascii_whitespace' type-id='type-id-538' mangled-name='_Py_ascii_whitespace' visibility='default' filepath='./Include/cpython/unicodeobject.h' line='1054' column='1' elf-symbol-id='_Py_ascii_whitespace'/>
-    <var-decl name='PyUnicode_Type' type-id='type-id-182' mangled-name='PyUnicode_Type' visibility='default' filepath='./Include/unicodeobject.h' line='111' column='1' elf-symbol-id='PyUnicode_Type'/>
-    <var-decl name='PyUnicodeIter_Type' type-id='type-id-182' mangled-name='PyUnicodeIter_Type' visibility='default' filepath='./Include/unicodeobject.h' line='112' column='1' elf-symbol-id='PyUnicodeIter_Type'/>
-    <function-decl name='PyInit__string' mangled-name='PyInit__string' filepath='Objects/unicodeobject.c' line='16258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__string'>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyWideStringList_Append' mangled-name='PyWideStringList_Append' filepath='./Python/initconfig.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWideStringList_Append'>
+      <parameter type-id='type-id-599' name='list' filepath='./Python/initconfig.c' line='380' column='1'/>
+      <parameter type-id='type-id-501' name='item' filepath='./Python/initconfig.c' line='380' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsUnicodeCopy' mangled-name='PyUnicode_AsUnicodeCopy' filepath='Objects/unicodeobject.c' line='15967' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUnicodeCopy'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='15967' column='1'/>
-      <return type-id='type-id-470'/>
+    <function-decl name='PyWideStringList_Insert' mangled-name='PyWideStringList_Insert' filepath='./Python/initconfig.c' line='339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWideStringList_Insert'>
+      <parameter type-id='type-id-599' name='list' filepath='./Python/initconfig.c' line='339' column='1'/>
+      <parameter type-id='type-id-15' name='index' filepath='./Python/initconfig.c' line='340' column='1'/>
+      <parameter type-id='type-id-501' name='item' filepath='./Python/initconfig.c' line='340' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='Py_UNICODE_strrchr' mangled-name='Py_UNICODE_strrchr' filepath='Objects/unicodeobject.c' line='15954' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strrchr'>
-      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='15954' column='1'/>
-      <parameter type-id='type-id-453' name='c' filepath='Objects/unicodeobject.c' line='15954' column='1'/>
-      <return type-id='type-id-470'/>
+    <function-decl name='_PyWideStringList_Copy' mangled-name='_PyWideStringList_Copy' filepath='./Python/initconfig.c' line='304' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_Copy'>
+      <parameter type-id='type-id-599' name='list' filepath='./Python/initconfig.c' line='304' column='1'/>
+      <parameter type-id='type-id-604' name='list2' filepath='./Python/initconfig.c' line='304' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_UNICODE_strchr' mangled-name='Py_UNICODE_strchr' filepath='Objects/unicodeobject.c' line='15944' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strchr'>
-      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='15954' column='1'/>
-      <parameter type-id='type-id-453' name='c' filepath='Objects/unicodeobject.c' line='15954' column='1'/>
-      <return type-id='type-id-470'/>
+    <function-decl name='_PyWideStringList_Clear' mangled-name='_PyWideStringList_Clear' filepath='./Python/initconfig.c' line='291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_Clear'>
+      <parameter type-id='type-id-599' name='list' filepath='./Python/initconfig.c' line='291' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_UNICODE_strncmp' mangled-name='Py_UNICODE_strncmp' filepath='Objects/unicodeobject.c' line='15927' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strncmp'>
-      <parameter type-id='type-id-455' name='s1' filepath='Objects/unicodeobject.c' line='15927' column='1'/>
-      <parameter type-id='type-id-455' name='s2' filepath='Objects/unicodeobject.c' line='15927' column='1'/>
-      <parameter type-id='type-id-191' name='n' filepath='Objects/unicodeobject.c' line='15927' column='1'/>
+    <function-decl name='PyStatus_Exception' mangled-name='PyStatus_Exception' filepath='./Python/initconfig.c' line='268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Exception'>
+      <parameter type-id='type-id-595' name='status' filepath='./Python/initconfig.c' line='268' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_UNICODE_strcmp' mangled-name='Py_UNICODE_strcmp' filepath='Objects/unicodeobject.c' line='15913' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strcmp'>
-      <parameter type-id='type-id-455' name='s1' filepath='Objects/unicodeobject.c' line='15913' column='1'/>
-      <parameter type-id='type-id-455' name='s2' filepath='Objects/unicodeobject.c' line='15913' column='1'/>
+    <function-decl name='PyStatus_IsExit' mangled-name='PyStatus_IsExit' filepath='./Python/initconfig.c' line='265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_IsExit'>
+      <parameter type-id='type-id-595' name='status' filepath='./Python/initconfig.c' line='268' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_UNICODE_strcat' mangled-name='Py_UNICODE_strcat' filepath='Objects/unicodeobject.c' line='15904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strcat'>
-      <parameter type-id='type-id-470' name='s1' filepath='Objects/unicodeobject.c' line='15904' column='1'/>
-      <parameter type-id='type-id-455' name='s2' filepath='Objects/unicodeobject.c' line='15904' column='1'/>
-      <return type-id='type-id-470'/>
+    <function-decl name='PyStatus_IsError' mangled-name='PyStatus_IsError' filepath='./Python/initconfig.c' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_IsError'>
+      <parameter type-id='type-id-595' name='status' filepath='./Python/initconfig.c' line='268' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_UNICODE_strncpy' mangled-name='Py_UNICODE_strncpy' filepath='Objects/unicodeobject.c' line='15894' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strncpy'>
-      <parameter type-id='type-id-470' name='s1' filepath='Objects/unicodeobject.c' line='15894' column='1'/>
-      <parameter type-id='type-id-455' name='s2' filepath='Objects/unicodeobject.c' line='15894' column='1'/>
-      <parameter type-id='type-id-191' name='n' filepath='Objects/unicodeobject.c' line='15894' column='1'/>
-      <return type-id='type-id-470'/>
+    <function-decl name='PyStatus_Exit' mangled-name='PyStatus_Exit' filepath='./Python/initconfig.c' line='258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Exit'>
+      <parameter type-id='type-id-8' name='exitcode' filepath='./Python/initconfig.c' line='258' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='Py_UNICODE_strcpy' mangled-name='Py_UNICODE_strcpy' filepath='Objects/unicodeobject.c' line='15886' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strcpy'>
-      <parameter type-id='type-id-470' name='s1' filepath='Objects/unicodeobject.c' line='15904' column='1'/>
-      <parameter type-id='type-id-455' name='s2' filepath='Objects/unicodeobject.c' line='15904' column='1'/>
-      <return type-id='type-id-470'/>
+    <function-decl name='PyStatus_NoMemory' mangled-name='PyStatus_NoMemory' filepath='./Python/initconfig.c' line='255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_NoMemory'>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='Py_UNICODE_strlen' mangled-name='Py_UNICODE_strlen' filepath='Objects/unicodeobject.c' line='15880' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_UNICODE_strlen'>
-      <parameter type-id='type-id-455' name='u' filepath='Objects/unicodeobject.c' line='15880' column='1'/>
-      <return type-id='type-id-191'/>
+    <function-decl name='PyStatus_Error' mangled-name='PyStatus_Error' filepath='./Python/initconfig.c' line='249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Error'>
+      <parameter type-id='type-id-3' name='err_msg' filepath='./Python/initconfig.c' line='249' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='PyUnicode_InternFromString' mangled-name='PyUnicode_InternFromString' filepath='Objects/unicodeobject.c' line='15647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_InternFromString'>
-      <parameter type-id='type-id-3' name='cp' filepath='Objects/unicodeobject.c' line='15647' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyStatus_Ok' mangled-name='PyStatus_Ok' filepath='./Python/initconfig.c' line='246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Ok'>
+      <return type-id='type-id-595'/>
+    </function-decl>
+    <function-decl name='PyConfig_SetString' mangled-name='PyConfig_SetString' filepath='./Python/initconfig.c' line='709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetString'>
+      <parameter type-id='type-id-598' name='config' filepath='./Python/initconfig.c' line='709' column='1'/>
+      <parameter type-id='type-id-407' name='config_str' filepath='./Python/initconfig.c' line='709' column='1'/>
+      <parameter type-id='type-id-501' name='str' filepath='./Python/initconfig.c' line='709' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='PyUnicode_InternImmortal' mangled-name='PyUnicode_InternImmortal' filepath='Objects/unicodeobject.c' line='15637' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_InternImmortal'>
-      <parameter type-id='type-id-303' name='p' filepath='Objects/unicodeobject.c' line='15637' column='1'/>
+    <function-decl name='_PyPreConfig_AsDict' mangled-name='_PyPreConfig_AsDict' filepath='./Include/internal/pycore_initconfig.h' line='131' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_InternInPlace' mangled-name='PyUnicode_InternInPlace' filepath='Objects/unicodeobject.c' line='15584' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_InternInPlace'>
-      <parameter type-id='type-id-303' name='p' filepath='Objects/unicodeobject.c' line='15584' column='1'/>
+    <function-decl name='_PyPreConfig_InitFromPreConfig' mangled-name='_PyPreConfig_InitFromPreConfig' filepath='./Include/internal/pycore_initconfig.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Format' mangled-name='PyUnicode_Format' filepath='Objects/unicodeobject.c' line='15273' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Format'>
-      <parameter type-id='type-id-100' name='format' filepath='Objects/unicodeobject.c' line='15273' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/unicodeobject.c' line='15273' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyPreConfig_GetConfig' mangled-name='_PyPreConfig_GetConfig' filepath='./Include/internal/pycore_initconfig.h' line='132' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_FormatLong' mangled-name='_PyUnicode_FormatLong' filepath='Objects/unicodeobject.c' line='14499' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FormatLong'>
-      <parameter type-id='type-id-100' name='val' filepath='Objects/unicodeobject.c' line='14499' column='1'/>
-      <parameter type-id='type-id-8' name='alt' filepath='Objects/unicodeobject.c' line='14499' column='1'/>
-      <parameter type-id='type-id-8' name='prec' filepath='Objects/unicodeobject.c' line='14499' column='1'/>
-      <parameter type-id='type-id-8' name='type' filepath='Objects/unicodeobject.c' line='14499' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyPreCmdline_Read' mangled-name='_PyPreCmdline_Read' filepath='./Include/internal/pycore_initconfig.h' line='118' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicodeWriter_Dealloc' mangled-name='_PyUnicodeWriter_Dealloc' filepath='Objects/unicodeobject.c' line='14136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_Dealloc'>
-      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='14136' column='1'/>
+    <function-decl name='_PyPreCmdline_SetConfig' mangled-name='_PyPreCmdline_SetConfig' filepath='./Include/internal/pycore_initconfig.h' line='115' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicodeWriter_Finish' mangled-name='_PyUnicodeWriter_Finish' filepath='Objects/unicodeobject.c' line='14104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_Finish'>
-      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='14104' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_isabs' mangled-name='_Py_isabs' filepath='./Include/cpython/fileutils.h' line='140' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicodeWriter_WriteLatin1String' mangled-name='_PyUnicodeWriter_WriteLatin1String' filepath='Objects/unicodeobject.c' line='14090' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteLatin1String'>
-      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='14090' column='1'/>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='14091' column='1'/>
-      <parameter type-id='type-id-15' name='len' filepath='Objects/unicodeobject.c' line='14091' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_abspath' mangled-name='_Py_abspath' filepath='./Include/cpython/fileutils.h' line='143' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicodeWriter_WriteASCIIString' mangled-name='_PyUnicodeWriter_WriteASCIIString' filepath='Objects/unicodeobject.c' line='14030' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteASCIIString'>
-      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='14030' column='1'/>
-      <parameter type-id='type-id-3' name='ascii' filepath='Objects/unicodeobject.c' line='14031' column='1'/>
-      <parameter type-id='type-id-15' name='len' filepath='Objects/unicodeobject.c' line='14031' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_PreInitializeFromConfig' mangled-name='_Py_PreInitializeFromConfig' filepath='./Include/internal/pycore_pylifecycle.h' line='96' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicodeWriter_WriteSubstring' mangled-name='_PyUnicodeWriter_WriteSubstring' filepath='Objects/unicodeobject.c' line='13995' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteSubstring'>
-      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='13995' column='1'/>
-      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='13995' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='13996' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='13996' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='wcstok' mangled-name='wcstok' filepath='/usr/include/wchar.h' line='217' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicodeWriter_WriteStr' mangled-name='_PyUnicodeWriter_WriteStr' filepath='Objects/unicodeobject.c' line='13964' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteStr'>
-      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='13964' column='1'/>
-      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='13964' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyOS_GetOpt' mangled-name='_PyOS_GetOpt' filepath='./Include/internal/pycore_getopt.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicodeWriter_WriteChar' mangled-name='_PyUnicodeWriter_WriteChar' filepath='Objects/unicodeobject.c' line='13958' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_WriteChar'>
-      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='13958' column='1'/>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodeobject.c' line='13958' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyOS_ResetGetOpt' mangled-name='_PyOS_ResetGetOpt' filepath='./Include/internal/pycore_getopt.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicodeWriter_PrepareKindInternal' mangled-name='_PyUnicodeWriter_PrepareKindInternal' filepath='Objects/unicodeobject.c' line='13926' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_PrepareKindInternal'>
-      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='13926' column='1'/>
-      <parameter type-id='type-id-473' name='kind' filepath='Objects/unicodeobject.c' line='13927' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PySys_ReadPreinitWarnOptions' mangled-name='_PySys_ReadPreinitWarnOptions' filepath='./Include/internal/pycore_pylifecycle.h' line='43' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicodeWriter_PrepareInternal' mangled-name='_PyUnicodeWriter_PrepareInternal' filepath='Objects/unicodeobject.c' line='13849' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_PrepareInternal'>
-      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='13849' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/unicodeobject.c' line='13850' column='1'/>
-      <parameter type-id='type-id-474' name='maxchar' filepath='Objects/unicodeobject.c' line='13850' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_GetEnv' mangled-name='_Py_GetEnv' filepath='./Include/internal/pycore_initconfig.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicodeWriter_Init' mangled-name='_PyUnicodeWriter_Init' filepath='Objects/unicodeobject.c' line='13825' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicodeWriter_Init'>
-      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='13825' column='1'/>
+    <function-decl name='strtoul' mangled-name='strtoul' filepath='/usr/include/stdlib.h' line='180' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_RSplit' mangled-name='PyUnicode_RSplit' filepath='Objects/unicodeobject.c' line='13400' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RSplit'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/unicodeobject.c' line='13400' column='1'/>
-      <parameter type-id='type-id-100' name='sep' filepath='Objects/unicodeobject.c' line='13400' column='1'/>
-      <parameter type-id='type-id-15' name='maxsplit' filepath='Objects/unicodeobject.c' line='13400' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_get_env_flag' mangled-name='_Py_get_env_flag' filepath='./Include/internal/pycore_initconfig.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_RPartition' mangled-name='PyUnicode_RPartition' filepath='Objects/unicodeobject.c' line='13300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RPartition'>
-      <parameter type-id='type-id-100' name='str_obj' filepath='Objects/unicodeobject.c' line='13300' column='1'/>
-      <parameter type-id='type-id-100' name='sep_obj' filepath='Objects/unicodeobject.c' line='13300' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_get_xoption' mangled-name='_Py_get_xoption' filepath='./Include/internal/pycore_initconfig.h' line='80' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Partition' mangled-name='PyUnicode_Partition' filepath='Objects/unicodeobject.c' line='13242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Partition'>
-      <parameter type-id='type-id-100' name='str_obj' filepath='Objects/unicodeobject.c' line='13300' column='1'/>
-      <parameter type-id='type-id-100' name='sep_obj' filepath='Objects/unicodeobject.c' line='13300' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='wcstol' mangled-name='wcstol' filepath='/usr/include/wchar.h' line='428' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Split' mangled-name='PyUnicode_Split' filepath='Objects/unicodeobject.c' line='13204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Split'>
-      <parameter type-id='type-id-100' name='s' filepath='Objects/unicodeobject.c' line='13400' column='1'/>
-      <parameter type-id='type-id-100' name='sep' filepath='Objects/unicodeobject.c' line='13400' column='1'/>
-      <parameter type-id='type-id-15' name='maxsplit' filepath='Objects/unicodeobject.c' line='13400' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='wcschr' mangled-name='wcschr' filepath='/usr/include/wchar.h' line='164' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Replace' mangled-name='PyUnicode_Replace' filepath='Objects/unicodeobject.c' line='12852' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Replace'>
-      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='12852' column='1'/>
-      <parameter type-id='type-id-100' name='substr' filepath='Objects/unicodeobject.c' line='12853' column='1'/>
-      <parameter type-id='type-id-100' name='replstr' filepath='Objects/unicodeobject.c' line='12854' column='1'/>
-      <parameter type-id='type-id-15' name='maxcount' filepath='Objects/unicodeobject.c' line='12855' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_str_to_int' mangled-name='_Py_str_to_int' filepath='./Include/internal/pycore_initconfig.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Substring' mangled-name='PyUnicode_Substring' filepath='Objects/unicodeobject.c' line='12610' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Substring'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/unicodeobject.c' line='12610' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='12610' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='12610' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_IsLocaleCoercionTarget' mangled-name='_Py_IsLocaleCoercionTarget' filepath='./Include/internal/pycore_pylifecycle.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_XStrip' mangled-name='_PyUnicode_XStrip' filepath='Objects/unicodeobject.c' line='12560' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_XStrip'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/unicodeobject.c' line='12560' column='1'/>
-      <parameter type-id='type-id-8' name='striptype' filepath='Objects/unicodeobject.c' line='12560' column='1'/>
-      <parameter type-id='type-id-100' name='sepobj' filepath='Objects/unicodeobject.c' line='12560' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='nl_langinfo' mangled-name='nl_langinfo' filepath='/usr/include/langinfo.h' line='661' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_IsIdentifier' mangled-name='PyUnicode_IsIdentifier' filepath='Objects/unicodeobject.c' line='12374' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_IsIdentifier'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/unicodeobject.c' line='12374' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_GetForceASCII' mangled-name='_Py_GetForceASCII' filepath='./Include/internal/pycore_fileutils.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_ScanIdentifier' mangled-name='_PyUnicode_ScanIdentifier' filepath='Objects/unicodeobject.c' line='12337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ScanIdentifier'>
-      <parameter type-id='type-id-100' name='self' filepath='Objects/unicodeobject.c' line='12337' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyConfig_InitPathConfig' mangled-name='_PyConfig_InitPathConfig' filepath='./Include/internal/pycore_initconfig.h' line='152' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyPreCmdline_Clear' mangled-name='_PyPreCmdline_Clear' filepath='./Include/internal/pycore_initconfig.h' line='112' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PySys_ReadPreinitXOptions' mangled-name='_PySys_ReadPreinitXOptions' filepath='./Include/internal/pycore_pylifecycle.h' line='44' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_AppendAndDel' mangled-name='PyUnicode_AppendAndDel' filepath='Objects/unicodeobject.c' line='11609' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AppendAndDel'>
-      <parameter type-id='type-id-303' name='pv' filepath='Objects/bytesobject.c' line='2978' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/bytesobject.c' line='2978' column='1'/>
+    <function-decl name='_PyArgv_AsWstrList' mangled-name='_PyArgv_AsWstrList' filepath='./Include/internal/pycore_initconfig.h' line='71' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Append' mangled-name='PyUnicode_Append' filepath='Objects/unicodeobject.c' line='11528' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Append'>
-      <parameter type-id='type-id-303' name='p_left' filepath='Objects/unicodeobject.c' line='11528' column='1'/>
-      <parameter type-id='type-id-100' name='right' filepath='Objects/unicodeobject.c' line='11528' column='1'/>
+    <function-decl name='setvbuf' mangled-name='setvbuf' filepath='/usr/include/stdio.h' line='308' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Concat' mangled-name='PyUnicode_Concat' filepath='Objects/unicodeobject.c' line='11480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Concat'>
-      <parameter type-id='type-id-100' name='left' filepath='Objects/unicodeobject.c' line='11480' column='1'/>
-      <parameter type-id='type-id-100' name='right' filepath='Objects/unicodeobject.c' line='11480' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/marshal.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyMarshal_Init' mangled-name='PyMarshal_Init' filepath='Python/marshal.c' line='1812' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_Init'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyUnicode_Contains' mangled-name='PyUnicode_Contains' filepath='Objects/unicodeobject.c' line='11417' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Contains'>
-      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='11417' column='1'/>
-      <parameter type-id='type-id-100' name='substr' filepath='Objects/unicodeobject.c' line='11417' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyMarshal_WriteObjectToString' mangled-name='PyMarshal_WriteObjectToString' filepath='Python/marshal.c' line='1570' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_WriteObjectToString'>
+      <parameter type-id='type-id-100' name='x' filepath='Python/marshal.c' line='1570' column='1'/>
+      <parameter type-id='type-id-8' name='version' filepath='Python/marshal.c' line='1570' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyUnicode_EQ' mangled-name='_PyUnicode_EQ' filepath='Objects/unicodeobject.c' line='11411' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EQ'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyMarshal_ReadObjectFromString' mangled-name='PyMarshal_ReadObjectFromString' filepath='Python/marshal.c' line='1549' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_ReadObjectFromString'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/marshal.c' line='1549' column='1'/>
+      <parameter type-id='type-id-15' name='len' filepath='Python/marshal.c' line='1549' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyUnicode_RichCompare' mangled-name='PyUnicode_RichCompare' filepath='Objects/unicodeobject.c' line='11372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_RichCompare'>
-      <parameter type-id='type-id-100' name='left' filepath='Objects/unicodeobject.c' line='11372' column='1'/>
-      <parameter type-id='type-id-100' name='right' filepath='Objects/unicodeobject.c' line='11372' column='1'/>
-      <parameter type-id='type-id-8' name='op' filepath='Objects/unicodeobject.c' line='11372' column='1'/>
+    <function-decl name='PyMarshal_ReadObjectFromFile' mangled-name='PyMarshal_ReadObjectFromFile' filepath='Python/marshal.c' line='1529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_ReadObjectFromFile'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/marshal.c' line='1529' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyUnicode_EqualToASCIIId' mangled-name='_PyUnicode_EqualToASCIIId' filepath='Objects/unicodeobject.c' line='11327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EqualToASCIIId'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='857' column='1'/>
-      <parameter type-id='type-id-476' name='name' filepath='Objects/object.c' line='857' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyMarshal_ReadLastObjectFromFile' mangled-name='PyMarshal_ReadLastObjectFromFile' filepath='Python/marshal.c' line='1504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_ReadLastObjectFromFile'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/marshal.c' line='1504' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyUnicode_EqualToASCIIString' mangled-name='_PyUnicode_EqualToASCIIString' filepath='Objects/unicodeobject.c' line='11304' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EqualToASCIIString'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2246' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2246' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyMarshal_ReadLongFromFile' mangled-name='PyMarshal_ReadLongFromFile' filepath='Python/marshal.c' line='1468' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_ReadLongFromFile'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/marshal.c' line='1468' column='1'/>
+      <return type-id='type-id-12'/>
     </function-decl>
-    <function-decl name='PyUnicode_CompareWithASCIIString' mangled-name='PyUnicode_CompareWithASCIIString' filepath='Objects/unicodeobject.c' line='11225' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_CompareWithASCIIString'>
-      <parameter type-id='type-id-100' name='uni' filepath='Objects/unicodeobject.c' line='11225' column='1'/>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='11225' column='1'/>
+    <function-decl name='PyMarshal_ReadShortFromFile' mangled-name='PyMarshal_ReadShortFromFile' filepath='Python/marshal.c' line='1452' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_ReadShortFromFile'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/marshal.c' line='1452' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_Compare' mangled-name='PyUnicode_Compare' filepath='Objects/unicodeobject.c' line='11204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Compare'>
-      <parameter type-id='type-id-100' name='derived' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <parameter type-id='type-id-100' name='cls' filepath='Objects/abstract.c' line='2643' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyMarshal_WriteObjectToFile' mangled-name='PyMarshal_WriteObjectToFile' filepath='Python/marshal.c' line='595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_WriteObjectToFile'>
+      <parameter type-id='type-id-100' name='x' filepath='Python/marshal.c' line='595' column='1'/>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/marshal.c' line='595' column='1'/>
+      <parameter type-id='type-id-8' name='version' filepath='Python/marshal.c' line='595' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Splitlines' mangled-name='PyUnicode_Splitlines' filepath='Objects/unicodeobject.c' line='10390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Splitlines'>
-      <parameter type-id='type-id-100' name='string' filepath='Objects/unicodeobject.c' line='10390' column='1'/>
-      <parameter type-id='type-id-8' name='keepends' filepath='Objects/unicodeobject.c' line='10390' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyMarshal_WriteLongToFile' mangled-name='PyMarshal_WriteLongToFile' filepath='Python/marshal.c' line='580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_WriteLongToFile'>
+      <parameter type-id='type-id-12' name='x' filepath='Python/marshal.c' line='580' column='1'/>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/marshal.c' line='580' column='1'/>
+      <parameter type-id='type-id-8' name='version' filepath='Python/marshal.c' line='580' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Fill' mangled-name='PyUnicode_Fill' filepath='Objects/unicodeobject.c' line='10314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Fill'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='10314' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='10314' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/unicodeobject.c' line='10314' column='1'/>
-      <parameter type-id='type-id-474' name='fill_char' filepath='Objects/unicodeobject.c' line='10315' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_Py_hashtable_new_full' mangled-name='_Py_hashtable_new_full' filepath='./Include/internal/pycore_hashtable.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_FastFill' mangled-name='_PyUnicode_FastFill' filepath='Objects/unicodeobject.c' line='10300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FastFill'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='10300' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='10300' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/unicodeobject.c' line='10300' column='1'/>
-      <parameter type-id='type-id-474' name='fill_char' filepath='Objects/unicodeobject.c' line='10301' column='1'/>
+    <function-decl name='_Py_hashtable_set' mangled-name='_Py_hashtable_set' filepath='./Include/internal/pycore_hashtable.h' line='112' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_JoinArray' mangled-name='_PyUnicode_JoinArray' filepath='Objects/unicodeobject.c' line='10128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_JoinArray'>
-      <parameter type-id='type-id-100' name='separator' filepath='Objects/unicodeobject.c' line='10128' column='1'/>
-      <parameter type-id='type-id-190' name='items' filepath='Objects/unicodeobject.c' line='10128' column='1'/>
-      <parameter type-id='type-id-15' name='seqlen' filepath='Objects/unicodeobject.c' line='10128' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_hashtable_destroy' mangled-name='_Py_hashtable_destroy' filepath='./Include/internal/pycore_hashtable.h' line='92' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Join' mangled-name='PyUnicode_Join' filepath='Objects/unicodeobject.c' line='10104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Join'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1456' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1456' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='__fread_alias' mangled-name='fread' filepath='/usr/include/x86_64-linux-gnu/bits/stdio2.h' line='271' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Tailmatch' mangled-name='PyUnicode_Tailmatch' filepath='Objects/unicodeobject.c' line='9857' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Tailmatch'>
-      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='9857' column='1'/>
-      <parameter type-id='type-id-100' name='substr' filepath='Objects/unicodeobject.c' line='9858' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='9859' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='9860' column='1'/>
-      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='9861' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_Py_fstat_noraise' mangled-name='_Py_fstat_noraise' filepath='./Include/cpython/fileutils.h' line='78' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_FindChar' mangled-name='PyUnicode_FindChar' filepath='Objects/unicodeobject.c' line='9768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FindChar'>
-      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='9768' column='1'/>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodeobject.c' line='9768' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='9769' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='9769' column='1'/>
-      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='9770' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyFloat_Unpack8' mangled-name='_PyFloat_Unpack8' filepath='./Include/floatobject.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Find' mangled-name='PyUnicode_Find' filepath='Objects/unicodeobject.c' line='9755' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Find'>
-      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='9857' column='1'/>
-      <parameter type-id='type-id-100' name='substr' filepath='Objects/unicodeobject.c' line='9858' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='9859' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='9860' column='1'/>
-      <parameter type-id='type-id-8' name='direction' filepath='Objects/unicodeobject.c' line='9861' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyLong_FromByteArray' mangled-name='_PyLong_FromByteArray' filepath='./Include/longobject.h' line='149' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Count' mangled-name='PyUnicode_Count' filepath='Objects/unicodeobject.c' line='9681' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Count'>
-      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='9681' column='1'/>
-      <parameter type-id='type-id-100' name='substr' filepath='Objects/unicodeobject.c' line='9682' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='9683' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='9684' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyLong_New' mangled-name='_PyLong_New' filepath='./Include/longintrepr.h' line='90' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-474' size-in-bits='64' id='type-id-539'/>
-    <function-decl name='_PyUnicode_InsertThousandsGrouping' mangled-name='_PyUnicode_InsertThousandsGrouping' filepath='Objects/unicodeobject.c' line='9561' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_InsertThousandsGrouping'>
-      <parameter type-id='type-id-475' name='writer' filepath='Objects/unicodeobject.c' line='9562' column='1'/>
-      <parameter type-id='type-id-15' name='n_buffer' filepath='Objects/unicodeobject.c' line='9563' column='1'/>
-      <parameter type-id='type-id-100' name='digits' filepath='Objects/unicodeobject.c' line='9564' column='1'/>
-      <parameter type-id='type-id-15' name='d_pos' filepath='Objects/unicodeobject.c' line='9565' column='1'/>
-      <parameter type-id='type-id-15' name='n_digits' filepath='Objects/unicodeobject.c' line='9566' column='1'/>
-      <parameter type-id='type-id-15' name='min_width' filepath='Objects/unicodeobject.c' line='9567' column='1'/>
-      <parameter type-id='type-id-3' name='grouping' filepath='Objects/unicodeobject.c' line='9568' column='1'/>
-      <parameter type-id='type-id-100' name='thousands_sep' filepath='Objects/unicodeobject.c' line='9569' column='1'/>
-      <parameter type-id='type-id-539' name='maxchar' filepath='Objects/unicodeobject.c' line='9570' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyFloat_Pack8' mangled-name='_PyFloat_Pack8' filepath='./Include/floatobject.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_EncodeDecimal' mangled-name='PyUnicode_EncodeDecimal' filepath='Objects/unicodeobject.c' line='9372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeDecimal'>
-      <parameter type-id='type-id-470' name='s' filepath='Objects/unicodeobject.c' line='9372' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/unicodeobject.c' line='9373' column='1'/>
-      <parameter type-id='type-id-7' name='output' filepath='Objects/unicodeobject.c' line='9374' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9375' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyComplex_RealAsDouble' mangled-name='PyComplex_RealAsDouble' filepath='./Include/complexobject.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_TransformDecimalToASCII' mangled-name='PyUnicode_TransformDecimalToASCII' filepath='Objects/unicodeobject.c' line='9331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_TransformDecimalToASCII'>
-      <parameter type-id='type-id-470' name='s' filepath='Objects/unicodeobject.c' line='9331' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/unicodeobject.c' line='9332' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyComplex_ImagAsDouble' mangled-name='PyComplex_ImagAsDouble' filepath='./Include/complexobject.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_TransformDecimalAndSpaceToASCII' mangled-name='_PyUnicode_TransformDecimalAndSpaceToASCII' filepath='Objects/unicodeobject.c' line='9282' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_TransformDecimalAndSpaceToASCII'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='9282' column='1'/>
-      <return type-id='type-id-100'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/modsupport.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='_Py_PackageContext' type-id='type-id-3' mangled-name='_Py_PackageContext' visibility='default' filepath='./Include/modsupport.h' line='249' column='1' elf-symbol-id='_Py_PackageContext'/>
+    <function-decl name='PyModule_AddType' mangled-name='PyModule_AddType' filepath='Python/modsupport.c' line='687' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddType'>
+      <parameter type-id='type-id-100' name='module' filepath='Python/modsupport.c' line='687' column='1'/>
+      <parameter type-id='type-id-75' name='type' filepath='Python/modsupport.c' line='687' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_Translate' mangled-name='PyUnicode_Translate' filepath='Objects/unicodeobject.c' line='9272' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Translate'>
-      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='9272' column='1'/>
-      <parameter type-id='type-id-100' name='mapping' filepath='Objects/unicodeobject.c' line='9273' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9274' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyModule_AddStringConstant' mangled-name='PyModule_AddStringConstant' filepath='Python/modsupport.c' line='675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddStringConstant'>
+      <parameter type-id='type-id-100' name='m' filepath='Python/modsupport.c' line='675' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='675' column='1'/>
+      <parameter type-id='type-id-3' name='value' filepath='Python/modsupport.c' line='675' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_TranslateCharmap' mangled-name='PyUnicode_TranslateCharmap' filepath='Objects/unicodeobject.c' line='9257' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_TranslateCharmap'>
-      <parameter type-id='type-id-455' name='p' filepath='Objects/unicodeobject.c' line='9257' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='9258' column='1'/>
-      <parameter type-id='type-id-100' name='mapping' filepath='Objects/unicodeobject.c' line='9259' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9260' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyModule_AddIntConstant' mangled-name='PyModule_AddIntConstant' filepath='Python/modsupport.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddIntConstant'>
+      <parameter type-id='type-id-100' name='m' filepath='Python/modsupport.c' line='663' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='663' column='1'/>
+      <parameter type-id='type-id-12' name='value' filepath='Python/modsupport.c' line='663' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsCharmapString' mangled-name='PyUnicode_AsCharmapString' filepath='Objects/unicodeobject.c' line='8832' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsCharmapString'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyModule_AddObject' mangled-name='PyModule_AddObject' filepath='Python/modsupport.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddObject'>
+      <parameter type-id='type-id-100' name='m' filepath='Python/modsupport.c' line='634' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='634' column='1'/>
+      <parameter type-id='type-id-100' name='o' filepath='Python/modsupport.c' line='634' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_EncodeCharmap' mangled-name='PyUnicode_EncodeCharmap' filepath='Objects/unicodeobject.c' line='8817' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeCharmap'>
-      <parameter type-id='type-id-455' name='p' filepath='Objects/unicodeobject.c' line='9257' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='9258' column='1'/>
-      <parameter type-id='type-id-100' name='mapping' filepath='Objects/unicodeobject.c' line='9259' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='9260' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_VaBuildStack_SizeT' mangled-name='_Py_VaBuildStack_SizeT' filepath='Python/modsupport.c' line='578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_VaBuildStack_SizeT'>
+      <parameter type-id='type-id-303' name='small_stack' filepath='Python/modsupport.c' line='578' column='1'/>
+      <parameter type-id='type-id-15' name='small_stack_len' filepath='Python/modsupport.c' line='578' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/modsupport.c' line='579' column='1'/>
+      <parameter type-id='type-id-306' name='va' filepath='Python/modsupport.c' line='579' column='1'/>
+      <parameter type-id='type-id-158' name='p_nargs' filepath='Python/modsupport.c' line='579' column='1'/>
+      <return type-id='type-id-303'/>
     </function-decl>
-    <function-decl name='_PyUnicode_EncodeCharmap' mangled-name='_PyUnicode_EncodeCharmap' filepath='Objects/unicodeobject.c' line='8745' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeCharmap'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='8745' column='1'/>
-      <parameter type-id='type-id-100' name='mapping' filepath='Objects/unicodeobject.c' line='8746' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='8747' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_VaBuildStack' mangled-name='_Py_VaBuildStack' filepath='Python/modsupport.c' line='571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_VaBuildStack'>
+      <parameter type-id='type-id-303' name='small_stack' filepath='Python/modsupport.c' line='578' column='1'/>
+      <parameter type-id='type-id-15' name='small_stack_len' filepath='Python/modsupport.c' line='578' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/modsupport.c' line='579' column='1'/>
+      <parameter type-id='type-id-306' name='va' filepath='Python/modsupport.c' line='579' column='1'/>
+      <parameter type-id='type-id-158' name='p_nargs' filepath='Python/modsupport.c' line='579' column='1'/>
+      <return type-id='type-id-303'/>
     </function-decl>
-    <function-decl name='PyUnicode_BuildEncodingMap' mangled-name='PyUnicode_BuildEncodingMap' filepath='Objects/unicodeobject.c' line='8334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_BuildEncodingMap'>
-      <parameter type-id='type-id-100' name='string' filepath='Objects/unicodeobject.c' line='8334' column='1'/>
+    <function-decl name='_Py_VaBuildValue_SizeT' mangled-name='_Py_VaBuildValue_SizeT' filepath='Python/modsupport.c' line='542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_VaBuildValue_SizeT'>
+      <parameter type-id='type-id-3' name='format' filepath='Python/modsupport.c' line='542' column='1'/>
+      <parameter type-id='type-id-306' name='va' filepath='Python/modsupport.c' line='542' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeCharmap' mangled-name='PyUnicode_DecodeCharmap' filepath='Objects/unicodeobject.c' line='8233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeCharmap'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='8233' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='8234' column='1'/>
-      <parameter type-id='type-id-100' name='mapping' filepath='Objects/unicodeobject.c' line='8235' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='8236' column='1'/>
+    <function-decl name='Py_VaBuildValue' mangled-name='Py_VaBuildValue' filepath='Python/modsupport.c' line='536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_VaBuildValue'>
+      <parameter type-id='type-id-3' name='format' filepath='Python/modsupport.c' line='542' column='1'/>
+      <parameter type-id='type-id-306' name='va' filepath='Python/modsupport.c' line='542' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsASCIIString' mangled-name='PyUnicode_AsASCIIString' filepath='Objects/unicodeobject.c' line='7284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsASCIIString'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
+    <function-decl name='_Py_BuildValue_SizeT' mangled-name='_Py_BuildValue_SizeT' filepath='Python/modsupport.c' line='525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_BuildValue_SizeT'>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/bytesobject.c' line='357' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyUnicode_AsASCIIString' mangled-name='_PyUnicode_AsASCIIString' filepath='Objects/unicodeobject.c' line='7267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsASCIIString'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='7267' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7267' column='1'/>
+    <function-decl name='Py_BuildValue' mangled-name='Py_BuildValue' filepath='Python/modsupport.c' line='514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_BuildValue'>
+      <parameter type-id='type-id-3' name='format' filepath='Objects/bytesobject.c' line='357' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyUnicode_EncodeASCII' mangled-name='PyUnicode_EncodeASCII' filepath='Objects/unicodeobject.c' line='7253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeASCII'>
-      <parameter type-id='type-id-455' name='p' filepath='Objects/unicodeobject.c' line='7253' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='7254' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7255' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_convert_optional_to_ssize_t' mangled-name='_Py_convert_optional_to_ssize_t' filepath='Python/modsupport.c' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_convert_optional_to_ssize_t'>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/modsupport.c' line='18' column='1'/>
+      <parameter type-id='type-id-32' name='result' filepath='Python/modsupport.c' line='18' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeASCII' mangled-name='PyUnicode_DecodeASCII' filepath='Objects/unicodeobject.c' line='7154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeASCII'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='7154' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='7155' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7156' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyModule_GetName' mangled-name='PyModule_GetName' filepath='./Include/moduleobject.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsLatin1String' mangled-name='PyUnicode_AsLatin1String' filepath='Objects/unicodeobject.c' line='7146' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsLatin1String'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/mysnprintf.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyOS_vsnprintf' mangled-name='PyOS_vsnprintf' filepath='Python/mysnprintf.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_vsnprintf'>
+      <parameter type-id='type-id-7' name='str' filepath='Python/mysnprintf.c' line='55' column='1'/>
+      <parameter type-id='type-id-191' name='size' filepath='Python/mysnprintf.c' line='55' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/mysnprintf.c' line='55' column='1'/>
+      <parameter type-id='type-id-306' name='va' filepath='Python/mysnprintf.c' line='55' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyUnicode_AsLatin1String' mangled-name='_PyUnicode_AsLatin1String' filepath='Objects/unicodeobject.c' line='7127' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsLatin1String'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='7267' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7267' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyOS_snprintf' mangled-name='PyOS_snprintf' filepath='Python/mysnprintf.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_snprintf'>
+      <parameter type-id='type-id-7' name='str' filepath='Python/mysnprintf.c' line='43' column='1'/>
+      <parameter type-id='type-id-191' name='size' filepath='Python/mysnprintf.c' line='43' column='1'/>
+      <parameter type-id='type-id-3' name='format' filepath='Python/mysnprintf.c' line='43' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_EncodeLatin1' mangled-name='PyUnicode_EncodeLatin1' filepath='Objects/unicodeobject.c' line='7113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeLatin1'>
-      <parameter type-id='type-id-455' name='p' filepath='Objects/unicodeobject.c' line='7253' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='7254' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7255' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='__builtin___vsnprintf_chk' mangled-name='__vsnprintf_chk' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeLatin1' mangled-name='PyUnicode_DecodeLatin1' filepath='Objects/unicodeobject.c' line='6830' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeLatin1'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6830' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6831' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6832' column='1'/>
-      <return type-id='type-id-100'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/mystrtoul.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyOS_strtol' mangled-name='PyOS_strtol' filepath='Python/mystrtoul.c' line='263' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_strtol'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/mystrtoul.c' line='263' column='1'/>
+      <parameter type-id='type-id-304' name='ptr' filepath='Python/mystrtoul.c' line='263' column='1'/>
+      <parameter type-id='type-id-8' name='base' filepath='Python/mystrtoul.c' line='263' column='1'/>
+      <return type-id='type-id-12'/>
     </function-decl>
-    <function-decl name='PyUnicode_EncodeRawUnicodeEscape' mangled-name='PyUnicode_EncodeRawUnicodeEscape' filepath='Objects/unicodeobject.c' line='6815' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeRawUnicodeEscape'>
-      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='6815' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6816' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyOS_strtoul' mangled-name='PyOS_strtoul' filepath='Python/mystrtoul.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_strtoul'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/mystrtoul.c' line='95' column='1'/>
+      <parameter type-id='type-id-304' name='ptr' filepath='Python/mystrtoul.c' line='95' column='1'/>
+      <parameter type-id='type-id-8' name='base' filepath='Python/mystrtoul.c' line='95' column='1'/>
+      <return type-id='type-id-33'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsRawUnicodeEscapeString' mangled-name='PyUnicode_AsRawUnicodeEscapeString' filepath='Objects/unicodeobject.c' line='6736' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsRawUnicodeEscapeString'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='6736' column='1'/>
-      <return type-id='type-id-100'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/pathconfig.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='_PyPathConfig' size-in-bits='384' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='11' column='1' id='type-id-605'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='program_full_path' type-id='type-id-403' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='13' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='prefix' type-id='type-id-403' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='14' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='exec_prefix' type-id='type-id-403' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='15' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='module_search_path' type-id='type-id-403' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='17' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='program_name' type-id='type-id-403' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='19' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='home' type-id='type-id-403' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='21' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='_PyPathConfig' type-id='type-id-605' filepath='./Include/internal/pycore_pathconfig.h' line='31' column='1' id='type-id-606'/>
+    <var-decl name='_Py_path_config' type-id='type-id-606' mangled-name='_Py_path_config' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='44' column='1' elf-symbol-id='_Py_path_config'/>
+    <function-decl name='Py_GetProgramName' mangled-name='Py_GetProgramName' filepath='Python/pathconfig.c' line='588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetProgramName'>
+      <return type-id='type-id-403'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeRawUnicodeEscape' mangled-name='PyUnicode_DecodeRawUnicodeEscape' filepath='Objects/unicodeobject.c' line='6617' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeRawUnicodeEscape'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6617' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6618' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6619' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_GetPythonHome' mangled-name='Py_GetPythonHome' filepath='Python/pathconfig.c' line='580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPythonHome'>
+      <return type-id='type-id-403'/>
     </function-decl>
-    <function-decl name='PyUnicode_EncodeUnicodeEscape' mangled-name='PyUnicode_EncodeUnicodeEscape' filepath='Objects/unicodeobject.c' line='6600' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUnicodeEscape'>
-      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='6815' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6816' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_GetProgramFullPath' mangled-name='Py_GetProgramFullPath' filepath='Python/pathconfig.c' line='572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetProgramFullPath'>
+      <return type-id='type-id-403'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsUnicodeEscapeString' mangled-name='PyUnicode_AsUnicodeEscapeString' filepath='Objects/unicodeobject.c' line='6482' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUnicodeEscapeString'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='6736' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_GetExecPrefix' mangled-name='Py_GetExecPrefix' filepath='Python/pathconfig.c' line='564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetExecPrefix'>
+      <return type-id='type-id-403'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeUnicodeEscape' mangled-name='PyUnicode_DecodeUnicodeEscape' filepath='Objects/unicodeobject.c' line='6459' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUnicodeEscape'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6459' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6460' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6461' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_GetPrefix' mangled-name='Py_GetPrefix' filepath='Python/pathconfig.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPrefix'>
+      <return type-id='type-id-403'/>
     </function-decl>
-    <function-decl name='_PyUnicode_DecodeUnicodeEscape' mangled-name='_PyUnicode_DecodeUnicodeEscape' filepath='Objects/unicodeobject.c' line='6234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_DecodeUnicodeEscape'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6234' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6235' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6236' column='1'/>
-      <parameter type-id='type-id-286' name='first_invalid_escape' filepath='Objects/unicodeobject.c' line='6237' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_GetPath' mangled-name='Py_GetPath' filepath='Python/pathconfig.c' line='548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPath'>
+      <return type-id='type-id-403'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsUTF16String' mangled-name='PyUnicode_AsUTF16String' filepath='Objects/unicodeobject.c' line='6224' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF16String'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_SetProgramFullPath' mangled-name='_Py_SetProgramFullPath' filepath='Python/pathconfig.c' line='527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_SetProgramFullPath'>
+      <parameter type-id='type-id-501' name='program_full_path' filepath='Python/pathconfig.c' line='527' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_EncodeUTF16' mangled-name='PyUnicode_EncodeUTF16' filepath='Objects/unicodeobject.c' line='6209' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUTF16'>
-      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='6209' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6210' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6211' column='1'/>
-      <parameter type-id='type-id-8' name='byteorder' filepath='Objects/unicodeobject.c' line='6212' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_SetProgramName' mangled-name='Py_SetProgramName' filepath='Python/pathconfig.c' line='507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetProgramName'>
+      <parameter type-id='type-id-501' name='program_full_path' filepath='Python/pathconfig.c' line='527' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_EncodeUTF16' mangled-name='_PyUnicode_EncodeUTF16' filepath='Objects/unicodeobject.c' line='6043' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeUTF16'>
-      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='6043' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6044' column='1'/>
-      <parameter type-id='type-id-8' name='byteorder' filepath='Objects/unicodeobject.c' line='6045' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_SetPythonHome' mangled-name='Py_SetPythonHome' filepath='Python/pathconfig.c' line='486' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetPythonHome'>
+      <parameter type-id='type-id-501' name='program_full_path' filepath='Python/pathconfig.c' line='527' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeUTF16Stateful' mangled-name='PyUnicode_DecodeUTF16Stateful' filepath='Objects/unicodeobject.c' line='5888' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF16Stateful'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='5888' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='5889' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5890' column='1'/>
-      <parameter type-id='type-id-227' name='byteorder' filepath='Objects/unicodeobject.c' line='5891' column='1'/>
-      <parameter type-id='type-id-158' name='consumed' filepath='Objects/unicodeobject.c' line='5892' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_SetPath' mangled-name='Py_SetPath' filepath='Python/pathconfig.c' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetPath'>
+      <parameter type-id='type-id-501' name='path' filepath='Python/pathconfig.c' line='450' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeUTF16' mangled-name='PyUnicode_DecodeUTF16' filepath='Objects/unicodeobject.c' line='5879' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF16'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='5879' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='5880' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5881' column='1'/>
-      <parameter type-id='type-id-227' name='byteorder' filepath='Objects/unicodeobject.c' line='5882' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_DecodeUTF8_surrogateescape' mangled-name='_Py_DecodeUTF8_surrogateescape' filepath='./Include/internal/pycore_fileutils.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsUTF32String' mangled-name='PyUnicode_AsUTF32String' filepath='Objects/unicodeobject.c' line='5871' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF32String'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='__wcsncpy_alias' mangled-name='wcsncpy' filepath='/usr/include/x86_64-linux-gnu/bits/wchar2.h' line='179' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_EncodeUTF32' mangled-name='PyUnicode_EncodeUTF32' filepath='Objects/unicodeobject.c' line='5856' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUTF32'>
-      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='6209' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6210' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6211' column='1'/>
-      <parameter type-id='type-id-8' name='byteorder' filepath='Objects/unicodeobject.c' line='6212' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='wcsrchr' mangled-name='wcsrchr' filepath='/usr/include/wchar.h' line='174' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_EncodeUTF32' mangled-name='_PyUnicode_EncodeUTF32' filepath='Objects/unicodeobject.c' line='5709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeUTF32'>
-      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='5709' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5710' column='1'/>
-      <parameter type-id='type-id-8' name='byteorder' filepath='Objects/unicodeobject.c' line='5711' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_wgetcwd' mangled-name='_Py_wgetcwd' filepath='./Include/cpython/fileutils.h' line='145' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeUTF32Stateful' mangled-name='PyUnicode_DecodeUTF32Stateful' filepath='Objects/unicodeobject.c' line='5564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF32Stateful'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='5564' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='5565' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5566' column='1'/>
-      <parameter type-id='type-id-227' name='byteorder' filepath='Objects/unicodeobject.c' line='5567' column='1'/>
-      <parameter type-id='type-id-158' name='consumed' filepath='Objects/unicodeobject.c' line='5568' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_wreadlink' mangled-name='_Py_wreadlink' filepath='./Include/cpython/fileutils.h' line='122' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeUTF32' mangled-name='PyUnicode_DecodeUTF32' filepath='Objects/unicodeobject.c' line='5555' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF32'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='5879' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='5880' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5881' column='1'/>
-      <parameter type-id='type-id-227' name='byteorder' filepath='Objects/unicodeobject.c' line='5882' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_wrealpath' mangled-name='_Py_wrealpath' filepath='./Include/cpython/fileutils.h' line='131' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsUTF8String' mangled-name='PyUnicode_AsUTF8String' filepath='Objects/unicodeobject.c' line='5547' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF8String'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyPathConfig_Calculate' mangled-name='_PyPathConfig_Calculate' filepath='./Include/internal/pycore_pathconfig.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_EncodeUTF8' mangled-name='PyUnicode_EncodeUTF8' filepath='Objects/unicodeobject.c' line='5532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUTF8'>
-      <parameter type-id='type-id-455' name='p' filepath='Objects/unicodeobject.c' line='7253' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='7254' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7255' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyWideStringList_Append' mangled-name='PyWideStringList_Append' filepath='./Include/cpython/initconfig.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_AsUTF8String' mangled-name='_PyUnicode_AsUTF8String' filepath='Objects/unicodeobject.c' line='5525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsUTF8String'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='7267' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7267' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyWideStringList_Clear' mangled-name='_PyWideStringList_Clear' filepath='./Include/internal/pycore_initconfig.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-191' size-in-bits='64' id='type-id-540'/>
-    <function-decl name='_Py_EncodeUTF8Ex' mangled-name='_Py_EncodeUTF8Ex' filepath='Objects/unicodeobject.c' line='5295' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_EncodeUTF8Ex'>
-      <parameter type-id='type-id-501' name='text' filepath='Objects/unicodeobject.c' line='5295' column='1'/>
-      <parameter type-id='type-id-304' name='str' filepath='Objects/unicodeobject.c' line='5295' column='1'/>
-      <parameter type-id='type-id-540' name='error_pos' filepath='Objects/unicodeobject.c' line='5295' column='1'/>
-      <parameter type-id='type-id-286' name='reason' filepath='Objects/unicodeobject.c' line='5296' column='1'/>
-      <parameter type-id='type-id-8' name='raw_malloc' filepath='Objects/unicodeobject.c' line='5296' column='1'/>
-      <parameter type-id='type-id-400' name='errors' filepath='Objects/unicodeobject.c' line='5296' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_Py_DecodeUTF8_surrogateescape' mangled-name='_Py_DecodeUTF8_surrogateescape' filepath='Objects/unicodeobject.c' line='5265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_DecodeUTF8_surrogateescape'>
-      <parameter type-id='type-id-3' name='arg' filepath='Objects/unicodeobject.c' line='5265' column='1'/>
-      <parameter type-id='type-id-15' name='arglen' filepath='Objects/unicodeobject.c' line='5265' column='1'/>
-      <parameter type-id='type-id-540' name='wlen' filepath='Objects/unicodeobject.c' line='5266' column='1'/>
-      <return type-id='type-id-403'/>
+    <function-decl name='_PyConfig_InitCompatConfig' mangled-name='_PyConfig_InitCompatConfig' filepath='./Include/internal/pycore_initconfig.h' line='148' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_DecodeUTF8Ex' mangled-name='_Py_DecodeUTF8Ex' filepath='Objects/unicodeobject.c' line='5156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_DecodeUTF8Ex'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='5156' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='5156' column='1'/>
-      <parameter type-id='type-id-407' name='wstr' filepath='Objects/unicodeobject.c' line='5156' column='1'/>
-      <parameter type-id='type-id-540' name='wlen' filepath='Objects/unicodeobject.c' line='5156' column='1'/>
-      <parameter type-id='type-id-286' name='reason' filepath='Objects/unicodeobject.c' line='5157' column='1'/>
-      <parameter type-id='type-id-400' name='errors' filepath='Objects/unicodeobject.c' line='5157' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyConfig_Read' mangled-name='PyConfig_Read' filepath='./Include/cpython/initconfig.h' line='438' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeUTF8Stateful' mangled-name='PyUnicode_DecodeUTF8Stateful' filepath='Objects/unicodeobject.c' line='5134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF8Stateful'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='5134' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='5135' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='5136' column='1'/>
-      <parameter type-id='type-id-158' name='consumed' filepath='Objects/unicodeobject.c' line='5137' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/peephole.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyCode_Optimize' mangled-name='PyCode_Optimize' filepath='Python/peephole.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_Optimize'>
+      <parameter type-id='type-id-100' name='code' filepath='Python/peephole.c' line='230' column='1'/>
+      <parameter type-id='type-id-100' name='consts' filepath='Python/peephole.c' line='230' column='1'/>
+      <parameter type-id='type-id-100' name='names' filepath='Python/peephole.c' line='230' column='1'/>
+      <parameter type-id='type-id-100' name='lnotab_obj' filepath='Python/peephole.c' line='231' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeUTF8' mangled-name='PyUnicode_DecodeUTF8' filepath='Objects/unicodeobject.c' line='4890' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF8'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6830' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6831' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6832' column='1'/>
-      <return type-id='type-id-100'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/preconfig.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='Py_FileSystemDefaultEncoding' type-id='type-id-3' mangled-name='Py_FileSystemDefaultEncoding' visibility='default' filepath='./Include/fileobject.h' line='22' column='1' elf-symbol-id='Py_FileSystemDefaultEncoding'/>
+    <var-decl name='Py_HasFileSystemDefaultEncoding' type-id='type-id-8' mangled-name='Py_HasFileSystemDefaultEncoding' visibility='default' filepath='./Include/fileobject.h' line='26' column='1' elf-symbol-id='Py_HasFileSystemDefaultEncoding'/>
+    <var-decl name='Py_FileSystemDefaultEncodeErrors' type-id='type-id-3' mangled-name='Py_FileSystemDefaultEncodeErrors' visibility='default' filepath='./Include/fileobject.h' line='24' column='1' elf-symbol-id='Py_FileSystemDefaultEncodeErrors'/>
+    <function-decl name='_Py_get_xoption' mangled-name='_Py_get_xoption' filepath='Python/preconfig.c' line='566' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_xoption'>
+      <parameter type-id='type-id-604' name='xoptions' filepath='Python/preconfig.c' line='566' column='1'/>
+      <parameter type-id='type-id-501' name='name' filepath='Python/preconfig.c' line='566' column='1'/>
+      <return type-id='type-id-501'/>
     </function-decl>
-    <function-decl name='PyUnicode_EncodeUTF7' mangled-name='PyUnicode_EncodeUTF7' filepath='Objects/unicodeobject.c' line='4865' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeUTF7'>
-      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='4865' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='4866' column='1'/>
-      <parameter type-id='type-id-8' name='base64SetO' filepath='Objects/unicodeobject.c' line='4867' column='1'/>
-      <parameter type-id='type-id-8' name='base64WhiteSpace' filepath='Objects/unicodeobject.c' line='4868' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='4869' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_get_env_flag' mangled-name='_Py_get_env_flag' filepath='Python/preconfig.c' line='548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_env_flag'>
+      <parameter type-id='type-id-8' name='use_environment' filepath='Python/preconfig.c' line='548' column='1'/>
+      <parameter type-id='type-id-227' name='flag' filepath='Python/preconfig.c' line='548' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/preconfig.c' line='548' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_str_to_int' mangled-name='_Py_str_to_int' filepath='Python/preconfig.c' line='530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_str_to_int'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/preconfig.c' line='530' column='1'/>
+      <parameter type-id='type-id-227' name='result' filepath='Python/preconfig.c' line='530' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyUnicode_EncodeUTF7' mangled-name='_PyUnicode_EncodeUTF7' filepath='Objects/unicodeobject.c' line='4764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_EncodeUTF7'>
-      <parameter type-id='type-id-100' name='str' filepath='Objects/unicodeobject.c' line='4764' column='1'/>
-      <parameter type-id='type-id-8' name='base64SetO' filepath='Objects/unicodeobject.c' line='4765' column='1'/>
-      <parameter type-id='type-id-8' name='base64WhiteSpace' filepath='Objects/unicodeobject.c' line='4766' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='4767' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_GetEnv' mangled-name='_Py_GetEnv' filepath='Python/preconfig.c' line='511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetEnv'>
+      <parameter type-id='type-id-8' name='use_environment' filepath='Python/preconfig.c' line='511' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/preconfig.c' line='511' column='1'/>
+      <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeUTF7Stateful' mangled-name='PyUnicode_DecodeUTF7Stateful' filepath='Objects/unicodeobject.c' line='4566' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF7Stateful'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='4566' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='4567' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='4568' column='1'/>
-      <parameter type-id='type-id-158' name='consumed' filepath='Objects/unicodeobject.c' line='4569' column='1'/>
-      <return type-id='type-id-100'/>
+    <pointer-type-def type-id='type-id-334' size-in-bits='64' id='type-id-607'/>
+    <function-decl name='PyPreConfig_InitIsolatedConfig' mangled-name='PyPreConfig_InitIsolatedConfig' filepath='Python/preconfig.c' line='323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPreConfig_InitIsolatedConfig'>
+      <parameter type-id='type-id-607' name='config' filepath='Python/preconfig.c' line='323' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeUTF7' mangled-name='PyUnicode_DecodeUTF7' filepath='Objects/unicodeobject.c' line='4551' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeUTF7'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='6830' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='6831' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='6832' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyPreConfig_InitPythonConfig' mangled-name='PyPreConfig_InitPythonConfig' filepath='Python/preconfig.c' line='302' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPreConfig_InitPythonConfig'>
+      <parameter type-id='type-id-607' name='config' filepath='Python/preconfig.c' line='323' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_GetDefaultEncoding' mangled-name='PyUnicode_GetDefaultEncoding' filepath='Objects/unicodeobject.c' line='4208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_GetDefaultEncoding'>
-      <return type-id='type-id-3'/>
+    <function-decl name='_PyPreConfig_InitCompatConfig' mangled-name='_PyPreConfig_InitCompatConfig' filepath='Python/preconfig.c' line='274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyPreConfig_InitCompatConfig'>
+      <parameter type-id='type-id-607' name='config' filepath='Python/preconfig.c' line='274' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_WriteChar' mangled-name='PyUnicode_WriteChar' filepath='Objects/unicodeobject.c' line='4185' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_WriteChar'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4185' column='1'/>
-      <parameter type-id='type-id-15' name='index' filepath='Objects/unicodeobject.c' line='4185' column='1'/>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodeobject.c' line='4185' column='1'/>
-      <return type-id='type-id-8'/>
+    <class-decl name='_PyArgv' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='64' column='1' id='type-id-608'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='argc' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='use_bytes_argv' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='bytes_argv' type-id='type-id-280' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='wchar_argv' type-id='type-id-601' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='68' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='_PyArgv' type-id='type-id-608' filepath='./Include/internal/pycore_initconfig.h' line='69' column='1' id='type-id-609'/>
+    <qualified-type-def type-id='type-id-609' const='yes' id='type-id-610'/>
+    <pointer-type-def type-id='type-id-610' size-in-bits='64' id='type-id-611'/>
+    <function-decl name='_PyArgv_AsWstrList' mangled-name='_PyArgv_AsWstrList' filepath='Python/preconfig.c' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArgv_AsWstrList'>
+      <parameter type-id='type-id-611' name='args' filepath='Python/preconfig.c' line='77' column='1'/>
+      <parameter type-id='type-id-599' name='list' filepath='Python/preconfig.c' line='77' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='PyUnicode_ReadChar' mangled-name='PyUnicode_ReadChar' filepath='Objects/unicodeobject.c' line='4163' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_ReadChar'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4163' column='1'/>
-      <parameter type-id='type-id-15' name='index' filepath='Objects/unicodeobject.c' line='4163' column='1'/>
-      <return type-id='type-id-474'/>
+    <function-decl name='_Py_SetLocaleFromEnv' mangled-name='_Py_SetLocaleFromEnv' filepath='./Include/cpython/pylifecycle.h' line='66' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_GetLength' mangled-name='PyUnicode_GetLength' filepath='Objects/unicodeobject.c' line='4151' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_GetLength'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2203' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PyMem_SetupAllocators' mangled-name='_PyMem_SetupAllocators' filepath='./Include/internal/pycore_pymem.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_GetSize' mangled-name='PyUnicode_GetSize' filepath='Objects/unicodeobject.c' line='4132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_GetSize'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4132' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_Py_CoerceLegacyLocale' mangled-name='_Py_CoerceLegacyLocale' filepath='./Include/cpython/pylifecycle.h' line='64' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_AsUnicode' mangled-name='_PyUnicode_AsUnicode' filepath='Objects/unicodeobject.c' line='4117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_AsUnicode'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4117' column='1'/>
-      <return type-id='type-id-455'/>
+    <function-decl name='_Py_LegacyLocaleDetected' mangled-name='_Py_LegacyLocaleDetected' filepath='./Include/cpython/pylifecycle.h' line='65' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsUnicode' mangled-name='PyUnicode_AsUnicode' filepath='Objects/unicodeobject.c' line='4111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUnicode'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4111' column='1'/>
-      <return type-id='type-id-470'/>
+    <function-decl name='_PyMem_GetAllocatorName' mangled-name='_PyMem_GetAllocatorName' filepath='./Include/internal/pycore_pymem.h' line='63' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsUnicodeAndSize' mangled-name='PyUnicode_AsUnicodeAndSize' filepath='Objects/unicodeobject.c' line='4072' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUnicodeAndSize'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4072' column='1'/>
-      <parameter type-id='type-id-158' name='size' filepath='Objects/unicodeobject.c' line='4072' column='1'/>
-      <return type-id='type-id-470'/>
+    <function-decl name='wcsncmp' mangled-name='wcsncmp' filepath='/usr/include/wchar.h' line='109' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsUTF8' mangled-name='PyUnicode_AsUTF8' filepath='Objects/unicodeobject.c' line='4066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF8'>
-      <parameter type-id='type-id-100' name='ob' filepath='Objects/exceptions.c' line='365' column='1'/>
-      <return type-id='type-id-3'/>
+    <function-decl name='_PyWideStringList_Extend' mangled-name='_PyWideStringList_Extend' filepath='./Include/internal/pycore_initconfig.h' line='57' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsUTF8AndSize' mangled-name='PyUnicode_AsUTF8AndSize' filepath='Objects/unicodeobject.c' line='4045' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUTF8AndSize'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='4045' column='1'/>
-      <parameter type-id='type-id-158' name='psize' filepath='Objects/unicodeobject.c' line='4045' column='1'/>
-      <return type-id='type-id-3'/>
+    <function-decl name='_PyWideStringList_Copy' mangled-name='_PyWideStringList_Copy' filepath='./Include/internal/pycore_initconfig.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_FSDecoder' mangled-name='PyUnicode_FSDecoder' filepath='Objects/unicodeobject.c' line='3972' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FSDecoder'>
-      <parameter type-id='type-id-100' name='arg' filepath='Objects/unicodeobject.c' line='3972' column='1'/>
-      <parameter type-id='type-id-32' name='addr' filepath='Objects/unicodeobject.c' line='3972' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/pyarena.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='_arena' size-in-bits='192' is-struct='yes' visibility='default' filepath='Python/pyarena.c' line='45' column='1' id='type-id-228'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='a_head' type-id='type-id-612' visibility='default' filepath='Python/pyarena.c' line='50' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='a_cur' type-id='type-id-612' visibility='default' filepath='Python/pyarena.c' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='a_objects' type-id='type-id-100' visibility='default' filepath='Python/pyarena.c' line='63' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_block' size-in-bits='256' is-struct='yes' visibility='default' filepath='Python/pyarena.c' line='16' column='1' id='type-id-613'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ab_size' type-id='type-id-191' visibility='default' filepath='Python/pyarena.c' line='21' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='ab_offset' type-id='type-id-191' visibility='default' filepath='Python/pyarena.c' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ab_next' type-id='type-id-614' visibility='default' filepath='Python/pyarena.c' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='ab_mem' type-id='type-id-32' visibility='default' filepath='Python/pyarena.c' line='37' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-613' size-in-bits='64' id='type-id-614'/>
+    <typedef-decl name='block' type-id='type-id-613' filepath='Python/pyarena.c' line='38' column='1' id='type-id-615'/>
+    <pointer-type-def type-id='type-id-615' size-in-bits='64' id='type-id-612'/>
+    <function-decl name='PyArena_AddPyObject' mangled-name='PyArena_AddPyObject' filepath='Python/pyarena.c' line='203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArena_AddPyObject'>
+      <parameter type-id='type-id-230' name='arena' filepath='Python/pyarena.c' line='203' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/pyarena.c' line='203' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_FSConverter' mangled-name='PyUnicode_FSConverter' filepath='Objects/unicodeobject.c' line='3932' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FSConverter'>
-      <parameter type-id='type-id-100' name='arg' filepath='Objects/unicodeobject.c' line='3932' column='1'/>
-      <parameter type-id='type-id-32' name='addr' filepath='Objects/unicodeobject.c' line='3932' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyArena_Malloc' mangled-name='PyArena_Malloc' filepath='Python/pyarena.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArena_Malloc'>
+      <parameter type-id='type-id-230' name='arena' filepath='Python/pyarena.c' line='180' column='1'/>
+      <parameter type-id='type-id-191' name='size' filepath='Python/pyarena.c' line='180' column='1'/>
+      <return type-id='type-id-32'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeFSDefaultAndSize' mangled-name='PyUnicode_DecodeFSDefaultAndSize' filepath='Objects/unicodeobject.c' line='3896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeFSDefaultAndSize'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='3896' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='3896' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyArena_Free' mangled-name='PyArena_Free' filepath='Python/pyarena.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArena_Free'>
+      <parameter type-id='type-id-230' name='arena' filepath='Python/pyarena.c' line='157' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeFSDefault' mangled-name='PyUnicode_DecodeFSDefault' filepath='Objects/unicodeobject.c' line='3890' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeFSDefault'>
-      <parameter type-id='type-id-3' name='cp' filepath='Objects/unicodeobject.c' line='15647' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyArena_New' mangled-name='PyArena_New' filepath='Python/pyarena.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArena_New'>
+      <return type-id='type-id-230'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeLocale' mangled-name='PyUnicode_DecodeLocale' filepath='Objects/unicodeobject.c' line='3881' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeLocale'>
-      <parameter type-id='type-id-3' name='name' filepath='Objects/typeobject.c' line='199' column='1'/>
-      <parameter type-id='type-id-3' name='internal_doc' filepath='Objects/typeobject.c' line='199' column='1'/>
-      <return type-id='type-id-100'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/pyctype.c' comp-dir-path='/src' language='LANG_C99'>
+    <qualified-type-def type-id='type-id-107' const='yes' id='type-id-616'/>
+
+    <array-type-def dimensions='1' type-id='type-id-616' size-in-bits='8192' id='type-id-617'>
+      <subrange length='256' type-id='type-id-33' id='type-id-469'/>
+
+    </array-type-def>
+    <qualified-type-def type-id='type-id-617' const='yes' id='type-id-618'/>
+    <var-decl name='_Py_ctype_table' type-id='type-id-618' mangled-name='_Py_ctype_table' visibility='default' filepath='./Include/pyctype.h' line='16' column='1' elf-symbol-id='_Py_ctype_table'/>
+
+    <array-type-def dimensions='1' type-id='type-id-459' size-in-bits='2048' id='type-id-619'>
+      <subrange length='256' type-id='type-id-33' id='type-id-469'/>
+
+    </array-type-def>
+    <qualified-type-def type-id='type-id-619' const='yes' id='type-id-620'/>
+    <var-decl name='_Py_ctype_tolower' type-id='type-id-620' mangled-name='_Py_ctype_tolower' visibility='default' filepath='./Include/pyctype.h' line='29' column='1' elf-symbol-id='_Py_ctype_tolower'/>
+    <var-decl name='_Py_ctype_toupper' type-id='type-id-620' mangled-name='_Py_ctype_toupper' visibility='default' filepath='./Include/pyctype.h' line='30' column='1' elf-symbol-id='_Py_ctype_toupper'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/pyhash.c' comp-dir-path='/src' language='LANG_C99'>
+    <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='./Include/pyhash.h' line='56' column='1' id='type-id-621'>
+      <data-member access='private'>
+        <var-decl name='uc' type-id='type-id-622' visibility='default' filepath='./Include/pyhash.h' line='58' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='fnv' type-id='type-id-623' visibility='default' filepath='./Include/pyhash.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='siphash' type-id='type-id-624' visibility='default' filepath='./Include/pyhash.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='djbx33a' type-id='type-id-625' visibility='default' filepath='./Include/pyhash.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='private'>
+        <var-decl name='expat' type-id='type-id-626' visibility='default' filepath='./Include/pyhash.h' line='77' column='1'/>
+      </data-member>
+    </union-decl>
+
+    <array-type-def dimensions='1' type-id='type-id-418' size-in-bits='192' id='type-id-622'>
+      <subrange length='24' type-id='type-id-33' id='type-id-627'/>
+
+    </array-type-def>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/pyhash.h' line='60' column='1' id='type-id-623'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='prefix' type-id='type-id-150' visibility='default' filepath='./Include/pyhash.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='suffix' type-id='type-id-150' visibility='default' filepath='./Include/pyhash.h' line='62' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/pyhash.h' line='65' column='1' id='type-id-624'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='k0' type-id='type-id-238' visibility='default' filepath='./Include/pyhash.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='k1' type-id='type-id-238' visibility='default' filepath='./Include/pyhash.h' line='67' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/pyhash.h' line='70' column='1' id='type-id-625'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='padding' type-id='type-id-628' visibility='default' filepath='./Include/pyhash.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='suffix' type-id='type-id-150' visibility='default' filepath='./Include/pyhash.h' line='72' column='1'/>
+      </data-member>
+    </class-decl>
+
+    <array-type-def dimensions='1' type-id='type-id-418' size-in-bits='128' id='type-id-628'>
+      <subrange length='16' type-id='type-id-33' id='type-id-629'/>
+
+    </array-type-def>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/pyhash.h' line='74' column='1' id='type-id-626'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='padding' type-id='type-id-628' visibility='default' filepath='./Include/pyhash.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='hashsalt' type-id='type-id-150' visibility='default' filepath='./Include/pyhash.h' line='76' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='_Py_HashSecret_t' type-id='type-id-621' filepath='./Include/pyhash.h' line='78' column='1' id='type-id-630'/>
+    <var-decl name='_Py_HashSecret' type-id='type-id-630' mangled-name='_Py_HashSecret' visibility='default' filepath='./Include/pyhash.h' line='79' column='1' elf-symbol-id='_Py_HashSecret'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-631' visibility='default' filepath='./Include/pyhash.h' line='89' column='1' id='type-id-632'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='hash' type-id='type-id-633' visibility='default' filepath='./Include/pyhash.h' line='90' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/pyhash.h' line='91' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='hash_bits' type-id='type-id-634' visibility='default' filepath='./Include/pyhash.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='seed_bits' type-id='type-id-634' visibility='default' filepath='./Include/pyhash.h' line='93' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-635' size-in-bits='64' id='type-id-636'/>
+    <qualified-type-def type-id='type-id-636' const='yes' id='type-id-633'/>
+    <qualified-type-def type-id='type-id-8' const='yes' id='type-id-634'/>
+    <typedef-decl name='PyHash_FuncDef' type-id='type-id-632' filepath='./Include/pyhash.h' line='94' column='1' id='type-id-631'/>
+    <pointer-type-def type-id='type-id-631' size-in-bits='64' id='type-id-637'/>
+    <function-decl name='PyHash_GetFuncDef' mangled-name='PyHash_GetFuncDef' filepath='Python/pyhash.c' line='219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyHash_GetFuncDef'>
+      <return type-id='type-id-637'/>
     </function-decl>
-    <function-decl name='PyUnicode_DecodeLocaleAndSize' mangled-name='PyUnicode_DecodeLocaleAndSize' filepath='Objects/unicodeobject.c' line='3873' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_DecodeLocaleAndSize'>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/unicodeobject.c' line='3873' column='1'/>
-      <parameter type-id='type-id-15' name='len' filepath='Objects/unicodeobject.c' line='3873' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3874' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_HashBytes' mangled-name='_Py_HashBytes' filepath='Python/pyhash.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashBytes'>
+      <parameter type-id='type-id-32' name='src' filepath='Python/pyhash.c' line='152' column='1'/>
+      <parameter type-id='type-id-15' name='len' filepath='Python/pyhash.c' line='152' column='1'/>
+      <return type-id='type-id-150'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsEncodedUnicode' mangled-name='PyUnicode_AsEncodedUnicode' filepath='Objects/unicodeobject.c' line='3793' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsEncodedUnicode'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3793' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3794' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3795' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_HashPointer' mangled-name='_Py_HashPointer' filepath='Python/pyhash.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashPointer'>
+      <parameter type-id='type-id-32' name='p' filepath='Python/pyhash.c' line='142' column='1'/>
+      <return type-id='type-id-150'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsEncodedString' mangled-name='PyUnicode_AsEncodedString' filepath='Objects/unicodeobject.c' line='3693' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsEncodedString'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3693' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3694' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3695' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_HashPointerRaw' mangled-name='_Py_HashPointerRaw' filepath='Python/pyhash.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashPointerRaw'>
+      <parameter type-id='type-id-32' name='p' filepath='Python/pyhash.c' line='132' column='1'/>
+      <return type-id='type-id-150'/>
     </function-decl>
-    <function-decl name='PyUnicode_EncodeFSDefault' mangled-name='PyUnicode_EncodeFSDefault' filepath='Objects/unicodeobject.c' line='3659' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeFSDefault'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2650' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_HashDouble' mangled-name='_Py_HashDouble' filepath='Python/pyhash.c' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashDouble'>
+      <parameter type-id='type-id-441' name='v' filepath='Python/pyhash.c' line='86' column='1'/>
+      <return type-id='type-id-150'/>
     </function-decl>
-    <function-decl name='PyUnicode_EncodeLocale' mangled-name='PyUnicode_EncodeLocale' filepath='Objects/unicodeobject.c' line='3652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_EncodeLocale'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='2015' column='1'/>
-      <parameter type-id='type-id-3' name='m' filepath='Objects/abstract.c' line='2015' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-type size-in-bits='64' id='type-id-635'>
+      <parameter type-id='type-id-32'/>
+      <parameter type-id='type-id-15'/>
+      <return type-id='type-id-150'/>
+    </function-type>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/pylifecycle.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='_Py_UnhandledKeyboardInterrupt' type-id='type-id-8' mangled-name='_Py_UnhandledKeyboardInterrupt' visibility='default' filepath='./Include/internal/pycore_pylifecycle.h' line='17' column='1' elf-symbol-id='_Py_UnhandledKeyboardInterrupt'/>
+    <class-decl name='pyruntimestate' size-in-bits='5248' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='52' column='1' id='type-id-638'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='preinitializing' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='preinitialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='57' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='core_initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='60' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='63' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='_finalizing' type-id='type-id-328' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='interpreters' type-id='type-id-329' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='85' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='xidregistry' type-id='type-id-330' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='90' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='main_thread' type-id='type-id-33' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='exitfuncs' type-id='type-id-331' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2688'>
+        <var-decl name='nexitfuncs' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='96' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='2752'>
+        <var-decl name='ceval' type-id='type-id-332' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='98' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4480'>
+        <var-decl name='gilstate' type-id='type-id-333' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='4736'>
+        <var-decl name='preconfig' type-id='type-id-334' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='101' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5056'>
+        <var-decl name='open_code_hook' type-id='type-id-335' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='103' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5120'>
+        <var-decl name='open_code_userdata' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='104' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='5184'>
+        <var-decl name='audit_hook_head' type-id='type-id-639' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='105' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-384' size-in-bits='64' id='type-id-639'/>
+    <typedef-decl name='_PyRuntimeState' type-id='type-id-638' filepath='./Include/internal/pycore_runtime.h' line='108' column='1' id='type-id-640'/>
+    <var-decl name='_PyRuntime' type-id='type-id-640' mangled-name='_PyRuntime' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='115' column='1' elf-symbol-id='_PyRuntime'/>
+    <pointer-type-def type-id='type-id-641' size-in-bits='64' id='type-id-642'/>
+    <typedef-decl name='PyOS_sighandler_t' type-id='type-id-642' filepath='./Include/pylifecycle.h' line='64' column='1' id='type-id-643'/>
+    <function-decl name='PyOS_setsig' mangled-name='PyOS_setsig' filepath='Python/pylifecycle.c' line='2525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_setsig'>
+      <parameter type-id='type-id-8' name='sig' filepath='Python/pylifecycle.c' line='2525' column='1'/>
+      <parameter type-id='type-id-643' name='handler' filepath='Python/pylifecycle.c' line='2525' column='1'/>
+      <return type-id='type-id-643'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsEncodedObject' mangled-name='PyUnicode_AsEncodedObject' filepath='Objects/unicodeobject.c' line='3570' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsEncodedObject'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3793' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3794' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3795' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyOS_getsig' mangled-name='PyOS_getsig' filepath='Python/pylifecycle.c' line='2486' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_getsig'>
+      <parameter type-id='type-id-8' name='sig' filepath='Python/pylifecycle.c' line='2486' column='1'/>
+      <return type-id='type-id-643'/>
     </function-decl>
-    <function-decl name='PyUnicode_Encode' mangled-name='PyUnicode_Encode' filepath='Objects/unicodeobject.c' line='3554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Encode'>
-      <parameter type-id='type-id-455' name='s' filepath='Objects/unicodeobject.c' line='3554' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='3555' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3556' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3557' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_FdIsInteractive' mangled-name='Py_FdIsInteractive' filepath='Python/pylifecycle.c' line='2471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FdIsInteractive'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pylifecycle.c' line='2471' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/pylifecycle.c' line='2471' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsDecodedUnicode' mangled-name='PyUnicode_AsDecodedUnicode' filepath='Objects/unicodeobject.c' line='3515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsDecodedUnicode'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3793' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3794' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3795' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_RestoreSignals' mangled-name='_Py_RestoreSignals' filepath='Python/pylifecycle.c' line='2450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_RestoreSignals'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsDecodedObject' mangled-name='PyUnicode_AsDecodedObject' filepath='Objects/unicodeobject.c' line='3493' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsDecodedObject'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3493' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3494' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3495' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_Exit' mangled-name='Py_Exit' filepath='Python/pylifecycle.c' line='2431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Exit'>
+      <parameter type-id='type-id-8' name='sts' filepath='Python/pylifecycle.c' line='2431' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_Decode' mangled-name='PyUnicode_Decode' filepath='Objects/unicodeobject.c' line='3403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Decode'>
-      <parameter type-id='type-id-3' name='s' filepath='Objects/unicodeobject.c' line='3403' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='3404' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3405' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3406' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_AtExit' mangled-name='Py_AtExit' filepath='Python/pylifecycle.c' line='2406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_AtExit'>
+      <parameter type-id='type-id-351' name='func' filepath='Python/pylifecycle.c' line='2406' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_FromEncodedObject' mangled-name='PyUnicode_FromEncodedObject' filepath='Objects/unicodeobject.c' line='3301' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromEncodedObject'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/unicodeobject.c' line='3301' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Objects/unicodeobject.c' line='3302' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='3303' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_PyAtExit' mangled-name='_Py_PyAtExit' filepath='Python/pylifecycle.c' line='2356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_PyAtExit'>
+      <parameter type-id='type-id-112' name='func' filepath='Python/pylifecycle.c' line='2356' column='1'/>
+      <parameter type-id='type-id-100' name='module' filepath='Python/pylifecycle.c' line='2356' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_FromObject' mangled-name='PyUnicode_FromObject' filepath='Objects/unicodeobject.c' line='3279' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromObject'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_ExitStatusException' mangled-name='Py_ExitStatusException' filepath='Python/pylifecycle.c' line='2340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_ExitStatusException'>
+      <parameter type-id='type-id-595' name='status' filepath='Python/pylifecycle.c' line='2340' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_FromOrdinal' mangled-name='PyUnicode_FromOrdinal' filepath='Objects/unicodeobject.c' line='3267' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromOrdinal'>
-      <parameter type-id='type-id-8' name='ordinal' filepath='Objects/unicodeobject.c' line='3267' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_FatalErrorFunc' mangled-name='_Py_FatalErrorFunc' filepath='Python/pylifecycle.c' line='2299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FatalErrorFunc'>
+      <parameter type-id='type-id-3' name='func' filepath='Python/pylifecycle.c' line='2299' column='1'/>
+      <parameter type-id='type-id-3' name='msg' filepath='Python/pylifecycle.c' line='2299' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsWideCharString' mangled-name='PyUnicode_AsWideCharString' filepath='Objects/unicodeobject.c' line='3230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsWideCharString'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3230' column='1'/>
-      <parameter type-id='type-id-158' name='size' filepath='Objects/unicodeobject.c' line='3231' column='1'/>
-      <return type-id='type-id-403'/>
+    <function-decl name='Py_FatalError' mangled-name='Py_FatalError' filepath='Python/pylifecycle.c' line='2292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FatalError'>
+      <parameter type-id='type-id-3' name='func' filepath='Python/ceval.c' line='249' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsWideChar' mangled-name='PyUnicode_AsWideChar' filepath='Objects/unicodeobject.c' line='3199' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsWideChar'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='3199' column='1'/>
-      <parameter type-id='type-id-403' name='w' filepath='Objects/unicodeobject.c' line='3200' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='3201' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='Py_EndInterpreter' mangled-name='Py_EndInterpreter' filepath='Python/pylifecycle.c' line='1646' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EndInterpreter'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/pylifecycle.c' line='1646' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_FromFormat' mangled-name='PyUnicode_FromFormat' filepath='Objects/unicodeobject.c' line='3096' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromFormat'>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/bytesobject.c' line='357' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_NewInterpreter' mangled-name='Py_NewInterpreter' filepath='Python/pylifecycle.c' line='1628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_NewInterpreter'>
+      <return type-id='type-id-409'/>
     </function-decl>
-    <function-decl name='PyUnicode_FromFormatV' mangled-name='PyUnicode_FromFormatV' filepath='Objects/unicodeobject.c' line='3039' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromFormatV'>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/unicodeobject.c' line='3039' column='1'/>
-      <parameter type-id='type-id-306' name='vargs' filepath='Objects/unicodeobject.c' line='3039' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_NewInterpreter' mangled-name='_Py_NewInterpreter' filepath='Python/pylifecycle.c' line='1616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_NewInterpreter'>
+      <parameter type-id='type-id-8' name='isolated_subinterpreter' filepath='Python/pylifecycle.c' line='1616' column='1'/>
+      <return type-id='type-id-409'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsUCS4Copy' mangled-name='PyUnicode_AsUCS4Copy' filepath='Objects/unicodeobject.c' line='2663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUCS4Copy'>
-      <parameter type-id='type-id-100' name='string' filepath='Objects/unicodeobject.c' line='2663' column='1'/>
-      <return type-id='type-id-539'/>
+    <function-decl name='Py_Finalize' mangled-name='Py_Finalize' filepath='Python/pylifecycle.c' line='1513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Finalize'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_AsUCS4' mangled-name='PyUnicode_AsUCS4' filepath='Objects/unicodeobject.c' line='2652' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_AsUCS4'>
-      <parameter type-id='type-id-100' name='string' filepath='Objects/unicodeobject.c' line='2652' column='1'/>
-      <parameter type-id='type-id-539' name='target' filepath='Objects/unicodeobject.c' line='2652' column='1'/>
-      <parameter type-id='type-id-15' name='targetsize' filepath='Objects/unicodeobject.c' line='2652' column='1'/>
-      <parameter type-id='type-id-8' name='copy_null' filepath='Objects/unicodeobject.c' line='2653' column='1'/>
-      <return type-id='type-id-539'/>
+    <function-decl name='Py_Initialize' mangled-name='Py_Initialize' filepath='Python/pylifecycle.c' line='1179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Initialize'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_Copy' mangled-name='_PyUnicode_Copy' filepath='Objects/unicodeobject.c' line='2529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_Copy'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1992' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_InitializeEx' mangled-name='Py_InitializeEx' filepath='Python/pylifecycle.c' line='1152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_InitializeEx'>
+      <parameter type-id='type-id-8' name='install_sigs' filepath='Python/pylifecycle.c' line='1152' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_FindMaxChar' mangled-name='_PyUnicode_FindMaxChar' filepath='Objects/unicodeobject.c' line='2446' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FindMaxChar'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='2446' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Objects/unicodeobject.c' line='2446' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Objects/unicodeobject.c' line='2446' column='1'/>
-      <return type-id='type-id-474'/>
+    <function-decl name='_Py_InitializeMain' mangled-name='_Py_InitializeMain' filepath='Python/pylifecycle.c' line='1106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_InitializeMain'>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='PyUnicode_FromKindAndData' mangled-name='PyUnicode_FromKindAndData' filepath='Objects/unicodeobject.c' line='2426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromKindAndData'>
-      <parameter type-id='type-id-8' name='kind' filepath='Objects/unicodeobject.c' line='2426' column='1'/>
-      <parameter type-id='type-id-32' name='buffer' filepath='Objects/unicodeobject.c' line='2426' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='2426' column='1'/>
-      <return type-id='type-id-100'/>
+    <qualified-type-def type-id='type-id-334' const='yes' id='type-id-644'/>
+    <pointer-type-def type-id='type-id-644' size-in-bits='64' id='type-id-645'/>
+    <function-decl name='Py_PreInitialize' mangled-name='Py_PreInitialize' filepath='Python/pylifecycle.c' line='841' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitialize'>
+      <parameter type-id='type-id-645' name='src_config' filepath='Python/pylifecycle.c' line='841' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='_PyUnicode_FromASCII' mangled-name='_PyUnicode_FromASCII' filepath='Objects/unicodeobject.c' line='2317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FromASCII'>
-      <parameter type-id='type-id-3' name='bytes' filepath='Objects/bytearrayobject.c' line='114' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/bytearrayobject.c' line='114' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_PreInitializeFromArgs' mangled-name='Py_PreInitializeFromArgs' filepath='Python/pylifecycle.c' line='833' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitializeFromArgs'>
+      <parameter type-id='type-id-645' name='src_config' filepath='Python/pylifecycle.c' line='833' column='1'/>
+      <parameter type-id='type-id-15' name='argc' filepath='Python/pylifecycle.c' line='833' column='1'/>
+      <parameter type-id='type-id-407' name='argv' filepath='Python/pylifecycle.c' line='833' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='_PyUnicode_FromId' mangled-name='_PyUnicode_FromId' filepath='Objects/unicodeobject.c' line='2285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FromId'>
-      <parameter type-id='type-id-476' name='id' filepath='Objects/unicodeobject.c' line='2285' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_PreInitializeFromBytesArgs' mangled-name='Py_PreInitializeFromBytesArgs' filepath='Python/pylifecycle.c' line='825' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitializeFromBytesArgs'>
+      <parameter type-id='type-id-645' name='src_config' filepath='Python/pylifecycle.c' line='825' column='1'/>
+      <parameter type-id='type-id-15' name='argc' filepath='Python/pylifecycle.c' line='825' column='1'/>
+      <parameter type-id='type-id-304' name='argv' filepath='Python/pylifecycle.c' line='825' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='PyUnicode_FromString' mangled-name='PyUnicode_FromString' filepath='Objects/unicodeobject.c' line='2274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromString'>
-      <parameter type-id='type-id-3' name='cp' filepath='Objects/unicodeobject.c' line='15647' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_SetLocaleFromEnv' mangled-name='_Py_SetLocaleFromEnv' filepath='Python/pylifecycle.c' line='375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_SetLocaleFromEnv'>
+      <parameter type-id='type-id-8' name='category' filepath='Python/pylifecycle.c' line='375' column='1'/>
+      <return type-id='type-id-7'/>
     </function-decl>
-    <function-decl name='PyUnicode_FromStringAndSize' mangled-name='PyUnicode_FromStringAndSize' filepath='Objects/unicodeobject.c' line='2260' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromStringAndSize'>
-      <parameter type-id='type-id-3' name='u' filepath='Objects/unicodeobject.c' line='2260' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='2260' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_CoerceLegacyLocale' mangled-name='_Py_CoerceLegacyLocale' filepath='Python/pylifecycle.c' line='325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_CoerceLegacyLocale'>
+      <parameter type-id='type-id-8' name='warn' filepath='Python/pylifecycle.c' line='325' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_FromWideChar' mangled-name='PyUnicode_FromWideChar' filepath='Objects/unicodeobject.c' line='2192' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromWideChar'>
-      <parameter type-id='type-id-501' name='u' filepath='Objects/unicodeobject.c' line='2192' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='2192' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_IsLocaleCoercionTarget' mangled-name='_Py_IsLocaleCoercionTarget' filepath='Python/pylifecycle.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_IsLocaleCoercionTarget'>
+      <parameter type-id='type-id-3' name='ctype_loc' filepath='Python/pylifecycle.c' line='283' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_FromUnicode' mangled-name='PyUnicode_FromUnicode' filepath='Objects/unicodeobject.c' line='2178' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_FromUnicode'>
-      <parameter type-id='type-id-455' name='u' filepath='Objects/unicodeobject.c' line='2178' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='2178' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_LegacyLocaleDetected' mangled-name='_Py_LegacyLocaleDetected' filepath='Python/pylifecycle.c' line='228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_LegacyLocaleDetected'>
+      <parameter type-id='type-id-8' name='warn' filepath='Python/pylifecycle.c' line='228' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_Resize' mangled-name='PyUnicode_Resize' filepath='Objects/unicodeobject.c' line='2056' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_Resize'>
-      <parameter type-id='type-id-303' name='p_unicode' filepath='Objects/unicodeobject.c' line='2056' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='Objects/unicodeobject.c' line='2056' column='1'/>
+    <function-decl name='Py_IsInitialized' mangled-name='Py_IsInitialized' filepath='Python/pylifecycle.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_IsInitialized'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyUnicode_Ready' mangled-name='_PyUnicode_Ready' filepath='Objects/unicodeobject.c' line='1803' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_Ready'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='1803' column='1'/>
+    <function-decl name='_Py_IsCoreInitialized' mangled-name='_Py_IsCoreInitialized' filepath='Python/pylifecycle.c' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_IsCoreInitialized'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyUnicode_CopyCharacters' mangled-name='PyUnicode_CopyCharacters' filepath='Objects/unicodeobject.c' line='1702' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_CopyCharacters'>
-      <parameter type-id='type-id-100' name='to' filepath='Objects/unicodeobject.c' line='1702' column='1'/>
-      <parameter type-id='type-id-15' name='to_start' filepath='Objects/unicodeobject.c' line='1702' column='1'/>
-      <parameter type-id='type-id-100' name='from' filepath='Objects/unicodeobject.c' line='1703' column='1'/>
-      <parameter type-id='type-id-15' name='from_start' filepath='Objects/unicodeobject.c' line='1703' column='1'/>
-      <parameter type-id='type-id-15' name='how_many' filepath='Objects/unicodeobject.c' line='1704' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_Py_IsFinalizing' mangled-name='_Py_IsFinalizing' filepath='Python/pylifecycle.c' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_IsFinalizing'>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyUnicode_FastCopyCharacters' mangled-name='_PyUnicode_FastCopyCharacters' filepath='Objects/unicodeobject.c' line='1694' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FastCopyCharacters'>
-      <parameter type-id='type-id-100' name='to' filepath='Objects/unicodeobject.c' line='1695' column='1'/>
-      <parameter type-id='type-id-15' name='to_start' filepath='Objects/unicodeobject.c' line='1695' column='1'/>
-      <parameter type-id='type-id-100' name='from' filepath='Objects/unicodeobject.c' line='1696' column='1'/>
-      <parameter type-id='type-id-15' name='from_start' filepath='Objects/unicodeobject.c' line='1696' column='1'/>
-      <parameter type-id='type-id-15' name='how_many' filepath='Objects/unicodeobject.c' line='1696' column='1'/>
+    <function-decl name='_PyRuntime_Finalize' mangled-name='_PyRuntime_Finalize' filepath='Python/pylifecycle.c' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntime_Finalize'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyUnicode_New' mangled-name='PyUnicode_New' filepath='Objects/unicodeobject.c' line='1387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_New'>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/unicodeobject.c' line='1387' column='1'/>
-      <parameter type-id='type-id-474' name='maxchar' filepath='Objects/unicodeobject.c' line='1387' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyRuntime_Initialize' mangled-name='_PyRuntime_Initialize' filepath='Python/pylifecycle.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntime_Initialize'>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='_PyUnicode_CheckConsistency' mangled-name='_PyUnicode_CheckConsistency' filepath='Objects/unicodeobject.c' line='512' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_CheckConsistency'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/unicodeobject.c' line='512' column='1'/>
-      <parameter type-id='type-id-8' name='check_content' filepath='Objects/unicodeobject.c' line='512' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_PreInitializeFromPyArgv' mangled-name='_Py_PreInitializeFromPyArgv' filepath='Python/pylifecycle.c' line='778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_PreInitializeFromPyArgv'>
+      <parameter type-id='type-id-645' name='src_config' filepath='Python/pylifecycle.c' line='778' column='1'/>
+      <parameter type-id='type-id-611' name='args' filepath='Python/pylifecycle.c' line='778' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='PyUnicode_GetMax' mangled-name='PyUnicode_GetMax' filepath='Objects/unicodeobject.c' line='500' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnicode_GetMax'>
-      <return type-id='type-id-453'/>
+    <qualified-type-def type-id='type-id-321' const='yes' id='type-id-646'/>
+    <pointer-type-def type-id='type-id-646' size-in-bits='64' id='type-id-647'/>
+    <function-decl name='_Py_PreInitializeFromConfig' mangled-name='_Py_PreInitializeFromConfig' filepath='Python/pylifecycle.c' line='848' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_PreInitializeFromConfig'>
+      <parameter type-id='type-id-647' name='config' filepath='Python/pylifecycle.c' line='848' column='1'/>
+      <parameter type-id='type-id-611' name='args' filepath='Python/pylifecycle.c' line='849' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='_Py_GetErrorHandler' mangled-name='_Py_GetErrorHandler' filepath='Objects/unicodeobject.c' line='394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetErrorHandler'>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='394' column='1'/>
-      <return type-id='type-id-400'/>
+    <function-decl name='Py_InitializeFromConfig' mangled-name='Py_InitializeFromConfig' filepath='Python/pylifecycle.c' line='1119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_InitializeFromConfig'>
+      <parameter type-id='type-id-647' name='config' filepath='Python/pylifecycle.c' line='1119' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/unicodectype.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='_PyUnicode_IsAlpha' mangled-name='_PyUnicode_IsAlpha' filepath='Objects/unicodectype.c' line='291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsAlpha'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
+    <function-decl name='Py_FinalizeEx' mangled-name='Py_FinalizeEx' filepath='Python/pylifecycle.c' line='1345' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FinalizeEx'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyUnicode_IsCaseIgnorable' mangled-name='_PyUnicode_IsCaseIgnorable' filepath='Objects/unicodectype.c' line='281' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsCaseIgnorable'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='sigemptyset' mangled-name='sigemptyset' filepath='/usr/include/signal.h' line='196' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_IsCased' mangled-name='_PyUnicode_IsCased' filepath='Objects/unicodectype.c' line='274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsCased'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='sigaction' mangled-name='sigaction' filepath='/usr/include/signal.h' line='240' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_ToFoldedFull' mangled-name='_PyUnicode_ToFoldedFull' filepath='Objects/unicodectype.c' line='259' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToFoldedFull'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <parameter type-id='type-id-539' name='res' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='__vfprintf_chk' mangled-name='__vfprintf_chk' filepath='/usr/include/x86_64-linux-gnu/bits/stdio2.h' line='91' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_ToUpperFull' mangled-name='_PyUnicode_ToUpperFull' filepath='Objects/unicodectype.c' line='243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToUpperFull'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <parameter type-id='type-id-539' name='res' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='abort' mangled-name='abort' filepath='/usr/include/stdlib.h' line='591' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_ToTitleFull' mangled-name='_PyUnicode_ToTitleFull' filepath='Objects/unicodectype.c' line='227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToTitleFull'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <parameter type-id='type-id-539' name='res' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyErr_Display' mangled-name='PyErr_Display' filepath='./Include/pythonrun.h' line='149' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_ToLowerFull' mangled-name='_PyUnicode_ToLowerFull' filepath='Objects/unicodectype.c' line='211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToLowerFull'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <parameter type-id='type-id-539' name='res' filepath='Objects/unicodectype.c' line='259' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_DumpTracebackThreads' mangled-name='_Py_DumpTracebackThreads' filepath='./Include/internal/pycore_traceback.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_ToLowercase' mangled-name='_PyUnicode_ToLowercase' filepath='Objects/unicodectype.c' line='202' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToLowercase'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='202' column='1'/>
-      <return type-id='type-id-474'/>
+    <function-decl name='_PyFaulthandler_Fini' mangled-name='_PyFaulthandler_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_ToUppercase' mangled-name='_PyUnicode_ToUppercase' filepath='Objects/unicodectype.c' line='190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToUppercase'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='202' column='1'/>
-      <return type-id='type-id-474'/>
+    <function-decl name='PyInterpreterState_Delete' mangled-name='PyInterpreterState_Delete' filepath='./Include/pystate.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_IsUppercase' mangled-name='_PyUnicode_IsUppercase' filepath='Objects/unicodectype.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsUppercase'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyGILState_Fini' mangled-name='_PyGILState_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_IsLowercase' mangled-name='_PyUnicode_IsLowercase' filepath='Objects/unicodectype.c' line='170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsLowercase'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyImport_Cleanup' mangled-name='_PyImport_Cleanup' filepath='./Include/internal/pycore_import.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_IsPrintable' mangled-name='_PyUnicode_IsPrintable' filepath='Objects/unicodectype.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsPrintable'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyEval_FiniGIL' mangled-name='_PyEval_FiniGIL' filepath='./Include/internal/pycore_ceval.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_IsNumeric' mangled-name='_PyUnicode_IsNumeric' filepath='Objects/unicodectype.c' line='140' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsNumeric'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyGILState_Init' mangled-name='_PyGILState_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='88' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_IsDigit' mangled-name='_PyUnicode_IsDigit' filepath='Objects/unicodectype.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsDigit'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='130' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyEval_InitGIL' mangled-name='_PyEval_InitGIL' filepath='./Include/internal/pycore_ceval.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_ToDigit' mangled-name='_PyUnicode_ToDigit' filepath='Objects/unicodectype.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToDigit'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyInterpreterState_Main' mangled-name='PyInterpreterState_Main' filepath='./Include/cpython/pystate.h' line='178' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_IsDecimalDigit' mangled-name='_PyUnicode_IsDecimalDigit' filepath='Objects/unicodectype.c' line='113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsDecimalDigit'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='130' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyInterpreterState_New' mangled-name='PyInterpreterState_New' filepath='./Include/pystate.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_ToDecimalDigit' mangled-name='_PyUnicode_ToDecimalDigit' filepath='Objects/unicodectype.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToDecimalDigit'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyThreadState_New' mangled-name='PyThreadState_New' filepath='./Include/pystate.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_IsXidContinue' mangled-name='_PyUnicode_IsXidContinue' filepath='Objects/unicodectype.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsXidContinue'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyThreadState_Swap' mangled-name='PyThreadState_Swap' filepath='./Include/pystate.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_IsXidStart' mangled-name='_PyUnicode_IsXidStart' filepath='Objects/unicodectype.c' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsXidStart'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyInterpreterState_SetConfig' mangled-name='_PyInterpreterState_SetConfig' filepath='./Include/internal/pycore_interp.h' line='162' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_IsTitlecase' mangled-name='_PyUnicode_IsTitlecase' filepath='Objects/unicodectype.c' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsTitlecase'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='291' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyErr_PrintEx' mangled-name='PyErr_PrintEx' filepath='./Include/pythonrun.h' line='148' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_ToTitlecase' mangled-name='_PyUnicode_ToTitlecase' filepath='Objects/unicodectype.c' line='64' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToTitlecase'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodectype.c' line='202' column='1'/>
-      <return type-id='type-id-474'/>
+    <function-decl name='PyThreadState_Clear' mangled-name='PyThreadState_Clear' filepath='./Include/pystate.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <qualified-type-def type-id='type-id-474' const='yes' id='type-id-541'/>
-    <function-decl name='_PyUnicode_IsLinebreak' mangled-name='_PyUnicode_IsLinebreak' filepath='Objects/unicodetype_db.h' line='6249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsLinebreak'>
-      <parameter type-id='type-id-541' name='ch' filepath='Objects/unicodetype_db.h' line='6249' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyThreadState_Delete' mangled-name='PyThreadState_Delete' filepath='./Include/pystate.h' line='60' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_IsWhitespace' mangled-name='_PyUnicode_IsWhitespace' filepath='Objects/unicodetype_db.h' line='6208' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_IsWhitespace'>
-      <parameter type-id='type-id-541' name='ch' filepath='Objects/unicodetype_db.h' line='6249' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyLong_Fini' mangled-name='_PyLong_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_ToNumeric' mangled-name='_PyUnicode_ToNumeric' filepath='Objects/unicodetype_db.h' line='4187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_ToNumeric'>
-      <parameter type-id='type-id-474' name='ch' filepath='Objects/unicodetype_db.h' line='4187' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='_PyWarnings_Fini' mangled-name='_PyWarnings_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Objects/weakrefobject.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='_PyWeakref_RefType' type-id='type-id-182' mangled-name='_PyWeakref_RefType' visibility='default' filepath='./Include/weakrefobject.h' line='43' column='1' elf-symbol-id='_PyWeakref_RefType'/>
-    <var-decl name='_PyWeakref_ProxyType' type-id='type-id-182' mangled-name='_PyWeakref_ProxyType' visibility='default' filepath='./Include/weakrefobject.h' line='44' column='1' elf-symbol-id='_PyWeakref_ProxyType'/>
-    <var-decl name='_PyWeakref_CallableProxyType' type-id='type-id-182' mangled-name='_PyWeakref_CallableProxyType' visibility='default' filepath='./Include/weakrefobject.h' line='45' column='1' elf-symbol-id='_PyWeakref_CallableProxyType'/>
-    <function-decl name='PyObject_ClearWeakRefs' mangled-name='PyObject_ClearWeakRefs' filepath='Objects/weakrefobject.c' line='975' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_ClearWeakRefs'>
-      <parameter type-id='type-id-100' name='object' filepath='Objects/weakrefobject.c' line='975' column='1'/>
+    <function-decl name='_PyUnicode_Fini' mangled-name='_PyUnicode_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='80' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyWeakref_GetObject' mangled-name='PyWeakref_GetObject' filepath='Objects/weakrefobject.c' line='945' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWeakref_GetObject'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyAST_Fini' mangled-name='_PyAST_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyWeakref_NewProxy' mangled-name='PyWeakref_NewProxy' filepath='Objects/weakrefobject.c' line='878' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWeakref_NewProxy'>
-      <parameter type-id='type-id-100' name='ob' filepath='Objects/weakrefobject.c' line='878' column='1'/>
-      <parameter type-id='type-id-100' name='callback' filepath='Objects/weakrefobject.c' line='878' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyFrame_Fini' mangled-name='_PyFrame_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='61' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyWeakref_NewRef' mangled-name='PyWeakref_NewRef' filepath='Objects/weakrefobject.c' line='819' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWeakref_NewRef'>
-      <parameter type-id='type-id-100' name='ob' filepath='Objects/weakrefobject.c' line='819' column='1'/>
-      <parameter type-id='type-id-100' name='callback' filepath='Objects/weakrefobject.c' line='819' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTuple_Fini' mangled-name='_PyTuple_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='63' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <class-decl name='_PyWeakReference' size-in-bits='448' is-struct='yes' visibility='default' filepath='./Include/weakrefobject.h' line='16' column='1' id='type-id-542'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/weakrefobject.h' line='17' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='wr_object' type-id='type-id-100' visibility='default' filepath='./Include/weakrefobject.h' line='23' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='wr_callback' type-id='type-id-100' visibility='default' filepath='./Include/weakrefobject.h' line='26' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='hash' type-id='type-id-150' visibility='default' filepath='./Include/weakrefobject.h' line='31' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='wr_prev' type-id='type-id-543' visibility='default' filepath='./Include/weakrefobject.h' line='38' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='wr_next' type-id='type-id-543' visibility='default' filepath='./Include/weakrefobject.h' line='39' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='PyWeakReference' type-id='type-id-542' filepath='./Include/weakrefobject.h' line='10' column='1' id='type-id-544'/>
-    <pointer-type-def type-id='type-id-544' size-in-bits='64' id='type-id-543'/>
-    <function-decl name='_PyWeakref_ClearRef' mangled-name='_PyWeakref_ClearRef' filepath='Objects/weakrefobject.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWeakref_ClearRef'>
-      <parameter type-id='type-id-543' name='self' filepath='Objects/weakrefobject.c' line='92' column='1'/>
+    <function-decl name='_PyList_Fini' mangled-name='_PyList_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='64' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyWeakref_GetWeakrefCount' mangled-name='_PyWeakref_GetWeakrefCount' filepath='Objects/weakrefobject.c' line='11' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWeakref_GetWeakrefCount'>
-      <parameter type-id='type-id-543' name='head' filepath='Objects/weakrefobject.c' line='11' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='_PySet_Fini' mangled-name='_PySet_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='65' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/_warnings.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='_PyWarnings_Init' mangled-name='_PyWarnings_Init' filepath='Python/_warnings.c' line='1383' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWarnings_Init'>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyBytes_Fini' mangled-name='_PyBytes_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='66' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_WarnExplicitFormat' mangled-name='PyErr_WarnExplicitFormat' filepath='Python/_warnings.c' line='1255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnExplicitFormat'>
-      <parameter type-id='type-id-100' name='category' filepath='Python/_warnings.c' line='1255' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/_warnings.c' line='1256' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/_warnings.c' line='1256' column='1'/>
-      <parameter type-id='type-id-3' name='module_str' filepath='Python/_warnings.c' line='1257' column='1'/>
-      <parameter type-id='type-id-100' name='registry' filepath='Python/_warnings.c' line='1257' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/_warnings.c' line='1258' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyFloat_Fini' mangled-name='_PyFloat_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='67' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_WarnExplicit' mangled-name='PyErr_WarnExplicit' filepath='Python/_warnings.c' line='1227' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnExplicit'>
-      <parameter type-id='type-id-100' name='category' filepath='Python/_warnings.c' line='1227' column='1'/>
-      <parameter type-id='type-id-3' name='text' filepath='Python/_warnings.c' line='1227' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/_warnings.c' line='1228' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/_warnings.c' line='1228' column='1'/>
-      <parameter type-id='type-id-3' name='module_str' filepath='Python/_warnings.c' line='1229' column='1'/>
-      <parameter type-id='type-id-100' name='registry' filepath='Python/_warnings.c' line='1229' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyDict_Fini' mangled-name='_PyDict_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='62' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PySlice_Fini' mangled-name='_PySlice_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='68' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_HashRandomization_Fini' mangled-name='_Py_HashRandomization_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_WarnExplicitObject' mangled-name='PyErr_WarnExplicitObject' filepath='Python/_warnings.c' line='1211' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnExplicitObject'>
-      <parameter type-id='type-id-100' name='category' filepath='Python/_warnings.c' line='1211' column='1'/>
-      <parameter type-id='type-id-100' name='message' filepath='Python/_warnings.c' line='1211' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/_warnings.c' line='1212' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/_warnings.c' line='1212' column='1'/>
-      <parameter type-id='type-id-100' name='module' filepath='Python/_warnings.c' line='1213' column='1'/>
-      <parameter type-id='type-id-100' name='registry' filepath='Python/_warnings.c' line='1213' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyArg_Fini' mangled-name='_PyArg_Fini' filepath='./Include/modsupport.h' line='136' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_WarnEx' mangled-name='PyErr_WarnEx' filepath='Python/_warnings.c' line='1187' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnEx'>
-      <parameter type-id='type-id-100' name='category' filepath='Python/_warnings.c' line='1187' column='1'/>
-      <parameter type-id='type-id-3' name='text' filepath='Python/_warnings.c' line='1187' column='1'/>
-      <parameter type-id='type-id-15' name='stack_level' filepath='Python/_warnings.c' line='1187' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyAsyncGen_Fini' mangled-name='_PyAsyncGen_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='69' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_ResourceWarning' mangled-name='PyErr_ResourceWarning' filepath='Python/_warnings.c' line='1168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_ResourceWarning'>
-      <parameter type-id='type-id-100' name='source' filepath='Python/_warnings.c' line='1168' column='1'/>
-      <parameter type-id='type-id-15' name='stack_level' filepath='Python/_warnings.c' line='1168' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/_warnings.c' line='1169' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyContext_Fini' mangled-name='_PyContext_Fini' filepath='./Include/internal/pycore_context.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_WarnFormat' mangled-name='PyErr_WarnFormat' filepath='Python/_warnings.c' line='1134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WarnFormat'>
-      <parameter type-id='type-id-100' name='source' filepath='Python/_warnings.c' line='1168' column='1'/>
-      <parameter type-id='type-id-15' name='stack_level' filepath='Python/_warnings.c' line='1168' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/_warnings.c' line='1169' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_ClearFileSystemEncoding' mangled-name='_Py_ClearFileSystemEncoding' filepath='./Include/internal/pycore_pylifecycle.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/Python-ast.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyInit__ast' mangled-name='PyInit__ast' filepath='Python/Python-ast.c' line='10096' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__ast'>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyInterpreterState_Clear' mangled-name='PyInterpreterState_Clear' filepath='./Include/pystate.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/ast.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='_PyAST_GetDocString' mangled-name='_PyAST_GetDocString' filepath='Python/ast.c' line='5844' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAST_GetDocString'>
-      <parameter type-id='type-id-28' name='body' filepath='Python/ast.c' line='5844' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyGC_Fini' mangled-name='_PyGC_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <qualified-type-def type-id='type-id-10' const='yes' id='type-id-545'/>
-    <pointer-type-def type-id='type-id-545' size-in-bits='64' id='type-id-546'/>
-    <function-decl name='PyAST_FromNode' mangled-name='PyAST_FromNode' filepath='Python/ast.c' line='939' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAST_FromNode'>
-      <parameter type-id='type-id-546' name='n' filepath='Python/ast.c' line='939' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/ast.c' line='939' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/ast.c' line='939' column='1'/>
-      <parameter type-id='type-id-230' name='arena' filepath='Python/ast.c' line='940' column='1'/>
-      <return type-id='type-id-204'/>
+    <function-decl name='_PySys_ClearAuditHooks' mangled-name='_PySys_ClearAuditHooks' filepath='./Include/internal/pycore_sysmodule.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyAST_FromNodeObject' mangled-name='PyAST_FromNodeObject' filepath='Python/ast.c' line='763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAST_FromNodeObject'>
-      <parameter type-id='type-id-546' name='n' filepath='Python/ast.c' line='763' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/ast.c' line='763' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/ast.c' line='764' column='1'/>
-      <parameter type-id='type-id-230' name='arena' filepath='Python/ast.c' line='764' column='1'/>
-      <return type-id='type-id-204'/>
+    <function-decl name='PyGrammar_RemoveAccelerators' mangled-name='PyGrammar_RemoveAccelerators' filepath='./Include/grammar.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyAST_Validate' mangled-name='PyAST_Validate' filepath='Python/ast.c' line='531' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAST_Validate'>
-      <parameter type-id='type-id-204' name='mod' filepath='Python/ast.c' line='531' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyExc_Fini' mangled-name='_PyExc_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/ast_opt.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-547' visibility='default' filepath='./Include/compile.h' line='94' column='1' id='type-id-548'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='optimize' type-id='type-id-8' visibility='default' filepath='./Include/compile.h' line='95' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='ff_features' type-id='type-id-8' visibility='default' filepath='./Include/compile.h' line='96' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='_PyASTOptimizeState' type-id='type-id-548' filepath='./Include/compile.h' line='97' column='1' id='type-id-547'/>
-    <pointer-type-def type-id='type-id-547' size-in-bits='64' id='type-id-549'/>
-    <function-decl name='_PyAST_Optimize' mangled-name='_PyAST_Optimize' filepath='Python/ast_opt.c' line='747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyAST_Optimize'>
-      <parameter type-id='type-id-204' name='mod' filepath='Python/ast_opt.c' line='747' column='1'/>
-      <parameter type-id='type-id-230' name='arena' filepath='Python/ast_opt.c' line='747' column='1'/>
-      <parameter type-id='type-id-549' name='state' filepath='Python/ast_opt.c' line='747' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyWideStringList_AsList' mangled-name='_PyWideStringList_AsList' filepath='./Include/internal/pycore_initconfig.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/bltinmodule.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyFilter_Type' type-id='type-id-182' mangled-name='PyFilter_Type' visibility='default' filepath='./Include/bltinmodule.h' line='7' column='1' elf-symbol-id='PyFilter_Type'/>
-    <var-decl name='PyMap_Type' type-id='type-id-182' mangled-name='PyMap_Type' visibility='default' filepath='./Include/bltinmodule.h' line='8' column='1' elf-symbol-id='PyMap_Type'/>
-    <var-decl name='PyZip_Type' type-id='type-id-182' mangled-name='PyZip_Type' visibility='default' filepath='./Include/bltinmodule.h' line='9' column='1' elf-symbol-id='PyZip_Type'/>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/ceval.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='_Py_CheckRecursionLimit' type-id='type-id-8' mangled-name='_Py_CheckRecursionLimit' visibility='default' filepath='./Include/internal/pycore_ceval.h' line='62' column='1' elf-symbol-id='_Py_CheckRecursionLimit'/>
-    <function-decl name='Py_LeaveRecursiveCall' mangled-name='Py_LeaveRecursiveCall' filepath='Python/ceval.c' line='5691' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_LeaveRecursiveCall'>
+    <function-decl name='_PyImportZip_Init' mangled-name='_PyImportZip_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_EnterRecursiveCall' mangled-name='Py_EnterRecursiveCall' filepath='Python/ceval.c' line='5684' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EnterRecursiveCall'>
-      <parameter type-id='type-id-3' name='where' filepath='Python/ceval.c' line='5684' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PySys_SetObjectId' mangled-name='_PySys_SetObjectId' filepath='./Include/cpython/sysmodule.h' line='10' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_RequestCodeExtraIndex' mangled-name='_PyEval_RequestCodeExtraIndex' filepath='Python/ceval.c' line='5601' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_RequestCodeExtraIndex'>
-      <parameter type-id='type-id-106' name='free' filepath='Python/ceval.c' line='5601' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='PyImport_AddModule' mangled-name='PyImport_AddModule' filepath='./Include/import.h' line='43' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_SliceIndexNotNone' mangled-name='_PyEval_SliceIndexNotNone' filepath='Python/ceval.c' line='5152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SliceIndexNotNone'>
-      <parameter type-id='type-id-100' name='exc' filepath='Objects/exceptions.c' line='1758' column='1'/>
-      <parameter type-id='type-id-158' name='end' filepath='Objects/exceptions.c' line='1758' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PySys_InitMain' mangled-name='_PySys_InitMain' filepath='./Include/internal/pycore_pylifecycle.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_SliceIndex' mangled-name='_PyEval_SliceIndex' filepath='Python/ceval.c' line='5130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SliceIndex'>
-      <parameter type-id='type-id-100' name='v' filepath='Python/ceval.c' line='5130' column='1'/>
-      <parameter type-id='type-id-158' name='pi' filepath='Python/ceval.c' line='5130' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyUnicode_InitEncodings' mangled-name='_PyUnicode_InitEncodings' filepath='./Include/internal/pycore_pylifecycle.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_GetFuncDesc' mangled-name='PyEval_GetFuncDesc' filepath='Python/ceval.c' line='4979' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFuncDesc'>
-      <parameter type-id='type-id-100' name='ob' filepath='Objects/exceptions.c' line='365' column='1'/>
-      <return type-id='type-id-3'/>
+    <function-decl name='_PyTime_Init' mangled-name='_PyTime_Init' filepath='./Include/pytime.h' line='214' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_GetFuncName' mangled-name='PyEval_GetFuncName' filepath='Python/ceval.c' line='4966' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFuncName'>
-      <parameter type-id='type-id-100' name='ob' filepath='Objects/exceptions.c' line='365' column='1'/>
-      <return type-id='type-id-3'/>
+    <function-decl name='_PyFaulthandler_Init' mangled-name='_PyFaulthandler_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_MergeCompilerFlags' mangled-name='PyEval_MergeCompilerFlags' filepath='Python/ceval.c' line='4941' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_MergeCompilerFlags'>
-      <parameter type-id='type-id-226' name='cf' filepath='Python/ceval.c' line='4941' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PySignal_Init' mangled-name='_PySignal_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='71' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_GetGlobals' mangled-name='PyEval_GetGlobals' filepath='Python/ceval.c' line='4928' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetGlobals'>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTraceMalloc_Init' mangled-name='_PyTraceMalloc_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_GetLocals' mangled-name='PyEval_GetLocals' filepath='Python/ceval.c' line='4910' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetLocals'>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyGC_Init' mangled-name='_PyGC_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_GetBuiltinId' mangled-name='_PyEval_GetBuiltinId' filepath='Python/ceval.c' line='4896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetBuiltinId'>
-      <parameter type-id='type-id-476' name='name' filepath='Python/ceval.c' line='4896' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyLong_Init' mangled-name='_PyLong_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_GetBuiltins' mangled-name='PyEval_GetBuiltins' filepath='Python/ceval.c' line='4884' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetBuiltins'>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyExc_Init' mangled-name='_PyExc_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_GetFrame' mangled-name='PyEval_GetFrame' filepath='Python/ceval.c' line='4877' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_GetFrame'>
-      <return type-id='type-id-312'/>
+    <function-decl name='_PyErr_Init' mangled-name='_PyErr_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='47' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_GetAsyncGenFinalizer' mangled-name='_PyEval_GetAsyncGenFinalizer' filepath='Python/ceval.c' line='4870' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetAsyncGenFinalizer'>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTypes_Init' mangled-name='_PyTypes_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_SetAsyncGenFinalizer' mangled-name='_PyEval_SetAsyncGenFinalizer' filepath='Python/ceval.c' line='4856' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetAsyncGenFinalizer'>
-      <parameter type-id='type-id-100' name='finalizer' filepath='Python/ceval.c' line='4856' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyUnicode_Init' mangled-name='_PyUnicode_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='34' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_GetAsyncGenFirstiter' mangled-name='_PyEval_GetAsyncGenFirstiter' filepath='Python/ceval.c' line='4849' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetAsyncGenFirstiter'>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyFloat_Init' mangled-name='_PyFloat_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_SetAsyncGenFirstiter' mangled-name='_PyEval_SetAsyncGenFirstiter' filepath='Python/ceval.c' line='4835' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetAsyncGenFirstiter'>
-      <parameter type-id='type-id-100' name='finalizer' filepath='Python/ceval.c' line='4856' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyStructSequence_Init' mangled-name='_PyStructSequence_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_GetCoroutineOriginTrackingDepth' mangled-name='_PyEval_GetCoroutineOriginTrackingDepth' filepath='Python/ceval.c' line='4828' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetCoroutineOriginTrackingDepth'>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyContext_Init' mangled-name='_PyContext_Init' filepath='./Include/internal/pycore_context.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_SetCoroutineOriginTrackingDepth' mangled-name='_PyEval_SetCoroutineOriginTrackingDepth' filepath='Python/ceval.c' line='4821' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetCoroutineOriginTrackingDepth'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='4821' column='1'/>
-      <parameter type-id='type-id-8' name='new_depth' filepath='Python/ceval.c' line='4821' column='1'/>
+    <function-decl name='_PyBuiltin_Init' mangled-name='_PyBuiltin_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_SetTrace' mangled-name='PyEval_SetTrace' filepath='Python/ceval.c' line='4810' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetTrace'>
-      <parameter type-id='type-id-235' name='func' filepath='Python/ceval.c' line='4810' column='1'/>
-      <parameter type-id='type-id-100' name='arg' filepath='Python/ceval.c' line='4810' column='1'/>
+    <function-decl name='_PyImport_FixupBuiltin' mangled-name='_PyImport_FixupBuiltin' filepath='./Include/cpython/import.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_SetTrace' mangled-name='_PyEval_SetTrace' filepath='Python/ceval.c' line='4775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetTrace'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='4775' column='1'/>
-      <parameter type-id='type-id-235' name='func' filepath='Python/ceval.c' line='4775' column='1'/>
-      <parameter type-id='type-id-100' name='arg' filepath='Python/ceval.c' line='4775' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyBuiltins_AddExceptions' mangled-name='_PyBuiltins_AddExceptions' filepath='./Include/internal/pycore_pylifecycle.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_SetProfile' mangled-name='PyEval_SetProfile' filepath='Python/ceval.c' line='4765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SetProfile'>
-      <parameter type-id='type-id-235' name='func' filepath='Python/ceval.c' line='4810' column='1'/>
-      <parameter type-id='type-id-100' name='arg' filepath='Python/ceval.c' line='4810' column='1'/>
+    <function-decl name='PyInit__imp' mangled-name='PyInit__imp' filepath='./Include/cpython/import.h' line='9' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_SetProfile' mangled-name='_PyEval_SetProfile' filepath='Python/ceval.c' line='4734' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetProfile'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='4734' column='1'/>
-      <parameter type-id='type-id-235' name='func' filepath='Python/ceval.c' line='4734' column='1'/>
-      <parameter type-id='type-id-100' name='arg' filepath='Python/ceval.c' line='4734' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyImport_SetModuleString' mangled-name='_PyImport_SetModuleString' filepath='./Include/cpython/import.h' line='15' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_CallTracing' mangled-name='_PyEval_CallTracing' filepath='Python/ceval.c' line='4680' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_CallTracing'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/dictobject.c' line='1456' column='1'/>
-      <parameter type-id='type-id-100' name='key' filepath='Objects/dictobject.c' line='1456' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyImportHooks_Init' mangled-name='_PyImportHooks_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_EvalCodeEx' mangled-name='PyEval_EvalCodeEx' filepath='Python/ceval.c' line='4369' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_EvalCodeEx'>
-      <parameter type-id='type-id-100' name='_co' filepath='Python/ceval.c' line='4369' column='1'/>
-      <parameter type-id='type-id-100' name='globals' filepath='Python/ceval.c' line='4369' column='1'/>
-      <parameter type-id='type-id-100' name='locals' filepath='Python/ceval.c' line='4369' column='1'/>
-      <parameter type-id='type-id-190' name='args' filepath='Python/ceval.c' line='4370' column='1'/>
-      <parameter type-id='type-id-8' name='argcount' filepath='Python/ceval.c' line='4370' column='1'/>
-      <parameter type-id='type-id-190' name='kws' filepath='Python/ceval.c' line='4371' column='1'/>
-      <parameter type-id='type-id-8' name='kwcount' filepath='Python/ceval.c' line='4371' column='1'/>
-      <parameter type-id='type-id-190' name='defs' filepath='Python/ceval.c' line='4372' column='1'/>
-      <parameter type-id='type-id-8' name='defcount' filepath='Python/ceval.c' line='4372' column='1'/>
-      <parameter type-id='type-id-100' name='kwdefs' filepath='Python/ceval.c' line='4373' column='1'/>
-      <parameter type-id='type-id-100' name='closure' filepath='Python/ceval.c' line='4373' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyWarnings_InitState' mangled-name='_PyWarnings_InitState' filepath='./Include/internal/pycore_warnings.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_EvalCodeWithName' mangled-name='_PyEval_EvalCodeWithName' filepath='Python/ceval.c' line='4350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_EvalCodeWithName'>
-      <parameter type-id='type-id-100' name='_co' filepath='Python/ceval.c' line='4350' column='1'/>
-      <parameter type-id='type-id-100' name='globals' filepath='Python/ceval.c' line='4350' column='1'/>
-      <parameter type-id='type-id-100' name='locals' filepath='Python/ceval.c' line='4350' column='1'/>
-      <parameter type-id='type-id-190' name='args' filepath='Python/ceval.c' line='4351' column='1'/>
-      <parameter type-id='type-id-15' name='argcount' filepath='Python/ceval.c' line='4351' column='1'/>
-      <parameter type-id='type-id-190' name='kwnames' filepath='Python/ceval.c' line='4352' column='1'/>
-      <parameter type-id='type-id-190' name='kwargs' filepath='Python/ceval.c' line='4352' column='1'/>
-      <parameter type-id='type-id-15' name='kwcount' filepath='Python/ceval.c' line='4353' column='1'/>
-      <parameter type-id='type-id-8' name='kwstep' filepath='Python/ceval.c' line='4353' column='1'/>
-      <parameter type-id='type-id-190' name='defs' filepath='Python/ceval.c' line='4354' column='1'/>
-      <parameter type-id='type-id-15' name='defcount' filepath='Python/ceval.c' line='4354' column='1'/>
-      <parameter type-id='type-id-100' name='kwdefs' filepath='Python/ceval.c' line='4355' column='1'/>
-      <parameter type-id='type-id-100' name='closure' filepath='Python/ceval.c' line='4355' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Python/ceval.c' line='4356' column='1'/>
-      <parameter type-id='type-id-100' name='qualname' filepath='Python/ceval.c' line='4356' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyConfig_WritePathConfig' mangled-name='_PyConfig_WritePathConfig' filepath='./Include/internal/pycore_pathconfig.h' line='66' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_EvalFrameDefault' mangled-name='_PyEval_EvalFrameDefault' filepath='Python/ceval.c' line='918' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_EvalFrameDefault'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='918' column='1'/>
-      <parameter type-id='type-id-312' name='f' filepath='Python/ceval.c' line='918' column='1'/>
-      <parameter type-id='type-id-8' name='throwflag' filepath='Python/ceval.c' line='918' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PySys_Create' mangled-name='_PySys_Create' filepath='./Include/internal/pycore_pylifecycle.h' line='40' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_EvalFrameEx' mangled-name='PyEval_EvalFrameEx' filepath='Python/ceval.c' line='846' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_EvalFrameEx'>
-      <parameter type-id='type-id-312' name='f' filepath='Python/ceval.c' line='846' column='1'/>
-      <parameter type-id='type-id-8' name='throwflag' filepath='Python/ceval.c' line='846' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_ResetForceASCII' mangled-name='_Py_ResetForceASCII' filepath='./Include/internal/pycore_fileutils.h' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_ResetForceASCII'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_EvalFrame' mangled-name='PyEval_EvalFrame' filepath='Python/ceval.c' line='838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_EvalFrame'>
-      <parameter type-id='type-id-312' name='f' filepath='Python/ceval.c' line='838' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='setenv' mangled-name='setenv' filepath='/usr/include/stdlib.h' line='653' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_EvalCode' mangled-name='PyEval_EvalCode' filepath='Python/ceval.c' line='824' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_EvalCode'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1233' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1233' column='1'/>
-      <parameter type-id='type-id-100' name='z' filepath='Objects/abstract.c' line='1233' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyRuntimeState_Fini' mangled-name='_PyRuntimeState_Fini' filepath='./Include/internal/pycore_runtime.h' line='118' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_CheckRecursiveCall' mangled-name='_Py_CheckRecursiveCall' filepath='Python/ceval.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_CheckRecursiveCall'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='780' column='1'/>
-      <parameter type-id='type-id-3' name='where' filepath='Python/ceval.c' line='780' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyImport_GetModuleId' mangled-name='_PyImport_GetModuleId' filepath='./Include/cpython/import.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_SetRecursionLimit' mangled-name='Py_SetRecursionLimit' filepath='Python/ceval.c' line='765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetRecursionLimit'>
-      <parameter type-id='type-id-8' name='new_limit' filepath='Python/ceval.c' line='765' column='1'/>
+    <function-decl name='dup' mangled-name='dup' filepath='/usr/include/unistd.h' line='531' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_GetRecursionLimit' mangled-name='Py_GetRecursionLimit' filepath='Python/ceval.c' line='758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetRecursionLimit'>
-      <return type-id='type-id-8'/>
+    <function-decl name='close' mangled-name='close' filepath='/usr/include/unistd.h' line='353' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_MakePendingCalls' mangled-name='Py_MakePendingCalls' filepath='Python/ceval.c' line='695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_MakePendingCalls'>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyRuntimeState_Init' mangled-name='_PyRuntimeState_Init' filepath='./Include/internal/pycore_runtime.h' line='117' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_AddPendingCall' mangled-name='Py_AddPendingCall' filepath='Python/ceval.c' line='573' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_AddPendingCall'>
-      <parameter type-id='type-id-388' name='func' filepath='Python/ceval.c' line='573' column='1'/>
-      <parameter type-id='type-id-32' name='arg' filepath='Python/ceval.c' line='573' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyPreConfig_Read' mangled-name='_PyPreConfig_Read' filepath='./Include/internal/pycore_initconfig.h' line='134' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_AddPendingCall' mangled-name='_PyEval_AddPendingCall' filepath='Python/ceval.c' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_AddPendingCall'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/ceval.c' line='554' column='1'/>
-      <parameter type-id='type-id-388' name='func' filepath='Python/ceval.c' line='555' column='1'/>
-      <parameter type-id='type-id-32' name='arg' filepath='Python/ceval.c' line='555' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyPreConfig_Write' mangled-name='_PyPreConfig_Write' filepath='./Include/internal/pycore_initconfig.h' line='136' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_SignalReceived' mangled-name='_PyEval_SignalReceived' filepath='Python/ceval.c' line='497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SignalReceived'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/ceval.c' line='497' column='1'/>
+    <function-decl name='_PyPreConfig_InitFromConfig' mangled-name='_PyPreConfig_InitFromConfig' filepath='./Include/internal/pycore_initconfig.h' line='125' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_RestoreThread' mangled-name='PyEval_RestoreThread' filepath='Python/ceval.c' line='463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_RestoreThread'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='463' column='1'/>
+    <function-decl name='_PyConfig_Write' mangled-name='_PyConfig_Write' filepath='./Include/internal/pycore_initconfig.h' line='153' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_SaveThread' mangled-name='PyEval_SaveThread' filepath='Python/ceval.c' line='449' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_SaveThread'>
-      <return type-id='type-id-409'/>
+    <function-decl name='_Py_HashRandomization_Init' mangled-name='_Py_HashRandomization_Init' filepath='./Include/internal/pycore_pylifecycle.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_SignalAsyncExc' mangled-name='_PyEval_SignalAsyncExc' filepath='Python/ceval.c' line='442' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SignalAsyncExc'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='442' column='1'/>
+    <function-decl name='_PyInterpreterState_Enable' mangled-name='_PyInterpreterState_Enable' filepath='./Include/internal/pycore_pystate.h' line='121' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_ReleaseThread' mangled-name='PyEval_ReleaseThread' filepath='Python/ceval.c' line='394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ReleaseThread'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='394' column='1'/>
+    <function-decl name='_PyConfig_Copy' mangled-name='_PyConfig_Copy' filepath='./Include/internal/pycore_initconfig.h' line='149' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_AcquireThread' mangled-name='PyEval_AcquireThread' filepath='Python/ceval.c' line='381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_AcquireThread'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/ceval.c' line='463' column='1'/>
+    <function-decl name='_Py_FinishPendingCalls' mangled-name='_Py_FinishPendingCalls' filepath='./Include/internal/pycore_ceval.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_ReleaseLock' mangled-name='PyEval_ReleaseLock' filepath='Python/ceval.c' line='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ReleaseLock'>
+    <function-decl name='PyOS_FiniInterrupts' mangled-name='PyOS_FiniInterrupts' filepath='./Include/internal/pycore_pylifecycle.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_AcquireLock' mangled-name='PyEval_AcquireLock' filepath='Python/ceval.c' line='350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_AcquireLock'>
+    <function-decl name='_PyGC_CollectIfEnabled' mangled-name='_PyGC_CollectIfEnabled' filepath='./Include/cpython/objimpl.h' line='120' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_InitThreads' mangled-name='PyEval_InitThreads' filepath='Python/ceval.c' line='315' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_InitThreads'>
+    <function-decl name='_PyEval_Fini' mangled-name='_PyEval_Fini' filepath='./Include/internal/pycore_ceval.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyEval_ThreadsInitialized' mangled-name='PyEval_ThreadsInitialized' filepath='Python/ceval.c' line='265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyEval_ThreadsInitialized'>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyTraceMalloc_Fini' mangled-name='_PyTraceMalloc_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='84' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_FatalError_TstateNULL' mangled-name='_Py_FatalError_TstateNULL' filepath='Python/ceval.c' line='249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FatalError_TstateNULL'>
-      <parameter type-id='type-id-3' name='func' filepath='Python/ceval.c' line='249' column='1'/>
+    <function-decl name='_PyImport_Fini' mangled-name='_PyImport_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='75' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_GetSwitchInterval' mangled-name='_PyEval_GetSwitchInterval' filepath='Python/ceval_gil.h' line='327' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_GetSwitchInterval'>
-      <return type-id='type-id-33'/>
+    <function-decl name='_PyType_Fini' mangled-name='_PyType_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='78' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyEval_SetSwitchInterval' mangled-name='_PyEval_SetSwitchInterval' filepath='Python/ceval_gil.h' line='321' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyEval_SetSwitchInterval'>
-      <parameter type-id='type-id-33' name='microseconds' filepath='Python/ceval_gil.h' line='321' column='1'/>
+    <function-decl name='_PyHash_Fini' mangled-name='_PyHash_Fini' filepath='./Include/internal/pycore_pylifecycle.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_DebugMallocStats' mangled-name='_PyObject_DebugMallocStats' filepath='./Include/cpython/objimpl.h' line='97' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
+    <function-type size-in-bits='64' id='type-id-641'>
+      <parameter type-id='type-id-8'/>
+      <return type-id='type-id-4'/>
+    </function-type>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/codecs.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='Py_hexdigits' type-id='type-id-3' mangled-name='Py_hexdigits' visibility='default' filepath='./Include/codecs.h' line='234' column='1' elf-symbol-id='Py_hexdigits'/>
-    <function-decl name='PyCodec_NameReplaceErrors' mangled-name='PyCodec_NameReplaceErrors' filepath='Python/codecs.c' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_NameReplaceErrors'>
-      <parameter type-id='type-id-100' name='exc' filepath='Python/codecs.c' line='959' column='1'/>
-      <return type-id='type-id-100'/>
+  <abi-instr version='1.0' address-size='64' path='Python/pymath.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_Py_bit_length' mangled-name='_Py_bit_length' filepath='Python/pymath.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_bit_length'>
+      <parameter type-id='type-id-33' name='d' filepath='Python/pymath.c' line='88' column='1'/>
+      <return type-id='type-id-107'/>
+    </function-decl>
+    <function-decl name='_Py_set_387controlword' mangled-name='_Py_set_387controlword' filepath='Python/pymath.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_set_387controlword'>
+      <parameter type-id='type-id-209' name='cw' filepath='Python/pymath.c' line='29' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_get_387controlword' mangled-name='_Py_get_387controlword' filepath='Python/pymath.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_387controlword'>
+      <return type-id='type-id-209'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/pystate.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_Py_GetConfig' mangled-name='_Py_GetConfig' filepath='Python/pystate.c' line='1821' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetConfig'>
+      <return type-id='type-id-647'/>
     </function-decl>
-    <function-decl name='PyCodec_BackslashReplaceErrors' mangled-name='PyCodec_BackslashReplaceErrors' filepath='Python/codecs.c' line='850' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_BackslashReplaceErrors'>
-      <parameter type-id='type-id-100' name='exc' filepath='Python/codecs.c' line='850' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyInterpreterState_GetConfig' mangled-name='_PyInterpreterState_GetConfig' filepath='Python/pystate.c' line='1806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetConfig'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='1806' column='1'/>
+      <return type-id='type-id-647'/>
     </function-decl>
-    <function-decl name='PyCodec_XMLCharRefReplaceErrors' mangled-name='PyCodec_XMLCharRefReplaceErrors' filepath='Python/codecs.c' line='752' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_XMLCharRefReplaceErrors'>
-      <parameter type-id='type-id-100' name='exc' filepath='Python/codecs.c' line='959' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyInterpreterState_SetEvalFrameFunc' mangled-name='_PyInterpreterState_SetEvalFrameFunc' filepath='Python/pystate.c' line='1798' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_SetEvalFrameFunc'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='1798' column='1'/>
+      <parameter type-id='type-id-322' name='eval_frame' filepath='Python/pystate.c' line='1799' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyCodec_ReplaceErrors' mangled-name='PyCodec_ReplaceErrors' filepath='Python/codecs.c' line='699' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_ReplaceErrors'>
-      <parameter type-id='type-id-100' name='exc' filepath='Python/codecs.c' line='699' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyInterpreterState_GetEvalFrameFunc' mangled-name='_PyInterpreterState_GetEvalFrameFunc' filepath='Python/pystate.c' line='1791' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetEvalFrameFunc'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='1791' column='1'/>
+      <return type-id='type-id-322'/>
     </function-decl>
-    <function-decl name='PyCodec_IgnoreErrors' mangled-name='PyCodec_IgnoreErrors' filepath='Python/codecs.c' line='675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_IgnoreErrors'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyCrossInterpreterData_Lookup' mangled-name='_PyCrossInterpreterData_Lookup' filepath='Python/pystate.c' line='1641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Lookup'>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/pystate.c' line='1641' column='1'/>
+      <return type-id='type-id-343'/>
     </function-decl>
-    <function-decl name='PyCodec_StrictErrors' mangled-name='PyCodec_StrictErrors' filepath='Python/codecs.c' line='665' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_StrictErrors'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyCrossInterpreterData_RegisterClass' mangled-name='_PyCrossInterpreterData_RegisterClass' filepath='Python/pystate.c' line='1611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_RegisterClass'>
+      <parameter type-id='type-id-75' name='cls' filepath='Python/pystate.c' line='1611' column='1'/>
+      <parameter type-id='type-id-343' name='getdata' filepath='Python/pystate.c' line='1612' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyCodec_LookupError' mangled-name='PyCodec_LookupError' filepath='Python/codecs.c' line='638' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_LookupError'>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/bytesobject.c' line='128' column='1'/>
+    <typedef-decl name='_PyCrossInterpreterData' type-id='type-id-344' filepath='./Include/cpython/pystate.h' line='246' column='1' id='type-id-648'/>
+    <pointer-type-def type-id='type-id-648' size-in-bits='64' id='type-id-649'/>
+    <function-decl name='_PyCrossInterpreterData_NewObject' mangled-name='_PyCrossInterpreterData_NewObject' filepath='Python/pystate.c' line='1581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_NewObject'>
+      <parameter type-id='type-id-649' name='data' filepath='Python/pystate.c' line='1581' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyCodec_RegisterError' mangled-name='PyCodec_RegisterError' filepath='Python/codecs.c' line='622' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_RegisterError'>
-      <parameter type-id='type-id-3' name='name' filepath='Python/codecs.c' line='622' column='1'/>
-      <parameter type-id='type-id-100' name='error' filepath='Python/codecs.c' line='622' column='1'/>
+    <function-decl name='_PyCrossInterpreterData_Release' mangled-name='_PyCrossInterpreterData_Release' filepath='Python/pystate.c' line='1558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Release'>
+      <parameter type-id='type-id-649' name='data' filepath='Python/pystate.c' line='1558' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_GetCrossInterpreterData' mangled-name='_PyObject_GetCrossInterpreterData' filepath='Python/pystate.c' line='1489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetCrossInterpreterData'>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/pystate.c' line='1489' column='1'/>
+      <parameter type-id='type-id-649' name='data' filepath='Python/pystate.c' line='1489' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyCodec_DecodeText' mangled-name='_PyCodec_DecodeText' filepath='Python/codecs.c' line='603' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodec_DecodeText'>
-      <parameter type-id='type-id-100' name='object' filepath='Python/codecs.c' line='603' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='604' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='605' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyObject_CheckCrossInterpreterData' mangled-name='_PyObject_CheckCrossInterpreterData' filepath='Python/pystate.c' line='1457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CheckCrossInterpreterData'>
+      <parameter type-id='type-id-100' name='v' filepath='Objects/object.c' line='1393' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyCodec_EncodeText' mangled-name='_PyCodec_EncodeText' filepath='Python/codecs.c' line='590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodec_EncodeText'>
-      <parameter type-id='type-id-100' name='object' filepath='Python/codecs.c' line='603' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='604' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='605' column='1'/>
-      <return type-id='type-id-100'/>
+    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/pystate.h' line='95' column='1' id='type-id-650'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='PyGILState_LOCKED' value='0'/>
+      <enumerator name='PyGILState_UNLOCKED' value='1'/>
+    </enum-decl>
+    <typedef-decl name='PyGILState_STATE' type-id='type-id-650' filepath='./Include/pystate.h' line='96' column='1' id='type-id-651'/>
+    <function-decl name='PyGILState_Release' mangled-name='PyGILState_Release' filepath='Python/pystate.c' line='1392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_Release'>
+      <parameter type-id='type-id-651' name='oldstate' filepath='Python/pystate.c' line='1392' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyCodec_LookupTextEncoding' mangled-name='_PyCodec_LookupTextEncoding' filepath='Python/codecs.c' line='521' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodec_LookupTextEncoding'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='521' column='1'/>
-      <parameter type-id='type-id-3' name='alternate_command' filepath='Python/codecs.c' line='522' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyGILState_Ensure' mangled-name='PyGILState_Ensure' filepath='Python/pystate.c' line='1344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_Ensure'>
+      <return type-id='type-id-651'/>
     </function-decl>
-    <function-decl name='PyCodec_Decode' mangled-name='PyCodec_Decode' filepath='Python/codecs.c' line='507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_Decode'>
-      <parameter type-id='type-id-100' name='object' filepath='Python/codecs.c' line='603' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='604' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='605' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyGILState_Check' mangled-name='PyGILState_Check' filepath='Python/pystate.c' line='1324' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_Check'>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyCodec_Encode' mangled-name='PyCodec_Encode' filepath='Python/codecs.c' line='494' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_Encode'>
-      <parameter type-id='type-id-100' name='object' filepath='Python/codecs.c' line='603' column='1'/>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='604' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='605' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyGILState_GetThisThreadState' mangled-name='PyGILState_GetThisThreadState' filepath='Python/pystate.c' line='1318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_GetThisThreadState'>
+      <return type-id='type-id-409'/>
     </function-decl>
-    <function-decl name='PyCodec_StreamWriter' mangled-name='PyCodec_StreamWriter' filepath='Python/codecs.c' line='379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_StreamWriter'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='379' column='1'/>
-      <parameter type-id='type-id-100' name='stream' filepath='Python/codecs.c' line='380' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='381' column='1'/>
-      <return type-id='type-id-100'/>
+    <typedef-decl name='_PyRuntimeState' type-id='type-id-327' filepath='./Include/internal/pycore_runtime.h' line='108' column='1' id='type-id-652'/>
+    <pointer-type-def type-id='type-id-652' size-in-bits='64' id='type-id-653'/>
+    <function-decl name='_PyGILState_Reinit' mangled-name='_PyGILState_Reinit' filepath='Python/pystate.c' line='1252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGILState_Reinit'>
+      <parameter type-id='type-id-653' name='runtime' filepath='Python/pystate.c' line='1252' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyCodec_StreamReader' mangled-name='PyCodec_StreamReader' filepath='Python/codecs.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_StreamReader'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='379' column='1'/>
-      <parameter type-id='type-id-100' name='stream' filepath='Python/codecs.c' line='380' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='381' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyGILState_GetInterpreterStateUnsafe' mangled-name='_PyGILState_GetInterpreterStateUnsafe' filepath='Python/pystate.c' line='1234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGILState_GetInterpreterStateUnsafe'>
+      <return type-id='type-id-311'/>
     </function-decl>
-    <function-decl name='PyCodec_IncrementalDecoder' mangled-name='PyCodec_IncrementalDecoder' filepath='Python/codecs.c' line='366' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_IncrementalDecoder'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='366' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='367' column='1'/>
+    <function-decl name='_PyThread_CurrentFrames' mangled-name='_PyThread_CurrentFrames' filepath='Python/pystate.c' line='1136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_CurrentFrames'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyCodec_IncrementalEncoder' mangled-name='PyCodec_IncrementalEncoder' filepath='Python/codecs.c' line='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_IncrementalEncoder'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='366' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='367' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyThreadState_Next' mangled-name='PyThreadState_Next' filepath='Python/pystate.c' line='1126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Next'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='1126' column='1'/>
+      <return type-id='type-id-409'/>
     </function-decl>
-    <function-decl name='PyCodec_Decoder' mangled-name='PyCodec_Decoder' filepath='Python/codecs.c' line='355' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_Decoder'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='355' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyInterpreterState_ThreadHead' mangled-name='PyInterpreterState_ThreadHead' filepath='Python/pystate.c' line='1121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_ThreadHead'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='1121' column='1'/>
+      <return type-id='type-id-409'/>
     </function-decl>
-    <function-decl name='PyCodec_Encoder' mangled-name='PyCodec_Encoder' filepath='Python/codecs.c' line='350' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_Encoder'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='355' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyInterpreterState_Next' mangled-name='PyInterpreterState_Next' filepath='Python/pystate.c' line='1116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Next'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='1116' column='1'/>
+      <return type-id='type-id-311'/>
     </function-decl>
-    <function-decl name='_PyCodecInfo_GetIncrementalEncoder' mangled-name='_PyCodecInfo_GetIncrementalEncoder' filepath='Python/codecs.c' line='336' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodecInfo_GetIncrementalEncoder'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='7267' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7267' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyInterpreterState_Main' mangled-name='PyInterpreterState_Main' filepath='Python/pystate.c' line='1110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Main'>
+      <return type-id='type-id-311'/>
     </function-decl>
-    <function-decl name='_PyCodecInfo_GetIncrementalDecoder' mangled-name='_PyCodecInfo_GetIncrementalDecoder' filepath='Python/codecs.c' line='329' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodecInfo_GetIncrementalDecoder'>
-      <parameter type-id='type-id-100' name='unicode' filepath='Objects/unicodeobject.c' line='7267' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Objects/unicodeobject.c' line='7267' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyInterpreterState_Head' mangled-name='PyInterpreterState_Head' filepath='Python/pystate.c' line='1104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Head'>
+      <return type-id='type-id-311'/>
     </function-decl>
-    <function-decl name='PyCodec_KnownEncoding' mangled-name='PyCodec_KnownEncoding' filepath='Python/codecs.c' line='213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_KnownEncoding'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='213' column='1'/>
+    <function-decl name='PyThreadState_SetAsyncExc' mangled-name='PyThreadState_SetAsyncExc' filepath='Python/pystate.c' line='1062' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_SetAsyncExc'>
+      <parameter type-id='type-id-33' name='id' filepath='Python/pystate.c' line='1062' column='1'/>
+      <parameter type-id='type-id-100' name='exc' filepath='Python/pystate.c' line='1062' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyCodec_Forget' mangled-name='_PyCodec_Forget' filepath='Python/codecs.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodec_Forget'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='186' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyThreadState_GetID' mangled-name='PyThreadState_GetID' filepath='Python/pystate.c' line='1046' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetID'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='1046' column='1'/>
+      <return type-id='type-id-238'/>
     </function-decl>
-    <function-decl name='_PyCodec_Lookup' mangled-name='_PyCodec_Lookup' filepath='Python/codecs.c' line='101' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCodec_Lookup'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='101' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyThreadState_GetFrame' mangled-name='PyThreadState_GetFrame' filepath='Python/pystate.c' line='1036' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetFrame'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='1036' column='1'/>
+      <return type-id='type-id-234'/>
     </function-decl>
-    <function-decl name='PyCodec_Register' mangled-name='PyCodec_Register' filepath='Python/codecs.c' line='34' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCodec_Register'>
-      <parameter type-id='type-id-100' name='search_function' filepath='Python/codecs.c' line='34' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyThreadState_GetInterpreter' mangled-name='PyThreadState_GetInterpreter' filepath='Python/pystate.c' line='1028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetInterpreter'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='1028' column='1'/>
+      <return type-id='type-id-311'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/compile.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyCompile_OpcodeStackEffect' mangled-name='PyCompile_OpcodeStackEffect' filepath='Python/compile.c' line='1132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCompile_OpcodeStackEffect'>
-      <parameter type-id='type-id-8' name='c1' filepath='Parser/token.c' line='109' column='1'/>
-      <parameter type-id='type-id-8' name='c2' filepath='Parser/token.c' line='109' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyThreadState_GetDict' mangled-name='PyThreadState_GetDict' filepath='Python/pystate.c' line='1017' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetDict'>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyCompile_OpcodeStackEffectWithJump' mangled-name='PyCompile_OpcodeStackEffectWithJump' filepath='Python/compile.c' line='1126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCompile_OpcodeStackEffectWithJump'>
-      <parameter type-id='type-id-8' name='c1' filepath='Parser/token.c' line='193' column='1'/>
-      <parameter type-id='type-id-8' name='c2' filepath='Parser/token.c' line='193' column='1'/>
-      <parameter type-id='type-id-8' name='c3' filepath='Parser/token.c' line='193' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyThreadState_GetDict' mangled-name='_PyThreadState_GetDict' filepath='Python/pystate.c' line='1003' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_GetDict'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='1003' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyNode_Compile' mangled-name='PyNode_Compile' filepath='Python/compile.c' line='394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyNode_Compile'>
-      <parameter type-id='type-id-9' name='n' filepath='Python/compile.c' line='394' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/compile.c' line='394' column='1'/>
-      <return type-id='type-id-412'/>
+    <function-decl name='PyThreadState_Swap' mangled-name='PyThreadState_Swap' filepath='Python/pystate.c' line='991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Swap'>
+      <parameter type-id='type-id-409' name='newts' filepath='Python/pystate.c' line='991' column='1'/>
+      <return type-id='type-id-409'/>
     </function-decl>
-    <function-decl name='PyAST_CompileEx' mangled-name='PyAST_CompileEx' filepath='Python/compile.c' line='379' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAST_CompileEx'>
-      <parameter type-id='type-id-204' name='mod' filepath='Python/compile.c' line='379' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/compile.c' line='379' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/compile.c' line='379' column='1'/>
-      <parameter type-id='type-id-8' name='optimize' filepath='Python/compile.c' line='380' column='1'/>
-      <parameter type-id='type-id-230' name='arena' filepath='Python/compile.c' line='380' column='1'/>
-      <return type-id='type-id-412'/>
+    <pointer-type-def type-id='type-id-333' size-in-bits='64' id='type-id-654'/>
+    <function-decl name='_PyThreadState_Swap' mangled-name='_PyThreadState_Swap' filepath='Python/pystate.c' line='966' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Swap'>
+      <parameter type-id='type-id-654' name='gilstate' filepath='Python/pystate.c' line='966' column='1'/>
+      <parameter type-id='type-id-409' name='newts' filepath='Python/pystate.c' line='966' column='1'/>
+      <return type-id='type-id-409'/>
     </function-decl>
-    <function-decl name='PyAST_CompileObject' mangled-name='PyAST_CompileObject' filepath='Python/compile.c' line='318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyAST_CompileObject'>
-      <parameter type-id='type-id-204' name='mod' filepath='Python/compile.c' line='318' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/compile.c' line='318' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/compile.c' line='318' column='1'/>
-      <parameter type-id='type-id-8' name='optimize' filepath='Python/compile.c' line='319' column='1'/>
-      <parameter type-id='type-id-230' name='arena' filepath='Python/compile.c' line='319' column='1'/>
-      <return type-id='type-id-412'/>
+    <function-decl name='PyThreadState_Get' mangled-name='PyThreadState_Get' filepath='Python/pystate.c' line='957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Get'>
+      <return type-id='type-id-409'/>
     </function-decl>
-    <function-decl name='_Py_Mangle' mangled-name='_Py_Mangle' filepath='Python/compile.c' line='231' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Mangle'>
-      <parameter type-id='type-id-100' name='privateobj' filepath='Python/compile.c' line='231' column='1'/>
-      <parameter type-id='type-id-100' name='ident' filepath='Python/compile.c' line='231' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyThreadState_UncheckedGet' mangled-name='_PyThreadState_UncheckedGet' filepath='Python/pystate.c' line='950' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_UncheckedGet'>
+      <return type-id='type-id-409'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/context.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyContext_Type' type-id='type-id-182' mangled-name='PyContext_Type' visibility='default' filepath='./Include/context.h' line='10' column='1' elf-symbol-id='PyContext_Type'/>
-    <var-decl name='PyContextVar_Type' type-id='type-id-182' mangled-name='PyContextVar_Type' visibility='default' filepath='./Include/context.h' line='13' column='1' elf-symbol-id='PyContextVar_Type'/>
-    <var-decl name='PyContextToken_Type' type-id='type-id-182' mangled-name='PyContextToken_Type' visibility='default' filepath='./Include/context.h' line='16' column='1' elf-symbol-id='PyContextToken_Type'/>
-    <function-decl name='PyContextVar_Reset' mangled-name='PyContextVar_Reset' filepath='Python/context.c' line='289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContextVar_Reset'>
-      <parameter type-id='type-id-100' name='ovar' filepath='Python/context.c' line='289' column='1'/>
-      <parameter type-id='type-id-100' name='otok' filepath='Python/context.c' line='289' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyThreadState_DeleteExcept' mangled-name='_PyThreadState_DeleteExcept' filepath='Python/pystate.c' line='915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_DeleteExcept'>
+      <parameter type-id='type-id-653' name='runtime' filepath='Python/pystate.c' line='915' column='1'/>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='915' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyContextVar_Set' mangled-name='PyContextVar_Set' filepath='Python/context.c' line='253' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContextVar_Set'>
-      <parameter type-id='type-id-100' name='privateobj' filepath='Python/compile.c' line='231' column='1'/>
-      <parameter type-id='type-id-100' name='ident' filepath='Python/compile.c' line='231' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyThreadState_DeleteCurrent' mangled-name='PyThreadState_DeleteCurrent' filepath='Python/pystate.c' line='899' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_DeleteCurrent'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyContextVar_Get' mangled-name='PyContextVar_Get' filepath='Python/context.c' line='190' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContextVar_Get'>
-      <parameter type-id='type-id-100' name='ovar' filepath='Python/context.c' line='190' column='1'/>
-      <parameter type-id='type-id-100' name='def' filepath='Python/context.c' line='190' column='1'/>
-      <parameter type-id='type-id-303' name='val' filepath='Python/context.c' line='190' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyThreadState_DeleteCurrent' mangled-name='_PyThreadState_DeleteCurrent' filepath='Python/pystate.c' line='888' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_DeleteCurrent'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='888' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyContextVar_New' mangled-name='PyContextVar_New' filepath='Python/context.c' line='177' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContextVar_New'>
-      <parameter type-id='type-id-3' name='name' filepath='Python/context.c' line='177' column='1'/>
-      <parameter type-id='type-id-100' name='def' filepath='Python/context.c' line='177' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyThreadState_Delete' mangled-name='PyThreadState_Delete' filepath='Python/pystate.c' line='881' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Delete'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='881' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyContext_Exit' mangled-name='PyContext_Exit' filepath='Python/context.c' line='168' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_Exit'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='284' column='1'/>
+    <function-decl name='PyThreadState_Clear' mangled-name='PyThreadState_Clear' filepath='Python/pystate.c' line='783' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Clear'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='783' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-487' size-in-bits='64' id='type-id-655'/>
+    <function-decl name='PyState_RemoveModule' mangled-name='PyState_RemoveModule' filepath='Python/pystate.c' line='726' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyState_RemoveModule'>
+      <parameter type-id='type-id-655' name='def' filepath='Python/pystate.c' line='726' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyContext_Enter' mangled-name='PyContext_Enter' filepath='Python/context.c' line='130' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_Enter'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='284' column='1'/>
+    <function-decl name='PyState_AddModule' mangled-name='PyState_AddModule' filepath='Python/pystate.c' line='705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyState_AddModule'>
+      <parameter type-id='type-id-100' name='module' filepath='Python/pystate.c' line='705' column='1'/>
+      <parameter type-id='type-id-655' name='def' filepath='Python/pystate.c' line='705' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyContext_CopyCurrent' mangled-name='PyContext_CopyCurrent' filepath='Python/context.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_CopyCurrent'>
+    <function-decl name='PyState_FindModule' mangled-name='PyState_FindModule' filepath='Python/pystate.c' line='653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyState_FindModule'>
+      <parameter type-id='type-id-655' name='module' filepath='Python/pystate.c' line='653' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyContext_Copy' mangled-name='PyContext_Copy' filepath='Python/context.c' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_Copy'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyThreadState_Init' mangled-name='_PyThreadState_Init' filepath='Python/pystate.c' line='647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Init'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='881' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyContext_New' mangled-name='PyContext_New' filepath='Python/context.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyContext_New'>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyThreadState_Prealloc' mangled-name='_PyThreadState_Prealloc' filepath='Python/pystate.c' line='641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Prealloc'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='641' column='1'/>
+      <return type-id='type-id-409'/>
     </function-decl>
-    <function-decl name='_PyContext_NewHamtForTests' mangled-name='_PyContext_NewHamtForTests' filepath='Python/context.c' line='72' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyContext_NewHamtForTests'>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyThreadState_New' mangled-name='PyThreadState_New' filepath='Python/pystate.c' line='635' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_New'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='641' column='1'/>
+      <return type-id='type-id-409'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/errors.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyErr_ProgramTextObject' mangled-name='PyErr_ProgramTextObject' filepath='Python/errors.c' line='1696' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_ProgramTextObject'>
-      <parameter type-id='type-id-100' name='n' filepath='Objects/abstract.c' line='1569' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Objects/abstract.c' line='1569' column='1'/>
+    <function-decl name='PyInterpreterState_GetDict' mangled-name='PyInterpreterState_GetDict' filepath='Python/pystate.c' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_GetDict'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='554' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyErr_ProgramText' mangled-name='PyErr_ProgramText' filepath='Python/errors.c' line='1684' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_ProgramText'>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/errors.c' line='1684' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1684' column='1'/>
+    <function-decl name='_PyInterpreterState_GetMainModule' mangled-name='_PyInterpreterState_GetMainModule' filepath='Python/pystate.c' line='544' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetMainModule'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='554' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyErr_SyntaxLocationEx' mangled-name='PyErr_SyntaxLocationEx' filepath='Python/errors.c' line='1623' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SyntaxLocationEx'>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/errors.c' line='1623' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1623' column='1'/>
-      <parameter type-id='type-id-8' name='col_offset' filepath='Python/errors.c' line='1623' column='1'/>
-      <return type-id='type-id-4'/>
-    </function-decl>
-    <function-decl name='PyErr_SyntaxLocationObject' mangled-name='PyErr_SyntaxLocationObject' filepath='Python/errors.c' line='1550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SyntaxLocationObject'>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/errors.c' line='1550' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1550' column='1'/>
-      <parameter type-id='type-id-8' name='col_offset' filepath='Python/errors.c' line='1550' column='1'/>
+    <function-decl name='_PyInterpreterState_RequireIDRef' mangled-name='_PyInterpreterState_RequireIDRef' filepath='Python/pystate.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_RequireIDRef'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='538' column='1'/>
+      <parameter type-id='type-id-8' name='required' filepath='Python/pystate.c' line='538' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_SyntaxLocation' mangled-name='PyErr_SyntaxLocation' filepath='Python/errors.c' line='1539' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SyntaxLocation'>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/errors.c' line='1539' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='1539' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='_PyInterpreterState_RequiresIDRef' mangled-name='_PyInterpreterState_RequiresIDRef' filepath='Python/pystate.c' line='532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_RequiresIDRef'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/import.c' line='326' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyErr_WriteUnraisable' mangled-name='PyErr_WriteUnraisable' filepath='Python/errors.c' line='1529' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_WriteUnraisable'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='1822' column='1'/>
+    <function-decl name='_PyInterpreterState_IDDecref' mangled-name='_PyInterpreterState_IDDecref' filepath='Python/pystate.c' line='509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_IDDecref'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='509' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyErr_WriteUnraisableMsg' mangled-name='_PyErr_WriteUnraisableMsg' filepath='Python/errors.c' line='1426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_WriteUnraisableMsg'>
-      <parameter type-id='type-id-3' name='err_msg_str' filepath='Python/errors.c' line='1426' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/errors.c' line='1426' column='1'/>
+    <function-decl name='_PyInterpreterState_IDIncref' mangled-name='_PyInterpreterState_IDIncref' filepath='Python/pystate.c' line='497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_IDIncref'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='497' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_NewExceptionWithDoc' mangled-name='PyErr_NewExceptionWithDoc' filepath='Python/errors.c' line='1136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_NewExceptionWithDoc'>
-      <parameter type-id='type-id-3' name='name' filepath='Python/errors.c' line='1136' column='1'/>
-      <parameter type-id='type-id-3' name='doc' filepath='Python/errors.c' line='1136' column='1'/>
-      <parameter type-id='type-id-100' name='base' filepath='Python/errors.c' line='1137' column='1'/>
-      <parameter type-id='type-id-100' name='dict' filepath='Python/errors.c' line='1137' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyErr_NewException' mangled-name='PyErr_NewException' filepath='Python/errors.c' line='1078' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_NewException'>
-      <parameter type-id='type-id-3' name='name' filepath='Python/errors.c' line='1078' column='1'/>
-      <parameter type-id='type-id-100' name='base' filepath='Python/errors.c' line='1078' column='1'/>
-      <parameter type-id='type-id-100' name='dict' filepath='Python/errors.c' line='1078' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyInterpreterState_IDInitref' mangled-name='_PyInterpreterState_IDInitref' filepath='Python/pystate.c' line='480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_IDInitref'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='480' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyErr_Format' mangled-name='PyErr_Format' filepath='Python/errors.c' line='1062' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Format'>
-      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='1062' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1062' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyInterpreterState_LookUpID' mangled-name='_PyInterpreterState_LookUpID' filepath='Python/pystate.c' line='462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_LookUpID'>
+      <parameter type-id='type-id-316' name='requested_id' filepath='Python/pystate.c' line='462' column='1'/>
+      <return type-id='type-id-311'/>
     </function-decl>
-    <function-decl name='_PyErr_Format' mangled-name='_PyErr_Format' filepath='Python/errors.c' line='1046' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Format'>
-      <parameter type-id='type-id-249' name='tstate' filepath='Python/errors.c' line='1046' column='1'/>
-      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='1046' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1047' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyInterpreterState_Get' mangled-name='PyInterpreterState_Get' filepath='Python/pystate.c' line='421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Get'>
+      <return type-id='type-id-311'/>
     </function-decl>
-    <function-decl name='PyErr_FormatV' mangled-name='PyErr_FormatV' filepath='Python/errors.c' line='1038' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_FormatV'>
-      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='1038' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1038' column='1'/>
-      <parameter type-id='type-id-306' name='vargs' filepath='Python/errors.c' line='1038' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyInterpreterState_DeleteExceptMain' mangled-name='_PyInterpreterState_DeleteExceptMain' filepath='Python/pystate.c' line='381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_DeleteExceptMain'>
+      <parameter type-id='type-id-653' name='runtime' filepath='Python/pystate.c' line='381' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_BadInternalCall' mangled-name='PyErr_BadInternalCall' filepath='Python/errors.c' line='1009' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_BadInternalCall'>
+    <function-decl name='PyInterpreterState_Delete' mangled-name='PyInterpreterState_Delete' filepath='Python/pystate.c' line='335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Delete'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='335' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyErr_BadInternalCall' mangled-name='_PyErr_BadInternalCall' filepath='Python/errors.c' line='997' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_BadInternalCall'>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/errors.c' line='997' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/errors.c' line='997' column='1'/>
+    <function-decl name='PyInterpreterState_Clear' mangled-name='PyInterpreterState_Clear' filepath='Python/pystate.c' line='277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Clear'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='277' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_SetImportError' mangled-name='PyErr_SetImportError' filepath='Python/errors.c' line='991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetImportError'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1233' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1233' column='1'/>
-      <parameter type-id='type-id-100' name='z' filepath='Objects/abstract.c' line='1233' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyInterpreterState_New' mangled-name='PyInterpreterState_New' filepath='Python/pystate.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_New'>
+      <return type-id='type-id-311'/>
     </function-decl>
-    <function-decl name='PyErr_SetImportErrorSubclass' mangled-name='PyErr_SetImportErrorSubclass' filepath='Python/errors.c' line='938' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetImportErrorSubclass'>
-      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='938' column='1'/>
-      <parameter type-id='type-id-100' name='msg' filepath='Python/errors.c' line='938' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Python/errors.c' line='939' column='1'/>
-      <parameter type-id='type-id-100' name='path' filepath='Python/errors.c' line='939' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyInterpreterState_Enable' mangled-name='_PyInterpreterState_Enable' filepath='Python/pystate.c' line='171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_Enable'>
+      <parameter type-id='type-id-653' name='runtime' filepath='Python/pystate.c' line='171' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='PyErr_SetFromErrno' mangled-name='PyErr_SetFromErrno' filepath='Python/errors.c' line='788' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrno'>
-      <parameter type-id='type-id-100' name='input' filepath='Objects/bytearrayobject.c' line='88' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyRuntimeState_ReInitThreads' mangled-name='_PyRuntimeState_ReInitThreads' filepath='Python/pystate.c' line='131' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntimeState_ReInitThreads'>
+      <parameter type-id='type-id-653' name='runtime' filepath='Python/pystate.c' line='131' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_SetFromErrnoWithFilename' mangled-name='PyErr_SetFromErrnoWithFilename' filepath='Python/errors.c' line='768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrnoWithFilename'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2210' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2210' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyRuntimeState_Fini' mangled-name='_PyRuntimeState_Fini' filepath='Python/pystate.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntimeState_Fini'>
+      <parameter type-id='type-id-653' name='runtime' filepath='Python/pystate.c' line='106' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_SetFromErrnoWithFilenameObjects' mangled-name='PyErr_SetFromErrnoWithFilenameObjects' filepath='Python/errors.c' line='669' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrnoWithFilenameObjects'>
-      <parameter type-id='type-id-100' name='exc' filepath='Python/errors.c' line='669' column='1'/>
-      <parameter type-id='type-id-100' name='filenameObject' filepath='Python/errors.c' line='669' column='1'/>
-      <parameter type-id='type-id-100' name='filenameObject2' filepath='Python/errors.c' line='669' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyRuntimeState_Init' mangled-name='_PyRuntimeState_Init' filepath='Python/pystate.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntimeState_Init'>
+      <parameter type-id='type-id-653' name='runtime' filepath='Python/pystate.c' line='92' column='1'/>
+      <return type-id='type-id-595'/>
     </function-decl>
-    <function-decl name='PyErr_SetFromErrnoWithFilenameObject' mangled-name='PyErr_SetFromErrnoWithFilenameObject' filepath='Python/errors.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetFromErrnoWithFilenameObject'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <parameter type-id='type-id-100' name='w' filepath='Objects/abstract.c' line='1226' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyInterpreterState_GetID' mangled-name='PyInterpreterState_GetID' filepath='Python/pystate.c' line='434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_GetID'>
+      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='434' column='1'/>
+      <return type-id='type-id-316'/>
     </function-decl>
-    <function-decl name='PyErr_NoMemory' mangled-name='PyErr_NoMemory' filepath='Python/errors.c' line='656' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_NoMemory'>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyState_AddModule' mangled-name='_PyState_AddModule' filepath='Python/pystate.c' line='672' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyState_AddModule'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='672' column='1'/>
+      <parameter type-id='type-id-100' name='module' filepath='Python/pystate.c' line='672' column='1'/>
+      <parameter type-id='type-id-655' name='def' filepath='Python/pystate.c' line='672' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyErr_NoMemory' mangled-name='_PyErr_NoMemory' filepath='Python/errors.c' line='643' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_NoMemory'>
-      <parameter type-id='type-id-249' name='tstate' filepath='Python/errors.c' line='643' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyThread_tss_get' mangled-name='PyThread_tss_get' filepath='./Include/pythread.h' line='162' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_BadArgument' mangled-name='PyErr_BadArgument' filepath='Python/errors.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_BadArgument'>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyThread_tss_is_created' mangled-name='PyThread_tss_is_created' filepath='./Include/pythread.h' line='158' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyErr_FormatFromCause' mangled-name='_PyErr_FormatFromCause' filepath='Python/errors.c' line='617' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_FormatFromCause'>
-      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='1062' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1062' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyThread_tss_delete' mangled-name='PyThread_tss_delete' filepath='./Include/pythread.h' line='160' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyErr_FormatFromCauseTstate' mangled-name='_PyErr_FormatFromCauseTstate' filepath='Python/errors.c' line='602' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_FormatFromCauseTstate'>
-      <parameter type-id='type-id-249' name='tstate' filepath='Python/errors.c' line='1046' column='1'/>
-      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='1046' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/errors.c' line='1047' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyThread_tss_create' mangled-name='PyThread_tss_create' filepath='./Include/pythread.h' line='159' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyErr_ChainStackItem' mangled-name='_PyErr_ChainStackItem' filepath='Python/errors.c' line='526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_ChainStackItem'>
-      <parameter type-id='type-id-237' name='exc_info' filepath='Python/errors.c' line='526' column='1'/>
+    <function-decl name='PyThread_tss_set' mangled-name='PyThread_tss_set' filepath='./Include/pythread.h' line='161' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyErr_ChainExceptions' mangled-name='_PyErr_ChainExceptions' filepath='Python/errors.c' line='484' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_ChainExceptions'>
-      <parameter type-id='type-id-100' name='exc' filepath='Python/errors.c' line='484' column='1'/>
-      <parameter type-id='type-id-100' name='val' filepath='Python/errors.c' line='484' column='1'/>
-      <parameter type-id='type-id-100' name='tb' filepath='Python/errors.c' line='484' column='1'/>
+    <function-decl name='_PyEval_SignalAsyncExc' mangled-name='_PyEval_SignalAsyncExc' filepath='./Include/internal/pycore_ceval.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_SetExcInfo' mangled-name='PyErr_SetExcInfo' filepath='Python/errors.c' line='460' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetExcInfo'>
-      <parameter type-id='type-id-100' name='p_type' filepath='Python/errors.c' line='460' column='1'/>
-      <parameter type-id='type-id-100' name='p_value' filepath='Python/errors.c' line='460' column='1'/>
-      <parameter type-id='type-id-100' name='p_traceback' filepath='Python/errors.c' line='460' column='1'/>
+    <function-decl name='_PyEval_ReleaseLock' mangled-name='_PyEval_ReleaseLock' filepath='./Include/internal/pycore_ceval.h' line='57' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_GetExcInfo' mangled-name='PyErr_GetExcInfo' filepath='Python/errors.c' line='453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_GetExcInfo'>
-      <parameter type-id='type-id-303' name='p_type' filepath='Python/errors.c' line='453' column='1'/>
-      <parameter type-id='type-id-303' name='p_value' filepath='Python/errors.c' line='453' column='1'/>
-      <parameter type-id='type-id-303' name='p_traceback' filepath='Python/errors.c' line='453' column='1'/>
+    <function-decl name='PyMapping_GetItemString' mangled-name='PyMapping_GetItemString' filepath='./Include/abstract.h' line='825' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyErr_GetExcInfo' mangled-name='_PyErr_GetExcInfo' filepath='Python/errors.c' line='438' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_GetExcInfo'>
-      <parameter type-id='type-id-249' name='tstate' filepath='Python/errors.c' line='438' column='1'/>
-      <parameter type-id='type-id-303' name='p_type' filepath='Python/errors.c' line='439' column='1'/>
-      <parameter type-id='type-id-303' name='p_value' filepath='Python/errors.c' line='439' column='1'/>
-      <parameter type-id='type-id-303' name='p_traceback' filepath='Python/errors.c' line='439' column='1'/>
+    <function-decl name='Py_EndInterpreter' mangled-name='Py_EndInterpreter' filepath='./Include/pylifecycle.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_Clear' mangled-name='PyErr_Clear' filepath='Python/errors.c' line='430' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Clear'>
+    <function-decl name='_PyEval_FiniState' mangled-name='_PyEval_FiniState' filepath='./Include/internal/pycore_ceval.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyErr_Clear' mangled-name='_PyErr_Clear' filepath='Python/errors.c' line='423' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Clear'>
-      <parameter type-id='type-id-249' name='tstate' filepath='Python/errors.c' line='423' column='1'/>
+    <function-decl name='PyMem_RawCalloc' mangled-name='PyMem_RawCalloc' filepath='./Include/cpython/pymem.h' line='10' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_Fetch' mangled-name='PyErr_Fetch' filepath='Python/errors.c' line='415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Fetch'>
-      <parameter type-id='type-id-303' name='p_type' filepath='Python/errors.c' line='453' column='1'/>
-      <parameter type-id='type-id-303' name='p_value' filepath='Python/errors.c' line='453' column='1'/>
-      <parameter type-id='type-id-303' name='p_traceback' filepath='Python/errors.c' line='453' column='1'/>
+    <function-decl name='_PyEval_InitState' mangled-name='_PyEval_InitState' filepath='./Include/internal/pycore_ceval.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyErr_Fetch' mangled-name='_PyErr_Fetch' filepath='Python/errors.c' line='401' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Fetch'>
-      <parameter type-id='type-id-249' name='tstate' filepath='Python/errors.c' line='401' column='1'/>
-      <parameter type-id='type-id-303' name='p_type' filepath='Python/errors.c' line='401' column='1'/>
-      <parameter type-id='type-id-303' name='p_value' filepath='Python/errors.c' line='401' column='1'/>
-      <parameter type-id='type-id-303' name='p_traceback' filepath='Python/errors.c' line='402' column='1'/>
+    <function-decl name='_PyGC_InitState' mangled-name='_PyGC_InitState' filepath='./Include/internal/pycore_gc.h' line='164' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_NormalizeException' mangled-name='PyErr_NormalizeException' filepath='Python/errors.c' line='393' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_NormalizeException'>
-      <parameter type-id='type-id-303' name='p_type' filepath='Python/errors.c' line='453' column='1'/>
-      <parameter type-id='type-id-303' name='p_value' filepath='Python/errors.c' line='453' column='1'/>
-      <parameter type-id='type-id-303' name='p_traceback' filepath='Python/errors.c' line='453' column='1'/>
+    <function-decl name='_PyEval_InitRuntimeState' mangled-name='_PyEval_InitRuntimeState' filepath='./Include/internal/pycore_ceval.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyErr_NormalizeException' mangled-name='_PyErr_NormalizeException' filepath='Python/errors.c' line='289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_NormalizeException'>
-      <parameter type-id='type-id-249' name='tstate' filepath='Python/errors.c' line='289' column='1'/>
-      <parameter type-id='type-id-303' name='exc' filepath='Python/errors.c' line='289' column='1'/>
-      <parameter type-id='type-id-303' name='val' filepath='Python/errors.c' line='290' column='1'/>
-      <parameter type-id='type-id-303' name='tb' filepath='Python/errors.c' line='290' column='1'/>
+    <function-decl name='PyPreConfig_InitPythonConfig' mangled-name='PyPreConfig_InitPythonConfig' filepath='./Include/cpython/initconfig.h' line='127' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_ExceptionMatches' mangled-name='PyErr_ExceptionMatches' filepath='Python/errors.c' line='271' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_ExceptionMatches'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='284' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/pythonrun.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyRun_InteractiveLoop' mangled-name='PyRun_InteractiveLoop' filepath='Python/pythonrun.c' line='1873' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveLoop'>
+      <parameter type-id='type-id-223' name='f' filepath='Python/pythonrun.c' line='1873' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1873' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyErr_ExceptionMatches' mangled-name='_PyErr_ExceptionMatches' filepath='Python/errors.c' line='264' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_ExceptionMatches'>
-      <parameter type-id='type-id-249' name='tstate' filepath='Python/errors.c' line='264' column='1'/>
-      <parameter type-id='type-id-100' name='exc' filepath='Python/errors.c' line='264' column='1'/>
+    <function-decl name='PyRun_InteractiveOne' mangled-name='PyRun_InteractiveOne' filepath='Python/pythonrun.c' line='1866' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveOne'>
+      <parameter type-id='type-id-223' name='f' filepath='Python/pythonrun.c' line='1873' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1873' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyErr_GivenExceptionMatches' mangled-name='PyErr_GivenExceptionMatches' filepath='Python/errors.c' line='232' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_GivenExceptionMatches'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/funcobject.c' line='218' column='1'/>
-      <parameter type-id='type-id-100' name='annotations' filepath='Objects/funcobject.c' line='218' column='1'/>
+    <function-decl name='Py_CompileStringFlags' mangled-name='Py_CompileStringFlags' filepath='Python/pythonrun.c' line='1858' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_CompileStringFlags'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1858' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1858' column='1'/>
+      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1858' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1859' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='Py_CompileString' mangled-name='Py_CompileString' filepath='Python/pythonrun.c' line='1851' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_CompileString'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1851' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1851' column='1'/>
+      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1851' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyRun_SimpleString' mangled-name='PyRun_SimpleString' filepath='Python/pythonrun.c' line='1844' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleString'>
+      <parameter type-id='type-id-3' name='s' filepath='Python/pythonrun.c' line='1844' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyErr_Occurred' mangled-name='PyErr_Occurred' filepath='Python/errors.c' line='221' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Occurred'>
+    <function-decl name='PyRun_String' mangled-name='PyRun_String' filepath='Python/pythonrun.c' line='1837' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_String'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1837' column='1'/>
+      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1837' column='1'/>
+      <parameter type-id='type-id-100' name='g' filepath='Python/pythonrun.c' line='1837' column='1'/>
+      <parameter type-id='type-id-100' name='l' filepath='Python/pythonrun.c' line='1837' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyErr_SetString' mangled-name='PyErr_SetString' filepath='Python/errors.c' line='213' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetString'>
-      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='213' column='1'/>
-      <parameter type-id='type-id-3' name='string' filepath='Python/errors.c' line='213' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='PyRun_SimpleFileEx' mangled-name='PyRun_SimpleFileEx' filepath='Python/pythonrun.c' line='1829' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleFileEx'>
+      <parameter type-id='type-id-223' name='f' filepath='Python/pythonrun.c' line='1829' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1829' column='1'/>
+      <parameter type-id='type-id-8' name='c' filepath='Python/pythonrun.c' line='1829' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyErr_SetString' mangled-name='_PyErr_SetString' filepath='Python/errors.c' line='204' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_SetString'>
-      <parameter type-id='type-id-249' name='tstate' filepath='Python/errors.c' line='204' column='1'/>
-      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='204' column='1'/>
-      <parameter type-id='type-id-3' name='string' filepath='Python/errors.c' line='205' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='PyRun_SimpleFile' mangled-name='PyRun_SimpleFile' filepath='Python/pythonrun.c' line='1822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleFile'>
+      <parameter type-id='type-id-223' name='f' filepath='Python/pythonrun.c' line='1873' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1873' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyErr_SetNone' mangled-name='PyErr_SetNone' filepath='Python/errors.c' line='196' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetNone'>
-      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='556' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='PyRun_FileFlags' mangled-name='PyRun_FileFlags' filepath='Python/pythonrun.c' line='1814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_FileFlags'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1814' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1814' column='1'/>
+      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1814' column='1'/>
+      <parameter type-id='type-id-100' name='g' filepath='Python/pythonrun.c' line='1814' column='1'/>
+      <parameter type-id='type-id-100' name='l' filepath='Python/pythonrun.c' line='1814' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1815' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyErr_SetNone' mangled-name='_PyErr_SetNone' filepath='Python/errors.c' line='189' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_SetNone'>
-      <parameter type-id='type-id-249' name='tstate' filepath='Python/errors.c' line='189' column='1'/>
-      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='189' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='PyRun_FileEx' mangled-name='PyRun_FileEx' filepath='Python/pythonrun.c' line='1807' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_FileEx'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1807' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1807' column='1'/>
+      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1807' column='1'/>
+      <parameter type-id='type-id-100' name='g' filepath='Python/pythonrun.c' line='1807' column='1'/>
+      <parameter type-id='type-id-100' name='l' filepath='Python/pythonrun.c' line='1807' column='1'/>
+      <parameter type-id='type-id-8' name='c' filepath='Python/pythonrun.c' line='1807' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyErr_SetKeyError' mangled-name='_PyErr_SetKeyError' filepath='Python/errors.c' line='176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_SetKeyError'>
-      <parameter type-id='type-id-100' name='op' filepath='Objects/object.c' line='2030' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='PyRun_File' mangled-name='PyRun_File' filepath='Python/pythonrun.c' line='1800' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_File'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1800' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1800' column='1'/>
+      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1800' column='1'/>
+      <parameter type-id='type-id-100' name='g' filepath='Python/pythonrun.c' line='1800' column='1'/>
+      <parameter type-id='type-id-100' name='l' filepath='Python/pythonrun.c' line='1800' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyErr_SetObject' mangled-name='PyErr_SetObject' filepath='Python/errors.c' line='166' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_SetObject'>
-      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='166' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Python/errors.c' line='166' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='PyRun_AnyFileFlags' mangled-name='PyRun_AnyFileFlags' filepath='Python/pythonrun.c' line='1793' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFileFlags'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1793' column='1'/>
+      <parameter type-id='type-id-3' name='name' filepath='Python/pythonrun.c' line='1793' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1793' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyErr_SetObject' mangled-name='_PyErr_SetObject' filepath='Python/errors.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_SetObject'>
-      <parameter type-id='type-id-249' name='tstate' filepath='Python/errors.c' line='102' column='1'/>
-      <parameter type-id='type-id-100' name='exception' filepath='Python/errors.c' line='102' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Python/errors.c' line='102' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='PyRun_AnyFileEx' mangled-name='PyRun_AnyFileEx' filepath='Python/pythonrun.c' line='1786' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFileEx'>
+      <parameter type-id='type-id-223' name='f' filepath='Python/pythonrun.c' line='1829' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1829' column='1'/>
+      <parameter type-id='type-id-8' name='c' filepath='Python/pythonrun.c' line='1829' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyErr_GetTopmostException' mangled-name='_PyErr_GetTopmostException' filepath='Python/errors.c' line='76' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_GetTopmostException'>
-      <parameter type-id='type-id-249' name='tstate' filepath='Python/errors.c' line='76' column='1'/>
-      <return type-id='type-id-237'/>
+    <function-decl name='PyRun_AnyFile' mangled-name='PyRun_AnyFile' filepath='Python/pythonrun.c' line='1779' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFile'>
+      <parameter type-id='type-id-223' name='f' filepath='Python/pythonrun.c' line='1873' column='1'/>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1873' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyErr_Restore' mangled-name='PyErr_Restore' filepath='Python/errors.c' line='68' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Restore'>
-      <parameter type-id='type-id-100' name='type' filepath='Python/errors.c' line='68' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Python/errors.c' line='68' column='1'/>
-      <parameter type-id='type-id-100' name='traceback' filepath='Python/errors.c' line='68' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='PyParser_SimpleParseString' mangled-name='PyParser_SimpleParseString' filepath='Python/pythonrun.c' line='1772' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_SimpleParseString'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1772' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1772' column='1'/>
+      <return type-id='type-id-11'/>
     </function-decl>
-    <function-decl name='_PyErr_Restore' mangled-name='_PyErr_Restore' filepath='Python/errors.c' line='40' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Restore'>
-      <parameter type-id='type-id-249' name='tstate' filepath='Python/errors.c' line='40' column='1'/>
-      <parameter type-id='type-id-100' name='type' filepath='Python/errors.c' line='40' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Python/errors.c' line='40' column='1'/>
-      <parameter type-id='type-id-100' name='traceback' filepath='Python/errors.c' line='41' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='PyParser_SimpleParseFile' mangled-name='PyParser_SimpleParseFile' filepath='Python/pythonrun.c' line='1765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_SimpleParseFile'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1765' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='1765' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1765' column='1'/>
+      <return type-id='type-id-11'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/frozenmain.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='Py_FrozenMain' mangled-name='Py_FrozenMain' filepath='Python/frozenmain.c' line='17' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FrozenMain'>
-      <parameter type-id='type-id-8' name='argc' filepath='Python/frozenmain.c' line='17' column='1'/>
-      <parameter type-id='type-id-304' name='argv' filepath='Python/frozenmain.c' line='17' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyParser_SetError' mangled-name='PyParser_SetError' filepath='Python/pythonrun.c' line='1586' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_SetError'>
+      <parameter type-id='type-id-278' name='err' filepath='Python/pythonrun.c' line='1586' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/future.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-550' visibility='default' filepath='./Include/compile.h' line='48' column='1' id='type-id-551'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ff_features' type-id='type-id-8' visibility='default' filepath='./Include/compile.h' line='49' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='ff_lineno' type-id='type-id-8' visibility='default' filepath='./Include/compile.h' line='50' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='PyFutureFeatures' type-id='type-id-551' filepath='./Include/compile.h' line='51' column='1' id='type-id-550'/>
-    <pointer-type-def type-id='type-id-550' size-in-bits='64' id='type-id-552'/>
-    <function-decl name='PyFuture_FromAST' mangled-name='PyFuture_FromAST' filepath='Python/future.c' line='147' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFuture_FromAST'>
-      <parameter type-id='type-id-204' name='mod' filepath='Python/future.c' line='147' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/future.c' line='147' column='1'/>
-      <return type-id='type-id-552'/>
+    <function-decl name='PyParser_ClearError' mangled-name='PyParser_ClearError' filepath='Python/pythonrun.c' line='1580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ClearError'>
+      <parameter type-id='type-id-278' name='err' filepath='Python/pythonrun.c' line='1580' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyFuture_FromASTObject' mangled-name='PyFuture_FromASTObject' filepath='Python/future.c' line='126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyFuture_FromASTObject'>
-      <parameter type-id='type-id-204' name='mod' filepath='Python/future.c' line='126' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/future.c' line='126' column='1'/>
-      <return type-id='type-id-552'/>
+    <function-decl name='PyParser_SimpleParseStringFlagsFilename' mangled-name='PyParser_SimpleParseStringFlagsFilename' filepath='Python/pythonrun.c' line='1564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_SimpleParseStringFlagsFilename'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1564' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='1564' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1565' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Python/pythonrun.c' line='1565' column='1'/>
+      <return type-id='type-id-11'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/getargs.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='_PyArg_NoKwnames' mangled-name='_PyArg_NoKwnames' filepath='Python/getargs.c' line='2839' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_NoKwnames'>
-      <parameter type-id='type-id-3' name='funcname' filepath='Python/getargs.c' line='2839' column='1'/>
-      <parameter type-id='type-id-100' name='kwnames' filepath='Python/getargs.c' line='2839' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyParser_SimpleParseStringFlags' mangled-name='PyParser_SimpleParseStringFlags' filepath='Python/pythonrun.c' line='1552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_SimpleParseStringFlags'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1552' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1552' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Python/pythonrun.c' line='1552' column='1'/>
+      <return type-id='type-id-11'/>
     </function-decl>
-    <function-decl name='_PyArg_NoPositional' mangled-name='_PyArg_NoPositional' filepath='Python/getargs.c' line='2822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_NoPositional'>
-      <parameter type-id='type-id-3' name='funcname' filepath='Python/getargs.c' line='2839' column='1'/>
-      <parameter type-id='type-id-100' name='kwnames' filepath='Python/getargs.c' line='2839' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyParser_SimpleParseFileFlags' mangled-name='PyParser_SimpleParseFileFlags' filepath='Python/pythonrun.c' line='1536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_SimpleParseFileFlags'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1536' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='1536' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1536' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Python/pythonrun.c' line='1536' column='1'/>
+      <return type-id='type-id-11'/>
     </function-decl>
-    <function-decl name='_PyArg_NoKeywords' mangled-name='_PyArg_NoKeywords' filepath='Python/getargs.c' line='2803' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_NoKeywords'>
-      <parameter type-id='type-id-3' name='funcname' filepath='Python/getargs.c' line='2839' column='1'/>
-      <parameter type-id='type-id-100' name='kwnames' filepath='Python/getargs.c' line='2839' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyParser_ASTFromFile' mangled-name='PyParser_ASTFromFile' filepath='Python/pythonrun.c' line='1517' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ASTFromFile'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1517' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='1517' column='1'/>
+      <parameter type-id='type-id-3' name='enc' filepath='Python/pythonrun.c' line='1517' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1518' column='1'/>
+      <parameter type-id='type-id-3' name='ps1' filepath='Python/pythonrun.c' line='1518' column='1'/>
+      <parameter type-id='type-id-3' name='ps2' filepath='Python/pythonrun.c' line='1519' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1519' column='1'/>
+      <parameter type-id='type-id-227' name='errcode' filepath='Python/pythonrun.c' line='1519' column='1'/>
+      <parameter type-id='type-id-230' name='arena' filepath='Python/pythonrun.c' line='1520' column='1'/>
+      <return type-id='type-id-203'/>
     </function-decl>
-    <function-decl name='_PyArg_UnpackStack' mangled-name='_PyArg_UnpackStack' filepath='Python/getargs.c' line='2776' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_UnpackStack'>
-      <parameter type-id='type-id-190' name='args' filepath='Python/getargs.c' line='2776' column='1'/>
-      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='2776' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/getargs.c' line='2776' column='1'/>
-      <parameter type-id='type-id-15' name='min' filepath='Python/getargs.c' line='2777' column='1'/>
-      <parameter type-id='type-id-15' name='max' filepath='Python/getargs.c' line='2777' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyParser_ASTFromFileObject' mangled-name='PyParser_ASTFromFileObject' filepath='Python/pythonrun.c' line='1485' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ASTFromFileObject'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1485' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/pythonrun.c' line='1485' column='1'/>
+      <parameter type-id='type-id-3' name='enc' filepath='Python/pythonrun.c' line='1485' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1486' column='1'/>
+      <parameter type-id='type-id-3' name='ps1' filepath='Python/pythonrun.c' line='1486' column='1'/>
+      <parameter type-id='type-id-3' name='ps2' filepath='Python/pythonrun.c' line='1487' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1487' column='1'/>
+      <parameter type-id='type-id-227' name='errcode' filepath='Python/pythonrun.c' line='1487' column='1'/>
+      <parameter type-id='type-id-230' name='arena' filepath='Python/pythonrun.c' line='1488' column='1'/>
+      <return type-id='type-id-203'/>
     </function-decl>
-    <function-decl name='PyArg_UnpackTuple' mangled-name='PyArg_UnpackTuple' filepath='Python/getargs.c' line='2750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_UnpackTuple'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='2750' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/getargs.c' line='2750' column='1'/>
-      <parameter type-id='type-id-15' name='min' filepath='Python/getargs.c' line='2750' column='1'/>
-      <parameter type-id='type-id-15' name='max' filepath='Python/getargs.c' line='2750' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyParser_ASTFromString' mangled-name='PyParser_ASTFromString' filepath='Python/pythonrun.c' line='1471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ASTFromString'>
+      <parameter type-id='type-id-3' name='s' filepath='Python/pythonrun.c' line='1471' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='1471' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1471' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1472' column='1'/>
+      <parameter type-id='type-id-230' name='arena' filepath='Python/pythonrun.c' line='1472' column='1'/>
+      <return type-id='type-id-203'/>
     </function-decl>
-    <function-decl name='_PyArg_CheckPositional' mangled-name='_PyArg_CheckPositional' filepath='Python/getargs.c' line='2688' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_CheckPositional'>
-      <parameter type-id='type-id-3' name='name' filepath='Python/getargs.c' line='2688' column='1'/>
-      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='2688' column='1'/>
-      <parameter type-id='type-id-15' name='min' filepath='Python/getargs.c' line='2689' column='1'/>
-      <parameter type-id='type-id-15' name='max' filepath='Python/getargs.c' line='2689' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyParser_ASTFromStringObject' mangled-name='PyParser_ASTFromStringObject' filepath='Python/pythonrun.c' line='1441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ASTFromStringObject'>
+      <parameter type-id='type-id-3' name='s' filepath='Python/pythonrun.c' line='1441' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/pythonrun.c' line='1441' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1441' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1442' column='1'/>
+      <parameter type-id='type-id-230' name='arena' filepath='Python/pythonrun.c' line='1442' column='1'/>
+      <return type-id='type-id-203'/>
     </function-decl>
-    <class-decl name='_PyArg_Parser' size-in-bits='512' is-struct='yes' visibility='default' filepath='./Include/modsupport.h' line='92' column='1' id='type-id-553'>
+    <class-decl name='symtable' size-in-bits='640' is-struct='yes' visibility='default' filepath='./Include/symtable.h' line='19' column='1' id='type-id-656'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='format' type-id='type-id-3' visibility='default' filepath='./Include/modsupport.h' line='93' column='1'/>
+        <var-decl name='st_filename' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='20' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='st_cur' type-id='type-id-657' visibility='default' filepath='./Include/symtable.h' line='22' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='st_top' type-id='type-id-657' visibility='default' filepath='./Include/symtable.h' line='23' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='st_blocks' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='24' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='st_stack' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='26' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='st_global' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='27' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='st_nblocks' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='28' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='st_private' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='31' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='st_future' type-id='type-id-555' visibility='default' filepath='./Include/symtable.h' line='32' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='recursion_depth' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='34' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='608'>
+        <var-decl name='recursion_limit' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='35' column='1'/>
+      </data-member>
+    </class-decl>
+    <class-decl name='_symtable_entry' size-in-bits='832' is-struct='yes' visibility='default' filepath='./Include/symtable.h' line='38' column='1' id='type-id-658'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/symtable.h' line='39' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='ste_id' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='40' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='ste_symbols' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='41' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='ste_name' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='42' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='ste_varnames' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='43' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='ste_children' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='44' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='ste_directives' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='45' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='ste_type' type-id='type-id-659' visibility='default' filepath='./Include/symtable.h' line='46' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='544'>
+        <var-decl name='ste_nested' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='47' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='31'>
+        <var-decl name='ste_free' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='48' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='30'>
+        <var-decl name='ste_child_free' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='49' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='29'>
+        <var-decl name='ste_generator' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='51' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='28'>
+        <var-decl name='ste_coroutine' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='52' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='27'>
+        <var-decl name='ste_comprehension' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='26'>
+        <var-decl name='ste_varargs' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='54' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='25'>
+        <var-decl name='ste_varkeywords' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='55' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='keywords' type-id='type-id-554' visibility='default' filepath='./Include/modsupport.h' line='94' column='1'/>
+      <data-member access='public' layout-offset-in-bits='24'>
+        <var-decl name='ste_returns_value' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='56' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='fname' type-id='type-id-3' visibility='default' filepath='./Include/modsupport.h' line='95' column='1'/>
+      <data-member access='public' layout-offset-in-bits='23'>
+        <var-decl name='ste_needs_class_closure' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='58' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='custom_msg' type-id='type-id-3' visibility='default' filepath='./Include/modsupport.h' line='96' column='1'/>
+      <data-member access='public' layout-offset-in-bits='22'>
+        <var-decl name='ste_comp_iter_target' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='61' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='pos' type-id='type-id-8' visibility='default' filepath='./Include/modsupport.h' line='97' column='1'/>
+      <data-member access='public' layout-offset-in-bits='608'>
+        <var-decl name='ste_comp_iter_expr' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='62' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='min' type-id='type-id-8' visibility='default' filepath='./Include/modsupport.h' line='98' column='1'/>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='ste_lineno' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='63' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='max' type-id='type-id-8' visibility='default' filepath='./Include/modsupport.h' line='99' column='1'/>
+      <data-member access='public' layout-offset-in-bits='672'>
+        <var-decl name='ste_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='64' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='kwtuple' type-id='type-id-100' visibility='default' filepath='./Include/modsupport.h' line='100' column='1'/>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='ste_opt_lineno' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='65' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='next' type-id='type-id-555' visibility='default' filepath='./Include/modsupport.h' line='101' column='1'/>
+      <data-member access='public' layout-offset-in-bits='736'>
+        <var-decl name='ste_opt_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='66' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='768'>
+        <var-decl name='ste_table' type-id='type-id-660' visibility='default' filepath='./Include/symtable.h' line='67' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-16' size-in-bits='64' id='type-id-554'/>
-    <pointer-type-def type-id='type-id-553' size-in-bits='64' id='type-id-555'/>
-    <function-decl name='_PyArg_UnpackKeywords' mangled-name='_PyArg_UnpackKeywords' filepath='Python/getargs.c' line='2343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_UnpackKeywords'>
-      <parameter type-id='type-id-190' name='args' filepath='Python/getargs.c' line='2343' column='1'/>
-      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='2343' column='1'/>
-      <parameter type-id='type-id-100' name='kwargs' filepath='Python/getargs.c' line='2344' column='1'/>
-      <parameter type-id='type-id-100' name='kwnames' filepath='Python/getargs.c' line='2344' column='1'/>
-      <parameter type-id='type-id-555' name='parser' filepath='Python/getargs.c' line='2345' column='1'/>
-      <parameter type-id='type-id-8' name='minpos' filepath='Python/getargs.c' line='2346' column='1'/>
-      <parameter type-id='type-id-8' name='maxpos' filepath='Python/getargs.c' line='2346' column='1'/>
-      <parameter type-id='type-id-8' name='minkw' filepath='Python/getargs.c' line='2346' column='1'/>
-      <parameter type-id='type-id-303' name='buf' filepath='Python/getargs.c' line='2347' column='1'/>
-      <return type-id='type-id-190'/>
+    <enum-decl name='_block_type' filepath='./Include/symtable.h' line='14' column='1' id='type-id-661'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='FunctionBlock' value='0'/>
+      <enumerator name='ClassBlock' value='1'/>
+      <enumerator name='ModuleBlock' value='2'/>
+    </enum-decl>
+    <typedef-decl name='_Py_block_ty' type-id='type-id-661' filepath='./Include/symtable.h' line='15' column='1' id='type-id-659'/>
+    <pointer-type-def type-id='type-id-656' size-in-bits='64' id='type-id-660'/>
+    <pointer-type-def type-id='type-id-658' size-in-bits='64' id='type-id-657'/>
+    <function-decl name='Py_SymtableString' mangled-name='Py_SymtableString' filepath='Python/pythonrun.c' line='1426' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SymtableString'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1426' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='1426' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1426' column='1'/>
+      <return type-id='type-id-660'/>
     </function-decl>
-    <function-decl name='PyArg_ValidateKeywordArguments' mangled-name='PyArg_ValidateKeywordArguments' filepath='Python/getargs.c' line='1632' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_ValidateKeywordArguments'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_SymtableStringObjectFlags' mangled-name='_Py_SymtableStringObjectFlags' filepath='Python/pythonrun.c' line='1399' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_SymtableStringObjectFlags'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1399' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/pythonrun.c' line='1399' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1399' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1399' column='1'/>
+      <return type-id='type-id-660'/>
     </function-decl>
-    <function-decl name='_PyArg_VaParseTupleAndKeywordsFast_SizeT' mangled-name='_PyArg_VaParseTupleAndKeywordsFast_SizeT' filepath='Python/getargs.c' line='1618' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParseTupleAndKeywordsFast_SizeT'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1618' column='1'/>
-      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1618' column='1'/>
-      <parameter type-id='type-id-555' name='parser' filepath='Python/getargs.c' line='1619' column='1'/>
-      <parameter type-id='type-id-306' name='va' filepath='Python/getargs.c' line='1619' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='Py_SymtableStringObject' mangled-name='Py_SymtableStringObject' filepath='Python/pythonrun.c' line='1392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SymtableStringObject'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1392' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/pythonrun.c' line='1392' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1392' column='1'/>
+      <return type-id='type-id-660'/>
     </function-decl>
-    <function-decl name='_PyArg_VaParseTupleAndKeywordsFast' mangled-name='_PyArg_VaParseTupleAndKeywordsFast' filepath='Python/getargs.c' line='1604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParseTupleAndKeywordsFast'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1618' column='1'/>
-      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1618' column='1'/>
-      <parameter type-id='type-id-555' name='parser' filepath='Python/getargs.c' line='1619' column='1'/>
-      <parameter type-id='type-id-306' name='va' filepath='Python/getargs.c' line='1619' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_SourceAsString' mangled-name='_Py_SourceAsString' filepath='Python/pythonrun.c' line='1343' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_SourceAsString'>
+      <parameter type-id='type-id-100' name='cmd' filepath='Python/pythonrun.c' line='1343' column='1'/>
+      <parameter type-id='type-id-3' name='funcname' filepath='Python/pythonrun.c' line='1343' column='1'/>
+      <parameter type-id='type-id-3' name='what' filepath='Python/pythonrun.c' line='1343' column='1'/>
+      <parameter type-id='type-id-226' name='cf' filepath='Python/pythonrun.c' line='1343' column='1'/>
+      <parameter type-id='type-id-303' name='cmd_copy' filepath='Python/pythonrun.c' line='1343' column='1'/>
+      <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='_PyArg_ParseStackAndKeywords_SizeT' mangled-name='_PyArg_ParseStackAndKeywords_SizeT' filepath='Python/getargs.c' line='1590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseStackAndKeywords_SizeT'>
-      <parameter type-id='type-id-190' name='args' filepath='Python/getargs.c' line='1590' column='1'/>
-      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='1590' column='1'/>
-      <parameter type-id='type-id-100' name='kwnames' filepath='Python/getargs.c' line='1590' column='1'/>
-      <parameter type-id='type-id-555' name='parser' filepath='Python/getargs.c' line='1591' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='Py_CompileStringExFlags' mangled-name='Py_CompileStringExFlags' filepath='Python/pythonrun.c' line='1322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_CompileStringExFlags'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1322' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='1322' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1322' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1323' column='1'/>
+      <parameter type-id='type-id-8' name='optimize' filepath='Python/pythonrun.c' line='1323' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='Py_CompileStringObject' mangled-name='Py_CompileStringObject' filepath='Python/pythonrun.c' line='1291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_CompileStringObject'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1291' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/pythonrun.c' line='1291' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1291' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1292' column='1'/>
+      <parameter type-id='type-id-8' name='optimize' filepath='Python/pythonrun.c' line='1292' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyRun_FileExFlags' mangled-name='PyRun_FileExFlags' filepath='Python/pythonrun.c' line='1152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_FileExFlags'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1152' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='1152' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1152' column='1'/>
+      <parameter type-id='type-id-100' name='globals' filepath='Python/pythonrun.c' line='1152' column='1'/>
+      <parameter type-id='type-id-100' name='locals' filepath='Python/pythonrun.c' line='1153' column='1'/>
+      <parameter type-id='type-id-8' name='closeit' filepath='Python/pythonrun.c' line='1153' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1153' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyRun_StringFlags' mangled-name='PyRun_StringFlags' filepath='Python/pythonrun.c' line='1083' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_StringFlags'>
+      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1083' column='1'/>
+      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1083' column='1'/>
+      <parameter type-id='type-id-100' name='globals' filepath='Python/pythonrun.c' line='1083' column='1'/>
+      <parameter type-id='type-id-100' name='locals' filepath='Python/pythonrun.c' line='1084' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1084' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_PyErr_Display' mangled-name='_PyErr_Display' filepath='Python/pythonrun.c' line='1028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Display'>
+      <parameter type-id='type-id-100' name='file' filepath='Python/pythonrun.c' line='1028' column='1'/>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/pythonrun.c' line='1028' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Python/pythonrun.c' line='1028' column='1'/>
+      <parameter type-id='type-id-100' name='tb' filepath='Python/pythonrun.c' line='1028' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyArg_ParseStackAndKeywords' mangled-name='_PyArg_ParseStackAndKeywords' filepath='Python/getargs.c' line='1577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseStackAndKeywords'>
-      <parameter type-id='type-id-190' name='args' filepath='Python/getargs.c' line='1590' column='1'/>
-      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='1590' column='1'/>
-      <parameter type-id='type-id-100' name='kwnames' filepath='Python/getargs.c' line='1590' column='1'/>
-      <parameter type-id='type-id-555' name='parser' filepath='Python/getargs.c' line='1591' column='1'/>
-      <parameter is-variadic='yes'/>
+    <function-decl name='PyErr_PrintEx' mangled-name='PyErr_PrintEx' filepath='Python/pythonrun.c' line='825' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_PrintEx'>
+      <parameter type-id='type-id-8' name='set_sys_last_vars' filepath='Python/pythonrun.c' line='825' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyErr_Print' mangled-name='_PyErr_Print' filepath='Python/pythonrun.c' line='819' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Print'>
+      <parameter type-id='type-id-409' name='tstate' filepath='Python/pythonrun.c' line='819' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyRun_SimpleStringFlags' mangled-name='PyRun_SimpleStringFlags' filepath='Python/pythonrun.c' line='490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleStringFlags'>
+      <parameter type-id='type-id-3' name='command' filepath='Python/pythonrun.c' line='490' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='490' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyArg_ParseTupleAndKeywordsFast_SizeT' mangled-name='_PyArg_ParseTupleAndKeywordsFast_SizeT' filepath='Python/getargs.c' line='1564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTupleAndKeywordsFast_SizeT'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1564' column='1'/>
-      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1564' column='1'/>
-      <parameter type-id='type-id-555' name='parser' filepath='Python/getargs.c' line='1565' column='1'/>
-      <parameter is-variadic='yes'/>
+    <function-decl name='PyRun_SimpleFileExFlags' mangled-name='PyRun_SimpleFileExFlags' filepath='Python/pythonrun.c' line='476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleFileExFlags'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='476' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='476' column='1'/>
+      <parameter type-id='type-id-8' name='closeit' filepath='Python/pythonrun.c' line='476' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='477' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyArg_ParseTupleAndKeywordsFast' mangled-name='_PyArg_ParseTupleAndKeywordsFast' filepath='Python/getargs.c' line='1551' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTupleAndKeywordsFast'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1564' column='1'/>
-      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1564' column='1'/>
-      <parameter type-id='type-id-555' name='parser' filepath='Python/getargs.c' line='1565' column='1'/>
-      <parameter is-variadic='yes'/>
+    <function-decl name='PyRun_InteractiveOneFlags' mangled-name='PyRun_InteractiveOneFlags' filepath='Python/pythonrun.c' line='298' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveOneFlags'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='298' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='298' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='298' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyArg_VaParseTupleAndKeywords_SizeT' mangled-name='_PyArg_VaParseTupleAndKeywords_SizeT' filepath='Python/getargs.c' line='1525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParseTupleAndKeywords_SizeT'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1525' column='1'/>
-      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1526' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1527' column='1'/>
-      <parameter type-id='type-id-304' name='kwlist' filepath='Python/getargs.c' line='1528' column='1'/>
-      <parameter type-id='type-id-306' name='va' filepath='Python/getargs.c' line='1528' column='1'/>
+    <function-decl name='PyRun_InteractiveOneObject' mangled-name='PyRun_InteractiveOneObject' filepath='Python/pythonrun.c' line='285' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveOneObject'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='285' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/pythonrun.c' line='285' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='285' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyArg_VaParseTupleAndKeywords' mangled-name='PyArg_VaParseTupleAndKeywords' filepath='Python/getargs.c' line='1500' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_VaParseTupleAndKeywords'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1525' column='1'/>
-      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1526' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1527' column='1'/>
-      <parameter type-id='type-id-304' name='kwlist' filepath='Python/getargs.c' line='1528' column='1'/>
-      <parameter type-id='type-id-306' name='va' filepath='Python/getargs.c' line='1528' column='1'/>
+    <function-decl name='PyRun_InteractiveLoopFlags' mangled-name='PyRun_InteractiveLoopFlags' filepath='Python/pythonrun.c' line='96' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveLoopFlags'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='96' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='96' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='96' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyArg_ParseTupleAndKeywords_SizeT' mangled-name='_PyArg_ParseTupleAndKeywords_SizeT' filepath='Python/getargs.c' line='1474' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTupleAndKeywords_SizeT'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1474' column='1'/>
-      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1475' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1476' column='1'/>
-      <parameter type-id='type-id-304' name='kwlist' filepath='Python/getargs.c' line='1477' column='1'/>
-      <parameter is-variadic='yes'/>
+    <function-decl name='PyRun_AnyFileExFlags' mangled-name='PyRun_AnyFileExFlags' filepath='Python/pythonrun.c' line='80' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFileExFlags'>
+      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='80' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='80' column='1'/>
+      <parameter type-id='type-id-8' name='closeit' filepath='Python/pythonrun.c' line='80' column='1'/>
+      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='81' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyArg_ParseTupleAndKeywords' mangled-name='PyArg_ParseTupleAndKeywords' filepath='Python/getargs.c' line='1450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_ParseTupleAndKeywords'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='1474' column='1'/>
-      <parameter type-id='type-id-100' name='keywords' filepath='Python/getargs.c' line='1475' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='1476' column='1'/>
-      <parameter type-id='type-id-304' name='kwlist' filepath='Python/getargs.c' line='1477' column='1'/>
-      <parameter is-variadic='yes'/>
+    <function-decl name='_Py_HandleSystemExit' mangled-name='_Py_HandleSystemExit' filepath='Python/pythonrun.c' line='648' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HandleSystemExit'>
+      <parameter type-id='type-id-227' name='exitcode_p' filepath='Python/pythonrun.c' line='648' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyArg_BadArgument' mangled-name='_PyArg_BadArgument' filepath='Python/getargs.c' line='618' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_BadArgument'>
-      <parameter type-id='type-id-3' name='fname' filepath='Python/getargs.c' line='618' column='1'/>
-      <parameter type-id='type-id-3' name='displayname' filepath='Python/getargs.c' line='618' column='1'/>
-      <parameter type-id='type-id-3' name='expected' filepath='Python/getargs.c' line='619' column='1'/>
-      <parameter type-id='type-id-100' name='arg' filepath='Python/getargs.c' line='619' column='1'/>
+    <function-decl name='PyErr_Display' mangled-name='PyErr_Display' filepath='Python/pythonrun.c' line='1066' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Display'>
+      <parameter type-id='type-id-100' name='exception' filepath='Python/pythonrun.c' line='1066' column='1'/>
+      <parameter type-id='type-id-100' name='value' filepath='Python/pythonrun.c' line='1066' column='1'/>
+      <parameter type-id='type-id-100' name='tb' filepath='Python/pythonrun.c' line='1066' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyArg_VaParse_SizeT' mangled-name='_PyArg_VaParse_SizeT' filepath='Python/getargs.c' line='186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_VaParse_SizeT'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='186' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='186' column='1'/>
-      <parameter type-id='type-id-306' name='va' filepath='Python/getargs.c' line='186' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyParser_ParseStringFlagsFilename' mangled-name='PyParser_ParseStringFlagsFilename' filepath='./Include/parsetok.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyArg_VaParse' mangled-name='PyArg_VaParse' filepath='Python/getargs.c' line='173' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_VaParse'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='186' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='186' column='1'/>
-      <parameter type-id='type-id-306' name='va' filepath='Python/getargs.c' line='186' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyParser_ParseStringFlags' mangled-name='PyParser_ParseStringFlags' filepath='./Include/parsetok.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyArg_ParseStack_SizeT' mangled-name='_PyArg_ParseStack_SizeT' filepath='Python/getargs.c' line='160' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseStack_SizeT'>
-      <parameter type-id='type-id-190' name='args' filepath='Python/getargs.c' line='160' column='1'/>
-      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='160' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='160' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyParser_ParseFileFlags' mangled-name='PyParser_ParseFileFlags' filepath='./Include/parsetok.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyArg_ParseStack' mangled-name='_PyArg_ParseStack' filepath='Python/getargs.c' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseStack'>
-      <parameter type-id='type-id-190' name='args' filepath='Python/getargs.c' line='160' column='1'/>
-      <parameter type-id='type-id-15' name='nargs' filepath='Python/getargs.c' line='160' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='160' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyParser_ParseFileObject' mangled-name='PyParser_ParseFileObject' filepath='./Include/parsetok.h' line='68' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyArg_ParseTuple_SizeT' mangled-name='_PyArg_ParseTuple_SizeT' filepath='Python/getargs.c' line='135' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_ParseTuple_SizeT'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='135' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='135' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyAST_FromNodeObject' mangled-name='PyAST_FromNodeObject' filepath='./Include/ast.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyArg_ParseTuple' mangled-name='PyArg_ParseTuple' filepath='Python/getargs.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_ParseTuple'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='135' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='135' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyParser_ParseStringObject' mangled-name='PyParser_ParseStringObject' filepath='./Include/parsetok.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyArg_Parse_SizeT' mangled-name='_PyArg_Parse_SizeT' filepath='Python/getargs.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArg_Parse_SizeT'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='135' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='135' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyPegen_ASTFromStringObject' mangled-name='PyPegen_ASTFromStringObject' filepath='./Include/internal/pegen_interface.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyArg_Parse' mangled-name='PyArg_Parse' filepath='Python/getargs.c' line='98' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArg_Parse'>
-      <parameter type-id='type-id-100' name='args' filepath='Python/getargs.c' line='135' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/getargs.c' line='135' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyAST_mod2obj' mangled-name='PyAST_mod2obj' filepath='./Include/Python-ast.h' line='689' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/getcompiler.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='Py_GetCompiler' mangled-name='Py_GetCompiler' filepath='Python/getcompiler.c' line='24' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetCompiler'>
-      <return type-id='type-id-3'/>
+    <function-decl name='PyPegen_ASTFromFileObject' mangled-name='PyPegen_ASTFromFileObject' filepath='./Include/internal/pegen_interface.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/getcopyright.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='Py_GetCopyright' mangled-name='Py_GetCopyright' filepath='Python/getcopyright.c' line='20' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetCopyright'>
-      <return type-id='type-id-3'/>
+    <function-decl name='PyException_GetCause' mangled-name='PyException_GetCause' filepath='./Include/pyerrors.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='./Python/getplatform.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='Py_GetPlatform' mangled-name='Py_GetPlatform' filepath='./Python/getplatform.c' line='9' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPlatform'>
-      <return type-id='type-id-3'/>
+    <function-decl name='PySet_Contains' mangled-name='PySet_Contains' filepath='./Include/setobject.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/getversion.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='Py_GetVersion' mangled-name='Py_GetVersion' filepath='Python/getversion.c' line='9' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetVersion'>
-      <return type-id='type-id-3'/>
+    <function-decl name='Py_Exit' mangled-name='Py_Exit' filepath='./Include/pylifecycle.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyImport_GetMagicNumber' mangled-name='PyImport_GetMagicNumber' filepath='Python/pythonrun.c' line='1255' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='rewind' mangled-name='rewind' filepath='/usr/include/stdio.h' line='694' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMarshal_ReadLongFromFile' mangled-name='PyMarshal_ReadLongFromFile' filepath='./Include/marshal.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMarshal_ReadLastObjectFromFile' mangled-name='PyMarshal_ReadLastObjectFromFile' filepath='./Include/marshal.h' line='20' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_CompareWithASCIIString' mangled-name='PyUnicode_CompareWithASCIIString' filepath='./Include/unicodeobject.h' line='976' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyImport_AddModuleObject' mangled-name='PyImport_AddModuleObject' filepath='./Include/import.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_FdIsInteractive' mangled-name='Py_FdIsInteractive' filepath='./Include/cpython/pylifecycle.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_Print' mangled-name='PyObject_Print' filepath='./Include/cpython/object.h' line='309' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_Dump' mangled-name='_PyObject_Dump' filepath='./Include/cpython/object.h' line='311' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/graminit.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='_PyParser_Grammar' type-id='type-id-254' mangled-name='_PyParser_Grammar' visibility='default' filepath='Python/graminit.c' line='5' column='1' elf-symbol-id='_PyParser_Grammar'/>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/hamt.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='_PyHamtItems_Type' type-id='type-id-182' mangled-name='_PyHamtItems_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='70' column='1' elf-symbol-id='_PyHamtItems_Type'/>
-    <var-decl name='_PyHamtKeys_Type' type-id='type-id-182' mangled-name='_PyHamtKeys_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='68' column='1' elf-symbol-id='_PyHamtKeys_Type'/>
-    <var-decl name='_PyHamtValues_Type' type-id='type-id-182' mangled-name='_PyHamtValues_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='69' column='1' elf-symbol-id='_PyHamtValues_Type'/>
-    <var-decl name='_PyHamt_Type' type-id='type-id-182' mangled-name='_PyHamt_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='64' column='1' elf-symbol-id='_PyHamt_Type'/>
-    <var-decl name='_PyHamt_ArrayNode_Type' type-id='type-id-182' mangled-name='_PyHamt_ArrayNode_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='65' column='1' elf-symbol-id='_PyHamt_ArrayNode_Type'/>
-    <var-decl name='_PyHamt_BitmapNode_Type' type-id='type-id-182' mangled-name='_PyHamt_BitmapNode_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='66' column='1' elf-symbol-id='_PyHamt_BitmapNode_Type'/>
-    <var-decl name='_PyHamt_CollisionNode_Type' type-id='type-id-182' mangled-name='_PyHamt_CollisionNode_Type' visibility='default' filepath='./Include/internal/pycore_hamt.h' line='67' column='1' elf-symbol-id='_PyHamt_CollisionNode_Type'/>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/hashtable.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='_Py_hashtable_t' size-in-bits='640' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='60' column='1' id='type-id-556'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='nentries' type-id='type-id-191' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='61' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='nbuckets' type-id='type-id-191' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='62' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='buckets' type-id='type-id-557' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='63' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='get_entry_func' type-id='type-id-558' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='65' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='hash_func' type-id='type-id-559' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='66' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='compare_func' type-id='type-id-560' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='67' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='key_destroy_func' type-id='type-id-561' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='68' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='value_destroy_func' type-id='type-id-561' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='69' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='alloc' type-id='type-id-562' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='70' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='64' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-563' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='17' column='1' id='type-id-564'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='head' type-id='type-id-565' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='18' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='_Py_slist_item_s' size-in-bits='64' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='13' column='1' id='type-id-566'>
+  <abi-instr version='1.0' address-size='64' path='Python/pytime.c' comp-dir-path='/src' language='LANG_C99'>
+    <typedef-decl name='__time_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='160' column='1' id='type-id-662'/>
+    <typedef-decl name='time_t' type-id='type-id-662' filepath='/usr/include/x86_64-linux-gnu/bits/types/time_t.h' line='7' column='1' id='type-id-663'/>
+    <class-decl name='tm' size-in-bits='448' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='7' column='1' id='type-id-664'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='next' type-id='type-id-567' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='14' column='1'/>
+        <var-decl name='tm_sec' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='9' column='1'/>
       </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-566' size-in-bits='64' id='type-id-567'/>
-    <typedef-decl name='_Py_slist_item_t' type-id='type-id-566' filepath='./Include/internal/pycore_hashtable.h' line='15' column='1' id='type-id-568'/>
-    <pointer-type-def type-id='type-id-568' size-in-bits='64' id='type-id-565'/>
-    <typedef-decl name='_Py_slist_t' type-id='type-id-564' filepath='./Include/internal/pycore_hashtable.h' line='19' column='1' id='type-id-563'/>
-    <pointer-type-def type-id='type-id-563' size-in-bits='64' id='type-id-557'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-569' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='28' column='1' id='type-id-570'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_Py_slist_item' type-id='type-id-568' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='30' column='1'/>
+      <data-member access='public' layout-offset-in-bits='32'>
+        <var-decl name='tm_min' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='10' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='key_hash' type-id='type-id-571' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='32' column='1'/>
+        <var-decl name='tm_hour' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='11' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='tm_mday' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='12' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='key' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='33' column='1'/>
+        <var-decl name='tm_mon' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='13' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='160'>
+        <var-decl name='tm_year' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='14' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='value' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='34' column='1'/>
+        <var-decl name='tm_wday' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='15' column='1'/>
       </data-member>
-    </class-decl>
-    <typedef-decl name='Py_uhash_t' type-id='type-id-191' filepath='./Include/pyport.h' line='117' column='1' id='type-id-571'/>
-    <typedef-decl name='_Py_hashtable_entry_t' type-id='type-id-570' filepath='./Include/internal/pycore_hashtable.h' line='35' column='1' id='type-id-569'/>
-    <pointer-type-def type-id='type-id-569' size-in-bits='64' id='type-id-572'/>
-    <typedef-decl name='_Py_hashtable_t' type-id='type-id-556' filepath='./Include/internal/pycore_hashtable.h' line='42' column='1' id='type-id-573'/>
-    <pointer-type-def type-id='type-id-573' size-in-bits='64' id='type-id-574'/>
-    <pointer-type-def type-id='type-id-575' size-in-bits='64' id='type-id-576'/>
-    <typedef-decl name='_Py_hashtable_get_entry_func' type-id='type-id-576' filepath='./Include/internal/pycore_hashtable.h' line='47' column='1' id='type-id-558'/>
-    <pointer-type-def type-id='type-id-577' size-in-bits='64' id='type-id-578'/>
-    <typedef-decl name='_Py_hashtable_hash_func' type-id='type-id-578' filepath='./Include/internal/pycore_hashtable.h' line='44' column='1' id='type-id-559'/>
-    <pointer-type-def type-id='type-id-579' size-in-bits='64' id='type-id-580'/>
-    <typedef-decl name='_Py_hashtable_compare_func' type-id='type-id-580' filepath='./Include/internal/pycore_hashtable.h' line='45' column='1' id='type-id-560'/>
-    <typedef-decl name='_Py_hashtable_destroy_func' type-id='type-id-188' filepath='./Include/internal/pycore_hashtable.h' line='46' column='1' id='type-id-561'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-562' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='50' column='1' id='type-id-581'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='malloc' type-id='type-id-582' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='52' column='1'/>
+      <data-member access='public' layout-offset-in-bits='224'>
+        <var-decl name='tm_yday' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='16' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='free' type-id='type-id-188' visibility='default' filepath='./Include/internal/pycore_hashtable.h' line='55' column='1'/>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='tm_isdst' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='17' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='tm_gmtoff' type-id='type-id-12' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='20' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='tm_zone' type-id='type-id-3' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='21' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-583' size-in-bits='64' id='type-id-582'/>
-    <typedef-decl name='_Py_hashtable_allocator_t' type-id='type-id-581' filepath='./Include/internal/pycore_hashtable.h' line='56' column='1' id='type-id-562'/>
-    <function-decl name='_Py_hashtable_destroy' mangled-name='_Py_hashtable_destroy' filepath='Python/hashtable.c' line='404' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_destroy'>
-      <parameter type-id='type-id-574' name='ht' filepath='Python/hashtable.c' line='404' column='1'/>
-      <return type-id='type-id-4'/>
-    </function-decl>
-    <function-decl name='_Py_hashtable_clear' mangled-name='_Py_hashtable_clear' filepath='Python/hashtable.c' line='385' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_clear'>
-      <parameter type-id='type-id-574' name='ht' filepath='Python/hashtable.c' line='404' column='1'/>
-      <return type-id='type-id-4'/>
-    </function-decl>
-    <function-decl name='_Py_hashtable_new' mangled-name='_Py_hashtable_new' filepath='Python/hashtable.c' line='363' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_new'>
-      <parameter type-id='type-id-559' name='hash_func' filepath='Python/hashtable.c' line='363' column='1'/>
-      <parameter type-id='type-id-560' name='compare_func' filepath='Python/hashtable.c' line='364' column='1'/>
-      <return type-id='type-id-574'/>
-    </function-decl>
-    <pointer-type-def type-id='type-id-562' size-in-bits='64' id='type-id-584'/>
-    <function-decl name='_Py_hashtable_new_full' mangled-name='_Py_hashtable_new_full' filepath='Python/hashtable.c' line='316' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_new_full'>
-      <parameter type-id='type-id-559' name='hash_func' filepath='Python/hashtable.c' line='316' column='1'/>
-      <parameter type-id='type-id-560' name='compare_func' filepath='Python/hashtable.c' line='317' column='1'/>
-      <parameter type-id='type-id-561' name='key_destroy_func' filepath='Python/hashtable.c' line='318' column='1'/>
-      <parameter type-id='type-id-561' name='value_destroy_func' filepath='Python/hashtable.c' line='319' column='1'/>
-      <parameter type-id='type-id-584' name='allocator' filepath='Python/hashtable.c' line='320' column='1'/>
-      <return type-id='type-id-574'/>
-    </function-decl>
-    <pointer-type-def type-id='type-id-585' size-in-bits='64' id='type-id-586'/>
-    <typedef-decl name='_Py_hashtable_foreach_func' type-id='type-id-586' filepath='./Include/internal/pycore_hashtable.h' line='96' column='1' id='type-id-587'/>
-    <function-decl name='_Py_hashtable_foreach' mangled-name='_Py_hashtable_foreach' filepath='Python/hashtable.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_foreach'>
-      <parameter type-id='type-id-574' name='ht' filepath='Python/hashtable.c' line='261' column='1'/>
-      <parameter type-id='type-id-587' name='func' filepath='Python/hashtable.c' line='262' column='1'/>
-      <parameter type-id='type-id-32' name='user_data' filepath='Python/hashtable.c' line='263' column='1'/>
+    <pointer-type-def type-id='type-id-664' size-in-bits='64' id='type-id-665'/>
+    <function-decl name='_PyTime_gmtime' mangled-name='_PyTime_gmtime' filepath='Python/pytime.c' line='1111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_gmtime'>
+      <parameter type-id='type-id-663' name='t' filepath='Python/pytime.c' line='1111' column='1'/>
+      <parameter type-id='type-id-665' name='tm' filepath='Python/pytime.c' line='1111' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_hashtable_get' mangled-name='_Py_hashtable_get' filepath='Python/hashtable.c' line='248' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_get'>
-      <parameter type-id='type-id-574' name='ht' filepath='Python/hashtable.c' line='248' column='1'/>
-      <parameter type-id='type-id-32' name='key' filepath='Python/hashtable.c' line='248' column='1'/>
-      <return type-id='type-id-32'/>
-    </function-decl>
-    <function-decl name='_Py_hashtable_set' mangled-name='_Py_hashtable_set' filepath='Python/hashtable.c' line='209' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_set'>
-      <parameter type-id='type-id-574' name='ht' filepath='Python/hashtable.c' line='209' column='1'/>
-      <parameter type-id='type-id-32' name='key' filepath='Python/hashtable.c' line='209' column='1'/>
-      <parameter type-id='type-id-32' name='value' filepath='Python/hashtable.c' line='209' column='1'/>
+    <function-decl name='_PyTime_localtime' mangled-name='_PyTime_localtime' filepath='Python/pytime.c' line='1073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_localtime'>
+      <parameter type-id='type-id-663' name='t' filepath='Python/pytime.c' line='1111' column='1'/>
+      <parameter type-id='type-id-665' name='tm' filepath='Python/pytime.c' line='1111' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_hashtable_steal' mangled-name='_Py_hashtable_steal' filepath='Python/hashtable.c' line='174' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_steal'>
-      <parameter type-id='type-id-574' name='ht' filepath='Python/hashtable.c' line='174' column='1'/>
-      <parameter type-id='type-id-32' name='key' filepath='Python/hashtable.c' line='174' column='1'/>
-      <return type-id='type-id-32'/>
-    </function-decl>
-    <qualified-type-def type-id='type-id-573' const='yes' id='type-id-588'/>
-    <pointer-type-def type-id='type-id-588' size-in-bits='64' id='type-id-589'/>
-    <function-decl name='_Py_hashtable_size' mangled-name='_Py_hashtable_size' filepath='Python/hashtable.c' line='120' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_size'>
-      <parameter type-id='type-id-589' name='ht' filepath='Python/hashtable.c' line='120' column='1'/>
-      <return type-id='type-id-191'/>
-    </function-decl>
-    <function-decl name='_Py_hashtable_compare_direct' mangled-name='_Py_hashtable_compare_direct' filepath='Python/hashtable.c' line='99' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_compare_direct'>
-      <parameter type-id='type-id-32' name='key1' filepath='Python/hashtable.c' line='99' column='1'/>
-      <parameter type-id='type-id-32' name='key2' filepath='Python/hashtable.c' line='99' column='1'/>
+    <function-decl name='_PyTime_Init' mangled-name='_PyTime_Init' filepath='Python/pytime.c' line='1054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_Init'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_hashtable_hash_ptr' mangled-name='_Py_hashtable_hash_ptr' filepath='Python/hashtable.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_hash_ptr'>
-      <parameter type-id='type-id-32' name='key' filepath='Python/hashtable.c' line='92' column='1'/>
-      <return type-id='type-id-571'/>
+    <typedef-decl name='_PyTime_t' type-id='type-id-316' filepath='./Include/pytime.h' line='19' column='1' id='type-id-666'/>
+    <function-decl name='_PyTime_GetPerfCounter' mangled-name='_PyTime_GetPerfCounter' filepath='Python/pytime.c' line='1043' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetPerfCounter'>
+      <return type-id='type-id-666'/>
     </function-decl>
-    <function-type size-in-bits='64' id='type-id-575'>
-      <parameter type-id='type-id-574'/>
-      <parameter type-id='type-id-32'/>
-      <return type-id='type-id-572'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-585'>
-      <parameter type-id='type-id-574'/>
-      <parameter type-id='type-id-32'/>
-      <parameter type-id='type-id-32'/>
-      <parameter type-id='type-id-32'/>
-      <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-579'>
-      <parameter type-id='type-id-32'/>
-      <parameter type-id='type-id-32'/>
-      <return type-id='type-id-8'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-577'>
-      <parameter type-id='type-id-32'/>
-      <return type-id='type-id-571'/>
-    </function-type>
-    <function-type size-in-bits='64' id='type-id-583'>
-      <parameter type-id='type-id-191'/>
-      <return type-id='type-id-32'/>
-    </function-type>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/import.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='_inittab' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/cpython/import.h' line='30' column='1' id='type-id-590'>
+    <pointer-type-def type-id='type-id-666' size-in-bits='64' id='type-id-667'/>
+    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-668' visibility='default' filepath='./Include/pytime.h' line='184' column='1' id='type-id-669'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/cpython/import.h' line='31' column='1'/>
+        <var-decl name='implementation' type-id='type-id-3' visibility='default' filepath='./Include/pytime.h' line='185' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='initfunc' type-id='type-id-491' visibility='default' filepath='./Include/cpython/import.h' line='32' column='1'/>
+        <var-decl name='monotonic' type-id='type-id-8' visibility='default' filepath='./Include/pytime.h' line='186' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='96'>
+        <var-decl name='adjustable' type-id='type-id-8' visibility='default' filepath='./Include/pytime.h' line='187' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='resolution' type-id='type-id-441' visibility='default' filepath='./Include/pytime.h' line='188' column='1'/>
       </data-member>
     </class-decl>
-    <pointer-type-def type-id='type-id-590' size-in-bits='64' id='type-id-591'/>
-    <var-decl name='PyImport_Inittab' type-id='type-id-591' mangled-name='PyImport_Inittab' visibility='default' filepath='./Include/cpython/import.h' line='34' column='1' elf-symbol-id='PyImport_Inittab'/>
-    <function-decl name='PyImport_AppendInittab' mangled-name='PyImport_AppendInittab' filepath='Python/import.c' line='2491' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_AppendInittab'>
-      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='2491' column='1'/>
-      <parameter type-id='type-id-491' name='initfunc' filepath='Python/import.c' line='2491' column='1'/>
+    <typedef-decl name='_Py_clock_info_t' type-id='type-id-669' filepath='./Include/pytime.h' line='189' column='1' id='type-id-668'/>
+    <pointer-type-def type-id='type-id-668' size-in-bits='64' id='type-id-670'/>
+    <function-decl name='_PyTime_GetPerfCounterWithInfo' mangled-name='_PyTime_GetPerfCounterWithInfo' filepath='Python/pytime.c' line='1032' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetPerfCounterWithInfo'>
+      <parameter type-id='type-id-667' name='t' filepath='Python/pytime.c' line='1032' column='1'/>
+      <parameter type-id='type-id-670' name='info' filepath='Python/pytime.c' line='1032' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyImport_ExtendInittab' mangled-name='PyImport_ExtendInittab' filepath='Python/import.c' line='2445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExtendInittab'>
-      <parameter type-id='type-id-591' name='newtab' filepath='Python/import.c' line='2445' column='1'/>
+    <function-decl name='_PyTime_GetMonotonicClockWithInfo' mangled-name='_PyTime_GetMonotonicClockWithInfo' filepath='Python/pytime.c' line='952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetMonotonicClockWithInfo'>
+      <parameter type-id='type-id-667' name='tp' filepath='Python/pytime.c' line='952' column='1'/>
+      <parameter type-id='type-id-670' name='info' filepath='Python/pytime.c' line='952' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyInit__imp' mangled-name='PyInit__imp' filepath='Python/import.c' line='2406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__imp'>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyImport_Import' mangled-name='PyImport_Import' filepath='Python/import.c' line='2015' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_Import'>
-      <parameter type-id='type-id-100' name='module_name' filepath='Python/import.c' line='2015' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyImport_ReloadModule' mangled-name='PyImport_ReloadModule' filepath='Python/import.c' line='1982' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ReloadModule'>
-      <parameter type-id='type-id-100' name='m' filepath='Python/import.c' line='1982' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyImport_ImportModuleLevel' mangled-name='PyImport_ImportModuleLevel' filepath='Python/import.c' line='1964' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportModuleLevel'>
-      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='1964' column='1'/>
-      <parameter type-id='type-id-100' name='globals' filepath='Python/import.c' line='1964' column='1'/>
-      <parameter type-id='type-id-100' name='locals' filepath='Python/import.c' line='1964' column='1'/>
-      <parameter type-id='type-id-100' name='fromlist' filepath='Python/import.c' line='1965' column='1'/>
-      <parameter type-id='type-id-8' name='level' filepath='Python/import.c' line='1965' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyImport_ImportModuleLevelObject' mangled-name='PyImport_ImportModuleLevelObject' filepath='Python/import.c' line='1812' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportModuleLevelObject'>
-      <parameter type-id='type-id-100' name='name' filepath='Python/import.c' line='1812' column='1'/>
-      <parameter type-id='type-id-100' name='globals' filepath='Python/import.c' line='1812' column='1'/>
-      <parameter type-id='type-id-100' name='locals' filepath='Python/import.c' line='1813' column='1'/>
-      <parameter type-id='type-id-100' name='fromlist' filepath='Python/import.c' line='1813' column='1'/>
-      <parameter type-id='type-id-8' name='level' filepath='Python/import.c' line='1814' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyImport_GetModule' mangled-name='PyImport_GetModule' filepath='Python/import.c' line='1795' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetModule'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1992' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTime_GetMonotonicClock' mangled-name='_PyTime_GetMonotonicClock' filepath='Python/pytime.c' line='940' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetMonotonicClock'>
+      <return type-id='type-id-666'/>
     </function-decl>
-    <function-decl name='PyImport_ImportModuleNoBlock' mangled-name='PyImport_ImportModuleNoBlock' filepath='Python/import.c' line='1504' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportModuleNoBlock'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='355' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTime_GetSystemClockWithInfo' mangled-name='_PyTime_GetSystemClockWithInfo' filepath='Python/pytime.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetSystemClockWithInfo'>
+      <parameter type-id='type-id-667' name='tp' filepath='Python/pytime.c' line='952' column='1'/>
+      <parameter type-id='type-id-670' name='info' filepath='Python/pytime.c' line='952' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyImport_ImportModule' mangled-name='PyImport_ImportModule' filepath='Python/import.c' line='1480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportModule'>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/bytesobject.c' line='128' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTime_GetSystemClock' mangled-name='_PyTime_GetSystemClock' filepath='Python/pytime.c' line='769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetSystemClock'>
+      <return type-id='type-id-666'/>
     </function-decl>
-    <function-decl name='PyImport_ImportFrozenModule' mangled-name='PyImport_ImportFrozenModule' filepath='Python/import.c' line='1463' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportFrozenModule'>
-      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='1463' column='1'/>
+    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h' line='10' column='1' id='type-id-671'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='tv_sec' type-id='type-id-662' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h' line='12' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='tv_nsec' type-id='type-id-672' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h' line='16' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='__syscall_slong_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='196' column='1' id='type-id-672'/>
+    <pointer-type-def type-id='type-id-671' size-in-bits='64' id='type-id-673'/>
+    <function-decl name='_PyTime_AsTimespec' mangled-name='_PyTime_AsTimespec' filepath='Python/pytime.c' line='636' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsTimespec'>
+      <parameter type-id='type-id-666' name='t' filepath='Python/pytime.c' line='636' column='1'/>
+      <parameter type-id='type-id-673' name='ts' filepath='Python/pytime.c' line='636' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyImport_ImportFrozenModuleObject' mangled-name='PyImport_ImportFrozenModuleObject' filepath='Python/import.c' line='1397' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ImportFrozenModuleObject'>
-      <parameter type-id='type-id-100' name='name' filepath='Python/import.c' line='1397' column='1'/>
+    <pointer-type-def type-id='type-id-663' size-in-bits='64' id='type-id-674'/>
+    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/pytime.h' line='23' column='1' id='type-id-675'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='_PyTime_ROUND_FLOOR' value='0'/>
+      <enumerator name='_PyTime_ROUND_CEILING' value='1'/>
+      <enumerator name='_PyTime_ROUND_HALF_EVEN' value='2'/>
+      <enumerator name='_PyTime_ROUND_UP' value='3'/>
+      <enumerator name='_PyTime_ROUND_TIMEOUT' value='3'/>
+    </enum-decl>
+    <typedef-decl name='_PyTime_round_t' type-id='type-id-675' filepath='./Include/pytime.h' line='43' column='1' id='type-id-676'/>
+    <function-decl name='_PyTime_AsTimevalTime_t' mangled-name='_PyTime_AsTimevalTime_t' filepath='Python/pytime.c' line='616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsTimevalTime_t'>
+      <parameter type-id='type-id-666' name='t' filepath='Python/pytime.c' line='616' column='1'/>
+      <parameter type-id='type-id-674' name='p_secs' filepath='Python/pytime.c' line='616' column='1'/>
+      <parameter type-id='type-id-227' name='us' filepath='Python/pytime.c' line='616' column='1'/>
+      <parameter type-id='type-id-676' name='round' filepath='Python/pytime.c' line='617' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyImport_GetImporter' mangled-name='PyImport_GetImporter' filepath='Python/import.c' line='1233' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetImporter'>
-      <parameter type-id='type-id-100' name='m' filepath='Python/import.c' line='1982' column='1'/>
-      <return type-id='type-id-100'/>
+    <class-decl name='timeval' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h' line='8' column='1' id='type-id-677'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='tv_sec' type-id='type-id-662' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h' line='10' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='tv_usec' type-id='type-id-678' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h' line='11' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='__suseconds_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='162' column='1' id='type-id-678'/>
+    <pointer-type-def type-id='type-id-677' size-in-bits='64' id='type-id-679'/>
+    <function-decl name='_PyTime_AsTimeval_noraise' mangled-name='_PyTime_AsTimeval_noraise' filepath='Python/pytime.c' line='610' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsTimeval_noraise'>
+      <parameter type-id='type-id-666' name='t' filepath='Python/pytime.c' line='610' column='1'/>
+      <parameter type-id='type-id-679' name='tv' filepath='Python/pytime.c' line='610' column='1'/>
+      <parameter type-id='type-id-676' name='round' filepath='Python/pytime.c' line='610' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyImport_ExecCodeModuleObject' mangled-name='PyImport_ExecCodeModuleObject' filepath='Python/import.c' line='1061' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExecCodeModuleObject'>
-      <parameter type-id='type-id-100' name='name' filepath='Python/import.c' line='1061' column='1'/>
-      <parameter type-id='type-id-100' name='co' filepath='Python/import.c' line='1061' column='1'/>
-      <parameter type-id='type-id-100' name='pathname' filepath='Python/import.c' line='1061' column='1'/>
-      <parameter type-id='type-id-100' name='cpathname' filepath='Python/import.c' line='1062' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTime_AsTimeval' mangled-name='_PyTime_AsTimeval' filepath='Python/pytime.c' line='604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsTimeval'>
+      <parameter type-id='type-id-666' name='t' filepath='Python/pytime.c' line='610' column='1'/>
+      <parameter type-id='type-id-679' name='tv' filepath='Python/pytime.c' line='610' column='1'/>
+      <parameter type-id='type-id-676' name='round' filepath='Python/pytime.c' line='610' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyImport_ExecCodeModuleWithPathnames' mangled-name='PyImport_ExecCodeModuleWithPathnames' filepath='Python/import.c' line='959' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExecCodeModuleWithPathnames'>
-      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='959' column='1'/>
-      <parameter type-id='type-id-100' name='co' filepath='Python/import.c' line='959' column='1'/>
-      <parameter type-id='type-id-3' name='pathname' filepath='Python/import.c' line='960' column='1'/>
-      <parameter type-id='type-id-3' name='cpathname' filepath='Python/import.c' line='961' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTime_AsMicroseconds' mangled-name='_PyTime_AsMicroseconds' filepath='Python/pytime.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsMicroseconds'>
+      <parameter type-id='type-id-666' name='t' filepath='Python/pytime.c' line='533' column='1'/>
+      <parameter type-id='type-id-676' name='round' filepath='Python/pytime.c' line='533' column='1'/>
+      <return type-id='type-id-666'/>
     </function-decl>
-    <function-decl name='PyImport_ExecCodeModuleEx' mangled-name='PyImport_ExecCodeModuleEx' filepath='Python/import.c' line='952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExecCodeModuleEx'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='379' column='1'/>
-      <parameter type-id='type-id-100' name='stream' filepath='Python/codecs.c' line='380' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='Python/codecs.c' line='381' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTime_AsMilliseconds' mangled-name='_PyTime_AsMilliseconds' filepath='Python/pytime.c' line='527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsMilliseconds'>
+      <parameter type-id='type-id-666' name='t' filepath='Python/pytime.c' line='533' column='1'/>
+      <parameter type-id='type-id-676' name='round' filepath='Python/pytime.c' line='533' column='1'/>
+      <return type-id='type-id-666'/>
     </function-decl>
-    <function-decl name='PyImport_ExecCodeModule' mangled-name='PyImport_ExecCodeModule' filepath='Python/import.c' line='945' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_ExecCodeModule'>
-      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='945' column='1'/>
-      <parameter type-id='type-id-100' name='co' filepath='Python/import.c' line='945' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTime_AsSecondsDouble' mangled-name='_PyTime_AsSecondsDouble' filepath='Python/pytime.c' line='453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsSecondsDouble'>
+      <parameter type-id='type-id-666' name='t' filepath='Python/pytime.c' line='453' column='1'/>
+      <return type-id='type-id-441'/>
     </function-decl>
-    <function-decl name='PyImport_AddModule' mangled-name='PyImport_AddModule' filepath='Python/import.c' line='896' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_AddModule'>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/bytesobject.c' line='128' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTime_FromMillisecondsObject' mangled-name='_PyTime_FromMillisecondsObject' filepath='Python/pytime.c' line='447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromMillisecondsObject'>
+      <parameter type-id='type-id-667' name='t' filepath='Python/pytime.c' line='447' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='447' column='1'/>
+      <parameter type-id='type-id-676' name='round' filepath='Python/pytime.c' line='447' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyImport_AddModuleObject' mangled-name='PyImport_AddModuleObject' filepath='Python/import.c' line='888' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_AddModuleObject'>
-      <parameter type-id='type-id-100' name='iter' filepath='Objects/abstract.c' line='2691' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTime_FromSecondsObject' mangled-name='_PyTime_FromSecondsObject' filepath='Python/pytime.c' line='441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromSecondsObject'>
+      <parameter type-id='type-id-667' name='t' filepath='Python/pytime.c' line='447' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='447' column='1'/>
+      <parameter type-id='type-id-676' name='round' filepath='Python/pytime.c' line='447' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyImport_FindExtensionObject' mangled-name='_PyImport_FindExtensionObject' filepath='Python/import.c' line='822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_FindExtensionObject'>
-      <parameter type-id='type-id-100' name='callable' filepath='Objects/call.c' line='445' column='1'/>
-      <parameter type-id='type-id-100' name='args' filepath='Objects/call.c' line='445' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTime_FromTimeval' mangled-name='_PyTime_FromTimeval' filepath='Python/pytime.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromTimeval'>
+      <parameter type-id='type-id-667' name='tp' filepath='Python/pytime.c' line='380' column='1'/>
+      <parameter type-id='type-id-679' name='tv' filepath='Python/pytime.c' line='380' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyImport_FixupBuiltin' mangled-name='_PyImport_FixupBuiltin' filepath='Python/import.c' line='750' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_FixupBuiltin'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/abstract.c' line='2227' column='1'/>
-      <parameter type-id='type-id-3' name='key' filepath='Objects/abstract.c' line='2227' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Objects/abstract.c' line='2227' column='1'/>
+    <function-decl name='_PyTime_FromTimespec' mangled-name='_PyTime_FromTimespec' filepath='Python/pytime.c' line='334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromTimespec'>
+      <parameter type-id='type-id-667' name='tp' filepath='Python/pytime.c' line='334' column='1'/>
+      <parameter type-id='type-id-673' name='ts' filepath='Python/pytime.c' line='334' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyImport_FixupExtensionObject' mangled-name='_PyImport_FixupExtensionObject' filepath='Python/import.c' line='687' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_FixupExtensionObject'>
-      <parameter type-id='type-id-100' name='mod' filepath='Python/import.c' line='687' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Python/import.c' line='687' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/import.c' line='688' column='1'/>
-      <parameter type-id='type-id-100' name='modules' filepath='Python/import.c' line='688' column='1'/>
+    <function-decl name='_PyTime_FromNanosecondsObject' mangled-name='_PyTime_FromNanosecondsObject' filepath='Python/pytime.c' line='268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromNanosecondsObject'>
+      <parameter type-id='type-id-667' name='tp' filepath='Python/pytime.c' line='268' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='268' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyImport_GetMagicTag' mangled-name='PyImport_GetMagicTag' filepath='Python/import.c' line='664' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetMagicTag'>
-      <return type-id='type-id-3'/>
+    <function-decl name='_PyTime_FromNanoseconds' mangled-name='_PyTime_FromNanoseconds' filepath='Python/pytime.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromNanoseconds'>
+      <parameter type-id='type-id-666' name='ns' filepath='Python/pytime.c' line='261' column='1'/>
+      <return type-id='type-id-666'/>
     </function-decl>
-    <function-decl name='PyImport_GetMagicNumber' mangled-name='PyImport_GetMagicNumber' filepath='Python/import.c' line='642' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetMagicNumber'>
-      <return type-id='type-id-12'/>
+    <function-decl name='_PyTime_FromSeconds' mangled-name='_PyTime_FromSeconds' filepath='Python/pytime.c' line='244' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromSeconds'>
+      <parameter type-id='type-id-8' name='seconds' filepath='Python/pytime.c' line='244' column='1'/>
+      <return type-id='type-id-666'/>
     </function-decl>
-    <function-decl name='_PyImport_SetModuleString' mangled-name='_PyImport_SetModuleString' filepath='Python/import.c' line='349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_SetModuleString'>
-      <parameter type-id='type-id-3' name='name' filepath='Python/import.c' line='349' column='1'/>
-      <parameter type-id='type-id-100' name='m' filepath='Python/import.c' line='349' column='1'/>
+    <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-680'/>
+    <function-decl name='_PyTime_ObjectToTimeval' mangled-name='_PyTime_ObjectToTimeval' filepath='Python/pytime.c' line='237' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_ObjectToTimeval'>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='237' column='1'/>
+      <parameter type-id='type-id-674' name='sec' filepath='Python/pytime.c' line='237' column='1'/>
+      <parameter type-id='type-id-680' name='usec' filepath='Python/pytime.c' line='237' column='1'/>
+      <parameter type-id='type-id-676' name='round' filepath='Python/pytime.c' line='238' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyImport_SetModule' mangled-name='_PyImport_SetModule' filepath='Python/import.c' line='341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_SetModule'>
-      <parameter type-id='type-id-100' name='seq' filepath='Objects/abstract.c' line='2142' column='1'/>
-      <parameter type-id='type-id-100' name='ob' filepath='Objects/abstract.c' line='2142' column='1'/>
+    <function-decl name='_PyTime_ObjectToTimespec' mangled-name='_PyTime_ObjectToTimespec' filepath='Python/pytime.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_ObjectToTimespec'>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='237' column='1'/>
+      <parameter type-id='type-id-674' name='sec' filepath='Python/pytime.c' line='237' column='1'/>
+      <parameter type-id='type-id-680' name='usec' filepath='Python/pytime.c' line='237' column='1'/>
+      <parameter type-id='type-id-676' name='round' filepath='Python/pytime.c' line='238' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyImport_GetModuleId' mangled-name='_PyImport_GetModuleId' filepath='Python/import.c' line='331' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_GetModuleId'>
-      <parameter type-id='type-id-308' name='nameid' filepath='Python/import.c' line='331' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='_PyImport_IsInitialized' mangled-name='_PyImport_IsInitialized' filepath='Python/import.c' line='323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_IsInitialized'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/import.c' line='323' column='1'/>
+    <function-decl name='_PyTime_ObjectToTime_t' mangled-name='_PyTime_ObjectToTime_t' filepath='Python/pytime.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_ObjectToTime_t'>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='197' column='1'/>
+      <parameter type-id='type-id-674' name='sec' filepath='Python/pytime.c' line='197' column='1'/>
+      <parameter type-id='type-id-676' name='round' filepath='Python/pytime.c' line='197' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyImport_GetModuleDict' mangled-name='PyImport_GetModuleDict' filepath='Python/import.c' line='309' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyImport_GetModuleDict'>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='_PyImport_ReleaseLock' mangled-name='_PyImport_ReleaseLock' filepath='Python/import.c' line='183' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_ReleaseLock'>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyTime_MulDiv' mangled-name='_PyTime_MulDiv' filepath='Python/pytime.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_MulDiv'>
+      <parameter type-id='type-id-666' name='ticks' filepath='Python/pytime.c' line='53' column='1'/>
+      <parameter type-id='type-id-666' name='mul' filepath='Python/pytime.c' line='53' column='1'/>
+      <parameter type-id='type-id-666' name='div' filepath='Python/pytime.c' line='53' column='1'/>
+      <return type-id='type-id-666'/>
     </function-decl>
-    <function-decl name='_PyImport_AcquireLock' mangled-name='_PyImport_AcquireLock' filepath='Python/import.c' line='156' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyImport_AcquireLock'>
-      <return type-id='type-id-4'/>
+    <function-decl name='_PyLong_AsTime_t' mangled-name='_PyLong_AsTime_t' filepath='Python/pytime.c' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_AsTime_t'>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='71' column='1'/>
+      <return type-id='type-id-663'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='./Python/initconfig.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='Py_UTF8Mode' type-id='type-id-8' mangled-name='Py_UTF8Mode' visibility='default' filepath='./Include/fileobject.h' line='29' column='1' elf-symbol-id='Py_UTF8Mode'/>
-    <var-decl name='Py_DebugFlag' type-id='type-id-8' mangled-name='Py_DebugFlag' visibility='default' filepath='./Include/pydebug.h' line='8' column='1' elf-symbol-id='Py_DebugFlag'/>
-    <var-decl name='Py_VerboseFlag' type-id='type-id-8' mangled-name='Py_VerboseFlag' visibility='default' filepath='./Include/pydebug.h' line='9' column='1' elf-symbol-id='Py_VerboseFlag'/>
-    <var-decl name='Py_QuietFlag' type-id='type-id-8' mangled-name='Py_QuietFlag' visibility='default' filepath='./Include/pydebug.h' line='10' column='1' elf-symbol-id='Py_QuietFlag'/>
-    <var-decl name='Py_InteractiveFlag' type-id='type-id-8' mangled-name='Py_InteractiveFlag' visibility='default' filepath='./Include/pydebug.h' line='11' column='1' elf-symbol-id='Py_InteractiveFlag'/>
-    <var-decl name='Py_InspectFlag' type-id='type-id-8' mangled-name='Py_InspectFlag' visibility='default' filepath='./Include/pydebug.h' line='12' column='1' elf-symbol-id='Py_InspectFlag'/>
-    <var-decl name='Py_OptimizeFlag' type-id='type-id-8' mangled-name='Py_OptimizeFlag' visibility='default' filepath='./Include/pydebug.h' line='13' column='1' elf-symbol-id='Py_OptimizeFlag'/>
-    <var-decl name='Py_NoSiteFlag' type-id='type-id-8' mangled-name='Py_NoSiteFlag' visibility='default' filepath='./Include/pydebug.h' line='14' column='1' elf-symbol-id='Py_NoSiteFlag'/>
-    <var-decl name='Py_BytesWarningFlag' type-id='type-id-8' mangled-name='Py_BytesWarningFlag' visibility='default' filepath='./Include/pydebug.h' line='15' column='1' elf-symbol-id='Py_BytesWarningFlag'/>
-    <var-decl name='Py_FrozenFlag' type-id='type-id-8' mangled-name='Py_FrozenFlag' visibility='default' filepath='./Include/pydebug.h' line='16' column='1' elf-symbol-id='Py_FrozenFlag'/>
-    <var-decl name='Py_IgnoreEnvironmentFlag' type-id='type-id-8' mangled-name='Py_IgnoreEnvironmentFlag' visibility='default' filepath='./Include/pydebug.h' line='17' column='1' elf-symbol-id='Py_IgnoreEnvironmentFlag'/>
-    <var-decl name='Py_DontWriteBytecodeFlag' type-id='type-id-8' mangled-name='Py_DontWriteBytecodeFlag' visibility='default' filepath='./Include/pydebug.h' line='18' column='1' elf-symbol-id='Py_DontWriteBytecodeFlag'/>
-    <var-decl name='Py_NoUserSiteDirectory' type-id='type-id-8' mangled-name='Py_NoUserSiteDirectory' visibility='default' filepath='./Include/pydebug.h' line='19' column='1' elf-symbol-id='Py_NoUserSiteDirectory'/>
-    <var-decl name='Py_UnbufferedStdioFlag' type-id='type-id-8' mangled-name='Py_UnbufferedStdioFlag' visibility='default' filepath='./Include/pydebug.h' line='20' column='1' elf-symbol-id='Py_UnbufferedStdioFlag'/>
-    <var-decl name='Py_HashRandomizationFlag' type-id='type-id-8' mangled-name='Py_HashRandomizationFlag' visibility='default' filepath='./Include/pydebug.h' line='21' column='1' elf-symbol-id='Py_HashRandomizationFlag'/>
-    <var-decl name='Py_IsolatedFlag' type-id='type-id-8' mangled-name='Py_IsolatedFlag' visibility='default' filepath='./Include/pydebug.h' line='22' column='1' elf-symbol-id='Py_IsolatedFlag'/>
-    <function-decl name='_Py_GetConfigsAsDict' mangled-name='_Py_GetConfigsAsDict' filepath='./Python/initconfig.c' line='2614' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetConfigsAsDict'>
+    <function-decl name='_PyLong_FromTime_t' mangled-name='_PyLong_FromTime_t' filepath='Python/pytime.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromTime_t'>
+      <parameter type-id='type-id-663' name='t' filepath='Python/pytime.c' line='91' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='256' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-592' visibility='default' filepath='./Include/cpython/initconfig.h' line='10' column='1' id='type-id-593'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_type' type-id='type-id-594' visibility='default' filepath='./Include/cpython/initconfig.h' line='15' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='func' type-id='type-id-3' visibility='default' filepath='./Include/cpython/initconfig.h' line='16' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='err_msg' type-id='type-id-3' visibility='default' filepath='./Include/cpython/initconfig.h' line='17' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='exitcode' type-id='type-id-8' visibility='default' filepath='./Include/cpython/initconfig.h' line='18' column='1'/>
-      </data-member>
-    </class-decl>
-    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/cpython/initconfig.h' line='11' column='1' id='type-id-594'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='_PyStatus_TYPE_OK' value='0'/>
-      <enumerator name='_PyStatus_TYPE_ERROR' value='1'/>
-      <enumerator name='_PyStatus_TYPE_EXIT' value='2'/>
-    </enum-decl>
-    <typedef-decl name='PyStatus' type-id='type-id-593' filepath='./Include/cpython/initconfig.h' line='19' column='1' id='type-id-592'/>
-    <pointer-type-def type-id='type-id-321' size-in-bits='64' id='type-id-595'/>
-    <function-decl name='PyConfig_Read' mangled-name='PyConfig_Read' filepath='./Python/initconfig.c' line='2503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_Read'>
-      <parameter type-id='type-id-595' name='config' filepath='./Python/initconfig.c' line='2503' column='1'/>
-      <return type-id='type-id-592'/>
-    </function-decl>
-    <pointer-type-def type-id='type-id-404' size-in-bits='64' id='type-id-596'/>
-    <function-decl name='PyConfig_SetWideStringList' mangled-name='PyConfig_SetWideStringList' filepath='./Python/initconfig.c' line='2479' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetWideStringList'>
-      <parameter type-id='type-id-595' name='config' filepath='./Python/initconfig.c' line='2479' column='1'/>
-      <parameter type-id='type-id-596' name='list' filepath='./Python/initconfig.c' line='2479' column='1'/>
-      <parameter type-id='type-id-15' name='length' filepath='./Python/initconfig.c' line='2480' column='1'/>
-      <parameter type-id='type-id-407' name='items' filepath='./Python/initconfig.c' line='2480' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='gmtime_r' mangled-name='gmtime_r' filepath='/usr/include/time.h' line='128' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <qualified-type-def type-id='type-id-403' const='yes' id='type-id-597'/>
-    <pointer-type-def type-id='type-id-597' size-in-bits='64' id='type-id-598'/>
-    <function-decl name='PyConfig_SetArgv' mangled-name='PyConfig_SetArgv' filepath='./Python/initconfig.c' line='2467' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetArgv'>
-      <parameter type-id='type-id-595' name='config' filepath='./Python/initconfig.c' line='2467' column='1'/>
-      <parameter type-id='type-id-15' name='argc' filepath='./Python/initconfig.c' line='2467' column='1'/>
-      <parameter type-id='type-id-598' name='argv' filepath='./Python/initconfig.c' line='2467' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='localtime_r' mangled-name='localtime_r' filepath='/usr/include/time.h' line='133' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyConfig_SetBytesArgv' mangled-name='PyConfig_SetBytesArgv' filepath='./Python/initconfig.c' line='2455' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetBytesArgv'>
-      <parameter type-id='type-id-595' name='config' filepath='./Python/initconfig.c' line='2455' column='1'/>
-      <parameter type-id='type-id-15' name='argc' filepath='./Python/initconfig.c' line='2455' column='1'/>
-      <parameter type-id='type-id-280' name='argv' filepath='./Python/initconfig.c' line='2455' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='clock_getres' mangled-name='clock_getres' filepath='/usr/include/time.h' line='210' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyConfig_SetBytesString' mangled-name='PyConfig_SetBytesString' filepath='./Python/initconfig.c' line='771' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetBytesString'>
-      <parameter type-id='type-id-595' name='config' filepath='./Python/initconfig.c' line='771' column='1'/>
-      <parameter type-id='type-id-407' name='config_str' filepath='./Python/initconfig.c' line='771' column='1'/>
-      <parameter type-id='type-id-3' name='str' filepath='./Python/initconfig.c' line='772' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='clock_gettime' mangled-name='clock_gettime' filepath='/usr/include/time.h' line='213' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyConfig_SetString' mangled-name='PyConfig_SetString' filepath='./Python/initconfig.c' line='709' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_SetString'>
-      <parameter type-id='type-id-595' name='config' filepath='./Python/initconfig.c' line='709' column='1'/>
-      <parameter type-id='type-id-407' name='config_str' filepath='./Python/initconfig.c' line='709' column='1'/>
-      <parameter type-id='type-id-501' name='str' filepath='./Python/initconfig.c' line='709' column='1'/>
-      <return type-id='type-id-592'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/bootstrap_hash.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_PyOS_URandomNonblock' mangled-name='_PyOS_URandomNonblock' filepath='Python/bootstrap_hash.c' line='566' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_URandomNonblock'>
+      <parameter type-id='type-id-32' name='buffer' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyConfig_InitIsolatedConfig' mangled-name='PyConfig_InitIsolatedConfig' filepath='./Python/initconfig.c' line='687' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_InitIsolatedConfig'>
-      <parameter type-id='type-id-595' name='config' filepath='./Python/initconfig.c' line='687' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='_PyOS_URandom' mangled-name='_PyOS_URandom' filepath='Python/bootstrap_hash.c' line='552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_URandom'>
+      <parameter type-id='type-id-32' name='buffer' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyConfig_InitPythonConfig' mangled-name='PyConfig_InitPythonConfig' filepath='./Python/initconfig.c' line='676' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_InitPythonConfig'>
-      <parameter type-id='type-id-595' name='config' filepath='./Python/initconfig.c' line='687' column='1'/>
+    <function-decl name='_Py_open' mangled-name='_Py_open' filepath='./Include/cpython/fileutils.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyConfig_InitCompatConfig' mangled-name='_PyConfig_InitCompatConfig' filepath='./Python/initconfig.c' line='612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyConfig_InitCompatConfig'>
-      <parameter type-id='type-id-595' name='config' filepath='./Python/initconfig.c' line='687' column='1'/>
+    <function-decl name='_Py_read' mangled-name='_Py_read' filepath='./Include/cpython/fileutils.h' line='106' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyConfig_Clear' mangled-name='PyConfig_Clear' filepath='./Python/initconfig.c' line='570' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyConfig_Clear'>
-      <parameter type-id='type-id-595' name='config' filepath='./Python/initconfig.c' line='687' column='1'/>
+    <function-decl name='_Py_fstat' mangled-name='_Py_fstat' filepath='./Include/cpython/fileutils.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-407' size-in-bits='64' id='type-id-599'/>
-    <function-decl name='Py_GetArgcArgv' mangled-name='Py_GetArgcArgv' filepath='./Python/initconfig.c' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetArgcArgv'>
-      <parameter type-id='type-id-227' name='argc' filepath='./Python/initconfig.c' line='553' column='1'/>
-      <parameter type-id='type-id-599' name='argv' filepath='./Python/initconfig.c' line='553' column='1'/>
+    <function-decl name='__read_alias' mangled-name='read' filepath='/usr/include/x86_64-linux-gnu/bits/unistd.h' line='25' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_ClearArgcArgv' mangled-name='_Py_ClearArgcArgv' filepath='./Python/initconfig.c' line='525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_ClearArgcArgv'>
+    <function-decl name='_Py_open_noraise' mangled-name='_Py_open_noraise' filepath='./Include/cpython/fileutils.h' line='90' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_ClearStandardStreamEncoding' mangled-name='_Py_ClearStandardStreamEncoding' filepath='./Python/initconfig.c' line='498' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_ClearStandardStreamEncoding'>
+    <function-decl name='getrandom' mangled-name='getrandom' filepath='/usr/include/x86_64-linux-gnu/sys/random.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_SetStandardStreamEncoding' mangled-name='Py_SetStandardStreamEncoding' filepath='./Python/initconfig.c' line='443' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetStandardStreamEncoding'>
-      <parameter type-id='type-id-3' name='encoding' filepath='./Python/initconfig.c' line='443' column='1'/>
-      <parameter type-id='type-id-3' name='errors' filepath='./Python/initconfig.c' line='443' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/structmember.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyMember_SetOne' mangled-name='PyMember_SetOne' filepath='Python/structmember.c' line='100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMember_SetOne'>
+      <parameter type-id='type-id-7' name='addr' filepath='Python/structmember.c' line='100' column='1'/>
+      <parameter type-id='type-id-450' name='l' filepath='Python/structmember.c' line='100' column='1'/>
+      <parameter type-id='type-id-100' name='v' filepath='Python/structmember.c' line='100' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <qualified-type-def type-id='type-id-404' const='yes' id='type-id-600'/>
-    <pointer-type-def type-id='type-id-600' size-in-bits='64' id='type-id-601'/>
-    <function-decl name='_PyWideStringList_AsList' mangled-name='_PyWideStringList_AsList' filepath='./Python/initconfig.c' line='412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_AsList'>
-      <parameter type-id='type-id-601' name='list' filepath='./Python/initconfig.c' line='412' column='1'/>
+    <function-decl name='PyMember_GetOne' mangled-name='PyMember_GetOne' filepath='Python/structmember.c' line='8' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMember_GetOne'>
+      <parameter type-id='type-id-3' name='addr' filepath='Python/structmember.c' line='8' column='1'/>
+      <parameter type-id='type-id-450' name='l' filepath='Python/structmember.c' line='8' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyWideStringList_Extend' mangled-name='_PyWideStringList_Extend' filepath='./Python/initconfig.c' line='387' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_Extend'>
-      <parameter type-id='type-id-596' name='list' filepath='./Python/initconfig.c' line='387' column='1'/>
-      <parameter type-id='type-id-601' name='list2' filepath='./Python/initconfig.c' line='387' column='1'/>
-      <return type-id='type-id-592'/>
-    </function-decl>
-    <function-decl name='PyWideStringList_Append' mangled-name='PyWideStringList_Append' filepath='./Python/initconfig.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWideStringList_Append'>
-      <parameter type-id='type-id-596' name='list' filepath='./Python/initconfig.c' line='380' column='1'/>
-      <parameter type-id='type-id-501' name='item' filepath='./Python/initconfig.c' line='380' column='1'/>
-      <return type-id='type-id-592'/>
-    </function-decl>
-    <function-decl name='PyWideStringList_Insert' mangled-name='PyWideStringList_Insert' filepath='./Python/initconfig.c' line='339' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyWideStringList_Insert'>
-      <parameter type-id='type-id-596' name='list' filepath='./Python/initconfig.c' line='339' column='1'/>
-      <parameter type-id='type-id-15' name='index' filepath='./Python/initconfig.c' line='340' column='1'/>
-      <parameter type-id='type-id-501' name='item' filepath='./Python/initconfig.c' line='340' column='1'/>
-      <return type-id='type-id-592'/>
-    </function-decl>
-    <function-decl name='_PyWideStringList_Copy' mangled-name='_PyWideStringList_Copy' filepath='./Python/initconfig.c' line='304' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_Copy'>
-      <parameter type-id='type-id-596' name='list' filepath='./Python/initconfig.c' line='304' column='1'/>
-      <parameter type-id='type-id-601' name='list2' filepath='./Python/initconfig.c' line='304' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/symtable.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PySTEntry_Type' type-id='type-id-182' mangled-name='PySTEntry_Type' visibility='default' filepath='./Include/symtable.h' line='70' column='1' elf-symbol-id='PySTEntry_Type'/>
+    <typedef-decl name='PySTEntryObject' type-id='type-id-658' filepath='./Include/symtable.h' line='68' column='1' id='type-id-681'/>
+    <pointer-type-def type-id='type-id-681' size-in-bits='64' id='type-id-682'/>
+    <function-decl name='PyST_GetScope' mangled-name='PyST_GetScope' filepath='Python/symtable.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyST_GetScope'>
+      <parameter type-id='type-id-682' name='ste' filepath='Python/symtable.c' line='403' column='1'/>
+      <parameter type-id='type-id-100' name='name' filepath='Python/symtable.c' line='403' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyWideStringList_Clear' mangled-name='_PyWideStringList_Clear' filepath='./Python/initconfig.c' line='291' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyWideStringList_Clear'>
-      <parameter type-id='type-id-596' name='list' filepath='./Python/initconfig.c' line='291' column='1'/>
+    <function-decl name='PySymtable_Lookup' mangled-name='PySymtable_Lookup' filepath='Python/symtable.c' line='371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySymtable_Lookup'>
+      <parameter type-id='type-id-660' name='st' filepath='Python/symtable.c' line='371' column='1'/>
+      <parameter type-id='type-id-32' name='key' filepath='Python/symtable.c' line='371' column='1'/>
+      <return type-id='type-id-682'/>
+    </function-decl>
+    <function-decl name='PySymtable_Free' mangled-name='PySymtable_Free' filepath='Python/symtable.c' line='362' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySymtable_Free'>
+      <parameter type-id='type-id-660' name='st' filepath='Python/symtable.c' line='362' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyStatus_Exception' mangled-name='PyStatus_Exception' filepath='./Python/initconfig.c' line='268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Exception'>
-      <parameter type-id='type-id-592' name='status' filepath='./Python/initconfig.c' line='268' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PySymtable_Build' mangled-name='PySymtable_Build' filepath='Python/symtable.c' line='349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySymtable_Build'>
+      <parameter type-id='type-id-204' name='mod' filepath='Python/symtable.c' line='349' column='1'/>
+      <parameter type-id='type-id-3' name='filename_str' filepath='Python/symtable.c' line='349' column='1'/>
+      <parameter type-id='type-id-555' name='future' filepath='Python/symtable.c' line='349' column='1'/>
+      <return type-id='type-id-660'/>
     </function-decl>
-    <function-decl name='PyStatus_IsExit' mangled-name='PyStatus_IsExit' filepath='./Python/initconfig.c' line='265' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_IsExit'>
-      <parameter type-id='type-id-592' name='status' filepath='./Python/initconfig.c' line='268' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PySymtable_BuildObject' mangled-name='PySymtable_BuildObject' filepath='Python/symtable.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySymtable_BuildObject'>
+      <parameter type-id='type-id-204' name='mod' filepath='Python/symtable.c' line='261' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/symtable.c' line='261' column='1'/>
+      <parameter type-id='type-id-555' name='future' filepath='Python/symtable.c' line='261' column='1'/>
+      <return type-id='type-id-660'/>
     </function-decl>
-    <function-decl name='PyStatus_IsError' mangled-name='PyStatus_IsError' filepath='./Python/initconfig.c' line='262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_IsError'>
-      <parameter type-id='type-id-592' name='status' filepath='./Python/initconfig.c' line='268' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PySet_Discard' mangled-name='PySet_Discard' filepath='./Include/setobject.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyStatus_Exit' mangled-name='PyStatus_Exit' filepath='./Python/initconfig.c' line='258' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Exit'>
-      <parameter type-id='type-id-8' name='exitcode' filepath='./Python/initconfig.c' line='258' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='Py_GetRecursionLimit' mangled-name='Py_GetRecursionLimit' filepath='./Include/ceval.h' line='65' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyStatus_NoMemory' mangled-name='PyStatus_NoMemory' filepath='./Python/initconfig.c' line='255' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_NoMemory'>
-      <return type-id='type-id-592'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='./Python/sysmodule.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PySys_FormatStderr' mangled-name='PySys_FormatStderr' filepath='./Python/sysmodule.c' line='3322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_FormatStderr'>
+      <parameter type-id='type-id-3' name='format' filepath='./Python/sysmodule.c' line='3322' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyStatus_Error' mangled-name='PyStatus_Error' filepath='./Python/initconfig.c' line='249' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Error'>
-      <parameter type-id='type-id-3' name='err_msg' filepath='./Python/initconfig.c' line='249' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='PySys_FormatStdout' mangled-name='PySys_FormatStdout' filepath='./Python/sysmodule.c' line='3312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_FormatStdout'>
+      <parameter type-id='type-id-3' name='format' filepath='./Python/sysmodule.c' line='3322' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyStatus_Ok' mangled-name='PyStatus_Ok' filepath='./Python/initconfig.c' line='246' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyStatus_Ok'>
-      <return type-id='type-id-592'/>
+    <function-decl name='PySys_WriteStderr' mangled-name='PySys_WriteStderr' filepath='./Python/sysmodule.c' line='3279' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_WriteStderr'>
+      <parameter type-id='type-id-3' name='format' filepath='./Python/sysmodule.c' line='3322' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/marshal.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyMarshal_Init' mangled-name='PyMarshal_Init' filepath='Python/marshal.c' line='1802' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_Init'>
-      <return type-id='type-id-100'/>
+    <function-decl name='PySys_WriteStdout' mangled-name='PySys_WriteStdout' filepath='./Python/sysmodule.c' line='3269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_WriteStdout'>
+      <parameter type-id='type-id-3' name='format' filepath='./Python/sysmodule.c' line='3322' column='1'/>
+      <parameter is-variadic='yes'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMarshal_WriteObjectToString' mangled-name='PyMarshal_WriteObjectToString' filepath='Python/marshal.c' line='1563' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_WriteObjectToString'>
-      <parameter type-id='type-id-100' name='x' filepath='Python/marshal.c' line='1563' column='1'/>
-      <parameter type-id='type-id-8' name='version' filepath='Python/marshal.c' line='1563' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PySys_SetArgv' mangled-name='PySys_SetArgv' filepath='./Python/sysmodule.c' line='3176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetArgv'>
+      <parameter type-id='type-id-8' name='argc' filepath='./Python/sysmodule.c' line='3176' column='1'/>
+      <parameter type-id='type-id-407' name='argv' filepath='./Python/sysmodule.c' line='3176' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMarshal_ReadObjectFromString' mangled-name='PyMarshal_ReadObjectFromString' filepath='Python/marshal.c' line='1542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_ReadObjectFromString'>
-      <parameter type-id='type-id-3' name='bytes' filepath='Objects/bytearrayobject.c' line='114' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Objects/bytearrayobject.c' line='114' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PySys_SetArgvEx' mangled-name='PySys_SetArgvEx' filepath='./Python/sysmodule.c' line='3132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetArgvEx'>
+      <parameter type-id='type-id-8' name='argc' filepath='./Python/sysmodule.c' line='3132' column='1'/>
+      <parameter type-id='type-id-407' name='argv' filepath='./Python/sysmodule.c' line='3132' column='1'/>
+      <parameter type-id='type-id-8' name='updatepath' filepath='./Python/sysmodule.c' line='3132' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMarshal_ReadObjectFromFile' mangled-name='PyMarshal_ReadObjectFromFile' filepath='Python/marshal.c' line='1522' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_ReadObjectFromFile'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/marshal.c' line='1522' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PySys_SetPath' mangled-name='PySys_SetPath' filepath='./Python/sysmodule.c' line='3100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetPath'>
+      <parameter type-id='type-id-501' name='path' filepath='./Python/sysmodule.c' line='3100' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMarshal_ReadLastObjectFromFile' mangled-name='PyMarshal_ReadLastObjectFromFile' filepath='Python/marshal.c' line='1497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_ReadLastObjectFromFile'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/marshal.c' line='1497' column='1'/>
+    <function-decl name='PySys_GetXOptions' mangled-name='PySys_GetXOptions' filepath='./Python/sysmodule.c' line='2314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_GetXOptions'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyMarshal_ReadLongFromFile' mangled-name='PyMarshal_ReadLongFromFile' filepath='Python/marshal.c' line='1461' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_ReadLongFromFile'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/marshal.c' line='1461' column='1'/>
-      <return type-id='type-id-12'/>
+    <function-decl name='PySys_AddXOption' mangled-name='PySys_AddXOption' filepath='./Python/sysmodule.c' line='2300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddXOption'>
+      <parameter type-id='type-id-501' name='s' filepath='./Python/sysmodule.c' line='2300' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMarshal_ReadShortFromFile' mangled-name='PyMarshal_ReadShortFromFile' filepath='Python/marshal.c' line='1445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_ReadShortFromFile'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/marshal.c' line='1445' column='1'/>
+    <function-decl name='PySys_HasWarnOptions' mangled-name='PySys_HasWarnOptions' filepath='./Python/sysmodule.c' line='2226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_HasWarnOptions'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyMarshal_WriteObjectToFile' mangled-name='PyMarshal_WriteObjectToFile' filepath='Python/marshal.c' line='595' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_WriteObjectToFile'>
-      <parameter type-id='type-id-100' name='x' filepath='Python/marshal.c' line='595' column='1'/>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/marshal.c' line='595' column='1'/>
-      <parameter type-id='type-id-8' name='version' filepath='Python/marshal.c' line='595' column='1'/>
+    <function-decl name='PySys_AddWarnOption' mangled-name='PySys_AddWarnOption' filepath='./Python/sysmodule.c' line='2210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddWarnOption'>
+      <parameter type-id='type-id-501' name='s' filepath='./Python/sysmodule.c' line='2210' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMarshal_WriteLongToFile' mangled-name='PyMarshal_WriteLongToFile' filepath='Python/marshal.c' line='580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMarshal_WriteLongToFile'>
-      <parameter type-id='type-id-12' name='x' filepath='Python/marshal.c' line='580' column='1'/>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/marshal.c' line='580' column='1'/>
-      <parameter type-id='type-id-8' name='version' filepath='Python/marshal.c' line='580' column='1'/>
+    <function-decl name='PySys_AddWarnOptionUnicode' mangled-name='PySys_AddWarnOptionUnicode' filepath='./Python/sysmodule.c' line='2198' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddWarnOptionUnicode'>
+      <parameter type-id='type-id-100' name='self' filepath='Objects/object.c' line='185' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/modsupport.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='_Py_PackageContext' type-id='type-id-3' mangled-name='_Py_PackageContext' visibility='default' filepath='./Include/modsupport.h' line='249' column='1' elf-symbol-id='_Py_PackageContext'/>
-    <function-decl name='PyModule_AddType' mangled-name='PyModule_AddType' filepath='Python/modsupport.c' line='687' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddType'>
-      <parameter type-id='type-id-100' name='module' filepath='Python/modsupport.c' line='687' column='1'/>
-      <parameter type-id='type-id-75' name='type' filepath='Python/modsupport.c' line='687' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PySys_ResetWarnOptions' mangled-name='PySys_ResetWarnOptions' filepath='./Python/sysmodule.c' line='2170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_ResetWarnOptions'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyModule_AddStringConstant' mangled-name='PyModule_AddStringConstant' filepath='Python/modsupport.c' line='675' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddStringConstant'>
-      <parameter type-id='type-id-100' name='m' filepath='Python/modsupport.c' line='675' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='675' column='1'/>
-      <parameter type-id='type-id-3' name='value' filepath='Python/modsupport.c' line='675' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PySys_GetSizeOf' mangled-name='_PySys_GetSizeOf' filepath='./Python/sysmodule.c' line='1642' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySys_GetSizeOf'>
+      <parameter type-id='type-id-100' name='o' filepath='./Python/sysmodule.c' line='1642' column='1'/>
+      <return type-id='type-id-191'/>
     </function-decl>
-    <function-decl name='PyModule_AddIntConstant' mangled-name='PyModule_AddIntConstant' filepath='Python/modsupport.c' line='663' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddIntConstant'>
-      <parameter type-id='type-id-100' name='m' filepath='Python/modsupport.c' line='663' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='663' column='1'/>
-      <parameter type-id='type-id-12' name='value' filepath='Python/modsupport.c' line='663' column='1'/>
+    <function-decl name='PySys_AddAuditHook' mangled-name='PySys_AddAuditHook' filepath='./Python/sysmodule.c' line='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddAuditHook'>
+      <parameter type-id='type-id-381' name='hook' filepath='./Python/sysmodule.c' line='360' column='1'/>
+      <parameter type-id='type-id-32' name='userData' filepath='./Python/sysmodule.c' line='360' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyModule_AddObject' mangled-name='PyModule_AddObject' filepath='Python/modsupport.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyModule_AddObject'>
-      <parameter type-id='type-id-100' name='m' filepath='Python/modsupport.c' line='634' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/modsupport.c' line='634' column='1'/>
-      <parameter type-id='type-id-100' name='o' filepath='Python/modsupport.c' line='634' column='1'/>
+    <function-decl name='PySys_Audit' mangled-name='PySys_Audit' filepath='./Python/sysmodule.c' line='306' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_Audit'>
+      <parameter type-id='type-id-3' name='event' filepath='./Python/sysmodule.c' line='306' column='1'/>
+      <parameter type-id='type-id-3' name='argFormat' filepath='./Python/sysmodule.c' line='306' column='1'/>
+      <parameter is-variadic='yes'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_VaBuildStack_SizeT' mangled-name='_Py_VaBuildStack_SizeT' filepath='Python/modsupport.c' line='578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_VaBuildStack_SizeT'>
-      <parameter type-id='type-id-303' name='small_stack' filepath='Python/modsupport.c' line='578' column='1'/>
-      <parameter type-id='type-id-15' name='small_stack_len' filepath='Python/modsupport.c' line='578' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/modsupport.c' line='579' column='1'/>
-      <parameter type-id='type-id-306' name='va' filepath='Python/modsupport.c' line='579' column='1'/>
-      <parameter type-id='type-id-158' name='p_nargs' filepath='Python/modsupport.c' line='579' column='1'/>
-      <return type-id='type-id-303'/>
-    </function-decl>
-    <function-decl name='_Py_VaBuildStack' mangled-name='_Py_VaBuildStack' filepath='Python/modsupport.c' line='571' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_VaBuildStack'>
-      <parameter type-id='type-id-303' name='small_stack' filepath='Python/modsupport.c' line='578' column='1'/>
-      <parameter type-id='type-id-15' name='small_stack_len' filepath='Python/modsupport.c' line='578' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/modsupport.c' line='579' column='1'/>
-      <parameter type-id='type-id-306' name='va' filepath='Python/modsupport.c' line='579' column='1'/>
-      <parameter type-id='type-id-158' name='p_nargs' filepath='Python/modsupport.c' line='579' column='1'/>
-      <return type-id='type-id-303'/>
-    </function-decl>
-    <function-decl name='_Py_VaBuildValue_SizeT' mangled-name='_Py_VaBuildValue_SizeT' filepath='Python/modsupport.c' line='542' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_VaBuildValue_SizeT'>
-      <parameter type-id='type-id-3' name='format' filepath='Python/modsupport.c' line='542' column='1'/>
-      <parameter type-id='type-id-306' name='va' filepath='Python/modsupport.c' line='542' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PySys_SetObject' mangled-name='PySys_SetObject' filepath='./Python/sysmodule.c' line='134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetObject'>
+      <parameter type-id='type-id-3' name='name' filepath='./Python/sysmodule.c' line='134' column='1'/>
+      <parameter type-id='type-id-100' name='v' filepath='./Python/sysmodule.c' line='134' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_VaBuildValue' mangled-name='Py_VaBuildValue' filepath='Python/modsupport.c' line='536' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_VaBuildValue'>
-      <parameter type-id='type-id-3' name='format' filepath='Python/modsupport.c' line='542' column='1'/>
-      <parameter type-id='type-id-306' name='va' filepath='Python/modsupport.c' line='542' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PySys_SetObjectId' mangled-name='_PySys_SetObjectId' filepath='./Python/sysmodule.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySys_SetObjectId'>
+      <parameter type-id='type-id-476' name='key' filepath='./Python/sysmodule.c' line='110' column='1'/>
+      <parameter type-id='type-id-100' name='v' filepath='./Python/sysmodule.c' line='110' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_BuildValue_SizeT' mangled-name='_Py_BuildValue_SizeT' filepath='Python/modsupport.c' line='525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_BuildValue_SizeT'>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/bytesobject.c' line='357' column='1'/>
-      <parameter is-variadic='yes'/>
+    <function-decl name='PySys_GetObject' mangled-name='PySys_GetObject' filepath='./Python/sysmodule.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_GetObject'>
+      <parameter type-id='type-id-3' name='name' filepath='./Python/sysmodule.c' line='82' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='Py_BuildValue' mangled-name='Py_BuildValue' filepath='Python/modsupport.c' line='514' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_BuildValue'>
-      <parameter type-id='type-id-3' name='format' filepath='Objects/bytesobject.c' line='357' column='1'/>
-      <parameter is-variadic='yes'/>
+    <function-decl name='_PySys_GetObjectId' mangled-name='_PySys_GetObjectId' filepath='./Python/sysmodule.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySys_GetObjectId'>
+      <parameter type-id='type-id-476' name='key' filepath='./Python/sysmodule.c' line='75' column='1'/>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_Py_convert_optional_to_ssize_t' mangled-name='_Py_convert_optional_to_ssize_t' filepath='Python/modsupport.c' line='18' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_convert_optional_to_ssize_t'>
-      <parameter type-id='type-id-100' name='o' filepath='Objects/capsule.c' line='181' column='1'/>
-      <parameter type-id='type-id-32' name='context' filepath='Objects/capsule.c' line='181' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyOS_vsnprintf' mangled-name='PyOS_vsnprintf' filepath='./Include/pyerrors.h' line='314' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/mysnprintf.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyOS_vsnprintf' mangled-name='PyOS_vsnprintf' filepath='Python/mysnprintf.c' line='55' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_vsnprintf'>
-      <parameter type-id='type-id-7' name='str' filepath='Python/mysnprintf.c' line='55' column='1'/>
-      <parameter type-id='type-id-191' name='size' filepath='Python/mysnprintf.c' line='55' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/mysnprintf.c' line='55' column='1'/>
-      <parameter type-id='type-id-306' name='va' filepath='Python/mysnprintf.c' line='55' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyPathConfig_ComputeSysPath0' mangled-name='_PyPathConfig_ComputeSysPath0' filepath='./Include/internal/pycore_pathconfig.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyOS_snprintf' mangled-name='PyOS_snprintf' filepath='Python/mysnprintf.c' line='43' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_snprintf'>
-      <parameter type-id='type-id-7' name='str' filepath='Python/mysnprintf.c' line='43' column='1'/>
-      <parameter type-id='type-id-191' name='size' filepath='Python/mysnprintf.c' line='43' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/mysnprintf.c' line='43' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyFile_NewStdPrinter' mangled-name='PyFile_NewStdPrinter' filepath='./Include/cpython/fileobject.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/mystrtoul.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyOS_strtol' mangled-name='PyOS_strtol' filepath='Python/mystrtoul.c' line='263' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_strtol'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/mystrtoul.c' line='263' column='1'/>
-      <parameter type-id='type-id-304' name='ptr' filepath='Python/mystrtoul.c' line='263' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Python/mystrtoul.c' line='263' column='1'/>
-      <return type-id='type-id-12'/>
+    <function-decl name='_Py_gitversion' mangled-name='_Py_gitversion' filepath='./Include/cpython/pylifecycle.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyOS_strtoul' mangled-name='PyOS_strtoul' filepath='Python/mystrtoul.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_strtoul'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/mystrtoul.c' line='95' column='1'/>
-      <parameter type-id='type-id-304' name='ptr' filepath='Python/mystrtoul.c' line='95' column='1'/>
-      <parameter type-id='type-id-8' name='base' filepath='Python/mystrtoul.c' line='95' column='1'/>
-      <return type-id='type-id-33'/>
+    <function-decl name='_Py_gitidentifier' mangled-name='_Py_gitidentifier' filepath='./Include/cpython/pylifecycle.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/pathconfig.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='_PyPathConfig' size-in-bits='384' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='11' column='1' id='type-id-602'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='program_full_path' type-id='type-id-403' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='13' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='prefix' type-id='type-id-403' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='14' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='exec_prefix' type-id='type-id-403' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='15' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='module_search_path' type-id='type-id-403' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='17' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='program_name' type-id='type-id-403' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='19' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='home' type-id='type-id-403' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='21' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='_PyPathConfig' type-id='type-id-602' filepath='./Include/internal/pycore_pathconfig.h' line='31' column='1' id='type-id-603'/>
-    <var-decl name='_Py_path_config' type-id='type-id-603' mangled-name='_Py_path_config' visibility='default' filepath='./Include/internal/pycore_pathconfig.h' line='44' column='1' elf-symbol-id='_Py_path_config'/>
-    <function-decl name='Py_GetProgramName' mangled-name='Py_GetProgramName' filepath='Python/pathconfig.c' line='588' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetProgramName'>
-      <return type-id='type-id-403'/>
+    <function-decl name='Py_GetPlatform' mangled-name='Py_GetPlatform' filepath='./Include/pylifecycle.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_GetPythonHome' mangled-name='Py_GetPythonHome' filepath='Python/pathconfig.c' line='580' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPythonHome'>
-      <return type-id='type-id-403'/>
+    <function-decl name='PyFloat_GetInfo' mangled-name='PyFloat_GetInfo' filepath='./Include/floatobject.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_GetProgramFullPath' mangled-name='Py_GetProgramFullPath' filepath='Python/pathconfig.c' line='572' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetProgramFullPath'>
-      <return type-id='type-id-403'/>
+    <function-decl name='PyLong_GetInfo' mangled-name='PyLong_GetInfo' filepath='./Include/longobject.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_GetExecPrefix' mangled-name='Py_GetExecPrefix' filepath='Python/pathconfig.c' line='564' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetExecPrefix'>
-      <return type-id='type-id-403'/>
+    <function-decl name='PyHash_GetFuncDef' mangled-name='PyHash_GetFuncDef' filepath='./Include/pyhash.h' line='96' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_GetPrefix' mangled-name='Py_GetPrefix' filepath='Python/pathconfig.c' line='556' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPrefix'>
-      <return type-id='type-id-403'/>
+    <function-decl name='_PyNamespace_New' mangled-name='_PyNamespace_New' filepath='./Include/namespaceobject.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_GetPath' mangled-name='Py_GetPath' filepath='Python/pathconfig.c' line='548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_GetPath'>
-      <return type-id='type-id-403'/>
+    <function-decl name='PyThread_GetInfo' mangled-name='PyThread_GetInfo' filepath='./Include/pythread.h' line='97' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_SetProgramFullPath' mangled-name='_Py_SetProgramFullPath' filepath='Python/pathconfig.c' line='527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_SetProgramFullPath'>
-      <parameter type-id='type-id-501' name='program_full_path' filepath='Python/pathconfig.c' line='527' column='1'/>
+    <function-decl name='_PyEval_SetAsyncGenFinalizer' mangled-name='_PyEval_SetAsyncGenFinalizer' filepath='./Include/cpython/ceval.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_SetProgramName' mangled-name='Py_SetProgramName' filepath='Python/pathconfig.c' line='507' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetProgramName'>
-      <parameter type-id='type-id-501' name='program_full_path' filepath='Python/pathconfig.c' line='527' column='1'/>
+    <function-decl name='_PyEval_SetAsyncGenFirstiter' mangled-name='_PyEval_SetAsyncGenFirstiter' filepath='./Include/cpython/ceval.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_SetPythonHome' mangled-name='Py_SetPythonHome' filepath='Python/pathconfig.c' line='486' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetPythonHome'>
-      <parameter type-id='type-id-501' name='program_full_path' filepath='Python/pathconfig.c' line='527' column='1'/>
+    <function-decl name='_PyEval_SetProfile' mangled-name='_PyEval_SetProfile' filepath='./Include/cpython/ceval.h' line='10' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_SetPath' mangled-name='Py_SetPath' filepath='Python/pathconfig.c' line='450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SetPath'>
-      <parameter type-id='type-id-501' name='path' filepath='Python/pathconfig.c' line='450' column='1'/>
+    <function-decl name='_PyEval_SetTrace' mangled-name='_PyEval_SetTrace' filepath='./Include/cpython/ceval.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/peephole.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyCode_Optimize' mangled-name='PyCode_Optimize' filepath='Python/peephole.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_Optimize'>
-      <parameter type-id='type-id-100' name='code' filepath='Python/peephole.c' line='230' column='1'/>
-      <parameter type-id='type-id-100' name='consts' filepath='Python/peephole.c' line='230' column='1'/>
-      <parameter type-id='type-id-100' name='names' filepath='Python/peephole.c' line='230' column='1'/>
-      <parameter type-id='type-id-100' name='lnotab_obj' filepath='Python/peephole.c' line='231' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyErr_WriteUnraisableDefaultHook' mangled-name='_PyErr_WriteUnraisableDefaultHook' filepath='./Include/internal/pycore_pylifecycle.h' line='103' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/preconfig.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='Py_FileSystemDefaultEncoding' type-id='type-id-3' mangled-name='Py_FileSystemDefaultEncoding' visibility='default' filepath='./Include/fileobject.h' line='22' column='1' elf-symbol-id='Py_FileSystemDefaultEncoding'/>
-    <var-decl name='Py_HasFileSystemDefaultEncoding' type-id='type-id-8' mangled-name='Py_HasFileSystemDefaultEncoding' visibility='default' filepath='./Include/fileobject.h' line='26' column='1' elf-symbol-id='Py_HasFileSystemDefaultEncoding'/>
-    <var-decl name='Py_FileSystemDefaultEncodeErrors' type-id='type-id-3' mangled-name='Py_FileSystemDefaultEncodeErrors' visibility='default' filepath='./Include/fileobject.h' line='24' column='1' elf-symbol-id='Py_FileSystemDefaultEncodeErrors'/>
-    <function-decl name='_Py_get_xoption' mangled-name='_Py_get_xoption' filepath='Python/preconfig.c' line='566' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_xoption'>
-      <parameter type-id='type-id-601' name='xoptions' filepath='Python/preconfig.c' line='566' column='1'/>
-      <parameter type-id='type-id-501' name='name' filepath='Python/preconfig.c' line='566' column='1'/>
-      <return type-id='type-id-501'/>
+    <function-decl name='_Py_VaBuildValue_SizeT' mangled-name='_Py_VaBuildValue_SizeT' filepath='./Include/modsupport.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_get_env_flag' mangled-name='_Py_get_env_flag' filepath='Python/preconfig.c' line='548' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_env_flag'>
-      <parameter type-id='type-id-8' name='use_environment' filepath='Python/preconfig.c' line='548' column='1'/>
-      <parameter type-id='type-id-227' name='flag' filepath='Python/preconfig.c' line='548' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/preconfig.c' line='548' column='1'/>
+    <function-decl name='PyType_ClearCache' mangled-name='PyType_ClearCache' filepath='./Include/object.h' line='237' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_str_to_int' mangled-name='_Py_str_to_int' filepath='Python/preconfig.c' line='530' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_str_to_int'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/preconfig.c' line='530' column='1'/>
-      <parameter type-id='type-id-227' name='result' filepath='Python/preconfig.c' line='530' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyObject_DebugTypeStats' mangled-name='_PyObject_DebugTypeStats' filepath='./Include/cpython/object.h' line='393' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_GetEnv' mangled-name='_Py_GetEnv' filepath='Python/preconfig.c' line='511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetEnv'>
-      <parameter type-id='type-id-8' name='use_environment' filepath='Python/preconfig.c' line='511' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/preconfig.c' line='511' column='1'/>
-      <return type-id='type-id-3'/>
+    <function-decl name='_PyEval_CallTracing' mangled-name='_PyEval_CallTracing' filepath='./Include/eval.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-334' size-in-bits='64' id='type-id-604'/>
-    <function-decl name='PyPreConfig_InitIsolatedConfig' mangled-name='PyPreConfig_InitIsolatedConfig' filepath='Python/preconfig.c' line='323' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPreConfig_InitIsolatedConfig'>
-      <parameter type-id='type-id-604' name='config' filepath='Python/preconfig.c' line='323' column='1'/>
+    <function-decl name='_PyThread_CurrentFrames' mangled-name='_PyThread_CurrentFrames' filepath='./Include/cpython/pystate.h' line='174' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyPreConfig_InitPythonConfig' mangled-name='PyPreConfig_InitPythonConfig' filepath='Python/preconfig.c' line='302' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyPreConfig_InitPythonConfig'>
-      <parameter type-id='type-id-604' name='config' filepath='Python/preconfig.c' line='323' column='1'/>
+    <function-decl name='_Py_GetAllocatedBlocks' mangled-name='_Py_GetAllocatedBlocks' filepath='./Include/cpython/objimpl.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyPreConfig_InitCompatConfig' mangled-name='_PyPreConfig_InitCompatConfig' filepath='Python/preconfig.c' line='274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyPreConfig_InitCompatConfig'>
-      <parameter type-id='type-id-604' name='config' filepath='Python/preconfig.c' line='323' column='1'/>
+    <function-decl name='_PyEval_GetAsyncGenFirstiter' mangled-name='_PyEval_GetAsyncGenFirstiter' filepath='./Include/cpython/ceval.h' line='15' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <class-decl name='_PyArgv' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='64' column='1' id='type-id-605'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='argc' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='65' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='use_bytes_argv' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='66' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='bytes_argv' type-id='type-id-280' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='67' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='wchar_argv' type-id='type-id-598' visibility='default' filepath='./Include/internal/pycore_initconfig.h' line='68' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='_PyArgv' type-id='type-id-605' filepath='./Include/internal/pycore_initconfig.h' line='69' column='1' id='type-id-606'/>
-    <qualified-type-def type-id='type-id-606' const='yes' id='type-id-607'/>
-    <pointer-type-def type-id='type-id-607' size-in-bits='64' id='type-id-608'/>
-    <function-decl name='_PyArgv_AsWstrList' mangled-name='_PyArgv_AsWstrList' filepath='Python/preconfig.c' line='77' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyArgv_AsWstrList'>
-      <parameter type-id='type-id-608' name='args' filepath='Python/preconfig.c' line='77' column='1'/>
-      <parameter type-id='type-id-596' name='list' filepath='Python/preconfig.c' line='77' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='_PyEval_GetAsyncGenFinalizer' mangled-name='_PyEval_GetAsyncGenFinalizer' filepath='./Include/cpython/ceval.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/pyarena.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='_arena' size-in-bits='192' is-struct='yes' visibility='default' filepath='Python/pyarena.c' line='45' column='1' id='type-id-228'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='a_head' type-id='type-id-609' visibility='default' filepath='Python/pyarena.c' line='50' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='a_cur' type-id='type-id-609' visibility='default' filepath='Python/pyarena.c' line='57' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='a_objects' type-id='type-id-100' visibility='default' filepath='Python/pyarena.c' line='63' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='_block' size-in-bits='256' is-struct='yes' visibility='default' filepath='Python/pyarena.c' line='16' column='1' id='type-id-610'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ab_size' type-id='type-id-191' visibility='default' filepath='Python/pyarena.c' line='21' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='ab_offset' type-id='type-id-191' visibility='default' filepath='Python/pyarena.c' line='26' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='ab_next' type-id='type-id-611' visibility='default' filepath='Python/pyarena.c' line='32' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='ab_mem' type-id='type-id-32' visibility='default' filepath='Python/pyarena.c' line='37' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-610' size-in-bits='64' id='type-id-611'/>
-    <typedef-decl name='block' type-id='type-id-610' filepath='Python/pyarena.c' line='38' column='1' id='type-id-612'/>
-    <pointer-type-def type-id='type-id-612' size-in-bits='64' id='type-id-609'/>
-    <function-decl name='PyArena_AddPyObject' mangled-name='PyArena_AddPyObject' filepath='Python/pyarena.c' line='203' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArena_AddPyObject'>
-      <parameter type-id='type-id-230' name='arena' filepath='Python/pyarena.c' line='203' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/pyarena.c' line='203' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyEval_GetCoroutineOriginTrackingDepth' mangled-name='_PyEval_GetCoroutineOriginTrackingDepth' filepath='./Include/cpython/ceval.h' line='13' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyArena_Malloc' mangled-name='PyArena_Malloc' filepath='Python/pyarena.c' line='180' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArena_Malloc'>
-      <parameter type-id='type-id-230' name='arena' filepath='Python/pyarena.c' line='180' column='1'/>
-      <parameter type-id='type-id-191' name='size' filepath='Python/pyarena.c' line='180' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='_PyEval_SetCoroutineOriginTrackingDepth' mangled-name='_PyEval_SetCoroutineOriginTrackingDepth' filepath='./Include/internal/pycore_ceval.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyArena_Free' mangled-name='PyArena_Free' filepath='Python/pyarena.c' line='157' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArena_Free'>
-      <parameter type-id='type-id-230' name='arena' filepath='Python/pyarena.c' line='157' column='1'/>
+    <function-decl name='_PyEval_GetSwitchInterval' mangled-name='_PyEval_GetSwitchInterval' filepath='./Include/cpython/ceval.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyArena_New' mangled-name='PyArena_New' filepath='Python/pyarena.c' line='128' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyArena_New'>
-      <return type-id='type-id-230'/>
+    <function-decl name='_PyEval_SetSwitchInterval' mangled-name='_PyEval_SetSwitchInterval' filepath='./Include/cpython/ceval.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='Py_SetRecursionLimit' mangled-name='Py_SetRecursionLimit' filepath='./Include/ceval.h' line='64' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/pyctype.c' comp-dir-path='/src' language='LANG_C99'>
-    <qualified-type-def type-id='type-id-107' const='yes' id='type-id-613'/>
-
-    <array-type-def dimensions='1' type-id='type-id-613' size-in-bits='8192' id='type-id-614'>
-      <subrange length='256' type-id='type-id-33' id='type-id-469'/>
-
-    </array-type-def>
-    <qualified-type-def type-id='type-id-614' const='yes' id='type-id-615'/>
-    <var-decl name='_Py_ctype_table' type-id='type-id-615' mangled-name='_Py_ctype_table' visibility='default' filepath='./Include/pyctype.h' line='13' column='1' elf-symbol-id='_Py_ctype_table'/>
-
-    <array-type-def dimensions='1' type-id='type-id-459' size-in-bits='2048' id='type-id-616'>
-      <subrange length='256' type-id='type-id-33' id='type-id-469'/>
-
-    </array-type-def>
-    <qualified-type-def type-id='type-id-616' const='yes' id='type-id-617'/>
-    <var-decl name='_Py_ctype_tolower' type-id='type-id-617' mangled-name='_Py_ctype_tolower' visibility='default' filepath='./Include/pyctype.h' line='26' column='1' elf-symbol-id='_Py_ctype_tolower'/>
-    <var-decl name='_Py_ctype_toupper' type-id='type-id-617' mangled-name='_Py_ctype_toupper' visibility='default' filepath='./Include/pyctype.h' line='27' column='1' elf-symbol-id='_Py_ctype_toupper'/>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/pyhash.c' comp-dir-path='/src' language='LANG_C99'>
-    <union-decl name='__anonymous_union__' size-in-bits='192' is-anonymous='yes' visibility='default' filepath='./Include/pyhash.h' line='56' column='1' id='type-id-618'>
-      <data-member access='private'>
-        <var-decl name='uc' type-id='type-id-619' visibility='default' filepath='./Include/pyhash.h' line='58' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='fnv' type-id='type-id-620' visibility='default' filepath='./Include/pyhash.h' line='63' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='siphash' type-id='type-id-621' visibility='default' filepath='./Include/pyhash.h' line='68' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='djbx33a' type-id='type-id-622' visibility='default' filepath='./Include/pyhash.h' line='73' column='1'/>
-      </data-member>
-      <data-member access='private'>
-        <var-decl name='expat' type-id='type-id-623' visibility='default' filepath='./Include/pyhash.h' line='77' column='1'/>
-      </data-member>
-    </union-decl>
-
-    <array-type-def dimensions='1' type-id='type-id-418' size-in-bits='192' id='type-id-619'>
-      <subrange length='24' type-id='type-id-33' id='type-id-624'/>
-
-    </array-type-def>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/pyhash.h' line='60' column='1' id='type-id-620'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='prefix' type-id='type-id-150' visibility='default' filepath='./Include/pyhash.h' line='61' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='suffix' type-id='type-id-150' visibility='default' filepath='./Include/pyhash.h' line='62' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/pyhash.h' line='65' column='1' id='type-id-621'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='k0' type-id='type-id-238' visibility='default' filepath='./Include/pyhash.h' line='66' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='k1' type-id='type-id-238' visibility='default' filepath='./Include/pyhash.h' line='67' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/pyhash.h' line='70' column='1' id='type-id-622'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='padding' type-id='type-id-625' visibility='default' filepath='./Include/pyhash.h' line='71' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='suffix' type-id='type-id-150' visibility='default' filepath='./Include/pyhash.h' line='72' column='1'/>
-      </data-member>
-    </class-decl>
-
-    <array-type-def dimensions='1' type-id='type-id-418' size-in-bits='128' id='type-id-625'>
-      <subrange length='16' type-id='type-id-33' id='type-id-626'/>
-
-    </array-type-def>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/pyhash.h' line='74' column='1' id='type-id-623'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='padding' type-id='type-id-625' visibility='default' filepath='./Include/pyhash.h' line='75' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='hashsalt' type-id='type-id-150' visibility='default' filepath='./Include/pyhash.h' line='76' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='_Py_HashSecret_t' type-id='type-id-618' filepath='./Include/pyhash.h' line='78' column='1' id='type-id-627'/>
-    <var-decl name='_Py_HashSecret' type-id='type-id-627' mangled-name='_Py_HashSecret' visibility='default' filepath='./Include/pyhash.h' line='79' column='1' elf-symbol-id='_Py_HashSecret'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-628' visibility='default' filepath='./Include/pyhash.h' line='89' column='1' id='type-id-629'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='hash' type-id='type-id-630' visibility='default' filepath='./Include/pyhash.h' line='90' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='name' type-id='type-id-3' visibility='default' filepath='./Include/pyhash.h' line='91' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='hash_bits' type-id='type-id-631' visibility='default' filepath='./Include/pyhash.h' line='92' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='seed_bits' type-id='type-id-631' visibility='default' filepath='./Include/pyhash.h' line='93' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-632' size-in-bits='64' id='type-id-633'/>
-    <qualified-type-def type-id='type-id-633' const='yes' id='type-id-630'/>
-    <qualified-type-def type-id='type-id-8' const='yes' id='type-id-631'/>
-    <typedef-decl name='PyHash_FuncDef' type-id='type-id-629' filepath='./Include/pyhash.h' line='94' column='1' id='type-id-628'/>
-    <pointer-type-def type-id='type-id-628' size-in-bits='64' id='type-id-634'/>
-    <function-decl name='PyHash_GetFuncDef' mangled-name='PyHash_GetFuncDef' filepath='Python/pyhash.c' line='219' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyHash_GetFuncDef'>
-      <return type-id='type-id-634'/>
+  <abi-instr version='1.0' address-size='64' path='Python/thread.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyThread_GetInfo' mangled-name='PyThread_GetInfo' filepath='Python/thread.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_GetInfo'>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_Py_HashBytes' mangled-name='_Py_HashBytes' filepath='Python/pyhash.c' line='152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashBytes'>
-      <parameter type-id='type-id-32' name='src' filepath='Python/pyhash.c' line='152' column='1'/>
-      <parameter type-id='type-id-15' name='len' filepath='Python/pyhash.c' line='152' column='1'/>
-      <return type-id='type-id-150'/>
+    <pointer-type-def type-id='type-id-376' size-in-bits='64' id='type-id-683'/>
+    <function-decl name='PyThread_tss_is_created' mangled-name='PyThread_tss_is_created' filepath='Python/thread.c' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_is_created'>
+      <parameter type-id='type-id-683' name='key' filepath='Python/thread.c' line='138' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_HashPointer' mangled-name='_Py_HashPointer' filepath='Python/pyhash.c' line='142' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashPointer'>
-      <parameter type-id='type-id-32' name='p' filepath='Python/pyhash.c' line='142' column='1'/>
-      <return type-id='type-id-150'/>
+    <function-decl name='PyThread_tss_free' mangled-name='PyThread_tss_free' filepath='Python/thread.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_free'>
+      <parameter type-id='type-id-683' name='key' filepath='Python/thread.c' line='129' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_HashPointerRaw' mangled-name='_Py_HashPointerRaw' filepath='Python/pyhash.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashPointerRaw'>
-      <parameter type-id='type-id-32' name='p' filepath='Python/pyhash.c' line='142' column='1'/>
-      <return type-id='type-id-150'/>
+    <function-decl name='PyThread_tss_alloc' mangled-name='PyThread_tss_alloc' filepath='Python/thread.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_alloc'>
+      <return type-id='type-id-683'/>
     </function-decl>
-    <function-decl name='_Py_HashDouble' mangled-name='_Py_HashDouble' filepath='Python/pyhash.c' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HashDouble'>
-      <parameter type-id='type-id-441' name='v' filepath='Python/pyhash.c' line='86' column='1'/>
-      <return type-id='type-id-150'/>
+    <function-decl name='PyThread_set_stacksize' mangled-name='PyThread_set_stacksize' filepath='Python/thread.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_set_stacksize'>
+      <parameter type-id='type-id-191' name='size' filepath='Python/thread.c' line='102' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-type size-in-bits='64' id='type-id-632'>
-      <parameter type-id='type-id-32'/>
-      <parameter type-id='type-id-15'/>
-      <return type-id='type-id-150'/>
-    </function-type>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/pylifecycle.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='_Py_UnhandledKeyboardInterrupt' type-id='type-id-8' mangled-name='_Py_UnhandledKeyboardInterrupt' visibility='default' filepath='./Include/internal/pycore_pylifecycle.h' line='17' column='1' elf-symbol-id='_Py_UnhandledKeyboardInterrupt'/>
-    <class-decl name='pyruntimestate' size-in-bits='5248' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='52' column='1' id='type-id-635'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='preinitializing' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='54' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='preinitialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='57' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='core_initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='60' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='initialized' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='63' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='_finalizing' type-id='type-id-328' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='70' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='interpreters' type-id='type-id-329' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='85' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='xidregistry' type-id='type-id-330' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='90' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='main_thread' type-id='type-id-33' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='92' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='exitfuncs' type-id='type-id-331' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='95' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2688'>
-        <var-decl name='nexitfuncs' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='96' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2752'>
-        <var-decl name='ceval' type-id='type-id-332' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='98' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='4480'>
-        <var-decl name='gilstate' type-id='type-id-333' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='99' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='4736'>
-        <var-decl name='preconfig' type-id='type-id-334' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='101' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='5056'>
-        <var-decl name='open_code_hook' type-id='type-id-335' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='103' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='5120'>
-        <var-decl name='open_code_userdata' type-id='type-id-32' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='104' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='5184'>
-        <var-decl name='audit_hook_head' type-id='type-id-636' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='105' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-384' size-in-bits='64' id='type-id-636'/>
-    <typedef-decl name='_PyRuntimeState' type-id='type-id-635' filepath='./Include/internal/pycore_runtime.h' line='108' column='1' id='type-id-637'/>
-    <var-decl name='_PyRuntime' type-id='type-id-637' mangled-name='_PyRuntime' visibility='default' filepath='./Include/internal/pycore_runtime.h' line='115' column='1' elf-symbol-id='_PyRuntime'/>
-    <pointer-type-def type-id='type-id-638' size-in-bits='64' id='type-id-639'/>
-    <typedef-decl name='PyOS_sighandler_t' type-id='type-id-639' filepath='./Include/pylifecycle.h' line='64' column='1' id='type-id-640'/>
-    <function-decl name='PyOS_setsig' mangled-name='PyOS_setsig' filepath='Python/pylifecycle.c' line='2525' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_setsig'>
-      <parameter type-id='type-id-8' name='sig' filepath='Python/pylifecycle.c' line='2525' column='1'/>
-      <parameter type-id='type-id-640' name='handler' filepath='Python/pylifecycle.c' line='2525' column='1'/>
-      <return type-id='type-id-640'/>
+    <function-decl name='PyThread_get_stacksize' mangled-name='PyThread_get_stacksize' filepath='Python/thread.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_stacksize'>
+      <return type-id='type-id-191'/>
+    </function-decl>
+    <function-decl name='PyThread_tss_get' mangled-name='PyThread_tss_get' filepath='Python/thread_pthread.h' line='922' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_get'>
+      <parameter type-id='type-id-683' name='key' filepath='Python/thread_pthread.h' line='922' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyThread_tss_set' mangled-name='PyThread_tss_set' filepath='Python/thread_pthread.h' line='914' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_set'>
+      <parameter type-id='type-id-683' name='key' filepath='Python/thread_pthread.h' line='914' column='1'/>
+      <parameter type-id='type-id-32' name='value' filepath='Python/thread_pthread.h' line='914' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyOS_getsig' mangled-name='PyOS_getsig' filepath='Python/pylifecycle.c' line='2486' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_getsig'>
-      <parameter type-id='type-id-8' name='sig' filepath='Python/pylifecycle.c' line='2486' column='1'/>
-      <return type-id='type-id-640'/>
+    <function-decl name='PyThread_tss_create' mangled-name='PyThread_tss_create' filepath='Python/thread_pthread.h' line='883' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_create'>
+      <parameter type-id='type-id-683' name='key' filepath='Python/thread_pthread.h' line='883' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_FdIsInteractive' mangled-name='Py_FdIsInteractive' filepath='Python/pylifecycle.c' line='2471' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FdIsInteractive'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pylifecycle.c' line='2471' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pylifecycle.c' line='2471' column='1'/>
+    <function-decl name='PyThread_ReInitTLS' mangled-name='PyThread_ReInitTLS' filepath='Python/thread_pthread.h' line='872' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_ReInitTLS'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThread_get_key_value' mangled-name='PyThread_get_key_value' filepath='Python/thread_pthread.h' line='861' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_key_value'>
+      <parameter type-id='type-id-8' name='key' filepath='Python/thread_pthread.h' line='861' column='1'/>
+      <return type-id='type-id-32'/>
+    </function-decl>
+    <function-decl name='PyThread_set_key_value' mangled-name='PyThread_set_key_value' filepath='Python/thread_pthread.h' line='850' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_set_key_value'>
+      <parameter type-id='type-id-8' name='key' filepath='Python/thread_pthread.h' line='850' column='1'/>
+      <parameter type-id='type-id-32' name='value' filepath='Python/thread_pthread.h' line='850' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_RestoreSignals' mangled-name='_Py_RestoreSignals' filepath='Python/pylifecycle.c' line='2450' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_RestoreSignals'>
+    <function-decl name='PyThread_delete_key_value' mangled-name='PyThread_delete_key_value' filepath='Python/thread_pthread.h' line='842' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_delete_key_value'>
+      <parameter type-id='type-id-8' name='key' filepath='Python/thread_pthread.h' line='842' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_Exit' mangled-name='Py_Exit' filepath='Python/pylifecycle.c' line='2431' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Exit'>
-      <parameter type-id='type-id-8' name='sts' filepath='Python/pylifecycle.c' line='2431' column='1'/>
+    <function-decl name='PyThread_delete_key' mangled-name='PyThread_delete_key' filepath='Python/thread_pthread.h' line='834' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_delete_key'>
+      <parameter type-id='type-id-8' name='key' filepath='Python/thread_pthread.h' line='842' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_AtExit' mangled-name='Py_AtExit' filepath='Python/pylifecycle.c' line='2406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_AtExit'>
-      <parameter type-id='type-id-351' name='func' filepath='Python/pylifecycle.c' line='2406' column='1'/>
+    <function-decl name='PyThread_create_key' mangled-name='PyThread_create_key' filepath='Python/thread_pthread.h' line='814' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_create_key'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_PyAtExit' mangled-name='_Py_PyAtExit' filepath='Python/pylifecycle.c' line='2356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_PyAtExit'>
-      <parameter type-id='type-id-112' name='func' filepath='Python/pylifecycle.c' line='2356' column='1'/>
-      <parameter type-id='type-id-100' name='module' filepath='Python/pylifecycle.c' line='2356' column='1'/>
+    <function-decl name='PyThread_acquire_lock' mangled-name='PyThread_acquire_lock' filepath='Python/thread_pthread.h' line='747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_acquire_lock'>
+      <parameter type-id='type-id-317' name='lock' filepath='Python/thread_pthread.h' line='747' column='1'/>
+      <parameter type-id='type-id-8' name='waitflag' filepath='Python/thread_pthread.h' line='747' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-317' size-in-bits='64' id='type-id-684'/>
+    <function-decl name='_PyThread_at_fork_reinit' mangled-name='_PyThread_at_fork_reinit' filepath='Python/thread_pthread.h' line='727' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_at_fork_reinit'>
+      <parameter type-id='type-id-684' name='lock' filepath='Python/thread_pthread.h' line='727' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyThread_release_lock' mangled-name='PyThread_release_lock' filepath='Python/thread_pthread.h' line='553' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_release_lock'>
+      <parameter type-id='type-id-317' name='lock' filepath='Python/thread_pthread.h' line='553' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_ExitStatusException' mangled-name='Py_ExitStatusException' filepath='Python/pylifecycle.c' line='2340' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_ExitStatusException'>
-      <parameter type-id='type-id-592' name='status' filepath='Python/pylifecycle.c' line='2340' column='1'/>
+    <enum-decl name='PyLockStatus' filepath='./Include/pythread.h' line='13' column='1' id='type-id-685'>
+      <underlying-type type-id='type-id-23'/>
+      <enumerator name='PY_LOCK_FAILURE' value='0'/>
+      <enumerator name='PY_LOCK_ACQUIRED' value='1'/>
+      <enumerator name='PY_LOCK_INTR' value='2'/>
+    </enum-decl>
+    <typedef-decl name='PyLockStatus' type-id='type-id-685' filepath='./Include/pythread.h' line='17' column='1' id='type-id-686'/>
+    <function-decl name='PyThread_acquire_lock_timed' mangled-name='PyThread_acquire_lock_timed' filepath='Python/thread_pthread.h' line='436' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_acquire_lock_timed'>
+      <parameter type-id='type-id-317' name='lock' filepath='Python/thread_pthread.h' line='436' column='1'/>
+      <parameter type-id='type-id-362' name='microseconds' filepath='Python/thread_pthread.h' line='436' column='1'/>
+      <parameter type-id='type-id-8' name='intr_flag' filepath='Python/thread_pthread.h' line='437' column='1'/>
+      <return type-id='type-id-686'/>
+    </function-decl>
+    <function-decl name='PyThread_free_lock' mangled-name='PyThread_free_lock' filepath='Python/thread_pthread.h' line='406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_free_lock'>
+      <parameter type-id='type-id-317' name='lock' filepath='Python/thread_pthread.h' line='406' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_FatalErrorFormat' mangled-name='_Py_FatalErrorFormat' filepath='Python/pylifecycle.c' line='2306' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FatalErrorFormat'>
-      <parameter type-id='type-id-3' name='func' filepath='Python/pylifecycle.c' line='2306' column='1'/>
-      <parameter type-id='type-id-3' name='format' filepath='Python/pylifecycle.c' line='2306' column='1'/>
-      <parameter is-variadic='yes'/>
+    <function-decl name='PyThread_allocate_lock' mangled-name='PyThread_allocate_lock' filepath='Python/thread_pthread.h' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_allocate_lock'>
+      <return type-id='type-id-317'/>
+    </function-decl>
+    <function-decl name='PyThread_get_thread_native_id' mangled-name='PyThread_get_thread_native_id' filepath='Python/thread_pthread.h' line='337' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_thread_native_id'>
+      <return type-id='type-id-33'/>
+    </function-decl>
+    <function-decl name='PyThread_get_thread_ident' mangled-name='PyThread_get_thread_ident' filepath='Python/thread_pthread.h' line='326' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_thread_ident'>
+      <return type-id='type-id-33'/>
+    </function-decl>
+    <function-decl name='PyThread_start_new_thread' mangled-name='PyThread_start_new_thread' filepath='Python/thread_pthread.h' line='250' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_start_new_thread'>
+      <parameter type-id='type-id-188' name='func' filepath='Python/thread_pthread.h' line='250' column='1'/>
+      <parameter type-id='type-id-32' name='arg' filepath='Python/thread_pthread.h' line='250' column='1'/>
+      <return type-id='type-id-33'/>
+    </function-decl>
+    <function-decl name='PyThread_tss_delete' mangled-name='PyThread_tss_delete' filepath='Python/thread_pthread.h' line='900' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_delete'>
+      <parameter type-id='type-id-683' name='key' filepath='Python/thread_pthread.h' line='900' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_FatalErrorFunc' mangled-name='_Py_FatalErrorFunc' filepath='Python/pylifecycle.c' line='2299' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_FatalErrorFunc'>
-      <parameter type-id='type-id-3' name='func' filepath='Python/pylifecycle.c' line='2299' column='1'/>
-      <parameter type-id='type-id-3' name='msg' filepath='Python/pylifecycle.c' line='2299' column='1'/>
+    <function-decl name='__confstr_alias' mangled-name='confstr' filepath='/usr/include/x86_64-linux-gnu/bits/unistd.h' line='231' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_FatalError' mangled-name='Py_FatalError' filepath='Python/pylifecycle.c' line='2292' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FatalError'>
-      <parameter type-id='type-id-3' name='func' filepath='Python/ceval.c' line='249' column='1'/>
+    <function-decl name='PyUnicode_DecodeFSDefaultAndSize' mangled-name='PyUnicode_DecodeFSDefaultAndSize' filepath='./Include/unicodeobject.h' line='775' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_EndInterpreter' mangled-name='Py_EndInterpreter' filepath='Python/pylifecycle.c' line='1646' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EndInterpreter'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pylifecycle.c' line='1646' column='1'/>
+    <function-decl name='pthread_attr_init' mangled-name='pthread_attr_init' filepath='/usr/include/pthread.h' line='263' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_NewInterpreter' mangled-name='Py_NewInterpreter' filepath='Python/pylifecycle.c' line='1628' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_NewInterpreter'>
-      <return type-id='type-id-409'/>
+    <function-decl name='pthread_attr_setstacksize' mangled-name='pthread_attr_setstacksize' filepath='/usr/include/pthread.h' line='351' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_NewInterpreter' mangled-name='_Py_NewInterpreter' filepath='Python/pylifecycle.c' line='1616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_NewInterpreter'>
-      <parameter type-id='type-id-8' name='isolated_subinterpreter' filepath='Python/pylifecycle.c' line='1616' column='1'/>
-      <return type-id='type-id-409'/>
+    <function-decl name='pthread_attr_destroy' mangled-name='pthread_attr_destroy' filepath='/usr/include/pthread.h' line='266' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_Finalize' mangled-name='Py_Finalize' filepath='Python/pylifecycle.c' line='1513' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Finalize'>
+    <function-decl name='pthread_getspecific' mangled-name='pthread_getspecific' filepath='/usr/include/pthread.h' line='1131' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_FinalizeEx' mangled-name='Py_FinalizeEx' filepath='Python/pylifecycle.c' line='1345' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_FinalizeEx'>
-      <return type-id='type-id-8'/>
+    <function-decl name='pthread_setspecific' mangled-name='pthread_setspecific' filepath='/usr/include/pthread.h' line='1134' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_Initialize' mangled-name='Py_Initialize' filepath='Python/pylifecycle.c' line='1179' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Initialize'>
+    <function-decl name='pthread_key_create' mangled-name='pthread_key_create' filepath='/usr/include/pthread.h' line='1123' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_InitializeEx' mangled-name='Py_InitializeEx' filepath='Python/pylifecycle.c' line='1152' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_InitializeEx'>
-      <parameter type-id='type-id-8' name='install_sigs' filepath='Python/pylifecycle.c' line='1152' column='1'/>
+    <function-decl name='pthread_key_delete' mangled-name='pthread_key_delete' filepath='/usr/include/pthread.h' line='1128' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <qualified-type-def type-id='type-id-321' const='yes' id='type-id-641'/>
-    <pointer-type-def type-id='type-id-641' size-in-bits='64' id='type-id-642'/>
-    <function-decl name='Py_InitializeFromConfig' mangled-name='Py_InitializeFromConfig' filepath='Python/pylifecycle.c' line='1119' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_InitializeFromConfig'>
-      <parameter type-id='type-id-642' name='config' filepath='Python/pylifecycle.c' line='1119' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='sem_post' mangled-name='sem_post' filepath='/usr/include/semaphore.h' line='78' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_InitializeMain' mangled-name='_Py_InitializeMain' filepath='Python/pylifecycle.c' line='1106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_InitializeMain'>
-      <return type-id='type-id-592'/>
+    <function-decl name='perror' mangled-name='perror' filepath='/usr/include/stdio.h' line='775' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_PreInitializeFromConfig' mangled-name='_Py_PreInitializeFromConfig' filepath='Python/pylifecycle.c' line='848' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_PreInitializeFromConfig'>
-      <parameter type-id='type-id-642' name='config' filepath='Python/pylifecycle.c' line='848' column='1'/>
-      <parameter type-id='type-id-608' name='args' filepath='Python/pylifecycle.c' line='849' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='sem_wait' mangled-name='sem_wait' filepath='/usr/include/semaphore.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <qualified-type-def type-id='type-id-334' const='yes' id='type-id-643'/>
-    <pointer-type-def type-id='type-id-643' size-in-bits='64' id='type-id-644'/>
-    <function-decl name='Py_PreInitialize' mangled-name='Py_PreInitialize' filepath='Python/pylifecycle.c' line='841' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitialize'>
-      <parameter type-id='type-id-644' name='src_config' filepath='Python/pylifecycle.c' line='841' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='sem_trywait' mangled-name='sem_trywait' filepath='/usr/include/semaphore.h' line='75' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_PreInitializeFromArgs' mangled-name='Py_PreInitializeFromArgs' filepath='Python/pylifecycle.c' line='833' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitializeFromArgs'>
-      <parameter type-id='type-id-644' name='src_config' filepath='Python/pylifecycle.c' line='833' column='1'/>
-      <parameter type-id='type-id-15' name='argc' filepath='Python/pylifecycle.c' line='833' column='1'/>
-      <parameter type-id='type-id-407' name='argv' filepath='Python/pylifecycle.c' line='833' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='sem_clockwait' mangled-name='sem_clockwait' filepath='/usr/include/semaphore.h' line='68' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_PreInitializeFromBytesArgs' mangled-name='Py_PreInitializeFromBytesArgs' filepath='Python/pylifecycle.c' line='825' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_PreInitializeFromBytesArgs'>
-      <parameter type-id='type-id-644' name='src_config' filepath='Python/pylifecycle.c' line='825' column='1'/>
-      <parameter type-id='type-id-15' name='argc' filepath='Python/pylifecycle.c' line='825' column='1'/>
-      <parameter type-id='type-id-304' name='argv' filepath='Python/pylifecycle.c' line='825' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='sem_destroy' mangled-name='sem_destroy' filepath='/usr/include/semaphore.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_PreInitializeFromPyArgv' mangled-name='_Py_PreInitializeFromPyArgv' filepath='Python/pylifecycle.c' line='778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_PreInitializeFromPyArgv'>
-      <parameter type-id='type-id-644' name='src_config' filepath='Python/pylifecycle.c' line='778' column='1'/>
-      <parameter type-id='type-id-608' name='args' filepath='Python/pylifecycle.c' line='778' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='sem_init' mangled-name='sem_init' filepath='/usr/include/semaphore.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_SetLocaleFromEnv' mangled-name='_Py_SetLocaleFromEnv' filepath='Python/pylifecycle.c' line='375' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_SetLocaleFromEnv'>
-      <parameter type-id='type-id-8' name='category' filepath='Python/pylifecycle.c' line='375' column='1'/>
-      <return type-id='type-id-7'/>
+    <function-decl name='pthread_exit' mangled-name='pthread_exit' filepath='/usr/include/pthread.h' line='207' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_CoerceLegacyLocale' mangled-name='_Py_CoerceLegacyLocale' filepath='Python/pylifecycle.c' line='325' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_CoerceLegacyLocale'>
-      <parameter type-id='type-id-8' name='warn' filepath='Python/pylifecycle.c' line='325' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='syscall' mangled-name='syscall' filepath='/usr/include/unistd.h' line='1056' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_IsLocaleCoercionTarget' mangled-name='_Py_IsLocaleCoercionTarget' filepath='Python/pylifecycle.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_IsLocaleCoercionTarget'>
-      <parameter type-id='type-id-3' name='encoding' filepath='Python/codecs.c' line='213' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='pthread_self' mangled-name='pthread_self' filepath='/usr/include/pthread.h' line='251' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_LegacyLocaleDetected' mangled-name='_Py_LegacyLocaleDetected' filepath='Python/pylifecycle.c' line='228' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_LegacyLocaleDetected'>
-      <parameter type-id='type-id-8' name='warn' filepath='Python/pylifecycle.c' line='228' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='pthread_attr_setscope' mangled-name='pthread_attr_setscope' filepath='/usr/include/pthread.h' line='327' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_IsInitialized' mangled-name='Py_IsInitialized' filepath='Python/pylifecycle.c' line='123' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_IsInitialized'>
+    <function-decl name='pthread_create' mangled-name='pthread_create' filepath='/usr/include/pthread.h' line='198' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='pthread_detach' mangled-name='pthread_detach' filepath='/usr/include/pthread.h' line='247' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='gettimeofday' mangled-name='gettimeofday' filepath='/usr/include/x86_64-linux-gnu/sys/time.h' line='66' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='pthread_cond_init' mangled-name='pthread_cond_init' filepath='/usr/include/pthread.h' line='965' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='pthread_condattr_init' mangled-name='pthread_condattr_init' filepath='/usr/include/pthread.h' line='1020' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='pthread_condattr_setclock' mangled-name='pthread_condattr_setclock' filepath='/usr/include/pthread.h' line='1045' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/traceback.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='PyTraceBack_Type' type-id='type-id-182' mangled-name='PyTraceBack_Type' visibility='default' filepath='./Include/traceback.h' line='13' column='1' elf-symbol-id='PyTraceBack_Type'/>
+    <function-decl name='PyTraceBack_Print' mangled-name='PyTraceBack_Print' filepath='Python/traceback.c' line='596' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTraceBack_Print'>
+      <parameter type-id='type-id-100' name='v' filepath='Python/traceback.c' line='596' column='1'/>
+      <parameter type-id='type-id-100' name='f' filepath='Python/traceback.c' line='596' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_IsCoreInitialized' mangled-name='_Py_IsCoreInitialized' filepath='Python/pylifecycle.c' line='117' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_IsCoreInitialized'>
+    <function-decl name='_PyTraceback_Add' mangled-name='_PyTraceback_Add' filepath='Python/traceback.c' line='257' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTraceback_Add'>
+      <parameter type-id='type-id-3' name='funcname' filepath='Python/traceback.c' line='257' column='1'/>
+      <parameter type-id='type-id-3' name='filename' filepath='Python/traceback.c' line='257' column='1'/>
+      <parameter type-id='type-id-8' name='lineno' filepath='Python/traceback.c' line='257' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTraceBack_Here' mangled-name='PyTraceBack_Here' filepath='Python/traceback.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTraceBack_Here'>
+      <parameter type-id='type-id-312' name='frame' filepath='Python/traceback.c' line='242' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_IsFinalizing' mangled-name='_Py_IsFinalizing' filepath='Python/pylifecycle.c' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_IsFinalizing'>
+    <function-decl name='_Py_DisplaySourceLine' mangled-name='_Py_DisplaySourceLine' filepath='Python/traceback.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_DisplaySourceLine'>
+      <parameter type-id='type-id-100' name='f' filepath='Python/traceback.c' line='372' column='1'/>
+      <parameter type-id='type-id-100' name='filename' filepath='Python/traceback.c' line='372' column='1'/>
+      <parameter type-id='type-id-8' name='lineno' filepath='Python/traceback.c' line='372' column='1'/>
+      <parameter type-id='type-id-8' name='indent' filepath='Python/traceback.c' line='372' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyRuntime_Finalize' mangled-name='_PyRuntime_Finalize' filepath='Python/pylifecycle.c' line='86' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntime_Finalize'>
+    <function-decl name='_Py_write_noraise' mangled-name='_Py_write_noraise' filepath='./Include/cpython/fileutils.h' line='116' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyRuntime_Initialize' mangled-name='_PyRuntime_Initialize' filepath='Python/pylifecycle.c' line='69' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntime_Initialize'>
-      <return type-id='type-id-592'/>
+    <function-decl name='PyInterpreterState_ThreadHead' mangled-name='PyInterpreterState_ThreadHead' filepath='./Include/cpython/pystate.h' line='181' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-type size-in-bits='64' id='type-id-638'>
-      <parameter type-id='type-id-8'/>
+    <function-decl name='PyThreadState_Next' mangled-name='PyThreadState_Next' filepath='./Include/cpython/pystate.h' line='182' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyGILState_GetInterpreterStateUnsafe' mangled-name='_PyGILState_GetInterpreterStateUnsafe' filepath='./Include/cpython/pystate.h' line='169' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCode_NewEmpty' mangled-name='PyCode_NewEmpty' filepath='./Include/cpython/code.h' line='130' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyFrame_New' mangled-name='PyFrame_New' filepath='./Include/cpython/frameobject.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__builtin___strcpy_chk' mangled-name='__strcpy_chk' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_AsFileDescriptor' mangled-name='PyObject_AsFileDescriptor' filepath='./Include/fileobject.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyTokenizer_FindEncodingFilename' mangled-name='PyTokenizer_FindEncodingFilename' filepath='Python/traceback.c' line='22' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/getopt.c' comp-dir-path='/src' language='LANG_C99'>
+    <var-decl name='_PyOS_opterr' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_getopt.h' line='8' column='1'/>
+    <var-decl name='_PyOS_optind' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_getopt.h' line='9' column='1'/>
+    <var-decl name='_PyOS_optarg' type-id='type-id-501' visibility='default' filepath='./Include/internal/pycore_getopt.h' line='10' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/pystrcmp.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyOS_mystricmp' mangled-name='PyOS_mystricmp' filepath='Python/pystrcmp.c' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_mystricmp'>
+      <parameter type-id='type-id-3' name='s1' filepath='Python/pystrcmp.c' line='22' column='1'/>
+      <parameter type-id='type-id-3' name='s2' filepath='Python/pystrcmp.c' line='22' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyOS_mystrnicmp' mangled-name='PyOS_mystrnicmp' filepath='Python/pystrcmp.c' line='7' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_mystrnicmp'>
+      <parameter type-id='type-id-3' name='s1' filepath='Python/pystrcmp.c' line='7' column='1'/>
+      <parameter type-id='type-id-3' name='s2' filepath='Python/pystrcmp.c' line='7' column='1'/>
+      <parameter type-id='type-id-15' name='size' filepath='Python/pystrcmp.c' line='7' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/pystrtod.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyOS_double_to_string' mangled-name='PyOS_double_to_string' filepath='Python/pystrtod.c' line='1243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_double_to_string'>
+      <parameter type-id='type-id-441' name='val' filepath='Python/pystrtod.c' line='1243' column='1'/>
+      <parameter type-id='type-id-1' name='format_code' filepath='Python/pystrtod.c' line='1244' column='1'/>
+      <parameter type-id='type-id-8' name='precision' filepath='Python/pystrtod.c' line='1245' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Python/pystrtod.c' line='1246' column='1'/>
+      <parameter type-id='type-id-227' name='type' filepath='Python/pystrtod.c' line='1247' column='1'/>
+      <return type-id='type-id-7'/>
+    </function-decl>
+    <pointer-type-def type-id='type-id-687' size-in-bits='64' id='type-id-688'/>
+    <function-decl name='_Py_string_to_number_with_underscores' mangled-name='_Py_string_to_number_with_underscores' filepath='Python/pystrtod.c' line='384' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_string_to_number_with_underscores'>
+      <parameter type-id='type-id-3' name='s' filepath='Python/pystrtod.c' line='385' column='1'/>
+      <parameter type-id='type-id-15' name='orig_len' filepath='Python/pystrtod.c' line='385' column='1'/>
+      <parameter type-id='type-id-3' name='what' filepath='Python/pystrtod.c' line='385' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/pystrtod.c' line='385' column='1'/>
+      <parameter type-id='type-id-32' name='arg' filepath='Python/pystrtod.c' line='385' column='1'/>
+      <parameter type-id='type-id-688' name='innerfunc' filepath='Python/pystrtod.c' line='386' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyOS_string_to_double' mangled-name='PyOS_string_to_double' filepath='Python/pystrtod.c' line='338' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_string_to_double'>
+      <parameter type-id='type-id-3' name='s' filepath='Python/pystrtod.c' line='338' column='1'/>
+      <parameter type-id='type-id-304' name='endptr' filepath='Python/pystrtod.c' line='339' column='1'/>
+      <parameter type-id='type-id-100' name='overflow_exception' filepath='Python/pystrtod.c' line='340' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='_Py_parse_inf_or_nan' mangled-name='_Py_parse_inf_or_nan' filepath='Python/pystrtod.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_parse_inf_or_nan'>
+      <parameter type-id='type-id-3' name='p' filepath='Python/pystrtod.c' line='29' column='1'/>
+      <parameter type-id='type-id-304' name='endptr' filepath='Python/pystrtod.c' line='29' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-type size-in-bits='64' id='type-id-687'>
+      <parameter type-id='type-id-3'/>
+      <parameter type-id='type-id-15'/>
+      <parameter type-id='type-id-32'/>
+      <return type-id='type-id-100'/>
     </function-type>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/pymath.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='_Py_bit_length' mangled-name='_Py_bit_length' filepath='Python/pymath.c' line='88' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_bit_length'>
-      <parameter type-id='type-id-33' name='d' filepath='Python/pymath.c' line='88' column='1'/>
-      <return type-id='type-id-107'/>
+  <abi-instr version='1.0' address-size='64' path='Python/pystrhex.c' comp-dir-path='/src' language='LANG_C99'>
+    <qualified-type-def type-id='type-id-110' const='yes' id='type-id-689'/>
+    <pointer-type-def type-id='type-id-689' size-in-bits='64' id='type-id-690'/>
+    <function-decl name='_Py_strhex_bytes_with_sep' mangled-name='_Py_strhex_bytes_with_sep' filepath='Python/pystrhex.c' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_strhex_bytes_with_sep'>
+      <parameter type-id='type-id-3' name='argbuf' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <parameter type-id='type-id-281' name='arglen' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <parameter type-id='type-id-690' name='sep' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <parameter type-id='type-id-634' name='bytes_per_group' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_Py_strhex_with_sep' mangled-name='_Py_strhex_with_sep' filepath='Python/pystrhex.c' line='162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_strhex_with_sep'>
+      <parameter type-id='type-id-3' name='argbuf' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <parameter type-id='type-id-281' name='arglen' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <parameter type-id='type-id-690' name='sep' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <parameter type-id='type-id-634' name='bytes_per_group' filepath='Python/pystrhex.c' line='169' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_Py_strhex_bytes' mangled-name='_Py_strhex_bytes' filepath='Python/pystrhex.c' line='155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_strhex_bytes'>
+      <parameter type-id='type-id-3' name='argbuf' filepath='Python/pystrhex.c' line='155' column='1'/>
+      <parameter type-id='type-id-281' name='arglen' filepath='Python/pystrhex.c' line='155' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_Py_strhex' mangled-name='_Py_strhex' filepath='Python/pystrhex.c' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_strhex'>
+      <parameter type-id='type-id-3' name='argbuf' filepath='Python/pystrhex.c' line='155' column='1'/>
+      <parameter type-id='type-id-281' name='arglen' filepath='Python/pystrhex.c' line='155' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/dtoa.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_Py_dg_dtoa' mangled-name='_Py_dg_dtoa' filepath='Python/dtoa.c' line='2247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_dg_dtoa'>
+      <parameter type-id='type-id-441' name='dd' filepath='Python/dtoa.c' line='2247' column='1'/>
+      <parameter type-id='type-id-8' name='mode' filepath='Python/dtoa.c' line='2247' column='1'/>
+      <parameter type-id='type-id-8' name='ndigits' filepath='Python/dtoa.c' line='2247' column='1'/>
+      <parameter type-id='type-id-227' name='decpt' filepath='Python/dtoa.c' line='2248' column='1'/>
+      <parameter type-id='type-id-227' name='sign' filepath='Python/dtoa.c' line='2248' column='1'/>
+      <parameter type-id='type-id-304' name='rve' filepath='Python/dtoa.c' line='2248' column='1'/>
+      <return type-id='type-id-7'/>
+    </function-decl>
+    <function-decl name='_Py_dg_freedtoa' mangled-name='_Py_dg_freedtoa' filepath='Python/dtoa.c' line='2201' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_dg_freedtoa'>
+      <parameter type-id='type-id-7' name='s' filepath='Python/dtoa.c' line='2201' column='1'/>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_dg_strtod' mangled-name='_Py_dg_strtod' filepath='Python/dtoa.c' line='1438' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_dg_strtod'>
+      <parameter type-id='type-id-3' name='s00' filepath='Python/dtoa.c' line='1438' column='1'/>
+      <parameter type-id='type-id-304' name='se' filepath='Python/dtoa.c' line='1438' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='_Py_dg_infinity' mangled-name='_Py_dg_infinity' filepath='Python/dtoa.c' line='1429' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_dg_infinity'>
+      <parameter type-id='type-id-8' name='sign' filepath='Python/dtoa.c' line='1429' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+    <function-decl name='_Py_dg_stdnan' mangled-name='_Py_dg_stdnan' filepath='Python/dtoa.c' line='1415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_dg_stdnan'>
+      <parameter type-id='type-id-8' name='sign' filepath='Python/dtoa.c' line='1429' column='1'/>
+      <return type-id='type-id-441'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/formatter_unicode.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_PyComplex_FormatAdvancedWriter' mangled-name='_PyComplex_FormatAdvancedWriter' filepath='Python/formatter_unicode.c' line='1565' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyComplex_FormatAdvancedWriter'>
+      <parameter type-id='type-id-475' name='writer' filepath='Python/formatter_unicode.c' line='1565' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/formatter_unicode.c' line='1566' column='1'/>
+      <parameter type-id='type-id-100' name='format_spec' filepath='Python/formatter_unicode.c' line='1567' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyFloat_FormatAdvancedWriter' mangled-name='_PyFloat_FormatAdvancedWriter' filepath='Python/formatter_unicode.c' line='1526' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_FormatAdvancedWriter'>
+      <parameter type-id='type-id-475' name='writer' filepath='Python/formatter_unicode.c' line='1565' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/formatter_unicode.c' line='1566' column='1'/>
+      <parameter type-id='type-id-100' name='format_spec' filepath='Python/formatter_unicode.c' line='1567' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyLong_FormatAdvancedWriter' mangled-name='_PyLong_FormatAdvancedWriter' filepath='Python/formatter_unicode.c' line='1464' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FormatAdvancedWriter'>
+      <parameter type-id='type-id-475' name='writer' filepath='Python/formatter_unicode.c' line='1464' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/formatter_unicode.c' line='1465' column='1'/>
+      <parameter type-id='type-id-100' name='format_spec' filepath='Python/formatter_unicode.c' line='1466' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Python/formatter_unicode.c' line='1467' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Python/formatter_unicode.c' line='1467' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_Py_set_387controlword' mangled-name='_Py_set_387controlword' filepath='Python/pymath.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_set_387controlword'>
-      <parameter type-id='type-id-209' name='cw' filepath='Python/pymath.c' line='29' column='1'/>
+    <function-decl name='_PyUnicode_FormatAdvancedWriter' mangled-name='_PyUnicode_FormatAdvancedWriter' filepath='Python/formatter_unicode.c' line='1428' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FormatAdvancedWriter'>
+      <parameter type-id='type-id-475' name='writer' filepath='Python/formatter_unicode.c' line='1565' column='1'/>
+      <parameter type-id='type-id-100' name='obj' filepath='Python/formatter_unicode.c' line='1566' column='1'/>
+      <parameter type-id='type-id-100' name='format_spec' filepath='Python/formatter_unicode.c' line='1567' column='1'/>
+      <parameter type-id='type-id-15' name='start' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
+      <parameter type-id='type-id-15' name='end' filepath='Python/formatter_unicode.c' line='1568' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_FastFill' mangled-name='_PyUnicode_FastFill' filepath='./Include/cpython/unicodeobject.h' line='535' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_get_387controlword' mangled-name='_Py_get_387controlword' filepath='Python/pymath.c' line='23' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_387controlword'>
-      <return type-id='type-id-209'/>
+    <function-decl name='_PyUnicode_FindMaxChar' mangled-name='_PyUnicode_FindMaxChar' filepath='./Include/cpython/unicodeobject.h' line='571' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/pystate.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='_Py_GetConfig' mangled-name='_Py_GetConfig' filepath='Python/pystate.c' line='1821' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetConfig'>
-      <return type-id='type-id-642'/>
+    <function-decl name='_PyUnicode_FastCopyCharacters' mangled-name='_PyUnicode_FastCopyCharacters' filepath='./Include/cpython/unicodeobject.h' line='510' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_GetConfig' mangled-name='_PyInterpreterState_GetConfig' filepath='Python/pystate.c' line='1806' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetConfig'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='1806' column='1'/>
-      <return type-id='type-id-642'/>
+    <function-decl name='localeconv' mangled-name='localeconv' filepath='/usr/include/locale.h' line='125' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_SetEvalFrameFunc' mangled-name='_PyInterpreterState_SetEvalFrameFunc' filepath='Python/pystate.c' line='1798' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_SetEvalFrameFunc'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='1798' column='1'/>
-      <parameter type-id='type-id-322' name='eval_frame' filepath='Python/pystate.c' line='1799' column='1'/>
+    <function-decl name='_Py_GetLocaleconvNumeric' mangled-name='_Py_GetLocaleconvNumeric' filepath='./Include/internal/pycore_fileutils.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_GetEvalFrameFunc' mangled-name='_PyInterpreterState_GetEvalFrameFunc' filepath='Python/pystate.c' line='1791' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetEvalFrameFunc'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='1791' column='1'/>
-      <return type-id='type-id-322'/>
+    <function-decl name='_PyMem_Strdup' mangled-name='_PyMem_Strdup' filepath='./Include/cpython/pymem.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_Lookup' mangled-name='_PyCrossInterpreterData_Lookup' filepath='Python/pystate.c' line='1641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Lookup'>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/pystate.c' line='1641' column='1'/>
-      <return type-id='type-id-343'/>
+    <function-decl name='_PyUnicode_InsertThousandsGrouping' mangled-name='_PyUnicode_InsertThousandsGrouping' filepath='./Include/cpython/unicodeobject.h' line='1055' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_RegisterClass' mangled-name='_PyCrossInterpreterData_RegisterClass' filepath='Python/pystate.c' line='1611' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_RegisterClass'>
-      <parameter type-id='type-id-75' name='cls' filepath='Python/pystate.c' line='1611' column='1'/>
-      <parameter type-id='type-id-343' name='getdata' filepath='Python/pystate.c' line='1612' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Python/fileutils.c' comp-dir-path='/src' language='LANG_C99'>
+    <class-decl name='lconv' size-in-bits='768' is-struct='yes' visibility='default' filepath='/usr/include/locale.h' line='51' column='1' id='type-id-691'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='decimal_point' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='55' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='thousands_sep' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='56' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='grouping' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='int_curr_symbol' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='68' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='currency_symbol' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='mon_decimal_point' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='70' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='mon_thousands_sep' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='71' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='mon_grouping' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='72' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='positive_sign' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='73' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='negative_sign' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='640'>
+        <var-decl name='int_frac_digits' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='75' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='648'>
+        <var-decl name='frac_digits' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='76' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='656'>
+        <var-decl name='p_cs_precedes' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='664'>
+        <var-decl name='p_sep_by_space' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='80' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='672'>
+        <var-decl name='n_cs_precedes' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='82' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='680'>
+        <var-decl name='n_sep_by_space' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='84' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='688'>
+        <var-decl name='p_sign_posn' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='91' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='696'>
+        <var-decl name='n_sign_posn' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='int_p_cs_precedes' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='95' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='712'>
+        <var-decl name='int_p_sep_by_space' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='97' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='720'>
+        <var-decl name='int_n_cs_precedes' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='99' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='728'>
+        <var-decl name='int_n_sep_by_space' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='101' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='736'>
+        <var-decl name='int_p_sign_posn' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='108' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='744'>
+        <var-decl name='int_n_sign_posn' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='109' column='1'/>
+      </data-member>
+    </class-decl>
+    <pointer-type-def type-id='type-id-691' size-in-bits='64' id='type-id-692'/>
+    <function-decl name='_Py_GetLocaleconvNumeric' mangled-name='_Py_GetLocaleconvNumeric' filepath='Python/fileutils.c' line='2201' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetLocaleconvNumeric'>
+      <parameter type-id='type-id-692' name='lc' filepath='Python/fileutils.c' line='2201' column='1'/>
+      <parameter type-id='type-id-303' name='decimal_point' filepath='Python/fileutils.c' line='2202' column='1'/>
+      <parameter type-id='type-id-303' name='thousands_sep' filepath='Python/fileutils.c' line='2202' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <typedef-decl name='_PyCrossInterpreterData' type-id='type-id-344' filepath='./Include/cpython/pystate.h' line='246' column='1' id='type-id-645'/>
-    <pointer-type-def type-id='type-id-645' size-in-bits='64' id='type-id-646'/>
-    <function-decl name='_PyCrossInterpreterData_NewObject' mangled-name='_PyCrossInterpreterData_NewObject' filepath='Python/pystate.c' line='1581' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_NewObject'>
-      <parameter type-id='type-id-646' name='data' filepath='Python/pystate.c' line='1581' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_set_blocking' mangled-name='_Py_set_blocking' filepath='Python/fileutils.c' line='2165' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_set_blocking'>
+      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='2165' column='1'/>
+      <parameter type-id='type-id-8' name='blocking' filepath='Python/fileutils.c' line='2165' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyCrossInterpreterData_Release' mangled-name='_PyCrossInterpreterData_Release' filepath='Python/pystate.c' line='1558' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCrossInterpreterData_Release'>
-      <parameter type-id='type-id-646' name='data' filepath='Python/pystate.c' line='1558' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='_Py_get_blocking' mangled-name='_Py_get_blocking' filepath='Python/fileutils.c' line='2144' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_blocking'>
+      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='2144' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyObject_GetCrossInterpreterData' mangled-name='_PyObject_GetCrossInterpreterData' filepath='Python/pystate.c' line='1489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GetCrossInterpreterData'>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/pystate.c' line='1489' column='1'/>
-      <parameter type-id='type-id-646' name='data' filepath='Python/pystate.c' line='1489' column='1'/>
+    <function-decl name='_Py_dup' mangled-name='_Py_dup' filepath='Python/fileutils.c' line='2074' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_dup'>
+      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='2074' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyObject_CheckCrossInterpreterData' mangled-name='_PyObject_CheckCrossInterpreterData' filepath='Python/pystate.c' line='1457' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_CheckCrossInterpreterData'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='284' column='1'/>
+    <function-decl name='_Py_wgetcwd' mangled-name='_Py_wgetcwd' filepath='Python/fileutils.c' line='2042' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wgetcwd'>
+      <parameter type-id='type-id-403' name='buf' filepath='Python/fileutils.c' line='2042' column='1'/>
+      <parameter type-id='type-id-191' name='buflen' filepath='Python/fileutils.c' line='2042' column='1'/>
+      <return type-id='type-id-403'/>
+    </function-decl>
+    <function-decl name='_Py_abspath' mangled-name='_Py_abspath' filepath='Python/fileutils.c' line='1955' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_abspath'>
+      <parameter type-id='type-id-501' name='path' filepath='Python/fileutils.c' line='1955' column='1'/>
+      <parameter type-id='type-id-407' name='abspath_p' filepath='Python/fileutils.c' line='1955' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/pystate.h' line='95' column='1' id='type-id-647'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='PyGILState_LOCKED' value='0'/>
-      <enumerator name='PyGILState_UNLOCKED' value='1'/>
-    </enum-decl>
-    <typedef-decl name='PyGILState_STATE' type-id='type-id-647' filepath='./Include/pystate.h' line='96' column='1' id='type-id-648'/>
-    <function-decl name='PyGILState_Release' mangled-name='PyGILState_Release' filepath='Python/pystate.c' line='1392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_Release'>
-      <parameter type-id='type-id-648' name='oldstate' filepath='Python/pystate.c' line='1392' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='_Py_isabs' mangled-name='_Py_isabs' filepath='Python/fileutils.c' line='1942' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_isabs'>
+      <parameter type-id='type-id-501' name='path' filepath='Python/fileutils.c' line='1942' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyGILState_Ensure' mangled-name='PyGILState_Ensure' filepath='Python/pystate.c' line='1344' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_Ensure'>
-      <return type-id='type-id-648'/>
+    <function-decl name='_Py_wrealpath' mangled-name='_Py_wrealpath' filepath='Python/fileutils.c' line='1904' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wrealpath'>
+      <parameter type-id='type-id-501' name='path' filepath='Python/fileutils.c' line='1904' column='1'/>
+      <parameter type-id='type-id-403' name='resolved_path' filepath='Python/fileutils.c' line='1905' column='1'/>
+      <parameter type-id='type-id-191' name='resolved_path_len' filepath='Python/fileutils.c' line='1905' column='1'/>
+      <return type-id='type-id-403'/>
     </function-decl>
-    <function-decl name='PyGILState_Check' mangled-name='PyGILState_Check' filepath='Python/pystate.c' line='1324' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_Check'>
+    <function-decl name='_Py_wreadlink' mangled-name='_Py_wreadlink' filepath='Python/fileutils.c' line='1855' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wreadlink'>
+      <parameter type-id='type-id-501' name='path' filepath='Python/fileutils.c' line='1855' column='1'/>
+      <parameter type-id='type-id-403' name='buf' filepath='Python/fileutils.c' line='1855' column='1'/>
+      <parameter type-id='type-id-191' name='buflen' filepath='Python/fileutils.c' line='1855' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyGILState_GetThisThreadState' mangled-name='PyGILState_GetThisThreadState' filepath='Python/pystate.c' line='1318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGILState_GetThisThreadState'>
-      <return type-id='type-id-409'/>
+    <function-decl name='_Py_write_noraise' mangled-name='_Py_write_noraise' filepath='Python/fileutils.c' line='1842' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_write_noraise'>
+      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1842' column='1'/>
+      <parameter type-id='type-id-32' name='buf' filepath='Python/fileutils.c' line='1842' column='1'/>
+      <parameter type-id='type-id-191' name='count' filepath='Python/fileutils.c' line='1842' column='1'/>
+      <return type-id='type-id-15'/>
     </function-decl>
-    <typedef-decl name='_PyRuntimeState' type-id='type-id-327' filepath='./Include/internal/pycore_runtime.h' line='108' column='1' id='type-id-649'/>
-    <pointer-type-def type-id='type-id-649' size-in-bits='64' id='type-id-650'/>
-    <function-decl name='_PyGILState_Reinit' mangled-name='_PyGILState_Reinit' filepath='Python/pystate.c' line='1252' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGILState_Reinit'>
-      <parameter type-id='type-id-650' name='runtime' filepath='Python/pystate.c' line='1252' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='_Py_write' mangled-name='_Py_write' filepath='Python/fileutils.c' line='1822' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_write'>
+      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1822' column='1'/>
+      <parameter type-id='type-id-32' name='buf' filepath='Python/fileutils.c' line='1822' column='1'/>
+      <parameter type-id='type-id-191' name='count' filepath='Python/fileutils.c' line='1822' column='1'/>
+      <return type-id='type-id-15'/>
     </function-decl>
-    <function-decl name='_PyGILState_GetInterpreterStateUnsafe' mangled-name='_PyGILState_GetInterpreterStateUnsafe' filepath='Python/pystate.c' line='1234' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGILState_GetInterpreterStateUnsafe'>
-      <return type-id='type-id-311'/>
+    <function-decl name='_Py_read' mangled-name='_Py_read' filepath='Python/fileutils.c' line='1683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_read'>
+      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1683' column='1'/>
+      <parameter type-id='type-id-32' name='buf' filepath='Python/fileutils.c' line='1683' column='1'/>
+      <parameter type-id='type-id-191' name='count' filepath='Python/fileutils.c' line='1683' column='1'/>
+      <return type-id='type-id-15'/>
     </function-decl>
-    <function-decl name='_PyThread_CurrentFrames' mangled-name='_PyThread_CurrentFrames' filepath='Python/pystate.c' line='1136' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_CurrentFrames'>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_fopen_obj' mangled-name='_Py_fopen_obj' filepath='Python/fileutils.c' line='1590' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_fopen_obj'>
+      <parameter type-id='type-id-100' name='path' filepath='Python/fileutils.c' line='1590' column='1'/>
+      <parameter type-id='type-id-3' name='mode' filepath='Python/fileutils.c' line='1590' column='1'/>
+      <return type-id='type-id-223'/>
     </function-decl>
-    <function-decl name='PyThreadState_Next' mangled-name='PyThreadState_Next' filepath='Python/pystate.c' line='1126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Next'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='1126' column='1'/>
-      <return type-id='type-id-409'/>
+    <function-decl name='_Py_fopen' mangled-name='_Py_fopen' filepath='Python/fileutils.c' line='1554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_fopen'>
+      <parameter type-id='type-id-3' name='pathname' filepath='Python/fileutils.c' line='1554' column='1'/>
+      <parameter type-id='type-id-3' name='mode' filepath='Python/fileutils.c' line='1554' column='1'/>
+      <return type-id='type-id-223'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_ThreadHead' mangled-name='PyInterpreterState_ThreadHead' filepath='Python/pystate.c' line='1121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_ThreadHead'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='1121' column='1'/>
-      <return type-id='type-id-409'/>
+    <function-decl name='_Py_wfopen' mangled-name='_Py_wfopen' filepath='Python/fileutils.c' line='1515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wfopen'>
+      <parameter type-id='type-id-501' name='path' filepath='Python/fileutils.c' line='1515' column='1'/>
+      <parameter type-id='type-id-501' name='mode' filepath='Python/fileutils.c' line='1515' column='1'/>
+      <return type-id='type-id-223'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_Next' mangled-name='PyInterpreterState_Next' filepath='Python/pystate.c' line='1116' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Next'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='1116' column='1'/>
-      <return type-id='type-id-311'/>
+    <function-decl name='_Py_open_noraise' mangled-name='_Py_open_noraise' filepath='Python/fileutils.c' line='1503' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_open_noraise'>
+      <parameter type-id='type-id-3' name='pathname' filepath='Python/fileutils.c' line='1503' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Python/fileutils.c' line='1503' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_Main' mangled-name='PyInterpreterState_Main' filepath='Python/pystate.c' line='1110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Main'>
-      <return type-id='type-id-311'/>
+    <function-decl name='_Py_open' mangled-name='_Py_open' filepath='Python/fileutils.c' line='1489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_open'>
+      <parameter type-id='type-id-3' name='pathname' filepath='Python/fileutils.c' line='1503' column='1'/>
+      <parameter type-id='type-id-8' name='flags' filepath='Python/fileutils.c' line='1503' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_Head' mangled-name='PyInterpreterState_Head' filepath='Python/pystate.c' line='1104' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Head'>
-      <return type-id='type-id-311'/>
+    <function-decl name='_Py_set_inheritable_async_safe' mangled-name='_Py_set_inheritable_async_safe' filepath='Python/fileutils.c' line='1412' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_set_inheritable_async_safe'>
+      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1412' column='1'/>
+      <parameter type-id='type-id-8' name='inheritable' filepath='Python/fileutils.c' line='1412' column='1'/>
+      <parameter type-id='type-id-227' name='atomic_flag_works' filepath='Python/fileutils.c' line='1412' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyThreadState_SetAsyncExc' mangled-name='PyThreadState_SetAsyncExc' filepath='Python/pystate.c' line='1062' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_SetAsyncExc'>
-      <parameter type-id='type-id-33' name='id' filepath='Python/pystate.c' line='1062' column='1'/>
-      <parameter type-id='type-id-100' name='exc' filepath='Python/pystate.c' line='1062' column='1'/>
+    <function-decl name='_Py_set_inheritable' mangled-name='_Py_set_inheritable' filepath='Python/fileutils.c' line='1403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_set_inheritable'>
+      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1412' column='1'/>
+      <parameter type-id='type-id-8' name='inheritable' filepath='Python/fileutils.c' line='1412' column='1'/>
+      <parameter type-id='type-id-227' name='atomic_flag_works' filepath='Python/fileutils.c' line='1412' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyThreadState_GetID' mangled-name='PyThreadState_GetID' filepath='Python/pystate.c' line='1046' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetID'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='1046' column='1'/>
-      <return type-id='type-id-238'/>
+    <function-decl name='_Py_get_inheritable' mangled-name='_Py_get_inheritable' filepath='Python/fileutils.c' line='1235' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_inheritable'>
+      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1235' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyThreadState_GetFrame' mangled-name='PyThreadState_GetFrame' filepath='Python/pystate.c' line='1036' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetFrame'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='1036' column='1'/>
-      <return type-id='type-id-234'/>
+    <class-decl name='stat' size-in-bits='1152' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='46' column='1' id='type-id-693'>
+      <data-member access='public' layout-offset-in-bits='0'>
+        <var-decl name='st_dev' type-id='type-id-694' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='48' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='64'>
+        <var-decl name='st_ino' type-id='type-id-695' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='53' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='128'>
+        <var-decl name='st_nlink' type-id='type-id-696' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='61' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='192'>
+        <var-decl name='st_mode' type-id='type-id-697' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='62' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='224'>
+        <var-decl name='st_uid' type-id='type-id-698' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='64' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='256'>
+        <var-decl name='st_gid' type-id='type-id-699' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='65' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='288'>
+        <var-decl name='__pad0' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='67' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='320'>
+        <var-decl name='st_rdev' type-id='type-id-694' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='69' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='384'>
+        <var-decl name='st_size' type-id='type-id-208' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='74' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='448'>
+        <var-decl name='st_blksize' type-id='type-id-700' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='78' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='512'>
+        <var-decl name='st_blocks' type-id='type-id-701' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='80' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='576'>
+        <var-decl name='st_atim' type-id='type-id-671' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='91' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='704'>
+        <var-decl name='st_mtim' type-id='type-id-671' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='92' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='832'>
+        <var-decl name='st_ctim' type-id='type-id-671' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='93' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='960'>
+        <var-decl name='__glibc_reserved' type-id='type-id-702' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='106' column='1'/>
+      </data-member>
+    </class-decl>
+    <typedef-decl name='__dev_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='145' column='1' id='type-id-694'/>
+    <typedef-decl name='__ino_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='148' column='1' id='type-id-695'/>
+    <typedef-decl name='__nlink_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='151' column='1' id='type-id-696'/>
+    <typedef-decl name='__mode_t' type-id='type-id-107' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='150' column='1' id='type-id-697'/>
+    <typedef-decl name='__uid_t' type-id='type-id-107' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='146' column='1' id='type-id-698'/>
+    <typedef-decl name='__gid_t' type-id='type-id-107' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='147' column='1' id='type-id-699'/>
+    <typedef-decl name='__blksize_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='174' column='1' id='type-id-700'/>
+    <typedef-decl name='__blkcnt_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='179' column='1' id='type-id-701'/>
+
+    <array-type-def dimensions='1' type-id='type-id-672' size-in-bits='192' id='type-id-702'>
+      <subrange length='3' type-id='type-id-33' id='type-id-397'/>
+
+    </array-type-def>
+    <pointer-type-def type-id='type-id-693' size-in-bits='64' id='type-id-703'/>
+    <function-decl name='_Py_stat' mangled-name='_Py_stat' filepath='Python/fileutils.c' line='1154' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_stat'>
+      <parameter type-id='type-id-100' name='path' filepath='Python/fileutils.c' line='1154' column='1'/>
+      <parameter type-id='type-id-703' name='statbuf' filepath='Python/fileutils.c' line='1154' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyThreadState_GetInterpreter' mangled-name='PyThreadState_GetInterpreter' filepath='Python/pystate.c' line='1028' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetInterpreter'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='1028' column='1'/>
-      <return type-id='type-id-311'/>
+    <function-decl name='_Py_fstat' mangled-name='_Py_fstat' filepath='Python/fileutils.c' line='1126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_fstat'>
+      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1126' column='1'/>
+      <parameter type-id='type-id-703' name='status' filepath='Python/fileutils.c' line='1126' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyThreadState_GetDict' mangled-name='PyThreadState_GetDict' filepath='Python/pystate.c' line='1017' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_GetDict'>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_fstat_noraise' mangled-name='_Py_fstat_noraise' filepath='Python/fileutils.c' line='1057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_fstat_noraise'>
+      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1057' column='1'/>
+      <parameter type-id='type-id-703' name='status' filepath='Python/fileutils.c' line='1057' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyThreadState_GetDict' mangled-name='_PyThreadState_GetDict' filepath='Python/pystate.c' line='1003' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_GetDict'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='1003' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_Py_EncodeLocaleEx' mangled-name='_Py_EncodeLocaleEx' filepath='Python/fileutils.c' line='866' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_EncodeLocaleEx'>
+      <parameter type-id='type-id-501' name='text' filepath='Python/fileutils.c' line='866' column='1'/>
+      <parameter type-id='type-id-304' name='str' filepath='Python/fileutils.c' line='866' column='1'/>
+      <parameter type-id='type-id-540' name='error_pos' filepath='Python/fileutils.c' line='867' column='1'/>
+      <parameter type-id='type-id-284' name='reason' filepath='Python/fileutils.c' line='867' column='1'/>
+      <parameter type-id='type-id-8' name='current_locale' filepath='Python/fileutils.c' line='868' column='1'/>
+      <parameter type-id='type-id-400' name='errors' filepath='Python/fileutils.c' line='868' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyThreadState_Swap' mangled-name='PyThreadState_Swap' filepath='Python/pystate.c' line='991' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Swap'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='1126' column='1'/>
-      <return type-id='type-id-409'/>
+    <function-decl name='_Py_EncodeLocaleRaw' mangled-name='_Py_EncodeLocaleRaw' filepath='Python/fileutils.c' line='859' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_EncodeLocaleRaw'>
+      <parameter type-id='type-id-501' name='text' filepath='Python/fileutils.c' line='859' column='1'/>
+      <parameter type-id='type-id-540' name='error_pos' filepath='Python/fileutils.c' line='859' column='1'/>
+      <return type-id='type-id-7'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-333' size-in-bits='64' id='type-id-651'/>
-    <function-decl name='_PyThreadState_Swap' mangled-name='_PyThreadState_Swap' filepath='Python/pystate.c' line='966' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Swap'>
-      <parameter type-id='type-id-651' name='gilstate' filepath='Python/pystate.c' line='966' column='1'/>
-      <parameter type-id='type-id-409' name='newts' filepath='Python/pystate.c' line='966' column='1'/>
-      <return type-id='type-id-409'/>
+    <function-decl name='Py_EncodeLocale' mangled-name='Py_EncodeLocale' filepath='Python/fileutils.c' line='850' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EncodeLocale'>
+      <parameter type-id='type-id-501' name='text' filepath='Python/fileutils.c' line='859' column='1'/>
+      <parameter type-id='type-id-540' name='error_pos' filepath='Python/fileutils.c' line='859' column='1'/>
+      <return type-id='type-id-7'/>
     </function-decl>
-    <function-decl name='PyThreadState_Get' mangled-name='PyThreadState_Get' filepath='Python/pystate.c' line='957' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Get'>
-      <return type-id='type-id-409'/>
+    <function-decl name='Py_DecodeLocale' mangled-name='Py_DecodeLocale' filepath='Python/fileutils.c' line='648' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_DecodeLocale'>
+      <parameter type-id='type-id-3' name='arg' filepath='Python/fileutils.c' line='648' column='1'/>
+      <parameter type-id='type-id-540' name='wlen' filepath='Python/fileutils.c' line='648' column='1'/>
+      <return type-id='type-id-403'/>
     </function-decl>
-    <function-decl name='_PyThreadState_UncheckedGet' mangled-name='_PyThreadState_UncheckedGet' filepath='Python/pystate.c' line='950' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_UncheckedGet'>
-      <return type-id='type-id-409'/>
+    <function-decl name='_Py_DecodeLocaleEx' mangled-name='_Py_DecodeLocaleEx' filepath='Python/fileutils.c' line='586' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_DecodeLocaleEx'>
+      <parameter type-id='type-id-3' name='arg' filepath='Python/fileutils.c' line='586' column='1'/>
+      <parameter type-id='type-id-407' name='wstr' filepath='Python/fileutils.c' line='586' column='1'/>
+      <parameter type-id='type-id-540' name='wlen' filepath='Python/fileutils.c' line='586' column='1'/>
+      <parameter type-id='type-id-284' name='reason' filepath='Python/fileutils.c' line='587' column='1'/>
+      <parameter type-id='type-id-8' name='current_locale' filepath='Python/fileutils.c' line='588' column='1'/>
+      <parameter type-id='type-id-400' name='errors' filepath='Python/fileutils.c' line='588' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyThreadState_DeleteExcept' mangled-name='_PyThreadState_DeleteExcept' filepath='Python/pystate.c' line='915' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_DeleteExcept'>
-      <parameter type-id='type-id-650' name='runtime' filepath='Python/pystate.c' line='915' column='1'/>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='915' column='1'/>
-      <return type-id='type-id-4'/>
+    <function-decl name='_Py_GetForceASCII' mangled-name='_Py_GetForceASCII' filepath='Python/fileutils.c' line='295' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetForceASCII'>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyThreadState_DeleteCurrent' mangled-name='PyThreadState_DeleteCurrent' filepath='Python/pystate.c' line='899' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_DeleteCurrent'>
-      <return type-id='type-id-4'/>
+    <function-decl name='_Py_device_encoding' mangled-name='_Py_device_encoding' filepath='Python/fileutils.c' line='66' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_device_encoding'>
+      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='66' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyThreadState_DeleteCurrent' mangled-name='_PyThreadState_DeleteCurrent' filepath='Python/pystate.c' line='888' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_DeleteCurrent'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='888' column='1'/>
+    <function-decl name='ioctl' mangled-name='ioctl' filepath='/usr/include/x86_64-linux-gnu/sys/ioctl.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThreadState_Delete' mangled-name='PyThreadState_Delete' filepath='Python/pystate.c' line='881' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Delete'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='881' column='1'/>
+    <function-decl name='fcntl' mangled-name='fcntl64' filepath='/usr/include/fcntl.h' line='151' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThreadState_Clear' mangled-name='PyThreadState_Clear' filepath='Python/pystate.c' line='783' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_Clear'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='783' column='1'/>
+    <function-decl name='__getcwd_alias' mangled-name='getcwd' filepath='/usr/include/x86_64-linux-gnu/bits/unistd.h' line='191' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-487' size-in-bits='64' id='type-id-652'/>
-    <function-decl name='PyState_RemoveModule' mangled-name='PyState_RemoveModule' filepath='Python/pystate.c' line='726' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyState_RemoveModule'>
-      <parameter type-id='type-id-652' name='def' filepath='Python/pystate.c' line='726' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='PyState_AddModule' mangled-name='PyState_AddModule' filepath='Python/pystate.c' line='705' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyState_AddModule'>
-      <parameter type-id='type-id-100' name='module' filepath='Python/pystate.c' line='705' column='1'/>
-      <parameter type-id='type-id-652' name='def' filepath='Python/pystate.c' line='705' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
-    <function-decl name='_PyState_AddModule' mangled-name='_PyState_AddModule' filepath='Python/pystate.c' line='672' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyState_AddModule'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='672' column='1'/>
-      <parameter type-id='type-id-100' name='module' filepath='Python/pystate.c' line='672' column='1'/>
-      <parameter type-id='type-id-652' name='def' filepath='Python/pystate.c' line='672' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='__realpath_chk' mangled-name='__realpath_chk' filepath='/usr/include/x86_64-linux-gnu/bits/stdlib.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyState_FindModule' mangled-name='PyState_FindModule' filepath='Python/pystate.c' line='653' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyState_FindModule'>
-      <parameter type-id='type-id-652' name='module' filepath='Python/pystate.c' line='653' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='__readlink_alias' mangled-name='readlink' filepath='/usr/include/x86_64-linux-gnu/bits/unistd.h' line='127' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyThreadState_Init' mangled-name='_PyThreadState_Init' filepath='Python/pystate.c' line='647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Init'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pystate.c' line='881' column='1'/>
+    <function-decl name='write' mangled-name='write' filepath='/usr/include/unistd.h' line='366' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyThreadState_Prealloc' mangled-name='_PyThreadState_Prealloc' filepath='Python/pystate.c' line='641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThreadState_Prealloc'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='1121' column='1'/>
-      <return type-id='type-id-409'/>
+    <function-decl name='PyUnicode_FSConverter' mangled-name='PyUnicode_FSConverter' filepath='./Include/unicodeobject.h' line='748' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThreadState_New' mangled-name='PyThreadState_New' filepath='Python/pystate.c' line='635' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThreadState_New'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='1121' column='1'/>
-      <return type-id='type-id-409'/>
+    <function-decl name='PyErr_SetFromErrnoWithFilenameObject' mangled-name='PyErr_SetFromErrnoWithFilenameObject' filepath='./Include/pyerrors.h' line='163' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_GetDict' mangled-name='PyInterpreterState_GetDict' filepath='Python/pystate.c' line='554' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_GetDict'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='554' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='__wcstombs_alias' mangled-name='wcstombs' filepath='/usr/include/x86_64-linux-gnu/bits/stdlib.h' line='133' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_GetMainModule' mangled-name='_PyInterpreterState_GetMainModule' filepath='Python/pystate.c' line='544' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_GetMainModule'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='554' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='__open_2' mangled-name='__open64_2' filepath='/usr/include/x86_64-linux-gnu/bits/fcntl2.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_RequireIDRef' mangled-name='_PyInterpreterState_RequireIDRef' filepath='Python/pystate.c' line='538' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_RequireIDRef'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='538' column='1'/>
-      <parameter type-id='type-id-8' name='required' filepath='Python/pystate.c' line='538' column='1'/>
+    <function-decl name='PyErr_SetFromErrnoWithFilenameObjects' mangled-name='PyErr_SetFromErrnoWithFilenameObjects' filepath='./Include/pyerrors.h' line='166' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_RequiresIDRef' mangled-name='_PyInterpreterState_RequiresIDRef' filepath='Python/pystate.c' line='532' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_RequiresIDRef'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/import.c' line='323' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='__xstat' mangled-name='__xstat64' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='409' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_IDDecref' mangled-name='_PyInterpreterState_IDDecref' filepath='Python/pystate.c' line='509' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_IDDecref'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='509' column='1'/>
+    <function-decl name='__fxstat' mangled-name='__fxstat64' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='406' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_IDIncref' mangled-name='_PyInterpreterState_IDIncref' filepath='Python/pystate.c' line='497' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_IDIncref'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='497' column='1'/>
+    <function-decl name='_Py_EncodeUTF8Ex' mangled-name='_Py_EncodeUTF8Ex' filepath='./Include/internal/pycore_fileutils.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_IDInitref' mangled-name='_PyInterpreterState_IDInitref' filepath='Python/pystate.c' line='480' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_IDInitref'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/import.c' line='323' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_DecodeUTF8Ex' mangled-name='_Py_DecodeUTF8Ex' filepath='./Include/internal/pycore_fileutils.h' line='15' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_LookUpID' mangled-name='_PyInterpreterState_LookUpID' filepath='Python/pystate.c' line='462' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_LookUpID'>
-      <parameter type-id='type-id-316' name='requested_id' filepath='Python/pystate.c' line='462' column='1'/>
-      <return type-id='type-id-311'/>
+    <function-decl name='mbrtowc' mangled-name='mbrtowc' filepath='/usr/include/wchar.h' line='296' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_GetID' mangled-name='PyInterpreterState_GetID' filepath='Python/pystate.c' line='434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_GetID'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='434' column='1'/>
-      <return type-id='type-id-316'/>
+    <function-decl name='__mbstowcs_alias' mangled-name='mbstowcs' filepath='/usr/include/x86_64-linux-gnu/bits/stdlib.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_Get' mangled-name='PyInterpreterState_Get' filepath='Python/pystate.c' line='421' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Get'>
-      <return type-id='type-id-311'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='./Python/dynload_shlib.c' comp-dir-path='/src' language='LANG_C99'>
+
+    <array-type-def dimensions='1' type-id='type-id-3' size-in-bits='infinite' id='type-id-704'>
+      <subrange length='infinite' id='type-id-18'/>
+
+    </array-type-def>
+    <var-decl name='_PyImport_DynLoadFiletab' type-id='type-id-704' visibility='default' filepath='./Python/importdl.h' line='9' column='1'/>
+    <function-decl name='dlsym' mangled-name='dlsym' filepath='/usr/include/dlfcn.h' line='64' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_DeleteExceptMain' mangled-name='_PyInterpreterState_DeleteExceptMain' filepath='Python/pystate.c' line='381' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_DeleteExceptMain'>
-      <parameter type-id='type-id-650' name='runtime' filepath='Python/pystate.c' line='381' column='1'/>
+    <function-decl name='dlerror' mangled-name='dlerror' filepath='/usr/include/dlfcn.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_Delete' mangled-name='PyInterpreterState_Delete' filepath='Python/pystate.c' line='335' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Delete'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='335' column='1'/>
+    <function-decl name='dlopen' mangled-name='dlopen' filepath='/usr/include/dlfcn.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_Clear' mangled-name='PyInterpreterState_Clear' filepath='Python/pystate.c' line='277' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_Clear'>
-      <parameter type-id='type-id-311' name='interp' filepath='Python/pystate.c' line='277' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='./Modules/getpath.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_Py_wfopen' mangled-name='_Py_wfopen' filepath='./Include/cpython/fileutils.h' line='94' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyInterpreterState_New' mangled-name='PyInterpreterState_New' filepath='Python/pystate.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInterpreterState_New'>
-      <return type-id='type-id-311'/>
+    <function-decl name='_Py_FindEnvConfigValue' mangled-name='_Py_FindEnvConfigValue' filepath='./Include/internal/pycore_pathconfig.h' line='57' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyInterpreterState_Enable' mangled-name='_PyInterpreterState_Enable' filepath='Python/pystate.c' line='171' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyInterpreterState_Enable'>
-      <parameter type-id='type-id-650' name='runtime' filepath='Python/pystate.c' line='171' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='_Py_EncodeLocaleRaw' mangled-name='_Py_EncodeLocaleRaw' filepath='./Include/fileutils.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyRuntimeState_ReInitThreads' mangled-name='_PyRuntimeState_ReInitThreads' filepath='Python/pystate.c' line='131' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntimeState_ReInitThreads'>
-      <parameter type-id='type-id-650' name='runtime' filepath='Python/pystate.c' line='131' column='1'/>
+    <function-decl name='__wcscpy_alias' mangled-name='wcscpy' filepath='/usr/include/x86_64-linux-gnu/bits/wchar2.h' line='147' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyRuntimeState_Fini' mangled-name='_PyRuntimeState_Fini' filepath='Python/pystate.c' line='106' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntimeState_Fini'>
-      <parameter type-id='type-id-650' name='runtime' filepath='Python/pystate.c' line='106' column='1'/>
+    <function-decl name='__wcscat_alias' mangled-name='wcscat' filepath='/usr/include/x86_64-linux-gnu/bits/wchar2.h' line='241' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyRuntimeState_Init' mangled-name='_PyRuntimeState_Init' filepath='Python/pystate.c' line='92' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyRuntimeState_Init'>
-      <parameter type-id='type-id-650' name='runtime' filepath='Python/pystate.c' line='92' column='1'/>
-      <return type-id='type-id-592'/>
+    <function-decl name='__wcsncat_alias' mangled-name='wcsncat' filepath='/usr/include/x86_64-linux-gnu/bits/wchar2.h' line='257' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/pythonrun.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyRun_InteractiveLoop' mangled-name='PyRun_InteractiveLoop' filepath='Python/pythonrun.c' line='1871' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveLoop'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pylifecycle.c' line='2471' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pylifecycle.c' line='2471' column='1'/>
+  <abi-instr version='1.0' address-size='64' path='Modules/main.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='Py_BytesMain' mangled-name='Py_BytesMain' filepath='Modules/main.c' line='724' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_BytesMain'>
+      <parameter type-id='type-id-8' name='argc' filepath='Modules/main.c' line='724' column='1'/>
+      <parameter type-id='type-id-304' name='argv' filepath='Modules/main.c' line='724' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyRun_InteractiveOne' mangled-name='PyRun_InteractiveOne' filepath='Python/pythonrun.c' line='1864' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveOne'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pylifecycle.c' line='2471' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pylifecycle.c' line='2471' column='1'/>
+    <function-decl name='Py_Main' mangled-name='Py_Main' filepath='Modules/main.c' line='712' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Main'>
+      <parameter type-id='type-id-8' name='argc' filepath='Modules/main.c' line='712' column='1'/>
+      <parameter type-id='type-id-407' name='argv' filepath='Modules/main.c' line='712' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='Py_CompileStringFlags' mangled-name='Py_CompileStringFlags' filepath='Python/pythonrun.c' line='1856' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_CompileStringFlags'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1856' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1856' column='1'/>
-      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1856' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1857' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='Py_CompileString' mangled-name='Py_CompileString' filepath='Python/pythonrun.c' line='1849' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_CompileString'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1849' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1849' column='1'/>
-      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1849' column='1'/>
-      <return type-id='type-id-100'/>
-    </function-decl>
-    <function-decl name='PyRun_SimpleString' mangled-name='PyRun_SimpleString' filepath='Python/pythonrun.c' line='1842' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleString'>
-      <parameter type-id='type-id-3' name='where' filepath='Python/ceval.c' line='5684' column='1'/>
+    <function-decl name='Py_RunMain' mangled-name='Py_RunMain' filepath='Modules/main.c' line='673' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_RunMain'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyRun_String' mangled-name='PyRun_String' filepath='Python/pythonrun.c' line='1835' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_String'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1835' column='1'/>
-      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1835' column='1'/>
-      <parameter type-id='type-id-100' name='g' filepath='Python/pythonrun.c' line='1835' column='1'/>
-      <parameter type-id='type-id-100' name='l' filepath='Python/pythonrun.c' line='1835' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyImport_Fini2' mangled-name='_PyImport_Fini2' filepath='./Include/internal/pycore_pylifecycle.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_SimpleFileEx' mangled-name='PyRun_SimpleFileEx' filepath='Python/pythonrun.c' line='1827' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleFileEx'>
-      <parameter type-id='type-id-223' name='f' filepath='Python/pythonrun.c' line='1827' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1827' column='1'/>
-      <parameter type-id='type-id-8' name='c' filepath='Python/pythonrun.c' line='1827' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyPathConfig_ClearGlobal' mangled-name='_PyPathConfig_ClearGlobal' filepath='./Include/internal/pycore_pathconfig.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_SimpleFile' mangled-name='PyRun_SimpleFile' filepath='Python/pythonrun.c' line='1820' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleFile'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pylifecycle.c' line='2471' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pylifecycle.c' line='2471' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_HandleSystemExit' mangled-name='_Py_HandleSystemExit' filepath='./Include/internal/pycore_pylifecycle.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_FileFlags' mangled-name='PyRun_FileFlags' filepath='Python/pythonrun.c' line='1812' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_FileFlags'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1812' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1812' column='1'/>
-      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1812' column='1'/>
-      <parameter type-id='type-id-100' name='g' filepath='Python/pythonrun.c' line='1812' column='1'/>
-      <parameter type-id='type-id-100' name='l' filepath='Python/pythonrun.c' line='1812' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1813' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyImport_GetImporter' mangled-name='PyImport_GetImporter' filepath='./Include/import.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_FileEx' mangled-name='PyRun_FileEx' filepath='Python/pythonrun.c' line='1805' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_FileEx'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1805' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1805' column='1'/>
-      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1805' column='1'/>
-      <parameter type-id='type-id-100' name='g' filepath='Python/pythonrun.c' line='1805' column='1'/>
-      <parameter type-id='type-id-100' name='l' filepath='Python/pythonrun.c' line='1805' column='1'/>
-      <parameter type-id='type-id-8' name='c' filepath='Python/pythonrun.c' line='1805' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyRun_SimpleStringFlags' mangled-name='PyRun_SimpleStringFlags' filepath='./Include/pythonrun.h' line='11' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_File' mangled-name='PyRun_File' filepath='Python/pythonrun.c' line='1798' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_File'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1798' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1798' column='1'/>
-      <parameter type-id='type-id-8' name='s' filepath='Python/pythonrun.c' line='1798' column='1'/>
-      <parameter type-id='type-id-100' name='g' filepath='Python/pythonrun.c' line='1798' column='1'/>
-      <parameter type-id='type-id-100' name='l' filepath='Python/pythonrun.c' line='1798' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='Py_MakePendingCalls' mangled-name='Py_MakePendingCalls' filepath='./Include/ceval.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_AnyFileFlags' mangled-name='PyRun_AnyFileFlags' filepath='Python/pythonrun.c' line='1791' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFileFlags'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1791' column='1'/>
-      <parameter type-id='type-id-3' name='name' filepath='Python/pythonrun.c' line='1791' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1791' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyRun_SimpleFileExFlags' mangled-name='PyRun_SimpleFileExFlags' filepath='./Include/pythonrun.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_AnyFileEx' mangled-name='PyRun_AnyFileEx' filepath='Python/pythonrun.c' line='1784' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFileEx'>
-      <parameter type-id='type-id-223' name='f' filepath='Python/pythonrun.c' line='1827' column='1'/>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pythonrun.c' line='1827' column='1'/>
-      <parameter type-id='type-id-8' name='c' filepath='Python/pythonrun.c' line='1827' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyOS_setsig' mangled-name='PyOS_setsig' filepath='./Include/pylifecycle.h' line='66' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_AnyFile' mangled-name='PyRun_AnyFile' filepath='Python/pythonrun.c' line='1777' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFile'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pylifecycle.c' line='2471' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pylifecycle.c' line='2471' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='getpid' mangled-name='getpid' filepath='/usr/include/unistd.h' line='628' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyParser_SimpleParseString' mangled-name='PyParser_SimpleParseString' filepath='Python/pythonrun.c' line='1770' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_SimpleParseString'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1770' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1770' column='1'/>
-      <return type-id='type-id-11'/>
+    <function-decl name='kill' mangled-name='kill' filepath='/usr/include/signal.h' line='112' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyParser_SimpleParseFile' mangled-name='PyParser_SimpleParseFile' filepath='Python/pythonrun.c' line='1763' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_SimpleParseFile'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1763' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='1763' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1763' column='1'/>
-      <return type-id='type-id-11'/>
+    <function-decl name='_Py_PreInitializeFromPyArgv' mangled-name='_Py_PreInitializeFromPyArgv' filepath='./Include/internal/pycore_pylifecycle.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyParser_SetError' mangled-name='PyParser_SetError' filepath='Python/pythonrun.c' line='1584' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_SetError'>
-      <parameter type-id='type-id-278' name='err' filepath='Python/pythonrun.c' line='1584' column='1'/>
+    <function-decl name='PyConfig_SetArgv' mangled-name='PyConfig_SetArgv' filepath='./Include/cpython/initconfig.h' line='443' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyParser_ClearError' mangled-name='PyParser_ClearError' filepath='Python/pythonrun.c' line='1578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ClearError'>
-      <parameter type-id='type-id-278' name='err' filepath='Python/pythonrun.c' line='1584' column='1'/>
+    <function-decl name='PyConfig_SetBytesArgv' mangled-name='PyConfig_SetBytesArgv' filepath='./Include/cpython/initconfig.h' line='439' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyParser_SimpleParseStringFlagsFilename' mangled-name='PyParser_SimpleParseStringFlagsFilename' filepath='Python/pythonrun.c' line='1562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_SimpleParseStringFlagsFilename'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1562' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='1562' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1563' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Python/pythonrun.c' line='1563' column='1'/>
-      <return type-id='type-id-11'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='Modules/gcmodule.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyObject_GC_IsFinalized' mangled-name='PyObject_GC_IsFinalized' filepath='Modules/gcmodule.c' line='2342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_IsFinalized'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1588' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyParser_SimpleParseStringFlags' mangled-name='PyParser_SimpleParseStringFlags' filepath='Python/pythonrun.c' line='1550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_SimpleParseStringFlags'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1550' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1550' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Python/pythonrun.c' line='1550' column='1'/>
-      <return type-id='type-id-11'/>
+    <function-decl name='PyObject_GC_IsTracked' mangled-name='PyObject_GC_IsTracked' filepath='Modules/gcmodule.c' line='2333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_IsTracked'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1588' column='1'/>
+      <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='PyParser_SimpleParseFileFlags' mangled-name='PyParser_SimpleParseFileFlags' filepath='Python/pythonrun.c' line='1534' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_SimpleParseFileFlags'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1534' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='1534' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1534' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Python/pythonrun.c' line='1534' column='1'/>
-      <return type-id='type-id-11'/>
+    <function-decl name='PyObject_GC_Del' mangled-name='PyObject_GC_Del' filepath='Modules/gcmodule.c' line='2318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_Del'>
+      <parameter type-id='type-id-32' name='op' filepath='Modules/gcmodule.c' line='2318' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyParser_ASTFromFile' mangled-name='PyParser_ASTFromFile' filepath='Python/pythonrun.c' line='1515' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ASTFromFile'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1515' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='1515' column='1'/>
-      <parameter type-id='type-id-3' name='enc' filepath='Python/pythonrun.c' line='1515' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1516' column='1'/>
-      <parameter type-id='type-id-3' name='ps1' filepath='Python/pythonrun.c' line='1516' column='1'/>
-      <parameter type-id='type-id-3' name='ps2' filepath='Python/pythonrun.c' line='1517' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1517' column='1'/>
-      <parameter type-id='type-id-227' name='errcode' filepath='Python/pythonrun.c' line='1517' column='1'/>
-      <parameter type-id='type-id-230' name='arena' filepath='Python/pythonrun.c' line='1518' column='1'/>
-      <return type-id='type-id-203'/>
+    <function-decl name='_PyObject_GC_Resize' mangled-name='_PyObject_GC_Resize' filepath='Modules/gcmodule.c' line='2300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_Resize'>
+      <parameter type-id='type-id-497' name='op' filepath='Modules/gcmodule.c' line='2300' column='1'/>
+      <parameter type-id='type-id-15' name='nitems' filepath='Modules/gcmodule.c' line='2300' column='1'/>
+      <return type-id='type-id-497'/>
     </function-decl>
-    <function-decl name='PyParser_ASTFromFileObject' mangled-name='PyParser_ASTFromFileObject' filepath='Python/pythonrun.c' line='1483' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ASTFromFileObject'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1483' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/pythonrun.c' line='1483' column='1'/>
-      <parameter type-id='type-id-3' name='enc' filepath='Python/pythonrun.c' line='1483' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1484' column='1'/>
-      <parameter type-id='type-id-3' name='ps1' filepath='Python/pythonrun.c' line='1484' column='1'/>
-      <parameter type-id='type-id-3' name='ps2' filepath='Python/pythonrun.c' line='1485' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1485' column='1'/>
-      <parameter type-id='type-id-227' name='errcode' filepath='Python/pythonrun.c' line='1485' column='1'/>
-      <parameter type-id='type-id-230' name='arena' filepath='Python/pythonrun.c' line='1486' column='1'/>
-      <return type-id='type-id-203'/>
+    <function-decl name='_PyObject_GC_NewVar' mangled-name='_PyObject_GC_NewVar' filepath='Modules/gcmodule.c' line='2283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_NewVar'>
+      <parameter type-id='type-id-75' name='tp' filepath='Objects/object.c' line='174' column='1'/>
+      <parameter type-id='type-id-15' name='nitems' filepath='Objects/object.c' line='174' column='1'/>
+      <return type-id='type-id-497'/>
     </function-decl>
-    <function-decl name='PyParser_ASTFromString' mangled-name='PyParser_ASTFromString' filepath='Python/pythonrun.c' line='1469' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ASTFromString'>
-      <parameter type-id='type-id-3' name='s' filepath='Python/pythonrun.c' line='1469' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='1469' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1469' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1470' column='1'/>
-      <parameter type-id='type-id-230' name='arena' filepath='Python/pythonrun.c' line='1470' column='1'/>
-      <return type-id='type-id-203'/>
+    <function-decl name='_PyObject_GC_New' mangled-name='_PyObject_GC_New' filepath='Modules/gcmodule.c' line='2274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_New'>
+      <parameter type-id='type-id-75' name='tp' filepath='Modules/gcmodule.c' line='2274' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyParser_ASTFromStringObject' mangled-name='PyParser_ASTFromStringObject' filepath='Python/pythonrun.c' line='1439' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyParser_ASTFromStringObject'>
-      <parameter type-id='type-id-3' name='s' filepath='Python/pythonrun.c' line='1439' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/pythonrun.c' line='1439' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1439' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1440' column='1'/>
-      <parameter type-id='type-id-230' name='arena' filepath='Python/pythonrun.c' line='1440' column='1'/>
-      <return type-id='type-id-203'/>
+    <function-decl name='_PyObject_GC_Calloc' mangled-name='_PyObject_GC_Calloc' filepath='Modules/gcmodule.c' line='2268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_Calloc'>
+      <parameter type-id='type-id-191' name='basicsize' filepath='Modules/gcmodule.c' line='2268' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <class-decl name='symtable' size-in-bits='640' is-struct='yes' visibility='default' filepath='./Include/symtable.h' line='19' column='1' id='type-id-653'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='st_filename' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='20' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='st_cur' type-id='type-id-654' visibility='default' filepath='./Include/symtable.h' line='22' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='st_top' type-id='type-id-654' visibility='default' filepath='./Include/symtable.h' line='23' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='st_blocks' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='24' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='st_stack' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='26' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='st_global' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='27' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='st_nblocks' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='28' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='st_private' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='31' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='st_future' type-id='type-id-552' visibility='default' filepath='./Include/symtable.h' line='32' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='recursion_depth' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='34' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='608'>
-        <var-decl name='recursion_limit' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='35' column='1'/>
-      </data-member>
-    </class-decl>
-    <class-decl name='_symtable_entry' size-in-bits='832' is-struct='yes' visibility='default' filepath='./Include/symtable.h' line='38' column='1' id='type-id-655'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ob_base' type-id='type-id-110' visibility='default' filepath='./Include/symtable.h' line='39' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='ste_id' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='40' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='ste_symbols' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='41' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='ste_name' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='42' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='ste_varnames' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='43' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='ste_children' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='44' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='ste_directives' type-id='type-id-100' visibility='default' filepath='./Include/symtable.h' line='45' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='ste_type' type-id='type-id-656' visibility='default' filepath='./Include/symtable.h' line='46' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='544'>
-        <var-decl name='ste_nested' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='47' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='31'>
-        <var-decl name='ste_free' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='48' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='30'>
-        <var-decl name='ste_child_free' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='49' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='29'>
-        <var-decl name='ste_generator' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='51' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='28'>
-        <var-decl name='ste_coroutine' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='52' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='27'>
-        <var-decl name='ste_comprehension' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='53' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='26'>
-        <var-decl name='ste_varargs' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='54' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='25'>
-        <var-decl name='ste_varkeywords' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='55' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='24'>
-        <var-decl name='ste_returns_value' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='56' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='23'>
-        <var-decl name='ste_needs_class_closure' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='58' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='22'>
-        <var-decl name='ste_comp_iter_target' type-id='type-id-107' visibility='default' filepath='./Include/symtable.h' line='61' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='608'>
-        <var-decl name='ste_comp_iter_expr' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='62' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='ste_lineno' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='63' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='672'>
-        <var-decl name='ste_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='64' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='ste_opt_lineno' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='65' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='736'>
-        <var-decl name='ste_opt_col_offset' type-id='type-id-8' visibility='default' filepath='./Include/symtable.h' line='66' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='ste_table' type-id='type-id-657' visibility='default' filepath='./Include/symtable.h' line='67' column='1'/>
-      </data-member>
-    </class-decl>
-    <enum-decl name='_block_type' filepath='./Include/symtable.h' line='14' column='1' id='type-id-658'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='FunctionBlock' value='0'/>
-      <enumerator name='ClassBlock' value='1'/>
-      <enumerator name='ModuleBlock' value='2'/>
-    </enum-decl>
-    <typedef-decl name='_Py_block_ty' type-id='type-id-658' filepath='./Include/symtable.h' line='15' column='1' id='type-id-656'/>
-    <pointer-type-def type-id='type-id-653' size-in-bits='64' id='type-id-657'/>
-    <pointer-type-def type-id='type-id-655' size-in-bits='64' id='type-id-654'/>
-    <function-decl name='Py_SymtableString' mangled-name='Py_SymtableString' filepath='Python/pythonrun.c' line='1424' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SymtableString'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1424' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='1424' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1424' column='1'/>
-      <return type-id='type-id-657'/>
-    </function-decl>
-    <function-decl name='_Py_SymtableStringObjectFlags' mangled-name='_Py_SymtableStringObjectFlags' filepath='Python/pythonrun.c' line='1397' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_SymtableStringObjectFlags'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1397' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/pythonrun.c' line='1397' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1397' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1397' column='1'/>
-      <return type-id='type-id-657'/>
-    </function-decl>
-    <function-decl name='Py_SymtableStringObject' mangled-name='Py_SymtableStringObject' filepath='Python/pythonrun.c' line='1390' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_SymtableStringObject'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1390' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/pythonrun.c' line='1390' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1390' column='1'/>
-      <return type-id='type-id-657'/>
-    </function-decl>
-    <function-decl name='_Py_SourceAsString' mangled-name='_Py_SourceAsString' filepath='Python/pythonrun.c' line='1341' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_SourceAsString'>
-      <parameter type-id='type-id-100' name='cmd' filepath='Python/pythonrun.c' line='1341' column='1'/>
-      <parameter type-id='type-id-3' name='funcname' filepath='Python/pythonrun.c' line='1341' column='1'/>
-      <parameter type-id='type-id-3' name='what' filepath='Python/pythonrun.c' line='1341' column='1'/>
-      <parameter type-id='type-id-226' name='cf' filepath='Python/pythonrun.c' line='1341' column='1'/>
-      <parameter type-id='type-id-303' name='cmd_copy' filepath='Python/pythonrun.c' line='1341' column='1'/>
-      <return type-id='type-id-3'/>
+    <function-decl name='_PyObject_GC_Malloc' mangled-name='_PyObject_GC_Malloc' filepath='Modules/gcmodule.c' line='2262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_Malloc'>
+      <parameter type-id='type-id-191' name='basicsize' filepath='Modules/gcmodule.c' line='2268' column='1'/>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyObject_IS_GC' mangled-name='PyObject_IS_GC' filepath='Modules/gcmodule.c' line='2217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IS_GC'>
+      <parameter type-id='type-id-100' name='s' filepath='Objects/abstract.c' line='1588' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyObject_GC_UnTrack' mangled-name='PyObject_GC_UnTrack' filepath='Modules/gcmodule.c' line='2205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_UnTrack'>
+      <parameter type-id='type-id-32' name='op_raw' filepath='Modules/gcmodule.c' line='2205' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_CompileStringExFlags' mangled-name='Py_CompileStringExFlags' filepath='Python/pythonrun.c' line='1320' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_CompileStringExFlags'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1320' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='1320' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1320' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1321' column='1'/>
-      <parameter type-id='type-id-8' name='optimize' filepath='Python/pythonrun.c' line='1321' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='PyObject_GC_Track' mangled-name='PyObject_GC_Track' filepath='Modules/gcmodule.c' line='2186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_Track'>
+      <parameter type-id='type-id-32' name='op_raw' filepath='Modules/gcmodule.c' line='2186' column='1'/>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_CompileStringObject' mangled-name='Py_CompileStringObject' filepath='Python/pythonrun.c' line='1289' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_CompileStringObject'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1289' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/pythonrun.c' line='1289' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1289' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1290' column='1'/>
-      <parameter type-id='type-id-8' name='optimize' filepath='Python/pythonrun.c' line='1290' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyGC_CollectNoFail' mangled-name='_PyGC_CollectNoFail' filepath='Modules/gcmodule.c' line='2090' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGC_CollectNoFail'>
+      <return type-id='type-id-15'/>
     </function-decl>
-    <function-decl name='PyRun_FileExFlags' mangled-name='PyRun_FileExFlags' filepath='Python/pythonrun.c' line='1150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_FileExFlags'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='1150' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='1150' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1150' column='1'/>
-      <parameter type-id='type-id-100' name='globals' filepath='Python/pythonrun.c' line='1150' column='1'/>
-      <parameter type-id='type-id-100' name='locals' filepath='Python/pythonrun.c' line='1151' column='1'/>
-      <parameter type-id='type-id-8' name='closeit' filepath='Python/pythonrun.c' line='1151' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1151' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyGC_CollectIfEnabled' mangled-name='_PyGC_CollectIfEnabled' filepath='Modules/gcmodule.c' line='2084' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGC_CollectIfEnabled'>
+      <return type-id='type-id-15'/>
+    </function-decl>
+    <function-decl name='PyGC_Collect' mangled-name='PyGC_Collect' filepath='Modules/gcmodule.c' line='2057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGC_Collect'>
+      <return type-id='type-id-15'/>
     </function-decl>
-    <function-decl name='PyRun_StringFlags' mangled-name='PyRun_StringFlags' filepath='Python/pythonrun.c' line='1081' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_StringFlags'>
-      <parameter type-id='type-id-3' name='str' filepath='Python/pythonrun.c' line='1081' column='1'/>
-      <parameter type-id='type-id-8' name='start' filepath='Python/pythonrun.c' line='1081' column='1'/>
-      <parameter type-id='type-id-100' name='globals' filepath='Python/pythonrun.c' line='1081' column='1'/>
-      <parameter type-id='type-id-100' name='locals' filepath='Python/pythonrun.c' line='1082' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='1082' column='1'/>
+    <function-decl name='PyInit_gc' mangled-name='PyInit_gc' filepath='Modules/gcmodule.c' line='2012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_gc'>
       <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='PyErr_Display' mangled-name='PyErr_Display' filepath='Python/pythonrun.c' line='1064' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Display'>
-      <parameter type-id='type-id-100' name='type' filepath='Python/errors.c' line='68' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Python/errors.c' line='68' column='1'/>
-      <parameter type-id='type-id-100' name='traceback' filepath='Python/errors.c' line='68' column='1'/>
+    <typedef-decl name='GCState' type-id='type-id-319' filepath='Modules/gcmodule.c' line='36' column='1' id='type-id-705'/>
+    <pointer-type-def type-id='type-id-705' size-in-bits='64' id='type-id-706'/>
+    <function-decl name='_PyGC_InitState' mangled-name='_PyGC_InitState' filepath='Modules/gcmodule.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGC_InitState'>
+      <parameter type-id='type-id-706' name='gcstate' filepath='Modules/gcmodule.c' line='132' column='1'/>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyErr_Display' mangled-name='_PyErr_Display' filepath='Python/pythonrun.c' line='1026' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Display'>
-      <parameter type-id='type-id-100' name='file' filepath='Python/pythonrun.c' line='1026' column='1'/>
-      <parameter type-id='type-id-100' name='exception' filepath='Python/pythonrun.c' line='1026' column='1'/>
-      <parameter type-id='type-id-100' name='value' filepath='Python/pythonrun.c' line='1026' column='1'/>
-      <parameter type-id='type-id-100' name='tb' filepath='Python/pythonrun.c' line='1026' column='1'/>
+    <function-decl name='PyErr_WarnExplicitFormat' mangled-name='PyErr_WarnExplicitFormat' filepath='./Include/warnings.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_Print' mangled-name='PyErr_Print' filepath='Python/pythonrun.c' line='831' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_Print'>
+    <function-decl name='_Py_convert_optional_to_ssize_t' mangled-name='_Py_convert_optional_to_ssize_t' filepath='./Include/cpython/abstract.h' line='380' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyErr_PrintEx' mangled-name='PyErr_PrintEx' filepath='Python/pythonrun.c' line='824' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_PrintEx'>
-      <parameter type-id='type-id-8' name='new_limit' filepath='Python/ceval.c' line='765' column='1'/>
+    <function-decl name='_PyTime_GetMonotonicClock' mangled-name='_PyTime_GetMonotonicClock' filepath='./Include/pytime.h' line='180' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyErr_Print' mangled-name='_PyErr_Print' filepath='Python/pythonrun.c' line='818' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_Print'>
-      <parameter type-id='type-id-409' name='tstate' filepath='Python/pythonrun.c' line='818' column='1'/>
+    <function-decl name='_PyTime_AsSecondsDouble' mangled-name='_PyTime_AsSecondsDouble' filepath='./Include/pytime.h' line='107' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_HandleSystemExit' mangled-name='_Py_HandleSystemExit' filepath='Python/pythonrun.c' line='647' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_HandleSystemExit'>
-      <parameter type-id='type-id-227' name='exitcode_p' filepath='Python/pythonrun.c' line='647' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyTuple_MaybeUntrack' mangled-name='_PyTuple_MaybeUntrack' filepath='./Include/cpython/tupleobject.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_SimpleStringFlags' mangled-name='PyRun_SimpleStringFlags' filepath='Python/pythonrun.c' line='489' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleStringFlags'>
-      <parameter type-id='type-id-3' name='command' filepath='Python/pythonrun.c' line='489' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='489' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyFrame_ClearFreeList' mangled-name='_PyFrame_ClearFreeList' filepath='./Include/internal/pycore_gc.h' line='168' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_SimpleFileExFlags' mangled-name='PyRun_SimpleFileExFlags' filepath='Python/pythonrun.c' line='475' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_SimpleFileExFlags'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='475' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='475' column='1'/>
-      <parameter type-id='type-id-8' name='closeit' filepath='Python/pythonrun.c' line='475' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='476' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyTuple_ClearFreeList' mangled-name='_PyTuple_ClearFreeList' filepath='./Include/internal/pycore_gc.h' line='169' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_InteractiveOneFlags' mangled-name='PyRun_InteractiveOneFlags' filepath='Python/pythonrun.c' line='297' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveOneFlags'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='297' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='297' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='297' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyFloat_ClearFreeList' mangled-name='_PyFloat_ClearFreeList' filepath='./Include/internal/pycore_gc.h' line='170' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_InteractiveOneObject' mangled-name='PyRun_InteractiveOneObject' filepath='Python/pythonrun.c' line='284' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveOneObject'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='284' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/pythonrun.c' line='284' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='284' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyList_ClearFreeList' mangled-name='_PyList_ClearFreeList' filepath='./Include/internal/pycore_gc.h' line='171' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_InteractiveLoopFlags' mangled-name='PyRun_InteractiveLoopFlags' filepath='Python/pythonrun.c' line='95' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_InteractiveLoopFlags'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='95' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/pythonrun.c' line='95' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='95' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyDict_ClearFreeList' mangled-name='_PyDict_ClearFreeList' filepath='./Include/internal/pycore_gc.h' line='172' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyRun_AnyFileExFlags' mangled-name='PyRun_AnyFileExFlags' filepath='Python/pythonrun.c' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyRun_AnyFileExFlags'>
-      <parameter type-id='type-id-223' name='fp' filepath='Python/pythonrun.c' line='79' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/pythonrun.c' line='79' column='1'/>
-      <parameter type-id='type-id-8' name='closeit' filepath='Python/pythonrun.c' line='79' column='1'/>
-      <parameter type-id='type-id-226' name='flags' filepath='Python/pythonrun.c' line='80' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyAsyncGen_ClearFreeLists' mangled-name='_PyAsyncGen_ClearFreeLists' filepath='./Include/internal/pycore_gc.h' line='173' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyContext_ClearFreeList' mangled-name='_PyContext_ClearFreeList' filepath='./Include/internal/pycore_gc.h' line='174' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_MaybeUntrack' mangled-name='_PyDict_MaybeUntrack' filepath='./Include/cpython/dictobject.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/pytime.c' comp-dir-path='/src' language='LANG_C99'>
-    <typedef-decl name='__time_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='160' column='1' id='type-id-659'/>
-    <typedef-decl name='time_t' type-id='type-id-659' filepath='/usr/include/x86_64-linux-gnu/bits/types/time_t.h' line='7' column='1' id='type-id-660'/>
-    <class-decl name='tm' size-in-bits='448' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='7' column='1' id='type-id-661'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='tm_sec' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='9' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='tm_min' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='10' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='tm_hour' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='11' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='tm_mday' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='12' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='tm_mon' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='13' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='tm_year' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='14' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='tm_wday' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='15' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='224'>
-        <var-decl name='tm_yday' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='16' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='tm_isdst' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='17' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='tm_gmtoff' type-id='type-id-12' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='20' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='tm_zone' type-id='type-id-3' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_tm.h' line='21' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-661' size-in-bits='64' id='type-id-662'/>
-    <function-decl name='_PyTime_gmtime' mangled-name='_PyTime_gmtime' filepath='Python/pytime.c' line='1111' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_gmtime'>
-      <parameter type-id='type-id-660' name='t' filepath='Python/pytime.c' line='1111' column='1'/>
-      <parameter type-id='type-id-662' name='tm' filepath='Python/pytime.c' line='1111' column='1'/>
+  <abi-instr version='1.0' address-size='64' path='./Modules/posixmodule.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyInit_posix' mangled-name='PyInit_posix' filepath='./Modules/posixmodule.c' line='15616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_posix'>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_Py_Sigset_Converter' mangled-name='_Py_Sigset_Converter' filepath='./Modules/posixmodule.c' line='1435' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Sigset_Converter'>
+      <parameter type-id='type-id-100' name='obj' filepath='./Modules/posixmodule.c' line='1435' column='1'/>
+      <parameter type-id='type-id-32' name='addr' filepath='./Modules/posixmodule.c' line='1435' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyTime_localtime' mangled-name='_PyTime_localtime' filepath='Python/pytime.c' line='1073' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_localtime'>
-      <parameter type-id='type-id-660' name='t' filepath='Python/pytime.c' line='1111' column='1'/>
-      <parameter type-id='type-id-662' name='tm' filepath='Python/pytime.c' line='1111' column='1'/>
+    <typedef-decl name='gid_t' type-id='type-id-699' filepath='/usr/include/x86_64-linux-gnu/sys/types.h' line='64' column='1' id='type-id-707'/>
+    <pointer-type-def type-id='type-id-707' size-in-bits='64' id='type-id-708'/>
+    <function-decl name='_Py_Gid_Converter' mangled-name='_Py_Gid_Converter' filepath='./Modules/posixmodule.c' line='748' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Gid_Converter'>
+      <parameter type-id='type-id-100' name='obj' filepath='./Modules/posixmodule.c' line='748' column='1'/>
+      <parameter type-id='type-id-708' name='p' filepath='./Modules/posixmodule.c' line='748' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyTime_Init' mangled-name='_PyTime_Init' filepath='Python/pytime.c' line='1054' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_Init'>
+    <typedef-decl name='uid_t' type-id='type-id-698' filepath='/usr/include/x86_64-linux-gnu/sys/types.h' line='79' column='1' id='type-id-709'/>
+    <pointer-type-def type-id='type-id-709' size-in-bits='64' id='type-id-710'/>
+    <function-decl name='_Py_Uid_Converter' mangled-name='_Py_Uid_Converter' filepath='./Modules/posixmodule.c' line='642' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Uid_Converter'>
+      <parameter type-id='type-id-100' name='obj' filepath='./Modules/posixmodule.c' line='642' column='1'/>
+      <parameter type-id='type-id-710' name='p' filepath='./Modules/posixmodule.c' line='642' column='1'/>
       <return type-id='type-id-8'/>
     </function-decl>
-    <typedef-decl name='_PyTime_t' type-id='type-id-316' filepath='./Include/pytime.h' line='19' column='1' id='type-id-663'/>
-    <function-decl name='_PyTime_GetPerfCounter' mangled-name='_PyTime_GetPerfCounter' filepath='Python/pytime.c' line='1043' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetPerfCounter'>
-      <return type-id='type-id-663'/>
+    <function-decl name='PyOS_AfterFork' mangled-name='PyOS_AfterFork' filepath='./Modules/posixmodule.c' line='608' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_AfterFork'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-663' size-in-bits='64' id='type-id-664'/>
-    <class-decl name='__anonymous_struct__' size-in-bits='192' is-struct='yes' is-anonymous='yes' naming-typedef-id='type-id-665' visibility='default' filepath='./Include/pytime.h' line='184' column='1' id='type-id-666'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='implementation' type-id='type-id-3' visibility='default' filepath='./Include/pytime.h' line='185' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='monotonic' type-id='type-id-8' visibility='default' filepath='./Include/pytime.h' line='186' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='adjustable' type-id='type-id-8' visibility='default' filepath='./Include/pytime.h' line='187' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='resolution' type-id='type-id-441' visibility='default' filepath='./Include/pytime.h' line='188' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='_Py_clock_info_t' type-id='type-id-666' filepath='./Include/pytime.h' line='189' column='1' id='type-id-665'/>
-    <pointer-type-def type-id='type-id-665' size-in-bits='64' id='type-id-667'/>
-    <function-decl name='_PyTime_GetPerfCounterWithInfo' mangled-name='_PyTime_GetPerfCounterWithInfo' filepath='Python/pytime.c' line='1032' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetPerfCounterWithInfo'>
-      <parameter type-id='type-id-664' name='t' filepath='Python/pytime.c' line='1032' column='1'/>
-      <parameter type-id='type-id-667' name='info' filepath='Python/pytime.c' line='1032' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyOS_AfterFork_Child' mangled-name='PyOS_AfterFork_Child' filepath='./Modules/posixmodule.c' line='578' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_AfterFork_Child'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_GetMonotonicClockWithInfo' mangled-name='_PyTime_GetMonotonicClockWithInfo' filepath='Python/pytime.c' line='952' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetMonotonicClockWithInfo'>
-      <parameter type-id='type-id-664' name='t' filepath='Python/pytime.c' line='1032' column='1'/>
-      <parameter type-id='type-id-667' name='info' filepath='Python/pytime.c' line='1032' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyOS_BeforeFork' mangled-name='PyOS_BeforeFork' filepath='./Modules/posixmodule.c' line='561' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_BeforeFork'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_GetMonotonicClock' mangled-name='_PyTime_GetMonotonicClock' filepath='Python/pytime.c' line='940' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetMonotonicClock'>
-      <return type-id='type-id-663'/>
+    <function-decl name='PyOS_AfterFork_Parent' mangled-name='PyOS_AfterFork_Parent' filepath='./Modules/posixmodule.c' line='569' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_AfterFork_Parent'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_GetSystemClockWithInfo' mangled-name='_PyTime_GetSystemClockWithInfo' filepath='Python/pytime.c' line='780' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetSystemClockWithInfo'>
-      <parameter type-id='type-id-664' name='t' filepath='Python/pytime.c' line='1032' column='1'/>
-      <parameter type-id='type-id-667' name='info' filepath='Python/pytime.c' line='1032' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyLong_FromUid' mangled-name='_PyLong_FromUid' filepath='./Modules/posixmodule.c' line='626' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromUid'>
+      <parameter type-id='type-id-709' name='uid' filepath='./Modules/posixmodule.c' line='626' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <function-decl name='_PyTime_GetSystemClock' mangled-name='_PyTime_GetSystemClock' filepath='Python/pytime.c' line='769' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_GetSystemClock'>
-      <return type-id='type-id-663'/>
+    <function-decl name='_PyLong_FromGid' mangled-name='_PyLong_FromGid' filepath='./Modules/posixmodule.c' line='634' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromGid'>
+      <parameter type-id='type-id-707' name='gid' filepath='./Modules/posixmodule.c' line='634' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <class-decl name='timespec' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h' line='10' column='1' id='type-id-668'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='tv_sec' type-id='type-id-659' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h' line='12' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='tv_nsec' type-id='type-id-669' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h' line='16' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='__syscall_slong_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='196' column='1' id='type-id-669'/>
-    <pointer-type-def type-id='type-id-668' size-in-bits='64' id='type-id-670'/>
-    <function-decl name='_PyTime_AsTimespec' mangled-name='_PyTime_AsTimespec' filepath='Python/pytime.c' line='636' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsTimespec'>
-      <parameter type-id='type-id-663' name='t' filepath='Python/pytime.c' line='636' column='1'/>
-      <parameter type-id='type-id-670' name='ts' filepath='Python/pytime.c' line='636' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyOS_FSPath' mangled-name='PyOS_FSPath' filepath='./Modules/posixmodule.c' line='14182' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_FSPath'>
+      <parameter type-id='type-id-100' name='path' filepath='./Modules/posixmodule.c' line='14182' column='1'/>
+      <return type-id='type-id-100'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-660' size-in-bits='64' id='type-id-671'/>
-    <enum-decl name='__anonymous_enum__' is-anonymous='yes' filepath='./Include/pytime.h' line='23' column='1' id='type-id-672'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='_PyTime_ROUND_FLOOR' value='0'/>
-      <enumerator name='_PyTime_ROUND_CEILING' value='1'/>
-      <enumerator name='_PyTime_ROUND_HALF_EVEN' value='2'/>
-      <enumerator name='_PyTime_ROUND_UP' value='3'/>
-      <enumerator name='_PyTime_ROUND_TIMEOUT' value='3'/>
-    </enum-decl>
-    <typedef-decl name='_PyTime_round_t' type-id='type-id-672' filepath='./Include/pytime.h' line='43' column='1' id='type-id-673'/>
-    <function-decl name='_PyTime_AsTimevalTime_t' mangled-name='_PyTime_AsTimevalTime_t' filepath='Python/pytime.c' line='616' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsTimevalTime_t'>
-      <parameter type-id='type-id-663' name='t' filepath='Python/pytime.c' line='616' column='1'/>
-      <parameter type-id='type-id-671' name='p_secs' filepath='Python/pytime.c' line='616' column='1'/>
-      <parameter type-id='type-id-227' name='us' filepath='Python/pytime.c' line='616' column='1'/>
-      <parameter type-id='type-id-673' name='round' filepath='Python/pytime.c' line='617' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='qsort' mangled-name='qsort' filepath='/usr/include/stdlib.h' line='830' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <class-decl name='timeval' size-in-bits='128' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h' line='8' column='1' id='type-id-674'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='tv_sec' type-id='type-id-659' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h' line='10' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='tv_usec' type-id='type-id-675' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h' line='11' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='__suseconds_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='162' column='1' id='type-id-675'/>
-    <pointer-type-def type-id='type-id-674' size-in-bits='64' id='type-id-676'/>
-    <function-decl name='_PyTime_AsTimeval_noraise' mangled-name='_PyTime_AsTimeval_noraise' filepath='Python/pytime.c' line='610' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsTimeval_noraise'>
-      <parameter type-id='type-id-663' name='t' filepath='Python/pytime.c' line='610' column='1'/>
-      <parameter type-id='type-id-676' name='tv' filepath='Python/pytime.c' line='610' column='1'/>
-      <parameter type-id='type-id-673' name='round' filepath='Python/pytime.c' line='610' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyStructSequence_NewType' mangled-name='PyStructSequence_NewType' filepath='./Include/structseq.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_AsTimeval' mangled-name='_PyTime_AsTimeval' filepath='Python/pytime.c' line='604' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsTimeval'>
-      <parameter type-id='type-id-663' name='t' filepath='Python/pytime.c' line='610' column='1'/>
-      <parameter type-id='type-id-676' name='tv' filepath='Python/pytime.c' line='610' column='1'/>
-      <parameter type-id='type-id-673' name='round' filepath='Python/pytime.c' line='610' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='sysconf' mangled-name='sysconf' filepath='/usr/include/unistd.h' line='619' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_AsMicroseconds' mangled-name='_PyTime_AsMicroseconds' filepath='Python/pytime.c' line='533' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsMicroseconds'>
-      <parameter type-id='type-id-663' name='t' filepath='Python/pytime.c' line='533' column='1'/>
-      <parameter type-id='type-id-673' name='round' filepath='Python/pytime.c' line='533' column='1'/>
-      <return type-id='type-id-663'/>
+    <function-decl name='PyType_FromModuleAndSpec' mangled-name='PyType_FromModuleAndSpec' filepath='./Include/object.h' line='217' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_AsMilliseconds' mangled-name='_PyTime_AsMilliseconds' filepath='Python/pytime.c' line='527' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsMilliseconds'>
-      <parameter type-id='type-id-663' name='t' filepath='Python/pytime.c' line='533' column='1'/>
-      <parameter type-id='type-id-673' name='round' filepath='Python/pytime.c' line='533' column='1'/>
-      <return type-id='type-id-663'/>
+    <function-decl name='closedir' mangled-name='closedir' filepath='/usr/include/dirent.h' line='149' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_AsNanosecondsObject' mangled-name='_PyTime_AsNanosecondsObject' filepath='Python/pytime.c' line='473' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsNanosecondsObject'>
-      <parameter type-id='type-id-663' name='t' filepath='Python/pytime.c' line='473' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='rewinddir' mangled-name='rewinddir' filepath='/usr/include/dirent.h' line='209' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_AsSecondsDouble' mangled-name='_PyTime_AsSecondsDouble' filepath='Python/pytime.c' line='453' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_AsSecondsDouble'>
-      <parameter type-id='type-id-663' name='t' filepath='Python/pytime.c' line='453' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='PyErr_ResourceWarning' mangled-name='PyErr_ResourceWarning' filepath='./Include/warnings.h' line='23' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_FromMillisecondsObject' mangled-name='_PyTime_FromMillisecondsObject' filepath='Python/pytime.c' line='447' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromMillisecondsObject'>
-      <parameter type-id='type-id-664' name='t' filepath='Python/pytime.c' line='447' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='447' column='1'/>
-      <parameter type-id='type-id-673' name='round' filepath='Python/pytime.c' line='447' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='opendir' mangled-name='opendir' filepath='/usr/include/dirent.h' line='134' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_FromSecondsObject' mangled-name='_PyTime_FromSecondsObject' filepath='Python/pytime.c' line='441' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromSecondsObject'>
-      <parameter type-id='type-id-664' name='t' filepath='Python/pytime.c' line='447' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='447' column='1'/>
-      <parameter type-id='type-id-673' name='round' filepath='Python/pytime.c' line='447' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='fdopendir' mangled-name='fdopendir' filepath='/usr/include/dirent.h' line='141' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_FromTimeval' mangled-name='_PyTime_FromTimeval' filepath='Python/pytime.c' line='380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromTimeval'>
-      <parameter type-id='type-id-664' name='tp' filepath='Python/pytime.c' line='380' column='1'/>
-      <parameter type-id='type-id-676' name='tv' filepath='Python/pytime.c' line='380' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyArg_ParseStackAndKeywords_SizeT' mangled-name='_PyArg_ParseStackAndKeywords_SizeT' filepath='./Include/modsupport.h' line='116' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_FromTimespec' mangled-name='_PyTime_FromTimespec' filepath='Python/pytime.c' line='334' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromTimespec'>
-      <parameter type-id='type-id-664' name='tp' filepath='Python/pytime.c' line='334' column='1'/>
-      <parameter type-id='type-id-670' name='ts' filepath='Python/pytime.c' line='334' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='PyType_GetModule' mangled-name='PyType_GetModule' filepath='./Include/object.h' line='218' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_FromNanosecondsObject' mangled-name='_PyTime_FromNanosecondsObject' filepath='Python/pytime.c' line='268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromNanosecondsObject'>
-      <parameter type-id='type-id-664' name='tp' filepath='Python/pytime.c' line='268' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='268' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='memfd_create' mangled-name='memfd_create' filepath='/usr/include/x86_64-linux-gnu/bits/mman-shared.h' line='50' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_FromNanoseconds' mangled-name='_PyTime_FromNanoseconds' filepath='Python/pytime.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromNanoseconds'>
-      <parameter type-id='type-id-663' name='ns' filepath='Python/pytime.c' line='261' column='1'/>
-      <return type-id='type-id-663'/>
+    <function-decl name='listxattr' mangled-name='listxattr' filepath='/usr/include/x86_64-linux-gnu/sys/xattr.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_FromSeconds' mangled-name='_PyTime_FromSeconds' filepath='Python/pytime.c' line='244' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_FromSeconds'>
-      <parameter type-id='type-id-8' name='seconds' filepath='Python/pytime.c' line='244' column='1'/>
-      <return type-id='type-id-663'/>
+    <function-decl name='flistxattr' mangled-name='flistxattr' filepath='/usr/include/x86_64-linux-gnu/sys/xattr.h' line='87' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-12' size-in-bits='64' id='type-id-677'/>
-    <function-decl name='_PyTime_ObjectToTimeval' mangled-name='_PyTime_ObjectToTimeval' filepath='Python/pytime.c' line='237' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_ObjectToTimeval'>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='237' column='1'/>
-      <parameter type-id='type-id-671' name='sec' filepath='Python/pytime.c' line='237' column='1'/>
-      <parameter type-id='type-id-677' name='usec' filepath='Python/pytime.c' line='237' column='1'/>
-      <parameter type-id='type-id-673' name='round' filepath='Python/pytime.c' line='238' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='llistxattr' mangled-name='llistxattr' filepath='/usr/include/x86_64-linux-gnu/sys/xattr.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_ObjectToTimespec' mangled-name='_PyTime_ObjectToTimespec' filepath='Python/pytime.c' line='230' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_ObjectToTimespec'>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='237' column='1'/>
-      <parameter type-id='type-id-671' name='sec' filepath='Python/pytime.c' line='237' column='1'/>
-      <parameter type-id='type-id-677' name='usec' filepath='Python/pytime.c' line='237' column='1'/>
-      <parameter type-id='type-id-673' name='round' filepath='Python/pytime.c' line='238' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='removexattr' mangled-name='removexattr' filepath='/usr/include/x86_64-linux-gnu/sys/xattr.h' line='92' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_ObjectToTime_t' mangled-name='_PyTime_ObjectToTime_t' filepath='Python/pytime.c' line='197' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_ObjectToTime_t'>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='197' column='1'/>
-      <parameter type-id='type-id-671' name='sec' filepath='Python/pytime.c' line='197' column='1'/>
-      <parameter type-id='type-id-673' name='round' filepath='Python/pytime.c' line='197' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='fremovexattr' mangled-name='fremovexattr' filepath='/usr/include/x86_64-linux-gnu/sys/xattr.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_FromTime_t' mangled-name='_PyLong_FromTime_t' filepath='Python/pytime.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromTime_t'>
-      <parameter type-id='type-id-660' name='t' filepath='Python/pytime.c' line='91' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='lremovexattr' mangled-name='lremovexattr' filepath='/usr/include/x86_64-linux-gnu/sys/xattr.h' line='97' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_AsTime_t' mangled-name='_PyLong_AsTime_t' filepath='Python/pytime.c' line='71' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_AsTime_t'>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/pytime.c' line='71' column='1'/>
-      <return type-id='type-id-660'/>
+    <function-decl name='setxattr' mangled-name='setxattr' filepath='/usr/include/x86_64-linux-gnu/sys/xattr.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTime_MulDiv' mangled-name='_PyTime_MulDiv' filepath='Python/pytime.c' line='53' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTime_MulDiv'>
-      <parameter type-id='type-id-663' name='ticks' filepath='Python/pytime.c' line='53' column='1'/>
-      <parameter type-id='type-id-663' name='mul' filepath='Python/pytime.c' line='53' column='1'/>
-      <parameter type-id='type-id-663' name='div' filepath='Python/pytime.c' line='53' column='1'/>
-      <return type-id='type-id-663'/>
+    <function-decl name='fsetxattr' mangled-name='fsetxattr' filepath='/usr/include/x86_64-linux-gnu/sys/xattr.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/bootstrap_hash.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='_PyOS_URandomNonblock' mangled-name='_PyOS_URandomNonblock' filepath='Python/bootstrap_hash.c' line='566' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_URandomNonblock'>
-      <parameter type-id='type-id-32' name='buffer' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='lsetxattr' mangled-name='lsetxattr' filepath='/usr/include/x86_64-linux-gnu/sys/xattr.h' line='48' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyOS_URandom' mangled-name='_PyOS_URandom' filepath='Python/bootstrap_hash.c' line='552' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_URandom'>
-      <parameter type-id='type-id-32' name='buffer' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Python/bootstrap_hash.c' line='566' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='getxattr' mangled-name='getxattr' filepath='/usr/include/x86_64-linux-gnu/sys/xattr.h' line='59' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/structmember.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyMember_SetOne' mangled-name='PyMember_SetOne' filepath='Python/structmember.c' line='100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMember_SetOne'>
-      <parameter type-id='type-id-7' name='addr' filepath='Python/structmember.c' line='100' column='1'/>
-      <parameter type-id='type-id-450' name='l' filepath='Python/structmember.c' line='100' column='1'/>
-      <parameter type-id='type-id-100' name='v' filepath='Python/structmember.c' line='100' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='fgetxattr' mangled-name='fgetxattr' filepath='/usr/include/x86_64-linux-gnu/sys/xattr.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='lgetxattr' mangled-name='lgetxattr' filepath='/usr/include/x86_64-linux-gnu/sys/xattr.h' line='65' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='getresgid' mangled-name='getresgid' filepath='/usr/include/unistd.h' line='738' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='getresuid' mangled-name='getresuid' filepath='/usr/include/unistd.h' line='733' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='setresgid' mangled-name='setresgid' filepath='/usr/include/unistd.h' line='748' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='setresuid' mangled-name='setresuid' filepath='/usr/include/unistd.h' line='743' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_device_encoding' mangled-name='_Py_device_encoding' filepath='./Include/cpython/fileutils.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='getloadavg' mangled-name='getloadavg' filepath='/usr/include/stdlib.h' line='1003' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='fpathconf' mangled-name='fpathconf' filepath='/usr/include/unistd.h' line='616' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='pathconf' mangled-name='pathconf' filepath='/usr/include/unistd.h' line='612' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='fstatvfs' mangled-name='fstatvfs64' filepath='/usr/include/x86_64-linux-gnu/sys/statvfs.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='statvfs' mangled-name='statvfs64' filepath='/usr/include/x86_64-linux-gnu/sys/statvfs.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='unsetenv' mangled-name='unsetenv' filepath='/usr/include/stdlib.h' line='657' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='truncate' mangled-name='truncate64' filepath='/usr/include/unistd.h' line='995' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyIndex_Check' mangled-name='PyIndex_Check' filepath='./Include/abstract.h' line='497' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__xmknodat' mangled-name='__xmknodat' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='441' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__xmknod' mangled-name='__xmknod' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='438' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='mkfifoat' mangled-name='mkfifoat' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='353' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='mkfifo' mangled-name='mkfifo' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='346' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='copy_file_range' mangled-name='copy_file_range' filepath='/usr/include/unistd.h' line='1107' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='pwrite' mangled-name='pwrite64' filepath='/usr/include/unistd.h' line='391' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyMember_GetOne' mangled-name='PyMember_GetOne' filepath='Python/structmember.c' line='8' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyMember_GetOne'>
-      <parameter type-id='type-id-3' name='addr' filepath='Python/structmember.c' line='8' column='1'/>
-      <parameter type-id='type-id-450' name='l' filepath='Python/structmember.c' line='8' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='pipe2' mangled-name='pipe2' filepath='/usr/include/unistd.h' line='422' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/symtable.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PySTEntry_Type' type-id='type-id-182' mangled-name='PySTEntry_Type' visibility='default' filepath='./Include/symtable.h' line='70' column='1' elf-symbol-id='PySTEntry_Type'/>
-    <typedef-decl name='PySTEntryObject' type-id='type-id-655' filepath='./Include/symtable.h' line='68' column='1' id='type-id-678'/>
-    <pointer-type-def type-id='type-id-678' size-in-bits='64' id='type-id-679'/>
-    <function-decl name='PyST_GetScope' mangled-name='PyST_GetScope' filepath='Python/symtable.c' line='403' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyST_GetScope'>
-      <parameter type-id='type-id-679' name='ste' filepath='Python/symtable.c' line='403' column='1'/>
-      <parameter type-id='type-id-100' name='name' filepath='Python/symtable.c' line='403' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='pipe' mangled-name='pipe' filepath='/usr/include/unistd.h' line='417' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySymtable_Lookup' mangled-name='PySymtable_Lookup' filepath='Python/symtable.c' line='371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySymtable_Lookup'>
-      <parameter type-id='type-id-657' name='st' filepath='Python/symtable.c' line='371' column='1'/>
-      <parameter type-id='type-id-32' name='key' filepath='Python/symtable.c' line='371' column='1'/>
-      <return type-id='type-id-679'/>
+    <function-decl name='_Py_set_inheritable' mangled-name='_Py_set_inheritable' filepath='./Include/cpython/fileutils.h' line='153' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySymtable_Free' mangled-name='PySymtable_Free' filepath='Python/symtable.c' line='362' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySymtable_Free'>
-      <parameter type-id='type-id-657' name='st' filepath='Python/symtable.c' line='362' column='1'/>
+    <function-decl name='sendfile' mangled-name='sendfile64' filepath='/usr/include/x86_64-linux-gnu/sys/sendfile.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySymtable_Build' mangled-name='PySymtable_Build' filepath='Python/symtable.c' line='349' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySymtable_Build'>
-      <parameter type-id='type-id-204' name='mod' filepath='Python/symtable.c' line='349' column='1'/>
-      <parameter type-id='type-id-3' name='filename_str' filepath='Python/symtable.c' line='349' column='1'/>
-      <parameter type-id='type-id-552' name='future' filepath='Python/symtable.c' line='349' column='1'/>
-      <return type-id='type-id-657'/>
+    <function-decl name='dup2' mangled-name='dup2' filepath='/usr/include/unistd.h' line='534' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySymtable_BuildObject' mangled-name='PySymtable_BuildObject' filepath='Python/symtable.c' line='261' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySymtable_BuildObject'>
-      <parameter type-id='type-id-204' name='mod' filepath='Python/symtable.c' line='261' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/symtable.c' line='261' column='1'/>
-      <parameter type-id='type-id-552' name='future' filepath='Python/symtable.c' line='261' column='1'/>
-      <return type-id='type-id-657'/>
+    <function-decl name='dup3' mangled-name='dup3' filepath='/usr/include/unistd.h' line='539' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='./Python/sysmodule.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PySys_FormatStderr' mangled-name='PySys_FormatStderr' filepath='./Python/sysmodule.c' line='3322' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_FormatStderr'>
-      <parameter type-id='type-id-3' name='format' filepath='./Python/sysmodule.c' line='3322' column='1'/>
-      <parameter is-variadic='yes'/>
+    <function-decl name='__openat_alias' mangled-name='openat64' filepath='/usr/include/x86_64-linux-gnu/bits/fcntl2.h' line='107' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_FormatStdout' mangled-name='PySys_FormatStdout' filepath='./Python/sysmodule.c' line='3312' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_FormatStdout'>
-      <parameter type-id='type-id-3' name='format' filepath='./Python/sysmodule.c' line='3322' column='1'/>
-      <parameter is-variadic='yes'/>
+    <function-decl name='__open_alias' mangled-name='open64' filepath='/usr/include/x86_64-linux-gnu/bits/fcntl2.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_WriteStderr' mangled-name='PySys_WriteStderr' filepath='./Python/sysmodule.c' line='3279' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_WriteStderr'>
-      <parameter type-id='type-id-3' name='format' filepath='./Python/sysmodule.c' line='3322' column='1'/>
-      <parameter is-variadic='yes'/>
+    <function-decl name='tcsetpgrp' mangled-name='tcsetpgrp' filepath='/usr/include/unistd.h' line='841' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_WriteStdout' mangled-name='PySys_WriteStdout' filepath='./Python/sysmodule.c' line='3269' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_WriteStdout'>
-      <parameter type-id='type-id-3' name='format' filepath='./Python/sysmodule.c' line='3322' column='1'/>
-      <parameter is-variadic='yes'/>
+    <function-decl name='_PyArg_ParseStack_SizeT' mangled-name='_PyArg_ParseStack_SizeT' filepath='./Include/modsupport.h' line='111' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_SetArgv' mangled-name='PySys_SetArgv' filepath='./Python/sysmodule.c' line='3176' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetArgv'>
-      <parameter type-id='type-id-8' name='argc' filepath='./Python/sysmodule.c' line='3176' column='1'/>
-      <parameter type-id='type-id-407' name='argv' filepath='./Python/sysmodule.c' line='3176' column='1'/>
+    <function-decl name='setpgid' mangled-name='setpgid' filepath='/usr/include/unistd.h' line='646' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_SetArgvEx' mangled-name='PySys_SetArgvEx' filepath='./Python/sysmodule.c' line='3132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetArgvEx'>
-      <parameter type-id='type-id-8' name='argc' filepath='./Python/sysmodule.c' line='3132' column='1'/>
-      <parameter type-id='type-id-407' name='argv' filepath='./Python/sysmodule.c' line='3132' column='1'/>
-      <parameter type-id='type-id-8' name='updatepath' filepath='./Python/sysmodule.c' line='3132' column='1'/>
+    <function-decl name='setsid' mangled-name='setsid' filepath='/usr/include/unistd.h' line='667' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_SetPath' mangled-name='PySys_SetPath' filepath='./Python/sysmodule.c' line='3100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetPath'>
-      <parameter type-id='type-id-501' name='path' filepath='Python/pathconfig.c' line='450' column='1'/>
+    <function-decl name='getsid' mangled-name='getsid' filepath='/usr/include/unistd.h' line='671' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_GetXOptions' mangled-name='PySys_GetXOptions' filepath='./Python/sysmodule.c' line='2314' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_GetXOptions'>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyArg_Parse_SizeT' mangled-name='_PyArg_Parse_SizeT' filepath='./Include/modsupport.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_AddXOption' mangled-name='PySys_AddXOption' filepath='./Python/sysmodule.c' line='2300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddXOption'>
-      <parameter type-id='type-id-501' name='s' filepath='./Python/sysmodule.c' line='2300' column='1'/>
+    <function-decl name='times' mangled-name='times' filepath='/usr/include/x86_64-linux-gnu/sys/times.h' line='46' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_HasWarnOptions' mangled-name='PySys_HasWarnOptions' filepath='./Python/sysmodule.c' line='2226' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_HasWarnOptions'>
-      <return type-id='type-id-8'/>
+    <function-decl name='symlinkat' mangled-name='symlinkat' filepath='/usr/include/unistd.h' line='815' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_AddWarnOption' mangled-name='PySys_AddWarnOption' filepath='./Python/sysmodule.c' line='2210' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddWarnOption'>
-      <parameter type-id='type-id-501' name='program_full_path' filepath='Python/pathconfig.c' line='527' column='1'/>
+    <function-decl name='symlink' mangled-name='symlink' filepath='/usr/include/unistd.h' line='802' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_AddWarnOptionUnicode' mangled-name='PySys_AddWarnOptionUnicode' filepath='./Python/sysmodule.c' line='2198' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddWarnOptionUnicode'>
-      <parameter type-id='type-id-100' name='m' filepath='Objects/moduleobject.c' line='556' column='1'/>
+    <function-decl name='wait' mangled-name='wait' filepath='/usr/include/x86_64-linux-gnu/sys/wait.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_ResetWarnOptions' mangled-name='PySys_ResetWarnOptions' filepath='./Python/sysmodule.c' line='2170' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_ResetWarnOptions'>
+    <function-decl name='waitpid' mangled-name='waitpid' filepath='/usr/include/x86_64-linux-gnu/sys/wait.h' line='100' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PySys_GetSizeOf' mangled-name='_PySys_GetSizeOf' filepath='./Python/sysmodule.c' line='1642' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySys_GetSizeOf'>
-      <parameter type-id='type-id-100' name='vv' filepath='Objects/longobject.c' line='707' column='1'/>
-      <return type-id='type-id-191'/>
+    <function-decl name='waitid' mangled-name='waitid' filepath='/usr/include/x86_64-linux-gnu/sys/wait.h' line='121' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_AddAuditHook' mangled-name='PySys_AddAuditHook' filepath='./Python/sysmodule.c' line='360' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_AddAuditHook'>
-      <parameter type-id='type-id-381' name='hook' filepath='./Python/sysmodule.c' line='360' column='1'/>
-      <parameter type-id='type-id-32' name='userData' filepath='./Python/sysmodule.c' line='360' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='wait4' mangled-name='wait4' filepath='/usr/include/x86_64-linux-gnu/sys/wait.h' line='142' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_Audit' mangled-name='PySys_Audit' filepath='./Python/sysmodule.c' line='306' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_Audit'>
-      <parameter type-id='type-id-3' name='event' filepath='./Python/sysmodule.c' line='306' column='1'/>
-      <parameter type-id='type-id-3' name='argFormat' filepath='./Python/sysmodule.c' line='306' column='1'/>
-      <parameter is-variadic='yes'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='wait3' mangled-name='wait3' filepath='/usr/include/x86_64-linux-gnu/sys/wait.h' line='136' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_SetObject' mangled-name='PySys_SetObject' filepath='./Python/sysmodule.c' line='134' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_SetObject'>
-      <parameter type-id='type-id-3' name='name' filepath='Python/codecs.c' line='622' column='1'/>
-      <parameter type-id='type-id-100' name='error' filepath='Python/codecs.c' line='622' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='setgid' mangled-name='setgid' filepath='/usr/include/unistd.h' line='717' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PySys_SetObjectId' mangled-name='_PySys_SetObjectId' filepath='./Python/sysmodule.c' line='110' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySys_SetObjectId'>
-      <parameter type-id='type-id-476' name='key' filepath='./Python/sysmodule.c' line='110' column='1'/>
-      <parameter type-id='type-id-100' name='v' filepath='./Python/sysmodule.c' line='110' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='setregid' mangled-name='setregid' filepath='/usr/include/unistd.h' line='722' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PySys_GetObject' mangled-name='PySys_GetObject' filepath='./Python/sysmodule.c' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PySys_GetObject'>
-      <parameter type-id='type-id-3' name='str' filepath='Objects/bytesobject.c' line='128' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='setreuid' mangled-name='setreuid' filepath='/usr/include/unistd.h' line='705' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PySys_GetObjectId' mangled-name='_PySys_GetObjectId' filepath='./Python/sysmodule.c' line='75' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySys_GetObjectId'>
-      <parameter type-id='type-id-476' name='key' filepath='./Python/sysmodule.c' line='75' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='setegid' mangled-name='setegid' filepath='/usr/include/unistd.h' line='727' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/thread.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyThread_GetInfo' mangled-name='PyThread_GetInfo' filepath='Python/thread.c' line='167' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_GetInfo'>
-      <return type-id='type-id-100'/>
+    <function-decl name='seteuid' mangled-name='seteuid' filepath='/usr/include/unistd.h' line='710' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-376' size-in-bits='64' id='type-id-680'/>
-    <function-decl name='PyThread_tss_is_created' mangled-name='PyThread_tss_is_created' filepath='Python/thread.c' line='138' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_is_created'>
-      <parameter type-id='type-id-680' name='key' filepath='Python/thread.c' line='138' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='setuid' mangled-name='setuid' filepath='/usr/include/unistd.h' line='700' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_tss_free' mangled-name='PyThread_tss_free' filepath='Python/thread.c' line='129' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_free'>
-      <parameter type-id='type-id-680' name='key' filepath='Python/thread.c' line='129' column='1'/>
+    <function-decl name='killpg' mangled-name='killpg' filepath='/usr/include/signal.h' line='119' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_tss_alloc' mangled-name='PyThread_tss_alloc' filepath='Python/thread.c' line='118' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_alloc'>
-      <return type-id='type-id-680'/>
+    <function-decl name='getuid' mangled-name='getuid' filepath='/usr/include/unistd.h' line='675' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_set_stacksize' mangled-name='PyThread_set_stacksize' filepath='Python/thread.c' line='102' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_set_stacksize'>
-      <parameter type-id='type-id-191' name='size' filepath='Python/thread.c' line='102' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='getlogin' mangled-name='getlogin' filepath='/usr/include/unistd.h' line='848' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_get_stacksize' mangled-name='PyThread_get_stacksize' filepath='Python/thread.c' line='91' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_stacksize'>
-      <return type-id='type-id-191'/>
+    <function-decl name='getppid' mangled-name='getppid' filepath='/usr/include/unistd.h' line='631' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_tss_get' mangled-name='PyThread_tss_get' filepath='Python/thread_pthread.h' line='893' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_get'>
-      <parameter type-id='type-id-680' name='key' filepath='Python/thread_pthread.h' line='893' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='setpgrp' mangled-name='setpgrp' filepath='/usr/include/unistd.h' line='660' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_tss_set' mangled-name='PyThread_tss_set' filepath='Python/thread_pthread.h' line='885' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_set'>
-      <parameter type-id='type-id-680' name='key' filepath='Python/thread_pthread.h' line='885' column='1'/>
-      <parameter type-id='type-id-32' name='value' filepath='Python/thread_pthread.h' line='885' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='getpgrp' mangled-name='getpgrp' filepath='/usr/include/unistd.h' line='634' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_tss_delete' mangled-name='PyThread_tss_delete' filepath='Python/thread_pthread.h' line='871' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_delete'>
-      <parameter type-id='type-id-680' name='key' filepath='Python/thread.c' line='129' column='1'/>
+    <function-decl name='getpgid' mangled-name='getpgid' filepath='/usr/include/unistd.h' line='639' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_tss_create' mangled-name='PyThread_tss_create' filepath='Python/thread_pthread.h' line='854' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_tss_create'>
-      <parameter type-id='type-id-680' name='key' filepath='Python/thread_pthread.h' line='854' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='initgroups' mangled-name='initgroups' filepath='/usr/include/grp.h' line='197' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_ReInitTLS' mangled-name='PyThread_ReInitTLS' filepath='Python/thread_pthread.h' line='843' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_ReInitTLS'>
+    <function-decl name='getgrouplist' mangled-name='getgrouplist' filepath='/usr/include/grp.h' line='186' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_get_key_value' mangled-name='PyThread_get_key_value' filepath='Python/thread_pthread.h' line='832' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_key_value'>
-      <parameter type-id='type-id-8' name='key' filepath='Python/thread_pthread.h' line='832' column='1'/>
-      <return type-id='type-id-32'/>
+    <function-decl name='getgid' mangled-name='getgid' filepath='/usr/include/unistd.h' line='681' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_set_key_value' mangled-name='PyThread_set_key_value' filepath='Python/thread_pthread.h' line='821' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_set_key_value'>
-      <parameter type-id='type-id-8' name='key' filepath='Python/thread_pthread.h' line='821' column='1'/>
-      <parameter type-id='type-id-32' name='value' filepath='Python/thread_pthread.h' line='821' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='geteuid' mangled-name='geteuid' filepath='/usr/include/unistd.h' line='678' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_delete_key_value' mangled-name='PyThread_delete_key_value' filepath='Python/thread_pthread.h' line='813' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_delete_key_value'>
-      <parameter type-id='type-id-8' name='sts' filepath='Python/pylifecycle.c' line='2431' column='1'/>
+    <function-decl name='getegid' mangled-name='getegid' filepath='/usr/include/unistd.h' line='684' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_delete_key' mangled-name='PyThread_delete_key' filepath='Python/thread_pthread.h' line='805' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_delete_key'>
-      <parameter type-id='type-id-8' name='sts' filepath='Python/pylifecycle.c' line='2431' column='1'/>
+    <function-decl name='forkpty' mangled-name='forkpty' filepath='/usr/include/pty.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_create_key' mangled-name='PyThread_create_key' filepath='Python/thread_pthread.h' line='785' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_create_key'>
-      <return type-id='type-id-8'/>
+    <function-decl name='openpty' mangled-name='openpty' filepath='/usr/include/pty.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_acquire_lock' mangled-name='PyThread_acquire_lock' filepath='Python/thread_pthread.h' line='718' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_acquire_lock'>
-      <parameter type-id='type-id-317' name='lock' filepath='Python/thread_pthread.h' line='718' column='1'/>
-      <parameter type-id='type-id-8' name='waitflag' filepath='Python/thread_pthread.h' line='718' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='__sched_cpualloc' mangled-name='__sched_cpualloc' filepath='/usr/include/x86_64-linux-gnu/bits/cpu-set.h' line='119' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-317' size-in-bits='64' id='type-id-681'/>
-    <function-decl name='_PyThread_at_fork_reinit' mangled-name='_PyThread_at_fork_reinit' filepath='Python/thread_pthread.h' line='698' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyThread_at_fork_reinit'>
-      <parameter type-id='type-id-681' name='lock' filepath='Python/thread_pthread.h' line='698' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='sched_getaffinity' mangled-name='sched_getaffinity' filepath='/usr/include/sched.h' line='125' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_release_lock' mangled-name='PyThread_release_lock' filepath='Python/thread_pthread.h' line='524' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_release_lock'>
-      <parameter type-id='type-id-317' name='lock' filepath='Python/thread_pthread.h' line='524' column='1'/>
+    <function-decl name='__sched_cpufree' mangled-name='__sched_cpufree' filepath='/usr/include/x86_64-linux-gnu/bits/cpu-set.h' line='120' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <enum-decl name='PyLockStatus' filepath='./Include/pythread.h' line='13' column='1' id='type-id-682'>
-      <underlying-type type-id='type-id-23'/>
-      <enumerator name='PY_LOCK_FAILURE' value='0'/>
-      <enumerator name='PY_LOCK_ACQUIRED' value='1'/>
-      <enumerator name='PY_LOCK_INTR' value='2'/>
-    </enum-decl>
-    <typedef-decl name='PyLockStatus' type-id='type-id-682' filepath='./Include/pythread.h' line='17' column='1' id='type-id-683'/>
-    <function-decl name='PyThread_acquire_lock_timed' mangled-name='PyThread_acquire_lock_timed' filepath='Python/thread_pthread.h' line='427' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_acquire_lock_timed'>
-      <parameter type-id='type-id-317' name='lock' filepath='Python/thread_pthread.h' line='427' column='1'/>
-      <parameter type-id='type-id-362' name='microseconds' filepath='Python/thread_pthread.h' line='427' column='1'/>
-      <parameter type-id='type-id-8' name='intr_flag' filepath='Python/thread_pthread.h' line='428' column='1'/>
-      <return type-id='type-id-683'/>
+    <function-decl name='__sched_cpucount' mangled-name='__sched_cpucount' filepath='/usr/include/x86_64-linux-gnu/bits/cpu-set.h' line='117' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_free_lock' mangled-name='PyThread_free_lock' filepath='Python/thread_pthread.h' line='397' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_free_lock'>
-      <parameter type-id='type-id-317' name='lock' filepath='Python/thread_pthread.h' line='524' column='1'/>
+    <function-decl name='sched_setaffinity' mangled-name='sched_setaffinity' filepath='/usr/include/sched.h' line='121' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_allocate_lock' mangled-name='PyThread_allocate_lock' filepath='Python/thread_pthread.h' line='371' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_allocate_lock'>
-      <return type-id='type-id-317'/>
+    <function-decl name='sched_yield' mangled-name='sched_yield' filepath='/usr/include/sched.h' line='68' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_exit_thread' mangled-name='PyThread_exit_thread' filepath='Python/thread_pthread.h' line='356' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_exit_thread'>
+    <function-decl name='sched_rr_get_interval' mangled-name='sched_rr_get_interval' filepath='/usr/include/sched.h' line='77' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_get_thread_native_id' mangled-name='PyThread_get_thread_native_id' filepath='Python/thread_pthread.h' line='328' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_thread_native_id'>
-      <return type-id='type-id-33'/>
+    <function-decl name='sched_setparam' mangled-name='sched_setparam' filepath='/usr/include/sched.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_get_thread_ident' mangled-name='PyThread_get_thread_ident' filepath='Python/thread_pthread.h' line='317' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_get_thread_ident'>
-      <return type-id='type-id-33'/>
+    <function-decl name='sched_getparam' mangled-name='sched_getparam' filepath='/usr/include/sched.h' line='58' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_start_new_thread' mangled-name='PyThread_start_new_thread' filepath='Python/thread_pthread.h' line='241' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_start_new_thread'>
-      <parameter type-id='type-id-188' name='func' filepath='Python/thread_pthread.h' line='241' column='1'/>
-      <parameter type-id='type-id-32' name='arg' filepath='Python/thread_pthread.h' line='241' column='1'/>
-      <return type-id='type-id-33'/>
+    <function-decl name='sched_setscheduler' mangled-name='sched_setscheduler' filepath='/usr/include/sched.h' line='61' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyThread_init_thread' mangled-name='PyThread_init_thread' filepath='Python/thread.c' line='59' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyThread_init_thread'>
+    <function-decl name='sched_getscheduler' mangled-name='sched_getscheduler' filepath='/usr/include/sched.h' line='65' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/traceback.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='PyTraceBack_Type' type-id='type-id-182' mangled-name='PyTraceBack_Type' visibility='default' filepath='./Include/traceback.h' line='13' column='1' elf-symbol-id='PyTraceBack_Type'/>
-    <function-decl name='PyTraceBack_Print' mangled-name='PyTraceBack_Print' filepath='Python/traceback.c' line='596' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTraceBack_Print'>
-      <parameter type-id='type-id-100' name='v' filepath='Python/traceback.c' line='596' column='1'/>
-      <parameter type-id='type-id-100' name='f' filepath='Python/traceback.c' line='596' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='sched_get_priority_min' mangled-name='sched_get_priority_min' filepath='/usr/include/sched.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_DisplaySourceLine' mangled-name='_Py_DisplaySourceLine' filepath='Python/traceback.c' line='372' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_DisplaySourceLine'>
-      <parameter type-id='type-id-100' name='f' filepath='Python/traceback.c' line='372' column='1'/>
-      <parameter type-id='type-id-100' name='filename' filepath='Python/traceback.c' line='372' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/traceback.c' line='372' column='1'/>
-      <parameter type-id='type-id-8' name='indent' filepath='Python/traceback.c' line='372' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='sched_get_priority_max' mangled-name='sched_get_priority_max' filepath='/usr/include/sched.h' line='71' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyTraceback_Add' mangled-name='_PyTraceback_Add' filepath='Python/traceback.c' line='257' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTraceback_Add'>
-      <parameter type-id='type-id-3' name='funcname' filepath='Python/traceback.c' line='257' column='1'/>
-      <parameter type-id='type-id-3' name='filename' filepath='Python/traceback.c' line='257' column='1'/>
-      <parameter type-id='type-id-8' name='lineno' filepath='Python/traceback.c' line='257' column='1'/>
+    <function-decl name='fork' mangled-name='fork' filepath='/usr/include/unistd.h' line='756' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyTraceBack_Here' mangled-name='PyTraceBack_Here' filepath='Python/traceback.c' line='242' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyTraceBack_Here'>
-      <parameter type-id='type-id-312' name='frame' filepath='Python/traceback.c' line='242' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='fexecve' mangled-name='fexecve' filepath='/usr/include/unistd.h' line='557' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/getopt.c' comp-dir-path='/src' language='LANG_C99'>
-    <var-decl name='_PyOS_opterr' type-id='type-id-8' visibility='default' filepath='./Include/internal/pycore_getopt.h' line='8' column='1'/>
-    <var-decl name='_PyOS_optind' type-id='type-id-15' visibility='default' filepath='./Include/internal/pycore_getopt.h' line='9' column='1'/>
-    <var-decl name='_PyOS_optarg' type-id='type-id-501' visibility='default' filepath='./Include/internal/pycore_getopt.h' line='10' column='1'/>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/pystrcmp.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyOS_mystricmp' mangled-name='PyOS_mystricmp' filepath='Python/pystrcmp.c' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_mystricmp'>
-      <parameter type-id='type-id-3' name='s1' filepath='Python/pystrcmp.c' line='22' column='1'/>
-      <parameter type-id='type-id-3' name='s2' filepath='Python/pystrcmp.c' line='22' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='execve' mangled-name='execve' filepath='/usr/include/unistd.h' line='551' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyOS_mystrnicmp' mangled-name='PyOS_mystrnicmp' filepath='Python/pystrcmp.c' line='7' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_mystrnicmp'>
-      <parameter type-id='type-id-3' name='s1' filepath='Python/pystrcmp.c' line='7' column='1'/>
-      <parameter type-id='type-id-3' name='s2' filepath='Python/pystrcmp.c' line='7' column='1'/>
-      <parameter type-id='type-id-15' name='size' filepath='Python/pystrcmp.c' line='7' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='execv' mangled-name='execv' filepath='/usr/include/unistd.h' line='563' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/pystrtod.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyOS_double_to_string' mangled-name='PyOS_double_to_string' filepath='Python/pystrtod.c' line='1243' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_double_to_string'>
-      <parameter type-id='type-id-441' name='val' filepath='Python/pystrtod.c' line='1243' column='1'/>
-      <parameter type-id='type-id-1' name='format_code' filepath='Python/pystrtod.c' line='1244' column='1'/>
-      <parameter type-id='type-id-8' name='precision' filepath='Python/pystrtod.c' line='1245' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Python/pystrtod.c' line='1246' column='1'/>
-      <parameter type-id='type-id-227' name='type' filepath='Python/pystrtod.c' line='1247' column='1'/>
-      <return type-id='type-id-7'/>
+    <function-decl name='_exit' mangled-name='_exit' filepath='/usr/include/unistd.h' line='603' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <pointer-type-def type-id='type-id-684' size-in-bits='64' id='type-id-685'/>
-    <function-decl name='_Py_string_to_number_with_underscores' mangled-name='_Py_string_to_number_with_underscores' filepath='Python/pystrtod.c' line='384' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_string_to_number_with_underscores'>
-      <parameter type-id='type-id-3' name='s' filepath='Python/pystrtod.c' line='385' column='1'/>
-      <parameter type-id='type-id-15' name='orig_len' filepath='Python/pystrtod.c' line='385' column='1'/>
-      <parameter type-id='type-id-3' name='what' filepath='Python/pystrtod.c' line='385' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/pystrtod.c' line='385' column='1'/>
-      <parameter type-id='type-id-32' name='arg' filepath='Python/pystrtod.c' line='385' column='1'/>
-      <parameter type-id='type-id-685' name='innerfunc' filepath='Python/pystrtod.c' line='386' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyTime_ObjectToTimespec' mangled-name='_PyTime_ObjectToTimespec' filepath='./Include/pytime.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyOS_string_to_double' mangled-name='PyOS_string_to_double' filepath='Python/pystrtod.c' line='338' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_string_to_double'>
-      <parameter type-id='type-id-3' name='s' filepath='Python/pystrtod.c' line='338' column='1'/>
-      <parameter type-id='type-id-304' name='endptr' filepath='Python/pystrtod.c' line='339' column='1'/>
-      <parameter type-id='type-id-100' name='overflow_exception' filepath='Python/pystrtod.c' line='340' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='futimens' mangled-name='futimens' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='368' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_parse_inf_or_nan' mangled-name='_Py_parse_inf_or_nan' filepath='Python/pystrtod.c' line='29' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_parse_inf_or_nan'>
-      <parameter type-id='type-id-3' name='p' filepath='Python/pystrtod.c' line='29' column='1'/>
-      <parameter type-id='type-id-304' name='endptr' filepath='Python/pystrtod.c' line='29' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='utimensat' mangled-name='utimensat' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='360' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-type size-in-bits='64' id='type-id-684'>
-      <parameter type-id='type-id-3'/>
-      <parameter type-id='type-id-15'/>
-      <parameter type-id='type-id-32'/>
-      <return type-id='type-id-100'/>
-    </function-type>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/pystrhex.c' comp-dir-path='/src' language='LANG_C99'>
-    <qualified-type-def type-id='type-id-110' const='yes' id='type-id-686'/>
-    <pointer-type-def type-id='type-id-686' size-in-bits='64' id='type-id-687'/>
-    <function-decl name='_Py_strhex_bytes_with_sep' mangled-name='_Py_strhex_bytes_with_sep' filepath='Python/pystrhex.c' line='169' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_strhex_bytes_with_sep'>
-      <parameter type-id='type-id-3' name='argbuf' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <parameter type-id='type-id-281' name='arglen' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <parameter type-id='type-id-687' name='sep' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <parameter type-id='type-id-631' name='bytes_per_group' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='system' mangled-name='system' filepath='/usr/include/stdlib.h' line='784' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_strhex_with_sep' mangled-name='_Py_strhex_with_sep' filepath='Python/pystrhex.c' line='162' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_strhex_with_sep'>
-      <parameter type-id='type-id-3' name='argbuf' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <parameter type-id='type-id-281' name='arglen' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <parameter type-id='type-id-687' name='sep' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <parameter type-id='type-id-631' name='bytes_per_group' filepath='Python/pystrhex.c' line='169' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='unlinkat' mangled-name='unlinkat' filepath='/usr/include/unistd.h' line='829' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_strhex_bytes' mangled-name='_Py_strhex_bytes' filepath='Python/pystrhex.c' line='155' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_strhex_bytes'>
-      <parameter type-id='type-id-3' name='argbuf' filepath='Python/pystrhex.c' line='155' column='1'/>
-      <parameter type-id='type-id-281' name='arglen' filepath='Python/pystrhex.c' line='155' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='rmdir' mangled-name='rmdir' filepath='/usr/include/unistd.h' line='834' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_strhex' mangled-name='_Py_strhex' filepath='Python/pystrhex.c' line='148' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_strhex'>
-      <parameter type-id='type-id-3' name='argbuf' filepath='Python/pystrhex.c' line='155' column='1'/>
-      <parameter type-id='type-id-281' name='arglen' filepath='Python/pystrhex.c' line='155' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='setpriority' mangled-name='setpriority' filepath='/usr/include/x86_64-linux-gnu/sys/resource.h' line='97' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/dtoa.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='_Py_dg_dtoa' mangled-name='_Py_dg_dtoa' filepath='Python/dtoa.c' line='2247' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_dg_dtoa'>
-      <parameter type-id='type-id-441' name='dd' filepath='Python/dtoa.c' line='2247' column='1'/>
-      <parameter type-id='type-id-8' name='mode' filepath='Python/dtoa.c' line='2247' column='1'/>
-      <parameter type-id='type-id-8' name='ndigits' filepath='Python/dtoa.c' line='2247' column='1'/>
-      <parameter type-id='type-id-227' name='decpt' filepath='Python/dtoa.c' line='2248' column='1'/>
-      <parameter type-id='type-id-227' name='sign' filepath='Python/dtoa.c' line='2248' column='1'/>
-      <parameter type-id='type-id-304' name='rve' filepath='Python/dtoa.c' line='2248' column='1'/>
-      <return type-id='type-id-7'/>
+    <function-decl name='getpriority' mangled-name='getpriority' filepath='/usr/include/x86_64-linux-gnu/sys/resource.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='mkdirat' mangled-name='mkdirat' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='324' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='mkdir' mangled-name='mkdir' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='317' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_dg_freedtoa' mangled-name='_Py_dg_freedtoa' filepath='Python/dtoa.c' line='2201' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_dg_freedtoa'>
-      <parameter type-id='type-id-7' name='s' filepath='Python/dtoa.c' line='2201' column='1'/>
+    <function-decl name='readdir' mangled-name='readdir64' filepath='/usr/include/dirent.h' line='165' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_dg_strtod' mangled-name='_Py_dg_strtod' filepath='Python/dtoa.c' line='1438' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_dg_strtod'>
-      <parameter type-id='type-id-3' name='s00' filepath='Python/dtoa.c' line='1438' column='1'/>
-      <parameter type-id='type-id-304' name='se' filepath='Python/dtoa.c' line='1438' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='linkat' mangled-name='linkat' filepath='/usr/include/unistd.h' line='795' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_dg_infinity' mangled-name='_Py_dg_infinity' filepath='Python/dtoa.c' line='1429' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_dg_infinity'>
-      <parameter type-id='type-id-8' name='sign' filepath='Python/dtoa.c' line='1429' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='link' mangled-name='link' filepath='/usr/include/unistd.h' line='789' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_dg_stdnan' mangled-name='_Py_dg_stdnan' filepath='Python/dtoa.c' line='1415' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_dg_stdnan'>
-      <parameter type-id='type-id-8' name='sign' filepath='Python/dtoa.c' line='1429' column='1'/>
-      <return type-id='type-id-441'/>
+    <function-decl name='lchown' mangled-name='lchown' filepath='/usr/include/unistd.h' line='483' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/formatter_unicode.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='_PyComplex_FormatAdvancedWriter' mangled-name='_PyComplex_FormatAdvancedWriter' filepath='Python/formatter_unicode.c' line='1559' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyComplex_FormatAdvancedWriter'>
-      <parameter type-id='type-id-475' name='writer' filepath='Python/formatter_unicode.c' line='1559' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/formatter_unicode.c' line='1560' column='1'/>
-      <parameter type-id='type-id-100' name='format_spec' filepath='Python/formatter_unicode.c' line='1561' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Python/formatter_unicode.c' line='1562' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Python/formatter_unicode.c' line='1562' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='fchown' mangled-name='fchown' filepath='/usr/include/unistd.h' line='478' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyFloat_FormatAdvancedWriter' mangled-name='_PyFloat_FormatAdvancedWriter' filepath='Python/formatter_unicode.c' line='1520' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyFloat_FormatAdvancedWriter'>
-      <parameter type-id='type-id-475' name='writer' filepath='Python/formatter_unicode.c' line='1559' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/formatter_unicode.c' line='1560' column='1'/>
-      <parameter type-id='type-id-100' name='format_spec' filepath='Python/formatter_unicode.c' line='1561' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Python/formatter_unicode.c' line='1562' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Python/formatter_unicode.c' line='1562' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='chown' mangled-name='chown' filepath='/usr/include/unistd.h' line='473' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_FormatAdvancedWriter' mangled-name='_PyLong_FormatAdvancedWriter' filepath='Python/formatter_unicode.c' line='1458' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FormatAdvancedWriter'>
-      <parameter type-id='type-id-475' name='writer' filepath='Python/formatter_unicode.c' line='1458' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/formatter_unicode.c' line='1459' column='1'/>
-      <parameter type-id='type-id-100' name='format_spec' filepath='Python/formatter_unicode.c' line='1460' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Python/formatter_unicode.c' line='1461' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Python/formatter_unicode.c' line='1461' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='fchownat' mangled-name='fchownat' filepath='/usr/include/unistd.h' line='491' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyUnicode_FormatAdvancedWriter' mangled-name='_PyUnicode_FormatAdvancedWriter' filepath='Python/formatter_unicode.c' line='1422' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyUnicode_FormatAdvancedWriter'>
-      <parameter type-id='type-id-475' name='writer' filepath='Python/formatter_unicode.c' line='1559' column='1'/>
-      <parameter type-id='type-id-100' name='obj' filepath='Python/formatter_unicode.c' line='1560' column='1'/>
-      <parameter type-id='type-id-100' name='format_spec' filepath='Python/formatter_unicode.c' line='1561' column='1'/>
-      <parameter type-id='type-id-15' name='start' filepath='Python/formatter_unicode.c' line='1562' column='1'/>
-      <parameter type-id='type-id-15' name='end' filepath='Python/formatter_unicode.c' line='1562' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='fdatasync' mangled-name='fdatasync' filepath='/usr/include/unistd.h' line='1115' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Python/fileutils.c' comp-dir-path='/src' language='LANG_C99'>
-    <class-decl name='lconv' size-in-bits='768' is-struct='yes' visibility='default' filepath='/usr/include/locale.h' line='51' column='1' id='type-id-688'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='decimal_point' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='55' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='thousands_sep' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='56' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='grouping' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='62' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='int_curr_symbol' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='68' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='currency_symbol' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='69' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='mon_decimal_point' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='70' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='mon_thousands_sep' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='71' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='mon_grouping' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='72' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='positive_sign' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='73' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='negative_sign' type-id='type-id-7' visibility='default' filepath='/usr/include/locale.h' line='74' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='int_frac_digits' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='75' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='648'>
-        <var-decl name='frac_digits' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='76' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='656'>
-        <var-decl name='p_cs_precedes' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='78' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='664'>
-        <var-decl name='p_sep_by_space' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='80' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='672'>
-        <var-decl name='n_cs_precedes' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='82' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='680'>
-        <var-decl name='n_sep_by_space' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='84' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='688'>
-        <var-decl name='p_sign_posn' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='91' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='696'>
-        <var-decl name='n_sign_posn' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='92' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='int_p_cs_precedes' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='95' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='712'>
-        <var-decl name='int_p_sep_by_space' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='97' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='720'>
-        <var-decl name='int_n_cs_precedes' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='99' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='728'>
-        <var-decl name='int_n_sep_by_space' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='101' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='736'>
-        <var-decl name='int_p_sign_posn' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='108' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='744'>
-        <var-decl name='int_n_sign_posn' type-id='type-id-1' visibility='default' filepath='/usr/include/locale.h' line='109' column='1'/>
-      </data-member>
-    </class-decl>
-    <pointer-type-def type-id='type-id-688' size-in-bits='64' id='type-id-689'/>
-    <function-decl name='_Py_GetLocaleconvNumeric' mangled-name='_Py_GetLocaleconvNumeric' filepath='Python/fileutils.c' line='2082' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetLocaleconvNumeric'>
-      <parameter type-id='type-id-689' name='lc' filepath='Python/fileutils.c' line='2082' column='1'/>
-      <parameter type-id='type-id-303' name='decimal_point' filepath='Python/fileutils.c' line='2083' column='1'/>
-      <parameter type-id='type-id-303' name='thousands_sep' filepath='Python/fileutils.c' line='2083' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='sync' mangled-name='sync' filepath='/usr/include/unistd.h' line='970' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_set_blocking' mangled-name='_Py_set_blocking' filepath='Python/fileutils.c' line='2046' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_set_blocking'>
-      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='2046' column='1'/>
-      <parameter type-id='type-id-8' name='blocking' filepath='Python/fileutils.c' line='2046' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='fsync' mangled-name='fsync' filepath='/usr/include/unistd.h' line='954' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_get_blocking' mangled-name='_Py_get_blocking' filepath='Python/fileutils.c' line='2025' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_blocking'>
-      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='2025' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='chroot' mangled-name='chroot' filepath='/usr/include/unistd.h' line='942' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_dup' mangled-name='_Py_dup' filepath='Python/fileutils.c' line='1955' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_dup'>
-      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1955' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='fchmod' mangled-name='fchmod' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='293' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_wgetcwd' mangled-name='_Py_wgetcwd' filepath='Python/fileutils.c' line='1923' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wgetcwd'>
-      <parameter type-id='type-id-403' name='buf' filepath='Python/fileutils.c' line='1923' column='1'/>
-      <parameter type-id='type-id-191' name='buflen' filepath='Python/fileutils.c' line='1923' column='1'/>
-      <return type-id='type-id-403'/>
+    <function-decl name='fchmodat' mangled-name='fchmodat' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='299' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_abspath' mangled-name='_Py_abspath' filepath='Python/fileutils.c' line='1836' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_abspath'>
-      <parameter type-id='type-id-501' name='path' filepath='Python/fileutils.c' line='1836' column='1'/>
-      <parameter type-id='type-id-407' name='abspath_p' filepath='Python/fileutils.c' line='1836' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='chmod' mangled-name='chmod' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='280' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_isabs' mangled-name='_Py_isabs' filepath='Python/fileutils.c' line='1823' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_isabs'>
-      <parameter type-id='type-id-501' name='path' filepath='Python/fileutils.c' line='1823' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='fchdir' mangled-name='fchdir' filepath='/usr/include/unistd.h' line='501' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_wrealpath' mangled-name='_Py_wrealpath' filepath='Python/fileutils.c' line='1785' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wrealpath'>
-      <parameter type-id='type-id-501' name='path' filepath='Python/fileutils.c' line='1785' column='1'/>
-      <parameter type-id='type-id-403' name='resolved_path' filepath='Python/fileutils.c' line='1786' column='1'/>
-      <parameter type-id='type-id-191' name='resolved_path_len' filepath='Python/fileutils.c' line='1786' column='1'/>
-      <return type-id='type-id-403'/>
+    <function-decl name='chdir' mangled-name='chdir' filepath='/usr/include/unistd.h' line='497' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_wreadlink' mangled-name='_Py_wreadlink' filepath='Python/fileutils.c' line='1736' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wreadlink'>
-      <parameter type-id='type-id-501' name='path' filepath='Python/fileutils.c' line='1736' column='1'/>
-      <parameter type-id='type-id-403' name='buf' filepath='Python/fileutils.c' line='1736' column='1'/>
-      <parameter type-id='type-id-191' name='buflen' filepath='Python/fileutils.c' line='1736' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='ctermid' mangled-name='ctermid' filepath='/usr/include/stdio.h' line='812' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_write_noraise' mangled-name='_Py_write_noraise' filepath='Python/fileutils.c' line='1723' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_write_noraise'>
-      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1723' column='1'/>
-      <parameter type-id='type-id-32' name='buf' filepath='Python/fileutils.c' line='1723' column='1'/>
-      <parameter type-id='type-id-191' name='count' filepath='Python/fileutils.c' line='1723' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='faccessat' mangled-name='faccessat' filepath='/usr/include/unistd.h' line='304' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_write' mangled-name='_Py_write' filepath='Python/fileutils.c' line='1703' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_write'>
-      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1723' column='1'/>
-      <parameter type-id='type-id-32' name='buf' filepath='Python/fileutils.c' line='1723' column='1'/>
-      <parameter type-id='type-id-191' name='count' filepath='Python/fileutils.c' line='1723' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='access' mangled-name='access' filepath='/usr/include/unistd.h' line='287' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_read' mangled-name='_Py_read' filepath='Python/fileutils.c' line='1574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_read'>
-      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1574' column='1'/>
-      <parameter type-id='type-id-32' name='buf' filepath='Python/fileutils.c' line='1574' column='1'/>
-      <parameter type-id='type-id-191' name='count' filepath='Python/fileutils.c' line='1574' column='1'/>
-      <return type-id='type-id-15'/>
+    <function-decl name='setgroups' mangled-name='setgroups' filepath='/usr/include/grp.h' line='176' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_fopen_obj' mangled-name='_Py_fopen_obj' filepath='Python/fileutils.c' line='1481' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_fopen_obj'>
-      <parameter type-id='type-id-100' name='path' filepath='Python/fileutils.c' line='1481' column='1'/>
-      <parameter type-id='type-id-3' name='mode' filepath='Python/fileutils.c' line='1481' column='1'/>
-      <return type-id='type-id-223'/>
+    <function-decl name='PyMapping_Size' mangled-name='PyMapping_Size' filepath='./Include/abstract.h' line='766' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_fopen' mangled-name='_Py_fopen' filepath='Python/fileutils.c' line='1445' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_fopen'>
-      <parameter type-id='type-id-3' name='pathname' filepath='Python/fileutils.c' line='1445' column='1'/>
-      <parameter type-id='type-id-3' name='mode' filepath='Python/fileutils.c' line='1445' column='1'/>
-      <return type-id='type-id-223'/>
+    <function-decl name='PyMapping_Values' mangled-name='PyMapping_Values' filepath='./Include/abstract.h' line='815' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_wfopen' mangled-name='_Py_wfopen' filepath='Python/fileutils.c' line='1406' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_wfopen'>
-      <parameter type-id='type-id-501' name='path' filepath='Python/fileutils.c' line='1406' column='1'/>
-      <parameter type-id='type-id-501' name='mode' filepath='Python/fileutils.c' line='1406' column='1'/>
-      <return type-id='type-id-223'/>
+    <function-decl name='PyBytes_FromFormat' mangled-name='PyBytes_FromFormat' filepath='./Include/bytesobject.h' line='42' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_open_noraise' mangled-name='_Py_open_noraise' filepath='Python/fileutils.c' line='1394' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_open_noraise'>
-      <parameter type-id='type-id-3' name='pathname' filepath='Python/fileutils.c' line='1394' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Python/fileutils.c' line='1394' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyLong_AsTime_t' mangled-name='_PyLong_AsTime_t' filepath='./Include/pytime.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_open' mangled-name='_Py_open' filepath='Python/fileutils.c' line='1380' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_open'>
-      <parameter type-id='type-id-3' name='pathname' filepath='Python/fileutils.c' line='1394' column='1'/>
-      <parameter type-id='type-id-8' name='flags' filepath='Python/fileutils.c' line='1394' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='uname' mangled-name='uname' filepath='/usr/include/x86_64-linux-gnu/sys/utsname.h' line='81' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_set_inheritable_async_safe' mangled-name='_Py_set_inheritable_async_safe' filepath='Python/fileutils.c' line='1303' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_set_inheritable_async_safe'>
-      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1303' column='1'/>
-      <parameter type-id='type-id-8' name='inheritable' filepath='Python/fileutils.c' line='1303' column='1'/>
-      <parameter type-id='type-id-227' name='atomic_flag_works' filepath='Python/fileutils.c' line='1303' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='rename' mangled-name='rename' filepath='/usr/include/stdio.h' line='148' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_set_inheritable' mangled-name='_Py_set_inheritable' filepath='Python/fileutils.c' line='1294' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_set_inheritable'>
-      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1303' column='1'/>
-      <parameter type-id='type-id-8' name='inheritable' filepath='Python/fileutils.c' line='1303' column='1'/>
-      <parameter type-id='type-id-227' name='atomic_flag_works' filepath='Python/fileutils.c' line='1303' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='renameat' mangled-name='renameat' filepath='/usr/include/stdio.h' line='152' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_get_inheritable' mangled-name='_Py_get_inheritable' filepath='Python/fileutils.c' line='1127' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_get_inheritable'>
-      <parameter type-id='type-id-8' name='c1' filepath='Parser/token.c' line='78' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyLong_FromTime_t' mangled-name='_PyLong_FromTime_t' filepath='./Include/pytime.h' line='47' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <class-decl name='stat' size-in-bits='1152' is-struct='yes' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='46' column='1' id='type-id-690'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='st_dev' type-id='type-id-691' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='48' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='st_ino' type-id='type-id-692' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='53' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='st_nlink' type-id='type-id-693' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='61' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='st_mode' type-id='type-id-694' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='62' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='224'>
-        <var-decl name='st_uid' type-id='type-id-695' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='64' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='st_gid' type-id='type-id-696' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='65' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='__pad0' type-id='type-id-8' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='67' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='st_rdev' type-id='type-id-691' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='69' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='st_size' type-id='type-id-208' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='74' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='st_blksize' type-id='type-id-697' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='78' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='st_blocks' type-id='type-id-698' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='80' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='st_atim' type-id='type-id-668' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='91' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='st_mtim' type-id='type-id-668' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='92' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='st_ctim' type-id='type-id-668' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='93' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='960'>
-        <var-decl name='__glibc_reserved' type-id='type-id-699' visibility='default' filepath='/usr/include/x86_64-linux-gnu/bits/stat.h' line='106' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='__dev_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='145' column='1' id='type-id-691'/>
-    <typedef-decl name='__ino_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='148' column='1' id='type-id-692'/>
-    <typedef-decl name='__nlink_t' type-id='type-id-33' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='151' column='1' id='type-id-693'/>
-    <typedef-decl name='__mode_t' type-id='type-id-107' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='150' column='1' id='type-id-694'/>
-    <typedef-decl name='__uid_t' type-id='type-id-107' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='146' column='1' id='type-id-695'/>
-    <typedef-decl name='__gid_t' type-id='type-id-107' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='147' column='1' id='type-id-696'/>
-    <typedef-decl name='__blksize_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='174' column='1' id='type-id-697'/>
-    <typedef-decl name='__blkcnt_t' type-id='type-id-12' filepath='/usr/include/x86_64-linux-gnu/bits/types.h' line='179' column='1' id='type-id-698'/>
-
-    <array-type-def dimensions='1' type-id='type-id-669' size-in-bits='192' id='type-id-699'>
-      <subrange length='3' type-id='type-id-33' id='type-id-397'/>
-
-    </array-type-def>
-    <pointer-type-def type-id='type-id-690' size-in-bits='64' id='type-id-700'/>
-    <function-decl name='_Py_stat' mangled-name='_Py_stat' filepath='Python/fileutils.c' line='1046' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_stat'>
-      <parameter type-id='type-id-100' name='path' filepath='Python/fileutils.c' line='1046' column='1'/>
-      <parameter type-id='type-id-700' name='statbuf' filepath='Python/fileutils.c' line='1046' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='sigaddset' mangled-name='sigaddset' filepath='/usr/include/signal.h' line='202' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_fstat' mangled-name='_Py_fstat' filepath='Python/fileutils.c' line='1018' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_fstat'>
-      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='1018' column='1'/>
-      <parameter type-id='type-id-700' name='status' filepath='Python/fileutils.c' line='1018' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyGILState_Reinit' mangled-name='_PyGILState_Reinit' filepath='./Include/internal/pycore_pystate.h' line='124' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_fstat_noraise' mangled-name='_Py_fstat_noraise' filepath='Python/fileutils.c' line='949' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_fstat_noraise'>
-      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='949' column='1'/>
-      <parameter type-id='type-id-700' name='status' filepath='Python/fileutils.c' line='949' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyEval_ReInitThreads' mangled-name='_PyEval_ReInitThreads' filepath='./Include/internal/pycore_ceval.h' line='28' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_EncodeLocaleEx' mangled-name='_Py_EncodeLocaleEx' filepath='Python/fileutils.c' line='854' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_EncodeLocaleEx'>
-      <parameter type-id='type-id-501' name='text' filepath='Python/fileutils.c' line='854' column='1'/>
-      <parameter type-id='type-id-304' name='str' filepath='Python/fileutils.c' line='854' column='1'/>
-      <parameter type-id='type-id-540' name='error_pos' filepath='Python/fileutils.c' line='855' column='1'/>
-      <parameter type-id='type-id-286' name='reason' filepath='Python/fileutils.c' line='855' column='1'/>
-      <parameter type-id='type-id-8' name='current_locale' filepath='Python/fileutils.c' line='856' column='1'/>
-      <parameter type-id='type-id-400' name='errors' filepath='Python/fileutils.c' line='856' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyImport_ReInitLock' mangled-name='_PyImport_ReInitLock' filepath='./Include/internal/pycore_import.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_EncodeLocaleRaw' mangled-name='_Py_EncodeLocaleRaw' filepath='Python/fileutils.c' line='847' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_EncodeLocaleRaw'>
-      <parameter type-id='type-id-501' name='text' filepath='Python/fileutils.c' line='847' column='1'/>
-      <parameter type-id='type-id-540' name='error_pos' filepath='Python/fileutils.c' line='847' column='1'/>
-      <return type-id='type-id-7'/>
+    <function-decl name='_PySignal_AfterFork' mangled-name='_PySignal_AfterFork' filepath='./Include/intrcheck.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_EncodeLocale' mangled-name='Py_EncodeLocale' filepath='Python/fileutils.c' line='838' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_EncodeLocale'>
-      <parameter type-id='type-id-501' name='text' filepath='Python/fileutils.c' line='847' column='1'/>
-      <parameter type-id='type-id-540' name='error_pos' filepath='Python/fileutils.c' line='847' column='1'/>
-      <return type-id='type-id-7'/>
+    <function-decl name='_PyRuntimeState_ReInitThreads' mangled-name='_PyRuntimeState_ReInitThreads' filepath='./Include/internal/pycore_runtime.h' line='121' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_DecodeLocale' mangled-name='Py_DecodeLocale' filepath='Python/fileutils.c' line='636' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_DecodeLocale'>
-      <parameter type-id='type-id-3' name='arg' filepath='Python/fileutils.c' line='636' column='1'/>
-      <parameter type-id='type-id-540' name='wlen' filepath='Python/fileutils.c' line='636' column='1'/>
-      <return type-id='type-id-403'/>
+    <function-decl name='_PyInterpreterState_DeleteExceptMain' mangled-name='_PyInterpreterState_DeleteExceptMain' filepath='./Include/internal/pycore_pystate.h' line='122' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_DecodeLocaleEx' mangled-name='_Py_DecodeLocaleEx' filepath='Python/fileutils.c' line='574' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_DecodeLocaleEx'>
-      <parameter type-id='type-id-3' name='arg' filepath='Python/fileutils.c' line='574' column='1'/>
-      <parameter type-id='type-id-407' name='wstr' filepath='Python/fileutils.c' line='574' column='1'/>
-      <parameter type-id='type-id-540' name='wlen' filepath='Python/fileutils.c' line='574' column='1'/>
-      <parameter type-id='type-id-286' name='reason' filepath='Python/fileutils.c' line='575' column='1'/>
-      <parameter type-id='type-id-8' name='current_locale' filepath='Python/fileutils.c' line='576' column='1'/>
-      <parameter type-id='type-id-400' name='errors' filepath='Python/fileutils.c' line='576' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='__readlinkat_alias' mangled-name='readlinkat' filepath='/usr/include/x86_64-linux-gnu/bits/unistd.h' line='159' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_ResetForceASCII' mangled-name='_Py_ResetForceASCII' filepath='Python/fileutils.c' line='293' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_ResetForceASCII'>
+    <function-decl name='__pread64_alias' mangled-name='pread64' filepath='/usr/include/x86_64-linux-gnu/bits/unistd.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_GetForceASCII' mangled-name='_Py_GetForceASCII' filepath='Python/fileutils.c' line='283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_GetForceASCII'>
-      <return type-id='type-id-8'/>
+    <function-decl name='_Py_set_blocking' mangled-name='_Py_set_blocking' filepath='./Include/cpython/fileutils.h' line='164' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_device_encoding' mangled-name='_Py_device_encoding' filepath='Python/fileutils.c' line='62' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_device_encoding'>
-      <parameter type-id='type-id-8' name='fd' filepath='Python/fileutils.c' line='62' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='_PyOS_URandom' mangled-name='_PyOS_URandom' filepath='./Include/cpython/pylifecycle.h' line='60' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='./Python/dynload_shlib.c' comp-dir-path='/src' language='LANG_C99'>
-
-    <array-type-def dimensions='1' type-id='type-id-3' size-in-bits='infinite' id='type-id-701'>
-      <subrange length='infinite' id='type-id-18'/>
-
-    </array-type-def>
-    <var-decl name='_PyImport_DynLoadFiletab' type-id='type-id-701' visibility='default' filepath='./Python/importdl.h' line='9' column='1'/>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Modules/main.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='Py_BytesMain' mangled-name='Py_BytesMain' filepath='Modules/main.c' line='724' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_BytesMain'>
-      <parameter type-id='type-id-8' name='argc' filepath='Modules/main.c' line='724' column='1'/>
-      <parameter type-id='type-id-304' name='argv' filepath='Modules/main.c' line='724' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='posix_fadvise' mangled-name='posix_fadvise64' filepath='/usr/include/fcntl.h' line='264' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_Main' mangled-name='Py_Main' filepath='Modules/main.c' line='712' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_Main'>
-      <parameter type-id='type-id-8' name='argc' filepath='Modules/main.c' line='712' column='1'/>
-      <parameter type-id='type-id-407' name='argv' filepath='Modules/main.c' line='712' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='posix_fallocate' mangled-name='posix_fallocate64' filepath='/usr/include/fcntl.h' line='285' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='Py_RunMain' mangled-name='Py_RunMain' filepath='Modules/main.c' line='673' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='Py_RunMain'>
-      <return type-id='type-id-8'/>
+    <function-decl name='ftruncate' mangled-name='ftruncate64' filepath='/usr/include/unistd.h' line='1017' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='Modules/gcmodule.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyObject_GC_IsFinalized' mangled-name='PyObject_GC_IsFinalized' filepath='Modules/gcmodule.c' line='2342' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_IsFinalized'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='pwritev2' mangled-name='pwritev64v2' filepath='/usr/include/x86_64-linux-gnu/sys/uio.h' line='136' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_GC_IsTracked' mangled-name='PyObject_GC_IsTracked' filepath='Modules/gcmodule.c' line='2333' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_IsTracked'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='lockf' mangled-name='lockf64' filepath='/usr/include/unistd.h' line='1082' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_GC_Del' mangled-name='PyObject_GC_Del' filepath='Modules/gcmodule.c' line='2318' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_Del'>
-      <parameter type-id='type-id-32' name='op' filepath='Modules/gcmodule.c' line='2318' column='1'/>
+    <function-decl name='unlink' mangled-name='unlink' filepath='/usr/include/unistd.h' line='825' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_GC_Resize' mangled-name='_PyObject_GC_Resize' filepath='Modules/gcmodule.c' line='2300' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_Resize'>
-      <parameter type-id='type-id-497' name='op' filepath='Modules/gcmodule.c' line='2300' column='1'/>
-      <parameter type-id='type-id-15' name='nitems' filepath='Modules/gcmodule.c' line='2300' column='1'/>
-      <return type-id='type-id-497'/>
+    <function-decl name='PyList_GetSlice' mangled-name='PyList_GetSlice' filepath='./Include/listobject.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_GC_NewVar' mangled-name='_PyObject_GC_NewVar' filepath='Modules/gcmodule.c' line='2283' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_NewVar'>
-      <parameter type-id='type-id-75' name='tp' filepath='Objects/object.c' line='174' column='1'/>
-      <parameter type-id='type-id-15' name='nitems' filepath='Objects/object.c' line='174' column='1'/>
-      <return type-id='type-id-497'/>
+    <function-decl name='__ttyname_r_alias' mangled-name='ttyname_r' filepath='/usr/include/x86_64-linux-gnu/bits/unistd.h' line='281' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_GC_New' mangled-name='_PyObject_GC_New' filepath='Modules/gcmodule.c' line='2274' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_New'>
-      <parameter type-id='type-id-75' name='tp' filepath='Objects/object.c' line='163' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='nice' mangled-name='nice' filepath='/usr/include/unistd.h' line='598' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_GC_Calloc' mangled-name='_PyObject_GC_Calloc' filepath='Modules/gcmodule.c' line='2268' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_Calloc'>
-      <parameter type-id='type-id-191' name='basicsize' filepath='Modules/gcmodule.c' line='2268' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='tcgetpgrp' mangled-name='tcgetpgrp' filepath='/usr/include/unistd.h' line='838' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='umask' mangled-name='umask' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='308' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_get_inheritable' mangled-name='_Py_get_inheritable' filepath='./Include/cpython/fileutils.h' line='151' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_get_blocking' mangled-name='_Py_get_blocking' filepath='./Include/cpython/fileutils.h' line='162' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='writev' mangled-name='writev' filepath='/usr/include/x86_64-linux-gnu/sys/uio.h' line='52' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyObject_GC_Malloc' mangled-name='_PyObject_GC_Malloc' filepath='Modules/gcmodule.c' line='2262' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyObject_GC_Malloc'>
-      <parameter type-id='type-id-191' name='basicsize' filepath='Modules/gcmodule.c' line='2268' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='readv' mangled-name='readv' filepath='/usr/include/x86_64-linux-gnu/sys/uio.h' line='41' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_IS_GC' mangled-name='PyObject_IS_GC' filepath='Modules/gcmodule.c' line='2217' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_IS_GC'>
-      <parameter type-id='type-id-100' name='obj' filepath='Objects/abstract.c' line='2677' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='preadv2' mangled-name='preadv64v2' filepath='/usr/include/x86_64-linux-gnu/sys/uio.h' line='140' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_GC_UnTrack' mangled-name='PyObject_GC_UnTrack' filepath='Modules/gcmodule.c' line='2205' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_UnTrack'>
-      <parameter type-id='type-id-32' name='op_raw' filepath='Modules/gcmodule.c' line='2205' column='1'/>
+    <function-decl name='_PyImport_ReleaseLock' mangled-name='_PyImport_ReleaseLock' filepath='./Include/cpython/import.h' line='18' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyObject_GC_Track' mangled-name='PyObject_GC_Track' filepath='Modules/gcmodule.c' line='2186' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_Track'>
-      <parameter type-id='type-id-32' name='op_raw' filepath='Modules/gcmodule.c' line='2186' column='1'/>
+    <function-decl name='__fxstatat' mangled-name='__fxstatat64' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='415' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyGC_CollectNoFail' mangled-name='_PyGC_CollectNoFail' filepath='Modules/gcmodule.c' line='2090' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGC_CollectNoFail'>
-      <return type-id='type-id-15'/>
+    <function-decl name='__lxstat' mangled-name='__lxstat64' filepath='/usr/include/x86_64-linux-gnu/sys/stat.h' line='412' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyGC_CollectIfEnabled' mangled-name='_PyGC_CollectIfEnabled' filepath='Modules/gcmodule.c' line='2084' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGC_CollectIfEnabled'>
-      <return type-id='type-id-15'/>
+    <function-decl name='__getgroups_alias' mangled-name='getgroups' filepath='/usr/include/x86_64-linux-gnu/bits/unistd.h' line='256' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyGC_Collect' mangled-name='PyGC_Collect' filepath='Modules/gcmodule.c' line='2057' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyGC_Collect'>
-      <return type-id='type-id-15'/>
+    <function-decl name='posix_spawn_file_actions_addclose' mangled-name='posix_spawn_file_actions_addclose' filepath='/usr/include/spawn.h' line='191' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyInit_gc' mangled-name='PyInit_gc' filepath='Modules/gcmodule.c' line='2012' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_gc'>
-      <return type-id='type-id-100'/>
+    <function-decl name='posix_spawn_file_actions_adddup2' mangled-name='posix_spawn_file_actions_adddup2' filepath='/usr/include/spawn.h' line='197' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <typedef-decl name='GCState' type-id='type-id-319' filepath='Modules/gcmodule.c' line='36' column='1' id='type-id-702'/>
-    <pointer-type-def type-id='type-id-702' size-in-bits='64' id='type-id-703'/>
-    <function-decl name='_PyGC_InitState' mangled-name='_PyGC_InitState' filepath='Modules/gcmodule.c' line='132' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyGC_InitState'>
-      <parameter type-id='type-id-703' name='gcstate' filepath='Modules/gcmodule.c' line='132' column='1'/>
+    <function-decl name='posix_spawn_file_actions_addopen' mangled-name='posix_spawn_file_actions_addopen' filepath='/usr/include/spawn.h' line='182' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='./Modules/posixmodule.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyInit_posix' mangled-name='PyInit_posix' filepath='./Modules/posixmodule.c' line='15546' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_posix'>
-      <return type-id='type-id-100'/>
+    <function-decl name='posix_spawn_file_actions_init' mangled-name='posix_spawn_file_actions_init' filepath='/usr/include/spawn.h' line='171' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyOS_FSPath' mangled-name='PyOS_FSPath' filepath='./Modules/posixmodule.c' line='14113' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_FSPath'>
-      <parameter type-id='type-id-100' name='v' filepath='Objects/abstract.c' line='1992' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='posix_spawnattr_setpgroup' mangled-name='posix_spawnattr_setpgroup' filepath='/usr/include/spawn.h' line='141' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_Py_Sigset_Converter' mangled-name='_Py_Sigset_Converter' filepath='./Modules/posixmodule.c' line='1434' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Sigset_Converter'>
-      <parameter type-id='type-id-100' name='obj' filepath='./Modules/posixmodule.c' line='1434' column='1'/>
-      <parameter type-id='type-id-32' name='addr' filepath='./Modules/posixmodule.c' line='1434' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='posix_spawnattr_setsigmask' mangled-name='posix_spawnattr_setsigmask' filepath='/usr/include/spawn.h' line='120' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <typedef-decl name='gid_t' type-id='type-id-696' filepath='/usr/include/x86_64-linux-gnu/sys/types.h' line='64' column='1' id='type-id-704'/>
-    <pointer-type-def type-id='type-id-704' size-in-bits='64' id='type-id-705'/>
-    <function-decl name='_Py_Gid_Converter' mangled-name='_Py_Gid_Converter' filepath='./Modules/posixmodule.c' line='747' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Gid_Converter'>
-      <parameter type-id='type-id-100' name='obj' filepath='./Modules/posixmodule.c' line='747' column='1'/>
-      <parameter type-id='type-id-705' name='p' filepath='./Modules/posixmodule.c' line='747' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='posix_spawnattr_setsigdefault' mangled-name='posix_spawnattr_setsigdefault' filepath='/usr/include/spawn.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <typedef-decl name='uid_t' type-id='type-id-695' filepath='/usr/include/x86_64-linux-gnu/sys/types.h' line='79' column='1' id='type-id-706'/>
-    <pointer-type-def type-id='type-id-706' size-in-bits='64' id='type-id-707'/>
-    <function-decl name='_Py_Uid_Converter' mangled-name='_Py_Uid_Converter' filepath='./Modules/posixmodule.c' line='641' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_Uid_Converter'>
-      <parameter type-id='type-id-100' name='obj' filepath='./Modules/posixmodule.c' line='641' column='1'/>
-      <parameter type-id='type-id-707' name='p' filepath='./Modules/posixmodule.c' line='641' column='1'/>
-      <return type-id='type-id-8'/>
+    <function-decl name='posix_spawnattr_setschedpolicy' mangled-name='posix_spawnattr_setschedpolicy' filepath='/usr/include/spawn.h' line='152' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_FromGid' mangled-name='_PyLong_FromGid' filepath='./Modules/posixmodule.c' line='633' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromGid'>
-      <parameter type-id='type-id-704' name='gid' filepath='./Modules/posixmodule.c' line='633' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='posix_spawnattr_setschedparam' mangled-name='posix_spawnattr_setschedparam' filepath='/usr/include/spawn.h' line='164' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PyLong_FromUid' mangled-name='_PyLong_FromUid' filepath='./Modules/posixmodule.c' line='625' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyLong_FromUid'>
-      <parameter type-id='type-id-706' name='uid' filepath='./Modules/posixmodule.c' line='625' column='1'/>
-      <return type-id='type-id-100'/>
+    <function-decl name='posix_spawnattr_init' mangled-name='posix_spawnattr_init' filepath='/usr/include/spawn.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='posix_spawnattr_destroy' mangled-name='posix_spawnattr_destroy' filepath='/usr/include/spawn.h' line='97' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyOS_AfterFork' mangled-name='PyOS_AfterFork' filepath='./Modules/posixmodule.c' line='607' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_AfterFork'>
+    <function-decl name='posix_spawnattr_setflags' mangled-name='posix_spawnattr_setflags' filepath='/usr/include/spawn.h' line='131' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyOS_AfterFork_Child' mangled-name='PyOS_AfterFork_Child' filepath='./Modules/posixmodule.c' line='577' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_AfterFork_Child'>
+    <function-decl name='posix_spawn_file_actions_destroy' mangled-name='posix_spawn_file_actions_destroy' filepath='/usr/include/spawn.h' line='176' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyOS_AfterFork_Parent' mangled-name='PyOS_AfterFork_Parent' filepath='./Modules/posixmodule.c' line='568' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_AfterFork_Parent'>
+    <function-decl name='posix_spawnp' mangled-name='posix_spawnp' filepath='/usr/include/spawn.h' line='85' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyOS_BeforeFork' mangled-name='PyOS_BeforeFork' filepath='./Modules/posixmodule.c' line='560' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_BeforeFork'>
+    <function-decl name='posix_spawn' mangled-name='posix_spawn' filepath='/usr/include/spawn.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
   </abi-instr>
     <function-decl name='PyInit_pwd' mangled-name='PyInit_pwd' filepath='./Modules/pwdmodule.c' line='352' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_pwd'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='PyState_FindModule' mangled-name='PyState_FindModule' filepath='./Include/pystate.h' line='56' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='getpwuid_r' mangled-name='getpwuid_r' filepath='/usr/include/pwd.h' line='145' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_FromUid' mangled-name='_PyLong_FromUid' filepath='./Modules/posixmodule.h' line='15' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Uid_Converter' mangled-name='_Py_Uid_Converter' filepath='./Modules/posixmodule.h' line='17' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_FromGid' mangled-name='_PyLong_FromGid' filepath='./Modules/posixmodule.h' line='16' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='endpwent' mangled-name='endpwent' filepath='/usr/include/pwd.h' line='78' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='setpwent' mangled-name='setpwent' filepath='/usr/include/pwd.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='getpwent' mangled-name='getpwent' filepath='/usr/include/pwd.h' line='84' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='getpwnam_r' mangled-name='getpwnam_r' filepath='/usr/include/pwd.h' line='151' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_sre.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit__sre' mangled-name='PyInit__sre' filepath='./Modules/_sre.c' line='2775' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__sre'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='_PyObject_NewVar' mangled-name='_PyObject_NewVar' filepath='./Include/objimpl.h' line='123' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyBytes_Join' mangled-name='_PyBytes_Join' filepath='./Include/cpython/bytesobject.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_ToUppercase' mangled-name='_PyUnicode_ToUppercase' filepath='./Include/cpython/unicodeobject.h' line='1111' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_ToLowercase' mangled-name='_PyUnicode_ToLowercase' filepath='./Include/cpython/unicodeobject.h' line='1107' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__ctype_toupper_loc' mangled-name='__ctype_toupper_loc' filepath='/usr/include/ctype.h' line='83' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_CallObject' mangled-name='PyObject_CallObject' filepath='./Include/abstract.h' line='169' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_codecsmodule.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyInit__codecs' mangled-name='PyInit__codecs' filepath='./Modules/_codecsmodule.c' line='1059' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__codecs'>
+    <function-decl name='PyInit__codecs' mangled-name='PyInit__codecs' filepath='./Modules/_codecsmodule.c' line='1065' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__codecs'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='PyCodec_Register' mangled-name='PyCodec_Register' filepath='./Include/codecs.h' line='26' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyCodec_RegisterError' mangled-name='PyCodec_RegisterError' filepath='./Include/codecs.h' line='206' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EncodeCharmap' mangled-name='_PyUnicode_EncodeCharmap' filepath='./Include/cpython/unicodeobject.h' line='932' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_AsLatin1String' mangled-name='_PyUnicode_AsLatin1String' filepath='./Include/cpython/unicodeobject.h' line='901' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsRawUnicodeEscapeString' mangled-name='PyUnicode_AsRawUnicodeEscapeString' filepath='./Include/unicodeobject.h' line='606' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsUnicodeEscapeString' mangled-name='PyUnicode_AsUnicodeEscapeString' filepath='./Include/unicodeobject.h' line='594' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EncodeUTF32' mangled-name='_PyUnicode_EncodeUTF32' filepath='./Include/cpython/unicodeobject.h' line='818' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EncodeUTF16' mangled-name='_PyUnicode_EncodeUTF16' filepath='./Include/cpython/unicodeobject.h' line='852' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_EncodeUTF7' mangled-name='_PyUnicode_EncodeUTF7' filepath='./Include/cpython/unicodeobject.h' line='790' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeCharmap' mangled-name='PyUnicode_DecodeCharmap' filepath='./Include/unicodeobject.h' line='657' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_DecodeRawUnicodeEscapeStateful' mangled-name='_PyUnicode_DecodeRawUnicodeEscapeStateful' filepath='./Include/cpython/unicodeobject.h' line='892' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyUnicode_DecodeUnicodeEscapeStateful' mangled-name='_PyUnicode_DecodeUnicodeEscapeStateful' filepath='./Include/cpython/unicodeobject.h' line='861' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUTF32Stateful' mangled-name='PyUnicode_DecodeUTF32Stateful' filepath='./Include/unicodeobject.h' line='502' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUTF16Stateful' mangled-name='PyUnicode_DecodeUTF16Stateful' filepath='./Include/unicodeobject.h' line='569' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_DecodeUTF7Stateful' mangled-name='PyUnicode_DecodeUTF7Stateful' filepath='./Include/unicodeobject.h' line='442' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyBytes_DecodeEscape' mangled-name='PyBytes_DecodeEscape' filepath='./Include/bytesobject.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyCodec_Forget' mangled-name='_PyCodec_Forget' filepath='./Include/codecs.h' line='53' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_BuildEncodingMap' mangled-name='PyUnicode_BuildEncodingMap' filepath='./Include/unicodeobject.h' line='430' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_weakref.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit__weakref' mangled-name='PyInit__weakref' filepath='./Modules/_weakref.c' line='188' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__weakref'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='PyWeakref_NewProxy' mangled-name='PyWeakref_NewProxy' filepath='./Include/weakrefobject.h' line='60' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyWeakref_GetWeakrefCount' mangled-name='_PyWeakref_GetWeakrefCount' filepath='./Include/weakrefobject.h' line='65' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_DelItemIf' mangled-name='_PyDict_DelItemIf' filepath='./Include/cpython/dictobject.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_functoolsmodule.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit__functools' mangled-name='PyInit__functools' filepath='./Modules/_functoolsmodule.c' line='1476' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__functools'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='PyModule_AddType' mangled-name='PyModule_AddType' filepath='./Include/modsupport.h' line='144' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyDict_Pop_KnownHash' mangled-name='_PyDict_Pop_KnownHash' filepath='./Include/cpython/dictobject.h' line='61' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySequence_Concat' mangled-name='PySequence_Concat' filepath='./Include/abstract.h' line='634' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyDict_Merge' mangled-name='PyDict_Merge' filepath='./Include/dictobject.h' line='44' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_operator.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit__operator' mangled-name='PyInit__operator' filepath='./Modules/_operator.c' line='1789' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__operator'>
       <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='./Modules/_collectionsmodule.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyInit__collections' mangled-name='PyInit__collections' filepath='./Modules/_collectionsmodule.c' line='2612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__collections'>
-      <return type-id='type-id-100'/>
-    </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='./Modules/_abc.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyInit__abc' mangled-name='PyInit__abc' filepath='./Modules/_abc.c' line='905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__abc'>
-      <return type-id='type-id-100'/>
+    <function-decl name='PySequence_Count' mangled-name='PySequence_Count' filepath='./Include/abstract.h' line='715' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='./Modules/itertoolsmodule.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyInit_itertools' mangled-name='PyInit_itertools' filepath='./Modules/itertoolsmodule.c' line='4767' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_itertools'>
-      <return type-id='type-id-100'/>
+    <function-decl name='PySequence_InPlaceConcat' mangled-name='PySequence_InPlaceConcat' filepath='./Include/abstract.h' line='748' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
   </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='./Modules/atexitmodule.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyInit_atexit' mangled-name='PyInit_atexit' filepath='./Modules/atexitmodule.c' line='352' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_atexit'>
+  <abi-instr version='1.0' address-size='64' path='./Modules/_collectionsmodule.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyInit__collections' mangled-name='PyInit__collections' filepath='./Modules/_collectionsmodule.c' line='2612' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__collections'>
       <return type-id='type-id-100'/>
     </function-decl>
-  </abi-instr>
-  <abi-instr version='1.0' address-size='64' path='./Modules/signalmodule.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='_PyOS_IsMainThread' mangled-name='_PyOS_IsMainThread' filepath='./Modules/signalmodule.c' line='1898' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_IsMainThread'>
-      <return type-id='type-id-8'/>
+    <function-decl name='PySequence_GetSlice' mangled-name='PySequence_GetSlice' filepath='./Include/abstract.h' line='650' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='_PySignal_AfterFork' mangled-name='_PySignal_AfterFork' filepath='./Modules/signalmodule.c' line='1889' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PySignal_AfterFork'>
+    <function-decl name='_PyArg_ParseStack' mangled-name='_PyArg_ParseStack' filepath='./Include/modsupport.h' line='111' column='1' visibility='default' binding='global' size-in-bits='64'>
       <return type-id='type-id-4'/>
     </function-decl>
-    <function-decl name='PyOS_InterruptOccurred' mangled-name='PyOS_InterruptOccurred' filepath='./Modules/signalmodule.c' line='1869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_InterruptOccurred'>
-      <return type-id='type-id-8'/>
+    <function-decl name='_PyType_LookupId' mangled-name='_PyType_LookupId' filepath='./Include/cpython/object.h' line='302' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
     </function-decl>
-    <class-decl name='_ts' size-in-bits='2112' is-struct='yes' visibility='default' filepath='./Include/cpython/pystate.h' line='51' column='1' id='type-id-708'>
-      <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='prev' type-id='type-id-232' visibility='default' filepath='./Include/cpython/pystate.h' line='54' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='next' type-id='type-id-232' visibility='default' filepath='./Include/cpython/pystate.h' line='55' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='interp' type-id='type-id-311' visibility='default' filepath='./Include/cpython/pystate.h' line='56' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='frame' type-id='type-id-234' visibility='default' filepath='./Include/cpython/pystate.h' line='59' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='recursion_depth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='60' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='288'>
-        <var-decl name='overflowed' type-id='type-id-1' visibility='default' filepath='./Include/cpython/pystate.h' line='61' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='296'>
-        <var-decl name='recursion_critical' type-id='type-id-1' visibility='default' filepath='./Include/cpython/pystate.h' line='63' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='stackcheck_counter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='65' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='352'>
-        <var-decl name='tracing' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='70' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='use_tracing' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='71' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='c_profilefunc' type-id='type-id-235' visibility='default' filepath='./Include/cpython/pystate.h' line='73' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='c_tracefunc' type-id='type-id-235' visibility='default' filepath='./Include/cpython/pystate.h' line='74' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='c_profileobj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='75' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='640'>
-        <var-decl name='c_traceobj' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='76' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='704'>
-        <var-decl name='curexc_type' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='79' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='768'>
-        <var-decl name='curexc_value' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='80' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='curexc_traceback' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='81' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='exc_state' type-id='type-id-236' visibility='default' filepath='./Include/cpython/pystate.h' line='86' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='exc_info' type-id='type-id-237' visibility='default' filepath='./Include/cpython/pystate.h' line='90' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='dict' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='92' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1280'>
-        <var-decl name='gilstate_counter' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='94' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1344'>
-        <var-decl name='async_exc' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='96' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1408'>
-        <var-decl name='thread_id' type-id='type-id-33' visibility='default' filepath='./Include/cpython/pystate.h' line='97' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1472'>
-        <var-decl name='trash_delete_nesting' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='99' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1536'>
-        <var-decl name='trash_delete_later' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='100' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1600'>
-        <var-decl name='on_delete' type-id='type-id-188' visibility='default' filepath='./Include/cpython/pystate.h' line='125' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1664'>
-        <var-decl name='on_delete_data' type-id='type-id-32' visibility='default' filepath='./Include/cpython/pystate.h' line='126' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1728'>
-        <var-decl name='coroutine_origin_tracking_depth' type-id='type-id-8' visibility='default' filepath='./Include/cpython/pystate.h' line='128' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='async_gen_firstiter' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='130' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='async_gen_finalizer' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='131' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1920'>
-        <var-decl name='context' type-id='type-id-100' visibility='default' filepath='./Include/cpython/pystate.h' line='133' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1984'>
-        <var-decl name='context_ver' type-id='type-id-238' visibility='default' filepath='./Include/cpython/pystate.h' line='134' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='2048'>
-        <var-decl name='id' type-id='type-id-238' visibility='default' filepath='./Include/cpython/pystate.h' line='137' column='1'/>
-      </data-member>
-    </class-decl>
-    <typedef-decl name='PyThreadState' type-id='type-id-708' filepath='./Include/pystate.h' line='20' column='1' id='type-id-709'/>
-    <pointer-type-def type-id='type-id-709' size-in-bits='64' id='type-id-710'/>
-    <function-decl name='_PyOS_InterruptOccurred' mangled-name='_PyOS_InterruptOccurred' filepath='./Modules/signalmodule.c' line='1851' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_InterruptOccurred'>
-      <parameter type-id='type-id-710' name='tstate' filepath='./Modules/signalmodule.c' line='1851' column='1'/>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='./Modules/_abc.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyInit__abc' mangled-name='PyInit__abc' filepath='./Modules/_abc.c' line='905' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__abc'>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='PyMapping_Items' mangled-name='PyMapping_Items' filepath='./Include/abstract.h' line='820' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyType_GetModuleState' mangled-name='PyType_GetModuleState' filepath='./Include/object.h' line='219' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySet_Clear' mangled-name='PySet_Clear' filepath='./Include/setobject.h' line='84' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyWeakref_GetObject' mangled-name='PyWeakref_GetObject' filepath='./Include/weakrefobject.h' line='62' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PySet_Size' mangled-name='PySet_Size' filepath='./Include/setobject.h' line='88' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='./Modules/itertoolsmodule.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyInit_itertools' mangled-name='PyInit_itertools' filepath='./Modules/itertoolsmodule.c' line='4768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_itertools'>
+      <return type-id='type-id-100'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='./Modules/atexitmodule.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='PyInit_atexit' mangled-name='PyInit_atexit' filepath='./Modules/atexitmodule.c' line='352' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_atexit'>
+      <return type-id='type-id-100'/>
+    </function-decl>
+    <function-decl name='_Py_PyAtExit' mangled-name='_Py_PyAtExit' filepath='./Include/cpython/pylifecycle.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+  </abi-instr>
+  <abi-instr version='1.0' address-size='64' path='./Modules/signalmodule.c' comp-dir-path='/src' language='LANG_C99'>
+    <function-decl name='_PyOS_IsMainThread' mangled-name='_PyOS_IsMainThread' filepath='./Modules/signalmodule.c' line='1898' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_IsMainThread'>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='PyOS_InterruptOccurred' mangled-name='PyOS_InterruptOccurred' filepath='./Modules/signalmodule.c' line='1869' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_InterruptOccurred'>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='PyOS_InitInterrupts' mangled-name='PyOS_InitInterrupts' filepath='./Modules/signalmodule.c' line='1787' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyOS_InitInterrupts'>
     <function-decl name='_PyErr_CheckSignals' mangled-name='_PyErr_CheckSignals' filepath='./Modules/signalmodule.c' line='1765' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_CheckSignals'>
       <return type-id='type-id-8'/>
     </function-decl>
-    <function-decl name='_PyErr_CheckSignalsTstate' mangled-name='_PyErr_CheckSignalsTstate' filepath='./Modules/signalmodule.c' line='1684' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_CheckSignalsTstate'>
-      <parameter type-id='type-id-710' name='tstate' filepath='./Modules/signalmodule.c' line='1684' column='1'/>
-      <return type-id='type-id-8'/>
-    </function-decl>
     <function-decl name='PyErr_CheckSignals' mangled-name='PyErr_CheckSignals' filepath='./Modules/signalmodule.c' line='1671' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyErr_CheckSignals'>
       <return type-id='type-id-8'/>
     </function-decl>
     <function-decl name='PyInit__signal' mangled-name='PyInit__signal' filepath='./Modules/signalmodule.c' line='1374' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__signal'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='_PyErr_CheckSignalsTstate' mangled-name='_PyErr_CheckSignalsTstate' filepath='./Modules/signalmodule.c' line='1684' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyErr_CheckSignalsTstate'>
+      <parameter type-id='type-id-552' name='tstate' filepath='./Modules/signalmodule.c' line='1684' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyOS_InterruptOccurred' mangled-name='_PyOS_InterruptOccurred' filepath='./Modules/signalmodule.c' line='1851' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyOS_InterruptOccurred'>
+      <parameter type-id='type-id-552' name='tstate' filepath='./Modules/signalmodule.c' line='1851' column='1'/>
+      <return type-id='type-id-8'/>
+    </function-decl>
+    <function-decl name='_PyEval_SignalReceived' mangled-name='_PyEval_SignalReceived' filepath='./Include/internal/pycore_ceval.h' line='21' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyEval_AddPendingCall' mangled-name='_PyEval_AddPendingCall' filepath='./Include/internal/pycore_ceval.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyOS_getsig' mangled-name='PyOS_getsig' filepath='./Include/pylifecycle.h' line='65' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__libc_current_sigrtmin' mangled-name='__libc_current_sigrtmin' filepath='/usr/include/signal.h' line='366' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='__libc_current_sigrtmax' mangled-name='__libc_current_sigrtmax' filepath='/usr/include/signal.h' line='368' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyErr_NewException' mangled-name='PyErr_NewException' filepath='./Include/pyerrors.h' line='223' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='sigismember' mangled-name='sigismember' filepath='/usr/include/signal.h' line='208' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='pthread_kill' mangled-name='pthread_kill' filepath='/usr/include/x86_64-linux-gnu/bits/sigthread.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='sigtimedwait' mangled-name='sigtimedwait' filepath='/usr/include/signal.h' line='269' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_FromSecondsObject' mangled-name='_PyTime_FromSecondsObject' filepath='./Include/pytime.h' line='96' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_AsTimespec' mangled-name='_PyTime_AsTimespec' filepath='./Include/pytime.h' line='158' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_Sigset_Converter' mangled-name='_Py_Sigset_Converter' filepath='./Modules/posixmodule.h' line='27' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='sigwaitinfo' mangled-name='sigwaitinfo' filepath='/usr/include/signal.h' line='261' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='sigfillset' mangled-name='sigfillset' filepath='/usr/include/signal.h' line='199' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='sigwait' mangled-name='sigwait' filepath='/usr/include/signal.h' line='252' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='sigpending' mangled-name='sigpending' filepath='/usr/include/signal.h' line='244' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='pause' mangled-name='pause' filepath='/usr/include/unistd.h' line='469' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='siginterrupt' mangled-name='siginterrupt' filepath='/usr/include/signal.h' line='314' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_AsTimeval' mangled-name='_PyTime_AsTimeval' filepath='./Include/pytime.h' line='129' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='setitimer' mangled-name='setitimer' filepath='/usr/include/x86_64-linux-gnu/sys/time.h' line='129' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='strsignal' mangled-name='strsignal' filepath='/usr/include/string.h' line='447' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='raise' mangled-name='raise' filepath='/usr/include/signal.h' line='123' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='getitimer' mangled-name='getitimer' filepath='/usr/include/x86_64-linux-gnu/sys/time.h' line='123' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='alarm' mangled-name='alarm' filepath='/usr/include/unistd.h' line='432' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='pthread_sigmask' mangled-name='pthread_sigmask' filepath='/usr/include/x86_64-linux-gnu/bits/sigthread.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_stat.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit__stat' mangled-name='PyInit__stat' filepath='./Modules/_stat.c' line='630' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__stat'>
     <function-decl name='PyInit_time' mangled-name='PyInit_time' filepath='./Modules/timemodule.c' line='2005' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_time'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='time' mangled-name='time' filepath='/usr/include/time.h' line='75' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_localtime' mangled-name='_PyTime_localtime' filepath='./Include/pytime.h' line='218' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_FromTimespec' mangled-name='_PyTime_FromTimespec' filepath='./Include/pytime.h' line='153' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_GetSystemClockWithInfo' mangled-name='_PyTime_GetSystemClockWithInfo' filepath='./Include/pytime.h' line='195' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_GetMonotonicClockWithInfo' mangled-name='_PyTime_GetMonotonicClockWithInfo' filepath='./Include/pytime.h' line='207' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_GetPerfCounterWithInfo' mangled-name='_PyTime_GetPerfCounterWithInfo' filepath='./Include/pytime.h' line='237' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_AsNanosecondsObject' mangled-name='_PyTime_AsNanosecondsObject' filepath='./Include/pytime.h' line='119' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_ObjectToTime_t' mangled-name='_PyTime_ObjectToTime_t' filepath='./Include/pytime.h' line='55' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsWideCharString' mangled-name='PyUnicode_AsWideCharString' filepath='./Include/unicodeobject.h' line='313' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='wcsftime' mangled-name='wcsftime' filepath='/usr/include/wchar.h' line='834' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_gmtime' mangled-name='_PyTime_gmtime' filepath='./Include/pytime.h' line='222' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='pthread_getcpuclockid' mangled-name='pthread_getcpuclockid' filepath='/usr/include/pthread.h' line='1140' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_GetSystemClock' mangled-name='_PyTime_GetSystemClock' filepath='./Include/pytime.h' line='171' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_FromTimeval' mangled-name='_PyTime_FromTimeval' filepath='./Include/pytime.h' line='123' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='clock' mangled-name='clock' filepath='/usr/include/time.h' line='72' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_MulDiv' mangled-name='_PyTime_MulDiv' filepath='./Include/pytime.h' line='163' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='getrusage' mangled-name='getrusage' filepath='/usr/include/x86_64-linux-gnu/sys/resource.h' line='87' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='tzset' mangled-name='tzset' filepath='/usr/include/time.h' line='170' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='select' mangled-name='select' filepath='/usr/include/x86_64-linux-gnu/sys/select.h' line='101' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='clock_settime' mangled-name='clock_settime' filepath='/usr/include/time.h' line='216' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_FromNanosecondsObject' mangled-name='_PyTime_FromNanosecondsObject' filepath='./Include/pytime.h' line='91' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='mktime' mangled-name='mktime' filepath='/usr/include/time.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_threadmodule.c' comp-dir-path='/src' language='LANG_C99'>
-    <function-decl name='PyInit__thread' mangled-name='PyInit__thread' filepath='./Modules/_threadmodule.c' line='1559' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__thread'>
+    <function-decl name='PyInit__thread' mangled-name='PyInit__thread' filepath='./Modules/_threadmodule.c' line='1562' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__thread'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='_PyErr_Display' mangled-name='_PyErr_Display' filepath='./Include/internal/pycore_pylifecycle.h' line='106' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThread_get_thread_native_id' mangled-name='PyThread_get_thread_native_id' filepath='./Include/pythread.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyThreadState_Prealloc' mangled-name='_PyThreadState_Prealloc' filepath='./Include/cpython/pystate.h' line='146' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThread_start_new_thread' mangled-name='PyThread_start_new_thread' filepath='./Include/pythread.h' line='24' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyThreadState_Init' mangled-name='_PyThreadState_Init' filepath='./Include/internal/pycore_pystate.h' line='111' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyEval_AcquireThread' mangled-name='PyEval_AcquireThread' filepath='./Include/ceval.h' line='137' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyThreadState_DeleteCurrent' mangled-name='_PyThreadState_DeleteCurrent' filepath='./Include/internal/pycore_pylifecycle.h' line='109' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyObject_GenericGetAttrWithDict' mangled-name='_PyObject_GenericGetAttrWithDict' filepath='./Include/cpython/object.h' line='340' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyTime_FromSeconds' mangled-name='_PyTime_FromSeconds' filepath='./Include/pytime.h' line='80' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThread_acquire_lock_timed' mangled-name='PyThread_acquire_lock_timed' filepath='./Include/pythread.h' line='87' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThread_get_stacksize' mangled-name='PyThread_get_stacksize' filepath='./Include/pythread.h' line='93' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThread_set_stacksize' mangled-name='PyThread_set_stacksize' filepath='./Include/pythread.h' line='94' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_localemodule.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit__locale' mangled-name='PyInit__locale' filepath='./Modules/_localemodule.c' line='842' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__locale'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='bindtextdomain' mangled-name='bindtextdomain' filepath='/usr/include/libintl.h' line='86' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='dcgettext' mangled-name='dcgettext' filepath='/usr/include/libintl.h' line='51' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='wcsxfrm' mangled-name='wcsxfrm' filepath='/usr/include/wchar.h' line='135' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='wcscoll' mangled-name='wcscoll' filepath='/usr/include/wchar.h' line='131' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='bind_textdomain_codeset' mangled-name='bind_textdomain_codeset' filepath='/usr/include/libintl.h' line='91' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='textdomain' mangled-name='textdomain' filepath='/usr/include/libintl.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_io/_iomodule.c' comp-dir-path='/src' language='LANG_C99'>
     <var-decl name='_PyIO_str_close' type-id='type-id-100' visibility='default' filepath='./Modules/_io/_iomodule.h' line='159' column='1'/>
     <function-decl name='PyInit__io' mangled-name='PyInit__io' filepath='./Modules/_io/_iomodule.c' line='676' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__io'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='PyFile_OpenCodeObject' mangled-name='PyFile_OpenCodeObject' filepath='./Include/cpython/fileobject.h' line='19' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_io/iobase.c' comp-dir-path='/src' language='LANG_C99'>
     <var-decl name='PyIOBase_Type' type-id='type-id-182' visibility='default' filepath='./Modules/_io/_iomodule.h' line='8' column='1'/>
     <var-decl name='PyRawIOBase_Type' type-id='type-id-182' visibility='default' filepath='./Modules/_io/_iomodule.h' line='9' column='1'/>
+    <function-decl name='_PyIO_trap_eintr' mangled-name='_PyIO_trap_eintr' filepath='./Modules/_io/_iomodule.h' line='76' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_CallMethodObjArgs' mangled-name='PyObject_CallMethodObjArgs' filepath='./Include/abstract.h' line='226' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyIO_get_module_state' mangled-name='_PyIO_get_module_state' filepath='./Modules/_io/_iomodule.h' line='152' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyObject_CallFinalizer' mangled-name='PyObject_CallFinalizer' filepath='./Include/cpython/object.h' line='334' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_io/fileio.c' comp-dir-path='/src' language='LANG_C99'>
     <var-decl name='PyFileIO_Type' type-id='type-id-182' visibility='default' filepath='./Modules/_io/_iomodule.h' line='14' column='1'/>
+    <function-decl name='_PyIOBase_finalize' mangled-name='_PyIOBase_finalize' filepath='./Modules/_io/_iomodule.h' line='45' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_io/bytesio.c' comp-dir-path='/src' language='LANG_C99'>
     <var-decl name='PyBytesIO_Type' type-id='type-id-182' visibility='default' filepath='./Modules/_io/_iomodule.h' line='15' column='1'/>
     <var-decl name='_PyBytesIOBuffer_Type' type-id='type-id-182' mangled-name='_PyBytesIOBuffer_Type' visibility='default' filepath='./Modules/_io/_iomodule.h' line='188' column='1' elf-symbol-id='_PyBytesIOBuffer_Type'/>
+    <function-decl name='_PySys_GetSizeOf' mangled-name='_PySys_GetSizeOf' filepath='./Include/cpython/sysmodule.h' line='12' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_io/bufferedio.c' comp-dir-path='/src' language='LANG_C99'>
     <var-decl name='PyBufferedIOBase_Type' type-id='type-id-182' visibility='default' filepath='./Modules/_io/_iomodule.h' line='10' column='1'/>
     <var-decl name='PyBufferedWriter_Type' type-id='type-id-182' visibility='default' filepath='./Modules/_io/_iomodule.h' line='18' column='1'/>
     <var-decl name='PyBufferedRWPair_Type' type-id='type-id-182' visibility='default' filepath='./Modules/_io/_iomodule.h' line='19' column='1'/>
     <var-decl name='PyBufferedRandom_Type' type-id='type-id-182' visibility='default' filepath='./Modules/_io/_iomodule.h' line='20' column='1'/>
+    <function-decl name='_PyIOBase_check_seekable' mangled-name='_PyIOBase_check_seekable' filepath='./Modules/_io/_iomodule.h' line='38' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyIOBase_check_readable' mangled-name='_PyIOBase_check_readable' filepath='./Modules/_io/_iomodule.h' line='36' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyIOBase_check_writable' mangled-name='_PyIOBase_check_writable' filepath='./Modules/_io/_iomodule.h' line='37' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyFileIO_closed' mangled-name='_PyFileIO_closed' filepath='./Modules/_io/_iomodule.h' line='49' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyNumber_AsOff_t' mangled-name='PyNumber_AsOff_t' filepath='./Modules/_io/_iomodule.h' line='134' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyBytes_Concat' mangled-name='PyBytes_Concat' filepath='./Include/bytesobject.h' line='47' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_io/textio.c' comp-dir-path='/src' language='LANG_C99'>
     <var-decl name='PyTextIOBase_Type' type-id='type-id-182' visibility='default' filepath='./Modules/_io/_iomodule.h' line='11' column='1'/>
     <var-decl name='PyIncrementalNewlineDecoder_Type' type-id='type-id-182' visibility='default' filepath='./Modules/_io/_iomodule.h' line='22' column='1'/>
     <var-decl name='PyTextIOWrapper_Type' type-id='type-id-182' visibility='default' filepath='./Modules/_io/_iomodule.h' line='21' column='1'/>
+    <function-decl name='_PyIOBase_check_closed' mangled-name='_PyIOBase_check_closed' filepath='./Modules/_io/_iomodule.h' line='39' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyLong_AsByteArray' mangled-name='_PyLong_AsByteArray' filepath='./Include/longobject.h' line='172' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyCodec_LookupTextEncoding' mangled-name='_PyCodec_LookupTextEncoding' filepath='./Include/codecs.h' line='115' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyIO_get_locale_module' mangled-name='_PyIO_get_locale_module' filepath='./Modules/_io/_iomodule.h' line='153' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyCodecInfo_GetIncrementalEncoder' mangled-name='_PyCodecInfo_GetIncrementalEncoder' filepath='./Include/codecs.h' line='140' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyCodecInfo_GetIncrementalDecoder' mangled-name='_PyCodecInfo_GetIncrementalDecoder' filepath='./Include/codecs.h' line='135' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_io/stringio.c' comp-dir-path='/src' language='LANG_C99'>
     <var-decl name='PyStringIO_Type' type-id='type-id-182' visibility='default' filepath='./Modules/_io/_iomodule.h' line='16' column='1'/>
+    <function-decl name='_PyAccu_Destroy' mangled-name='_PyAccu_Destroy' filepath='./Include/internal/pycore_accu.h' line='33' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAccu_Init' mangled-name='_PyAccu_Init' filepath='./Include/internal/pycore_accu.h' line='29' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyIO_find_line_ending' mangled-name='_PyIO_find_line_ending' filepath='./Modules/_io/_iomodule.h' line='68' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAccu_Finish' mangled-name='_PyAccu_Finish' filepath='./Include/internal/pycore_accu.h' line='32' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyAccu_Accumulate' mangled-name='_PyAccu_Accumulate' filepath='./Include/internal/pycore_accu.h' line='30' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyIncrementalNewlineDecoder_decode' mangled-name='_PyIncrementalNewlineDecoder_decode' filepath='./Modules/_io/_iomodule.h' line='52' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsUCS4' mangled-name='PyUnicode_AsUCS4' filepath='./Include/unicodeobject.h' line='154' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyUnicode_AsUCS4Copy' mangled-name='PyUnicode_AsUCS4Copy' filepath='./Include/unicodeobject.h' line='163' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/faulthandler.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit_faulthandler' mangled-name='PyInit_faulthandler' filepath='./Modules/faulthandler.c' line='1307' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_faulthandler'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='sigaltstack' mangled-name='sigaltstack' filepath='/usr/include/signal.h' line='321' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='getrlimit' mangled-name='getrlimit64' filepath='/usr/include/x86_64-linux-gnu/sys/resource.h' line='54' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='setrlimit' mangled-name='setrlimit64' filepath='/usr/include/x86_64-linux-gnu/sys/resource.h' line='73' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_PyThreadState_UncheckedGet' mangled-name='_PyThreadState_UncheckedGet' filepath='./Include/cpython/pystate.h' line='150' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyThreadState_GetInterpreter' mangled-name='PyThreadState_GetInterpreter' filepath='./Include/pystate.h' line='89' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_DumpTraceback' mangled-name='_Py_DumpTraceback' filepath='./Include/internal/pycore_traceback.h' line='31' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_tracemalloc.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='_PyTraceMalloc_GetTraceback' mangled-name='_PyTraceMalloc_GetTraceback' filepath='./Modules/_tracemalloc.c' line='1812' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyTraceMalloc_GetTraceback'>
     <function-decl name='PyInit__tracemalloc' mangled-name='PyInit__tracemalloc' filepath='./Modules/_tracemalloc.c' line='1695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__tracemalloc'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='_Py_hashtable_get' mangled-name='_Py_hashtable_get' filepath='./Include/internal/pycore_hashtable.h' line='132' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_hashtable_steal' mangled-name='_Py_hashtable_steal' filepath='./Include/internal/pycore_hashtable.h' line='140' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_hashtable_size' mangled-name='_Py_hashtable_size' filepath='./Include/internal/pycore_hashtable.h' line='108' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_DumpASCII' mangled-name='_Py_DumpASCII' filepath='./Include/internal/pycore_traceback.h' line='70' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_DumpDecimal' mangled-name='_Py_DumpDecimal' filepath='./Include/internal/pycore_traceback.h' line='75' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_hashtable_foreach' mangled-name='_Py_hashtable_foreach' filepath='./Include/internal/pycore_hashtable.h' line='103' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='_Py_hashtable_clear' mangled-name='_Py_hashtable_clear' filepath='./Include/internal/pycore_hashtable.h' line='94' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyMem_GetAllocator' mangled-name='PyMem_GetAllocator' filepath='./Include/cpython/pymem.h' line='71' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/_peg_parser.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit__peg_parser' mangled-name='PyInit__peg_parser' filepath='./Modules/_peg_parser.c' line='150' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__peg_parser'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='PyPegen_ASTFromString' mangled-name='PyPegen_ASTFromString' filepath='./Include/internal/pegen_interface.h' line='14' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
+    <function-decl name='PyParser_ASTFromString' mangled-name='PyParser_ASTFromString' filepath='./Include/pythonrun.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/symtablemodule.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit__symtable' mangled-name='PyInit__symtable' filepath='./Modules/symtablemodule.c' line='87' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit__symtable'>
       <return type-id='type-id-100'/>
     </function-decl>
+    <function-decl name='_Py_SymtableStringObjectFlags' mangled-name='_Py_SymtableStringObjectFlags' filepath='./Include/pythonrun.h' line='140' column='1' visibility='default' binding='global' size-in-bits='64'>
+      <return type-id='type-id-4'/>
+    </function-decl>
   </abi-instr>
   <abi-instr version='1.0' address-size='64' path='./Modules/xxsubtype.c' comp-dir-path='/src' language='LANG_C99'>
     <function-decl name='PyInit_xxsubtype' mangled-name='PyInit_xxsubtype' filepath='./Modules/xxsubtype.c' line='311' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyInit_xxsubtype'>
index 56a0a2eaef7be1c8f7e35a0a05d6c0f4837eea82..136cf4e77b15430505eb3a0c396d6e4ac17f18c1 100644 (file)
@@ -31,7 +31,7 @@ installing other Python projects, refer to the
 Key terms
 =========
 
-* the `Python Packaging Index <https://pypi.org>`__ is a public
+* the `Python Package Index <https://pypi.org>`__ is a public
   repository of open source licensed packages made available for use by
   other Python users
 * the `Python Packaging Authority
@@ -101,7 +101,7 @@ by invoking the ``pip`` module at the command line::
 
 .. note::
 
-   For POSIX users (including Mac OS X and Linux users), these instructions
+   For POSIX users (including macOS and Linux users), these instructions
    assume the use of a :term:`virtual environment`.
 
    For Windows users, these instructions assume that the option to
@@ -127,14 +127,14 @@ involved in creating and publishing a project:
 
 * `Project structure`_
 * `Building and packaging the project`_
-* `Uploading the project to the Python Packaging Index`_
+* `Uploading the project to the Python Package Index`_
 * `The .pypirc file`_
 
 .. _Project structure: \
     https://packaging.python.org/tutorials/packaging-projects/#packaging-python-projects
 .. _Building and packaging the project: \
    https://packaging.python.org/tutorials/packaging-projects/#creating-the-package-files
-.. _Uploading the project to the Python Packaging Index: \
+.. _Uploading the project to the Python Package Index: \
    https://packaging.python.org/tutorials/packaging-projects/#uploading-the-distribution-archives
 .. _The .pypirc file: \
    https://packaging.python.org/specifications/pypirc/
@@ -150,7 +150,7 @@ These are quick answers or links for some common tasks.
 
 This isn't an easy topic, but here are a few tips:
 
-* check the Python Packaging Index to see if the name is already in use
+* check the Python Package Index to see if the name is already in use
 * check popular hosting sites like GitHub, Bitbucket, etc to see if there
   is already a project with that name
 * check what comes up in a web search for the name you're considering
index b14197c2f94dbabfb57884a6b29dc009f2dae896..fadce73843c0559de714e769b3fb74dc759c8211 100644 (file)
@@ -373,7 +373,7 @@ This module provides the following functions.
    compiler object under Unix---if you supply a value for *compiler*, *plat* is
    ignored.
 
-   .. % Is the posix/nt only thing still true? Mac OS X seems to work, and
+   .. % Is the posix/nt only thing still true? macOS seems to work, and
    .. % returns a UnixCCompiler instance. How to document this... hmm.
 
 
@@ -1119,11 +1119,11 @@ other utility module.
 
    For non-POSIX platforms, currently just returns ``sys.platform``.
 
-   For Mac OS X systems the OS version reflects the minimal version on which
+   For macOS systems the OS version reflects the minimal version on which
    binaries will run (that is, the value of ``MACOSX_DEPLOYMENT_TARGET``
    during the build of Python), not the OS version of the current system.
 
-   For universal binary builds on Mac OS X the architecture value reflects
+   For universal binary builds on macOS the architecture value reflects
    the universal binary status instead of the architecture of the current
    processor. For 32-bit universal binaries the architecture is ``fat``,
    for 64-bit universal binaries the architecture is ``fat64``, and
@@ -1132,7 +1132,7 @@ other utility module.
    a 3-way universal build (ppc, i386, x86_64) and ``intel`` is used for
    a universal build with the i386 and x86_64 architectures
 
-   Examples of returned values on Mac OS X:
+   Examples of returned values on macOS:
 
    * ``macosx-10.3-ppc``
 
index d9023709fddc86ff42c387c2d912e047ac6c77ab..7c51d8e29cd42c2ec328c269755aac90fccb782b 100644 (file)
@@ -73,7 +73,19 @@ function::
    newdatatype_dealloc(newdatatypeobject *obj)
    {
        free(obj->obj_UnderlyingDatatypePtr);
-       Py_TYPE(obj)->tp_free(obj);
+       Py_TYPE(obj)->tp_free((PyObject *)obj);
+   }
+
+If your type supports garbage collection, the destructor should call
+:c:func:`PyObject_GC_UnTrack` before clearing any member fields::
+
+   static void
+   newdatatype_dealloc(newdatatypeobject *obj)
+   {
+       PyObject_GC_UnTrack(obj);
+       Py_CLEAR(obj->other_obj);
+       ...
+       Py_TYPE(obj)->tp_free((PyObject *)obj);
    }
 
 .. index::
@@ -376,7 +388,7 @@ analogous to the :ref:`rich comparison methods <richcmpfuncs>`, like
 :c:func:`PyObject_RichCompareBool`.
 
 This function is called with two Python objects and the operator as arguments,
-where the operator is one of ``Py_EQ``, ``Py_NE``, ``Py_LE``, ``Py_GT``,
+where the operator is one of ``Py_EQ``, ``Py_NE``, ``Py_LE``, ``Py_GE``,
 ``Py_LT`` or ``Py_GT``.  It should compare the two objects with respect to the
 specified operator and return ``Py_True`` or ``Py_False`` if the comparison is
 successful, ``Py_NotImplemented`` to indicate that comparison is not
index d2b868ebb8290a8cccc35f132371476c5887327d..d0aee4e6072686169c0565d4721fafbcccd182bd 100644 (file)
@@ -715,7 +715,7 @@ Why don't generators support the with statement?
 For technical reasons, a generator used directly as a context manager
 would not work correctly.  When, as is most common, a generator is used as
 an iterator run to completion, no closing is needed.  When it is, wrap
-it as "contextlib.closing(generator)" in the 'with' statment.
+it as "contextlib.closing(generator)" in the 'with' statement.
 
 
 Why are colons required for the if/while/def/class statements?
index 145283d072d40ccb61b44b03ca0014df62788150..86c56d957cdfec413969713456fef6cf5fa383f8 100644 (file)
@@ -23,7 +23,7 @@ install (since it comes included with most
 `binary distributions <https://www.python.org/downloads/>`_ of Python) and use.
 For more info about Tk, including pointers to the source, see the
 `Tcl/Tk home page <https://www.tcl.tk>`_.  Tcl/Tk is fully portable to the
-Mac OS X, Windows, and Unix platforms.
+macOS, Windows, and Unix platforms.
 
 Depending on what platform(s) you are aiming at, there are also several
 alternatives. A `list of cross-platform
index 42296533e26f3202fa696eab1b805e73a3d385bb..16c9a74daffb1db130c9b10704f9c59d1ab4bcfa 100644 (file)
@@ -29,7 +29,7 @@ there are several possible ways it could have gotten there.
 * Some Windows machines also have Python installed.  At this writing we're aware
   of computers from Hewlett-Packard and Compaq that include Python.  Apparently
   some of HP/Compaq's administrative tools are written in Python.
-* Many Unix-compatible operating systems, such as Mac OS X and some Linux
+* Many Unix-compatible operating systems, such as macOS and some Linux
   distributions, have Python installed by default; it's included in the base
   installation.
 
index 04d6592aeccdbe218085b34bc5186a0d33e5c2e0..5286bbbccf0731a460c9730234f5d4cbb1e888c2 100644 (file)
@@ -836,6 +836,27 @@ ago?  ``-190 % 12 == 2`` is useful; ``-190 % 12 == -10`` is a bug waiting to
 bite.
 
 
+How do I get int literal attribute instead of SyntaxError?
+----------------------------------------------------------
+
+Trying to lookup an ``int`` literal attribute in the normal manner gives
+a syntax error because the period is seen as a decimal point::
+
+   >>> 1.__class__
+     File "<stdin>", line 1
+     1.__class__
+      ^
+   SyntaxError: invalid decimal literal
+
+The solution is to separate the literal from the period
+with either a space or parentheses.
+
+   >>> 1 .__class__
+   <class 'int'>
+   >>> (1).__class__
+   <class 'int'>
+
+
 How do I convert a string to a number?
 --------------------------------------
 
@@ -1184,7 +1205,7 @@ difference is that a Python list can contain objects of many different types.
 
 The ``array`` module also provides methods for creating arrays of fixed types
 with compact representations, but they are slower to index than lists.  Also
-note that the Numeric extensions and others define array-like structures with
+note that NumPy and other third party packages define array-like structures with
 various characteristics as well.
 
 To get Lisp-style linked lists, you can emulate cons cells using tuples::
index 74e861480d2ff8873caa78f08c42bddb9be61727..c7f8bc8f17f43be5ed37f509f69bcf1ab0ffe576 100644 (file)
@@ -65,11 +65,10 @@ output must only depend on its input.
 
 Some languages are very strict about purity and don't even have assignment
 statements such as ``a=3`` or ``c = a + b``, but it's difficult to avoid all
-side effects.  Printing to the screen or writing to a disk file are side
-effects, for example.  For example, in Python a call to the :func:`print` or
-:func:`time.sleep` function both return no useful value; they're only called for
-their side effects of sending some text to the screen or pausing execution for a
-second.
+side effects, such as printing to the screen or writing to a disk file. Another
+example is a call to the :func:`print` or :func:`time.sleep` function, neither
+of which returns a useful value. Both are called only for their side effects
+of sending some text to the screen or pausing execution for a second.
 
 Python programs written in functional style usually won't go to the extreme of
 avoiding all I/O or all assignments; instead, they'll provide a
index a857a155cdd4ff6f3f7793e9d0bd526615d52455..c0d87cd559118c4ae86528c3bbf039ef62eef473 100644 (file)
@@ -3,9 +3,9 @@ import sqlite3
 con = sqlite3.connect(":memory:")
 cur = con.cursor()
 
-AUSTRIA = "\xd6sterreich"
+AUSTRIA = "Österreich"
 
-# by default, rows are returned as Unicode
+# by default, rows are returned as str
 cur.execute("select ?", (AUSTRIA,))
 row = cur.fetchone()
 assert row[0] == AUSTRIA
index ae0d0294ef777380a908f67457052ff5531b5d6b..eb4de247e7fcdbadd4571d5729640b16539ae4f7 100644 (file)
@@ -199,7 +199,7 @@ directory.
 If you don't choose an installation directory---i.e., if you just run ``setup.py
 install``\ ---then the :command:`install` command installs to the standard
 location for third-party Python modules.  This location varies by platform and
-by how you built/installed Python itself.  On Unix (and Mac OS X, which is also
+by how you built/installed Python itself.  On Unix (and macOS, which is also
 Unix-based), it also depends on whether the module distribution being installed
 is pure Python or contains extensions ("non-pure"):
 
@@ -229,7 +229,7 @@ Notes:
 
 :file:`{prefix}` and :file:`{exec-prefix}` stand for the directories that Python
 is installed to, and where it finds its libraries at run-time.  They are always
-the same under Windows, and very often the same under Unix and Mac OS X.  You
+the same under Windows, and very often the same under Unix and macOS.  You
 can find out what your Python installation uses for :file:`{prefix}` and
 :file:`{exec-prefix}` by running Python in interactive mode and typing a few
 simple commands. Under Unix, just type ``python`` at the shell prompt.  Under
@@ -305,7 +305,7 @@ install into it.  It is enabled with a simple option::
 Files will be installed into subdirectories of :data:`site.USER_BASE` (written
 as :file:`{userbase}` hereafter).  This scheme installs pure Python modules and
 extension modules in the same location (also known as :data:`site.USER_SITE`).
-Here are the values for UNIX, including Mac OS X:
+Here are the values for UNIX, including macOS:
 
 =============== ===========================================================
 Type of file    Installation directory
@@ -728,7 +728,7 @@ Location and names of config files
 ----------------------------------
 
 The names and locations of the configuration files vary slightly across
-platforms.  On Unix and Mac OS X, the three configuration files (in the order
+platforms.  On Unix and macOS, the three configuration files (in the order
 they are processed) are:
 
 +--------------+----------------------------------------------------------+-------+
index 31e9b0bde0724440d4a876b311476a506ef01dae..4bacc7ba0c2cf2ed1bba0b7a89ed4efa7a7eaf2f 100644 (file)
@@ -44,7 +44,7 @@ Key terms
   ``venv``. It allows virtual environments to be used on versions of
   Python prior to 3.4, which either don't provide ``venv`` at all, or
   aren't able to automatically install ``pip`` into created environments.
-* The `Python Packaging Index <https://pypi.org>`__ is a public
+* The `Python Package Index <https://pypi.org>`__ is a public
   repository of open source licensed packages made available for use by
   other Python users.
 * the `Python Packaging Authority
@@ -78,13 +78,13 @@ The standard packaging tools are all designed to be used from the command
 line.
 
 The following command will install the latest version of a module and its
-dependencies from the Python Packaging Index::
+dependencies from the Python Package Index::
 
     python -m pip install SomePackage
 
 .. note::
 
-   For POSIX users (including Mac OS X and Linux users), the examples in
+   For POSIX users (including macOS and Linux users), the examples in
    this guide assume the use of a :term:`virtual environment`.
 
    For Windows users, the examples in this guide assume that the option to
@@ -163,7 +163,7 @@ rather than attempting to install them with ``pip``.
 ... work with multiple versions of Python installed in parallel?
 ----------------------------------------------------------------
 
-On Linux, Mac OS X, and other POSIX systems, use the versioned Python commands
+On Linux, macOS, and other POSIX systems, use the versioned Python commands
 in combination with the ``-m`` switch to run the appropriate copy of
 ``pip``::
 
@@ -225,8 +225,8 @@ users being expected to compile extension modules from source as part of
 the installation process.
 
 With the introduction of support for the binary ``wheel`` format, and the
-ability to publish wheels for at least Windows and Mac OS X through the
-Python Packaging Index, this problem is expected to diminish over time,
+ability to publish wheels for at least Windows and macOS through the
+Python Package Index, this problem is expected to diminish over time,
 as users are more regularly able to install pre-built extensions rather
 than needing to build them themselves.
 
index 6c01667b961861893de9a47ac73f480e61aae4a4..fa731fec3a85a61ecc1e18311766fba2029a9d99 100644 (file)
@@ -1104,7 +1104,7 @@ Anything with more interesting error-handling or resource management should be
 done downstream after the arguments are parsed.
 
 For example, JSON or YAML conversions have complex error cases that require
-better reporting than can be given by the ``type`` keyword.  An
+better reporting than can be given by the ``type`` keyword.  A
 :exc:`~json.JSONDecodeError` would not be well formatted and a
 :exc:`FileNotFound` exception would not be handled at all.
 
index f2f7894e1bf0f0643c3fc0db9ff825e8c647fdac..f892d0983b6b37f7f08f5154549776a4542a543d 100644 (file)
@@ -256,7 +256,6 @@ Examples::
       Packing and unpacking of External Data Representation (XDR) data as used in some
       remote procedure call systems.
 
-   `The Numerical Python Documentation <https://docs.scipy.org/doc/>`_
-      The Numeric Python extension (NumPy) defines another array type; see
-      http://www.numpy.org/ for further information about Numerical Python.
+   `NumPy <https://numpy.org/>`_
+      The NumPy package defines another array type.
 
index b8eecbda5e408e9844e3d4701898d3570a1cf003..149179d5bfd5d695555af464aff58925ee1893f3 100644 (file)
@@ -1549,6 +1549,19 @@ and classes for traversing abstract syntax trees:
    ``await`` as variable names.  The lowest supported version is
    ``(3, 4)``; the highest is ``sys.version_info[0:2]``.
 
+   If source contains a null character ('\0'), :exc:`ValueError` is raised.
+
+    .. warning::
+      Note that successfully parsing source code into an AST object doesn't
+      guarantee that the source code provided is valid Python code that can
+      be executed as the compilation step can raise further :exc:`SyntaxError`
+      exceptions. For instance, the source ``return 42`` generates a valid
+      AST node for a return statement, but it cannot be compiled alone (it needs
+      to be inside a function node).
+
+      In particular, :func:`ast.parse` won't do any scoping checks, which the
+      compilation step does.
+
    .. warning::
       It is possible to crash the Python interpreter with a
       sufficiently large/complex string due to stack depth limitations
index 714de8d41a3503cfde0c4131d9983c32932f7e5c..bf431cfb8a410a66de87d836d17318dcbbb21f0f 100644 (file)
@@ -373,8 +373,8 @@ TCP echo server using the :func:`asyncio.start_server` function::
         server = await asyncio.start_server(
             handle_echo, '127.0.0.1', 8888)
 
-        addr = server.sockets[0].getsockname()
-        print(f'Serving on {addr}')
+        addrs = ', '.join(str(sock.getsockname()) for sock in server.sockets)
+        print(f'Serving on {addrs}')
 
         async with server:
             await server.serve_forever()
index 0c985c07040c5749622e51b155fa8103f0825100..3ec919e9ccd000e9ea1026fbbc59a439b1914ec5 100644 (file)
@@ -89,7 +89,7 @@ To get at submitted form data, use the :class:`FieldStorage` class. If the form
 contains non-ASCII characters, use the *encoding* keyword parameter set to the
 value of the encoding defined for the document. It is usually contained in the
 META tag in the HEAD section of the HTML document or by the
-:mailheader:`Content-Type` header).  This reads the form contents from the
+:mailheader:`Content-Type` header.  This reads the form contents from the
 standard input or the environment (depending on the value of various
 environment variables set according to the CGI standard).  Since it may consume
 standard input, it should be instantiated only once.
index 3338545e9267dc08aacab50129a0af72e574e43b..2f7497c0c4934c917440e79f41deefc842b1a578 100644 (file)
@@ -920,7 +920,7 @@ it's a device to determine the storage layout of the encoded bytes, and vanishes
 once the byte sequence has been decoded into a string; as a ``ZERO WIDTH
 NO-BREAK SPACE`` it's a normal character that will be decoded like any other.
 
-There's another encoding that is able to encoding the full range of Unicode
+There's another encoding that is able to encode the full range of Unicode
 characters: UTF-8. UTF-8 is an 8-bit encoding, which means there are no issues
 with byte order in UTF-8. Each byte in a UTF-8 byte sequence consists of two
 parts: marker bits (the most significant bits) and payload bits. The marker bits
index 2345e78a17e4f573c9409d95e13dc3aaeecc631a..cb4f76709716960034ca47cb66e6f0be17443c34 100644 (file)
@@ -24,6 +24,9 @@ This module provides :term:`abstract base classes <abstract base class>` that
 can be used to test whether a class provides a particular interface; for
 example, whether it is hashable or whether it is a mapping.
 
+.. versionadded:: 3.9
+   These abstract classes now support ``[]``. See :ref:`types-genericalias`
+   and :pep:`585`.
 
 .. _collections-abstract-base-classes:
 
index 3de5918367ace463e4416e8f91a209a2a54d66e9..60d33f59276f9485534e39b38e95e60afbcac204 100644 (file)
@@ -237,7 +237,8 @@ A configuration file consists of sections, each led by a ``[section]`` header,
 followed by key/value entries separated by a specific string (``=`` or ``:`` by
 default [1]_).  By default, section names are case sensitive but keys are not
 [1]_.  Leading and trailing whitespace is removed from keys and values.
-Values can be omitted, in which case the key/value delimiter may also be left
+Values can be omitted if the parser is configured to allow it [1]_,
+in which case the key/value delimiter may also be left
 out.  Values can also span multiple lines, as long as they are indented deeper
 than the first line of the value.  Depending on the parser's mode, blank lines
 may be treated as parts of multiline values or ignored.
index fd6422cc8c06c5f38ba6379d49154f575ee7d30f..b186f1d5753a65f536ecb699d29d6148fdad833c 100644 (file)
@@ -20,7 +20,7 @@ ctypes tutorial
 
 Note: The code samples in this tutorial use :mod:`doctest` to make sure that
 they actually work.  Since some code samples behave differently under Linux,
-Windows, or Mac OS X, they contain doctest directives in comments.
+Windows, or macOS, they contain doctest directives in comments.
 
 Note: Some code samples reference the ctypes :class:`c_int` type.  On platforms
 where ``sizeof(long) == sizeof(int)`` it is an alias to :class:`c_long`.
@@ -80,7 +80,7 @@ the library by creating an instance of CDLL by calling the constructor::
    <CDLL 'libc.so.6', handle ... at ...>
    >>>
 
-.. XXX Add section for Mac OS X.
+.. XXX Add section for macOS.
 
 
 .. _ctypes-accessing-functions-from-loaded-dlls:
@@ -1288,7 +1288,7 @@ Here are some examples::
    'libbz2.so.1.0'
    >>>
 
-On OS X, :func:`find_library` tries several predefined naming schemes and paths
+On macOS, :func:`find_library` tries several predefined naming schemes and paths
 to locate the library, and returns a full pathname if successful::
 
    >>> from ctypes.util import find_library
index dae0dd7aa55898d84c9a43f18f69411bba719948..0f8b70cdedb45684ebcef01a92eb5dce228124bd 100644 (file)
@@ -27,6 +27,9 @@ on efficient attribute extraction for output formatting and manipulation.
    Module :mod:`time`
       Time access and conversions.
 
+   Module :mod:`zoneinfo`
+      Concrete time zones representing the IANA time zone database.
+
    Package `dateutil <https://dateutil.readthedocs.io/en/stable/>`_
       Third-party library with expanded time zone and parsing support.
 
@@ -2174,14 +2177,13 @@ only EST (fixed offset -5 hours), or only EDT (fixed offset -4 hours)).
 
 .. seealso::
 
-   `dateutil.tz <https://dateutil.readthedocs.io/en/stable/tz.html>`_
+    :mod:`zoneinfo`
       The :mod:`datetime` module has a basic :class:`timezone` class (for
       handling arbitrary fixed offsets from UTC) and its :attr:`timezone.utc`
       attribute (a UTC timezone instance).
 
-      *dateutil.tz* library brings the *IANA timezone database*
-      (also known as the Olson database) to Python, and its usage is
-      recommended.
+      ``zoneinfo`` brings the *IANA timezone database* (also known as the Olson
+      database) to Python, and its usage is recommended.
 
    `IANA timezone database <https://www.iana.org/time-zones>`_
       The Time Zone Database (often called tz, tzdata or zoneinfo) contains code
@@ -2431,7 +2433,8 @@ incomplete or ambiguous ISO 8601 directives will raise a :exc:`ValueError`.
 The full set of format codes supported varies across platforms, because Python
 calls the platform C library's :func:`strftime` function, and platform
 variations are common. To see the full set of format codes supported on your
-platform, consult the :manpage:`strftime(3)` documentation.
+platform, consult the :manpage:`strftime(3)` documentation. There are also
+differences between platforms in handling of unsupported format specifiers.
 
 .. versionadded:: 3.6
    ``%G``, ``%u`` and ``%V`` were added.
index 57ae547b833cc0eb2a76cdfc4ed3d1f5d5b24794..ff01ae90f642573aa24f86528423caa59902d4ab 100644 (file)
@@ -216,7 +216,7 @@ supported.
       contains them all::
 
          k = db.firstkey()
-         while k != None:
+         while k is not None:
              print(k)
              k = db.nextkey(k)
 
index bbe8bdc82b409121e09e7a673dc815fca1113ed5..4e15901c66bfc9163ab1395d91f7fc131428f181 100644 (file)
@@ -1125,9 +1125,9 @@ and raise an error if the two do not match::
 _Private__names
 """""""""""""""
 
-Private names will be normal attributes in Python 3.10 instead of either an error
+:ref:`Private names <private-name-mangling>` will be normal attributes in Python 3.11 instead of either an error
 or a member (depending on if the name ends with an underscore). Using these names
-in 3.9 will issue a :exc:`DeprecationWarning`.
+in 3.9 and 3.10 will issue a :exc:`DeprecationWarning`.
 
 
 ``Enum`` member type
@@ -1150,6 +1150,10 @@ all-uppercase names for members)::
     >>> FieldTypes.size.value
     2
 
+.. note::
+
+   This behavior is deprecated and will be removed in 3.12.
+
 .. versionchanged:: 3.5
 
 
@@ -1200,3 +1204,8 @@ all named flags and all named combinations of flags that are in the value::
     >>> Color(7)      # not named combination
     <Color.CYAN|MAGENTA|BLUE|YELLOW|GREEN|RED: 7>
 
+.. note::
+
+   In 3.11 unnamed combinations of flags will only produce the canonical flag
+   members (aka single-value flags).  So ``Color(7)`` would produce something
+   like ``<Color.BLUE|GREEN|RED: 7>``.
index 85cd193f903b0f7c44cd435d27a7dc1fff0a2fc5..6c21c6b96d3c63fbf987665e1873c1649f2571c2 100644 (file)
@@ -34,6 +34,10 @@ class or one of its subclasses, and not from :exc:`BaseException`.  More
 information on defining exceptions is available in the Python Tutorial under
 :ref:`tut-userexceptions`.
 
+
+Exception context
+-----------------
+
 When raising (or re-raising) an exception in an :keyword:`except` or
 :keyword:`finally` clause
 :attr:`__context__` is automatically set to the last exception caught; if the
@@ -67,6 +71,25 @@ exceptions so that the final line of the traceback always shows the last
 exception that was raised.
 
 
+Inheriting from built-in exceptions
+-----------------------------------
+
+User code can create subclasses that inherit from an exception type.
+It's recommended to only subclass one exception type at a time to avoid
+any possible conflicts between how the bases handle the ``args``
+attribute, as well as due to possible memory layout incompatibilities.
+
+.. impl-detail::
+
+   Most built-in exceptions are implemented in C for efficiency, see:
+   :source:`Objects/exceptions.c`.  Some have custom memory layouts
+   which makes it impossible to create a subclass that inherits from
+   multiple exception types. The memory layout of a type is an implementation
+   detail and might change between Python versions, leading to new
+   conflicts in the future.  Therefore, it's recommended to avoid
+   subclassing multiple exception types altogether.
+
+
 Base classes
 ------------
 
@@ -717,6 +740,8 @@ The following exceptions are used as warning categories; see the
    (:pep:`565`). Enabling the :ref:`Python Development Mode <devmode>` shows
    this warning.
 
+   The deprecation policy is described in :pep:`387`.
+
 
 .. exception:: PendingDeprecationWarning
 
@@ -731,6 +756,8 @@ The following exceptions are used as warning categories; see the
    Ignored by the default warning filters. Enabling the :ref:`Python
    Development Mode <devmode>` shows this warning.
 
+   The deprecation policy is described in :pep:`387`.
+
 
 .. exception:: SyntaxWarning
 
index c5c1c161293f6ee1428eb8b85f3d28091ebca163..4acbc67b2d69bfa2b6b16c3253f96c7c11b3c22b 100644 (file)
@@ -507,7 +507,7 @@ are always available.  They are listed here in alphabetical order.
    a suite of Python statements which is then executed (unless a syntax error
    occurs). [#]_ If it is a code object, it is simply executed.  In all cases,
    the code that's executed is expected to be valid as file input (see the
-   section "File input" in the Reference Manual). Be aware that the
+   section :ref:`file-input` in the Reference Manual). Be aware that the
    :keyword:`nonlocal`, :keyword:`yield`,  and :keyword:`return`
    statements may not be used outside of
    function definitions even within the context of code passed to the
@@ -862,8 +862,8 @@ are always available.  They are listed here in alphabetical order.
    Return ``True`` if *class* is a subclass (direct, indirect or :term:`virtual
    <abstract base class>`) of *classinfo*.  A
    class is considered a subclass of itself. *classinfo* may be a tuple of class
-   objects, in which case every entry in *classinfo* will be checked. In any other
-   case, a :exc:`TypeError` exception is raised.
+   objects, in which case return ``True`` if *class* is a subclass of any entry
+   in *classinfo*.  In any other case, a :exc:`TypeError` exception is raised.
 
 
 .. function:: iter(object[, sentinel])
@@ -1298,8 +1298,11 @@ are always available.  They are listed here in alphabetical order.
    coercion rules for binary arithmetic operators apply.  For :class:`int`
    operands, the result has the same type as the operands (after coercion)
    unless the second argument is negative; in that case, all arguments are
-   converted to float and a float result is delivered.  For example, ``10**2``
-   returns ``100``, but ``10**-2`` returns ``0.01``.
+   converted to float and a float result is delivered.  For example, ``pow(10, 2)``
+   returns ``100``, but ``pow(10, -2)`` returns ``0.01``.  For a negative base of
+   type :class:`int` or :class:`float` and a non-integral exponent, a complex
+   result is delivered.  For example, ``pow(-9, 0.5)`` returns a value close
+   to ``3j``.
 
    For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must
    also be of integer type and *mod* must be nonzero. If *mod* is present and
@@ -1513,14 +1516,12 @@ are always available.  They are listed here in alphabetical order.
 .. class:: slice(stop)
            slice(start, stop[, step])
 
-   .. index:: single: Numerical Python
-
    Return a :term:`slice` object representing the set of indices specified by
    ``range(start, stop, step)``.  The *start* and *step* arguments default to
    ``None``.  Slice objects have read-only data attributes :attr:`~slice.start`,
    :attr:`~slice.stop` and :attr:`~slice.step` which merely return the argument
    values (or their default).  They have no other explicit functionality;
-   however they are used by Numerical Python and other third party extensions.
+   however they are used by NumPy and other third party packages.
    Slice objects are also generated when extended indexing syntax is used.  For
    example: ``a[start:stop:step]`` or ``a[start:stop, i]``.  See
    :func:`itertools.islice` for an alternate version that returns an iterator.
@@ -1547,6 +1548,15 @@ are always available.  They are listed here in alphabetical order.
    compare equal --- this is helpful for sorting in multiple passes (for
    example, sort by department, then by salary grade).
 
+   The sort algorithm uses only ``<`` comparisons between items.  While
+   defining an :meth:`~object.__lt__` method will suffice for sorting,
+   :PEP:`8` recommends that all six :ref:`rich comparisons
+   <comparisons>` be implemented.  This will help avoid bugs when using
+   the same data with other ordering tools such as :func:`max` that rely
+   on a different underlying method.  Implementing all six comparisons
+   also helps avoid confusion for mixed type comparisons which can call
+   reflected the :meth:`~object.__gt__` method.
+
    For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`.
 
 .. decorator:: staticmethod
index b2901e43bef9676dd300da6fb0a928bb53634ee0..1e408482c7b0e0955eebdeb88b1591f072417587 100644 (file)
@@ -392,8 +392,8 @@ The :mod:`functools` module defines the following functions:
    dispatch>` :term:`generic function`.
 
    To define a generic function, decorate it with the ``@singledispatch``
-   decorator. Note that the dispatch happens on the type of the first argument,
-   create your function accordingly::
+   decorator. When defining a function using ``@singledispatch``, note that the
+   dispatch happens on the type of the first argument::
 
      >>> from functools import singledispatch
      >>> @singledispatch
@@ -403,9 +403,9 @@ The :mod:`functools` module defines the following functions:
      ...     print(arg)
 
    To add overloaded implementations to the function, use the :func:`register`
-   attribute of the generic function.  It is a decorator.  For functions
-   annotated with types, the decorator will infer the type of the first
-   argument automatically::
+   attribute of the generic function, which can be used as a decorator.  For
+   functions annotated with types, the decorator will infer the type of the
+   first argument automatically::
 
      >>> @fun.register
      ... def _(arg: int, verbose=False):
@@ -431,17 +431,17 @@ The :mod:`functools` module defines the following functions:
      ...
 
 
-   To enable registering lambdas and pre-existing functions, the
-   :func:`register` attribute can be used in a functional form::
+   To enable registering :term:`lambdas<lambda>` and pre-existing functions,
+   the :func:`register` attribute can also be used in a functional form::
 
      >>> def nothing(arg, verbose=False):
      ...     print("Nothing.")
      ...
      >>> fun.register(type(None), nothing)
 
-   The :func:`register` attribute returns the undecorated function which
-   enables decorator stacking, pickling, as well as creating unit tests for
-   each variant independently::
+   The :func:`register` attribute returns the undecorated function. This
+   enables decorator stacking, :mod:`pickling<pickle>`, and the creation
+   of unit tests for each variant independently::
 
      >>> @fun.register(float)
      ... @fun.register(Decimal)
@@ -476,11 +476,12 @@ The :mod:`functools` module defines the following functions:
    Where there is no registered implementation for a specific type, its
    method resolution order is used to find a more generic implementation.
    The original function decorated with ``@singledispatch`` is registered
-   for the base ``object`` type, which means it is used if no better
+   for the base :class:`object` type, which means it is used if no better
    implementation is found.
 
-   If an implementation registered to :term:`abstract base class`, virtual
-   subclasses will be dispatched to that implementation::
+   If an implementation is registered to an :term:`abstract base class`,
+   virtual subclasses of the base class will be dispatched to that
+   implementation::
 
      >>> from collections.abc import Mapping
      >>> @fun.register
@@ -493,7 +494,7 @@ The :mod:`functools` module defines the following functions:
      >>> fun({"a": "b"})
      a => b
 
-   To check which implementation will the generic function choose for
+   To check which implementation the generic function will choose for
    a given type, use the ``dispatch()`` attribute::
 
      >>> fun.dispatch(float)
@@ -516,7 +517,7 @@ The :mod:`functools` module defines the following functions:
    .. versionadded:: 3.4
 
    .. versionchanged:: 3.7
-      The :func:`register` attribute supports using type annotations.
+      The :func:`register` attribute now supports using type annotations.
 
 
 .. class:: singledispatchmethod(func)
@@ -525,8 +526,9 @@ The :mod:`functools` module defines the following functions:
    dispatch>` :term:`generic function`.
 
    To define a generic method, decorate it with the ``@singledispatchmethod``
-   decorator. Note that the dispatch happens on the type of the first non-self
-   or non-cls argument, create your function accordingly::
+   decorator. When defining a function using ``@singledispatchmethod``, note
+   that the dispatch happens on the type of the first non-*self* or non-*cls*
+   argument::
 
     class Negator:
         @singledispatchmethod
@@ -542,9 +544,10 @@ The :mod:`functools` module defines the following functions:
             return not arg
 
    ``@singledispatchmethod`` supports nesting with other decorators such as
-   ``@classmethod``. Note that to allow for ``dispatcher.register``,
-   ``singledispatchmethod`` must be the *outer most* decorator. Here is the
-   ``Negator`` class with the ``neg`` methods being class bound::
+   :func:`@classmethod<classmethod>`. Note that to allow for
+   ``dispatcher.register``, ``singledispatchmethod`` must be the *outer most*
+   decorator. Here is the ``Negator`` class with the ``neg`` methods bound to
+   the class, rather than an instance of the class::
 
     class Negator:
         @singledispatchmethod
@@ -562,8 +565,9 @@ The :mod:`functools` module defines the following functions:
         def _(cls, arg: bool):
             return not arg
 
-   The same pattern can be used for other similar decorators: ``staticmethod``,
-   ``abstractmethod``, and others.
+   The same pattern can be used for other similar decorators:
+   :func:`@staticmethod<staticmethod>`,
+   :func:`@abstractmethod<abc.abstractmethod>`, and others.
 
    .. versionadded:: 3.8
 
index 615ee116bbb0b9f78e6a73880adb7522bfa608c9..58ccbbedb2c63b3e1f954c3d85a956b8b7d755d6 100644 (file)
@@ -372,10 +372,10 @@ Constructor functions also accept the following tree hashing parameters:
 * *depth*: maximal depth of tree (1 to 255, 255 if unlimited, 1 in
   sequential mode).
 
-* *leaf_size*: maximal byte length of leaf (0 to 2**32-1, 0 if unlimited or in
+* *leaf_size*: maximal byte length of leaf (0 to ``2**32-1``, 0 if unlimited or in
   sequential mode).
 
-* *node_offset*: node offset (0 to 2**64-1 for BLAKE2b, 0 to 2**48-1 for
+* *node_offset*: node offset (0 to ``2**64-1`` for BLAKE2b, 0 to ``2**48-1`` for
   BLAKE2s, 0 for the first, leftmost, leaf, or in sequential mode).
 
 * *node_depth*: node depth (0 to 255, 0 for leaves, or in sequential mode).
@@ -496,7 +496,7 @@ Keyed hashing
 
 Keyed hashing can be used for authentication as a faster and simpler
 replacement for `Hash-based message authentication code
-<https://en.wikipedia.org/wiki/Hash-based_message_authentication_code>`_ (HMAC).
+<https://en.wikipedia.org/wiki/HMAC>`_ (HMAC).
 BLAKE2 can be securely used in prefix-MAC mode thanks to the
 indifferentiability property inherited from BLAKE.
 
index 067e1b1e5adb3e29887a21bd7ffc7848db007e71..7d836fe73802452ead906e2cabf2afcd033189d9 100644 (file)
@@ -44,4 +44,4 @@ This module defines four dictionaries, :data:`html5`,
 
 .. rubric:: Footnotes
 
-.. [#] See https://www.w3.org/TR/html5/syntax.html#named-character-references
+.. [#] See https://html.spec.whatwg.org/multipage/syntax.html#named-character-references
index 9ac5d52a2ab09c722b014d711e2c20ebff1d401c..fb113d89e97535438ee750d7cbd6b47de264300a 100644 (file)
@@ -122,7 +122,7 @@ The following classes are provided:
       :mod:`http.cookiejar` and :mod:`http.cookies` modules do not depend on each
       other.
 
-   https://curl.haxx.se/rfc/cookie_spec.html
+   https://curl.se/rfc/cookie_spec.html
       The specification of the original Netscape cookie protocol.  Though this is
       still the dominant protocol, the 'Netscape cookie protocol' implemented by all
       the major browsers (and :mod:`http.cookiejar`) only bears a passing resemblance to
index 69e311298221c8332fbbbfe6af37bf4ee0e46fc9..c7fbcb21274a16401183c18c635d97e161d5b6e6 100644 (file)
@@ -805,6 +805,46 @@ ABC hierarchy::
 
     .. versionadded:: 3.9
 
+    .. abstractmethod:: name()
+
+       The base name of this object without any parent references.
+
+    .. abstractmethod:: iterdir()
+
+       Yield Traversable objects in self.
+
+    .. abstractmethod:: is_dir()
+
+       Return True if self is a directory.
+
+    .. abstractmethod:: is_file()
+
+       Return True if self is a file.
+
+    .. abstractmethod:: joinpath(child)
+
+       Return Traversable child in self.
+
+    .. abstractmethod:: __truediv__(child)
+
+       Return Traversable child in self.
+
+    .. abstractmethod:: open(mode='r', *args, **kwargs)
+
+       *mode* may be 'r' or 'rb' to open as text or binary. Return a handle
+       suitable for reading (same as :attr:`pathlib.Path.open`).
+
+       When opening as text, accepts encoding parameters such as those
+       accepted by :attr:`io.TextIOWrapper`.
+
+    .. method:: read_bytes()
+
+       Read contents of self as bytes.
+
+    .. method:: read_text(encoding=None)
+
+       Read contents of self as text.
+
 
 .. class:: TraversableResources
 
index 8567e4d1d08920c0d2221d53379941fe7c0f7015..5bb33b9c10cc03db9379a132ab2fff7453a6b082 100644 (file)
@@ -58,5 +58,5 @@ Notes on availability
   operating system.
 
 * If not separately noted, all functions that claim "Availability: Unix" are
-  supported on Mac OS X, which builds on a Unix core.
+  supported on macOS, which builds on a Unix core.
 
index 2ab4dd83ad4deefff26e3f5b40c6fdf6bb7d42c1..9c2dff55703273ffa21d86c113b4aa473b912652 100644 (file)
@@ -41,7 +41,7 @@ IP addresses, networks and interfaces:
 
    Return an :class:`IPv4Address` or :class:`IPv6Address` object depending on
    the IP address passed as argument.  Either IPv4 or IPv6 addresses may be
-   supplied; integers less than 2**32 will be considered to be IPv4 by default.
+   supplied; integers less than ``2**32`` will be considered to be IPv4 by default.
    A :exc:`ValueError` is raised if *address* does not represent a valid IPv4
    or IPv6 address.
 
@@ -56,7 +56,7 @@ IP addresses, networks and interfaces:
    Return an :class:`IPv4Network` or :class:`IPv6Network` object depending on
    the IP address passed as argument.  *address* is a string or integer
    representing the IP network.  Either IPv4 or IPv6 networks may be supplied;
-   integers less than 2**32 will be considered to be IPv4 by default.  *strict*
+   integers less than ``2**32`` will be considered to be IPv4 by default.  *strict*
    is passed to :class:`IPv4Network` or :class:`IPv6Network` constructor.  A
    :exc:`ValueError` is raised if *address* does not represent a valid IPv4 or
    IPv6 address, or if the network has host bits set.
@@ -70,7 +70,7 @@ IP addresses, networks and interfaces:
    Return an :class:`IPv4Interface` or :class:`IPv6Interface` object depending
    on the IP address passed as argument.  *address* is a string or integer
    representing the IP address.  Either IPv4 or IPv6 addresses may be supplied;
-   integers less than 2**32 will be considered to be IPv4 by default.  A
+   integers less than ``2**32`` will be considered to be IPv4 by default.  A
    :exc:`ValueError` is raised if *address* does not represent a valid IPv4 or
    IPv6 address.
 
@@ -682,7 +682,7 @@ dictionaries.
 
       Note that currently expanded netmasks are not supported.  That means
       ``2001:db00::0/24`` is a valid argument while ``2001:db00::0/ffff:ff00::``
-      not.
+      is not.
 
    2. An integer that fits into 128 bits.  This is equivalent to a
       single-address network, with the network address being *address* and
index c8184da80fe43e1c20b7099f10ad9004c9e69ea6..6fa89f578a2cfd166026ecaaeb1c3f0f19bd4453 100644 (file)
@@ -11,9 +11,9 @@
 
 --------------
 
-`JSON (JavaScript Object Notation) <http://json.org>`_, specified by
+`JSON (JavaScript Object Notation) <https://json.org>`_, specified by
 :rfc:`7159` (which obsoletes :rfc:`4627`) and by
-`ECMA-404 <http://www.ecma-international.org/publications/standards/Ecma-404.htm>`_,
+`ECMA-404 <https://www.ecma-international.org/publications-and-standards/standards/ecma-404/>`_,
 is a lightweight data interchange format inspired by
 `JavaScript <https://en.wikipedia.org/wiki/JavaScript>`_ object literal syntax
 (although it is not a strict subset of JavaScript [#rfc-errata]_ ).
@@ -544,7 +544,7 @@ Standard Compliance and Interoperability
 ----------------------------------------
 
 The JSON format is specified by :rfc:`7159` and by
-`ECMA-404 <http://www.ecma-international.org/publications/standards/Ecma-404.htm>`_.
+`ECMA-404 <https://www.ecma-international.org/publications-and-standards/standards/ecma-404/>`_.
 This section details this module's level of compliance with the RFC.
 For simplicity, :class:`JSONEncoder` and :class:`JSONDecoder` subclasses, and
 parameters other than those explicitly mentioned, are not considered.
index ab44850549c0cf102233df730232719409a714bf..d4dc585351bab3d14d5d02e0e13418918acc6ae8 100644 (file)
@@ -163,7 +163,7 @@ in :mod:`logging` itself) and defining handlers which are declared either in
       :func:`listen` socket and sending a configuration which runs whatever
       code the attacker wants to have executed in the victim's process. This is
       especially easy to do if the default port is used, but not hard even if a
-      different port is used). To avoid the risk of this happening, use the
+      different port is used. To avoid the risk of this happening, use the
       ``verify`` argument to :func:`listen` to prevent unrecognised
       configurations from being applied.
 
index 6233a2a6746120028cb2e04e61defa5ebe9c6c89..e72a898a11363df7d09e8b0088ad770d45e5e5f7 100644 (file)
@@ -203,7 +203,7 @@ is the module's name in the Python package namespace.
       attributes can then be used as you like. For example, they could be
       incorporated into logged messages. For example::
 
-         FORMAT = '%(asctime)-15s %(clientip)s %(user)-8s %(message)s'
+         FORMAT = '%(asctime)s %(clientip)-15s %(user)-8s %(message)s'
          logging.basicConfig(format=FORMAT)
          d = {'clientip': '192.168.0.1', 'user': 'fbloggs'}
          logger = logging.getLogger('tcpserver')
@@ -993,7 +993,7 @@ functions.
    be used as you like. For example, they could be incorporated into logged
    messages. For example::
 
-      FORMAT = '%(asctime)-15s %(clientip)s %(user)-8s %(message)s'
+      FORMAT = '%(asctime)s %(clientip)-15s %(user)-8s %(message)s'
       logging.basicConfig(format=FORMAT)
       d = {'clientip': '192.168.0.1', 'user': 'fbloggs'}
       logging.warning('Protocol problem: %s', 'connection reset', extra=d)
@@ -1348,7 +1348,7 @@ with the :mod:`warnings` module.
       The proposal which described this feature for inclusion in the Python standard
       library.
 
-   `Original Python logging package <https://www.red-dove.com/python_logging.html>`_
+   `Original Python logging package <https://old.red-dove.com/python_logging.html>`_
       This is the original source for the :mod:`logging` package.  The version of the
       package available from this site is suitable for use with Python 1.5.2, 2.1.x
       and 2.2.x, which do not include the :mod:`logging` package in the standard
index 1f3fbc340fc26762227e81044782704a2d299365..959f81fe97af5dc8fa73d8b84045e1941e30552f 100644 (file)
@@ -100,7 +100,7 @@ To map anonymous memory, -1 should be passed as the fileno along with the length
 
    To ensure validity of the created memory mapping the file specified
    by the descriptor *fileno* is internally automatically synchronized
-   with physical backing store on Mac OS X and OpenVMS.
+   with physical backing store on macOS and OpenVMS.
 
    This example shows a simple way of using :class:`~mmap.mmap`::
 
index 952a5b40a0d1fd3dc062ac03f1ef279a7e5ce23b..2c7d7d8c0e8b12de13a5af9b828c79af31cd8eae 100644 (file)
@@ -783,7 +783,7 @@ For an example of the usage of queues for interprocess communication see
       multithreading/multiprocessing semantics, this number is not reliable.
 
       Note that this may raise :exc:`NotImplementedError` on Unix platforms like
-      Mac OS X where ``sem_getvalue()`` is not implemented.
+      macOS where ``sem_getvalue()`` is not implemented.
 
    .. method:: empty()
 
@@ -951,7 +951,8 @@ Miscellaneous
    use.  The number of usable CPUs can be obtained with
    ``len(os.sched_getaffinity(0))``
 
-   May raise :exc:`NotImplementedError`.
+   When the number of CPUs cannot be determined a :exc:`NotImplementedError`
+   is raised.
 
    .. seealso::
       :func:`os.cpu_count`
@@ -1029,7 +1030,13 @@ Miscellaneous
 
    The return value can be ``'fork'``, ``'spawn'``, ``'forkserver'``
    or ``None``.  ``'fork'`` is the default on Unix, while ``'spawn'`` is
-   the default on Windows.
+   the default on Windows and macOS.
+
+.. versionchanged:: 3.8
+
+   On macOS, the *spawn* start method is now the default.  The *fork* start
+   method should be considered unsafe as it can lead to crashes of the
+   subprocess. See :issue:`33725`.
 
    .. versionadded:: 3.4
 
@@ -1234,7 +1241,7 @@ object -- see :ref:`multiprocessing-managers`.
    first argument is named *block*, as is consistent with :meth:`Lock.acquire`.
 
    .. note::
-      On Mac OS X, this is indistinguishable from :class:`Semaphore` because
+      On macOS, this is indistinguishable from :class:`Semaphore` because
       ``sem_getvalue()`` is not implemented on that platform.
 
 .. class:: Condition([lock])
@@ -1373,7 +1380,7 @@ object -- see :ref:`multiprocessing-managers`.
 
 .. note::
 
-   On Mac OS X, ``sem_timedwait`` is unsupported, so calling ``acquire()`` with
+   On macOS, ``sem_timedwait`` is unsupported, so calling ``acquire()`` with
    a timeout will emulate that function's behavior using a sleeping loop.
 
 .. note::
@@ -2628,12 +2635,13 @@ handler type) for messages from different processes to get mixed up.
    inherited.
 
 .. currentmodule:: multiprocessing
-.. function:: log_to_stderr()
+.. function:: log_to_stderr(level=None)
 
    This function performs a call to :func:`get_logger` but in addition to
    returning the logger created by get_logger, it adds a handler which sends
    output to :data:`sys.stderr` using format
    ``'[%(levelname)s/%(processName)s] %(message)s'``.
+   You can modify ``levelname`` of the logger by passing a ``level`` argument.
 
 Below is an example session with logging turned on::
 
index 0ad44d1a110fb2fe6dddb5008564965de0716956..d4cc296fbf89af024643057c5e237c5ba15b4626 100644 (file)
@@ -102,9 +102,10 @@ process and user.
 
 .. data:: environ
 
-   A :term:`mapping` object representing the string environment. For example,
-   ``environ['HOME']`` is the pathname of your home directory (on some platforms),
-   and is equivalent to ``getenv("HOME")`` in C.
+   A :term:`mapping` object where keys and values are strings that represent
+   the process environment.  For example, ``environ['HOME']`` is the pathname
+   of your home directory (on some platforms), and is equivalent to
+   ``getenv("HOME")`` in C.
 
    This mapping is captured the first time the :mod:`os` module is imported,
    typically during Python startup as part of processing :file:`site.py`.  Changes
@@ -141,10 +142,10 @@ process and user.
 
 .. data:: environb
 
-   Bytes version of :data:`environ`: a :term:`mapping` object representing the
-   environment as byte strings. :data:`environ` and :data:`environb` are
-   synchronized (modify :data:`environb` updates :data:`environ`, and vice
-   versa).
+   Bytes version of :data:`environ`: a :term:`mapping` object where both keys
+   and values are :class:`bytes` objects representing the process environment.
+   :data:`environ` and :data:`environb` are synchronized (modifying
+   :data:`environb` updates :data:`environ`, and vice versa).
 
    :data:`environb` is only available if :data:`supports_bytes_environ` is
    ``True``.
@@ -2657,7 +2658,7 @@ features:
       String that uniquely identifies the type of the filesystem that
       contains the file.
 
-   On Mac OS systems, the following attributes may also be available:
+   On macOS systems, the following attributes may also be available:
 
    .. attribute:: st_rsize
 
index c31ff6543aee52cd38f8c4286e0b37dc6c4dae1a..88e8756cf84a53a9af5aad903f44de0a714d55af 100644 (file)
@@ -708,6 +708,10 @@ call fails (for example because the path doesn't exist).
       >>> Path.home()
       PosixPath('/home/antoine')
 
+   Note that unlike :func:`os.path.expanduser`, on POSIX systems a
+   :exc:`KeyError` or :exc:`RuntimeError` will be raised, and on Windows systems a
+   :exc:`RuntimeError` will be raised if home directory can't be resolved.
+
    .. versionadded:: 3.5
 
 
@@ -764,6 +768,10 @@ call fails (for example because the path doesn't exist).
       >>> p.expanduser()
       PosixPath('/home/eric/films/Monty Python')
 
+   Note that unlike :func:`os.path.expanduser`, on POSIX systems a
+   :exc:`KeyError` or :exc:`RuntimeError` will be raised, and on Windows systems a
+   :exc:`RuntimeError` will be raised if home directory can't be resolved.
+
    .. versionadded:: 3.5
 
 
index 49186ce371631430fa1837ca6836cdd5dca606cf..d87205c3d4af86660a0ab59424460fbee517810e 100644 (file)
@@ -225,13 +225,13 @@ Windows Platform
    .. versionadded:: 3.8
 
 
-Mac OS Platform
----------------
+macOS Platform
+--------------
 
 
 .. function:: mac_ver(release='', versioninfo=('','',''), machine='')
 
-   Get Mac OS version information and return it as tuple ``(release, versioninfo,
+   Get macOS version information and return it as tuple ``(release, versioninfo,
    machine)`` with *versioninfo* being a tuple ``(version, dev_stage,
    non_release_version)``.
 
index ce6d4a85bf5e9d2668d3afd92219de729360acb9..5ded9661f080143e0390f699ad9a390a13f0d0bd 100644 (file)
@@ -133,7 +133,7 @@ The following classes are available:
    encoded data, which contains UID (see PList manual).
 
    It has one attribute, :attr:`data`, which can be used to retrieve the int value
-   of the UID.  :attr:`data` must be in the range `0 <= data < 2**64`.
+   of the UID.  :attr:`data` must be in the range ``0 <= data < 2**64``.
 
    .. versionadded:: 3.8
 
index 774d46d0e9624781588efde530aa880c628b1faa..cf324a57e79fdff8a7571891be302b2df06a3ad8 100644 (file)
@@ -622,7 +622,7 @@ procedure can be used to obtain a better constant for a given platform (see
 The method executes the number of Python calls given by the argument, directly
 and again under the profiler, measuring the time for both. It then computes the
 hidden overhead per profiler event, and returns that as a float.  For example,
-on a 1.8Ghz Intel Core i5 running Mac OS X, and using Python's time.process_time() as
+on a 1.8Ghz Intel Core i5 running macOS, and using Python's time.process_time() as
 the timer, the magical number is about 4.04e-6.
 
 The object of this exercise is to get a fairly consistent result. If your
index f2d6749422a15a5bd86dfcce119bb3db254ceaa3..758d1292086e5d7c426cae8cd972ce60b0b87d9c 100644 (file)
@@ -502,7 +502,7 @@ between the effects of a drug versus a placebo::
 
 Simulation of arrival times and service deliveries for a multiserver queue::
 
-    from heapq import heappush, heappop
+    from heapq import heapify, heapreplace
     from random import expovariate, gauss
     from statistics import mean, median, stdev
 
@@ -514,14 +514,15 @@ Simulation of arrival times and service deliveries for a multiserver queue::
     waits = []
     arrival_time = 0.0
     servers = [0.0] * num_servers  # time when each server becomes available
-    for i in range(100_000):
+    heapify(servers)
+    for i in range(1_000_000):
         arrival_time += expovariate(1.0 / average_arrival_interval)
-        next_server_available = heappop(servers)
+        next_server_available = servers[0]
         wait = max(0.0, next_server_available - arrival_time)
         waits.append(wait)
-        service_duration = gauss(average_service_time, stdev_service_time)
+        service_duration = max(0.0, gauss(average_service_time, stdev_service_time))
         service_completed = arrival_time + wait + service_duration
-        heappush(servers, service_completed)
+        heapreplace(servers, service_completed)
 
     print(f'Mean wait: {mean(waits):.1f}.  Stdev wait: {stdev(waits):.1f}.')
     print(f'Median wait: {median(waits):.1f}.  Max wait: {max(waits):.1f}.')
index ff7687cc936ec9ef4c276ca38e62283c0e070b43..b12ce4b9744f944b4347bc74c03f6243c19a222f 100644 (file)
@@ -1572,7 +1572,7 @@ find all of the adverbs in some text, they might use :func:`findall` in
 the following manner::
 
    >>> text = "He was carefully disguised but captured quickly by police."
-   >>> re.findall(r"\w+ly", text)
+   >>> re.findall(r"\w+ly\b", text)
    ['carefully', 'quickly']
 
 
@@ -1586,7 +1586,7 @@ a writer wanted to find all of the adverbs *and their positions* in
 some text, they would use :func:`finditer` in the following manner::
 
    >>> text = "He was carefully disguised but captured quickly by police."
-   >>> for m in re.finditer(r"\w+ly", text):
+   >>> for m in re.finditer(r"\w+ly\b", text):
    ...     print('%02d-%02d: %s' % (m.start(), m.end(), m.group(0)))
    07-16: carefully
    40-47: quickly
index a354187c266c7fb9dcc3fee785fc4dfb84cd89ef..46b5ff8b6d58635e87e1899d60f4eea86b33506c 100644 (file)
@@ -534,7 +534,7 @@ https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2
    | :const:`KQ_FILTER_PROC`   | Watch for events on a process id            |
    +---------------------------+---------------------------------------------+
    | :const:`KQ_FILTER_NETDEV` | Watch for events on a network device        |
-   |                           | [not available on Mac OS X]                 |
+   |                           | [not available on macOS]                    |
    +---------------------------+---------------------------------------------+
    | :const:`KQ_FILTER_SIGNAL` | Returns whenever the watched signal is      |
    |                           | delivered to the process                    |
@@ -626,7 +626,7 @@ https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2
    | :const:`KQ_NOTE_TRACKERR`  | unable to attach to a child                |
    +----------------------------+--------------------------------------------+
 
-   :const:`KQ_FILTER_NETDEV` filter flags (not available on Mac OS X):
+   :const:`KQ_FILTER_NETDEV` filter flags (not available on macOS):
 
    +----------------------------+--------------------------------------------+
    | Constant                   | Meaning                                    |
index 2e3646f6a74f80ce19d9aa7725a7388a1980a3b2..e2ad3c48f9754eed07d631245f4540ef434958d7 100644 (file)
@@ -32,7 +32,7 @@ It starts by constructing up to four directories from a head and a tail part.
 For the head part, it uses ``sys.prefix`` and ``sys.exec_prefix``; empty heads
 are skipped.  For the tail part, it uses the empty string and then
 :file:`lib/site-packages` (on Windows) or
-:file:`lib/python{X.Y}/site-packages` (on Unix and Macintosh).  For each
+:file:`lib/python{X.Y}/site-packages` (on Unix and macOS).  For each
 of the distinct head-tail combinations, it sees if it refers to an existing
 directory, and if so, adds it to ``sys.path`` and also inspects the newly
 added path for configuration files.
@@ -176,8 +176,8 @@ Module contents
 
    Path to the user site-packages for the running Python.  Can be ``None`` if
    :func:`getusersitepackages` hasn't been called yet.  Default value is
-   :file:`~/.local/lib/python{X.Y}/site-packages` for UNIX and non-framework Mac
-   OS X builds, :file:`~/Library/Python/{X.Y}/lib/python/site-packages` for Mac
+   :file:`~/.local/lib/python{X.Y}/site-packages` for UNIX and non-framework
+   macOS builds, :file:`~/Library/Python/{X.Y}/lib/python/site-packages` for macOS
    framework builds, and :file:`{%APPDATA%}\\Python\\Python{XY}\\site-packages`
    on Windows.  This directory is a site directory, which means that
    :file:`.pth` files in it will be processed.
@@ -187,8 +187,8 @@ Module contents
 
    Path to the base directory for the user site-packages.  Can be ``None`` if
    :func:`getuserbase` hasn't been called yet.  Default value is
-   :file:`~/.local` for UNIX and Mac OS X non-framework builds,
-   :file:`~/Library/Python/{X.Y}` for Mac framework builds, and
+   :file:`~/.local` for UNIX and macOS non-framework builds,
+   :file:`~/Library/Python/{X.Y}` for macOS framework builds, and
    :file:`{%APPDATA%}\\Python` for Windows.  This value is used by Distutils to
    compute the installation directories for scripts, data files, Python modules,
    etc. for the :ref:`user installation scheme <inst-alt-install-user>`.
index 609fbe86b31449c14b29b55dd5a9809dbc9311a7..db94a2a1245755f5c6632d7bfcfebc75b2b1f996 100755 (executable)
@@ -197,11 +197,15 @@ created.  Socket addresses are represented as follows:
   - *addr* - Optional bytes-like object specifying the hardware physical
     address, whose interpretation depends on the device.
 
+   .. availability:: Linux >= 2.2.
+
 - :const:`AF_QIPCRTR` is a Linux-only socket based interface for communicating
   with services running on co-processors in Qualcomm platforms. The address
   family is represented as a ``(node, port)`` tuple where the *node* and *port*
   are non-negative integers.
 
+   .. availability:: Linux >= 4.7.
+
   .. versionadded:: 3.8
 
 - :const:`IPPROTO_UDPLITE` is a variant of UDP which allows you to specify
@@ -506,7 +510,7 @@ Constants
 
 .. data:: AF_LINK
 
-  .. availability:: BSD, OSX.
+  .. availability:: BSD, macOS.
 
   .. versionadded:: 3.4
 
@@ -814,8 +818,8 @@ The :mod:`socket` module also offers various network-related services:
 .. function:: gethostbyname_ex(hostname)
 
    Translate a host name to IPv4 address format, extended interface. Return a
-   triple ``(hostname, aliaslist, ipaddrlist)`` where *hostname* is the primary
-   host name responding to the given *ip_address*, *aliaslist* is a (possibly
+   triple ``(hostname, aliaslist, ipaddrlist)`` where *hostname* is the host's
+   primary host name, *aliaslist* is a (possibly
    empty) list of alternative host names for the same address, and *ipaddrlist* is
    a list of IPv4 addresses for the same interface on the same host (often but not
    always a single address). :func:`gethostbyname_ex` does not support IPv6 name
index c0b6ab079588d85f3cadf789dc410e28b80aca1c..b24a2f0985489124285480c5fe27b53efe085af6 100644 (file)
@@ -116,6 +116,24 @@ Module functions and constants
 ------------------------------
 
 
+.. data:: apilevel
+
+   String constant stating the supported DB-API level. Required by the DB-API.
+   Hard-coded to ``"2.0"``.
+
+.. data:: paramstyle
+
+   String constant stating the type of parameter marker formatting expected by
+   the :mod:`sqlite3` module. Required by the DB-API. Hard-coded to
+   ``"qmark"``.
+
+   .. note::
+
+      The :mod:`sqlite3` module supports both ``qmark`` and ``numeric`` DB-API
+      parameter styles, because that is what the underlying SQLite library
+      supports. However, the DB-API does not allow multiple values for
+      the ``paramstyle`` attribute.
+
 .. data:: version
 
    The version number of this module, as a string. This is not the version of
@@ -138,6 +156,26 @@ Module functions and constants
    The version number of the run-time SQLite library, as a tuple of integers.
 
 
+.. data:: threadsafety
+
+   Integer constant required by the DB-API, stating the level of thread safety
+   the :mod:`sqlite3` module supports. Currently hard-coded to ``1``, meaning
+   *"Threads may share the module, but not connections."* However, this may not
+   always be true. You can check the underlying SQLite library's compile-time
+   threaded mode using the following query::
+
+     import sqlite3
+     con = sqlite3.connect(":memory:")
+     con.execute("""
+         select * from pragma_compile_options
+         where compile_options like 'THREADSAFE=%'
+     """).fetchall()
+
+   Note that the `SQLITE_THREADSAFE levels
+   <https://sqlite.org/compile.html#threadsafe>`_ do not match the DB-API 2.0
+   ``threadsafety`` levels.
+
+
 .. data:: PARSE_DECLTYPES
 
    This constant is meant to be used with the *detect_types* parameter of the
@@ -446,14 +484,22 @@ Connection Objects
       Registers *trace_callback* to be called for each SQL statement that is
       actually executed by the SQLite backend.
 
-      The only argument passed to the callback is the statement (as string) that
-      is being executed. The return value of the callback is ignored. Note that
-      the backend does not only run statements passed to the :meth:`Cursor.execute`
-      methods.  Other sources include the transaction management of the Python
-      module and the execution of triggers defined in the current database.
+      The only argument passed to the callback is the statement (as
+      :class:`str`) that is being executed. The return value of the callback is
+      ignored. Note that the backend does not only run statements passed to the
+      :meth:`Cursor.execute` methods.  Other sources include the
+      :ref:`transaction management <sqlite3-controlling-transactions>` of the
+      sqlite3 module and the execution of triggers defined in the current
+      database.
 
       Passing :const:`None` as *trace_callback* will disable the trace callback.
 
+      .. note::
+         Exceptions raised in the trace callback are not propagated. As a
+         development and debugging aid, use
+         :meth:`~sqlite3.enable_callback_tracebacks` to enable printing
+         tracebacks from exceptions raised in the trace callback.
+
       .. versionadded:: 3.3
 
 
@@ -505,8 +551,8 @@ Connection Objects
 
       Using this attribute you can control what objects are returned for the ``TEXT``
       data type. By default, this attribute is set to :class:`str` and the
-      :mod:`sqlite3` module will return Unicode objects for ``TEXT``. If you want to
-      return bytestrings instead, you can set it to :class:`bytes`.
+      :mod:`sqlite3` module will return :class:`str` objects for ``TEXT``.
+      If you want to return :class:`bytes` instead, you can set it to :class:`bytes`.
 
       You can also set it to any other callable that accepts a single bytestring
       parameter and returns the resulting object.
@@ -680,6 +726,14 @@ Cursor Objects
       The cursor will be unusable from this point forward; a :exc:`ProgrammingError`
       exception will be raised if any operation is attempted with the cursor.
 
+   .. method:: setinputsizes(sizes)
+
+      Required by the DB-API. Is a no-op in :mod:`sqlite3`.
+
+   .. method:: setoutputsize(size [, column])
+
+      Required by the DB-API. Is a no-op in :mod:`sqlite3`.
+
    .. attribute:: rowcount
 
       Although the :class:`Cursor` class of the :mod:`sqlite3` module implements this
@@ -1008,6 +1062,12 @@ If a timestamp stored in SQLite has a fractional part longer than 6
 numbers, its value will be truncated to microsecond precision by the
 timestamp converter.
 
+.. note::
+
+   The default "timestamp" converter ignores UTC offsets in the database and
+   always returns a naive :class:`datetime.datetime` object. To preserve UTC
+   offsets in timestamps, either leave converters disabled, or register an
+   offset-aware converter with :func:`register_converter`.
 
 .. _sqlite3-controlling-transactions:
 
@@ -1091,7 +1151,7 @@ committed:
 .. rubric:: Footnotes
 
 .. [#f1] The sqlite3 module is not built with loadable extension support by
-   default, because some platforms (notably Mac OS X) have SQLite
+   default, because some platforms (notably macOS) have SQLite
    libraries which are compiled without this feature. To get loadable
    extension support, you must pass ``--enable-loadable-sqlite-extensions`` to
    configure.
index d673effc4b82c7f18aa3455106e1f39b7b222728..0b231f170aa0515a437bb300a52373b5687242a5 100644 (file)
@@ -18,7 +18,7 @@
 This module provides access to Transport Layer Security (often known as "Secure
 Sockets Layer") encryption and peer authentication facilities for network
 sockets, both client-side and server-side.  This module uses the OpenSSL
-library. It is available on all modern Unix systems, Windows, Mac OS X, and
+library. It is available on all modern Unix systems, Windows, macOS, and
 probably additional platforms, as long as OpenSSL is installed on that platform.
 
 .. note::
@@ -1522,7 +1522,7 @@ to speed up repeated connections from the same clients.
 
    Load a set of default "certification authority" (CA) certificates from
    default locations. On Windows it loads CA certs from the ``CA`` and
-   ``ROOT`` system stores. On other systems it calls
+   ``ROOT`` system stores. On all systems it calls
    :meth:`SSLContext.set_default_verify_paths`. In the future the method may
    load CA certificates from other locations, too.
 
index f48a0a9faa6b0c189e7fe8b9193772e599e3f870..98219eaee976192c146df5edf76533d817fef4a4 100644 (file)
@@ -372,11 +372,11 @@ The following flags can be used in the *flags* argument of :func:`os.chflags`:
 
 .. data:: UF_COMPRESSED
 
-   The file is stored compressed (Mac OS X 10.6+).
+   The file is stored compressed (macOS 10.6+).
 
 .. data:: UF_HIDDEN
 
-   The file should not be displayed in a GUI (Mac OS X 10.5+).
+   The file should not be displayed in a GUI (macOS 10.5+).
 
 .. data:: SF_ARCHIVED
 
@@ -398,7 +398,7 @@ The following flags can be used in the *flags* argument of :func:`os.chflags`:
 
    The file is a snapshot file.
 
-See the \*BSD or Mac OS systems man page :manpage:`chflags(2)` for more information.
+See the \*BSD or macOS systems man page :manpage:`chflags(2)` for more information.
 
 On Windows, the following file attribute constants are available for use when
 testing bits in the ``st_file_attributes`` member returned by :func:`os.stat`.
index 57a3285f8f4d87e53b5d3b0a321e01683f9ec9fc..55dcc172bbc2830fccb5d2527ddca738f7de1a1e 100644 (file)
@@ -1125,6 +1125,8 @@ calls these functions.
    code was zero then return, otherwise raise :exc:`CalledProcessError`. The
    :exc:`CalledProcessError` object will have the return code in the
    :attr:`~CalledProcessError.returncode` attribute.
+   If :func:`check_call` was unable to start the process it will propagate the exception
+   that was raised.
 
    Code needing to capture stdout or stderr should use :func:`run` instead::
 
index 641abf436b962908fe43105304365745fa32ee8e..ee27efd869d006627fefa2dcce3a2fe764c1f65c 100644 (file)
@@ -74,7 +74,7 @@ places.
 
 Python currently supports seven schemes:
 
-- *posix_prefix*: scheme for POSIX platforms like Linux or Mac OS X.  This is
+- *posix_prefix*: scheme for POSIX platforms like Linux or macOS.  This is
   the default scheme used when Python or a component is installed.
 - *posix_home*: scheme for POSIX platforms used when a *home* option is used
   upon installation.  This scheme is used when a component is installed through
@@ -188,7 +188,7 @@ Other functions
    - win-amd64 (64bit Windows on AMD64, aka x86_64, Intel64, and EM64T)
    - win32 (all others - specifically, sys.platform is returned)
 
-   Mac OS X can return:
+   macOS can return:
 
    - macosx-10.6-ppc
    - macosx-10.4-ppc64
index bb1bd29bf698ed690aa362d77f491b62dac9ba9b..16f908c8e87080bef9a9bdc5e56c1efe195f9adc 100644 (file)
@@ -457,7 +457,7 @@ The :mod:`test.support` module defines the following functions:
 .. function:: unlink(filename)
 
    Call :func:`os.unlink` on *filename*.  On Windows platforms, this is
-   wrapped with a wait loop that checks for the existence fo the file.
+   wrapped with a wait loop that checks for the existence of the file.
 
 
 .. function:: rmdir(filename)
@@ -925,8 +925,8 @@ The :mod:`test.support` module defines the following functions:
 
 .. decorator:: requires_mac_version(*min_version)
 
-   Decorator for the minimum version when running test on Mac OS X.  If the
-   MAC OS X version is less than the minimum, raise :exc:`unittest.SkipTest`.
+   Decorator for the minimum version when running test on macOS.  If the
+   macOS version is less than the minimum, raise :exc:`unittest.SkipTest`.
 
 
 .. decorator:: requires_IEEE_754
@@ -1145,7 +1145,7 @@ The :mod:`test.support` module defines the following functions:
    Context manager catching :class:`threading.Thread` exception using
    :func:`threading.excepthook`.
 
-   Attributes set when an exception is catched:
+   Attributes set when an exception is caught:
 
    * ``exc_type``
    * ``exc_value``
index 6967d7509657b354cc415ed8a92c16f6f5888ca6..2db4c0f9143f64be027031e17fb980c9ba6868fd 100644 (file)
@@ -759,7 +759,7 @@ ones inherited from :class:`ttk.Widget`.
 Platform-specific notes
 ^^^^^^^^^^^^^^^^^^^^^^^
 
-* On MacOS X, toplevel windows automatically include a built-in size grip
+* On macOS, toplevel windows automatically include a built-in size grip
   by default. Adding a :class:`Sizegrip` is harmless, since the built-in
   grip will just mask the widget.
 
index 20f668c72820282bf31f896f01e1f59305dd1951..68432aeaecbcc17fadad457b8727421588f5e644 100644 (file)
@@ -740,12 +740,12 @@ Traceback
 
    .. method:: format(limit=None, most_recent_first=False)
 
-      Format the traceback as a list of lines with newlines. Use the
-      :mod:`linecache` module to retrieve lines from the source code.
-      If *limit* is set, format the *limit* most recent frames if *limit*
-      is positive. Otherwise, format the ``abs(limit)`` oldest frames.
-      If *most_recent_first* is ``True``, the order of the formatted frames
-      is reversed, returning the most recent frame first instead of last.
+      Format the traceback as a list of lines. Use the :mod:`linecache` module to
+      retrieve lines from the source code. If *limit* is set, format the *limit*
+      most recent frames if *limit* is positive. Otherwise, format the
+      ``abs(limit)`` oldest frames. If *most_recent_first* is ``True``, the order
+      of the formatted frames is reversed, returning the most recent frame first
+      instead of last.
 
       Similar to the :func:`traceback.format_tb` function, except that
       :meth:`.format` does not include newlines.
index 81a2b7b987970692e30f59a09c917840c954d763..b6df39258e66e858c7dc91b60c33b3cdb1097084 100644 (file)
@@ -229,7 +229,7 @@ Standard names are defined for the following types:
 
       .. note::
          A future version of Python may stop setting this attribute by default.
-         To guard against this potential change, preferrably read from the
+         To guard against this potential change, preferably read from the
          :attr:`__spec__` attribute instead or use
          ``getattr(module, "__loader__", None)`` if you explicitly need to use
          this attribute.
@@ -254,7 +254,7 @@ Standard names are defined for the following types:
 
       .. note::
          A future version of Python may stop setting this attribute by default.
-         To guard against this potential change, preferrably read from the
+         To guard against this potential change, preferably read from the
          :attr:`__spec__` attribute instead or use
          ``getattr(module, "__package__", None)`` if you explicitly need to use
          this attribute.
index 78ab760d86a54749acb37e853033d55ef939d357..3b50d76c5a8fe42fbb0d23e500366bed1efafeb3 100644 (file)
 
 --------------
 
-This module provides runtime support for type hints as specified by
-:pep:`484`, :pep:`526`, :pep:`544`, :pep:`586`, :pep:`589`, and :pep:`591`.
-The most fundamental support consists of the types :data:`Any`, :data:`Union`,
-:data:`Tuple`, :data:`Callable`, :class:`TypeVar`, and
-:class:`Generic`.  For full specification please see :pep:`484`.  For
-a simplified introduction to type hints see :pep:`483`.
+This module provides runtime support for type hints. The most fundamental
+support consists of the types :data:`Any`, :data:`Union`, :data:`Callable`,
+:class:`TypeVar`, and :class:`Generic`. For a full specification, please see
+:pep:`484`. For a simplified introduction to type hints, see :pep:`483`.
 
 
 The function below takes and returns a string and is annotated as follows::
@@ -34,6 +32,33 @@ In the function ``greeting``, the argument ``name`` is expected to be of type
 :class:`str` and the return type :class:`str`. Subtypes are accepted as
 arguments.
 
+.. _relevant-peps:
+
+Relevant PEPs
+=============
+
+Since the initial introduction of type hints in :pep:`484` and :pep:`483`, a
+number of PEPs have modified and enhanced Python's framework for type
+annotations. These include:
+
+* :pep:`526`: Syntax for Variable Annotations
+     *Introducing* syntax for annotating variables outside of function
+     definitions, and :data:`ClassVar`
+* :pep:`544`: Protocols: Structural subtyping (static duck typing)
+     *Introducing* :class:`Protocol` and the
+     :func:`@runtime_checkable<runtime_checkable>` decorator
+* :pep:`585`: Type Hinting Generics In Standard Collections
+     *Introducing* :class:`types.GenericAlias` and the ability to use standard
+     library classes as :ref:`generic types<types-genericalias>`
+* :pep:`586`: Literal Types
+     *Introducing* :class:`Literal`
+* :pep:`589`: TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys
+     *Introducing* :class:`TypedDict`
+* :pep:`591`: Adding a final qualifier to typing
+     *Introducing* :data:`Final` and the :func:`@final<final>` decorator
+* :pep:`593`: Flexible function and variable annotations
+     *Introducing* :class:`Annotated`
+
 Type aliases
 ============
 
@@ -232,8 +257,8 @@ A user-defined class can be defined as a generic class.
 single type parameter ``T`` . This also makes ``T`` valid as a type within the
 class body.
 
-The :class:`Generic` base class defines :meth:`__class_getitem__` so that
-``LoggedVar[t]`` is valid as a type::
+The :class:`Generic` base class defines :meth:`~object.__class_getitem__` so
+that ``LoggedVar[t]`` is valid as a type::
 
    from collections.abc import Iterable
 
index 785ecf8fafdcc56d83d975286ef788fb6dd66d00..bfb994e315468f29bd31335349b1ed36f62b7133 100644 (file)
@@ -164,8 +164,8 @@ The :mod:`urllib.request` module defines the following functions:
    This helper function returns a dictionary of scheme to proxy server URL
    mappings. It scans the environment for variables named ``<scheme>_proxy``,
    in a case insensitive approach, for all operating systems first, and when it
-   cannot find it, looks for proxy information from Mac OSX System
-   Configuration for Mac OS X and Windows Systems Registry for Windows.
+   cannot find it, looks for proxy information from System
+   Configuration for macOS and Windows Systems Registry for Windows.
    If both lowercase and uppercase environment variables exist (and disagree),
    lowercase is preferred.
 
@@ -298,8 +298,8 @@ The following classes are provided:
    the list of proxies from the environment variables
    ``<protocol>_proxy``.  If no proxy environment variables are set, then
    in a Windows environment proxy settings are obtained from the registry's
-   Internet Settings section, and in a Mac OS X environment proxy information
-   is retrieved from the OS X System Configuration Framework.
+   Internet Settings section, and in a macOS environment proxy information
+   is retrieved from the System Configuration Framework.
 
    To disable autodetected proxy pass an empty dictionary.
 
@@ -650,7 +650,7 @@ OpenerDirector Objects
    optional *timeout* parameter specifies a timeout in seconds for blocking
    operations like the connection attempt (if not specified, the global default
    timeout setting will be used). The timeout feature actually works only for
-   HTTP, HTTPS and FTP connections).
+   HTTP, HTTPS and FTP connections.
 
 
 .. method:: OpenerDirector.error(proto, *args)
index e020570896acb5885aacd59e619a31dba0cdbf97..1ad75d5accb263ff4dfac81150512f3981437a4a 100644 (file)
@@ -421,7 +421,7 @@ subclass which installs setuptools and pip into a created virtual environment::
                                                          'more target '
                                                          'directories.')
             parser.add_argument('dirs', metavar='ENV_DIR', nargs='+',
-                                help='A directory in which to create the
+                                help='A directory in which to create the '
                                      'virtual environment.')
             parser.add_argument('--no-setuptools', default=False,
                                 action='store_true', dest='nodist',
index b88543e44537231e20dfa94e7e4f68a683814bce..4b0945c020f843fbe6fc1b2f07828848724e43dd 100644 (file)
@@ -88,6 +88,10 @@ support weak references but can add support through subclassing::
 Extension types can easily be made to support weak references; see
 :ref:`weakref-support`.
 
+When ``__slots__`` are defined for a given type, weak reference support is
+disabled unless a ``'__weakref__'`` string is also present in the sequence of
+strings in the ``__slots__`` declaration.
+See :ref:`__slots__ documentation <slots>` for details.
 
 .. class:: ref(object[, callback])
 
index 5980ff5b3413ff68abd6566aba9b9021d2ee311c..0ddba0dec84252574e83b2edaed843104c4121a7 100644 (file)
@@ -143,9 +143,9 @@ for the controller classes, all defined in this module.
 +------------------------+-----------------------------------------+-------+
 | ``'windows-default'``  | :class:`WindowsDefault`                 | \(2)  |
 +------------------------+-----------------------------------------+-------+
-| ``'macosx'``           | :class:`MacOSX('default')`              | \(3)  |
+| ``'macosx'``           | :class:`MacOSXOSAScript('default')`     | \(3)  |
 +------------------------+-----------------------------------------+-------+
-| ``'safari'``           | :class:`MacOSX('safari')`               | \(3)  |
+| ``'safari'``           | :class:`MacOSXOSAScript('safari')`      | \(3)  |
 +------------------------+-----------------------------------------+-------+
 | ``'google-chrome'``    | :class:`Chrome('google-chrome')`        |       |
 +------------------------+-----------------------------------------+-------+
@@ -169,7 +169,7 @@ Notes:
    Only on Windows platforms.
 
 (3)
-   Only on Mac OS X platform.
+   Only on macOS platform.
 
 .. versionadded:: 3.3
    Support for Chrome/Chromium has been added.
index d3a5f872204a35057d3dbdab072d9469717fa9f9..20984b98b1778c5c5f537d5df44a132589b371cb 100644 (file)
@@ -156,6 +156,9 @@ module documentation.  This section lists the differences between the API and
       The :meth:`writexml` method now preserves the attribute order specified
       by the user.
 
+   .. versionchanged:: 3.9
+      The *standalone* parameter was added.
+
 .. method:: Node.toxml(encoding=None, standalone=None)
 
    Return a string or byte string containing the XML represented by
@@ -174,6 +177,9 @@ module documentation.  This section lists the differences between the API and
       The :meth:`toxml` method now preserves the attribute order specified
       by the user.
 
+   .. versionchanged:: 3.9
+      The *standalone* parameter was added.
+
 .. method:: Node.toprettyxml(indent="\\t", newl="\\n", encoding=None, \
                              standalone=None)
 
@@ -190,6 +196,8 @@ module documentation.  This section lists the differences between the API and
       The :meth:`toprettyxml` method now preserves the attribute order specified
       by the user.
 
+   .. versionchanged:: 3.9
+      The *standalone* parameter was added.
 
 .. _dom-example:
 
index d459ff664ceed38bd67fe5392e212c24c0d3b20a..4ab04f34dd199b03fa81861f505452c5330398e4 100644 (file)
@@ -655,7 +655,7 @@ OpenSSL
 
 The modules :mod:`hashlib`, :mod:`posix`, :mod:`ssl`, :mod:`crypt` use
 the OpenSSL library for added performance if made available by the
-operating system. Additionally, the Windows and Mac OS X installers for
+operating system. Additionally, the Windows and macOS installers for
 Python may include a copy of the OpenSSL libraries, so we include a copy
 of the OpenSSL license here::
 
index 75424162a48b074278cd29f49feeb6ccfc66291a..0bc1e24437100d42fd1a3a791a348011ac65ac3a 100644 (file)
@@ -479,7 +479,6 @@ is semantically equivalent to::
       The specification, background, and examples for the Python :keyword:`with`
       statement.
 
-
 .. index::
    single: parameter; function definition
 
index 403012307004ad9a20deb8bbf895cf06f964c646..29a6987054df43deb5c5178006534103711b3661 100644 (file)
@@ -1205,7 +1205,7 @@ Basic customization
    as necessary before returning it.
 
    If :meth:`__new__` is invoked during object construction and it returns an
-   instance or subclass of *cls*, then the new instance’s :meth:`__init__` method
+   instance of *cls*, then the new instance’s :meth:`__init__` method
    will be invoked like ``__init__(self[, ...])``, where *self* is the new instance
    and the remaining arguments are the same as were passed to the object constructor.
 
@@ -1492,7 +1492,7 @@ Basic customization
 
       This is intended to provide protection against a denial-of-service caused
       by carefully-chosen inputs that exploit the worst case performance of a
-      dict insertion, O(n^2) complexity.  See
+      dict insertion, O(n\ :sup:`2`) complexity.  See
       http://www.ocert.org/advisories/ocert-2011-003.html for details.
 
       Changing hash values affects the iteration order of sets.
@@ -2512,8 +2512,8 @@ left undefined.
    return the value of the object truncated to an :class:`~numbers.Integral`
    (typically an :class:`int`).
 
-   If :meth:`__int__` is not defined then the built-in function :func:`int`
-   falls back to :meth:`__trunc__`.
+   The built-in function :func:`int` falls back to :meth:`__trunc__` if neither
+   :meth:`__int__` nor :meth:`__index__` is defined.
 
 
 .. _context-managers:
index 55ac01b6a844dcef91ea7358fbfe9781ee4cc63a..5c85dd7052d673f0e8df9bac0c5b3f8c6bb2b241 100644 (file)
@@ -119,14 +119,14 @@ is subtle.  Python lacks declarations and allows name binding operations to
 occur anywhere within a code block.  The local variables of a code block can be
 determined by scanning the entire text of the block for name binding operations.
 
-If the :keyword:`global` statement occurs within a block, all uses of the name
-specified in the statement refer to the binding of that name in the top-level
+If the :keyword:`global` statement occurs within a block, all uses of the names
+specified in the statement refer to the bindings of those names in the top-level
 namespace.  Names are resolved in the top-level namespace by searching the
 global namespace, i.e. the namespace of the module containing the code block,
 and the builtins namespace, the namespace of the module :mod:`builtins`.  The
-global namespace is searched first.  If the name is not found there, the
+global namespace is searched first.  If the names are not found there, the
 builtins namespace is searched.  The :keyword:`!global` statement must precede
-all uses of the name.
+all uses of the listed names.
 
 The :keyword:`global` statement has the same scope as a name binding operation
 in the same block.  If the nearest enclosing scope for a free variable contains
index 47b78eeac817e010c759698cdafac7b1654fade7..cb21ed20397b2fe6124ca5b0b4feb65c5e7e5706 100644 (file)
@@ -4,6 +4,10 @@
 # won't suddenly cause build failures. Updating the version is fine as long
 # as no warnings are raised by doing so.
 sphinx==2.4.4
+# Docutils version is pinned to a version compatible with Sphinx
+# version 2.4.4. It can be removed after bumping Sphinx version to at
+# least 3.5.4.
+docutils==0.17.1
 
 blurb
 
index 26e5168ab51a7ab5ed6ba17174746f69e468cbe0..3fa68097ee3665bd11039dfa2186a3bc330cdefc 100644 (file)
@@ -23,7 +23,7 @@ You could write a Unix shell script or Windows batch files for some of these
 tasks, but shell scripts are best at moving around files and changing text data,
 not well-suited for GUI applications or games. You could write a C/C++/Java
 program, but it can take a lot of development time to get even a first-draft
-program.  Python is simpler to use, available on Windows, Mac OS X, and Unix
+program.  Python is simpler to use, available on Windows, macOS, and Unix
 operating systems, and will help you get the job done more quickly.
 
 Python is simple to use, but it is a real programming language, offering much
index 0c0eb526fa9ed6054231c2e7464b73beb5297146..b98de6e56a003191b5259a5f3d969224177b2cd6 100644 (file)
@@ -158,7 +158,7 @@ which implements arithmetic based on rational numbers (so the numbers like
 1/3 can be represented exactly).
 
 If you are a heavy user of floating point operations you should take a look
-at the Numerical Python package and many other packages for mathematical and
+at the NumPy package and many other packages for mathematical and
 statistical operations supplied by the SciPy project. See <https://scipy.org>.
 
 Python provides tools that may help on those rare occasions when you really
index 8763626ef553b987bf5d4b5f106ee25971d56166..33678f5a64b1f3876ce1e02b95584755c2b10679 100644 (file)
@@ -11,6 +11,13 @@ with a prompt are output from the interpreter. Note that a secondary prompt on a
 line by itself in an example means you must type a blank line; this is used to
 end a multi-line command.
 
+.. only:: html
+
+   You can toggle the display of prompts and output by clicking on ``>>>``
+   in the upper-right corner of an example box.  If you hide the prompts
+   and output for an example, then you can easily copy and paste the input
+   lines into your interpreter.
+
 .. index:: single: # (hash); comment
 
 Many of the examples in this manual, even those entered at the interactive
index af595e5ca04d7e17185e47d4a5fbc24a2405dba1..f6250291c8824f0d177d27850877522c7db3c510 100644 (file)
@@ -191,7 +191,8 @@ named :file:`spam.py` in a list of directories given by the variable
   file is specified).
 * :envvar:`PYTHONPATH` (a list of directory names, with the same syntax as the
   shell variable :envvar:`PATH`).
-* The installation-dependent default.
+* The installation-dependent default (by convention including a
+  ``site-packages`` directory, handled by the :mod:`site` module).
 
 .. note::
    On file systems which support symlinks, the directory containing the input
index 95342f3a510e194d45dc1dcb74c585ea8d155c46..5739388ecc5f7d241caed95480af5a44bde7e3d5 100644 (file)
@@ -322,7 +322,7 @@ Miscellaneous options
 
    Hash randomization is intended to provide protection against a
    denial-of-service caused by carefully-chosen inputs that exploit the worst
-   case performance of a dict construction, O(n^2) complexity.  See
+   case performance of a dict construction, O(n\ :sup:`2`) complexity.  See
    http://www.ocert.org/advisories/ocert-2011-003.html for details.
 
    :envvar:`PYTHONHASHSEED` allows you to set a fixed value for the hash
@@ -621,7 +621,7 @@ conflict.
 .. envvar:: PYTHONCASEOK
 
    If this is set, Python ignores case in :keyword:`import` statements.  This
-   only works on Windows and OS X.
+   only works on Windows and macOS.
 
 
 .. envvar:: PYTHONDONTWRITEBYTECODE
@@ -704,7 +704,7 @@ conflict.
 
    If this environment variable is set, ``sys.argv[0]`` will be set to its
    value instead of the value got through the C runtime.  Only works on
-   Mac OS X.
+   macOS.
 
 .. envvar:: PYTHONWARNINGS
 
index ead71e1b079b3b9cd0139d18798647c631344354..2f132a96bef082acf9b4421550a304afa1c4b615 100644 (file)
@@ -1,14 +1,14 @@
 
 .. _using-on-mac:
 
-***************************
-Using Python on a Macintosh
-***************************
+*********************
+Using Python on a Mac
+*********************
 
 :Author: Bob Savage <bobsavage@mac.com>
 
 
-Python on a Macintosh running Mac OS X is in principle very similar to Python on
+Python on a Mac running macOS is in principle very similar to Python on
 any other Unix platform, but there are a number of additional features such as
 the IDE and the Package Manager that are worth pointing out.
 
@@ -17,7 +17,7 @@ the IDE and the Package Manager that are worth pointing out.
 Getting and Installing MacPython
 ================================
 
-Mac OS X 10.8 comes with Python 2.7 pre-installed by Apple.  If you wish, you
+macOS since version 10.8 comes with Python 2.7 pre-installed by Apple.  If you wish, you
 are invited to install the most recent version of Python 3 from the Python
 website (https://www.python.org).  A current "universal binary" build of Python,
 which runs natively on the Mac's new Intel and legacy PPC CPU's, is available
@@ -54,12 +54,12 @@ section on running Python scripts from the Unix shell.
 How to run a Python script
 --------------------------
 
-Your best way to get started with Python on Mac OS X is through the IDLE
+Your best way to get started with Python on macOS is through the IDLE
 integrated development environment, see section :ref:`ide` and use the Help menu
 when the IDE is running.
 
 If you want to run Python scripts from the Terminal window command line or from
-the Finder you first need an editor to create your script. Mac OS X comes with a
+the Finder you first need an editor to create your script. macOS comes with a
 number of standard Unix command line editors, :program:`vim` and
 :program:`emacs` among them. If you want a more Mac-like editor,
 :program:`BBEdit` or :program:`TextWrangler` from Bare Bones Software (see
@@ -87,7 +87,7 @@ To run your script from the Finder you have two options:
 Running scripts with a GUI
 --------------------------
 
-With older versions of Python, there is one Mac OS X quirk that you need to be
+With older versions of Python, there is one macOS quirk that you need to be
 aware of: programs that talk to the Aqua window manager (in other words,
 anything that has a GUI) need to be run in a special way. Use :program:`pythonw`
 instead of :program:`python` to start such scripts.
@@ -98,7 +98,7 @@ With Python 3.9, you can use either :program:`python` or :program:`pythonw`.
 Configuration
 -------------
 
-Python on OS X honors all standard Unix environment variables such as
+Python on macOS honors all standard Unix environment variables such as
 :envvar:`PYTHONPATH`, but setting these variables for programs started from the
 Finder is non-standard as the Finder does not read your :file:`.profile` or
 :file:`.cshrc` at startup. You need to create a file
@@ -148,10 +148,10 @@ X by Apple, and the latest version can be downloaded and installed from
 https://www.activestate.com; it can also be built from source.
 
 *wxPython* is another popular cross-platform GUI toolkit that runs natively on
-Mac OS X. Packages and documentation are available from https://www.wxpython.org.
+macOS. Packages and documentation are available from https://www.wxpython.org.
 
-*PyQt* is another popular cross-platform GUI toolkit that runs natively on Mac
-OS X. More information can be found at
+*PyQt* is another popular cross-platform GUI toolkit that runs natively on
+macOS. More information can be found at
 https://riverbankcomputing.com/software/pyqt/intro.
 
 
index ace396b9d846ab3fd0266f3f4d0ee380f2d94cb4..dd49da8f7653e690aa2ee4898cf4b1c8ec94c3a2 100644 (file)
@@ -791,7 +791,7 @@ Previously the Python virtual machine used 16-bit numbers in its bytecode,
 limiting the size of source files.  In particular, this affected the maximum
 size of literal lists and dictionaries in Python source; occasionally people who
 are generating Python code would run into this limit.  A patch by Charles G.
-Waldman raises the limit from ``2^16`` to ``2^{32}``.
+Waldman raises the limit from ``2**16`` to ``2**32``.
 
 Three new convenience functions intended for adding constants to a module's
 dictionary at module initialization time were added: :func:`PyModule_AddObject`,
index d19c8e01ad8a00e57a8d3de067af19e528472f27..abb65222ddd3d03d5a364230edc0342b08cfcb53 100644 (file)
@@ -953,12 +953,12 @@ Several performance enhancements have been added:
   considered and traversed by the collector.
   (Contributed by Antoine Pitrou; :issue:`4688`.)
 
-* Long integers are now stored internally either in base 2**15 or in base
-  2**30, the base being determined at build time.  Previously, they
-  were always stored in base 2**15.  Using base 2**30 gives
+* Long integers are now stored internally either in base ``2**15`` or in base
+  ``2**30``, the base being determined at build time.  Previously, they
+  were always stored in base ``2**15``.  Using base ``2**30`` gives
   significant performance improvements on 64-bit machines, but
   benchmark results on 32-bit machines have been mixed.  Therefore,
-  the default is to use base 2**30 on 64-bit machines and base 2**15
+  the default is to use base ``2**30`` on 64-bit machines and base ``2**15``
   on 32-bit machines; on Unix, there's a new configure option
   :option:`!--enable-big-digits` that can be used to override this default.
 
index 919fbeeb2ad85783336613fa9ead33df2c360224..f1e6d0c4f3dd685f44c901a6aad43714fbbb3b96 100644 (file)
@@ -474,12 +474,12 @@ Build and C API Changes
 
 Changes to Python's build process and to the C API include:
 
-* Integers are now stored internally either in base 2**15 or in base
-  2**30, the base being determined at build time.  Previously, they
-  were always stored in base 2**15.  Using base 2**30 gives
+* Integers are now stored internally either in base ``2**15`` or in base
+  ``2**30``, the base being determined at build time.  Previously, they
+  were always stored in base ``2**15``.  Using base ``2**30`` gives
   significant performance improvements on 64-bit machines, but
   benchmark results on 32-bit machines have been mixed.  Therefore,
-  the default is to use base 2**30 on 64-bit machines and base 2**15
+  the default is to use base ``2**30`` on 64-bit machines and base ``2**15``
   on 32-bit machines; on Unix, there's a new configure option
   ``--enable-big-digits`` that can be used to override this default.
 
index acee38c41539d604102a5fbfb91685598c6e3e2b..6ee52e7492837321c7337e65b4d3e6b943dd1b40 100644 (file)
 #ifndef MS_WINDOWS
 #include <unistd.h>
 #endif
-#ifdef HAVE_CRYPT_H
-#if defined(HAVE_CRYPT_R) && !defined(_GNU_SOURCE)
-/* Required for glibc to expose the crypt_r() function prototype. */
-#  define _GNU_SOURCE
-#  define _Py_GNU_SOURCE_FOR_CRYPT
-#endif
-#include <crypt.h>
-#ifdef _Py_GNU_SOURCE_FOR_CRYPT
-/* Don't leak the _GNU_SOURCE define to other headers. */
-#  undef _GNU_SOURCE
-#  undef _Py_GNU_SOURCE_FOR_CRYPT
-#endif
-#endif
 
 /* For size_t? */
 #ifdef HAVE_STDDEF_H
index bb51c668ac69837da363572bbc78548df4188c97..d31d66e6b4aea36ea13caba974dfa7de85833dd1 100644 (file)
@@ -318,7 +318,7 @@ PyAPI_FUNC(int) PyObject_DelItem(PyObject *o, PyObject *key);
 
 /* Takes an arbitrary object which must support the (character, single segment)
    buffer interface and returns a pointer to a read-only memory location
-   useable as character based input for subsequent processing.
+   usable as character based input for subsequent processing.
 
    Return 0 on success.  buffer and buffer_len are only set in case no error
    occurs. Otherwise, -1 is returned and an exception set. */
index e33a0d156fead2a90773025699fad9d0ab992558..50f4c4a9e5502b2d5cb12c7905e8dde8b17350e6 100644 (file)
@@ -26,7 +26,7 @@ typedef struct {
     /* If ma_values is NULL, the table is "combined": keys and values
        are stored in ma_keys.
 
-       If ma_values is not NULL, the table is splitted:
+       If ma_values is not NULL, the table is split:
        keys are stored in ma_keys and values are stored in ma_values */
     PyObject **ma_values;
 } PyDictObject;
index 17db79cffbc547bdb4a5567219c707aa17dd9e72..1b460c9f189ff0e734065da9f1775323ef51528e 100644 (file)
@@ -416,7 +416,7 @@ enum PyUnicode_Kind {
 
 
 /* Fast check to determine whether an object is ready. Equivalent to
-   PyUnicode_IS_COMPACT(op) || ((PyUnicodeObject*)(op))->data.any) */
+   PyUnicode_IS_COMPACT(op) || ((PyUnicodeObject*)(op))->data.any */
 
 #define PyUnicode_IS_READY(op) (((PyASCIIObject*)op)->state.ready)
 
@@ -857,12 +857,20 @@ PyAPI_FUNC(PyObject*) _PyUnicode_EncodeUTF16(
 
 /* --- Unicode-Escape Codecs ---------------------------------------------- */
 
+/* Variant of PyUnicode_DecodeUnicodeEscape that supports partial decoding. */
+PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscapeStateful(
+        const char *string,     /* Unicode-Escape encoded string */
+        Py_ssize_t length,      /* size of string */
+        const char *errors,     /* error handling */
+        Py_ssize_t *consumed    /* bytes consumed */
+);
 /* Helper for PyUnicode_DecodeUnicodeEscape that detects invalid escape
    chars. */
-PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscape(
+PyAPI_FUNC(PyObject*) _PyUnicode_DecodeUnicodeEscapeInternal(
         const char *string,     /* Unicode-Escape encoded string */
         Py_ssize_t length,      /* size of string */
         const char *errors,     /* error handling */
+        Py_ssize_t *consumed,   /* bytes consumed */
         const char **first_invalid_escape  /* on return, points to first
                                               invalid escaped char in
                                               string. */
@@ -880,6 +888,14 @@ Py_DEPRECATED(3.3) PyAPI_FUNC(PyObject*) PyUnicode_EncodeRawUnicodeEscape(
     Py_ssize_t length           /* Number of Py_UNICODE chars to encode */
     );
 
+/* Variant of PyUnicode_DecodeRawUnicodeEscape that supports partial decoding. */
+PyAPI_FUNC(PyObject*) _PyUnicode_DecodeRawUnicodeEscapeStateful(
+        const char *string,     /* Unicode-Escape encoded string */
+        Py_ssize_t length,      /* size of string */
+        const char *errors,     /* error handling */
+        Py_ssize_t *consumed    /* bytes consumed */
+);
+
 /* --- Latin-1 Codecs ----------------------------------------------------- */
 
 PyAPI_FUNC(PyObject*) _PyUnicode_AsLatin1String(
index 88956f109b4f79a3ac7544edbd2a7962eaf46fcc..a1bd6a0bc0f346142ba865f765e1c3b5f43d7951 100644 (file)
@@ -3,7 +3,7 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
+
 typedef struct {
     PyObject *ptr;  /* Cached pointer (borrowed reference) */
     uint64_t globals_ver;  /* ma_version of global dict */
index 32e86d06db5b432b65aae3d30092ef5bcde34444..c66ff12d7ec5a791f30541154ad72155ce9564bb 100644 (file)
@@ -15,6 +15,9 @@ extern "C" {
 PyAPI_FUNC(int) _PyType_CheckConsistency(PyTypeObject *type);
 PyAPI_FUNC(int) _PyDict_CheckConsistency(PyObject *mp, int check_content);
 
+/* Only private in Python 3.10 and 3.9.8+; public in 3.11 */
+extern PyObject *_PyType_GetQualName(PyTypeObject *type);
+
 /* Tell the GC to track this object.
  *
  * NB: While the object is tracked by the collector, it must be safe to call the
index 1f092411a72ba5c975d11a00cdd9e81ab5ab2f77..c23290ebec59924d148630e0ff3f18d6caaec8e0 100644 (file)
@@ -51,7 +51,7 @@ PyAPI_FUNC(void) _Py_DumpTraceback(
    _PyGILState_GetInterpreterStateUnsafe() in last resort.
 
    It is better to pass NULL to interp and current_tstate, the function tries
-   different options to retrieve these informations.
+   different options to retrieve this information.
 
    This function is signal safe. */
 
index af883f2339d812ba205a879914856bdff4af1a62..8057ab920cb45cf20fbf1318c3224ee6791a2271 100644 (file)
 /*--start constants--*/
 #define PY_MAJOR_VERSION        3
 #define PY_MINOR_VERSION        9
-#define PY_MICRO_VERSION        7
+#define PY_MICRO_VERSION        8
 #define PY_RELEASE_LEVEL        PY_RELEASE_LEVEL_FINAL
 #define PY_RELEASE_SERIAL       0
 
 /* Version as a string */
-#define PY_VERSION              "3.9.7"
+#define PY_VERSION              "3.9.8"
 /*--end constants--*/
 
 /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
index bdda1da2e6b8f2ec6bce29688a67f8137f7d9208..c79eba2f5bc6f7c5135d38dc9538e60a0f46349b 100644 (file)
@@ -91,13 +91,13 @@ PyAPI_FUNC(_PyTime_t) _PyTime_FromNanoseconds(_PyTime_t ns);
 PyAPI_FUNC(int) _PyTime_FromNanosecondsObject(_PyTime_t *t,
     PyObject *obj);
 
-/* Convert a number of seconds (Python float or int) to a timetamp.
+/* Convert a number of seconds (Python float or int) to a timestamp.
    Raise an exception and return -1 on error, return 0 on success. */
 PyAPI_FUNC(int) _PyTime_FromSecondsObject(_PyTime_t *t,
     PyObject *obj,
     _PyTime_round_t round);
 
-/* Convert a number of milliseconds (Python float or int, 10^-3) to a timetamp.
+/* Convert a number of milliseconds (Python float or int, 10^-3) to a timestamp.
    Raise an exception and return -1 on error, return 0 on success. */
 PyAPI_FUNC(int) _PyTime_FromMillisecondsObject(_PyTime_t *t,
     PyObject *obj,
index 37975fe8a3eefa63dcb485f407a8df63c31d8f0e..2fc324a1efdd17f7c3ef78ccec2c10df101b587b 100644 (file)
@@ -156,9 +156,9 @@ def _default_sysroot(cc):
 
     if _cache_default_sysroot is not None:
         return _cache_default_sysroot
-   
+
     contents = _read_output('%s -c -E -v - </dev/null' % (cc,), True)
-    in_incdirs = False   
+    in_incdirs = False
     for line in contents.splitlines():
         if line.startswith("#include <...>"):
             in_incdirs = True
@@ -482,7 +482,7 @@ def customize_compiler(_config_vars):
 
     This customization is performed when the first
     extension module build is requested
-    in distutils.sysconfig.customize_compiler).
+    in distutils.sysconfig.customize_compiler.
     """
 
     # Find a compiler to use for extension module builds
index f45a2ed4d4dc77cfacb50dbbc86b9347c88b3df7..cb5345d555afeedb35e59f3da398d4e97923d1f2 100644 (file)
@@ -526,12 +526,13 @@ class HelpFormatter(object):
         parts = [action_header]
 
         # if there was help for the action, add lines of help text
-        if action.help:
+        if action.help and action.help.strip():
             help_text = self._expand_help(action)
-            help_lines = self._split_lines(help_text, help_width)
-            parts.append('%*s%s\n' % (indent_first, '', help_lines[0]))
-            for line in help_lines[1:]:
-                parts.append('%*s%s\n' % (help_position, '', line))
+            if help_text:
+                help_lines = self._split_lines(help_text, help_width)
+                parts.append('%*s%s\n' % (indent_first, '', help_lines[0]))
+                for line in help_lines[1:]:
+                    parts.append('%*s%s\n' % (help_position, '', line))
 
         # or add a newline if the description doesn't end with one
         elif not action_header.endswith('\n'):
@@ -1208,7 +1209,8 @@ class _SubParsersAction(Action):
         # namespace for the relevant parts.
         subnamespace, arg_strings = parser.parse_known_args(arg_strings, None)
         for key, value in vars(subnamespace).items():
-            setattr(namespace, key, value)
+            if not hasattr(namespace, key):
+                setattr(namespace, key, value)
 
         if arg_strings:
             vars(namespace).setdefault(_UNRECOGNIZED_ARGS_ATTR, [])
@@ -1842,11 +1844,6 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
                     if action.default is not SUPPRESS:
                         setattr(namespace, action.dest, action.default)
 
-        # add any parser defaults that aren't present
-        for dest in self._defaults:
-            if not hasattr(namespace, dest):
-                setattr(namespace, dest, self._defaults[dest])
-
         # parse the arguments and exit if there are any errors
         if self.exit_on_error:
             try:
@@ -1857,6 +1854,11 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
         else:
             namespace, args = self._parse_known_args(args, namespace)
 
+        # add any parser defaults that aren't present
+        for dest in self._defaults:
+            if not hasattr(namespace, dest):
+                setattr(namespace, dest, self._defaults[dest])
+
         if hasattr(namespace, _UNRECOGNIZED_ARGS_ATTR):
             args.extend(getattr(namespace, _UNRECOGNIZED_ARGS_ATTR))
             delattr(namespace, _UNRECOGNIZED_ARGS_ATTR)
index b2d446a51fedb50a75b7c72ba093799705e99257..bb2f99150b115aa4706cb2aa70672ab7b073ad89 100644 (file)
@@ -350,7 +350,7 @@ class Server(events.AbstractServer):
         self._start_serving()
         # Skip one loop iteration so that all 'loop.add_reader'
         # go through.
-        await tasks.sleep(0, loop=self._loop)
+        await tasks.sleep(0)
 
     async def serve_forever(self):
         if self._serving_forever_fut is not None:
@@ -539,7 +539,7 @@ class BaseEventLoop(events.AbstractEventLoop):
         closing_agens = list(self._asyncgens)
         self._asyncgens.clear()
 
-        results = await tasks.gather(
+        results = await tasks._gather(
             *[ag.aclose() for ag in closing_agens],
             return_exceptions=True,
             loop=self)
@@ -1457,7 +1457,7 @@ class BaseEventLoop(events.AbstractEventLoop):
             fs = [self._create_server_getaddrinfo(host, port, family=family,
                                                   flags=flags)
                   for host in hosts]
-            infos = await tasks.gather(*fs, loop=self)
+            infos = await tasks._gather(*fs, loop=self)
             infos = set(itertools.chain.from_iterable(infos))
 
             completed = False
@@ -1515,7 +1515,7 @@ class BaseEventLoop(events.AbstractEventLoop):
             server._start_serving()
             # Skip one loop iteration so that all 'loop.add_reader'
             # go through.
-            await tasks.sleep(0, loop=self)
+            await tasks.sleep(0)
 
         if self._debug:
             logger.info("%r is serving", server)
index 0dce87b8ecc5861a254dbd1aaffb2f7c3a6e6953..c8e4b407b476ddb7a8ac44dac32b679fb526a087 100644 (file)
@@ -465,7 +465,7 @@ class AbstractEventLoop:
         # The reason to accept file-like object instead of just file descriptor
         # is: we need to own pipe and close it at transport finishing
         # Can got complicated errors if pass f.fileno(),
-        # close fd in pipe transport then close f and vise versa.
+        # close fd in pipe transport then close f and vice versa.
         raise NotImplementedError
 
     async def connect_write_pipe(self, protocol_factory, pipe):
@@ -478,7 +478,7 @@ class AbstractEventLoop:
         # The reason to accept file-like object instead of just file descriptor
         # is: we need to own pipe and close it at transport finishing
         # Can got complicated errors if pass f.fileno(),
-        # close fd in pipe transport then close f and vise versa.
+        # close fd in pipe transport then close f and vice versa.
         raise NotImplementedError
 
     async def subprocess_shell(self, protocol_factory, cmd, *,
index 268635d68fb0c0ec00a828a391c891d077f74c14..6920acba381525c3d012de3ec846d7c68a031248 100644 (file)
@@ -61,7 +61,7 @@ def _cancel_all_tasks(loop):
         task.cancel()
 
     loop.run_until_complete(
-        tasks.gather(*to_cancel, loop=loop, return_exceptions=True))
+        tasks._gather(*to_cancel, loop=loop, return_exceptions=True))
 
     for task in to_cancel:
         if task.cancelled():
index c9506b158302b5e8027a636fdb7c9ca9c965b938..820304eccaf442a318edd294f4078d6442ef0835 100644 (file)
@@ -193,8 +193,8 @@ class Process:
             stderr = self._read_stream(2)
         else:
             stderr = self._noop()
-        stdin, stdout, stderr = await tasks.gather(stdin, stdout, stderr,
-                                                   loop=self._loop)
+        stdin, stdout, stderr = await tasks._gather(stdin, stdout, stderr,
+                                                    loop=self._loop)
         await self.wait()
         return (stdout, stderr)
 
index d7e0575ebd7fbb8a9a494a48c63857ac7dadf42b..22ed3289edf3cd521ff27b418470fc783c9a8c0c 100644 (file)
@@ -580,15 +580,16 @@ def as_completed(fs, *, loop=None, timeout=None):
     if futures.isfuture(fs) or coroutines.iscoroutine(fs):
         raise TypeError(f"expect an iterable of futures, not {type(fs).__name__}")
 
+    if loop is not None:
+        warnings.warn("The loop argument is deprecated since Python 3.8, "
+                      "and scheduled for removal in Python 3.10.",
+                      DeprecationWarning, stacklevel=2)
+
     from .queues import Queue  # Import here to avoid circular import problem.
     done = Queue(loop=loop)
 
     if loop is None:
         loop = events.get_event_loop()
-    else:
-        warnings.warn("The loop argument is deprecated since Python 3.8, "
-                      "and scheduled for removal in Python 3.10.",
-                      DeprecationWarning, stacklevel=2)
     todo = {ensure_future(f, loop=loop) for f in set(fs)}
     timeout_handle = None
 
@@ -756,6 +757,10 @@ def gather(*coros_or_futures, loop=None, return_exceptions=False):
                       "and scheduled for removal in Python 3.10.",
                       DeprecationWarning, stacklevel=2)
 
+    return _gather(*coros_or_futures, loop=loop, return_exceptions=return_exceptions)
+
+
+def _gather(*coros_or_futures, loop=None, return_exceptions=False):
     if not coros_or_futures:
         if loop is None:
             loop = events.get_event_loop()
index 3efa6698b89ced4673687957be769602c20c0af0..eecbc101ee1b92b3d50333bd4fc0780efd8eab97 100644 (file)
@@ -323,7 +323,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
             server._start_serving()
             # Skip one loop iteration so that all 'loop.add_reader'
             # go through.
-            await tasks.sleep(0, loop=self)
+            await tasks.sleep(0)
 
         return server
 
@@ -1383,7 +1383,7 @@ class ThreadedChildWatcher(AbstractChildWatcher):
     def remove_child_handler(self, pid):
         # asyncio never calls remove_child_handler() !!!
         # The method is no-op but is implemented because
-        # abstract base classe requires it
+        # abstract base classes require it.
         return True
 
     def attach_loop(self, loop):
index 39f4bb394d881c4968cecb10e74b923c0f5752d8..25ad83c2290058296a05691147d82b19dc57c867 100644 (file)
@@ -365,9 +365,9 @@ def main():
                               'environment variable is set, and '
                               '"timestamp" otherwise.'))
     parser.add_argument('-o', action='append', type=int, dest='opt_levels',
-                        help=('Optimization levels to run compilation with.'
-                              'Default is -1 which uses optimization level of'
-                              'Python interpreter itself (specified by -O).'))
+                        help=('Optimization levels to run compilation with. '
+                              'Default is -1 which uses the optimization level '
+                              'of the Python interpreter itself (see -O).'))
     parser.add_argument('-e', metavar='DIR', dest='limit_sl_dest',
                         help='Ignore symlinks pointing outsite of the DIR')
     parser.add_argument('--hardlink-dupes', action='store_true',
index b7a2cac7f57015b6dd2915da1652a61f04a4aeb5..51c942f51abd371e80ffa07c2b212336afb8eae2 100644 (file)
@@ -36,6 +36,12 @@ def _python_exit():
 # See bpo-39812 for context.
 threading._register_atexit(_python_exit)
 
+# At fork, reinitialize the `_global_shutdown_lock` lock in the child process
+if hasattr(os, 'register_at_fork'):
+    os.register_at_fork(before=_global_shutdown_lock.acquire,
+                        after_in_child=_global_shutdown_lock._at_fork_reinit,
+                        after_in_parent=_global_shutdown_lock.release)
+
 
 class _WorkItem(object):
     def __init__(self, future, fn, args, kwargs):
index f60f0c274a715b8011422caf859d04e5a3eb92c2..4e8f5f7593917d65ac5a9e7ef94713ea5ebd45b0 100644 (file)
@@ -496,10 +496,10 @@ class ExitStack(_BaseExitStack, AbstractContextManager):
             # Context may not be correct, so find the end of the chain
             while 1:
                 exc_context = new_exc.__context__
-                if exc_context is old_exc:
+                if exc_context is None or exc_context is old_exc:
                     # Context is already set correctly (see issue 20317)
                     return
-                if exc_context is None or exc_context is frame_exc:
+                if exc_context is frame_exc:
                     break
                 new_exc = exc_context
             # Change the end of the chain to point to the exception
@@ -630,10 +630,10 @@ class AsyncExitStack(_BaseExitStack, AbstractAsyncContextManager):
             # Context may not be correct, so find the end of the chain
             while 1:
                 exc_context = new_exc.__context__
-                if exc_context is old_exc:
+                if exc_context is None or exc_context is old_exc:
                     # Context is already set correctly (see issue 20317)
                     return
-                if exc_context is None or exc_context is frame_exc:
+                if exc_context is frame_exc:
                     break
                 new_exc = exc_context
             # Change the end of the chain to point to the exception
index 190cac6507edef91be37691be81882e5a63688f4..fc3e95cbcc88a530f08da216145675df65ff8864 100644 (file)
@@ -163,7 +163,7 @@ def get_legacy(members):
             return member
     else:
         # 32-bit legacy names - both shr.o and shr4.o exist.
-        # shr.o is the preffered name so we look for shr.o first
+        # shr.o is the preferred name so we look for shr.o first
         #  i.e., shr4.o is returned only when shr.o does not exist
         for name in ['shr.o', 'shr4.o']:
             member = get_one_match(re.escape(name), members)
@@ -282,7 +282,7 @@ def find_shared(paths, name):
         if path.exists(archive):
             members = get_shared(get_ld_headers(archive))
             member = get_member(re.escape(name), members)
-            if member != None:
+            if member is not None:
                 return (base, member)
             else:
                 return (None, None)
@@ -307,7 +307,7 @@ def find_library(name):
 
     libpaths = get_libpaths()
     (base, member) = find_shared(libpaths, name)
-    if base != None:
+    if base is not None:
         return f"{base}({member})"
 
     # To get here, a member in an archive has not been found
index 245cd94c5cdd9e9658dc5e216f83b6b7c44ab654..97ad2b8ed8a50d7580c3bdf560c6dc5527fb1121 100644 (file)
@@ -443,7 +443,7 @@ class StructureTestCase(unittest.TestCase):
 
         s = Test(1, 2, 3)
         # Test the StructUnionType_paramfunc() code path which copies the
-        # structure: if the stucture is larger than sizeof(void*).
+        # structure: if the structure is larger than sizeof(void*).
         self.assertGreater(sizeof(s), sizeof(c_void_p))
 
         dll = CDLL(_ctypes_test.__file__)
@@ -451,7 +451,7 @@ class StructureTestCase(unittest.TestCase):
         func.argtypes = (Test,)
         func.restype = None
         func(s)
-        # bpo-37140: Passing the structure by refrence must not call
+        # bpo-37140: Passing the structure by reference must not call
         # its finalizer!
         self.assertEqual(finalizer_calls, [])
         self.assertEqual(s.first, 1)
index 0dda80d38757399ffd9746bb2fa35a07b8aaf6ad..afd8a0c7c5b61eb7b8bdf3931f47ce2c3d54eacd 100644 (file)
@@ -62,7 +62,7 @@ class SequenceMatcher:
     notion, pairing up elements that appear uniquely in each sequence.
     That, and the method here, appear to yield more intuitive difference
     reports than does diff.  This method appears to be the least vulnerable
-    to synching up on blocks of "junk lines", though (like blank lines in
+    to syncing up on blocks of "junk lines", though (like blank lines in
     ordinary text files, or maybe "<P>" lines in HTML files).  That may be
     because this is the only method of the 3 that has a *concept* of
     "junk" <wink>.
@@ -115,38 +115,6 @@ class SequenceMatcher:
     case.  SequenceMatcher is quadratic time for the worst case and has
     expected-case behavior dependent in a complicated way on how many
     elements the sequences have in common; best case time is linear.
-
-    Methods:
-
-    __init__(isjunk=None, a='', b='')
-        Construct a SequenceMatcher.
-
-    set_seqs(a, b)
-        Set the two sequences to be compared.
-
-    set_seq1(a)
-        Set the first sequence to be compared.
-
-    set_seq2(b)
-        Set the second sequence to be compared.
-
-    find_longest_match(alo=0, ahi=None, blo=0, bhi=None)
-        Find longest matching block in a[alo:ahi] and b[blo:bhi].
-
-    get_matching_blocks()
-        Return list of triples describing matching subsequences.
-
-    get_opcodes()
-        Return list of 5-tuples describing how to turn a into b.
-
-    ratio()
-        Return a measure of the sequences' similarity (float in [0,1]).
-
-    quick_ratio()
-        Return an upper bound on .ratio() relatively quickly.
-
-    real_quick_ratio()
-        Return an upper bound on ratio() very quickly.
     """
 
     def __init__(self, isjunk=None, a='', b='', autojunk=True):
@@ -837,14 +805,6 @@ class Differ:
     +   4. Complicated is better than complex.
     ?           ++++ ^                      ^
     +   5. Flat is better than nested.
-
-    Methods:
-
-    __init__(linejunk=None, charjunk=None)
-        Construct a text differencer, with optional filters.
-
-    compare(a, b)
-        Compare two sequences of lines; generate the resulting delta.
     """
 
     def __init__(self, linejunk=None, charjunk=None):
index b5ef143e72c56481128b8d7f91784096336e2bff..4c47f2ed245d4f569732a82c6e01badcf28af56b 100644 (file)
@@ -392,7 +392,7 @@ class CCompiler:
         return output_dir, macros, include_dirs
 
     def _prep_compile(self, sources, output_dir, depends=None):
-        """Decide which souce files must be recompiled.
+        """Decide which source files must be recompiled.
 
         Determine the list of object files corresponding to 'sources',
         and figure out which ones really need to be recompiled.
index ada250064678ee3ddfbc29244a45ca64d527659c..73a30f3afd84a345bd2c15f48840b20584519c0f 100644 (file)
@@ -83,7 +83,7 @@ class check(Command):
             name, version, URL
 
         Recommended fields:
-            (author and author_email) or (maintainer and maintainer_email))
+            (author and author_email) or (maintainer and maintainer_email)
 
         Warns if any are missing.
         """
index 6934e964abd69b371aa4b0ad9587dea61602049f..a7976fbe3ed924efda902f221899e35147e6c5ec 100644 (file)
@@ -673,7 +673,7 @@ class MSVCCompiler(CCompiler) :
         # If a manifest should be embedded, return a tuple of
         # (manifest_filename, resource_id).  Returns None if no manifest
         # should be embedded.  See http://bugs.python.org/issue7833 for why
-        # we want to avoid any manifest for extension modules if we can)
+        # we want to avoid any manifest for extension modules if we can.
         for arg in ld_args:
             if arg.startswith("/MANIFESTFILE:"):
                 temp_manifest = arg.split(":", 1)[1]
index 6453a02b88f6007f5def9439b48c81b582ab486f..ba4382fb3a2fa1c5da849b54f471ab708228152b 100644 (file)
@@ -44,7 +44,7 @@ class BuildRpmTestCase(support.TempdirManager,
     # spurious sdtout/stderr output under Mac OS X
     @unittest.skipUnless(sys.platform.startswith('linux'),
                          'spurious sdtout/stderr output under Mac OS X')
-    @requires_zlib
+    @requires_zlib()
     @unittest.skipIf(find_executable('rpm') is None,
                      'the rpm command is not found')
     @unittest.skipIf(find_executable('rpmbuild') is None,
@@ -87,7 +87,7 @@ class BuildRpmTestCase(support.TempdirManager,
     # spurious sdtout/stderr output under Mac OS X
     @unittest.skipUnless(sys.platform.startswith('linux'),
                          'spurious sdtout/stderr output under Mac OS X')
-    @requires_zlib
+    @requires_zlib()
     # http://bugs.python.org/issue1533164
     @unittest.skipIf(find_executable('rpm') is None,
                      'the rpm command is not found')
index f0792de74a1a489a8232d89b6302c77d91a7552e..d00c48981eb6d65cb89b316822630d4cb76af54d 100644 (file)
@@ -215,7 +215,8 @@ class UnixCCompiler(CCompiler):
         return "-L" + dir
 
     def _is_gcc(self, compiler_name):
-        return "gcc" in compiler_name or "g++" in compiler_name
+        # clang uses same syntax for rpath as gcc
+        return any(name in compiler_name for name in ("gcc", "g++", "clang"))
 
     def runtime_library_dir_option(self, dir):
         # XXX Hackish, at the very least.  See Python bug #445902:
index baa503c83f8757534a272a133acb00728f9a37c3..d2c8828e5ed978b52a0a43f4724e503e4850fea1 100644 (file)
@@ -1022,10 +1022,8 @@ class DocTestFinder:
         if inspect.isclass(obj) and self._recurse:
             for valname, val in obj.__dict__.items():
                 # Special handling for staticmethod/classmethod.
-                if isinstance(val, staticmethod):
-                    val = getattr(obj, valname)
-                if isinstance(val, classmethod):
-                    val = getattr(obj, valname).__func__
+                if isinstance(val, (staticmethod, classmethod)):
+                    val = val.__func__
 
                 # Recurse to methods, properties, and nested classes.
                 if ((inspect.isroutine(val) or inspect.isclass(val) or
index 178329fbc6aacd92c18f7a6891674d4ef7a482ad..c5a7b23193ef4d8f7a380b373dce6c8a81593a88 100644 (file)
@@ -128,6 +128,8 @@ def _parsedate_tz(data):
             tss = 0
         elif len(tm) == 3:
             [thh, tmm, tss] = tm
+        else:
+            return None
     else:
         return None
     try:
index 3cf62dc8621cd9da3f0a49de740fca1d88c887e8..fcf278dbccbac9581e4de5cad5e2de252a2e4d4a 100644 (file)
@@ -144,7 +144,7 @@ def _encode_text(string, charset, cte, policy):
     linesep = policy.linesep.encode('ascii')
     def embedded_body(lines): return linesep.join(lines) + linesep
     def normal_body(lines): return b'\n'.join(lines) + b'\n'
-    if cte==None:
+    if cte is None:
         # Use heuristics to decide on the "best" encoding.
         if max((len(x) for x in lines), default=0) <= policy.max_line_length:
             try:
index 2b919b40d3788a7bd7dab3a983af091deb48a235..46c8e070dd192ed4bae9682d91e5d56413345cf1 100644 (file)
@@ -21,15 +21,16 @@ class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
         return codecs.raw_unicode_escape_encode(input, self.errors)[0]
 
-class IncrementalDecoder(codecs.IncrementalDecoder):
-    def decode(self, input, final=False):
-        return codecs.raw_unicode_escape_decode(input, self.errors)[0]
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    def _buffer_decode(self, input, errors, final):
+        return codecs.raw_unicode_escape_decode(input, errors, final)
 
 class StreamWriter(Codec,codecs.StreamWriter):
     pass
 
 class StreamReader(Codec,codecs.StreamReader):
-    pass
+    def decode(self, input, errors='strict'):
+        return codecs.raw_unicode_escape_decode(input, errors, False)
 
 ### encodings module API
 
index 817f93265a4634c9907b591b645a09cda73dcbf2..9b1ce99b339ae08eb63334393d8d81d54ab26475 100644 (file)
@@ -21,15 +21,16 @@ class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
         return codecs.unicode_escape_encode(input, self.errors)[0]
 
-class IncrementalDecoder(codecs.IncrementalDecoder):
-    def decode(self, input, final=False):
-        return codecs.unicode_escape_decode(input, self.errors)[0]
+class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
+    def _buffer_decode(self, input, errors, final):
+        return codecs.unicode_escape_decode(input, errors, final)
 
 class StreamWriter(Codec,codecs.StreamWriter):
     pass
 
 class StreamReader(Codec,codecs.StreamReader):
-    pass
+    def decode(self, input, errors='strict'):
+        return codecs.unicode_escape_decode(input, errors, False)
 
 ### encodings module API
 
index 7b03970c93ec077656f98ddb319876bf08b162fd..2a140a2624d461e872941f033acd0beeb0954edc 100644 (file)
@@ -11,12 +11,8 @@ from . import _bundled
 
 
 __all__ = ["version", "bootstrap"]
-
-
-_SETUPTOOLS_VERSION = "57.4.0"
-
-_PIP_VERSION = "21.2.3"
-
+_SETUPTOOLS_VERSION = "58.1.0"
+_PIP_VERSION = "21.2.4"
 _PROJECTS = [
     ("setuptools", _SETUPTOOLS_VERSION, "py3"),
     ("pip", _PIP_VERSION, "py3"),
diff --git a/Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl b/Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl
deleted file mode 100644 (file)
index d417df6..0000000
Binary files a/Lib/ensurepip/_bundled/pip-21.2.3-py3-none-any.whl and /dev/null differ
diff --git a/Lib/ensurepip/_bundled/pip-21.2.4-py3-none-any.whl b/Lib/ensurepip/_bundled/pip-21.2.4-py3-none-any.whl
new file mode 100644 (file)
index 0000000..46d3012
Binary files /dev/null and b/Lib/ensurepip/_bundled/pip-21.2.4-py3-none-any.whl differ
diff --git a/Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl b/Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl
deleted file mode 100644 (file)
index af8f8ba..0000000
Binary files a/Lib/ensurepip/_bundled/setuptools-57.4.0-py3-none-any.whl and /dev/null differ
diff --git a/Lib/ensurepip/_bundled/setuptools-58.1.0-py3-none-any.whl b/Lib/ensurepip/_bundled/setuptools-58.1.0-py3-none-any.whl
new file mode 100644 (file)
index 0000000..18c8c22
Binary files /dev/null and b/Lib/ensurepip/_bundled/setuptools-58.1.0-py3-none-any.whl differ
index 97744a869563d6cca420581a6e0ff5c11a9b06a8..1a290e1c02461be4fdf00330595a5a33e82d7347 100644 (file)
@@ -901,11 +901,24 @@ class singledispatchmethod:
         self.dispatcher = singledispatch(func)
         self.func = func
 
+        # bpo-45678: special-casing for classmethod/staticmethod in Python <=3.9,
+        # as functools.update_wrapper doesn't work properly in singledispatchmethod.__get__
+        # if it is applied to an unbound classmethod/staticmethod
+        if isinstance(func, (staticmethod, classmethod)):
+            self._wrapped_func = func.__func__
+        else:
+            self._wrapped_func = func
     def register(self, cls, method=None):
         """generic_method.register(cls, func) -> func
 
         Registers a new implementation for the given *cls* on a *generic_method*.
         """
+        # bpo-39679: in Python <= 3.9, classmethods and staticmethods don't
+        # inherit __annotations__ of the wrapped function (fixed in 3.10+ as
+        # a side-effect of bpo-43682) but we need that for annotation-derived
+        # singledispatches. So we add that just-in-time here.
+        if isinstance(cls, (staticmethod, classmethod)):
+            cls.__annotations__ = getattr(cls.__func__, '__annotations__', {})
         return self.dispatcher.register(cls, func=method)
 
     def __get__(self, obj, cls=None):
@@ -915,7 +928,7 @@ class singledispatchmethod:
 
         _method.__isabstractmethod__ = self.__isabstractmethod__
         _method.register = self.register
-        update_wrapper(_method, self.func)
+        update_wrapper(_method, self._wrapped_func)
         return _method
 
     @property
index d0e7a4814c565dc8cd0ccba81c25fa439978c478..1c5d9a413c944d376f9a9b29f8a86fa90e5a31d5 100644 (file)
@@ -17,7 +17,7 @@ class _NodeInfo:
         self.npredecessors = 0
 
         # List of successor nodes. The list can contain duplicated elements as
-        # long as they're all reflected in the successor's npredecessors attribute).
+        # long as they're all reflected in the successor's npredecessors attribute.
         self.successors = []
 
 
index 9e49effca1fcc5ae7378253883073b5d804675a5..58f6bb3b1e932dbfa0081662eae1c54bb7ec918b 100644 (file)
@@ -405,7 +405,7 @@ class HTMLParser(_markupbase.ParserBase):
             tagname = namematch.group(1).lower()
             # consume and ignore other stuff between the name and the >
             # Note: this is not 100% correct, since we might have things like
-            # </tag attr=">">, but looking for > after tha name should cover
+            # </tag attr=">">, but looking for > after the name should cover
             # most of the cases and is much simpler
             gtpos = rawdata.find('>', namematch.end())
             self.handle_endtag(tagname)
index 0fd9021b4a785d389da2ddfa3a77bec11a6aca31..a98432e56850635722efed917404a6f8532bfee7 100644 (file)
@@ -70,6 +70,7 @@ Req-sent-unread-response       _CS_REQ_SENT       <response_class>
 
 import email.parser
 import email.message
+import errno
 import http
 import io
 import re
@@ -944,7 +945,12 @@ class HTTPConnection:
         """Connect to the host and port specified in __init__."""
         self.sock = self._create_connection(
             (self.host,self.port), self.timeout, self.source_address)
-        self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
+        # Might fail in OSs that don't implement TCP_NODELAY
+        try:
+             self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
+        except OSError as e:
+            if e.errno != errno.ENOPROTOOPT:
+                raise
 
         if self._tunnel_host:
             self._tunnel()
index d7d7e1efdb1d308e22d07e7dca3cab502b204d1d..c8960cfa535d03464b2471e62b6712fafe76f10c 100644 (file)
@@ -1175,7 +1175,7 @@ Wed Mar 10 05:18:02 1999  Guido van Rossum  <guido@cnri.reston.va.us>
            classes in selected module
            methods of selected class
 
-       Sinlge clicking in a directory, module or class item updates the next
+       Single clicking in a directory, module or class item updates the next
        column with info about the selected item.  Double clicking in a
        module, class or method item opens the file (and selects the clicked
        item if it is a class or method).
index 3f87e89f675c4ec358b2279573de4355d5dafca6..edc539cd62875a09f1b1d63b58860ea20772358c 100644 (file)
@@ -24,7 +24,7 @@
     <link rel="index" title="Index" href="../genindex.html" />
     <link rel="search" title="Search" href="../search.html" />
     <link rel="copyright" title="Copyright" href="../copyright.html" />
-    <link rel="next" title="Other Graphical User Interface Packages" href="othergui.html" />
+    <link rel="next" title="Development Tools" href="development.html" />
     <link rel="prev" title="tkinter.tix â€” Extension widgets for Tk" href="tkinter.tix.html" />
     <link rel="canonical" href="https://docs.python.org/3/library/idle.html" />
 
@@ -59,7 +59,7 @@
           <a href="../py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
         <li class="right" >
-          <a href="othergui.html" title="Other Graphical User Interface Packages"
+          <a href="development.html" title="Development Tools"
              accesskey="N">next</a> |</li>
         <li class="right" >
           <a href="tkinter.tix.html" title="tkinter.tix â€” Extension widgets for Tk"
@@ -504,7 +504,7 @@ available module-level names by running your code
 and not restarting the Shell thereafter.  This is especially useful
 after adding imports at the top of a file.  This also increases
 possible attribute completions.</p>
-<p>Completion boxes intially exclude names beginning with â€˜_’ or, for
+<p>Completion boxes initially exclude names beginning with â€˜_’ or, for
 modules, not included in â€˜__all__’.  The hidden names can be accessed
 by typing â€˜_’ after â€˜.’, either before or after the box is opened.</p>
 </div>
@@ -932,8 +932,8 @@ also used for testing.</p>
   <p class="topless"><a href="tkinter.tix.html"
                         title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.tix</span></code> â€” Extension widgets for Tk</a></p>
   <h4>Next topic</h4>
-  <p class="topless"><a href="othergui.html"
-                        title="next chapter">Other Graphical User Interface Packages</a></p>
+  <p class="topless"><a href="development.html"
+                        title="next chapter">Development Tools</a></p>
   <div role="note" aria-label="source link">
     <h3>This Page</h3>
     <ul class="this-page-menu">
@@ -959,7 +959,7 @@ also used for testing.</p>
           <a href="../py-modindex.html" title="Python Module Index"
              >modules</a> |</li>
         <li class="right" >
-          <a href="othergui.html" title="Other Graphical User Interface Packages"
+          <a href="development.html" title="Development Tools"
              >next</a> |</li>
         <li class="right" >
           <a href="tkinter.tix.html" title="tkinter.tix â€” Extension widgets for Tk"
@@ -997,19 +997,13 @@ also used for testing.</p>
     <div class="footer">
     &copy; <a href="../copyright.html">Copyright</a> 2001-2021, Python Software Foundation.
     <br />
-    This page is licensed under the Python Software Foundation License Version 2.
-    <br />
-    Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
-    <br />
-    See <a href="">History and License</a> for more information.
-    <br /><br />
 
     The Python Software Foundation is a non-profit corporation.
 <a href="https://www.python.org/psf/donations/">Please donate.</a>
 <br />
     <br />
 
-    Last updated on May 11, 2021.
+    Last updated on Sep 06, 2021.
     <a href="https://docs.python.org/3/bugs.html">Found a bug</a>?
     <br />
 
index 64b13ac2abb3b2eb76fa35d9eee9b2eff0bd70ae..019aacbd0faa20711bb9a2617a1f5f9751304959 100644 (file)
@@ -10,6 +10,8 @@ from tkinter import SUNKEN, TOP, BOTTOM, LEFT, X, BOTH, W, EW, NSEW, E
 
 from idlelib import textview
 
+version = python_version()
+
 
 def build_bits():
     "Return bits for platform."
@@ -42,7 +44,7 @@ class AboutDialog(Toplevel):
         self.create_widgets()
         self.resizable(height=False, width=False)
         self.title(title or
-                   f'About IDLE {python_version()} ({build_bits()} bit)')
+                   f'About IDLE {version} ({build_bits()} bit)')
         self.transient(parent)
         self.grab_set()
         self.protocol("WM_DELETE_WINDOW", self.ok)
@@ -88,8 +90,8 @@ class AboutDialog(Toplevel):
         email = Label(frame_background, text='email:  idle-dev@python.org',
                       justify=LEFT, fg=self.fg, bg=self.bg)
         email.grid(row=6, column=0, columnspan=2, sticky=W, padx=10, pady=0)
-        docs = Label(frame_background, text='https://docs.python.org/' +
-                     python_version()[:3] + '/library/idle.html',
+        docs = Label(frame_background, text="https://docs.python.org/"
+                     f"{version[:version.rindex('.')]}/library/idle.html",
                      justify=LEFT, fg=self.fg, bg=self.bg)
         docs.grid(row=7, column=0, columnspan=2, sticky=W, padx=10, pady=0)
 
@@ -98,7 +100,7 @@ class AboutDialog(Toplevel):
                                          columnspan=3, padx=5, pady=5)
 
         pyver = Label(frame_background,
-                      text='Python version:  ' + python_version(),
+                      text='Python version:  ' + version,
                       fg=self.fg, bg=self.bg)
         pyver.grid(row=9, column=0, sticky=W, padx=10, pady=0)
         tkver = Label(frame_background, text='Tk version:  ' + tk_patchlevel,
@@ -124,7 +126,7 @@ class AboutDialog(Toplevel):
                                          columnspan=3, padx=5, pady=5)
 
         idlever = Label(frame_background,
-                        text='IDLE version:   ' + python_version(),
+                        text='IDLE version:   ' + version,
                         fg=self.fg, bg=self.bg)
         idlever.grid(row=12, column=0, sticky=W, padx=10, pady=0)
         idle_buttons = Frame(frame_background, bg=self.bg)
index 1373b7642a6ea91039f8f8ffd2e1a600e1a92932..666ff4cb8485106640afd38014df66ab957b5322 100644 (file)
@@ -246,7 +246,7 @@ _multistatus_bar_spec = {
 _object_browser_spec = {
     'file': 'debugobj',
     'kwds': {},
-    'msg': "Double click on items upto the lowest level.\n"
+    'msg': "Double click on items up to the lowest level.\n"
            "Attributes of the objects and related information "
            "will be displayed side-by-side at each level."
     }
@@ -255,7 +255,7 @@ _path_browser_spec = {
     'file': 'pathbrowser',
     'kwds': {},
     'msg': "Test for correct display of all paths in sys.path.\n"
-           "Toggle nested items upto the lowest level.\n"
+           "Toggle nested items up to the lowest level.\n"
            "Double clicking on an item prints a traceback\n"
            "for an exception that is ignored."
     }
@@ -341,7 +341,7 @@ _tree_widget_spec = {
     'file': 'tree',
     'kwds': {},
     'msg': "The canvas is scrollable.\n"
-           "Click on folders upto to the lowest level."
+           "Click on folders up to to the lowest level."
     }
 
 _undo_delegator_spec = {
index db583553838fb3344c7a09f43500eea6736f6a36..8304734b847a835e5ad17227a66a0ff3b21eeaf7 100644 (file)
@@ -79,7 +79,7 @@ class Test(unittest.TestCase):
     ---
     For 'ask' functions, set func.result return value before calling the method
     that uses the message function. When messagebox functions are the
-    only gui alls in a method, this replacement makes the method gui-free,
+    only GUI calls in a method, this replacement makes the method GUI-free,
     """
     askokcancel = Mbox_func()     # True or False
     askquestion = Mbox_func()     # 'yes' or 'no'
index b7fe7fd6b5ec106edf705678b1e8942837bb84c9..bf66cadf57cd3c081d773fa90b6e2d30d70ad921 100644 (file)
@@ -2,7 +2,7 @@
 
 Coverage is effectively 100%.  Tkinter dialog is mocked, Mac-only line
 may be skipped, and dummy function in bind test should not be called.
-Not tested: exit with 'self.advanced or self.keys_ok(keys)) ...' False.
+Not tested: exit with 'self.advanced or self.keys_ok(keys) ...' False.
 """
 
 from idlelib import config_key
index b6bd922e4b99dd47356227c9e9382ac6ecfc974a..86da8849e5ca00f55affd806b4b89e74f55fdcb5 100644 (file)
@@ -12,6 +12,15 @@ nontypes = {'other'}
 alltypes = mactypes | nontypes
 
 
+def setUpModule():
+    global orig_tktype
+    orig_tktype = macosx._tk_type
+
+
+def tearDownModule():
+    macosx._tk_type = orig_tktype
+
+
 class InitTktypeTest(unittest.TestCase):
     "Test _init_tk_type."
 
@@ -34,7 +43,7 @@ class InitTktypeTest(unittest.TestCase):
         for platform, types in ('darwin', alltypes), ('other', nontypes):
             with self.subTest(platform=platform):
                 macosx.platform = platform
-                macosx._tk_type == None
+                macosx._tk_type = None
                 macosx._init_tk_type()
                 self.assertIn(macosx._tk_type, types)
 
index ba582bb3ca51b4c99c2365317374649943773323..b3a3bfb88f9c31fa025d112803991212261e2508 100644 (file)
@@ -37,7 +37,7 @@ class MultiCallTest(unittest.TestCase):
 
     def test_yview(self):
         # Added for tree.wheel_event
-        # (it depends on yview to not be overriden)
+        # (it depends on yview to not be overridden)
         mc = self.mc
         self.assertIs(mc.yview, Text.yview)
         mctext = self.mc(self.root)
index fb5726db1d821ebd4a94db7a83682f250d28b453..384db566ac76cdb44fb3c2998a989e848d56cd6c 100644 (file)
@@ -284,7 +284,7 @@ class PyParseTest(unittest.TestCase):
         tests = (
             TestInfo('[x for x in a]\n', 1),      # Closed on one line.
             TestInfo('[x\nfor x in a\n', 2),      # Not closed.
-            TestInfo('[x\\\nfor x in a\\\n', 2),  # "", uneeded backslashes.
+            TestInfo('[x\\\nfor x in a\\\n', 2),  # "", unneeded backslashes.
             TestInfo('[x\nfor x in a\n]\n', 3),   # Closed on multi-line.
             TestInfo('\n"""Docstring comment L1"""\nL2\nL3\nL4\n', 1),
             TestInfo('\n"""Docstring comment L1\nL2"""\nL3\nL4\n', 1),
index e968862688b95ea22fa45d3e2cb5b55fd99cf8b8..bb12b2b08652d54717f314849d28a8bfc8f5c3bb 100644 (file)
@@ -1,4 +1,4 @@
-"""Test query, coverage 93%).
+"""Test query, coverage 93%.
 
 Non-gui tests for Query, SectionName, ModuleName, and HelpSource use
 dummy versions that extract the non-gui methods and add other needed
@@ -136,8 +136,8 @@ class ModuleNameTest(unittest.TestCase):
         dialog = self.Dummy_ModuleName('idlelib')
         self.assertTrue(dialog.entry_ok().endswith('__init__.py'))
         self.assertEqual(dialog.entry_error['text'], '')
-        dialog = self.Dummy_ModuleName('os.path')
-        self.assertTrue(dialog.entry_ok().endswith('path.py'))
+        dialog = self.Dummy_ModuleName('idlelib.idle')
+        self.assertTrue(dialog.entry_ok().endswith('idle.py'))
         self.assertEqual(dialog.entry_error['text'], '')
 
 
index fea3762461e99eabde888c3054dad4750b038480..ee529fa2ff7e36d6383e0d66d0c5068818275570 100755 (executable)
@@ -60,6 +60,13 @@ from idlelib.undo import UndoDelegator
 HOST = '127.0.0.1' # python execution server on localhost loopback
 PORT = 0  # someday pass in host, port for remote debug capability
 
+try:  # In case IDLE started with -n.
+    eof = 'Ctrl-D (end-of-file)'
+    exit.eof = eof
+    quit.eof = eof
+except NameError: # In case python started with -S.
+    pass
+
 # Override warnings module to write to warning_stream.  Initialize to send IDLE
 # internal warnings to the console.  ScriptBinding.check_syntax() will
 # temporarily redirect the stream to the shell window to display warnings when
index 07e9a2bf9ceeae1d356e404c58c2247cd43a688f..dda9711dcf7aed859656b5b67887e4541b18494f 100644 (file)
@@ -39,6 +39,13 @@ if not hasattr(sys.modules['idlelib.run'], 'firstrun'):
 
 LOCALHOST = '127.0.0.1'
 
+try:
+    eof = 'Ctrl-D (end-of-file)'
+    exit.eof = eof
+    quit.eof = eof
+except NameError: # In case subprocess started with -S (maybe in future).
+    pass
+
 
 def idle_formatwarning(message, category, filename, lineno, line=None):
     """Format warnings the IDLE way."""
index 9d1d46dce9496965428a96d1f15cbcd9d88f0cc8..10b5d14eb37bf5c3d80f212ff6e5761ad31001d1 100644 (file)
@@ -277,7 +277,7 @@ def iscode(object):
         co_kwonlyargcount   number of keyword only arguments (not including ** arg)
         co_lnotab           encoded mapping of line numbers to bytecode indices
         co_name             name with which this code object was defined
-        co_names            tuple of names of local variables
+        co_names            tuple of names other than arguments and function locals
         co_nlocals          number of local variables
         co_stacksize        virtual machine stack space required
         co_varnames         tuple of names of arguments and local variables"""
@@ -736,7 +736,7 @@ def getmodule(object, _filename=None):
     # Try the cache again with the absolute file name
     try:
         file = getabsfile(object, _filename)
-    except TypeError:
+    except (TypeError, FileNotFoundError):
         return None
     if file in modulesbyfile:
         return sys.modules.get(modulesbyfile[file])
@@ -1233,6 +1233,8 @@ def getargvalues(frame):
 def formatannotation(annotation, base_module=None):
     if getattr(annotation, '__module__', None) == 'typing':
         return repr(annotation).replace('typing.', '')
+    if isinstance(annotation, types.GenericAlias):
+        return str(annotation)
     if isinstance(annotation, type):
         if annotation.__module__ in ('builtins', base_module):
             return annotation.__qualname__
index d1cd10d327587cecef88ec2ca4c9c75243167072..fe547b2228072a3cf436733f40154004e98c215c 100644 (file)
@@ -51,7 +51,7 @@ def fixup_parse_tree(cls_node):
             # already in the preferred format, do nothing
             return
 
-    # !%@#! oneliners have no suite node, we have to fake one up
+    # !%@#! one-liners have no suite node, we have to fake one up
     for i, node in enumerate(cls_node.children):
         if node.type == token.COLON:
             break
index b205aa7e1e93fbe15d13bb259729f2b45fe0b322..df3da5f5232c9c42fc53c904f8c0b886b4dd4a51 100644 (file)
@@ -1,4 +1,4 @@
-"""Fixer that addes parentheses where they are required
+"""Fixer that adds parentheses where they are required
 
 This converts ``[x for x in 1, 2]`` to ``[x for x in (1, 2)]``."""
 
index 866316173a5b3b863f83e4f3cf8620d8b8fa40a4..f9e4ea1374f9070830c5945c2584440101b53786 100644 (file)
@@ -8,7 +8,7 @@
 # regression test, the filterwarnings() call has been added to
 # regrtest.py.
 
-from test.test_support import run_unittest, check_syntax_error
+from test.test_support import check_syntax_error
 import unittest
 import sys
 # testing import *
@@ -967,8 +967,5 @@ hello world
         self.assertEqual((6 < 4 if 0 else 2), 2)
 
 
-def test_main():
-    run_unittest(TokenTests, GrammarTests)
-
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index e1eee524874f842c606100322e4ed49297594402..a4a3f7eac0dded281bc70018d603e3cea6c42b99 100644 (file)
@@ -8,7 +8,7 @@
 # regression test, the filterwarnings() call has been added to
 # regrtest.py.
 
-from test.support import run_unittest, check_syntax_error
+from test.support import check_syntax_error
 import unittest
 import sys
 # testing import *
@@ -952,8 +952,5 @@ class GrammarTests(unittest.TestCase):
         self.assertEqual((6 < 4 if 0 else 2), 2)
 
 
-def test_main():
-    run_unittest(TokenTests, GrammarTests)
-
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index fa5dbd09eab8693a0a50fbf98ce2d1ee59b9404c..921bfa039bd48e10a71db930898296d759d83cf9 100644 (file)
@@ -154,7 +154,7 @@ def lazycache(filename, module_globals):
 
     :return: True if a lazy load is registered in the cache,
         otherwise False. To register such a load a module loader with a
-        get_source method must be found, the filename must be a cachable
+        get_source method must be found, the filename must be a cacheable
         filename, and the filename must not be already cached.
     """
     if filename in cache:
index 74b67602fa94fe123278119d206819ef99a07d00..f8040c498c10de44aaa7f1f6fe7ac196ce89f930 100644 (file)
@@ -185,14 +185,17 @@ class RotatingFileHandler(BaseRotatingHandler):
         Basically, see if the supplied record would cause the file to exceed
         the size limit we have.
         """
+        # See bpo-45401: Never rollover anything other than regular files
+        if os.path.exists(self.baseFilename) and not os.path.isfile(self.baseFilename):
+            return False
         if self.stream is None:                 # delay was set...
             self.stream = self._open()
         if self.maxBytes > 0:                   # are we rolling over?
             msg = "%s\n" % self.format(record)
             self.stream.seek(0, 2)  #due to non-posix-compliant Windows feature
             if self.stream.tell() + len(msg) >= self.maxBytes:
-                return 1
-        return 0
+                return True
+        return False
 
 class TimedRotatingFileHandler(BaseRotatingHandler):
     """
@@ -342,10 +345,13 @@ class TimedRotatingFileHandler(BaseRotatingHandler):
         record is not used, as we are just comparing times, but it is needed so
         the method signatures are the same
         """
+        # See bpo-45401: Never rollover anything other than regular files
+        if os.path.exists(self.baseFilename) and not os.path.isfile(self.baseFilename):
+            return False
         t = int(time.time())
         if t >= self.rolloverAt:
-            return 1
-        return 0
+            return True
+        return False
 
     def getFilesToDelete(self):
         """
@@ -362,8 +368,13 @@ class TimedRotatingFileHandler(BaseRotatingHandler):
         for fileName in fileNames:
             if fileName[:plen] == prefix:
                 suffix = fileName[plen:]
-                if self.extMatch.match(suffix):
-                    result.append(os.path.join(dirName, fileName))
+                # See bpo-45628: The date/time suffix could be anywhere in the
+                # filename
+                parts = suffix.split('.')
+                for part in parts:
+                    if self.extMatch.match(part):
+                        result.append(os.path.join(dirName, fileName))
+                        break
         if len(result) < self.backupCount:
             result = []
         else:
index 92c2a470e9789df5ab41be97a14a562f6aff2398..d36e1664cdcc8267b93a834a9e3b9b81456adf19 100644 (file)
@@ -169,7 +169,7 @@ class MimeTypes:
         but non-standard types.
         """
         type = type.lower()
-        extensions = self.types_map_inv[True].get(type, [])
+        extensions = list(self.types_map_inv[True].get(type, []))
         if not strict:
             for ext in self.types_map_inv[False].get(type, []):
                 if ext not in extensions:
index eeb3ecd27ab6583c1bae7b842eac39380b11dbcc..9f5745cfb14de223d726392ab4c021f8334706ba 100644 (file)
@@ -664,7 +664,7 @@ _Validation_records = [
 ('Class','Component_','N',None, None, 'Component',1,'Identifier',None, 'Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent.',),
 ('Class','Context','N',None, None, None, None, 'Identifier',None, 'The numeric server context for this server. CLSCTX_xxxx',),
 ('Class','DefInprocHandler','Y',None, None, None, None, 'Filename','1;2;3','Optional default inproc handler.  Only optionally provided if Context=CLSCTX_LOCAL_SERVER.  Typically "ole32.dll" or "mapi32.dll"',),
-('Class','FileTypeMask','Y',None, None, None, None, 'Text',None, 'Optional string containing information for the HKCRthis CLSID) key. If multiple patterns exist, they must be delimited by a semicolon, and numeric subkeys will be generated: 0,1,2...',),
+('Class','FileTypeMask','Y',None, None, None, None, 'Text',None, 'Optional string containing information for the HKCRthis CLSID key. If multiple patterns exist, they must be delimited by a semicolon, and numeric subkeys will be generated: 0,1,2...',),
 ('Class','Icon_','Y',None, None, 'Icon',1,'Identifier',None, 'Optional foreign key into the Icon Table, specifying the icon file associated with this CLSID. Will be written under the DefaultIcon key.',),
 ('Class','IconIndex','Y',-32767,32767,None, None, None, None, 'Optional icon index.',),
 ('Class','ProgId_Default','Y',None, None, 'ProgId',1,'Text',None, 'Optional ProgId associated with this CLSID.',),
index e63a8b6e4dbb7006cc1383f43b26e61b3c90db79..3d2c75a853889a3bcb446cc8d0f63c42deb44475 100644 (file)
@@ -1172,7 +1172,7 @@ class _Unpickler:
         used in Python 3.  The *encoding* and *errors* tell pickle how
         to decode 8-bit string instances pickled by Python 2; these
         default to 'ASCII' and 'strict', respectively. *encoding* can be
-        'bytes' to read theses 8-bit string instances as bytes objects.
+        'bytes' to read these 8-bit string instances as bytes objects.
         """
         self._buffers = iter(buffers) if buffers is not None else None
         self._file_readline = file.readline
index 1d623e621f09ca04b806b7e9e139f65c847510e3..9608d0e0ede5523d5df77cf74a64dc3e8d7c013f 100644 (file)
@@ -673,7 +673,7 @@ def resolve_name(name):
     ValueError - if `name` isn't in a recognised format
     ImportError - if an import failed when it shouldn't have
     AttributeError - if a failure occurred when traversing the object hierarchy
-                     within the imported package to get to the desired object)
+                     within the imported package to get to the desired object.
     """
     m = _NAME_PATTERN.match(name)
     if not m:
index bc69434998ad4128336a93fec3eec322053dcb57..8567e304a09edfb75674d7458617097625e2b4aa 100644 (file)
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Mon Aug 30 20:40:44 2021
+# Autogenerated by Sphinx on Fri Nov  5 20:19:23 2021
 topics = {'assert': 'The "assert" statement\n'
            '**********************\n'
            '\n'
@@ -3262,13 +3262,13 @@ topics = {'assert': 'The "assert" statement\n'
                   '\n'
                   '   If "__new__()" is invoked during object construction and '
                   'it returns\n'
-                  '   an instance or subclass of *cls*, then the new '
-                  'instance’s\n'
-                  '   "__init__()" method will be invoked like '
-                  '"__init__(self[, ...])",\n'
-                  '   where *self* is the new instance and the remaining '
-                  'arguments are\n'
-                  '   the same as were passed to the object constructor.\n'
+                  '   an instance of *cls*, then the new instance’s '
+                  '"__init__()" method\n'
+                  '   will be invoked like "__init__(self[, ...])", where '
+                  '*self* is the\n'
+                  '   new instance and the remaining arguments are the same as '
+                  'were\n'
+                  '   passed to the object constructor.\n'
                   '\n'
                   '   If "__new__()" does not return an instance of *cls*, '
                   'then the new\n'
@@ -4715,9 +4715,9 @@ topics = {'assert': 'The "assert" statement\n'
               'operations.\n'
               '\n'
               'If the "global" statement occurs within a block, all uses of '
-              'the name\n'
-              'specified in the statement refer to the binding of that name in '
-              'the\n'
+              'the names\n'
+              'specified in the statement refer to the bindings of those names '
+              'in the\n'
               'top-level namespace.  Names are resolved in the top-level '
               'namespace by\n'
               'searching the global namespace, i.e. the namespace of the '
@@ -4726,9 +4726,10 @@ topics = {'assert': 'The "assert" statement\n'
               'namespace\n'
               'of the module "builtins".  The global namespace is searched '
               'first.  If\n'
-              'the name is not found there, the builtins namespace is '
-              'searched.  The\n'
-              '"global" statement must precede all uses of the name.\n'
+              'the names are not found there, the builtins namespace is '
+              'searched.\n'
+              'The "global" statement must precede all uses of the listed '
+              'names.\n'
               '\n'
               'The "global" statement has the same scope as a name binding '
               'operation\n'
@@ -6786,8 +6787,8 @@ topics = {'assert': 'The "assert" statement\n'
            'operations.\n'
            '\n'
            'If the "global" statement occurs within a block, all uses of the '
-           'name\n'
-           'specified in the statement refer to the binding of that name in '
+           'names\n'
+           'specified in the statement refer to the bindings of those names in '
            'the\n'
            'top-level namespace.  Names are resolved in the top-level '
            'namespace by\n'
@@ -6796,9 +6797,9 @@ topics = {'assert': 'The "assert" statement\n'
            'namespace\n'
            'of the module "builtins".  The global namespace is searched '
            'first.  If\n'
-           'the name is not found there, the builtins namespace is searched.  '
-           'The\n'
-           '"global" statement must precede all uses of the name.\n'
+           'the names are not found there, the builtins namespace is '
+           'searched.\n'
+           'The "global" statement must precede all uses of the listed names.\n'
            '\n'
            'The "global" statement has the same scope as a name binding '
            'operation\n'
@@ -7143,9 +7144,9 @@ topics = {'assert': 'The "assert" statement\n'
                   '   of the object truncated to an "Integral" (typically an '
                   '"int").\n'
                   '\n'
-                  '   If "__int__()" is not defined then the built-in function '
-                  '"int()"\n'
-                  '   falls back to "__trunc__()".\n',
+                  '   The built-in function "int()" falls back to '
+                  '"__trunc__()" if\n'
+                  '   neither "__int__()" nor "__index__()" is defined.\n',
  'objects': 'Objects, values and types\n'
             '*************************\n'
             '\n'
@@ -8120,13 +8121,13 @@ topics = {'assert': 'The "assert" statement\n'
                  '\n'
                  '   If "__new__()" is invoked during object construction and '
                  'it returns\n'
-                 '   an instance or subclass of *cls*, then the new '
-                 'instance’s\n'
-                 '   "__init__()" method will be invoked like "__init__(self[, '
-                 '...])",\n'
-                 '   where *self* is the new instance and the remaining '
-                 'arguments are\n'
-                 '   the same as were passed to the object constructor.\n'
+                 '   an instance of *cls*, then the new instance’s '
+                 '"__init__()" method\n'
+                 '   will be invoked like "__init__(self[, ...])", where '
+                 '*self* is the\n'
+                 '   new instance and the remaining arguments are the same as '
+                 'were\n'
+                 '   passed to the object constructor.\n'
                  '\n'
                  '   If "__new__()" does not return an instance of *cls*, then '
                  'the new\n'
@@ -9888,9 +9889,9 @@ topics = {'assert': 'The "assert" statement\n'
                  '   of the object truncated to an "Integral" (typically an '
                  '"int").\n'
                  '\n'
-                 '   If "__int__()" is not defined then the built-in function '
-                 '"int()"\n'
-                 '   falls back to "__trunc__()".\n'
+                 '   The built-in function "int()" falls back to "__trunc__()" '
+                 'if\n'
+                 '   neither "__int__()" nor "__index__()" is defined.\n'
                  '\n'
                  '\n'
                  'With Statement Context Managers\n'
index 08384cf92bb5db5a83cb6b4d67805a989fb72e9c..752900c58890c98888439075bc4f2bea2e457444 100644 (file)
@@ -261,36 +261,37 @@ def copyfile(src, dst, *, follow_symlinks=True):
     if not follow_symlinks and _islink(src):
         os.symlink(os.readlink(src), dst)
     else:
-        try:
-            with open(src, 'rb') as fsrc, open(dst, 'wb') as fdst:
-                # macOS
-                if _HAS_FCOPYFILE:
-                    try:
-                        _fastcopy_fcopyfile(fsrc, fdst, posix._COPYFILE_DATA)
-                        return dst
-                    except _GiveupOnFastCopy:
-                        pass
-                # Linux
-                elif _USE_CP_SENDFILE:
-                    try:
-                        _fastcopy_sendfile(fsrc, fdst)
+        with open(src, 'rb') as fsrc:
+            try:
+                with open(dst, 'wb') as fdst:
+                    # macOS
+                    if _HAS_FCOPYFILE:
+                        try:
+                            _fastcopy_fcopyfile(fsrc, fdst, posix._COPYFILE_DATA)
+                            return dst
+                        except _GiveupOnFastCopy:
+                            pass
+                    # Linux
+                    elif _USE_CP_SENDFILE:
+                        try:
+                            _fastcopy_sendfile(fsrc, fdst)
+                            return dst
+                        except _GiveupOnFastCopy:
+                            pass
+                    # Windows, see:
+                    # https://github.com/python/cpython/pull/7160#discussion_r195405230
+                    elif _WINDOWS and file_size > 0:
+                        _copyfileobj_readinto(fsrc, fdst, min(file_size, COPY_BUFSIZE))
                         return dst
-                    except _GiveupOnFastCopy:
-                        pass
-                # Windows, see:
-                # https://github.com/python/cpython/pull/7160#discussion_r195405230
-                elif _WINDOWS and file_size > 0:
-                    _copyfileobj_readinto(fsrc, fdst, min(file_size, COPY_BUFSIZE))
-                    return dst
-
-                copyfileobj(fsrc, fdst)
-
-        # Issue 43219, raise a less confusing exception
-        except IsADirectoryError as e:
-            if os.path.exists(dst):
-                raise
-            else:
-                raise FileNotFoundError(f'Directory does not exist: {dst}') from e
+
+                    copyfileobj(fsrc, fdst)
+
+            # Issue 43219, raise a less confusing exception
+            except IsADirectoryError as e:
+                if not os.path.exists(dst):
+                    raise FileNotFoundError(f'Directory does not exist: {dst}') from e
+                else:
+                    raise
 
     return dst
 
index 6c91df27cca70d7fa397c41175d18c900b1747d9..efdb7f2ba20f11123f0b6a6a3c55b075a17701a6 100644 (file)
 #    misrepresented as being the original software.
 # 3. This notice may not be removed or altered from any source distribution.
 
+"""
+The sqlite3 extension module provides a DB-API 2.0 (PEP 249) compilant
+interface to the SQLite library, and requires SQLite 3.7.15 or newer.
+
+To use the module, you must first create a database Connection object:
+
+    import sqlite3
+    cx = sqlite3.connect("test.db")  # test.db will be created or opened
+
+You can also use the special database name ":memory:" to connect to a transient
+in-memory database:
+
+    cx = sqlite3.connect(":memory:")  # connect to a database in RAM
+
+Once you have a Connection object, you can create a Cursor object and call its
+execute() method to perform SQL queries:
+
+    cu = cx.cursor()
+
+    # create a table
+    cu.execute("create table lang(name, first_appeared)")
+
+    # insert values into a table
+    cu.execute("insert into lang values (?, ?)", ("C", 1972))
+
+    # execute a query and iterate over the result
+    for row in cu.execute("select * from lang"):
+        print(row)
+
+    cx.close()
+
+The sqlite3 module is written by Gerhard Häring <gh@ghaering.de>.
+"""
+
 from sqlite3.dbapi2 import *
index d00b60cac4e389449ce92f9a6f547e5e86c6b5ba..053543c0536f9fbb5f2877ce850f48a8815565c7 100644 (file)
@@ -1,7 +1,7 @@
 #-*- coding: iso-8859-1 -*-
 # pysqlite2/test/dbapi.py: tests for DB-API compliance
 #
-# Copyright (C) 2004-2010 Gerhard Häring <gh@ghaering.de>
+# Copyright (C) 2004-2010 Gerhard Häring <gh@ghaering.de>
 #
 # This file is part of pysqlite.
 #
@@ -451,7 +451,7 @@ class CursorTests(unittest.TestCase):
         self.assertEqual(row, None)
 
     def CheckArraySize(self):
-        # must default ot 1
+        # must default to 1
         self.assertEqual(self.cu.arraysize, 1)
 
         # now set to 2
index 1d15612616f1d8ca7ec3d21c028b8495bbe87302..043a4ab5a52a6f847c06aedfd3e4feb1efa8330f 100755 (executable)
@@ -2345,6 +2345,15 @@ class TarFile(object):
                     raise ReadError(str(e))
             except SubsequentHeaderError as e:
                 raise ReadError(str(e))
+            except Exception as e:
+                try:
+                    import zlib
+                    if isinstance(e, zlib.error):
+                        raise ReadError(f'zlib error: {e}')
+                    else:
+                        raise e
+                except ImportError:
+                    raise e
             break
 
         if tarinfo is not None:
index 770f72c25295cbe756ef32b618682090e6b09b1b..eafce6f25b6fb296369a9fa5ac8700aa3a7041eb 100644 (file)
@@ -88,6 +88,10 @@ def _infer_return_type(*args):
     for arg in args:
         if arg is None:
             continue
+
+        if isinstance(arg, _os.PathLike):
+            arg = _os.fspath(arg)
+
         if isinstance(arg, bytes):
             if return_type is str:
                 raise TypeError("Can't mix bytes and non-bytes in "
index 3072e5860189a233598c6d3f56fc5b3e8c537ac2..3ae0cb976863d1bb1c29256e64f2ec0b79bcf2e4 100644 (file)
@@ -3769,12 +3769,20 @@ class _TestSharedMemory(BaseTestCase):
         local_sms.buf[:len(binary_data)] = binary_data
         local_sms.close()
 
+    def _new_shm_name(self, prefix):
+        # Add a PID to the name of a POSIX shared memory object to allow
+        # running multiprocessing tests (test_multiprocessing_fork,
+        # test_multiprocessing_spawn, etc) in parallel.
+        return prefix + str(os.getpid())
+
+    @unittest.skipIf(sys.platform == "win32", "test is broken on Windows")
     def test_shared_memory_basics(self):
-        sms = shared_memory.SharedMemory('test01_tsmb', create=True, size=512)
+        name_tsmb = self._new_shm_name('test01_tsmb')
+        sms = shared_memory.SharedMemory(name_tsmb, create=True, size=512)
         self.addCleanup(sms.unlink)
 
         # Verify attributes are readable.
-        self.assertEqual(sms.name, 'test01_tsmb')
+        self.assertEqual(sms.name, name_tsmb)
         self.assertGreaterEqual(sms.size, 512)
         self.assertGreaterEqual(len(sms.buf), sms.size)
 
@@ -3783,12 +3791,12 @@ class _TestSharedMemory(BaseTestCase):
         self.assertEqual(sms.buf[0], 42)
 
         # Attach to existing shared memory segment.
-        also_sms = shared_memory.SharedMemory('test01_tsmb')
+        also_sms = shared_memory.SharedMemory(name_tsmb)
         self.assertEqual(also_sms.buf[0], 42)
         also_sms.close()
 
         # Attach to existing shared memory segment but specify a new size.
-        same_sms = shared_memory.SharedMemory('test01_tsmb', size=20*sms.size)
+        same_sms = shared_memory.SharedMemory(name_tsmb, size=20*sms.size)
         self.assertLess(same_sms.size, 20*sms.size)  # Size was ignored.
         same_sms.close()
 
@@ -3806,7 +3814,7 @@ class _TestSharedMemory(BaseTestCase):
             'multiprocessing.shared_memory._make_filename') as mock_make_filename:
 
             NAME_PREFIX = shared_memory._SHM_NAME_PREFIX
-            names = ['test01_fn', 'test02_fn']
+            names = [self._new_shm_name('test01_fn'), self._new_shm_name('test02_fn')]
             # Prepend NAME_PREFIX which can be '/psm_' or 'wnsm_', necessary
             # because some POSIX compliant systems require name to start with /
             names = [NAME_PREFIX + name for name in names]
@@ -3828,17 +3836,17 @@ class _TestSharedMemory(BaseTestCase):
             # manages unlinking on its own and unlink() does nothing).
             # True release of shared memory segment does not necessarily
             # happen until process exits, depending on the OS platform.
+            name_dblunlink = self._new_shm_name('test01_dblunlink')
+            sms_uno = shared_memory.SharedMemory(
+                name_dblunlink,
+                create=True,
+                size=5000
+            )
             with self.assertRaises(FileNotFoundError):
-                sms_uno = shared_memory.SharedMemory(
-                    'test01_dblunlink',
-                    create=True,
-                    size=5000
-                )
-
                 try:
                     self.assertGreaterEqual(sms_uno.size, 5000)
 
-                    sms_duo = shared_memory.SharedMemory('test01_dblunlink')
+                    sms_duo = shared_memory.SharedMemory(name_dblunlink)
                     sms_duo.unlink()  # First shm_unlink() call.
                     sms_duo.close()
                     sms_uno.close()
@@ -3850,7 +3858,7 @@ class _TestSharedMemory(BaseTestCase):
             # Attempting to create a new shared memory segment with a
             # name that is already in use triggers an exception.
             there_can_only_be_one_sms = shared_memory.SharedMemory(
-                'test01_tsmb',
+                name_tsmb,
                 create=True,
                 size=512
             )
@@ -3864,7 +3872,7 @@ class _TestSharedMemory(BaseTestCase):
             # case of MacOS/darwin, requesting a smaller size is disallowed.
             class OptionalAttachSharedMemory(shared_memory.SharedMemory):
                 _flags = os.O_CREAT | os.O_RDWR
-            ok_if_exists_sms = OptionalAttachSharedMemory('test01_tsmb')
+            ok_if_exists_sms = OptionalAttachSharedMemory(name_tsmb)
             self.assertEqual(ok_if_exists_sms.size, sms.size)
             ok_if_exists_sms.close()
 
@@ -4052,10 +4060,11 @@ class _TestSharedMemory(BaseTestCase):
             self.assertEqual(sl.count(b'adios'), 0)
 
         # Exercise creating a duplicate.
-        sl_copy = shared_memory.ShareableList(sl, name='test03_duplicate')
+        name_duplicate = self._new_shm_name('test03_duplicate')
+        sl_copy = shared_memory.ShareableList(sl, name=name_duplicate)
         try:
             self.assertNotEqual(sl.shm.name, sl_copy.shm.name)
-            self.assertEqual('test03_duplicate', sl_copy.shm.name)
+            self.assertEqual(name_duplicate, sl_copy.shm.name)
             self.assertEqual(list(sl), list(sl_copy))
             self.assertEqual(sl.format, sl_copy.format)
             sl_copy[-1] = 77
@@ -4146,6 +4155,13 @@ class _TestSharedMemory(BaseTestCase):
                                      " a process was abruptly terminated.")
 
             if os.name == 'posix':
+                # Without this line it was raising warnings like:
+                #   UserWarning: resource_tracker:
+                #   There appear to be 1 leaked shared_memory
+                #   objects to clean up at shutdown
+                # See: https://bugs.python.org/issue45209
+                resource_tracker.unregister(f"/{name}", "shared_memory")
+
                 # A warning was emitted by the subprocess' own
                 # resource_tracker (on Windows, shared memory segments
                 # are released automatically by the OS).
diff --git a/Lib/test/ann_module5.py b/Lib/test/ann_module5.py
new file mode 100644 (file)
index 0000000..837041e
--- /dev/null
@@ -0,0 +1,10 @@
+# Used by test_typing to verify that Final wrapped in ForwardRef works.
+
+from __future__ import annotations
+
+from typing import Final
+
+name: Final[str] = "final"
+
+class MyClass:
+    value: Final = 3000
diff --git a/Lib/test/ann_module6.py b/Lib/test/ann_module6.py
new file mode 100644 (file)
index 0000000..6791756
--- /dev/null
@@ -0,0 +1,7 @@
+# Tests that top-level ClassVar is not allowed
+
+from __future__ import annotations
+
+from typing import ClassVar
+
+wrong: ClassVar[int] = 1
index a9c3a370e0e838a11710ce049c65ef39f10ef335..85241526739cb7bb9f3286c70eae4feb29ec6628 100644 (file)
@@ -344,7 +344,7 @@ class TestTimeZone(unittest.TestCase):
         with self.assertRaises(TypeError): timezone(ZERO) < timezone(ZERO)
         self.assertIn(timezone(ZERO), {timezone(ZERO)})
         self.assertTrue(timezone(ZERO) != None)
-        self.assertFalse(timezone(ZERO) ==  None)
+        self.assertFalse(timezone(ZERO) == None)
 
         tz = timezone(ZERO)
         self.assertTrue(tz == ALWAYS_EQ)
@@ -4064,7 +4064,7 @@ class TestDateTimeTZ(TestDateTime, TZInfoBase, unittest.TestCase):
         self.assertEqual(t1, t1)
         self.assertEqual(t2, t2)
 
-        # Equal afer adjustment.
+        # Equal after adjustment.
         t1 = self.theclass(1, 12, 31, 23, 59, tzinfo=FixedOffset(1, ""))
         t2 = self.theclass(2, 1, 1, 3, 13, tzinfo=FixedOffset(3*60+13+2, ""))
         self.assertEqual(t1, t2)
@@ -4903,7 +4903,7 @@ class TestTimezoneConversions(unittest.TestCase):
         # OTOH, these fail!  Don't enable them.  The difficulty is that
         # the edge case tests assume that every hour is representable in
         # the "utc" class.  This is always true for a fixed-offset tzinfo
-        # class (lke utc_real and utc_fake), but not for Eastern or Central.
+        # class (like utc_real and utc_fake), but not for Eastern or Central.
         # For these adjacent DST-aware time zones, the range of time offsets
         # tested ends up creating hours in the one that aren't representable
         # in the other.  For the same reason, we would see failures in the
index 01f73d7766648f3d846c83d1a1b7452a220d37a8..569b8fcd84ab628f2c63c603f2384c653a3b3ce4 100644 (file)
@@ -20,7 +20,7 @@
 version: 2.59
 
 -- This set of tests primarily tests the existence of the operator.
--- Additon, subtraction, rounding, and more overflows are tested
+-- Addition, subtraction, rounding, and more overflows are tested
 -- elsewhere.
 
 precision:   9
index b630d8e3f9d45edb91ef56bf576a1a4f037ceda5..31291202a35e79ddd388979761ae3eda952bf0d0 100644 (file)
@@ -156,7 +156,7 @@ extr1302 fma -Inf 0E-456 sNaN148 -> NaN Invalid_operation
 
 -- max/min/max_mag/min_mag bug in 2.5.2/2.6/3.0: max(NaN, finite) gave
 -- incorrect answers when the finite number required rounding; similarly
--- for the other thre functions
+-- for the other three functions
 maxexponent: 999
 minexponent: -999
 precision: 6
index 6daf68b64a39606b8e3a21c08b3ca176b70738c8..56458afd290bb26bfa7fc16554b910d81bb00d6f 100644 (file)
@@ -66,6 +66,7 @@ class Regrtest:
         self.resource_denieds = []
         self.environment_changed = []
         self.run_no_tests = []
+        self.need_rerun = []
         self.rerun = []
         self.first_result = None
         self.interrupted = False
@@ -116,7 +117,7 @@ class Regrtest:
         elif isinstance(result, Failed):
             if not rerun:
                 self.bad.append(test_name)
-                self.rerun.append(result)
+                self.need_rerun.append(result)
         elif isinstance(result, DidNotRun):
             self.run_no_tests.append(test_name)
         elif isinstance(result, Interrupted):
@@ -309,10 +310,12 @@ class Regrtest:
 
         self.log()
         self.log("Re-running failed tests in verbose mode")
-        rerun_list = self.rerun[:]
-        self.rerun = []
+        rerun_list = list(self.need_rerun)
+        self.need_rerun.clear()
         for result in rerun_list:
             test_name = result.name
+            self.rerun.append(test_name)
+
             errors = result.errors or []
             failures = result.failures or []
             error_names = [test_full_name.split(" ")[0] for (test_full_name, *_) in errors]
@@ -394,7 +397,7 @@ class Regrtest:
         if self.rerun:
             print()
             print("%s:" % count(len(self.rerun), "re-run test"))
-            printlist(r.name for r in self.rerun)
+            printlist(self.rerun)
 
         if self.run_no_tests:
             print()
index 8d221232eb6ce7d23565628d4c91b42a4fbef808..061204114d2753a619dbbb695dac2cc0cfec1703 100644 (file)
@@ -109,7 +109,7 @@ def dash_R(ns, test_name, test_func):
 
     # These checkers return False on success, True on failure
     def check_rc_deltas(deltas):
-        # Checker for reference counters and memomry blocks.
+        # Checker for reference counters and memory blocks.
         #
         # bpo-30776: Try to ignore false positives:
         #
index 1f264c1be49fe0d3f7a313a74df433611c3e167a..cedf905c35c55ced6622010f9c5d290bbc1a7c4a 100644 (file)
@@ -35,6 +35,7 @@ def setup_tests(ns):
         for signum in signals:
             faulthandler.register(signum, chain=True, file=stderr_fd)
 
+    _adjust_resource_limits()
     replace_stdout()
     support.record_original_stdout(sys.stdout)
 
@@ -117,3 +118,26 @@ def replace_stdout():
         sys.stdout.close()
         sys.stdout = stdout
     atexit.register(restore_stdout)
+
+
+def _adjust_resource_limits():
+    """Adjust the system resource limits (ulimit) if needed."""
+    try:
+        import resource
+        from resource import RLIMIT_NOFILE, RLIM_INFINITY
+    except ImportError:
+        return
+    fd_limit, max_fds = resource.getrlimit(RLIMIT_NOFILE)
+    # On macOS the default fd limit is sometimes too low (256) for our
+    # test suite to succeed.  Raise it to something more reasonable.
+    # 1024 is a common Linux default.
+    desired_fds = 1024
+    if fd_limit < desired_fds and fd_limit < max_fds:
+        new_fd_limit = min(desired_fds, max_fds)
+        try:
+            resource.setrlimit(RLIMIT_NOFILE, (new_fd_limit, max_fds))
+            print(f"Raised RLIMIT_NOFILE: {fd_limit} -> {new_fd_limit}")
+        except (ValueError, OSError) as err:
+            print(f"Unable to raise RLIMIT_NOFILE from {fd_limit} to "
+                  f"{new_fd_limit}: {err}.")
+
index 7e279cc736a23669d88a5aa6a1c739d0c4aaa46a..4684c9e68994b0eb70c77a23ea3bfd5029adcbd8 100644 (file)
@@ -824,7 +824,7 @@ def create_data():
     return x
 
 
-class AbstractUnpickleTests(unittest.TestCase):
+class AbstractUnpickleTests:
     # Subclass must define self.loads.
 
     _testdata = create_data()
@@ -1437,7 +1437,7 @@ class AbstractUnpickleTests(unittest.TestCase):
 
 
 
-class AbstractPickleTests(unittest.TestCase):
+class AbstractPickleTests:
     # Subclass must define self.dumps, self.loads.
 
     optimized = False
@@ -2371,7 +2371,8 @@ class AbstractPickleTests(unittest.TestCase):
         # Issue #3514: crash when there is an infinite loop in __getattr__
         x = BadGetattr()
         for proto in protocols:
-            self.assertRaises(RuntimeError, self.dumps, x, proto)
+            with support.infinite_recursion():
+                self.assertRaises(RuntimeError, self.dumps, x, proto)
 
     def test_reduce_bad_iterator(self):
         # Issue4176: crash when 4th and 5th items of __reduce__()
@@ -3020,7 +3021,7 @@ class AbstractPickleTests(unittest.TestCase):
         check_array(arr[::2])
 
 
-class BigmemPickleTests(unittest.TestCase):
+class BigmemPickleTests:
 
     # Binary protocols can serialize longs of up to 2 GiB-1
 
@@ -3293,7 +3294,7 @@ class BadGetattr:
         self.foo
 
 
-class AbstractPickleModuleTests(unittest.TestCase):
+class AbstractPickleModuleTests:
 
     def test_dump_closed_file(self):
         f = open(TESTFN, "wb")
@@ -3400,7 +3401,7 @@ class AbstractPickleModuleTests(unittest.TestCase):
         self.check_dumps_loads_oob_buffers(dumps, loads)
 
 
-class AbstractPersistentPicklerTests(unittest.TestCase):
+class AbstractPersistentPicklerTests:
 
     # This class defines persistent_id() and persistent_load()
     # functions that should be used by the pickler.  All even integers
@@ -3440,7 +3441,7 @@ class AbstractPersistentPicklerTests(unittest.TestCase):
             self.assertEqual(self.load_false_count, 1)
 
 
-class AbstractIdentityPersistentPicklerTests(unittest.TestCase):
+class AbstractIdentityPersistentPicklerTests:
 
     def persistent_id(self, obj):
         return obj
@@ -3469,7 +3470,7 @@ class AbstractIdentityPersistentPicklerTests(unittest.TestCase):
         self.assertRaises(pickle.UnpicklingError, self.loads, pickled)
 
 
-class AbstractPicklerUnpicklerObjectTests(unittest.TestCase):
+class AbstractPicklerUnpicklerObjectTests:
 
     pickler_class = None
     unpickler_class = None
@@ -3683,7 +3684,7 @@ class AbstractCustomPicklerClass:
 
         return NotImplemented
 
-class AbstractHookTests(unittest.TestCase):
+class AbstractHookTests:
     def test_pickler_hook(self):
         # test the ability of a custom, user-defined CPickler subclass to
         # override the default reducing routines of any type using the method
@@ -3711,7 +3712,7 @@ class AbstractHookTests(unittest.TestCase):
 
                 self.assertEqual(new_f, 5)
                 self.assertEqual(some_str, 'some str')
-                # math.log does not have its usual reducer overriden, so the
+                # math.log does not have its usual reducer overridden, so the
                 # custom reduction callback should silently direct the pickler
                 # to the default pickling by attribute, by returning
                 # NotImplemented
@@ -3728,7 +3729,7 @@ class AbstractHookTests(unittest.TestCase):
     def test_reducer_override_no_reference_cycle(self):
         # bpo-39492: reducer_override used to induce a spurious reference cycle
         # inside the Pickler object, that could prevent all serialized objects
-        # from being garbage-collected without explicity invoking gc.collect.
+        # from being garbage-collected without explicitly invoking gc.collect.
 
         for proto in range(0, pickle.HIGHEST_PROTOCOL + 1):
             with self.subTest(proto=proto):
@@ -3749,7 +3750,7 @@ class AbstractHookTests(unittest.TestCase):
                 self.assertIsNone(wr())
 
 
-class AbstractDispatchTableTests(unittest.TestCase):
+class AbstractDispatchTableTests:
 
     def test_default_dispatch_table(self):
         # No dispatch_table attribute by default
index 7e5a29b18de393df03d56828cdfc372e19014842..4ced1300cbfabb7859be5e1f01a86c2c9ae55390 100644 (file)
@@ -193,32 +193,13 @@ def import_module(name, deprecated=False, *, required_on=()):
             raise unittest.SkipTest(str(msg))
 
 
-def _save_and_remove_module(name, orig_modules):
-    """Helper function to save and remove a module from sys.modules
-
-    Raise ImportError if the module can't be imported.
-    """
-    # try to import the module and raise an error if it can't be imported
-    if name not in sys.modules:
-        __import__(name)
-        del sys.modules[name]
+def _save_and_remove_modules(names):
+    orig_modules = {}
+    prefixes = tuple(name + '.' for name in names)
     for modname in list(sys.modules):
-        if modname == name or modname.startswith(name + '.'):
-            orig_modules[modname] = sys.modules[modname]
-            del sys.modules[modname]
-
-def _save_and_block_module(name, orig_modules):
-    """Helper function to save and block a module in sys.modules
-
-    Return True if the module was in sys.modules, False otherwise.
-    """
-    saved = True
-    try:
-        orig_modules[name] = sys.modules[name]
-    except KeyError:
-        saved = False
-    sys.modules[name] = None
-    return saved
+        if modname in names or modname.startswith(prefixes):
+            orig_modules[modname] = sys.modules.pop(modname)
+    return orig_modules
 
 
 def anticipate_failure(condition):
@@ -260,7 +241,8 @@ def import_fresh_module(name, fresh=(), blocked=(), deprecated=False):
     this operation.
 
     *fresh* is an iterable of additional module names that are also removed
-    from the sys.modules cache before doing the import.
+    from the sys.modules cache before doing the import. If one of these
+    modules can't be imported, None is returned.
 
     *blocked* is an iterable of module names that are replaced with None
     in the module cache during the import to ensure that attempts to import
@@ -275,30 +257,33 @@ def import_fresh_module(name, fresh=(), blocked=(), deprecated=False):
 
     This function will raise ImportError if the named module cannot be
     imported.
+
+    If "usefrozen" is False (the default) then the frozen importer is
+    disabled (except for essential modules like importlib._bootstrap).
     """
     # NOTE: test_heapq, test_json and test_warnings include extra sanity checks
     # to make sure that this utility function is working as expected
     with _ignore_deprecated_imports(deprecated):
         # Keep track of modules saved for later restoration as well
         # as those which just need a blocking entry removed
-        orig_modules = {}
-        names_to_remove = []
-        _save_and_remove_module(name, orig_modules)
+        fresh = list(fresh)
+        blocked = list(blocked)
+        names = {name, *fresh, *blocked}
+        orig_modules = _save_and_remove_modules(names)
+        for modname in blocked:
+            sys.modules[modname] = None
+
         try:
-            for fresh_name in fresh:
-                _save_and_remove_module(fresh_name, orig_modules)
-            for blocked_name in blocked:
-                if not _save_and_block_module(blocked_name, orig_modules):
-                    names_to_remove.append(blocked_name)
-            fresh_module = importlib.import_module(name)
-        except ImportError:
-            fresh_module = None
+            # Return None when one of the "fresh" modules can not be imported.
+            try:
+                for modname in fresh:
+                    __import__(modname)
+            except ImportError:
+                return None
+            return importlib.import_module(name)
         finally:
-            for orig_name, module in orig_modules.items():
-                sys.modules[orig_name] = module
-            for name_to_remove in names_to_remove:
-                del sys.modules[name_to_remove]
-        return fresh_module
+            _save_and_remove_modules(names)
+            sys.modules.update(orig_modules)
 
 
 def get_attribute(obj, name):
@@ -682,8 +667,8 @@ PIPE_MAX_SIZE = 4 * 1024 * 1024 + 1
 # A constant likely larger than the underlying OS socket buffer size, to make
 # writes blocking.
 # The socket buffer sizes can usually be tuned system-wide (e.g. through sysctl
-# on Linux), or on a per-socket basis (SO_SNDBUF/SO_RCVBUF). See issue #18643
-# for a discussion of this number).
+# on Linux), or on a per-socket basis (SO_SNDBUF/SO_RCVBUF).  See issue #18643
+# for a discussion of this number.
 SOCK_MAX_SIZE = 16 * 1024 * 1024 + 1
 
 # decorator for skipping tests on non-IEEE 754 platforms
@@ -1525,9 +1510,8 @@ def check_sizeof(test, o, size):
 # Decorator for running a function in a different locale, correctly resetting
 # it afterwards.
 
+@contextlib.contextmanager
 def run_with_locale(catstr, *locales):
-    def decorator(func):
-        def inner(*args, **kwds):
             try:
                 import locale
                 category = getattr(locale, catstr)
@@ -1546,16 +1530,11 @@ def run_with_locale(catstr, *locales):
                     except:
                         pass
 
-            # now run the function, resetting the locale on exceptions
             try:
-                return func(*args, **kwds)
+                yield
             finally:
                 if locale and orig_locale:
                     locale.setlocale(category, orig_locale)
-        inner.__name__ = func.__name__
-        inner.__doc__ = func.__doc__
-        return inner
-    return decorator
 
 #=======================================================================
 # Decorator for running a function in a specific timezone, correctly
index a28132a565a0b5a3f831f0c22938122c1b120eb7..a4e6c92203ab5004d564d47bf7437f07e7a5813f 100644 (file)
@@ -21,8 +21,21 @@ def requires_hashdigest(digestname, openssl=None, usedforsecurity=True):
     ValueError: [digital envelope routines: EVP_DigestInit_ex] disabled for FIPS
     ValueError: unsupported hash type md4
     """
-    def decorator(func):
-        @functools.wraps(func)
+    def decorator(func_or_class):
+        if isinstance(func_or_class, type):
+            setUpClass = func_or_class.__dict__.get('setUpClass')
+            if setUpClass is None:
+                def setUpClass(cls):
+                    super(func_or_class, cls).setUpClass()
+                setUpClass.__qualname__ = func_or_class.__qualname__ + '.setUpClass'
+                setUpClass.__module__ = func_or_class.__module__
+            else:
+                setUpClass = setUpClass.__func__
+            setUpClass = classmethod(decorator(setUpClass))
+            func_or_class.setUpClass = setUpClass
+            return func_or_class
+
+        @functools.wraps(func_or_class)
         def wrapper(*args, **kwargs):
             try:
                 if openssl and _hashlib is not None:
@@ -33,6 +46,6 @@ def requires_hashdigest(digestname, openssl=None, usedforsecurity=True):
                 raise unittest.SkipTest(
                     f"hash digest '{digestname}' is not available."
                 )
-            return func(*args, **kwargs)
+            return func_or_class(*args, **kwargs)
         return wrapper
     return decorator
index 67e126dcf7527ab0703370b989016adb44d36151..adae566e8d8073c1dd5a101c8faa517cf8ce73e7 100644 (file)
@@ -14,19 +14,16 @@ import xml.etree.ElementTree as ET
 from datetime import datetime
 
 class RegressionTestResult(unittest.TextTestResult):
-    separator1 = '=' * 70 + '\n'
-    separator2 = '-' * 70 + '\n'
 
     def __init__(self, stream, descriptions, verbosity):
-        super().__init__(stream=stream, descriptions=descriptions, verbosity=0)
+        super().__init__(stream=stream, descriptions=descriptions,
+                         verbosity=2 if verbosity else 0)
         self.buffer = True
         self.__suite = ET.Element('testsuite')
         self.__suite.set('start', datetime.utcnow().isoformat(' '))
 
         self.__e = None
         self.__start_time = None
-        self.__results = []
-        self.__verbose = bool(verbosity)
 
     @classmethod
     def __getId(cls, test):
@@ -44,9 +41,6 @@ class RegressionTestResult(unittest.TextTestResult):
         super().startTest(test)
         self.__e = e = ET.SubElement(self.__suite, 'testcase')
         self.__start_time = time.perf_counter()
-        if self.__verbose:
-            self.stream.write(f'{self.getDescription(test)} ... ')
-            self.stream.flush()
 
     def _add_result(self, test, capture=False, **args):
         e = self.__e
@@ -80,10 +74,6 @@ class RegressionTestResult(unittest.TextTestResult):
             else:
                 e2.text = str(v)
 
-    def __write(self, c, word):
-        if self.__verbose:
-            self.stream.write(f'{word}\n')
-
     @classmethod
     def __makeErrorDict(cls, err_type, err_value, err_tb):
         if isinstance(err_type, type):
@@ -106,45 +96,26 @@ class RegressionTestResult(unittest.TextTestResult):
     def addError(self, test, err):
         self._add_result(test, True, error=self.__makeErrorDict(*err))
         super().addError(test, err)
-        self.__write('E', 'ERROR')
 
     def addExpectedFailure(self, test, err):
         self._add_result(test, True, output=self.__makeErrorDict(*err))
         super().addExpectedFailure(test, err)
-        self.__write('x', 'expected failure')
 
     def addFailure(self, test, err):
         self._add_result(test, True, failure=self.__makeErrorDict(*err))
         super().addFailure(test, err)
-        self.__write('F', 'FAIL')
 
     def addSkip(self, test, reason):
         self._add_result(test, skipped=reason)
         super().addSkip(test, reason)
-        self.__write('S', f'skipped {reason!r}')
 
     def addSuccess(self, test):
         self._add_result(test)
         super().addSuccess(test)
-        self.__write('.', 'ok')
 
     def addUnexpectedSuccess(self, test):
         self._add_result(test, outcome='UNEXPECTED_SUCCESS')
         super().addUnexpectedSuccess(test)
-        self.__write('u', 'unexpected success')
-
-    def printErrors(self):
-        if self.__verbose:
-            self.stream.write('\n')
-        self.printErrorList('ERROR', self.errors)
-        self.printErrorList('FAIL', self.failures)
-
-    def printErrorList(self, flavor, errors):
-        for test, err in errors:
-            self.stream.write(self.separator1)
-            self.stream.write(f'{flavor}: {self.getDescription(test)}\n')
-            self.stream.write(self.separator2)
-            self.stream.write('%s\n' % err)
 
     def get_xml_element(self):
         e = self.__suite
index cbfa881818bc6ab483966b37da36e4e4019e4520..6260d0937eec8c77a91cff428b6c8503e0731a6c 100644 (file)
@@ -1231,7 +1231,7 @@ class ChannelTests(TestBase):
             import _xxsubinterpreters as _interpreters
             obj = _interpreters.channel_recv({cid})
             """))
-        # Test for channel that has boths ends associated to an interpreter.
+        # Test for channel that has both ends associated to an interpreter.
         send_interps = interpreters.channel_list_interpreters(cid, send=True)
         recv_interps = interpreters.channel_list_interpreters(cid, send=False)
         self.assertEqual(send_interps, [interp0])
index 5d8bc1427c42784231b45f96f694ce1367b9fa58..c3c3a75fafff7e19deaed807fb8799de861ac6ef 100644 (file)
@@ -2143,6 +2143,44 @@ class TestAddSubparsers(TestCase):
                               wrap\N{NO-BREAK SPACE}at non-breaking spaces
         '''))
 
+    def test_help_blank(self):
+        # Issue 24444
+        parser = ErrorRaisingArgumentParser(
+            prog='PROG', description='main description')
+        parser.add_argument(
+            'foo',
+            help='    ')
+        self.assertEqual(parser.format_help(), textwrap.dedent('''\
+            usage: PROG [-h] foo
+
+            main description
+
+            positional arguments:
+              foo         \
+
+
+            optional arguments:
+              -h, --help  show this help message and exit
+        '''))
+
+        parser = ErrorRaisingArgumentParser(
+            prog='PROG', description='main description')
+        parser.add_argument(
+            'foo', choices=[],
+            help='%(choices)s')
+        self.assertEqual(parser.format_help(), textwrap.dedent('''\
+            usage: PROG [-h] {}
+
+            main description
+
+            positional arguments:
+              {}          \
+
+
+            optional arguments:
+              -h, --help  show this help message and exit
+        '''))
+
     def test_help_alternate_prefix_chars(self):
         parser = self._get_parser(prefix_chars='+:/')
         self.assertEqual(parser.format_usage(),
@@ -3057,6 +3095,12 @@ class TestSetDefaults(TestCase):
         xparser.set_defaults(foo=2)
         self.assertEqual(NS(foo=2), parser.parse_args(['X']))
 
+    def test_set_defaults_on_subparser_with_namespace(self):
+        parser = argparse.ArgumentParser()
+        xparser = parser.add_subparsers().add_parser('X')
+        xparser.set_defaults(foo=1)
+        self.assertEqual(NS(foo=2), parser.parse_args(['X'], NS(foo=2)))
+
     def test_set_defaults_same_as_add_argument(self):
         parser = ErrorRaisingArgumentParser()
         parser.set_defaults(w='W', x='X', y='Y', z='Z')
@@ -5388,13 +5432,11 @@ class TestExitOnError(TestCase):
             self.parser.parse_args('--integers a'.split())
 
 
-def test_main():
-    support.run_unittest(__name__)
+def tearDownModule():
     # Remove global references to avoid looking like we have refleaks.
     RFile.seen = {}
     WFile.seen = set()
 
 
-
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 8d2ad2233ae1f5f5ddf16147ade310a0f47364fd..15997380861d0688e37db3c639e7518bb01cdfdf 100644 (file)
@@ -1077,6 +1077,84 @@ class AsyncGenAsyncioTest(unittest.TestCase):
 
         self.assertEqual(finalized, 2)
 
+    def test_async_gen_asyncio_shutdown_02(self):
+        messages = []
+
+        def exception_handler(loop, context):
+            messages.append(context)
+
+        async def async_iterate():
+            yield 1
+            yield 2
+
+        it = async_iterate()
+        async def main():
+            loop = asyncio.get_running_loop()
+            loop.set_exception_handler(exception_handler)
+
+            async for i in it:
+                break
+
+        asyncio.run(main())
+
+        self.assertEqual(messages, [])
+
+    def test_async_gen_asyncio_shutdown_exception_01(self):
+        messages = []
+
+        def exception_handler(loop, context):
+            messages.append(context)
+
+        async def async_iterate():
+            try:
+                yield 1
+                yield 2
+            finally:
+                1/0
+
+        it = async_iterate()
+        async def main():
+            loop = asyncio.get_running_loop()
+            loop.set_exception_handler(exception_handler)
+
+            async for i in it:
+                break
+
+        asyncio.run(main())
+
+        message, = messages
+        self.assertEqual(message['asyncgen'], it)
+        self.assertIsInstance(message['exception'], ZeroDivisionError)
+        self.assertIn('an error occurred during closing of asynchronous generator',
+                      message['message'])
+
+    def test_async_gen_asyncio_shutdown_exception_02(self):
+        messages = []
+
+        def exception_handler(loop, context):
+            messages.append(context)
+
+        async def async_iterate():
+            try:
+                yield 1
+                yield 2
+            finally:
+                1/0
+
+        async def main():
+            loop = asyncio.get_running_loop()
+            loop.set_exception_handler(exception_handler)
+
+            async for i in async_iterate():
+                break
+
+        asyncio.run(main())
+
+        message, = messages
+        self.assertIsInstance(message['exception'], ZeroDivisionError)
+        self.assertIn('unhandled exception during asyncio.run() shutdown',
+                      message['message'])
+
     def test_async_gen_expression_01(self):
         async def arange(n):
             for i in range(n):
index 4a7a868980d88be11d6d1b8e75fb0f7ababb2c02..5535b88cff0187c855a34a35717699ae6ef75299 100644 (file)
@@ -1,38 +1,10 @@
 import os
 from test import support
-import unittest
 
 # Skip tests if we don't have concurrent.futures.
 support.import_module('concurrent.futures')
 
 
-def load_tests(loader, _, pattern):
+def load_tests(*args):
     pkg_dir = os.path.dirname(__file__)
-    suite = AsyncioTestSuite()
-    return support.load_package_tests(pkg_dir, loader, suite, pattern)
-
-
-class AsyncioTestSuite(unittest.TestSuite):
-    """A custom test suite that also runs setup/teardown for the whole package.
-
-    Normally unittest only runs setUpModule() and tearDownModule() within each
-    test module part of the test suite. Copying those functions to each file
-    would be tedious, let's run this once and for all.
-    """
-    def run(self, result, debug=False):
-        ignore = support.ignore_deprecations_from
-        tokens = {
-            ignore("asyncio.base_events", like=r".*loop argument.*"),
-            ignore("asyncio.unix_events", like=r".*loop argument.*"),
-            ignore("asyncio.futures", like=r".*loop argument.*"),
-            ignore("asyncio.runners", like=r".*loop argument.*"),
-            ignore("asyncio.subprocess", like=r".*loop argument.*"),
-            ignore("asyncio.tasks", like=r".*loop argument.*"),
-            ignore("test.test_asyncio.test_events", like=r".*loop argument.*"),
-            ignore("test.test_asyncio.test_queues", like=r".*loop argument.*"),
-            ignore("test.test_asyncio.test_tasks", like=r".*loop argument.*"),
-        }
-        try:
-            super().run(result, debug=debug)
-        finally:
-            support.clear_ignored_deprecations(*tokens)
+    return support.load_package_tests(pkg_dir, *args)
index 7114c2f0c71daa0135cb8e3319946e9edb13a27e..72189bfd38e2b14d61d77bc2b30ac9e39689dd73 100644 (file)
@@ -205,8 +205,8 @@ class MySubprocessProtocol(asyncio.SubprocessProtocol):
         self.disconnects = {fd: loop.create_future() for fd in range(3)}
         self.data = {1: b'', 2: b''}
         self.returncode = None
-        self.got_data = {1: asyncio.Event(loop=loop),
-                         2: asyncio.Event(loop=loop)}
+        self.got_data = {1: asyncio.Event(),
+                         2: asyncio.Event()}
 
     def connection_made(self, transport):
         self.transport = transport
@@ -1736,20 +1736,19 @@ class SubprocessTestsMixin:
         connect = self.loop.subprocess_exec(
                         functools.partial(MySubprocessProtocol, self.loop),
                         sys.executable, prog)
-        with self.assertWarns(DeprecationWarning):
-            transp, proto = self.loop.run_until_complete(connect)
-            self.assertIsInstance(proto, MySubprocessProtocol)
-            self.loop.run_until_complete(proto.connected)
-            self.assertEqual('CONNECTED', proto.state)
+        transp, proto = self.loop.run_until_complete(connect)
+        self.assertIsInstance(proto, MySubprocessProtocol)
+        self.loop.run_until_complete(proto.connected)
+        self.assertEqual('CONNECTED', proto.state)
 
-            stdin = transp.get_pipe_transport(0)
-            stdin.write(b'Python The Winner')
-            self.loop.run_until_complete(proto.got_data[1].wait())
-            with test_utils.disable_logger():
-                transp.close()
-            self.loop.run_until_complete(proto.completed)
-            self.check_killed(proto.returncode)
-            self.assertEqual(b'Python The Winner', proto.data[1])
+        stdin = transp.get_pipe_transport(0)
+        stdin.write(b'Python The Winner')
+        self.loop.run_until_complete(proto.got_data[1].wait())
+        with test_utils.disable_logger():
+            transp.close()
+        self.loop.run_until_complete(proto.completed)
+        self.check_killed(proto.returncode)
+        self.assertEqual(b'Python The Winner', proto.data[1])
 
     def test_subprocess_interactive(self):
         prog = os.path.join(os.path.dirname(__file__), 'echo.py')
@@ -1758,51 +1757,48 @@ class SubprocessTestsMixin:
                         functools.partial(MySubprocessProtocol, self.loop),
                         sys.executable, prog)
 
-        with self.assertWarns(DeprecationWarning):
-            transp, proto = self.loop.run_until_complete(connect)
-            self.assertIsInstance(proto, MySubprocessProtocol)
-            self.loop.run_until_complete(proto.connected)
-            self.assertEqual('CONNECTED', proto.state)
+        transp, proto = self.loop.run_until_complete(connect)
+        self.assertIsInstance(proto, MySubprocessProtocol)
+        self.loop.run_until_complete(proto.connected)
+        self.assertEqual('CONNECTED', proto.state)
 
-            stdin = transp.get_pipe_transport(0)
-            stdin.write(b'Python ')
-            self.loop.run_until_complete(proto.got_data[1].wait())
-            proto.got_data[1].clear()
-            self.assertEqual(b'Python ', proto.data[1])
+        stdin = transp.get_pipe_transport(0)
+        stdin.write(b'Python ')
+        self.loop.run_until_complete(proto.got_data[1].wait())
+        proto.got_data[1].clear()
+        self.assertEqual(b'Python ', proto.data[1])
 
-            stdin.write(b'The Winner')
-            self.loop.run_until_complete(proto.got_data[1].wait())
-            self.assertEqual(b'Python The Winner', proto.data[1])
+        stdin.write(b'The Winner')
+        self.loop.run_until_complete(proto.got_data[1].wait())
+        self.assertEqual(b'Python The Winner', proto.data[1])
 
-            with test_utils.disable_logger():
-                transp.close()
-            self.loop.run_until_complete(proto.completed)
-            self.check_killed(proto.returncode)
+        with test_utils.disable_logger():
+            transp.close()
+        self.loop.run_until_complete(proto.completed)
+        self.check_killed(proto.returncode)
 
     def test_subprocess_shell(self):
-        with self.assertWarns(DeprecationWarning):
-            connect = self.loop.subprocess_shell(
-                            functools.partial(MySubprocessProtocol, self.loop),
-                            'echo Python')
-            transp, proto = self.loop.run_until_complete(connect)
-            self.assertIsInstance(proto, MySubprocessProtocol)
-            self.loop.run_until_complete(proto.connected)
+        connect = self.loop.subprocess_shell(
+                        functools.partial(MySubprocessProtocol, self.loop),
+                        'echo Python')
+        transp, proto = self.loop.run_until_complete(connect)
+        self.assertIsInstance(proto, MySubprocessProtocol)
+        self.loop.run_until_complete(proto.connected)
 
-            transp.get_pipe_transport(0).close()
-            self.loop.run_until_complete(proto.completed)
-            self.assertEqual(0, proto.returncode)
-            self.assertTrue(all(f.done() for f in proto.disconnects.values()))
-            self.assertEqual(proto.data[1].rstrip(b'\r\n'), b'Python')
-            self.assertEqual(proto.data[2], b'')
-            transp.close()
+        transp.get_pipe_transport(0).close()
+        self.loop.run_until_complete(proto.completed)
+        self.assertEqual(0, proto.returncode)
+        self.assertTrue(all(f.done() for f in proto.disconnects.values()))
+        self.assertEqual(proto.data[1].rstrip(b'\r\n'), b'Python')
+        self.assertEqual(proto.data[2], b'')
+        transp.close()
 
     def test_subprocess_exitcode(self):
         connect = self.loop.subprocess_shell(
                         functools.partial(MySubprocessProtocol, self.loop),
                         'exit 7', stdin=None, stdout=None, stderr=None)
 
-        with self.assertWarns(DeprecationWarning):
-            transp, proto = self.loop.run_until_complete(connect)
+        transp, proto = self.loop.run_until_complete(connect)
         self.assertIsInstance(proto, MySubprocessProtocol)
         self.loop.run_until_complete(proto.completed)
         self.assertEqual(7, proto.returncode)
@@ -1812,8 +1808,7 @@ class SubprocessTestsMixin:
         connect = self.loop.subprocess_shell(
                         functools.partial(MySubprocessProtocol, self.loop),
                         'exit 7', stdin=None, stdout=None, stderr=None)
-        with self.assertWarns(DeprecationWarning):
-            transp, proto = self.loop.run_until_complete(connect)
+        transp, proto = self.loop.run_until_complete(connect)
         self.assertIsInstance(proto, MySubprocessProtocol)
         self.assertIsNone(transp.get_pipe_transport(0))
         self.assertIsNone(transp.get_pipe_transport(1))
@@ -1829,15 +1824,14 @@ class SubprocessTestsMixin:
                         functools.partial(MySubprocessProtocol, self.loop),
                         sys.executable, prog)
 
-        with self.assertWarns(DeprecationWarning):
-            transp, proto = self.loop.run_until_complete(connect)
-            self.assertIsInstance(proto, MySubprocessProtocol)
-            self.loop.run_until_complete(proto.connected)
+        transp, proto = self.loop.run_until_complete(connect)
+        self.assertIsInstance(proto, MySubprocessProtocol)
+        self.loop.run_until_complete(proto.connected)
 
-            transp.kill()
-            self.loop.run_until_complete(proto.completed)
-            self.check_killed(proto.returncode)
-            transp.close()
+        transp.kill()
+        self.loop.run_until_complete(proto.completed)
+        self.check_killed(proto.returncode)
+        transp.close()
 
     def test_subprocess_terminate(self):
         prog = os.path.join(os.path.dirname(__file__), 'echo.py')
@@ -1846,15 +1840,14 @@ class SubprocessTestsMixin:
                         functools.partial(MySubprocessProtocol, self.loop),
                         sys.executable, prog)
 
-        with self.assertWarns(DeprecationWarning):
-            transp, proto = self.loop.run_until_complete(connect)
-            self.assertIsInstance(proto, MySubprocessProtocol)
-            self.loop.run_until_complete(proto.connected)
+        transp, proto = self.loop.run_until_complete(connect)
+        self.assertIsInstance(proto, MySubprocessProtocol)
+        self.loop.run_until_complete(proto.connected)
 
-            transp.terminate()
-            self.loop.run_until_complete(proto.completed)
-            self.check_terminated(proto.returncode)
-            transp.close()
+        transp.terminate()
+        self.loop.run_until_complete(proto.completed)
+        self.check_terminated(proto.returncode)
+        transp.close()
 
     @unittest.skipIf(sys.platform == 'win32', "Don't have SIGHUP")
     def test_subprocess_send_signal(self):
@@ -1869,15 +1862,14 @@ class SubprocessTestsMixin:
                             functools.partial(MySubprocessProtocol, self.loop),
                             sys.executable, prog)
 
-            with self.assertWarns(DeprecationWarning):
-                transp, proto = self.loop.run_until_complete(connect)
-                self.assertIsInstance(proto, MySubprocessProtocol)
-                self.loop.run_until_complete(proto.connected)
+            transp, proto = self.loop.run_until_complete(connect)
+            self.assertIsInstance(proto, MySubprocessProtocol)
+            self.loop.run_until_complete(proto.connected)
 
-                transp.send_signal(signal.SIGHUP)
-                self.loop.run_until_complete(proto.completed)
-                self.assertEqual(-signal.SIGHUP, proto.returncode)
-                transp.close()
+            transp.send_signal(signal.SIGHUP)
+            self.loop.run_until_complete(proto.completed)
+            self.assertEqual(-signal.SIGHUP, proto.returncode)
+            transp.close()
         finally:
             signal.signal(signal.SIGHUP, old_handler)
 
@@ -1888,20 +1880,19 @@ class SubprocessTestsMixin:
                         functools.partial(MySubprocessProtocol, self.loop),
                         sys.executable, prog)
 
-        with self.assertWarns(DeprecationWarning):
-            transp, proto = self.loop.run_until_complete(connect)
-            self.assertIsInstance(proto, MySubprocessProtocol)
-            self.loop.run_until_complete(proto.connected)
+        transp, proto = self.loop.run_until_complete(connect)
+        self.assertIsInstance(proto, MySubprocessProtocol)
+        self.loop.run_until_complete(proto.connected)
 
-            stdin = transp.get_pipe_transport(0)
-            stdin.write(b'test')
+        stdin = transp.get_pipe_transport(0)
+        stdin.write(b'test')
 
-            self.loop.run_until_complete(proto.completed)
+        self.loop.run_until_complete(proto.completed)
 
-            transp.close()
-            self.assertEqual(b'OUT:test', proto.data[1])
-            self.assertTrue(proto.data[2].startswith(b'ERR:test'), proto.data[2])
-            self.assertEqual(0, proto.returncode)
+        transp.close()
+        self.assertEqual(b'OUT:test', proto.data[1])
+        self.assertTrue(proto.data[2].startswith(b'ERR:test'), proto.data[2])
+        self.assertEqual(0, proto.returncode)
 
     def test_subprocess_stderr_redirect_to_stdout(self):
         prog = os.path.join(os.path.dirname(__file__), 'echo2.py')
@@ -1910,23 +1901,22 @@ class SubprocessTestsMixin:
                         functools.partial(MySubprocessProtocol, self.loop),
                         sys.executable, prog, stderr=subprocess.STDOUT)
 
-        with self.assertWarns(DeprecationWarning):
-            transp, proto = self.loop.run_until_complete(connect)
-            self.assertIsInstance(proto, MySubprocessProtocol)
-            self.loop.run_until_complete(proto.connected)
+        transp, proto = self.loop.run_until_complete(connect)
+        self.assertIsInstance(proto, MySubprocessProtocol)
+        self.loop.run_until_complete(proto.connected)
 
-            stdin = transp.get_pipe_transport(0)
-            self.assertIsNotNone(transp.get_pipe_transport(1))
-            self.assertIsNone(transp.get_pipe_transport(2))
+        stdin = transp.get_pipe_transport(0)
+        self.assertIsNotNone(transp.get_pipe_transport(1))
+        self.assertIsNone(transp.get_pipe_transport(2))
 
-            stdin.write(b'test')
-            self.loop.run_until_complete(proto.completed)
-            self.assertTrue(proto.data[1].startswith(b'OUT:testERR:test'),
-                            proto.data[1])
-            self.assertEqual(b'', proto.data[2])
+        stdin.write(b'test')
+        self.loop.run_until_complete(proto.completed)
+        self.assertTrue(proto.data[1].startswith(b'OUT:testERR:test'),
+                        proto.data[1])
+        self.assertEqual(b'', proto.data[2])
 
-            transp.close()
-            self.assertEqual(0, proto.returncode)
+        transp.close()
+        self.assertEqual(0, proto.returncode)
 
     def test_subprocess_close_client_stream(self):
         prog = os.path.join(os.path.dirname(__file__), 'echo3.py')
@@ -1934,33 +1924,32 @@ class SubprocessTestsMixin:
         connect = self.loop.subprocess_exec(
                         functools.partial(MySubprocessProtocol, self.loop),
                         sys.executable, prog)
-        with self.assertWarns(DeprecationWarning):
-            transp, proto = self.loop.run_until_complete(connect)
-            self.assertIsInstance(proto, MySubprocessProtocol)
-            self.loop.run_until_complete(proto.connected)
+        transp, proto = self.loop.run_until_complete(connect)
+        self.assertIsInstance(proto, MySubprocessProtocol)
+        self.loop.run_until_complete(proto.connected)
 
-            stdin = transp.get_pipe_transport(0)
-            stdout = transp.get_pipe_transport(1)
-            stdin.write(b'test')
-            self.loop.run_until_complete(proto.got_data[1].wait())
-            self.assertEqual(b'OUT:test', proto.data[1])
+        stdin = transp.get_pipe_transport(0)
+        stdout = transp.get_pipe_transport(1)
+        stdin.write(b'test')
+        self.loop.run_until_complete(proto.got_data[1].wait())
+        self.assertEqual(b'OUT:test', proto.data[1])
 
-            stdout.close()
-            self.loop.run_until_complete(proto.disconnects[1])
-            stdin.write(b'xxx')
-            self.loop.run_until_complete(proto.got_data[2].wait())
-            if sys.platform != 'win32':
-                self.assertEqual(b'ERR:BrokenPipeError', proto.data[2])
-            else:
-                # After closing the read-end of a pipe, writing to the
-                # write-end using os.write() fails with errno==EINVAL and
-                # GetLastError()==ERROR_INVALID_NAME on Windows!?!  (Using
-                # WriteFile() we get ERROR_BROKEN_PIPE as expected.)
-                self.assertEqual(b'ERR:OSError', proto.data[2])
-            with test_utils.disable_logger():
-                transp.close()
-            self.loop.run_until_complete(proto.completed)
-            self.check_killed(proto.returncode)
+        stdout.close()
+        self.loop.run_until_complete(proto.disconnects[1])
+        stdin.write(b'xxx')
+        self.loop.run_until_complete(proto.got_data[2].wait())
+        if sys.platform != 'win32':
+            self.assertEqual(b'ERR:BrokenPipeError', proto.data[2])
+        else:
+            # After closing the read-end of a pipe, writing to the
+            # write-end using os.write() fails with errno==EINVAL and
+            # GetLastError()==ERROR_INVALID_NAME on Windows!?!  (Using
+            # WriteFile() we get ERROR_BROKEN_PIPE as expected.)
+            self.assertEqual(b'ERR:OSError', proto.data[2])
+        with test_utils.disable_logger():
+            transp.close()
+        self.loop.run_until_complete(proto.completed)
+        self.check_killed(proto.returncode)
 
     def test_subprocess_wait_no_same_group(self):
         # start the new process in a new session
index 5c9aaa82c311a54ffeb7f2b5da23ba819a609129..81e888fbce6dbba13a181b912824339c4d1ed1b9 100644 (file)
@@ -301,11 +301,12 @@ class QueueGetTests(_QueueTestBase):
         with self.assertWarns(DeprecationWarning):
             q = asyncio.Queue(queue_size, loop=self.loop)
 
-        self.loop.run_until_complete(
-            asyncio.gather(producer(q, producer_num_items),
-                           consumer(q, producer_num_items),
-                           loop=self.loop),
-            )
+        with self.assertWarns(DeprecationWarning):
+            self.loop.run_until_complete(
+                asyncio.gather(producer(q, producer_num_items),
+                               consumer(q, producer_num_items),
+                               loop=self.loop),
+                )
 
     def test_cancelled_getters_not_being_held_in_self_getters(self):
         def a_generator():
@@ -555,8 +556,9 @@ class QueuePutTests(_QueueTestBase):
         t1 = putter(1)
         t2 = putter(2)
         t3 = putter(3)
-        self.loop.run_until_complete(
-            asyncio.gather(getter(), t0, t1, t2, t3, loop=self.loop))
+        with self.assertWarns(DeprecationWarning):
+            self.loop.run_until_complete(
+                asyncio.gather(getter(), t0, t1, t2, t3, loop=self.loop))
 
     def test_cancelled_puts_not_being_held_in_self_putters(self):
         def a_generator():
index 71de82dfc7ebba27cb33de4a4428548c570e8189..38f4d84d4755f89726f9dc754d66b91dd6d5125c 100644 (file)
@@ -736,7 +736,7 @@ class StreamTests(test_utils.TestCase):
         # See asyncio issue 168.  This test is derived from the example
         # subprocess_attach_read_pipe.py, but we configure the
         # StreamReader's limit so that twice it is less than the size
-        # of the data writter.  Also we must explicitly attach a child
+        # of the data writer.  Also we must explicitly attach a child
         # watcher to the event loop.
 
         code = """\
index 693cc4129043070e7c00b7b9e3e32cef65a3a6aa..3f6fc15b278b83c7bd7d897da0e2bacef9155118 100644 (file)
@@ -227,7 +227,7 @@ class SubprocessMixin:
         # buffer large enough to feed the whole pipe buffer
         large_data = b'x' * support.PIPE_MAX_SIZE
 
-        # the program ends before the stdin can be feeded
+        # the program ends before the stdin can be fed
         proc = self.loop.run_until_complete(
             asyncio.create_subprocess_exec(
                 sys.executable, '-c', 'pass',
index d2d78033aa481a08a605d7eee78433cfdac3655b..402edaec0d8f9870dce434a3040a1cb99eab4cc3 100644 (file)
@@ -155,7 +155,7 @@ class BaseTaskTests:
         self.loop.run_until_complete(
             asyncio.gather(*[
                 self.new_task(self.loop, run()) for _ in range(100)
-            ], loop=self.loop))
+            ]))
 
     def test_other_loop_future(self):
         other_loop = asyncio.new_event_loop()
@@ -1606,8 +1606,9 @@ class BaseTaskTests:
             for f in asyncio.as_completed([b, c, a], loop=loop):
                 values.append(await f)
             return values
-        with self.assertWarns(DeprecationWarning):
+        with self.assertWarns(DeprecationWarning) as w:
             res = loop.run_until_complete(self.new_task(loop, foo()))
+        self.assertEqual(w.warnings[0].filename, __file__)
         self.assertAlmostEqual(0.15, loop.time())
         self.assertTrue('a' in res[:2])
         self.assertTrue('b' in res[:2])
@@ -2518,7 +2519,8 @@ class BaseTaskTests:
         # gathering task is done at the same time as the child future
         def child_coro():
             return (yield from fut)
-        gather_future = asyncio.gather(child_coro(), loop=loop)
+        with self.assertWarns(DeprecationWarning):
+            gather_future = asyncio.gather(child_coro(), loop=loop)
         gather_task = asyncio.ensure_future(gather_future, loop=loop)
 
         cancel_result = None
@@ -2554,7 +2556,8 @@ class BaseTaskTests:
                     time = 0
                     while True:
                         time += 0.05
-                        await asyncio.gather(asyncio.sleep(0.05),
+                        with self.assertWarns(DeprecationWarning):
+                            await asyncio.gather(asyncio.sleep(0.05),
                                              return_exceptions=True,
                                              loop=loop)
                         if time > 1:
@@ -2772,7 +2775,7 @@ class BaseTaskTests:
                 task = loop.create_task(sub(random.randint(0, 10)))
                 tasks.append(task)
 
-            await asyncio.gather(*tasks, loop=loop)
+            await asyncio.gather(*tasks)
 
         loop = asyncio.new_event_loop()
         try:
@@ -3348,7 +3351,8 @@ class FutureGatherTests(GatherTestsBase, test_utils.TestCase):
         with self.assertRaises(ValueError):
             asyncio.gather(fut1, fut2)
         with self.assertRaises(ValueError):
-            asyncio.gather(fut1, loop=self.other_loop)
+            with self.assertWarns(DeprecationWarning):
+                asyncio.gather(fut1, loop=self.other_loop)
 
     def test_constructor_homogenous_futures(self):
         children = [self.other_loop.create_future() for i in range(3)]
@@ -3356,7 +3360,8 @@ class FutureGatherTests(GatherTestsBase, test_utils.TestCase):
         self.assertIs(fut._loop, self.other_loop)
         self._run_loop(self.other_loop)
         self.assertFalse(fut.done())
-        fut = asyncio.gather(*children, loop=self.other_loop)
+        with self.assertWarns(DeprecationWarning):
+            fut = asyncio.gather(*children, loop=self.other_loop)
         self.assertIs(fut._loop, self.other_loop)
         self._run_loop(self.other_loop)
         self.assertFalse(fut.done())
@@ -3429,7 +3434,8 @@ class CoroutineGatherTests(GatherTestsBase, test_utils.TestCase):
         self.set_event_loop(self.other_loop, cleanup=False)
         gen3 = coro()
         gen4 = coro()
-        fut2 = asyncio.gather(gen3, gen4, loop=self.other_loop)
+        with self.assertWarns(DeprecationWarning):
+            fut2 = asyncio.gather(gen3, gen4, loop=self.other_loop)
         self.assertIs(fut2._loop, self.other_loop)
         self.other_loop.run_until_complete(fut2)
 
@@ -3439,7 +3445,8 @@ class CoroutineGatherTests(GatherTestsBase, test_utils.TestCase):
             def coro(s):
                 return s
         c = coro('abc')
-        fut = asyncio.gather(c, c, coro('def'), c, loop=self.one_loop)
+        with self.assertWarns(DeprecationWarning):
+            fut = asyncio.gather(c, c, coro('def'), c, loop=self.one_loop)
         self._run_loop(self.one_loop)
         self.assertEqual(fut.result(), ['abc', 'abc', 'def', 'abc'])
 
@@ -3459,7 +3466,7 @@ class CoroutineGatherTests(GatherTestsBase, test_utils.TestCase):
 
         async def outer():
             nonlocal proof, gatherer
-            gatherer = asyncio.gather(child1, child2, loop=self.one_loop)
+            gatherer = asyncio.gather(child1, child2)
             await gatherer
             proof += 100
 
@@ -3486,7 +3493,7 @@ class CoroutineGatherTests(GatherTestsBase, test_utils.TestCase):
         b = self.one_loop.create_future()
 
         async def outer():
-            await asyncio.gather(inner(a), inner(b), loop=self.one_loop)
+            await asyncio.gather(inner(a), inner(b))
 
         f = asyncio.ensure_future(outer(), loop=self.one_loop)
         test_utils.run_briefly(self.one_loop)
@@ -3561,7 +3568,7 @@ class RunCoroutineThreadsafeTests(test_utils.TestCase):
             self.assertTrue(task.done())
 
     def test_run_coroutine_threadsafe_task_cancelled(self):
-        """Test coroutine submission from a tread to an event loop
+        """Test coroutine submission from a thread to an event loop
         when the task is cancelled."""
         callback = lambda: self.target(cancel=True)
         future = self.loop.run_in_executor(None, callback)
@@ -3569,7 +3576,7 @@ class RunCoroutineThreadsafeTests(test_utils.TestCase):
             self.loop.run_until_complete(future)
 
     def test_run_coroutine_threadsafe_task_factory_exception(self):
-        """Test coroutine submission from a tread to an event loop
+        """Test coroutine submission from a thread to an event loop
         when the task factory raise an exception."""
 
         def task_factory(loop, coro):
@@ -3705,7 +3712,7 @@ class CompatibilityTests(test_utils.TestCase):
                 return 'ok2'
 
         async def inner():
-            return await asyncio.gather(coro1(), coro2(), loop=self.loop)
+            return await asyncio.gather(coro1(), coro2())
 
         result = self.loop.run_until_complete(inner())
         self.assertEqual(['ok1', 'ok2'], result)
index ae16880567882945824094f2c5c1cb52ff8d3ce1..405f741e36b048ac73c9da52b4df10081480c3a2 100644 (file)
@@ -1149,13 +1149,6 @@ class IssuesTestCase(BaseTestCase):
             with TracerRun(self) as tracer:
                 tracer.runcall(tfunc_import)
 
-def test_main():
-    test.support.run_unittest(
-        StateTestCase,
-        RunTestCase,
-        BreakpointTestCase,
-        IssuesTestCase,
-    )
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index aa1f8ca75a98110b7b8adce36e05188513094fdc..50272e99607fd36dbc55a48e92cb05d966fade27 100644 (file)
@@ -92,10 +92,7 @@ class StrTest(unittest.TestCase):
             x = None
 
 
-def test_main():
-    support.run_unittest(BytesTest, StrTest)
-
 if __name__ == '__main__':
     if len(sys.argv) > 1:
         support.set_memlimit(sys.argv[1])
-    test_main()
+    unittest.main()
index 6a244dd8c94800b2e7a1e80eb9c39939d9b8dc87..859f1539e20b804970108f54687c0ba5e8d7b245 100644 (file)
@@ -1247,11 +1247,8 @@ class ListTest(unittest.TestCase):
         self.assertEqual(l[:10], [1] * 10)
         self.assertEqual(l[-10:], [5] * 10)
 
-def test_main():
-    support.run_unittest(StrTest, BytesTest, BytearrayTest,
-        TupleTest, ListTest)
 
 if __name__ == '__main__':
     if len(sys.argv) > 1:
         support.set_memlimit(sys.argv[1])
-    test_main()
+    unittest.main()
index 909a59a9d2af64a98142ec88306f8553c9ff647d..5550f74c084cbca95b81e4aae9872588f28120dc 100644 (file)
@@ -362,8 +362,6 @@ class BoolTest(unittest.TestCase):
         self.assertIs(type(False.real), int)
         self.assertIs(type(False.imag), int)
 
-def test_main():
-    support.run_unittest(BoolTest)
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index c84f70ebb094a61faa7f1430ed2e89b80a5ea05d..fe12816ff06268c476a21f0b4c9979c5fca1ed3f 100644 (file)
@@ -1002,15 +1002,9 @@ class OpenTest(BaseTest):
             self.assertEqual(f.readlines(), [text])
 
 
-def test_main():
-    support.run_unittest(
-        BZ2FileTest,
-        BZ2CompressorTest,
-        BZ2DecompressorTest,
-        CompressDecompressTest,
-        OpenTest,
-    )
+def tearDownModule():
     support.reap_children()
 
+
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index fcc85992345dbc80abef7783887c923af896be98..71f934756e26a1f0481733b20edcb1977a0f5366 100644 (file)
@@ -427,12 +427,9 @@ class LocaleCoercionTests(_LocaleHandlingTestCase):
         self.assertEqual(cmd.stdout.rstrip(), loc)
 
 
-def test_main():
-    support.run_unittest(
-        LocaleConfigurationTests,
-        LocaleCoercionTests
-    )
+def tearDownModule():
     support.reap_children()
 
+
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 0cbe839665e3f63269d0f4ac17476dc66a837865..6b2fe2f1580c36a3f5339d1321bea3144295b784 100644 (file)
@@ -680,6 +680,37 @@ class SubinterpreterTest(unittest.TestCase):
 
         self.assertFalse(hasattr(binascii.Error, "foobar"))
 
+    def test_module_state_shared_in_global(self):
+        """
+        bpo-44050: Extension module state should be shared between interpreters
+        when it doesn't support sub-interpreters.
+        """
+        r, w = os.pipe()
+        self.addCleanup(os.close, r)
+        self.addCleanup(os.close, w)
+
+        script = textwrap.dedent(f"""
+            import importlib.machinery
+            import importlib.util
+            import os
+
+            fullname = '_test_module_state_shared'
+            origin = importlib.util.find_spec('_testmultiphase').origin
+            loader = importlib.machinery.ExtensionFileLoader(fullname, origin)
+            spec = importlib.util.spec_from_loader(fullname, loader)
+            module = importlib.util.module_from_spec(spec)
+            attr_id = str(id(module.Error)).encode()
+
+            os.write({w}, attr_id)
+            """)
+        exec(script)
+        main_attr_id = os.read(r, 100)
+
+        ret = support.run_in_subinterp(script)
+        self.assertEqual(ret, 0)
+        subinterp_attr_id = os.read(r, 100)
+        self.assertEqual(main_attr_id, subinterp_attr_id)
+
 
 class TestThreadState(unittest.TestCase):
 
index a3560b4b1fd9b20f5c8197200f9b1e2c3bd09ad2..712d861c4d5a3f95fedfe8836c3e5dfb302d0656 100644 (file)
@@ -841,9 +841,9 @@ class IgnoreEnvironmentTest(unittest.TestCase):
         )
 
 
-def test_main():
-    support.run_unittest(CmdLineTest, IgnoreEnvironmentTest)
+def tearDownModule():
     support.reap_children()
 
+
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 7a3707d0f112fabfa6a1cbff3d3f71f03da1778b..7cb1370c981b02a14130d30af8579f5d40b6d96d 100644 (file)
@@ -737,9 +737,9 @@ class CmdLineTest(unittest.TestCase):
         self.assertNotEqual(proc.returncode, 0)
 
 
-def test_main():
-    support.run_unittest(CmdLineTest)
+def tearDownModule():
     support.reap_children()
 
+
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 8d112a171d7c4ef5f2138ff398d2b5270b3cccee..2f7f93a29f6628c014f28bcb8099f670bc81c001 100644 (file)
@@ -2327,7 +2327,11 @@ class TypesTest(unittest.TestCase):
                          (r"\x5c\x55\x30\x30\x31\x31\x30\x30\x30\x30", 10))
 
 
-class UnicodeEscapeTest(unittest.TestCase):
+class UnicodeEscapeTest(ReadTest, unittest.TestCase):
+    encoding = "unicode-escape"
+
+    test_lone_surrogates = None
+
     def test_empty(self):
         self.assertEqual(codecs.unicode_escape_encode(""), (b"", 0))
         self.assertEqual(codecs.unicode_escape_decode(b""), ("", 0))
@@ -2414,8 +2418,50 @@ class UnicodeEscapeTest(unittest.TestCase):
         self.assertEqual(decode(br"\U00110000", "ignore"), ("", 10))
         self.assertEqual(decode(br"\U00110000", "replace"), ("\ufffd", 10))
 
+    def test_partial(self):
+        self.check_partial(
+            "\x00\t\n\r\\\xff\uffff\U00010000",
+            [
+                '',
+                '',
+                '',
+                '\x00',
+                '\x00',
+                '\x00\t',
+                '\x00\t',
+                '\x00\t\n',
+                '\x00\t\n',
+                '\x00\t\n\r',
+                '\x00\t\n\r',
+                '\x00\t\n\r\\',
+                '\x00\t\n\r\\',
+                '\x00\t\n\r\\',
+                '\x00\t\n\r\\',
+                '\x00\t\n\r\\\xff',
+                '\x00\t\n\r\\\xff',
+                '\x00\t\n\r\\\xff',
+                '\x00\t\n\r\\\xff',
+                '\x00\t\n\r\\\xff',
+                '\x00\t\n\r\\\xff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff\U00010000',
+            ]
+        )
+
+class RawUnicodeEscapeTest(ReadTest, unittest.TestCase):
+    encoding = "raw-unicode-escape"
+
+    test_lone_surrogates = None
 
-class RawUnicodeEscapeTest(unittest.TestCase):
     def test_empty(self):
         self.assertEqual(codecs.raw_unicode_escape_encode(""), (b"", 0))
         self.assertEqual(codecs.raw_unicode_escape_decode(b""), ("", 0))
@@ -2464,6 +2510,35 @@ class RawUnicodeEscapeTest(unittest.TestCase):
         self.assertEqual(decode(br"\U00110000", "ignore"), ("", 10))
         self.assertEqual(decode(br"\U00110000", "replace"), ("\ufffd", 10))
 
+    def test_partial(self):
+        self.check_partial(
+            "\x00\t\n\r\\\xff\uffff\U00010000",
+            [
+                '\x00',
+                '\x00\t',
+                '\x00\t\n',
+                '\x00\t\n\r',
+                '\x00\t\n\r',
+                '\x00\t\n\r\\\xff',
+                '\x00\t\n\r\\\xff',
+                '\x00\t\n\r\\\xff',
+                '\x00\t\n\r\\\xff',
+                '\x00\t\n\r\\\xff',
+                '\x00\t\n\r\\\xff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff',
+                '\x00\t\n\r\\\xff\uffff\U00010000',
+            ]
+        )
+
 
 class EscapeEncodeTest(unittest.TestCase):
 
index 4ae9748e8eafe30026119c61ebb9a16d416d0b77..9e1174743591cb03fdd80089a4e5ad089899c2b2 100644 (file)
@@ -1584,7 +1584,7 @@ class TestCollectionABCs(ABCTestCase):
         self.assertSetEqual(set(s1), set(s2))
 
     def test_Set_from_iterable(self):
-        """Verify _from_iterable overriden to an instance method works."""
+        """Verify _from_iterable overridden to an instance method works."""
         class SetUsingInstanceFromIterable(MutableSet):
             def __init__(self, values, created_by):
                 if not created_by:
index a03735d3b76109563101c4b12c3efb40bf5d0123..6e1f4b2f397e28b9a8ee8715b5b17395580eb9ac 100644 (file)
@@ -86,7 +86,8 @@ class CompileallTestsBase:
             os.utime(self.source_path, (2**32 - 1, 2**32 - 1))
         except (OverflowError, OSError):
             self.skipTest("filesystem doesn't support timestamps near 2**32")
-        self.assertTrue(compileall.compile_file(self.source_path))
+        with contextlib.redirect_stdout(io.StringIO()):
+            self.assertTrue(compileall.compile_file(self.source_path))
 
     def test_larger_than_32_bit_times(self):
         # This is similar to the test above but we skip it if the OS doesn't
@@ -95,7 +96,8 @@ class CompileallTestsBase:
             os.utime(self.source_path, (2**35, 2**35))
         except (OverflowError, OSError):
             self.skipTest("filesystem doesn't support large timestamps")
-        self.assertTrue(compileall.compile_file(self.source_path))
+        with contextlib.redirect_stdout(io.StringIO()):
+            self.assertTrue(compileall.compile_file(self.source_path))
 
     def recreation_check(self, metadata):
         """Check that compileall recreates bytecode when the new metadata is
index 0db9be5190da4c06cabe775e1f9cc28eea9d516a..7122300522bff5f333b657ee8c8ee63566438629 100644 (file)
@@ -751,8 +751,6 @@ class ComplexTest(unittest.TestCase):
         self.assertEqual(format(complex(INF, 1), 'F'), 'INF+1.000000j')
         self.assertEqual(format(complex(INF, -1), 'F'), 'INF-1.000000j')
 
-def test_main():
-    support.run_unittest(ComplexTest)
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index ad64f4bdb5322d6d32fb055783c1680bfb4e8621..48d56d9fdcb1eb6a8c6bc806a5f220f0de84ddfd 100644 (file)
@@ -896,6 +896,20 @@ class ThreadPoolExecutorTest(ThreadPoolMixin, ExecutorTest, BaseTestCase):
         self.assertEqual(len(executor._threads), 1)
         executor.shutdown(wait=True)
 
+    @unittest.skipUnless(hasattr(os, 'register_at_fork'), 'need os.register_at_fork')
+    def test_hang_global_shutdown_lock(self):
+        # bpo-45021: _global_shutdown_lock should be reinitialized in the child
+        # process, otherwise it will never exit
+        def submit(pool):
+            pool.submit(submit, pool)
+
+        with futures.ThreadPoolExecutor(1) as pool:
+            pool.submit(submit, pool)
+
+            for _ in range(50):
+                with futures.ProcessPoolExecutor(1, mp_context=get_context('fork')) as workers:
+                    workers.submit(tuple)
+
 
 class ProcessPoolExecutorTest(ExecutorTest):
 
@@ -1500,16 +1514,10 @@ class FutureTests(BaseTestCase):
         self.assertEqual(f.exception(), e)
 
 
-_threads_key = None
-
 def setUpModule():
-    global _threads_key
-    _threads_key = support.threading_setup()
-
-
-def tearDownModule():
-    support.threading_cleanup(*_threads_key)
-    multiprocessing.util._cleanup_tests()
+    unittest.addModuleCleanup(multiprocessing.util._cleanup_tests)
+    thread_info = support.threading_setup()
+    unittest.addModuleCleanup(support.threading_cleanup, *thread_info)
 
 
 if __name__ == "__main__":
index ad071bb2a22d3a128c41f47e3c9147b26b37e14e..354ea8b3c32b770db6d53558a130438b9d56eab2 100644 (file)
@@ -777,6 +777,40 @@ class TestBaseExitStack:
         self.assertIsInstance(inner_exc, ValueError)
         self.assertIsInstance(inner_exc.__context__, ZeroDivisionError)
 
+    def test_exit_exception_explicit_none_context(self):
+        # Ensure ExitStack chaining matches actual nested `with` statements
+        # regarding explicit __context__ = None.
+
+        class MyException(Exception):
+            pass
+
+        @contextmanager
+        def my_cm():
+            try:
+                yield
+            except BaseException:
+                exc = MyException()
+                try:
+                    raise exc
+                finally:
+                    exc.__context__ = None
+
+        @contextmanager
+        def my_cm_with_exit_stack():
+            with self.exit_stack() as stack:
+                stack.enter_context(my_cm())
+                yield stack
+
+        for cm in (my_cm, my_cm_with_exit_stack):
+            with self.subTest():
+                try:
+                    with cm():
+                        raise IndexError()
+                except MyException as exc:
+                    self.assertIsNone(exc.__context__)
+                else:
+                    self.fail("Expected IndexError, but no exception was raised")
+
     def test_exit_exception_non_suppressing(self):
         # http://bugs.python.org/issue19092
         def raise_exc(exc):
index 9d6854c702892f6967c3282ec9ab5b953b1ebf90..43aaf04744431f3cd889abd705acb1a1a0f68059 100644 (file)
@@ -463,6 +463,41 @@ class TestAsyncExitStack(TestBaseExitStack, unittest.TestCase):
         self.assertIsInstance(inner_exc, ValueError)
         self.assertIsInstance(inner_exc.__context__, ZeroDivisionError)
 
+    @_async_test
+    async def test_async_exit_exception_explicit_none_context(self):
+        # Ensure AsyncExitStack chaining matches actual nested `with` statements
+        # regarding explicit __context__ = None.
+
+        class MyException(Exception):
+            pass
+
+        @asynccontextmanager
+        async def my_cm():
+            try:
+                yield
+            except BaseException:
+                exc = MyException()
+                try:
+                    raise exc
+                finally:
+                    exc.__context__ = None
+
+        @asynccontextmanager
+        async def my_cm_with_exit_stack():
+            async with self.exit_stack() as stack:
+                await stack.enter_async_context(my_cm())
+                yield stack
+
+        for cm in (my_cm, my_cm_with_exit_stack):
+            with self.subTest():
+                try:
+                    async with cm():
+                        raise IndexError()
+                except MyException as exc:
+                    self.assertIsNone(exc.__context__)
+                else:
+                    self.fail("Expected IndexError, but no exception was raised")
+
 
 if __name__ == '__main__':
     unittest.main()
index 89fec4b22e07b295f5675150e55f599d5482549d..ce2eb72fd52fa210ebcebcaf364c213f01307437 100644 (file)
@@ -881,7 +881,7 @@ class TestDialectValidity(unittest.TestCase):
         with self.assertRaises(csv.Error) as cm:
             mydialect()
         self.assertEqual(str(cm.exception),
-                         '"quotechar" must be string, not int')
+                         '"quotechar" must be string or None, not int')
 
     def test_delimiter(self):
         class mydialect(csv.Dialect):
@@ -918,6 +918,35 @@ class TestDialectValidity(unittest.TestCase):
         self.assertEqual(str(cm.exception),
                          '"delimiter" must be string, not int')
 
+        mydialect.delimiter = None
+        with self.assertRaises(csv.Error) as cm:
+            mydialect()
+        self.assertEqual(str(cm.exception),
+                         '"delimiter" must be string, not NoneType')
+
+    def test_escapechar(self):
+        class mydialect(csv.Dialect):
+            delimiter = ";"
+            escapechar = '\\'
+            doublequote = False
+            skipinitialspace = True
+            lineterminator = '\r\n'
+            quoting = csv.QUOTE_NONE
+        d = mydialect()
+        self.assertEqual(d.escapechar, "\\")
+
+        mydialect.escapechar = "**"
+        with self.assertRaisesRegex(csv.Error, '"escapechar" must be a 1-character string'):
+            mydialect()
+
+        mydialect.escapechar = b"*"
+        with self.assertRaisesRegex(csv.Error, '"escapechar" must be string or None, not bytes'):
+            mydialect()
+
+        mydialect.escapechar = 4
+        with self.assertRaisesRegex(csv.Error, '"escapechar" must be string or None, not int'):
+            mydialect()
+
     def test_lineterminator(self):
         class mydialect(csv.Dialect):
             delimiter = ";"
index e65db176d9d34f9f48662ea0e78098d4d9428359..ad981d1cc654f829493c57df35f14d1538c0b77a 100644 (file)
@@ -9,7 +9,7 @@ import inspect
 import builtins
 import unittest
 from unittest.mock import Mock
-from typing import ClassVar, Any, List, Union, Tuple, Dict, Generic, TypeVar, Optional
+from typing import ClassVar, Any, List, Union, Tuple, Dict, Generic, TypeVar, Optional, Protocol
 from typing import get_type_hints
 from collections import deque, OrderedDict, namedtuple
 from functools import total_ordering
@@ -2124,6 +2124,26 @@ class TestInit(unittest.TestCase):
                 self.x = 2 * x
         self.assertEqual(C(5).x, 10)
 
+    def test_inherit_from_protocol(self):
+        # Dataclasses inheriting from protocol should preserve their own `__init__`.
+        # See bpo-45081.
+
+        class P(Protocol):
+            a: int
+
+        @dataclass
+        class C(P):
+            a: int
+
+        self.assertEqual(C(5).a, 5)
+
+        @dataclass
+        class D(P):
+            def __init__(self, a):
+                self.a = a * 2
+
+        self.assertEqual(D(5).a, 10)
+
 
 class TestRepr(unittest.TestCase):
     def test_repr(self):
index d659f369d54e46fda5fd0d9309202fe8e68b7228..c26dbe1063f4184b229fd33393b6458381ed0900 100644 (file)
@@ -1,57 +1,57 @@
 import unittest
 import sys
 
-from test.support import import_fresh_module, run_unittest
+from test.support import import_fresh_module
+
 
 TESTS = 'test.datetimetester'
 
-try:
-    pure_tests = import_fresh_module(TESTS, fresh=['datetime', '_strptime'],
-                                     blocked=['_datetime'])
-    fast_tests = import_fresh_module(TESTS, fresh=['datetime',
-                                                   '_datetime', '_strptime'])
-finally:
-    # XXX: import_fresh_module() is supposed to leave sys.module cache untouched,
-    # XXX: but it does not, so we have to cleanup ourselves.
-    for modname in ['datetime', '_datetime', '_strptime']:
-        sys.modules.pop(modname, None)
-test_modules = [pure_tests, fast_tests]
-test_suffixes = ["_Pure", "_Fast"]
-# XXX(gb) First run all the _Pure tests, then all the _Fast tests.  You might
-# not believe this, but in spite of all the sys.modules trickery running a _Pure
-# test last will leave a mix of pure and native datetime stuff lying around.
-all_test_classes = []
+def load_tests(loader, tests, pattern):
+    try:
+        pure_tests = import_fresh_module(TESTS, fresh=['datetime', '_strptime'],
+                                        blocked=['_datetime'])
+        fast_tests = import_fresh_module(TESTS, fresh=['datetime',
+                                                    '_datetime', '_strptime'])
+    finally:
+        # XXX: import_fresh_module() is supposed to leave sys.module cache untouched,
+        # XXX: but it does not, so we have to cleanup ourselves.
+        for modname in ['datetime', '_datetime', '_strptime']:
+            sys.modules.pop(modname, None)
 
-for module, suffix in zip(test_modules, test_suffixes):
-    test_classes = []
-    for name, cls in module.__dict__.items():
-        if not isinstance(cls, type):
-            continue
-        if issubclass(cls, unittest.TestCase):
-            test_classes.append(cls)
-        elif issubclass(cls, unittest.TestSuite):
-            suit = cls()
-            test_classes.extend(type(test) for test in suit)
-    test_classes = sorted(set(test_classes), key=lambda cls: cls.__qualname__)
-    for cls in test_classes:
-        cls.__name__ += suffix
-        cls.__qualname__ += suffix
-        @classmethod
-        def setUpClass(cls_, module=module):
-            cls_._save_sys_modules = sys.modules.copy()
-            sys.modules[TESTS] = module
-            sys.modules['datetime'] = module.datetime_module
-            sys.modules['_strptime'] = module._strptime
-        @classmethod
-        def tearDownClass(cls_):
-            sys.modules.clear()
-            sys.modules.update(cls_._save_sys_modules)
-        cls.setUpClass = setUpClass
-        cls.tearDownClass = tearDownClass
-    all_test_classes.extend(test_classes)
+    test_modules = [pure_tests, fast_tests]
+    test_suffixes = ["_Pure", "_Fast"]
+    # XXX(gb) First run all the _Pure tests, then all the _Fast tests.  You might
+    # not believe this, but in spite of all the sys.modules trickery running a _Pure
+    # test last will leave a mix of pure and native datetime stuff lying around.
+    for module, suffix in zip(test_modules, test_suffixes):
+        test_classes = []
+        for name, cls in module.__dict__.items():
+            if not isinstance(cls, type):
+                continue
+            if issubclass(cls, unittest.TestCase):
+                test_classes.append(cls)
+            elif issubclass(cls, unittest.TestSuite):
+                suit = cls()
+                test_classes.extend(type(test) for test in suit)
+        test_classes = sorted(set(test_classes), key=lambda cls: cls.__qualname__)
+        for cls in test_classes:
+            cls.__name__ += suffix
+            cls.__qualname__ += suffix
+            @classmethod
+            def setUpClass(cls_, module=module):
+                cls_._save_sys_modules = sys.modules.copy()
+                sys.modules[TESTS] = module
+                sys.modules['datetime'] = module.datetime_module
+                sys.modules['_strptime'] = module._strptime
+            @classmethod
+            def tearDownClass(cls_):
+                sys.modules.clear()
+                sys.modules.update(cls_._save_sys_modules)
+            cls.setUpClass = setUpClass
+            cls.tearDownClass = tearDownClass
+            tests.addTests(loader.loadTestsFromTestCase(cls))
+    return tests
 
-def test_main():
-    run_unittest(*all_test_classes)
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 571da973aab0ee10f5d04497d81164dc220559af..eb40d95142e4ebd5834311b1958ed2d287ff7a12 100644 (file)
@@ -1,22 +1,20 @@
 """Test script for the dbm.open function based on testdumbdbm.py"""
 
 import unittest
-import glob
+import dbm
+import os
 import test.support
 
-# Skip tests if dbm module doesn't exist.
-dbm = test.support.import_module('dbm')
-
 try:
     from dbm import ndbm
 except ImportError:
     ndbm = None
 
-_fname = test.support.TESTFN
+dirname = test.support.TESTFN
+_fname = os.path.join(dirname, test.support.TESTFN)
 
 #
-# Iterates over every database module supported by dbm currently available,
-# setting dbm to use each in turn, and yielding that module
+# Iterates over every database module supported by dbm currently available.
 #
 def dbm_iterator():
     for name in dbm._names:
@@ -30,11 +28,12 @@ def dbm_iterator():
 #
 # Clean up all scratch databases we might have created during testing
 #
-def delete_files():
-    # we don't know the precise name the underlying database uses
-    # so we use glob to locate all names
-    for f in glob.glob(glob.escape(_fname) + "*"):
-        test.support.unlink(f)
+def cleaunup_test_dir():
+    test.support.rmtree(dirname)
+
+def setup_test_dir():
+    cleaunup_test_dir()
+    os.mkdir(dirname)
 
 
 class AnyDBMTestCase:
@@ -133,80 +132,67 @@ class AnyDBMTestCase:
         for key in self._dict:
             self.assertEqual(self._dict[key], f[key.encode("ascii")])
 
-    def tearDown(self):
-        delete_files()
+    def test_keys(self):
+        with dbm.open(_fname, 'c') as d:
+            self.assertEqual(d.keys(), [])
+            a = [(b'a', b'b'), (b'12345678910', b'019237410982340912840198242')]
+            for k, v in a:
+                d[k] = v
+            self.assertEqual(sorted(d.keys()), sorted(k for (k, v) in a))
+            for k, v in a:
+                self.assertIn(k, d)
+                self.assertEqual(d[k], v)
+            self.assertNotIn(b'xxx', d)
+            self.assertRaises(KeyError, lambda: d[b'xxx'])
 
     def setUp(self):
+        self.addCleanup(setattr, dbm, '_defaultmod', dbm._defaultmod)
         dbm._defaultmod = self.module
-        delete_files()
+        self.addCleanup(cleaunup_test_dir)
+        setup_test_dir()
 
 
 class WhichDBTestCase(unittest.TestCase):
     def test_whichdb(self):
+        self.addCleanup(setattr, dbm, '_defaultmod', dbm._defaultmod)
         for module in dbm_iterator():
             # Check whether whichdb correctly guesses module name
             # for databases opened with "module" module.
-            # Try with empty files first
             name = module.__name__
-            if name == 'dbm.dumb':
-                continue   # whichdb can't support dbm.dumb
-            delete_files()
-            f = module.open(_fname, 'c')
-            f.close()
+            setup_test_dir()
+            dbm._defaultmod = module
+            # Try with empty files first
+            with module.open(_fname, 'c'): pass
             self.assertEqual(name, self.dbm.whichdb(_fname))
             # Now add a key
-            f = module.open(_fname, 'w')
-            f[b"1"] = b"1"
-            # and test that we can find it
-            self.assertIn(b"1", f)
-            # and read it
-            self.assertEqual(f[b"1"], b"1")
-            f.close()
+            with module.open(_fname, 'w') as f:
+                f[b"1"] = b"1"
+                # and test that we can find it
+                self.assertIn(b"1", f)
+                # and read it
+                self.assertEqual(f[b"1"], b"1")
             self.assertEqual(name, self.dbm.whichdb(_fname))
 
     @unittest.skipUnless(ndbm, reason='Test requires ndbm')
     def test_whichdb_ndbm(self):
         # Issue 17198: check that ndbm which is referenced in whichdb is defined
-        db_file = '{}_ndbm.db'.format(_fname)
-        with open(db_file, 'w'):
-            self.addCleanup(test.support.unlink, db_file)
-        self.assertIsNone(self.dbm.whichdb(db_file[:-3]))
-
-    def tearDown(self):
-        delete_files()
+        with open(_fname + '.db', 'wb'): pass
+        self.assertIsNone(self.dbm.whichdb(_fname))
 
     def setUp(self):
-        delete_files()
-        self.filename = test.support.TESTFN
-        self.d = dbm.open(self.filename, 'c')
-        self.d.close()
+        self.addCleanup(cleaunup_test_dir)
+        setup_test_dir()
         self.dbm = test.support.import_fresh_module('dbm')
 
-    def test_keys(self):
-        self.d = dbm.open(self.filename, 'c')
-        self.assertEqual(self.d.keys(), [])
-        a = [(b'a', b'b'), (b'12345678910', b'019237410982340912840198242')]
-        for k, v in a:
-            self.d[k] = v
-        self.assertEqual(sorted(self.d.keys()), sorted(k for (k, v) in a))
-        for k, v in a:
-            self.assertIn(k, self.d)
-            self.assertEqual(self.d[k], v)
-        self.assertNotIn(b'xxx', self.d)
-        self.assertRaises(KeyError, lambda: self.d[b'xxx'])
-        self.d.close()
-
-
-def load_tests(loader, tests, pattern):
-    classes = []
-    for mod in dbm_iterator():
-        classes.append(type("TestCase-" + mod.__name__,
-                            (AnyDBMTestCase, unittest.TestCase),
-                            {'module': mod}))
-    suites = [unittest.makeSuite(c) for c in classes]
-
-    tests.addTests(suites)
-    return tests
+
+for mod in dbm_iterator():
+    assert mod.__name__.startswith('dbm.')
+    suffix = mod.__name__[4:]
+    testname = f'TestCase_{suffix}'
+    globals()[testname] = type(testname,
+                               (AnyDBMTestCase, unittest.TestCase),
+                               {'module': mod})
+
 
 if __name__ == "__main__":
     unittest.main()
index d37c53da2cf4f50feb9206644b43b9f14a67f309..3f30a935d583c35d695abec8c7164af78b500326 100644 (file)
@@ -40,6 +40,17 @@ from test.support import (import_fresh_module, TestFailed,
 import random
 import inspect
 import threading
+import sysconfig
+_cflags = sysconfig.get_config_var('CFLAGS') or ''
+_config_args = sysconfig.get_config_var('CONFIG_ARGS') or ''
+MEMORY_SANITIZER = (
+    '-fsanitize=memory' in _cflags or
+    '--with-memory-sanitizer' in _config_args
+)
+
+ADDRESS_SANITIZER = (
+    '-fsanitize=address' in _cflags
+)
 
 
 if sys.platform == 'darwin':
@@ -48,7 +59,7 @@ if sys.platform == 'darwin':
 
 C = import_fresh_module('decimal', fresh=['_decimal'])
 P = import_fresh_module('decimal', blocked=['_decimal'])
-orig_sys_decimal = sys.modules['decimal']
+import decimal as orig_sys_decimal
 
 # fractions module must import the correct decimal module.
 cfractions = import_fresh_module('fractions', fresh=['fractions'])
@@ -5486,6 +5497,8 @@ class CWhitebox(unittest.TestCase):
     # Issue 41540:
     @unittest.skipIf(sys.platform.startswith("aix"),
                      "AIX: default ulimit: test is flaky because of extreme over-allocation")
+    @unittest.skipIf(MEMORY_SANITIZER or ADDRESS_SANITIZER, "sanitizer defaults to crashing "
+                     "instead of returning NULL for malloc failure.")
     def test_maxcontext_exact_arith(self):
 
         # Make sure that exact operations do not raise MemoryError due
index c7a191bccd69c40256dd88dfd3681bd5a4cda979..0e6a784c6c14babb5443bd873d6a54084cc22452 100644 (file)
@@ -4945,8 +4945,11 @@ class DictProxyTests(unittest.TestCase):
             self.assertIn('{!r}: {!r}'.format(k, v), r)
 
 
-class PTypesLongInitTest(unittest.TestCase):
+class AAAPTypesLongInitTest(unittest.TestCase):
     # This is in its own TestCase so that it can be run before any other tests.
+    # (Hence the 'AAA' in the test class name: to make it the first
+    # item in a list sorted by name, like
+    # unittest.TestLoader.getTestCaseNames() does.)
     def test_pytype_long_ready(self):
         # Testing SF bug 551412 ...
 
@@ -5669,7 +5672,7 @@ class MroTest(unittest.TestCase):
 
     def test_incomplete_super(self):
         """
-        Attrubute lookup on a super object must be aware that
+        Attribute lookup on a super object must be aware that
         its target type can be uninitialized (type->tp_mro == NULL).
         """
         class M(DebugHelperMeta):
@@ -5684,12 +5687,5 @@ class MroTest(unittest.TestCase):
             pass
 
 
-def test_main():
-    # Run all local test cases, with PTypesLongInitTest first.
-    support.run_unittest(PTypesLongInitTest, OperatorsTest,
-                         ClassPropertiesAndMethods, DictProxyTests,
-                         MiscTests, PicklingTests, SharedKeyTests,
-                         MroTest)
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 110c006862737bdc657df40a95aa54f8d7c4ef44..85e0accb611b1d7a8775e1ed3f93356ed04e11d0 100644 (file)
@@ -6,7 +6,7 @@ import os
 import random
 import select
 import unittest
-from test.support import run_unittest, cpython_only
+from test.support import cpython_only
 
 if not hasattr(select, 'devpoll') :
     raise unittest.SkipTest('test works only on Solaris OS family')
@@ -138,8 +138,5 @@ class DevPollTests(unittest.TestCase):
         self.assertRaises(OverflowError, pollster.modify, 1, USHRT_MAX + 1)
 
 
-def test_main():
-    run_unittest(DevPollTests)
-
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index b10c07534ddb21a6a803536030a699aeaf979df8..d05ed302ede8480d29ad9b46cab9cea6d33da641 100644 (file)
@@ -1021,7 +1021,7 @@ class DictTest(unittest.TestCase):
 
     @support.cpython_only
     def test_splittable_pop_pending(self):
-        """pop a pending key in a splitted table should not crash"""
+        """pop a pending key in a split table should not crash"""
         a, b = self.make_shared_key_dict(2)
 
         a['a'] = 4
@@ -1368,7 +1368,7 @@ class DictTest(unittest.TestCase):
         self.assertRaises(StopIteration, next, r)
 
     def test_reverse_iterator_for_empty_dict(self):
-        # bpo-38525: revered iterator should work properly
+        # bpo-38525: reversed iterator should work properly
 
         # empty dict is directly used for reference count test
         self.assertEqual(list(reversed({})), [])
index b23786514f82e9cf1d07e3548ec98f6b137aa31c..95a42d03e6850ce450c8240c8c89336b77124222 100644 (file)
@@ -1,5 +1,5 @@
 """
-Test implementation of the PEP 509: dictionary versionning.
+Test implementation of the PEP 509: dictionary versioning.
 """
 import unittest
 from test import support
index 42ac1fdcd81cdce81623f59521493bc77b4decb0..d9399364f6aadca012404ef5b6e7f0c519382d85 100644 (file)
@@ -1,5 +1,5 @@
 import difflib
-from test.support import run_unittest, findfile
+from test.support import findfile
 import unittest
 import doctest
 import sys
@@ -547,12 +547,14 @@ class TestFindLongest(unittest.TestCase):
         self.assertFalse(self.longer_match_exists(a, b, match.size))
 
 
-def test_main():
+def setUpModule():
     difflib.HtmlDiff._default_prefix = 0
-    Doctests = doctest.DocTestSuite(difflib)
-    run_unittest(
-        TestWithAscii, TestAutojunk, TestSFpatches, TestSFbugs,
-        TestOutputFormat, TestBytes, TestJunkAPIs, TestFindLongest, Doctests)
+
+
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite(difflib))
+    return tests
+
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index ac5836d288978ceed69fad68e4537ca11c062ed9..54bab568ab8a307d0e39b8f9171fae79e16c221f 100644 (file)
@@ -1202,5 +1202,46 @@ class BytecodeTests(unittest.TestCase):
         b = dis.Bytecode.from_traceback(tb)
         self.assertEqual(b.dis(), dis_traceback)
 
+
+class TestDisTraceback(unittest.TestCase):
+    def setUp(self) -> None:
+        try:  # We need to clean up existing tracebacks
+            del sys.last_traceback
+        except AttributeError:
+            pass
+        return super().setUp()
+
+    def get_disassembly(self, tb):
+        output = io.StringIO()
+        with contextlib.redirect_stdout(output):
+            dis.distb(tb)
+        return output.getvalue()
+
+    def test_distb_empty(self):
+        with self.assertRaises(RuntimeError):
+            dis.distb()
+
+    def test_distb_last_traceback(self):
+        # We need to have an existing last traceback in `sys`:
+        tb = get_tb()
+        sys.last_traceback = tb
+
+        self.assertEqual(self.get_disassembly(None), dis_traceback)
+
+    def test_distb_explicit_arg(self):
+        tb = get_tb()
+
+        self.assertEqual(self.get_disassembly(tb), dis_traceback)
+
+
+class TestDisTracebackWithFile(TestDisTraceback):
+    # Run the `distb` tests again, using the file arg instead of print
+    def get_disassembly(self, tb):
+        output = io.StringIO()
+        with contextlib.redirect_stdout(output):
+            dis.distb(tb, file=output)
+        return output.getvalue()
+
+
 if __name__ == "__main__":
     unittest.main()
index a37f11791754d2645a127d26d9db8940465bd088..790d39c6d35aec6c26cc29f9915c24a0804dafe8 100644 (file)
@@ -9,16 +9,14 @@ import distutils.tests
 import test.support
 
 
-def test_main():
-    # used by regrtest
-    test.support.run_unittest(distutils.tests.test_suite())
-    test.support.reap_children()
-
-
 def load_tests(*_):
     # used by unittest
     return distutils.tests.test_suite()
 
 
+def tearDownModule():
+    test.support.reap_children()
+
+
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 3efe5dafc20ad14da32bbf5be11bc5d461005d44..47b8575cec563378c6b5971bebaceec69984bf84 100644 (file)
@@ -93,6 +93,17 @@ class SampleClass:
         22
         """)
 
+    a_class_attribute = 42
+
+    @classmethod
+    @property
+    def a_classmethod_property(cls):
+        """
+        >>> print(SampleClass.a_classmethod_property)
+        42
+        """
+        return cls.a_class_attribute
+
     class NestedClass:
         """
         >>> x = SampleClass.NestedClass(5)
@@ -498,6 +509,7 @@ methods, classmethods, staticmethods, properties, and nested classes.
      1  SampleClass.NestedClass.__init__
      1  SampleClass.__init__
      2  SampleClass.a_classmethod
+     1  SampleClass.a_classmethod_property
      1  SampleClass.a_property
      1  SampleClass.a_staticmethod
      1  SampleClass.double
@@ -553,6 +565,7 @@ functions, classes, and the `__test__` dictionary, if it exists:
      1  some_module.SampleClass.NestedClass.__init__
      1  some_module.SampleClass.__init__
      2  some_module.SampleClass.a_classmethod
+     1  some_module.SampleClass.a_classmethod_property
      1  some_module.SampleClass.a_property
      1  some_module.SampleClass.a_staticmethod
      1  some_module.SampleClass.double
@@ -594,6 +607,7 @@ By default, an object with no doctests doesn't create any tests:
      1  SampleClass.NestedClass.__init__
      1  SampleClass.__init__
      2  SampleClass.a_classmethod
+     1  SampleClass.a_classmethod_property
      1  SampleClass.a_property
      1  SampleClass.a_staticmethod
      1  SampleClass.double
@@ -614,6 +628,7 @@ displays.
      0  SampleClass.NestedClass.square
      1  SampleClass.__init__
      2  SampleClass.a_classmethod
+     1  SampleClass.a_classmethod_property
      1  SampleClass.a_property
      1  SampleClass.a_staticmethod
      1  SampleClass.double
@@ -3091,20 +3106,11 @@ def test_no_trailing_whitespace_stripping():
     patches that contain trailing whitespace. More info on Issue 24746.
     """
 
-######################################################################
-## Main
-######################################################################
-
-def test_main():
-    # Check the doctest cases in doctest itself:
-    ret = support.run_doctest(doctest, verbosity=True)
 
-    # Check the doctest cases defined here:
-    from test import test_doctest
-    support.run_doctest(test_doctest, verbosity=True)
-
-    # Run unittests
-    support.run_unittest(__name__)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite(doctest))
+    tests.addTest(doctest.DocTestSuite())
+    return tests
 
 
 def test_coverage(coverdir):
@@ -3117,8 +3123,9 @@ def test_coverage(coverdir):
     r.write_results(show_missing=True, summary=True,
                     coverdir=coverdir)
 
+
 if __name__ == '__main__':
     if '-c' in sys.argv:
         test_coverage('/tmp/doctest.cover')
     else:
-        test_main()
+        unittest.main()
index 347a143641071d87e45a63b42297960617ba2986..ab8a0696736e2377140eaa92296ef5fdcfb667dc 100644 (file)
@@ -13,7 +13,6 @@ the example.  It should be ignored:
 
 import sys
 import unittest
-from test import support
 if sys.flags.optimize >= 2:
     raise unittest.SkipTest("Cannot test docstrings with -O2")
 
@@ -107,17 +106,21 @@ class C(object):
         """
         return val
 
-def test_main():
-    from test import test_doctest2
-    EXPECTED = 19
-    f, t = support.run_doctest(test_doctest2)
-    if t != EXPECTED:
-        raise support.TestFailed("expected %d tests to run, not %d" %
-                                      (EXPECTED, t))
+
+class Test(unittest.TestCase):
+    def test_testmod(self):
+        import doctest, sys
+        EXPECTED = 19
+        f, t = doctest.testmod(sys.modules[__name__])
+        if f:
+            self.fail("%d of %d doctests failed" % (f, t))
+        if t != EXPECTED:
+            self.fail("expected %d tests to run, not %d" % (EXPECTED, t))
+
 
 # Pollute the namespace with a bunch of imported functions and classes,
 # to make sure they don't get tested.
 from doctest import *
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 8612e276d765884634bf3a033542a4fb14021f69..3957077f5d612349070fa5440976d7282107828c 100644 (file)
@@ -6,7 +6,7 @@ import sys
 import types
 import unittest
 
-from test.support import findfile, run_unittest
+from test.support import findfile
 
 
 def abspath(filename):
@@ -34,7 +34,7 @@ def normalize_trace_output(output):
         return "\n".join(result)
     except (IndexError, ValueError):
         raise AssertionError(
-            "tracer produced unparseable output:\n{}".format(output)
+            "tracer produced unparsable output:\n{}".format(output)
         )
 
 
@@ -97,7 +97,7 @@ class SystemTapBackend(TraceBackend):
     COMMAND = ["stap", "-g"]
 
 
-class TraceTests(unittest.TestCase):
+class TraceTests:
     # unittest.TestCase options
     maxDiff = None
 
@@ -149,30 +149,25 @@ class TraceTests(unittest.TestCase):
         self.run_case("line")
 
 
-class DTraceNormalTests(TraceTests):
+class DTraceNormalTests(TraceTests, unittest.TestCase):
     backend = DTraceBackend()
     optimize_python = 0
 
 
-class DTraceOptimizedTests(TraceTests):
+class DTraceOptimizedTests(TraceTests, unittest.TestCase):
     backend = DTraceBackend()
     optimize_python = 2
 
 
-class SystemTapNormalTests(TraceTests):
+class SystemTapNormalTests(TraceTests, unittest.TestCase):
     backend = SystemTapBackend()
     optimize_python = 0
 
 
-class SystemTapOptimizedTests(TraceTests):
+class SystemTapOptimizedTests(TraceTests, unittest.TestCase):
     backend = SystemTapBackend()
     optimize_python = 2
 
 
-def test_main():
-    run_unittest(DTraceNormalTests, DTraceOptimizedTests, SystemTapNormalTests,
-                 SystemTapOptimizedTests)
-
-
 if __name__ == '__main__':
     test_main()
index 217a5b871090960db0e08f493556814cfffb94a2..bc062b5cb0c5910ce1fe9676644ea6418346cd32 100644 (file)
@@ -3008,6 +3008,7 @@ class TestMiscellaneous(TestEmailBase):
         self.assertIsNone(utils.parsedate_tz('0'))
         self.assertIsNone(utils.parsedate('A Complete Waste of Time'))
         self.assertIsNone(utils.parsedate_tz('A Complete Waste of Time'))
+        self.assertIsNone(utils.parsedate_tz('Wed, 3 Apr 2002 12.34.56.78+0800'))
         # Not a part of the spec but, but this has historically worked:
         self.assertIsNone(utils.parsedate(None))
         self.assertIsNone(utils.parsedate_tz(None))
index 920a3d6a9cb91be87612fe39f615ae60e840c99a..4c754bf40fc300826bf2fbbdd206c3b94f8e8477 100644 (file)
@@ -433,7 +433,7 @@ class TestEmailMessageBase:
                 --===
                 Content-Type: text/plain
 
-                Your message has bounced, ser.
+                Your message has bounced, sir.
 
                 --===
                 Content-Type: message/rfc822
index ea47004443006c0a3cbc2a8766b083f7e38310a9..11c8f012896d344f6de07888364334ee829e8aa3 100644 (file)
@@ -247,7 +247,7 @@ class EmbeddingTests(EmbeddingTestsMixin, unittest.TestCase):
 
     def test_pre_initialization_api(self):
         """
-        Checks some key parts of the C-API that need to work before the runtine
+        Checks some key parts of the C-API that need to work before the runtime
         is initialized (via Py_Initialize()).
         """
         env = dict(os.environ, PYTHONPATH=os.pathsep.join(sys.path))
@@ -308,6 +308,14 @@ class EmbeddingTests(EmbeddingTestsMixin, unittest.TestCase):
         self.assertEqual(out.rstrip(), "Py_RunMain(): sys.argv=['-c', 'arg2']")
         self.assertEqual(err, '')
 
+    def test_run_main_loop(self):
+        # bpo-40413: Calling Py_InitializeFromConfig()+Py_RunMain() multiple
+        # times must not crash.
+        nloop = 5
+        out, err = self.run_embedded_interpreter("test_run_main_loop")
+        self.assertEqual(out, "Py_RunMain(): sys.argv=['-c', 'arg2']\n" * nloop)
+        self.assertEqual(err, '')
+
 
 class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
     maxDiff = 4096
@@ -1098,7 +1106,7 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase):
             'base_prefix': '',
             'exec_prefix': '',
             'base_exec_prefix': '',
-            # overriden by PyConfig
+            # overridden by PyConfig
             'program_name': 'conf_program_name',
             'base_executable': 'conf_executable',
             'executable': 'conf_executable',
index 70e438d2ee943837481fb3e58765bbbc319616b9..4a7ca60b39bc513a3f3c44d9f06dfb048b5678ce 100644 (file)
@@ -193,6 +193,10 @@ class ExceptionTests(unittest.TestCase):
                 line = src.split('\n')[lineno-1]
                 self.assertIn(line, cm.exception.text)
 
+    def test_error_offset_continuation_characters(self):
+        check = self.check
+        check('"\\\n"(1 for c in I,\\\n\\', 3, 22)
+
     def testSyntaxErrorOffset(self):
         check = self.check
         check('def fact(x):\n\treturn x!\n', 2, 10)
index 9ab68c67241f464e0cf115389407ea48e616b378..2a3209eb7db2036f24b49b6127cef1045967a5fa 100644 (file)
@@ -6,7 +6,7 @@ import struct
 import sys
 import unittest
 from multiprocessing import Process
-from test.support import (verbose, TESTFN, unlink, run_unittest, import_module,
+from test.support import (verbose, TESTFN, unlink, import_module,
                           cpython_only)
 
 # Skip test if no fcntl module.
@@ -188,8 +188,6 @@ class TestFcntl(unittest.TestCase):
         res = fcntl.fcntl(self.f.fileno(), fcntl.F_GETPATH, bytes(len(expected)))
         self.assertEqual(expected, res)
 
-def test_main():
-    run_unittest(TestFcntl)
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index b5b24a24c8ddeab95420a417d714789cda01171b..f6228cc4133acdea8376fdb4c257b633600032c1 100644 (file)
@@ -210,8 +210,5 @@ class DirCompareTestCase(unittest.TestCase):
             self.assertEqual(report_lines, expected_report_lines)
 
 
-def test_main():
-    support.run_unittest(FileCompareTestCase, DirCompareTestCase)
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 77c7f69a03e1d70bdae438b82a05b17ddf030eb1..2671d6a174e87b616c4d0a16763930e09352f816 100644 (file)
@@ -9,7 +9,7 @@ from array import array
 from weakref import proxy
 from functools import wraps
 
-from test.support import (TESTFN, TESTFN_UNICODE, check_warnings, run_unittest,
+from test.support import (TESTFN, TESTFN_UNICODE, check_warnings,
                           make_bad_fd, cpython_only, swap_attr, gc_collect)
 from collections import UserList
 
@@ -605,15 +605,12 @@ class PyOtherFileTests(OtherFileTests, unittest.TestCase):
             self.assertNotEqual(w.warnings, [])
 
 
-def test_main():
+def tearDownModule():
     # Historically, these tests have been sloppy about removing TESTFN.
     # So get rid of it no matter what.
-    try:
-        run_unittest(CAutoFileTests, PyAutoFileTests,
-                     COtherFileTests, PyOtherFileTests)
-    finally:
-        if os.path.exists(TESTFN):
-            os.unlink(TESTFN)
+    if os.path.exists(TESTFN):
+        os.unlink(TESTFN)
+
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 9653e46ecc52d8960cfd5cc861cb161293cabb6c..55e175afedfe8e3d451116a45c9142b1a563834e 100644 (file)
@@ -249,7 +249,7 @@ class FormatTest(unittest.TestCase):
         # base marker shouldn't change the size
         testcommon("%0#35.33o", big, "0o012345670123456701234567012345670")
 
-        # Some small ints, in both Python int and flavors).
+        # Some small ints, in both Python int and flavors.
         testcommon("%d", 42, "42")
         testcommon("%d", -42, "-42")
         testcommon("%d", 42.0, "42")
index b76287bfe1c2741fa09834fee6be1a888f6ec6b3..6f8f977b3950d5de5e1f8e1748075ac83ca5a9e2 100644 (file)
@@ -12,6 +12,7 @@ import errno
 import os
 import threading
 import time
+import unittest
 try:
     import ssl
 except ImportError:
@@ -1136,18 +1137,10 @@ class MiscTestCase(TestCase):
         support.check__all__(self, ftplib, blacklist=blacklist)
 
 
-def test_main():
-    tests = [TestFTPClass, TestTimeouts,
-             TestIPv6Environment,
-             TestTLS_FTPClassMixin, TestTLS_FTPClass,
-             MiscTestCase]
-
+def setUpModule():
     thread_info = support.threading_setup()
-    try:
-        support.run_unittest(*tests)
-    finally:
-        support.threading_cleanup(*thread_info)
+    unittest.addModuleCleanup(support.threading_cleanup, *thread_info)
 
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 987020ea007fa09faecc3367f598bc8a52ba8f0c..b2a7e5a88b422b2a38045eea18855e3fbac67eb8 100644 (file)
@@ -2401,7 +2401,7 @@ class TestSingleDispatch(unittest.TestCase):
         self.assertEqual(A.t(0.0).arg, "base")
 
     def test_abstractmethod_register(self):
-        class Abstract(abc.ABCMeta):
+        class Abstract(metaclass=abc.ABCMeta):
 
             @functools.singledispatchmethod
             @abc.abstractmethod
@@ -2409,6 +2409,10 @@ class TestSingleDispatch(unittest.TestCase):
                 pass
 
         self.assertTrue(Abstract.add.__isabstractmethod__)
+        self.assertTrue(Abstract.__dict__['add'].__isabstractmethod__)
+
+        with self.assertRaises(TypeError):
+            Abstract()
 
     def test_type_ann_register(self):
         class A:
@@ -2427,6 +2431,183 @@ class TestSingleDispatch(unittest.TestCase):
         self.assertEqual(a.t(''), "str")
         self.assertEqual(a.t(0.0), "base")
 
+    def test_staticmethod_type_ann_register(self):
+        class A:
+            @functools.singledispatchmethod
+            @staticmethod
+            def t(arg):
+                return arg
+            @t.register
+            @staticmethod
+            def _(arg: int):
+                return isinstance(arg, int)
+            @t.register
+            @staticmethod
+            def _(arg: str):
+                return isinstance(arg, str)
+        a = A()
+
+        self.assertTrue(A.t(0))
+        self.assertTrue(A.t(''))
+        self.assertEqual(A.t(0.0), 0.0)
+
+    def test_classmethod_type_ann_register(self):
+        class A:
+            def __init__(self, arg):
+                self.arg = arg
+
+            @functools.singledispatchmethod
+            @classmethod
+            def t(cls, arg):
+                return cls("base")
+            @t.register
+            @classmethod
+            def _(cls, arg: int):
+                return cls("int")
+            @t.register
+            @classmethod
+            def _(cls, arg: str):
+                return cls("str")
+
+        self.assertEqual(A.t(0).arg, "int")
+        self.assertEqual(A.t('').arg, "str")
+        self.assertEqual(A.t(0.0).arg, "base")
+
+    def test_method_wrapping_attributes(self):
+        class A:
+            @functools.singledispatchmethod
+            def func(self, arg: int) -> str:
+                """My function docstring"""
+                return str(arg)
+            @functools.singledispatchmethod
+            @classmethod
+            def cls_func(cls, arg: int) -> str:
+                """My function docstring"""
+                return str(arg)
+            @functools.singledispatchmethod
+            @staticmethod
+            def static_func(arg: int) -> str:
+                """My function docstring"""
+                return str(arg)
+
+        for meth in (
+            A.func,
+            A().func,
+            A.cls_func,
+            A().cls_func,
+            A.static_func,
+            A().static_func
+        ):
+            with self.subTest(meth=meth):
+                self.assertEqual(meth.__doc__, 'My function docstring')
+                self.assertEqual(meth.__annotations__['arg'], int)
+
+        self.assertEqual(A.func.__name__, 'func')
+        self.assertEqual(A().func.__name__, 'func')
+        self.assertEqual(A.cls_func.__name__, 'cls_func')
+        self.assertEqual(A().cls_func.__name__, 'cls_func')
+        self.assertEqual(A.static_func.__name__, 'static_func')
+        self.assertEqual(A().static_func.__name__, 'static_func')
+
+    def test_double_wrapped_methods(self):
+        def classmethod_friendly_decorator(func):
+            wrapped = func.__func__
+            @classmethod
+            @functools.wraps(wrapped)
+            def wrapper(*args, **kwargs):
+                return wrapped(*args, **kwargs)
+            return wrapper
+
+        class WithoutSingleDispatch:
+            @classmethod
+            @contextlib.contextmanager
+            def cls_context_manager(cls, arg: int) -> str:
+                try:
+                    yield str(arg)
+                finally:
+                    return 'Done'
+
+            @classmethod_friendly_decorator
+            @classmethod
+            def decorated_classmethod(cls, arg: int) -> str:
+                return str(arg)
+
+        class WithSingleDispatch:
+            @functools.singledispatchmethod
+            @classmethod
+            @contextlib.contextmanager
+            def cls_context_manager(cls, arg: int) -> str:
+                """My function docstring"""
+                try:
+                    yield str(arg)
+                finally:
+                    return 'Done'
+
+            @functools.singledispatchmethod
+            @classmethod_friendly_decorator
+            @classmethod
+            def decorated_classmethod(cls, arg: int) -> str:
+                """My function docstring"""
+                return str(arg)
+
+        # These are sanity checks
+        # to test the test itself is working as expected
+        with WithoutSingleDispatch.cls_context_manager(5) as foo:
+            without_single_dispatch_foo = foo
+
+        with WithSingleDispatch.cls_context_manager(5) as foo:
+            single_dispatch_foo = foo
+
+        self.assertEqual(without_single_dispatch_foo, single_dispatch_foo)
+        self.assertEqual(single_dispatch_foo, '5')
+        
+        self.assertEqual(
+            WithoutSingleDispatch.decorated_classmethod(5),
+            WithSingleDispatch.decorated_classmethod(5)
+        )
+
+        self.assertEqual(WithSingleDispatch.decorated_classmethod(5), '5')
+
+        # Behavioural checks now follow
+        for method_name in ('cls_context_manager', 'decorated_classmethod'):
+            with self.subTest(method=method_name):
+                self.assertEqual(
+                    getattr(WithSingleDispatch, method_name).__name__,
+                    getattr(WithoutSingleDispatch, method_name).__name__
+                )
+
+                self.assertEqual(
+                    getattr(WithSingleDispatch(), method_name).__name__,
+                    getattr(WithoutSingleDispatch(), method_name).__name__
+                )
+
+        for meth in (
+            WithSingleDispatch.cls_context_manager,
+            WithSingleDispatch().cls_context_manager,
+            WithSingleDispatch.decorated_classmethod,
+            WithSingleDispatch().decorated_classmethod
+        ):
+            with self.subTest(meth=meth):
+                self.assertEqual(meth.__doc__, 'My function docstring')
+                self.assertEqual(meth.__annotations__['arg'], int)
+
+        self.assertEqual(
+            WithSingleDispatch.cls_context_manager.__name__,
+            'cls_context_manager'
+        )
+        self.assertEqual(
+            WithSingleDispatch().cls_context_manager.__name__,
+            'cls_context_manager'
+        )
+        self.assertEqual(
+            WithSingleDispatch.decorated_classmethod.__name__,
+            'decorated_classmethod'
+        )
+        self.assertEqual(
+            WithSingleDispatch().decorated_classmethod.__name__,
+            'decorated_classmethod'
+        )
+
     def test_invalid_registrations(self):
         msg_prefix = "Invalid first argument to `register()`: "
         msg_suffix = (
index 0f40357b3a7310aec2eff565ed4bce058595fb8a..afef14c460b69956e45eef2c8bdcfd1352f55376 100644 (file)
@@ -322,7 +322,7 @@ class AnnotationsFutureTestCase(unittest.TestCase):
 
     def test_fstring_debug_annotations(self):
         # f-strings with '=' don't round trip very well, so set the expected
-        # result explicitely.
+        # result explicitly.
         self.assertAnnotationEqual("f'{x=!r}'", expected="f'x={x!r}'")
         self.assertAnnotationEqual("f'{x=:}'", expected="f'x={x:}'")
         self.assertAnnotationEqual("f'{x=:.2f}'", expected="f'x={x:.2f}'")
index 59cff20e6a7e7ffa4bb996790dc7977f994ac6f6..3313804703f7e24309709cacec7cc7fc17d6dc75 100644 (file)
@@ -1,6 +1,6 @@
 import unittest
 import unittest.mock
-from test.support import (verbose, refcount_test, run_unittest,
+from test.support import (verbose, refcount_test,
                           cpython_only, start_threads,
                           temp_dir, TESTFN, unlink,
                           import_module)
@@ -1388,30 +1388,27 @@ class PythonFinalizationTests(unittest.TestCase):
         assert_python_ok("-c", code)
 
 
-def test_main():
+def setUpModule():
+    global enabled, debug
     enabled = gc.isenabled()
     gc.disable()
     assert not gc.isenabled()
     debug = gc.get_debug()
     gc.set_debug(debug & ~gc.DEBUG_LEAK) # this test is supposed to leak
+    gc.collect() # Delete 2nd generation garbage
+
+
+def tearDownModule():
+    gc.set_debug(debug)
+    # test gc.enable() even if GC is disabled by default
+    if verbose:
+        print("restoring automatic collection")
+    # make sure to always test gc.enable()
+    gc.enable()
+    assert gc.isenabled()
+    if not enabled:
+        gc.disable()
 
-    try:
-        gc.collect() # Delete 2nd generation garbage
-        run_unittest(
-            GCTests,
-            GCCallbackTests,
-            GCTogglingTests,
-            PythonFinalizationTests)
-    finally:
-        gc.set_debug(debug)
-        # test gc.enable() even if GC is disabled by default
-        if verbose:
-            print("restoring automatic collection")
-        # make sure to always test gc.enable()
-        gc.enable()
-        assert gc.isenabled()
-        if not enabled:
-            gc.disable()
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 22c75bae987219d954a989764067dcbed94bd4e9..5f554897f86a0b33de53e59a53e1263e0a7d0b32 100644 (file)
@@ -145,7 +145,8 @@ class DebuggerTests(unittest.TestCase):
     def get_stack_trace(self, source=None, script=None,
                         breakpoint=BREAKPOINT_FN,
                         cmds_after_breakpoint=None,
-                        import_site=False):
+                        import_site=False,
+                        ignore_stderr=False):
         '''
         Run 'python -c SOURCE' under gdb with a breakpoint.
 
@@ -224,8 +225,9 @@ class DebuggerTests(unittest.TestCase):
         # Use "args" to invoke gdb, capturing stdout, stderr:
         out, err = run_gdb(*args, PYTHONHASHSEED=PYTHONHASHSEED)
 
-        for line in err.splitlines():
-            print(line, file=sys.stderr)
+        if not ignore_stderr:
+            for line in err.splitlines():
+                print(line, file=sys.stderr)
 
         # bpo-34007: Sometimes some versions of the shared libraries that
         # are part of the traceback are compiled in optimised mode and the
@@ -908,6 +910,9 @@ id(42)
                         cmd,
                         breakpoint=func_name,
                         cmds_after_breakpoint=['bt', 'py-bt'],
+                        # bpo-45207: Ignore 'Function "meth_varargs" not
+                        # defined.' message in stderr.
+                        ignore_stderr=True,
                     )
                     self.assertIn(f'<built-in method {func_name}', gdb_output)
 
@@ -916,6 +921,9 @@ id(42)
                         cmd,
                         breakpoint=func_name,
                         cmds_after_breakpoint=['py-bt-full'],
+                        # bpo-45207: Ignore 'Function "meth_varargs" not
+                        # defined.' message in stderr.
+                        ignore_stderr=True,
                     )
                     self.assertIn(
                         f'#{expected_frame} <built-in method {func_name}',
index ccf40b13d3a94c00eaf4c87cf5cbcce94646d7a0..f7072a48c7263da070590c41c93c484268008c5b 100644 (file)
@@ -2,6 +2,7 @@
 
 import unittest
 import pickle
+import copy
 from collections import (
     defaultdict, deque, OrderedDict, Counter, UserDict, UserList
 )
@@ -270,11 +271,30 @@ class BaseTest(unittest.TestCase):
 
     def test_pickle(self):
         alias = GenericAlias(list, T)
-        s = pickle.dumps(alias)
-        loaded = pickle.loads(s)
-        self.assertEqual(alias.__origin__, loaded.__origin__)
-        self.assertEqual(alias.__args__, loaded.__args__)
-        self.assertEqual(alias.__parameters__, loaded.__parameters__)
+        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+            s = pickle.dumps(alias, proto)
+            loaded = pickle.loads(s)
+            self.assertEqual(loaded.__origin__, alias.__origin__)
+            self.assertEqual(loaded.__args__, alias.__args__)
+            self.assertEqual(loaded.__parameters__, alias.__parameters__)
+
+    def test_copy(self):
+        class X(list):
+            def __copy__(self):
+                return self
+            def __deepcopy__(self, memo):
+                return self
+
+        for origin in list, deque, X:
+            alias = GenericAlias(origin, T)
+            copied = copy.copy(alias)
+            self.assertEqual(copied.__origin__, alias.__origin__)
+            self.assertEqual(copied.__args__, alias.__args__)
+            self.assertEqual(copied.__parameters__, alias.__parameters__)
+            copied = copy.deepcopy(alias)
+            self.assertEqual(copied.__origin__, alias.__origin__)
+            self.assertEqual(copied.__args__, alias.__args__)
+            self.assertEqual(copied.__parameters__, alias.__parameters__)
 
     def test_union(self):
         a = typing.Union[list[int], list[str]]
index 8159602be98ee3c0cc0100d87ab4dbd034c407a1..e60f00206bf4ce40fab6abd7231958482443f54f 100644 (file)
@@ -1,6 +1,6 @@
 """Verify that warnings are issued for global statements following use."""
 
-from test.support import run_unittest, check_syntax_error, check_warnings
+from test.support import check_syntax_error, check_warnings
 import unittest
 import warnings
 
@@ -52,10 +52,12 @@ x = 2
         compile(prog_text_4, "<test string>", "exec")
 
 
-def test_main():
-    with warnings.catch_warnings():
-        warnings.filterwarnings("error", module="<test string>")
-        run_unittest(GlobalTests)
+def setUpModule():
+    cm = warnings.catch_warnings()
+    cm.__enter__()
+    unittest.addModuleCleanup(cm.__exit__, None, None, None)
+    warnings.filterwarnings("error", module="<test string>")
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 00432537f22d006d5a0855933e5341270aa2cd91..86246a62ed64220a79c4dd60bd54b9e056157b2b 100644 (file)
@@ -13,13 +13,19 @@ class TestTopologicalSort(unittest.TestCase):
                 nodes = ts.get_ready()
                 for node in nodes:
                     ts.done(node)
-                yield nodes
+                yield tuple(sorted(nodes))
 
         ts = graphlib.TopologicalSorter(graph)
         self.assertEqual(list(static_order_with_groups(ts)), list(expected))
 
         ts = graphlib.TopologicalSorter(graph)
-        self.assertEqual(list(ts.static_order()), list(chain(*expected)))
+        # need to be a bit careful comparing the result of ts.static_order and
+        # expected, because the order within a group is dependent on set
+        # iteration order
+        it = iter(ts.static_order())
+        for group in expected:
+            tsgroup = {next(it) for element in group}
+            self.assertEqual(set(group), tsgroup)
 
     def _assert_cycle(self, graph, cycle):
         ts = graphlib.TopologicalSorter()
@@ -36,7 +42,7 @@ class TestTopologicalSort(unittest.TestCase):
     def test_simple_cases(self):
         self._test_graph(
             {2: {11}, 9: {11, 8}, 10: {11, 3}, 11: {7, 5}, 8: {7, 3}},
-            [(3, 5, 7), (11, 8), (2, 10, 9)],
+            [(3, 5, 7), (8, 11), (2, 9, 10)],
         )
 
         self._test_graph({1: {}}, [(1,)])
@@ -80,7 +86,7 @@ class TestTopologicalSort(unittest.TestCase):
 
     def test_the_node_multiple_times(self):
         # Test same node multiple times in dependencies
-        self._test_graph({1: {2}, 3: {4}, 0: [2, 4, 4, 4, 4, 4]}, [(2, 4), (1, 3, 0)])
+        self._test_graph({1: {2}, 3: {4}, 0: [2, 4, 4, 4, 4, 4]}, [(2, 4), (0, 1, 3)])
 
         # Test adding the same dependency multiple times
         ts = graphlib.TopologicalSorter()
@@ -242,3 +248,6 @@ class TestTopologicalSort(unittest.TestCase):
         self.assertNotEqual(run1, "")
         self.assertNotEqual(run2, "")
         self.assertEqual(run1, run2)
+
+if __name__ == "__main__":
+    unittest.main()
index 1af23c69b4bd7b3dd917e27536083ae5265e7815..1d41efa6c1f89f7c43bdeccd2b6b3a94552a2511 100644 (file)
@@ -831,9 +831,5 @@ class TestCommandLine(unittest.TestCase):
         self.assertEqual(out, b'')
 
 
-def test_main(verbose=None):
-    support.run_unittest(TestGzip, TestOpen, TestCommandLine)
-
-
 if __name__ == "__main__":
-    test_main(verbose=True)
+    unittest.main()
index 2d7077af6da39e58afca19bc6292246fd42ca567..83945509d714822bebc8ea668e3d32d4a8c30f66 100644 (file)
@@ -1913,14 +1913,5 @@ class LWPCookieTests(unittest.TestCase):
         self.assertNotEqual(counter["session_before"], 0)
 
 
-def test_main(verbose=None):
-    test.support.run_unittest(
-        DateTimeTests,
-        HeaderTests,
-        CookieTests,
-        FileCookieJarTests,
-        LWPCookieTests,
-        )
-
 if __name__ == "__main__":
-    test_main(verbose=True)
+    unittest.main()
index 70e562f4052d9fa6c673706831ead9e0a631bc5a..c1494d29ca8707ab0e675ca22f238f2caa2c9b9a 100644 (file)
@@ -1300,21 +1300,9 @@ class ScriptTestCase(unittest.TestCase):
             self.assertEqual(mock_server.address_family, socket.AF_INET)
 
 
-def test_main(verbose=None):
-    cwd = os.getcwd()
-    try:
-        support.run_unittest(
-            RequestHandlerLoggingTestCase,
-            BaseHTTPRequestHandlerTestCase,
-            BaseHTTPServerTestCase,
-            SimpleHTTPServerTestCase,
-            CGIHTTPServerTestCase,
-            SimpleHTTPRequestHandlerTestCase,
-            MiscTestCase,
-            ScriptTestCase
-        )
-    finally:
-        os.chdir(cwd)
+def setUpModule():
+    unittest.addModuleCleanup(os.chdir, os.getcwd())
+
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 980855fe1ade18df60a2e19f66badc461b98246d..c0b9b031262eb7bdf876a3c4444c095c4873f4aa 100644 (file)
@@ -23,7 +23,7 @@ class EncodingTest:
 
     PEP 263 specifies how that can change on a per-file basis. Either the first
     or second line can contain the encoding line [encoding first line]
-    encoding second line]. If the file has the BOM marker it is considered UTF-8
+    [encoding second line]. If the file has the BOM marker it is considered UTF-8
     implicitly [BOM]. If any encoding is specified it must be UTF-8, else it is
     an error [BOM and utf-8][BOM conflict].
 
index 21794d911ef6943b06dd99c78cf01edb8fe63983..bb6e083c4aff6f423afb2cf8118e7892fb212dfe 100644 (file)
@@ -4,6 +4,7 @@ init = test_util.import_importlib('importlib')
 
 import sys
 import threading
+import unittest
 import weakref
 
 from test import support
@@ -138,15 +139,10 @@ class LifetimeTests:
  ) = test_util.test_both(LifetimeTests, init=init)
 
 
-@support.reap_threads
-def test_main():
-    support.run_unittest(Frozen_ModuleLockAsRLockTests,
-                         Source_ModuleLockAsRLockTests,
-                         Frozen_DeadlockAvoidanceTests,
-                         Source_DeadlockAvoidanceTests,
-                         Frozen_LifetimeTests,
-                         Source_LifetimeTests)
+def setUpModule():
+    thread_info = support.threading_setup()
+    unittest.addModuleCleanup(support.threading_cleanup, *thread_info)
 
 
 if __name__ == '__main__':
-    test_main()
+    unittets.main()
index d1f8db42fbe37e6034827ebf8913b397cb62d107..221d0da20dcc98c9fc97bc003a863c6aa65d7c2e 100644 (file)
@@ -14,8 +14,9 @@ import shutil
 import threading
 import unittest
 from unittest import mock
+from test import support
 from test.support import (
-    verbose, run_unittest, TESTFN, reap_threads,
+    verbose, TESTFN,
     forget, unlink, rmtree, start_threads, script_helper)
 
 def task(N, done, done_tasks, errors):
@@ -257,19 +258,16 @@ class ThreadedImportTests(unittest.TestCase):
         script_helper.assert_python_ok(fn)
 
 
-@reap_threads
-def test_main():
-    old_switchinterval = None
+def setUpModule():
+    thread_info = support.threading_setup()
+    unittest.addModuleCleanup(support.threading_cleanup, *thread_info)
     try:
         old_switchinterval = sys.getswitchinterval()
+        unittest.addModuleCleanup(sys.setswitchinterval, old_switchinterval)
         sys.setswitchinterval(1e-5)
     except AttributeError:
         pass
-    try:
-        run_unittest(ThreadedImportTests)
-    finally:
-        if old_switchinterval is not None:
-            sys.setswitchinterval(old_switchinterval)
+
 
 if __name__ == "__main__":
-    test_main()
+    unittets.main()
index dc7f5c24271047a0ad4cfa335a15c09bab214cd5..08aed248b96652118e46dccbc5921aa4b32ff4ab 100644 (file)
@@ -24,7 +24,7 @@ try:
 except ImportError:
     ThreadPoolExecutor = None
 
-from test.support import run_unittest, TESTFN, DirsOnSysPath, cpython_only
+from test.support import TESTFN, DirsOnSysPath, cpython_only
 from test.support import MISSING_C_DOCSTRINGS, ALWAYS_EQ
 from test.support.script_helper import assert_python_ok, assert_python_failure
 from test import inspect_fodder as mod
@@ -488,6 +488,15 @@ class TestRetrievingSourceCode(GetSourceBase):
         # Check filename override
         self.assertEqual(inspect.getmodule(None, modfile), mod)
 
+    def test_getmodule_file_not_found(self):
+        # See bpo-45406
+        def _getabsfile(obj, _filename):
+            raise FileNotFoundError('bad file')
+        with unittest.mock.patch('inspect.getabsfile', _getabsfile):
+            f = inspect.currentframe()
+            self.assertIsNone(inspect.getmodule(f))
+            inspect.getouterframes(f)  # smoke test
+
     def test_getframeinfo_get_first_line(self):
         frame_info = inspect.getframeinfo(self.fodderModule.fr, 50)
         self.assertEqual(frame_info.code_context[0], "# line 1\n")
@@ -3200,6 +3209,17 @@ class TestSignatureObject(unittest.TestCase):
             pass
         self.assertEqual(str(inspect.signature(foo)), '()')
 
+        def foo(a: list[str]) -> tuple[str, float]:
+            pass
+        self.assertEqual(str(inspect.signature(foo)),
+                         '(a: list[str]) -> tuple[str, float]')
+
+        from typing import Tuple
+        def foo(a: list[str]) -> Tuple[str, float]:
+            pass
+        self.assertEqual(str(inspect.signature(foo)),
+                         '(a: list[str]) -> Tuple[str, float]')
+
     def test_signature_str_positional_only(self):
         P = inspect.Parameter
         S = inspect.Signature
@@ -4081,18 +4101,5 @@ def foo():
             self.assertInspectEqual(path, module)
 
 
-def test_main():
-    run_unittest(
-        TestDecorators, TestRetrievingSourceCode, TestOneliners, TestBlockComments,
-        TestBuggyCases, TestInterpreterStack, TestClassesAndFunctions, TestPredicates,
-        TestGetcallargsFunctions, TestGetcallargsMethods,
-        TestGetcallargsUnboundMethods, TestGetattrStatic, TestGetGeneratorState,
-        TestNoEOL, TestSignatureObject, TestSignatureBind, TestParameterObject,
-        TestBoundArguments, TestSignaturePrivateHelpers,
-        TestSignatureDefinitions, TestIsDataDescriptor,
-        TestGetClosureVars, TestUnwrap, TestMain, TestReload,
-        TestGetCoroutineState, TestGettingSourceOfToplevelFrames
-    )
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 8622939c4e6195ef6fbe445c8cba92cc2967689e..49463e54e3c7218c70dcbd04e2344e2a8eaa81a3 100644 (file)
@@ -69,6 +69,10 @@ MEMORY_SANITIZER = (
     '--with-memory-sanitizer' in _config_args
 )
 
+ADDRESS_SANITIZER = (
+    '-fsanitize=address' in _cflags
+)
+
 # Does io.IOBase finalizer log the exception if the close() method fails?
 # The exception is ignored silently by default in release build.
 IOBASE_EMITS_UNRAISABLE = (hasattr(sys, "gettotalrefcount") or sys.flags.dev_mode)
@@ -1539,7 +1543,7 @@ class BufferedReaderTest(unittest.TestCase, CommonBufferedTests):
 class CBufferedReaderTest(BufferedReaderTest, SizeofTest):
     tp = io.BufferedReader
 
-    @unittest.skipIf(MEMORY_SANITIZER, "MSan defaults to crashing "
+    @unittest.skipIf(MEMORY_SANITIZER or ADDRESS_SANITIZER, "sanitizer defaults to crashing "
                      "instead of returning NULL for malloc failure.")
     def test_constructor(self):
         BufferedReaderTest.test_constructor(self)
@@ -1888,7 +1892,7 @@ class BufferedWriterTest(unittest.TestCase, CommonBufferedTests):
 class CBufferedWriterTest(BufferedWriterTest, SizeofTest):
     tp = io.BufferedWriter
 
-    @unittest.skipIf(MEMORY_SANITIZER, "MSan defaults to crashing "
+    @unittest.skipIf(MEMORY_SANITIZER or ADDRESS_SANITIZER, "sanitizer defaults to crashing "
                      "instead of returning NULL for malloc failure.")
     def test_constructor(self):
         BufferedWriterTest.test_constructor(self)
@@ -2387,7 +2391,7 @@ class BufferedRandomTest(BufferedReaderTest, BufferedWriterTest):
 class CBufferedRandomTest(BufferedRandomTest, SizeofTest):
     tp = io.BufferedRandom
 
-    @unittest.skipIf(MEMORY_SANITIZER, "MSan defaults to crashing "
+    @unittest.skipIf(MEMORY_SANITIZER or ADDRESS_SANITIZER, "sanitizer defaults to crashing "
                      "instead of returning NULL for malloc failure.")
     def test_constructor(self):
         BufferedRandomTest.test_constructor(self)
index 31b38996930cc4e5d45f5ff5d39ee802fea4594f..70dbe7166fd577a5150be8d200c4d3c03024d452 100644 (file)
@@ -4,6 +4,7 @@
 
 import unittest
 import sys
+from test import support
 
 
 \f
@@ -244,12 +245,14 @@ class TestIsInstanceIsSubclass(unittest.TestCase):
     def test_subclass_recursion_limit(self):
         # make sure that issubclass raises RecursionError before the C stack is
         # blown
-        self.assertRaises(RecursionError, blowstack, issubclass, str, str)
+        with support.infinite_recursion():
+            self.assertRaises(RecursionError, blowstack, issubclass, str, str)
 
     def test_isinstance_recursion_limit(self):
         # make sure that issubclass raises RecursionError before the C stack is
         # blown
-        self.assertRaises(RecursionError, blowstack, isinstance, '', str)
+        with support.infinite_recursion():
+            self.assertRaises(RecursionError, blowstack, isinstance, '', str)
 
     def test_issubclass_refcount_handling(self):
         # bpo-39382: abstract_issubclass() didn't hold item reference while
@@ -276,10 +279,42 @@ class TestIsInstanceIsSubclass(unittest.TestCase):
             @property
             def __bases__(self):
                 return self.__bases__
+        with support.infinite_recursion():
+            self.assertRaises(RecursionError, issubclass, X(), int)
+            self.assertRaises(RecursionError, issubclass, int, X())
+            self.assertRaises(RecursionError, isinstance, 1, X())
+
+    def test_infinite_recursion_via_bases_tuple(self):
+        """Regression test for bpo-30570."""
+        class Failure(object):
+            def __getattr__(self, attr):
+                return (self, None)
+        with support.infinite_recursion():
+            with self.assertRaises(RecursionError):
+                issubclass(Failure(), int)
+
+    def test_infinite_cycle_in_bases(self):
+        """Regression test for bpo-30570."""
+        class X:
+            @property
+            def __bases__(self):
+                return (self, self, self)
+        with support.infinite_recursion():
+            self.assertRaises(RecursionError, issubclass, X(), int)
 
-        self.assertRaises(RecursionError, issubclass, X(), int)
-        self.assertRaises(RecursionError, issubclass, int, X())
-        self.assertRaises(RecursionError, isinstance, 1, X())
+    def test_infinitely_many_bases(self):
+        """Regression test for bpo-30570."""
+        class X:
+            def __getattr__(self, attr):
+                self.assertEqual(attr, "__bases__")
+                class A:
+                    pass
+                class B:
+                    pass
+                A.__getattr__ = B.__getattr__ = X.__getattr__
+                return (A(), B())
+        with support.infinite_recursion():
+            self.assertRaises(RecursionError, issubclass, X(), int)
 
 
 def blowstack(fxn, arg, compare_to):
index 524346939886db5c2711bcebe9c3bd816158a593..d238985f11b32e8adfb157a6d6ccbaddec332ff3 100644 (file)
@@ -2,7 +2,7 @@
 
 import sys
 import unittest
-from test.support import run_unittest, TESTFN, unlink, cpython_only
+from test.support import TESTFN, unlink, cpython_only
 from test.support import check_free_after_iterating, ALWAYS_EQ, NEVER_EQ
 import pickle
 import collections.abc
@@ -1036,9 +1036,5 @@ class TestCase(unittest.TestCase):
         self.assertRaises(ZeroDivisionError, iter, BadIterableClass())
 
 
-def test_main():
-    run_unittest(TestCase)
-
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index fbfee1a582095b7c173edce617b3c2bf4562153c..682014cfd5b344e8524521d4ddd23dff7d8727be 100644 (file)
@@ -59,6 +59,15 @@ class TestEncode(CTest):
         with self.assertRaises(ZeroDivisionError):
             enc('spam', 4)
 
+    def test_bad_markers_argument_to_encoder(self):
+        # https://bugs.python.org/issue45269
+        with self.assertRaisesRegex(
+            TypeError,
+            r'make_encoder\(\) argument 1 must be dict or None, not int',
+        ):
+            self.json.encoder.c_make_encoder(1, None, None, None, ': ', ', ',
+                                             False, False, False)
+
     def test_bad_bool_args(self):
         def test(name):
             self.json.encoder.JSONEncoder(**{name: BadBool()}).encode({'a': 1})
index 49fae81eefab9fce20d8913bf5f32350621c0ad8..e366966117952e38358e8e61cf1b9e26ef1b74cb 100644 (file)
@@ -12,7 +12,7 @@ class TestLLTrace(unittest.TestCase):
         # If this test fails, it will reproduce a crash reported as
         # bpo-34113. The crash happened at the command line console of
         # debug Python builds with __ltrace__ enabled (only possible in console),
-        # when the interal Python stack was negatively adjusted
+        # when the internal Python stack was negatively adjusted
         with open(support.TESTFN, 'w') as fd:
             self.addCleanup(os.unlink, support.TESTFN)
             fd.write(textwrap.dedent("""\
index 375a1e4028631a5fc17c189e538cffd617e616cc..a63cc0d9cc86ecf572c2d773221701de62cf42c7 100644 (file)
@@ -494,7 +494,7 @@ class NormalizeTest(unittest.TestCase):
 class TestMiscellaneous(unittest.TestCase):
     def test_defaults_UTF8(self):
         # Issue #18378: on (at least) macOS setting LC_CTYPE to "UTF-8" is
-        # valid. Futhermore LC_CTYPE=UTF is used by the UTF-8 locale coercing
+        # valid. Furthermore LC_CTYPE=UTF is used by the UTF-8 locale coercing
         # during interpreter startup (on macOS).
         import _locale
         import os
index 8a3ffb5584fb824203796bb92face0735fac3d1e..876c91f64eb7c3d9031fbac1166932b4898df71b 100644 (file)
@@ -5066,6 +5066,13 @@ class RotatingFileHandlerTest(BaseFileTest):
         rh = logging.handlers.RotatingFileHandler(self.fn, maxBytes=0)
         self.assertFalse(rh.shouldRollover(None))
         rh.close()
+        # bpo-45401 - test with special file
+        # We set maxBytes to 1 so that rollover would normally happen, except
+        # for the check for regular files
+        rh = logging.handlers.RotatingFileHandler(
+                os.devnull, encoding="utf-8", maxBytes=1)
+        self.assertFalse(rh.shouldRollover(self.next_rec()))
+        rh.close()
 
     def test_should_rollover(self):
         rh = logging.handlers.RotatingFileHandler(self.fn, maxBytes=1)
@@ -5160,6 +5167,15 @@ class RotatingFileHandlerTest(BaseFileTest):
         rh.close()
 
 class TimedRotatingFileHandlerTest(BaseFileTest):
+    def test_should_not_rollover(self):
+        # See bpo-45401. Should only ever rollover regular files
+        fh = logging.handlers.TimedRotatingFileHandler(
+                os.devnull, 'S', encoding="utf-8", backupCount=1)
+        time.sleep(1.1)    # a little over a second ...
+        r = logging.makeLogRecord({'msg': 'testing - device file'})
+        self.assertFalse(fh.shouldRollover(r))
+        fh.close()
+
     # other test methods added below
     def test_rollover(self):
         fh = logging.handlers.TimedRotatingFileHandler(self.fn, 'S',
@@ -5365,25 +5381,11 @@ class MiscTestCase(unittest.TestCase):
 # Set the locale to the platform-dependent default.  I have no idea
 # why the test does this, but in any case we save the current locale
 # first and restore it at the end.
-@support.run_with_locale('LC_ALL', '')
-def test_main():
-    tests = [
-        BuiltinLevelsTest, BasicFilterTest, CustomLevelsAndFiltersTest,
-        HandlerTest, MemoryHandlerTest, ConfigFileTest, SocketHandlerTest,
-        DatagramHandlerTest, MemoryTest, EncodingTest, WarningsTest,
-        ConfigDictTest, ManagerTest, FormatterTest, BufferingFormatterTest,
-        StreamHandlerTest, LogRecordFactoryTest, ChildLoggerTest,
-        QueueHandlerTest, ShutdownTest, ModuleLevelMiscTest, BasicConfigTest,
-        LoggerAdapterTest, LoggerTest, SMTPHandlerTest, FileHandlerTest,
-        RotatingFileHandlerTest,  LastResortTest, LogRecordTest,
-        ExceptionTest, SysLogHandlerTest, IPv6SysLogHandlerTest, HTTPHandlerTest,
-        NTEventLogHandlerTest, TimedRotatingFileHandlerTest,
-        UnixSocketHandlerTest, UnixDatagramHandlerTest, UnixSysLogHandlerTest,
-        MiscTestCase
-    ]
-    if hasattr(logging.handlers, 'QueueListener'):
-        tests.append(QueueListenerTest)
-    support.run_unittest(*tests)
+def setUpModule():
+    cm = support.run_with_locale('LC_ALL', '')
+    cm.__enter__()
+    unittest.addModuleCleanup(cm.__exit__, None, None, None)
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index ef7dd6325d49f3bf64e589441c48bf6bc84db7f4..ad9484d8ceb3668bf407ee77c76216773b205f97 100644 (file)
@@ -10,7 +10,7 @@ from test import support
 import unittest
 
 from test.support import (
-    _4G, TESTFN, import_module, bigmemtest, run_unittest, unlink
+    _4G, TESTFN, import_module, bigmemtest, unlink
 )
 
 lzma = import_module("lzma")
@@ -1936,14 +1936,5 @@ ISSUE_21872_DAT = (
 )
 
 
-def test_main():
-    run_unittest(
-        CompressorDecompressorTestCase,
-        CompressDecompressFunctionTestCase,
-        FileTestCase,
-        OpenTestCase,
-        MiscellaneousTestCase,
-    )
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 6f891d413cd8f1533ba719cf27d268e0d323b45c..37b45005621e74e7ac96a670602c6b7f6be51936 100644 (file)
@@ -2299,15 +2299,9 @@ class MiscTestCase(unittest.TestCase):
         support.check__all__(self, mailbox, blacklist=blacklist)
 
 
-def test_main():
-    tests = (TestMailboxSuperclass, TestMaildir, TestMbox, TestMMDF, TestMH,
-             TestBabyl, TestMessage, TestMaildirMessage, TestMboxMessage,
-             TestMHMessage, TestBabylMessage, TestMMDFMessage,
-             TestMessageConversion, TestProxyFile, TestPartialFile,
-             MaildirTestCase, TestFakeMailBox, MiscTestCase)
-    support.run_unittest(*tests)
+def tearDownModule():
     support.reap_children()
 
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 4b848a5e7e5f85107c9a42c2415182475407b7e9..3fe0702bcaeb05624b70c5b6789aaeb50cd02cd2 100644 (file)
@@ -1724,16 +1724,22 @@ class MathTests(unittest.TestCase):
         self.assertRaises(TypeError, prod)
         self.assertRaises(TypeError, prod, 42)
         self.assertRaises(TypeError, prod, ['a', 'b', 'c'])
-        self.assertRaises(TypeError, prod, ['a', 'b', 'c'], '')
-        self.assertRaises(TypeError, prod, [b'a', b'c'], b'')
+        self.assertRaises(TypeError, prod, ['a', 'b', 'c'], start='')
+        self.assertRaises(TypeError, prod, [b'a', b'c'], start=b'')
         values = [bytearray(b'a'), bytearray(b'b')]
-        self.assertRaises(TypeError, prod, values, bytearray(b''))
+        self.assertRaises(TypeError, prod, values, start=bytearray(b''))
         self.assertRaises(TypeError, prod, [[1], [2], [3]])
         self.assertRaises(TypeError, prod, [{2:3}])
-        self.assertRaises(TypeError, prod, [{2:3}]*2, {2:3})
-        self.assertRaises(TypeError, prod, [[1], [2], [3]], [])
+        self.assertRaises(TypeError, prod, [{2:3}]*2, start={2:3})
+        self.assertRaises(TypeError, prod, [[1], [2], [3]], start=[])
+
+        # Some odd cases
+        self.assertEqual(prod([2, 3], start='ab'), 'abababababab')
+        self.assertEqual(prod([2, 3], start=[1, 2]), [1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2])
+        self.assertEqual(prod([], start={2: 3}), {2:3})
+
         with self.assertRaises(TypeError):
-            prod([10, 20], [30, 40])     # start is a keyword-only argument
+            prod([10, 20], 1)     # start is a keyword-only argument
 
         self.assertEqual(prod([0, 1, 2, 3]), 0)
         self.assertEqual(prod([1, 0, 2, 3]), 0)
index 683d393fdb4913978a9e1ff92ac9cb5937d6baab..5d0615e99b4e4a32bd866f199da41b70a87b3cac 100644 (file)
@@ -107,20 +107,29 @@ class MimeTypesTestCase(unittest.TestCase):
         eq(self.db.guess_type(r" \"\`;b&b&c |.tar.gz"), gzip_expected)
 
     def test_guess_all_types(self):
-        eq = self.assertEqual
-        unless = self.assertTrue
         # First try strict.  Use a set here for testing the results because if
         # test_urllib2 is run before test_mimetypes, global state is modified
         # such that the 'all' set will have more items in it.
-        all = set(self.db.guess_all_extensions('text/plain', strict=True))
-        unless(all >= set(['.bat', '.c', '.h', '.ksh', '.pl', '.txt']))
+        all = self.db.guess_all_extensions('text/plain', strict=True)
+        self.assertTrue(set(all) >= {'.bat', '.c', '.h', '.ksh', '.pl', '.txt'})
+        self.assertEqual(len(set(all)), len(all))  # no duplicates
         # And now non-strict
         all = self.db.guess_all_extensions('image/jpg', strict=False)
-        all.sort()
-        eq(all, ['.jpg'])
+        self.assertEqual(all, ['.jpg'])
         # And now for no hits
         all = self.db.guess_all_extensions('image/jpg', strict=True)
-        eq(all, [])
+        self.assertEqual(all, [])
+        # And now for type existing in both strict and non-strict mappings.
+        self.db.add_type('test-type', '.strict-ext')
+        self.db.add_type('test-type', '.non-strict-ext', strict=False)
+        all = self.db.guess_all_extensions('test-type', strict=False)
+        self.assertEqual(all, ['.strict-ext', '.non-strict-ext'])
+        all = self.db.guess_all_extensions('test-type')
+        self.assertEqual(all, ['.strict-ext'])
+        # Test that changing the result list does not affect the global state
+        all.append('.no-such-ext')
+        all = self.db.guess_all_extensions('test-type')
+        self.assertNotIn('.no-such-ext', all)
 
     def test_encoding(self):
         getpreferredencoding = locale.getpreferredencoding
index 3cf5d7beb144b3d2e76d659782606b1c8e505503..96013ed5052527601f9a2d616af387e0a9f6b70c 100644 (file)
@@ -380,8 +380,6 @@ class TestHZStateful(TestStateful):
     reset = b'~}'
     expected_reset = expected + reset
 
-def test_main():
-    support.run_unittest(__name__)
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 437fdd2be8d85ac46aa12d328bfb08fabc005a86..b825ca1bdaa299590a724c122aa3fe891272e343 100644 (file)
@@ -1655,8 +1655,5 @@ class MiscTestCase(unittest.TestCase):
         support.check__all__(self, optparse, blacklist=blacklist)
 
 
-def test_main():
-    support.run_unittest(__name__)
-
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 624fbf21ba7d88f7f3a485c5fdd201c0b3567d8e..f1b0d642c7ecaf5313522a8bac1983809465670f 100644 (file)
@@ -187,7 +187,7 @@ class OSSAudioDevTests(unittest.TestCase):
         mixer.close()
         self.assertRaises(ValueError, mixer.fileno)
 
-def test_main():
+def setUpModule():
     try:
         dsp = ossaudiodev.open('w')
     except (ossaudiodev.error, OSError) as msg:
@@ -196,7 +196,6 @@ def test_main():
             raise unittest.SkipTest(msg)
         raise
     dsp.close()
-    support.run_unittest(__name__)
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 0314938e30c1498ccc1aee734c338a94aa4a0eed..183c157afdcd038f1fce679a8ea12980be320a6a 100644 (file)
@@ -323,7 +323,7 @@ class _BasePurePathTest(object):
         self.assertFalse(P('b/py').match('b.py'))
         self.assertFalse(P('/a.py').match('b.py'))
         self.assertFalse(P('b.py/c').match('b.py'))
-        # Wilcard relative pattern.
+        # Wildcard relative pattern.
         self.assertTrue(P('b.py').match('*.py'))
         self.assertTrue(P('a/b.py').match('*.py'))
         self.assertTrue(P('/a/b.py').match('*.py'))
@@ -1250,7 +1250,7 @@ class PureWindowsPathTest(_BasePurePathTest, unittest.TestCase):
         self.assertIs(False, P('/foo/bar').is_reserved())
         # UNC paths are never reserved.
         self.assertIs(False, P('//my/share/nul/con/aux').is_reserved())
-        # Case-insenstive DOS-device names are reserved.
+        # Case-insensitive DOS-device names are reserved.
         self.assertIs(True, P('nul').is_reserved())
         self.assertIs(True, P('aux').is_reserved())
         self.assertIs(True, P('prn').is_reserved())
index 0653a64b0a697a2e6f12154ffad354fabe485aec..cb9cd07b07143385be0bca31231ce4c3b2a0f0d4 100644 (file)
@@ -11,7 +11,7 @@ import subprocess
 import textwrap
 import linecache
 
-from contextlib import ExitStack
+from contextlib import ExitStack, redirect_stdout
 from io import StringIO
 from test import support
 # This little helper class is essential for testing pdb under doctest.
@@ -1625,7 +1625,7 @@ def bÅ“r():
         support.rmtree(module_name)
         init_file = module_name + '/__init__.py'
         os.mkdir(module_name)
-        with open(init_file, 'w') as f:
+        with open(init_file, 'w'):
             pass
         self.addCleanup(support.rmtree, module_name)
         stdout, stderr = self._run_pdb(['-m', module_name], "")
@@ -1638,7 +1638,7 @@ def bÅ“r():
         support.rmtree(pkg_name)
         modpath = pkg_name + '/' + module_name
         os.makedirs(modpath)
-        with open(modpath + '/__init__.py', 'w') as f:
+        with open(modpath + '/__init__.py', 'w'):
             pass
         self.addCleanup(support.rmtree, pkg_name)
         stdout, stderr = self._run_pdb(['-m', modpath.replace('/', '.')], "")
@@ -1851,19 +1851,20 @@ class ChecklineTests(unittest.TestCase):
         self.assertEqual(db.checkline(support.TESTFN, 1), 1)
 
     def test_checkline_is_not_executable(self):
-        with open(support.TESTFN, "w") as f:
-            # Test for comments, docstrings and empty lines
-            s = textwrap.dedent("""
-                # Comment
-                \"\"\" docstring \"\"\"
-                ''' docstring '''
+        # Test for comments, docstrings and empty lines
+        s = textwrap.dedent("""
+            # Comment
+            \"\"\" docstring \"\"\"
+            ''' docstring '''
 
-            """)
+        """)
+        with open(support.TESTFN, "w") as f:
             f.write(s)
-        db = pdb.Pdb()
         num_lines = len(s.splitlines()) + 2  # Test for EOF
-        for lineno in range(num_lines):
-            self.assertFalse(db.checkline(support.TESTFN, lineno))
+        with redirect_stdout(StringIO()):
+            db = pdb.Pdb()
+            for lineno in range(num_lines):
+                self.assertFalse(db.checkline(support.TESTFN, lineno))
 
 
 def load_tests(*args):
index 70672dc19cf4af26bfc4f75ee1b4f6ba6de955a1..60c78b296890c36f6760a5cdb25d4cbdcae8555e 100644 (file)
@@ -9,6 +9,7 @@ import sys
 import warnings
 import weakref
 
+import doctest
 import unittest
 from test import support
 
@@ -30,7 +31,7 @@ except ImportError:
     has_c_implementation = False
 
 
-class PyPickleTests(AbstractPickleModuleTests):
+class PyPickleTests(AbstractPickleModuleTests, unittest.TestCase):
     dump = staticmethod(pickle._dump)
     dumps = staticmethod(pickle._dumps)
     load = staticmethod(pickle._load)
@@ -39,7 +40,7 @@ class PyPickleTests(AbstractPickleModuleTests):
     Unpickler = pickle._Unpickler
 
 
-class PyUnpicklerTests(AbstractUnpickleTests):
+class PyUnpicklerTests(AbstractUnpickleTests, unittest.TestCase):
 
     unpickler = pickle._Unpickler
     bad_stack_errors = (IndexError,)
@@ -53,7 +54,7 @@ class PyUnpicklerTests(AbstractUnpickleTests):
         return u.load()
 
 
-class PyPicklerTests(AbstractPickleTests):
+class PyPicklerTests(AbstractPickleTests, unittest.TestCase):
 
     pickler = pickle._Pickler
     unpickler = pickle._Unpickler
@@ -72,7 +73,7 @@ class PyPicklerTests(AbstractPickleTests):
 
 
 class InMemoryPickleTests(AbstractPickleTests, AbstractUnpickleTests,
-                          BigmemPickleTests):
+                          BigmemPickleTests, unittest.TestCase):
 
     bad_stack_errors = (pickle.UnpicklingError, IndexError)
     truncated_errors = (pickle.UnpicklingError, EOFError,
@@ -109,14 +110,14 @@ class PersistentPicklerUnpicklerMixin(object):
 
 
 class PyPersPicklerTests(AbstractPersistentPicklerTests,
-                         PersistentPicklerUnpicklerMixin):
+                         PersistentPicklerUnpicklerMixin, unittest.TestCase):
 
     pickler = pickle._Pickler
     unpickler = pickle._Unpickler
 
 
 class PyIdPersPicklerTests(AbstractIdentityPersistentPicklerTests,
-                           PersistentPicklerUnpicklerMixin):
+                           PersistentPicklerUnpicklerMixin, unittest.TestCase):
 
     pickler = pickle._Pickler
     unpickler = pickle._Unpickler
@@ -182,13 +183,13 @@ class PyIdPersPicklerTests(AbstractIdentityPersistentPicklerTests,
         check(PersUnpickler)
 
 
-class PyPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests):
+class PyPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests, unittest.TestCase):
 
     pickler_class = pickle._Pickler
     unpickler_class = pickle._Unpickler
 
 
-class PyDispatchTableTests(AbstractDispatchTableTests):
+class PyDispatchTableTests(AbstractDispatchTableTests, unittest.TestCase):
 
     pickler_class = pickle._Pickler
 
@@ -196,7 +197,7 @@ class PyDispatchTableTests(AbstractDispatchTableTests):
         return pickle.dispatch_table.copy()
 
 
-class PyChainDispatchTableTests(AbstractDispatchTableTests):
+class PyChainDispatchTableTests(AbstractDispatchTableTests, unittest.TestCase):
 
     pickler_class = pickle._Pickler
 
@@ -204,7 +205,7 @@ class PyChainDispatchTableTests(AbstractDispatchTableTests):
         return collections.ChainMap({}, pickle.dispatch_table)
 
 
-class PyPicklerHookTests(AbstractHookTests):
+class PyPicklerHookTests(AbstractHookTests, unittest.TestCase):
     class CustomPyPicklerClass(pickle._Pickler,
                                AbstractCustomPicklerClass):
         pass
@@ -212,7 +213,7 @@ class PyPicklerHookTests(AbstractHookTests):
 
 
 if has_c_implementation:
-    class CPickleTests(AbstractPickleModuleTests):
+    class CPickleTests(AbstractPickleModuleTests, unittest.TestCase):
         from _pickle import dump, dumps, load, loads, Pickler, Unpickler
 
     class CUnpicklerTests(PyUnpicklerTests):
@@ -240,7 +241,7 @@ if has_c_implementation:
         pickler = pickle._Pickler
         unpickler = _pickle.Unpickler
 
-    class CPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests):
+    class CPicklerUnpicklerObjectTests(AbstractPicklerUnpicklerObjectTests, unittest.TestCase):
         pickler_class = _pickle.Pickler
         unpickler_class = _pickle.Unpickler
 
@@ -253,17 +254,17 @@ if has_c_implementation:
                 unpickler.memo = {-1: None}
             unpickler.memo = {1: None}
 
-    class CDispatchTableTests(AbstractDispatchTableTests):
+    class CDispatchTableTests(AbstractDispatchTableTests, unittest.TestCase):
         pickler_class = pickle.Pickler
         def get_dispatch_table(self):
             return pickle.dispatch_table.copy()
 
-    class CChainDispatchTableTests(AbstractDispatchTableTests):
+    class CChainDispatchTableTests(AbstractDispatchTableTests, unittest.TestCase):
         pickler_class = pickle.Pickler
         def get_dispatch_table(self):
             return collections.ChainMap({}, pickle.dispatch_table)
 
-    class CPicklerHookTests(AbstractHookTests):
+    class CPicklerHookTests(AbstractHookTests, unittest.TestCase):
         class CustomCPicklerClass(_pickle.Pickler, AbstractCustomPicklerClass):
             pass
         pickler_class = CustomCPicklerClass
@@ -512,22 +513,10 @@ class CompatPickleTests(unittest.TestCase):
                                  ('multiprocessing.context', name))
 
 
-def test_main():
-    tests = [PyPickleTests, PyUnpicklerTests, PyPicklerTests,
-             PyPersPicklerTests, PyIdPersPicklerTests,
-             PyDispatchTableTests, PyChainDispatchTableTests,
-             CompatPickleTests, PyPicklerHookTests]
-    if has_c_implementation:
-        tests.extend([CPickleTests, CUnpicklerTests, CPicklerTests,
-                      CPersPicklerTests, CIdPersPicklerTests,
-                      CDumpPickle_LoadPickle, DumpPickle_CLoadPickle,
-                      PyPicklerUnpicklerObjectTests,
-                      CPicklerUnpicklerObjectTests,
-                      CDispatchTableTests, CChainDispatchTableTests,
-                      CPicklerHookTests,
-                      InMemoryPickleTests, SizeofTests])
-    support.run_unittest(*tests)
-    support.run_doctest(pickle)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite())
+    return tests
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 8cc6ca58cd04b43f793793054d99a2b87db4aafd..376a83d049e899140ae925d3b3954375305bfb4b 100644 (file)
@@ -2,9 +2,10 @@ import pickle
 import pickletools
 from test import support
 from test.pickletester import AbstractPickleTests
+import doctest
 import unittest
 
-class OptimizedPickleTests(AbstractPickleTests):
+class OptimizedPickleTests(AbstractPickleTests, unittest.TestCase):
 
     def dumps(self, arg, proto=None, **kwargs):
         return pickletools.optimize(pickle.dumps(arg, proto, **kwargs))
@@ -93,11 +94,10 @@ class MiscTestCase(unittest.TestCase):
         support.check__all__(self, pickletools, blacklist=blacklist)
 
 
-def test_main():
-    support.run_unittest(OptimizedPickleTests)
-    support.run_unittest(MiscTestCase)
-    support.run_doctest(pickletools)
+def load_tests(loader, tests, pattern):
+    tests.addTest(doctest.DocTestSuite(pickletools))
+    return tests
 
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 1d538b9898b8121eb51c0ec458d24476662509ef..72e1cabab28d7796c53d69919edcb6c68ac58206 100644 (file)
@@ -3,7 +3,7 @@ import os
 import string
 import unittest
 import shutil
-from test.support import TESTFN, run_unittest, unlink, reap_children
+from test.support import TESTFN, unlink, reap_children
 
 if os.name != 'posix':
     raise unittest.SkipTest('pipes module only works on posix')
@@ -194,9 +194,10 @@ class SimplePipeTests(unittest.TestCase):
         self.assertNotEqual(id(t.steps), id(u.steps))
         self.assertEqual(t.debugging, u.debugging)
 
-def test_main():
-    run_unittest(SimplePipeTests)
+
+def tearDownModule():
     reap_children()
 
+
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 54725dc641b1de088f582b9e8a3c4c77379bbd57..e48d33dc916d9725c499de1c5961f324b2d61420 100644 (file)
@@ -1,5 +1,5 @@
 from pathlib import Path
-from test.support import run_unittest, unload, check_warnings, CleanImport
+from test.support import unload, check_warnings, CleanImport
 import unittest
 import sys
 import importlib
@@ -623,9 +623,7 @@ class ImportlibMigrationTests(unittest.TestCase):
             self.assertEqual(len(w.warnings), 0)
 
 
-def test_main():
-    run_unittest(PkgutilTests, PkgutilPEP302Tests, ExtendPathTests,
-                 NestedNamespacePackageTest, ImportlibMigrationTests)
+def tearDownModule():
     # this is necessary if test is run repeated (like when finding leaks)
     import zipimport
     import importlib
@@ -634,4 +632,4 @@ def test_main():
 
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index ef966bf0f5608087f3f545c3f083e57f359cb4a7..294131da795a7bbfef5b3e39783429d4d3267cc2 100644 (file)
@@ -7,7 +7,7 @@ import select
 import threading
 import time
 import unittest
-from test.support import TESTFN, run_unittest, reap_threads, cpython_only
+from test.support import TESTFN, reap_threads, cpython_only
 
 try:
     select.poll
@@ -226,8 +226,5 @@ class PollTests(unittest.TestCase):
             os.close(w)
 
 
-def test_main():
-    run_unittest(PollTests)
-
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index b670afcf4e62eeb626164ef45925cb6d14d268e2..5228fc46f4b6ef7d02f7eda6540d0e33a6b2a140 100644 (file)
@@ -11,6 +11,7 @@ import os
 import errno
 import threading
 
+import unittest
 from unittest import TestCase, skipUnless
 from test import support as test_support
 from test.support import hashlib_helper
@@ -533,15 +534,10 @@ class TestTimeouts(TestCase):
             poplib.POP3(HOST, self.port, timeout=0)
 
 
-def test_main():
-    tests = [TestPOP3Class, TestTimeouts,
-             TestPOP3_SSLClass, TestPOP3_TLSClass]
+def setUpModule():
     thread_info = test_support.threading_setup()
-    try:
-        test_support.run_unittest(*tests)
-    finally:
-        test_support.threading_cleanup(*thread_info)
+    unittest.addModuleCleanup(test_support.threading_cleanup, *thread_info)
 
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index f4edb8bd9575f4d7c96cef9f1ebb9a8664a05793..890b7e04da36499b6127d6ecb1d403cca58d5705 100644 (file)
@@ -2132,17 +2132,9 @@ class TestPosixWeaklinking(unittest.TestCase):
                 os.utime("path", dir_fd=0)
 
 
-def test_main():
-    try:
-        support.run_unittest(
-            PosixTester,
-            PosixGroupsTester,
-            TestPosixSpawn,
-            TestPosixSpawnP,
-            TestPosixWeaklinking
-        )
-    finally:
-        support.reap_children()
+def tearDownModule():
+    support.reap_children()
+
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 233649899ec20c0cf1a25fc4d4b1c9eff6d9f86e..3bb367b057873447efe73cb8f62ae85989e40b70 100644 (file)
@@ -6,7 +6,7 @@ import unittest
 import os
 from difflib import unified_diff
 from io import StringIO
-from test.support import TESTFN, run_unittest, unlink, temp_dir, change_cwd
+from test.support import TESTFN, unlink, temp_dir, change_cwd
 from contextlib import contextmanager
 
 import profile
@@ -155,12 +155,10 @@ def silent():
     finally:
         sys.stdout = stdout
 
-def test_main():
-    run_unittest(ProfileTest)
 
 def main():
     if '-r' not in sys.argv:
-        test_main()
+        unittest.main()
     else:
         regenerate_expected_output(__file__, ProfileTest)
 
index 0bbdc42c635be4f009f89d55c0cc40e04efa6643..9b0e94de49d60cd0b18188f5b95cd372c9e9a897 100644 (file)
@@ -1569,20 +1569,11 @@ class TestInternalUtilities(unittest.TestCase):
                 self.assertIsNone(self._get_revised_path(trailing_argv0dir))
 
 
-@reap_threads
-def test_main():
-    try:
-        test.support.run_unittest(PydocDocTest,
-                                  PydocImportTest,
-                                  TestDescriptions,
-                                  PydocServerTest,
-                                  PydocUrlHandlerTest,
-                                  TestHelper,
-                                  PydocWithMetaClasses,
-                                  TestInternalUtilities,
-                                  )
-    finally:
-        reap_children()
+def setUpModule():
+    thread_info = test.support.threading_setup()
+    unittest.addModuleCleanup(test.support.threading_cleanup, *thread_info)
+    unittest.addModuleCleanup(reap_children)
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 16b0fc060aaed745b1908eb22573d147ede4fec5..d238f2a956171ed5f946820d8cc199481eb82b12 100644 (file)
@@ -375,8 +375,14 @@ class RangeTest(unittest.TestCase):
 
     def test_iterator_pickling(self):
         testcases = [(13,), (0, 11), (-22, 10), (20, 3, -1), (13, 21, 3),
-                     (-2, 2, 2), (2**31-3, 2**31-1), (2**33, 2**33+2),
-                     (2**63-3, 2**63-1), (2**65, 2**65+2)]
+                     (-2, 2, 2)]
+        for M in 2**31, 2**63:
+            testcases += [
+                (M-3, M-1), (4*M, 4*M+2),
+                (M-2, M-1, 2), (-M+1, -M, -2),
+                (1, 2, M-1), (-1, -2, -M),
+                (1, M-1, M-1), (-1, -M, -M),
+            ]
         for proto in range(pickle.HIGHEST_PROTOCOL + 1):
             for t in testcases:
                 with self.subTest(proto=proto, t=t):
index 7898abb7a61d51168738be15c3b41b3743dfcf4d..6bde9e3c59806123132791c3370129b9c69245d5 100644 (file)
@@ -236,7 +236,9 @@ print("history", ascii(readline.get_history_item(1)))
             self.assertIn(b"matches ['t\\xebnt', 't\\xebxt']\r\n", output)
         expected = br"'[\xefnserted]|t\xebxt[after]'"
         self.assertIn(b"result " + expected + b"\r\n", output)
-        self.assertIn(b"history " + expected + b"\r\n", output)
+        # bpo-45195: Sometimes, the newline character is not written at the
+        # end, so don't expect it in the output.
+        self.assertIn(b"history " + expected, output)
 
     # We have 2 reasons to skip this test:
     # - readline: history size was added in 6.0
index e5ece5284cf15ba9f75e5e531a09f8c6088aa8d4..089dbf9b4015e498d23ee89acbc1321d3da29727 100644 (file)
@@ -172,8 +172,5 @@ class ResourceTest(unittest.TestCase):
                          limits)
 
 
-def test_main(verbose=None):
-    support.run_unittest(ResourceTest)
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index ce3a422b502a06dd9df1a872b6c12a7601ac9b90..3e7fedaa6da702316d32233d9e41625246aee228 100644 (file)
@@ -22,7 +22,7 @@ import shutil
 from urllib.error import URLError
 import urllib.request
 from test import support
-from test.support import findfile, run_unittest, FakePath, TESTFN
+from test.support import findfile, FakePath, TESTFN
 
 TEST_XMLFILE = findfile("test.xml", subdir="xmltestdata")
 TEST_XMLFILE_OUT = findfile("test.xml.out", subdir="xmltestdata")
@@ -1353,19 +1353,5 @@ class XmlReaderTest(XmlTestBase):
         self.assertEqual(attrs.getQNameByName((ns_uri, "attr")), "ns:attr")
 
 
-def test_main():
-    run_unittest(MakeParserTest,
-                 ParseTest,
-                 SaxutilsTest,
-                 PrepareInputSourceTest,
-                 StringXmlgenTest,
-                 BytesXmlgenTest,
-                 WriterXmlgenTest,
-                 StreamWriterXmlgenTest,
-                 StreamReaderWriterXmlgenTest,
-                 ExpatReaderTest,
-                 ErrorReportingTest,
-                 XmlReaderTest)
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 2274c39a79a5327106032ef5ad381fb86bf02a7d..3a3f87760a975bc70c13d58279772d405847aac0 100644 (file)
@@ -48,7 +48,7 @@ def find_ready_matching(ready, flag):
     return match
 
 
-class BaseSelectorTestCase(unittest.TestCase):
+class BaseSelectorTestCase:
 
     def make_socketpair(self):
         rd, wr = socketpair()
@@ -492,26 +492,28 @@ class ScalableSelectorMixIn:
         self.assertEqual(NUM_FDS // 2, len(fds))
 
 
-class DefaultSelectorTestCase(BaseSelectorTestCase):
+class DefaultSelectorTestCase(BaseSelectorTestCase, unittest.TestCase):
 
     SELECTOR = selectors.DefaultSelector
 
 
-class SelectSelectorTestCase(BaseSelectorTestCase):
+class SelectSelectorTestCase(BaseSelectorTestCase, unittest.TestCase):
 
     SELECTOR = selectors.SelectSelector
 
 
 @unittest.skipUnless(hasattr(selectors, 'PollSelector'),
                      "Test needs selectors.PollSelector")
-class PollSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn):
+class PollSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn,
+                           unittest.TestCase):
 
     SELECTOR = getattr(selectors, 'PollSelector', None)
 
 
 @unittest.skipUnless(hasattr(selectors, 'EpollSelector'),
                      "Test needs selectors.EpollSelector")
-class EpollSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn):
+class EpollSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn,
+                            unittest.TestCase):
 
     SELECTOR = getattr(selectors, 'EpollSelector', None)
 
@@ -528,7 +530,8 @@ class EpollSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn):
 
 @unittest.skipUnless(hasattr(selectors, 'KqueueSelector'),
                      "Test needs selectors.KqueueSelector)")
-class KqueueSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn):
+class KqueueSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn,
+                             unittest.TestCase):
 
     SELECTOR = getattr(selectors, 'KqueueSelector', None)
 
@@ -560,19 +563,15 @@ class KqueueSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn):
 
 @unittest.skipUnless(hasattr(selectors, 'DevpollSelector'),
                      "Test needs selectors.DevpollSelector")
-class DevpollSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn):
+class DevpollSelectorTestCase(BaseSelectorTestCase, ScalableSelectorMixIn,
+                              unittest.TestCase):
 
     SELECTOR = getattr(selectors, 'DevpollSelector', None)
 
 
-
-def test_main():
-    tests = [DefaultSelectorTestCase, SelectSelectorTestCase,
-             PollSelectorTestCase, EpollSelectorTestCase,
-             KqueueSelectorTestCase, DevpollSelectorTestCase]
-    support.run_unittest(*tests)
+def tearDownModule():
     support.reap_children()
 
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 9ffe2cbeae4d864bf96e96ffe5f959cd96da9ea9..61dae75cb325ed10be1011e17dda8fce99bdc7b1 100644 (file)
@@ -1,6 +1,9 @@
 import unittest
+import dbm
+import os
 import shelve
 import glob
+import pickle
 from test import support
 from collections.abc import MutableMapping
 from test.test_dbm import dbm_iterator
@@ -40,12 +43,8 @@ class byteskeydict(MutableMapping):
 
 
 class TestCase(unittest.TestCase):
-
-    fn = "shelftemp.db"
-
-    def tearDown(self):
-        for f in glob.glob(self.fn+"*"):
-            support.unlink(f)
+    dirname = support.TESTFN
+    fn = os.path.join(support.TESTFN, "shelftemp.db")
 
     def test_close(self):
         d1 = {}
@@ -62,29 +61,24 @@ class TestCase(unittest.TestCase):
         else:
             self.fail('Closed shelf should not find a key')
 
-    def test_ascii_file_shelf(self):
-        s = shelve.open(self.fn, protocol=0)
+    def test_open_template(self, protocol=None):
+        os.mkdir(self.dirname)
+        self.addCleanup(support.rmtree, self.dirname)
+        s = shelve.open(self.fn, protocol=protocol)
         try:
             s['key1'] = (1,2,3,4)
             self.assertEqual(s['key1'], (1,2,3,4))
         finally:
             s.close()
 
+    def test_ascii_file_shelf(self):
+        self.test_open_template(protocol=0)
+
     def test_binary_file_shelf(self):
-        s = shelve.open(self.fn, protocol=1)
-        try:
-            s['key1'] = (1,2,3,4)
-            self.assertEqual(s['key1'], (1,2,3,4))
-        finally:
-            s.close()
+        self.test_open_template(protocol=1)
 
     def test_proto2_file_shelf(self):
-        s = shelve.open(self.fn, protocol=2)
-        try:
-            s['key1'] = (1,2,3,4)
-            self.assertEqual(s['key1'], (1,2,3,4))
-        finally:
-            s.close()
+        self.test_open_template(protocol=2)
 
     def test_in_memory_shelf(self):
         d1 = byteskeydict()
@@ -161,63 +155,52 @@ class TestCase(unittest.TestCase):
         with shelve.Shelf({}) as s:
             self.assertEqual(s._protocol, 3)
 
-from test import mapping_tests
 
-class TestShelveBase(mapping_tests.BasicTestMappingProtocol):
-    fn = "shelftemp.db"
-    counter = 0
-    def __init__(self, *args, **kw):
-        self._db = []
-        mapping_tests.BasicTestMappingProtocol.__init__(self, *args, **kw)
+class TestShelveBase:
     type2test = shelve.Shelf
+
     def _reference(self):
         return {"key1":"value1", "key2":2, "key3":(1,2,3)}
+
+
+class TestShelveInMemBase(TestShelveBase):
     def _empty_mapping(self):
-        if self._in_mem:
-            x= shelve.Shelf(byteskeydict(), **self._args)
-        else:
-            self.counter+=1
-            x= shelve.open(self.fn+str(self.counter), **self._args)
-        self._db.append(x)
+        return shelve.Shelf(byteskeydict(), **self._args)
+
+
+class TestShelveFileBase(TestShelveBase):
+    counter = 0
+
+    def _empty_mapping(self):
+        self.counter += 1
+        x = shelve.open(self.base_path + str(self.counter), **self._args)
+        self.addCleanup(x.close)
         return x
-    def tearDown(self):
-        for db in self._db:
-            db.close()
-        self._db = []
-        if not self._in_mem:
-            for f in glob.glob(self.fn+"*"):
-                support.unlink(f)
-
-class TestAsciiFileShelve(TestShelveBase):
-    _args={'protocol':0}
-    _in_mem = False
-class TestBinaryFileShelve(TestShelveBase):
-    _args={'protocol':1}
-    _in_mem = False
-class TestProto2FileShelve(TestShelveBase):
-    _args={'protocol':2}
-    _in_mem = False
-class TestAsciiMemShelve(TestShelveBase):
-    _args={'protocol':0}
-    _in_mem = True
-class TestBinaryMemShelve(TestShelveBase):
-    _args={'protocol':1}
-    _in_mem = True
-class TestProto2MemShelve(TestShelveBase):
-    _args={'protocol':2}
-    _in_mem = True
-
-def test_main():
-    for module in dbm_iterator():
-        support.run_unittest(
-            TestAsciiFileShelve,
-            TestBinaryFileShelve,
-            TestProto2FileShelve,
-            TestAsciiMemShelve,
-            TestBinaryMemShelve,
-            TestProto2MemShelve,
-            TestCase
-        )
+
+    def setUp(self):
+        dirname = support.TESTFN
+        os.mkdir(dirname)
+        self.addCleanup(support.rmtree, dirname)
+        self.base_path = os.path.join(dirname, "shelftemp.db")
+        self.addCleanup(setattr, dbm, '_defaultmod', dbm._defaultmod)
+        dbm._defaultmod = self.dbm_mod
+
+
+from test import mapping_tests
+
+for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+    bases = (TestShelveInMemBase, mapping_tests.BasicTestMappingProtocol)
+    name = f'TestProto{proto}MemShelve'
+    globals()[name] = type(name, bases,
+                           {'_args': {'protocol': proto}})
+    bases = (TestShelveFileBase, mapping_tests.BasicTestMappingProtocol)
+    for dbm_mod in dbm_iterator():
+        assert dbm_mod.__name__.startswith('dbm.')
+        suffix = dbm_mod.__name__[4:]
+        name = f'TestProto{proto}File_{suffix}Shelve'
+        globals()[name] = type(name, bases,
+                               {'dbm_mod': dbm_mod, '_args': {'protocol': proto}})
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 768d4b46794652a4da127712513589f6f0c3df69..85cac94dfec78daf08de7f6b02e3913999fb86c5 100644 (file)
@@ -1147,6 +1147,28 @@ class TestCopy(BaseTest, unittest.TestCase):
             rv = fn(src, os.path.join(dst_dir, 'bar'))
             self.assertEqual(rv, os.path.join(dst_dir, 'bar'))
 
+    def test_copy_dir(self):
+        self._test_copy_dir(shutil.copy)
+
+    def test_copy2_dir(self):
+        self._test_copy_dir(shutil.copy2)
+
+    def _test_copy_dir(self, copy_func):
+        src_dir = self.mkdtemp()
+        src_file = os.path.join(src_dir, 'foo')
+        dir2 = self.mkdtemp()
+        dst = os.path.join(src_dir, 'does_not_exist/')
+        write_file(src_file, 'foo')
+        if sys.platform == "win32":
+            err = PermissionError
+        else:
+            err = IsADirectoryError
+        self.assertRaises(err, copy_func, dir2, src_dir)
+
+        # raise *err* because of src rather than FileNotFoundError because of dst
+        self.assertRaises(err, copy_func, dir2, dst)
+        copy_func(src_file, dir2)     # should not raise exceptions
+
     ### shutil.copyfile
 
     @support.skip_unless_symlink
@@ -1253,6 +1275,24 @@ class TestCopy(BaseTest, unittest.TestCase):
         write_file(src_file, 'foo')
         self.assertRaises(FileNotFoundError, shutil.copyfile, src_file, dst)
 
+    def test_copyfile_copy_dir(self):
+        # Issue 45234
+        # test copy() and copyfile() raising proper exceptions when src and/or
+        # dst are directories
+        src_dir = self.mkdtemp()
+        src_file = os.path.join(src_dir, 'foo')
+        dir2 = self.mkdtemp()
+        dst = os.path.join(src_dir, 'does_not_exist/')
+        write_file(src_file, 'foo')
+        if sys.platform == "win32":
+            err = PermissionError
+        else:
+            err = IsADirectoryError
+
+        self.assertRaises(err, shutil.copyfile, src_dir, dst)
+        self.assertRaises(err, shutil.copyfile, src_file, src_dir)
+        self.assertRaises(err, shutil.copyfile, dir2, src_dir)
+
 
 class TestArchives(BaseTest, unittest.TestCase):
 
index e0f80ca59cbffe0b07c7ecddfe4950e5668ad4da..5712b46f7f111a3512eb048dc7f4a2cc00fbc221 100755 (executable)
@@ -197,7 +197,7 @@ class SocketUDPLITETest(SocketUDPTest):
         self.serv = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDPLITE)
         self.port = socket_helper.bind_port(self.serv)
 
-class ThreadSafeCleanupTestCase(unittest.TestCase):
+class ThreadSafeCleanupTestCase:
     """Subclass of unittest.TestCase with thread-safe cleanup methods.
 
     This subclass protects the addCleanup() and doCleanups() methods
@@ -324,9 +324,7 @@ class ThreadableTest:
     def __init__(self):
         # Swap the true setup function
         self.__setUp = self.setUp
-        self.__tearDown = self.tearDown
         self.setUp = self._setUp
-        self.tearDown = self._tearDown
 
     def serverExplicitReady(self):
         """This method allows the server to explicitly indicate that
@@ -338,6 +336,7 @@ class ThreadableTest:
     def _setUp(self):
         self.wait_threads = support.wait_threads_exit()
         self.wait_threads.__enter__()
+        self.addCleanup(self.wait_threads.__exit__, None, None, None)
 
         self.server_ready = threading.Event()
         self.client_ready = threading.Event()
@@ -345,6 +344,11 @@ class ThreadableTest:
         self.queue = queue.Queue(1)
         self.server_crashed = False
 
+        def raise_queued_exception():
+            if self.queue.qsize():
+                raise self.queue.get()
+        self.addCleanup(raise_queued_exception)
+
         # Do some munging to start the client test.
         methodname = self.id()
         i = methodname.rfind('.')
@@ -361,15 +365,7 @@ class ThreadableTest:
         finally:
             self.server_ready.set()
         self.client_ready.wait()
-
-    def _tearDown(self):
-        self.__tearDown()
-        self.done.wait()
-        self.wait_threads.__exit__(None, None, None)
-
-        if self.queue.qsize():
-            exc = self.queue.get()
-            raise exc
+        self.addCleanup(self.done.wait)
 
     def clientRun(self, test_func):
         self.server_ready.wait()
@@ -4415,7 +4411,7 @@ class RecvmsgIntoSCMRightsStreamTest(RecvmsgIntoMixin, SCMRightsTest,
 # threads alive during the test so that the OS cannot deliver the
 # signal to the wrong one.
 
-class InterruptedTimeoutBase(unittest.TestCase):
+class InterruptedTimeoutBase:
     # Base class for interrupted send/receive tests.  Installs an
     # empty handler for SIGALRM and removes it on teardown, along with
     # any scheduled alarms.
@@ -6172,6 +6168,7 @@ class SendfileUsingSendTest(ThreadedTCPSocketTest):
     def testWithTimeoutTriggeredSend(self):
         conn = self.accept_conn()
         conn.recv(88192)
+        time.sleep(1)
 
     # errors
 
@@ -6485,13 +6482,6 @@ class CreateServerTest(unittest.TestCase):
 class CreateServerFunctionalTest(unittest.TestCase):
     timeout = support.LOOPBACK_TIMEOUT
 
-    def setUp(self):
-        self.thread = None
-
-    def tearDown(self):
-        if self.thread is not None:
-            self.thread.join(self.timeout)
-
     def echo_server(self, sock):
         def run(sock):
             with sock:
@@ -6505,8 +6495,9 @@ class CreateServerFunctionalTest(unittest.TestCase):
 
         event = threading.Event()
         sock.settimeout(self.timeout)
-        self.thread = threading.Thread(target=run, args=(sock, ))
-        self.thread.start()
+        thread = threading.Thread(target=run, args=(sock, ))
+        thread.start()
+        self.addCleanup(thread.join, self.timeout)
         event.set()
 
     def echo_client(self, addr, family):
@@ -6594,83 +6585,10 @@ class SendRecvFdsTests(unittest.TestCase):
             self.assertEqual(data,  str(index).encode())
 
 
-def test_main():
-    tests = [GeneralModuleTests, BasicTCPTest, TCPCloserTest, TCPTimeoutTest,
-             TestExceptions, BufferIOTest, BasicTCPTest2, BasicUDPTest,
-             UDPTimeoutTest, CreateServerTest, CreateServerFunctionalTest,
-             SendRecvFdsTests]
-
-    tests.extend([
-        NonBlockingTCPTests,
-        FileObjectClassTestCase,
-        UnbufferedFileObjectClassTestCase,
-        LineBufferedFileObjectClassTestCase,
-        SmallBufferedFileObjectClassTestCase,
-        UnicodeReadFileObjectClassTestCase,
-        UnicodeWriteFileObjectClassTestCase,
-        UnicodeReadWriteFileObjectClassTestCase,
-        NetworkConnectionNoServer,
-        NetworkConnectionAttributesTest,
-        NetworkConnectionBehaviourTest,
-        ContextManagersTest,
-        InheritanceTest,
-        NonblockConstantTest
-    ])
-    tests.append(BasicSocketPairTest)
-    tests.append(TestUnixDomain)
-    tests.append(TestLinuxAbstractNamespace)
-    tests.extend([TIPCTest, TIPCThreadableTest])
-    tests.extend([BasicCANTest, CANTest])
-    tests.extend([BasicRDSTest, RDSTest])
-    tests.append(LinuxKernelCryptoAPI)
-    tests.append(BasicQIPCRTRTest)
-    tests.extend([
-        BasicVSOCKTest,
-        ThreadedVSOCKSocketStreamTest,
-    ])
-    tests.append(BasicBluetoothTest)
-    tests.extend([
-        CmsgMacroTests,
-        SendmsgUDPTest,
-        RecvmsgUDPTest,
-        RecvmsgIntoUDPTest,
-        SendmsgUDP6Test,
-        RecvmsgUDP6Test,
-        RecvmsgRFC3542AncillaryUDP6Test,
-        RecvmsgIntoRFC3542AncillaryUDP6Test,
-        RecvmsgIntoUDP6Test,
-        SendmsgUDPLITETest,
-        RecvmsgUDPLITETest,
-        RecvmsgIntoUDPLITETest,
-        SendmsgUDPLITE6Test,
-        RecvmsgUDPLITE6Test,
-        RecvmsgRFC3542AncillaryUDPLITE6Test,
-        RecvmsgIntoRFC3542AncillaryUDPLITE6Test,
-        RecvmsgIntoUDPLITE6Test,
-        SendmsgTCPTest,
-        RecvmsgTCPTest,
-        RecvmsgIntoTCPTest,
-        SendmsgSCTPStreamTest,
-        RecvmsgSCTPStreamTest,
-        RecvmsgIntoSCTPStreamTest,
-        SendmsgUnixStreamTest,
-        RecvmsgUnixStreamTest,
-        RecvmsgIntoUnixStreamTest,
-        RecvmsgSCMRightsStreamTest,
-        RecvmsgIntoSCMRightsStreamTest,
-        # These are slow when setitimer() is not available
-        InterruptedRecvTimeoutTest,
-        InterruptedSendTimeoutTest,
-        TestSocketSharing,
-        SendfileUsingSendTest,
-        SendfileUsingSendfileTest,
-    ])
-    tests.append(TestMSWindowsTCPFlags)
-
+def setUpModule():
     thread_info = support.threading_setup()
-    support.run_unittest(*tests)
-    support.threading_cleanup(*thread_info)
+    unittest.addModuleCleanup(support.threading_cleanup, *thread_info)
 
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index f928bcea2d1a54c167e40b625d25610e35c02850..42ebcc04dc2b8369b52b47760cda67d701798ba9 100644 (file)
@@ -2281,6 +2281,7 @@ class SimpleBackgroundTests(unittest.TestCase):
         self.ssl_io_loop(sock, incoming, outgoing, sslobj.unwrap)
 
 
+@support.requires_resource('network')
 class NetworkedTests(unittest.TestCase):
 
     def test_timeout_connect_ex(self):
@@ -4812,7 +4813,7 @@ class TestSSLDebug(unittest.TestCase):
                 s.connect((HOST, server.port))
 
 
-def test_main(verbose=False):
+def setUpModule():
     if support.verbose:
         plats = {
             'Mac': platform.mac_ver,
@@ -4843,20 +4844,9 @@ def test_main(verbose=False):
         if not os.path.exists(filename):
             raise support.TestFailed("Can't read certificate file %r" % filename)
 
-    tests = [
-        ContextTests, BasicSocketTests, SSLErrorTests, MemoryBIOTests,
-        SSLObjectTests, SimpleBackgroundTests, ThreadedTests,
-        TestPostHandshakeAuth, TestSSLDebug
-    ]
-
-    if support.is_resource_enabled('network'):
-        tests.append(NetworkedTests)
-
     thread_info = support.threading_setup()
-    try:
-        support.run_unittest(*tests)
-    finally:
-        support.threading_cleanup(*thread_info)
+    unittest.addModuleCleanup(support.threading_cleanup, *thread_info)
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index ec305e54ff24f0c88d0f405855f27370406e28c7..be43c49e40aa50f2f22813da64b86a677bb8e6e8 100644 (file)
@@ -114,7 +114,7 @@ class StrftimeTest(unittest.TestCase):
         )
 
         for e in expectations:
-            # musn't raise a value error
+            # mustn't raise a value error
             try:
                 result = time.strftime(e[0], now)
             except ValueError as error:
index 60a7741194f2fc13d9ca1e945e86612d1d797af8..159346dca6194f22b0d9f6c9114cb051287da40a 100644 (file)
@@ -716,9 +716,5 @@ def _warn_about_deprecation():
     )
 
 
-def test_main():
-    tests = [TestSupport]
-    support.run_unittest(*tests)
-
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index ed9b1770ab55f4271efc53cb1afea2c503c797b5..450e3920efa7ce31122bd78ac030820081b5e511 100644 (file)
@@ -409,7 +409,7 @@ class SysModuleTest(unittest.TestCase):
         self.assertTrue(frame is sys._getframe())
 
         # Verify that the captured thread frame is blocked in g456, called
-        # from f123.  This is a litte tricky, since various bits of
+        # from f123.  This is a little tricky, since various bits of
         # threading.py are also in the thread's call stack.
         frame = d.pop(thread_id)
         stack = traceback.extract_stack(frame)
@@ -1005,6 +1005,20 @@ class UnraisableHookTest(unittest.TestCase):
                     self.assertIn("del is broken", report)
                 self.assertTrue(report.endswith("\n"))
 
+    def test_original_unraisablehook_exception_qualname(self):
+        class A:
+            class B:
+                class X(Exception):
+                    pass
+
+        with test.support.captured_stderr() as stderr, \
+             test.support.swap_attr(sys, 'unraisablehook',
+                                    sys.__unraisablehook__):
+                 expected = self.write_unraisable_exc(
+                     A.B.X(), "msg", "obj");
+        report = stderr.getvalue()
+        testName = 'test_original_unraisablehook_exception_qualname'
+        self.assertIn(f"{testName}.<locals>.A.B.X", report)
 
     def test_original_unraisablehook_wrong_type(self):
         exc = ValueError(42)
index 6279309ed3bf1f6bff10140599fb842d5bacccd8..06fb97212d8567b71c41fafc5864fc25e6e68fc8 100644 (file)
@@ -18,6 +18,10 @@ try:
     import gzip
 except ImportError:
     gzip = None
+try:
+    import zlib
+except ImportError:
+    zlib = None
 try:
     import bz2
 except ImportError:
@@ -686,6 +690,16 @@ class MiscReadTestBase(CommonReadTest):
                 self.assertEqual(m1.offset, m2.offset)
                 self.assertEqual(m1.get_info(), m2.get_info())
 
+    @unittest.skipIf(zlib is None, "requires zlib")
+    def test_zlib_error_does_not_leak(self):
+        # bpo-39039: tarfile.open allowed zlib exceptions to bubble up when
+        # parsing certain types of invalid data
+        with unittest.mock.patch("tarfile.TarInfo.fromtarfile") as mock:
+            mock.side_effect = zlib.error
+            with self.assertRaises(tarfile.ReadError):
+                tarfile.open(self.tarname)
+
+
 class MiscReadTest(MiscReadTestBase, unittest.TestCase):
     test_fail_comp = None
 
index fa974d181136e73991d82e6b2c5a813847e93539..cd142ab6b0335311dce63b49d15e2782bedd29e5 100644 (file)
@@ -799,8 +799,5 @@ def setUpModule():
         print('patchlevel =', tcl.call('info', 'patchlevel'))
 
 
-def test_main():
-    support.run_unittest(TclTest, TkinterTest, BigmemTclTest)
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 7dbbf9b7e51e25156a4798726217372cbe6ec17f..8ad1bb98e8e89996dde23cdf85a6db4624f6fa25 100644 (file)
@@ -60,6 +60,25 @@ class TestLowLevelInternals(unittest.TestCase):
     def test_infer_return_type_pathlib(self):
         self.assertIs(str, tempfile._infer_return_type(pathlib.Path('/')))
 
+    def test_infer_return_type_pathlike(self):
+        class Path:
+            def __init__(self, path):
+                self.path = path
+
+            def __fspath__(self):
+                return self.path
+
+        self.assertIs(str, tempfile._infer_return_type(Path('/')))
+        self.assertIs(bytes, tempfile._infer_return_type(Path(b'/')))
+        self.assertIs(str, tempfile._infer_return_type('', Path('')))
+        self.assertIs(bytes, tempfile._infer_return_type(b'', Path(b'')))
+        self.assertIs(bytes, tempfile._infer_return_type(None, Path(b'')))
+        self.assertIs(str, tempfile._infer_return_type(None, Path('')))
+
+        with self.assertRaises(TypeError):
+            tempfile._infer_return_type('', Path(b''))
+        with self.assertRaises(TypeError):
+            tempfile._infer_return_type(b'', Path(''))
 
 # Common functionality.
 
index a57085b75d58adf7be0927836b736d26ef574b6b..af480b9014ed99d228adf5cf820e9ea64da98acf 100644 (file)
@@ -814,6 +814,39 @@ class ThreadTests(BaseTestCase):
             threading.Thread(target=noop).start()
             # Thread.join() is not called
 
+    def test_import_from_another_thread(self):
+        # bpo-1596321: If the threading module is first import from a thread
+        # different than the main thread, threading._shutdown() must handle
+        # this case without logging an error at Python exit.
+        code = textwrap.dedent('''
+            import _thread
+            import sys
+
+            event = _thread.allocate_lock()
+            event.acquire()
+
+            def import_threading():
+                import threading
+                event.release()
+
+            if 'threading' in sys.modules:
+                raise Exception('threading is already imported')
+
+            _thread.start_new_thread(import_threading, ())
+
+            # wait until the threading module is imported
+            event.acquire()
+            event.release()
+
+            if 'threading' not in sys.modules:
+                raise Exception('threading is not imported')
+
+            # don't wait until the thread completes
+        ''')
+        rc, out, err = assert_python_ok("-c", code)
+        self.assertEqual(out, b'')
+        self.assertEqual(err, b'')
+
 
 class ThreadJoinOnShutdown(BaseTestCase):
 
index eeacd3698cb138c480ab935bbda74896ff6e4215..b000adc32232a09b786b42c31187f450c17f8fee 100644 (file)
@@ -230,7 +230,7 @@ class ThreadSignals(unittest.TestCase):
             signal.signal(signal.SIGUSR1, old_handler)
 
 
-def test_main():
+def setUpModule():
     global signal_blackboard
 
     signal_blackboard = { signal.SIGUSR1 : {'tripped': 0, 'tripped_by': 0 },
@@ -238,10 +238,8 @@ def test_main():
                           signal.SIGALRM : {'tripped': 0, 'tripped_by': 0 } }
 
     oldsigs = registerSignals(handle_signals, handle_signals, handle_signals)
-    try:
-        support.run_unittest(ThreadSignals)
-    finally:
-        registerSignals(*oldsigs)
+    unittest.addModuleCleanup(registerSignals, *oldsigs)
+
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 6674edc21e9dfaceece2b5e5320ceb49a6c9ace2..90a123828b7097370738c793d81837bd8ebf45e9 100644 (file)
@@ -435,8 +435,8 @@ class TimeTestCase(unittest.TestCase):
     @unittest.skipUnless(platform.libc_ver()[0] != 'glibc',
                          "disabled because of a bug in glibc. Issue #13309")
     def test_mktime_error(self):
-        # It may not be possible to reliably make mktime return error
-        # on all platfom.  This will make sure that no other exception
+        # It may not be possible to reliably make mktime return an error
+        # on all platforms.  This will make sure that no other exception
         # than OverflowError is raised for an extreme value.
         tt = time.gmtime(self.t)
         tzname = time.strftime('%Z', tt)
index ac803f5d63823773ed848c990cb7ba41673e0fd0..fb73b5a45208f8321441f575bef517781b75ba48 100644 (file)
@@ -290,13 +290,9 @@ class UDPTimeoutTestCase(TimeoutTestCase):
         self._sock_operation(1, 1.5, 'recvfrom', 1024)
 
 
-def test_main():
+def setUpModule():
     support.requires('network')
-    support.run_unittest(
-        CreationTestCase,
-        TCPTimeoutTestCase,
-        UDPTimeoutTestCase,
-    )
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 48cefd92e121627d36c5e478de4c6e5d8d7193af..d45acbfc6e1a818024f6edc825b92f08d846588d 100644 (file)
@@ -5,11 +5,9 @@ support.import_module('_tkinter')
 # Skip test if tk cannot be initialized.
 support.requires('gui')
 
-from tkinter.test import runtktests
+def load_tests(loader, tests, pattern):
+    return loader.discover('tkinter.test.test_tkinter')
 
-def test_main():
-    support.run_unittest(
-            *runtktests.get_tests(text=False, packages=['test_tkinter']))
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 321bc4bb3628261fe0474ae6d29d836b246cfcff..7321b488be5a552da94a4b2680ff0f5d1af2166e 100644 (file)
@@ -1,5 +1,6 @@
 """Tests for the md5sum script in the Tools directory."""
 
+import sys
 import os
 import unittest
 from test import support
@@ -15,8 +16,8 @@ class MD5SumTests(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
         cls.script = os.path.join(scriptsdir, 'md5sum.py')
-        os.mkdir(support.TESTFN)
-        cls.fodder = os.path.join(support.TESTFN, 'md5sum.fodder')
+        os.mkdir(support.TESTFN_ASCII)
+        cls.fodder = os.path.join(support.TESTFN_ASCII, 'md5sum.fodder')
         with open(cls.fodder, 'wb') as f:
             f.write(b'md5sum\r\ntest file\r\n')
         cls.fodder_md5 = b'd38dae2eb1ab346a292ef6850f9e1a0d'
@@ -24,7 +25,7 @@ class MD5SumTests(unittest.TestCase):
 
     @classmethod
     def tearDownClass(cls):
-        support.rmtree(support.TESTFN)
+        support.rmtree(support.TESTFN_ASCII)
 
     def test_noargs(self):
         rc, out, err = assert_python_ok(self.script)
index 987fcb955087e48e4492ecb1e8ce28c56e6c1a9a..8d9d514d8deaaafed1508cc06a91996c61e9ef3d 100644 (file)
@@ -759,6 +759,19 @@ class BaseExceptionReportingTests:
                 exp = "\n".join(expected)
                 self.assertEqual(exp, err)
 
+    def test_format_exception_only_qualname(self):
+        class A:
+            class B:
+                class X(Exception):
+                    def __str__(self):
+                        return "I am X"
+                    pass
+        err = self.get_report(A.B.X())
+        str_value = 'I am X'
+        str_name = '.'.join([A.B.X.__module__, A.B.X.__qualname__])
+        exp = "%s: %s\n" % (str_name, str_value)
+        self.assertEqual(exp, err)
+
 
 class PyExcReportingTests(BaseExceptionReportingTests, unittest.TestCase):
     #
index b10d1798c29777ce284c5bea44c7e637a7d8f4d2..687e2b65733da75024f355c24357f1a0ceb0e2c0 100644 (file)
@@ -1081,15 +1081,5 @@ class TestCAPI(unittest.TestCase):
             self.untrack()
 
 
-def test_main():
-    support.run_unittest(
-        TestTraceback,
-        TestTracemallocEnabled,
-        TestSnapshot,
-        TestFilters,
-        TestCommandLine,
-        TestCAPI,
-    )
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 462665db5f3e7512602d370a0740e6ee2f3134ec..0b57d5a0d6c25e58b8fd6cb19dab0bb1510bf919 100644 (file)
@@ -10,25 +10,26 @@ support.requires('gui')
 import tkinter
 from _tkinter import TclError
 from tkinter import ttk
-from tkinter.test import runtktests
-
-root = None
-try:
-    root = tkinter.Tk()
-    button = ttk.Button(root)
-    button.destroy()
-    del button
-except TclError as msg:
-    # assuming ttk is not available
-    raise unittest.SkipTest("ttk not available: %s" % msg)
-finally:
-    if root is not None:
-        root.destroy()
-    del root
-
-def test_main():
-    support.run_unittest(
-            *runtktests.get_tests(text=False, packages=['test_ttk']))
+
+
+def setUpModule():
+    root = None
+    try:
+        root = tkinter.Tk()
+        button = ttk.Button(root)
+        button.destroy()
+        del button
+    except TclError as msg:
+        # assuming ttk is not available
+        raise unittest.SkipTest("ttk not available: %s" % msg)
+    finally:
+        if root is not None:
+            root.destroy()
+        del root
+
+def load_tests(loader, tests, pattern):
+    return loader.discover('tkinter.test.test_ttk')
+
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index 7540a4310344c1f905f3256371ef5da4f28c5faa..7a478398a97cfb7c3f46e9d39a436ae716e20bbc 100644 (file)
@@ -3,11 +3,461 @@ from test import support
 # Skip this test if _tkinter does not exist.
 support.import_module('_tkinter')
 
-from tkinter.test import runtktests
+import unittest
+from tkinter import ttk
+
+
+class MockTkApp:
+
+    def splitlist(self, arg):
+        if isinstance(arg, tuple):
+            return arg
+        return arg.split(':')
+
+    def wantobjects(self):
+        return True
+
+
+class MockTclObj(object):
+    typename = 'test'
+
+    def __init__(self, val):
+        self.val = val
+
+    def __str__(self):
+        return str(self.val)
+
+
+class MockStateSpec(object):
+    typename = 'StateSpec'
+
+    def __init__(self, *args):
+        self.val = args
+
+    def __str__(self):
+        return ' '.join(self.val)
+
+
+class InternalFunctionsTest(unittest.TestCase):
+
+    def test_format_optdict(self):
+        def check_against(fmt_opts, result):
+            for i in range(0, len(fmt_opts), 2):
+                self.assertEqual(result.pop(fmt_opts[i]), fmt_opts[i + 1])
+            if result:
+                self.fail("result still got elements: %s" % result)
+
+        # passing an empty dict should return an empty object (tuple here)
+        self.assertFalse(ttk._format_optdict({}))
+
+        # check list formatting
+        check_against(
+            ttk._format_optdict({'fg': 'blue', 'padding': [1, 2, 3, 4]}),
+            {'-fg': 'blue', '-padding': '1 2 3 4'})
+
+        # check tuple formatting (same as list)
+        check_against(
+            ttk._format_optdict({'test': (1, 2, '', 0)}),
+            {'-test': '1 2 {} 0'})
+
+        # check untouched values
+        check_against(
+            ttk._format_optdict({'test': {'left': 'as is'}}),
+            {'-test': {'left': 'as is'}})
+
+        # check script formatting
+        check_against(
+            ttk._format_optdict(
+                {'test': [1, -1, '', '2m', 0], 'test2': 3,
+                 'test3': '', 'test4': 'abc def',
+                 'test5': '"abc"', 'test6': '{}',
+                 'test7': '} -spam {'}, script=True),
+            {'-test': '{1 -1 {} 2m 0}', '-test2': '3',
+             '-test3': '{}', '-test4': '{abc def}',
+             '-test5': '{"abc"}', '-test6': r'\{\}',
+             '-test7': r'\}\ -spam\ \{'})
+
+        opts = {'αβγ': True, 'á': False}
+        orig_opts = opts.copy()
+        # check if giving unicode keys is fine
+        check_against(ttk._format_optdict(opts), {'-αβγ': True, '-á': False})
+        # opts should remain unchanged
+        self.assertEqual(opts, orig_opts)
+
+        # passing values with spaces inside a tuple/list
+        check_against(
+            ttk._format_optdict(
+                {'option': ('one two', 'three')}),
+            {'-option': '{one two} three'})
+        check_against(
+            ttk._format_optdict(
+                {'option': ('one\ttwo', 'three')}),
+            {'-option': '{one\ttwo} three'})
+
+        # passing empty strings inside a tuple/list
+        check_against(
+            ttk._format_optdict(
+                {'option': ('', 'one')}),
+            {'-option': '{} one'})
+
+        # passing values with braces inside a tuple/list
+        check_against(
+            ttk._format_optdict(
+                {'option': ('one} {two', 'three')}),
+            {'-option': r'one\}\ \{two three'})
+
+        # passing quoted strings inside a tuple/list
+        check_against(
+            ttk._format_optdict(
+                {'option': ('"one"', 'two')}),
+            {'-option': '{"one"} two'})
+        check_against(
+            ttk._format_optdict(
+                {'option': ('{one}', 'two')}),
+            {'-option': r'\{one\} two'})
+
+        # ignore an option
+        amount_opts = len(ttk._format_optdict(opts, ignore=('á'))) / 2
+        self.assertEqual(amount_opts, len(opts) - 1)
+
+        # ignore non-existing options
+        amount_opts = len(ttk._format_optdict(opts, ignore=('á', 'b'))) / 2
+        self.assertEqual(amount_opts, len(opts) - 1)
+
+        # ignore every option
+        self.assertFalse(ttk._format_optdict(opts, ignore=list(opts.keys())))
+
+
+    def test_format_mapdict(self):
+        opts = {'a': [('b', 'c', 'val'), ('d', 'otherval'), ('', 'single')]}
+        result = ttk._format_mapdict(opts)
+        self.assertEqual(len(result), len(list(opts.keys())) * 2)
+        self.assertEqual(result, ('-a', '{b c} val d otherval {} single'))
+        self.assertEqual(ttk._format_mapdict(opts, script=True),
+            ('-a', '{{b c} val d otherval {} single}'))
+
+        self.assertEqual(ttk._format_mapdict({2: []}), ('-2', ''))
+
+        opts = {'üñíćódè': [('á', 'vãl')]}
+        result = ttk._format_mapdict(opts)
+        self.assertEqual(result, ('-üñíćódè', 'á vãl'))
+
+        self.assertEqual(ttk._format_mapdict({'opt': [('value',)]}),
+                         ('-opt', '{} value'))
+
+        # empty states
+        valid = {'opt': [('', '', 'hi')]}
+        self.assertEqual(ttk._format_mapdict(valid), ('-opt', '{ } hi'))
+
+        # when passing multiple states, they all must be strings
+        invalid = {'opt': [(1, 2, 'valid val')]}
+        self.assertRaises(TypeError, ttk._format_mapdict, invalid)
+        invalid = {'opt': [([1], '2', 'valid val')]}
+        self.assertRaises(TypeError, ttk._format_mapdict, invalid)
+        # but when passing a single state, it can be anything
+        valid = {'opt': [[1, 'value']]}
+        self.assertEqual(ttk._format_mapdict(valid), ('-opt', '1 value'))
+        # special attention to single states which evaluate to False
+        for stateval in (None, 0, False, '', set()): # just some samples
+            valid = {'opt': [(stateval, 'value')]}
+            self.assertEqual(ttk._format_mapdict(valid),
+                ('-opt', '{} value'))
+
+        # values must be iterable
+        opts = {'a': None}
+        self.assertRaises(TypeError, ttk._format_mapdict, opts)
+
+
+    def test_format_elemcreate(self):
+        self.assertTrue(ttk._format_elemcreate(None), (None, ()))
+
+        ## Testing type = image
+        # image type expects at least an image name, so this should raise
+        # IndexError since it tries to access the index 0 of an empty tuple
+        self.assertRaises(IndexError, ttk._format_elemcreate, 'image')
+
+        # don't format returned values as a tcl script
+        # minimum acceptable for image type
+        self.assertEqual(ttk._format_elemcreate('image', False, 'test'),
+            ("test ", ()))
+        # specifying a state spec
+        self.assertEqual(ttk._format_elemcreate('image', False, 'test',
+            ('', 'a')), ("test {} a", ()))
+        # state spec with multiple states
+        self.assertEqual(ttk._format_elemcreate('image', False, 'test',
+            ('a', 'b', 'c')), ("test {a b} c", ()))
+        # state spec and options
+        self.assertEqual(ttk._format_elemcreate('image', False, 'test',
+            ('a', 'b'), a='x'), ("test a b", ("-a", "x")))
+        # format returned values as a tcl script
+        # state spec with multiple states and an option with a multivalue
+        self.assertEqual(ttk._format_elemcreate('image', True, 'test',
+            ('a', 'b', 'c', 'd'), x=[2, 3]), ("{test {a b c} d}", "-x {2 3}"))
+
+        ## Testing type = vsapi
+        # vsapi type expects at least a class name and a part_id, so this
+        # should raise a ValueError since it tries to get two elements from
+        # an empty tuple
+        self.assertRaises(ValueError, ttk._format_elemcreate, 'vsapi')
+
+        # don't format returned values as a tcl script
+        # minimum acceptable for vsapi
+        self.assertEqual(ttk._format_elemcreate('vsapi', False, 'a', 'b'),
+            ("a b ", ()))
+        # now with a state spec with multiple states
+        self.assertEqual(ttk._format_elemcreate('vsapi', False, 'a', 'b',
+            ('a', 'b', 'c')), ("a b {a b} c", ()))
+        # state spec and option
+        self.assertEqual(ttk._format_elemcreate('vsapi', False, 'a', 'b',
+            ('a', 'b'), opt='x'), ("a b a b", ("-opt", "x")))
+        # format returned values as a tcl script
+        # state spec with a multivalue and an option
+        self.assertEqual(ttk._format_elemcreate('vsapi', True, 'a', 'b',
+            ('a', 'b', [1, 2]), opt='x'), ("{a b {a b} {1 2}}", "-opt x"))
+
+        # Testing type = from
+        # from type expects at least a type name
+        self.assertRaises(IndexError, ttk._format_elemcreate, 'from')
+
+        self.assertEqual(ttk._format_elemcreate('from', False, 'a'),
+            ('a', ()))
+        self.assertEqual(ttk._format_elemcreate('from', False, 'a', 'b'),
+            ('a', ('b', )))
+        self.assertEqual(ttk._format_elemcreate('from', True, 'a', 'b'),
+            ('{a}', 'b'))
+
+
+    def test_format_layoutlist(self):
+        def sample(indent=0, indent_size=2):
+            return ttk._format_layoutlist(
+            [('a', {'other': [1, 2, 3], 'children':
+                [('b', {'children':
+                    [('c', {'children':
+                        [('d', {'nice': 'opt'})], 'something': (1, 2)
+                    })]
+                })]
+            })], indent=indent, indent_size=indent_size)[0]
+
+        def sample_expected(indent=0, indent_size=2):
+            spaces = lambda amount=0: ' ' * (amount + indent)
+            return (
+                "%sa -other {1 2 3} -children {\n"
+                "%sb -children {\n"
+                "%sc -something {1 2} -children {\n"
+                "%sd -nice opt\n"
+                "%s}\n"
+                "%s}\n"
+                "%s}" % (spaces(), spaces(indent_size),
+                    spaces(2 * indent_size), spaces(3 * indent_size),
+                    spaces(2 * indent_size), spaces(indent_size), spaces()))
+
+        # empty layout
+        self.assertEqual(ttk._format_layoutlist([])[0], '')
+
+        # _format_layoutlist always expects the second item (in every item)
+        # to act like a dict (except when the value evaluates to False).
+        self.assertRaises(AttributeError,
+            ttk._format_layoutlist, [('a', 'b')])
+
+        smallest = ttk._format_layoutlist([('a', None)], indent=0)
+        self.assertEqual(smallest,
+            ttk._format_layoutlist([('a', '')], indent=0))
+        self.assertEqual(smallest[0], 'a')
+
+        # testing indentation levels
+        self.assertEqual(sample(), sample_expected())
+        for i in range(4):
+            self.assertEqual(sample(i), sample_expected(i))
+            self.assertEqual(sample(i, i), sample_expected(i, i))
+
+        # invalid layout format, different kind of exceptions will be
+        # raised by internal functions
+
+        # plain wrong format
+        self.assertRaises(ValueError, ttk._format_layoutlist,
+            ['bad', 'format'])
+        # will try to use iteritems in the 'bad' string
+        self.assertRaises(AttributeError, ttk._format_layoutlist,
+           [('name', 'bad')])
+        # bad children formatting
+        self.assertRaises(ValueError, ttk._format_layoutlist,
+            [('name', {'children': {'a': None}})])
+
+
+    def test_script_from_settings(self):
+        # empty options
+        self.assertFalse(ttk._script_from_settings({'name':
+            {'configure': None, 'map': None, 'element create': None}}))
+
+        # empty layout
+        self.assertEqual(
+            ttk._script_from_settings({'name': {'layout': None}}),
+            "ttk::style layout name {\nnull\n}")
+
+        configdict = {'αβγ': True, 'á': False}
+        self.assertTrue(
+            ttk._script_from_settings({'name': {'configure': configdict}}))
+
+        mapdict = {'üñíćódè': [('á', 'vãl')]}
+        self.assertTrue(
+            ttk._script_from_settings({'name': {'map': mapdict}}))
+
+        # invalid image element
+        self.assertRaises(IndexError,
+            ttk._script_from_settings, {'name': {'element create': ['image']}})
+
+        # minimal valid image
+        self.assertTrue(ttk._script_from_settings({'name':
+            {'element create': ['image', 'name']}}))
+
+        image = {'thing': {'element create':
+            ['image', 'name', ('state1', 'state2', 'val')]}}
+        self.assertEqual(ttk._script_from_settings(image),
+            "ttk::style element create thing image {name {state1 state2} val} ")
+
+        image['thing']['element create'].append({'opt': 30})
+        self.assertEqual(ttk._script_from_settings(image),
+            "ttk::style element create thing image {name {state1 state2} val} "
+            "-opt 30")
+
+        image['thing']['element create'][-1]['opt'] = [MockTclObj(3),
+            MockTclObj('2m')]
+        self.assertEqual(ttk._script_from_settings(image),
+            "ttk::style element create thing image {name {state1 state2} val} "
+            "-opt {3 2m}")
+
+
+    def test_tclobj_to_py(self):
+        self.assertEqual(
+            ttk._tclobj_to_py((MockStateSpec('a', 'b'), 'val')),
+            [('a', 'b', 'val')])
+        self.assertEqual(
+            ttk._tclobj_to_py([MockTclObj('1'), 2, MockTclObj('3m')]),
+            [1, 2, '3m'])
+
+
+    def test_list_from_statespec(self):
+        def test_it(sspec, value, res_value, states):
+            self.assertEqual(ttk._list_from_statespec(
+                (sspec, value)), [states + (res_value, )])
+
+        states_even = tuple('state%d' % i for i in range(6))
+        statespec = MockStateSpec(*states_even)
+        test_it(statespec, 'val', 'val', states_even)
+        test_it(statespec, MockTclObj('val'), 'val', states_even)
+
+        states_odd = tuple('state%d' % i for i in range(5))
+        statespec = MockStateSpec(*states_odd)
+        test_it(statespec, 'val', 'val', states_odd)
+
+        test_it(('a', 'b', 'c'), MockTclObj('val'), 'val', ('a', 'b', 'c'))
+
+
+    def test_list_from_layouttuple(self):
+        tk = MockTkApp()
+
+        # empty layout tuple
+        self.assertFalse(ttk._list_from_layouttuple(tk, ()))
+
+        # shortest layout tuple
+        self.assertEqual(ttk._list_from_layouttuple(tk, ('name', )),
+            [('name', {})])
+
+        # not so interesting ltuple
+        sample_ltuple = ('name', '-option', 'value')
+        self.assertEqual(ttk._list_from_layouttuple(tk, sample_ltuple),
+            [('name', {'option': 'value'})])
+
+        # empty children
+        self.assertEqual(ttk._list_from_layouttuple(tk,
+            ('something', '-children', ())),
+            [('something', {'children': []})]
+        )
+
+        # more interesting ltuple
+        ltuple = (
+            'name', '-option', 'niceone', '-children', (
+                ('otherone', '-children', (
+                    ('child', )), '-otheropt', 'othervalue'
+                )
+            )
+        )
+        self.assertEqual(ttk._list_from_layouttuple(tk, ltuple),
+            [('name', {'option': 'niceone', 'children':
+                [('otherone', {'otheropt': 'othervalue', 'children':
+                    [('child', {})]
+                })]
+            })]
+        )
+
+        # bad tuples
+        self.assertRaises(ValueError, ttk._list_from_layouttuple, tk,
+            ('name', 'no_minus'))
+        self.assertRaises(ValueError, ttk._list_from_layouttuple, tk,
+            ('name', 'no_minus', 'value'))
+        self.assertRaises(ValueError, ttk._list_from_layouttuple, tk,
+            ('something', '-children')) # no children
+
+
+    def test_val_or_dict(self):
+        def func(res, opt=None, val=None):
+            if opt is None:
+                return res
+            if val is None:
+                return "test val"
+            return (opt, val)
+
+        tk = MockTkApp()
+        tk.call = func
+
+        self.assertEqual(ttk._val_or_dict(tk, {}, '-test:3'),
+                         {'test': '3'})
+        self.assertEqual(ttk._val_or_dict(tk, {}, ('-test', 3)),
+                         {'test': 3})
+
+        self.assertEqual(ttk._val_or_dict(tk, {'test': None}, 'x:y'),
+                         'test val')
+
+        self.assertEqual(ttk._val_or_dict(tk, {'test': 3}, 'x:y'),
+                         {'test': 3})
+
+
+    def test_convert_stringval(self):
+        tests = (
+            (0, 0), ('09', 9), ('a', 'a'), ('áÚ', 'áÚ'), ([], '[]'),
+            (None, 'None')
+        )
+        for orig, expected in tests:
+            self.assertEqual(ttk._convert_stringval(orig), expected)
+
+
+class TclObjsToPyTest(unittest.TestCase):
+
+    def test_unicode(self):
+        adict = {'opt': 'välúè'}
+        self.assertEqual(ttk.tclobjs_to_py(adict), {'opt': 'välúè'})
+
+        adict['opt'] = MockTclObj(adict['opt'])
+        self.assertEqual(ttk.tclobjs_to_py(adict), {'opt': 'välúè'})
+
+    def test_multivalues(self):
+        adict = {'opt': [1, 2, 3, 4]}
+        self.assertEqual(ttk.tclobjs_to_py(adict), {'opt': [1, 2, 3, 4]})
+
+        adict['opt'] = [1, 'xm', 3]
+        self.assertEqual(ttk.tclobjs_to_py(adict), {'opt': [1, 'xm', 3]})
+
+        adict['opt'] = (MockStateSpec('a', 'b'), 'válũè')
+        self.assertEqual(ttk.tclobjs_to_py(adict),
+            {'opt': [('a', 'b', 'válũè')]})
+
+        self.assertEqual(ttk.tclobjs_to_py({'x': ['y z']}),
+            {'x': ['y z']})
+
+    def test_nosplit(self):
+        self.assertEqual(ttk.tclobjs_to_py({'text': 'some text'}),
+            {'text': 'some text'})
 
-def test_main():
-    support.run_unittest(
-            *runtktests.get_tests(gui=False, packages=['test_ttk']))
 
 if __name__ == '__main__':
-    test_main()
+    unittest.main()
index e05ac4539fb503e24b82ecad2463c549c16423d3..19c38ec833c676ba69389493aa99ab51596d7416 100644 (file)
@@ -562,6 +562,8 @@ class LiteralTests(BaseTestCase):
         self.assertNotEqual(Literal[True], Literal[1])
         self.assertNotEqual(Literal[1], Literal[2])
         self.assertNotEqual(Literal[1, True], Literal[1])
+        self.assertNotEqual(Literal[1, True], Literal[1, 1])
+        self.assertNotEqual(Literal[1, 2], Literal[True, 2])
         self.assertEqual(Literal[1], Literal[1])
         self.assertEqual(Literal[1, 2], Literal[2, 1])
         self.assertEqual(Literal[1, 2, 3], Literal[1, 2, 3, 3])
@@ -1459,6 +1461,17 @@ class ProtocolTests(BaseTestCase):
         class CustomContextManager(typing.ContextManager, Protocol):
             pass
 
+    def test_super_call_init(self):
+        class P(Protocol):
+            x: int
+
+        class Foo(P):
+            def __init__(self):
+                super().__init__()
+
+        Foo()  # Previously triggered RecursionError
+
+
 class GenericTests(BaseTestCase):
 
     def test_basics(self):
@@ -2797,7 +2810,7 @@ else:
 
 # Definitions needed for features introduced in Python 3.6
 
-from test import ann_module, ann_module2, ann_module3
+from test import ann_module, ann_module2, ann_module3, ann_module5, ann_module6
 from typing import AsyncContextManager
 
 class A:
@@ -3117,6 +3130,22 @@ class GetUtilitiesTestCase(TestCase):
         self.assertEqual(get_args(collections.abc.Callable[[int], str]),
                          get_args(Callable[[int], str]))
 
+    def test_forward_ref_and_final(self):
+        # https://bugs.python.org/issue45166
+        hints = get_type_hints(ann_module5)
+        self.assertEqual(hints, {'name': Final[str]})
+
+        hints = get_type_hints(ann_module5.MyClass)
+        self.assertEqual(hints, {'value': Final})
+
+    def test_top_level_class_var(self):
+        # https://bugs.python.org/issue45166
+        with self.assertRaisesRegex(
+            TypeError,
+            r'typing.ClassVar\[int\] is not valid as type argument',
+        ):
+            get_type_hints(ann_module6)
+
 
 class CollectionsAbcTests(BaseTestCase):
 
@@ -3791,6 +3820,19 @@ class NamedTupleTests(BaseTestCase):
         self.assertEqual(a.typename, 'foo')
         self.assertEqual(a.fields, [('bar', tuple)])
 
+    def test_empty_namedtuple(self):
+        NT = NamedTuple('NT')
+
+        class CNT(NamedTuple):
+            pass  # empty body
+
+        for struct in [NT, CNT]:
+            with self.subTest(struct=struct):
+                self.assertEqual(struct._fields, ())
+                self.assertEqual(struct._field_defaults, {})
+                self.assertEqual(struct.__annotations__, {})
+                self.assertIsInstance(struct(), struct)
+
     def test_namedtuple_errors(self):
         with self.assertRaises(TypeError):
             NamedTuple.__new__()
index e8feb42c6b0c25258322c7192bae1c72d2bddee5..a9412e40e761a846db2a18eb04a76697d3bbd718 100644 (file)
@@ -5,7 +5,7 @@ import os, glob, time, shutil
 import unicodedata
 
 import unittest
-from test.support import (run_unittest, rmtree, change_cwd,
+from test.support import (rmtree, change_cwd,
     TESTFN_ENCODING, TESTFN_UNICODE, TESTFN_UNENCODABLE, create_empty_file)
 
 if not os.path.supports_unicode_filenames:
@@ -133,8 +133,6 @@ class TestUnicodeFiles(unittest.TestCase):
             self._do_directory(TESTFN_UNENCODABLE+ext,
                                TESTFN_UNENCODABLE+ext)
 
-def test_main():
-    run_unittest(__name__)
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 1cd0d621cd4b3a14256b8ea6b90c222f476f2ee7..e36c7cddf3e9a925d72cd554cfcf0f3b9f0a0f6e 100644 (file)
@@ -181,15 +181,5 @@ class UnicodeNFKDFileTests(UnicodeFileTests):
     normal_form = 'NFKD'
 
 
-def test_main():
-    support.run_unittest(
-        UnicodeFileTests,
-        UnicodeNFCFileTests,
-        UnicodeNFDFileTests,
-        UnicodeNFKCFileTests,
-        UnicodeNFKDFileTests,
-    )
-
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index bfc3ded6f128da498ad170680264e3cef11fdc42..1079c7df2e51c2558b362b207d7e74426e6bde54 100644 (file)
@@ -3,14 +3,14 @@ import unittest.test
 from test import support
 
 
-def test_main():
-    # used by regrtest
-    support.run_unittest(unittest.test.suite())
-    support.reap_children()
-
 def load_tests(*_):
     # used by unittest
     return unittest.test.suite()
 
+
+def tearDownModule():
+    support.reap_children()
+
+
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index ce03272ad30b2d42e5734f663779e169081fa7de..d7587836aa8a38ababc93a70d491707e4f7b0cad 100644 (file)
@@ -408,7 +408,7 @@ class UnparseTestCase(ASTTestCase):
 
 
 class CosmeticTestCase(ASTTestCase):
-    """Test if there are cosmetic issues caused by unnecesary additions"""
+    """Test if there are cosmetic issues caused by unnecessary additions"""
 
     def test_simple_expressions_parens(self):
         self.check_src_roundtrip("(a := b)")
index ed426b05a71982c0da1e33ed378c13f83db5d5e4..e73132ab6997461c79509012b306f32be8cafc58 100644 (file)
@@ -660,17 +660,10 @@ class TestUrlopen(unittest.TestCase):
         self.assertEqual(index + 1, len(lines))
 
 
-threads_key = None
-
 def setUpModule():
-    # Store the threading_setup in a key and ensure that it is cleaned up
-    # in the tearDown
-    global threads_key
-    threads_key = support.threading_setup()
-
-def tearDownModule():
-    if threads_key:
-        support.threading_cleanup(*threads_key)
+    thread_info = support.threading_setup()
+    unittest.addModuleCleanup(support.threading_cleanup, *thread_info)
+
 
 if __name__ == "__main__":
     unittest.main()
index ca003d55d7c8904257d7fd795354acca2da98376..480cb29f35a6a4fa0470a22b8dc5817447933ce1 100644 (file)
@@ -151,14 +151,20 @@ class BasicTest(BaseTest):
     def test_upgrade_dependencies(self):
         builder = venv.EnvBuilder()
         bin_path = 'Scripts' if sys.platform == 'win32' else 'bin'
-        python_exe = 'python.exe' if sys.platform == 'win32' else 'python'
+        python_exe = os.path.split(sys.executable)[1]
         with tempfile.TemporaryDirectory() as fake_env_dir:
+            expect_exe = os.path.normcase(
+                os.path.join(fake_env_dir, bin_path, python_exe)
+            )
+            if sys.platform == 'win32':
+                expect_exe = os.path.normcase(os.path.realpath(expect_exe))
 
             def pip_cmd_checker(cmd):
+                cmd[0] = os.path.normcase(cmd[0])
                 self.assertEqual(
                     cmd,
                     [
-                        os.path.join(fake_env_dir, bin_path, python_exe),
+                        expect_exe,
                         '-m',
                         'pip',
                         'install',
index 5a3e59c3e9ef1599cb4ee3fcb5606152abbc742d..096833d1ebb355b7a6193d15bd88e0dab0a0e9b0 100644 (file)
@@ -1472,7 +1472,7 @@ class MappingTestCase(TestBase):
         o = Object(123456)
         with testcontext():
             n = len(dict)
-            # Since underlaying dict is ordered, first item is popped
+            # Since underlying dict is ordered, first item is popped
             dict.pop(next(dict.keys()))
             self.assertEqual(len(dict), n - 1)
             dict[o] = o
index a44f7bbd27b700917699f25062f40dd082a80e1d..7b2bfda339f95783a346d2027a8a220318872da4 100644 (file)
@@ -92,9 +92,11 @@ class WindowsConsoleIOTests(unittest.TestCase):
         f.close()
         f.close()
 
-        f = open('C:/con', 'rb', buffering=0)
-        self.assertIsInstance(f, ConIO)
-        f.close()
+        # bpo-45354: Windows 11 changed MS-DOS device name handling
+        if sys.getwindowsversion()[:3] < (10, 0, 22000):
+            f = open('C:/con', 'rb', buffering=0)
+            self.assertIsInstance(f, ConIO)
+            f.close()
 
     @unittest.skipIf(sys.getwindowsversion()[:2] <= (6, 1),
         "test does not work on Windows 7 and earlier")
@@ -114,7 +116,8 @@ class WindowsConsoleIOTests(unittest.TestCase):
         conout_path = os.path.join(temp_path, 'CONOUT$')
 
         with open(conout_path, 'wb', buffering=0) as f:
-            if sys.getwindowsversion()[:2] > (6, 1):
+            # bpo-45354: Windows 11 changed MS-DOS device name handling
+            if (6, 1) < sys.getwindowsversion()[:3] < (10, 0, 22000):
                 self.assertIsInstance(f, ConIO)
             else:
                 self.assertNotIsInstance(f, ConIO)
index 5c25ec8f7ec674fc5013f2b529ba1d3274dcf846..ca0a28df811913fc0fd5656143791f466b30106e 100644 (file)
@@ -45,7 +45,7 @@ test_data = [
     ("Raw Data",      b"binary\x00data",                       REG_BINARY),
     ("Big String",    "x"*(2**14-1),                           REG_SZ),
     ("Big Binary",    b"x"*(2**14),                            REG_BINARY),
-    # Two and three kanjis, meaning: "Japan" and "Japanese")
+    # Two and three kanjis, meaning: "Japan" and "Japanese".
     ("Japanese æ—¥æœ¬", "日本語", REG_SZ),
 ]
 
@@ -489,12 +489,9 @@ class Win64WinregTests(BaseWinregTests):
         with self.assertRaises(FileNotFoundError) as ctx:
             QueryValue(HKEY_CLASSES_ROOT, 'some_value_that_does_not_exist')
 
-def test_main():
-    support.run_unittest(LocalWinregTests, RemoteWinregTests,
-                         Win64WinregTests)
 
 if __name__ == "__main__":
     if not REMOTE_NAME:
         print("Remote registry calls can be tested using",
               "'test_winreg.py --remote \\\\machine_name'")
-    test_main()
+    unittest.main()
index 4bf5d39e619f647c3c66d84fb72b0e3ba4608fb6..3e76e01c653f387fb801c8269699b0dea1bf1a53 100644 (file)
@@ -579,7 +579,7 @@ class HandlerTests(TestCase):
         # Test handler.environ as a dict
         expected = {}
         setup_testing_defaults(expected)
-        # Handler inherits os_environ variables which are not overriden
+        # Handler inherits os_environ variables which are not overridden
         # by SimpleHandler.add_cgi_vars() (SimpleHandler.base_env)
         for key, value in os_environ.items():
             if key not in expected:
index 3a6d43b8c85bdbdf746853f7af2f54efb7e6ed83..23c4cd5eff0a9d1acd126e1c173d1dc484e4ac81 100644 (file)
@@ -24,7 +24,7 @@ import weakref
 from functools import partial
 from itertools import product, islice
 from test import support
-from test.support import TESTFN, findfile, import_fresh_module, gc_collect, swap_attr
+from test.support import TESTFN, findfile, import_fresh_module, gc_collect, swap_attr, swap_item
 
 # pyET is the pure-Python implementation.
 #
@@ -149,12 +149,11 @@ class ElementTestCase:
         cls.modules = {pyET, ET}
 
     def pickleRoundTrip(self, obj, name, dumper, loader, proto):
-        save_m = sys.modules[name]
         try:
-            sys.modules[name] = dumper
-            temp = pickle.dumps(obj, proto)
-            sys.modules[name] = loader
-            result = pickle.loads(temp)
+            with swap_item(sys.modules, name, dumper):
+                temp = pickle.dumps(obj, proto)
+            with swap_item(sys.modules, name, loader):
+                result = pickle.loads(temp)
         except pickle.PicklingError as pe:
             # pyET must be second, because pyET may be (equal to) ET.
             human = dict([(ET, "cET"), (pyET, "pyET")])
@@ -162,8 +161,6 @@ class ElementTestCase:
                                      % (obj,
                                         human.get(dumper, dumper),
                                         human.get(loader, loader))) from pe
-        finally:
-            sys.modules[name] = save_m
         return result
 
     def assertEqualElements(self, alice, bob):
@@ -3275,7 +3272,7 @@ class TreeBuilderTest(unittest.TestCase):
         self._check_element_factory_class(MyElement)
 
     def test_element_factory_pure_python_subclass(self):
-        # Mimick SimpleTAL's behaviour (issue #16089): both versions of
+        # Mimic SimpleTAL's behaviour (issue #16089): both versions of
         # TreeBuilder should be able to cope with a subclass of the
         # pure Python Element class.
         base = ET._Element_Py
index 75544035381a992fe2a1ab5463f9b5ef6e2114c6..f714b773eeecc306dbf5f5429fa3eeef17fbdaba 100644 (file)
@@ -559,7 +559,7 @@ class DateTimeTestCase(unittest.TestCase):
 
 class BinaryTestCase(unittest.TestCase):
 
-    # XXX What should str(Binary(b"\xff")) return?  I'm chosing "\xff"
+    # XXX What should str(Binary(b"\xff")) return?  I'm choosing "\xff"
     # for now (i.e. interpreting the binary data as Latin-1-encoded
     # text).  But this feels very unsatisfactory.  Perhaps we should
     # only define repr(), and return r"Binary(b'\xff')" instead?
@@ -1502,16 +1502,10 @@ class UseBuiltinTypesTestCase(unittest.TestCase):
         self.assertTrue(server.use_builtin_types)
 
 
-@support.reap_threads
-def test_main():
-    support.run_unittest(XMLRPCTestCase, HelperTestCase, DateTimeTestCase,
-            BinaryTestCase, FaultTestCase, UseBuiltinTypesTestCase,
-            SimpleServerTestCase, SimpleServerEncodingTestCase,
-            KeepaliveServerTestCase1, KeepaliveServerTestCase2,
-            GzipServerTestCase, GzipUtilTestCase, HeadersServerTestCase,
-            MultiPathServerTestCase, ServerProxyTestCase, FailingServerTestCase,
-            CGIHandlerTestCase, SimpleXMLRPCDispatcherTestCase)
+def setUpModule():
+    thread_info = support.threading_setup()
+    unittest.addModuleCleanup(support.threading_cleanup, *thread_info)
 
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index f3652b86f75102431c26908a10cc58f5d96e7905..51167b28bc5a1e56c523b9962b1ff7c30ca80953 100644 (file)
@@ -5,6 +5,9 @@ from test import support
 import xmlrpc.client as xmlrpclib
 
 
+support.requires("network")
+
+
 @unittest.skip('XXX: buildbot.python.org/all/xmlrpc/ is gone')
 class PythonBuildersTest(unittest.TestCase):
 
@@ -24,9 +27,5 @@ class PythonBuildersTest(unittest.TestCase):
         self.assertTrue([x for x in builders if "3.x" in x], builders)
 
 
-def test_main():
-    support.requires("network")
-    support.run_unittest(PythonBuildersTest)
-
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index 80c98b4b4661d8e09b4b284cd4a5716609bc71d2..2e2438863da284ab7e431ca4a6bf8db6529fd842 100644 (file)
@@ -766,15 +766,9 @@ class BadFileZipImportTestCase(unittest.TestCase):
             zipimport._zip_directory_cache.clear()
 
 
-def test_main():
-    try:
-        support.run_unittest(
-              UncompressedZipImportTestCase,
-              CompressedZipImportTestCase,
-              BadFileZipImportTestCase,
-            )
-    finally:
-        support.unlink(TESTMOD)
+def tearDownModule():
+    support.unlink(TESTMOD)
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()
index d4704b75d389dfc92083a0d87630b9044f26c286..08ebbb1dd99111df2414aa7e32b8d580b2c964d1 100644 (file)
@@ -1403,44 +1403,50 @@ class ZoneInfoPickleTest(TzPathUserMixin, ZoneInfoTestBase):
         return [self.zoneinfo_data.tzpath]
 
     def test_cache_hit(self):
-        zi_in = self.klass("Europe/Dublin")
-        pkl = pickle.dumps(zi_in)
-        zi_rt = pickle.loads(pkl)
+        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+            with self.subTest(proto=proto):
+                zi_in = self.klass("Europe/Dublin")
+                pkl = pickle.dumps(zi_in, protocol=proto)
+                zi_rt = pickle.loads(pkl)
 
-        with self.subTest(test="Is non-pickled ZoneInfo"):
-            self.assertIs(zi_in, zi_rt)
+                with self.subTest(test="Is non-pickled ZoneInfo"):
+                    self.assertIs(zi_in, zi_rt)
 
-        zi_rt2 = pickle.loads(pkl)
-        with self.subTest(test="Is unpickled ZoneInfo"):
-            self.assertIs(zi_rt, zi_rt2)
+                zi_rt2 = pickle.loads(pkl)
+                with self.subTest(test="Is unpickled ZoneInfo"):
+                    self.assertIs(zi_rt, zi_rt2)
 
     def test_cache_miss(self):
-        zi_in = self.klass("Europe/Dublin")
-        pkl = pickle.dumps(zi_in)
+        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+            with self.subTest(proto=proto):
+                zi_in = self.klass("Europe/Dublin")
+                pkl = pickle.dumps(zi_in, protocol=proto)
 
-        del zi_in
-        self.klass.clear_cache()  # Induce a cache miss
-        zi_rt = pickle.loads(pkl)
-        zi_rt2 = pickle.loads(pkl)
+                del zi_in
+                self.klass.clear_cache()  # Induce a cache miss
+                zi_rt = pickle.loads(pkl)
+                zi_rt2 = pickle.loads(pkl)
 
-        self.assertIs(zi_rt, zi_rt2)
+                self.assertIs(zi_rt, zi_rt2)
 
     def test_no_cache(self):
-        zi_no_cache = self.klass.no_cache("Europe/Dublin")
+        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+            with self.subTest(proto=proto):
+                zi_no_cache = self.klass.no_cache("Europe/Dublin")
 
-        pkl = pickle.dumps(zi_no_cache)
-        zi_rt = pickle.loads(pkl)
+                pkl = pickle.dumps(zi_no_cache, protocol=proto)
+                zi_rt = pickle.loads(pkl)
 
-        with self.subTest(test="Not the pickled object"):
-            self.assertIsNot(zi_rt, zi_no_cache)
+                with self.subTest(test="Not the pickled object"):
+                    self.assertIsNot(zi_rt, zi_no_cache)
 
-        zi_rt2 = pickle.loads(pkl)
-        with self.subTest(test="Not a second unpickled object"):
-            self.assertIsNot(zi_rt, zi_rt2)
+                zi_rt2 = pickle.loads(pkl)
+                with self.subTest(test="Not a second unpickled object"):
+                    self.assertIsNot(zi_rt, zi_rt2)
 
-        zi_cache = self.klass("Europe/Dublin")
-        with self.subTest(test="Not a cached object"):
-            self.assertIsNot(zi_rt, zi_cache)
+                zi_cache = self.klass("Europe/Dublin")
+                with self.subTest(test="Not a cached object"):
+                    self.assertIsNot(zi_rt, zi_cache)
 
     def test_from_file(self):
         key = "Europe/Dublin"
@@ -1456,35 +1462,38 @@ class ZoneInfoPickleTest(TzPathUserMixin, ZoneInfoTestBase):
         ]
 
         for zi, test_name in test_cases:
-            with self.subTest(test_name=test_name):
-                with self.assertRaises(pickle.PicklingError):
-                    pickle.dumps(zi)
+            for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+                with self.subTest(test_name=test_name, proto=proto):
+                    with self.assertRaises(pickle.PicklingError):
+                        pickle.dumps(zi, protocol=proto)
 
     def test_pickle_after_from_file(self):
         # This may be a bit of paranoia, but this test is to ensure that no
         # global state is maintained in order to handle the pickle cache and
         # from_file behavior, and that it is possible to interweave the
         # constructors of each of these and pickling/unpickling without issues.
-        key = "Europe/Dublin"
-        zi = self.klass(key)
+        for proto in range(pickle.HIGHEST_PROTOCOL + 1):
+            with self.subTest(proto=proto):
+                key = "Europe/Dublin"
+                zi = self.klass(key)
 
-        pkl_0 = pickle.dumps(zi)
-        zi_rt_0 = pickle.loads(pkl_0)
-        self.assertIs(zi, zi_rt_0)
+                pkl_0 = pickle.dumps(zi, protocol=proto)
+                zi_rt_0 = pickle.loads(pkl_0)
+                self.assertIs(zi, zi_rt_0)
 
-        with open(self.zoneinfo_data.path_from_key(key), "rb") as f:
-            zi_ff = self.klass.from_file(f, key=key)
+                with open(self.zoneinfo_data.path_from_key(key), "rb") as f:
+                    zi_ff = self.klass.from_file(f, key=key)
 
-        pkl_1 = pickle.dumps(zi)
-        zi_rt_1 = pickle.loads(pkl_1)
-        self.assertIs(zi, zi_rt_1)
+                pkl_1 = pickle.dumps(zi, protocol=proto)
+                zi_rt_1 = pickle.loads(pkl_1)
+                self.assertIs(zi, zi_rt_1)
 
-        with self.assertRaises(pickle.PicklingError):
-            pickle.dumps(zi_ff)
+                with self.assertRaises(pickle.PicklingError):
+                    pickle.dumps(zi_ff, protocol=proto)
 
-        pkl_2 = pickle.dumps(zi)
-        zi_rt_2 = pickle.loads(pkl_2)
-        self.assertIs(zi, zi_rt_2)
+                pkl_2 = pickle.dumps(zi, protocol=proto)
+                zi_rt_2 = pickle.loads(pkl_2)
+                self.assertIs(zi, zi_rt_2)
 
 
 class CZoneInfoPickleTest(ZoneInfoPickleTest):
index a49775e6b177362c2e3edd658199c4be2a9df41e..a3cb245ab9606c742c53040d48e0518c236b5a32 100644 (file)
@@ -608,7 +608,7 @@ class Barrier:
         self._action = action
         self._timeout = timeout
         self._parties = parties
-        self._state = 0 #0 filling, 1, draining, -1 resetting, -2 broken
+        self._state = 0  # 0 filling, 1 draining, -1 resetting, -2 broken
         self._count = 0
 
     def wait(self, timeout=None):
@@ -1064,11 +1064,24 @@ class Thread:
         # If the lock is acquired, the C code is done, and self._stop() is
         # called.  That sets ._is_stopped to True, and ._tstate_lock to None.
         lock = self._tstate_lock
-        if lock is None:  # already determined that the C code is done
+        if lock is None:
+            # already determined that the C code is done
             assert self._is_stopped
-        elif lock.acquire(block, timeout):
-            lock.release()
-            self._stop()
+            return
+
+        try:
+            if lock.acquire(block, timeout):
+                lock.release()
+                self._stop()
+        except:
+            if lock.locked():
+                # bpo-45274: lock.acquire() acquired the lock, but the function
+                # was interrupted with an exception before reaching the
+                # lock.release(). It can happen if a signal handler raises an
+                # exception, like CTRL+C which raises KeyboardInterrupt.
+                lock.release()
+                self._stop()
+            raise
 
     @property
     def name(self):
@@ -1420,20 +1433,29 @@ def _shutdown():
 
     global _SHUTTING_DOWN
     _SHUTTING_DOWN = True
-    # Main thread
-    tlock = _main_thread._tstate_lock
-    # The main thread isn't finished yet, so its thread state lock can't have
-    # been released.
-    assert tlock is not None
-    assert tlock.locked()
-    tlock.release()
-    _main_thread._stop()
 
     # Call registered threading atexit functions before threads are joined.
     # Order is reversed, similar to atexit.
     for atexit_call in reversed(_threading_atexits):
         atexit_call()
 
+    # Main thread
+    if _main_thread.ident == get_ident():
+        tlock = _main_thread._tstate_lock
+        # The main thread isn't finished yet, so its thread state lock can't
+        # have been released.
+        assert tlock is not None
+        assert tlock.locked()
+        tlock.release()
+        _main_thread._stop()
+    else:
+        # bpo-1596321: _shutdown() must be called in the main thread.
+        # If the threading module was not imported by the main thread,
+        # _main_thread is the thread which imported the threading module.
+        # In this case, ignore _main_thread, similar behavior than for threads
+        # spawned by C libraries or using _thread.start_new_thread().
+        pass
+
     # Join all non-deamon threads
     while True:
         with _shutdown_locks_lock:
@@ -1444,7 +1466,7 @@ def _shutdown():
             break
 
         for lock in locks:
-            # mimick Thread.join()
+            # mimic Thread.join()
             lock.acquire()
             lock.release()
 
index f15f6c5e57a501ec6b1edaa3a055ba74ecfa822e..9049ca308f95a6ec568e0b4491449dc0a1c7fa29 100644 (file)
@@ -2707,7 +2707,7 @@ class Canvas(Widget, XView, YView):
         """Add tag NEWTAG to item which is closest to pixel at X, Y.
         If several match take the top-most.
         All items closer than HALO are considered overlapping (all are
-        closests). If START is specified the next below this tag is taken."""
+        closest). If START is specified the next below this tag is taken."""
         self.addtag(newtag, 'closest', x, y, halo, start)
 
     def addtag_enclosed(self, newtag, x1, y1, x2, y2):
@@ -3302,7 +3302,7 @@ class Menu(Widget):
         self.add('command', cnf or kw)
 
     def add_radiobutton(self, cnf={}, **kw):
-        """Addd radio menu item."""
+        """Add radio menu item."""
         self.add('radiobutton', cnf or kw)
 
     def add_separator(self, cnf={}, **kw):
@@ -3327,7 +3327,7 @@ class Menu(Widget):
         self.insert(index, 'command', cnf or kw)
 
     def insert_radiobutton(self, index, cnf={}, **kw):
-        """Addd radio menu item at INDEX."""
+        """Add radio menu item at INDEX."""
         self.insert(index, 'radiobutton', cnf or kw)
 
     def insert_separator(self, index, cnf={}, **kw):
diff --git a/Lib/tkinter/test/runtktests.py b/Lib/tkinter/test/runtktests.py
deleted file mode 100644 (file)
index 33dc54a..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-"""
-Use this module to get and run all tk tests.
-
-tkinter tests should live in a package inside the directory where this file
-lives, like test_tkinter.
-Extensions also should live in packages following the same rule as above.
-"""
-
-import os
-import importlib
-import test.support
-
-this_dir_path = os.path.abspath(os.path.dirname(__file__))
-
-def is_package(path):
-    for name in os.listdir(path):
-        if name in ('__init__.py', '__init__.pyc'):
-            return True
-    return False
-
-def get_tests_modules(basepath=this_dir_path, gui=True, packages=None):
-    """This will import and yield modules whose names start with test_
-    and are inside packages found in the path starting at basepath.
-
-    If packages is specified it should contain package names that
-    want their tests collected.
-    """
-    py_ext = '.py'
-
-    for dirpath, dirnames, filenames in os.walk(basepath):
-        for dirname in list(dirnames):
-            if dirname[0] == '.':
-                dirnames.remove(dirname)
-
-        if is_package(dirpath) and filenames:
-            pkg_name = dirpath[len(basepath) + len(os.sep):].replace('/', '.')
-            if packages and pkg_name not in packages:
-                continue
-
-            filenames = filter(
-                    lambda x: x.startswith('test_') and x.endswith(py_ext),
-                    filenames)
-
-            for name in filenames:
-                try:
-                    yield importlib.import_module(
-                        ".%s.%s" % (pkg_name, name[:-len(py_ext)]),
-                        "tkinter.test")
-                except test.support.ResourceDenied:
-                    if gui:
-                        raise
-
-def get_tests(text=True, gui=True, packages=None):
-    """Yield all the tests in the modules found by get_tests_modules.
-
-    If nogui is True, only tests that do not require a GUI will be
-    returned."""
-    attrs = []
-    if text:
-        attrs.append('tests_nogui')
-    if gui:
-        attrs.append('tests_gui')
-    for module in get_tests_modules(gui=gui, packages=packages):
-        for attr in attrs:
-            for test in getattr(module, attr, ()):
-                yield test
-
-if __name__ == "__main__":
-    test.support.run_unittest(*get_tests())
index 4798bc9c26fc056223c85c1bd0d480545535978d..ce6644af44bbcc6b7ecad80e4b227494e5ddfa48 100644 (file)
@@ -1,6 +1,6 @@
 import unittest
 import tkinter
-from test.support import requires, run_unittest, swap_attr
+from test.support import requires, swap_attr
 from tkinter.test.support import AbstractTkTest
 from tkinter import colorchooser
 
@@ -37,7 +37,5 @@ class ChooserTest(AbstractTkTest, unittest.TestCase):
                          ((74, 60, 140), '#4a3c8c'))
 
 
-tests_gui = (ChooserTest,)
-
 if __name__ == "__main__":
-    run_unittest(*tests_gui)
+    unittest.main()
index 0ea7924f5d5c9ece9ffcbaed6707e5937b529e24..9573d4c8a05c9416fe11de4c06325b2018648703 100644 (file)
@@ -1,7 +1,7 @@
 import unittest
 import tkinter
 from tkinter import font
-from test.support import requires, run_unittest, gc_collect, ALWAYS_EQ
+from test.support import requires, gc_collect, ALWAYS_EQ
 from tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest
 
 requires('gui')
@@ -139,7 +139,5 @@ class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
         self.assertRaises(RuntimeError, font.names)
 
 
-tests_gui = (FontTest, DefaultRootTest)
-
 if __name__ == "__main__":
-    run_unittest(*tests_gui)
+    unittest.main()
index c798966e0b69f20944212cda21d5d5b493895470..9e57f02a6960040f25dc9228eca6e96fdaf7a5ac 100644 (file)
@@ -375,7 +375,5 @@ class PhotoImageTest(AbstractTkTest, unittest.TestCase):
         self.assertEqual(image.transparency_get(4, 6), False)
 
 
-tests_gui = (MiscTest, DefaultRootTest, BitmapImageTest, PhotoImageTest,)
-
 if __name__ == "__main__":
-    support.run_unittest(*tests_gui)
+    unittest.main()
index bab7bcd37ce31882f23cbc2437e90ee734706d2a..d97ae6d456f7bc1cd5424a119708f663ef0b3d48 100644 (file)
@@ -40,7 +40,6 @@ class TkLoadTest(unittest.TestCase):
             self.assertRaises(TclError, tcl.winfo_geometry)
             self.assertRaises(TclError, tcl.loadtk)
 
-tests_gui = (TkLoadTest, )
 
 if __name__ == "__main__":
-    test_support.run_unittest(*tests_gui)
+    unittest.main()
index f6e5b4db1ae1fbb006d76b75f6919e83e51b9e3a..554ae74d6b4153f2eca9e983f5ae485fa4ff88d8 100644 (file)
@@ -339,7 +339,5 @@ class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
         self.assertRaises(RuntimeError, tkinter.mainloop)
 
 
-tests_gui = (MiscTest, DefaultRootTest)
-
 if __name__ == "__main__":
-    support.run_unittest(*tests_gui)
+    unittest.main()
index 911917258806d1320ca46f55db7b9fa9a1b15ae4..6d77ea633187084ea1e8c19e5aa136a1a8307d0f 100644 (file)
@@ -1,6 +1,6 @@
 import unittest
 import tkinter
-from test.support import requires, run_unittest, swap_attr
+from test.support import requires, swap_attr
 from tkinter.test.support import AbstractDefaultRootTest
 from tkinter.simpledialog import Dialog, askinteger
 
@@ -19,7 +19,5 @@ class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
         self.assertRaises(RuntimeError, askinteger, "Go To Line", "Line number")
 
 
-tests_gui = (DefaultRootTest,)
-
 if __name__ == "__main__":
-    run_unittest(*tests_gui)
+    unittest.main()
index 13b7c56a3978d90edcbe39a78b4ec3550963972e..482f150df559fc42629f3a9996dcf9d8302968b0 100644 (file)
@@ -1,6 +1,6 @@
 import unittest
 import tkinter
-from test.support import requires, run_unittest
+from test.support import requires
 from tkinter.test.support import AbstractTkTest
 
 requires('gui')
@@ -41,7 +41,5 @@ class TextTest(AbstractTkTest, unittest.TestCase):
         self.assertEqual(text.search('test', '1.0', 'end'), '1.3')
 
 
-tests_gui = (TextTest, )
-
 if __name__ == "__main__":
-    run_unittest(*tests_gui)
+    unittest.main()
index 0be5282a3a3b30a1ad72cb03af06d0c9d3268804..427e168454362cfb6f91704b3466f07a510ed671 100644 (file)
@@ -338,10 +338,5 @@ class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
         self.assertRaises(RuntimeError, Variable)
 
 
-tests_gui = (TestVariable, TestStringVar, TestIntVar,
-             TestDoubleVar, TestBooleanVar, DefaultRootTest)
-
-
 if __name__ == "__main__":
-    from test.support import run_unittest
-    run_unittest(*tests_gui)
+    unittest.main()
index 39334de8cf41c3caba0f1f0e0ba4267aeeb31e1d..cc227e579679b739d7a8c14167c64b57427021ae 100644 (file)
@@ -1241,8 +1241,11 @@ class MenuTest(AbstractWidgetTest, unittest.TestCase):
 
     def test_configure_type(self):
         widget = self.create()
-        self.checkEnumParam(widget, 'type',
-                'normal', 'tearoff', 'menubar')
+        self.checkEnumParam(
+            widget, 'type',
+            'normal', 'tearoff', 'menubar',
+            errmsg='bad type "{}": must be normal, tearoff, or menubar',
+            )
 
     def test_entryconfigure(self):
         m1 = self.create()
index e6b3eccf7afb8a0cbfcd282a08ad96da871a7253..7fc1ebb95c970ea78a13b87e6bb51e090f2657c9 100644 (file)
@@ -2,7 +2,7 @@ import sys
 import unittest
 import tkinter
 from tkinter import ttk
-from test.support import requires, run_unittest, gc_collect
+from test.support import requires, gc_collect
 from tkinter.test.support import AbstractTkTest, AbstractDefaultRootTest
 
 requires('gui')
@@ -301,6 +301,22 @@ class OptionMenuTest(AbstractTkTest, unittest.TestCase):
         optmenu.destroy()
         optmenu2.destroy()
 
+    def test_trace_variable(self):
+        # prior to bpo45160, tracing a variable would cause the callback to be made twice
+        success = []
+        items = ('a', 'b', 'c')
+        textvar = tkinter.StringVar(self.root)
+        def cb_test(*args):
+            self.assertEqual(textvar.get(), items[1])
+            success.append(True)
+        optmenu = ttk.OptionMenu(self.root, textvar, "a", *items)
+        optmenu.pack()
+        cb_name = textvar.trace("w", cb_test)
+        optmenu['menu'].invoke(1)
+        self.assertEqual(success, [True])
+        textvar.trace_vdelete("w", cb_name)
+        optmenu.destroy()
+
 
 class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
 
@@ -308,7 +324,5 @@ class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
         self._test_widget(ttk.LabeledScale)
 
 
-tests_gui = (LabeledScaleTest, OptionMenuTest, DefaultRootTest)
-
 if __name__ == "__main__":
-    run_unittest(*tests_gui)
+    unittest.main()
diff --git a/Lib/tkinter/test/test_ttk/test_functions.py b/Lib/tkinter/test/test_ttk/test_functions.py
deleted file mode 100644 (file)
index 5c23d6f..0000000
+++ /dev/null
@@ -1,460 +0,0 @@
-# -*- encoding: utf-8 -*-
-import unittest
-from tkinter import ttk
-
-class MockTkApp:
-
-    def splitlist(self, arg):
-        if isinstance(arg, tuple):
-            return arg
-        return arg.split(':')
-
-    def wantobjects(self):
-        return True
-
-
-class MockTclObj(object):
-    typename = 'test'
-
-    def __init__(self, val):
-        self.val = val
-
-    def __str__(self):
-        return str(self.val)
-
-
-class MockStateSpec(object):
-    typename = 'StateSpec'
-
-    def __init__(self, *args):
-        self.val = args
-
-    def __str__(self):
-        return ' '.join(self.val)
-
-
-class InternalFunctionsTest(unittest.TestCase):
-
-    def test_format_optdict(self):
-        def check_against(fmt_opts, result):
-            for i in range(0, len(fmt_opts), 2):
-                self.assertEqual(result.pop(fmt_opts[i]), fmt_opts[i + 1])
-            if result:
-                self.fail("result still got elements: %s" % result)
-
-        # passing an empty dict should return an empty object (tuple here)
-        self.assertFalse(ttk._format_optdict({}))
-
-        # check list formatting
-        check_against(
-            ttk._format_optdict({'fg': 'blue', 'padding': [1, 2, 3, 4]}),
-            {'-fg': 'blue', '-padding': '1 2 3 4'})
-
-        # check tuple formatting (same as list)
-        check_against(
-            ttk._format_optdict({'test': (1, 2, '', 0)}),
-            {'-test': '1 2 {} 0'})
-
-        # check untouched values
-        check_against(
-            ttk._format_optdict({'test': {'left': 'as is'}}),
-            {'-test': {'left': 'as is'}})
-
-        # check script formatting
-        check_against(
-            ttk._format_optdict(
-                {'test': [1, -1, '', '2m', 0], 'test2': 3,
-                 'test3': '', 'test4': 'abc def',
-                 'test5': '"abc"', 'test6': '{}',
-                 'test7': '} -spam {'}, script=True),
-            {'-test': '{1 -1 {} 2m 0}', '-test2': '3',
-             '-test3': '{}', '-test4': '{abc def}',
-             '-test5': '{"abc"}', '-test6': r'\{\}',
-             '-test7': r'\}\ -spam\ \{'})
-
-        opts = {'αβγ': True, 'á': False}
-        orig_opts = opts.copy()
-        # check if giving unicode keys is fine
-        check_against(ttk._format_optdict(opts), {'-αβγ': True, '-á': False})
-        # opts should remain unchanged
-        self.assertEqual(opts, orig_opts)
-
-        # passing values with spaces inside a tuple/list
-        check_against(
-            ttk._format_optdict(
-                {'option': ('one two', 'three')}),
-            {'-option': '{one two} three'})
-        check_against(
-            ttk._format_optdict(
-                {'option': ('one\ttwo', 'three')}),
-            {'-option': '{one\ttwo} three'})
-
-        # passing empty strings inside a tuple/list
-        check_against(
-            ttk._format_optdict(
-                {'option': ('', 'one')}),
-            {'-option': '{} one'})
-
-        # passing values with braces inside a tuple/list
-        check_against(
-            ttk._format_optdict(
-                {'option': ('one} {two', 'three')}),
-            {'-option': r'one\}\ \{two three'})
-
-        # passing quoted strings inside a tuple/list
-        check_against(
-            ttk._format_optdict(
-                {'option': ('"one"', 'two')}),
-            {'-option': '{"one"} two'})
-        check_against(
-            ttk._format_optdict(
-                {'option': ('{one}', 'two')}),
-            {'-option': r'\{one\} two'})
-
-        # ignore an option
-        amount_opts = len(ttk._format_optdict(opts, ignore=('á'))) / 2
-        self.assertEqual(amount_opts, len(opts) - 1)
-
-        # ignore non-existing options
-        amount_opts = len(ttk._format_optdict(opts, ignore=('á', 'b'))) / 2
-        self.assertEqual(amount_opts, len(opts) - 1)
-
-        # ignore every option
-        self.assertFalse(ttk._format_optdict(opts, ignore=list(opts.keys())))
-
-
-    def test_format_mapdict(self):
-        opts = {'a': [('b', 'c', 'val'), ('d', 'otherval'), ('', 'single')]}
-        result = ttk._format_mapdict(opts)
-        self.assertEqual(len(result), len(list(opts.keys())) * 2)
-        self.assertEqual(result, ('-a', '{b c} val d otherval {} single'))
-        self.assertEqual(ttk._format_mapdict(opts, script=True),
-            ('-a', '{{b c} val d otherval {} single}'))
-
-        self.assertEqual(ttk._format_mapdict({2: []}), ('-2', ''))
-
-        opts = {'üñíćódè': [('á', 'vãl')]}
-        result = ttk._format_mapdict(opts)
-        self.assertEqual(result, ('-üñíćódè', 'á vãl'))
-
-        self.assertEqual(ttk._format_mapdict({'opt': [('value',)]}),
-                         ('-opt', '{} value'))
-
-        # empty states
-        valid = {'opt': [('', '', 'hi')]}
-        self.assertEqual(ttk._format_mapdict(valid), ('-opt', '{ } hi'))
-
-        # when passing multiple states, they all must be strings
-        invalid = {'opt': [(1, 2, 'valid val')]}
-        self.assertRaises(TypeError, ttk._format_mapdict, invalid)
-        invalid = {'opt': [([1], '2', 'valid val')]}
-        self.assertRaises(TypeError, ttk._format_mapdict, invalid)
-        # but when passing a single state, it can be anything
-        valid = {'opt': [[1, 'value']]}
-        self.assertEqual(ttk._format_mapdict(valid), ('-opt', '1 value'))
-        # special attention to single states which evaluate to False
-        for stateval in (None, 0, False, '', set()): # just some samples
-            valid = {'opt': [(stateval, 'value')]}
-            self.assertEqual(ttk._format_mapdict(valid),
-                ('-opt', '{} value'))
-
-        # values must be iterable
-        opts = {'a': None}
-        self.assertRaises(TypeError, ttk._format_mapdict, opts)
-
-
-    def test_format_elemcreate(self):
-        self.assertTrue(ttk._format_elemcreate(None), (None, ()))
-
-        ## Testing type = image
-        # image type expects at least an image name, so this should raise
-        # IndexError since it tries to access the index 0 of an empty tuple
-        self.assertRaises(IndexError, ttk._format_elemcreate, 'image')
-
-        # don't format returned values as a tcl script
-        # minimum acceptable for image type
-        self.assertEqual(ttk._format_elemcreate('image', False, 'test'),
-            ("test ", ()))
-        # specifying a state spec
-        self.assertEqual(ttk._format_elemcreate('image', False, 'test',
-            ('', 'a')), ("test {} a", ()))
-        # state spec with multiple states
-        self.assertEqual(ttk._format_elemcreate('image', False, 'test',
-            ('a', 'b', 'c')), ("test {a b} c", ()))
-        # state spec and options
-        self.assertEqual(ttk._format_elemcreate('image', False, 'test',
-            ('a', 'b'), a='x'), ("test a b", ("-a", "x")))
-        # format returned values as a tcl script
-        # state spec with multiple states and an option with a multivalue
-        self.assertEqual(ttk._format_elemcreate('image', True, 'test',
-            ('a', 'b', 'c', 'd'), x=[2, 3]), ("{test {a b c} d}", "-x {2 3}"))
-
-        ## Testing type = vsapi
-        # vsapi type expects at least a class name and a part_id, so this
-        # should raise a ValueError since it tries to get two elements from
-        # an empty tuple
-        self.assertRaises(ValueError, ttk._format_elemcreate, 'vsapi')
-
-        # don't format returned values as a tcl script
-        # minimum acceptable for vsapi
-        self.assertEqual(ttk._format_elemcreate('vsapi', False, 'a', 'b'),
-            ("a b ", ()))
-        # now with a state spec with multiple states
-        self.assertEqual(ttk._format_elemcreate('vsapi', False, 'a', 'b',
-            ('a', 'b', 'c')), ("a b {a b} c", ()))
-        # state spec and option
-        self.assertEqual(ttk._format_elemcreate('vsapi', False, 'a', 'b',
-            ('a', 'b'), opt='x'), ("a b a b", ("-opt", "x")))
-        # format returned values as a tcl script
-        # state spec with a multivalue and an option
-        self.assertEqual(ttk._format_elemcreate('vsapi', True, 'a', 'b',
-            ('a', 'b', [1, 2]), opt='x'), ("{a b {a b} {1 2}}", "-opt x"))
-
-        # Testing type = from
-        # from type expects at least a type name
-        self.assertRaises(IndexError, ttk._format_elemcreate, 'from')
-
-        self.assertEqual(ttk._format_elemcreate('from', False, 'a'),
-            ('a', ()))
-        self.assertEqual(ttk._format_elemcreate('from', False, 'a', 'b'),
-            ('a', ('b', )))
-        self.assertEqual(ttk._format_elemcreate('from', True, 'a', 'b'),
-            ('{a}', 'b'))
-
-
-    def test_format_layoutlist(self):
-        def sample(indent=0, indent_size=2):
-            return ttk._format_layoutlist(
-            [('a', {'other': [1, 2, 3], 'children':
-                [('b', {'children':
-                    [('c', {'children':
-                        [('d', {'nice': 'opt'})], 'something': (1, 2)
-                    })]
-                })]
-            })], indent=indent, indent_size=indent_size)[0]
-
-        def sample_expected(indent=0, indent_size=2):
-            spaces = lambda amount=0: ' ' * (amount + indent)
-            return (
-                "%sa -other {1 2 3} -children {\n"
-                "%sb -children {\n"
-                "%sc -something {1 2} -children {\n"
-                "%sd -nice opt\n"
-                "%s}\n"
-                "%s}\n"
-                "%s}" % (spaces(), spaces(indent_size),
-                    spaces(2 * indent_size), spaces(3 * indent_size),
-                    spaces(2 * indent_size), spaces(indent_size), spaces()))
-
-        # empty layout
-        self.assertEqual(ttk._format_layoutlist([])[0], '')
-
-        # _format_layoutlist always expects the second item (in every item)
-        # to act like a dict (except when the value evaluates to False).
-        self.assertRaises(AttributeError,
-            ttk._format_layoutlist, [('a', 'b')])
-
-        smallest = ttk._format_layoutlist([('a', None)], indent=0)
-        self.assertEqual(smallest,
-            ttk._format_layoutlist([('a', '')], indent=0))
-        self.assertEqual(smallest[0], 'a')
-
-        # testing indentation levels
-        self.assertEqual(sample(), sample_expected())
-        for i in range(4):
-            self.assertEqual(sample(i), sample_expected(i))
-            self.assertEqual(sample(i, i), sample_expected(i, i))
-
-        # invalid layout format, different kind of exceptions will be
-        # raised by internal functions
-
-        # plain wrong format
-        self.assertRaises(ValueError, ttk._format_layoutlist,
-            ['bad', 'format'])
-        # will try to use iteritems in the 'bad' string
-        self.assertRaises(AttributeError, ttk._format_layoutlist,
-           [('name', 'bad')])
-        # bad children formatting
-        self.assertRaises(ValueError, ttk._format_layoutlist,
-            [('name', {'children': {'a': None}})])
-
-
-    def test_script_from_settings(self):
-        # empty options
-        self.assertFalse(ttk._script_from_settings({'name':
-            {'configure': None, 'map': None, 'element create': None}}))
-
-        # empty layout
-        self.assertEqual(
-            ttk._script_from_settings({'name': {'layout': None}}),
-            "ttk::style layout name {\nnull\n}")
-
-        configdict = {'αβγ': True, 'á': False}
-        self.assertTrue(
-            ttk._script_from_settings({'name': {'configure': configdict}}))
-
-        mapdict = {'üñíćódè': [('á', 'vãl')]}
-        self.assertTrue(
-            ttk._script_from_settings({'name': {'map': mapdict}}))
-
-        # invalid image element
-        self.assertRaises(IndexError,
-            ttk._script_from_settings, {'name': {'element create': ['image']}})
-
-        # minimal valid image
-        self.assertTrue(ttk._script_from_settings({'name':
-            {'element create': ['image', 'name']}}))
-
-        image = {'thing': {'element create':
-            ['image', 'name', ('state1', 'state2', 'val')]}}
-        self.assertEqual(ttk._script_from_settings(image),
-            "ttk::style element create thing image {name {state1 state2} val} ")
-
-        image['thing']['element create'].append({'opt': 30})
-        self.assertEqual(ttk._script_from_settings(image),
-            "ttk::style element create thing image {name {state1 state2} val} "
-            "-opt 30")
-
-        image['thing']['element create'][-1]['opt'] = [MockTclObj(3),
-            MockTclObj('2m')]
-        self.assertEqual(ttk._script_from_settings(image),
-            "ttk::style element create thing image {name {state1 state2} val} "
-            "-opt {3 2m}")
-
-
-    def test_tclobj_to_py(self):
-        self.assertEqual(
-            ttk._tclobj_to_py((MockStateSpec('a', 'b'), 'val')),
-            [('a', 'b', 'val')])
-        self.assertEqual(
-            ttk._tclobj_to_py([MockTclObj('1'), 2, MockTclObj('3m')]),
-            [1, 2, '3m'])
-
-
-    def test_list_from_statespec(self):
-        def test_it(sspec, value, res_value, states):
-            self.assertEqual(ttk._list_from_statespec(
-                (sspec, value)), [states + (res_value, )])
-
-        states_even = tuple('state%d' % i for i in range(6))
-        statespec = MockStateSpec(*states_even)
-        test_it(statespec, 'val', 'val', states_even)
-        test_it(statespec, MockTclObj('val'), 'val', states_even)
-
-        states_odd = tuple('state%d' % i for i in range(5))
-        statespec = MockStateSpec(*states_odd)
-        test_it(statespec, 'val', 'val', states_odd)
-
-        test_it(('a', 'b', 'c'), MockTclObj('val'), 'val', ('a', 'b', 'c'))
-
-
-    def test_list_from_layouttuple(self):
-        tk = MockTkApp()
-
-        # empty layout tuple
-        self.assertFalse(ttk._list_from_layouttuple(tk, ()))
-
-        # shortest layout tuple
-        self.assertEqual(ttk._list_from_layouttuple(tk, ('name', )),
-            [('name', {})])
-
-        # not so interesting ltuple
-        sample_ltuple = ('name', '-option', 'value')
-        self.assertEqual(ttk._list_from_layouttuple(tk, sample_ltuple),
-            [('name', {'option': 'value'})])
-
-        # empty children
-        self.assertEqual(ttk._list_from_layouttuple(tk,
-            ('something', '-children', ())),
-            [('something', {'children': []})]
-        )
-
-        # more interesting ltuple
-        ltuple = (
-            'name', '-option', 'niceone', '-children', (
-                ('otherone', '-children', (
-                    ('child', )), '-otheropt', 'othervalue'
-                )
-            )
-        )
-        self.assertEqual(ttk._list_from_layouttuple(tk, ltuple),
-            [('name', {'option': 'niceone', 'children':
-                [('otherone', {'otheropt': 'othervalue', 'children':
-                    [('child', {})]
-                })]
-            })]
-        )
-
-        # bad tuples
-        self.assertRaises(ValueError, ttk._list_from_layouttuple, tk,
-            ('name', 'no_minus'))
-        self.assertRaises(ValueError, ttk._list_from_layouttuple, tk,
-            ('name', 'no_minus', 'value'))
-        self.assertRaises(ValueError, ttk._list_from_layouttuple, tk,
-            ('something', '-children')) # no children
-
-
-    def test_val_or_dict(self):
-        def func(res, opt=None, val=None):
-            if opt is None:
-                return res
-            if val is None:
-                return "test val"
-            return (opt, val)
-
-        tk = MockTkApp()
-        tk.call = func
-
-        self.assertEqual(ttk._val_or_dict(tk, {}, '-test:3'),
-                         {'test': '3'})
-        self.assertEqual(ttk._val_or_dict(tk, {}, ('-test', 3)),
-                         {'test': 3})
-
-        self.assertEqual(ttk._val_or_dict(tk, {'test': None}, 'x:y'),
-                         'test val')
-
-        self.assertEqual(ttk._val_or_dict(tk, {'test': 3}, 'x:y'),
-                         {'test': 3})
-
-
-    def test_convert_stringval(self):
-        tests = (
-            (0, 0), ('09', 9), ('a', 'a'), ('áÚ', 'áÚ'), ([], '[]'),
-            (None, 'None')
-        )
-        for orig, expected in tests:
-            self.assertEqual(ttk._convert_stringval(orig), expected)
-
-
-class TclObjsToPyTest(unittest.TestCase):
-
-    def test_unicode(self):
-        adict = {'opt': 'välúè'}
-        self.assertEqual(ttk.tclobjs_to_py(adict), {'opt': 'välúè'})
-
-        adict['opt'] = MockTclObj(adict['opt'])
-        self.assertEqual(ttk.tclobjs_to_py(adict), {'opt': 'välúè'})
-
-    def test_multivalues(self):
-        adict = {'opt': [1, 2, 3, 4]}
-        self.assertEqual(ttk.tclobjs_to_py(adict), {'opt': [1, 2, 3, 4]})
-
-        adict['opt'] = [1, 'xm', 3]
-        self.assertEqual(ttk.tclobjs_to_py(adict), {'opt': [1, 'xm', 3]})
-
-        adict['opt'] = (MockStateSpec('a', 'b'), 'válũè')
-        self.assertEqual(ttk.tclobjs_to_py(adict),
-            {'opt': [('a', 'b', 'válũè')]})
-
-        self.assertEqual(ttk.tclobjs_to_py({'x': ['y z']}),
-            {'x': ['y z']})
-
-    def test_nosplit(self):
-        self.assertEqual(ttk.tclobjs_to_py({'text': 'some text'}),
-            {'text': 'some text'})
-
-tests_nogui = (InternalFunctionsTest, TclObjsToPyTest)
-
-if __name__ == "__main__":
-    from test.support import run_unittest
-    run_unittest(*tests_nogui)
index 38d70d7a89077d80a11c8fd95424c706eed01605..a33c24ac55beefab7f50c18740abb32b15099a0f 100644 (file)
@@ -3,7 +3,7 @@ import sys
 import tkinter
 from tkinter import ttk
 from test import support
-from test.support import requires, run_unittest
+from test.support import requires
 from tkinter.test.support import AbstractTkTest
 
 requires('gui')
@@ -175,7 +175,5 @@ class StyleTest(AbstractTkTest, unittest.TestCase):
                         self.assertEqual(style.map(newname, key), value)
 
 
-tests_gui = (StyleTest, )
-
 if __name__ == "__main__":
-    run_unittest(*tests_gui)
+    unittest.main()
index ee5af82fd1b4482fa17c95d80bc9ad2e08235d7d..1cb7e74c66ec748f3eb5f965ae947e3c902b3bc5 100644 (file)
@@ -4,7 +4,7 @@ from tkinter import ttk, TclError
 from test.support import requires, gc_collect
 import sys
 
-from tkinter.test.test_ttk.test_functions import MockTclObj
+from test.test_ttk_textonly import MockTclObj
 from tkinter.test.support import (AbstractTkTest, tcl_version, get_tk_patchlevel,
                                   simulate_mouse_click, AbstractDefaultRootTest)
 from tkinter.test.widget_tests import (add_standard_options, noconv,
@@ -61,7 +61,6 @@ class WidgetTest(AbstractTkTest, unittest.TestCase):
         self.widget = ttk.Button(self.root, width=0, text="Text")
         self.widget.pack()
 
-
     def test_identify(self):
         self.widget.update()
         self.assertEqual(self.widget.identify(
@@ -74,7 +73,6 @@ class WidgetTest(AbstractTkTest, unittest.TestCase):
         self.assertRaises(tkinter.TclError, self.widget.identify, 5, None)
         self.assertRaises(tkinter.TclError, self.widget.identify, 5, '')
 
-
     def test_widget_state(self):
         # XXX not sure about the portability of all these tests
         self.assertEqual(self.widget.state(), ())
@@ -169,10 +167,13 @@ class AbstractLabelTest(AbstractWidgetTest):
                 errmsg='image "spam" doesn\'t exist')
 
     def test_configure_compound(self):
+        options = 'none text image center top bottom left right'.split()
+        errmsg = (
+            'bad compound "{}": must be'
+            f' {", ".join(options[:-1])}, or {options[-1]}'
+            )
         widget = self.create()
-        self.checkEnumParam(widget, 'compound',
-                'none', 'text', 'image', 'center',
-                'top', 'bottom', 'left', 'right')
+        self.checkEnumParam(widget, 'compound', *options, errmsg=errmsg)
 
     def test_configure_state(self):
         widget = self.create()
@@ -284,6 +285,7 @@ class EntryTest(AbstractWidgetTest, unittest.TestCase):
         'show', 'state', 'style', 'takefocus', 'textvariable',
         'validate', 'validatecommand', 'width', 'xscrollcommand',
     )
+    IDENTIFY_AS = 'Entry.field' if sys.platform == 'darwin' else 'textarea'
 
     def setUp(self):
         super().setUp()
@@ -316,30 +318,23 @@ class EntryTest(AbstractWidgetTest, unittest.TestCase):
         widget = self.create()
         self.checkCommandParam(widget, 'validatecommand')
 
-
     def test_bbox(self):
         self.assertIsBoundingBox(self.entry.bbox(0))
         self.assertRaises(tkinter.TclError, self.entry.bbox, 'noindex')
         self.assertRaises(tkinter.TclError, self.entry.bbox, None)
 
-
     def test_identify(self):
         self.entry.pack()
         self.entry.update()
 
         # bpo-27313: macOS Cocoa widget differs from X, allow either
-        if sys.platform == 'darwin':
-            self.assertIn(self.entry.identify(5, 5),
-                ("textarea", "Combobox.button") )
-        else:
-            self.assertEqual(self.entry.identify(5, 5), "textarea")
+        self.assertEqual(self.entry.identify(5, 5), self.IDENTIFY_AS)
         self.assertEqual(self.entry.identify(-1, -1), "")
 
         self.assertRaises(tkinter.TclError, self.entry.identify, None, 5)
         self.assertRaises(tkinter.TclError, self.entry.identify, 5, None)
         self.assertRaises(tkinter.TclError, self.entry.identify, 5, '')
 
-
     def test_validation_options(self):
         success = []
         test_invalid = lambda: success.append(True)
@@ -367,7 +362,6 @@ class EntryTest(AbstractWidgetTest, unittest.TestCase):
         self.entry['validatecommand'] = True
         self.assertRaises(tkinter.TclError, self.entry.validate)
 
-
     def test_validation(self):
         validation = []
         def validate(to_insert):
@@ -385,7 +379,6 @@ class EntryTest(AbstractWidgetTest, unittest.TestCase):
         self.assertEqual(validation, [False, True])
         self.assertEqual(self.entry.get(), 'a')
 
-
     def test_revalidation(self):
         def validate(content):
             for letter in content:
@@ -421,6 +414,7 @@ class ComboboxTest(EntryTest, unittest.TestCase):
         'validate', 'validatecommand', 'values',
         'width', 'xscrollcommand',
     )
+    IDENTIFY_AS = 'Combobox.button' if sys.platform == 'darwin' else 'textarea'
 
     def setUp(self):
         super().setUp()
@@ -436,7 +430,8 @@ class ComboboxTest(EntryTest, unittest.TestCase):
     def _show_drop_down_listbox(self):
         width = self.combo.winfo_width()
         x, y = width - 5, 5
-        self.assertRegex(self.combo.identify(x, y), r'.*downarrow\Z')
+        if sys.platform != 'darwin':  # there's no down arrow on macOS
+            self.assertRegex(self.combo.identify(x, y), r'.*downarrow\Z')
         self.combo.event_generate('<ButtonPress-1>', x=x, y=y)
         self.combo.event_generate('<ButtonRelease-1>', x=x, y=y)
         self.combo.update_idletasks()
@@ -458,7 +453,6 @@ class ComboboxTest(EntryTest, unittest.TestCase):
 
         self.assertTrue(success)
 
-
     def test_configure_postcommand(self):
         success = []
 
@@ -474,7 +468,6 @@ class ComboboxTest(EntryTest, unittest.TestCase):
         self._show_drop_down_listbox()
         self.assertEqual(len(success), 1)
 
-
     def test_configure_values(self):
         def check_get_current(getval, currval):
             self.assertEqual(self.combo.get(), getval)
@@ -589,7 +582,6 @@ class PanedWindowTest(AbstractWidgetTest, unittest.TestCase):
         other_child.destroy()
         self.assertRaises(tkinter.TclError, self.paned.pane, 0)
 
-
     def test_forget(self):
         self.assertRaises(tkinter.TclError, self.paned.forget, None)
         self.assertRaises(tkinter.TclError, self.paned.forget, 0)
@@ -598,7 +590,6 @@ class PanedWindowTest(AbstractWidgetTest, unittest.TestCase):
         self.paned.forget(0)
         self.assertRaises(tkinter.TclError, self.paned.forget, 0)
 
-
     def test_insert(self):
         self.assertRaises(tkinter.TclError, self.paned.insert, None, 0)
         self.assertRaises(tkinter.TclError, self.paned.insert, 0, None)
@@ -633,7 +624,6 @@ class PanedWindowTest(AbstractWidgetTest, unittest.TestCase):
         self.assertEqual(self.paned.panes(),
             (str(child3), str(child2), str(child)))
 
-
     def test_pane(self):
         self.assertRaises(tkinter.TclError, self.paned.pane, 0)
 
@@ -650,7 +640,6 @@ class PanedWindowTest(AbstractWidgetTest, unittest.TestCase):
         self.assertRaises(tkinter.TclError, self.paned.pane, 0,
             badoption='somevalue')
 
-
     def test_sashpos(self):
         self.assertRaises(tkinter.TclError, self.paned.sashpos, None)
         self.assertRaises(tkinter.TclError, self.paned.sashpos, '')
@@ -798,7 +787,6 @@ class ScaleTest(AbstractWidgetTest, unittest.TestCase):
 
         self.assertFalse(failure)
 
-
     def test_get(self):
         if self.wantobjects:
             conv = lambda x: x
@@ -816,7 +804,6 @@ class ScaleTest(AbstractWidgetTest, unittest.TestCase):
         self.assertRaises(tkinter.TclError, self.scale.get, '', 0)
         self.assertRaises(tkinter.TclError, self.scale.get, 0, '')
 
-
     def test_set(self):
         if self.wantobjects:
             conv = lambda x: x
@@ -949,7 +936,6 @@ class NotebookTest(AbstractWidgetTest, unittest.TestCase):
         else:
             self.fail("Tab with text 'a' not found")
 
-
     def test_add_and_hidden(self):
         self.assertRaises(tkinter.TclError, self.nb.hide, -1)
         self.assertRaises(tkinter.TclError, self.nb.hide, 'hi')
@@ -968,7 +954,7 @@ class NotebookTest(AbstractWidgetTest, unittest.TestCase):
         tabs = self.nb.tabs()
 
         curr = self.nb.index('current')
-        # verify that the tab gets readded at its previous position
+        # verify that the tab gets re-added at its previous position
         child2_index = self.nb.index(self.child2)
         self.nb.hide(self.child2)
         self.nb.add(self.child2)
@@ -978,7 +964,6 @@ class NotebookTest(AbstractWidgetTest, unittest.TestCase):
         # but the tab next to it (not hidden) is the one selected now
         self.assertEqual(self.nb.index('current'), curr + 1)
 
-
     def test_forget(self):
         self.assertRaises(tkinter.TclError, self.nb.forget, -1)
         self.assertRaises(tkinter.TclError, self.nb.forget, 'hi')
@@ -994,7 +979,6 @@ class NotebookTest(AbstractWidgetTest, unittest.TestCase):
         self.assertEqual(self.nb.index(self.child1), 1)
         self.assertNotEqual(child1_index, self.nb.index(self.child1))
 
-
     def test_index(self):
         self.assertRaises(tkinter.TclError, self.nb.index, -1)
         self.assertRaises(tkinter.TclError, self.nb.index, None)
@@ -1004,7 +988,6 @@ class NotebookTest(AbstractWidgetTest, unittest.TestCase):
         self.assertEqual(self.nb.index(self.child2), 1)
         self.assertEqual(self.nb.index('end'), 2)
 
-
     def test_insert(self):
         # moving tabs
         tabs = self.nb.tabs()
@@ -1037,7 +1020,6 @@ class NotebookTest(AbstractWidgetTest, unittest.TestCase):
         self.assertRaises(tkinter.TclError, self.nb.insert, None, 0)
         self.assertRaises(tkinter.TclError, self.nb.insert, None, None)
 
-
     def test_select(self):
         self.nb.pack()
         self.nb.update()
@@ -1057,7 +1039,6 @@ class NotebookTest(AbstractWidgetTest, unittest.TestCase):
         self.nb.update()
         self.assertTrue(tab_changed)
 
-
     def test_tab(self):
         self.assertRaises(tkinter.TclError, self.nb.tab, -1)
         self.assertRaises(tkinter.TclError, self.nb.tab, 'notab')
@@ -1071,7 +1052,6 @@ class NotebookTest(AbstractWidgetTest, unittest.TestCase):
         self.assertEqual(self.nb.tab(self.child1, text=None), 'abc')
         self.assertEqual(self.nb.tab(self.child1, 'text'), 'abc')
 
-
     def test_configure_tabs(self):
         self.assertEqual(len(self.nb.tabs()), 2)
 
@@ -1080,14 +1060,14 @@ class NotebookTest(AbstractWidgetTest, unittest.TestCase):
 
         self.assertEqual(self.nb.tabs(), ())
 
-
     def test_traversal(self):
         self.nb.pack()
         self.nb.update()
 
         self.nb.select(0)
 
-        self.assertEqual(self.nb.identify(5, 5), 'focus')
+        focus_identify_as = 'focus' if sys.platform != 'darwin' else ''
+        self.assertEqual(self.nb.identify(5, 5), focus_identify_as)
         simulate_mouse_click(self.nb, 5, 5)
         self.nb.focus_force()
         self.nb.event_generate('<Control-Tab>')
@@ -1100,15 +1080,24 @@ class NotebookTest(AbstractWidgetTest, unittest.TestCase):
         self.assertEqual(self.nb.select(), str(self.child2))
 
         self.nb.tab(self.child1, text='a', underline=0)
+        self.nb.tab(self.child2, text='e', underline=0)
         self.nb.enable_traversal()
         self.nb.focus_force()
-        self.assertEqual(self.nb.identify(5, 5), 'focus')
+        self.assertEqual(self.nb.identify(5, 5), focus_identify_as)
         simulate_mouse_click(self.nb, 5, 5)
+        # on macOS Emacs-style keyboard shortcuts are region-dependent;
+        # let's use the regular arrow keys instead
         if sys.platform == 'darwin':
-            self.nb.event_generate('<Option-a>')
+            begin = '<Left>'
+            end = '<Right>'
         else:
-            self.nb.event_generate('<Alt-a>')
+            begin = '<Alt-a>'
+            end = '<Alt-e>'
+        self.nb.event_generate(begin)
         self.assertEqual(self.nb.select(), str(self.child1))
+        self.nb.event_generate(end)
+        self.assertEqual(self.nb.select(), str(self.child2))
+
 
 @add_standard_options(IntegerSizeTests, StandardTtkOptionsTests)
 class SpinboxTest(EntryTest, unittest.TestCase):
@@ -1119,6 +1108,7 @@ class SpinboxTest(EntryTest, unittest.TestCase):
         'takefocus', 'textvariable', 'to', 'validate', 'validatecommand',
         'values', 'width', 'wrap', 'xscrollcommand',
     )
+    IDENTIFY_AS = 'Spinbox.field' if sys.platform == 'darwin' else 'textarea'
 
     def setUp(self):
         super().setUp()
@@ -1367,7 +1357,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
         child1 = self.tv.insert(item_id, 'end')
         self.assertEqual(self.tv.bbox(child1), '')
 
-
     def test_children(self):
         # no children yet, should get an empty tuple
         self.assertEqual(self.tv.get_children(), ())
@@ -1395,7 +1384,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
         self.tv.set_children('')
         self.assertEqual(self.tv.get_children(), ())
 
-
     def test_column(self):
         # return a dict with all options/values
         self.assertIsInstance(self.tv.column('#0'), dict)
@@ -1421,7 +1409,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
             self.assertRaises(tkinter.TclError, self.tv.column, '#0',
                 **kw)
 
-
     def test_delete(self):
         self.assertRaises(tkinter.TclError, self.tv.delete, '#0')
 
@@ -1445,7 +1432,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
         self.tv.delete(item1, item2)
         self.assertFalse(self.tv.get_children())
 
-
     def test_detach_reattach(self):
         item_id = self.tv.insert('', 'end')
         item2 = self.tv.insert(item_id, 'end')
@@ -1487,7 +1473,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
         self.assertEqual(self.tv.get_children(), ())
         self.assertEqual(self.tv.get_children(item_id), ())
 
-
     def test_exists(self):
         self.assertEqual(self.tv.exists('something'), False)
         self.assertEqual(self.tv.exists(''), True)
@@ -1498,7 +1483,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
         # in the tcl interpreter since tk requires an item.
         self.assertRaises(tkinter.TclError, self.tv.exists, None)
 
-
     def test_focus(self):
         # nothing is focused right now
         self.assertEqual(self.tv.focus(), '')
@@ -1513,7 +1497,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
         # try focusing inexistent item
         self.assertRaises(tkinter.TclError, self.tv.focus, 'hi')
 
-
     def test_heading(self):
         # check a dict is returned
         self.assertIsInstance(self.tv.heading('#0'), dict)
@@ -1565,7 +1548,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
         #self.tv.heading('#0', command='I dont exist')
         #simulate_heading_click(5, 5)
 
-
     def test_index(self):
         # item 'what' doesn't exist
         self.assertRaises(tkinter.TclError, self.tv.index, 'what')
@@ -1596,7 +1578,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
         self.tv.delete(item1)
         self.assertRaises(tkinter.TclError, self.tv.index, c2)
 
-
     def test_insert_item(self):
         # parent 'none' doesn't exist
         self.assertRaises(tkinter.TclError, self.tv.insert, 'none', 'end')
@@ -1673,7 +1654,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
         self.assertRaises(tkinter.TclError, self.tv.insert, '', 'end', False)
         self.assertRaises(tkinter.TclError, self.tv.insert, '', 'end', '')
 
-
     def test_selection(self):
         self.assertRaises(TypeError, self.tv.selection, 'spam')
         # item 'none' doesn't exist
@@ -1744,7 +1724,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
         self.tv.selection_toggle((c1, c3))
         self.assertEqual(self.tv.selection(), (c3, item2))
 
-
     def test_set(self):
         self.tv['columns'] = ['A', 'B']
         item = self.tv.insert('', 'end', values=['a', 'b'])
@@ -1777,7 +1756,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
         # inexistent item
         self.assertRaises(tkinter.TclError, self.tv.set, 'notme')
 
-
     def test_tag_bind(self):
         events = []
         item1 = self.tv.insert('', 'end', tags=['call'])
@@ -1810,7 +1788,6 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
         for evt in zip(events[::2], events[1::2]):
             self.assertEqual(evt, (1, 2))
 
-
     def test_tag_configure(self):
         # Just testing parameter passing for now
         self.assertRaises(TypeError, self.tv.tag_configure)
index ab7aeb15e8ff222e3b99bc56badba70ea0f17098..9b58497251d3854ed489517f3ca325b1b9311b6f 100644 (file)
@@ -1643,7 +1643,10 @@ class OptionMenu(Menubutton):
         menu.delete(0, 'end')
         for val in values:
             menu.add_radiobutton(label=val,
-                command=tkinter._setit(self._variable, val, self._callback),
+                command=(
+                    None if self._callback is None
+                    else lambda val=val: self._callback(val)
+                ),
                 variable=self._variable)
 
         if default:
index 894b2d905114cabee12bae325938978e7ca010e4..da70d4115fa2384d43dc51fe12d64a228b2e262c 100644 (file)
@@ -95,7 +95,7 @@ __all__ = [
     'NamedTuple',  # Not really a type.
     'TypedDict',  # Not really a type.
     'Generator',
+
     # Other concrete types.
     'BinaryIO',
     'IO',
@@ -134,7 +134,7 @@ def _type_convert(arg, module=None):
     return arg
 
 
-def _type_check(arg, msg, is_argument=True, module=None):
+def _type_check(arg, msg, is_argument=True, module=None, *, is_class=False):
     """Check that the argument is a type, and return it (internal helper).
 
     As a special case, accept None and return type(None) instead. Also wrap strings
@@ -147,14 +147,16 @@ def _type_check(arg, msg, is_argument=True, module=None):
     We append the repr() of the actual value (truncated to 100 chars).
     """
     invalid_generic_forms = (Generic, Protocol)
-    if is_argument:
-        invalid_generic_forms = invalid_generic_forms + (ClassVar, Final)
+    if not is_class:
+        invalid_generic_forms += (ClassVar,)
+        if is_argument:
+            invalid_generic_forms += (Final,)
 
     arg = _type_convert(arg, module=module)
     if (isinstance(arg, _GenericAlias) and
             arg.__origin__ in invalid_generic_forms):
         raise TypeError(f"{arg} is not valid as type argument")
-    if arg in (Any, NoReturn):
+    if arg in (Any, NoReturn, Final):
         return arg
     if isinstance(arg, _SpecialForm) or arg in (Generic, Protocol):
         raise TypeError(f"Plain {arg} is not valid as type argument")
@@ -353,9 +355,10 @@ class _SpecialForm(_Final, _root=True):
 
 
 class _LiteralSpecialForm(_SpecialForm, _root=True):
-    @_tp_cache(typed=True)
     def __getitem__(self, parameters):
-        return self._getitem(self, parameters)
+        if not isinstance(parameters, tuple):
+            parameters = (parameters,)
+        return self._getitem(self, *parameters)
 
 
 @_SpecialForm
@@ -476,7 +479,8 @@ def Optional(self, parameters):
     return Union[arg, type(None)]
 
 @_LiteralSpecialForm
-def Literal(self, parameters):
+@_tp_cache(typed=True)
+def Literal(self, *parameters):
     """Special typing form to define literal types (a.k.a. value types).
 
     This form can be used to indicate to type checkers that the corresponding
@@ -499,9 +503,6 @@ def Literal(self, parameters):
     """
     # There is no '_type_check' call because arguments to Literal[...] are
     # values, not types.
-    if not isinstance(parameters, tuple):
-        parameters = (parameters,)
-
     parameters = _flatten_literal_params(parameters)
 
     try:
@@ -517,9 +518,10 @@ class ForwardRef(_Final, _root=True):
 
     __slots__ = ('__forward_arg__', '__forward_code__',
                  '__forward_evaluated__', '__forward_value__',
-                 '__forward_is_argument__', '__forward_module__')
+                 '__forward_is_argument__', '__forward_is_class__',
+                 '__forward_module__')
 
-    def __init__(self, arg, is_argument=True, module=None):
+    def __init__(self, arg, is_argument=True, module=None, *, is_class=False):
         if not isinstance(arg, str):
             raise TypeError(f"Forward reference must be a string -- got {arg!r}")
         try:
@@ -531,6 +533,7 @@ class ForwardRef(_Final, _root=True):
         self.__forward_evaluated__ = False
         self.__forward_value__ = None
         self.__forward_is_argument__ = is_argument
+        self.__forward_is_class__ = is_class
         self.__forward_module__ = module
 
     def _evaluate(self, globalns, localns, recursive_guard):
@@ -547,10 +550,11 @@ class ForwardRef(_Final, _root=True):
                 globalns = getattr(
                     sys.modules.get(self.__forward_module__, None), '__dict__', globalns
                 )
-            type_ =_type_check(
+            type_ = _type_check(
                 eval(self.__forward_code__, globalns, localns),
                 "Forward references must evaluate to types.",
                 is_argument=self.__forward_is_argument__,
+                is_class=self.__forward_is_class__,
             )
             self.__forward_value__ = _eval_type(
                 type_, globalns, localns, recursive_guard | {self.__forward_arg__}
@@ -1079,8 +1083,34 @@ def _is_callable_members_only(cls):
     return all(callable(getattr(cls, attr, None)) for attr in _get_protocol_attrs(cls))
 
 
-def _no_init(self, *args, **kwargs):
-    raise TypeError('Protocols cannot be instantiated')
+def _no_init_or_replace_init(self, *args, **kwargs):
+    cls = type(self)
+
+    if cls._is_protocol:
+        raise TypeError('Protocols cannot be instantiated')
+
+    # Already using a custom `__init__`. No need to calculate correct
+    # `__init__` to call. This can lead to RecursionError. See bpo-45121.
+    if cls.__init__ is not _no_init_or_replace_init:
+        return
+
+    # Initially, `__init__` of a protocol subclass is set to `_no_init_or_replace_init`.
+    # The first instantiation of the subclass will call `_no_init_or_replace_init` which
+    # searches for a proper new `__init__` in the MRO. The new `__init__`
+    # replaces the subclass' old `__init__` (ie `_no_init_or_replace_init`). Subsequent
+    # instantiation of the protocol subclass will thus use the new
+    # `__init__` and no longer call `_no_init_or_replace_init`.
+    for base in cls.__mro__:
+        init = base.__dict__.get('__init__', _no_init_or_replace_init)
+        if init is not _no_init_or_replace_init:
+            cls.__init__ = init
+            break
+    else:
+        # should not happen
+        cls.__init__ = object.__init__
+
+    cls.__init__(self, *args, **kwargs)
+
 
 
 def _allow_reckless_class_cheks():
@@ -1209,15 +1239,6 @@ class Protocol(Generic, metaclass=_ProtocolMeta):
 
         # We have nothing more to do for non-protocols...
         if not cls._is_protocol:
-            if cls.__init__ == _no_init:
-                for base in cls.__mro__:
-                    init = base.__dict__.get('__init__', _no_init)
-                    if init != _no_init:
-                        cls.__init__ = init
-                        break
-                else:
-                    # should not happen
-                    cls.__init__ = object.__init__
             return
 
         # ... otherwise check consistency of bases, and prohibit instantiation.
@@ -1228,7 +1249,7 @@ class Protocol(Generic, metaclass=_ProtocolMeta):
                     issubclass(base, Generic) and base._is_protocol):
                 raise TypeError('Protocols can only inherit from other'
                                 ' protocols, got %r' % base)
-        cls.__init__ = _no_init
+        cls.__init__ = _no_init_or_replace_init
 
 
 class _AnnotatedAlias(_GenericAlias, _root=True):
@@ -1433,7 +1454,7 @@ def get_type_hints(obj, globalns=None, localns=None, include_extras=False):
                 if value is None:
                     value = type(None)
                 if isinstance(value, str):
-                    value = ForwardRef(value, is_argument=False)
+                    value = ForwardRef(value, is_argument=False, is_class=True)
                 value = _eval_type(value, base_globals, localns)
                 hints[name] = value
         return hints if include_extras else {k: _strip_annotations(t) for k, t in hints.items()}
@@ -1465,7 +1486,13 @@ def get_type_hints(obj, globalns=None, localns=None, include_extras=False):
         if value is None:
             value = type(None)
         if isinstance(value, str):
-            value = ForwardRef(value)
+            # class-level forward refs were handled above, this must be either
+            # a module-level annotation or a function argument annotation
+            value = ForwardRef(
+                value,
+                is_argument=not isinstance(obj, types.ModuleType),
+                is_class=False,
+            )
         value = _eval_type(value, globalns, localns)
         if name in defaults and defaults[name] is None:
             value = Optional[value]
index 520213c37275555f29d37bf361202fb72d1af4ec..22cb61b7211c6864ede832315c91698ac5d4ae6e 100644 (file)
@@ -52,7 +52,7 @@ class IsolatedAsyncioTestCase(TestCase):
         # We intentionally don't add inspect.iscoroutinefunction() check
         # for func argument because there is no way
         # to check for async function reliably:
-        # 1. It can be "async def func()" iself
+        # 1. It can be "async def func()" itself
         # 2. Class can implement "async def __call__()" method
         # 3. Regular "def func()" that returns awaitable object
         self.addCleanup(*(func, *args), **kwargs)
@@ -72,15 +72,15 @@ class IsolatedAsyncioTestCase(TestCase):
         self._callMaybeAsync(function, *args, **kwargs)
 
     def _callAsync(self, func, /, *args, **kwargs):
-        assert self._asyncioTestLoop is not None
+        assert self._asyncioTestLoop is not None, 'asyncio test loop is not initialized'
         ret = func(*args, **kwargs)
-        assert inspect.isawaitable(ret)
+        assert inspect.isawaitable(ret), f'{func!r} returned non-awaitable'
         fut = self._asyncioTestLoop.create_future()
         self._asyncioCallsQueue.put_nowait((fut, ret))
         return self._asyncioTestLoop.run_until_complete(fut)
 
     def _callMaybeAsync(self, func, /, *args, **kwargs):
-        assert self._asyncioTestLoop is not None
+        assert self._asyncioTestLoop is not None, 'asyncio test loop is not initialized'
         ret = func(*args, **kwargs)
         if inspect.isawaitable(ret):
             fut = self._asyncioTestLoop.create_future()
@@ -109,7 +109,7 @@ class IsolatedAsyncioTestCase(TestCase):
                     fut.set_exception(ex)
 
     def _setupAsyncioLoop(self):
-        assert self._asyncioTestLoop is None
+        assert self._asyncioTestLoop is None, 'asyncio test loop already initialized'
         loop = asyncio.new_event_loop()
         asyncio.set_event_loop(loop)
         loop.set_debug(True)
@@ -119,7 +119,7 @@ class IsolatedAsyncioTestCase(TestCase):
         loop.run_until_complete(fut)
 
     def _tearDownAsyncioLoop(self):
-        assert self._asyncioTestLoop is not None
+        assert self._asyncioTestLoop is not None, 'asyncio test loop is not initialized'
         loop = self._asyncioTestLoop
         self._asyncioTestLoop = None
         self._asyncioCallsQueue.put_nowait(None)
@@ -158,3 +158,12 @@ class IsolatedAsyncioTestCase(TestCase):
             return super().run(result)
         finally:
             self._tearDownAsyncioLoop()
+
+    def debug(self):
+        self._setupAsyncioLoop()
+        super().debug()
+        self._tearDownAsyncioLoop()
+
+    def __del__(self):
+        if self._asyncioTestLoop is not None:
+            self._tearDownAsyncioLoop()
index 735da3750b7f4bf1fc8f2ee4b1147df7dc6b53e0..34f03628ed068a986a99aeda1162a8c48dc22966 100644 (file)
@@ -652,12 +652,20 @@ class TestCase(object):
 
     def debug(self):
         """Run the test without collecting errors in a TestResult"""
-        self.setUp()
-        getattr(self, self._testMethodName)()
-        self.tearDown()
+        testMethod = getattr(self, self._testMethodName)
+        if (getattr(self.__class__, "__unittest_skip__", False) or
+            getattr(testMethod, "__unittest_skip__", False)):
+            # If the class or method was skipped.
+            skip_why = (getattr(self.__class__, '__unittest_skip_why__', '')
+                        or getattr(testMethod, '__unittest_skip_why__', ''))
+            raise SkipTest(skip_why)
+
+        self._callSetUp()
+        self._callTestMethod(testMethod)
+        self._callTearDown()
         while self._cleanups:
-            function, args, kwargs = self._cleanups.pop(-1)
-            function(*args, **kwargs)
+            function, args, kwargs = self._cleanups.pop()
+            self._callCleanup(function, *args, **kwargs)
 
     def skipTest(self, reason):
         """Skip this test."""
index f03c88baca671baefd01b56c25c62ba1c8dbf83b..5c78274d093578da418f6d799b8462261b917b19 100644 (file)
@@ -992,6 +992,11 @@ class NonCallableMock(Base):
         if _new_name in self.__dict__['_spec_asyncs']:
             return AsyncMock(**kw)
 
+        if self._mock_sealed:
+            attribute = f".{kw['name']}" if "name" in kw else "()"
+            mock_name = self._extract_mock_name() + attribute
+            raise AttributeError(mock_name)
+
         _type = type(self)
         if issubclass(_type, MagicMock) and _new_name in _async_method_magics:
             # Any asynchronous magic becomes an AsyncMock
@@ -1010,12 +1015,6 @@ class NonCallableMock(Base):
                 klass = Mock
         else:
             klass = _type.__mro__[1]
-
-        if self._mock_sealed:
-            attribute = "." + kw["name"] if "name" in kw else "()"
-            mock_name = self._extract_mock_name() + attribute
-            raise AttributeError(mock_name)
-
         return klass(**kw)
 
 
@@ -2869,6 +2868,8 @@ def seal(mock):
             continue
         if not isinstance(m, NonCallableMock):
             continue
+        if isinstance(m._mock_children.get(attr), _SpecState):
+            continue
         if m._mock_new_parent is mock:
             seal(m)
 
index d01864b6936ca8d2ec5d47e2c2b6bd7fb1ab092f..2b6e751f3b027fad50809923be9fdd4ab0fde420 100644 (file)
@@ -1,5 +1,10 @@
 import asyncio
 import unittest
+from test import support
+
+
+class MyException(Exception):
+    pass
 
 
 def tearDownModule():
@@ -7,9 +12,14 @@ def tearDownModule():
 
 
 class TestAsyncCase(unittest.TestCase):
-    def test_full_cycle(self):
-        events = []
+    maxDiff = None
+
+    def tearDown(self):
+        # Ensure that IsolatedAsyncioTestCase instances are destroyed before
+        # starting a new event loop
+        support.gc_collect()
 
+    def test_full_cycle(self):
         class Test(unittest.IsolatedAsyncioTestCase):
             def setUp(self):
                 self.assertEqual(events, [])
@@ -18,12 +28,13 @@ class TestAsyncCase(unittest.TestCase):
             async def asyncSetUp(self):
                 self.assertEqual(events, ['setUp'])
                 events.append('asyncSetUp')
+                self.addAsyncCleanup(self.on_cleanup1)
 
             async def test_func(self):
                 self.assertEqual(events, ['setUp',
                                           'asyncSetUp'])
                 events.append('test')
-                self.addAsyncCleanup(self.on_cleanup)
+                self.addAsyncCleanup(self.on_cleanup2)
 
             async def asyncTearDown(self):
                 self.assertEqual(events, ['setUp',
@@ -38,34 +49,48 @@ class TestAsyncCase(unittest.TestCase):
                                           'asyncTearDown'])
                 events.append('tearDown')
 
-            async def on_cleanup(self):
+            async def on_cleanup1(self):
+                self.assertEqual(events, ['setUp',
+                                          'asyncSetUp',
+                                          'test',
+                                          'asyncTearDown',
+                                          'tearDown',
+                                          'cleanup2'])
+                events.append('cleanup1')
+
+            async def on_cleanup2(self):
                 self.assertEqual(events, ['setUp',
                                           'asyncSetUp',
                                           'test',
                                           'asyncTearDown',
                                           'tearDown'])
-                events.append('cleanup')
+                events.append('cleanup2')
 
+        events = []
         test = Test("test_func")
-        test.run()
-        self.assertEqual(events, ['setUp',
-                                  'asyncSetUp',
-                                  'test',
-                                  'asyncTearDown',
-                                  'tearDown',
-                                  'cleanup'])
+        result = test.run()
+        self.assertEqual(result.errors, [])
+        self.assertEqual(result.failures, [])
+        expected = ['setUp', 'asyncSetUp', 'test',
+                    'asyncTearDown', 'tearDown', 'cleanup2', 'cleanup1']
+        self.assertEqual(events, expected)
 
-    def test_exception_in_setup(self):
         events = []
+        test = Test("test_func")
+        test.debug()
+        self.assertEqual(events, expected)
+        test.doCleanups()
+        self.assertEqual(events, expected)
 
+    def test_exception_in_setup(self):
         class Test(unittest.IsolatedAsyncioTestCase):
             async def asyncSetUp(self):
                 events.append('asyncSetUp')
-                raise Exception()
+                self.addAsyncCleanup(self.on_cleanup)
+                raise MyException()
 
             async def test_func(self):
                 events.append('test')
-                self.addAsyncCleanup(self.on_cleanup)
 
             async def asyncTearDown(self):
                 events.append('asyncTearDown')
@@ -74,21 +99,34 @@ class TestAsyncCase(unittest.TestCase):
                 events.append('cleanup')
 
 
+        events = []
         test = Test("test_func")
-        test.run()
-        self.assertEqual(events, ['asyncSetUp'])
+        result = test.run()
+        self.assertEqual(events, ['asyncSetUp', 'cleanup'])
+        self.assertIs(result.errors[0][0], test)
+        self.assertIn('MyException', result.errors[0][1])
 
-    def test_exception_in_test(self):
         events = []
+        test = Test("test_func")
+        try:
+            test.debug()
+        except MyException:
+            pass
+        else:
+            self.fail('Expected a MyException exception')
+        self.assertEqual(events, ['asyncSetUp'])
+        test.doCleanups()
+        self.assertEqual(events, ['asyncSetUp', 'cleanup'])
 
+    def test_exception_in_test(self):
         class Test(unittest.IsolatedAsyncioTestCase):
             async def asyncSetUp(self):
                 events.append('asyncSetUp')
 
             async def test_func(self):
                 events.append('test')
-                raise Exception()
                 self.addAsyncCleanup(self.on_cleanup)
+                raise MyException()
 
             async def asyncTearDown(self):
                 events.append('asyncTearDown')
@@ -96,13 +134,26 @@ class TestAsyncCase(unittest.TestCase):
             async def on_cleanup(self):
                 events.append('cleanup')
 
+        events = []
         test = Test("test_func")
-        test.run()
-        self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown'])
+        result = test.run()
+        self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup'])
+        self.assertIs(result.errors[0][0], test)
+        self.assertIn('MyException', result.errors[0][1])
 
-    def test_exception_in_test_after_adding_cleanup(self):
         events = []
+        test = Test("test_func")
+        try:
+            test.debug()
+        except MyException:
+            pass
+        else:
+            self.fail('Expected a MyException exception')
+        self.assertEqual(events, ['asyncSetUp', 'test'])
+        test.doCleanups()
+        self.assertEqual(events, ['asyncSetUp', 'test', 'cleanup'])
 
+    def test_exception_in_tear_down(self):
         class Test(unittest.IsolatedAsyncioTestCase):
             async def asyncSetUp(self):
                 events.append('asyncSetUp')
@@ -110,62 +161,73 @@ class TestAsyncCase(unittest.TestCase):
             async def test_func(self):
                 events.append('test')
                 self.addAsyncCleanup(self.on_cleanup)
-                raise Exception()
 
             async def asyncTearDown(self):
                 events.append('asyncTearDown')
+                raise MyException()
 
             async def on_cleanup(self):
                 events.append('cleanup')
 
+        events = []
         test = Test("test_func")
-        test.run()
+        result = test.run()
         self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup'])
+        self.assertIs(result.errors[0][0], test)
+        self.assertIn('MyException', result.errors[0][1])
 
-    def test_exception_in_tear_down(self):
         events = []
-
-        class Test(unittest.IsolatedAsyncioTestCase):
-            async def asyncSetUp(self):
-                events.append('asyncSetUp')
-
-            async def test_func(self):
-                events.append('test')
-                self.addAsyncCleanup(self.on_cleanup)
-
-            async def asyncTearDown(self):
-                events.append('asyncTearDown')
-                raise Exception()
-
-            async def on_cleanup(self):
-                events.append('cleanup')
-
         test = Test("test_func")
-        test.run()
+        try:
+            test.debug()
+        except MyException:
+            pass
+        else:
+            self.fail('Expected a MyException exception')
+        self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown'])
+        test.doCleanups()
         self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup'])
 
-
     def test_exception_in_tear_clean_up(self):
-        events = []
-
         class Test(unittest.IsolatedAsyncioTestCase):
             async def asyncSetUp(self):
                 events.append('asyncSetUp')
 
             async def test_func(self):
                 events.append('test')
-                self.addAsyncCleanup(self.on_cleanup)
+                self.addAsyncCleanup(self.on_cleanup1)
+                self.addAsyncCleanup(self.on_cleanup2)
 
             async def asyncTearDown(self):
                 events.append('asyncTearDown')
 
-            async def on_cleanup(self):
-                events.append('cleanup')
-                raise Exception()
+            async def on_cleanup1(self):
+                events.append('cleanup1')
+                raise MyException('some error')
 
+            async def on_cleanup2(self):
+                events.append('cleanup2')
+                raise MyException('other error')
+
+        events = []
         test = Test("test_func")
-        test.run()
-        self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup'])
+        result = test.run()
+        self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup2', 'cleanup1'])
+        self.assertIs(result.errors[0][0], test)
+        self.assertIn('MyException: other error', result.errors[0][1])
+        self.assertIn('MyException: some error', result.errors[1][1])
+
+        events = []
+        test = Test("test_func")
+        try:
+            test.debug()
+        except MyException:
+            pass
+        else:
+            self.fail('Expected a MyException exception')
+        self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup2'])
+        test.doCleanups()
+        self.assertEqual(events, ['asyncSetUp', 'test', 'asyncTearDown', 'cleanup2', 'cleanup1'])
 
     def test_cleanups_interleave_order(self):
         events = []
@@ -217,6 +279,5 @@ class TestAsyncCase(unittest.TestCase):
         self.assertFalse(output.wasSuccessful())
 
 
-
 if __name__ == "__main__":
     unittest.main()
index 79b27e6daae2557bcda411e0282f3136cedfb9a0..7cb9d33f5e5f3898d77a303d287c129b908d361e 100644 (file)
@@ -161,6 +161,58 @@ class Test_TestSkipping(unittest.TestCase):
         self.assertEqual(result.skipped, [(test, "testing")])
         self.assertEqual(record, [])
 
+    def test_skip_in_setup(self):
+        class Foo(unittest.TestCase):
+            def setUp(self):
+                self.skipTest("skip")
+            def test_skip_me(self):
+                self.fail("shouldn't come here")
+        events = []
+        result = LoggingResult(events)
+        test = Foo("test_skip_me")
+        self.assertIs(test.run(result), result)
+        self.assertEqual(events, ['startTest', 'addSkip', 'stopTest'])
+        self.assertEqual(result.skipped, [(test, "skip")])
+
+    def test_skip_in_cleanup(self):
+        class Foo(unittest.TestCase):
+            def test_skip_me(self):
+                pass
+            def tearDown(self):
+                self.skipTest("skip")
+        events = []
+        result = LoggingResult(events)
+        test = Foo("test_skip_me")
+        self.assertIs(test.run(result), result)
+        self.assertEqual(events, ['startTest', 'addSkip', 'stopTest'])
+        self.assertEqual(result.skipped, [(test, "skip")])
+
+    def test_failure_and_skip_in_cleanup(self):
+        class Foo(unittest.TestCase):
+            def test_skip_me(self):
+                self.fail("fail")
+            def tearDown(self):
+                self.skipTest("skip")
+        events = []
+        result = LoggingResult(events)
+        test = Foo("test_skip_me")
+        self.assertIs(test.run(result), result)
+        self.assertEqual(events, ['startTest', 'addSkip', 'addFailure', 'stopTest'])
+        self.assertEqual(result.skipped, [(test, "skip")])
+
+    def test_skipping_and_fail_in_cleanup(self):
+        class Foo(unittest.TestCase):
+            def test_skip_me(self):
+                self.skipTest("skip")
+            def tearDown(self):
+                self.fail("fail")
+        events = []
+        result = LoggingResult(events)
+        test = Foo("test_skip_me")
+        self.assertIs(test.run(result), result)
+        self.assertEqual(events, ['startTest', 'addSkip', 'addFailure', 'stopTest'])
+        self.assertEqual(result.skipped, [(test, "skip")])
+
     def test_expected_failure(self):
         class Foo(unittest.TestCase):
             @unittest.expectedFailure
@@ -172,7 +224,9 @@ class Test_TestSkipping(unittest.TestCase):
         self.assertIs(test.run(result), result)
         self.assertEqual(events,
                          ['startTest', 'addExpectedFailure', 'stopTest'])
+        self.assertFalse(result.failures)
         self.assertEqual(result.expectedFailures[0][0], test)
+        self.assertFalse(result.unexpectedSuccesses)
         self.assertTrue(result.wasSuccessful())
 
     def test_expected_failure_with_wrapped_class(self):
@@ -187,7 +241,9 @@ class Test_TestSkipping(unittest.TestCase):
         self.assertIs(test.run(result), result)
         self.assertEqual(events,
                          ['startTest', 'addExpectedFailure', 'stopTest'])
+        self.assertFalse(result.failures)
         self.assertEqual(result.expectedFailures[0][0], test)
+        self.assertFalse(result.unexpectedSuccesses)
         self.assertTrue(result.wasSuccessful())
 
     def test_expected_failure_with_wrapped_subclass(self):
@@ -205,7 +261,9 @@ class Test_TestSkipping(unittest.TestCase):
         self.assertIs(test.run(result), result)
         self.assertEqual(events,
                          ['startTest', 'addExpectedFailure', 'stopTest'])
+        self.assertFalse(result.failures)
         self.assertEqual(result.expectedFailures[0][0], test)
+        self.assertFalse(result.unexpectedSuccesses)
         self.assertTrue(result.wasSuccessful())
 
     def test_expected_failure_subtests(self):
@@ -229,8 +287,48 @@ class Test_TestSkipping(unittest.TestCase):
         self.assertEqual(events,
                          ['startTest', 'addSubTestSuccess',
                           'addExpectedFailure', 'stopTest'])
+        self.assertFalse(result.failures)
         self.assertEqual(len(result.expectedFailures), 1)
         self.assertIs(result.expectedFailures[0][0], test)
+        self.assertFalse(result.unexpectedSuccesses)
+        self.assertTrue(result.wasSuccessful())
+
+    def test_expected_failure_and_fail_in_cleanup(self):
+        class Foo(unittest.TestCase):
+            @unittest.expectedFailure
+            def test_die(self):
+                self.fail("help me!")
+            def tearDown(self):
+                self.fail("bad tearDown")
+        events = []
+        result = LoggingResult(events)
+        test = Foo("test_die")
+        self.assertIs(test.run(result), result)
+        self.assertEqual(events,
+                         ['startTest', 'addFailure', 'stopTest'])
+        self.assertEqual(len(result.failures), 1)
+        self.assertIn('AssertionError: bad tearDown', result.failures[0][1])
+        self.assertFalse(result.expectedFailures)
+        self.assertFalse(result.unexpectedSuccesses)
+        self.assertFalse(result.wasSuccessful())
+
+    def test_expected_failure_and_skip_in_cleanup(self):
+        class Foo(unittest.TestCase):
+            @unittest.expectedFailure
+            def test_die(self):
+                self.fail("help me!")
+            def tearDown(self):
+                self.skipTest("skip")
+        events = []
+        result = LoggingResult(events)
+        test = Foo("test_die")
+        self.assertIs(test.run(result), result)
+        self.assertEqual(events,
+                         ['startTest', 'addSkip', 'stopTest'])
+        self.assertFalse(result.failures)
+        self.assertFalse(result.expectedFailures)
+        self.assertFalse(result.unexpectedSuccesses)
+        self.assertEqual(result.skipped, [(test, "skip")])
         self.assertTrue(result.wasSuccessful())
 
     def test_unexpected_success(self):
@@ -245,6 +343,7 @@ class Test_TestSkipping(unittest.TestCase):
         self.assertEqual(events,
                          ['startTest', 'addUnexpectedSuccess', 'stopTest'])
         self.assertFalse(result.failures)
+        self.assertFalse(result.expectedFailures)
         self.assertEqual(result.unexpectedSuccesses, [test])
         self.assertFalse(result.wasSuccessful())
 
@@ -269,9 +368,48 @@ class Test_TestSkipping(unittest.TestCase):
                           'addSubTestSuccess', 'addSubTestSuccess',
                           'addUnexpectedSuccess', 'stopTest'])
         self.assertFalse(result.failures)
+        self.assertFalse(result.expectedFailures)
         self.assertEqual(result.unexpectedSuccesses, [test])
         self.assertFalse(result.wasSuccessful())
 
+    def test_unexpected_success_and_fail_in_cleanup(self):
+        class Foo(unittest.TestCase):
+            @unittest.expectedFailure
+            def test_die(self):
+                pass
+            def tearDown(self):
+                self.fail("bad tearDown")
+        events = []
+        result = LoggingResult(events)
+        test = Foo("test_die")
+        self.assertIs(test.run(result), result)
+        self.assertEqual(events,
+                         ['startTest', 'addFailure', 'stopTest'])
+        self.assertEqual(len(result.failures), 1)
+        self.assertIn('AssertionError: bad tearDown', result.failures[0][1])
+        self.assertFalse(result.expectedFailures)
+        self.assertFalse(result.unexpectedSuccesses)
+        self.assertFalse(result.wasSuccessful())
+
+    def test_unexpected_success_and_skip_in_cleanup(self):
+        class Foo(unittest.TestCase):
+            @unittest.expectedFailure
+            def test_die(self):
+                pass
+            def tearDown(self):
+                self.skipTest("skip")
+        events = []
+        result = LoggingResult(events)
+        test = Foo("test_die")
+        self.assertIs(test.run(result), result)
+        self.assertEqual(events,
+                         ['startTest', 'addSkip', 'stopTest'])
+        self.assertFalse(result.failures)
+        self.assertFalse(result.expectedFailures)
+        self.assertFalse(result.unexpectedSuccesses)
+        self.assertEqual(result.skipped, [(test, "skip")])
+        self.assertTrue(result.wasSuccessful())
+
     def test_skip_doesnt_run_setup(self):
         class Foo(unittest.TestCase):
             wasSetUp = False
@@ -322,5 +460,71 @@ class Test_TestSkipping(unittest.TestCase):
         self.assertIs(suite.run(result), result)
         self.assertEqual(result.skipped, [(test, "")])
 
+    def test_debug_skipping(self):
+        class Foo(unittest.TestCase):
+            def setUp(self):
+                events.append("setUp")
+            def tearDown(self):
+                events.append("tearDown")
+            def test1(self):
+                self.skipTest('skipping exception')
+                events.append("test1")
+            @unittest.skip("skipping decorator")
+            def test2(self):
+                events.append("test2")
+
+        events = []
+        test = Foo("test1")
+        with self.assertRaises(unittest.SkipTest) as cm:
+            test.debug()
+        self.assertIn("skipping exception", str(cm.exception))
+        self.assertEqual(events, ["setUp"])
+
+        events = []
+        test = Foo("test2")
+        with self.assertRaises(unittest.SkipTest) as cm:
+            test.debug()
+        self.assertIn("skipping decorator", str(cm.exception))
+        self.assertEqual(events, [])
+
+    def test_debug_skipping_class(self):
+        @unittest.skip("testing")
+        class Foo(unittest.TestCase):
+            def setUp(self):
+                events.append("setUp")
+            def tearDown(self):
+                events.append("tearDown")
+            def test(self):
+                events.append("test")
+
+        events = []
+        test = Foo("test")
+        with self.assertRaises(unittest.SkipTest) as cm:
+            test.debug()
+        self.assertIn("testing", str(cm.exception))
+        self.assertEqual(events, [])
+
+    def test_debug_skipping_subtests(self):
+        class Foo(unittest.TestCase):
+            def setUp(self):
+                events.append("setUp")
+            def tearDown(self):
+                events.append("tearDown")
+            def test(self):
+                with self.subTest(a=1):
+                    events.append('subtest')
+                    self.skipTest("skip subtest")
+                    events.append('end subtest')
+                events.append('end test')
+
+        events = []
+        result = LoggingResult(events)
+        test = Foo("test")
+        with self.assertRaises(unittest.SkipTest) as cm:
+            test.debug()
+        self.assertIn("skip subtest", str(cm.exception))
+        self.assertEqual(events, ['setUp', 'subtest'])
+
+
 if __name__ == "__main__":
     unittest.main()
index 59f52338d411e61fdb0abaf3353256efa23253ac..daba2b49b46f6351d3032582935beea3ab615939 100644 (file)
@@ -128,7 +128,7 @@ class TestSealable(unittest.TestCase):
             m.attr_sample2
 
     def test_integration_with_spec_method_definition(self):
-        """You need to defin the methods, even if they are in the spec"""
+        """You need to define the methods, even if they are in the spec"""
         m = mock.Mock(SampleObject)
 
         m.method_sample1.return_value = 1
@@ -171,6 +171,67 @@ class TestSealable(unittest.TestCase):
             m.test1().test2.test3().test4()
         self.assertIn("mock.test1().test2.test3().test4", str(cm.exception))
 
+    def test_seal_with_autospec(self):
+        # https://bugs.python.org/issue45156
+        class Foo:
+            foo = 0
+            def bar1(self):
+                return 1
+            def bar2(self):
+                return 2
+
+            class Baz:
+                baz = 3
+                def ban(self):
+                    return 4
+
+        for spec_set in (True, False):
+            with self.subTest(spec_set=spec_set):
+                foo = mock.create_autospec(Foo, spec_set=spec_set)
+                foo.bar1.return_value = 'a'
+                foo.Baz.ban.return_value = 'b'
+
+                mock.seal(foo)
+
+                self.assertIsInstance(foo.foo, mock.NonCallableMagicMock)
+                self.assertIsInstance(foo.bar1, mock.MagicMock)
+                self.assertIsInstance(foo.bar2, mock.MagicMock)
+                self.assertIsInstance(foo.Baz, mock.MagicMock)
+                self.assertIsInstance(foo.Baz.baz, mock.NonCallableMagicMock)
+                self.assertIsInstance(foo.Baz.ban, mock.MagicMock)
+
+                self.assertEqual(foo.bar1(), 'a')
+                foo.bar1.return_value = 'new_a'
+                self.assertEqual(foo.bar1(), 'new_a')
+                self.assertEqual(foo.Baz.ban(), 'b')
+                foo.Baz.ban.return_value = 'new_b'
+                self.assertEqual(foo.Baz.ban(), 'new_b')
+
+                with self.assertRaises(TypeError):
+                    foo.foo()
+                with self.assertRaises(AttributeError):
+                    foo.bar = 1
+                with self.assertRaises(AttributeError):
+                    foo.bar2()
+
+                foo.bar2.return_value = 'bar2'
+                self.assertEqual(foo.bar2(), 'bar2')
+
+                with self.assertRaises(AttributeError):
+                    foo.missing_attr
+                with self.assertRaises(AttributeError):
+                    foo.missing_attr = 1
+                with self.assertRaises(AttributeError):
+                    foo.missing_method()
+                with self.assertRaises(TypeError):
+                    foo.Baz.baz()
+                with self.assertRaises(AttributeError):
+                    foo.Baz.missing_attr
+                with self.assertRaises(AttributeError):
+                    foo.Baz.missing_attr = 1
+                with self.assertRaises(AttributeError):
+                    foo.Baz.missing_method()
+
 
 if __name__ == "__main__":
     unittest.main()
index 8009deb3ea700341bb65e1a84a7838bd80dad852..ce1f5d710ad76889458cb18f365cfda538ea1f50 100644 (file)
@@ -142,6 +142,20 @@ class EnvBuilder:
         context.bin_name = binname
         context.env_exe = os.path.join(binpath, exename)
         create_if_needed(binpath)
+        # Assign and update the command to use when launching the newly created
+        # environment, in case it isn't simply the executable script (e.g. bpo-45337)
+        context.env_exec_cmd = context.env_exe
+        if sys.platform == 'win32':
+            # bpo-45337: Fix up env_exec_cmd to account for file system redirections.
+            # Some redirects only apply to CreateFile and not CreateProcess
+            real_env_exe = os.path.realpath(context.env_exe)
+            if os.path.normcase(real_env_exe) != os.path.normcase(context.env_exe):
+                logger.warning('Actual environment location may have moved due to '
+                               'redirects, links or junctions.\n'
+                               '  Requested location: "%s"\n'
+                               '  Actual location:    "%s"',
+                               context.env_exe, real_env_exe)
+                context.env_exec_cmd = real_env_exe
         return context
 
     def create_configuration(self, context):
@@ -293,8 +307,8 @@ class EnvBuilder:
         # We run ensurepip in isolated mode to avoid side effects from
         # environment vars, the current directory and anything else
         # intended for the global Python environment
-        cmd = [context.env_exe, '-Im', 'ensurepip', '--upgrade',
-                                                    '--default-pip']
+        cmd = [context.env_exec_cmd, '-Im', 'ensurepip', '--upgrade',
+                                                         '--default-pip']
         subprocess.check_output(cmd, stderr=subprocess.STDOUT)
 
     def setup_scripts(self, context):
@@ -394,11 +408,7 @@ class EnvBuilder:
         logger.debug(
             f'Upgrading {CORE_VENV_DEPS} packages in {context.bin_path}'
         )
-        if sys.platform == 'win32':
-            python_exe = os.path.join(context.bin_path, 'python.exe')
-        else:
-            python_exe = os.path.join(context.bin_path, 'python')
-        cmd = [python_exe, '-m', 'pip', 'install', '--upgrade']
+        cmd = [context.env_exec_cmd, '-m', 'pip', 'install', '--upgrade']
         cmd.extend(CORE_VENV_DEPS)
         subprocess.check_call(cmd)
 
index 2fb3852c3cf1a565ccf813f876a135ecf6f99712..9d3646a4fc69822e61df3aa7679f7f9f608b7f94 100644 (file)
@@ -197,7 +197,7 @@ else {
         $Prompt = $pyvenvCfg['prompt'];\r
     }\r
     else {\r
-        Write-Verbose "  Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virutal environment)"\r
+        Write-Verbose "  Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)"\r
         Write-Verbose "  Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"\r
         $Prompt = Split-Path -Path $venvDir -Leaf\r
     }\r
index 48ac0070549b3fa25090b087f7050c9661b1c2cf..6e16578dbb648f57f729579f00fd06a4ad14b66f 100644 (file)
@@ -137,7 +137,7 @@ def validator(application):
 
     """
     When applied between a WSGI server and a WSGI application, this
-    middleware will check for WSGI compliancy on a number of levels.
+    middleware will check for WSGI compliance on a number of levels.
     This middleware does not modify the request or response in any
     way, but will raise an AssertionError if anything seems off
     (except for a failure to close the application iterator, which
index 9e7449c88dfc0d41a5ccfa299a4f30e7023d31c0..a614cef6ab2f1a52b3ece45f9a3c2e6920802e15 100644 (file)
@@ -264,16 +264,22 @@ boolean = Boolean = bool
 
 # Issue #13305: different format codes across platforms
 _day0 = datetime(1, 1, 1)
-if _day0.strftime('%Y') == '0001':      # Mac OS X
+def _try(fmt):
+    try:
+        return _day0.strftime(fmt) == '0001'
+    except ValueError:
+        return False
+if _try('%Y'):      # Mac OS X
     def _iso8601_format(value):
         return value.strftime("%Y%m%dT%H:%M:%S")
-elif _day0.strftime('%4Y') == '0001':   # Linux
+elif _try('%4Y'):   # Linux
     def _iso8601_format(value):
         return value.strftime("%4Y%m%dT%H:%M:%S")
 else:
     def _iso8601_format(value):
         return value.strftime("%Y%m%dT%H:%M:%S").zfill(17)
 del _day0
+del _try
 
 
 def _strftime(value):
index 9810637d3ef65eecb617c8fc86526d8dcb9a5094..de68380792f17c329b02d9ace3a3d6739d5e9c2e 100644 (file)
@@ -338,7 +338,7 @@ class ZoneInfo(tzinfo):
                 comp_idx = trans_idx[i + 1]
 
                 # If the following transition is also DST and we couldn't
-                # find the DST offset by this point, we're going ot have to
+                # find the DST offset by this point, we're going to have to
                 # skip it and hope this transition gets assigned later
                 if isdsts[comp_idx]:
                     continue
diff --git a/Mac/BuildScript/bpo-44828-filedialog-crash-monterey.patch b/Mac/BuildScript/bpo-44828-filedialog-crash-monterey.patch
new file mode 100644 (file)
index 0000000..0591492
--- /dev/null
@@ -0,0 +1,203 @@
+--- tk8.6.11/macosx/tkMacOSXDialog.c   2020-12-31 01:46:07.000000000 +0000
++++ tk8.6.11-patched/macosx/tkMacOSXDialog.c   2021-10-28 15:13:03.000000000 +0000
+@@ -221,7 +221,7 @@
+               returnCode: (NSModalResponse) returnCode
+              contextInfo: (void *) contextInfo
+ {
+-    FilePanelCallbackInfo *callbackInfo = contextInfo;
++    FilePanelCallbackInfo *callbackInfo = (FilePanelCallbackInfo *)contextInfo;
+     if (returnCode == modalOK) {
+       Tcl_Obj *resultObj;
+@@ -266,7 +266,7 @@
+ - (void) tkAlertDidEnd: (NSAlert *) alert returnCode: (NSInteger) returnCode
+       contextInfo: (void *) contextInfo
+ {
+-    AlertCallbackInfo *callbackInfo = contextInfo;
++    AlertCallbackInfo *callbackInfo = (AlertCallbackInfo *)contextInfo;
+     if (returnCode >= NSAlertFirstButtonReturn) {
+       Tcl_Obj *resultObj = Tcl_NewStringObj(alertButtonStrings[
+@@ -350,49 +350,42 @@
+     FilePanelCallbackInfo *callbackInfo)
+ {
+     NSInteger modalReturnCode;
++    int OSVersion = [NSApp macOSVersion];
+-    if (parent && ![parent attachedSheet]) {
+-      [panel beginSheetModalForWindow:parent
+-             completionHandler:^(NSModalResponse returnCode) {
+-          [NSApp tkFilePanelDidEnd:panel
+-                     returnCode:returnCode
+-                     contextInfo:callbackInfo ];
+-          }];
+-
+-      /*
+-       * The sheet has been prepared, so now we have to run it as a modal
+-       * window.  Using [NSApp runModalForWindow:] on macOS 10.15 or later
+-       * generates warnings on stderr.  But using [NSOpenPanel runModal] or
+-       * [NSSavePanel runModal] on 10.14 or earler does not cause the
+-       * completion handler to run when the panel is closed.
+-       */
++    /*
++     * Use a sheet if -parent is specified (unless there is already a sheet).
++     */
+-      if ([NSApp macOSVersion] > 101400) {
+-          modalReturnCode = [panel runModal];
+-      } else {
++    if (parent && ![parent attachedSheet]) {
++      if (OSVersion < 101500) {
++          [panel beginSheetModalForWindow:parent
++                        completionHandler:^(NSModalResponse returnCode) {
++                  [NSApp tkFilePanelDidEnd:panel
++                                returnCode:returnCode
++                               contextInfo:callbackInfo ];
++              }];
+           modalReturnCode = [NSApp runModalForWindow:panel];
+-      }
+-    } else {
+-
+-      /*
+-       * For the standalone file dialog, completion handlers do not work
+-       * at all on macOS 10.14 and earlier.
+-       */
+-
+-      if ([NSApp macOSVersion] > 101400) {
+-          [panel beginWithCompletionHandler:^(NSModalResponse returnCode) {
++      } else if (OSVersion < 110000) {
++          [panel beginSheetModalForWindow:parent
++                        completionHandler:^(NSModalResponse returnCode) {
+                   [NSApp tkFilePanelDidEnd:panel
+-                                returnCode:returnCode
+-                               contextInfo:callbackInfo ];
+-          }];
++                                returnCode:returnCode
++                               contextInfo:callbackInfo ];
++              }];
+           modalReturnCode = [panel runModal];
+       } else {
++          [parent beginSheet: panel completionHandler:nil];
+           modalReturnCode = [panel runModal];
+           [NSApp tkFilePanelDidEnd:panel
+-                        returnCode:modalReturnCode
+-                       contextInfo:callbackInfo ];
+-          [panel close];
++                        returnCode:modalReturnCode
++                       contextInfo:callbackInfo ];
++              [parent endSheet:panel];
+       }
++    } else {
++      modalReturnCode = [panel runModal];
++      [NSApp tkFilePanelDidEnd:panel
++                    returnCode:modalReturnCode
++                   contextInfo:callbackInfo ];
+     }
+     return callbackInfo->cmdObj ? modalOther : modalReturnCode;
+ }
+@@ -422,7 +414,7 @@
+     Tcl_Obj *const objv[])    /* Argument objects. */
+ {
+     int result = TCL_ERROR;
+-    Tk_Window parent, tkwin = clientData;
++    Tk_Window parent, tkwin = (Tk_Window)clientData;
+     const char *title = NULL;
+     int i;
+     NSColor *color = nil, *initialColor = nil;
+@@ -677,7 +669,7 @@
+     int objc,                 /* Number of arguments. */
+     Tcl_Obj *const objv[])    /* Argument objects. */
+ {
+-    Tk_Window tkwin = clientData;
++    Tk_Window tkwin = (Tk_Window)clientData;
+     char *str;
+     int i, result = TCL_ERROR, haveParentOption = 0;
+     int index, len, multiple = 0;
+@@ -1679,10 +1671,10 @@
+     if (!fontchooserInterp) {
+       return;
+     }
+-    fcdPtr = Tcl_GetAssocData(fontchooserInterp, "::tk::fontchooser", NULL);
++    fcdPtr = (FontchooserData *)Tcl_GetAssocData(fontchooserInterp, "::tk::fontchooser", NULL);
+     switch (kind) {
+     case FontchooserClosed:
+-      if (fcdPtr->parent != None) {
++      if (fcdPtr->parent != NULL) {
+           TkSendVirtualEvent(fcdPtr->parent, "TkFontchooserVisibility", NULL);
+           fontchooserInterp = NULL;
+       }
+@@ -1738,7 +1730,7 @@
+     switch(optionIndex) {
+     case FontchooserParent:
+-      if (fcdPtr->parent != None) {
++      if (fcdPtr->parent != NULL) {
+           resObj = Tcl_NewStringObj(
+                   ((TkWindow *)fcdPtr->parent)->pathName, -1);
+       } else {
+@@ -1801,7 +1793,7 @@
+     Tcl_Obj *const objv[])
+ {
+     Tk_Window tkwin = (Tk_Window)clientData;
+-    FontchooserData *fcdPtr = Tcl_GetAssocData(interp, "::tk::fontchooser",
++    FontchooserData *fcdPtr = (FontchooserData *)Tcl_GetAssocData(interp, "::tk::fontchooser",
+           NULL);
+     int i, r = TCL_OK;
+@@ -1858,7 +1850,7 @@
+           Tk_Window parent = Tk_NameToWindow(interp,
+                   Tcl_GetString(objv[i+1]), tkwin);
+-          if (parent == None) {
++          if (parent == NULL) {
+               return TCL_ERROR;
+           }
+           if (fcdPtr->parent) {
+@@ -1885,7 +1877,7 @@
+               fcdPtr->titleObj = NULL;
+           }
+           break;
+-      case FontchooserFont:
++      case FontchooserFont: {
+           Tcl_GetStringFromObj(objv[i+1], &len);
+           if (len) {
+               Tk_Font f = Tk_AllocFontFromObj(interp, tkwin, objv[i+1]);
+@@ -1919,6 +1911,7 @@
+                       "TkFontchooserFontChanged", NULL);
+           }
+           break;
++      }
+       case FontchooserCmd:
+           if (fcdPtr->cmdObj) {
+               Tcl_DecrRefCount(fcdPtr->cmdObj);
+@@ -1964,10 +1957,10 @@
+     TCL_UNUSED(int),
+     TCL_UNUSED(Tcl_Obj *const *))
+ {
+-    FontchooserData *fcdPtr = Tcl_GetAssocData(interp, "::tk::fontchooser",
++    FontchooserData *fcdPtr = (FontchooserData *)Tcl_GetAssocData(interp, "::tk::fontchooser",
+           NULL);
+-    if (fcdPtr->parent == None) {
++    if (fcdPtr->parent == NULL) {
+       fcdPtr->parent = (Tk_Window)clientData;
+       Tk_CreateEventHandler(fcdPtr->parent, StructureNotifyMask,
+               FontchooserParentEventHandler, fcdPtr);
+@@ -2042,7 +2035,7 @@
+     ClientData clientData,
+     XEvent *eventPtr)
+ {
+-    FontchooserData *fcdPtr = clientData;
++    FontchooserData *fcdPtr = (FontchooserData *)clientData;
+     if (eventPtr->type == DestroyNotify) {
+       Tk_DeleteEventHandler(fcdPtr->parent, StructureNotifyMask,
+@@ -2074,7 +2067,7 @@
+     ClientData clientData,
+     Tcl_Interp *interp)
+ {
+-    FontchooserData *fcdPtr = clientData;
++    FontchooserData *fcdPtr = (FontchooserData *)clientData;
+     if (fcdPtr->titleObj) {
+       Tcl_DecrRefCount(fcdPtr->titleObj);
index cbb6cab9e3563fe87c7487d5c8c9278ab1f4d8c4..10112fe330061e3f7a3da06985623ca8be1060fc 100755 (executable)
@@ -267,7 +267,7 @@ def library_recipes():
             tcl_checksum='8a4c004f48984a03a7747e9ba06e4da4'
 
             tk_checksum='c7ee71a2d05bba78dfffd76528dc17c6'
-            tk_patches = [ ]
+            tk_patches = ['bpo-44828-filedialog-crash-monterey.patch']
 
 
         result.extend([
@@ -443,7 +443,7 @@ def pkg_recipes():
             source="/pydocs",
             readme="""\
                 This package installs the python documentation at a location
-                that is useable for pydoc and IDLE.
+                that is usable for pydoc and IDLE.
                 """,
             postflight="scripts/postflight.documentation",
             required=False,
@@ -1589,7 +1589,7 @@ def buildDMG():
     # instead of 11.  We should not run into that situation here.)
     # Also we should use "macos" instead of "macosx" going forward.
     #
-    # To maintain compability for legacy variants, the file name for
+    # To maintain compatibility for legacy variants, the file name for
     # builds on macOS 10.15 and earlier remains:
     #   python-3.x.y-macosx10.z.{dmg->pkg}
     #   e.g. python-3.9.4-macosx10.9.{dmg->pkg}
index 4eb18b7bdaf44d61be8cc20846a9ec74c162c3fe..6cc11d752540e27d6d5de1f9f626a8936d67f0af 100644 (file)
@@ -60,16 +60,20 @@ Due to new security checks on macOS 10.15 Catalina, when launching IDLE macOS ma
 \f0\b0  button to proceed.\
 \
 
-\f1\b \ul macOS 11 (Big Sur) and Apple Silicon Mac support [updated in 3.9.5]\
+\f1\b \ul macOS 11 (Big Sur) and Apple Silicon Mac support [updated in 3.9.8]\
 
 \f0\b0 \ulnone \
-As of 2020-11, macOS 11.0 (Big Sur) is the latest release of macOS and one of its major features is the support of new Apple Silicon Macs that are based on the ARM64 CPU architecture specification rather than the Intel 64 (x86_64) architecture used previously. There are other changes in Big Sur that affect Python operation regardless of CPU architecture. As of 3.9.1, Python binaries from python.org fully support Big Sur. \
+
+\f1\b NEW as of 3.9.8
+\f0\b0 :  The 
+\f4 universal2
+\f0  installer variant is now the default download from python.org and the legacy Intel-only variant is deprecated.\
 \
-python.org binaries for macOS have been provided via a downloadable installer that supports the Intel 64 architecture on macOS 10.9 and newer.  This installer variant has been the default download for 3.9.1;  it will install and run on all Macs that run macOS 10.9 or later, including 11.0 (Big Sur). This variant 
+Prior to the 3.9.1 release, python.org binaries for macOS have been provided via a downloadable installer that supports the Intel 64 architecture on macOS 10.9 and newer.  It will install and run on all Macs that run macOS 10.9 or later, including 11.0 (Big Sur). This variant 
 \f2\i should
 \f0\i0  run transparently on new Apple Silicon Macs using Apple's Rosetta 2 emulation. \
 \
-Beginning with 3.9.1, we provide a new 
+Beginning with 3.9.1, we also provide a new 
 \f4 universal2
 \f0  installer variant that provides universal binaries for both 
 \f4 ARM64
@@ -79,23 +83,23 @@ Beginning with 3.9.1, we provide a new
 \
 On Apple Silicon Macs with the 
 \f4 universal2
-\f0  variant, it is possible to run Python either with native ARM64 code or under Intel 64 emulation using Rosetta 2. This option might be useful for testing or if binary wheels are not yet available with native ARM64 binaries.  To  easily force Python to run in emulation mode, invoke it from a command line shell with the 
+\f0  variant installed, it is possible to run Python either with native ARM64 code or under Intel 64 emulation using Rosetta 2. This option might be useful for testing or if binary wheels are not yet available with native ARM64 binaries.  To easily force Python to run in emulation mode on an Apple Silicon Mac, invoke it from a command line shell with the 
 \f4 python3-intel64
 \f0  (or 
-\f4 python3.10-intel64
+\f4 python3.9-intel64
 \f0 ) command (new with 3.9.5) instead of just 
-\f4 python3
+\f4 python3 (or python3.9)
 \f0 . \
 \
 Binary wheels built for use with the legacy 10.9 variant 
 \f2\i should
 \f0\i0  also work with the new variant on Intel-based Macs or when running under Rosetta2 emulation on Apple Silicon Macs.  \
 \
-As of the 3.9.5 release, we encourage you to use the 
+We encourage you to use the 
 \f4 universal2
-\f0  variant whenever possible.  The legacy 10.9+ Intel-only variant will not be provided for Python 3.10 and the 
+\f0  variant whenever possible.  The legacy 10.9+ Intel-only variant will not be provided for Python 3.10 and, as of the 3.9.8 release, the 
 \f4 universal2
-\f0  variant will become the default download for future 3.9.x releases. You may need to upgrade third-party components, like 
+\f0  variant is now the default download. You may need to upgrade third-party components, like 
 \f4 pip
 \f0 , to later versions once they are released. You may experience differences in behavior in 
 \f4 IDLE
index 5994c18ff876b38a95230a3e0df7be337f01332d..ccc18d4aee4386c8370d8607adae4f5a217ab2f8 100644 (file)
@@ -35,7 +35,7 @@ os.chdir(os.path.expanduser('~/Documents'))
 #       idlemain.py running under the symlinked python.
 #       This is the magic step.
 # 4. During interpreter initialization, because PYTHONEXECUTABLE is defined,
-#    sys.executable may get set to an unuseful value.
+#    sys.executable may get set to an useless value.
 #
 # (Note that the IDLE script and the setting of PYTHONEXECUTABLE is
 #  generated automatically by bundlebuilder in the Python 2.x build.
index 25779a2540a37e2c811480d7059d7986ac9e2f99..9cc2aa0ad90982aff423dd5d4c51fab451fe8a39 100644 (file)
@@ -22,7 +22,7 @@
 {
     // Test that the file mappings are correct
     [self testFileTypeBinding];
-    // If we were opened because of a file drag or doubleclick
+    // If we were opened because of a file drag or double-click
     // we've set initial_action_done in shouldShowUI
     // Otherwise we open a preferences dialog.
     if (!initial_action_done) {
index 1670fe5747aad9fd90ea46ec5a9bad23a2bc9e2f..f7c4df085de7a7fae8e9482b3c4f2bb8c6088088 100644 (file)
@@ -296,7 +296,7 @@ How do I create a binary distribution?
 Download and unpack the source release from https://www.python.org/download/.
 Go to the directory ``Mac/BuildScript``. There you will find a script
 ``build-installer.py`` that does all the work. This will download and build
-a number of 3rd-party libaries, configures and builds a framework Python,
+a number of 3rd-party libraries, configures and builds a framework Python,
 installs it, creates the installer package files and then packs this in a
 DMG image.  The script also builds an HTML copy of the current Python
 documentation set for this release for inclusion in the framework.  The
index 0dc2e17156f186377aaee09a87008c469ef9ff9c..863b45238fe4d58ac50a49c8ac9b07e81cde7d5a 100644 (file)
@@ -17,9 +17,9 @@
        <key>CFBundlePackageType</key>
        <string>FMWK</string>
        <key>CFBundleShortVersionString</key>
-       <string>%VERSION%, (c) 2001-2019 Python Software Foundation.</string>
+       <string>%VERSION%, (c) 2001-2021 Python Software Foundation.</string>
        <key>CFBundleLongVersionString</key>
-       <string>%VERSION%, (c) 2001-2019 Python Software Foundation.</string>
+       <string>%VERSION%, (c) 2001-2021 Python Software Foundation.</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
index 6ce7a614dce23825d5a175102295023ebe452297..11230fa563d161f21c1d49ecd555c7ef7c154c8e 100644 (file)
@@ -103,7 +103,6 @@ PY_CPPFLAGS=        $(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPP
 PY_LDFLAGS=    $(CONFIGURE_LDFLAGS) $(LDFLAGS)
 PY_LDFLAGS_NODIST=$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)
 NO_AS_NEEDED=  @NO_AS_NEEDED@
-SGI_ABI=       @SGI_ABI@
 CCSHARED=      @CCSHARED@
 # LINKFORSHARED are the flags passed to the $(CC) command that links
 # the python executable -- this is only needed for a few systems
index 59ae1462b86a24215a7c34125d4e6f89c7a20b51..ac893acbf3e4644b6bc6663025ceea8ac2467486 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1846,6 +1846,7 @@ Bob Watson
 Colin Watson
 David Watson
 Aaron Watters
+Alex Waygood
 Henrik Weber
 Leon Weber
 Steve Weber
index c2b4555ec7094f2a57fcf5a37436fc4a7cf91e92..7e68c919ba1c32ea9155e914b35e61256efe93ba 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -2,6 +2,303 @@
 Python News
 +++++++++++
 
+What's New in Python 3.9.8 final?
+=================================
+
+*Release date: 2021-11-05*
+
+Core and Builtins
+-----------------
+
+- bpo-30570: Fixed a crash in ``issubclass()`` from infinite recursion when
+  searching pathological ``__bases__`` tuples.
+
+- bpo-45494: Fix parser crash when reporting errors involving invalid
+  continuation characters. Patch by Pablo Galindo.
+
+- bpo-45385: Fix reference leak from descr_check. Patch by Dong-hee Na.
+
+- bpo-45167: Fix deepcopying of :class:`types.GenericAlias` objects.
+
+- bpo-44219: Release the GIL while performing ``isatty`` system calls on
+  arbitrary file descriptors. In particular, this affects :func:`os.isatty`,
+  :func:`os.device_encoding` and :class:`io.TextIOWrapper`. By extension,
+  :func:`io.open` in text mode is also affected. This change solves a
+  deadlock in :func:`os.isatty`. Patch by Vincent Michel in :issue:`44219`.
+
+- bpo-44959: Added fallback to extension modules with '.sl' suffix on HP-UX
+
+- bpo-44050: Extensions that indicate they use global state (by setting
+  ``m_size`` to -1) can again be used in multiple interpreters. This reverts
+  to behavior of Python 3.8.
+
+- bpo-45121: Fix issue where ``Protocol.__init__`` raises ``RecursionError``
+  when it's called directly or via ``super()``. Patch provided by Yurii
+  Karabas.
+
+- bpo-45083: When the interpreter renders an exception, its name now has a
+  complete qualname. Previously only the class name was concatenated to the
+  module name, which sometimes resulted in an incorrect full name being
+  displayed.
+
+  (This issue impacted only the C code exception rendering, the
+  :mod:`traceback` module was using qualname already).
+
+Library
+-------
+
+- bpo-45678: Fix bug in Python 3.9 that meant
+  ``functools.singledispatchmethod`` failed to properly wrap the attributes
+  of the target method. Patch by Alex Waygood.
+
+- bpo-45679: Fix caching of multi-value :data:`typing.Literal`.
+  ``Literal[True, 2]`` is no longer equal to ``Literal[1, 2]``.
+
+- bpo-45438: Fix typing.Signature string representation for generic builtin
+  types.
+
+- bpo-45581: :meth:`sqlite3.connect` now correctly raises :exc:`MemoryError`
+  if the underlying SQLite API signals memory error. Patch by Erlend E.
+  Aasland.
+
+- bpo-39679: Fix bug in :class:`functools.singledispatchmethod` that caused
+  it to fail when attempting to register a :func:`classmethod` or
+  :func:`staticmethod` using type annotations. Patch contributed by Alex
+  Waygood.
+
+- bpo-45515: Add references to :mod:`zoneinfo` in the :mod:`datetime`
+  documentation, mostly replacing outdated references to ``dateutil.tz``.
+  Change by Paul Ganssle.
+
+- bpo-45467: Fix incremental decoder and stream reader in the
+  "raw-unicode-escape" codec. Previously they failed if the escape sequence
+  was split.
+
+- bpo-45461: Fix incremental decoder and stream reader in the
+  "unicode-escape" codec. Previously they failed if the escape sequence was
+  split.
+
+- bpo-45239: Fixed :func:`email.utils.parsedate_tz` crashing with
+  :exc:`UnboundLocalError` on certain invalid input instead of returning
+  ``None``. Patch by Ben Hoyt.
+
+- bpo-44904: Fix bug in the :mod:`doctest` module that caused it to fail if
+  a docstring included an example with a ``classmethod`` ``property``. Patch
+  by Alex Waygood.
+
+- bpo-45406: Make :func:`inspect.getmodule` catch ``FileNotFoundError``
+  raised by :'func:`inspect.getabsfile`, and return ``None`` to indicate
+  that the module could not be determined.
+
+- bpo-45262: Prevent use-after-free in asyncio. Make sure the cached running
+  loop holder gets cleared on dealloc to prevent use-after-free in
+  get_running_loop
+
+- bpo-45386: Make :mod:`xmlrpc.client` more robust to C runtimes where the
+  underlying C ``strftime`` function results in a ``ValueError`` when
+  testing for year formatting options.
+
+- bpo-45371: Fix clang rpath issue in :mod:`distutils`. The UnixCCompiler
+  now uses correct clang option to add a runtime library directory (rpath)
+  to a shared library.
+
+- bpo-20028: Improve error message of :class:`csv.Dialect` when
+  initializing. Patch by Vajrasky Kok and Dong-hee Na.
+
+- bpo-45343: Update bundled pip to 21.2.4 and setuptools to 58.1.0
+
+- bpo-41710: On Unix, if the ``sem_clockwait()`` function is available in
+  the C library (glibc 2.30 and newer), the :meth:`threading.Lock.acquire`
+  method now uses the monotonic clock (:data:`time.CLOCK_MONOTONIC`) for the
+  timeout, rather than using the system clock (:data:`time.CLOCK_REALTIME`),
+  to not be affected by system clock changes. Patch by Victor Stinner.
+
+- bpo-45328: Fixed :class:`http.client.HTTPConnection` to work properly in
+  OSs that don't support the ``TCP_NODELAY`` socket option.
+
+- bpo-1596321: Fix the :func:`threading._shutdown` function when the
+  :mod:`threading` module was imported first from a thread different than
+  the main thread: no longer log an error at Python exit.
+
+- bpo-45274: Fix a race condition in the :meth:`Thread.join()
+  <threading.Thread.join>` method of the :mod:`threading` module. If the
+  function is interrupted by a signal and the signal handler raises an
+  exception, make sure that the thread remains in a consistent state to
+  prevent a deadlock. Patch by Victor Stinner.
+
+- bpo-45238: Fix :meth:`unittest.IsolatedAsyncioTestCase.debug`: it runs now
+  asynchronous methods and callbacks.
+
+- bpo-36674: :meth:`unittest.TestCase.debug` raises now a
+  :class:`unittest.SkipTest` if the class or the test method are decorated
+  with the skipping decorator.
+
+- bpo-45235: Fix an issue where argparse would not preserve values in a
+  provided namespace when using a subparser with defaults.
+
+- bpo-45234: Fixed a regression in :func:`~shutil.copyfile`,
+  :func:`~shutil.copy`, :func:`~shutil.copy2` raising
+  :exc:`FileNotFoundError` when source is a directory, which should raise
+  :exc:`IsADirectoryError`
+
+- bpo-45228: Fix stack buffer overflow in parsing J1939 network address.
+
+- bpo-45192: Fix the ``tempfile._infer_return_type`` function so that the
+  ``dir`` argument of the :mod:`tempfile` functions accepts an object
+  implementing the ``os.PathLike`` protocol.
+
+  Patch by Kyungmin Lee.
+
+- bpo-45160: When tracing a tkinter variable used by a ttk OptionMenu,
+  callbacks are no longer made twice.
+
+- bpo-35474: Calling :func:`mimetypes.guess_all_extensions` with
+  ``strict=False`` no longer affects the result of the following call with
+  ``strict=True``. Also, mutating the returned list no longer affects the
+  global state.
+
+- bpo-45166: :func:`typing.get_type_hints` now works with
+  :data:`~typing.Final` wrapped in :class:`~typing.ForwardRef`.
+
+- bpo-45097: Remove deprecation warnings about the loop argument in
+  :mod:`asyncio` incorrectly emitted in cases when the user does not pass
+  the loop argument.
+
+- bpo-45081: Fix issue when dataclasses that inherit from
+  ``typing.Protocol`` subclasses have wrong ``__init__``. Patch provided by
+  Yurii Karabas.
+
+- bpo-24444: Fixed an error raised in :mod:`argparse` help display when help
+  for an option is set to 1+ blank spaces or when *choices* arg is an empty
+  container.
+
+- bpo-45021: Fix a potential deadlock at shutdown of forked children when
+  using :mod:`concurrent.futures` module
+
+- bpo-45030: Fix integer overflow in pickling and copying the range
+  iterator.
+
+- bpo-39039: tarfile.open raises :exc:`~tarfile.ReadError` when a zlib error
+  occurs during file extraction.
+
+- bpo-44594: Fix an edge case of :class:`ExitStack` and
+  :class:`AsyncExitStack` exception chaining.  They will now match ``with``
+  block behavior when ``__context__`` is explicitly set to ``None`` when the
+  exception is in flight.
+
+Documentation
+-------------
+
+- bpo-45726: Improve documentation for :func:`functools.singledispatch` and
+  :class:`functools.singledispatchmethod`.
+
+- bpo-45680: Amend the docs on ``GenericAlias`` objects to clarify that
+  non-container classes can also implement ``__class_getitem__``. Patch
+  contributed by Alex Waygood.
+
+- bpo-45655: Add a new "relevant PEPs" section to the top of the
+  documentation for the ``typing`` module. Patch by Alex Waygood.
+
+- bpo-45604: Add ``level`` argument to ``multiprocessing.log_to_stderr``
+  function docs.
+
+- bpo-45464: Mention in the documentation of :ref:`Built-in Exceptions
+  <bltin-exceptions>` that inheriting from multiple exception types in a
+  single subclass is not recommended due to possible memory layout
+  incompatibility.
+
+- bpo-45449: Add note about :pep:`585` in :mod:`collections.abc`.
+
+- bpo-45516: Add protocol description to the
+  :class:`importlib.abc.Traversable` documentation.
+
+- bpo-20692: Add Programming FAQ entry explaining that int literal attribute
+  access requires either a space after or parentheses around the literal.
+
+- bpo-45216: Remove extra documentation listing methods in ``difflib``. It
+  was rendering twice in pydoc and was outdated in some places.
+
+Tests
+-----
+
+- bpo-45578: Add tests for :func:`dis.distb`
+
+- bpo-45577: Add subtests for all ``pickle`` protocols in ``test_zoneinfo``.
+
+- bpo-43592: :mod:`test.libregrtest` now raises the soft resource limit for
+  the maximum number of file descriptors when the default is too low for our
+  test suite as was often the case on macOS.
+
+- bpo-40173: Fix :func:`test.support.import_helper.import_fresh_module`.
+
+- bpo-45280: Add a test case for empty :class:`typing.NamedTuple`.
+
+- bpo-45269: Cover case when invalid ``markers`` type is supplied to
+  ``c_make_encoder``.
+
+- bpo-45209: Fix ``UserWarning: resource_tracker`` warning in
+  ``_test_multiprocessing._TestSharedMemory.test_shared_memory_cleaned_after_process_termination``
+
+- bpo-45195: Fix test_readline.test_nonascii(): sometimes, the newline
+  character is not written at the end, so don't expect it in the output.
+  Patch by Victor Stinner.
+
+- bpo-45156: Fixes infinite loop on :func:`unittest.mock.seal` of mocks
+  created by :func:`~unittest.create_autospec`.
+
+- bpo-45042: Fixes that test classes decorated with
+  ``@hashlib_helper.requires_hashdigest`` were skipped all the time.
+
+Build
+-----
+
+- bpo-43158: ``setup.py`` now uses values from configure script to build the
+  ``_uuid`` extension module. Configure now detects util-linux's
+  ``libuuid``, too.
+
+- bpo-45571: ``Modules/Setup`` now use ``PY_CFLAGS_NODIST`` instead of
+  ``PY_CFLAGS`` to compile shared modules.
+
+- bpo-45532: Update :data:`sys.version` to use ``main`` as fallback
+  information. Patch by Jeong YunWon.
+
+- bpo-45405: Prevent ``internal configure error`` when running ``configure``
+  with recent versions of non-Apple clang.  Patch by David Bohman.
+
+- bpo-45220: Avoid building with the Windows 11 SDK previews automatically.
+  This may be overridden by setting the ``DefaultWindowsSDKVersion``
+  environment variable before building.
+
+Windows
+-------
+
+- bpo-45337: venv now warns when the created environment may need to be
+  accessed at a different path, due to redirections, links or junctions. It
+  also now correctly installs or upgrades components when the alternate path
+  is required.
+
+macOS
+-----
+
+- bpo-44828: Avoid tkinter file dialog failure on macOS 12 Monterey when
+  using the Tk 8.6.11 provided by python.org macOS installers. Patch by Marc
+  Culler of the Tk project.
+
+IDLE
+----
+
+- bpo-45296: On Windows, change exit/quit message to suggest Ctrl-D, which
+  works, instead of <Ctrl-Z Return>, which does not work in IDLE.
+
+C API
+-----
+
+- bpo-44687: :meth:`BufferedReader.peek` no longer raises :exc:`ValueError`
+  when the entire file has already been buffered.
+
+- bpo-44751: Remove ``crypt.h`` include from the public ``Python.h`` header.
+
+
 What's New in Python 3.9.7 final?
 =================================
 
@@ -240,10 +537,6 @@ Documentation
   Python Wiki `page on GUI frameworks
   <https://wiki.python.org/moin/GuiProgramming>`.
 
-- bpo-44756: Reverted automated virtual environment creation on ``make
-  html`` when building documentation. It turned out to be disruptive for
-  downstream distributors.
-
 - bpo-44693: Update the definition of __future__ in the glossary by
   replacing the confusing word "pseudo-module" with a more accurate
   description.
@@ -343,16 +636,6 @@ macOS
   able to find  macOS system libraries when running on Big Sur due to
   changes in  how system libraries are stored.
 
-Tools/Demos
------------
-
-- bpo-44756: In the Makefile for documentation (:file:`Doc/Makefile`), the
-  ``build`` rule is dependent on the ``venv`` rule. Therefore, ``html``,
-  ``latex``, and other build-dependent rules are also now dependent on
-  ``venv``. The ``venv`` rule only performs an action if ``$(VENVDIR)`` does
-  not exist. :file:`Doc/README.rst` was updated; most users now only need to
-  type ``make html``.
-
 
 What's New in Python 3.9.6 final?
 =================================
@@ -1469,7 +1752,7 @@ Library
 - bpo-41754: webbrowser: Ignore *NotADirectoryError* when calling
   ``xdg-settings``.
 
-- bpo-29566: ``binhex.binhex()`` consisently writes macOS 9 line endings.
+- bpo-29566: ``binhex.binhex()`` consistently writes macOS 9 line endings.
 
 - bpo-42183: Fix a stack overflow error for asyncio Task or Future repr().
 
@@ -3374,9 +3657,9 @@ Core and Builtins
 - bpo-37207: Speed up calls to ``tuple()`` by using the :pep:`590`
   ``vectorcall`` calling convention. Patch by Dong-hee Na.
 
-- bpo-38373: Chaged list overallocation strategy. It no longer overallocates
-  if the new size is closer to overalocated size than to the old size and
-  adds padding.
+- bpo-38373: Changed list overallocation strategy. It no longer
+  overallocates if the new size is closer to overalocated size than to the
+  old size and adds padding.
 
 - bpo-39926: Update Unicode database to Unicode version 13.0.0.
 
@@ -4229,7 +4512,7 @@ Core and Builtins
   tracing the last iteration of asynchronous for loops. Patch by Pablo
   Galindo.
 
-- bpo-39114: Fix incorrent line execution reporting in trace functions when
+- bpo-39114: Fix incorrect line execution reporting in trace functions when
   tracing exception handlers with name binding. Patch by Pablo Galindo.
 
 - bpo-39156: Split the COMPARE_OP bytecode instruction into four distinct
@@ -4411,7 +4694,7 @@ Library
   these fields are suggested, but not required. Patch by Juergen Gmach.
 
 - bpo-38878: Fixed __subclasshook__ of :class:`os.PathLike` to return a
-  correct result upon inheritence. Patch by Bar Harel.
+  correct result upon inheritance. Patch by Bar Harel.
 
 - bpo-38615: :class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now
   have an optional *timeout* parameter for their constructors. Also, the
@@ -4973,8 +5256,8 @@ Core and Builtins
   ``dict`` objects. Patch by Dong-hee Na and Inada Naoki.
 
 - bpo-38465: :class:`bytearray`, :class:`~array.array` and
-  :class:`~mmap.mmap` objects allow now to export more than 2**31 buffers at
-  a time.
+  :class:`~mmap.mmap` objects allow now to export more than ``2**31``
+  buffers at a time.
 
 - bpo-38469: Fixed a bug where the scope of named expressions was not being
   resolved correctly in the presence of the *global* keyword. Patch by Pablo
@@ -5000,7 +5283,7 @@ Core and Builtins
   ``tp_traverse()`` of the object type to ensure that the object is valid:
   test that objects visited by ``tp_traverse()`` are valid.
 
-- bpo-38210: Remove unecessary intersection and update set operation in
+- bpo-38210: Remove unnecessary intersection and update set operation in
   dictview with empty set. (Contributed by Dong-hee Na in :issue:`38210`.)
 
 - bpo-38402: Check the error from the system's underlying ``crypt`` or
@@ -5197,7 +5480,7 @@ Core and Builtins
 
 - bpo-37316: Fix the :c:func:`PySys_Audit` call in :class:`mmap.mmap`.
 
-- bpo-37300: Remove an unnecssary Py_XINCREF in classobject.c.
+- bpo-37300: Remove an unnecessary Py_XINCREF in classobject.c.
 
 - bpo-37269: Fix a bug in the peephole optimizer that was not treating
   correctly constant conditions with binary operators. Patch by Pablo
@@ -5313,7 +5596,7 @@ Library
   :func:`curses.get_tabsize`, and :func:`curses.set_tabsize` functions - by
   Anthony Sottile.
 
-- bpo-38586: Now :func:`~logging.config.fileConfig` correcty sets the .name
+- bpo-38586: Now :func:`~logging.config.fileConfig` correctly sets the .name
   of handlers loaded.
 
 - bpo-38565: Add new cache_parameters() method for functools.lru_cache() to
@@ -5449,7 +5732,7 @@ Library
 
 - bpo-34706: Preserve subclassing in inspect.Signature.from_callable.
 
-- bpo-38153: Names of hashing algorithms frome OpenSSL are now normalized to
+- bpo-38153: Names of hashing algorithms from OpenSSL are now normalized to
   follow Python's naming conventions. For example OpenSSL uses sha3-512
   instead of sha3_512 or blake2b512 instead of blake2b.
 
@@ -5704,7 +5987,8 @@ Library
 - bpo-37685: Fixed comparisons of :class:`datetime.timedelta` and
   :class:`datetime.timezone`.
 
-- bpo-37697: Syncronize ``importlib.metadata`` with `importlib_metadata 0.19
+- bpo-37697: Synchronize ``importlib.metadata`` with `importlib_metadata
+  0.19
   <https://gitlab.com/python-devs/importlib_metadata/-/milestones/20>`_,
   improving handling of EGG-INFO files and fixing a crash when entry point
   names contained colons.
@@ -5914,7 +6198,7 @@ Library
 
 - bpo-37266: In a subinterpreter, spawning a daemon thread now raises an
   exception. Daemon threads were never supported in subinterpreters.
-  Previously, the subinterpreter finalization crashed with a Pyton fatal
+  Previously, the subinterpreter finalization crashed with a Python fatal
   error if a daemon thread was still running.
 
 - bpo-37210: Allow pure Python implementation of :mod:`pickle` to work even
@@ -5938,7 +6222,7 @@ Library
   another thread during iteration.
 
 - bpo-18748: :class:`_pyio.IOBase` destructor now does nothing if getting
-  the ``closed`` attribute fails to better mimick :class:`_io.IOBase`
+  the ``closed`` attribute fails to better mimic :class:`_io.IOBase`
   finalizer.
 
 - bpo-36402: Fix a race condition at Python shutdown when waiting for
@@ -6260,7 +6544,7 @@ Tests
   encryption instead.
 
 - bpo-38270: test.support now has a helper function to check for
-  availibility of a hash digest function. Several tests are refactored avoid
+  availability of a hash digest function. Several tests are refactored avoid
   MD5 and use SHA256 instead. Other tests are marked to use MD5 and skipped
   when MD5 is disabled.
 
@@ -7052,7 +7336,7 @@ Library
   arguments.
 
 - bpo-35279: Change default *max_workers* of ``ThreadPoolExecutor`` from
-  ``cpu_count() * 5`` to ``min(32, cpu_count() + 4))``.  Previous value was
+  ``cpu_count() * 5`` to ``min(32, cpu_count() + 4)``.  Previous value was
   unreasonably large on many cores machines.
 
 - bpo-37076: :func:`_thread.start_new_thread` now logs uncaught exception
@@ -9829,7 +10113,7 @@ Library
 
 - bpo-34563: On Windows, fix multiprocessing.Connection for very large read:
   fix _winapi.PeekNamedPipe() and _winapi.ReadFile() for read larger than
-  INT_MAX (usually 2^31-1).
+  INT_MAX (usually ``2**31-1``).
 
 - bpo-34558: Correct typo in Lib/ctypes/_aix.py
 
@@ -13342,7 +13626,7 @@ Core and Builtins
   suppresses printing tracebacks. Setting sys.tracebacklimit to None now
   causes using the default limit. Setting sys.tracebacklimit to an integer
   larger than LONG_MAX now means using the limit LONG_MAX rather than the
-  default limit. Fixed integer overflows in the case of more than 2**31
+  default limit. Fixed integer overflows in the case of more than ``2**31``
   traceback items on Windows. Fixed output errors handling.
 
 - bpo-30696: Fix the interactive interpreter looping endlessly when no
@@ -16945,7 +17229,7 @@ Core and Builtins
   suppresses printing tracebacks. Setting sys.tracebacklimit to None now
   causes using the default limit. Setting sys.tracebacklimit to an integer
   larger than LONG_MAX now means using the limit LONG_MAX rather than the
-  default limit. Fixed integer overflows in the case of more than 2**31
+  default limit. Fixed integer overflows in the case of more than ``2**31``
   traceback items on Windows. Fixed output errors handling.
 
 - bpo-30696: Fix the interactive interpreter looping endlessly when no
@@ -26269,7 +26553,7 @@ Library
 - bpo-20729: Restored the use of lazy iterkeys()/itervalues()/iteritems() in
   the mailbox module.
 
-- bpo-21448: Changed FeedParser feed() to avoid O(N**2) behavior when
+- bpo-21448: Changed FeedParser feed() to avoid O(N\ :sup:`2`) behavior when
   parsing long line. Original patch by Raymond Hettinger.
 
 - bpo-22184: The functools LRU Cache decorator factory now gives an earlier
index b615c48c431828696af8cf7628429265c844dfba..4457d7bd49e2320dfeefe05d8d900c861a36ed5c 100644 (file)
@@ -3258,6 +3258,9 @@ new_running_loop_holder(PyObject *loop)
 static void
 PyRunningLoopHolder_tp_dealloc(PyRunningLoopHolder *rl)
 {
+    if (cached_running_holder == (PyObject *)rl) {
+        cached_running_holder = NULL;
+    }
     Py_CLEAR(rl->rl_loop);
     PyObject_Free(rl);
 }
index 952072102d5d8d1941c095d06eb8dde15ec3564c..cbe5cc50f1ca6930c6bffddea3b6b8d5a77c432d 100644 (file)
@@ -487,34 +487,40 @@ _codecs_utf_32_ex_decode_impl(PyObject *module, Py_buffer *data,
 _codecs.unicode_escape_decode
     data: Py_buffer(accept={str, buffer})
     errors: str(accept={str, NoneType}) = None
+    final: bool(accept={int}) = True
     /
 [clinic start generated code]*/
 
 static PyObject *
 _codecs_unicode_escape_decode_impl(PyObject *module, Py_buffer *data,
-                                   const char *errors)
-/*[clinic end generated code: output=3ca3c917176b82ab input=8328081a3a569bd6]*/
+                                   const char *errors, int final)
+/*[clinic end generated code: output=b284f97b12c635ee input=6154f039a9f7c639]*/
 {
-    PyObject *decoded = PyUnicode_DecodeUnicodeEscape(data->buf, data->len,
-                                                      errors);
-    return codec_tuple(decoded, data->len);
+    Py_ssize_t consumed = data->len;
+    PyObject *decoded = _PyUnicode_DecodeUnicodeEscapeStateful(data->buf, data->len,
+                                                               errors,
+                                                               final ? NULL : &consumed);
+    return codec_tuple(decoded, consumed);
 }
 
 /*[clinic input]
 _codecs.raw_unicode_escape_decode
     data: Py_buffer(accept={str, buffer})
     errors: str(accept={str, NoneType}) = None
+    final: bool(accept={int}) = True
     /
 [clinic start generated code]*/
 
 static PyObject *
 _codecs_raw_unicode_escape_decode_impl(PyObject *module, Py_buffer *data,
-                                       const char *errors)
-/*[clinic end generated code: output=c98eeb56028070a6 input=d2f5159ce3b3392f]*/
+                                       const char *errors, int final)
+/*[clinic end generated code: output=11dbd96301e2879e input=2d166191beb3235a]*/
 {
-    PyObject *decoded = PyUnicode_DecodeRawUnicodeEscape(data->buf, data->len,
-                                                         errors);
-    return codec_tuple(decoded, data->len);
+    Py_ssize_t consumed = data->len;
+    PyObject *decoded = _PyUnicode_DecodeRawUnicodeEscapeStateful(data->buf, data->len,
+                                                                  errors,
+                                                                  final ? NULL : &consumed);
+    return codec_tuple(decoded, consumed);
 }
 
 /*[clinic input]
index a95f55a63c306e3ab724a35d80294f674226dc16..72a4f44600d92c9c4e58e463196be166b0528c95 100644 (file)
@@ -4,6 +4,9 @@
 #include "Python.h"
 
 #include <sys/types.h>
+#ifdef HAVE_CRYPT_H
+#include <crypt.h>
+#endif
 
 /* Module crypt */
 
index 7e06db46b496fb35732ddc78a84dd3fffd0dd622..029f473ae8741ea68b2b6cb3e7cab9eddaea52fc 100644 (file)
@@ -231,21 +231,24 @@ _set_int(const char *name, int *target, PyObject *src, int dflt)
 }
 
 static int
-_set_char(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt)
+_set_char_or_none(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt)
 {
-    if (src == NULL)
+    if (src == NULL) {
         *target = dflt;
+    }
     else {
         *target = '\0';
         if (src != Py_None) {
-            Py_ssize_t len;
             if (!PyUnicode_Check(src)) {
                 PyErr_Format(PyExc_TypeError,
-                    "\"%s\" must be string, not %.200s", name,
+                    "\"%s\" must be string or None, not %.200s", name,
                     Py_TYPE(src)->tp_name);
                 return -1;
             }
-            len = PyUnicode_GetLength(src);
+            Py_ssize_t len = PyUnicode_GetLength(src);
+            if (len < 0) {
+                return -1;
+            }
             if (len > 1) {
                 PyErr_Format(PyExc_TypeError,
                     "\"%s\" must be a 1-character string",
@@ -253,8 +256,41 @@ _set_char(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt)
                 return -1;
             }
             /* PyUnicode_READY() is called in PyUnicode_GetLength() */
-            if (len > 0)
+            else {
                 *target = PyUnicode_READ_CHAR(src, 0);
+            }
+        }
+    }
+    return 0;
+}
+
+static int
+_set_char(const char *name, Py_UCS4 *target, PyObject *src, Py_UCS4 dflt)
+{
+    if (src == NULL) {
+        *target = dflt;
+    }
+    else {
+        *target = '\0';
+        if (!PyUnicode_Check(src)) {
+            PyErr_Format(PyExc_TypeError,
+                         "\"%s\" must be string, not %.200s", name,
+                         Py_TYPE(src)->tp_name);
+                return -1;
+        }
+        Py_ssize_t len = PyUnicode_GetLength(src);
+        if (len < 0) {
+            return -1;
+        }
+        if (len > 1) {
+            PyErr_Format(PyExc_TypeError,
+                         "\"%s\" must be a 1-character string",
+                         name);
+            return -1;
+        }
+        /* PyUnicode_READY() is called in PyUnicode_GetLength() */
+        else {
+            *target = PyUnicode_READ_CHAR(src, 0);
         }
     }
     return 0;
@@ -423,9 +459,9 @@ dialect_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
         goto err
     DIASET(_set_char, "delimiter", &self->delimiter, delimiter, ',');
     DIASET(_set_bool, "doublequote", &self->doublequote, doublequote, true);
-    DIASET(_set_char, "escapechar", &self->escapechar, escapechar, 0);
+    DIASET(_set_char_or_none, "escapechar", &self->escapechar, escapechar, 0);
     DIASET(_set_str, "lineterminator", &self->lineterminator, lineterminator, "\r\n");
-    DIASET(_set_char, "quotechar", &self->quotechar, quotechar, '"');
+    DIASET(_set_char_or_none, "quotechar", &self->quotechar, quotechar, '"');
     DIASET(_set_int, "quoting", &self->quoting, quoting, QUOTE_MINIMAL);
     DIASET(_set_bool, "skipinitialspace", &self->skipinitialspace, skipinitialspace, false);
     DIASET(_set_bool, "strict", &self->strict, strict, false);
index 1ccad8e0e3d64d4d42fe36a3e9ba69069e220298..a33d15de9c0d413e4956630536e2903180332614 100644 (file)
@@ -1034,7 +1034,7 @@ EXPORT (HRESULT) KeepObject(IUnknown *punk)
 
 static struct PyModuleDef_Slot _ctypes_test_slots[] = {
     {0, NULL}
-}; 
+};
 
 static struct PyModuleDef _ctypes_testmodule = {
     PyModuleDef_HEAD_INIT,
index b0f1e0bd0409be7550b3614d57d4629831034d14..9aff890afe9def689cd6828594508c183c8eb6c2 100644 (file)
@@ -838,7 +838,7 @@ static int _call_function_pointer(int flags,
 #      define HAVE_FFI_PREP_CIF_VAR_RUNTIME false
 #   endif
 
-    /* Even on Apple-arm64 the calling convention for variadic functions conincides
+    /* Even on Apple-arm64 the calling convention for variadic functions coincides
      * with the standard calling convention in the case that the function called
      * only with its fixed arguments.   Thus, we do not need a special flag to be
      * set on variadic functions.   We treat a function as variadic if it is called
@@ -1484,14 +1484,14 @@ static PyObject *py_dyld_shared_cache_contains_path(PyObject *self, PyObject *ar
 
          if (!PyArg_ParseTuple(args, "O", &name))
              return NULL;
-    
+
          if (name == Py_None)
              Py_RETURN_FALSE;
-    
+
          if (PyUnicode_FSConverter(name, &name2) == 0)
              return NULL;
          name_str = PyBytes_AS_STRING(name2);
-    
+
          r = _dyld_shared_cache_contains_path(name_str);
          Py_DECREF(name2);
 
index 7ebd4ba76afb72194eaf96df0a21dbd1c32dd21b..06b98a6d66fc3688b1ff9df106f9e72a9a90d708 100644 (file)
@@ -35,7 +35,7 @@ PyCField_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
  * Expects the size, index and offset for the current field in *psize and
  * *poffset, stores the total size so far in *psize, the offset for the next
  * field in *poffset, the alignment requirements for the current field in
- * *palign, and returns a field desriptor for this field.
+ * *palign, and returns a field descriptor for this field.
  */
 /*
  * bitfields extension:
index 3f20031d671a8a8f3920820417ce241d63789f1f..0f422113a89cbed8397ed941d57b60c49da22b87 100644 (file)
@@ -208,7 +208,7 @@ typedef struct {
     PyObject *checker;
     int flags;                  /* calling convention and such */
 
-    /* pep3118 fields, pointers neeed PyMem_Free */
+    /* pep3118 fields, pointers need PyMem_Free */
     char *format;
     int ndim;
     Py_ssize_t *shape;
index 4e0c3783d91eb810de5194d2e2c7ba910bcbc04f..960237540564b32f48fd04d3985d17b19fbb65cf 100644 (file)
@@ -1022,7 +1022,7 @@ new_time_ex(int hour, int minute, int second, int usecond,
  * true.  Passing false is a speed optimization, if you know for sure
  * that seconds and microseconds are already in their proper ranges.  In any
  * case, raises OverflowError and returns NULL if the normalized days is out
- * of range).
+ * of range.
  */
 static PyObject *
 new_delta_ex(int days, int seconds, int microseconds, int normalize,
index dd4c6b16f745cf01ef1c3ffbb4912e07a1eaa22d..16b0f792a1b4b5f496ef050c3f36408f998b574d 100644 (file)
@@ -433,7 +433,7 @@ The following code prints every key in the database db, without having
 to create a list in memory that contains them all:
 
       k = db.firstkey()
-      while k != None:
+      while k is not None:
           print(k)
           k = db.nextkey(k)
 [clinic start generated code]*/
@@ -441,7 +441,7 @@ to create a list in memory that contains them all:
 static PyObject *
 _gdbm_gdbm_nextkey_impl(dbmobject *self, const char *key,
                         Py_ssize_clean_t key_length)
-/*[clinic end generated code: output=192ab892de6eb2f6 input=1f1606943614e36f]*/
+/*[clinic end generated code: output=192ab892de6eb2f6 input=b7b0949c520d730c]*/
 {
     PyObject *v;
     datum dbm_key, nextkey;
index f8e21f206f316ad647c7d42ba8d470323b16a21c..b0fe9e4589102570ef186ed8568b919a83aa4c33 100644 (file)
@@ -341,11 +341,10 @@ _enter_buffered_busy(buffered *self)
      : buffered_closed(self)))
 
 #define CHECK_CLOSED(self, error_msg) \
-    if (IS_CLOSED(self)) { \
+    if (IS_CLOSED(self) & (Py_SAFE_DOWNCAST(READAHEAD(self), Py_off_t, Py_ssize_t) == 0)) { \
         PyErr_SetString(PyExc_ValueError, error_msg); \
         return NULL; \
-    }
-
+    } \
 
 #define VALID_READ_BUFFER(self) \
     (self->readable && self->read_end != -1)
@@ -530,6 +529,9 @@ buffered_close(buffered *self, PyObject *args)
         Py_CLEAR(res);
     }
 
+    self->read_end = 0;
+    self->pos = 0;
+
 end:
     LEAVE_BUFFERED(self)
     return res;
index 02d8f1c43c80070f01076b1ec09a1119e79e925c..68e3a2346925de8d8ecc63d3ccaaf340cdbe24e9 100644 (file)
@@ -90,7 +90,7 @@ _Py_acosh(double x)
  *              asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ]
  *      we have
  *      asinh(x) := x  if  1+x*x=1,
- *               := sign(x)*(log(x)+ln2)) for large |x|, else
+ *               := sign(x)*(log(x)+ln2) for large |x|, else
  *               := sign(x)*log(2|x|+1/(|x|+sqrt(x*x+1))) if|x|>2, else
  *               := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2)))
  */
index 8dea2c6ea0c203e92c05c3aef48ffe95fe1953cf..ff9402bd1606ea5778f8c7ff6f13c6d54dd6339e 100644 (file)
@@ -4531,7 +4531,7 @@ dump(PicklerObject *self, PyObject *obj)
      * call when setting the reducer_override attribute of the Pickler instance
      * to a bound method of the same instance. This is important as the Pickler
      * instance holds a reference to each object it has pickled (through its
-     * memo): thus, these objects wont be garbage-collected as long as the
+     * memo): thus, these objects won't be garbage-collected as long as the
      * Pickler itself is not collected. */
     Py_CLEAR(self->reducer_override);
     return status;
@@ -6587,7 +6587,7 @@ do_setitems(UnpicklerObject *self, Py_ssize_t x)
         return 0;
     if ((len - x) % 2 != 0) {
         PickleState *st = _Pickle_GetGlobalState();
-        /* Currupt or hostile pickle -- we never write one like this. */
+        /* Corrupt or hostile pickle -- we never write one like this. */
         PyErr_SetString(st->UnpicklingError,
                         "odd number of items for SETITEMS");
         return -1;
index 0949e8d408e6200b747f3b14003fd68d51076996..30e333a4b86d83011ea35452f51e660f145b8d1e 100644 (file)
@@ -97,6 +97,7 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
     }
 
     if (PySys_Audit("sqlite3.connect", "O", database_obj) < 0) {
+        Py_DECREF(database_obj);
         return -1;
     }
 
@@ -133,6 +134,10 @@ int pysqlite_connection_init(pysqlite_Connection* self, PyObject* args, PyObject
 
     Py_DECREF(database_obj);
 
+    if (self->db == NULL && rc == SQLITE_NOMEM) {
+        PyErr_NoMemory();
+        return -1;
+    }
     if (rc != SQLITE_OK) {
         _pysqlite_seterror(self->db, NULL);
         return -1;
index bdc427822d7e10a6e65a154633c5d7f152104d21..8225c36da1a38968708c169ec31b391b8fe76354 100644 (file)
@@ -15,7 +15,7 @@
  * 2001-05-14 fl   fixes for 1.5.2 compatibility
  * 2001-07-01 fl   added BIGCHARSET support (from Martin von Loewis)
  * 2001-10-18 fl   fixed group reset issue (from Matthew Mueller)
- * 2001-10-20 fl   added split primitive; reenable unicode for 1.6/2.0/2.1
+ * 2001-10-20 fl   added split primitive; re-enable unicode for 1.6/2.0/2.1
  * 2001-10-21 fl   added sub/subn primitive
  * 2001-10-24 fl   added finditer primitive (for 2.2 only)
  * 2001-12-07 fl   fixed memory leak in sub/subn (Guido van Rossum)
index f6558caee9e3467b4102db4bebcb088c5716fa24..ae1284178dc60e1f6b7622f89f06bdaaf501971b 100644 (file)
@@ -5127,7 +5127,7 @@ encode_locale_ex(PyObject *self, PyObject *args)
         PyErr_SetString(PyExc_ValueError, "unsupported error handler");
         break;
     default:
-        PyErr_SetString(PyExc_ValueError, "unknow error code");
+        PyErr_SetString(PyExc_ValueError, "unknown error code");
         break;
     }
     return res;
@@ -5170,7 +5170,7 @@ decode_locale_ex(PyObject *self, PyObject *args)
         PyErr_SetString(PyExc_ValueError, "unsupported error handler");
         break;
     default:
-        PyErr_SetString(PyExc_ValueError, "unknow error code");
+        PyErr_SetString(PyExc_ValueError, "unknown error code");
         break;
     }
     return res;
index d69ae628fa7a40d3fc82a7baa3d25a5641a78fc3..4a4dbe77acfac48c19224290386a9f5577fab887 100644 (file)
@@ -834,6 +834,30 @@ PyInit__testmultiphase_meth_state_access(PyObject *spec)
     return PyModuleDef_Init(&def_meth_state_access);
 }
 
+static PyModuleDef def_module_state_shared = {
+    PyModuleDef_HEAD_INIT,
+    .m_name = "_test_module_state_shared",
+    .m_doc = PyDoc_STR("Regression Test module for single-phase init."),
+    .m_size = -1,
+};
+
+PyMODINIT_FUNC
+PyInit__test_module_state_shared(PyObject *spec)
+{
+    PyObject *module = PyModule_Create(&def_module_state_shared);
+    if (module == NULL) {
+        return NULL;
+    }
+
+    Py_INCREF(PyExc_Exception);
+    if (PyModule_AddObject(module, "Error", PyExc_Exception) < 0) {
+        Py_DECREF(PyExc_Exception);
+        Py_DECREF(module);
+        return NULL;
+    }
+    return module;
+}
+
 
 /*** Helper for imp test ***/
 
index 19853ce49118209421dc077ba38c512f8bb7051e..e153047b778b72d18971c3c52792ac856ac8206a 100644 (file)
@@ -936,7 +936,7 @@ PyTclObject_str(PyTclObject *self)
         Py_INCREF(self->string);
         return self->string;
     }
-    /* XXX Could chache result if it is non-ASCII. */
+    /* XXX Could cache result if it is non-ASCII. */
     return unicodeFromTclObj(self->value);
 }
 
index 04f6c243b5ca4d1fdb539ffadb4ba8244846f875..90498fb7a7897d65e411f4ab26c102ffa8753fb2 100644 (file)
@@ -836,7 +836,7 @@ tracemalloc_clear_filename(void *value)
 static void
 tracemalloc_clear_traces(void)
 {
-    /* The GIL protects variables againt concurrent access */
+    /* The GIL protects variables against concurrent access */
     assert(PyGILState_Check());
 
     TABLES_LOCK();
index f655768496e132ac0e5e92e55e3b5e58ca977092..d7945d31affea377d85b65ba9664fb3928db8b34 100644 (file)
@@ -1347,7 +1347,7 @@ tzrule_transitions(_tzrule *rule, int year, int64_t *start, int64_t *end)
  * could technically be calculated from the timestamp, but given that the
  * callers of this function already have the year information accessible from
  * the datetime struct, it is taken as an additional parameter to reduce
- * unncessary calculation.
+ * unnecessary calculation.
  * */
 static _ttinfo *
 find_tzrule_ttinfo(_tzrule *rule, int64_t ts, unsigned char fold, int year)
index 724c503eba289b3cb995859c2c21acb755e07fa5..7c7fc917454b0b3093a7dd163de4e6e730278c35 100644 (file)
@@ -1636,12 +1636,12 @@ array.array.frombytes
     buffer: Py_buffer
     /
 
-Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method).
+Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method.
 [clinic start generated code]*/
 
 static PyObject *
 array_array_frombytes_impl(arrayobject *self, Py_buffer *buffer)
-/*[clinic end generated code: output=d9842c8f7510a516 input=2bbf2b53ebfcc988]*/
+/*[clinic end generated code: output=d9842c8f7510a516 input=378db226dfac949e]*/
 {
     return frombytes(self, buffer);
 }
index 772c8ca538da239e5768a4c850b551ebc3af7b01..7ddc36de8a76cf626618e6b29bf408d4dfd35806 100644 (file)
@@ -1149,7 +1149,7 @@ exit:
 }
 
 PyDoc_STRVAR(_codecs_unicode_escape_decode__doc__,
-"unicode_escape_decode($module, data, errors=None, /)\n"
+"unicode_escape_decode($module, data, errors=None, final=True, /)\n"
 "--\n"
 "\n");
 
@@ -1158,7 +1158,7 @@ PyDoc_STRVAR(_codecs_unicode_escape_decode__doc__,
 
 static PyObject *
 _codecs_unicode_escape_decode_impl(PyObject *module, Py_buffer *data,
-                                   const char *errors);
+                                   const char *errors, int final);
 
 static PyObject *
 _codecs_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
@@ -1166,8 +1166,9 @@ _codecs_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_
     PyObject *return_value = NULL;
     Py_buffer data = {NULL, NULL};
     const char *errors = NULL;
+    int final = 1;
 
-    if (!_PyArg_CheckPositional("unicode_escape_decode", nargs, 1, 2)) {
+    if (!_PyArg_CheckPositional("unicode_escape_decode", nargs, 1, 3)) {
         goto exit;
     }
     if (PyUnicode_Check(args[0])) {
@@ -1208,8 +1209,20 @@ _codecs_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_
         _PyArg_BadArgument("unicode_escape_decode", "argument 2", "str or None", args[1]);
         goto exit;
     }
+    if (nargs < 3) {
+        goto skip_optional;
+    }
+    if (PyFloat_Check(args[2])) {
+        PyErr_SetString(PyExc_TypeError,
+                        "integer argument expected, got float" );
+        goto exit;
+    }
+    final = _PyLong_AsInt(args[2]);
+    if (final == -1 && PyErr_Occurred()) {
+        goto exit;
+    }
 skip_optional:
-    return_value = _codecs_unicode_escape_decode_impl(module, &data, errors);
+    return_value = _codecs_unicode_escape_decode_impl(module, &data, errors, final);
 
 exit:
     /* Cleanup for data */
@@ -1221,7 +1234,7 @@ exit:
 }
 
 PyDoc_STRVAR(_codecs_raw_unicode_escape_decode__doc__,
-"raw_unicode_escape_decode($module, data, errors=None, /)\n"
+"raw_unicode_escape_decode($module, data, errors=None, final=True, /)\n"
 "--\n"
 "\n");
 
@@ -1230,7 +1243,7 @@ PyDoc_STRVAR(_codecs_raw_unicode_escape_decode__doc__,
 
 static PyObject *
 _codecs_raw_unicode_escape_decode_impl(PyObject *module, Py_buffer *data,
-                                       const char *errors);
+                                       const char *errors, int final);
 
 static PyObject *
 _codecs_raw_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
@@ -1238,8 +1251,9 @@ _codecs_raw_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ss
     PyObject *return_value = NULL;
     Py_buffer data = {NULL, NULL};
     const char *errors = NULL;
+    int final = 1;
 
-    if (!_PyArg_CheckPositional("raw_unicode_escape_decode", nargs, 1, 2)) {
+    if (!_PyArg_CheckPositional("raw_unicode_escape_decode", nargs, 1, 3)) {
         goto exit;
     }
     if (PyUnicode_Check(args[0])) {
@@ -1280,8 +1294,20 @@ _codecs_raw_unicode_escape_decode(PyObject *module, PyObject *const *args, Py_ss
         _PyArg_BadArgument("raw_unicode_escape_decode", "argument 2", "str or None", args[1]);
         goto exit;
     }
+    if (nargs < 3) {
+        goto skip_optional;
+    }
+    if (PyFloat_Check(args[2])) {
+        PyErr_SetString(PyExc_TypeError,
+                        "integer argument expected, got float" );
+        goto exit;
+    }
+    final = _PyLong_AsInt(args[2]);
+    if (final == -1 && PyErr_Occurred()) {
+        goto exit;
+    }
 skip_optional:
-    return_value = _codecs_raw_unicode_escape_decode_impl(module, &data, errors);
+    return_value = _codecs_raw_unicode_escape_decode_impl(module, &data, errors, final);
 
 exit:
     /* Cleanup for data */
@@ -2922,4 +2948,4 @@ exit:
 #ifndef _CODECS_CODE_PAGE_ENCODE_METHODDEF
     #define _CODECS_CODE_PAGE_ENCODE_METHODDEF
 #endif /* !defined(_CODECS_CODE_PAGE_ENCODE_METHODDEF) */
-/*[clinic end generated code: output=51b42d170889524c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=eed7dc9312baf252 input=a9049054013a1b77]*/
index aa37a24d3b211505542c8325e987c0cb95f31065..552bf6ed88e93ed7757a1636dc9746baaca77bf4 100644 (file)
@@ -139,7 +139,7 @@ PyDoc_STRVAR(_gdbm_gdbm_nextkey__doc__,
 "to create a list in memory that contains them all:\n"
 "\n"
 "      k = db.firstkey()\n"
-"      while k != None:\n"
+"      while k is not None:\n"
 "          print(k)\n"
 "          k = db.nextkey(k)");
 
@@ -298,4 +298,4 @@ skip_optional:
 exit:
     return return_value;
 }
-/*[clinic end generated code: output=2766471b2fa1a816 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f48d6e8d4c8a3465 input=a9049054013a1b77]*/
index b9245ca91d5fa9ca98ff96785aa11571dc04e3e7..005c7ffce4d25202816e4c70e3d91bf83161100b 100644 (file)
@@ -316,7 +316,7 @@ PyDoc_STRVAR(array_array_frombytes__doc__,
 "frombytes($self, buffer, /)\n"
 "--\n"
 "\n"
-"Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method).");
+"Appends items from the string, interpreting it as an array of machine values, as if it had been read from a file using the fromfile() method.");
 
 #define ARRAY_ARRAY_FROMBYTES_METHODDEF    \
     {"frombytes", (PyCFunction)array_array_frombytes, METH_O, array_array_frombytes__doc__},
@@ -534,4 +534,4 @@ PyDoc_STRVAR(array_arrayiterator___setstate____doc__,
 
 #define ARRAY_ARRAYITERATOR___SETSTATE___METHODDEF    \
     {"__setstate__", (PyCFunction)array_arrayiterator___setstate__, METH_O, array_arrayiterator___setstate____doc__},
-/*[clinic end generated code: output=9f70748dd3bc532f input=a9049054013a1b77]*/
+/*[clinic end generated code: output=485e848d1f3d05e7 input=a9049054013a1b77]*/
index 5ba56eaea6357a22c36152be8ac0b25641208955..034a03c30851a18931555fdbd4b518bcda082b35 100644 (file)
@@ -3976,7 +3976,7 @@ initializeEncoding(XML_Parser parser) {
   const char *s;
 #ifdef XML_UNICODE
   char encodingBuf[128];
-  /* See comments abount `protoclEncodingName` in parserInit() */
+  /* See comments about `protoclEncodingName` in parserInit() */
   if (! parser->m_protocolEncodingName)
     s = NULL;
   else {
index f2b6b406067ea9adda60e1f03e1a8ed592dfe370..5b935718743add6fd4078d3d90a8ae8d68095e9d 100644 (file)
    USE OR OTHER DEALINGS IN THE SOFTWARE.
 */
 
-#include <stddef.h>
-#include <string.h> /* memcpy */
-#include <stdbool.h>
-
 #ifdef _WIN32
 #  include "winconfig.h"
 #endif
 
 #include <expat_config.h>
 
+#include <stddef.h>
+#include <string.h> /* memcpy */
+#include <stdbool.h>
+
 #include "expat_external.h"
 #include "internal.h"
 #include "xmltok.h"
index b5b9f7b2e3d4dc676c91444be81f0886cf06720d..6d07cce12364317c524262e6eb431fbbb107192c 100644 (file)
@@ -50,7 +50,7 @@ CT while gc is running.
     https://www.python.org/sf/1055820
 
 shows how innocent it can be, and also how nasty.  Variants of the three
-focussed test cases attached to that bug report are now part of Python's
+focused test cases attached to that bug report are now part of Python's
 standard Lib/test/test_gc.py.
 
 Jim Fulton gave the best nutshell summary of the new (in 2.4 and 2.3.5)
index 5f941a26e1d54c5037ecd517d1cafc039c46e721..7cb7397a22c8ab74fbbd509ac7cf22e96672cd49 100644 (file)
@@ -40,8 +40,9 @@ Py_GetBuildInfo(void)
     const char *revision = _Py_gitversion();
     const char *sep = *revision ? ":" : "";
     const char *gitid = _Py_gitidentifier();
-    if (!(*gitid))
-        gitid = "default";
+    if (!(*gitid)) {
+        gitid = "main";
+    }
     PyOS_snprintf(buildinfo, sizeof(buildinfo),
                   "%s%s%s, %.20s, %.9s", gitid, sep, revision,
                   DATE, TIME);
index 728ecad052e142dd1433ee8da361f8a60e6ece30..5dbe57c95093adc2dfdc05257380829c87578d00 100644 (file)
@@ -1510,7 +1510,7 @@ calculate_path(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
     }
 
     /* If a pyvenv.cfg configure file is found,
-       argv0_path is overriden with its 'home' variable. */
+       argv0_path is overridden with its 'home' variable. */
     status = calculate_read_pyenv(calculate);
     if (_PyStatus_EXCEPTION(status)) {
         return status;
index 978593e2f1a0c2f795c3c8710629f76c3351217d..56ae7a5e50bf58d072aeeb43136a70177da8b3ee 100644 (file)
@@ -8,7 +8,7 @@
 #define GET_BUFFER_VIEW_OR_ERROR(obj, viewp, erraction) do { \
         if (PyUnicode_Check((obj))) { \
             PyErr_SetString(PyExc_TypeError, \
-                            "Unicode-objects must be encoded before hashing");\
+                            "Strings must be encoded before hashing");\
             erraction; \
         } \
         if (!PyObject_CheckBuffer((obj))) { \
index fefe3fd129ee3b2440714aeaec91dd075e92699a..1a767838c92be9b87b20a0deaa7f3f3810ab04fa 100755 (executable)
@@ -231,7 +231,7 @@ sed -e 's/[         ]*#.*//' -e '/^[        ]*$/d' |
                        *) src='$(srcdir)/'"$srcdir/$src";;
                        esac
                        case $doconfig in
-                       no)     cc="$cc \$(CCSHARED) \$(PY_CFLAGS) \$(PY_CPPFLAGS)";;
+                       no)     cc="$cc \$(CCSHARED) \$(PY_CFLAGS_NODIST) \$(PY_CPPFLAGS)";;
                        *)
                                cc="$cc \$(PY_BUILTIN_MODULE_CFLAGS)";;
                        esac
index 4aa7e6559af557e754bb0e8321549a38092a292f..c974601b95e37bea9ebd068f792d897509bc645d 100644 (file)
@@ -2969,14 +2969,9 @@ math_prod_impl(PyObject *module, PyObject *iterable, PyObject *start)
     }
 
     if (result == NULL) {
-        result = PyLong_FromLong(1);
-        if (result == NULL) {
-            Py_DECREF(iter);
-            return NULL;
-        }
-    } else {
-        Py_INCREF(result);
+        result = _PyLong_One;
     }
+    Py_INCREF(result);
 #ifndef SLOW_PROD
     /* Fast paths for integers keeping temporary products in C.
      * Assumes all inputs are the same type.
@@ -2992,7 +2987,7 @@ math_prod_impl(PyObject *module, PyObject *iterable, PyObject *start)
         }
         /* Loop over all the items in the iterable until we finish, we overflow
          * or we found a non integer element */
-        while(result == NULL) {
+        while (result == NULL) {
             item = PyIter_Next(iter);
             if (item == NULL) {
                 Py_DECREF(iter);
index c984e2e93f3c0442b4f1835a79c9c6ea00d9c366..f2dcf965db76027854057d3dc6c70b1eb1c36eb1 100644 (file)
@@ -10058,9 +10058,11 @@ os_isatty_impl(PyObject *module, int fd)
 /*[clinic end generated code: output=6a48c8b4e644ca00 input=08ce94aa1eaf7b5e]*/
 {
     int return_value;
+    Py_BEGIN_ALLOW_THREADS
     _Py_BEGIN_SUPPRESS_IPH
     return_value = isatty(fd);
     _Py_END_SUPPRESS_IPH
+    Py_END_ALLOW_THREADS
     return return_value;
 }
 
index 9c75cc99dba77130dcf8b7b67679641a89d06b11..44fe8ef7b356f8a87608ca859beabfe204b8ee19 100644 (file)
@@ -269,7 +269,7 @@ sha1_done(struct sha1_state *sha1, unsigned char *out)
         sha1->curlen = 0;
     }
 
-    /* pad upto 56 bytes of zeroes */
+    /* pad up to 56 bytes of zeroes */
     while (sha1->curlen < 56) {
         sha1->buf[sha1->curlen++] = (unsigned char)0;
     }
index 89531851c857569540ea9b98ddf4c479852f8876..a22060d399082aca352bcb3ca843a5e9fd8db5d7 100644 (file)
@@ -151,9 +151,6 @@ getblocking() -- return True if socket is blocking, False if non-blocking\n\
 setsockopt(level, optname, value[, optlen]) -- set socket options\n\
 settimeout(None | float) -- set or clear the timeout\n\
 shutdown(how) -- shut down traffic in one or both directions\n\
-if_nameindex() -- return all network interface indices and names\n\
-if_nametoindex(name) -- return the corresponding interface index\n\
-if_indextoname(index) -- return the corresponding interface name\n\
 \n\
  [*] not available on all platforms!");
 
@@ -968,7 +965,7 @@ sock_call_ex(PySocketSockObject *s,
                reading, but the data then discarded by the OS because of a
                wrong checksum.
 
-               Loop on select() to recheck for socket readyness. */
+               Loop on select() to recheck for socket readiness. */
             continue;
         }
 
@@ -1558,10 +1555,10 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)
 #ifdef CAN_J1939
           case CAN_J1939:
           {
-              return Py_BuildValue("O&KkB", PyUnicode_DecodeFSDefault,
+              return Py_BuildValue("O&KIB", PyUnicode_DecodeFSDefault,
                                           ifname,
-                                          a->can_addr.j1939.name,
-                                          a->can_addr.j1939.pgn,
+                                          (unsigned long long)a->can_addr.j1939.name,
+                                          (unsigned int)a->can_addr.j1939.pgn,
                                           a->can_addr.j1939.addr);
           }
 #endif /* CAN_J1939 */
@@ -2252,13 +2249,13 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
             PyObject *interfaceName;
             struct ifreq ifr;
             Py_ssize_t len;
-            uint64_t j1939_name;
-            uint32_t j1939_pgn;
+            unsigned long long j1939_name; /* at least 64 bits */
+            unsigned int j1939_pgn; /* at least 32 bits */
             uint8_t j1939_addr;
 
             struct sockaddr_can *addr = &addrbuf->can;
 
-            if (!PyArg_ParseTuple(args, "O&KkB", PyUnicode_FSConverter,
+            if (!PyArg_ParseTuple(args, "O&KIB", PyUnicode_FSConverter,
                                               &interfaceName,
                                               &j1939_name,
                                               &j1939_pgn,
@@ -2286,8 +2283,8 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
 
             addr->can_family = AF_CAN;
             addr->can_ifindex = ifr.ifr_ifindex;
-            addr->can_addr.j1939.name = j1939_name;
-            addr->can_addr.j1939.pgn = j1939_pgn;
+            addr->can_addr.j1939.name = (uint64_t)j1939_name;
+            addr->can_addr.j1939.pgn = (uint32_t)j1939_pgn;
             addr->can_addr.j1939.addr = j1939_addr;
 
             *len_ret = sizeof(*addr);
index cdc94a60a373d78c6b1aa2515437001ac1735423..0f2fea15b3a6f0cd3251bd5c85cd3e3dc6b571f5 100644 (file)
@@ -183,7 +183,7 @@ syslog_syslog(PyObject * self, PyObject * args)
         PyObject *openargs;
 
         /* Continue even if PyTuple_New fails, because openlog(3) is optional.
-         * So, we can still do loggin in the unlikely event things are so hosed
+         * So, we can still do logging in the unlikely event things are so hosed
          * that we can't do this tuple.
          */
         if ((openargs = PyTuple_New(0))) {
index 80eab30c95d6f034356970569cd795d613055277..df59f2aac5af2b002ec9bc96997cae2f9c82838a 100644 (file)
@@ -51,7 +51,7 @@
 #define _Py_tzname tzname
 #endif
 
-#if defined(__APPLE__ ) && defined(__has_builtin) 
+#if defined(__APPLE__ ) && defined(__has_builtin)
 #  if __has_builtin(__builtin_available)
 #    define HAVE_CLOCK_GETTIME_RUNTIME __builtin_available(macOS 10.12, iOS 10.0, tvOS 10.0, watchOS 3.0, *)
 #  endif
@@ -160,7 +160,7 @@ perf_counter(_Py_clock_info_t *info)
 #ifdef HAVE_CLOCK_GETTIME
 
 #ifdef __APPLE__
-/* 
+/*
  * The clock_* functions will be removed from the module
  * dict entirely when the C API is not available.
  */
@@ -1421,7 +1421,7 @@ _PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
 
 #if defined(__APPLE__) && defined(__has_attribute) && __has_attribute(availability)
 static int
-_PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info) 
+_PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
      __attribute__((availability(macos, introduced=10.12)))
      __attribute__((availability(ios, introduced=10.0)))
      __attribute__((availability(tvos, introduced=10.0)))
@@ -1460,7 +1460,7 @@ _PyTime_GetThreadTimeWithInfo(_PyTime_t *tp, _Py_clock_info_t *info)
 
 #ifdef HAVE_THREAD_TIME
 #ifdef __APPLE__
-/* 
+/*
  * The clock_* functions will be removed from the module
  * dict entirely when the C API is not available.
  */
index 6c14c3adbf268febc66b0914de737a3843b59229..8f8bcd85f2c16dad342c514fd89cbcfb8ea93870 100644 (file)
@@ -1361,7 +1361,7 @@ PyDoc_STRVAR(zlib_module_documentation,
 "compressobj([level[, ...]]) -- Return a compressor object.\n"
 "crc32(string[, start]) -- Compute a CRC-32 checksum.\n"
 "decompress(string,[wbits],[bufsize]) -- Decompresses a compressed string.\n"
-"decompressobj([wbits[, zdict]]]) -- Return a decompressor object.\n"
+"decompressobj([wbits[, zdict]]) -- Return a decompressor object.\n"
 "\n"
 "'wbits' is window buffer size and container format.\n"
 "Compressor objects support compress() and flush() methods; decompressor\n"
index 1922619ad85db051d22d8e0560fd75f3ac46584f..a5cbb12ff87c64a41fd2721e6301d072578b438f 100644 (file)
@@ -2417,14 +2417,22 @@ abstract_issubclass(PyObject *derived, PyObject *cls)
             derived = PyTuple_GET_ITEM(bases, 0);
             continue;
         }
-        for (i = 0; i < n; i++) {
-            r = abstract_issubclass(PyTuple_GET_ITEM(bases, i), cls);
-            if (r != 0)
-                break;
-        }
+        break;
+    }
+    assert(n >= 2);
+    if (Py_EnterRecursiveCall(" in __issubclass__")) {
         Py_DECREF(bases);
-        return r;
+        return -1;
     }
+    for (i = 0; i < n; i++) {
+        r = abstract_issubclass(PyTuple_GET_ITEM(bases, i), cls);
+        if (r != 0) {
+            break;
+        }
+    }
+    Py_LeaveRecursiveCall();
+    Py_DECREF(bases);
+    return r;
 }
 
 static int
index fce9cdd309077ea27b435b229cafae4185c06e33..075a92d4084d56e22426c53a2727fc7fc86460c2 100644 (file)
@@ -72,13 +72,8 @@ wrapperdescr_repr(PyWrapperDescrObject *descr)
 }
 
 static int
-descr_check(PyDescrObject *descr, PyObject *obj, PyObject **pres)
+descr_check(PyDescrObject *descr, PyObject *obj)
 {
-    if (obj == NULL) {
-        Py_INCREF(descr);
-        *pres = (PyObject *)descr;
-        return 1;
-    }
     if (!PyObject_TypeCheck(obj, descr->d_type)) {
         PyErr_Format(PyExc_TypeError,
                      "descriptor '%V' for '%.100s' objects "
@@ -86,8 +81,7 @@ descr_check(PyDescrObject *descr, PyObject *obj, PyObject **pres)
                      descr_name((PyDescrObject *)descr), "?",
                      descr->d_type->tp_name,
                      Py_TYPE(obj)->tp_name);
-        *pres = NULL;
-        return 1;
+        return -1;
     }
     return 0;
 }
@@ -137,10 +131,13 @@ classmethod_get(PyMethodDescrObject *descr, PyObject *obj, PyObject *type)
 static PyObject *
 method_get(PyMethodDescrObject *descr, PyObject *obj, PyObject *type)
 {
-    PyObject *res;
-
-    if (descr_check((PyDescrObject *)descr, obj, &res))
-        return res;
+    if (obj == NULL) {
+        Py_INCREF(descr);
+        return (PyObject *)descr;
+    }
+    if (descr_check((PyDescrObject *)descr, obj) < 0) {
+        return NULL;
+    }
     if (descr->d_method->ml_flags & METH_METHOD) {
         if (PyType_Check(type)) {
             return PyCMethod_New(descr->d_method, obj, NULL, descr->d_common.d_type);
@@ -159,10 +156,13 @@ method_get(PyMethodDescrObject *descr, PyObject *obj, PyObject *type)
 static PyObject *
 member_get(PyMemberDescrObject *descr, PyObject *obj, PyObject *type)
 {
-    PyObject *res;
-
-    if (descr_check((PyDescrObject *)descr, obj, &res))
-        return res;
+    if (obj == NULL) {
+        Py_INCREF(descr);
+        return (PyObject *)descr;
+    }
+    if (descr_check((PyDescrObject *)descr, obj) < 0) {
+        return NULL;
+    }
 
     if (descr->d_member->flags & READ_RESTRICTED) {
         if (PySys_Audit("object.__getattr__", "Os",
@@ -177,10 +177,13 @@ member_get(PyMemberDescrObject *descr, PyObject *obj, PyObject *type)
 static PyObject *
 getset_get(PyGetSetDescrObject *descr, PyObject *obj, PyObject *type)
 {
-    PyObject *res;
-
-    if (descr_check((PyDescrObject *)descr, obj, &res))
-        return res;
+    if (obj == NULL) {
+        Py_INCREF(descr);
+        return (PyObject *)descr;
+    }
+    if (descr_check((PyDescrObject *)descr, obj) < 0) {
+        return NULL;
+    }
     if (descr->d_getset->get != NULL)
         return descr->d_getset->get(obj, descr->d_getset->closure);
     PyErr_Format(PyExc_AttributeError,
@@ -193,16 +196,18 @@ getset_get(PyGetSetDescrObject *descr, PyObject *obj, PyObject *type)
 static PyObject *
 wrapperdescr_get(PyWrapperDescrObject *descr, PyObject *obj, PyObject *type)
 {
-    PyObject *res;
-
-    if (descr_check((PyDescrObject *)descr, obj, &res))
-        return res;
+    if (obj == NULL) {
+        Py_INCREF(descr);
+        return (PyObject *)descr;
+    }
+    if (descr_check((PyDescrObject *)descr, obj) < 0) {
+        return NULL;
+    }
     return PyWrapper_New((PyObject *)descr, obj);
 }
 
 static int
-descr_setcheck(PyDescrObject *descr, PyObject *obj, PyObject *value,
-               int *pres)
+descr_setcheck(PyDescrObject *descr, PyObject *obj, PyObject *value)
 {
     assert(obj != NULL);
     if (!PyObject_TypeCheck(obj, descr->d_type)) {
@@ -212,8 +217,7 @@ descr_setcheck(PyDescrObject *descr, PyObject *obj, PyObject *value,
                      descr_name(descr), "?",
                      descr->d_type->tp_name,
                      Py_TYPE(obj)->tp_name);
-        *pres = -1;
-        return 1;
+        return -1;
     }
     return 0;
 }
@@ -221,23 +225,22 @@ descr_setcheck(PyDescrObject *descr, PyObject *obj, PyObject *value,
 static int
 member_set(PyMemberDescrObject *descr, PyObject *obj, PyObject *value)
 {
-    int res;
-
-    if (descr_setcheck((PyDescrObject *)descr, obj, value, &res))
-        return res;
+    if (descr_setcheck((PyDescrObject *)descr, obj, value) < 0) {
+        return -1;
+    }
     return PyMember_SetOne((char *)obj, descr->d_member, value);
 }
 
 static int
 getset_set(PyGetSetDescrObject *descr, PyObject *obj, PyObject *value)
 {
-    int res;
-
-    if (descr_setcheck((PyDescrObject *)descr, obj, value, &res))
-        return res;
-    if (descr->d_getset->set != NULL)
+    if (descr_setcheck((PyDescrObject *)descr, obj, value) < 0) {
+        return -1;
+    }
+    if (descr->d_getset->set != NULL) {
         return descr->d_getset->set(obj, value,
                                     descr->d_getset->closure);
+    }
     PyErr_Format(PyExc_AttributeError,
                  "attribute '%V' of '%.100s' objects is not writable",
                  descr_name((PyDescrObject *)descr), "?",
@@ -264,8 +267,7 @@ method_check_args(PyObject *func, PyObject *const *args, Py_ssize_t nargs, PyObj
         return -1;
     }
     PyObject *self = args[0];
-    PyObject *dummy;
-    if (descr_check((PyDescrObject *)func, self, &dummy)) {
+    if (descr_check((PyDescrObject *)func, self) < 0) {
         return -1;
     }
     if (kwnames && PyTuple_GET_SIZE(kwnames)) {
index 6adc90ab9a2c34f758ba37b272ad1500056cb5ee..8538a051b19825647ed7dcc648acf553fd29c330 100644 (file)
@@ -2291,7 +2291,7 @@ _PyFloat_Pack8(double x, unsigned char *p, int le)
             flo = 0;
             ++fhi;
             if (fhi >> 28) {
-                /* And it also progagated out of the next 28 bits. */
+                /* And it also propagated out of the next 28 bits. */
                 fhi = 0;
                 ++e;
                 if (e >= 2047)
index 69ad8a6d8353a78063960a11831f38b195e36394..acbb01cfef92c189a901a32bd9003675db29e795 100644 (file)
@@ -405,6 +405,8 @@ static const char* const attr_exceptions[] = {
     "__mro_entries__",
     "__reduce_ex__",  // needed so we don't look up object.__reduce_ex__
     "__reduce__",
+    "__copy__",
+    "__deepcopy__",
     NULL,
 };
 
@@ -564,7 +566,7 @@ static PyGetSetDef ga_properties[] = {
 };
 
 /* A helper function to create GenericAlias' args tuple and set its attributes.
- * Returns 1 on success, 0 on failure. 
+ * Returns 1 on success, 0 on failure.
  */
 static inline int
 setup_ga(gaobject *alias, PyObject *origin, PyObject *args) {
index 6c94ba57cfe8eb38c83c717841ce7c9541eb6ebc..1e868b43c09804263ced11b4383a4b380d7a4890 100644 (file)
@@ -2012,7 +2012,7 @@ safe_object_compare(PyObject *v, PyObject *w, MergeState *ms)
     return PyObject_RichCompareBool(v, w, Py_LT);
 }
 
-/* Homogeneous compare: safe for any two compareable objects of the same type.
+/* Homogeneous compare: safe for any two comparable objects of the same type.
  * (ms->key_richcompare is set to ob_type->tp_richcompare in the
  *  pre-sort check.)
  */
index 174777a2658dc60eeebec775f5c14fb476378f4c..42809d71bc44a423a77f5ef31b989969bbf73df4 100644 (file)
@@ -758,6 +758,6 @@ OPTIMIZATION OF INDIVIDUAL COMPARISONS
 As noted above, even the simplest Python comparison triggers a large pile of
 C-level pointer dereferences, conditionals, and function calls.  This can be
 partially mitigated by pre-scanning the data to determine whether the data is
-homogenous with respect to type.  If so, it is sometimes possible to
+homogeneous with respect to type.  If so, it is sometimes possible to
 substitute faster type-specific comparisons for the slower, generic
 PyObject_RichCompareBool.
index eb34f10bddf993a45169563d220d97d238cb63c8..9f8e0d114fff81d70a65448fcd9822d49360fcae 100644 (file)
@@ -836,7 +836,7 @@ static int running_on_valgrind = -1;
 
 /*
  * Alignment of addresses returned to the user. 8-bytes alignment works
- * on most current architectures (with 32-bit or 64-bit address busses).
+ * 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.
  *
index dd027936589acda8d5b135387b712666fa8b3a05..d7076ac82467be2871996ece49537f7aec42a88a 100644 (file)
@@ -895,22 +895,14 @@ get_len_of_range(long lo, long hi, long step)
    is not representable as a C long, OverflowError is raised. */
 
 static PyObject *
-fast_range_iter(long start, long stop, long step)
+fast_range_iter(long start, long stop, long step, long len)
 {
     rangeiterobject *it = PyObject_New(rangeiterobject, &PyRangeIter_Type);
-    unsigned long ulen;
     if (it == NULL)
         return NULL;
     it->start = start;
     it->step = step;
-    ulen = get_len_of_range(start, stop, step);
-    if (ulen > (unsigned long)LONG_MAX) {
-        Py_DECREF(it);
-        PyErr_SetString(PyExc_OverflowError,
-                        "range too large to represent as a range_iterator");
-        return NULL;
-    }
-    it->len = (long)ulen;
+    it->len = len;
     it->index = 0;
     return (PyObject *)it;
 }
@@ -1071,7 +1063,7 @@ range_iter(PyObject *seq)
     rangeobject *r = (rangeobject *)seq;
     longrangeiterobject *it;
     long lstart, lstop, lstep;
-    PyObject *int_it;
+    unsigned long ulen;
 
     assert(PyRange_Check(seq));
 
@@ -1092,12 +1084,22 @@ range_iter(PyObject *seq)
         PyErr_Clear();
         goto long_range;
     }
-    int_it = fast_range_iter(lstart, lstop, lstep);
-    if (int_it == NULL && PyErr_ExceptionMatches(PyExc_OverflowError)) {
-        PyErr_Clear();
+    ulen = get_len_of_range(lstart, lstop, lstep);
+    if (ulen > (unsigned long)LONG_MAX) {
         goto long_range;
     }
-    return (PyObject *)int_it;
+    /* check for potential overflow of lstart + ulen * lstep */
+    if (ulen) {
+        if (lstep > 0) {
+            if (lstop > LONG_MAX - (lstep - 1))
+                goto long_range;
+        }
+        else {
+            if (lstop < LONG_MIN + (-1 - lstep))
+                goto long_range;
+        }
+    }
+    return fast_range_iter(lstart, lstop, lstep, (long)ulen);
 
   long_range:
     it = PyObject_New(longrangeiterobject, &PyLongRangeIter_Type);
@@ -1183,7 +1185,7 @@ range_reverse(PyObject *seq, PyObject *Py_UNUSED(ignored))
 
     new_stop = lstart - lstep;
     new_start = (long)(new_stop + ulen * lstep);
-    return fast_range_iter(new_start, new_stop, -lstep);
+    return fast_range_iter(new_start, new_stop, -lstep, (long)ulen);
 
 long_range:
     it = PyObject_New(longrangeiterobject, &PyLongRangeIter_Type);
index 76b1944db455886d68ce7ab56fb6d5b1ba0b23ad..4bd5777f967dada104e3765bcaba88414065703b 100644 (file)
@@ -1410,7 +1410,7 @@ set_difference_update_internal(PySetObject *so, PyObject *other)
 
         /* Optimization:  When the other set is more than 8 times
            larger than the base set, replace the other set with
-           interesection of the two sets.
+           intersection of the two sets.
         */
         if ((PySet_GET_SIZE(other) >> 3) > PySet_GET_SIZE(so)) {
             other = set_intersection(so, other);
index f201515d7db330138c911739168e8709bfff30ed..feae25f2eb367a8c3b7bf6a9e67137e89d099cf9 100644 (file)
@@ -3119,6 +3119,14 @@ PyType_FromSpec(PyType_Spec *spec)
     return PyType_FromSpecWithBases(spec, NULL);
 }
 
+/* private in 3.10 and 3.9.8+; public in 3.11 */
+PyObject *
+_PyType_GetQualName(PyTypeObject *type)
+{
+    return type_qualname(type, NULL);
+}
+
+
 void *
 PyType_GetSlot(PyTypeObject *type, int slot)
 {
index 46a0956c8bb70e34aaad2cde2cc9349cde9b40f9..7767d140e6c3958e5b9f4ad05ff85b86190b88d5 100644 (file)
@@ -6271,9 +6271,10 @@ PyUnicode_AsUTF16String(PyObject *unicode)
 static _PyUnicode_Name_CAPI *ucnhash_CAPI = NULL;
 
 PyObject *
-_PyUnicode_DecodeUnicodeEscape(const char *s,
+_PyUnicode_DecodeUnicodeEscapeInternal(const char *s,
                                Py_ssize_t size,
                                const char *errors,
+                               Py_ssize_t *consumed,
                                const char **first_invalid_escape)
 {
     const char *starts = s;
@@ -6286,6 +6287,9 @@ _PyUnicode_DecodeUnicodeEscape(const char *s,
     *first_invalid_escape = NULL;
 
     if (size == 0) {
+        if (consumed) {
+            *consumed = 0;
+        }
         _Py_RETURN_UNICODE_EMPTY();
     }
     /* Escaped strings will always be longer than the resulting
@@ -6304,8 +6308,6 @@ _PyUnicode_DecodeUnicodeEscape(const char *s,
         unsigned char c = (unsigned char) *s++;
         Py_UCS4 ch;
         int count;
-        Py_ssize_t startinpos;
-        Py_ssize_t endinpos;
         const char *message;
 
 #define WRITE_ASCII_CHAR(ch)                                                  \
@@ -6332,11 +6334,11 @@ _PyUnicode_DecodeUnicodeEscape(const char *s,
             continue;
         }
 
-        startinpos = s - starts - 1;
+        Py_ssize_t startinpos = s - starts - 1;
         /* \ - Escapes */
         if (s >= end) {
             message = "\\ at end of string";
-            goto error;
+            goto incomplete;
         }
         c = (unsigned char) *s++;
 
@@ -6390,7 +6392,10 @@ _PyUnicode_DecodeUnicodeEscape(const char *s,
             count = 8;
             message = "truncated \\UXXXXXXXX escape";
         hexescape:
-            for (ch = 0; count && s < end; ++s, --count) {
+            for (ch = 0; count; ++s, --count) {
+                if (s >= end) {
+                    goto incomplete;
+                }
                 c = (unsigned char)*s;
                 ch <<= 4;
                 if (c >= '0' && c <= '9') {
@@ -6403,12 +6408,9 @@ _PyUnicode_DecodeUnicodeEscape(const char *s,
                     ch += c - ('A' - 10);
                 }
                 else {
-                    break;
+                    goto error;
                 }
             }
-            if (count) {
-                goto error;
-            }
 
             /* when we get here, ch is a 32-bit unicode character */
             if (ch > MAX_UNICODE) {
@@ -6435,14 +6437,20 @@ _PyUnicode_DecodeUnicodeEscape(const char *s,
             }
 
             message = "malformed \\N character escape";
-            if (s < end && *s == '{') {
+            if (s >= end) {
+                goto incomplete;
+            }
+            if (*s == '{') {
                 const char *start = ++s;
                 size_t namelen;
                 /* look for the closing brace */
                 while (s < end && *s != '}')
                     s++;
+                if (s >= end) {
+                    goto incomplete;
+                }
                 namelen = s - start;
-                if (namelen && s < end) {
+                if (namelen) {
                     /* found a name.  look it up in the unicode database */
                     s++;
                     ch = 0xffffffff; /* in case 'getcode' messes up */
@@ -6468,8 +6476,13 @@ _PyUnicode_DecodeUnicodeEscape(const char *s,
             continue;
         }
 
-      error:
-        endinpos = s-starts;
+      incomplete:
+        if (consumed) {
+            *consumed = startinpos;
+            break;
+        }
+      error:;
+        Py_ssize_t endinpos = s-starts;
         writer.min_length = end - s + writer.pos;
         if (unicode_decode_call_errorhandler_writer(
                 errors, &errorHandler,
@@ -6496,12 +6509,14 @@ _PyUnicode_DecodeUnicodeEscape(const char *s,
 }
 
 PyObject *
-PyUnicode_DecodeUnicodeEscape(const char *s,
+_PyUnicode_DecodeUnicodeEscapeStateful(const char *s,
                               Py_ssize_t size,
-                              const char *errors)
+                              const char *errors,
+                              Py_ssize_t *consumed)
 {
     const char *first_invalid_escape;
-    PyObject *result = _PyUnicode_DecodeUnicodeEscape(s, size, errors,
+    PyObject *result = _PyUnicode_DecodeUnicodeEscapeInternal(s, size, errors,
+                                                      consumed,
                                                       &first_invalid_escape);
     if (result == NULL)
         return NULL;
@@ -6516,6 +6531,14 @@ PyUnicode_DecodeUnicodeEscape(const char *s,
     return result;
 }
 
+PyObject *
+PyUnicode_DecodeUnicodeEscape(const char *s,
+                              Py_ssize_t size,
+                              const char *errors)
+{
+    return _PyUnicode_DecodeUnicodeEscapeStateful(s, size, errors, NULL);
+}
+
 /* Return a Unicode-Escape string version of the Unicode object. */
 
 PyObject *
@@ -6654,9 +6677,10 @@ PyUnicode_EncodeUnicodeEscape(const Py_UNICODE *s,
 /* --- Raw Unicode Escape Codec ------------------------------------------- */
 
 PyObject *
-PyUnicode_DecodeRawUnicodeEscape(const char *s,
-                                 Py_ssize_t size,
-                                 const char *errors)
+_PyUnicode_DecodeRawUnicodeEscapeStateful(const char *s,
+                                          Py_ssize_t size,
+                                          const char *errors,
+                                          Py_ssize_t *consumed)
 {
     const char *starts = s;
     _PyUnicodeWriter writer;
@@ -6665,6 +6689,9 @@ PyUnicode_DecodeRawUnicodeEscape(const char *s,
     PyObject *exc = NULL;
 
     if (size == 0) {
+        if (consumed) {
+            *consumed = 0;
+        }
         _Py_RETURN_UNICODE_EMPTY();
     }
 
@@ -6683,8 +6710,6 @@ PyUnicode_DecodeRawUnicodeEscape(const char *s,
         unsigned char c = (unsigned char) *s++;
         Py_UCS4 ch;
         int count;
-        Py_ssize_t startinpos;
-        Py_ssize_t endinpos;
         const char *message;
 
 #define WRITE_CHAR(ch)                                                        \
@@ -6699,11 +6724,21 @@ PyUnicode_DecodeRawUnicodeEscape(const char *s,
             } while(0)
 
         /* Non-escape characters are interpreted as Unicode ordinals */
-        if (c != '\\' || s >= end) {
+        if (c != '\\' || (s >= end && !consumed)) {
             WRITE_CHAR(c);
             continue;
         }
 
+        Py_ssize_t startinpos = s - starts - 1;
+        /* \ - Escapes */
+        if (s >= end) {
+            assert(consumed);
+            // Set message to silent compiler warning.
+            // Actually it is never used.
+            message = "\\ at end of string";
+            goto incomplete;
+        }
+
         c = (unsigned char) *s++;
         if (c == 'u') {
             count = 4;
@@ -6719,10 +6754,12 @@ PyUnicode_DecodeRawUnicodeEscape(const char *s,
             WRITE_CHAR(c);
             continue;
         }
-        startinpos = s - starts - 2;
 
         /* \uHHHH with 4 hex digits, \U00HHHHHH with 8 */
-        for (ch = 0; count && s < end; ++s, --count) {
+        for (ch = 0; count; ++s, --count) {
+            if (s >= end) {
+                goto incomplete;
+            }
             c = (unsigned char)*s;
             ch <<= 4;
             if (c >= '0' && c <= '9') {
@@ -6735,18 +6772,23 @@ PyUnicode_DecodeRawUnicodeEscape(const char *s,
                 ch += c - ('A' - 10);
             }
             else {
-                break;
+                goto error;
             }
         }
-        if (!count) {
-            if (ch <= MAX_UNICODE) {
-                WRITE_CHAR(ch);
-                continue;
-            }
+        if (ch > MAX_UNICODE) {
             message = "\\Uxxxxxxxx out of range";
+            goto error;
         }
+        WRITE_CHAR(ch);
+        continue;
 
-        endinpos = s-starts;
+      incomplete:
+        if (consumed) {
+            *consumed = startinpos;
+            break;
+        }
+      error:;
+        Py_ssize_t endinpos = s-starts;
         writer.min_length = end - s + writer.pos;
         if (unicode_decode_call_errorhandler_writer(
                 errors, &errorHandler,
@@ -6768,7 +6810,14 @@ PyUnicode_DecodeRawUnicodeEscape(const char *s,
     Py_XDECREF(errorHandler);
     Py_XDECREF(exc);
     return NULL;
+}
 
+PyObject *
+PyUnicode_DecodeRawUnicodeEscape(const char *s,
+                                 Py_ssize_t size,
+                                 const char *errors)
+{
+    return _PyUnicode_DecodeRawUnicodeEscapeStateful(s, size, errors, NULL);
 }
 
 
@@ -7335,7 +7384,7 @@ PyUnicode_AsASCIIString(PyObject *unicode)
 #endif
 
 /* INT_MAX is the theoretical largest chunk (or INT_MAX / 2 when
-   transcoding from UTF-16), but INT_MAX / 4 perfoms better in
+   transcoding from UTF-16), but INT_MAX / 4 performs better in
    both cases also and avoids partial characters overrunning the
    length limit in MultiByteToWideChar on Windows */
 #define DECODING_CHUNK_SIZE (INT_MAX/4)
@@ -10867,7 +10916,7 @@ replace(PyObject *self, PyObject *str1,
             release1 = 1;
         }
         /* new_size = PyUnicode_GET_LENGTH(self) + n * (PyUnicode_GET_LENGTH(str2) -
-           PyUnicode_GET_LENGTH(str1))); */
+           PyUnicode_GET_LENGTH(str1)); */
         if (len1 < len2 && len2 - len1 > (PY_SSIZE_T_MAX - slen) / n) {
                 PyErr_SetString(PyExc_OverflowError,
                                 "replace string is too long");
@@ -16121,7 +16170,7 @@ init_fs_codec(PyInterpreterState *interp)
     _Py_error_handler error_handler;
     error_handler = get_error_handler_wide(config->filesystem_errors);
     if (error_handler == _Py_ERROR_UNKNOWN) {
-        PyErr_SetString(PyExc_RuntimeError, "unknow filesystem error handler");
+        PyErr_SetString(PyExc_RuntimeError, "unknown filesystem error handler");
         return -1;
     }
 
index 53da3a6d05faee99b72db2ea2ee2095b01e950ea..dc5b201d145f33dbdb1229129bffb52ed01dfdab 100644 (file)
@@ -29,7 +29,7 @@
      - If we DO have a Python Home: The relevant sub-directories (Lib,
        DLLs, etc) are based on the Python Home
      - If we DO NOT have a Python Home, the core Python Path is
-       loaded from the registry.  This is the main PythonPath key,
+       loaded from the registry.  (This is the main PythonPath key,
        and both HKLM and HKCU are combined to form the path)
 
    * Iff - we can not locate the Python Home, have not had a PYTHONPATH
@@ -332,7 +332,7 @@ extern const char *PyWin_DLLVersionString;
    Returns NULL, or a pointer that should be freed.
 
    XXX - this code is pretty strange, as it used to also
-   work on Win16, where the buffer sizes werent available
+   work on Win16, where the buffer sizes were not available
    in advance.  It could be simplied now Win16/Win32s is dead!
 */
 static wchar_t *
index 92987af7138dd38c0a32dc52115794c48bde2cee..d21f9b6e9d2aba9902b1496fdeb3ae19fc364daa 100644 (file)
@@ -4,7 +4,6 @@
 
 // Include the manifest file that indicates we support all
 // current versions of Windows.
-#include <winuser.h>
 1 RT_MANIFEST "python.manifest"
 
 #if defined(PY_ICON)
index e5924a42dabe296deaa015200dcce37320e9b264..fc607e97840fb0d62e8d7964cfe3d39448f82099 100644 (file)
@@ -4,7 +4,6 @@
 
 // Include the manifest file that indicates we support all
 // current versions of Windows.
-#include <winuser.h>
 1 RT_MANIFEST "python.manifest"
 
 /////////////////////////////////////////////////////////////////////////////
index ae0b029b8070a44c23a9da1b860f2bc888119158..5eba89962b475b04903a29255058e26baccb71cb 100644 (file)
@@ -4,7 +4,6 @@
 
 // Include the manifest file that indicates we support all
 // current versions of Windows.
-#include <winuser.h>
 1 RT_MANIFEST "python.manifest"
 
 1 ICON DISCARDABLE "icons\python.ico" 
index b5fb58f26b20281a1a3f640500b6a4cfafc96b6c..6fd872c1a03cc27d6d4926b9547f62f8144046e2 100644 (file)
@@ -4,7 +4,6 @@
 
 // Include the manifest file that indicates we support all
 // current versions of Windows.
-#include <winuser.h>
 2 RT_MANIFEST "python.manifest"
 
 /////////////////////////////////////////////////////////////////////////////
index 88bf3592e18124bf6b7bbe19449ddce13cc4736c..562652be184719a4b0a6a9629066ef12154253d5 100644 (file)
@@ -4,7 +4,6 @@
 
 // Include the manifest file that indicates we support all
 // current versions of Windows.
-#include <winuser.h>
 1 RT_MANIFEST "python.manifest"
 
 1 ICON DISCARDABLE "icons\pythonw.ico" 
index 84bd87d9d575d6e1f13f17fa646cf16ef645e63b..d2c18f8add8b26e239580c6c38f4597bc763b7e6 100644 (file)
@@ -4,7 +4,6 @@
 
 // Include the manifest file that indicates we support all
 // current versions of Windows.
-#include <winuser.h>
 2 RT_MANIFEST "python.manifest"
 
 /////////////////////////////////////////////////////////////////////////////
index a682d3849f14c6901ffc6331d06259a9c4cd1525..4ecc8925349c930e10a13aac142e2143bba4a60d 100755 (executable)
@@ -3,6 +3,8 @@
 import argparse
 import os
 import pathlib
+import sys
+import time
 import zipfile
 from urllib.request import urlretrieve
 
@@ -53,7 +55,22 @@ def main():
         verbose=args.verbose,
     )
     final_name = args.externals_dir / args.tag
-    extract_zip(args.externals_dir, zip_path).replace(final_name)
+    extracted = extract_zip(args.externals_dir, zip_path)
+    for wait in [1, 2, 3, 5, 8, 0]:
+        try:
+            extracted.replace(final_name)
+            break
+        except PermissionError as ex:
+            retry = f" Retrying in {wait}s..." if wait else ""
+            print(f"Encountered permission error '{ex}'.{retry}", file=sys.stderr)
+            time.sleep(wait)
+    else:
+        print(
+            f"ERROR: Failed to extract {final_name}.",
+            "You may need to restart your build",
+            file=sys.stderr,
+        )
+        sys.exit(1)
 
 
 if __name__ == '__main__':
index f0c51edb9d1ca1ee476fb31944a28a409c12cb6b..0fc2aa042d758e60ae67916fbd3bc04b8faa1854 100644 (file)
     <Compile Include="tkinter\messagebox.py" />
     <Compile Include="tkinter\scrolledtext.py" />
     <Compile Include="tkinter\simpledialog.py" />
-    <Compile Include="tkinter\test\runtktests.py" />
     <Compile Include="tkinter\test\support.py" />
     <Compile Include="tkinter\test\test_tkinter\test_font.py" />
     <Compile Include="tkinter\test\test_tkinter\test_geometry_managers.py" />
     <Compile Include="tkinter\test\test_tkinter\test_widgets.py" />
     <Compile Include="tkinter\test\test_tkinter\__init__.py" />
     <Compile Include="tkinter\test\test_ttk\test_extensions.py" />
-    <Compile Include="tkinter\test\test_ttk\test_functions.py" />
     <Compile Include="tkinter\test\test_ttk\test_style.py" />
     <Compile Include="tkinter\test\test_ttk\test_widgets.py" />
     <Compile Include="tkinter\test\test_ttk\__init__.py" />
index dc388ce3dbd9e90f02fad83159b9863fe50c914c..611257d67de42ae46cd6d1c6630fba806cf4a741 100644 (file)
@@ -728,7 +728,7 @@ file_rule(Parser *p)
         void *a;
         Token * endmarker_var;
         if (
-            (a = statements_rule(p), 1)  // statements?
+            (a = statements_rule(p), !p->error_indicator)  // statements?
             &&
             (endmarker_var = _PyPegen_expect_token(p, ENDMARKER))  // token='ENDMARKER'
         )
@@ -867,7 +867,7 @@ func_type_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (a = type_expressions_rule(p), 1)  // type_expressions?
+            (a = type_expressions_rule(p), !p->error_indicator)  // type_expressions?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
             &&
@@ -1459,7 +1459,7 @@ simple_stmt_rule(Parser *p)
         if (
             (a = _gather_12_rule(p))  // ';'.small_stmt+
             &&
-            (_opt_var = _PyPegen_expect_token(p, 13), 1)  // ';'?
+            (_opt_var = _PyPegen_expect_token(p, 13), !p->error_indicator)  // ';'?
             &&
             (newline_var = _PyPegen_expect_token(p, NEWLINE))  // token='NEWLINE'
         )
@@ -2059,7 +2059,7 @@ assignment_rule(Parser *p)
             &&
             (b = expression_rule(p))  // expression
             &&
-            (c = _tmp_19_rule(p), 1)  // ['=' annotated_rhs]
+            (c = _tmp_19_rule(p), !p->error_indicator)  // ['=' annotated_rhs]
         )
         {
             D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
@@ -2101,7 +2101,7 @@ assignment_rule(Parser *p)
             &&
             (b = expression_rule(p))  // expression
             &&
-            (c = _tmp_21_rule(p), 1)  // ['=' annotated_rhs]
+            (c = _tmp_21_rule(p), !p->error_indicator)  // ['=' annotated_rhs]
         )
         {
             D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
@@ -2142,7 +2142,7 @@ assignment_rule(Parser *p)
             &&
             _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22)  // token='='
             &&
-            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1)  // TYPE_COMMENT?
+            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
         )
         {
             D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
@@ -2797,7 +2797,7 @@ assert_stmt_rule(Parser *p)
             &&
             (a = expression_rule(p))  // expression
             &&
-            (b = _tmp_29_rule(p), 1)  // [',' expression]
+            (b = _tmp_29_rule(p), !p->error_indicator)  // [',' expression]
         )
         {
             D(fprintf(stderr, "%*c+ assert_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'assert' expression [',' expression]"));
@@ -3174,7 +3174,7 @@ import_from_targets_rule(Parser *p)
             &&
             (a = import_from_as_names_rule(p))  // import_from_as_names
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
         )
@@ -3325,7 +3325,7 @@ import_from_as_name_rule(Parser *p)
         if (
             (a = _PyPegen_name_token(p))  // NAME
             &&
-            (b = _tmp_35_rule(p), 1)  // ['as' NAME]
+            (b = _tmp_35_rule(p), !p->error_indicator)  // ['as' NAME]
         )
         {
             D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
@@ -3410,7 +3410,7 @@ dotted_as_name_rule(Parser *p)
         if (
             (a = dotted_name_rule(p))  // dotted_name
             &&
-            (b = _tmp_38_rule(p), 1)  // ['as' NAME]
+            (b = _tmp_38_rule(p), !p->error_indicator)  // ['as' NAME]
         )
         {
             D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
@@ -3617,7 +3617,7 @@ if_stmt_rule(Parser *p)
             &&
             (b = block_rule(p))  // block
             &&
-            (c = else_block_rule(p), 1)  // else_block?
+            (c = else_block_rule(p), !p->error_indicator)  // else_block?
         )
         {
             D(fprintf(stderr, "%*c+ if_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' named_expression ':' block else_block?"));
@@ -3735,7 +3735,7 @@ elif_stmt_rule(Parser *p)
             &&
             (b = block_rule(p))  // block
             &&
-            (c = else_block_rule(p), 1)  // else_block?
+            (c = else_block_rule(p), !p->error_indicator)  // else_block?
         )
         {
             D(fprintf(stderr, "%*c+ elif_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'elif' named_expression ':' block else_block?"));
@@ -3853,7 +3853,7 @@ while_stmt_rule(Parser *p)
             &&
             (b = block_rule(p))  // block
             &&
-            (c = else_block_rule(p), 1)  // else_block?
+            (c = else_block_rule(p), !p->error_indicator)  // else_block?
         )
         {
             D(fprintf(stderr, "%*c+ while_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'while' named_expression ':' block else_block?"));
@@ -3935,11 +3935,11 @@ for_stmt_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
-            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1)  // TYPE_COMMENT?
+            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
             &&
             (b = block_rule(p))  // block
             &&
-            (el = else_block_rule(p), 1)  // else_block?
+            (el = else_block_rule(p), !p->error_indicator)  // else_block?
         )
         {
             D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
@@ -3999,11 +3999,11 @@ for_stmt_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
-            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1)  // TYPE_COMMENT?
+            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
             &&
             (b = block_rule(p))  // block
             &&
-            (el = else_block_rule(p), 1)  // else_block?
+            (el = else_block_rule(p), !p->error_indicator)  // else_block?
         )
         {
             D(fprintf(stderr, "%*c+ for_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' ~ star_expressions ':' TYPE_COMMENT? block else_block?"));
@@ -4102,7 +4102,7 @@ with_stmt_rule(Parser *p)
             &&
             (a = _gather_39_rule(p))  // ','.with_item+
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
             &&
@@ -4151,7 +4151,7 @@ with_stmt_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
-            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1)  // TYPE_COMMENT?
+            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
             &&
             (b = block_rule(p))  // block
         )
@@ -4202,7 +4202,7 @@ with_stmt_rule(Parser *p)
             &&
             (a = _gather_43_rule(p))  // ','.with_item+
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
             &&
@@ -4254,7 +4254,7 @@ with_stmt_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
-            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1)  // TYPE_COMMENT?
+            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
             &&
             (b = block_rule(p))  // block
         )
@@ -4467,9 +4467,9 @@ try_stmt_rule(Parser *p)
             &&
             (ex = _loop1_48_rule(p))  // except_block+
             &&
-            (el = else_block_rule(p), 1)  // else_block?
+            (el = else_block_rule(p), !p->error_indicator)  // else_block?
             &&
-            (f = finally_block_rule(p), 1)  // finally_block?
+            (f = finally_block_rule(p), !p->error_indicator)  // finally_block?
         )
         {
             D(fprintf(stderr, "%*c+ try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
@@ -4536,7 +4536,7 @@ except_block_rule(Parser *p)
             &&
             (e = expression_rule(p))  // expression
             &&
-            (t = _tmp_49_rule(p), 1)  // ['as' NAME]
+            (t = _tmp_49_rule(p), !p->error_indicator)  // ['as' NAME]
             &&
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
@@ -4688,7 +4688,7 @@ return_stmt_rule(Parser *p)
         if (
             (_keyword = _PyPegen_expect_token(p, 500))  // token='return'
             &&
-            (a = star_expressions_rule(p), 1)  // star_expressions?
+            (a = star_expressions_rule(p), !p->error_indicator)  // star_expressions?
         )
         {
             D(fprintf(stderr, "%*c+ return_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'return' star_expressions?"));
@@ -4753,7 +4753,7 @@ raise_stmt_rule(Parser *p)
             &&
             (a = expression_rule(p))  // expression
             &&
-            (b = _tmp_50_rule(p), 1)  // ['from' expression]
+            (b = _tmp_50_rule(p), !p->error_indicator)  // ['from' expression]
         )
         {
             D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise' expression ['from' expression]"));
@@ -4924,15 +4924,15 @@ function_def_raw_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (params = params_rule(p), 1)  // params?
+            (params = params_rule(p), !p->error_indicator)  // params?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
             &&
-            (a = _tmp_51_rule(p), 1)  // ['->' expression]
+            (a = _tmp_51_rule(p), !p->error_indicator)  // ['->' expression]
             &&
             (_literal_2 = _PyPegen_expect_token(p, 11))  // token=':'
             &&
-            (tc = func_type_comment_rule(p), 1)  // func_type_comment?
+            (tc = func_type_comment_rule(p), !p->error_indicator)  // func_type_comment?
             &&
             (b = block_rule(p))  // block
         )
@@ -4984,15 +4984,15 @@ function_def_raw_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (params = params_rule(p), 1)  // params?
+            (params = params_rule(p), !p->error_indicator)  // params?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
             &&
-            (a = _tmp_52_rule(p), 1)  // ['->' expression]
+            (a = _tmp_52_rule(p), !p->error_indicator)  // ['->' expression]
             &&
             (_literal_2 = _PyPegen_expect_token(p, 11))  // token=':'
             &&
-            (tc = func_type_comment_rule(p), 1)  // func_type_comment?
+            (tc = func_type_comment_rule(p), !p->error_indicator)  // func_type_comment?
             &&
             (b = block_rule(p))  // block
         )
@@ -5200,7 +5200,7 @@ parameters_rule(Parser *p)
             &&
             (c = _loop0_55_rule(p))  // param_with_default*
             &&
-            (d = star_etc_rule(p), 1)  // star_etc?
+            (d = star_etc_rule(p), !p->error_indicator)  // star_etc?
         )
         {
             D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default param_no_default* param_with_default* star_etc?"));
@@ -5230,7 +5230,7 @@ parameters_rule(Parser *p)
             &&
             (b = _loop0_56_rule(p))  // param_with_default*
             &&
-            (c = star_etc_rule(p), 1)  // star_etc?
+            (c = star_etc_rule(p), !p->error_indicator)  // star_etc?
         )
         {
             D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
@@ -5260,7 +5260,7 @@ parameters_rule(Parser *p)
             &&
             (b = _loop0_58_rule(p))  // param_with_default*
             &&
-            (c = star_etc_rule(p), 1)  // star_etc?
+            (c = star_etc_rule(p), !p->error_indicator)  // star_etc?
         )
         {
             D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
@@ -5287,7 +5287,7 @@ parameters_rule(Parser *p)
         if (
             (a = _loop1_59_rule(p))  // param_with_default+
             &&
-            (b = star_etc_rule(p), 1)  // star_etc?
+            (b = star_etc_rule(p), !p->error_indicator)  // star_etc?
         )
         {
             D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
@@ -5525,7 +5525,7 @@ star_etc_rule(Parser *p)
             &&
             (b = _loop0_66_rule(p))  // param_maybe_default*
             &&
-            (c = kwds_rule(p), 1)  // kwds?
+            (c = kwds_rule(p), !p->error_indicator)  // kwds?
         )
         {
             D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
@@ -5558,7 +5558,7 @@ star_etc_rule(Parser *p)
             &&
             (b = _loop1_67_rule(p))  // param_maybe_default+
             &&
-            (c = kwds_rule(p), 1)  // kwds?
+            (c = kwds_rule(p), !p->error_indicator)  // kwds?
         )
         {
             D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
@@ -5692,7 +5692,7 @@ param_no_default_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1)  // TYPE_COMMENT?
+            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
         )
         {
             D(fprintf(stderr, "%*c+ param_no_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param ',' TYPE_COMMENT?"));
@@ -5719,7 +5719,7 @@ param_no_default_rule(Parser *p)
         if (
             (a = param_rule(p))  // param
             &&
-            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1)  // TYPE_COMMENT?
+            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
             &&
             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
         )
@@ -5771,7 +5771,7 @@ param_with_default_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1)  // TYPE_COMMENT?
+            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
         )
         {
             D(fprintf(stderr, "%*c+ param_with_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default ',' TYPE_COMMENT?"));
@@ -5801,7 +5801,7 @@ param_with_default_rule(Parser *p)
             &&
             (c = default_rule(p))  // default
             &&
-            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1)  // TYPE_COMMENT?
+            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
             &&
             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
         )
@@ -5851,11 +5851,11 @@ param_maybe_default_rule(Parser *p)
         if (
             (a = param_rule(p))  // param
             &&
-            (c = default_rule(p), 1)  // default?
+            (c = default_rule(p), !p->error_indicator)  // default?
             &&
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1)  // TYPE_COMMENT?
+            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
         )
         {
             D(fprintf(stderr, "%*c+ param_maybe_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
@@ -5883,9 +5883,9 @@ param_maybe_default_rule(Parser *p)
         if (
             (a = param_rule(p))  // param
             &&
-            (c = default_rule(p), 1)  // default?
+            (c = default_rule(p), !p->error_indicator)  // default?
             &&
-            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1)  // TYPE_COMMENT?
+            (tc = _PyPegen_expect_token(p, TYPE_COMMENT), !p->error_indicator)  // TYPE_COMMENT?
             &&
             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
         )
@@ -5940,7 +5940,7 @@ param_rule(Parser *p)
         if (
             (a = _PyPegen_name_token(p))  // NAME
             &&
-            (b = annotation_rule(p), 1)  // annotation?
+            (b = annotation_rule(p), !p->error_indicator)  // annotation?
         )
         {
             D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
@@ -6199,7 +6199,7 @@ class_def_raw_rule(Parser *p)
             &&
             (a = _PyPegen_name_token(p))  // NAME
             &&
-            (b = _tmp_69_rule(p), 1)  // ['(' arguments? ')']
+            (b = _tmp_69_rule(p), !p->error_indicator)  // ['(' arguments? ')']
             &&
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
@@ -6365,7 +6365,7 @@ star_expressions_rule(Parser *p)
             &&
             (b = _loop1_70_rule(p))  // ((',' star_expression))+
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
         )
         {
             D(fprintf(stderr, "%*c+ star_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
@@ -6560,7 +6560,7 @@ star_named_expressions_rule(Parser *p)
         if (
             (a = _gather_71_rule(p))  // ','.star_named_expression+
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
         )
         {
             D(fprintf(stderr, "%*c+ star_named_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_named_expression+ ','?"));
@@ -6865,7 +6865,7 @@ expressions_rule(Parser *p)
             &&
             (b = _loop1_73_rule(p))  // ((',' expression))+
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
         )
         {
             D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
@@ -7098,7 +7098,7 @@ lambdef_rule(Parser *p)
         if (
             (_keyword = _PyPegen_expect_token(p, 525))  // token='lambda'
             &&
-            (a = lambda_params_rule(p), 1)  // lambda_params?
+            (a = lambda_params_rule(p), !p->error_indicator)  // lambda_params?
             &&
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
@@ -7221,7 +7221,7 @@ lambda_parameters_rule(Parser *p)
             &&
             (c = _loop0_75_rule(p))  // lambda_param_with_default*
             &&
-            (d = lambda_star_etc_rule(p), 1)  // lambda_star_etc?
+            (d = lambda_star_etc_rule(p), !p->error_indicator)  // lambda_star_etc?
         )
         {
             D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?"));
@@ -7251,7 +7251,7 @@ lambda_parameters_rule(Parser *p)
             &&
             (b = _loop0_76_rule(p))  // lambda_param_with_default*
             &&
-            (c = lambda_star_etc_rule(p), 1)  // lambda_star_etc?
+            (c = lambda_star_etc_rule(p), !p->error_indicator)  // lambda_star_etc?
         )
         {
             D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default lambda_param_with_default* lambda_star_etc?"));
@@ -7281,7 +7281,7 @@ lambda_parameters_rule(Parser *p)
             &&
             (b = _loop0_78_rule(p))  // lambda_param_with_default*
             &&
-            (c = lambda_star_etc_rule(p), 1)  // lambda_star_etc?
+            (c = lambda_star_etc_rule(p), !p->error_indicator)  // lambda_star_etc?
         )
         {
             D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?"));
@@ -7308,7 +7308,7 @@ lambda_parameters_rule(Parser *p)
         if (
             (a = _loop1_79_rule(p))  // lambda_param_with_default+
             &&
-            (b = lambda_star_etc_rule(p), 1)  // lambda_star_etc?
+            (b = lambda_star_etc_rule(p), !p->error_indicator)  // lambda_star_etc?
         )
         {
             D(fprintf(stderr, "%*c+ lambda_parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
@@ -7548,7 +7548,7 @@ lambda_star_etc_rule(Parser *p)
             &&
             (b = _loop0_86_rule(p))  // lambda_param_maybe_default*
             &&
-            (c = lambda_kwds_rule(p), 1)  // lambda_kwds?
+            (c = lambda_kwds_rule(p), !p->error_indicator)  // lambda_kwds?
         )
         {
             D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
@@ -7581,7 +7581,7 @@ lambda_star_etc_rule(Parser *p)
             &&
             (b = _loop1_87_rule(p))  // lambda_param_maybe_default+
             &&
-            (c = lambda_kwds_rule(p), 1)  // lambda_kwds?
+            (c = lambda_kwds_rule(p), !p->error_indicator)  // lambda_kwds?
         )
         {
             D(fprintf(stderr, "%*c+ lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
@@ -7859,7 +7859,7 @@ lambda_param_maybe_default_rule(Parser *p)
         if (
             (a = lambda_param_rule(p))  // lambda_param
             &&
-            (c = default_rule(p), 1)  // default?
+            (c = default_rule(p), !p->error_indicator)  // default?
             &&
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
         )
@@ -7888,7 +7888,7 @@ lambda_param_maybe_default_rule(Parser *p)
         if (
             (a = lambda_param_rule(p))  // lambda_param
             &&
-            (c = default_rule(p), 1)  // default?
+            (c = default_rule(p), !p->error_indicator)  // default?
             &&
             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11)  // token=':'
         )
@@ -10404,7 +10404,7 @@ primary_raw(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (b = arguments_rule(p), 1)  // arguments?
+            (b = arguments_rule(p), !p->error_indicator)  // arguments?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
         )
@@ -10556,7 +10556,7 @@ slices_rule(Parser *p)
         if (
             (a = _gather_92_rule(p))  // ','.slice+
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
         )
         {
             D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
@@ -10618,13 +10618,13 @@ slice_rule(Parser *p)
         void *b;
         void *c;
         if (
-            (a = expression_rule(p), 1)  // expression?
+            (a = expression_rule(p), !p->error_indicator)  // expression?
             &&
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
-            (b = expression_rule(p), 1)  // expression?
+            (b = expression_rule(p), !p->error_indicator)  // expression?
             &&
-            (c = _tmp_94_rule(p), 1)  // [':' expression?]
+            (c = _tmp_94_rule(p), !p->error_indicator)  // [':' expression?]
         )
         {
             D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
@@ -11072,7 +11072,7 @@ list_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 9))  // token='['
             &&
-            (a = star_named_expressions_rule(p), 1)  // star_named_expressions?
+            (a = star_named_expressions_rule(p), !p->error_indicator)  // star_named_expressions?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
         )
@@ -11231,7 +11231,7 @@ tuple_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (a = _tmp_99_rule(p), 1)  // [star_named_expression ',' star_named_expressions?]
+            (a = _tmp_99_rule(p), !p->error_indicator)  // [star_named_expression ',' star_named_expressions?]
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
         )
@@ -11615,7 +11615,7 @@ dict_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 25))  // token='{'
             &&
-            (a = double_starred_kvpairs_rule(p), 1)  // double_starred_kvpairs?
+            (a = double_starred_kvpairs_rule(p), !p->error_indicator)  // double_starred_kvpairs?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 26))  // token='}'
         )
@@ -11758,7 +11758,7 @@ double_starred_kvpairs_rule(Parser *p)
         if (
             (a = _gather_101_rule(p))  // ','.double_starred_kvpair+
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
         )
         {
             D(fprintf(stderr, "%*c+ double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.double_starred_kvpair+ ','?"));
@@ -12124,7 +12124,7 @@ yield_expr_rule(Parser *p)
         if (
             (_keyword = _PyPegen_expect_token(p, 504))  // token='yield'
             &&
-            (a = star_expressions_rule(p), 1)  // star_expressions?
+            (a = star_expressions_rule(p), !p->error_indicator)  // star_expressions?
         )
         {
             D(fprintf(stderr, "%*c+ yield_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'yield' star_expressions?"));
@@ -12182,7 +12182,7 @@ arguments_rule(Parser *p)
         if (
             (a = args_rule(p))  // args
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
             &&
             _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8)  // token=')'
         )
@@ -12257,7 +12257,7 @@ args_rule(Parser *p)
         if (
             (a = _gather_106_rule(p))  // ','.(starred_expression | named_expression !'=')+
             &&
-            (b = _tmp_108_rule(p), 1)  // [',' kwargs]
+            (b = _tmp_108_rule(p), !p->error_indicator)  // [',' kwargs]
         )
         {
             D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | named_expression !'=')+ [',' kwargs]"));
@@ -12760,7 +12760,7 @@ star_targets_rule(Parser *p)
             &&
             (b = _loop0_117_rule(p))  // ((',' star_target))*
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
         )
         {
             D(fprintf(stderr, "%*c+ star_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))* ','?"));
@@ -12814,7 +12814,7 @@ star_targets_list_seq_rule(Parser *p)
         if (
             (a = _gather_118_rule(p))  // ','.star_target+
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
         )
         {
             D(fprintf(stderr, "%*c+ star_targets_list_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.star_target+ ','?"));
@@ -12862,7 +12862,7 @@ star_targets_tuple_seq_rule(Parser *p)
             &&
             (b = _loop1_120_rule(p))  // ((',' star_target))+
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
         )
         {
             D(fprintf(stderr, "%*c+ star_targets_tuple_seq[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target ((',' star_target))+ ','?"));
@@ -13225,7 +13225,7 @@ star_atom_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (a = star_targets_tuple_seq_rule(p), 1)  // star_targets_tuple_seq?
+            (a = star_targets_tuple_seq_rule(p), !p->error_indicator)  // star_targets_tuple_seq?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
         )
@@ -13264,7 +13264,7 @@ star_atom_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 9))  // token='['
             &&
-            (a = star_targets_list_seq_rule(p), 1)  // star_targets_list_seq?
+            (a = star_targets_list_seq_rule(p), !p->error_indicator)  // star_targets_list_seq?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
         )
@@ -13523,7 +13523,7 @@ del_targets_rule(Parser *p)
         if (
             (a = _gather_122_rule(p))  // ','.del_target+
             &&
-            (_opt_var = _PyPegen_expect_token(p, 12), 1)  // ','?
+            (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator)  // ','?
         )
         {
             D(fprintf(stderr, "%*c+ del_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
@@ -13769,7 +13769,7 @@ del_t_atom_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (a = del_targets_rule(p), 1)  // del_targets?
+            (a = del_targets_rule(p), !p->error_indicator)  // del_targets?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
         )
@@ -13808,7 +13808,7 @@ del_t_atom_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 9))  // token='['
             &&
-            (a = del_targets_rule(p), 1)  // del_targets?
+            (a = del_targets_rule(p), !p->error_indicator)  // del_targets?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 10))  // token=']'
         )
@@ -14036,7 +14036,7 @@ t_primary_raw(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (b = arguments_rule(p), 1)  // arguments?
+            (b = arguments_rule(p), !p->error_indicator)  // arguments?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
             &&
@@ -14235,7 +14235,7 @@ invalid_arguments_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (_opt_var = _tmp_124_rule(p), 1)  // [args | expression for_if_clauses]
+            (_opt_var = _tmp_124_rule(p), !p->error_indicator)  // [args | expression for_if_clauses]
         )
         {
             D(fprintf(stderr, "%*c+ invalid_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
@@ -15302,7 +15302,7 @@ invalid_for_target_rule(Parser *p)
         UNUSED(_opt_var); // Silence compiler warnings
         expr_ty a;
         if (
-            (_opt_var = _PyPegen_expect_token(p, ASYNC), 1)  // ASYNC?
+            (_opt_var = _PyPegen_expect_token(p, ASYNC), !p->error_indicator)  // ASYNC?
             &&
             (_keyword = _PyPegen_expect_token(p, 517))  // token='for'
             &&
@@ -19473,7 +19473,7 @@ _tmp_69_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 7))  // token='('
             &&
-            (z = arguments_rule(p), 1)  // arguments?
+            (z = arguments_rule(p), !p->error_indicator)  // arguments?
             &&
             (_literal_1 = _PyPegen_expect_token(p, 8))  // token=')'
         )
@@ -21102,7 +21102,7 @@ _tmp_94_rule(Parser *p)
         if (
             (_literal = _PyPegen_expect_token(p, 11))  // token=':'
             &&
-            (d = expression_rule(p), 1)  // expression?
+            (d = expression_rule(p), !p->error_indicator)  // expression?
         )
         {
             D(fprintf(stderr, "%*c+ _tmp_94[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
@@ -21442,7 +21442,7 @@ _tmp_99_rule(Parser *p)
             &&
             (_literal = _PyPegen_expect_token(p, 12))  // token=','
             &&
-            (z = star_named_expressions_rule(p), 1)  // star_named_expressions?
+            (z = star_named_expressions_rule(p), !p->error_indicator)  // star_named_expressions?
         )
         {
             D(fprintf(stderr, "%*c+ _tmp_99[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
index 41fdc2d81d92bc0b81641c6a5558612f263b4586..f1df2c46a6cf6c736e38cdd9d8ccf27e14e536cf 100644 (file)
@@ -120,7 +120,7 @@ decode_unicode_with_escapes(Parser *parser, const char *s, size_t len, Token *t)
     s = buf;
 
     const char *first_invalid_escape;
-    v = _PyUnicode_DecodeUnicodeEscape(s, len, NULL, &first_invalid_escape);
+    v = _PyUnicode_DecodeUnicodeEscapeInternal(s, len, NULL, NULL, &first_invalid_escape);
 
     if (v != NULL && first_invalid_escape != NULL) {
         if (warn_invalid_escape_sequence(parser, *first_invalid_escape, t) < 0) {
index bf53214b4d06374cfa68675e78ef3c6d370715f2..98de05c5cdb696f5b97307f790192800dc8ccba8 100644 (file)
@@ -347,10 +347,18 @@ tokenizer_error(Parser *p)
             errtype = PyExc_IndentationError;
             msg = "too many levels of indentation";
             break;
-        case E_LINECONT:
-            col_offset = strlen(strtok(p->tok->buf, "\n")) - 1;
+        case E_LINECONT: {
+            char* loc = strrchr(p->tok->buf, '\n');
+            const char* last_char = p->tok->cur - 1;
+            if (loc != NULL && loc != last_char) {
+                col_offset = p->tok->cur - loc - 1;
+                p->tok->buf = loc;
+            } else {
+                col_offset = last_char - p->tok->buf - 1;
+            }
             msg = "unexpected character after line continuation character";
             break;
+        }
         default:
             msg = "unknown parsing error";
     }
index 3933b86af119404de24ac690a811df3fefb681c3..897ce7f7ae6e5193980c759ec36a613a3c3dcd49 100644 (file)
@@ -1617,15 +1617,26 @@ static int test_run_main(void)
 }
 
 
+static int test_run_main_loop(void)
+{
+    // bpo-40413: Calling Py_InitializeFromConfig()+Py_RunMain() multiple
+    // times must not crash.
+    for (int i=0; i<5; i++) {
+        int exitcode = test_run_main();
+        if (exitcode != 0) {
+            return exitcode;
+        }
+    }
+    return 0;
+}
+
+
 static int test_get_argc_argv(void)
 {
     PyConfig config;
     PyConfig_InitPythonConfig(&config);
 
-    wchar_t *argv[] = {L"python3", L"-c",
-                       (L"import sys; "
-                        L"print(f'Py_RunMain(): sys.argv={sys.argv}')"),
-                       L"arg2"};
+    wchar_t *argv[] = {L"python3", L"-c", L"pass", L"arg2"};
     config_set_argv(&config, Py_ARRAY_LENGTH(argv), argv);
     config_set_string(&config, &config.program_name, L"./python3");
 
@@ -1749,6 +1760,7 @@ static struct TestCase TestCases[] = {
     {"test_init_setpythonhome", test_init_setpythonhome},
     {"test_init_warnoptions", test_init_warnoptions},
     {"test_run_main", test_run_main},
+    {"test_run_main_loop", test_run_main_loop},
     {"test_get_argc_argv", test_get_argc_argv},
 
     // Audit
index c7ba4d9c544c8c41e5f86aed40c37a6695fb1ea3..6dd705926312f07f44435b9ce4e5457841e8cf4d 100644 (file)
@@ -4640,7 +4640,7 @@ decode_unicode_with_escapes(struct compiling *c, const node *n, const char *s,
     s = buf;
 
     const char *first_invalid_escape;
-    v = _PyUnicode_DecodeUnicodeEscape(s, len, NULL, &first_invalid_escape);
+    v = _PyUnicode_DecodeUnicodeEscapeInternal(s, len, NULL, NULL, &first_invalid_escape);
 
     if (v != NULL && first_invalid_escape != NULL) {
         if (warn_invalid_escape_sequence(c, n, *first_invalid_escape) < 0) {
index a212f69870ed10f314ecc5e017402c4fb098e182..e189ce0d9014bf2d08bdb717b25e0bd02e86a19c 100644 (file)
@@ -25,7 +25,7 @@
 #  include <sanitizer/msan_interface.h>
 #endif
 
-#if defined(__APPLE__) && defined(__has_builtin) 
+#if defined(__APPLE__) && defined(__has_builtin)
 #  if __has_builtin(__builtin_available)
 #    define HAVE_GETENTRYPY_GETRANDOM_RUNTIME __builtin_available(macOS 10.12, iOS 10.10, tvOS 10.0, watchOS 3.0, *)
 #  endif
@@ -221,7 +221,7 @@ py_getrandom(void *buffer, Py_ssize_t size, int blocking, int raise)
 
 #if defined(__APPLE__) && defined(__has_attribute) && __has_attribute(availability)
 static int
-py_getentropy(char *buffer, Py_ssize_t size, int raise) 
+py_getentropy(char *buffer, Py_ssize_t size, int raise)
         __attribute__((availability(macos,introduced=10.12)))
         __attribute__((availability(ios,introduced=10.0)))
         __attribute__((availability(tvos,introduced=10.0)))
index e36d608c6dca4481ff1d97b55b079b1c9c207693..a53373038ed85988233c7d74db9a83a8ad93b17f 100644 (file)
@@ -13,7 +13,7 @@
 #define FUNCNAME_PATTERN "%.20s_%.200s"
 #endif
 
-const char *_PyImport_DynLoadFiletab[] = {SHLIB_EXT, NULL};
+const char *_PyImport_DynLoadFiletab[] = {SHLIB_EXT, ".sl", NULL};
 
 dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix,
                                        const char *shortname,
index 8a2ba8f9d716319e8af38a55b87f0d3a71439f07..40d8e68bde7839c87760d6fe60488183c771521b 100644 (file)
@@ -3,6 +3,7 @@
 
 #include "Python.h"
 #include "pycore_initconfig.h"
+#include "pycore_object.h"        // _PyType_GetQualName
 #include "pycore_pyerrors.h"
 #include "pycore_pystate.h"    // _PyThreadState_GET()
 #include "pycore_sysmodule.h"
@@ -1321,46 +1322,45 @@ write_unraisable_exc_file(PyThreadState *tstate, PyObject *exc_type,
     }
 
     assert(PyExceptionClass_Check(exc_type));
-    const char *className = PyExceptionClass_Name(exc_type);
-    if (className != NULL) {
-        const char *dot = strrchr(className, '.');
-        if (dot != NULL) {
-            className = dot+1;
-        }
-    }
 
-    PyObject *moduleName = _PyObject_GetAttrId(exc_type, &PyId___module__);
-    if (moduleName == NULL || !PyUnicode_Check(moduleName)) {
-        Py_XDECREF(moduleName);
+    PyObject *modulename = _PyObject_GetAttrId(exc_type, &PyId___module__);
+    if (modulename == NULL || !PyUnicode_Check(modulename)) {
+        Py_XDECREF(modulename);
         _PyErr_Clear(tstate);
         if (PyFile_WriteString("<unknown>", file) < 0) {
             return -1;
         }
     }
     else {
-        if (!_PyUnicode_EqualToASCIIId(moduleName, &PyId_builtins)) {
-            if (PyFile_WriteObject(moduleName, file, Py_PRINT_RAW) < 0) {
-                Py_DECREF(moduleName);
+        if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins)) {
+            if (PyFile_WriteObject(modulename, file, Py_PRINT_RAW) < 0) {
+                Py_DECREF(modulename);
                 return -1;
             }
-            Py_DECREF(moduleName);
+            Py_DECREF(modulename);
             if (PyFile_WriteString(".", file) < 0) {
                 return -1;
             }
         }
         else {
-            Py_DECREF(moduleName);
+            Py_DECREF(modulename);
         }
     }
-    if (className == NULL) {
+
+    PyObject *qualname = _PyType_GetQualName((PyTypeObject *)exc_type);
+    if (qualname == NULL || !PyUnicode_Check(qualname)) {
+        Py_XDECREF(qualname);
+        _PyErr_Clear(tstate);
         if (PyFile_WriteString("<unknown>", file) < 0) {
             return -1;
         }
     }
     else {
-        if (PyFile_WriteString(className, file) < 0) {
+        if (PyFile_WriteObject(qualname, file, Py_PRINT_RAW) < 0) {
+            Py_DECREF(qualname);
             return -1;
         }
+        Py_DECREF(qualname);
     }
 
     if (exc_value && exc_value != Py_None) {
index 11c659d5a46faef8f971023362510705619ccd0f..26e97df4ef346148f4d5e15a0624954aef1363e8 100644 (file)
@@ -69,9 +69,11 @@ _Py_device_encoding(int fd)
     UINT cp;
 #endif
     int valid;
+    Py_BEGIN_ALLOW_THREADS
     _Py_BEGIN_SUPPRESS_IPH
     valid = isatty(fd);
     _Py_END_SUPPRESS_IPH
+    Py_END_ALLOW_THREADS
     if (!valid)
         Py_RETURN_NONE;
 
@@ -221,7 +223,7 @@ check_force_ascii(void)
         ch = (unsigned char)0xA7;
         res = _Py_mbstowcs(&wch, (char*)&ch, 1);
         if (res != DECODE_ERROR && wch == L'\xA7') {
-            /* On HP-UX withe C locale or the POSIX locale,
+            /* On HP-UX with C locale or the POSIX locale,
                nl_langinfo(CODESET) announces "roman8", whereas mbstowcs() uses
                Latin1 encoding in practice. Force ASCII in this case.
 
@@ -1737,12 +1739,22 @@ _Py_write_impl(int fd, const void *buf, size_t count, int gil_held)
 
     _Py_BEGIN_SUPPRESS_IPH
 #ifdef MS_WINDOWS
-    if (count > 32767 && isatty(fd)) {
+    if (count > 32767) {
         /* Issue #11395: the Windows console returns an error (12: not
            enough space error) on writing into stdout if stdout mode is
            binary and the length is greater than 66,000 bytes (or less,
            depending on heap usage). */
-        count = 32767;
+        if (gil_held) {
+            Py_BEGIN_ALLOW_THREADS
+            if (isatty(fd)) {
+                count = 32767;
+            }
+            Py_END_ALLOW_THREADS
+        } else {
+            if (isatty(fd)) {
+                count = 32767;
+            }
+        }
     }
 #endif
     if (count > _PY_WRITE_MAX) {
index 1ec755393df997b6600a158176b7a54bccc44c9f..8358d70f468dd919dfe78fc3d3322e2db1a07be5 100644 (file)
@@ -710,7 +710,9 @@ _PyImport_FixupExtensionObject(PyObject *mod, PyObject *name,
         return -1;
     }
 
-    if (_Py_IsMainInterpreter(tstate)) {
+    // bpo-44050: Extensions and def->m_base.m_copy can be updated
+    // when the extension module doesn't support sub-interpreters.
+    if (_Py_IsMainInterpreter(tstate) || def->m_size == -1) {
         if (def->m_size == -1) {
             if (def->m_base.m_copy) {
                 /* Somebody already imported the module,
index fbeb9fb75403e608d01de02ad6e7c8df389043bb..134f6680c4484af032be9f3a19dea19cd63d55b0 100644 (file)
@@ -42,6 +42,9 @@ get_encoded_name(PyObject *name, const char **hook_prefix) {
 
     /* Get the short name (substring after last dot) */
     name_len = PyUnicode_GetLength(name);
+    if (name_len < 0) {
+        return NULL;
+    }
     lastdot = PyUnicode_FindChar(name, '.', 0, name_len, -1);
     if (lastdot < -1) {
         return NULL;
@@ -121,7 +124,7 @@ _PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *fp)
 
     if (PySys_Audit("import", "OOOOO", name_unicode, path,
                     Py_None, Py_None, Py_None) < 0) {
-        return NULL;
+        goto error;
     }
 
 #ifdef MS_WINDOWS
@@ -204,7 +207,7 @@ _PyImport_LoadDynamicModuleWithSpec(PyObject *spec, FILE *fp)
         /* don't allow legacy init for non-ASCII module names */
         PyErr_Format(
             PyExc_SystemError,
-            "initialization of * did not return PyModuleDef",
+            "initialization of %s did not return PyModuleDef",
             name_buf);
         goto error;
     }
index 3caed385ef6af5b9bf86ff8184151def31c7cedd..116ee33fee1130e2e347501e05285071324a4ace 100644 (file)
@@ -2135,7 +2135,7 @@ warnoptions_append(PyConfig *config, PyWideStringList *options,
 {
     /* config_init_warnoptions() add existing config warnoptions at the end:
        ensure that the new option is not already present in this list to
-       prevent change the options order whne config_init_warnoptions() is
+       prevent change the options order when config_init_warnoptions() is
        called twice. */
     if (_PyWideStringList_Find(&config->warnoptions, option)) {
         /* Already present: do nothing */
index 9a302213e77b654cee0595bd448b263d91c22e10..b2ce86e64ce8c2f42a794cab8453e25d3ce36122 100644 (file)
@@ -331,7 +331,7 @@ config_calculate_pathconfig(PyConfig *config)
 #undef COPY_ATTR
 
 #ifdef MS_WINDOWS
-    /* If a ._pth file is found: isolated and site_import are overriden */
+    /* If a ._pth file is found: isolated and site_import are overridden */
     if (pathconfig.isolated != -1) {
         config->isolated = pathconfig.isolated;
     }
index 34cfb7f4b4fd7835be2a641c8a9e391764174870..50c59b69f31fc8ab730a7a99d430c4f3b27739ed 100644 (file)
@@ -2,7 +2,7 @@
 /* Top level execution of Python code (including in __main__) */
 
 /* To help control the interfaces between the startup, execution and
- * shutdown code, the phases are split across separate modules (boostrap,
+ * shutdown code, the phases are split across separate modules (bootstrap,
  * pythonrun, shutdown)
  */
 
@@ -14,7 +14,8 @@
 #undef Yield   /* undefine macro conflicting with <winbase.h> */
 
 #include "pycore_interp.h"        // PyInterpreterState.importlib
-#include "pycore_object.h"        // _PyDebug_PrintTotalRefs()
+#include "pycore_object.h"        // _PyDebug_PrintTotalRefs(),
+                                  // _PyType_GetQualName()
 #include "pycore_pyerrors.h"      // _PyErr_Fetch
 #include "pycore_pylifecycle.h"   // _Py_UnhandledKeyboardInterrupt
 #include "pycore_pystate.h"       // _PyInterpreterState_GET()
@@ -892,36 +893,37 @@ print_exception(PyObject *f, PyObject *value)
         /* Don't do anything else */
     }
     else {
-        PyObject* moduleName;
-        const char *className;
+        PyObject* modulename;
+
         _Py_IDENTIFIER(__module__);
         assert(PyExceptionClass_Check(type));
-        className = PyExceptionClass_Name(type);
-        if (className != NULL) {
-            const char *dot = strrchr(className, '.');
-            if (dot != NULL)
-                className = dot+1;
-        }
 
-        moduleName = _PyObject_GetAttrId(type, &PyId___module__);
-        if (moduleName == NULL || !PyUnicode_Check(moduleName))
+        modulename = _PyObject_GetAttrId(type, &PyId___module__);
+        if (modulename == NULL || !PyUnicode_Check(modulename))
         {
-            Py_XDECREF(moduleName);
+            Py_XDECREF(modulename);
+            PyErr_Clear();
             err = PyFile_WriteString("<unknown>", f);
         }
         else {
-            if (!_PyUnicode_EqualToASCIIId(moduleName, &PyId_builtins))
+            if (!_PyUnicode_EqualToASCIIId(modulename, &PyId_builtins))
             {
-                err = PyFile_WriteObject(moduleName, f, Py_PRINT_RAW);
+                err = PyFile_WriteObject(modulename, f, Py_PRINT_RAW);
                 err += PyFile_WriteString(".", f);
             }
-            Py_DECREF(moduleName);
+            Py_DECREF(modulename);
         }
         if (err == 0) {
-            if (className == NULL)
-                      err = PyFile_WriteString("<unknown>", f);
-            else
-                      err = PyFile_WriteString(className, f);
+            PyObject* qualname = _PyType_GetQualName((PyTypeObject *)type);
+            if (qualname == NULL || !PyUnicode_Check(qualname)) {
+                Py_XDECREF(qualname);
+                PyErr_Clear();
+                err = PyFile_WriteString("<unknown>", f);
+            }
+            else {
+                err = PyFile_WriteObject(qualname, f, Py_PRINT_RAW);
+                Py_DECREF(qualname);
+            }
         }
     }
     if (err == 0 && (value != Py_None)) {
index 89d63e080422b34e20257549b4edd5ee680c35ad..a9af7572431270fbe5ac5bdede58b69abf3461a2 100644 (file)
@@ -6,7 +6,7 @@
 #if defined(__APPLE__)
 #include <mach/mach_time.h>   /* mach_absolute_time(), mach_timebase_info() */
 
-#if defined(__APPLE__) && defined(__has_builtin) 
+#if defined(__APPLE__) && defined(__has_builtin)
 #  if __has_builtin(__builtin_available)
 #    define HAVE_CLOCK_GETTIME_RUNTIME __builtin_available(macOS 10.12, iOS 10.0, tvOS 10.0, watchOS 3.0, *)
 #  endif
@@ -730,7 +730,7 @@ pygettimeofday(_PyTime_t *tp, _Py_clock_info_t *info, int raise)
     }
 
 #ifdef HAVE_CLOCK_GETTIME_RUNTIME
-    } else { 
+    } else {
 #endif
 
 #endif
index e6910b3083a892042f6bc656cc69dde37fc0709f..83974b4c0ca3bc45808ef68373b668b09c2bafce 100644 (file)
  * mutexes and condition variables:
  */
 #if (defined(_POSIX_SEMAPHORES) && !defined(HAVE_BROKEN_POSIX_SEMAPHORES) && \
-     defined(HAVE_SEM_TIMEDWAIT))
+     (defined(HAVE_SEM_TIMEDWAIT) || defined(HAVE_SEM_CLOCKWAIT)))
 #  define USE_SEMAPHORES
 #else
 #  undef USE_SEMAPHORES
 #endif
 
+#if 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
+
 
 /* On platforms that don't use standard POSIX threads pthread_sigmask()
  * isn't present.  DEC threads uses sigprocmask() instead as do most
@@ -120,16 +125,23 @@ do { \
     ts.tv_nsec = tv.tv_usec * 1000; \
 } while(0)
 
+#if defined(CONDATTR_MONOTONIC) || defined(HAVE_SEM_CLOCKWAIT)
+static void
+monotonic_abs_timeout(long long us, struct timespec *abs)
+{
+    clock_gettime(CLOCK_MONOTONIC, abs);
+    abs->tv_sec  += us / 1000000;
+    abs->tv_nsec += (us % 1000000) * 1000;
+    abs->tv_sec  += abs->tv_nsec / 1000000000;
+    abs->tv_nsec %= 1000000000;
+}
+#endif
+
 
 /*
  * pthread_cond support
  */
 
-#if 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
-
 // NULL when pthread_condattr_setclock(CLOCK_MONOTONIC) is not supported.
 static pthread_condattr_t *condattr_monotonic = NULL;
 
@@ -151,16 +163,13 @@ _PyThread_cond_init(PyCOND_T *cond)
     return pthread_cond_init(cond, condattr_monotonic);
 }
 
+
 void
 _PyThread_cond_after(long long us, struct timespec *abs)
 {
 #ifdef CONDATTR_MONOTONIC
     if (condattr_monotonic) {
-        clock_gettime(CLOCK_MONOTONIC, abs);
-        abs->tv_sec  += us / 1000000;
-        abs->tv_nsec += (us % 1000000) * 1000;
-        abs->tv_sec  += abs->tv_nsec / 1000000000;
-        abs->tv_nsec %= 1000000000;
+        monotonic_abs_timeout(us, abs);
         return;
     }
 #endif
@@ -431,7 +440,9 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
     sem_t *thelock = (sem_t *)lock;
     int status, error = 0;
     struct timespec ts;
+#ifndef HAVE_SEM_CLOCKWAIT
     _PyTime_t deadline = 0;
+#endif
 
     (void) error; /* silence unused-but-set-variable warning */
     dprintf(("PyThread_acquire_lock_timed(%p, %lld, %d) called\n",
@@ -442,6 +453,9 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
     }
 
     if (microseconds > 0) {
+#ifdef HAVE_SEM_CLOCKWAIT
+        monotonic_abs_timeout(microseconds, &ts);
+#else
         MICROSECONDS_TO_TIMESPEC(microseconds, ts);
 
         if (!intr_flag) {
@@ -450,11 +464,17 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
             _PyTime_t timeout = _PyTime_FromNanoseconds(microseconds * 1000);
             deadline = _PyTime_GetMonotonicClock() + timeout;
         }
+#endif
     }
 
     while (1) {
         if (microseconds > 0) {
+#ifdef HAVE_SEM_CLOCKWAIT
+            status = fix_status(sem_clockwait(thelock, CLOCK_MONOTONIC,
+                                              &ts));
+#else
             status = fix_status(sem_timedwait(thelock, &ts));
+#endif
         }
         else if (microseconds == 0) {
             status = fix_status(sem_trywait(thelock));
@@ -469,6 +489,9 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
             break;
         }
 
+        // sem_clockwait() uses an absolute timeout, there is no need
+        // to recompute the relative timeout.
+#ifndef HAVE_SEM_CLOCKWAIT
         if (microseconds > 0) {
             /* wait interrupted by a signal (EINTR): recompute the timeout */
             _PyTime_t dt = deadline - _PyTime_GetMonotonicClock();
@@ -490,13 +513,19 @@ PyThread_acquire_lock_timed(PyThread_type_lock lock, PY_TIMEOUT_T microseconds,
                 microseconds = 0;
             }
         }
+#endif
     }
 
     /* Don't check the status if we're stopping because of an interrupt.  */
     if (!(intr_flag && status == EINTR)) {
         if (microseconds > 0) {
-            if (status != ETIMEDOUT)
+            if (status != ETIMEDOUT) {
+#ifdef HAVE_SEM_CLOCKWAIT
+                CHECK_STATUS("sem_clockwait");
+#else
                 CHECK_STATUS("sem_timedwait");
+#endif
+            }
         }
         else if (microseconds == 0) {
             if (status != EAGAIN)
index a419856dfb4e39f0712f3b31fbd549141cc83c13..ef78796301dc09bace1429da4ce702742808c8f9 100644 (file)
@@ -1,4 +1,4 @@
-This is Python version 3.9.7
+This is Python version 3.9.8
 ============================
 
 .. image:: https://travis-ci.org/python/cpython.svg?branch=3.9
index 34b58079281b6f8e06d6e64a561136362b9c061e..61d30b01c0998dee9b5c397292e470cd67c5f891 100755 (executable)
@@ -1632,7 +1632,7 @@ class BlockPrinter:
         dsl_name = block.dsl_name
         write = self.f.write
 
-        assert not ((dsl_name == None) ^ (output == None)), "you must specify dsl_name and output together, dsl_name " + repr(dsl_name)
+        assert not ((dsl_name is None) ^ (output is None)), "you must specify dsl_name and output together, dsl_name " + repr(dsl_name)
 
         if not dsl_name:
             write(input)
@@ -2957,7 +2957,7 @@ class int_converter(CConverter):
             self.format_unit = 'C'
         elif accept != {int}:
             fail("int_converter: illegal 'accept' argument " + repr(accept))
-        if type != None:
+        if type is not None:
             self.type = type
 
     def parse_arg(self, argname, displayname):
index b4d6a0bab51f4a941c2d35cbcb5f830793bc34d6..b5836f62263ef223cc451db3e4d1ad50b5fd7336 100644 (file)
@@ -85,7 +85,7 @@ class FunctionCall:
         if self.arguments:
             parts.append(f"({', '.join(map(str, self.arguments))})")
         if self.force_true:
-            parts.append(", 1")
+            parts.append(", !p->error_indicator")
         if self.assigned_variable:
             parts = ["(", self.assigned_variable, " = ", *parts, ")"]
         if self.comment:
@@ -685,7 +685,7 @@ class CParserGenerator(ParserGenerator, GrammarVisitor):
             self.print(
                 f'D(fprintf(stderr, "%*c+ {rulename}[%d-%d]: %s succeeded!\\n", p->level, \' \', _mark, p->mark, "{node_str}"));'
             )
-            # Prepare to emmit the rule action and do so
+            # Prepare to emit the rule action and do so
             if node.action and "EXTRA" in node.action:
                 self._set_up_token_end_metadata_extraction()
             if self.skip_actions:
index 71be5a2e7cbf4c0501b6d2c7e3820e165768ccf1..ce80bb5d5c44612539297f759d87a6838f035cbe 100755 (executable)
@@ -59,7 +59,7 @@ class FirstSetCalculator(GrammarVisitor):
                 result -= to_remove
 
             # If the set of new terminals can start with the empty string,
-            # it means that the item is completelly nullable and we should
+            # it means that the item is completely nullable and we should
             # also considering at least the next item in case the current
             # one fails to parse.
 
index 9874202d379eef0ec9b9deeb9d3671ccddaabac2..ca1216087a1fdf236e61dbe364e4285020afeb0a 100755 (executable)
@@ -72,7 +72,7 @@ def main() -> None:
 
         package_json = load_json(package_name)
         try:
-            print(f"Dowloading and compressing package {package_name} ... ", end="")
+            print(f"Downloading and compressing package {package_name} ... ", end="")
             download_package_code(package_name, package_json)
             print("Done")
         except (IndexError, KeyError):
index eb76d4042d33b6c7e0e83eabebf3363fd7e12d4d..c013a60896908963c279f3a36e1e94d7b42fcacf 100644 (file)
@@ -9,7 +9,7 @@ format of the file is.  If it can't figure out the file format, or it has
 trouble reading the file, None is returned.  You can pass get_colordb() an
 optional filetype argument.
 
-Supporte file types are:
+Supported file types are:
 
     X_RGB_TXT -- X Consortium rgb.txt format files.  Three columns of numbers
                  from 0 .. 255 separated by whitespace.  Arbitrary trailing
index 97bd2e2e47cae9403b810cf4fd6f3e7025d55186..490126b0182d1c0476c2b2f0c4120e56a839f589 100644 (file)
@@ -15,7 +15,7 @@ From the keyboard of flee@cs.psu.edu (Felix Lee):
 :And Perl is definitely awkward with data types.  I haven't yet found a
 :pleasant way of shoving non-trivial data types into Perl's grammar.
 
-Yes, it's pretty aweful at that, alright.  Sometimes I write perl programs
+Yes, it's pretty awful at that, alright.  Sometimes I write perl programs
 that need them, and sometimes it just takes a little creativity.  But
 sometimes it's not worth it.  I actually wrote a C program the other day
 (gasp) because I didn't want to deal with a game matrix with six links per node.
index 142d248dd2fa9b3cfc41455e64ebe25a220b2568..ab9dd7c972aab5cb9d4c8c34bde4449ce4d621e4 100644 (file)
@@ -1,9 +1,9 @@
 """
 pep384_macrocheck.py
 
-This programm tries to locate errors in the relevant Python header
+This program tries to locate errors in the relevant Python header
 files where macros access type fields when they are reachable from
-the limided API.
+the limited API.
 
 The idea is to search macros with the string "->tp_" in it.
 When the macro name does not begin with an underscore,
index 6baec7bc31a5817d83ede7bc68a0583f13ceb3ae..8888c4a6e5850b8fba8d97999d4e37fc4d2e926f 100755 (executable)
@@ -50,7 +50,7 @@ OPENSSL_OLD_VERSIONS = [
 
 OPENSSL_RECENT_VERSIONS = [
     "1.1.1l",
-    "3.0.0-beta1"
+    "3.0.0"
 ]
 
 LIBRESSL_OLD_VERSIONS = [
@@ -410,6 +410,10 @@ class BuildOpenSSL(AbstractBuilder):
             ["make", "-j1", "install_ssldirs", "install_fips"],
             cwd=self.build_dir
         )
+        if not os.path.isdir(self.lib_dir):
+            # 3.0.0-beta2 uses lib64 on 64 bit platforms
+            lib64 = self.lib_dir + "64"
+            os.symlink(lib64, self.lib_dir)
 
     @property
     def short_version(self):
index 5abc25a5723f26092134f57fa04f37d1c1d96f50..5d2b4146378626152bad6da6215aae13ac2043c8 100644 (file)
@@ -730,7 +730,7 @@ def join_alphabet_list_five(STR):
     for x in _RANGE_1000:
         sep_join(s2)
 
-@bench('"A".join(["Bob"]*100))',
+@bench('"A".join(["Bob"]*100)',
        "join list of 100 words, with 1 character sep", 1000)
 def join_100_words_single(STR):
     sep = STR("A")
index ffa61c1dc51269c946959a4ed2c838e4d6cde8bd..33ecb16f71452b455ef5f7fb2c2762bde82ea31a 100755 (executable)
--- a/configure
+++ b/configure
@@ -5196,9 +5196,6 @@ $as_echo "$as_me:
 fi
 
 
-MULTIARCH=$($CC --print-multiarch 2>/dev/null)
-
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5
 $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; }
 cat >> conftest.c <<EOF
@@ -5357,6 +5354,11 @@ $as_echo "none" >&6; }
 fi
 rm -f conftest.c conftest.out
 
+if test x$PLATFORM_TRIPLET != xdarwin; then
+  MULTIARCH=$($CC --print-multiarch 2>/dev/null)
+fi
+
+
 if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
   if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
     as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5
@@ -9918,6 +9920,75 @@ $as_echo "no" >&6; }
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
+save_LIBS=$LIBS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing uuid_generate_time_safe" >&5
+$as_echo_n "checking for library containing uuid_generate_time_safe... " >&6; }
+if ${ac_cv_search_uuid_generate_time_safe+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char uuid_generate_time_safe ();
+int
+main ()
+{
+return uuid_generate_time_safe ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' uuid; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_search_uuid_generate_time_safe=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if ${ac_cv_search_uuid_generate_time_safe+:} false; then :
+  break
+fi
+done
+if ${ac_cv_search_uuid_generate_time_safe+:} false; then :
+
+else
+  ac_cv_search_uuid_generate_time_safe=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_uuid_generate_time_safe" >&5
+$as_echo "$ac_cv_search_uuid_generate_time_safe" >&6; }
+ac_res=$ac_cv_search_uuid_generate_time_safe
+if test "$ac_res" != no; then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+
+$as_echo "#define HAVE_LIBUUID 1" >>confdefs.h
+,
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+fi
+
+LIBS=$save_LIBS
+
 # AIX provides support for RFC4122 (uuid) in libc.a starting with AIX 6.1 (anno 2007)
 # FreeBSD and OpenBSD provides support as well
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_create" >&5
@@ -11723,7 +11794,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
  posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \
  pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \
  readlink readlinkat readv realpath renameat \
- sem_open sem_timedwait sem_getvalue sem_unlink sendfile setegid seteuid \
+ sem_open sem_timedwait sem_clockwait sem_getvalue sem_unlink sendfile setegid seteuid \
  setgid sethostname \
  setlocale setregid setreuid setresuid setresgid setsid setpgid setpgrp setpriority setuid setvbuf \
  sched_get_priority_max sched_setaffinity sched_setscheduler sched_setparam \
index 8fe5fa5742e8be1a3d519c3aa8de7971421c9a4c..823252be69425679d79e06d4911750c71cff810c 100644 (file)
@@ -727,9 +727,6 @@ then
 fi
 
 
-MULTIARCH=$($CC --print-multiarch 2>/dev/null)
-AC_SUBST(MULTIARCH)
-
 AC_MSG_CHECKING([for the platform triplet based on compiler characteristics])
 cat >> conftest.c <<EOF
 #undef bfin
@@ -885,6 +882,11 @@ else
 fi
 rm -f conftest.c conftest.out
 
+if test x$PLATFORM_TRIPLET != xdarwin; then
+  MULTIARCH=$($CC --print-multiarch 2>/dev/null)
+fi
+AC_SUBST(MULTIARCH)
+
 if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
   if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
     AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report])
@@ -2871,8 +2873,13 @@ void *x = uuid_generate_time_safe
   [AC_MSG_RESULT(no)]
 )
 
+# check for libuuid from util-linux
+save_LIBS=$LIBS
+AC_CHECK_LIB([uuid], [uuid_generate_time])
+LIBS=$save_LIBS
+
 # AIX provides support for RFC4122 (uuid) in libc.a starting with AIX 6.1 (anno 2007)
-# FreeBSD and OpenBSD provides support as well
+# FreeBSD and OpenBSD provides support in libc as well.
 AC_MSG_CHECKING(for uuid_create)
 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <uuid.h>]], [[
 #ifndef uuid_create
@@ -3707,7 +3714,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \
  posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \
  pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \
  readlink readlinkat readv realpath renameat \
- sem_open sem_timedwait sem_getvalue sem_unlink sendfile setegid seteuid \
+ sem_open sem_timedwait sem_clockwait sem_getvalue sem_unlink sendfile setegid seteuid \
  setgid sethostname \
  setlocale setregid setreuid setresuid setresgid setsid setpgid setpgrp setpriority setuid setvbuf \
  sched_get_priority_max sched_setaffinity sched_setscheduler sched_setparam \
index 6358e568f4a6f8f71c8b3632060e0df1f2d54733..63b013823cbf1315b54336241df5337472e987ec 100644 (file)
 /* Define to 1 if you have the <libutil.h> header file. */
 #undef HAVE_LIBUTIL_H
 
+/* Define you have libuuid. */
+#undef HAVE_LIBUUID
+
 /* Define if you have the 'link' function. */
 #undef HAVE_LINK
 
 /* Define to 1 if you have the `sched_setscheduler' function. */
 #undef HAVE_SCHED_SETSCHEDULER
 
+/* Define to 1 if you have the `sem_clockwait' function. */
+#undef HAVE_SEM_CLOCKWAIT
+
 /* Define to 1 if you have the `sem_getvalue' function. */
 #undef HAVE_SEM_GETVALUE
 
index 54d4b942bd5afec7826d3ccf820c61a3bca55ac3..9a5887b59ffc41eab38ab42cba5a6d20b8a1c987 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1686,7 +1686,9 @@ class PyBuildExt(build_ext):
                 ('XML_POOR_ENTROPY', '1'),
             ]
             extra_compile_args = []
-            expat_lib = []
+            # bpo-44394: libexpat uses isnan() of math.h and needs linkage
+            # against the libm
+            expat_lib = ['m']
             expat_sources = ['expat/xmlparse.c',
                              'expat/xmlrole.c',
                              'expat/xmltok.c']
@@ -1768,15 +1770,15 @@ class PyBuildExt(build_ext):
 
     def detect_uuid(self):
         # Build the _uuid module if possible
-        uuid_incs = find_file("uuid.h", self.inc_dirs, ["/usr/include/uuid"])
-        if uuid_incs is not None:
-            if self.compiler.find_library_file(self.lib_dirs, 'uuid'):
-                uuid_libs = ['uuid']
+        uuid_h = sysconfig.get_config_var("HAVE_UUID_H")
+        uuid_uuid_h = sysconfig.get_config_var("HAVE_UUID_UUID_H")
+        if uuid_h or uuid_uuid_h:
+            if sysconfig.get_config_var("HAVE_LIBUUID"):
+                uuid_libs = ["uuid"]
             else:
                 uuid_libs = []
             self.add(Extension('_uuid', ['_uuidmodule.c'],
-                               libraries=uuid_libs,
-                               include_dirs=uuid_incs))
+                               libraries=uuid_libs))
         else:
             self.missing.append('_uuid')